:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--space-3xs:2px;--space-2xs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:40px;--space-2xl:64px;--space-3xl:96px;--space-4xl:144px;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.2rem;--text-xl:1.44rem;--text-2xl:1.728rem;--text-3xl:2.074rem;--text-display-s:1.44rem;--text-display:1.728rem;--text-section:1.2rem;--text-title:1rem;--text-lead:1rem;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-micro:.12s;--dur-short:.22s;--dur-long:.42s;--color-error:oklch(72% .15 27);--color-success:oklch(76% .13 150);--container:1440px;--gutter:64px;--gap-columns:32px;--section-gap-s:120px;--section-gap:144px;--section-gap-l:176px;--z-base:1;--z-raised:10;--z-dropdown:100;--z-sticky:200;--z-sticky-nav:300;--z-modal:400;--z-toast:500;--z-tooltip:600;--color-paper:oklch(24% .052 158);--color-paper-2:oklch(19.5% .045 158);--color-paper-3:oklch(29.5% .05 158);--color-ink:oklch(93% .022 88);--color-ink-2:oklch(81% .035 150);--color-muted:oklch(69% .045 150);--color-rule:oklch(35% .05 158);--color-accent:oklch(87% .19 118);--color-accent-2:oklch(92% .13 118);--color-accent-deep:oklch(46% .12 128);--color-accent-ink:oklch(22% .05 158);--color-focus:oklch(92% .13 118);--font-display:"Prata", Georgia, serif;--font-body:"Manrope", ui-sans-serif, system-ui, sans-serif;--font-outlier:"IBM Plex Mono", ui-monospace, monospace;--radius-card:0;--radius-pill:999px;--rule-hair:1px;--shadow-card:none;--tracking-display:-.005em;--display-weight:400}*,:before,:after{box-sizing:border-box}html,body{overflow-x:clip}html{scrollbar-color:var(--color-muted) var(--color-paper);scroll-padding-top:var(--space-3xl)}body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-md);-webkit-font-smoothing:antialiased;caret-color:var(--color-accent);margin:0;line-height:1.55}::selection{background:color-mix(in oklab, var(--color-accent) 22%, transparent);color:var(--color-ink)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}a{color:inherit;text-underline-offset:.16em;text-decoration-thickness:1px}h1,h2,h3{font-family:var(--font-display);font-weight:var(--display-weight,700);font-synthesis:none;letter-spacing:var(--tracking-display);overflow-wrap:break-word;text-wrap:balance;min-width:0;margin:0;line-height:1.05}h1{max-width:20ch;font-size:var(--text-display)}h2{max-width:30ch;font-size:var(--text-section)}h3{max-width:40ch;font-size:var(--text-title);line-height:1.2}.lead{font-size:var(--text-lead);max-width:52ch;line-height:1.45}p{text-wrap:pretty;margin:0}p:not([class]){max-width:65ch}img,video{max-width:100%;height:auto;display:block}svg{display:block}[hidden]{display:none!important}button,input,select,textarea{font:inherit}.container{width:100%;max-width:var(--container);padding-inline:var(--gutter);box-sizing:border-box;margin-inline:auto}.num,.figure,td.num{font-variant-numeric:tabular-nums}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}[data-slot]{background:linear-gradient(160deg, var(--color-paper-2,var(--color-paper)), var(--color-paper-3,var(--color-paper)));position:relative;overflow:hidden}[data-slot]>img{object-fit:cover;z-index:1;width:100%;height:100%;position:absolute;inset:0}[data-slot]:has(>img)>:not(img):not([data-keep]){display:none!important}@media (width<=60rem){:root{--gutter:24px;--section-gap-s:80px;--section-gap:96px;--section-gap-l:120px}}@media (width<=40rem){:root{--gutter:16px;--section-gap-s:56px;--section-gap:72px;--section-gap-l:96px;--gap-columns:16px}}@media (prefers-reduced-motion:reduce){:not(.keep-motion),:not(.keep-motion):before,:not(.keep-motion):after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}[data-slot]>img{filter:saturate(.9)contrast(1.08)brightness(.92)}:root{--color-scrim:color-mix(in oklab, var(--color-paper-2) 70%, transparent);--color-on-error:var(--color-accent-ink);--control:40px;--control-s:32px;--rule-strong:1.5px;--measure-app:36rem;--measure-app-wide:46rem}body{color:var(--color-ink-2);font-size:1.0625rem;line-height:1.6}h1,h2,h3,strong{color:var(--color-ink)}h1{font-size:var(--text-display);margin-block-end:var(--space-xs);line-height:1.08}h2{font-size:var(--text-xl);line-height:1.12}h3{font-size:var(--text-lg)}a{color:var(--color-ink);-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent)}a:hover{text-decoration-thickness:2px}button,input,select{color:inherit}strong{font-weight:700}small,.small{font-size:var(--text-sm)}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{z-index:var(--z-tooltip);padding:var(--space-xs) var(--space-sm);background:var(--color-ink);color:var(--color-paper);position:absolute;inset-block-start:var(--space-xs);inset-inline-start:var(--space-xs);transform:translateY(-200%)}.skip-link:focus-visible{transform:none}mark{background:color-mix(in oklab, var(--color-accent) 24%, transparent);color:var(--color-ink);padding-inline:var(--space-3xs)}.app{min-height:100dvh}.screen{width:100%;max-width:var(--measure-app);flex-direction:column;min-height:100dvh;margin-inline:auto;display:flex}.screen.wide{max-width:var(--measure-app-wide)}.topbar{z-index:var(--z-sticky-nav);align-items:center;gap:var(--space-sm);padding:calc(var(--space-xs) + env(safe-area-inset-top)) calc(var(--space-md) + env(safe-area-inset-right)) var(--space-xs) calc(var(--space-md) + env(safe-area-inset-left));background:var(--color-paper);border-block-end:var(--rule-hair) solid var(--color-rule);display:flex;position:sticky;top:0}.topbar-actions{gap:var(--space-2xs);align-items:center;margin-inline-start:auto;display:flex}.content{padding:var(--space-lg) var(--space-md) var(--space-xl);flex:1}.content>h1+.lede{margin-block-end:var(--space-lg)}.footer{z-index:var(--z-sticky);padding:var(--space-sm) var(--space-md) calc(var(--space-sm) + env(safe-area-inset-bottom));background:var(--color-paper-2);color:var(--color-ink-2);border-block-start:var(--rule-hair) solid var(--color-rule);position:sticky;bottom:0}.progress{background:var(--color-rule);flex:1;height:2px;overflow:hidden}.progress span{background:var(--color-accent);height:100%;display:block}.row{gap:var(--space-sm);align-items:center;display:flex}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.row.center{justify-content:center}.row.end{justify-content:flex-end}.gap-s{gap:var(--space-xs);margin-block-end:var(--space-lg)}.grow{flex:1;min-width:0}.stack{gap:var(--space-sm);flex-direction:column;display:flex}.center{text-align:center}.align-end{align-self:flex-end}.muted{color:var(--color-muted)}.lede{color:var(--color-ink-2);font-size:var(--text-md);max-width:46ch}.hint{color:var(--color-muted);font-size:var(--text-sm);margin-block:var(--space-sm)}.label{color:var(--color-muted);font-size:var(--text-sm);font-weight:500}.note{color:var(--color-muted);font-size:var(--text-sm);margin-inline-start:var(--space-xs)}.meta,.meta-line,.day-meta{column-gap:var(--space-md);row-gap:var(--space-3xs);color:var(--color-muted);font-size:var(--text-sm);flex-wrap:wrap;margin:0;font-weight:500;display:flex}.meta-line{margin-block-end:var(--space-sm)}.meta-line span:first-child{color:var(--color-ink-2)}.section-title{font-size:var(--text-xl);margin:var(--space-xl) 0 var(--space-md);align-items:baseline;gap:var(--space-xs);display:flex}.section-title .muted{font-family:var(--font-body);font-size:var(--text-sm);font-weight:500}.card{background:var(--color-paper-2);color:var(--color-ink-2);padding:var(--space-lg) var(--space-md);margin-block-end:var(--space-md)}.card>.section-title:first-child,.card>.row:first-child .section-title{margin-block-start:0}.card>.row:first-child{align-items:baseline;margin-block-end:var(--space-md)}.card>.row:first-child .section-title{margin-block-end:0}.card>.btn+.btn{margin-inline-start:var(--space-xs)}.card h3{font-size:var(--text-lg);margin-block:var(--space-lg) var(--space-xs)}.btn{justify-content:center;align-items:center;gap:var(--space-xs);min-height:var(--control);padding:0 var(--space-lg);border:var(--rule-strong) solid var(--color-accent);border-radius:var(--radius-pill);color:var(--color-accent);font:700 var(--text-sm)/1 var(--font-body);white-space:nowrap;cursor:pointer;transition:background-color var(--dur-short) var(--ease-out), border-color var(--dur-short) var(--ease-out), transform var(--dur-micro) var(--ease-out);background:0 0;text-decoration:none;display:inline-flex;position:relative}.btn:after{content:"";position:absolute;inset:-2px}.btn:hover{background:color-mix(in oklab, var(--color-accent) 12%, transparent)}.btn:active{transform:translateY(1px)}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed;transform:none}.btn[aria-busy=true]{cursor:progress}.btn.primary{background:var(--color-accent);color:var(--color-accent-ink)}.btn.primary:disabled{border-color:var(--color-rule);color:var(--color-muted);opacity:1;cursor:not-allowed;background:0 0}.btn.primary:hover:not(:disabled){background:var(--color-accent-2);border-color:var(--color-accent-2)}.btn.outline,.btn.ghost{background:0 0}.btn.ghost{border-color:var(--color-rule);color:var(--color-ink)}.btn.ghost:hover:not(:disabled){border-color:var(--color-muted);background:var(--color-paper-3)}.btn.danger{border-color:var(--color-error);color:var(--color-error);background:0 0}.btn.danger:hover:not(:disabled){background:color-mix(in oklab, var(--color-error) 14%, transparent)}.dialog .btn.danger{background:var(--color-error);color:var(--color-on-error)}.dialog .btn.danger:hover:not(:disabled){background:color-mix(in oklab, var(--color-error) 86%, var(--color-ink))}.btn.link{min-height:var(--control-s);padding:0 var(--space-2xs);color:var(--color-ink);text-decoration:underline;-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent);text-underline-offset:.2em;border-color:#0000}.btn.link:hover:not(:disabled){background:0 0;text-decoration-thickness:2px}.btn.small{min-height:var(--control-s);padding:0 var(--space-md)}.btn.block{width:100%}.icon-btn{width:var(--control);height:var(--control);border-radius:var(--radius-pill);color:var(--color-ink);cursor:pointer;transition:background-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out);background:0 0;border:0;flex-shrink:0;place-items:center;display:inline-grid;position:relative}.icon-btn:after{content:"";position:absolute;inset:-2px}.icon-btn:hover:not(:disabled){background:var(--color-paper-3)}.icon-btn:active{transform:translateY(1px)}.icon-btn:disabled{opacity:.55;cursor:not-allowed}.icon-btn.placeholder{visibility:hidden}.icon-btn.big{border:var(--rule-strong) solid var(--color-accent);width:56px;height:56px;color:var(--color-accent)}.icon-btn.on{color:var(--color-accent)}.icon-btn.on svg{fill:currentColor}.icon-btn.with-dot .dot{top:var(--space-xs);right:var(--space-xs);border-radius:var(--radius-pill);border:2px solid var(--color-accent);width:8px;height:8px;position:absolute}.chev svg,.summary-card>svg:last-child,.list-link svg{transform:rotate(180deg)}.grid{gap:var(--space-xs);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (width>=40rem){.grid:not(.two){grid-template-columns:repeat(4,minmax(0,1fr))}}.tile{justify-content:center;align-items:flex-start;gap:var(--space-2xs);text-align:start;min-height:56px;padding:var(--space-md);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-card);background:var(--color-paper-2);color:var(--color-ink);cursor:pointer;transition:border-color var(--dur-short) var(--ease-out), background-color var(--dur-short) var(--ease-out);flex-direction:column;display:flex;position:relative}.tile:hover:not(:disabled){border-color:var(--color-muted)}.tile:active:not(:disabled){transform:translateY(1px)}.tile.selected{border-color:var(--color-accent);box-shadow:inset 0 0 0 1px var(--color-accent);background:var(--color-paper-3)}.tile:disabled{opacity:.55;cursor:not-allowed}.tile-label{font-size:var(--text-md);padding-inline-end:var(--space-lg);font-weight:700;line-height:1.3}.tile-hint{font-size:var(--text-sm);color:var(--color-muted)}.tile-check{top:var(--space-sm);right:var(--space-sm);border-radius:var(--radius-pill);background:var(--color-accent);width:22px;height:22px;color:var(--color-accent-ink);place-items:center;display:grid;position:absolute}.counter{font-size:var(--text-sm);color:var(--color-muted);font-weight:500}.field{gap:var(--space-xs);font-size:var(--text-sm);color:var(--color-ink-2);flex-direction:column;font-weight:500;display:flex}.field small{color:var(--color-muted);font-weight:400}.field input,.field select,.input,.search-box input,.ask-bar input{min-height:var(--control);width:100%;padding:var(--space-xs) var(--space-sm);border:var(--rule-hair) solid var(--color-muted);border-radius:var(--radius-card);background:var(--color-paper-2);color:var(--color-ink);font-size:var(--text-md);outline-offset:-3px;transition:background-color var(--dur-short) var(--ease-out);outline:2px solid #0000;font-weight:400}.field input:hover,.input:hover,.ask-bar input:hover{background:var(--color-paper-3)}.field input:focus-visible,.field select:focus-visible,.input:focus-visible,.ask-bar input:focus-visible{outline-color:var(--color-focus)}.search-box:focus-within{outline:2px solid var(--color-focus);outline-offset:-2px}.field input:disabled,.input:disabled{opacity:.55;cursor:not-allowed}.field input[aria-invalid=true]{border-color:var(--color-error)}::placeholder{color:var(--color-muted);opacity:1}.small-field{width:6rem}.search-box{align-items:center;gap:var(--space-xs);border:var(--rule-hair) solid var(--color-muted);background:var(--color-paper-2);color:var(--color-muted);margin-block-end:var(--space-md);padding-inline-start:var(--space-sm);display:flex}.search-box input{background:0 0;border:0;outline:none}.segmented{border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-pill);padding:var(--space-3xs);gap:var(--space-3xs);display:inline-flex}.segmented button{min-height:var(--control-s);padding:0 var(--space-md);border-radius:var(--radius-pill);color:var(--color-ink-2);font-size:var(--text-sm);cursor:pointer;transition:background-color var(--dur-short) var(--ease-out);background:0 0;border:0;font-weight:500}.segmented button:hover{color:var(--color-ink)}.segmented button[aria-selected=true],.segmented button[aria-pressed=true]{background:var(--color-ink);color:var(--color-paper)}.chips{gap:var(--space-xs);margin-block:var(--space-sm);flex-wrap:wrap;display:flex}.chip{align-items:center;gap:var(--space-2xs);min-height:var(--control-s);padding:0 var(--space-sm);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-pill);color:var(--color-ink-2);font-size:var(--text-sm);cursor:pointer;transition:border-color var(--dur-short) var(--ease-out), background-color var(--dur-short) var(--ease-out);background:0 0;font-weight:500;display:inline-flex}button.chip:hover:not(:disabled){border-color:var(--color-muted);color:var(--color-ink)}button.chip:active:not(:disabled){transform:translateY(1px)}button.chip:disabled{opacity:.55;cursor:not-allowed}.chip.active{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-paper)}.chip.static{cursor:default}.chip.warn{border-color:var(--color-error);color:var(--color-error)}.toggle-row{justify-content:space-between;align-items:center;gap:var(--space-sm);padding-block:var(--space-sm);cursor:pointer;border-block-end:var(--rule-hair) solid var(--color-rule);display:flex;position:relative}.toggle-row:last-child{border-block-end:0}.toggle-row input{opacity:0;width:1px;height:1px;position:absolute}.toggle-label{color:var(--color-ink);font-weight:500;display:block}.toggle-desc{font-size:var(--text-sm);color:var(--color-muted);display:block}.switch{border-radius:var(--radius-pill);border:var(--rule-hair) solid var(--color-muted);width:44px;height:26px;transition:background-color var(--dur-short) var(--ease-out);flex-shrink:0;position:relative}.switch:after{content:"";border-radius:var(--radius-pill);background:var(--color-ink-2);width:18px;height:18px;transition:transform var(--dur-short) var(--ease-out), background-color var(--dur-short) var(--ease-out);position:absolute;top:3px;left:3px}.toggle-row input:checked+.switch{background:var(--color-accent);border-color:var(--color-accent)}.toggle-row input:checked+.switch:after{background:var(--color-accent-ink);transform:translate(18px)}.toggle-row input:focus-visible+.switch{outline:2px solid var(--color-focus);outline-offset:2px}.toggle-row input:disabled+.switch{opacity:.55;cursor:not-allowed}.setting{justify-content:space-between;align-items:center;gap:var(--space-sm);flex-wrap:wrap;margin-block-end:var(--space-sm);display:flex}.alert{gap:var(--space-xs);padding:var(--space-sm) var(--space-md);margin-block:var(--space-sm);font-size:var(--text-sm);background:var(--color-paper-2);color:var(--color-ink);border-inline-start:0;align-items:center;display:flex}.alert.error{color:var(--color-error)}.alert.warn{color:var(--color-ink);background:var(--color-paper-3)}.alert.warn svg{color:var(--color-error)}.alert.success svg{color:var(--color-accent)}.state{padding:var(--space-2xl) var(--space-xs);align-items:flex-start;gap:var(--space-sm);flex-direction:column;display:flex}.state h2{font-size:var(--text-2xl);font-variant-numeric:lining-nums tabular-nums}.state p{color:var(--color-ink-2);max-width:46ch}.state-icon{color:var(--color-accent)}.state .row.center,.state .stack{justify-content:flex-start}.spinner-wrap{place-items:center;min-height:50dvh;display:grid}.spinner{border:2px solid var(--color-rule);border-top-color:var(--color-accent);border-radius:var(--radius-pill);width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.offline-banner{gap:var(--space-xs);padding:var(--space-xs) var(--space-md);background:var(--color-ink);color:var(--color-paper);font-size:var(--text-sm);justify-content:center;align-items:center;padding-block-start:calc(var(--space-xs) + env(safe-area-inset-top));display:flex}.dev-note{background:var(--color-paper-3);padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);margin-block:var(--space-sm);overflow-wrap:anywhere;color:var(--color-ink-2)}.dev-note .btn.link{color:var(--color-ink)}.badge{align-items:center;gap:var(--space-2xs);min-height:28px;padding:0 var(--space-sm);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-pill);color:var(--color-ink-2);font-size:var(--text-sm);font-weight:500;display:inline-flex}.badge.accent{color:var(--color-accent);border-color:color-mix(in oklab, var(--color-accent) 40%, var(--color-rule))}.badge.green{color:var(--color-ink)}.badge.warn{color:var(--color-error);border-color:color-mix(in oklab, var(--color-error) 50%, var(--color-rule))}.badge.muted{color:var(--color-muted);border-style:dashed}.toaster{left:50%;bottom:calc(var(--space-3xl) + env(safe-area-inset-bottom));gap:var(--space-xs);z-index:var(--z-toast);flex-direction:column;width:min(92%,26rem);display:flex;position:fixed;transform:translate(-50%)}.toast{justify-content:space-between;align-items:center;gap:var(--space-sm);background:var(--color-ink);color:var(--color-paper);padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);animation:rise var(--dur-short) var(--ease-out);font-weight:500;display:flex}.toast.error{background:var(--color-error);color:var(--color-on-error)}.toast-action{min-height:var(--control-s);color:inherit;cursor:pointer;background:0 0;border:0;font-weight:700;text-decoration:underline}.toast-action:hover{text-decoration-thickness:2px}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.dialog{border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-card);padding:var(--space-lg);background:var(--color-paper-3);width:min(92%,26rem);color:var(--color-ink-2)}.dialog h2{margin-block-end:var(--space-sm)}.dialog p{margin-block-end:var(--space-lg)}.dialog::backdrop{background:var(--color-scrim)}.dialog .input{margin-block-end:var(--space-md)}.auth{min-height:100dvh;padding:calc(var(--space-xl) + env(safe-area-inset-top)) var(--space-md) calc(var(--space-xl) + env(safe-area-inset-bottom));max-width:var(--measure-app);align-content:center;justify-items:start;margin-inline:auto;display:grid}.auth-card{width:100%}.auth-card h1{font-size:var(--text-3xl);max-width:14ch;margin-block-end:var(--space-sm)}.auth-card .lede{margin-block-end:var(--space-lg)}.brand{margin-block-end:var(--space-2xl)}.wordmark{font-family:var(--font-display);font-size:var(--text-lg);color:var(--color-ink)}.more-toggle{margin-block-start:var(--space-sm)}.more-ways{border-block-start:var(--rule-hair) solid var(--color-rule);margin-block-start:var(--space-md);padding-block-start:var(--space-lg)}.divider{align-items:center;gap:var(--space-sm);color:var(--color-muted);font-size:var(--text-sm);display:flex}.divider:before,.divider:after{content:"";background:var(--color-rule);flex:1;height:1px}.stepper{justify-content:center;align-items:center;gap:var(--space-xl);padding-block:var(--space-2xl);display:flex}.stepper-value{font-family:var(--font-display);min-width:3ch;color:var(--color-ink);font-variant-numeric:lining-nums tabular-nums;flex-direction:column;align-items:center;font-size:4.5rem;line-height:1;display:flex}.stepper-value span{font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-muted);margin-block-start:var(--space-xs);font-weight:500}.budget{padding-block:var(--space-xl)}.budget-value{text-align:center;font-family:var(--font-display);color:var(--color-ink);font-variant-numeric:lining-nums tabular-nums;margin-block-end:var(--space-md);font-size:4rem;line-height:1;display:block}.budget-value span{font-size:var(--text-md);color:var(--color-muted);font-family:var(--font-body)}input[type=range]{width:100%;accent-color:var(--color-accent);height:var(--control)}.allergy-panel{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;padding:var(--space-lg) var(--space-md);background:var(--color-ink);color:var(--color-paper);--color-rule:color-mix(in oklab, var(--color-paper) 22%, var(--color-ink));margin-block-start:var(--space-xl)}.allergy-panel .section-title,.allergy-panel strong{color:var(--color-paper);margin-block-start:0}.allergy-panel .hint,.allergy-panel .muted{color:color-mix(in oklab, var(--color-paper) 72%, var(--color-ink))}.allergy-panel .field,.allergy-panel .field small{color:color-mix(in oklab, var(--color-paper) 80%, var(--color-ink))}.allergy-panel .field input{background:var(--color-ink);color:var(--color-paper);border-color:color-mix(in oklab, var(--color-paper) 55%, var(--color-ink))}.allergy-panel .btn{border-color:var(--color-paper);color:var(--color-paper)}.allergy-panel .btn.primary{background:var(--color-paper);color:var(--color-ink)}.allergy-panel .chip{color:var(--color-paper);border-color:var(--color-rule)}.allergy-panel :focus-visible{outline-color:var(--color-accent-deep)}.allergy-copy{font-size:var(--text-sm)}.check-list{margin:var(--space-md) 0;border-block-start:var(--rule-hair) solid var(--color-rule);grid-template-columns:repeat(2,minmax(0,1fr));padding:0;list-style:none;display:grid}.check{align-items:center;gap:var(--space-sm);min-height:44px;padding-inline:var(--space-2xs);border-block-end:var(--rule-hair) solid var(--color-rule);cursor:pointer;font-weight:500;display:flex}.check input{appearance:none;border:var(--rule-strong) solid var(--color-accent-deep);cursor:pointer;width:20px;height:20px;transition:background-color var(--dur-micro) var(--ease-out);background:0 0;flex-shrink:0;place-items:center;margin:0;display:grid}.check input:after{content:"";border:2px solid var(--color-ink);opacity:0;border-block-start:0;border-inline-end:0;width:10px;height:5px;transform:translateY(-1px)rotate(-45deg)}.check input:checked{background:var(--color-accent-deep)}.check input:checked:after{opacity:1}.check input:focus-visible{outline:2px solid var(--color-accent-deep);outline-offset:2px}.check.on{font-weight:700}.pantry-add{margin-block-end:var(--space-sm)}.mode-choice{margin-block-start:var(--space-xl)}.generating{min-height:100dvh;padding:var(--space-xl) var(--space-lg);max-width:var(--measure-app);flex-direction:column;justify-content:center;margin-inline:auto;display:flex}.generating h1{font-size:var(--text-3xl)}.stages{margin:var(--space-xl) 0 0;border-block-start:var(--rule-strong) solid var(--color-accent);flex-direction:column;padding:0;list-style:none;display:flex}.stages li{align-items:center;gap:var(--space-sm);min-height:52px;color:var(--color-muted);border-block-end:var(--rule-hair) solid var(--color-rule);transition:color var(--dur-short) var(--ease-out);display:flex}.stages li.active{color:var(--color-ink);font-weight:500}.stages li.done{color:var(--color-ink-2)}.stage-dot{border-radius:var(--radius-pill);border:var(--rule-hair) solid currentColor;width:26px;height:26px;font-size:var(--text-xs);font-variant-numeric:tabular-nums;flex-shrink:0;place-items:center;font-weight:700;display:grid}.stages li.done .stage-dot{background:var(--color-ink-2);color:var(--color-paper);border-color:var(--color-ink-2)}.stages li.active .stage-dot{background:var(--color-accent);color:var(--color-accent-ink);border-color:var(--color-accent)}.budget-card{margin-block:var(--space-md) var(--space-lg);padding:var(--space-lg) var(--space-md);background:var(--color-paper-2);color:var(--color-ink-2)}.budget-card.over{box-shadow:inset 0 0 0 1px var(--color-error)}.budget-head{justify-content:space-between;align-items:baseline;gap:var(--space-sm);flex-wrap:wrap;display:flex}.budget-head .figure{font-family:var(--font-display);font-weight:400;font-size:var(--text-3xl);font-variant-numeric:lining-nums tabular-nums;line-height:1}.meter{background:var(--color-rule);height:3px;margin-block:var(--space-md) var(--space-sm);overflow:hidden}.meter span{background:var(--color-accent);height:100%;display:block}.budget-card.over .meter span{background:var(--color-error)}.budget-status{align-items:center;gap:var(--space-xs);font-size:var(--text-sm);color:var(--color-error);margin:0;font-weight:500;display:flex}.budget-status.ok{color:var(--color-ink-2)}.budget-status.ok svg{color:var(--color-accent)}.cards-2{border-block-start:var(--rule-hair) solid var(--color-rule);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=40rem){.cards-2{column-gap:var(--space-lg);grid-template-columns:repeat(2,minmax(0,1fr))}}.summary-card{align-items:center;gap:var(--space-sm);min-height:64px;padding-block:var(--space-sm);border-block-end:var(--rule-hair) solid var(--color-rule);color:var(--color-ink);transition:color var(--dur-short) var(--ease-out);text-decoration:none;display:flex}.summary-card:hover strong{text-decoration:underline;-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent)}.summary-card span:nth-child(2){flex-direction:column;flex:1;display:flex}.summary-card .muted{font-size:var(--text-sm)}.summary-icon{color:var(--color-accent);flex-shrink:0}.days{margin:0 0 var(--space-lg);border-block-start:var(--rule-strong) solid var(--color-accent);padding:0;list-style:none}.days>li{border-block-end:var(--rule-hair) solid var(--color-rule)}.day-row{align-items:center;column-gap:var(--space-sm);min-height:84px;padding-block:var(--space-sm);color:var(--color-ink);grid-template-columns:3.25rem minmax(0,1fr) auto;text-decoration:none;display:grid}.day-row:hover .day-meal strong{text-decoration:underline;-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent);text-underline-offset:.18em;text-decoration-thickness:1px}.day-name{font-size:var(--text-sm);color:var(--color-muted);font-variant-numeric:tabular-nums;flex-direction:column;align-self:start;padding-block-start:var(--space-2xs);display:flex}.day-name strong{color:var(--color-ink-2);font-weight:500}.day-meal{gap:var(--space-2xs);flex-direction:column;min-width:0;display:flex}.day-meal strong{font-family:var(--font-display);font-weight:400;font-size:var(--text-xl);text-wrap:balance;line-height:1.12}.day-meta{font-variant-numeric:tabular-nums}.chev{color:var(--color-muted)}.meal-hero{margin-block-end:var(--space-md)}.meal-hero h1{font-size:var(--text-3xl);max-width:16ch}.meal-hero .lede{margin-block-start:var(--space-xs)}.macro-grid{margin:var(--space-lg) 0;padding-block:var(--space-md);background:var(--color-paper-2);row-gap:var(--space-md);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.macro-grid div{padding-inline:var(--space-md);border-inline-start:var(--rule-hair) solid var(--color-rule)}.macro-grid div:nth-child(3n+1){border-inline-start:0}.macro-grid dt{font-size:var(--text-sm);color:var(--color-muted);font-weight:500}.macro-grid dt:first-letter{text-transform:uppercase}.macro-grid dd{margin:var(--space-2xs) 0 0;font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-ink);font-variant-numeric:lining-nums tabular-nums;line-height:1.1}.macro-grid .small{font-size:var(--text-xs)}.list{margin:0 0 var(--space-md);border-block-start:var(--rule-hair) solid var(--color-rule);padding:0;list-style:none}.list-row{justify-content:space-between;align-items:center;gap:var(--space-sm);min-height:48px;padding-block:var(--space-xs);border-block-end:var(--rule-hair) solid var(--color-rule);color:var(--color-ink);display:flex}.list-row .muted{font-variant-numeric:tabular-nums}.list-row.muted{color:var(--color-muted)}.list-link{border-block-end:var(--rule-hair) solid var(--color-rule);min-height:52px;color:var(--color-ink);justify-content:space-between;align-items:center;font-weight:500;text-decoration:none;display:flex}.list-link:hover{text-decoration:underline;-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent)}.list-link:last-child{border-block-end:0}.list-link svg{color:var(--color-muted)}.grocery-group .section-title{font-size:var(--text-lg);margin-block:var(--space-lg) var(--space-xs)}.grocery-item{align-items:center;gap:var(--space-sm);min-height:52px;padding-block:var(--space-xs);cursor:pointer;color:var(--color-ink);display:flex;position:relative}.list>li:has(.grocery-item){border-block-end:var(--rule-hair) solid var(--color-rule)}.grocery-item input{opacity:0;width:1px;height:1px;position:absolute}.grocery-item .box{border:var(--rule-strong) solid var(--color-muted);color:#0000;width:22px;height:22px;transition:background-color var(--dur-micro) var(--ease-out), border-color var(--dur-micro) var(--ease-out);flex-shrink:0;place-items:center;display:grid}.grocery-item:hover .box{border-color:var(--color-ink-2)}.grocery-item input:focus-visible+.box{outline:2px solid var(--color-focus);outline-offset:2px}.grocery-item.checked .box{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-ink)}.grocery-item.checked .item-name{text-decoration:line-through;-webkit-text-decoration-color:var(--color-muted);text-decoration-color:var(--color-muted);color:var(--color-muted)}.grocery-item>.muted{font-variant-numeric:tabular-nums}.results,.picks,.history{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.results,.picks{border-block-start:var(--rule-hair) solid var(--color-rule)}.result{align-items:center;gap:var(--space-sm);padding-block:var(--space-md);border-block-end:var(--rule-hair) solid var(--color-rule);flex-wrap:wrap;display:flex}.result strong,.pick-head strong{font-family:var(--font-display);font-weight:400;font-size:var(--text-xl);line-height:1.15}.result .meta,.pick-head .meta{margin-block-start:var(--space-2xs)}.fav{color:var(--color-accent);vertical-align:middle;display:inline-flex}.fav svg{fill:currentColor}.day-picker{position:relative}.menu{right:0;top:calc(100% + var(--space-2xs));background:var(--color-paper-3);border:var(--rule-hair) solid var(--color-rule);z-index:var(--z-dropdown);min-width:15rem;padding:var(--space-2xs);flex-direction:column;display:flex;position:absolute}.menu button{text-align:start;min-height:var(--control);padding:var(--space-xs) var(--space-sm);cursor:pointer;font-size:var(--text-sm);color:var(--color-ink);background:0 0;border:0}.menu button:hover{background:var(--color-paper-2)}.history{gap:var(--space-md)}.history .card{gap:var(--space-sm);flex-direction:column;margin:0;display:flex}.history .card>.row strong{font-family:var(--font-display);font-weight:400;font-size:var(--text-lg)}.week-meals{color:var(--color-ink-2);font-size:var(--text-sm)}details summary{cursor:pointer;color:var(--color-ink);font-size:var(--text-sm);text-decoration:underline;-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent);text-underline-offset:.2em;font-weight:500}details[open] summary{margin-block-end:var(--space-xs)}.compare{border-collapse:collapse;width:100%;margin:var(--space-md) 0 var(--space-lg)}.compare th,.compare td{padding:var(--space-sm) var(--space-xs);border-block-end:var(--rule-hair) solid var(--color-rule);text-align:start;font-size:var(--text-sm)}.compare thead th{color:var(--color-muted);border-block-end:var(--rule-strong) solid var(--color-accent);font-weight:500}.compare td{color:var(--color-ink)}.compare td svg{color:var(--color-accent)}.danger-zone .section-title{color:var(--color-ink)}.conversation{gap:var(--space-xl);flex-direction:column;margin-block-start:var(--space-lg);display:flex}.turn{gap:var(--space-sm);flex-direction:column;display:flex}.turn-title{font-size:var(--text-2xl)}.bubble{padding:var(--space-sm) var(--space-md);max-width:90%}.bubble.user{background:var(--color-paper-3);color:var(--color-ink);align-self:flex-end}.bubble.bot{color:var(--color-ink-2);background:0 0;align-self:flex-start;padding-inline:0}.bubble.error{color:var(--color-error)}.typing{gap:var(--space-2xs);align-items:center;display:flex}.typing span:not(.sr-only){border-radius:var(--radius-pill);background:var(--color-muted);width:6px;height:6px;animation:1.2s infinite blink}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}@keyframes blink{50%{opacity:.25}}.pick{padding-block:var(--space-md);border-block-end:var(--rule-hair) solid var(--color-rule)}.pick-head{align-items:flex-start;gap:var(--space-sm);display:flex}.pick-reason{margin-block:var(--space-sm) var(--space-xs);color:var(--color-ink-2)}.pick-tip{font-size:var(--text-sm);color:var(--color-muted)}.why ul{margin:var(--space-xs) 0;color:var(--color-ink-2);padding-inline-start:var(--space-md)}.ask-bar{gap:var(--space-xs);margin-block-end:var(--space-sm);display:flex}.ask-bar .btn{min-width:var(--control);padding:0 var(--space-sm)}.engine-note{gap:var(--space-xs);color:var(--color-muted);font-size:var(--text-sm);align-items:flex-start;margin-block-start:var(--space-xl);display:flex}@media (hover:none){.btn:hover,.icon-btn:hover,.tile:hover{background:revert-layer}}
