:root{--color-bg:#FAF6F0;--color-surface:#FFFFFF;--color-surface-sunken:#F3ECE3;--color-line:#ECE3D8;--color-control:#9C8C7C;--color-ink:#2B2420;--color-ink-2:#5E524A;--color-ink-3:#73655A;--color-accent:#A84B29;--color-accent-pressed:#8F3F22;--color-accent-soft:#F8E7DE;--color-accent-ink:#8F3F22;--color-on-accent:#FFFFFF;--color-success:#3F6B4F;--color-success-soft:#E6EFE7;--color-honey:#7E5A0E;--color-honey-soft:#F7EDD5;--color-star:#B97D12;--color-danger:#A23A27;--color-danger-soft:#FBE6E0;--color-scrim:rgba(43,36,32,.32);--color-bar:rgba(250,246,240,.86);--font-sans:-apple-system,BlinkMacSystemFont,"SF Pro Text","Inter",system-ui,"Segoe UI",Roboto,sans-serif;--font-display:-apple-system,BlinkMacSystemFont,"SF Pro Display","Inter",system-ui,sans-serif;--fs-large-title:32px;--lh-large-title:38px;--fs-title:22px;--lh-title:28px;--fs-headline:17px;--lh-headline:22px;--fs-body:16px;--lh-body:22px;--fs-callout:15px;--fs-subhead:14px;--lh-subhead:19px;--fs-footnote:13px;--lh-footnote:18px;--fs-overline:12px;--lh-overline:16px;--fs-tab:10.5px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--gutter:20px;--tap:44px;--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--radius-pill:999px;--shadow-card:0 1px 2px rgba(43,36,32,.04),0 6px 20px -8px rgba(43,36,32,.08);--shadow-raised:0 2px 6px rgba(43,36,32,.06),0 12px 28px -10px rgba(43,36,32,.16);--shadow-sheet:0 -10px 40px rgba(43,36,32,.14);--icon-sm:16px;--icon-md:20px;--icon-lg:24px;--icon-stroke:1.75;--ease:cubic-bezier(.2,.8,.2,1);--dur-fast:.12s;--dur:.22s;--dur-sheet:.32s}[data-palette=sage]{--color-bg:#F7F5EF;--color-surface-sunken:#EEEBE2;--color-line:#E6E2D7;--color-accent:#4A7359;--color-accent-pressed:#3A5C47;--color-accent-soft:#E4EEE6;--color-accent-ink:#3A5C47;--color-bar:rgba(247,245,239,.86)}*{box-sizing:border-box}html,body{margin:0;background:var(--color-bg);color:var(--color-ink);font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}.num{font-variant-numeric:tabular-nums}svg.lucide{width:var(--icon-md);height:var(--icon-md);stroke-width:var(--icon-stroke);flex:none}.t-large{font:700 var(--fs-large-title)/var(--lh-large-title) var(--font-display);letter-spacing:-.02em;margin:0}.t-title{font:700 var(--fs-title)/var(--lh-title) var(--font-display);letter-spacing:-.01em;margin:0}.t-headline{font-size:var(--fs-headline);line-height:var(--lh-headline);font-weight:600;margin:0}.t-sub{font-size:var(--fs-subhead);line-height:var(--lh-subhead);color:var(--color-ink-2)}.t-foot{font-size:var(--fs-footnote);line-height:var(--lh-footnote);color:var(--color-ink-3)}.overline{font-size:var(--fs-overline);line-height:var(--lh-overline);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-ink-3)}.page{padding:0 var(--gutter) calc(96px + env(safe-area-inset-bottom))}.nav{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;height:44px;padding:0 var(--gutter);background:var(--color-bar);backdrop-filter:saturate(1.4) blur(20px);-webkit-backdrop-filter:saturate(1.4) blur(20px)}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-3);margin:var(--space-1) 0 var(--space-5)}.section-label{display:flex;justify-content:space-between;align-items:baseline;margin:var(--space-6) 0 var(--space-2);padding:0 var(--space-1)}.card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-5)}.card+.card{margin-top:var(--space-3)}.card.flush{padding:0;overflow:hidden}.btn{appearance:none;border:0;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:50px;padding:0 var(--space-5);border-radius:var(--radius-md);font:600 var(--fs-headline)/1 var(--font-sans);white-space:nowrap;cursor:pointer;transition:transform var(--dur-fast) var(--ease),background var(--dur-fast)}.btn:active{transform:scale(.98)}.btn.primary{background:var(--color-accent);color:var(--color-on-accent)}.btn.primary:active{background:var(--color-accent-pressed)}.btn.secondary{background:var(--color-surface-sunken);color:var(--color-ink)}.btn.plain{background:none;color:var(--color-accent);padding:0 var(--space-2)}.btn.md{height:40px;font-size:var(--fs-callout);padding:0 var(--space-4);border-radius:12px}.btn.sm{height:32px;font-size:var(--fs-footnote);padding:0 var(--space-3);border-radius:var(--radius-sm)}.btn.block{width:100%}.btn:disabled{opacity:.4}.icon-btn{width:36px;height:36px;border-radius:var(--radius-pill);border:0;background:var(--color-surface-sunken);color:var(--color-ink);display:inline-flex;align-items:center;justify-content:center;position:relative}.icon-btn:after{content:"";position:absolute;inset:-4px}.icon-btn svg.lucide{width:18px;height:18px}.select{position:relative;white-space:nowrap;display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--tap);padding:0 36px 0 var(--space-3);border-radius:var(--radius-md);background:var(--color-surface-sunken);color:var(--color-ink);font-weight:600}.select select{position:absolute;inset:0;opacity:0;font-size:16px}.select .chev{position:absolute;right:var(--space-3);color:var(--color-ink-3);width:16px;height:16px}.select .lbl{color:var(--color-ink-2);font-weight:400}.select.block{display:flex;width:100%}.stepper{display:inline-flex;align-items:center;background:var(--color-surface-sunken);border-radius:var(--radius-md);height:var(--tap)}.stepper button{width:var(--tap);height:var(--tap);border:0;background:none;color:var(--color-ink);display:flex;align-items:center;justify-content:center}.stepper output{min-width:28px;text-align:center;font-weight:600;font-variant-numeric:tabular-nums}.seg{display:flex;background:var(--color-surface-sunken);border-radius:12px;padding:3px}.seg button{flex:1;height:34px;border:0;background:none;border-radius:9px;font:500 var(--fs-subhead) var(--font-sans);color:var(--color-ink-2)}.seg button.on{background:var(--color-surface);color:var(--color-ink);font-weight:600;box-shadow:0 1px 3px #2b24201f}.list{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden}.row{display:flex;align-items:center;gap:var(--space-3);min-height:52px;padding:var(--space-3) var(--space-4);position:relative}.row+.row:before{content:"";position:absolute;top:0;right:0;left:var(--row-inset,var(--space-4));border-top:1px solid var(--color-line)}.row .body{flex:1;min-width:0}.row .title{font-size:var(--fs-body);line-height:var(--lh-body)}.row .subtitle{font-size:var(--fs-footnote);line-height:var(--lh-footnote);color:var(--color-ink-2)}.row .trail{color:var(--color-ink-3);font-size:var(--fs-subhead);display:flex;align-items:center;gap:var(--space-1)}.tile{width:32px;height:32px;border-radius:var(--radius-sm);background:var(--color-surface-sunken);color:var(--color-ink-2);display:flex;align-items:center;justify-content:center;flex:none}.check{width:24px;height:24px;border-radius:50%;border:1.75px solid var(--color-control);flex:none;display:flex;align-items:center;justify-content:center;color:var(--color-on-accent)}.check.on{background:var(--color-accent);border-color:var(--color-accent)}.check.on svg.lucide{width:14px;height:14px;stroke-width:2.5}.badge{flex:none;white-space:nowrap;display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 var(--space-2);border-radius:var(--radius-pill);font-size:var(--fs-footnote);font-weight:600}.badge svg.lucide{width:14px;height:14px}.badge.keeper{background:var(--color-honey-soft);color:var(--color-honey)}.badge.success{background:var(--color-success-soft);color:var(--color-success)}.stars{display:inline-flex;gap:2px;color:var(--color-star)}.stars svg.lucide{width:16px;height:16px}.stars .on{fill:currentColor}.notice{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-line);font-size:var(--fs-subhead);line-height:var(--lh-subhead);color:var(--color-ink-2)}.notice svg.lucide{color:var(--color-accent);margin-top:1px}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:6;display:flex;padding:6px 0 calc(6px + env(safe-area-inset-bottom));background:var(--color-bar);backdrop-filter:saturate(1.4) blur(20px);-webkit-backdrop-filter:saturate(1.4) blur(20px);border-top:.5px solid var(--color-line)}.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--color-ink-3);font-size:var(--fs-tab);font-weight:500;text-decoration:none;min-height:var(--tap)}.tabbar a svg.lucide{width:var(--icon-lg);height:var(--icon-lg)}.tabbar a.on{color:var(--color-accent);font-weight:600}.scrim{position:fixed;inset:0;background:var(--color-scrim);z-index:20}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:21;background:var(--color-surface);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--shadow-sheet);padding:var(--space-2) var(--gutter) calc(var(--space-6) + env(safe-area-inset-bottom));max-height:88vh;overflow:auto}.sheet .grab{width:36px;height:5px;border-radius:3px;background:var(--color-line);margin:0 auto var(--space-3)}.sheet .head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-2);padding:var(--space-10) var(--space-6)}.empty .art{width:72px;height:72px;border-radius:50%;background:var(--color-surface-sunken);color:var(--color-ink-2);display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-2)}.empty .art svg.lucide{width:32px;height:32px;stroke-width:1.5}.empty .t-sub{max-width:280px}.empty .btn{margin-top:var(--space-3)}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(96px + env(safe-area-inset-bottom));background:var(--color-ink);color:#fff;border-radius:var(--radius-pill);padding:10px 18px;font-size:var(--fs-subhead);font-weight:500;box-shadow:var(--shadow-raised);display:flex;gap:var(--space-2);align-items:center}:root{-webkit-tap-highlight-color:transparent}body{overscroll-behavior-y:none}a{color:var(--color-accent);text-underline-offset:2px}svg.lucide{width:var(--icon-md);height:var(--icon-md);stroke-width:var(--icon-stroke);flex:none;vertical-align:-.22em}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}h1,h2,h3{margin:0}.muted{color:var(--color-ink-3)}.small{font-size:var(--fs-subhead);line-height:var(--lh-subhead)}.hint{font-size:var(--fs-footnote);line-height:var(--lh-footnote);color:var(--color-ink-2);margin:var(--space-2) 0}.with-icon{display:flex;align-items:center;gap:var(--space-2)}p.with-icon,.hint.with-icon{align-items:flex-start}.hstack{display:flex;gap:var(--space-2);align-items:center;margin:var(--space-2) 0}.hstack>input{flex:1}.spread{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.grid2>.select{min-width:0}.mt{margin-top:var(--space-4)}.mt-s{margin-top:var(--space-3)}.app{max-width:560px;margin:0 auto;min-height:100vh}.nav{padding-top:env(safe-area-inset-top);height:calc(48px + env(safe-area-inset-top))}.brand{display:flex;align-items:center;gap:var(--space-2);font-weight:700;font-size:var(--fs-headline);letter-spacing:-.01em;cursor:pointer}.logo{width:28px;height:28px;border-radius:8px;background:var(--color-accent);color:var(--color-on-accent);display:inline-flex;align-items:center;justify-content:center}.logo svg.lucide{width:17px;height:17px}.wordmark em{font-style:normal;color:var(--color-accent)}.page{animation:fade var(--dur) var(--ease)}@keyframes fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1}}.page-head{margin-top:var(--space-3)}.page-head .overline{display:block;margin-bottom:2px}.head-actions{display:flex;gap:var(--space-2);align-items:center;padding-bottom:4px}.tabbar{max-width:560px;margin:0 auto}.tabbar button{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--color-ink-3);font:500 var(--fs-tab) var(--font-sans);background:none;border:0;min-height:var(--tap);padding:2px 0;cursor:pointer}.tabbar button svg.lucide{width:var(--icon-lg);height:var(--icon-lg)}.tabbar button.on{color:var(--color-accent);font-weight:600}.icon-btn{cursor:pointer;flex:none;text-decoration:none}.icon-btn:active{background:var(--color-line)}.icon-btn.ghost{background:none}.btn{text-decoration:none}.btn svg.lucide{width:20px;height:20px}.btn.secondary:active{background:var(--color-line)}.btn.danger{background:none;color:var(--color-danger);padding:0 var(--space-2)}.btn-row{display:flex;gap:var(--space-3);margin-top:var(--space-4)}.btn-row>.btn{flex:1;min-width:0;padding:0 var(--space-3)}.btn-row.wrap{flex-wrap:wrap}.btn-row.wrap>.btn{flex:1 1 150px}.btn-row.stack{flex-direction:column}.btn-row.stack>.btn{flex:none;width:100%}.link{background:none;border:0;color:var(--color-accent);font:inherit;font-weight:600;padding:0;cursor:pointer;display:inline-flex;align-items:center;gap:4px;min-height:32px}.link.danger{color:var(--color-danger)}.back{display:inline-flex;align-items:center;gap:2px;margin-left:-6px;font-size:var(--fs-headline);font-weight:500}.card{margin:0}.page>.card,.page>.list,.page>.notice{margin-top:var(--space-3)}.card h3,.card-title{font-size:var(--fs-headline);line-height:var(--lh-headline);font-weight:600;margin-bottom:var(--space-2)}.select{font-size:var(--fs-body);text-align:left;max-width:100%}.select .val{overflow:hidden;text-overflow:ellipsis;min-width:0}.select:focus-within{box-shadow:0 0 0 2px var(--color-accent)}.select.surface{background:var(--color-surface);border:1px solid var(--color-line)}.stepper button:disabled{opacity:.35}.stepper svg.lucide{width:18px;height:18px}.seg{margin:var(--space-4) 0 var(--space-3)}.seg button{cursor:pointer;min-height:34px}.notice{align-items:flex-start}.notice>svg.lucide{color:var(--color-accent)}.notice.danger>svg.lucide{color:var(--color-danger)}.notice .grow{flex:1}.notice .btn.plain{height:auto;padding:0;align-self:center;font-size:var(--fs-subhead)}.notice.tight{margin:var(--space-3) 0}.section-label .t-foot{text-transform:none;letter-spacing:0;font-weight:400}.section-label button.link{font-size:var(--fs-footnote);min-height:0}.list{margin:0}.list .row{width:100%;border:0;background:none;font:inherit;color:inherit;text-align:left}button.row,.row[role=button]{cursor:pointer}button.row:active,.row[role=button]:active{background:var(--color-bg)}.row .title{font-weight:400}.row .title.b{font-weight:600}.row .subtitle .lucide,.row .flag .lucide{width:14px;height:14px;vertical-align:-.15em}.row .trail .lucide{width:18px;height:18px}.row.sel{background:var(--color-accent-soft)}.list .row.indent{--row-inset:56px}.tile svg.lucide{width:18px;height:18px}.badge.muted{background:var(--color-surface-sunken);color:var(--color-ink-2)}.badge.danger{background:var(--color-danger-soft);color:var(--color-danger)}.badge.caution{background:var(--color-honey-soft);color:var(--color-honey)}.meta{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-4);color:var(--color-ink-2);font-size:var(--fs-subhead);margin-top:var(--space-2)}.meta span{display:inline-flex;align-items:center;gap:6px}.meta svg.lucide{width:16px;height:16px;color:var(--color-ink-3)}.success-line{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-4);color:var(--color-success);font-weight:600;flex-wrap:wrap}.success-line.honey{color:var(--color-honey)}.check{background:none;padding:0;cursor:pointer}.empty b{font-size:var(--fs-headline)}.empty .t-sub,.empty p{margin:0;color:var(--color-ink-2)}.stars{--s:16px;align-items:center;line-height:0}.star{position:relative;display:inline-block;width:var(--s);height:var(--s)}.star svg.lucide{width:var(--s);height:var(--s);vertical-align:top;stroke-width:1.5}.star .s-bg{color:var(--color-control);fill:none}.stars.unrated .star .s-bg{color:var(--color-control)}.s-fill{position:absolute;left:0;top:0;height:100%;overflow:hidden}.s-fill svg.lucide{color:var(--color-star);fill:var(--color-star)}.stars.pick{gap:var(--space-2)}.stars.pick button{background:none;border:0;padding:4px;cursor:pointer;line-height:0;min-width:var(--tap);min-height:var(--tap);display:flex;align-items:center;justify-content:center}.rate-btn{background:none;border:0;padding:6px 0 0;font:inherit;display:flex;flex-direction:column;align-items:flex-end;gap:6px;cursor:pointer;flex:none;min-height:var(--tap)}.rate-btn small{font-size:var(--fs-footnote);color:var(--color-ink-2);font-variant-numeric:tabular-nums}input,select,textarea{font:inherit;font-size:16px;width:100%;padding:11px 12px;border-radius:var(--radius-md);border:1px solid var(--color-line);background:var(--color-surface);color:var(--color-ink);outline:none;min-height:var(--tap)}input:focus,textarea:focus,.field select:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}input::placeholder,textarea::placeholder{color:var(--color-ink-3)}input[type=checkbox]{width:22px;height:22px;min-height:0;accent-color:var(--color-accent);flex:none;padding:0}.field{display:flex;flex-direction:column;gap:6px;margin:var(--space-3) 0;font-size:var(--fs-footnote);font-weight:600;color:var(--color-ink-2)}.field small{font-weight:400;color:var(--color-ink-2)}.two{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.kid-row{grid-template-columns:1fr 76px 44px;align-items:center;margin:6px 0}.toggle-line{display:flex;gap:var(--space-3);align-items:center;font-size:var(--fs-body);margin:var(--space-3) 0;min-height:var(--tap)}.search-wrap{position:relative;margin-bottom:var(--space-3)}.search-wrap>svg.lucide{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--color-ink-3);width:18px;height:18px;pointer-events:none}.search-wrap input{padding-left:40px;background:var(--color-surface-sunken);border-color:transparent}.add-row{display:flex;align-items:center;gap:var(--space-3);background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-md);padding:0 var(--space-4);margin-top:var(--space-3)}.add-row>svg.lucide{color:var(--color-accent)}.add-row input{border:0;padding:12px 0;background:none;box-shadow:none!important}code{font-size:12px;background:var(--color-surface-sunken);padding:2px 5px;border-radius:6px;word-break:break-all}details summary{cursor:pointer;color:var(--color-accent);font-weight:600;font-size:var(--fs-subhead);min-height:32px;display:flex;align-items:center}.sheet-wrap{position:fixed;inset:0;background:var(--color-scrim);z-index:20;display:flex;align-items:flex-end;justify-content:center;animation:fade var(--dur-fast)}.sheet-wrap .sheet{position:relative;width:100%;max-width:560px;display:flex;flex-direction:column;padding:var(--space-2) 0 env(safe-area-inset-bottom);animation:up var(--dur-sheet) var(--ease)}@keyframes up{0%{transform:translateY(40%)}to{transform:none}}.sheet-grab{width:36px;height:5px;border-radius:3px;background:var(--color-line);margin:0 auto var(--space-2)}.sheet-head{display:flex;justify-content:space-between;align-items:center;padding:0 var(--gutter) var(--space-2)}.sheet-head h3{font-size:var(--fs-headline);font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-head .btn.plain{height:var(--tap)}.sheet-body{overflow-y:auto;scrollbar-gutter:stable;padding:var(--space-2) var(--gutter) var(--space-6)}.sheet .list{background:var(--color-bg);box-shadow:none}.sheet .row .tile{background:var(--color-surface)}.row.danger,.row.danger .tile{color:var(--color-danger)}.hero .overline{display:flex;justify-content:space-between;align-items:center}.title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.title-row .t-title,.title-row .t-recipe{flex:1;min-width:0}.hero .t-title{cursor:pointer;margin-top:var(--space-1)}.hero .grid2{margin-top:var(--space-4)}.hero .scale-note{margin:var(--space-2) 0 0}.timeline-list .row{min-height:44px;padding-top:10px;padding-bottom:10px}.timeline-list time{width:76px;flex:none;color:var(--color-ink-2);font-variant-numeric:tabular-nums;font-size:var(--fs-subhead)}.tl-dot{width:9px;height:9px;border-radius:50%;border:1.5px solid var(--color-ink-3);flex:none}.timeline-list .row.eat .tl-dot{background:var(--color-ink);border-color:var(--color-ink)}.timeline-list .row.eat .title{font-weight:600}.timeline-list .row.next{background:var(--color-accent-soft)}.timeline-list .row.next .tl-dot{background:var(--color-accent);border-color:var(--color-accent)}.timeline-list .row.next .title,.timeline-list .row.next time{color:var(--color-accent-ink);font-weight:600}.timeline-list .row.past{opacity:.5}.timeline-list .row .title small{color:var(--color-ink-3);font-size:var(--fs-footnote)}.ing-check .row{min-height:44px}.busy .list{margin-top:var(--space-3);background:var(--color-bg);box-shadow:none}.evt{display:flex;gap:var(--space-3);font-size:var(--fs-subhead);margin-top:var(--space-2)}.evt time{color:var(--color-ink-2);font-variant-numeric:tabular-nums;min-width:118px}.recipe-top{display:flex;justify-content:space-between;align-items:center;min-height:var(--tap);margin-top:var(--space-1)}.recipe-top .head-actions{padding:0}.t-recipe{font:700 28px/34px var(--font-display);letter-spacing:-.02em;margin:0}.recipe-head{margin:var(--space-2) 0 var(--space-4)}.recipe-head .side{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-2);flex:none;padding-top:4px}.recipe-head .ctx{font-size:var(--fs-footnote);color:var(--color-ink-2);margin-top:var(--space-1)}.source-line{font-size:var(--fs-footnote);color:var(--color-ink-3);margin-top:var(--space-2)}.source-line a{color:var(--color-ink-2)}.table-card{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-5)}.table-card b{font-size:var(--fs-headline);font-weight:600;display:block}.ing-row{display:block!important;padding:0!important}.ing-row .line{display:flex;align-items:center;gap:var(--space-3);min-height:52px;padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4)}.ing-row .qty{width:72px;flex:none;font-weight:600;font-variant-numeric:tabular-nums}.ing-row .name{flex:1;min-width:0}.ing-row .name small{display:block;color:var(--color-success);font-size:var(--fs-footnote)}.ing-row .swap-btn{background:none;color:var(--color-ink-3)}.ing-row.open .swap-btn{color:var(--color-accent)}.ing-row .coach{padding:0 var(--space-4) var(--space-4)}.coach .badge{margin-top:var(--space-3)}.coach p{margin:var(--space-2) 0 0;font-size:var(--fs-subhead);color:var(--color-ink-2)}.coach .btn-row{margin-top:var(--space-3)}.coach ul{margin:var(--space-2) 0 0;padding-left:18px;font-size:var(--fs-footnote);color:var(--color-ink-2)}.steps{padding-left:22px;margin:0}.steps li{margin:0 0 var(--space-3);padding-left:4px}.steps li::marker{font-weight:700;color:var(--color-accent)}.sub{margin-top:var(--space-5)}.sub h4{font-size:var(--fs-overline);letter-spacing:.06em;text-transform:uppercase;color:var(--color-ink-3);margin:0 0 var(--space-2);font-weight:600}.sub p{margin:0}.store-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.store-grid div{background:var(--color-surface-sunken);border-radius:var(--radius-md);padding:10px 12px;display:flex;flex-direction:column}.store-grid span{font-size:var(--fs-footnote);color:var(--color-ink-2)}.math{font-size:var(--fs-footnote);padding-left:18px;color:var(--color-ink-2)}.phase-edit{display:flex;gap:var(--space-2);align-items:center;font-size:var(--fs-subhead);margin:6px 0}.phase-edit span{flex:1}.phase-edit input{width:84px}.rating-hist .row .subtitle{display:flex;gap:var(--space-2);align-items:center}.week-row{align-items:flex-start!important;--row-inset:76px;padding-top:var(--space-4)!important;padding-bottom:var(--space-4)!important}.date-col{width:48px;flex:none;display:flex;flex-direction:column;align-items:center;padding:4px 0;border-radius:12px}.date-col small{font-size:11px;font-weight:600;letter-spacing:.06em;color:var(--color-ink-3)}.date-col b{font-size:20px;line-height:24px;font-weight:700;font-variant-numeric:tabular-nums}.date-col.today{background:var(--color-accent);color:var(--color-on-accent)}.date-col.today small{color:var(--color-on-accent)}.week-row .title{font-weight:600;font-size:var(--fs-headline)}.week-row .subtitle{margin-top:2px}.week-row .bf{background:none;border:0;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer;min-height:24px}.week-row .flag{display:flex;gap:6px;align-items:center;font-size:var(--fs-footnote);color:var(--color-ink-2);margin-top:var(--space-2)}.week-row .flag.busy{color:var(--color-accent-ink)}.week-row .trail{flex-direction:column;align-items:flex-end!important;gap:6px!important;font-variant-numeric:tabular-nums}.week-row .trail .ok{color:var(--color-success)}.week-row.done .title,.week-row.out .title{color:var(--color-ink-2)}.lib-tools{display:flex;gap:var(--space-2);align-items:center;margin-bottom:var(--space-3)}.lib-tools .search-wrap{flex:1;margin:0}.lib-row .tile{width:44px;height:44px;border-radius:12px}.lib-row .tile svg.lucide{width:22px;height:22px}.lib-row{--row-inset:72px}.lib-row .subtitle{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap;margin-top:2px}.sum-card .big{font:700 32px/38px var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.sum-card .right{text-align:right;font-size:var(--fs-subhead);color:var(--color-ink-2)}.progress{height:6px;border-radius:3px;background:var(--color-surface-sunken);margin:var(--space-4) 0;overflow:hidden}.progress span{display:block;height:100%;background:var(--color-accent);border-radius:3px}.g-row{--row-inset:56px}.g-row.done .title{text-decoration:line-through;color:var(--color-ink-3)}.g-row .price-btn{background:none;border:0;font:inherit;color:var(--color-ink);font-variant-numeric:tabular-nums;min-height:var(--tap);padding:0 0 0 var(--space-2);cursor:pointer}.g-row .price-btn.none,.g-row .kmatch{color:var(--color-ink-3)}.done-head{width:100%;background:none;border:0;font:inherit;cursor:pointer}.bars{width:100%;height:auto}.bars .b1{fill:var(--color-accent)}.bars .b2{fill:var(--color-success)}.bar-val{font-size:10px;fill:var(--color-ink-2);font-weight:700}.bar-lbl{font-size:10px;fill:var(--color-ink-3)}.key{display:inline-block;width:10px;height:10px;border-radius:3px;margin:0 3px 0 8px}.key.b1{background:var(--color-accent)}.key.b2{background:var(--color-success)}.tally .big{font:700 34px/40px var(--font-display);letter-spacing:-.02em;color:var(--color-ink);font-variant-numeric:tabular-nums}.tally .delta{color:var(--color-success);font-weight:600}.stat-list .trail{color:var(--color-ink);font-weight:600}.cal-list{list-style:none;padding:0;margin:var(--space-2) 0}.cal-list li{display:flex;align-items:center;gap:var(--space-3);padding:10px 0;border-bottom:1px solid var(--color-line)}.cal-dot{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none}.cal-dot svg.lucide{width:14px;height:14px;stroke-width:2.5}.cal-dot.ok{background:var(--color-success-soft);color:var(--color-success)}.cal-dot.bad{background:var(--color-danger-soft);color:var(--color-danger)}.cal-name{flex:1;display:flex;flex-direction:column;min-width:0}.cal-name small{font-size:var(--fs-footnote);color:var(--color-ink-2)}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--color-control);margin-right:6px;vertical-align:1px}.status-dot.ok{background:var(--color-success)}.status-dot.bad{background:var(--color-danger)}ol.how-to{padding-left:20px;font-size:var(--fs-subhead);margin:var(--space-3) 0}ol.how-to li{margin:6px 0}ol.how-to li::marker{font-weight:700;color:var(--color-accent)}.check-rows .row{min-height:48px}.zip-in{width:6em!important;flex:none}.toast{z-index:30;max-width:90vw;border-radius:var(--radius-md);animation:fade var(--dur)}.toast svg.lucide{width:18px;height:18px}.host-badge .tabbar{bottom:40px;padding-bottom:6px}.host-badge .page{padding-bottom:150px}.host-badge .toast{bottom:140px}.row .body>.title,.row .body>.subtitle{display:block}.ing-row .qty{width:auto;min-width:52px;max-width:108px}.table-card .t-foot{display:block}a.row{text-decoration:none;color:inherit}.rating-hist .row .title{font-size:var(--fs-subhead)}.ing-list .row+.row:before{left:var(--space-4)}.lib-meta{display:flex;align-items:center;gap:8px;margin-top:4px}.input-icon{position:relative;display:block}.input-icon svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--color-ink-3);pointer-events:none}.input-icon input{padding-left:38px}details.formula{margin:var(--space-3) 0;color:var(--color-ink-2);font-size:15px}details.formula summary{cursor:pointer;color:var(--color-accent-ink);font-weight:600;min-height:44px;display:flex;align-items:center}details.formula ul{padding-left:20px;margin:6px 0}.page>.card+.card{margin-top:var(--space-4)}.tally .big small{font-size:17px;font-weight:600;color:var(--color-ink-2)}.select .chev{top:50%;transform:translateY(-50%)}.grid2>.select:has(.lbl){flex-direction:column;align-items:flex-start;justify-content:center;gap:0;min-height:56px;padding-top:6px;padding-bottom:6px}.grid2>.select .lbl{font-size:var(--fs-footnote);line-height:16px}.grid2>.select .val{max-width:100%}.week-row .bf{font-size:var(--fs-subhead);line-height:var(--lh-subhead);color:var(--color-ink-2);display:block;margin-top:2px}.week-row .flag{align-items:flex-start;line-height:18px}.week-row .flag .lucide{flex:none;margin-top:2px}.week-row .flag span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.g-row .price-btn.none{color:var(--color-accent-ink);font-size:var(--fs-subhead);font-weight:600}.photo{position:relative;width:100%;overflow:hidden;border-radius:var(--radius-md);background:var(--color-accent-soft)}.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}.photo-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--color-accent-ink);opacity:.4}.photo-empty svg.lucide{width:44px;height:44px}.photo.loading,.photo.ready{background:#efeae2}.photo.loading:before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,#fff0 20%,#ffffff8c,#fff0 80%) #efeae2;background-size:200% 100%;animation:photo-shimmer 1.4s ease-in-out infinite}.photo.loading img{opacity:0}.photo.ready img{opacity:1;transition:opacity .35s var(--ease)}@keyframes photo-shimmer{0%{background-position:150% 0}to{background-position:-50% 0}}@media (prefers-reduced-motion:reduce){.photo.loading:before{animation:none}.photo.ready img{transition:none}}.hero{overflow:hidden}.hero-photo{display:block;width:calc(100% + 2 * var(--space-5));margin:calc(-1 * var(--space-5)) calc(-1 * var(--space-5)) var(--space-4);padding:0;border:0;background:none;cursor:pointer}.hero-photo .photo{border-radius:var(--radius-lg) var(--radius-lg) 0 0}.recipe-hero{border-radius:var(--radius-lg);margin-top:var(--space-2)}.recipe-hero+.recipe-head{margin-top:var(--space-4)}.hero-controls{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-4)}.hero-controls .select.block .val{margin-left:auto}.table-line{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.table-line b{font-size:var(--fs-headline);font-weight:600;display:block}.table-line .t-foot{display:block}.table-line .link,.table-card .link{min-height:0;font-size:inherit}.multipick{border:0;text-align:left;font:inherit;font-weight:600;cursor:pointer;width:100%;padding-top:10px;padding-bottom:10px;min-height:56px;flex-direction:column;align-items:flex-start;gap:2px;justify-content:center}.multipick .lbl{font-size:var(--fs-footnote)}.multipick .val{white-space:normal;line-height:1.3;max-width:100%}.multipick .val.muted{color:var(--color-ink-3);font-weight:400}.multipick .chev{top:50%;transform:translateY(-50%)}.pick-row{width:100%;border:0;background:none;text-align:left;font:inherit;color:inherit;cursor:pointer}.add-own{display:flex;gap:var(--space-2)}.add-own input{flex:1;min-width:0}.stack{display:flex;flex-direction:column;gap:var(--space-3)}.onb{min-height:100dvh;display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top) + var(--space-3)) var(--gutter) calc(env(safe-area-inset-bottom) + var(--space-4));max-width:560px;margin:0 auto;animation:fade var(--dur) var(--ease)}.onb-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:44px}.onb-top .t-foot{color:var(--color-ink-3);font-variant-numeric:tabular-nums}.onb-progress{height:4px;border-radius:2px;background:var(--color-surface-sunken);overflow:hidden;margin:var(--space-2) 0 var(--space-6)}.onb-progress span{display:block;height:100%;background:var(--color-accent);border-radius:2px;transition:width var(--dur) var(--ease)}.onb-body{flex:1;display:flex;flex-direction:column;gap:var(--space-4)}.onb-body h1{margin:0}.onb-body .lede{color:var(--color-ink-2);font-size:var(--fs-body);line-height:var(--lh-body);margin:0}.onb-foot{display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-5)}.onb-mark{width:56px;height:56px;border-radius:16px;background:var(--color-accent);color:var(--color-on-accent);display:flex;align-items:center;justify-content:center}.onb-mark svg.lucide{width:28px;height:28px}.kid-line{display:flex;gap:var(--space-2);align-items:center}.kid-line .select{flex:1}.line-between{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:52px}.plan-note{display:block;font-size:var(--fs-footnote);color:var(--color-accent);margin-top:2px}.warn-note{display:block;font-size:var(--fs-footnote);color:var(--color-caution, #9a6b00);margin-top:2px}.row.disabled{opacity:.45}.first-week .row{align-items:flex-start}.first-week .date-col{margin-top:2px}.lib-tools.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2)}.lib-tools.three .search-wrap{grid-column:1/-1}.btn.danger-fill{background:var(--color-danger);color:#fff}.btn.danger-fill:disabled{opacity:.45}.today-note{margin:0 0 var(--space-3)}.reserve{visibility:hidden;pointer-events:none}.notice.warn{background:var(--color-honey-soft);border-color:transparent}.notice.warn>svg.lucide{color:var(--color-honey)}.inline-ico{display:inline-flex;vertical-align:-2px;margin-right:4px}.inline-ico svg{width:14px;height:14px;color:var(--color-accent)}.rate-person{align-items:center!important;gap:var(--space-3)}.faces{display:flex;gap:4px;flex:none}.face-btn{width:44px;height:44px;border-radius:12px;border:0;background:transparent;color:var(--color-ink-3);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.face-btn.on{background:var(--color-accent-soft);color:var(--color-accent)}.face-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.family-score{margin:var(--space-3) 0 0;font-size:var(--fs-subhead);color:var(--color-ink-2)}.family-score b{color:var(--color-ink);font-variant-numeric:tabular-nums}.family-score.keeper{color:var(--color-accent-ink)}.link-title{background:none;border:0;padding:0;font:inherit;font-weight:600;color:var(--color-ink);text-align:left;cursor:pointer;text-decoration:underline;text-decoration-color:var(--color-line);text-underline-offset:3px}.preview-photo{border-radius:var(--radius-md);overflow:hidden;margin-bottom:var(--space-3)}.preview-meta{color:var(--color-ink-2);margin:0 0 var(--space-3)}.preview-ings{margin:0;padding-left:1.1em;color:var(--color-ink);line-height:1.6}.preview-ings li::marker{color:var(--color-ink-3)}.checkin-row{align-items:center!important;gap:var(--space-3)}.checkin-row .body{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.checkin-row .link{font-size:var(--fs-footnote);padding:0;min-height:28px}.checkin-row .select{flex:none;min-width:132px}.week-tools{margin-top:var(--space-4)}.week-row .bf{margin-top:8px;min-height:32px;padding:4px 0!important;display:flex!important;align-items:center}.kid-row{display:grid;grid-template-columns:1fr 128px 44px;gap:var(--space-2);align-items:center;margin:6px 0}.kid-row .select,.kid-row .select>button{width:100%}@media (min-width:600px){.kid-line{flex-wrap:nowrap}.kid-row{grid-template-columns:1fr 160px 44px}}.onb-foot{position:sticky;bottom:0;z-index:2;background:var(--color-bg);margin:0 calc(var(--gutter) * -1);padding:var(--space-3) var(--gutter) calc(env(safe-area-inset-bottom) + var(--space-3));box-shadow:0 -12px 16px -12px var(--color-bg)}.print-only{display:none}@media print{@page{size:auto;margin:12mm}html,body{background:#fff!important;height:auto!important;min-height:0!important}body *{visibility:hidden}.app{min-height:0!important;max-width:none!important}.tabbar,.toast,.sheet-backdrop,.sheet,header,.app>:not(main),main>.page>:not(.print-week){display:none!important}main,main>.page{padding:0!important;margin:0!important;min-height:0!important}.print-week,.print-week *{visibility:visible}.print-week{display:block!important;position:static;width:100%;color:#1d1d1f;font:10.5pt/1.35 -apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Arial,sans-serif;break-inside:avoid;page-break-inside:avoid}.print-week h1{font-size:15pt;margin:0 0 8pt;color:#4a7359}.print-week table{width:100%;border-collapse:collapse;break-inside:avoid;page-break-inside:avoid}.print-week tr{break-inside:avoid;page-break-inside:avoid}.print-week th{text-align:left;font-size:8.5pt;text-transform:uppercase;letter-spacing:.04em;color:#6b6b6b;border-bottom:1.5pt solid #4A7359;padding:3pt 6pt}.print-week td{vertical-align:top;border-bottom:.5pt solid #ddd;padding:5pt 6pt}.print-week th:first-child,.print-week td:first-child{width:18%}.print-week th:last-child,.print-week td:last-child{width:11%;white-space:nowrap}.print-week .muted{color:#8a8a8a;font-style:italic}.print-week small{color:#6b6b6b}.print-week p{margin-top:10pt;font-size:8pt;color:#999}}.lib-row .thumb{flex:none;width:64px;align-self:center}.lib-row .thumb .photo{border-radius:10px}.lib-row .thumb .photo-empty svg.lucide{width:22px;height:22px}.edit-photo{margin-bottom:var(--space-4)}.edit-photo .photo{border-radius:var(--radius-md)}.edit-photo-actions{display:flex;gap:var(--space-3);margin-top:var(--space-3)}.edit-photo-actions>.btn{flex:1;min-width:0;padding:0 var(--space-3);position:relative}.edit-photo-actions .btn.disabled{opacity:.6;pointer-events:none}.edit-photo-actions .btn.danger-text{background:none;color:var(--color-ink-2)}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.week-day{position:relative}.week-day+.week-day:before{content:"";position:absolute;top:0;right:0;left:0;border-top:1px solid var(--color-line);z-index:1}.list .week-day .week-row{width:100%;min-height:64px;padding-bottom:var(--space-3)!important}.week-row .meal-lbl,.week-bf .meal-lbl{display:block;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-ink-3);line-height:14px;margin-bottom:2px}.week-row .flag{display:flex}.week-bf{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:48px;padding:var(--space-2) var(--space-4) var(--space-3) 76px;background:none;border:0;border-top:1px dashed var(--color-line);font:inherit;color:inherit;text-align:left;cursor:pointer}.week-bf .meal-lbl{margin:0;flex:none;width:68px}.week-bf .bf-t{flex:1;min-width:0;font-size:var(--fs-subhead);line-height:var(--lh-subhead);color:var(--color-ink-2)}.week-bf .chev{width:16px;height:16px;color:var(--color-ink-3);flex:none}.week-bf:active,.week-day .week-row:active{background:var(--color-bg)}.week-day.done .week-row .title,.week-day.out .week-row .title{color:var(--color-ink-2)}.toast{top:calc(env(safe-area-inset-top) + 64px);bottom:auto!important;pointer-events:none}.money-in{position:relative;display:block}.money-in .money-sign{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--ink-3);font-size:16px;pointer-events:none}.money-in input{padding-left:28px!important;width:100%;font-variant-numeric:tabular-nums}.person-why{padding-top:0;padding-bottom:10px;display:block}.same-btn{margin:4px 0 12px}.tweak-row{align-items:flex-start;gap:12px}.tweak-row input[type=checkbox]{margin-top:4px;width:18px;height:18px;accent-color:var(--ink)}.tweak-row .subtitle{display:block;margin-top:2px}.family-said h4{margin:0 0 6px;font-size:14px}.family-said p{margin:4px 0}.settings-danger{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin:12px 0}.lib-tag{font-size:11px;letter-spacing:.02em;text-transform:uppercase;color:var(--ink-3);margin-left:6px}.lib-warn{display:block;font-size:12px;font-weight:500;color:var(--ink-2);margin-top:2px}.lib-warn.allergy{color:var(--color-danger)}.rest-week{margin:8px 0 16px}.swap-current{display:flex;align-items:baseline;gap:var(--space-2);margin:0 0 var(--space-3);color:var(--color-ink-2)}.swap-current .title{font-weight:500;color:var(--color-ink)}.pick-row.sel .subtitle:first-of-type{color:var(--color-ink-2)}.week-day.past .week-row .title,.week-day.past .meal-lbl{color:var(--color-ink-3)}.week-day.past .date-col{opacity:.6}.plan-starts{margin:0 0 var(--space-3)}.meta .link.add-time{font-size:inherit;min-height:0;gap:6px}.meta .link.add-time svg.lucide{color:var(--color-accent)}.cook-time-fields{margin-bottom:var(--space-2)}.checkin-rate-list .checkin-row .btn,.checkin-rate-list .badge{flex:none}html{scrollbar-gutter:stable}.ing-row.left-out .qty,.ing-row.left-out .name{color:var(--color-ink-3);text-decoration:line-through;text-decoration-thickness:1px}.ing-row.left-out .name small{text-decoration:none;display:inline-block;margin-left:6px}.swap-scope{margin:4px 0 0}.toast{top:auto;bottom:calc(84px + env(safe-area-inset-bottom))!important}.host-badge .toast{bottom:128px!important}.toast-msg{display:contents}.toast.has-action{pointer-events:auto;padding-right:6px}.toast-act{background:none;border:0;color:#e9dfc9;font:inherit;font-weight:600;padding:6px 12px;margin-left:4px;border-radius:var(--radius-pill);cursor:pointer;min-height:36px}.toast-act:hover{background:#ffffff14}.g-row.done .title{text-decoration:line-through;text-decoration-color:var(--color-ink-3);color:var(--color-ink-3)}.g-row.done .subtitle{color:var(--color-ink-3)}.g-row.settling{transition:opacity .3s}.takeout-row .body{cursor:pointer;text-align:left;background:none;border:0;padding:0;font:inherit;color:inherit}.notice.warning{border-color:var(--color-accent)}.bar-val.long{font-size:8.5px}.select.needs{box-shadow:inset 0 0 0 1.5px var(--color-accent)}.select.needs .val,.hint.need-age{color:var(--color-accent-ink)}.ai-note{display:flex;gap:var(--space-2);align-items:flex-start;color:var(--color-ink-2);font-size:var(--fs-footnote);line-height:var(--lh-footnote)}.ai-note svg{width:16px;height:16px;flex:none;margin-top:1px;color:var(--color-ink-3)}.import-shot{display:block;width:100%;max-height:260px;object-fit:contain;border-radius:var(--radius-md);background:var(--color-surface-sunken);margin:var(--space-2) 0 var(--space-3)}.seg button{min-width:0}.kreview{display:flex;flex-direction:column;gap:var(--space-s,12px);margin-top:12px}.krev-row{border:1px solid var(--color-line,rgba(0,0,0,.08));border-radius:var(--radius-md);padding:12px;display:flex;flex-direction:column;gap:8px}.krev-head{display:flex;align-items:center;gap:8px}.krev-head .title{flex:1;font-weight:600}.krev-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.krev-foot .qty{min-width:28px;text-align:center;font-variant-numeric:tabular-nums}.krev-price{font-variant-numeric:tabular-nums}.krev-total{display:flex;align-items:baseline;justify-content:space-between;margin:16px 0 12px}.krev-total b{font-size:1.25rem;font-variant-numeric:tabular-nums}.coach .swap-advice{margin-top:var(--space-3)}.g-row .subtitle.big-count{color:var(--color-accent-ink)}.family-score.empty{color:var(--color-ink-3, var(--color-ink-2))}.rate-left{min-height:2.9em;margin:var(--space-3) 0 var(--space-2)}.toast.at-top{top:calc(env(safe-area-inset-top) + 6px)!important;bottom:auto!important}.krev-row.skipped{opacity:.55}.krev-row.skipped .title{text-decoration:line-through;text-decoration-color:var(--color-ink-3, #999)}.krev-head{min-height:40px}.krev-head .icon-btn.sm,.krev-head .krev-back{height:36px;min-height:36px;box-sizing:border-box}.krev-back{padding:0 12px;line-height:1}.krev-act{flex:none;width:88px;display:flex;justify-content:flex-end}.krev-foot{min-height:44px}.krev-price{line-height:1.5}.cook-mode{position:fixed;inset:0;z-index:60;background:var(--color-bg);display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top) + var(--space-3)) var(--space-4) calc(env(safe-area-inset-bottom) + var(--space-3))}.cook-top{display:flex;align-items:center;gap:var(--space-3);min-height:44px}.cook-title{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center}.cook-title b{font-size:var(--fs-subhead);color:var(--color-ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;font-weight:600}.cook-progress{height:4px;border-radius:2px;background:var(--color-surface-sunken);margin:var(--space-3) 0 var(--space-2);overflow:hidden}.cook-progress span{display:block;height:100%;background:var(--color-accent);transition:width .2s}.cook-wake{display:flex;align-items:center;gap:6px;justify-content:center;margin:0 0 var(--space-2);font-size:var(--fs-footnote);color:var(--color-ink-3);min-height:18px}.cook-wake svg.lucide{width:14px;height:14px}.cook-body{flex:1;overflow-y:auto;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch;padding:var(--space-3) 0}.cook-step{font:500 26px/36px var(--font-display);letter-spacing:-.01em;color:var(--color-ink);margin:0 0 var(--space-5)}@media (min-width:600px){.cook-step{font-size:30px;line-height:42px}}.cook-body.on-step{display:flex;flex-direction:column}.cook-stage{margin:auto 0;width:100%;display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-4) 0}.cook-stage .cook-step{max-width:22em;margin:0 auto var(--space-5);font-weight:500;letter-spacing:-.015em;text-wrap:balance;color:var(--color-ink)}.cook-stage .cook-step.xl{font-size:clamp(30px,7vw,48px);line-height:1.22}.cook-stage .cook-step.lg{font-size:clamp(26px,5.6vw,38px);line-height:1.28}.cook-stage .cook-step.md{font-size:clamp(22px,4.6vw,30px);line-height:1.36}.cook-step-timers{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2)}.cook-step-timers .cook-timer-btn{margin:0}.pick-section{margin:var(--space-4) var(--space-4) var(--space-1);color:var(--color-ink-3)}.pick-empty .subtitle{white-space:normal;line-height:1.45}.cook-h{font:700 var(--fs-title)/var(--lh-title) var(--font-display);margin-bottom:var(--space-1)}.cook-note{background:var(--color-honey-soft);color:var(--color-honey);border-radius:var(--radius-md);padding:var(--space-3);font-size:var(--fs-subhead)}.cook-timer-btn{margin:0 var(--space-2) var(--space-2) 0}.cook-ings{margin-top:var(--space-3)}.cook-ing{cursor:pointer}.cook-ing.done .title{color:var(--color-ink-3);text-decoration:line-through}.cook-timers{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2) 0}.cook-timer{display:flex;align-items:center;gap:var(--space-2);background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);box-shadow:var(--shadow-1, 0 1px 2px rgba(0,0,0,.06))}.cook-timer .body{flex:1;display:flex;flex-direction:column}.cook-timer b{font:700 22px/28px var(--font-display);font-variant-numeric:tabular-nums}.cook-timer.done{background:var(--color-accent-soft)}.cook-timer.done b{color:var(--color-accent-ink)}.cook-nav{display:grid;grid-template-columns:1fr 1.6fr;gap:var(--space-2);padding-top:var(--space-2)}.btn.lg{height:56px;font-size:var(--fs-headline)}.cook-btn{margin:var(--space-3) 0 0}.suggest-btn{margin:var(--space-3) 0 0 var(--space-2);color:var(--color-ink-2)}.suggest-btn svg{width:16px;height:16px;color:var(--color-ink-3)}.ai-none{margin:var(--space-2) 0}.idea-ask .btn-row{flex-wrap:wrap}.idea-ask .btn-row .btn{flex:none;white-space:nowrap}.note-latest .grow b{font-weight:600}.notes-list .row .body .subtitle{white-space:normal}.note-actions{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.tag-line{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:var(--space-2);font-size:var(--fs-footnote);color:var(--color-ink-2);align-items:center}.tag-line .link{font-size:var(--fs-footnote)}.lib-tools.three{grid-template-columns:repeat(3,minmax(0,1fr))}.g-row .body{cursor:pointer}.uses-list{margin-top:var(--space-2)}.item-sheet .btn.grow{flex:1}.sheet-wrap .sheet.tall{height:88vh;height:88dvh}.sheet-wrap .sheet.tall .sheet-body{flex:1;min-height:0;overflow-anchor:none}.leave-ask{position:absolute;left:0;right:0;bottom:0;z-index:2;background:var(--color-surface);box-shadow:var(--shadow-sheet);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:var(--space-4) var(--gutter) calc(var(--space-4) + env(safe-area-inset-bottom))}.leave-ask .title{font-size:var(--fs-headline);font-weight:600;margin:0}.leave-btns{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);margin-top:var(--space-3)}.leave-btns .btn.plain{grid-column:1/-1}.leave-btns .danger-text{color:var(--color-danger, #9a3b2e)}.who-rated h4{margin:0 0 var(--space-2)}.who-list{display:grid;gap:var(--space-1)}.who-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);font-size:var(--fs-subhead);min-height:28px}.who-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.who-score{display:inline-flex;align-items:center;gap:6px;color:var(--color-ink-2);font-variant-numeric:tabular-nums;white-space:nowrap}.who-score b{color:var(--color-ink)}.hint.danger{color:var(--color-danger)}.btn.skip-toggle{white-space:normal;height:auto;min-height:var(--tap);padding:10px var(--space-4);line-height:1.35;text-align:center;font-weight:500;font-size:var(--fs-subhead);color:var(--color-ink-2);max-width:100%}.sheet-body{overflow-x:hidden}.icon-btn.labeled{width:auto;padding:0 var(--space-3) 0 10px;gap:6px;font-size:var(--fs-footnote);font-weight:600}.icon-btn.labeled svg.lucide{width:16px;height:16px}@media (min-width:760px){.cook-mode{padding-left:max(var(--space-4),calc((100vw - 720px)/2));padding-right:max(var(--space-4),calc((100vw - 720px)/2))}}.sheet-foot{flex:none;padding:var(--space-2) var(--gutter) var(--space-3);border-top:1px solid var(--color-line);background:var(--color-surface)}.sheet-foot .rate-left{margin:0 0 var(--space-2);min-height:0;height:2.9em;overflow:hidden}.name-line{display:flex;gap:var(--space-2);align-items:center;margin:6px 0}.name-line input{flex:1;min-width:0}.kid-line input.kid-name{flex:1.1;min-width:0}.lib-hidden{margin-top:var(--space-3)}.conflict-confirm{margin:2px 0 var(--space-2);padding:var(--space-2) var(--space-3);border-radius:12px;background:var(--color-caution-bg, #fff6e0);color:var(--color-ink, inherit);font-size:var(--fs-subhead)}.conflict-confirm p{margin:0 0 var(--space-2);display:flex;gap:6px;align-items:flex-start;line-height:1.35}.conflict-confirm p svg{flex:none;margin-top:2px;color:var(--color-caution, #9a6b00)}.conflict-confirm .btn-row{display:flex;gap:var(--space-2);flex-wrap:wrap}.pick-row.conflict .title{color:var(--color-ink-2)}.krev-row.unsure{border-color:var(--color-caution, #9a6b00)}.krev-flag{font-size:var(--fs-footnote);font-weight:600;color:var(--color-caution, #9a6b00);background:color-mix(in srgb,var(--color-caution, #9a6b00) 10%,transparent);border-radius:999px;padding:1px 8px;white-space:nowrap}.hint.warn{color:var(--color-caution, #9a6b00)}.krev-row.gf-check{border-color:var(--color-caution, #9a6b00)}.lib-tools.swap-search{display:block;margin-bottom:var(--space-3)}.lib-tools.swap-search input{width:100%;box-sizing:border-box}input.recipe-search::-webkit-search-cancel-button{-webkit-appearance:none}input.recipe-search{-webkit-appearance:none;appearance:none}.week-row .also-on{display:block;font-size:var(--fs-footnote);line-height:18px;color:var(--color-ink-3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.t-sub.also-on{display:flex;align-items:center;gap:6px;margin-top:var(--space-1)}.t-sub.also-on .lucide{width:15px;height:15px;flex:none;color:var(--color-ink-3)}.also-on-line{display:flex;align-items:center;gap:6px;font-size:var(--fs-footnote);color:var(--color-ink-2);margin-top:var(--space-2)}.also-on-line .lucide{width:14px;height:14px;flex:none;color:var(--color-ink-3)}.sheet-wrap .sheet.store-sheet{max-height:88vh;max-height:88dvh}.sheet.store-sheet .sheet-body{flex:1 1 auto;min-height:0}.store-list .row .subtitle{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (min-width:700px){.sheet-wrap.wrap-store-sheet{align-items:center;padding:var(--space-6)}.sheet.store-sheet .sheet-grab{display:none}.sheet-wrap .sheet.store-sheet{border-radius:var(--radius-xl);max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);padding-bottom:var(--space-2)}}@media (max-width:400px){.head-actions{gap:var(--space-1)}}.store-line{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-md)}.store-line .body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}.store-line .title{font-size:var(--fs-body);line-height:var(--lh-body);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.store-line .subtitle{font-size:var(--fs-footnote);line-height:var(--lh-footnote);color:var(--color-ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.store-line .btn.sm{height:44px;min-width:76px;flex:none}.gf-fix{display:flex;flex-direction:column;gap:var(--space-3)}.gf-fix .gf-why{margin:0;color:var(--ink);line-height:1.45}.gf-fix .gf-actions{display:flex;flex-wrap:wrap;gap:8px}.gf-fix .t-foot{margin:0}.ob-store{display:flex;flex-direction:column;gap:10px}.ob-store .hint{margin:0}.diet-badge{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.02em;line-height:1;padding:4px 8px;border-radius:999px;background:var(--color-success-soft);color:var(--color-success);white-space:nowrap}.lib-diets{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.lib-gfnote{display:block;font-size:12px;color:var(--color-ink-3);margin-top:2px;line-height:1.35}.recipe-diets{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:var(--space-2)}.recipe-gfnote{flex-basis:100%;font-size:var(--fs-footnote);color:var(--color-ink-2);margin:6px 0 0;line-height:1.4}.lib-hidden-group{display:flex;flex-direction:column;margin-top:var(--space-3)}.lib-hidden-group .lib-hidden{margin-top:0}.lib-hidden-group .lib-hidden+.lib-hidden{border-top:1px solid var(--color-line)}.krev-count-note{font-size:var(--fs-footnote);color:var(--color-ink-2);margin:0 0 var(--space-2)}.sum-why{font-size:var(--fs-footnote);color:var(--color-ink-2);margin-top:4px;line-height:1.4}.ai-tag{display:inline-flex;align-items:center;align-self:flex-start;width:fit-content;margin:4px 0 0;padding:2px 8px;border-radius:999px;background:var(--color-accent-soft);color:var(--color-accent-ink);font-size:var(--fs-caption,12px);font-weight:600;letter-spacing:.01em;line-height:1.5}.ai-tag.tried{background:var(--color-surface-sunken);color:var(--color-ink-2)}.week-row .ai-tag{margin-top:3px}.ai-chip{display:inline-block;margin-left:6px;padding:0 6px;border-radius:6px;background:var(--color-accent);color:var(--color-on-accent);font-size:10px;font-weight:700;letter-spacing:.06em;vertical-align:1px}.tweak-row.ai{background:var(--color-accent-soft);box-shadow:inset 3px 0 0 var(--color-accent)}.chg-line del,.vc-changes del{color:var(--color-ink-3);text-decoration:line-through;text-decoration-color:var(--color-control)}.chg-line ins,.vc-changes ins{text-decoration:none;background:var(--color-honey-soft);color:var(--color-ink);border-radius:4px;padding:0 3px}.chg-arrow{color:var(--color-ink-3)}.chg-k{font-weight:600;color:var(--color-ink-2)}.why-line{display:block;margin-top:6px;font-size:var(--fs-footnote);line-height:var(--lh-footnote);color:var(--color-ink-2)}.version-preview{margin-top:var(--space-3)}.version-compare .overline{margin:0 0 4px}.version-compare.ai{box-shadow:inset 3px 0 0 var(--color-accent),0 1px 2px #2b24200f}.vc-why{margin:0 0 var(--space-2);font-size:var(--fs-footnote);line-height:var(--lh-footnote);color:var(--color-ink-2)}.vc-changes{margin:0 0 var(--space-2);padding-left:18px;font-size:var(--fs-footnote);line-height:1.5}.vc-list{margin:4px 0 var(--space-2);padding-left:20px;font-size:var(--fs-subhead);line-height:1.5}.vc-list li{padding:1px 4px;border-radius:5px}.vc-list li.chg,.steps li.chg{background:var(--color-honey-soft)}.vc-list li.gone{color:var(--color-ink-3);text-decoration:line-through;text-decoration-color:var(--color-control)}.ing-row.chg{background:linear-gradient(90deg,var(--color-honey-soft),transparent 70%)}.vc-rate{margin-top:var(--space-2)}.ai-off-hint{color:var(--color-ink-2)}.g-row .row-why{color:var(--color-caution, #8a6400)}.toast.has-action{pointer-events:none}.toast.has-action .toast-act{pointer-events:auto}.tweak-skel .skel{pointer-events:none;min-height:116px;align-items:flex-start}.tweak-skel .skel-box{width:20px;height:20px;border-radius:6px;background:var(--color-surface-sunken);flex:none;margin-top:2px}.tweak-skel .body{display:flex;flex-direction:column;gap:8px;flex:1}.skel-line{display:block;height:12px;border-radius:6px;background:var(--color-surface-sunken);animation:skel 1.4s ease-in-out infinite}.skel-line.w40{width:40%}.skel-line.w60{width:60%}.skel-line.w80{width:80%}.skel-line.w90{width:90%}@keyframes skel{50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.skel-line{animation:none}}.hero-controls+.list{margin-top:var(--space-4)}.table-line{min-height:var(--tap)}.table-line .stepper{flex-shrink:0}.hh-name{text-transform:none;letter-spacing:0;overflow-wrap:anywhere}.overline,.tweak-row,.tweak-row *{overflow-wrap:anywhere}.stars.pick{flex-shrink:0}.confirm-wrap{position:fixed;inset:0;background:var(--color-scrim);z-index:30;display:flex;align-items:center;justify-content:center;padding:var(--space-4) var(--gutter);animation:fade var(--dur-fast)}.confirm-box{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-sheet);width:100%;max-width:400px;padding:var(--space-4);animation:pop var(--dur-sheet) var(--ease)}.confirm-box h3{margin:0 0 var(--space-2)}.confirm-box p{margin:0 0 var(--space-2);line-height:1.4}.confirm-box .btn-row{display:flex;gap:var(--space-2);justify-content:flex-end;margin-top:var(--space-3)}@keyframes pop{0%{transform:scale(.96);opacity:0}to{transform:none;opacity:1}}.shelf{margin-top:var(--space-4)}.shelf-head{display:flex;flex-direction:column;gap:2px;margin-bottom:var(--space-3)}.shelf-head .t-foot{color:var(--color-ink-3)}.shelf-list{display:flex;gap:var(--space-3);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:var(--space-2);margin:0 calc(-1 * var(--gutter));padding-left:var(--gutter);padding-right:var(--gutter)}.shelf-card{flex:none;width:min(280px,78vw);scroll-snap-align:start;display:flex;flex-direction:column;padding:var(--space-3);margin:0}.card.shelf-card+.card.shelf-card{margin-top:0}.shelf-open{display:flex;flex-direction:column;gap:var(--space-2);text-align:left;background:none;border:0;padding:0;color:inherit;font:inherit;cursor:pointer;flex:1}.shelf-open .thumb .photo{border-radius:10px}.shelf-open .tile{display:flex;align-items:center;justify-content:center;height:96px;border-radius:10px;background:var(--color-surface-sunken);color:var(--color-ink-2)}.shelf-open .body{display:flex;flex-direction:column;gap:2px}.shelf-open .title{font-size:var(--fs-headline);line-height:var(--lh-headline);font-weight:600}.shelf-reason{font-size:var(--fs-subhead);line-height:var(--lh-subhead);color:var(--color-ink-2)}.shelf-actions{margin-top:var(--space-3);display:flex;gap:var(--space-2);flex-wrap:wrap;align-items:center}.shelf-saved{color:var(--color-success)}.shelf-saved svg{width:16px;height:16px}.shelf-note{margin-top:var(--space-2)}
