.dish-hero .hero-img{width:100%;aspect-ratio:4 / 3;object-fit:cover}.stag.tap{min-height:var(--hit);margin:-12px 0;cursor:pointer;transition:transform var(--dur) ease-out,background var(--dur) ease-out}.stag.tap:active{transform:scale(.96);background:var(--surface-2)}.settings-page .chip,.settings-page .level-pick button{min-height:var(--hit)}.settings-page .switch:before{content:"";position:absolute;inset:-7px 0}.settings-page .row .val{max-width:46%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-page .date-field{flex:none;min-height:var(--hit);padding:0 12px;border:1px solid transparent;border-radius:var(--r-btn);background:var(--surface);color:var(--ink);font:inherit;font-size:var(--fs-body);font-variant-numeric:tabular-nums;cursor:pointer;transition:background var(--dur) ease-out,border-color var(--dur) ease-out}.settings-page .date-field:focus{outline:none;background:var(--paper);border-color:var(--accent)}.settings-page .date-field:active{background:var(--surface-2)}.settings-sheet .search-wrap{position:sticky;top:-20px;z-index:2;display:flex;flex-direction:column;gap:10px;margin:0 calc(-1 * var(--sp-page));padding:10px var(--sp-page) 8px;background:color-mix(in srgb,var(--paper) 76%,transparent);-webkit-backdrop-filter:saturate(180%) blur(18px);backdrop-filter:saturate(180%) blur(18px)}.settings-sheet .search-field{margin-bottom:0}.settings-sheet .group-label{margin:16px 0 6px}.settings-sheet .chip-set{padding:0 0 4px}.settings-sheet .list{margin-top:4px}.settings-sheet .avoid-item .hint{margin:8px 0 0}.settings-sheet .pick-row.lib-row{padding-left:0;padding-right:0}.settings-sheet .check-row{text-align:left}.settings-hint{margin:8px 2px 0;font-size:var(--fs-callout);line-height:1.5;color:var(--ink-2)}.settings-page .row.library-row .val{max-width:none;white-space:normal;line-height:1.35;font-variant-numeric:tabular-nums}.settings-sheet .lib-row .nm{display:flex;align-items:center;gap:var(--sp-el)}.settings-sheet .lib-hidden{margin-top:18px}.settings-sheet .lib-hidden .row{min-height:48px}.lib-issues{margin-bottom:12px;align-items:flex-start}.lib-issues-title{margin:0;font-weight:700}.lib-issues ul{margin:6px 0 0;padding-left:17px}.lib-issues li{margin-top:3px}.lib-issues b{font-weight:700}.dish-form-actions{position:sticky;bottom:calc(-1 * var(--sp-page));z-index:2;margin:14px calc(-1 * var(--sp-page)) 0;padding:10px var(--sp-page) var(--sp-page);background:color-mix(in srgb,var(--paper) 76%,transparent);-webkit-backdrop-filter:saturate(180%) blur(18px);backdrop-filter:saturate(180%) blur(18px)}:root{--ink: #111111;--ink-2: #6B6B6F;--ink-3: #C2C2C4;--paper: #FFFFFF;--surface: #F4F4F2;--surface-2: #E3E3E1;--track: #D8D8D6;--hairline: #ECECEA;--accent: #FF5A1F;--accent-press: #E04F1B;--accent-soft: #FFEBE2;--accent-mid: #EDDBD2;--accent-ink: #BC400C;--meal-breakfast: #FCEBA8;--meal-breakfast-ink: #605840;--meal-lunch: #FFEBE2;--meal-lunch-ink: #6B4A3E;--meal-dinner: #C7E3F6;--meal-dinner-ink: #3F5666;--mint: #C9EFDA;--ok: #1FA85C;--ok-ink: #157A42;--ok-soft: #E6F7EC;--warn: #E8A020;--warn-soft: #FFF2E0;--danger: #E8453C;--danger-ink: #C8342B;--info-soft: #EAF2FF;--normalized: #30B0C7;--normalized-ink: #1E7C8C;--badge-ink: #5856D6;--font: "Inter", -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Noto Sans SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--fs-display: 32px;--fs-title: 22px;--fs-headline: 17px;--fs-body: 15px;--fs-callout: 13px;--fs-micro: 11px;--r-card: 18px;--r-thumb: 14px;--r-btn: 12px;--r-cta: 16px;--r-sheet: 22px;--r-pill: 999px;--sp-page: 20px;--sp-group: 22px;--sp-card: 16px;--sp-el: 8px;--shadow-card: 0 4px 16px rgba(0, 0, 0, .039);--shadow-float: 0 12px 32px rgba(0, 0, 0, .071);--shadow-sheet: 0 -8px 30px rgba(0, 0, 0, .102);--shadow-dialog: 0 16px 40px rgba(0, 0, 0, .149);--shadow-cta: 0 10px 24px rgba(255, 90, 31, .239);--shadow-seg: 0 1px 4px rgba(0, 0, 0, .122);--shadow-knob: 0 2px 6px rgba(0, 0, 0, .2);--shadow-toast: 0 8px 20px rgba(0, 0, 0, .078);--ease-sheet: cubic-bezier(.32, .72, 0, 1);--dur: .22s;--content-w: 760px;--nav-w: 560px;--tabbar-gap: 14px;--tabbar-h: 74px;--editbar-h: 58px;--hit: 44px;--ctl-h: 40px;--cta-h: 54px;--bg: var(--paper);--card: var(--paper);--card-2: var(--surface);--label: var(--ink);--label-2: var(--ink-2);--label-3: var(--ink-3);--sep: var(--hairline);--fill: var(--surface);--fill-2: var(--surface-2);--blue: var(--accent);--blue-press: var(--accent-press);--link: var(--accent-ink);--green: var(--ok);--green-text: var(--ok-ink);--orange: var(--warn);--red: var(--danger);--indigo: var(--badge-ink);--indigo-text: var(--badge-ink);--teal: var(--normalized-ink);--warn-bg: var(--warn-soft);--info-bg: var(--info-soft);--ok-bg: var(--ok-soft)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font);font-size:var(--fs-body);line-height:1.5;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}a{color:var(--accent-ink);text-decoration:none}a:hover{text-decoration:underline}a.dish-card:hover,a.tab:hover,a.circle-btn:hover,a.cta:hover,a.pill-btn:hover{text-decoration:none}@media (hover: hover){a.dish-card{transition:border-color var(--dur) ease-out,box-shadow var(--dur) ease-out}a.dish-card:hover{border-color:var(--ink-3);box-shadow:var(--shadow-card)}}img{max-width:100%;display:block}ul{margin:0;padding:0;list-style:none}button,.tap,.dish-card{-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}:focus{outline:none}:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:2px;border-radius:8px}.ic{width:20px;height:20px;flex:none;display:block}.ic-sm{width:16px;height:16px}.ic-lg{width:22px;height:22px}.page{max-width:var(--content-w);margin:0 auto;padding:0 var(--sp-page) calc(120px + env(safe-area-inset-bottom))}.page.editing{padding-bottom:calc(200px + env(safe-area-inset-bottom))}.page-narrow{max-width:640px}.hero-title{padding:40px 2px 0}.hero-title h1{margin:0;font-size:var(--fs-display);font-weight:700;letter-spacing:-.5px}.hero-title .subtitle{display:flex;align-items:center;gap:var(--sp-el);margin-top:6px;color:var(--ink-2);font-size:14px}.group-label{margin:28px 12px 9px;font-size:12px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--ink-2)}.card{background:var(--paper);border:1px solid var(--hairline);border-radius:var(--r-card);overflow:hidden}.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:18px 0 10px}.topbar .title{font-size:16px;font-weight:700}.circle-btn{width:var(--hit);height:var(--hit);border-radius:var(--r-pill);display:inline-flex;align-items:center;justify-content:center;flex:none;background:var(--surface);color:var(--ink);transition:transform var(--dur) ease-out,background var(--dur) ease-out}.circle-btn .ic{width:20px;height:20px}.circle-btn:active{transform:scale(.92);background:var(--surface-2)}.circle-btn.blue{background:var(--accent);color:#fff}.circle-btn.blue:active{background:var(--accent-press)}.tabbar{position:fixed;z-index:50;left:50%;transform:translate(-50%);bottom:calc(var(--tabbar-gap) + env(safe-area-inset-bottom));width:min(92vw,var(--nav-w));display:flex;gap:6px;padding:6px;background:var(--paper);border:1px solid var(--hairline);border-radius:var(--r-pill);box-shadow:var(--shadow-float)}.tab{flex:1;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px 0;color:var(--ink-3);font-size:var(--fs-micro);font-weight:500;border-radius:var(--r-pill);transition:color var(--dur) ease-out,background var(--dur) ease-out,transform var(--dur) ease-out}.tab .ic{width:20px;height:20px}.tab:active{transform:scale(.94)}.tab.active{background:var(--surface);color:var(--ink);font-weight:700}.datebar-wrap{display:flex;align-items:center;gap:10px;margin-top:18px;--pill-scale: 1.06;--pill-scale-min: .8;--pill-fade: .42}.datebar-wrap .circle-btn{background:var(--paper);border:1px solid var(--hairline)}.datebar-wrap .circle-btn:active{background:var(--surface)}.datebar{flex:1;display:flex;gap:var(--sp-el);overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;padding:12px calc(50% - 34px);scroll-behavior:smooth;scrollbar-width:none;-webkit-overflow-scrolling:touch}.datebar::-webkit-scrollbar{display:none}.date-pill{scroll-snap-align:center;--t: 1;--scale: calc(var(--pill-scale) - (var(--pill-scale) - var(--pill-scale-min)) * var(--t));--pill-o: 1;flex:none;min-height:56px;min-width:64px;border-radius:var(--r-btn);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:10px 8px;background:var(--paper);border:1px solid var(--hairline);transform:scale(var(--scale));opacity:calc((1 - var(--pill-fade) * var(--t)) * var(--pill-o));transition:background var(--dur) ease-out,border-color var(--dur) ease-out,color var(--dur) ease-out;will-change:transform;cursor:pointer}.date-pill .d{font-size:19px;font-weight:700;line-height:1.15;font-variant-numeric:tabular-nums}.date-pill .w{font-size:var(--fs-micro);font-weight:500;color:var(--ink-2);display:flex;align-items:center;gap:4px}.date-pill:active{transform:scale(calc(var(--scale) * .94))}.date-pill .dot{width:5px;height:5px;border-radius:50%;background:var(--accent)}.date-pill.today .w{color:var(--accent-ink);font-weight:700}.date-pill.past{--pill-o: .5}.date-pill.selected{background:var(--ink);border-color:var(--ink);color:#fff}.date-pill.selected .w{color:#b9b9bb}.date-pill.selected.today .w{color:#fff}.date-pill.selected .dot{background:#fff}.ai-bar{margin-top:var(--sp-card);padding:14px;box-shadow:var(--shadow-card)}.ai-input{display:flex;align-items:center;gap:10px}.ai-input .fake-field{flex:1;min-height:46px;display:flex;align-items:center;gap:9px;background:var(--surface);border:1px solid transparent;border-radius:var(--r-thumb);padding:13px 14px;color:var(--ink-3);font-size:var(--fs-body);transition:border-color var(--dur) ease-out,background var(--dur) ease-out}.ai-input .fake-field .ic{color:var(--ink-3)}.ai-input .fake-field input{flex:1;min-width:0;border:0;background:none;outline:none;font:inherit;font-size:var(--fs-body);color:var(--ink)}.ai-input .fake-field input::placeholder{color:var(--ink-3)}.ai-input .fake-field:focus-within{background:var(--paper);border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.ai-go{width:46px;height:46px;border-radius:var(--r-thumb);background:var(--accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex:none;transition:transform var(--dur) ease-out,background var(--dur) ease-out}.ai-go .ic{width:22px;height:22px}.ai-go:active{transform:scale(.92);background:var(--accent-press)}.quick-chips{display:flex;gap:var(--sp-el);overflow-x:auto;margin-top:12px;padding:2px;scrollbar-width:none}.quick-chips::-webkit-scrollbar{display:none}.chip{flex:none;min-height:var(--ctl-h);display:inline-flex;align-items:center;gap:6px;padding:10px 15px;border-radius:var(--r-pill);background:var(--surface);font-size:14px;font-weight:500;color:var(--ink);transition:transform var(--dur) ease-out,background var(--dur) ease-out,color var(--dur) ease-out;cursor:pointer}.chip .ic{width:15px;height:15px}.chip:active{transform:scale(.94);background:var(--surface-2)}.chip.on{background:var(--accent-soft);color:var(--accent-ink);font-weight:700}.cta{display:flex;align-items:center;justify-content:center;gap:var(--sp-el);width:100%;min-height:var(--cta-h);margin-top:30px;padding:17px 22px;border-radius:var(--r-cta);background:var(--accent);color:#fff;font-size:16px;font-weight:700;box-shadow:var(--shadow-cta);transition:transform var(--dur) ease-out,background var(--dur) ease-out}.cta .ic{width:20px;height:20px}.cta:active{transform:scale(.98);background:var(--accent-press)}.cta.secondary{background:var(--surface);color:var(--ink);box-shadow:none}.cta.secondary:active{background:var(--surface-2)}.edit-bar{position:fixed;z-index:51;left:50%;transform:translate(-50%);bottom:calc(var(--tabbar-gap) + var(--tabbar-h) + 8px + env(safe-area-inset-bottom));width:min(92vw,var(--nav-w));height:var(--editbar-h);display:flex;align-items:center;justify-content:center;gap:var(--sp-el);padding:0 22px;border-radius:var(--r-pill);background:var(--accent);color:#fff;font-size:16px;font-weight:700;box-shadow:var(--shadow-cta);transition:transform var(--dur) ease-out,background var(--dur) ease-out}.edit-bar .ic{width:20px;height:20px}.edit-bar:active{transform:translate(-50%) scale(.98);background:var(--accent-press)}.meal-card{margin-top:var(--sp-group);padding:0 var(--sp-card) var(--sp-card);background:var(--paper);border:1px solid var(--hairline);border-radius:var(--r-card);overflow:hidden}.meal-card.ro{background:var(--paper)}.meal-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 calc(-1 * var(--sp-card)) var(--sp-card);padding:var(--sp-card);background:var(--meal-band, var(--surface));color:var(--meal-ink, var(--ink))}.meal-head .m-ico{width:40px;height:40px;border-radius:var(--r-btn);display:inline-flex;align-items:center;justify-content:center;background:#00000012;color:var(--meal-ink, var(--ink));flex:none}.meal-head .m-ico .ic{width:21px;height:21px}.meal-head .m-name{font-size:20px;font-weight:700;letter-spacing:-.3px;color:var(--meal-ink, var(--ink))}.auto-tag{font-size:var(--fs-micro);font-weight:500;letter-spacing:.2px;color:var(--ink-3)}.meal-head .auto-tag{color:var(--meal-ink, var(--ink));opacity:.92}.stepper .val .auto-tag{margin-left:6px}.meal-act{display:inline-flex;align-items:center;gap:6px;height:var(--ctl-h);padding:0 14px;border-radius:var(--r-pill);background:var(--surface);font-size:var(--fs-callout);font-weight:700;color:var(--ink);transition:transform var(--dur) ease-out,background var(--dur) ease-out;cursor:pointer}.meal-act .ic{color:var(--ink)}.meal-act:active{transform:scale(.95);background:var(--surface-2)}.meal-head .spacer{flex:1 1 0;min-width:0}.meal-head .meal-act:last-child{margin-left:auto}.stepper{display:inline-flex;align-items:center;background:var(--surface);border-radius:var(--r-pill);height:var(--ctl-h);overflow:hidden}.stepper button{width:44px;height:var(--ctl-h);display:inline-flex;align-items:center;justify-content:center;color:var(--ink);transition:background var(--dur) ease-out}.stepper button .ic{width:17px;height:17px}.stepper button:active{background:var(--surface-2)}.stepper button:disabled{opacity:.45;cursor:default}.stepper button:disabled:active{background:none}.stepper .val{min-width:52px;padding:0 8px;text-align:center;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;justify-content:center}.meal-head .stepper,.meal-head .meal-act,.meal-head .guest-switch{background:#00000012}.meal-head .stepper button,.meal-head .stepper .val,.meal-head .meal-act,.meal-head .meal-act .ic,.meal-head .guest-switch,.meal-head .guest-switch .ic{color:var(--meal-ink, var(--ink))}.meal-head .stepper button:active,.meal-head .meal-act:active,.meal-head .guest-switch:active{background:#00000024}.meal-head .guest-switch:not(.on) .switch-mini{background:#0000002e}.meal-head .guest-preview{background:var(--paper);color:var(--ink);box-shadow:var(--shadow-float)}.guest-switch{position:relative;display:inline-flex;align-items:center;gap:7px;height:var(--ctl-h);padding:0 12px 0 14px;border-radius:var(--r-pill);background:var(--surface);font-size:var(--fs-callout);font-weight:700;color:var(--ink);transition:transform var(--dur) ease-out,background var(--dur) ease-out;cursor:pointer}.guest-switch .ic{color:var(--ink)}.guest-switch:active{transform:scale(.95);background:var(--surface-2)}.switch-mini{width:34px;height:20px;border-radius:var(--r-pill);background:var(--track);position:relative;flex:none;pointer-events:none;transition:background .25s ease-out}.switch-mini .knob-mini{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;pointer-events:none;box-shadow:0 1px 3px #00000040;transition:transform .25s cubic-bezier(.32,.72,0,1)}.guest-switch.on .switch-mini{background:var(--ok)}.guest-switch.on .switch-mini .knob-mini{transform:translate(14px)}.guest-switch:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:2px}.guest-preview{position:absolute;left:0;top:calc(100% + 8px);white-space:nowrap;background:var(--ink);color:var(--paper);font-size:12px;font-weight:500;padding:6px 10px;border-radius:10px;opacity:0;transform:translateY(-4px);pointer-events:none;transition:opacity .15s ease-out,transform .15s ease-out;z-index:5}@media (hover: hover){.guest-switch:hover .guest-preview{opacity:1;transform:translateY(0)}}.avoid-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-el);margin:0 0 14px}.avoid-label{font-size:var(--fs-callout);font-weight:700;color:var(--ink-2);flex:none}.avoid-field{flex:1;min-width:200px;display:flex;align-items:center;gap:var(--sp-el);height:var(--ctl-h);padding:0 12px;border-radius:var(--r-btn);background:var(--surface);border:1px solid transparent;transition:border-color var(--dur) ease-out,background var(--dur) ease-out}.avoid-field:focus-within{border-color:var(--accent);background:var(--paper)}.avoid-field .ic{color:var(--ink-3);flex:none}.avoid-field input{flex:1;min-width:0;border:0;background:none;outline:none;font:inherit;font-size:14px;color:var(--ink)}.avoid-field input::placeholder{color:var(--ink-3)}.avoid-chips{display:flex;flex-wrap:wrap;gap:var(--sp-el);width:100%}.avoid-chips:empty{display:none}.avoid-chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:5px 5px 5px 13px;border-radius:var(--r-pill);background:var(--surface);font-size:var(--fs-callout);font-weight:700;color:var(--ink)}.avoid-chip[data-level=hard]{background:var(--accent-soft);color:var(--danger-ink)}.avoid-chip[data-level=hard] .auto-tag{color:var(--danger-ink);opacity:1}.avoid-chip .chip-x{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-2);color:var(--ink-2);transition:background var(--dur) ease-out,transform var(--dur) ease-out;cursor:pointer}.avoid-chip[data-level=hard] .chip-x{background:var(--danger);color:#fff}.avoid-chip .chip-x:hover{background:var(--track)}.avoid-chip .chip-x:active{transform:scale(.9)}.avoid-chip .chip-x .ic{width:13px;height:13px}.banner{display:flex;align-items:center;gap:10px;margin-top:12px;padding:12px 14px;border-radius:var(--r-thumb);font-size:var(--fs-callout);line-height:1.45}.banner .ic{flex:none;width:18px;height:18px}.banner.warn{background:var(--warn-soft);color:var(--ink)}.banner.warn .ic{color:var(--warn)}.banner.info{background:var(--info-soft);color:var(--ink)}.banner.info .ic{color:var(--accent)}.banner .acts{margin-left:auto;display:flex;gap:14px;flex:none}.banner .acts a,.banner .acts button{font-size:var(--fs-callout);font-weight:700;color:var(--accent-ink);white-space:nowrap}.dish-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.dish-card{position:relative;display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--hairline);border-radius:var(--r-thumb);overflow:hidden;text-align:left;color:var(--ink);transition:transform var(--dur) ease-out,border-color var(--dur) ease-out,box-shadow var(--dur) ease-out;cursor:pointer}.dish-card:active{transform:scale(.98)}.dish-thumb{position:relative;aspect-ratio:4 / 3;display:flex;align-items:center;justify-content:center;padding:var(--sp-el)}.dish-thumb .emoji{font-size:52px;line-height:1;filter:drop-shadow(0 6px 10px rgba(0,0,0,.1))}.dish-thumb img{width:100%;height:100%;object-fit:cover}.dish-thumb .lock-badge,.dish-thumb .dice{position:absolute;width:var(--hit);height:var(--hit);display:flex;align-items:center;justify-content:center;transition:transform var(--dur) ease-out}.dish-thumb .lock-badge{top:3px;right:3px;color:var(--ink-2)}.dish-thumb .dice{right:3px;bottom:3px;color:var(--accent)}.dish-thumb .lock-badge:before,.dish-thumb .dice:before{content:"";position:absolute;inset:5px;border-radius:50%;background:var(--paper);border:1px solid var(--hairline)}.dish-thumb .lock-badge .ic,.dish-thumb .dice .ic{position:relative;width:17px;height:17px}.dish-thumb .lock-badge:active,.dish-thumb .dice:active{transform:scale(.9)}.dish-thumb .lock-badge .ic-closed{display:none}.dish-thumb .lock-badge.on{color:#fff}.dish-thumb .lock-badge.on:before{background:var(--ink);border-color:var(--ink)}.dish-thumb .lock-badge.on .ic-open{display:none}.dish-thumb .lock-badge.on .ic-closed{display:block}@keyframes dish-jiggle{0%{transform:rotate(-1.5deg)}to{transform:rotate(1.5deg)}}@keyframes dish-jiggle-soft{0%{transform:rotate(-.6deg)}to{transform:rotate(.6deg)}}.dish-card.editing{--jiggle-n: calc(var(--jiggle-base, 0) + var(--jiggle-i, 0));animation:dish-jiggle calc(.3s + var(--jiggle-n) * 26ms) ease-in-out infinite alternate;animation-delay:calc(var(--jiggle-n) * -70ms);will-change:transform}.dish-card.editing:nth-child(2n){animation-direction:alternate-reverse}.dish-card.editing .dish-thumb:after{content:"";position:absolute;inset:0;z-index:1;background-color:color-mix(in srgb,var(--paper) 40%,transparent);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23g)' opacity='0.26'/%3E%3C/svg%3E");background-size:120px 120px;pointer-events:none}.dish-card.editing .dish-thumb img,.dish-card.editing .dish-thumb .emoji{filter:blur(6px);transform:scale(1.08)}.dish-card.editing .lock-badge,.dish-card.editing .dice{display:none}.dish-thumb .del-btn{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);width:56px;height:56px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--danger);color:#fff;transition:transform var(--dur) ease-out}.dish-thumb .del-btn .ic{width:24px;height:24px}.dish-thumb .del-btn:active{transform:translate(-50%,-50%) scale(.92)}.dish-add{display:flex;align-items:center;justify-content:center;min-height:120px;border-radius:var(--r-thumb);background:var(--surface);border:1px dashed color-mix(in srgb,var(--ink-3) 58%,transparent);color:var(--ink-3);transition:transform var(--dur) ease-out,background var(--dur) ease-out,border-color var(--dur) ease-out,box-shadow var(--dur) ease-out;cursor:pointer}.dish-add .plus{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--paper);border:1px solid var(--hairline);color:var(--accent);transition:transform var(--dur) ease-out}.dish-add .plus .ic{width:28px;height:28px}.dish-add:active{transform:scale(.98);background:var(--surface-2)}.dish-add:active .plus{transform:scale(.94)}@media (hover: hover){.dish-add:hover{border-color:var(--ink-3);box-shadow:var(--shadow-card)}}.dish-add[disabled]{opacity:.45;cursor:default}.dish-add[disabled]:active{transform:none;background:var(--surface)}.dish-add[disabled]:active .plus{transform:none}@media (hover: hover){.dish-add[disabled]:hover{border-color:color-mix(in srgb,var(--ink-3) 58%,transparent);box-shadow:none}}.dish-body{display:block;padding:13px}.dish-body .name{display:block;font-size:16px;font-weight:700;letter-spacing:-.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dish-body .meta{display:block;margin-top:4px;font-size:12px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dish-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--sp-el)}.dtag{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:var(--r-pill);background:var(--surface);font-size:var(--fs-micro);font-weight:700;color:var(--ink-2);max-width:100%}.dtag .ic{width:12px;height:12px}.dtag .txt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dtag.warn{background:var(--accent-soft);color:var(--accent-ink)}.dtag.note{background:var(--surface);color:var(--ink-2)}.g-0{background:linear-gradient(135deg,#fff0d4,#ffd9a8)}.g-1{background:linear-gradient(135deg,#fdf6ff,#e9dbff)}.g-2{background:linear-gradient(135deg,#e3f4ff,#c5e7ff)}.g-3{background:linear-gradient(135deg,#e9f9e4,#cdf2c6)}.g-4{background:linear-gradient(135deg,#ffe9d9,#ffd1b4)}.g-5{background:linear-gradient(135deg,#fff0ec,#ffd6cd)}.g-6{background:linear-gradient(135deg,#f0f7e0,#dbefc6)}.g-7{background:linear-gradient(135deg,#ffe3df,#ffc8c0)}.g-porridge{background:linear-gradient(135deg,#fff0d4,#ffd9a8)}.g-egg{background:linear-gradient(135deg,#fdf6ff,#e9dbff)}.g-fish{background:linear-gradient(135deg,#e3f4ff,#c5e7ff)}.g-greens{background:linear-gradient(135deg,#e9f9e4,#cdf2c6)}.g-chicken{background:linear-gradient(135deg,#ffe9d9,#ffd1b4)}.g-shrimp{background:linear-gradient(135deg,#fff0ec,#ffd6cd)}.g-cabbage{background:linear-gradient(135deg,#f0f7e0,#dbefc6)}.g-tomato{background:linear-gradient(135deg,#ffe3df,#ffc8c0)}.list{background:var(--paper);border:1px solid var(--hairline);border-radius:var(--r-card);overflow:hidden}.row{display:flex;align-items:center;gap:12px;min-height:52px;width:100%;padding:13px 16px;position:relative;text-align:left;font-size:16px;transition:background var(--dur) ease-out}.row+.row:before{content:"";position:absolute;top:0;left:16px;right:0;border-top:1px solid var(--hairline)}.row .row-ico{color:var(--ink-2);flex:none;width:20px;height:20px}.row .row-label{flex:1;min-width:0;font-weight:500}.row .row-label .sub{display:block;margin-top:3px;font-size:12px;font-weight:400;color:var(--ink-2);line-height:1.45}.row .val{color:var(--ink-2);font-size:15px;font-weight:400;text-align:right;flex:none}.row .chev{color:var(--ink-3);flex:none;width:16px;height:16px}.row.danger .row-label,.row.danger .row-label .sub,.row.danger .val{color:var(--danger-ink)}.row.danger .row-ico{color:var(--danger)}.row:active{background:var(--surface)}.row-static{cursor:default}.row-static:active{background:none}.row-act{flex:none;min-height:var(--hit);padding:0 2px;font-size:var(--fs-callout);font-weight:700;color:var(--accent-ink);transition:transform var(--dur) ease-out,opacity var(--dur) ease-out}.row-act:active{transform:scale(.94);opacity:.55}.switch{position:relative;width:51px;height:31px;flex:none;cursor:pointer}.switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.switch .track,.switch .knob{pointer-events:none}.switch .track{position:absolute;inset:0;border-radius:31px;background:var(--track);transition:background .25s ease-out}.switch .knob{position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:var(--shadow-knob);transition:transform .25s cubic-bezier(.32,.72,0,1)}.switch input:checked~.track{background:var(--ok)}.switch input:checked~.knob{transform:translate(20px)}.switch input:focus-visible~.track{outline:3px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:2px}.seg{display:flex;background:var(--surface-2);border-radius:11px;padding:3px}.seg button{flex:1;min-height:36px;padding:9px 10px;border-radius:9px;font-size:var(--fs-callout);font-weight:500;color:var(--ink-2);transition:all var(--dur) ease-out;cursor:pointer}.seg button.on{background:var(--paper);color:var(--ink);font-weight:700;box-shadow:var(--shadow-seg)}.check-row{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:13px 16px;position:relative;text-align:left;cursor:pointer;font-size:var(--fs-body);font-weight:500;transition:background var(--dur) ease-out}.check-row+.check-row:before{content:"";position:absolute;top:0;left:16px;right:0;border-top:1px solid var(--hairline)}.check-row .cbox{flex:none;width:24px;height:24px;margin-left:auto;border-radius:7px;border:2px solid var(--ink-3);display:flex;align-items:center;justify-content:center;color:transparent;transition:all var(--dur) ease-out}.check-row.on .cbox{background:var(--accent);border-color:var(--accent);color:#fff}.check-row .cbox .ic{width:14px;height:14px}.check-row:active{background:var(--surface)}.level-pick{display:flex;gap:var(--sp-el);flex-wrap:wrap}.level-pick button{min-height:var(--ctl-h);padding:10px 14px;border-radius:var(--r-pill);background:var(--surface);font-size:var(--fs-callout);font-weight:700;color:var(--ink);transition:transform var(--dur) ease-out,background var(--dur) ease-out,color var(--dur) ease-out;cursor:pointer}.level-pick button:active{transform:scale(.95)}.level-pick button.on{background:var(--accent-soft);color:var(--accent-ink)}.level-pick button.on.hard{background:var(--accent-soft);color:var(--danger-ink)}.slider-row{padding:16px}.slider-cap{display:flex;justify-content:space-between;font-size:12px;font-weight:500;color:var(--ink-2);margin-bottom:10px}.slider-cap span:nth-child(2){color:var(--ink);font-weight:700}input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:28px;background:transparent;margin:0;cursor:pointer}input[type=range]::-webkit-slider-runnable-track{height:5px;border-radius:3px;background-color:var(--track);background-image:linear-gradient(90deg,var(--ok),var(--warn));background-repeat:no-repeat;background-size:var(--range-fill, 0%) 100%}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:27px;height:27px;margin-top:-11px;border-radius:50%;background:#fff;box-shadow:var(--shadow-knob);border:1px solid #E0E0E0}input[type=range]::-moz-range-track{height:5px;border-radius:3px;background-color:var(--track);background-image:linear-gradient(90deg,var(--ok),var(--warn));background-repeat:no-repeat;background-size:var(--range-fill, 0%) 100%}input[type=range]::-moz-range-thumb{width:27px;height:27px;border-radius:50%;background:#fff;border:1px solid #E0E0E0;box-shadow:var(--shadow-knob)}.chip-set{display:flex;flex-wrap:wrap;gap:var(--sp-el);padding:14px 16px}.chip-set .chip .ic{width:15px;height:15px}.search-field{display:flex;align-items:center;gap:9px;min-height:var(--hit);padding:12px 13px;border-radius:var(--r-btn);background:var(--surface);border:1px solid transparent;transition:border-color var(--dur) ease-out,background var(--dur) ease-out,box-shadow var(--dur) ease-out}.search-field .ic{color:var(--ink-3);flex:none;width:18px;height:18px}.search-field input{flex:1;min-width:0;border:0;background:none;outline:none;font:inherit;font-size:var(--fs-body);color:var(--ink)}.search-field input::placeholder{color:var(--ink-3)}.search-field:focus-within{background:var(--paper);border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.add-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:var(--hit);padding:13px 16px;border-radius:var(--r-btn);background:var(--accent-soft);font-size:14px;font-weight:700;color:var(--accent-ink);cursor:pointer;transition:transform var(--dur) ease-out,background var(--dur) ease-out}.add-btn .ic{width:17px;height:17px}.add-btn:active{transform:scale(.97)}.add-btn.quiet{background:var(--surface);color:var(--ink)}.dish-form .f-row{padding:14px 16px;position:relative}.dish-form .f-row+.f-row:before{content:"";position:absolute;top:0;left:16px;right:0;border-top:1px solid var(--hairline)}.dish-form .f-top{display:flex;align-items:baseline;gap:var(--sp-el);margin-bottom:9px}.dish-form .f-lb{font-size:14px;font-weight:700}.dish-form .f-hint{margin-left:auto;font-size:12px;font-weight:400;color:var(--ink-2);font-variant-numeric:tabular-nums}.dish-form .f-row.inline{display:flex;align-items:center;gap:12px;min-height:56px}.dish-form .f-row.inline .f-lb{flex:none}.dish-form .f-row.inline .f-hint{margin-left:0}.dish-form .f-row.inline .f-ctl{margin-left:auto;display:flex;align-items:center;gap:var(--sp-el)}.dish-form .search-field{margin-bottom:0}.dish-form .chip-set{padding:0}.dish-form .f-unit{flex:none;font-size:var(--fs-callout);color:var(--ink-2)}.dish-form .num-in{width:92px;flex:none}.dish-form .num-in input{text-align:center;font-variant-numeric:tabular-nums}.dish-form .ing-line .num input:read-only{cursor:default;color:var(--ink-3)}.dish-form .f-empty{margin:0;padding:14px 16px;font-size:var(--fs-callout);line-height:1.5;color:var(--ink-2)}.dish-form .f-textarea{display:block;width:100%;min-height:84px;padding:12px 13px;border:1px solid transparent;border-radius:var(--r-btn);background:var(--surface);color:var(--ink);font:inherit;font-size:14px;line-height:1.55;resize:vertical;transition:border-color var(--dur) ease-out,background var(--dur) ease-out}.dish-form .f-textarea::placeholder{color:var(--ink-3)}.dish-form .f-textarea:focus{outline:none;background:var(--paper);border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.dish-form .ing-edit{padding:14px 16px;position:relative}.dish-form .ing-edit+.ing-edit:before,.dish-form .step-edit+.step-edit:before{content:"";position:absolute;top:0;left:16px;right:0;border-top:1px solid var(--hairline)}.dish-form .ing-line{display:flex;align-items:center;gap:var(--sp-el)}.dish-form .ing-line+.ing-line{margin-top:var(--sp-el)}.dish-form .ing-line .grow{flex:1 1 110px;min-width:0}.dish-form .ing-line .num,.dish-form .ing-line .unit{flex:0 0 82px}.dish-form .ing-line .cat{flex:1 1 140px;min-width:0}.dish-form .step-edit{display:flex;align-items:center;gap:10px;padding:12px 16px;position:relative}.dish-form .step-edit .no{flex:none;width:26px;height:26px;border-radius:50%;background:var(--surface);color:var(--ink-2);display:flex;align-items:center;justify-content:center;font-size:var(--fs-callout);font-weight:700;font-variant-numeric:tabular-nums}.dish-form .step-edit .grow{flex:1;min-width:0}.dish-form .del-btn{flex:none;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--surface);color:var(--ink-3);cursor:pointer;transition:background var(--dur) ease-out,transform var(--dur) ease-out}.dish-form .del-btn:active{transform:scale(.9);background:var(--surface-2)}.dish-form .del-btn .ic{width:17px;height:17px}.dish-form .select-wrap{position:relative;display:flex;align-items:center;min-height:var(--hit);border-radius:var(--r-btn);background:var(--surface);transition:background var(--dur) ease-out}.dish-form .select-wrap:active{background:var(--surface-2)}.dish-form .select-wrap select{appearance:none;-webkit-appearance:none;width:100%;height:var(--hit);padding:0 30px 0 13px;border:0;background:none;color:var(--ink);font:inherit;font-size:14px;cursor:pointer}.dish-form .select-wrap .chev{position:absolute;right:11px;width:16px;height:16px;transform:rotate(90deg);color:var(--ink-2);pointer-events:none}.pick-row{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:11px 12px;position:relative;text-align:left;cursor:pointer;transition:background var(--dur) ease-out}.pick-row+.pick-row:before{content:"";position:absolute;top:0;left:0;right:0;border-top:1px solid var(--hairline)}.pick-row:active{background:var(--surface)}.pick-row .pick-thumb{width:var(--hit);height:var(--hit);flex:none;border-radius:var(--r-btn);display:flex;align-items:center;justify-content:center;font-size:24px;line-height:1}.pick-row .pick-main{flex:1;min-width:0}.pick-row .pick-main .nm{font-size:16px;font-weight:700}.pick-row .pick-main .sub{display:block;font-size:12px;color:var(--ink-2);margin-top:3px}.pick-row .chev{color:var(--ink-3);flex:none;width:16px;height:16px}.progress-wrap{display:flex;align-items:center;gap:12px;margin:14px 2px 0}.progress-track{flex:1;height:7px;border-radius:4px;background:var(--track);overflow:hidden}.progress-fill{width:0;height:100%;border-radius:4px;background:var(--ok);transition:width .4s var(--ease-sheet)}.progress-num{font-size:var(--fs-callout);font-weight:700;color:var(--ink-2);font-variant-numeric:tabular-nums;flex:none}.sec-head{display:flex;align-items:center;gap:var(--sp-el);margin:24px 12px 9px;font-size:15px;font-weight:700}.sec-head .cnt{color:var(--ink-3);font-weight:700;font-size:var(--fs-callout)}.sec-head .hint{margin-left:auto;font-size:12px;font-weight:500;color:var(--ink-3)}.shop-row{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;position:relative;cursor:pointer;transition:opacity var(--dur) ease-out}.shop-row+.shop-row:before,.shop-row.first:before{content:"";position:absolute;top:0;left:16px;right:0;border-top:1px solid var(--hairline)}.shop-row .check{flex:none;width:26px;height:26px;margin-top:2px;border-radius:50%;border:2px solid var(--ink-3);display:flex;align-items:center;justify-content:center;color:transparent;transition:all var(--dur) ease-out}.shop-row .check .ic{width:15px;height:15px}.shop-row .main{flex:1;min-width:0}.shop-row .name{font-size:16px;font-weight:700;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.source-note{display:block;font-size:12px;color:var(--ink-3);margin-top:3px}.shop-row .main .source-note{padding-left:0}.shop-row .qty{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;flex:none}.shop-row .qty .unit-note{display:block;text-align:right;font-size:var(--fs-micro);font-weight:700;color:var(--normalized-ink)}.shop-row.checked{opacity:.45}.shop-row.checked .check{background:var(--ok);border-color:var(--ok);color:#fff}.shop-row.checked .name{text-decoration:line-through}.mini-tag{font-size:var(--fs-micro);font-weight:700}.mini-tag.default{color:var(--badge-ink)}.mini-tag.custom{color:var(--ok-ink)}.mini-tag.edited{color:var(--badge-ink)}details.fold{background:var(--paper);border:1px solid var(--hairline);border-radius:var(--r-card);overflow:hidden}details.fold summary{display:flex;align-items:center;gap:10px;min-height:54px;padding:15px 16px;font-size:15px;font-weight:700;cursor:pointer;list-style:none}details.fold summary::-webkit-details-marker{display:none}details.fold summary .chev{margin-left:auto;transition:transform var(--dur) ease-out;color:var(--ink-3);width:17px;height:17px}details.fold[open] summary .chev{transform:rotate(90deg)}details.fold summary .sub{font-size:12px;font-weight:400;color:var(--ink-2)}details.fold summary+*{border-top:1px solid var(--hairline)}.maybe-link{display:block;margin:0 16px 4px auto;padding:6px 0;font-size:var(--fs-callout);font-weight:700;color:var(--accent-ink)}.act-row{display:flex;gap:10px;margin-top:var(--sp-page)}.act-row .pill-btn{flex:1;min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:15px 12px;border-radius:var(--r-thumb);background:var(--paper);border:1px solid var(--hairline);font-size:14px;font-weight:700;color:var(--ink);transition:transform var(--dur) ease-out,background var(--dur) ease-out;cursor:pointer}.act-row .pill-btn:active{transform:scale(.96);background:var(--surface)}.act-row .pill-btn .ic{width:18px;height:18px;color:var(--accent)}.foot-note{margin-top:18px;font-size:12px;color:var(--ink-3);text-align:center;line-height:1.6}.backdrop{position:fixed;inset:0;z-index:90;background:#0006;opacity:0;pointer-events:none;transition:opacity var(--dur) ease-out;touch-action:none;overscroll-behavior:contain}.backdrop.show{opacity:1;pointer-events:auto}.sheet{position:fixed;z-index:100;left:50%;transform:translate(-50%,105%);bottom:0;width:min(100vw,var(--content-w));background:var(--paper);border-radius:var(--r-sheet) var(--r-sheet) 0 0;padding:var(--sp-page) var(--sp-page) calc(24px + env(safe-area-inset-bottom));box-shadow:var(--shadow-sheet);transition:transform .42s var(--ease-sheet);max-height:82vh;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}.sheet::-webkit-scrollbar{display:none}.sheet.show{transform:translate(-50%)}.sheet.centered{bottom:auto;top:50%;max-height:min(84vh,760px);border-radius:var(--r-sheet);padding-bottom:var(--sp-page);opacity:0;transform:translate(-50%,calc(-50% + 16px)) scale(.98);transition:transform .32s var(--ease-sheet),opacity .24s ease-out}.sheet.centered.show{transform:translate(-50%,-50%) scale(1);opacity:1}.sheet .grabber{width:38px;height:5px;border-radius:3px;background:var(--ink-3);margin:4px auto 14px}.sheet h3{margin:0 0 4px;font-size:var(--fs-title);font-weight:700}.sheet .desc{font-size:var(--fs-callout);color:var(--ink-2);margin:0 0 16px;line-height:1.5}.sheet .sheet-head{display:flex;align-items:center;gap:10px}.sheet .sheet-head h3{flex:1;margin:0}.sheet-x{flex:none;width:var(--hit);height:var(--hit);margin-right:-10px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--surface);color:var(--ink-2);cursor:pointer;transition:transform var(--dur) ease-out,background var(--dur) ease-out}.sheet-x .ic{width:17px;height:17px}.sheet-x:active{transform:scale(.9);background:var(--surface-2)}.sheet .seg{margin-bottom:16px}.sheet .btns{display:flex;gap:10px}.sheet .btns .cta{margin-top:0;min-height:50px;font-size:16px;padding:15px 20px}.toast{position:fixed;z-index:120;left:50%;bottom:calc(96px + env(safe-area-inset-bottom));transform:translate(-50%,10px);max-width:min(88vw,480px);display:flex;align-items:center;justify-content:center;gap:14px;background:var(--info-soft);color:var(--ink);font-size:14px;font-weight:700;padding:13px 18px;border-radius:var(--r-thumb);box-shadow:var(--shadow-toast);opacity:0;pointer-events:none;transition:opacity .2s ease-out,transform .25s var(--ease-sheet);text-align:center}.toast.show{opacity:1;transform:translate(-50%)}.toast-act{flex:none;pointer-events:auto;min-height:32px;padding:0 4px;font-size:14px;font-weight:700;color:var(--accent-ink);transition:transform var(--dur) ease-out;cursor:pointer}.toast-act:active{transform:scale(.94)}body:has(.edit-bar) .toast{bottom:calc(var(--tabbar-gap) + var(--tabbar-h) + 8px + var(--editbar-h) + 10px + env(safe-area-inset-bottom))}.dish-hero{margin-top:6px;border-radius:20px;border:1px solid var(--hairline);display:flex;align-items:center;justify-content:center;min-height:230px;overflow:hidden}.dish-hero .emoji{font-size:104px;filter:drop-shadow(0 12px 18px rgba(0,0,0,.12))}.dish-title{margin-top:var(--sp-group)}.dish-title h2{margin:0;font-size:30px;font-weight:700;letter-spacing:-.4px}.dish-title .attrs{margin:6px 0 0;color:var(--ink-2);font-size:14px}.dish-title .state-tags{display:flex;gap:var(--sp-el);margin-top:12px;flex-wrap:wrap}.stag{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:var(--r-pill);background:var(--surface);font-size:var(--fs-callout);font-weight:700;color:var(--ink-2)}.stag .ic,.stag.lock{color:var(--ink-2)}.stag:disabled{cursor:default;opacity:1}.stag .ic-sm{width:13px;height:13px}.ing-row{display:flex;align-items:baseline;gap:10px;padding:12px 16px;position:relative;font-size:16px}.ing-row+.ing-row:before{content:"";position:absolute;top:0;left:16px;right:0;border-top:1px solid var(--hairline)}.ing-row .iname{flex:1;font-weight:500}.ing-row .iname .opt{color:var(--ink-3);font-size:12px;margin-left:6px}.ing-row .iqty{font-weight:700;font-variant-numeric:tabular-nums}.ing-note{margin:0;padding:12px 16px;font-size:12px;color:var(--ink-2)}.step{display:flex;align-items:flex-start;gap:12px;padding:13px 16px;position:relative;cursor:pointer}.step+.step:before{content:"";position:absolute;top:0;left:16px;right:0;border-top:1px solid var(--hairline)}.step .no{flex:none;width:26px;height:26px;margin-top:1px;border-radius:50%;background:var(--surface);color:var(--ink-2);display:flex;align-items:center;justify-content:center;font-size:var(--fs-callout);font-weight:700;transition:background var(--dur) ease-out,color var(--dur) ease-out}.step .txt{flex:1;font-size:16px;line-height:1.55;transition:color var(--dur) ease-out}.step .check{flex:none;width:17px;height:17px;margin-top:5px;color:var(--ok);opacity:0;transition:opacity var(--dur) ease-out}.step.done .no{background:var(--ok-soft);color:var(--ok-ink)}.step.done .txt{color:var(--ink-2)}.step.done .check{opacity:1}.tip-box{display:flex;gap:10px;padding:14px 16px;background:var(--warn-soft);border-radius:var(--r-thumb);font-size:14px;line-height:1.5}.tip-box .ic{color:var(--warn);flex:none;margin-top:1px;width:18px;height:18px}.stepper.ro{padding:0 14px}.stepper.ro .val{min-width:0;padding:0;display:inline-flex;align-items:center;justify-content:center;gap:4px;font-weight:700}.stepper.ro .val .ic-sm{width:14px;height:14px}.meal-card.ro .dish-card{cursor:pointer}.meal-card.ro .dish-thumb .lock-badge.ro{pointer-events:none}.avoid-item{padding:14px 16px;position:relative}.avoid-item+.avoid-item:before{content:"";position:absolute;top:0;left:16px;right:0;border-top:1px solid var(--hairline)}.avoid-item .top{display:flex;align-items:center;gap:10px;margin-bottom:10px}.avoid-item .top .lb{flex:1;font-size:16px;font-weight:700}.avoid-item .top .del{width:var(--hit);height:var(--hit);flex:none;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--surface);color:var(--ink-3);transition:background var(--dur) ease-out,transform var(--dur) ease-out;cursor:pointer}.avoid-item .top .del .ic{width:17px;height:17px}.avoid-item .top .del:active{transform:scale(.9);background:var(--surface-2)}.avoid-item .hint{margin:10px 0 0;font-size:12px;color:var(--ink-2);line-height:1.45}.form-row{display:flex;gap:10px;margin-bottom:10px}.form-row .search-field{margin-bottom:0}.form-row .qty-in{width:92px;flex:none}.form-row .unit-in{width:78px;flex:none}.state-hint{font-size:var(--fs-callout);color:var(--ink-2)}.meal-act[disabled],.circle-btn[disabled]{opacity:.45;cursor:default}.meal-act[disabled]:active,.circle-btn[disabled]:active{transform:none}.sheet{visibility:hidden;transition:transform .42s var(--ease-sheet),visibility 0s linear .42s}.sheet.show{visibility:visible;transition-delay:0s}.sheet.centered{transition:transform .32s var(--ease-sheet),opacity .24s ease-out,visibility 0s linear .32s}.sheet.centered.show{transition-delay:0s}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.datebar{scroll-behavior:auto}.dish-card.editing{animation:dish-jiggle-soft calc(.9s + var(--jiggle-n, 0) * 60ms) ease-in-out infinite alternate!important;animation-delay:calc(var(--jiggle-n, 0) * -70ms)!important}}@media (max-width: 640px){.page{padding-left:14px;padding-right:14px}.hero-title h1{font-size:28px}.dish-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.dish-hero{min-height:200px}.dish-hero .emoji{font-size:84px}.meal-head .m-name{font-size:18px}.dish-title h2{font-size:26px}}
