@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-next-latin-ext-400-normal-BalHKn7d.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-ext-400-normal-qxMiU51n.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-next-latin-400-normal-FfmJh7DR.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-400-normal-DPp7N0cD.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-next-latin-ext-700-normal-CBw-mJf_.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-ext-700-normal-292QVhS1.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-next-latin-700-normal-Dpiyiu63.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-700-normal-C2qZD_Q9.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-vietnamese-600-normal-A5AYRdjN.woff2)format("woff2"),url(/assets/barlow-condensed-vietnamese-600-normal-CNlPk46_.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-ext-600-normal-18ESti3H.woff2)format("woff2"),url(/assets/barlow-condensed-latin-ext-600-normal-Clv9cIcR.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2)format("woff2"),url(/assets/barlow-condensed-latin-600-normal-BFJEwTuo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-vietnamese-700-normal-DYeBwlKR.woff2)format("woff2"),url(/assets/barlow-condensed-vietnamese-700-normal-DhIzd8Tb.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-ext-700-normal-CwuXbfVR.woff2)format("woff2"),url(/assets/barlow-condensed-latin-ext-700-normal-BIHFfxf0.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-700-normal-v1xN8_Wq.woff2)format("woff2"),url(/assets/barlow-condensed-latin-700-normal-Dmwat-ge.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@layer tokens{:root{--frost:#edf3f6;--surface:#fff;--surface-sunk:#e1eaef;--ink:#13222c;--ink-soft:#4a5e6b;--star:#a86f00;--line:#c8d6de;--ice:#2c6b92;--ice-strong:#1d4f6e;--ice-wash:#d5e6f0;--on-ice:#fff;--fresh:#5d9dc6;--thaw:#e39a2d;--thaw-text:#8f5500;--spoil:#c43d27;--spoil-text:#a3301c;--spoil-wash:#f8e1dc;--fresh-text:var(--ice-strong);--nav-bg:var(--surface);--nav-line:var(--line);--nav-ink:var(--ink-soft);--nav-ink-active:var(--ice-strong);--nav-active-bg:var(--ice-wash);--nav-hover-bg:var(--surface-sunk);--nav-brand:var(--ice-strong);--font-body:"Atkinson Hyperlegible Next", system-ui, sans-serif;--font-display:"Barlow Condensed", "Arial Narrow", sans-serif;--text-title:2.5rem;--text-section:1.6rem;--text-subsection:1.25rem;--text-figure:1.5rem;--text-small:.9rem;--text-caption:.8rem;--space-3xs:.15rem;--space-2xs:.35rem;--space-xs:.5rem;--space-sm:.75rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2.25rem;--measure:38rem;--content-width:52rem;--radius-control:8px;--radius-panel:12px;--rail-width:13rem;--tabbar-height:4rem;--gutter:1rem;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-scheme=dark]{--frost:#0e1a21;--surface:#15242d;--surface-sunk:#0a141a;--ink:#e2edf3;--ink-soft:#98abb7;--star:#f2c14e;--line:#29414f;--ice:#7cb7db;--ice-strong:#a3cde6;--ice-wash:#1c3747;--on-ice:#0b1a22;--fresh:#5d9dc6;--thaw:#f0a940;--thaw-text:#f4b95e;--spoil:#ee6f57;--spoil-text:#f39380;--spoil-wash:#3b1f1a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=terracotta]{--frost:#f3e9dc;--surface:#fffaf3;--surface-sunk:#ecdfcd;--ink:#3a2318;--ink-soft:#77584a;--star:#a86f00;--line:#e2cfb8;--ice:#b0502a;--ice-strong:#8a3a1a;--ice-wash:#f6dccb;--on-ice:#fff;--fresh:#7f8d3c;--fresh-text:#56611f;--thaw:#d9982a;--thaw-text:#875700;--spoil:#8f2544;--spoil-text:#8a1f3d;--spoil-wash:#f6dfe4;--nav-bg:#b0502a;--nav-line:#9a4422;--nav-ink:#fbe2d3;--nav-ink-active:#fff;--nav-active-bg:#ffffff2e;--nav-hover-bg:#ffffff1a;--nav-brand:#fff6ee;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=terracotta][data-scheme=dark]{--frost:#1f1511;--surface:#2a1d17;--surface-sunk:#17100c;--ink:#f3e6da;--ink-soft:#c3a695;--star:#f2c14e;--line:#4a3328;--ice:#e38b60;--ice-strong:#f2ab86;--ice-wash:#4b2a1b;--on-ice:#1f1511;--fresh:#9aaa53;--fresh-text:#bccb72;--thaw:#e8ad48;--thaw-text:#f2c26c;--spoil:#d65c7c;--spoil-text:#ef8fa7;--spoil-wash:#3e1a25;--nav-bg:#5b2a16;--nav-line:#6e3620;--nav-ink:#f1cdb9;--nav-ink-active:#fff;--nav-active-bg:#ffffff24;--nav-hover-bg:#ffffff14;--nav-brand:#ffe9dc;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}@layer base{*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--frost);color:var(--ink);font-family:var(--font-body);margin:0;font-size:1.0625rem;line-height:1.5}h1,h2,h3{font-family:var(--font-display);margin:0;font-weight:600;line-height:1.1}h1{font-size:var(--text-title);letter-spacing:-.01em}h2{font-size:var(--text-section)}h3{font-size:var(--text-subsection)}p{margin:0}:where(ul,ol)[class]{margin:0;padding:0;list-style:none}input:where([type=checkbox],[type=radio]){width:1.25rem;height:1.25rem;accent-color:var(--ice);flex:none;margin:0}a{color:var(--ice)}:focus-visible{outline:3px solid var(--ice);outline-offset:2px}}@layer components{.button{justify-content:center;align-items:center;gap:var(--space-2xs);min-height:2.75rem;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-control);font:inherit;cursor:pointer;white-space:nowrap;border:1px solid #0000;font-weight:700;line-height:1.2;text-decoration:none;display:inline-flex}.button:disabled{opacity:.55;cursor:not-allowed}.button--primary{background:var(--ice);color:var(--on-ice)}.button--primary:hover:not(:disabled){background:var(--ice-strong)}.button--secondary{background:var(--surface);border-color:var(--line);color:var(--ink)}.button--secondary:hover:not(:disabled){border-color:var(--ice)}.button--quiet{color:var(--ice);padding-inline:var(--space-xs);background:0 0}.button--quiet:hover:not(:disabled){background:var(--ice-wash)}.button--danger{border-color:var(--spoil);color:var(--spoil-text);background:0 0}.button--danger:hover:not(:disabled){background:var(--spoil-wash)}.button--small{min-height:2.25rem;padding:var(--space-2xs) var(--space-sm);font-size:var(--text-small)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-panel)}.divided>*+*{border-top:1px solid var(--line)}.meta{column-gap:var(--space-md);color:var(--ink-soft);font-size:var(--text-small);flex-wrap:wrap;display:flex}.shelf{overflow:hidden}.shelf-row{column-gap:var(--space-md);grid-template-columns:5px 1fr auto;grid-template-areas:"bar body days""bar actions actions";display:grid}.shelf-row__bar{background:var(--fresh);grid-area:bar}.shelf-row[data-status=EAT_SOON] .shelf-row__bar{background:var(--thaw)}.shelf-row[data-status=EXPIRED] .shelf-row__bar{background:var(--spoil)}.shelf-row[data-finished=true] .shelf-row__bar{background:var(--line)}.shelf-row__body{padding:var(--space-sm) 0 var(--space-2xs);grid-area:body;min-width:0}.shelf-row__title{color:var(--ink);overflow-wrap:anywhere;font-weight:700;text-decoration:none}a.shelf-row__title:hover{text-decoration:underline}.shelf-row__days{padding:var(--space-sm) var(--space-md) 0 0;grid-area:days}.shelf-row__actions{gap:var(--space-xs);padding:var(--space-2xs) var(--space-md) var(--space-sm) 0;flex-wrap:wrap;grid-area:actions;display:flex}@media (width>=40rem){.shelf-row{grid-template-columns:5px 1fr auto auto;grid-template-areas:"bar body actions days";align-items:center}.shelf-row__body{padding:var(--space-md) 0}.shelf-row__actions{padding:var(--space-xs) 0;justify-content:flex-end}.shelf-row__days{padding:var(--space-xs) var(--space-lg) var(--space-xs) var(--space-xs);width:9rem}}.days{color:var(--fresh-text);flex-direction:column;align-items:flex-end;line-height:1;display:flex}.days__figure{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:2.1rem;font-weight:700}.days__caption{font-size:var(--text-caption);color:var(--ink-soft);margin-top:var(--space-3xs);white-space:nowrap}.days[data-status=EAT_SOON]{color:var(--thaw-text)}.days[data-status=EXPIRED],.days[data-status=EXPIRED] .days__caption{color:var(--spoil-text)}.tag{font-size:var(--text-caption);padding:.05rem var(--space-xs);background:var(--surface-sunk);color:var(--ink-soft);border-radius:999px;display:inline-block}.diet-labels{gap:var(--space-2xs);margin-top:var(--space-2xs);flex-wrap:wrap;display:flex}.tag--diet{background:var(--ice-wash);color:var(--ice-strong)}.nutrition-facts{gap:var(--space-sm) var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(7.5rem,1fr));margin:0;display:grid}.nutrition-facts__item dt{color:var(--ink-soft);font-size:var(--text-small)}.nutrition-facts__item dd{margin:0;display:grid}.nutrition-facts__value{font-family:var(--font-display);font-size:var(--text-figure);font-weight:600;line-height:1.1}.nutrition-facts__share{color:var(--ink-soft);font-size:var(--text-small)}.inline-form{align-items:flex-end;gap:var(--space-xs);padding:0 var(--space-md) var(--space-md) 0;flex-wrap:wrap;grid-column:2/-1;display:flex}.inline-form .field{flex:100%}@media (width>=40rem){.inline-form .field{flex:0 14rem}}.empty{padding:var(--space-lg);border:1px dashed var(--line);border-radius:var(--radius-panel);color:var(--ink-soft)}.empty p+.button,.empty p+.form-actions,.empty p+p{margin-top:var(--space-sm)}.form{gap:var(--space-lg);max-width:var(--measure);display:grid}.form-row{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));align-items:end;display:grid}.field{gap:var(--space-2xs);align-content:start;display:grid}.field__label{font-weight:700}.field__optional{color:var(--ink-soft);font-weight:400}.field__hint{color:var(--ink-soft);font-size:var(--text-small)}.field__error{color:var(--spoil-text);font-size:var(--text-small);font-weight:700}.input{width:100%;min-height:2.75rem;padding:var(--space-xs) var(--space-sm);border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);color:var(--ink);font:inherit}.input:focus-visible{outline-offset:0;border-color:var(--ice)}.input[aria-invalid=true]{border-color:var(--spoil)}textarea.input{resize:vertical;min-height:5.5rem}select.input{appearance:auto}.form-actions{gap:var(--space-sm);padding-top:var(--space-xs);flex-wrap:wrap;align-items:center;display:flex}.form-actions__end{margin-left:auto}.alert{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-control);background:var(--spoil-wash);color:var(--spoil-text);font-weight:700}.checkbox{align-items:center;gap:var(--space-xs);cursor:pointer;display:inline-flex}.checkbox-group{gap:var(--space-xs) var(--space-lg);flex-wrap:wrap;display:flex}.credit{margin-top:var(--space-xs);font-size:var(--text-small);color:var(--ink-soft)}.fieldset{gap:var(--space-sm);border:0;margin:0;padding:0;display:grid}.fieldset>legend{font-family:var(--font-display);font-size:var(--text-section);margin-bottom:var(--space-sm);padding:0;font-weight:600;line-height:1.1}.toast{inset-inline:var(--gutter);bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom) + 1rem);z-index:20;width:fit-content;max-width:30rem;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-control);background:var(--ink);color:var(--frost);margin-inline:auto;position:fixed;box-shadow:0 6px 24px #0003}@media (width>=56rem){.toast{bottom:2rem;left:var(--rail-width)}}@media (prefers-reduced-motion:no-preference){.toast{animation:.18s ease-out toast-in}@keyframes toast-in{0%{opacity:0;transform:translateY(.5rem)}}}.notice{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-control);background:var(--ice-wash);color:var(--ice-strong);margin:0}}@layer layout{.app{min-height:100dvh}.nav{z-index:10;height:calc(var(--tabbar-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--nav-bg);border-top:1px solid var(--nav-line);display:flex;position:fixed;inset:auto 0 0}.nav__brand{display:none}.nav__links{display:contents}.nav__link{justify-content:center;align-items:center;gap:var(--space-3xs);color:var(--nav-ink);font-size:var(--text-caption);flex-direction:column;flex:1;text-decoration:none;display:flex}.nav__link svg{width:1.5rem;height:1.5rem}.nav__link[aria-current=page]{color:var(--nav-ink-active);font-weight:700}.nav__link:focus-visible{outline-color:var(--nav-ink-active);outline-offset:-3px}@media (width<=24rem){.nav__link{font-size:.72rem}}.nav__links--end .nav__link{flex:0 0 3rem}.nav__links--end .nav__label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.main{max-width:var(--content-width);padding:calc(env(safe-area-inset-top) + var(--space-lg)) var(--gutter) calc(var(--tabbar-height) + env(safe-area-inset-bottom) + var(--space-xl));margin:0 auto}@media (width>=56rem){.nav__links--end{margin-top:auto}.nav__links--end .nav__link{flex:none}.nav__links--end .nav__label{clip-path:none;width:auto;height:auto;position:static;overflow:visible}.nav{width:var(--rail-width);height:auto;padding:var(--space-lg) var(--space-sm);border-top:0;border-right:1px solid var(--nav-line);flex-direction:column;inset:0 auto 0 0}.nav__brand{font-family:var(--font-display);color:var(--nav-brand);padding:0 var(--space-sm) var(--space-lg);font-size:1.6rem;font-weight:700;display:block}.nav__links{gap:var(--space-2xs);flex-direction:column;display:flex}.nav__link{justify-content:flex-start;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-control);flex-direction:row;flex:none;font-size:1rem}.nav__link:hover{background:var(--nav-hover-bg)}.nav__link[aria-current=page]{background:var(--nav-active-bg)}.main{margin-left:var(--rail-width);padding:var(--space-xl) var(--space-xl) 4rem}}@media (width>=80rem){.main{margin-left:max(var(--rail-width), calc((100vw - var(--content-width)) / 2))}}.page-head{gap:var(--space-md);margin-bottom:var(--space-lg);display:grid}.page-head__intro{color:var(--ink-soft);margin-top:var(--space-2xs);max-width:var(--measure)}.page-head__actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}@media (width>=40rem){.page-head:has(>.page-head__actions){grid-template-columns:minmax(0,1fr) auto;align-items:start}}.back-link{margin-bottom:var(--space-sm);color:var(--ink-soft);text-decoration:none;display:inline-block}.back-link:hover{color:var(--ink);text-decoration:underline}.section{margin-top:var(--space-xl)}.section>h2{margin-bottom:var(--space-sm)}.toolbar{gap:var(--space-sm);margin-bottom:var(--space-md);flex-wrap:wrap;align-items:center;display:flex}.toolbar>.input{flex:14rem}.toolbar>select.input{flex:0 auto;width:auto}.status-line{color:var(--ink-soft);padding:var(--space-md) 0}}@layer features{.auth-page{align-content:center;justify-items:center;gap:var(--space-md);min-height:100dvh;padding:var(--space-xl) var(--gutter);display:grid}.auth-page__brand{font-family:var(--font-display);font-size:var(--text-title);color:var(--ice-strong);font-weight:700}.auth-form{gap:var(--space-md);width:100%;max-width:26rem;padding:var(--space-lg);display:grid}.auth-form>h1{font-size:var(--text-section)}.auth-page__switch{color:var(--ink-soft)}.auth-form--quiet{padding-block:0}.auth-form--quiet>h2{font-size:var(--text-subsection)}.auth-form>.button{justify-self:stretch}.food-link{gap:var(--space-2xs);display:grid}.food-link__chosen{justify-content:space-between;align-items:center;gap:var(--space-2xs) var(--space-md);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-control);background:var(--surface-sunk);flex-wrap:wrap;display:flex}.food-link__actions{gap:var(--space-2xs);display:flex}.food-description{gap:var(--space-3xs);min-width:0;display:grid}.food-description__name{overflow-wrap:anywhere;font-weight:700}.food-description__values{column-gap:var(--space-sm);color:var(--ink-soft);font-size:var(--text-small);flex-wrap:wrap;display:flex}.food-picker{gap:var(--space-xs);padding:var(--space-sm);border-color:var(--ice);display:grid}.food-picker__search{gap:var(--space-2xs);display:grid}.food-picker__search-row{gap:var(--space-xs);align-items:center;display:flex}.food-picker__heading{margin:var(--space-2xs) 0 0;font-family:var(--font-body);font-size:var(--text-small);color:var(--ink-soft);font-weight:700}.food-picker__actions{gap:var(--space-xs);flex-wrap:wrap;display:flex}.food-results{border:1px solid var(--line);border-radius:var(--radius-control);max-height:18rem;overflow-y:auto}.food-results li{justify-content:space-between;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);display:flex}.own-food{gap:var(--space-xs);padding-top:var(--space-xs);border-top:1px solid var(--line);display:grid}.own-food__values{gap:var(--space-sm);grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));align-items:end;display:grid}.food-description__name .tag{margin-left:var(--space-2xs);vertical-align:.1em}.scanner{gap:var(--space-xs);padding-top:var(--space-xs);border-top:1px solid var(--line);display:grid}.scanner__viewport{border-radius:var(--radius-control);aspect-ratio:4/3;background:#000;max-height:50vh;position:relative;overflow:hidden}.scanner__video{object-fit:cover;width:100%;height:100%}.scanner__frame{border:2px solid #fff;border-radius:8px;position:absolute;inset:30% 12%;box-shadow:0 0 0 100vmax #00000059}.scanner__photo:has(input:focus-visible){outline:3px solid var(--ice);outline-offset:2px}.shopping-add{gap:var(--space-xs);margin-bottom:var(--space-lg);display:flex}.shopping-add .input{flex:1;min-width:0}.shopping-section{margin-bottom:var(--space-lg)}.shopping-section>h2{margin:0 0 var(--space-xs);font-size:var(--text-subsection)}.shopping-item{align-items:center;gap:var(--space-xs);padding:var(--space-2xs) var(--space-xs) var(--space-2xs) var(--space-md);display:flex}.shopping-item__check{align-items:center;gap:var(--space-sm);cursor:pointer;flex:1;min-height:2.75rem;display:flex}.shopping-item__check>span{display:grid}.shopping-item__sources{color:var(--ink-soft);font-size:var(--text-small)}.shopping-item--checked .shopping-item__text{color:var(--ink-soft);text-decoration:line-through}.shopping-editor{gap:var(--space-sm);padding:var(--space-xs) 0;flex:1;display:grid}.shopping-editor__fields{gap:var(--space-sm);grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));display:grid}.shopping-actions{margin-top:var(--space-xs)}.recipe-shopping{gap:var(--space-sm);margin-top:var(--space-md);padding:var(--space-md) var(--space-lg);display:grid}.recipe-shopping h2{font-size:var(--text-subsection)}.recipe-shopping__servings{max-width:8rem}.recipe-shopping__list{gap:var(--space-2xs);display:grid}.recipe-shopping__item{justify-content:space-between;align-items:center;column-gap:var(--space-md);flex-wrap:wrap;display:flex}.recipe-shopping__item label{align-items:center;gap:var(--space-xs);min-height:2.25rem;display:flex}.recipe-shopping__note,.recipe-shopping__staple{color:var(--ink-soft);font-size:var(--text-small)}.plan-week{align-items:center;gap:var(--space-xs);margin-block-end:var(--space-md);display:flex}.plan-week__title{font-size:var(--text-subsection);margin:0}.plan-days{gap:var(--space-md);padding:0;list-style:none;display:grid}.plan-day{padding:var(--space-md)}.plan-day--today{border-color:var(--ice-strong)}.plan-day__head{align-items:baseline;gap:var(--space-sm);display:flex}.plan-day__head h3{font-size:var(--text-subsection);margin:0}.plan-totals{gap:var(--space-3xs);margin:var(--space-xs) 0 0;display:grid}.plan-totals__person{column-gap:var(--space-sm);flex-wrap:wrap;display:flex}.plan-totals__person dt{font-size:var(--text-small);font-weight:700}.plan-totals__person dd{margin:0}.plan-totals__over{color:var(--spoil-text)}.plan-slot{border-block-start:1px solid var(--line);margin-block-start:var(--space-sm);padding-block-start:var(--space-xs)}.plan-day__add{gap:var(--space-3xs) var(--space-2xs);flex-wrap:wrap;margin-block-start:var(--space-sm);margin-inline-start:calc(-1 * var(--space-xs));display:flex}.plan-slot__name{font-size:var(--text-small);color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;margin:0;font-weight:600}.plan-slot__meals{gap:var(--space-xs);margin:var(--space-2xs) 0 0;padding:0;list-style:none;display:grid}.plan-meal{gap:var(--space-2xs);grid-template-columns:1fr;display:grid}@media (width>=40rem){.plan-meal{grid-template-columns:1fr auto;align-items:center}.plan-meal>form{grid-column:1/-1}}.plan-meal__body{gap:var(--space-3xs);min-width:0;display:grid}.plan-meal__name{overflow-wrap:anywhere;font-weight:600}.plan-meal--eaten .plan-meal__name{color:var(--ink-soft)}.plan-meal__short{color:var(--spoil-text)}.plan-meal__actions,.plan-meal__eaters{align-items:center;gap:var(--space-2xs);flex-wrap:wrap;display:flex}.plan-meal__label{font-size:var(--text-small);color:var(--ink-soft)}.plan-toggle[aria-pressed=true]{background:var(--fresh);border-color:var(--fresh);color:var(--on-ice)}.plan-toggle[aria-pressed=true]:before{content:"✓ "}.plan-add .fieldset>legend,.plan-edit .fieldset>legend{font-family:inherit;font-size:var(--text-small);margin-bottom:var(--space-2xs);font-weight:600}.plan-add,.plan-edit{gap:var(--space-sm);padding:var(--space-sm);border-radius:var(--radius-control);background:var(--surface-sunk);margin-block-start:var(--space-xs);display:grid}.plan-suggestions{gap:var(--space-2xs);margin:var(--space-2xs) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.plan-suggestion{text-align:start;padding:var(--space-2xs) var(--space-sm);border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;display:grid}.plan-suggestion:hover{border-color:var(--ice-strong)}.plan-suggestion__name{font-weight:600}.plan-suggestion__reason{font-size:var(--text-caption);color:var(--ink-soft)}.plan-sources{gap:var(--space-2xs) var(--space-md);flex-wrap:wrap;display:flex}.plan-source{align-items:center;gap:var(--space-2xs);display:inline-flex}.plan-choices{gap:var(--space-3xs);max-height:16rem;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.plan-add__portions .input{max-width:8rem}.plan-eaters{gap:var(--space-2xs) var(--space-md);flex-wrap:wrap;display:flex}.plan-eaters__person{align-items:center;gap:var(--space-2xs);display:inline-flex}.plan-eaters__portions{width:4.5rem}.plan-shopping{gap:var(--space-sm);padding:var(--space-md);margin-block-end:var(--space-md);display:grid}.plan-shopping h2{margin:0}.plan-shopping__name{font-size:var(--text-small);margin:0;font-weight:700}.nutrition-panel{gap:var(--space-xs);margin-bottom:var(--space-xl);padding:var(--space-md) var(--space-lg);display:grid}.recipe-facts{gap:var(--space-xs) var(--space-xl);margin:var(--space-md) 0 0;flex-wrap:wrap;display:flex}.recipe-facts div{flex-direction:column;display:flex}.recipe-facts dt{color:var(--ink-soft);font-size:var(--text-small)}.recipe-facts dd{font-family:var(--font-display);font-size:var(--text-figure);margin:0;font-weight:600}.recipe-columns{gap:var(--space-xl);display:grid}@media (width>=56rem){.recipe-columns{grid-template-columns:minmax(14rem,2fr) 3fr}}.ingredient-list li{gap:var(--space-sm);padding:var(--space-xs) 0;grid-template-columns:5.5rem 1fr;display:grid}.ingredient-list__amount{font-variant-numeric:tabular-nums;font-weight:700}.step-list{counter-reset:step}.step-list li{counter-increment:step;gap:var(--space-sm);padding:var(--space-xs) 0;max-width:var(--measure);grid-template-columns:2.25rem 1fr;display:grid}.step-list li:before{content:counter(step);font-family:var(--font-display);color:var(--ice);font-size:1.75rem;font-weight:700;line-height:1}.recipe-list{overflow:hidden}.recipe-list a{gap:var(--space-3xs);padding:var(--space-md) var(--space-lg);color:inherit;text-decoration:none;display:grid}.recipe-list a:hover{background:var(--surface-sunk)}.recipe-list__name{font-weight:700}.stars{align-items:center;gap:var(--space-3xs);vertical-align:middle;display:inline-flex}.stars__star svg{fill:none;width:1rem;height:1rem;stroke:var(--ink-soft);stroke-width:1.6px;stroke-linejoin:round;display:block}.stars__star--on svg{fill:var(--star);stroke:var(--star)}.stars--input{margin:var(--space-2xs) 0 var(--space-xs) -.35rem}.stars--input .stars__star{cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;width:2.5rem;height:2.5rem;padding:0;display:inline-grid}.stars--input .stars__star svg{width:1.6rem;height:1.6rem}.stars--input .stars__star:hover:not(:disabled){background:var(--surface-sunk)}.stars--input .stars__star:focus-visible{outline:2px solid var(--ice-strong);outline-offset:1px}.recipe-list__description{color:var(--ink-soft);font-size:var(--text-small);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.editable-list{gap:var(--space-sm);display:grid}.editable-list__row{gap:var(--space-xs);padding:var(--space-sm);display:grid}.ingredient-fields{gap:var(--space-xs) var(--space-sm);grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"name name""amount unit""weight weight""note note";display:grid}.ingredient-fields__name{grid-area:name}.ingredient-fields__amount{grid-area:amount}.ingredient-fields__unit{grid-area:unit}.ingredient-fields__weight{grid-area:weight}.ingredient-fields__note{grid-area:note}@media (width>=40rem){.ingredient-fields{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,7rem) minmax(0,11rem);grid-template-areas:"name name amount unit""weight note note note"}.ingredient-fields--no-weight{grid-template-areas:"name name amount unit""note note note note"}}.row-controls{gap:var(--space-2xs);justify-content:flex-end;display:flex}.tag--suggested{border:1px solid var(--thaw);color:var(--thaw-text);background:0 0;justify-self:start}.import-option{gap:var(--space-sm);padding-bottom:var(--space-lg);border-bottom:1px solid var(--line);display:grid}.import-option:last-child{border-bottom:0}.import-option__label{font-family:var(--font-body);margin:0;font-size:1rem;font-weight:700;line-height:1.5}.import-option>.field__hint{margin:-.5rem 0 0}.bookmarklet{cursor:grab}.settings-page{gap:var(--space-xl);max-width:var(--measure);display:grid}.choice-group{gap:var(--space-xs);border:0;margin:0;padding:0;display:grid}.choice-group>legend,.choice-group__title{font-family:var(--font-display);font-size:var(--text-section);margin:0 0 var(--space-sm);padding:0;font-weight:600;line-height:1.1}.choice{align-items:center;gap:var(--space-md);min-height:3.5rem;padding:var(--space-sm) var(--space-md);cursor:pointer;display:flex}.choice:hover{border-color:var(--ice)}.choice:has(input:checked){border-color:var(--ice);box-shadow:inset 0 0 0 1px var(--ice)}.choice:has(input:focus-visible){outline:3px solid var(--ice);outline-offset:2px}.choice input:focus-visible{outline:none}.choice__swatch{border-radius:999px;flex:none;width:2.5rem;height:2.5rem;box-shadow:inset 0 0 0 1px #0000002e}.choice__swatch--frost{background-image:linear-gradient(135deg,#edf3f6 50%,#2c6b92 50%)}.choice__swatch--terracotta{background-image:linear-gradient(135deg,#f3e9dc 50%,#b0502a 50%)}.choice__text{gap:var(--space-3xs);display:grid}.choice__name{font-weight:700}.choice__description{color:var(--ink-soft);font-size:var(--text-small)}.nutrient-choices{margin:0;padding:0;list-style:none}.nutrient-choice{justify-content:space-between;align-items:center;gap:var(--space-xs) var(--space-md);min-height:3.5rem;padding:var(--space-xs) var(--space-md);flex-wrap:wrap;display:flex}.nutrient-choice__target{align-items:center;gap:var(--space-2xs) var(--space-xs);flex-wrap:wrap;display:flex}.nutrient-choice__target .input{width:6.5rem}.nutrient-choice__target .field__error{text-align:end;flex-basis:100%}.inline-fields{align-items:flex-end;gap:var(--space-sm);flex-wrap:wrap;display:flex}.inline-fields>.field{flex:14rem}.choice-group h3{margin-top:var(--space-sm)}.member-list{margin:0;padding:0;list-style:none}.member-list>li{gap:var(--space-3xs);padding:var(--space-sm) var(--space-md);display:grid}.member-list__name{font-weight:700}.member-list>.action-row{align-items:center;gap:var(--space-sm);grid-template-columns:1fr auto}.action-row__wide{grid-column:1/-1}.code-figure{font-family:var(--font-display);font-size:var(--text-figure);letter-spacing:.06em;font-weight:600;display:block}.action-row__actions{gap:var(--space-xs);flex-wrap:wrap;justify-content:flex-end;display:flex}}@layer utilities{.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--ink-soft)}}
