@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-vietnamese-wdth-normal-rJmnGBSt.woff2)format("woff2-variations");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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-ext-wdth-normal-7khWdh9v.woff2)format("woff2-variations");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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-wdth-normal-DY7AcnAa.woff2)format("woff2-variations");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}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#f6f6f2;--surface:#fff;--fill:#ecece7;--fill-2:#e2e2dc;--ink:#111315;--ink-2:#4d5257;--ink-3:#62676c;--on-ink:#fff;--line:#e2e2dc;--line-in:#ecece7;--box:#7d8287;--accent:#2247e6;--accent-ink:#2247e6;--accent-tint:#e9edfc;--accent-bar:#2247e6;--on-accent:#fff;--ok:#1f7a4d;--warn:#8f5407;--bad:#c8372d;--ember:#ff6a1f;--bar-bg:#f6f6f2db;--scrim:#11131552;--shadow:0 12px 32px #11131524, 0 2px 6px #1113150f;--display:"Archivo Variable", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--text:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--r-card:24px;--r:14px;--r-sm:10px;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--ease:cubic-bezier(.32, .72, 0, 1);--ease-out:cubic-bezier(.22, 1, .36, 1)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#000;--surface:#1a1b1e;--fill:#26272b;--fill-2:#313237;--ink:#f4f4f1;--ink-2:#b4b8bc;--ink-3:#94999e;--on-ink:#111315;--line:#2c2d31;--line-in:#2c2d31;--box:#7d8287;--accent:#3355f5;--accent-ink:#8fa5ff;--accent-tint:#18214d;--accent-bar:#5b7bff;--ok:#4fbf7d;--warn:#e2a24a;--bad:#f0746b;--bar-bg:#000000d1;--scrim:#0009;--shadow:0 12px 32px #0009, 0 2px 6px #0006}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{background:var(--bg);color:var(--ink);font-family:var(--text);overscroll-behavior-y:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:16px;line-height:1.35}#root{isolation:isolate}h1,h2,h3,p,ul,ol,dl,dd,fieldset{margin:0;padding:0}ul,ol{list-style:none}fieldset{border:0;min-width:0}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;background:0 0;border:0;padding:0}a{color:var(--accent-ink)}img{max-width:100%;display:block}:focus-visible{outline:2px solid var(--accent-ink);outline-offset:2px}input,textarea{background:var(--fill);border-radius:var(--r);appearance:none;border:0;width:100%;min-height:46px;padding:12px 14px;font-size:16px}textarea{resize:vertical;line-height:1.45}input::placeholder,textarea::placeholder{color:var(--ink-3);opacity:1}input:focus,textarea:focus{outline:2px solid var(--accent-ink);outline-offset:0}.logo{fill:var(--accent);flex:none;display:block}.logo-white{fill:#fff}.app{height:100dvh;position:relative;overflow:hidden}.base{background:var(--bg);flex-direction:column;display:flex;position:absolute;inset:0}.tabs{-webkit-overflow-scrolling:touch;animation:tab-in .22s var(--ease-out);flex:1;overflow-y:auto}@keyframes tab-in{0%{opacity:0}}.topbar{z-index:5;height:calc(var(--safe-t) + 44px);padding-top:var(--safe-t);background:var(--bar-bg);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);box-shadow:0 .5px 0 var(--line);letter-spacing:-.01em;opacity:0;pointer-events:none;justify-content:center;align-items:center;font-size:17px;font-weight:600;transition:opacity .18s ease-out;display:flex;position:absolute;top:0;left:0;right:0}.topbar.is-shown{opacity:1}.tab-screen{max-width:640px;margin:0 auto;padding-bottom:32px}.tab-head{min-height:52px;padding:calc(var(--safe-t) + 18px) 10px 2px 20px;justify-content:space-between;align-items:center;gap:8px;display:flex}.tab-head h1{font-family:var(--display);letter-spacing:-.02em;font-size:34px;font-weight:800;line-height:1}.head-actions{align-items:center;gap:2px;display:flex}.head-actions .btn-small{margin-right:6px}.tabbar{padding:4px 8px var(--safe-b);background:var(--bar-bg);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);box-shadow:0 -.5px 0 var(--line);grid-template-columns:repeat(4,1fr);display:grid}.tabbar button{min-height:50px;color:var(--ink-3);flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:600;transition:color .2s;display:flex}.tabbar button svg{transition:transform .18s var(--ease-out)}.tabbar button:active svg{transition-duration:60ms;transform:scale(.88)}.tabbar button.is-active{color:var(--accent-ink)}.layer{z-index:20;background:var(--bg);will-change:transform;position:absolute;inset:0;box-shadow:-14px 0 36px #0000001f}.layer.is-dragging{-webkit-user-select:none;user-select:none}.page{flex-direction:column;height:100dvh;display:flex}.page-head{min-height:calc(var(--safe-t) + 50px);padding:var(--safe-t) 8px 0;background:var(--bar-bg);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);box-shadow:0 .5px 0 var(--line);z-index:2;align-items:center;gap:2px;display:flex;position:relative}.page-head>.icon-btn:first-child{color:var(--accent-ink)}.page-title{letter-spacing:-.01em;text-align:center;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:17px;font-weight:600;overflow:hidden}.page-head .head-actions{justify-content:flex-end;min-width:44px}.page-scroll{-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.page-scroll>*{max-width:640px;margin-inline:auto}.page-foot{padding:10px 16px calc(var(--safe-b) + 10px);background:var(--bar-bg);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);box-shadow:0 -.5px 0 var(--line)}.page-foot>*{max-width:608px;margin-inline:auto}.pad{padding:16px 20px}.pad-x{padding-inline:20px}.btn{border-radius:var(--r);background:var(--fill);white-space:nowrap;min-height:46px;transition:transform .25s var(--ease-out), background-color .2s, opacity .2s;justify-content:center;align-items:center;gap:6px;padding:0 18px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}.btn:active:not(:disabled){transition-duration:80ms;transform:scale(.97)}.btn:disabled{opacity:.4;cursor:default}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-quiet{color:var(--accent-ink);background:0 0}.btn-danger{background:var(--bad);color:#fff}.btn-danger-quiet{color:var(--bad)}.btn-small{border-radius:18px;min-height:36px;padding:0 14px;font-size:15px}.btn-big{border-radius:16px;min-height:56px;font-size:17px}.btn-block{width:100%;display:flex}.icon-btn{width:44px;height:44px;color:var(--ink);transition:background-color .25s, transform .25s var(--ease-out);border-radius:50%;flex:none;place-items:center;display:inline-grid}.icon-btn:active{background:var(--fill);transition-duration:60ms;transform:scale(.92)}.icon-btn.is-fav{color:var(--accent-ink)}.link-btn{color:var(--accent-ink);min-height:36px;padding:8px 0;font-size:15px;font-weight:500}.chip,.tag{background:var(--fill);white-space:nowrap;min-height:34px;transition:background-color .2s, color .2s, transform .25s var(--ease-out);border-radius:999px;align-items:center;gap:5px;padding:0 14px;font-size:14px;font-weight:500;display:inline-flex}.chip:active{transition-duration:60ms;transform:scale(.95)}.tag{min-height:28px;color:var(--ink-2);padding:0 11px;font-size:13px}.chip-on{background:var(--ink);color:var(--on-ink);font-weight:600}.chips-scroll{scrollbar-width:none;gap:6px;padding:6px 20px 10px;display:flex;overflow-x:auto}.chips-scroll::-webkit-scrollbar{display:none}.chips-flush{padding-inline:0}.tag-row{flex-wrap:wrap;gap:6px;display:flex}.muted{color:var(--ink-2)}.fine{color:var(--ink-3);font-size:13px}.spinner{border:2.5px solid;border-right-color:#0000;border-radius:50%;flex:none;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(1turn)}}.empty{justify-items:start;gap:12px;padding:56px 20px;display:grid}.empty h2{font-family:var(--display);letter-spacing:-.01em;font-size:24px;font-weight:700}.empty p{color:var(--ink-2);max-width:34ch}.empty .btn{margin-top:6px}.hint{border-radius:var(--r);background:var(--fill);width:calc(100% - 32px);color:var(--ink-2);text-align:left;transition:transform .25s var(--ease-out);justify-content:space-between;align-items:center;gap:8px;margin:6px 16px 10px;padding:12px 14px;font-size:15px;display:flex}.hint:active{transition-duration:60ms;transform:scale(.98)}.hint-strong{background:var(--accent-tint);color:var(--accent-ink);font-weight:600}.weekbar{align-items:center;gap:0;min-height:44px;padding:0 10px 0 20px;display:flex}.weekbar-label{min-width:0;color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:15px;overflow:hidden}.weekbar-label strong{color:var(--ink);font-weight:600}.weekbar .icon-btn{color:var(--ink-2)}.weekstrip{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;padding:4px 16px 6px;display:grid}.weekstrip-day{height:66px;transition:background-color .2s, transform .25s var(--ease-out);border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex}.weekstrip-day:active{background:var(--fill);transition-duration:60ms;transform:scale(.94)}.weekstrip-day span{color:var(--ink-3);font-size:12px;font-weight:600}.weekstrip-day strong{font-family:var(--display);font-size:20px;font-weight:700;font-stretch:88%;line-height:1}.weekstrip-day i{background:0 0;border-radius:2px;width:4px;height:4px}.weekstrip-day i.is-on{background:var(--ink-3)}.weekstrip-day.is-today{background:var(--accent);color:var(--on-accent)}.weekstrip-day.is-today span{color:inherit}.weekstrip-day.is-today i.is-on{background:currentColor}.days{gap:12px;padding:10px 16px 0;display:grid}.day{background:var(--surface);border-radius:var(--r-card);scroll-margin-top:calc(var(--safe-t) + 56px);min-width:0;padding:12px 18px 16px}.day-head{justify-content:space-between;align-items:center;gap:8px;min-height:44px;display:flex}.day-head h2{font-family:var(--display);letter-spacing:-.01em;font-size:20px;font-weight:700;line-height:1.1}.day-today .day-head h2{color:var(--accent-ink)}.day-empty{color:var(--ink-3);padding:2px 0 6px;font-size:15px}.entries li+li{border-top:1px solid var(--line-in)}.entry{text-align:left;border-radius:8px;grid-template-columns:78px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:48px;padding:8px 0;transition:background-color .3s;display:grid}.entry:active{background:var(--fill);transition-duration:0s}.entry-meal{color:var(--ink-3);font-size:13px}.entry-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:16px;font-weight:500;line-height:1.25;display:-webkit-box;overflow:hidden}.entry-serves{font-family:var(--display);color:var(--ink-2);font-weight:700;font-stretch:88%}.day-add{border-radius:var(--r);background:var(--fill);width:100%;min-height:46px;transition:transform .25s var(--ease-out), background-color .2s;justify-content:center;align-items:center;gap:6px;margin-top:12px;font-size:15px;font-weight:600;display:flex}.day-add:active{background:var(--fill-2);transition-duration:60ms;transform:scale(.98)}.chip-toggle{min-height:32px;color:var(--ink-2);padding:0 12px 0 9px;font-size:13px;font-weight:600}.chip-toggle.chip-on{background:var(--accent-tint);color:var(--accent-ink)}.totals{border-top:1px solid var(--line-in);font-variant-numeric:tabular-nums;gap:10px;margin-top:8px;padding-top:16px;display:grid}.totals-kcal{flex-wrap:wrap;align-items:baseline;gap:7px;display:flex}.totals-kcal strong{font-family:var(--display);font-size:34px;font-weight:800;font-stretch:80%;line-height:1}.totals-kcal>span{color:var(--ink-2);font-size:14px}.totals-kcal .totals-missing{color:var(--warn);margin-left:auto;font-size:13px}.bar{background:var(--fill);border-radius:4px;height:8px;overflow:hidden}.bar i{background:var(--accent-bar);height:100%;transition:width .6s var(--ease);border-radius:4px;display:block}.bar i.bar-over{background:var(--warn)}.totals-macros{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.macro{color:var(--ink-2);gap:3px;font-size:13px;display:grid}.macro>span:first-child{color:var(--ink-3);font-size:12px}.macro strong{font-family:var(--display);color:var(--ink);font-size:17px;font-weight:700;font-stretch:88%}.macro.over strong,.macro.over{color:var(--warn)}.sheet-overlay{z-index:49;background:var(--scrim);position:fixed;inset:0}.sheet{z-index:50;background:var(--surface);max-width:640px;max-height:92dvh;box-shadow:var(--shadow);border-radius:28px 28px 0 0;outline:none;flex-direction:column;margin-inline:auto;display:flex;position:fixed;bottom:0;left:0;right:0}.sheet-grip{background:var(--fill-2);border-radius:3px;flex:none;width:36px;height:5px;margin:8px auto 6px}.sheet-title{font-family:var(--display);letter-spacing:-.01em;margin:0;padding:6px 20px 10px;font-size:24px;font-weight:700;line-height:1.15}.sheet-sub{color:var(--ink-2);align-items:center;gap:8px;display:flex}.sheet-h{font-size:17px;font-weight:600}.sheet-body{align-content:start;gap:18px;padding:4px 20px 20px;display:grid;overflow-y:auto}.sheet-body:last-child{padding-bottom:calc(var(--safe-b) + 20px)}.sheet-body input,.sheet-body textarea{background:var(--fill)}.sheet-foot{padding:10px 20px calc(var(--safe-b) + 12px);box-shadow:0 -.5px 0 var(--line)}.menu-pos{z-index:60}.menu{background:var(--surface);min-width:230px;box-shadow:var(--shadow), 0 0 0 .5px var(--line);transform-origin:var(--transform-origin);transition:opacity .18s ease-out, transform .22s var(--ease-out);border-radius:14px;padding:6px}.menu[data-starting-style],.menu[data-ending-style]{opacity:0;transform:scale(.9)}.menu-item{cursor:default;border-radius:9px;outline:none;align-items:center;min-height:44px;padding:0 12px;font-size:16px;display:flex}.menu-item[data-highlighted]{background:var(--fill)}.menu-item[data-disabled]{opacity:.4}.menu-danger{color:var(--bad)}.dialog-backdrop{z-index:70;background:var(--scrim);transition:opacity .2s;position:fixed;inset:0}.dialog-backdrop[data-starting-style],.dialog-backdrop[data-ending-style]{opacity:0}.dialog{z-index:71;background:var(--surface);width:min(340px,100vw - 48px);box-shadow:var(--shadow);transition:opacity .2s, transform .28s var(--ease-out);border-radius:22px;gap:8px;padding:22px 20px 18px;display:grid;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.dialog[data-starting-style],.dialog[data-ending-style]{opacity:0;transform:translate(-50%,-50%)scale(1.06)}.dialog-title{margin:0;font-size:18px;font-weight:600}.dialog-body{color:var(--ink-2);margin:0;font-size:15px}.dialog-actions{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}.toast{font-weight:500;font-family:var(--text)!important;background:var(--ink)!important;color:var(--on-ink)!important;box-shadow:var(--shadow)!important;border:0!important;border-radius:16px!important;padding:13px 16px!important;font-size:15px!important}.toast[data-type=error]{background:var(--bad)!important;color:#fff!important}.toast [data-button]{text-underline-offset:3px;text-decoration:underline;color:inherit!important;background:0 0!important;font-weight:700!important}.form,.fieldset,.field,.stack,.form-row,.recipe,.sheet-body,.panel,.prep-body{grid-template-columns:minmax(0,1fr)}.form{gap:22px;padding:16px 16px 40px;display:grid}.field{gap:7px;display:grid}.field>span,.form-label,legend{color:var(--ink-2);font-size:13px;font-weight:500}.fieldset{background:var(--surface);border-radius:var(--r-card);gap:14px;padding:18px;display:grid}.fieldset legend{float:left;width:100%;font-family:var(--display);letter-spacing:-.01em;color:var(--ink);padding:0;font-size:20px;font-weight:700}.fieldset>*{clear:both}.fieldset>.btn-small{justify-self:start}.form-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.form-grid-3{grid-template-columns:repeat(3,1fr)}.form-grid-5{grid-template-columns:repeat(5,1fr);gap:6px}.form-grid-5 input{padding-inline:8px}.field-wide{grid-column:1/-1}.form-row{gap:8px;display:grid}.form-row.form-row-inline{grid-template-columns:1fr auto;align-items:center}.input-row{gap:8px;display:flex}.input-row input{flex:1;min-width:0}.row-2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.stack{gap:10px;display:grid}.form-error{color:var(--bad);font-weight:500}.review-note{background:var(--accent-tint);color:var(--accent-ink);border-radius:var(--r);padding:12px 14px;font-size:15px}.search{background:var(--fill);color:var(--ink-3);border-radius:13px;align-items:center;gap:8px;margin:8px 16px 4px;padding:0 12px;display:flex}.sheet-body .search{margin:0}.search input{min-height:44px;color:var(--ink);background:0 0;padding-inline:0}.search input:focus{outline:none}.search:focus-within{outline:2px solid var(--accent-ink)}.toggle-row{justify-content:space-between;align-items:center;gap:12px;min-height:48px;font-size:16px;display:flex}.switch{background:var(--fill-2);border-radius:999px;flex:none;width:51px;height:31px;transition:background-color .25s;position:relative}.switch[data-checked]{background:var(--accent)}.switch-thumb{width:27px;height:27px;transition:transform .3s var(--ease-out);background:#fff;border-radius:50%;display:block;transform:translate(2px,2px);box-shadow:0 3px 8px #00000026,0 1px 1px #00000029}.switch[data-checked] .switch-thumb{transform:translate(22px,2px)}.stepper{border-radius:var(--r);background:var(--fill);grid-template-columns:44px minmax(44px,auto) 44px;align-items:center;display:inline-grid}.stepper button{border-radius:var(--r);height:44px;transition:transform .2s var(--ease-out);place-items:center;display:grid}.stepper button:active:not(:disabled){transition-duration:60ms;transform:scale(.88)}.stepper button:disabled{opacity:.3}.stepper-value{text-align:center;font-family:var(--display);font-variant-numeric:tabular-nums;font-size:19px;font-weight:700;font-stretch:88%}.segmented{background:var(--fill);border-radius:13px;grid-auto-columns:1fr;grid-auto-flow:column;gap:3px;padding:3px;display:grid}.tab-screen>.segmented{margin:10px 16px 6px}.segmented button{min-height:38px;color:var(--ink-2);border-radius:10px;font-size:14px;font-weight:500;transition:background-color .25s,color .25s,box-shadow .25s}.segmented button[aria-checked=true]{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 1px 3px #0000001f}@media (prefers-color-scheme:dark){.segmented button[aria-checked=true]{background:#3a3b40}}.pick-list{max-height:44dvh;margin-inline:-8px;display:grid;overflow-y:auto}.pick-row{text-align:left;border-radius:var(--r);align-items:center;gap:12px;width:100%;padding:8px;transition:background-color .3s;display:flex}.pick-row:active{background:var(--fill);transition-duration:0s}.pick-chosen{background:var(--fill);padding:10px}.pick-text{flex:1;gap:2px;min-width:0;display:grid}.pick-text strong{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.pick-text span{color:var(--ink-2);font-size:14px}.pick-change{color:var(--accent-ink);font-size:15px;font-weight:500}.thumb{object-fit:cover;background:var(--fill);border-radius:14px;flex:none}.thumb-blank{background:var(--accent-tint);color:var(--accent-ink);font-family:var(--display);place-items:center;font-size:22px;font-weight:700;display:grid}.day-picker{grid-template-columns:repeat(7,1fr);gap:5px;display:grid}.day-pick{background:var(--fill);min-height:46px;color:var(--ink-2);transition:transform .25s var(--ease-out), background-color .2s, color .2s;border-radius:12px;font-size:14px;font-weight:600}.day-pick-on{background:var(--accent);color:var(--on-accent)}.day-pick:active{transition-duration:60ms;transform:scale(.92)}.quick-days{gap:20px;display:flex}.dot{background:var(--accent-tint);min-width:46px;height:30px;color:var(--accent-ink);border-radius:10px;justify-content:center;align-items:center;gap:3px;padding:0 8px;font-size:13px;font-weight:700;line-height:1;display:inline-flex}.dot-frozen{box-shadow:inset 0 0 0 1.5px var(--accent-ink);background:0 0}.recipe-list{padding:4px 16px 0;display:grid}.recipe-list>li+li{border-top:1px solid var(--line)}.recipe-row{text-align:left;border-radius:var(--r);align-items:center;gap:14px;width:100%;min-height:84px;padding:10px 4px;transition:background-color .3s;display:flex}.recipe-row:active{background:var(--fill);transition-duration:0s}.recipe-row .thumb{border-radius:17px;width:60px!important;height:60px!important}.recipe-row-text{flex:1;gap:4px;min-width:0;display:grid}.recipe-row-text strong{letter-spacing:-.01em;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:17px;font-weight:600;line-height:1.2;display:-webkit-box;overflow:hidden}.recipe-row-meta{color:var(--ink-2);font-size:14px}.recipe-row-fav{color:var(--accent-ink);display:grid}.inbox{grid-template-columns:minmax(0,1fr);gap:8px;display:grid}.inbox h3,.panel h3,.recipe section>h3,.section-head h3{font-family:var(--display);letter-spacing:-.01em;font-size:20px;font-weight:700}.inbox-row{background:var(--fill);border-radius:var(--r);align-items:center;gap:8px;min-width:0;padding:6px 4px 6px 14px;display:flex}.inbox-row>.btn,.inbox-row>.icon-btn{flex:none}.inbox-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:15px;overflow:hidden}.import-link{color:var(--accent-ink)}.import-options{gap:8px;display:grid}.option{background:var(--fill);border-radius:var(--r);text-align:left;transition:transform .25s var(--ease-out);align-items:center;gap:14px;padding:14px 16px;display:flex}.option:active{transition-duration:60ms;transform:scale(.98)}.option>svg{color:var(--accent-ink)}.option>span{gap:2px;display:grid}.option strong{font-weight:600}.option span span{color:var(--ink-2);font-size:14px}.busy{color:var(--ink-2);justify-items:center;gap:14px;padding:40px 0 48px;display:grid}.busy .spinner{width:28px;height:28px;color:var(--accent-ink);border-width:3px}.hero{object-fit:cover;width:100%;max-height:300px}.recipe{gap:22px;padding:20px 20px 40px;display:grid}.recipe-title{font-family:var(--display);letter-spacing:-.02em;text-wrap:balance;font-size:30px;font-weight:800;line-height:1.08}.recipe-meta{color:var(--ink-2);margin-top:-14px}.recipe-meta:empty{display:none}.stars{color:var(--fill-2);gap:0;margin:-12px 0 -6px -8px;display:flex}.stars button{width:40px;height:44px;transition:transform .25s var(--ease-out);place-items:center;display:grid}.stars button:active{transition-duration:60ms;transform:scale(.85)}.stars .star-on{color:var(--accent-ink)}.panel{background:var(--surface);border-radius:var(--r-card);gap:12px;padding:18px;display:grid}.panel-head,.section-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.panel-head .muted{font-size:13px}.nutri{grid-template-columns:auto 1fr;align-items:center;gap:20px;display:grid}.nutri-main{grid-template-columns:auto auto;align-items:baseline;column-gap:6px;display:grid}.nutri-main strong{font-family:var(--display);font-size:40px;font-weight:800;font-stretch:80%;line-height:1}.nutri-main small{color:var(--ink-3);grid-column:1/-1;font-size:13px}.nutri dl{grid-template-columns:repeat(2,1fr);gap:8px 16px;display:grid}.nutri dl div{border-bottom:1px solid var(--line-in);justify-content:space-between;padding-bottom:4px;display:flex}.nutri dt{color:var(--ink-2);font-size:14px}.nutri dd{font-variant-numeric:tabular-nums;font-weight:600}.serves-ctl{color:var(--ink-2);align-items:center;gap:10px;font-size:14px;display:flex}.recipe section{gap:10px;display:grid}.ing-list li{border-bottom:1px solid var(--line-in);grid-template-columns:84px 1fr;gap:14px;padding:11px 0;display:grid}.ing-list li:last-child{border-bottom:0}.ing-qty{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.ing-note{color:var(--ink-2)}.steps{counter-reset:step;gap:18px;display:grid}.steps li{counter-increment:step;grid-template-columns:30px 1fr;gap:8px 10px;line-height:1.45;display:grid}.steps li:before{content:counter(step);font-family:var(--display);color:var(--accent-ink);font-size:20px;font-weight:700;line-height:1.15}.steps li>.chip{grid-column:2;justify-self:start}.notes{white-space:pre-wrap}.source{color:var(--ink-2);font-size:14px}.photo-field{align-items:center;gap:14px;display:flex}.photo-field img,.photo-blank{object-fit:cover;border-radius:20px;flex:none;width:96px;height:96px}.photo-blank{background:var(--fill);color:var(--ink-3);place-items:center;display:grid}.photo-actions{flex-wrap:wrap;gap:8px;display:flex}.add-item{gap:8px;padding:8px 16px 4px;display:flex}.add-item input{flex:1;min-width:0}.shop-progress{color:var(--ink-2);font-variant-numeric:tabular-nums;gap:8px;padding:12px 20px 2px;font-size:14px;display:grid}.shop-progress strong{font-family:var(--display);color:var(--ink);font-size:17px;font-weight:700;font-stretch:88%}.aisle{padding:22px 20px 0}.aisle h2,.staples summary{font-family:var(--display);letter-spacing:-.01em;padding-bottom:4px;font-size:20px;font-weight:700;line-height:1.2}.staples summary{cursor:pointer;min-height:44px;font-family:var(--text);color:var(--ink-2);justify-content:space-between;align-items:center;font-size:16px;font-weight:500;list-style:none;display:flex}.staples summary::-webkit-details-marker{display:none}.staples summary svg{transition:transform .3s var(--ease-out)}.staples[open] summary svg{transform:rotate(180deg)}.shop-row{align-items:center;display:flex}.shop-row+.shop-row{border-top:1px solid var(--line)}.shop-tick{text-align:left;flex:1;grid-template-columns:24px 1fr auto;align-items:center;gap:12px;min-width:0;min-height:50px;display:grid}.tick{border:2px solid var(--box);color:#fff;border-radius:8px;flex:none;place-items:center;width:24px;height:24px;transition:background-color .18s,border-color .18s;display:grid}[aria-checked=true]>.tick{background:var(--accent);border-color:var(--accent);animation:tick-pop .36s var(--ease-out)}.tick svg{stroke-width:2.8px}.tick svg path{stroke-dasharray:22;animation:tick-draw .26s 40ms var(--ease-out) both}@keyframes tick-pop{0%{transform:scale(.8)}55%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes tick-draw{0%{stroke-dashoffset:22px}to{stroke-dashoffset:0}}.shop-name{min-width:0;font-size:17px;transition:color .2s}.shop-qty{font-variant-numeric:tabular-nums;text-align:right;color:var(--ink-2);white-space:nowrap;font-size:15px}.shop-done .shop-name,.shop-done .shop-qty{color:var(--ink-3);text-decoration:line-through}.shop-more{color:var(--ink-3);width:40px;margin-right:-10px}.shop-by{color:var(--ink-3);font-size:13px}.family-name{color:var(--ink-2);padding:4px 20px;font-size:15px}.family-setup{gap:14px;padding:16px 20px;display:grid}.source-list{background:var(--fill);border-radius:var(--r);padding:4px 14px;display:grid}.source-list li{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:10px 0;display:flex}.source-list li:last-child{border-bottom:0}.source-list li span:last-child{white-space:nowrap;font-weight:600}::view-transition-old(root){animation:none}::view-transition-new(root){animation:none}::view-transition-group(*){animation-duration:.42s;animation-timing-function:var(--ease)}.prep-summary{color:var(--ink-2);padding:4px 20px 12px;font-size:15px}.prep-list{gap:12px;padding:0 16px;display:grid}.prep-card{background:var(--surface);border-radius:var(--r-card);padding:6px 18px 18px;transition:opacity .3s}.prep-done{opacity:.55}.prep-head{text-align:left;align-items:center;gap:10px;width:100%;min-height:64px;display:flex}.prep-title{flex:1;gap:4px;min-width:0;display:grid}.prep-title strong{font-family:var(--display);letter-spacing:-.01em;font-size:20px;font-weight:700;line-height:1.15}.prep-title span{color:var(--ink-2);font-size:14px}.chev{transition:transform .35s var(--ease-out);color:var(--ink-2);display:grid}.chev-open{transform:rotate(180deg)}.portions{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.freeze-note{color:var(--ink-2);align-items:flex-start;gap:6px;margin-top:12px;font-size:14px;display:flex}.freeze-note svg{color:var(--accent-ink);flex:none;margin-top:3px}.prep-body{border-top:1px solid var(--line-in);animation:reveal .32s var(--ease-out);gap:16px;margin-top:14px;padding-top:4px;display:grid}@keyframes reveal{0%{opacity:0;transform:translateY(-6px)}}.check-steps{display:grid}.check-steps li{border-bottom:1px solid var(--line-in);padding:2px 0 8px}.check-steps li:last-child{border-bottom:0}.check-steps li>button:first-child{text-align:left;grid-template-columns:24px 1fr;align-items:start;gap:12px;width:100%;min-height:46px;padding:10px 0 4px;font-size:15px;line-height:1.4;display:grid}.check-steps li>button:first-child>span:last-child{transition:color .2s}.check-steps .is-done>button>span:last-child{color:var(--ink-3);text-decoration:line-through}.check-steps .chip{min-height:30px;margin:4px 0 0 36px;font-size:13px;font-weight:600}.fresh-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;min-height:52px;font-size:16px;display:flex}.cook-progress{gap:4px;padding:12px 20px 0;display:flex}.cook-progress i{background:var(--fill);border-radius:2px;flex:1;height:4px;transition:background-color .3s}.cook-progress i.on{background:var(--accent-bar)}.cook-body{flex:1;align-content:start;gap:20px;width:100%;max-width:640px;margin-inline:auto;padding:24px 20px;display:grid;overflow-y:auto}.cook-count{color:var(--ink-3);font-size:15px;font-weight:600}.cook-text{letter-spacing:-.01em;text-wrap:pretty;animation:step-in .32s var(--ease-out);font-size:28px;font-weight:500;line-height:1.3}@keyframes step-in{0%{opacity:0;transform:translate(14px)}}.timer-stack{z-index:40;left:12px;right:12px;bottom:calc(var(--safe-b) + 66px);pointer-events:none;gap:6px;max-width:616px;margin-inline:auto;display:grid;position:fixed}.timer-pill{pointer-events:auto;background:var(--ink);color:var(--on-ink);box-shadow:var(--shadow);animation:pill-in .4s var(--ease-out);border-radius:18px;align-items:center;gap:8px;padding:2px 2px 2px 14px;display:flex}@keyframes pill-in{0%{opacity:0;transform:translateY(12px)scale(.96)}}.timer-pill>svg{color:var(--ember)}.timer-pill .icon-btn{color:inherit}.timer-pill .icon-btn:active{background:#7f7f7f33}.timer-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:15px;overflow:hidden}.timer-pill strong{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:20px;font-weight:700;font-stretch:88%}.timer-rung{background:var(--ember);color:#1d0d02;animation:.9s ease-in-out infinite alternate pulse}.timer-rung>svg{color:inherit}@keyframes pulse{to{transform:scale(1.02)}}.syncbar{background:var(--fill);width:100%;color:var(--ink-2);text-align:center;padding:8px 16px;font-size:13px;font-weight:500;display:block}.syncbar-error{background:var(--bad);color:#fff}.auth{min-height:100dvh;padding:calc(var(--safe-t) + 24px) 24px calc(var(--safe-b) + 24px);place-items:center;display:grid}.auth-boot .logo{animation:boot 1.4s var(--ease) infinite alternate}@keyframes boot{0%{opacity:.35}}.auth-card{width:min(380px,100%);animation:reveal .5s var(--ease-out);gap:16px;display:grid}.auth-card .logo{margin-bottom:6px}.auth-card h1{font-family:var(--display);letter-spacing:-.025em;font-size:40px;font-weight:800;line-height:1}.auth-card p{color:var(--ink-2)}.auth-card .link-btn{justify-self:center}.targets{grid-template-columns:1fr 96px 96px;align-items:center;gap:8px;display:grid}.targets-row{display:contents}.targets-row span{font-weight:500}.targets-col{color:var(--ink-2);text-align:center;font-size:13px;font-weight:500}.targets input{text-align:center;font-variant-numeric:tabular-nums}.howto{gap:6px;padding-left:22px;font-size:15px;list-style:decimal;display:grid}.copy-row{background:var(--fill);border-radius:var(--r);align-items:center;gap:8px;padding:6px 6px 6px 14px;display:flex}.copy-row code{white-space:nowrap;scrollbar-width:none;flex:1;min-width:0;font-size:13px;overflow-x:auto}.snapshots summary{cursor:pointer;align-items:center;min-height:44px;font-weight:500;display:flex}.snapshots li{padding:6px 0}.people{gap:6px;display:grid}.people li{border-bottom:1px solid var(--line-in);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 0;display:flex}.people li:last-child{border-bottom:0}.people li>span{flex:100%;min-width:0}.library-by{color:var(--ink-2);font-size:15px}.change{gap:6px;padding:6px 0;display:grid}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
