
#bistro-app { --b-bg:#fbf8f3;--b-surface:#fffdfa;--b-ink:#38352e;--b-muted:#82796d;--b-line:#e6ded3;--b-accent:#a7563d;--b-sage:#8d9878;--b-soft:#f3e7dc; background:var(--b-bg);color:var(--b-ink);font:14px/1.65 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color-scheme:light;width:100%; container-type:inline-size; }
#bistro-app * {box-sizing:border-box;} #bistro-app [hidden] {display:none!important;} #bistro-app h1,#bistro-app h2,#bistro-app h3,#bistro-app p,#bistro-app figure {margin:0;}
#bistro-app h1,#bistro-app h2,#bistro-app h3,#bistro-app .b-wordmark {font-family:"Songti SC","STSong","Noto Serif CJK SC",serif;font-weight:600!important;}
#bistro-app button,#bistro-app input,#bistro-app textarea,#bistro-app select {font-family:inherit;font-size:14px;line-height:1.5;} #bistro-app button{border:0;background:none;color:inherit;min-height:44px;padding:8px 12px;transition:transform .18s ease,background .18s ease;} #bistro-app button:active{transform:scale(.97);} #bistro-app button:disabled{opacity:.55;}
#bistro-app .b-header {padding:16px 4%;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--b-line);}
#bistro-app .b-wordmark {font-size:25px;letter-spacing:-.6px;padding:0;position:relative;white-space:nowrap;} #bistro-app .b-wordmark:after{content:"";position:absolute;right:1px;bottom:2px;width:31px;height:2px;background:var(--b-accent);transform:rotate(-5deg);}
#bistro-app nav{display:flex;align-items:center;gap:20px;} #bistro-app nav button{font-size:14px;padding:8px 2px;position:relative;color:var(--b-muted);white-space:nowrap;} #bistro-app nav button[aria-current=page]{color:var(--b-accent);font-weight:600;} #bistro-app nav button[aria-current=page]:after{content:"";height:2px;position:absolute;bottom:2px;left:0;right:0;background:var(--b-accent);}
#bistro-app .b-pair {display:flex;align-items:center;position:relative;flex-shrink:0;gap:2px;} #bistro-app .b-pair img{width:58px;height:58px;object-fit:cover;border-radius:50%;border:3px solid var(--b-bg);} #bistro-app .b-pair img:last-child{margin-left:-8px;} #bistro-app .b-heart {width:26px;height:26px;background:var(--b-bg);border-radius:50%;display:flex;align-items:center;justify-content:center;position:absolute;left:45px;z-index:1;color:var(--b-accent);}
#bistro-app .b-heart svg{width:14px!important;height:14px!important;fill:var(--b-accent);} #bistro-app .b-pair-small {padding:0;} #bistro-app .b-pair-small img{width:41px;height:41px;border-width:2px;} #bistro-app .b-pair-small .b-heart{left:29px;width:23px;height:23px;}
#bistro-app .b-hero {display:grid;grid-template-columns:.8fr 1.2fr;gap:30px;align-items:center;padding:28px 4% 24px;} #bistro-app h1{font-size:clamp(28px,4cqw,51px);line-height:1.45;letter-spacing:-.7px;} #bistro-app .b-hero-copy>p{margin-top:18px;color:var(--b-muted);font-size:15px;line-height:1.85;} #bistro-app .b-together{display:flex;align-items:center;gap:18px;margin-top:30px;} #bistro-app .b-together>span{font-family:"Songti SC",serif;font-size:16px;}
#bistro-app .b-hero-photo{width:100%;height:auto;aspect-ratio:1.85;object-fit:cover;border-radius:14px;display:block;} #bistro-app #b-content{padding:10px 4% 20px;} #bistro-app .b-section-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:8px 0 20px;} #bistro-app h2{font-size:30px;line-height:1.4;} #bistro-app h3{font-size:24px;line-height:1.4;}
#bistro-app .b-primary{display:inline-flex;gap:7px;align-items:center;justify-content:center;background:var(--b-accent);color:#fffaf4;border-radius:30px;padding:11px 21px;white-space:nowrap;font-size:14px;} #bistro-app .b-primary:hover{background:#94472f;} #bistro-app .b-secondary{border:1px solid var(--b-line);border-radius:24px;padding:9px 18px;} #bistro-app .b-link{color:var(--b-accent);padding:7px 0;display:inline-flex;align-items:center;gap:5px;font-size:13px;}
#bistro-app .b-recipes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;} #bistro-app .b-recipe{min-width:0;} #bistro-app .b-recipe-picture{position:relative;overflow:hidden;border-radius:11px;aspect-ratio:1.83;background:var(--b-soft);} #bistro-app .b-recipe-picture>img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease;} #bistro-app .b-recipe:hover .b-recipe-picture>img{transform:scale(1.025);}
#bistro-app .b-favorite{position:absolute;right:13px;top:13px;border-radius:50%;width:42px;min-height:42px;display:flex;align-items:center;justify-content:center;background:#fffdf8;color:var(--b-accent);padding:0;box-shadow:0 3px 12px #40251310;} #bistro-app .b-favorite[aria-pressed=true] svg{fill:var(--b-accent);animation:b-pop .35s ease;} #bistro-app .b-recipe-body{padding:14px 3px 0;} #bistro-app .b-recipe-line{display:flex;justify-content:space-between;align-items:center;gap:10px;} #bistro-app .b-recipe-line h3{font-size:25px;} #bistro-app .b-add{width:44px;height:44px;border-radius:50%;padding:0;background:var(--b-accent);color:#fffaf4;display:flex;align-items:center;justify-content:center;flex-shrink:0;} #bistro-app .b-add[aria-pressed=true]{background:var(--b-sage);} #bistro-app .b-meta{color:var(--b-muted);font-size:13px;margin-top:8px;}
#bistro-app .b-no-photo{height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;color:var(--b-muted);gap:8px;background:var(--b-soft);font-size:13px;} #bistro-app .b-no-photo svg{width:30px!important;height:30px!important;}
#bistro-app .b-footer{padding:26px 4% 23px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;} #bistro-app .b-footer>span{height:1px;background:var(--b-line);flex:1;min-width:20px;} #bistro-app .b-footer p{font-family:"Songti SC",serif;color:var(--b-muted);letter-spacing:1px;font-size:13px;} #bistro-app .b-footer button{font-size:12px;color:var(--b-muted);}
#bistro-app .b-muted{color:var(--b-muted);font-size:13px;} #bistro-app .b-tray{margin:8px 4% 0;padding:17px 22px;background:#efe5d8;border-radius:15px;display:flex;gap:20px;align-items:center;justify-content:space-between;} #bistro-app .b-tray-title{font-weight:600;font-size:14px;} #bistro-app #b-tray-names{font-size:13px;color:#75644e;margin-top:3px;} #bistro-app #b-toast{margin:6px 4% 0;padding:12px 18px;background:#edf0e5;color:#536145;border-radius:10px;font-size:13px;animation:b-enter .2s ease;}
#bistro-app .b-welcome{display:grid;grid-template-columns:1.05fr 1fr;gap:48px;padding:36px 5%;align-items:center;} #bistro-app .b-welcome-photo{position:relative;} #bistro-app .b-welcome-photo img{width:100%;aspect-ratio:.9;object-fit:cover;display:block;border-radius:18px;} #bistro-app .b-welcome-photo figcaption{font-family:"Songti SC",serif;font-size:20px;text-align:center;margin-top:14px;color:var(--b-muted);} #bistro-app .b-welcome-body{max-width:400px;width:100%;margin:auto;} #bistro-app .b-welcome-body h1{font-size:42px;line-height:1.4;margin-bottom:12px;} #bistro-app .b-welcome-body>.b-muted{line-height:1.9;}
#bistro-app .b-identities{display:flex;gap:16px;margin:20px 0 12px;} #bistro-app .b-identities button{display:flex;align-items:center;gap:9px;padding:8px 10px 8px 7px;border:1px solid transparent;border-radius:40px;color:var(--b-muted);font-size:13px;} #bistro-app .b-identities button[aria-pressed=true]{border-color:#c5b39c;background:#f3eee4;color:var(--b-ink);} #bistro-app .b-identities img{width:40px;height:40px;border-radius:50%;object-fit:cover;}
#bistro-app .b-draw-wrap{position:relative;background:var(--b-surface);border:1px dashed #cfbfaa;border-radius:18px;aspect-ratio:1.78;overflow:hidden;} #bistro-app canvas{width:100%;height:100%;display:block;touch-action:none;cursor:crosshair;} #bistro-app #b-draw-hint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;color:#a99c8b;font-size:13px;letter-spacing:2px;} #bistro-app .b-draw-tools{display:flex;justify-content:space-between;} #bistro-app .b-draw-tools button{font-size:12px;color:var(--b-muted);} #bistro-app #b-draw-status{font-size:12px;min-height:22px;}
#bistro-app #b-unlock-success{position:absolute;inset:0;background:#fbf8f3ed;display:flex;align-items:center;justify-content:center;gap:13px;flex-direction:column;} #bistro-app #b-unlock-success svg{color:var(--b-accent);fill:#c67f6c;width:48px!important;height:48px!important;animation:b-heartbeat .6s ease 2;} #bistro-app #b-unlock-success strong{font:500 21px/1.6 "Songti SC",serif;}
#bistro-app .b-page-heading{margin:16px 0 28px;} #bistro-app .b-page-heading p{margin-top:8px;} #bistro-app .b-editor{display:grid;grid-template-columns:.9fr 1.1fr;gap:32px;} #bistro-app .b-cover{width:100%;aspect-ratio:1.2;object-fit:cover;border-radius:14px;} #bistro-app .b-thumbnails{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0;} #bistro-app .b-thumbnails button{padding:2px;border-radius:9px;border:1px solid var(--b-line);} #bistro-app .b-thumbnails img{width:55px;height:55px;object-fit:cover;border-radius:7px;display:block;} #bistro-app .b-upload{display:inline-flex;gap:7px;align-items:center;border:1px dashed #c4b39f;border-radius:10px;padding:12px 17px;color:var(--b-accent);font-size:13px;} #bistro-app .b-field{display:block;margin-bottom:18px;font-size:13px;font-weight:500;} #bistro-app .b-field input,#bistro-app .b-field textarea,#bistro-app .b-ingredient-row input,#bistro-app select{width:100%;min-width:0;background:var(--b-surface);color:var(--b-ink);border:1px solid var(--b-line);border-radius:9px;padding:11px 12px;margin-top:7px;font-size:15px;} #bistro-app textarea{resize:vertical;min-height:95px;} #bistro-app .b-ingredient-row{display:grid;grid-template-columns:1.6fr .65fr .65fr 34px;gap:7px;align-items:center;} #bistro-app .b-ingredient-row button{padding:2px;color:var(--b-muted);} #bistro-app .b-form-actions{display:flex;gap:12px;margin-top:22px;} #bistro-app .b-back{margin-bottom:14px;} #bistro-app .b-note{background:#f2ebe0;padding:16px 18px;border-radius:10px;font-size:13px;line-height:1.85;margin-top:14px;}
#bistro-app .b-wish-row,#bistro-app .b-meal-row{display:flex;gap:18px;align-items:center;justify-content:space-between;padding:22px 0;border-bottom:1px solid var(--b-line);} #bistro-app .b-wish-content{flex:1;min-width:0;} #bistro-app .b-wish-row h3,#bistro-app .b-meal-row h3{font-size:22px;} #bistro-app .b-wish-content p{margin-top:5px;} #bistro-app .b-owner{width:44px;height:44px;border-radius:50%;object-fit:cover;flex-shrink:0;} #bistro-app .b-meal-list{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px;} #bistro-app .b-meal-list img{width:74px;height:60px;object-fit:cover;border-radius:8px;} #bistro-app .b-empty{padding:45px 15px;color:var(--b-muted);text-align:center;font-family:"Songti SC",serif;font-size:19px;} #bistro-app .b-fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;} #bistro-app .b-fields-grid section{padding:22px 0;border-top:1px solid var(--b-line);} #bistro-app .b-fields-grid p{color:var(--b-muted);font-size:13px;line-height:1.9;margin:12px 0 20px;} #bistro-app .b-fields-grid h3{font-size:24px;}
#bistro-app .b-success-banner{padding:28px;border-radius:15px;background:#eef0e6;text-align:center;margin-top:15px;} #bistro-app .b-success-banner h3{margin-bottom:8px;} #bistro-app .b-history-undo{margin-top:12px;} #bistro-app .b-enter{animation:b-enter .4s ease;} #bistro-app svg{width:18px;height:18px;flex-shrink:0;}
@keyframes b-pop{0%,100%{transform:scale(1);}45%{transform:scale(1.32) rotate(-8deg);}} @keyframes b-heartbeat{0%,100%{transform:scale(1);}45%{transform:scale(1.16);}} @keyframes b-enter{from{opacity:.35;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
@container(max-width:760px){#bistro-app .b-header{gap:14px;flex-wrap:wrap;padding:14px 5%;}#bistro-app .b-wordmark{font-size:23px;}#bistro-app nav{order:3;width:100%;justify-content:center;gap:30px;border-top:1px solid var(--b-line);padding-top:9px;}#bistro-app .b-hero{gap:22px;}#bistro-app h1{font-size:31px;}#bistro-app .b-together{gap:10px;margin-top:21px;flex-wrap:wrap;}#bistro-app .b-together>span{font-size:14px;}#bistro-app .b-welcome{gap:26px;padding:25px 5%;}#bistro-app .b-welcome-body h1{font-size:31px;}#bistro-app .b-identities{gap:3px;}#bistro-app .b-identities button{font-size:12px;}#bistro-app .b-identities img{width:33px;height:33px;}}
@container(max-width:560px){#bistro-app .b-hero{grid-template-columns:1fr;padding:26px 5% 14px;gap:23px;}#bistro-app h1{font-size:31px;line-height:1.5;}#bistro-app .b-desktop-break{display:none;}#bistro-app .b-hero-copy>p{font-size:13px;margin-top:10px;}#bistro-app .b-hero-copy>p br{display:none;}#bistro-app .b-together{margin-top:17px;flex-wrap:nowrap;}#bistro-app .b-pair img{width:46px;height:46px;}#bistro-app .b-pair .b-heart{left:34px;}#bistro-app .b-pair-small img{width:38px;height:38px;}#bistro-app .b-pair-small .b-heart{left:27px;}#bistro-app .b-hero-photo{aspect-ratio:1.7;}#bistro-app #b-content{padding:10px 5%;}#bistro-app h2{font-size:25px;}#bistro-app .b-section-head{gap:8px;margin-bottom:16px;}#bistro-app .b-primary{font-size:12px;padding:10px 15px;}#bistro-app .b-recipes{gap:15px;}#bistro-app .b-recipe-picture{aspect-ratio:1.18;border-radius:10px;}#bistro-app .b-recipe-line h3{font-size:20px;}#bistro-app .b-recipe-line{align-items:flex-start;}#bistro-app .b-add{width:36px;height:36px;min-height:36px;}#bistro-app .b-recipe-body{padding-top:11px;}#bistro-app .b-meta{font-size:12px;margin-top:7px;}#bistro-app .b-favorite{width:34px;min-height:34px;right:8px;top:8px;}#bistro-app .b-link{font-size:12px;}#bistro-app .b-footer{gap:10px;padding:25px 5% 18px;}#bistro-app .b-footer>button{width:100%;justify-content:center;}#bistro-app .b-welcome{grid-template-columns:1fr;gap:23px;padding:22px 6%;}#bistro-app .b-welcome-photo img{aspect-ratio:1.9;border-radius:13px;}#bistro-app .b-welcome-photo figcaption{font-size:15px;margin-top:8px;}#bistro-app .b-welcome-body h1{font-size:31px;}#bistro-app .b-welcome-body h1 br{display:none;}#bistro-app .b-welcome-body{max-width:none;}#bistro-app .b-identities{gap:20px;margin:16px 0 12px;}#bistro-app .b-identities img{width:42px;height:42px;}#bistro-app .b-identities button{font-size:13px;}#bistro-app .b-draw-wrap{aspect-ratio:1.85;}#bistro-app .b-welcome-body>.b-muted{font-size:12px;}#bistro-app .b-editor,#bistro-app .b-fields-grid{grid-template-columns:1fr;gap:23px;}#bistro-app .b-cover{aspect-ratio:1.5;}#bistro-app .b-field input,#bistro-app .b-field textarea,#bistro-app .b-ingredient-row input{font-size:16px;}#bistro-app .b-wish-row{gap:10px;flex-wrap:wrap;}#bistro-app .b-wish-row h3{font-size:20px;}#bistro-app .b-wish-row .b-primary{margin-left:54px;}#bistro-app .b-tray{padding:14px 16px;gap:10px;margin-left:5%;margin-right:5%;}#bistro-app #b-tray-names{font-size:12px;}#bistro-app .b-meal-row{align-items:flex-start;}#bistro-app .b-meal-row h3{font-size:20px;}}
@container(max-width:350px){#bistro-app .b-recipes{grid-template-columns:1fr;}#bistro-app .b-recipe-picture{aspect-ratio:1.6;}#bistro-app nav{gap:24px;}#bistro-app .b-welcome-body h1{font-size:29px;}}
@media(prefers-reduced-motion:reduce){#bistro-app *,#bistro-app *:before,#bistro-app *:after{animation:none!important;transition:none!important;}}
#bistro-app{position:relative;isolation:isolate;}#bistro-app h3,#bistro-app .b-meta{overflow-wrap:anywhere;}
#bistro-app .b-crop-panel{margin:16px 0 4px;padding:18px;background:#f1e7dc;border-radius:15px;}#bistro-app .b-crop-panel h3{font-size:22px;margin-bottom:5px;}#bistro-app .b-crop-stage{margin-top:15px;aspect-ratio:1;background:#e8dccd;border-radius:10px;overflow:hidden;position:relative;touch-action:none;}#bistro-app #b-crop-canvas{width:100%;height:100%;cursor:grab;}#bistro-app #b-crop-canvas:active{cursor:grabbing;}#bistro-app .b-crop-guide{position:absolute;inset:0;pointer-events:none;background:linear-gradient(to right,transparent 33.15%,#fff7 33.15%,#fff7 33.4%,transparent 33.4%,transparent 66.4%,#fff7 66.4%,#fff7 66.65%,transparent 66.65%),linear-gradient(to bottom,transparent 33.15%,#fff7 33.15%,#fff7 33.4%,transparent 33.4%,transparent 66.4%,#fff7 66.4%,#fff7 66.65%,transparent 66.65%);}
#bistro-app .b-crop-slider{display:flex;gap:13px;align-items:center;margin-top:15px;font-size:13px;}#bistro-app .b-crop-slider input{flex:1;min-width:0;accent-color:var(--b-accent);min-height:44px;}#bistro-app .b-crop-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:7px;}
#bistro-app .b-love-transition{position:absolute;inset:0;z-index:20;display:grid;place-items:center;background:radial-gradient(ellipse at 70% 85%,#483039 0%,#222332 37%,#111d2e 72%,#0c1422 100%);animation:b-night-reveal .65s ease both;overflow:hidden;}
#bistro-app #b-meteor-sky{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;}
#bistro-app .b-love-transition:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;background:radial-gradient(ellipse at 50% 48%,transparent 10%,#080c1926 85%);}
#bistro-app .b-love-scene{position:relative;z-index:2;width:min(700px,94%);height:330px;display:flex;align-items:center;flex-direction:column;justify-content:center;}
#bistro-app .b-love-message{text-align:center;color:#fff4e2;animation:b-night-words .9s .45s both;text-shadow:0 3px 25px #080c19;}
#bistro-app .b-love-message strong{display:block;font:500 34px/1.6 "Songti SC",serif;letter-spacing:2px;}
#bistro-app .b-love-message p{color:#d2bba3;font-size:14px;letter-spacing:3px;margin-top:14px;}
#bistro-app .b-love-message .b-night-caption{font-size:11px;letter-spacing:5px;color:#c6a87f;margin:0 0 20px;}
#bistro-app .b-night-divider{height:1px;width:130px;background:linear-gradient(90deg,transparent,#b88f6477,transparent);margin:24px auto;}
#bistro-app .b-love-people{justify-content:center;width:max-content;margin:22px auto 0;animation:b-night-words .9s .65s both;}
#bistro-app .b-love-people img{width:48px;height:48px;border-color:#33303a;box-shadow:0 0 20px #ffd7a512;}#bistro-app .b-love-people .b-heart{left:35px;background:#33303a;}
#bistro-app .b-love-leaving{animation:b-night-leave .9s cubic-bezier(.4,0,.2,1) both;pointer-events:none;}
@keyframes b-night-reveal{from{opacity:0;}to{opacity:1;}}
@keyframes b-night-words{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}
@keyframes b-night-leave{to{opacity:0;filter:blur(3px);}}
@container(max-width:560px){#bistro-app .b-love-message strong{font-size:25px;letter-spacing:1px;}#bistro-app .b-love-message p{font-size:12px;letter-spacing:2px;}#bistro-app .b-love-scene{height:300px;}#bistro-app .b-crop-panel{padding:15px;}}

@media(pointer:coarse){#bistro-app .b-add,#bistro-app .b-favorite{width:44px;height:44px;min-height:44px;}#bistro-app .b-ingredient-row{grid-template-columns:1.6fr .65fr .65fr 44px;}}
#bistro-app.b-locked .b-header .b-heart{display:none;}

body{margin:0;background:#fbf8f3}#bistro-app{max-width:1600px;margin:auto;min-height:100vh}.cursor-interaction{cursor:pointer}
#bistro-app .b-upload{position:relative;overflow:hidden}#bistro-app .b-file-picker{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:inherit}#bistro-app .b-upload:focus-within{outline:2px solid var(--b-accent);outline-offset:3px}#bistro-app .b-binding{margin-top:25px}#bistro-app .b-binding .b-note{margin-bottom:15px}#bistro-app button[disabled]{cursor:default}

#bistro-app .b-person-switch{display:flex;align-items:center;gap:3px;flex-shrink:0}#bistro-app .b-person-switch button{display:flex;align-items:center;gap:6px;border:1px solid transparent;border-radius:99px;padding:4px 8px 4px 4px;color:var(--b-muted);font-size:13px}#bistro-app .b-person-switch button[aria-pressed=true]{background:#f2e6dc;border-color:#d6b6a3;color:var(--b-accent)}#bistro-app .b-person-switch img{width:34px;height:34px;object-fit:cover;border-radius:50%}#bistro-app .b-switch-heart{font-size:12px;color:#b77861;margin:0 1px}#bistro-app .b-first-dish{margin:12px auto 20px;max-width:620px;background:#f4eee4;border:1px solid #ece1d3;border-radius:20px;padding:40px 24px}#bistro-app .b-first-dish svg{width:29px;height:29px;color:var(--b-sage);margin-bottom:14px}#bistro-app .b-first-dish h3{font-size:23px;color:#655449}#bistro-app .b-first-dish p{font:13px/1.8 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;margin-top:10px;color:var(--b-muted)}
@container(max-width:350px){#bistro-app .b-person-switch img{width:28px;height:28px}#bistro-app .b-person-switch button{gap:4px;padding-right:6px}#bistro-app .b-header{gap:8px}#bistro-app .b-wordmark{font-size:21px}}
