:root{--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--ease: cubic-bezier(.2, .8, .2, 1);--on-accent: #FFFFFF;--scrim: rgba(15, 23, 42, .55);--pie-gap: var(--bg-1)}:root,:root[data-sb=light]{color-scheme:light;--bg-0: #FFF8F0;--bg-0-soft: #FFFBF5;--bg-sunk: #F8F5F0;--bg-1: #FFFFFF;--bg-1-soft: #F9FAFB;--bg-2: #F3F4F6;--line: #E5E7EB;--line-strong: #D1D5DB;--line-warm: #F1E0CC;--line-warm-soft: #F0E6D6;--ink: #1A1A2E;--ink-2: #374151;--ink-muted: #6B7280;--ink-faint: #9CA3AF;--accent: #E85D04;--accent-fill: #E85D04;--accent-hover: #EA580C;--accent-ink: #C94E02;--accent-deep: #9A3412;--accent-darkest: #3B1F0A;--accent-soft: #FB923C;--accent-line: #FED7AA;--accent-quiet: #FFF3E6;--rust: #B91C1C;--rust-line: #FECACA;--rust-quiet: #FEE2E2;--ok: #065F46;--ok-strong: #16A34A;--ok-line: #A7F3D0;--ok-quiet: #ECFDF5;--info: #0369A1;--info-line: #BAE6FD;--info-quiet: #F0F9FF;--warn: #F59E0B;--warn-ink: #92400E;--warn-quiet: #FEF3C7;--cook: #FFD60A;--inverse-bg: #1A1A2E;--inverse-ink: #FFFFFF;--pot-body: #FFF3E6;--pot-rim: #3D1100;--pot-steam: #D1D5DB;--shadow-rgb: 60 30 0;--shadow-c: rgb(var(--shadow-rgb) / .08);--sh-1: 0 2px 8px rgb(var(--shadow-rgb) / .07);--sh-2: 0 4px 14px rgb(var(--shadow-rgb) / .11);--sh-3: 0 14px 36px rgb(var(--shadow-rgb) / .22);--sh-up: 0 -4px 12px rgb(var(--shadow-rgb) / .08);--sh-up-lg: 0 -10px 40px rgb(var(--shadow-rgb) / .22)}:root[data-sb=dark]{color-scheme:dark;--bg-0: #16110E;--bg-0-soft: #1B1511;--bg-sunk: #120E0B;--bg-1: #221B16;--bg-1-soft: #261E19;--bg-2: #2E251F;--line: #3B3029;--line-strong: #4D4037;--line-warm: #3E3027;--line-warm-soft: #33281F;--ink: #F4ECE4;--ink-2: #DCD1C6;--ink-muted: #A99D91;--ink-faint: #857A70;--accent: #FF8A3D;--accent-fill: #C2410C;--accent-hover: #FF9A55;--accent-ink: #FFA463;--accent-deep: #FFB37A;--accent-darkest: #FCE3CF;--accent-soft: #FB923C;--accent-line: #5A3418;--accent-quiet: #2E2015;--rust: #F87171;--rust-line: #6B2B26;--rust-quiet: #3B1C1A;--ok: #6EE7B7;--ok-strong: #34D399;--ok-line: #1F5139;--ok-quiet: #12291F;--info: #7DD3FC;--info-line: #1E4A63;--info-quiet: #0F2433;--warn: #FBBF24;--warn-ink: #FCD34D;--warn-quiet: #3A2E10;--cook: #FFD60A;--inverse-bg: #F4ECE4;--inverse-ink: #1A1310;--pot-body: #3A2A1E;--pot-rim: #E9D3BF;--pot-steam: #6B5E54;--shadow-rgb: 0 0 0;--shadow-c: rgb(var(--shadow-rgb) / .3);--sh-1: 0 2px 8px rgb(var(--shadow-rgb) / .35);--sh-2: 0 4px 14px rgb(var(--shadow-rgb) / .45);--sh-3: 0 14px 36px rgb(var(--shadow-rgb) / .6);--sh-up: 0 -4px 12px rgb(var(--shadow-rgb) / .35);--sh-up-lg: 0 -10px 40px rgb(var(--shadow-rgb) / .6)}:root{--sb-nav-height: 60px;--sb-rail-width: 0px;--sb-col-max: 560px;--sb-col-center: calc(var(--sb-rail-width) + (100% - var(--sb-rail-width)) / 2);--sb-edge-l: 0px;--sb-edge-r: 0px}:root[data-sb-layout=tablet]{--sb-col-max: 720px}:root[data-sb-layout=wide]{--sb-col-max: 960px;--sb-nav-height: 0px;--sb-rail-width: 104px}:root[data-sb-layout=land]{--sb-col-max: 760px;--sb-nav-height: 0px;--sb-edge-l: env(safe-area-inset-left, 0px);--sb-edge-r: env(safe-area-inset-right, 0px);--sb-rail-width: calc(76px + var(--sb-edge-l))}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;touch-action:manipulation;scroll-padding-top:calc(var(--sb-header-height, 72px) + 8px)}body{overflow-x:clip}html:has(>body[style*="overflow: hidden"]){overflow:hidden}#app{width:100%;max-width:var(--sb-col-max);min-height:100vh;min-height:100dvh;margin:0 auto;padding-bottom:calc(var(--sb-nav-height) + env(safe-area-inset-bottom,0px));background:var(--bg-0);position:relative;display:flex;flex-direction:column}:root:is([data-sb-layout=wide],[data-sb-layout=land]) body{padding-left:var(--sb-rail-width);padding-right:var(--sb-edge-r)}:root:not([data-sb-layout=phone]) .app-header{box-shadow:0 0 0 100vmax var(--accent-fill);clip-path:inset(0 -100vmax)}.bottom-nav{position:fixed;left:0;right:0;bottom:0;box-sizing:border-box;padding-bottom:env(safe-area-inset-bottom,0px);background:var(--bg-1);border-top:1px solid var(--line);box-shadow:var(--sh-up);z-index:40}.btm-nav-row{display:flex;max-width:var(--sb-col-max);height:var(--sb-nav-height);margin:0 auto}.btm-nav-brand{display:none}:root:is([data-sb-layout=wide],[data-sb-layout=land]) .bottom-nav{top:0;right:auto;width:var(--sb-rail-width);padding:16px 0 max(16px,env(safe-area-inset-bottom,0px)) var(--sb-edge-l);border-top:0;border-right:1px solid var(--line);box-shadow:none;display:flex;flex-direction:column}:root:is([data-sb-layout=wide],[data-sb-layout=land]) .btm-nav-row{flex-direction:column;height:auto;gap:4px;margin:0}:root:is([data-sb-layout=wide],[data-sb-layout=land]) .btm-nav-btn{flex:none;min-height:64px;padding:10px 4px}:root:is([data-sb-layout=wide],[data-sb-layout=land]) .btm-nav-brand{display:flex;justify-content:center;padding-bottom:16px}.btm-nav-brand img{width:40px;height:40px}:root[data-sb-layout=land] .btm-nav-label{font-size:10px}:root[data-sb-layout=land] .btm-nav-btn{min-height:56px}:root:not([data-sb-layout=phone]) .carb-grid{grid-template-columns:repeat(3,1fr)}:root[data-sb-layout=wide] .carb-grid{grid-template-columns:repeat(4,1fr)}.recipe-layout{display:block}:root:is([data-sb-layout=tablet],[data-sb-layout=wide]) .recipe-layout{display:grid;grid-template-columns:minmax(260px,320px) 1fr;gap:20px;align-items:start}:root:is([data-sb-layout=tablet],[data-sb-layout=wide]) .recipe-layout__side{position:sticky;top:calc(var(--sb-header-height, 120px) + 12px)}:root:is([data-sb-layout=tablet],[data-sb-layout=wide]) .recipe-layout__side .card-panel__body{display:block}:root:is([data-sb-layout=tablet],[data-sb-layout=wide]) .recipe-layout__side .card-panel__chevron{display:none}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg-0);color:var(--ink);font-family:var(--font-sans)}button,input,select,textarea{font-family:inherit}.screen{display:none;flex-direction:column;flex:1;overflow:hidden}.screen.active{display:flex}.app-header{background:var(--accent-fill);padding:16px;flex-shrink:0;display:flex;flex-direction:column;gap:8px;position:sticky;top:0;z-index:30}.app-header__row1{display:flex;align-items:flex-start;gap:10px;width:100%;position:relative}.app-header--stacked .app-header__row1{justify-content:center}.app-header--stacked .app-header__titles{flex:0 1 auto;text-align:center}.app-header--stacked .app-header__titles h1{justify-content:center}.app-header__row2{display:flex;align-items:flex-start;justify-content:space-evenly;gap:8px;width:100%}.recipe-action{display:flex;flex-direction:column;align-items:center;gap:4px}.recipe-action-label{font-size:11px;font-weight:600;color:var(--on-accent);letter-spacing:.2px;white-space:nowrap}.app-header__titles{flex:1;min-width:0}.app-header__titles h1{font-size:22px;font-weight:800;color:var(--on-accent);letter-spacing:-.3px;margin:0;display:flex;align-items:center;gap:6px}.app-header__titles h1 [data-icon]{width:20px;height:20px}.app-header__titles h1 .header-emoji{font-size:20px}.app-header__titles .subtitle{font-size:13px;color:#ffffffd9;margin:2px 0 0}.app-header__actions{display:flex;align-items:center;gap:8px;flex-shrink:0;align-self:center}.app-header__back{background:#ffffff26;border:1px solid rgba(255,255,255,.3);color:var(--on-accent);width:32px;height:32px;border-radius:999px;padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;align-self:center;-webkit-tap-highlight-color:transparent;transition:background .15s}@media (hover: hover){.app-header__back:hover{background:#ffffff40}}.app-header__back [data-icon]{width:18px;height:18px}.scroll-body{flex:1;padding:0 0 32px}.scroll-body--padded{padding:16px 16px 32px}.text-muted{color:var(--ink-muted)}.text-faint{color:var(--ink-faint)}.inline-error{color:var(--rust);padding:8px 0}.row-detail{font-size:12px;color:var(--ink-2);margin-top:4px}.empty-state{padding:48px 24px;text-align:center;color:var(--ink-faint);font-size:14px}button:not(:disabled):active,a:active,[role=button]:active{filter:brightness(.92)}.admin-sauce-row[onclick]:active,.pantry-row:active,.ingredient-category-header:active,.dish-tree-item:active,.legend-item[onclick]:active{background:var(--bg-2);filter:none}.carb-card:active,.source-card--action:active{transform:scale(.985)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.admin-sauce-row:focus-visible,.pantry-row:focus-visible,.ingredient-category-header:focus-visible,.dish-tree-item:focus-visible,.swipe-row:focus-visible{outline-offset:-3px}.sb-vis-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.sb-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:40px 32px 32px;color:var(--ink)}.sb-state__illo{display:block;width:180px;height:135px;margin-bottom:12px}.sb-state__illo svg{width:100%;height:100%}.sb-state__title{font-size:19px;font-weight:700;margin-bottom:6px}.sb-state__body{font-size:14px;color:var(--ink-muted);max-width:300px;line-height:1.5;margin-bottom:18px}.sb-state__action{flex:none;min-width:180px;padding:0 24px;display:inline-flex;align-items:center;justify-content:center;gap:8px}.sb-state__action [data-icon]{width:18px;height:18px}.sb-skel-list{padding:4px 0}.sb-skel-row{display:flex;align-items:center;gap:12px;min-height:56px;padding:0 16px;border-bottom:1px solid var(--bg-2);background:var(--bg-1)}.sb-skel-lines{flex:1;display:flex;flex-direction:column;gap:6px}.sb-skel{display:block;border-radius:6px;background:linear-gradient(90deg,var(--bg-2) 25%,var(--line) 37%,var(--bg-2) 63%);background-size:400% 100%;animation:sbShimmer 1.3s ease infinite;animation-delay:calc(var(--i, 0) * 60ms)}.sb-skel--dot{width:10px;height:10px;border-radius:50%}.sb-skel--line{height:12px;width:55%}.sb-skel--short{width:30%;height:10px}@keyframes sbShimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.meal-section{margin-bottom:16px}.meal-section-label{background:var(--section-color, var(--accent-fill));color:var(--on-accent);font-size:12px;font-weight:700;padding:6px 12px;border-radius:8px 8px 0 0;letter-spacing:.4px;text-transform:uppercase}.meal-section-label--protein{--section-color: #C94E02}.meal-section-label--salad{--section-color: #2D6A4F}.meal-section-label--carb{--section-color: #1565C0}.meal-section .step-card:first-of-type{border-radius:0 0 12px 12px;margin-top:0;border-top:none}.meal-section .step-card:only-of-type{border-radius:0 0 12px 12px}.meal-section .step-card+.step-card{margin-top:12px;border-radius:12px}.step-viz{display:flex;flex-direction:row;align-items:flex-start;gap:12px;margin-top:8px;flex-wrap:wrap}.step-viz .pie-chart{flex-shrink:0}.step-viz .step-legend{flex:1;min-width:180px}.recipe-controls{display:flex;align-items:center;justify-content:space-between;margin:12px 0 16px;gap:12px}.servings-control{display:flex;flex-direction:row;align-items:center;gap:8px;background:var(--bg-1);border:1px solid var(--line);border-radius:999px;padding:4px 6px}.serving-btn{width:32px;height:32px;border-radius:16px;border:none;background:var(--bg-0);color:var(--accent);font-size:18px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.serving-btn:disabled{opacity:.35;cursor:default}.servings-label{min-width:92px;text-align:center;font-size:14px;font-weight:700;color:var(--ink)}.unit-toggle{background:var(--bg-1);border:1.5px solid var(--accent);border-radius:999px;padding:8px 14px;font-size:13px;font-weight:700;color:var(--accent);cursor:pointer;-webkit-tap-highlight-color:transparent}@media (hover: hover){.unit-toggle:hover{background:var(--bg-0)}}.carb-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:4px}.carb-card{background:var(--bg-1);border-radius:16px;padding:20px 12px 16px;text-align:center;cursor:pointer;border:2.5px solid transparent;box-shadow:var(--sh-1);transition:transform .15s,border-color .15s,box-shadow .15s;-webkit-tap-highlight-color:transparent}.carb-card:active{transform:scale(.96)}@media (hover: hover){.carb-card:hover{border-color:var(--accent);box-shadow:0 4px 14px #e85d0433}}.carb-emoji{font-size:44px;display:block;margin-bottom:8px}.carb-name{font-size:15px;font-weight:700;color:var(--ink)}.carb-desc{font-size:11px;color:var(--ink-muted);margin-top:2px}.cat-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:4px 0 8px;border-bottom:1px solid var(--line-warm-soft)}.cat-tab{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px 12px;background:transparent;border:none;border-bottom:2px solid transparent;font-size:13px;font-weight:700;color:var(--ink-muted);cursor:pointer;transition:color .15s,border-color .15s;margin-bottom:-1px;-webkit-tap-highlight-color:transparent}.cat-tab [data-icon]{width:22px;height:22px}@media (hover: hover){.cat-tab:hover{color:var(--accent-ink)}}.cat-tab--active{color:var(--accent);border-bottom-color:var(--accent)}.section-label{font-size:18px;font-weight:700;letter-spacing:.2px;color:var(--ink);padding:0 16px;margin-bottom:10px}.card-panel{background:var(--bg-1);border-radius:14px;box-shadow:var(--sh-1);overflow:hidden}.card-panel__header{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;cursor:pointer;background:var(--bg-1);border:none;width:100%;text-align:left;font-size:14px;font-weight:700;color:var(--ink)}.card-panel__header-text{display:inline-flex;align-items:center;gap:6px}.card-panel__header-text [data-icon]{width:16px;height:16px}.card-panel__count{background:var(--accent-fill);color:var(--on-accent);font-size:11px;font-weight:700;padding:2px 7px;border-radius:10px;margin-left:6px}.card-panel__chevron{color:var(--ink-faint);transition:transform .2s;display:inline-flex}.card-panel__chevron.open{transform:rotate(180deg)}.card-panel__chevron [data-icon]{width:14px;height:14px;transition:transform .25s}.card-panel__chevron.open [data-icon]{transform:rotate(180deg)}.card-panel__body{padding:0 14px 12px;display:none}.card-panel__body.open{display:block}.toggle-chip{padding:5px 12px;border-radius:999px;border:1.5px solid var(--line);background:var(--bg-1);font-size:12px;font-weight:600;color:var(--ink-2);cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent}@media (hover: hover){.toggle-chip:hover{border-color:var(--accent);background:var(--accent-quiet);color:var(--accent)}}.toggle-chip--active{background:var(--accent-fill);color:var(--on-accent);border-color:var(--accent)}.ingredient-chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border-radius:20px;font-size:12px;font-weight:600;cursor:pointer;border:2px solid var(--line);background:var(--bg-1);color:var(--ink-2);transition:all .15s;-webkit-tap-highlight-color:transparent}.chip.has{border-color:var(--ok-quiet);background:var(--ok-quiet);color:var(--ok)}.chip.missing{border-color:var(--rust-quiet);background:var(--rust-quiet);color:var(--rust);text-decoration:line-through;opacity:.7}.ingredient-section{margin-bottom:10px}.ingredient-section:last-child{margin-bottom:0}.ingredient-section-label{font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-faint);margin-bottom:6px;display:flex;align-items:center;gap:4px}.section-label-icon{color:var(--warn);font-size:13px}.section-label-detail{font-weight:500;text-transform:none;letter-spacing:0;color:var(--ink-faint)}.cuisine-flag-emoji{font-size:16px;line-height:1}.flag-img{height:14px;width:auto;vertical-align:middle}.sauce-dot{background:var(--sauce-color, var(--accent));width:10px;height:10px;border-radius:50%;margin-right:10px;flex-shrink:0}.sauce-missing-badge{font-size:10px;background:var(--rust-quiet);color:var(--rust);padding:2px 6px;border-radius:8px;margin-right:6px}.recipe-action-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:999px;border:1px solid var(--line);background:var(--bg-1);color:var(--ink-2);cursor:pointer;text-decoration:none;transition:background .15s,color .15s}@media (hover: hover){.recipe-action-btn:hover{background:var(--bg-2)}}.recipe-action-btn [data-icon]{width:18px;height:18px}.recipe-action-btn--active{background:var(--accent-fill);border-color:var(--accent);color:var(--on-accent)}@media (hover: hover){.recipe-action-btn--active:hover{background:var(--accent-ink)}}.app-header__actions .recipe-action-btn{width:32px;height:32px;border:none;background:transparent;color:var(--ink-2)}@media (hover: hover){.app-header__actions .recipe-action-btn:hover{background:rgb(var(--shadow-rgb) / .06)}}.app-header__actions .recipe-action-btn--active{background:var(--accent-fill);color:var(--on-accent)}@media (hover: hover){.app-header__actions .recipe-action-btn--active:hover{background:var(--accent-ink)}}.app-header__actions .recipe-action-btn [data-icon]{width:18px;height:18px}.app-header__row2 .recipe-action-btn{width:40px;height:40px;background:#ffffff2e;border:1px solid rgba(255,255,255,.3);color:var(--on-accent)}@media (hover: hover){.app-header__row2 .recipe-action-btn:hover{background:#ffffff4d}}.app-header__row2 .recipe-action-btn--active{background:var(--on-accent);border-color:var(--on-accent);color:var(--accent-fill)}@media (hover: hover){.app-header__row2 .recipe-action-btn--active:hover{background:var(--on-accent)}}.app-header__row2 .recipe-action-btn [data-icon]{width:20px;height:20px}.recipe-action-btn--cooking-on,.app-header__row2 .recipe-action-btn--cooking-on{background:var(--cook);border-color:var(--cook);color:var(--ink);box-shadow:0 0 0 4px #ffd60a59,0 0 18px 4px #ffd60a8c}@media (hover: hover){.recipe-action-btn--cooking-on:hover,.app-header__row2 .recipe-action-btn--cooking-on:hover{background:var(--cook)}}.recipe-footnote{margin-top:24px;padding:16px 4px 8px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line)}.recipe-footnote__author{font-size:13px;color:var(--ink-muted);font-style:italic}.recipe-edit-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;background:var(--accent-fill);color:var(--on-accent);font-size:13px;font-weight:600;border:none;cursor:pointer;min-height:36px;-webkit-tap-highlight-color:transparent;transition:background .15s}@media (hover: hover){.recipe-edit-btn:hover{background:var(--accent-ink)}}.recipe-edit-btn [data-icon]{width:14px;height:14px}.toast{position:fixed;left:var(--sb-col-center);bottom:calc(var(--sb-nav-height) + env(safe-area-inset-bottom,0px) + 28px);transform:translate(-50%) translateY(8px);background:var(--inverse-bg);color:var(--inverse-ink);padding:10px 16px;border-radius:999px;font-size:13px;font-weight:500;box-shadow:var(--sh-3);opacity:0;transition:opacity .2s ease,transform .2s ease;z-index:45;pointer-events:none}.toast--visible{opacity:1;transform:translate(-50%) translateY(0)}.sub-banner{background:var(--warn-quiet);border-radius:12px;padding:10px 14px;margin:0 0 12px;font-size:12px;color:var(--warn-ink);line-height:1.6}.sub-banner strong{display:block;margin-bottom:2px;font-size:13px}.recipe-ingredient-list{list-style:none;padding:0;margin:0}.recipe-ingredient-item{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 0;border-bottom:1px solid var(--bg-2);font-size:13px;color:var(--ink)}.recipe-ingredient-item:last-child{border-bottom:none}.recipe-ingredient-name{font-weight:500}.recipe-ingredient-amount{color:var(--ink-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.recipe-ingredient-amount--qualitative{font-style:italic}.step-card{background:var(--bg-1);border-radius:18px;padding:16px;box-shadow:var(--sh-2)}.step-card[data-shade="1"],.builder-step-card[data-shade="1"]{background:var(--bg-sunk)}.step-card[data-shade="2"],.builder-step-card[data-shade="2"],.step-card[data-shade="3"],.builder-step-card[data-shade="3"]{background:var(--line-warm-soft)}.step-number{font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--accent);margin-bottom:4px}.step-title{font-size:16px;font-weight:700;color:var(--ink)}.step-title-row{display:flex;align-items:center;gap:8px;margin-bottom:12px}.step-title-row .step-title{flex:1;min-width:0;margin-bottom:0}.step-instr-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;border:1.5px solid var(--line-strong);border-radius:8px;background:var(--bg-1);color:var(--ink-faint);cursor:pointer;transition:all .12s ease}@media (hover: hover){.step-instr-btn:hover{border-color:var(--ink-muted);color:var(--ink-muted)}}.step-instr-btn.expanded{border-color:var(--info);color:var(--info);background:var(--info-quiet)}.step-instr-btn [data-icon]{width:14px;height:14px}.pie-chart{display:block;filter:drop-shadow(0 3px 8px rgb(var(--shadow-rgb) / .12))}.legend-item{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid var(--bg-2);cursor:pointer;transition:opacity .15s}@media (hover: hover){.legend-item:hover{background:var(--bg-1-soft)}}.legend-item:last-child{border-bottom:none}.legend-hidden{opacity:.45}.legend-hidden .legend-swatch{background:var(--line-strong)!important}.legend-swatch{width:12px;height:12px;border-radius:3px;flex-shrink:0}.legend-name-wrap{flex:1;display:flex;flex-direction:column}.legend-name{font-size:13px;color:var(--ink-2);font-weight:500}.legend-disabled .legend-name{text-decoration:line-through;opacity:.6}.sub-hint{font-size:11px;color:var(--accent);font-style:italic}.legend-amount{font-size:12px;color:var(--ink-muted);font-weight:600}.legend-pct{font-size:11px;color:var(--on-accent);background:var(--ink-faint);padding:1px 5px;border-radius:8px;font-weight:700;min-width:34px;text-align:center}.toast--error{background:var(--rust);color:var(--bg-1)}.builder-label{font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--ink-faint);margin:10px 0 4px}.builder-input{width:100%;padding:10px 12px;border:2px solid var(--line);border-radius:10px;font-size:14px;font-family:inherit;background:var(--bg-1);color:var(--ink)}.builder-input:focus{outline:none;border-color:var(--accent)}.builder-name-input{font-size:18px;font-weight:700;padding:12px 14px}.builder-chip-row{display:flex;flex-wrap:wrap;gap:6px;padding:4px 0}.cuisine-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;padding:4px 0}@media (min-width: 420px){.cuisine-grid{grid-template-columns:repeat(3,1fr)}}.cuisine-grid .builder-chip{width:100%;text-align:center;box-sizing:border-box}.cuisine-add-row{display:flex;justify-content:center;margin-top:8px}.builder-chip{padding:5px 12px;border-radius:16px;border:1.5px solid var(--line);background:var(--bg-1);font-size:12px;font-weight:600;color:var(--ink-2);cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent}@media (hover: hover){.builder-chip:hover{border-color:var(--accent);background:var(--accent-quiet);color:var(--accent)}}.builder-chip.selected{border-color:var(--accent);background:var(--accent-quiet);color:var(--accent)}.builder-chip-lg{padding:10px 18px;font-size:14px;border-radius:20px}.new-cuisine-row{display:flex;gap:8px;margin-top:8px;align-items:stretch}.new-cuisine-name{flex:1;min-width:0}.new-cuisine-emoji{width:64px;flex-shrink:0;text-align:center}.new-cuisine-cancel{flex-shrink:0;padding:0 14px;border:1.5px solid var(--line);border-radius:10px;background:var(--bg-1);color:var(--ink-muted);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}@media (hover: hover){.new-cuisine-cancel:hover{border-color:var(--accent);color:var(--accent)}}.color-swatches{display:flex;gap:8px;flex-wrap:wrap;padding:4px 0}.color-swatch{width:28px;height:28px;border-radius:50%;border:3px solid transparent;cursor:pointer;-webkit-tap-highlight-color:transparent}.color-swatch.selected{border-color:var(--ink);box-shadow:0 0 0 2px var(--bg-1) inset}.builder-step-card{background:var(--bg-1);border-radius:16px;padding:14px;margin-bottom:12px;box-shadow:var(--sh-1);position:relative}.builder-step-card .step-number{display:inline-flex;align-items:center;padding:6px 12px;margin-bottom:8px;border:1px solid var(--line);border-radius:12px;background:var(--bg-0);color:var(--accent-ink);font-size:14px;font-weight:700;letter-spacing:.4px;text-transform:uppercase}.builder-step-card .builder-input{margin-bottom:10px;border-width:1px;border-radius:12px}.builder-step-headline{display:flex;align-items:stretch;gap:8px}.builder-step-headline .builder-step-title{flex:1;min-width:0}.builder-step-time{position:relative;display:inline-flex;align-items:center;flex-shrink:0;margin-bottom:10px}.builder-step-time .builder-step-time-input{width:72px;padding-right:30px;margin-bottom:0;text-align:right;font-variant-numeric:tabular-nums}.builder-step-time-suffix{position:absolute;right:10px;font-size:12px;font-weight:700;color:var(--ink-muted);pointer-events:none}.builder-step-actions{display:flex;gap:8px;align-items:stretch;margin-top:4px}.builder-step-actions>.add-ing-btn,.builder-step-actions>.add-step-input-btn{margin:0;flex:1 1 0;min-width:0;padding-left:14px;padding-right:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}.add-step-input-btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 22px;background:var(--info-quiet);border:1.5px dashed var(--info-line);border-radius:999px;color:var(--info);font-size:13px;font-weight:700;font-family:Inter,sans-serif;cursor:pointer;transition:background .12s,border-color .12s,color .12s}@media (hover: hover){.add-step-input-btn:hover{background:var(--info-quiet);border-color:var(--info)}}.step-input-readonly{display:flex;align-items:center;gap:10px;padding:10px 12px;margin-bottom:8px;border:1px solid var(--info-line);border-radius:12px;background:var(--info-quiet);cursor:pointer;transition:background .12s,border-color .12s}@media (hover: hover){.step-input-readonly:hover{background:var(--info-quiet);border-color:var(--info-line)}}.step-input-readonly__name{flex:1;font-size:14px;font-weight:600;color:var(--info);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.step-input-readonly__edit,.step-input-readonly__remove{width:32px;height:32px;flex-shrink:0;border-radius:8px;border:1px solid transparent;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center}.step-input-readonly__edit{color:var(--info)}@media (hover: hover){.step-input-readonly__edit:hover{background:var(--bg-1);border-color:var(--info-line)}}.step-input-readonly__edit i{width:16px;height:16px}.step-input-readonly__remove{color:var(--rust);font-size:14px}@media (hover: hover){.step-input-readonly__remove:hover{background:var(--rust-quiet)}}.builder-instructions-toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;flex-shrink:0;border:1px solid var(--line);border-radius:12px;background:var(--bg-1);color:var(--ink-faint);cursor:pointer;margin-bottom:10px;transition:all .12s ease;align-self:stretch}@media (hover: hover){.builder-instructions-toggle:hover{border-color:var(--ink-muted);color:var(--ink-muted)}}.builder-instructions-toggle.expanded{border-color:var(--info);color:var(--info);background:var(--info-quiet)}.builder-instructions-toggle.has-content:not(.expanded){border-color:var(--warn);color:var(--warn)}.builder-instructions-toggle [data-icon]{width:16px;height:16px}.step-ref-badge{display:inline-block;background:var(--info-quiet);color:var(--info);font-size:12px;font-weight:600;padding:3px 10px;border-radius:10px;margin-bottom:8px;border:1px solid var(--info-line)}.builder-ings-list{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.builder-unassigned-card{background:var(--accent-quiet);border:1.5px solid var(--accent-soft);border-radius:16px;padding:14px;margin-bottom:12px;box-shadow:0 2px 8px #fb923c26}.builder-unassigned-header{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}.builder-unassigned-title{font-weight:700;font-size:14px;color:var(--accent-deep)}.builder-unassigned-hint{font-size:12px;color:var(--warn-ink)}.unassigned-row{display:flex;gap:6px;align-items:center;padding:6px 0;border-top:1px solid var(--accent-line)}.unassigned-row:first-of-type{border-top:none}.unassigned-ing{flex:1;font-size:13px;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unassigned-qty{color:var(--ink-muted);font-size:12px;margin-left:4px}.unassigned-target{flex:0 0 auto;max-width:50%;padding:6px 8px;border:1.5px solid var(--accent-soft);border-radius:8px;font-size:12px;font-family:inherit;background:var(--bg-1);color:var(--ink)}.unassigned-target:focus{outline:none;border-color:var(--accent-ink)}.unassigned-delete-btn{width:24px;height:24px;border-radius:50%;border:none;background:var(--rust-quiet);color:var(--rust);font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.builder-validation-card{background:var(--accent-quiet);border:1.5px solid var(--accent-soft);border-radius:16px;padding:14px 14px 12px;margin-bottom:12px;box-shadow:0 2px 8px #fb923c26}.builder-validation-header{margin-bottom:8px}.builder-validation-title{font-weight:700;font-size:14px;color:var(--accent-deep)}.builder-validation-list{margin:0;padding-left:22px;list-style:disc}.builder-validation-list li{font-size:13px;color:var(--warn-ink);line-height:1.5}.remove-step-btn{position:absolute;top:10px;right:10px;width:24px;height:24px;border-radius:50%;border:none;background:var(--rust-quiet);color:var(--rust);font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center}.ing-readonly{display:flex;align-items:center;gap:10px;padding:10px 12px;margin-bottom:8px;border:1px solid var(--line);border-radius:12px;background:var(--bg-0);cursor:pointer;transition:background .12s,border-color .12s}@media (hover: hover){.ing-readonly:hover{background:var(--accent-quiet);border-color:var(--accent-line)}}.ing-readonly--incomplete{border-color:var(--rust-line);background:var(--rust-quiet)}.ing-readonly__main{flex:1;min-width:0}.ing-readonly__name{font-size:14px;font-weight:600;color:var(--accent-darkest);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.ing-readonly__placeholder{color:var(--ink-faint);font-weight:500;font-style:italic}.ing-readonly__qty{font-size:13px;color:var(--ink-muted);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0}.ing-readonly__edit,.ing-readonly__remove{width:32px;height:32px;flex-shrink:0;border-radius:8px;border:1px solid transparent;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center}.ing-readonly__edit{color:var(--ink-muted)}@media (hover: hover){.ing-readonly__edit:hover{color:var(--accent);background:var(--bg-1);border-color:var(--accent-line)}}.ing-readonly__edit i{width:16px;height:16px}.ing-readonly__remove{color:var(--rust);font-size:14px}@media (hover: hover){.ing-readonly__remove:hover{background:var(--rust-quiet)}}.sb-sheet__body.ing-sheet__body{display:flex;flex-direction:column;gap:14px}.ing-sheet__label{display:flex;flex-direction:column;font-size:11px;font-weight:600;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em}.ing-sheet__label-text{margin-bottom:6px}.ing-sheet__label input,.ing-sheet__label select{width:100%;padding:12px 14px;font-size:15px;border:1.5px solid var(--line);border-radius:12px;background:var(--bg-1);font-family:Inter,sans-serif;color:var(--ink);font-weight:500;text-transform:none;letter-spacing:0}.ing-sheet__label input:focus,.ing-sheet__label select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #e85d0426}.ing-sheet__row{display:flex;gap:12px}.ing-sheet__label--amount{flex:1.2}.ing-sheet__label--unit{flex:1}.ing-sheet__ac-wrap{position:relative}.ing-sheet__ac-wrap .ac-dropdown{top:calc(100% + 2px);border-radius:12px;border-top:2px solid var(--accent)}.ing-sheet__classify{padding-top:4px}.ing-sheet__hint{margin:0 0 4px;font-size:12px;color:var(--ink-muted);text-transform:none;letter-spacing:0;font-weight:500}.ing-sheet__empty{margin:0;padding:18px 0;text-align:center;font-size:13px;color:var(--ink-faint);text-transform:none;font-weight:500}.step-input-row{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:var(--bg-1);font-family:Inter,sans-serif;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer;text-align:left;transition:background .12s,border-color .12s}@media (hover: hover){.step-input-row:hover{background:var(--info-quiet);border-color:var(--info-line)}}.step-input-row.is-on{background:var(--info-quiet);border-color:var(--info);color:var(--info)}.step-input-row__check{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;border:1.5px solid var(--line-strong);background:var(--bg-1);font-size:14px;font-weight:800;color:var(--info);flex-shrink:0}.step-input-row.is-on .step-input-row__check{background:var(--info);border-color:var(--info);color:var(--on-accent)}.step-input-row__label{flex:1}.ac-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--bg-1);border:2px solid var(--accent);border-top:none;border-radius:0 0 10px 10px;z-index:20;max-height:180px;overflow-y:auto;box-shadow:var(--sh-2)}.ac-item{padding:8px 12px;font-size:13px;color:var(--ink-2);cursor:pointer;transition:background .1s}.ac-item.ac-selected{background:var(--accent-quiet);color:var(--accent);font-weight:600}@media (hover: hover){.ac-item:hover{background:var(--accent-quiet);color:var(--accent);font-weight:600}}.category-classify{padding:8px 0 4px}.category-classify-label{font-size:11px;font-weight:600;color:var(--ink-muted);display:block;margin-bottom:6px}.ingredient-row .ing-unit{flex:.8;padding:10px 4px;border:2px solid var(--line);border-radius:10px;font-size:12px;font-family:inherit;background:var(--bg-1);margin-bottom:10px}.ingredient-row .ing-unit:focus{outline:none;border-color:var(--accent)}.add-step-btn{background:none;border:none;color:var(--accent);font-size:13px;font-weight:700;cursor:pointer;display:block;width:100%;text-align:center;padding:10px}.add-ing-btn{display:block;margin:10px auto 0;padding:10px 22px;background:var(--bg-0);border:1.5px dashed var(--accent-line);border-radius:999px;color:var(--accent-ink);font-size:13px;font-weight:700;font-family:Inter,sans-serif;cursor:pointer;transition:background .12s,border-color .12s,color .12s}@media (hover: hover){.add-ing-btn:hover{background:var(--accent-quiet);border-color:var(--accent);color:var(--accent)}}.builder-primary-btn{width:100%;padding:14px;border-radius:14px;border:none;background:var(--accent-fill);color:var(--on-accent);font-size:16px;font-weight:700;cursor:pointer;margin-top:16px;-webkit-tap-highlight-color:transparent}.builder-primary-btn:disabled{opacity:.4;cursor:not-allowed}.builder-secondary-btn{width:100%;padding:12px;border-radius:14px;border:2px solid var(--line);background:var(--bg-1);color:var(--ink-2);font-size:14px;font-weight:600;cursor:pointer;margin-top:8px}.builder-import-row{display:flex;gap:8px;align-items:stretch}.builder-import-url{flex:1}.builder-import-btn{width:auto;margin-top:0;padding:0 14px;white-space:nowrap}.review-step-card{background:var(--bg-1);border-radius:14px;padding:14px;margin-bottom:10px;box-shadow:var(--sh-1)}.review-step-card .step-number{margin-bottom:2px}.review-step-card .step-title{margin-bottom:8px}.review-ing-list{display:flex;flex-direction:column;gap:3px}.review-ing-item{font-size:13px;color:var(--ink-muted);padding-left:8px;border-left:3px solid var(--accent)}.wizard-progress{display:flex;align-items:center;justify-content:center;gap:0;margin:4px 0 18px;padding:0 8px}.wizard-dot{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:var(--ink-faint);background:var(--bg-2);border:2px solid var(--line);flex-shrink:0;transition:all .2s}.wizard-dot.active{background:var(--accent-fill);color:var(--on-accent);border-color:var(--accent)}.wizard-dot.done{background:var(--ok-quiet);color:var(--ok);border-color:var(--ok-line)}.wizard-dot.skipped{opacity:.35}.wizard-line{flex:1;height:2px;min-width:16px;max-width:40px;background:var(--line)}.source-card{background:var(--bg-1);border-radius:14px;padding:16px;margin-bottom:12px;box-shadow:var(--sh-1);cursor:default}.source-card--action{display:block;width:100%;border:0;text-align:left;color:var(--ink);cursor:pointer;transition:box-shadow .15s,transform .1s}@media (hover: hover){.source-card--action:hover{box-shadow:var(--sh-2);transform:translateY(-1px)}}.source-card--action:active{transform:translateY(0)}.source-card-header{display:flex;gap:12px;align-items:flex-start;margin-bottom:10px}.source-card-icon{font-size:28px;flex-shrink:0;line-height:1}.source-card-title{font-size:15px;font-weight:600;color:var(--ink)}.source-card-desc{font-size:13px;color:var(--ink-muted);margin-top:2px}.builder-file-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.builder-file-label{cursor:pointer;text-align:center}.builder-download-link{display:block;font-size:13px;color:var(--accent);margin-top:8px;text-decoration:none;font-weight:500}@media (hover: hover){.builder-download-link:hover{text-decoration:underline}}.builder-readonly-url{background:var(--bg-1-soft);border:1px solid var(--line);border-radius:10px;padding:10px 14px;font-size:13px;color:var(--ink-muted);word-break:break-all;margin-bottom:8px}.insert-step-divider{display:flex;align-items:center;justify-content:center;gap:0;width:100%;padding:6px 0;margin:2px 0;border:none;background:transparent;cursor:pointer;opacity:.35;transition:opacity .15s}@media (hover: hover){.insert-step-divider:hover{opacity:1}}.insert-step-line{flex:1;height:2px;background:var(--line-strong);border-radius:1px}.insert-step-plus{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:var(--accent);background:var(--accent-quiet);border:2px solid var(--accent);margin:0 8px;flex-shrink:0}.dish-tree{margin-top:12px}.dish-tree-group{margin-bottom:2px}.dish-tree-item{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;cursor:pointer;transition:background .1s}@media (hover: hover){.dish-tree-item:hover{background:var(--bg-2)}}.dish-tree-parent{font-weight:500}.dish-tree-child{padding-left:44px;font-weight:400;font-size:14px}.dish-tree-toggle{border:none;background:none;cursor:pointer;padding:0;font-size:11px;color:var(--ink-faint);transition:transform .15s;width:20px;text-align:center;flex-shrink:0}.dish-tree-toggle.expanded{transform:rotate(90deg)}.dish-tree-toggle-spacer{width:20px;flex-shrink:0}.dish-tree-check{width:20px;height:20px;border-radius:6px;border:2px solid var(--line-strong);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .15s;font-size:12px}.dish-tree-check.checked{background:var(--accent-fill);border-color:var(--accent);color:var(--on-accent)}.dish-tree-check.checked:after{content:"\2713"}.dish-tree-check.partial{background:var(--accent-quiet);border-color:var(--accent)}.dish-tree-check.partial:after{content:"\2013";color:var(--accent);font-weight:700}.dish-tree-emoji{font-size:20px;flex-shrink:0}.dish-tree-name{flex:1;font-size:14px;color:var(--ink)}.dish-tree-count{font-size:11px;color:var(--ink-faint);background:var(--bg-2);border-radius:10px;padding:2px 7px;flex-shrink:0}.dish-tree-children{margin-left:0}.standalone-hint{text-align:center;padding:24px 16px;font-size:15px;color:var(--ink-muted)}.review-accordion{background:var(--bg-1);border-radius:14px;margin-bottom:10px;box-shadow:var(--sh-1);overflow:hidden}.review-accordion-header{display:flex;align-items:center;gap:8px;width:100%;padding:14px 16px;border:none;background:none;cursor:pointer;text-align:left;font-size:14px;font-weight:600;color:var(--ink)}@media (hover: hover){.review-accordion-header:hover{background:var(--bg-1-soft)}}.review-accordion-chevron{font-size:10px;color:var(--ink-faint);transition:transform .2s;flex-shrink:0;width:14px;text-align:center}.review-accordion-chevron.expanded{transform:rotate(90deg)}.review-accordion-summary{flex:1;font-size:13px;font-weight:400;color:var(--ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-left:4px}.review-edit-btn{font-size:13px;font-weight:600;color:var(--accent);background:none;border:none;cursor:pointer;padding:2px 8px;border-radius:6px;flex-shrink:0}@media (hover: hover){.review-edit-btn:hover{background:var(--accent-quiet)}}.review-accordion-body{padding:0 16px 14px;font-size:13px;color:var(--ink-2)}.review-accordion-body[hidden]{display:none}.review-field{padding:4px 0}.color-dot-inline{display:inline-block;width:12px;height:12px;border-radius:50%;vertical-align:middle;margin-right:4px}.review-accordion-body .review-step-card{margin-top:8px}.review-info-bubble{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--bg-2);border-radius:10px;padding:10px 14px;font-size:13px;color:var(--ink-muted);margin-bottom:10px}.review-info-url{flex:1;min-width:0;color:var(--ink-faint);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.review-info-card{position:relative;background:var(--bg-1);border-radius:14px;padding:14px 16px;margin-bottom:10px;box-shadow:var(--sh-1)}.review-info-card-edit{position:absolute;top:12px;right:14px}.review-info-card-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.review-info-name{font-size:15px;font-weight:600;color:var(--ink)}.review-info-cuisine{font-size:13px;color:var(--ink-muted)}.review-info-desc{margin-top:8px;font-size:13px;color:var(--ink-muted);border-top:1px solid var(--bg-2);padding-top:8px}.builder-back-link{display:block;width:100%;margin-top:8px;padding:8px 0;border:none;background:none;cursor:pointer;font-size:13px;font-weight:500;color:var(--ink-muted);text-align:center}@media (hover: hover){.builder-back-link:hover{color:var(--accent)}}.builder-error{background:var(--rust-quiet);color:var(--rust);border-radius:10px;padding:10px 14px;font-size:13px;margin-top:12px}.builder-warning{background:var(--warn-quiet);color:var(--warn-ink);border-radius:10px;padding:10px 14px;font-size:13px;margin-top:12px}.spinner-sm{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:var(--on-accent);border-radius:50%;animation:spin .6s linear infinite;vertical-align:middle;margin-right:6px}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{font-size:14px;color:var(--ink-muted);font-weight:500}.step-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}.step-time{font-size:12px;font-weight:700;color:var(--accent);background:var(--accent-quiet);border-radius:8px;padding:2px 8px}.settings-btn{background:#ffffff26;border:none;color:var(--on-accent);font-size:18px;width:32px;height:32px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}@media (hover: hover){.settings-btn:hover{background:#ffffff4d}}.sauce-mgr-btn{height:32px;display:inline-flex;align-items:center;gap:6px;padding:0 12px;background:#fff3;color:var(--on-accent);border:none;border-radius:999px;font-size:13px;font-weight:700;letter-spacing:.2px;line-height:1;cursor:pointer;transition:background .15s;-webkit-tap-highlight-color:transparent}@media (hover: hover){.sauce-mgr-btn:hover{background:#ffffff4d}}.sauce-mgr-btn [data-icon]{width:16px;height:16px}.settings-form{display:flex;flex-direction:column;gap:12px;padding:8px 0}.settings-section{background:var(--bg-1);border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:16px;display:flex;flex-direction:column;gap:12px}.settings-section__title{font-size:13px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--ink-muted)}.settings-section__value{font-size:16px;font-weight:600;color:var(--ink)}.settings-section__note{font-size:13px;color:var(--ink-muted)}.settings-label{font-size:13px;font-weight:600;color:var(--ink-2)}.settings-signout{margin-top:4px}.segmented{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;padding:4px;background:var(--bg-2);border-radius:12px}.segmented__opt{min-height:44px;display:flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:9px;background:transparent;color:var(--ink-muted);font:inherit;font-size:14px;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}.segmented__opt [data-icon],.segmented__opt svg{width:16px;height:16px}.segmented__opt:active{transform:scale(.97)}.segmented__opt--on{background:var(--bg-1);color:var(--ink);box-shadow:var(--sh-1)}.settings-password-input{font-size:16px;letter-spacing:2px}.settings-error{background:var(--rust-quiet);border:1px solid var(--rust-line);border-radius:10px;padding:10px 14px;font-size:13px;color:var(--rust);font-weight:600}.admin-sauce-row{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--bg-2);background:var(--bg-1);-webkit-tap-highlight-color:transparent}.admin-sauce-row[onclick]{cursor:pointer}@media (hover: hover){.admin-sauce-row[onclick]:hover{background:var(--bg-0)}}.admin-sauce-row.unavailable{opacity:.4;pointer-events:none}.admin-sauce-row--variant{padding-left:38px;border-left:2px solid var(--accent-line)}.admin-sauce-info{flex:1;min-width:0}.admin-sauce-name{font-size:14px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-sauce-meta,.admin-sauce-carbs{font-size:11px;color:var(--ink-muted);margin-top:2px}.admin-sauce-row__action{flex-shrink:0;background:var(--bg-1);border:1px solid var(--accent);color:var(--accent);border-radius:999px;padding:6px 12px;font-size:12px;font-weight:700;cursor:pointer}.admin-sauce-row__action--added{background:var(--ok-quiet);border-color:var(--ok-strong);color:var(--ok-strong)}.admin-sauce-row__action:disabled{cursor:default;opacity:.7}.admin-parent-row{display:flex;align-items:center;gap:8px;min-height:56px;padding:10px 16px;border-top:1px solid var(--line-warm-soft);cursor:pointer}.swipe-row{position:relative;overflow:hidden;touch-action:pan-y;user-select:none}.swipe-content{position:relative;background:var(--bg-0-soft);transition:transform .2s ease;will-change:transform}.swipe-row.swiping .swipe-content{transition:none}.swipe-action{position:absolute;top:0;bottom:0;display:flex;align-items:center;padding:0 18px;font-weight:700;font-size:13px}.swipe-action-edit{left:0;background:var(--info-quiet);color:var(--info)}.swipe-action--disabled{opacity:.35;text-decoration:line-through}.swipe-action-delete{right:0;background:var(--rust-quiet);color:var(--rust)}.swipe-row--saucebook .swipe-content{background:transparent}.fab{position:fixed;right:max(20px,calc(100% - var(--sb-col-center) - var(--sb-col-max) / 2 + 20px));bottom:calc(var(--sb-nav-height) + env(safe-area-inset-bottom,0px) + 16px);width:56px;height:56px;border-radius:50%;border:none;background:var(--accent-fill);color:var(--on-accent);box-shadow:0 4px 12px #e85d0459,0 2px 4px var(--shadow-c);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:35;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}@media (hover: hover){.fab:hover{transform:translateY(-2px);background:var(--accent-hover);box-shadow:0 6px 16px #e85d0466,0 2px 6px var(--shadow-c)}}.fab:active{transform:translateY(0)}.fab svg{width:26px;height:26px;stroke-width:2.5}.sauce-manager-tabs{display:flex;border-bottom:2px solid var(--bg-2);background:var(--bg-0-soft);flex-shrink:0}.sm-tab{flex:1;padding:12px 0;background:none;border:none;font-size:14px;font-weight:600;color:var(--ink-faint);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s}.sm-tab-active{color:var(--accent);border-bottom-color:var(--accent)}@media (hover: hover){.sm-tab:hover:not(.sm-tab-active){color:var(--ink-muted)}}.sm-search-wrap{position:relative;padding:8px 16px;background:var(--bg-0-soft);flex-shrink:0}.sm-search-icon{position:absolute;left:26px;top:50%;transform:translateY(-50%);color:var(--ink-faint);pointer-events:none;display:inline-flex}.sm-search-icon [data-icon]{width:16px;height:16px}.sm-search-input{width:100%;padding:8px 32px 8px 36px;border:1px solid var(--line);border-radius:10px;font-size:14px;background:var(--bg-1);color:var(--ink);outline:none;transition:border-color .15s,box-shadow .15s;box-sizing:border-box}.sm-search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #e85d041f}.sm-search-input::placeholder{color:var(--ink-faint)}.sm-search-clear{position:absolute;right:22px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--ink-faint);cursor:pointer;padding:4px;display:inline-flex;align-items:center;justify-content:center}@media (hover: hover){.sm-search-clear:hover{color:var(--ink-muted)}}.sm-search-clear [data-icon]{width:14px;height:14px}.sm-type-filter{display:flex;gap:6px;padding:0 16px 8px;background:var(--bg-0-soft);overflow-x:auto;flex-shrink:0}.sauce-type-tag{display:inline-block;flex-shrink:0;margin-left:auto;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:3px 8px;border-radius:999px;white-space:nowrap}.sauce-type-sauce{background:var(--accent-quiet);color:var(--accent-ink)}.sauce-type-marinade{background:var(--rust-quiet);color:var(--rust)}.sauce-type-dressing{background:var(--ok-quiet);color:var(--ok)}.sm-carb-emoji{font-size:28px;flex-shrink:0;width:36px;text-align:center}.sm-add-form{margin:12px 0;padding:14px;background:var(--bg-0-soft);border:1px solid var(--accent-line);border-radius:12px;display:flex;flex-direction:column;gap:8px}.sm-add-form-title{font-size:13px;font-weight:700;color:var(--warn-ink);margin-bottom:2px}.food-list{padding-bottom:96px}.ingredient-category-group{margin-top:8px}.ingredient-category-header{width:100%;text-align:left;border-left:0;border-right:0;display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--accent-quiet);border-top:1px solid var(--accent-line);border-bottom:1px solid var(--accent-line);cursor:pointer;user-select:none;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--warn-ink)}@media (hover: hover){.ingredient-category-header:hover{background:var(--accent-quiet)}}.ingredient-category-chevron{display:inline-block;width:14px;text-align:center;color:var(--accent-ink)}.ingredient-category-name{flex:1}.ingredient-category-count{background:var(--accent-line);color:var(--accent-deep);border-radius:10px;padding:1px 8px;font-size:11px;font-weight:700;letter-spacing:0;text-transform:none}.food-row{padding:10px 16px;border-top:1px solid var(--line-warm-soft);display:flex;align-items:center;gap:8px;background:var(--bg-1)}.food-row-keep{background:var(--ok-quiet);border-left:3px solid var(--ok-strong)}.food-row-picked{background:var(--accent-quiet);border-left:3px solid var(--accent-hover)}.food-merge-tag{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}.food-merge-tag-keep{background:var(--ok-quiet);color:var(--ok)}.food-merge-tag-merge{background:var(--accent-line);color:var(--accent-deep)}.swipe-row.is-pressing .swipe-content{position:relative;background:var(--accent-quiet)}.swipe-row.is-pressing .swipe-content:after{content:"";position:absolute;left:0;bottom:0;height:2px;background:var(--accent-hover);animation:longPressFill .5s linear forwards}@keyframes longPressFill{0%{width:0}to{width:100%}}.food-sauces-panel{display:flex;flex-wrap:wrap;gap:6px;padding:8px 16px 12px;background:var(--bg-0-soft);border-top:1px dashed var(--line-warm-soft)}.food-sauce-chip{border:1px solid var(--accent-line);border-left-width:3px;background:var(--bg-1);color:var(--warn-ink);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;cursor:pointer}@media (hover: hover){.food-sauce-chip:hover{background:var(--accent-quiet)}}.food-sauces-empty{color:var(--ink-muted);font-size:12px;padding:2px 0}.food-merge-panel{margin:12px 16px;padding:12px 14px;background:var(--ok-quiet);border:1px solid var(--ok-line);border-radius:10px;color:var(--ok);font-size:13px}.food-merge-bar{position:fixed;left:var(--sb-col-center);transform:translate(-50%);width:100%;max-width:var(--sb-col-max);box-sizing:border-box;bottom:calc(var(--sb-nav-height) + env(safe-area-inset-bottom,0px));background:var(--bg-1);border-top:1px solid var(--accent-line);padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:13px;z-index:35;box-shadow:var(--sh-up)}.legend-amount-qualitative{font-style:italic;color:var(--ink-muted)}body,button,input,select,textarea{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.carb-grid .carb-card{animation:fadeUp .22s ease both;animation-delay:calc(var(--i, 0) * 50ms)}@media (hover: hover){.carb-card:hover{transform:translateY(-3px)}}:where(svg[data-icon]){display:inline-block;vertical-align:middle;flex-shrink:0;width:24px;height:24px}.settings-btn [data-icon]{width:20px;height:20px}.chip [data-icon]{width:11px;height:11px}.section-label-icon [data-icon]{width:13px;height:13px;color:var(--warn)}.step-ref-badge [data-icon]{width:14px;height:14px;vertical-align:-2px}.loading-inline{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 24px;gap:12px}.loading-pot{display:inline-block;transform-origin:50% 70%;animation:potWiggle 1.4s ease-in-out infinite}.loading-pot .pot-svg{width:90px;height:70px}.loading-pot .steam-circle{animation:steamPulse 1.6s ease-in-out infinite;transform-origin:center}.loading-pot .steam-circle--2{animation-delay:.2s}.loading-pot .steam-circle--3{animation-delay:.4s}.loading-pot .steam-circle--4{animation-delay:.6s}.loading-pot .steam-trail{animation:steamRise 1.8s ease-in-out infinite;transform-origin:center bottom}.loading-pot .steam-trail--2{animation-delay:.3s}.loading-pot .steam-trail--3{animation-delay:.6s}.hero-illustration{display:flex;justify-content:center;padding:4px 0 20px;animation:fadeIn .5s ease both}.splash{position:fixed;inset:0;z-index:200;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:var(--bg-0);pointer-events:none}.splash-pot-wrap{transform-origin:50% 70%;will-change:transform}.splash-pot-wiggle{display:inline-block;transform-origin:50% 70%;animation:potWiggle 1.4s ease-in-out infinite}.splash-text{font-size:16px;font-weight:600;color:var(--accent);letter-spacing:.2px}.splash-dots span{display:inline-block;animation:splashDot 1.2s ease-in-out infinite;opacity:.3}.splash-dots span:nth-child(2){animation-delay:.2s}.splash-dots span:nth-child(3){animation-delay:.4s}.splash .steam-circle{animation:steamPulse 1.6s ease-in-out infinite;transform-origin:center}.splash .steam-circle--2{animation-delay:.2s}.splash .steam-circle--3{animation-delay:.4s}.splash .steam-circle--4{animation-delay:.6s}.splash .steam-trail{animation:steamRise 1.8s ease-in-out infinite;transform-origin:center bottom}.splash .steam-trail--2{animation-delay:.3s}.splash .steam-trail--3{animation-delay:.6s}@keyframes potWiggle{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes steamPulse{0%,to{transform:translateY(0) scale(1);opacity:.85}50%{transform:translateY(-3px) scale(1.08);opacity:1}}@keyframes steamRise{0%{transform:translateY(4px) scaleY(.9);opacity:.2}40%{opacity:.85}to{transform:translateY(-10px) scaleY(1.05);opacity:0}}@keyframes splashDot{0%,80%,to{opacity:.2}40%{opacity:1}}body.splash--exiting .splash-pot-wrap{transition:transform .48s cubic-bezier(.2,.8,.2,1),opacity .18s .36s ease;transform:translate(var(--pot-target-x, 0),var(--pot-target-y, 0)) scale(var(--pot-target-scale, 1)) rotate(0)}body.splash--exiting .splash-pot-wiggle{animation:none;transition:transform .48s cubic-bezier(.2,.8,.2,1);transform:rotate(0)}body.splash--exiting .splash-text{transition:opacity .2s ease;opacity:0}body.splash--exiting .splash{transition:opacity .2s .48s ease;opacity:0}body.splash--exiting .app-header{animation:headerSlideDown .48s cubic-bezier(.2,.8,.2,1) both}@keyframes headerSlideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}body.splash--loading #app{visibility:hidden}body.splash--exiting #app{visibility:visible}body.splash--exiting .hero-illustration{animation:none}body.splash--exiting .scroll-body .section-label,body.splash--exiting .scroll-body .carb-grid{animation:fadeUp .26s .32s ease both}.toggle-chip [data-icon],.admin-sauce-row__action [data-icon],.builder-unassigned-title [data-icon],.builder-validation-title [data-icon],.builder-warning [data-icon],.builder-download-link [data-icon],.standalone-hint [data-icon],.step-input-readonly__name [data-icon],.review-info-bubble [data-icon]{width:1.1em;height:1.1em;vertical-align:-.15em}.ingredient-category-chevron [data-icon],.dish-tree-toggle [data-icon],.review-accordion-chevron [data-icon]{width:12px;height:12px}.remove-step-btn [data-icon],.unassigned-delete-btn [data-icon],.ing-readonly__remove [data-icon],.step-input-readonly__remove [data-icon],.step-input-row__check [data-icon]{width:14px;height:14px}.source-card-icon [data-icon]{width:28px;height:28px;color:var(--accent)}.auth-pill__badge [data-icon]{width:9px;height:9px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}body:not(.is-auth) [data-auth-only]{display:none!important}.auth-signin-btn,.header-icon-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.4);border-radius:999px;background:#ffffff26;color:var(--on-accent);cursor:pointer;flex-shrink:0}@media (hover: hover){.auth-signin-btn:hover,.header-icon-btn:hover{background:#ffffff40}}.auth-signin-btn i,.header-icon-btn i,.header-icon-btn svg{width:16px;height:16px}.auth-pill__summary{flex-shrink:0;border:0;font-family:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:4px;width:32px;height:32px;border-radius:999px;background:#fff3;color:var(--on-accent);font-weight:700;font-size:12px;justify-content:center;position:relative}.auth-pill__initials{letter-spacing:.4px}.auth-pill__badge{position:absolute;top:-4px;right:-4px;background:var(--warn);color:var(--ink);border-radius:999px;width:16px;height:16px;font-size:10px;display:inline-flex;align-items:center;justify-content:center}.auth-modal__title{margin:0 0 4px;font-size:18px;font-weight:700}.auth-modal__subtitle{margin:0 0 16px;font-size:12px;color:var(--ink-muted)}.auth-oauth-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:44px;background:var(--bg-1);color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:11px 16px;font:inherit;font-size:15px;font-weight:600;cursor:pointer;margin-bottom:10px;transition:background .15s,border-color .15s,transform .1s}@media (hover: hover){.auth-oauth-btn:hover:not(:disabled){background:var(--bg-2);border-color:var(--line-strong)}}.auth-oauth-btn:active:not(:disabled){transform:translateY(1px)}.auth-oauth-btn:disabled{opacity:.5;cursor:not-allowed}.auth-oauth-logo{width:18px;height:18px;flex-shrink:0}.auth-oauth-apple .auth-oauth-logo{color:var(--ink)}.auth-divider{display:flex;align-items:center;text-align:center;margin:18px 0 16px;color:var(--ink-muted);font-size:13px;font-weight:400}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-top:1px solid var(--line)}.auth-divider span{padding:0 12px}.auth-modal__form{display:flex;flex-direction:column;gap:8px}.auth-modal__label{display:flex;flex-direction:column;font-size:11px;color:var(--ink-muted);font-weight:600}.auth-modal__label input{margin-top:4px;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg-1);color:var(--ink);font:inherit}.auth-modal__error{margin:4px 0;padding:8px 10px;background:var(--rust-quiet);color:var(--rust);border-radius:8px;font-size:12px}.auth-modal__submit{margin-top:6px;background:var(--accent-fill);color:var(--on-accent);border:0;min-height:52px;padding:10px 14px;border-radius:14px;font:inherit;font-weight:700;font-size:15px;cursor:pointer}.auth-modal__submit:disabled{opacity:.6;cursor:not-allowed}.auth-modal__footer{margin:12px 0 0;text-align:center;font-size:12px;color:var(--ink-muted)}.auth-modal__footer button{background:none;border:0;padding:0 2px;min-height:44px;font:inherit;color:var(--accent-ink);font-weight:600;cursor:pointer}.auth-modal__welcome{margin:4px 0 0;text-align:center;font-size:13px}.auth-modal__welcome a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink-muted)}@media (display-mode: standalone){.auth-modal__welcome{display:none}}.empty-hint{padding:16px;color:var(--ink-muted);font-size:13px}.builder-step-instructions{min-height:64px;resize:vertical;margin-top:8px;font-family:Inter,sans-serif;line-height:1.5}.step-instructions-body{white-space:pre-wrap;margin:0 0 12px;color:var(--ink-2);font-size:14px;line-height:1.55;padding:8px 10px;background:var(--bg-1-soft);border-radius:8px;border:1px solid var(--line)}.review-step-instructions{white-space:pre-wrap;color:var(--ink-2);font-size:13px;line-height:1.5;margin:4px 0 8px}.variant-badge{display:inline-flex;align-items:center;gap:3px;margin-left:6px;padding:1px 7px;background:var(--accent-quiet);color:var(--accent);font-size:10px;font-weight:700;border-radius:999px;vertical-align:middle}.variant-badge i{width:11px;height:11px}.variant-switcher{display:inline-flex;gap:4px;flex-wrap:wrap;padding:4px;margin-top:10px;background:var(--accent-quiet);border-radius:999px}.variant-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:transparent;border:none;border-radius:999px;font-size:12px;font-weight:600;color:var(--accent-deep);cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}@media (hover: hover){.variant-chip:hover{color:var(--ink)}}.variant-chip--active{background:var(--bg-1);color:var(--ink);box-shadow:var(--sh-1)}.variant-chip-tag{margin-left:4px;padding:1px 6px;background:rgb(var(--shadow-rgb) / .08);border-radius:999px;font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.builder-hint{margin:6px 2px 0;font-size:11px;color:var(--ink-muted);line-height:1.4}.admin-sauce-row.food-row-keep,.admin-sauce-row.food-row-picked{border-radius:6px}.admin-sauce-row.food-row-keep{background:var(--ok-quiet);border-left:3px solid var(--ok-strong)}.admin-sauce-row.food-row-picked{background:var(--accent-quiet);border-left:3px solid var(--accent-hover)}.scroll-body:has(.food-merge-bar){padding-bottom:140px}.edit-mode-toggle{background:#ffffff26;border:none;color:var(--on-accent);width:32px;height:32px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,transform .15s}@media (hover: hover){.edit-mode-toggle:hover{background:#ffffff4d}}.edit-mode-toggle.edit-mode-on{background:var(--accent-fill);color:var(--on-accent);box-shadow:0 0 0 2px #e85d0459}.edit-mode-toggle [data-icon]{width:18px;height:18px}.sm-import-export-row{display:flex;flex-wrap:wrap;gap:8px;padding:10px 16px;border-bottom:1px solid var(--line-warm-soft);background:var(--bg-0-soft)}.sm-tool-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--line);background:var(--bg-1);color:var(--ink);font-size:13px;font-weight:600;border-radius:999px;cursor:pointer;transition:background .15s,border-color .15s}@media (hover: hover){.sm-tool-btn:hover{background:var(--accent-quiet);border-color:var(--accent)}}.sm-tool-btn [data-icon]{width:14px;height:14px}.btm-nav-btn{flex:1;background:none;border:0;padding:8px 4px 10px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--ink-muted);font-family:inherit;font-size:11px;font-weight:600;letter-spacing:.2px;transition:color .15s}@media (hover: hover){.btm-nav-btn:hover{color:var(--ink)}}.btm-nav-btn--active{color:var(--accent)}.btm-nav-btn--locked{color:var(--ink-faint)}.btm-nav-icon-wrap{position:relative;display:inline-flex}.btm-nav-btn [data-icon]{width:22px;height:22px}.btm-nav-lock{position:absolute;bottom:-2px;right:-6px;background:var(--inverse-bg);color:var(--inverse-ink);border-radius:999px;padding:1px;display:inline-flex;align-items:center;justify-content:center}.btm-nav-lock [data-icon]{width:9px;height:9px}.btm-nav-label{line-height:1}#app .scroll-body{padding-bottom:80px}.tab-locked{display:flex;flex-direction:column;align-items:center;text-align:center;padding:64px 32px 32px;color:var(--ink)}.tab-locked [data-icon]{width:48px;height:48px;color:var(--accent);margin-bottom:16px}.tab-locked h2{font-size:20px;font-weight:700;margin-bottom:8px}.tab-locked p{font-size:14px;color:var(--ink-muted);max-width:280px;margin-bottom:20px;line-height:1.5}.tab-locked .btn-primary{background:var(--accent-fill);color:var(--on-accent);border:0;border-radius:999px;padding:12px 28px;font-size:15px;font-weight:700;cursor:pointer}@media (hover: hover){.tab-locked .btn-primary:hover{background:var(--accent-ink)}}.tab-search{display:flex;align-items:center;gap:8px;background:var(--bg-1);border-radius:999px;padding:8px 12px;margin-top:10px;border:1px solid rgba(255,255,255,.4)}.tab-search:focus-within{box-shadow:0 0 0 2px var(--accent)}.tab-search [data-icon]{width:16px;height:16px;color:var(--ink-faint)}.tab-search input{flex:1;border:0;outline:none;background:transparent;font:inherit;color:var(--ink);min-width:0}.tab-filter-row{display:flex;align-items:stretch;gap:8px;margin:12px 16px}.tab-filter-row .browse-filters__toggle{margin-bottom:0;flex:0 0 auto}.tab-filter-row .tab-search{flex:1;min-width:0;margin-top:0;background:var(--bg-1);border:1px solid var(--line-warm)}.collapse-all-btn{flex:0 0 auto;background:none;border:none;padding:4px;cursor:pointer;color:var(--ink-faint);display:flex;align-items:center}.collapse-all-btn:active{color:var(--accent)}.collapse-all-btn [data-icon]{width:18px;height:18px}.saucebook-fabs{position:fixed;bottom:calc(var(--sb-nav-height) + env(safe-area-inset-bottom,0px) + 16px);left:var(--sb-col-center);transform:translate(-50%);width:100%;max-width:var(--sb-col-max);height:0;pointer-events:none;z-index:35}.saucebook-fab{position:absolute;right:16px;width:52px;height:52px;border-radius:50%;border:0;background:var(--accent-fill);color:var(--on-accent);display:flex;align-items:center;justify-content:center;cursor:pointer;pointer-events:auto;box-shadow:0 8px 20px #e85d0459;transition:transform .15s,background .15s}@media (hover: hover){.saucebook-fab:hover{transform:translateY(-2px);background:var(--accent-ink)}}.saucebook-fab [data-icon]{width:22px;height:22px}.saucebook-fab--add{bottom:0}.saucebook-fab--meal{bottom:64px;background:var(--inverse-bg);color:var(--inverse-ink)}@media (hover: hover){.saucebook-fab--meal:hover{background:var(--accent-darkest)}}.browse-filters{background:var(--accent-quiet);border:1px solid var(--line-warm);border-radius:12px;padding:12px 14px;margin:0 16px 12px}.browse-filters__row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.browse-filters__row:first-child{margin-top:0}.browse-filters__label{font-size:11px;font-weight:700;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.5px}.browse-filters__author-input{width:100%;border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:13px;margin-top:4px}.browse-filters__author-suggest{background:var(--bg-1);border:1px solid var(--line);border-radius:8px;margin-top:4px;max-height:160px;overflow-y:auto}.browse-filters__author-suggest button{display:block;width:100%;padding:6px 10px;background:var(--bg-1);border:0;text-align:left;cursor:pointer;font-size:13px}@media (hover: hover){.browse-filters__author-suggest button:hover{background:var(--accent-quiet)}}.browse-filters__filter-input{width:100%;padding:6px 10px;border:1px solid var(--line);border-radius:8px;font-size:13px;margin-top:4px;margin-bottom:2px;outline:none;background:var(--bg-1);color:var(--ink)}.browse-filters__filter-input:focus{border-color:var(--accent)}.browse-filters__filter-input::placeholder{color:var(--ink-faint)}.browse-filters__suggest{background:var(--bg-1);border:1px solid var(--line);border-radius:8px;margin-top:2px;max-height:160px;overflow-y:auto}.browse-filters__suggest button{display:block;width:100%;padding:6px 10px;background:var(--bg-1);border:0;text-align:left;cursor:pointer;font-size:13px}@media (hover: hover){.browse-filters__suggest button:hover{background:var(--accent-quiet)}}.browse-filters__clear-section{text-align:center;margin-top:8px}.browse-filters__separator{border:none;border-top:1px solid var(--line);margin:10px 0}.browse-filters__toggle{display:flex;align-items:center;justify-content:space-between;background:var(--bg-1);border:1px solid var(--line-warm);border-radius:10px;padding:8px 12px;font-size:13px;font-weight:600;color:var(--ink);cursor:pointer;margin-bottom:10px}.browse-filters__toggle [data-icon]{width:16px;height:16px;color:var(--ink-muted)}.browse-pageinfo{font-size:12px;color:var(--ink-muted);margin:6px 16px 12px}.browse-pageinfo strong{color:var(--ink);font-weight:700}.browse-pager{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:16px 16px 6px}.browse-pager__btn{display:inline-flex;align-items:center;gap:6px;background:var(--bg-1);border:1px solid var(--accent);color:var(--accent);border-radius:999px;padding:8px 14px;font-size:13px;font-weight:700;cursor:pointer}@media (hover: hover){.browse-pager__btn:hover:not(:disabled){background:var(--accent-quiet)}}.browse-pager__btn:disabled{opacity:.4;cursor:default}.browse-pager__btn [data-icon]{width:14px;height:14px}.browse-pager__label{font-size:13px;color:var(--ink-muted);font-weight:600}.browse-pager__label strong{color:var(--ink);font-weight:700}.recipe-row__missing{display:inline-flex;align-items:center;gap:4px;background:var(--rust-quiet);color:var(--rust);border:1px solid var(--rust-line);padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700}.recipe-row__missing [data-icon]{width:11px;height:11px}.pantry-row{width:100%;border:0;text-align:left;color:var(--ink);display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--bg-1);border-bottom:1px solid var(--line-warm-soft);cursor:pointer;transition:background .12s}@media (hover: hover){.pantry-row:hover{background:var(--accent-quiet)}}.pantry-row:active{background:var(--accent-quiet)}.pantry-row--missing{background:var(--rust-quiet);border-left:3px solid var(--rust)}@media (hover: hover){.pantry-row--missing:hover{background:var(--rust-quiet)}}.pantry-row__name{font-size:14px;font-weight:600;color:var(--ink)}.pantry-row__state{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:3px 10px;border-radius:999px;flex-shrink:0}.pantry-row--missing .pantry-row__state{background:var(--rust);color:var(--on-accent)}.pantry-row:not(.pantry-row--missing) .pantry-row__state{background:var(--ok-quiet);color:var(--ok-strong)}.pantry-row__name--strike{text-decoration:line-through;opacity:.55}.ingredient-category-count--missing{background:var(--rust);color:var(--on-accent)}.sb-overlay{position:fixed;left:0;right:0;top:var(--sb-vv-top, 0px);height:100vh;height:100dvh;height:var(--sb-vv-h, 100dvh);z-index:100;display:flex;justify-content:center;background:rgb(15 23 42 / calc(.55 * (1 - var(--sheet-pull, 0))));backdrop-filter:blur(2px);animation:sbOverlayFade .2s ease-out}.sb-overlay.is-closing{animation:sbOverlayOut .2s ease-in forwards}@keyframes sbOverlayFade{0%{opacity:0}to{opacity:1}}@keyframes sbOverlayOut{0%{opacity:1}to{opacity:0}}.sb-sheet{align-items:flex-end}.sb-sheet__panel{position:relative;box-sizing:border-box;width:100%;max-width:min(560px,var(--sb-col-max));max-height:min(86%,720px);display:flex;flex-direction:column;background:var(--bg-1);color:var(--ink);border-radius:22px 22px 0 0;box-shadow:var(--sh-up-lg);padding-bottom:max(12px,env(safe-area-inset-bottom,0px));outline:none;animation:sbSheetUp .22s var(--ease)}:root.sb-kb-open .sb-sheet__panel{max-height:100%}.sb-sheet.is-closing .sb-sheet__panel{animation:sbSheetDown .2s ease-in forwards}@keyframes sbSheetUp{0%{transform:translateY(24px);opacity:.6}to{transform:none;opacity:1}}@keyframes sbSheetDown{to{transform:translateY(40%)}}.sb-sheet.is-pulled .sb-sheet__panel{animation:none;transform:translateY(var(--sheet-drag, 0px))}.sb-sheet.is-settling .sb-sheet__panel{transition:transform .22s var(--ease)}.sb-sheet__grip{flex:none;width:44px;height:4px;border-radius:999px;background:var(--line-strong);margin:10px auto 2px}.sb-sheet__header{flex:none;display:flex;align-items:center;gap:8px;padding:8px 12px 8px 20px}.sb-sheet__title{flex:1;min-width:0;font-size:17px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb-sheet__body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:4px 20px 12px}.sb-sheet__foot{flex:none;display:flex;gap:10px;padding:10px 20px 0;border-top:1px solid var(--line)}.sb-sheet__row{width:100%;min-height:56px;display:flex;align-items:center;gap:12px;padding:0 4px;background:none;border:0;border-bottom:1px solid var(--line);color:var(--ink);font:inherit;font-size:15px;font-weight:600;text-align:left;text-decoration:none;cursor:pointer}.sb-sheet__row:last-child{border-bottom:0}.sb-sheet__row [data-icon]{width:20px;height:20px;color:var(--ink-muted)}.sb-sheet__row:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.sb-sheet__row--danger,.sb-sheet__row--danger [data-icon]{color:var(--rust)}.sb-overlay__close{position:relative;flex:none;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;background:transparent;color:var(--ink-muted);cursor:pointer}.sb-overlay__close:before{content:"";position:absolute;inset:-4px}.sb-overlay__close [data-icon]{width:20px;height:20px}.sb-overlay__close:active{background:var(--bg-2)}@media (hover: hover){.sb-overlay__close:hover{background:var(--bg-2);color:var(--ink)}}.sb-btn{flex:1;min-height:52px;border-radius:14px;border:1px solid var(--line);background:var(--bg-1);color:var(--ink);font:inherit;font-size:15px;font-weight:700;cursor:pointer}.sb-btn--primary{background:var(--accent-fill);border-color:var(--accent-fill);color:var(--on-accent)}.sb-btn--danger{background:var(--rust);border-color:var(--rust);color:var(--bg-1)}.sb-btn:disabled{opacity:.5;cursor:not-allowed}.sb-modal{align-items:center;padding:16px;box-sizing:border-box}.sb-modal__card{position:relative;box-sizing:border-box;width:min(380px,100%);max-height:100%;overflow-y:auto;overscroll-behavior:contain;background:var(--bg-1);color:var(--ink);border-radius:18px;box-shadow:var(--sh-3);padding:22px 20px 18px;outline:none;animation:sbModalIn .2s var(--ease)}.sb-modal.is-closing .sb-modal__card{animation:sbModalOut .2s ease-in forwards}@keyframes sbModalIn{0%{transform:scale(.96);opacity:0}to{transform:none;opacity:1}}@keyframes sbModalOut{to{transform:scale(.97);opacity:0}}.sb-modal__card>.sb-overlay__close{position:absolute;top:8px;right:8px}.sb-modal__title{font-size:18px;font-weight:700;margin:0 28px 8px 0}.sb-modal__body{font-size:14px;line-height:1.5;color:var(--ink-2)}.sb-modal__actions{display:flex;gap:10px;margin-top:18px}@media (prefers-reduced-motion: reduce){.sb-overlay,.sb-overlay.is-closing,.sb-sheet__panel,.sb-sheet.is-closing .sb-sheet__panel,.sb-modal__card,.sb-modal.is-closing .sb-modal__card{animation-duration:.01ms}}.tab-search input,.builder-input,.builder-textarea,.browse-filters__filter-input,.browse-filters__author-input,.sm-search-input,.ing-sheet__label input,.ing-sheet__label select,.sb-overlay input,.sb-overlay select,.sb-overlay textarea,.auth-modal__label input,.new-cuisine-emoji,select,textarea{font-size:16px}.header-icon-btn,.auth-signin-btn,.auth-pill__summary,.app-header__back,.edit-mode-toggle,.serving-btn,.collapse-all-btn,.step-instr-btn,.color-swatch,.sauce-mgr-btn,.recipe-action-btn,.remove-step-btn,.unassigned-delete-btn,.ing-readonly__remove,.step-input-readonly__remove,.dish-tree-toggle{position:relative}.header-icon-btn:before,.auth-signin-btn:before,.auth-pill__summary:before,.app-header__back:before,.edit-mode-toggle:before,.serving-btn:before,.sauce-mgr-btn:before{content:"";position:absolute;inset:-6px}.collapse-all-btn:before,.step-instr-btn:before,.color-swatch:before,.remove-step-btn:before,.unassigned-delete-btn:before,.ing-readonly__remove:before,.step-input-readonly__remove:before,.dish-tree-toggle:before{content:"";position:absolute;inset:-9px}.recipe-action-btn:before{content:"";position:absolute;inset:-2px}.toggle-chip,.variant-chip,.builder-chip,.sm-tool-btn,.admin-sauce-row__action,.unit-toggle,.browse-pager__btn,.browse-filters__toggle{min-height:36px;position:relative}.toggle-chip:before,.variant-chip:before,.builder-chip:before,.sm-tool-btn:before,.admin-sauce-row__action:before,.unit-toggle:before,.browse-pager__btn:before,.browse-filters__toggle:before{content:"";position:absolute;inset:-4px 0}.card-panel__header,.sm-tab,.builder-back-link,.add-ing-btn,.insert-step-divider,.legend-item[onclick],.builder-instructions-toggle{min-height:44px}.builder-instructions-toggle{min-width:44px}.builder-download-link{display:inline-flex;align-items:center;gap:4px;min-height:44px}.admin-sauce-row,.pantry-row,.dish-tree-item{min-height:56px}.ingredient-category-header{min-height:48px}
