@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-Dc4VJyIJ.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-BPnxn4xp.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-BLGc9T1a.woff2) format("woff2"),url(/assets/inter-cyrillic-400-normal-ZzOtrSSW.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-Bput3-QP.woff2) format("woff2"),url(/assets/inter-greek-ext-400-normal-DCpCPQOf.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-DxZsaF_h.woff2) format("woff2"),url(/assets/inter-greek-400-normal-BZzXV7-1.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2) format("woff2"),url(/assets/inter-vietnamese-400-normal-BUNmGMP1.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-hnt3BR84.woff2) format("woff2"),url(/assets/inter-latin-ext-400-normal-C1t-h-pH.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-BOOGhInR.woff2) format("woff2"),url(/assets/inter-latin-400-normal-gitzw0hO.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-CaqZN2hq.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bt9VVOA-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-BGBWG807.woff2) format("woff2"),url(/assets/inter-cyrillic-600-normal-BuzJQFbW.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-Cnui8OiR.woff2) format("woff2"),url(/assets/inter-greek-ext-600-normal-C9WLioJ8.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-Dhlb-90d.woff2) format("woff2"),url(/assets/inter-greek-600-normal-CwicyhtI.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2) format("woff2"),url(/assets/inter-vietnamese-600-normal-Cm6aH8_k.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-BnYJhD27.woff2) format("woff2"),url(/assets/inter-latin-ext-600-normal-CAF0vJDd.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-D273HNI0.woff2) format("woff2"),url(/assets/inter-latin-600-normal-B5cFAncS.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lora;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/lora-cyrillic-ext-600-normal-C7TDeNoj.woff2) format("woff2"),url(/assets/lora-cyrillic-ext-600-normal-DJ36qKL9.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Lora;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/lora-cyrillic-600-normal-GE5bhziV.woff2) format("woff2"),url(/assets/lora-cyrillic-600-normal-D9Zbnu3d.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Lora;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/lora-math-600-normal-CU8J3siK.woff2) format("woff2"),url(/assets/lora-math-600-normal-Bpm_vvix.woff) format("woff");unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0330,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2034-2037,U+2057,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2102,U+210A-210E,U+2110-2112,U+2115,U+2119-211D,U+2124,U+2128,U+212C-212D,U+212F-2131,U+2133-2138,U+213C-2140,U+2145-2149,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B6,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}@font-face{font-family:Lora;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/lora-symbols-600-normal-DaMEG5Dn.woff2) format("woff2"),url(/assets/lora-symbols-600-normal-BBvEw2tW.woff) format("woff");unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8B1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA88,U+1FA90-1FABD,U+1FABF-1FAC5,U+1FACE-1FADB,U+1FAE0-1FAE8,U+1FAF0-1FAF8,U+1FB00-1FBFF}@font-face{font-family:Lora;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/lora-vietnamese-600-normal-BVdSWJ2U.woff2) format("woff2"),url(/assets/lora-vietnamese-600-normal-BNxtpOks.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Lora;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/lora-latin-ext-600-normal-D_NIiHfu.woff2) format("woff2"),url(/assets/lora-latin-ext-600-normal-CIEFHufk.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:Lora;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/lora-latin-600-normal-DUWh3m6k.woff2) format("woff2"),url(/assets/lora-latin-600-normal-31JvEFhQ.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,[data-theme=basil]{--bg: #faf8f3;--surface: #ffffff;--surface-2: #f2efe7;--text: #1f2a22;--muted: #5d6a60;--border: #e2ddd1;--accent: #3f6b4a;--accent-ink: #ffffff;--accent-soft: #e3eee5;--safe: #2f6b3c;--safe-soft: #e2f1e5;--warn: #9a4a0b;--warn-soft: #fbead9;--danger: #b3261e;--shadow: 0 1px 2px rgb(0 0 0 / .05), 0 4px 16px rgb(0 0 0 / .05);color-scheme:light}[data-theme=tomato]{--accent: #b8432f;--accent-soft: #f8e3dd;--bg: #fcf7f4;--surface-2: #f5ece6;--border: #eadbd2}[data-theme=blueberry]{--accent: #3b4f8f;--accent-soft: #e2e7f6;--bg: #f6f7fb;--surface-2: #eceff7;--border: #dadfeb;--text: #1c2233;--muted: #5a6277}[data-theme=night]{--bg: #141815;--surface: #1d221e;--surface-2: #262c27;--text: #e9ede9;--muted: #a3ada5;--border: #343b35;--accent: #8fc39b;--accent-ink: #10180f;--accent-soft: #2a3a2d;--safe: #8fd19d;--safe-soft: #233428;--warn: #f2b37a;--warn-soft: #3b2c1e;--danger: #ff8a80;--shadow: none;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);font:400 16px/1.5 Inter,system-ui,-apple-system,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:Lora,Georgia,serif;font-weight:600;margin:0;line-height:1.25}h1{font-size:1.6rem}h2{font-size:1.25rem}h3{font-size:1.05rem;margin-bottom:.5rem}p{margin:0}button,input,select{font:inherit;color:inherit}a{color:var(--accent)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.muted{color:var(--muted)}.small{font-size:.85rem}.block{display:block}.grow{flex:1;min-width:0}.row{display:flex;align-items:center;gap:.5rem}.row.wrap{flex-wrap:wrap}.spread{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:.75rem}.warn-text{color:var(--warn);display:inline-flex;align-items:center;gap:.25rem}.strike{text-decoration:line-through;color:var(--muted)}.loading{min-height:100vh}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:44px;padding:0 1rem;border-radius:12px;border:1px solid transparent;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s,transform .05s}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn span{display:inline-flex;align-items:center;gap:.3rem}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:hover:not(:disabled){filter:brightness(1.08)}.btn-secondary{background:var(--surface);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background:var(--surface-2)}.btn-ghost{background:transparent;color:var(--muted)}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn-danger{background:transparent;border-color:var(--danger);color:var(--danger)}.btn-sm{min-height:36px;padding:0 .75rem;font-size:.875rem;border-radius:10px}.icon-btn{display:inline-grid;place-items:center;width:44px;height:44px;flex:none;border:0;border-radius:12px;background:transparent;color:var(--muted);cursor:pointer}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.icon-btn.fav-on{color:var(--danger)}.icon-btn.fav-on svg{fill:currentColor}.link{background:none;border:0;color:var(--accent);cursor:pointer;padding:.25rem 0;font-weight:600;text-align:right}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.input{min-height:44px;padding:0 .75rem;border-radius:10px;border:1px solid var(--border);background:var(--surface);min-width:0}.input-sm{min-height:34px;font-size:.875rem}.field{display:flex;flex-direction:column;gap:.35rem;font-weight:600;font-size:.9rem}.title-input{font-family:Lora,Georgia,serif;font-size:1.5rem;font-weight:600;border-color:transparent;background:transparent;padding:0}.title-input:hover,.title-input:focus{border-color:var(--border);padding:0 .5rem}.toggle{display:inline-flex;gap:.35rem;align-items:center;font-size:.875rem;white-space:nowrap}.toggle input{width:18px;height:18px;accent-color:var(--accent)}.day-label{width:3rem;font-weight:600}.search{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding-left:.75rem;color:var(--muted)}.search .input{border:0;background:transparent;color:var(--text)}.stepper{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.stepper button{width:40px;height:40px;border:0;background:none;cursor:pointer;display:grid;place-items:center;color:var(--accent)}.stepper span{min-width:3ch;text-align:center;font-weight:600;font-variant-numeric:tabular-nums}.chips{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.chip{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .6rem;border-radius:999px;font-size:.8rem;font-weight:600;background:var(--surface-2);color:var(--muted);border:1px solid transparent}.chip-toggle{cursor:pointer;min-height:36px;padding:0 .85rem;border-color:var(--border);background:var(--surface);text-transform:capitalize}.chip-toggle.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.chip-safe{background:var(--safe-soft);color:var(--safe)}.chip-warn{background:var(--warn-soft);color:var(--warn)}.chip-reason{background:var(--accent-soft);color:var(--accent)}.chip-theme{background:var(--warn-soft);color:var(--warn);font-size:.7rem;padding:0 .4rem}.swatch .dot{width:14px;height:14px;border-radius:50%;display:inline-block}.swatch-basil .dot{background:#3f6b4a}.swatch-tomato .dot{background:#b8432f}.swatch-blueberry .dot{background:#3b4f8f}.swatch-night .dot{background:#1d221e;border:2px solid #8fc39b}.app{min-height:100vh}.main{padding:1rem 1rem calc(88px + env(safe-area-inset-bottom));max-width:1100px;margin:0 auto}.screen{display:flex;flex-direction:column;gap:1rem}.screen-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.screen-head p{margin-top:.15rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:1rem;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.6rem}.brand{display:flex;align-items:center;gap:.6rem}.brand img{border-radius:8px}.topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:.5rem .5rem .5rem 1rem;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.menu{position:absolute;right:.5rem;top:56px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);padding:.35rem;min-width:180px;display:flex;flex-direction:column}.menu button{display:flex;gap:.6rem;align-items:center;min-height:44px;padding:0 .75rem;border:0;background:none;border-radius:10px;cursor:pointer;text-align:left}.menu button:hover{background:var(--surface-2)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:20;display:grid;grid-template-columns:repeat(5,1fr);background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}.bottom-nav a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:.5rem 0 .4rem;min-height:56px;color:var(--muted);text-decoration:none;font-size:.72rem;font-weight:600}.bottom-nav a.active{color:var(--accent)}.sidebar{display:none}@media (min-width: 900px){.topbar,.bottom-nav{display:none}.app{display:grid;grid-template-columns:232px 1fr}.sidebar{display:flex;flex-direction:column;gap:1.25rem;position:sticky;top:0;height:100vh;padding:1.25rem .75rem;border-right:1px solid var(--border);background:var(--surface)}.sidebar .brand{padding:0 .5rem}.sidebar nav{display:flex;flex-direction:column;gap:2px}.sidebar a{display:flex;align-items:center;gap:.75rem;min-height:44px;padding:0 .75rem;border-radius:10px;color:var(--muted);text-decoration:none;font-weight:600}.sidebar a:hover{background:var(--surface-2);color:var(--text)}.sidebar a.active{background:var(--accent-soft);color:var(--accent)}.main{padding:2rem;width:100%}}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0006;display:flex;align-items:flex-end;justify-content:center;animation:fade .15s}.sheet{background:var(--bg);width:100%;max-width:640px;max-height:90vh;border-radius:20px 20px 0 0;display:flex;flex-direction:column;animation:up .2s ease-out}.sheet-head{display:flex;justify-content:space-between;align-items:center;padding:.75rem .5rem .5rem 1.25rem;border-bottom:1px solid var(--border)}.sheet-body{padding:1rem 1.25rem;overflow-y:auto;display:flex;flex-direction:column;gap:.85rem}.sheet-foot{display:flex;justify-content:flex-end;gap:.5rem;padding:.75rem 1.25rem calc(.75rem + env(safe-area-inset-bottom));border-top:1px solid var(--border)}@media (min-width: 700px){.sheet-backdrop{align-items:center}.sheet{border-radius:20px}}@keyframes up{0%{transform:translateY(24px);opacity:0}}@keyframes fade{0%{opacity:0}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.tile{--h: 140;flex:none;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-weight:700;font-size:.95rem;background:hsl(var(--h) 45% 88%);color:hsl(var(--h) 45% 26%)}[data-theme=night] .tile{background:hsl(var(--h) 25% 25%);color:hsl(var(--h) 50% 82%)}.meta{display:flex;flex-wrap:wrap;gap:.35rem .85rem;align-items:center;color:var(--muted);font-size:.85rem}.meta>span{display:inline-flex;align-items:center;gap:.25rem}.pick-list,.fill-list,.swap-list,.simple-list,.recipe-grid,.aisle ul,.timeline{list-style:none;margin:0;padding:0}.pick-row{display:flex;align-items:center;gap:.75rem;width:100%;padding:.6rem;border:0;border-radius:12px;background:none;text-align:left;cursor:pointer}.pick-row:hover:not(:disabled){background:var(--surface-2)}.pick-row:disabled{opacity:.6;cursor:not-allowed}.pick-name{font-weight:600}.fill-list li{display:grid;grid-template-columns:9rem 1fr auto;gap:.5rem;align-items:center;padding:.55rem 0;border-bottom:1px solid var(--border)}.fill-when{display:inline-flex;gap:.35rem;align-items:center;color:var(--muted);font-size:.85rem}.fill-name{font-weight:600}@media (max-width: 560px){.fill-list li{grid-template-columns:1fr;gap:.15rem}.fill-list .chip{justify-self:start}}.swap-list li{display:flex;flex-direction:column;gap:.25rem;padding:.6rem 0;border-bottom:1px solid var(--border);align-items:flex-start}.swap-line{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.recipe-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.recipe-card{flex-direction:row;align-items:center;padding:.5rem}.recipe-open{flex:1;display:flex;gap:.75rem;align-items:center;background:none;border:0;text-align:left;cursor:pointer;padding:.25rem;min-width:0}.recipe-open strong{display:block}.ingredients{padding-left:1.1rem;margin:0;display:flex;flex-direction:column;gap:.3rem}.steps{padding-left:1.2rem;margin:0;display:flex;flex-direction:column;gap:.5rem}.week-grid{display:grid;grid-template-columns:92px repeat(var(--slots),minmax(0,1fr));gap:.5rem}.wg-slot-head{display:flex;gap:.35rem;align-items:center;font-weight:600;color:var(--muted);font-size:.85rem;padding:0 .25rem}.wg-day{display:flex;flex-direction:column;justify-content:center;gap:.15rem;padding:.4rem;border-radius:12px;font-size:.85rem}.wg-day span{color:var(--muted)}.wg-day.today{background:var(--accent-soft)}.wg-day.today strong{color:var(--accent)}.wg-day.past{opacity:.55}.slot{width:100%;min-height:76px;height:100%;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:.2rem;padding:.6rem;border-radius:12px;border:1px solid var(--border);background:var(--surface);text-align:left;cursor:pointer;box-shadow:var(--shadow)}.slot:hover{border-color:var(--accent)}.slot-empty{align-items:center;justify-content:center;border-style:dashed;background:transparent;color:var(--muted);box-shadow:none}.slot-name{font-weight:600;font-size:.9rem;line-height:1.3}.slot-meta{display:flex;gap:.5rem;align-items:center;font-size:.75rem;color:var(--muted)}.slot-meta span{display:inline-flex;align-items:center;gap:.2rem}.slot-reason{font-size:.72rem;color:var(--accent)}.slot-kind{display:flex;align-items:center;gap:.35rem;color:var(--muted);font-weight:600;font-size:.9rem}.slot-cooked{opacity:.6}.slot-warn{border-color:var(--warn)}@media (max-width: 700px){.week-grid{grid-template-columns:repeat(var(--slots),minmax(0,1fr))}.wg-corner,.wg-slot-head{display:none}.wg-day{grid-column:1 / -1;flex-direction:row;align-items:center;gap:.5rem;padding:.6rem .25rem 0}.wg-cell:before{content:attr(data-slot);display:block;font-size:.7rem;color:var(--muted);font-weight:600;margin:0 0 .2rem .2rem}.slot{min-height:64px;padding:.5rem}.slot-name{font-size:.82rem}.slot-reason{display:none}}.budget .meter{height:8px;border-radius:99px;background:var(--surface-2);overflow:hidden}.budget .meter span{display:block;height:100%;background:var(--accent);border-radius:inherit;transition:width .3s}.budget-over{border-color:var(--warn)}.budget-over .meter span{background:var(--warn)}.budget-over strong{color:var(--warn)}.budget .btn{align-self:flex-start}.budget-compact{gap:.4rem;padding:.75rem 1rem}.hero{gap:.85rem}.hero-title{font-size:1.5rem}.callout{display:flex;align-items:center;gap:.6rem;padding:.75rem 1rem;border-radius:12px}.callout.warn{background:var(--warn-soft);color:var(--warn)}.callout.safe{background:var(--safe-soft);color:var(--safe)}.simple-list li{padding:.5rem 0;border-bottom:1px solid var(--border)}.simple-list li:last-child{border-bottom:0}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5rem;padding:1.5rem 1rem;color:var(--muted)}.empty h3{color:var(--text);margin:0}.aisle h3{font-family:Inter,sans-serif;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:.25rem 0 .35rem}.aisle ul{background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden}.aisle li+li{border-top:1px solid var(--border)}.aisle ul:empty{display:none}.list-row{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;min-height:52px;cursor:pointer}.list-row input,.timeline input{position:absolute;opacity:0;width:1px;height:1px}.tick{flex:none;width:24px;height:24px;border-radius:7px;border:2px solid var(--border);display:grid;place-items:center;color:var(--accent-ink)}.list-row input:checked~.tick,.timeline input:checked~.tick{background:var(--accent);border-color:var(--accent)}.list-row input:focus-visible~.tick,.timeline input:focus-visible~.tick{outline:3px solid var(--accent);outline-offset:2px}.list-row.ticked .list-name{text-decoration:line-through;color:var(--muted)}.list-name{font-weight:600}.price-pill{font-size:.8rem;font-variant-numeric:tabular-nums;padding:.15rem .5rem;border-radius:99px;background:var(--surface-2);color:var(--muted)}.sticky-action{position:sticky;bottom:calc(72px + env(safe-area-inset-bottom));display:flex;justify-content:center}.sticky-action .btn{box-shadow:0 8px 24px #0000002e;width:100%;max-width:420px}@media (min-width: 900px){.sticky-action{bottom:1rem}}.store-mode .list-row{min-height:68px;font-size:1.15rem}.store-mode .tick{width:36px;height:36px;border-radius:10px;border-width:3px}.store-mode .aisle ul{border-width:2px}.pantry-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.swaps{margin:0;display:grid;gap:.5rem;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.swaps div{padding:.6rem .75rem;background:var(--surface-2);border-radius:10px}.swaps dt{font-weight:600}.swaps dd{margin:0;color:var(--muted);font-size:.9rem}.timeline{display:flex;flex-direction:column;gap:.5rem}.timeline li{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:12px;padding:.6rem .75rem}.timeline li.hands-free{border-left-color:var(--warn)}.timeline li.done{opacity:.55}.timeline label{cursor:pointer;align-items:flex-start}.tl-time{width:4.75rem;flex:none;font-weight:600;font-variant-numeric:tabular-nums}.cook{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:var(--bg);display:flex;flex-direction:column;padding:1rem 1.25rem calc(1rem + env(safe-area-inset-bottom));gap:1rem}.cook-body{flex:1;overflow-y:auto;display:flex;flex-direction:column;justify-content:center;gap:1.5rem;max-width:720px;width:100%;margin:0 auto}.cook-step{font-size:clamp(1.4rem,4vw,2.2rem);line-height:1.35;font-family:Lora,Georgia,serif}.cook .ingredients{font-size:1.2rem}.cook-body .btn{align-self:flex-start}.cook-nav{max-width:720px;width:100%;margin:0 auto}.timers{display:flex;gap:.5rem;flex-wrap:wrap}.timer{display:flex;align-items:center;gap:.4rem;padding:0 0 0 .75rem;border-radius:12px;background:var(--accent-soft);color:var(--accent);font-weight:600;font-variant-numeric:tabular-nums}.timer-done{background:var(--warn-soft);color:var(--warn);animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.6}}.onboard{min-height:100vh;display:grid;place-items:center;padding:1rem}.onboard-card{width:100%;max-width:560px;background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:1.5rem;display:flex;flex-direction:column;gap:1rem;box-shadow:var(--shadow)}.onboard-card .brand{align-items:flex-start}.onboard-card h1{font-size:1.35rem}.progress{display:flex;gap:.35rem;list-style:none;margin:0;padding:0}.progress li{flex:1;height:5px;border-radius:99px;background:var(--surface-2)}.progress li.done{background:var(--accent)}.onboard-nav{margin-top:.5rem}.divider{display:flex;align-items:center;gap:.75rem;color:var(--muted);font-size:.85rem}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border)}.person{gap:.5rem}.person .row{flex-wrap:wrap}@media print{.no-print,.sidebar,.topbar,.bottom-nav,.budget{display:none!important}body{background:#fff;color:#000}.main{padding:0}.card,.aisle ul,.timeline li{box-shadow:none;break-inside:avoid}}.center{text-align:center;align-items:center}.textarea{min-height:120px;padding:.6rem .75rem;resize:vertical;line-height:1.5;font:inherit}.input.num{width:6rem}.unit{min-width:3rem;color:var(--muted);font-size:.85rem}.toolbar{display:flex;flex-wrap:wrap;gap:.4rem}.seg{display:inline-flex;border:1px solid var(--border);border-radius:12px;overflow:hidden}.seg button{min-height:40px;padding:0 .9rem;border:0;background:var(--surface);cursor:pointer;font-weight:600;color:var(--muted)}.seg button.on{background:var(--accent);color:var(--accent-ink)}.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--border);overflow-x:auto}.tabs button{border:0;background:none;min-height:44px;padding:0 .8rem;font-weight:600;color:var(--muted);border-bottom:3px solid transparent;cursor:pointer;white-space:nowrap}.tabs button.on{color:var(--accent);border-bottom-color:var(--accent)}.switch-row{min-height:40px;white-space:normal}.radio-row{cursor:pointer;min-height:40px}.radio-row input,.switch-row input{accent-color:var(--accent);width:18px;height:18px}.tick-on{background:var(--accent);border-color:var(--accent)}.icon-btn.mic-on{background:var(--warn-soft);color:var(--warn)}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(76px + env(safe-area-inset-bottom));z-index:70;display:flex;align-items:center;gap:.6rem;width:min(520px,calc(100% - 32px));padding:.6rem .6rem .6rem 1rem;background:var(--text);color:var(--bg);border-radius:14px;box-shadow:0 10px 30px #00000040;animation:up .2s}.toast-action{border:0;background:transparent;color:var(--accent-soft);font-weight:700;min-height:40px;padding:0 .75rem;border-radius:10px;cursor:pointer}.toast-action:hover{background:#ffffff1a}@media (min-width: 900px){.toast{bottom:1.5rem}}.reason-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}@media (max-width: 480px){.reason-grid{grid-template-columns:repeat(2,1fr)}}.reason{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;min-height:76px;border:1px solid var(--border);border-radius:14px;background:var(--surface);cursor:pointer;font-weight:600;color:var(--muted)}.reason.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.bend-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.bend-list li{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.5rem .75rem;background:var(--surface);border:1px solid var(--border);border-radius:12px}.bend-list strong{flex:1;min-width:10rem}.chooser{display:flex;flex-direction:column;gap:.4rem}.chooser-row{display:grid;grid-template-columns:4rem repeat(var(--slots),minmax(0,1fr));gap:.4rem;align-items:stretch}.chooser-day{align-self:center}.chooser-cell{display:flex;align-items:center;gap:.3rem;min-height:44px;padding:.3rem .5rem;border:1px dashed var(--border);border-radius:10px;background:var(--surface);cursor:pointer;font-size:.8rem;text-align:left;overflow:hidden}.chooser-cell span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chooser-cell:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.chooser-cell.filled{border-style:solid;background:var(--surface-2);color:var(--muted)}.chooser-cell:disabled{cursor:not-allowed;opacity:.6}.board-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.board-list li{display:flex;align-items:center;gap:.6rem;padding:.4rem;border:1px solid var(--border);border-radius:12px;background:var(--bg);cursor:grab}.board-list li:active{cursor:grabbing}.wg-cell.drop-on .slot{border:2px solid var(--accent);background:var(--accent-soft)}.jar{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:.5rem 0;animation:jiggle .4s}.jar-pick{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:14px}@keyframes jiggle{25%{transform:rotate(-4deg)}75%{transform:rotate(4deg)}}.starter-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.starter{width:100%;height:100%;text-align:left;display:flex;flex-direction:column;gap:.25rem;padding:.85rem 1rem;border:1px solid var(--border);border-radius:14px;background:var(--surface);cursor:pointer}.starter:hover{border-color:var(--accent)}.cook-extra{flex-direction:row;padding:.75rem 1rem}.freezer-pick summary{cursor:pointer;display:flex;align-items:center;gap:.4rem;font-weight:600;min-height:40px}.ing-edit{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.ing-edit li{padding:.4rem .5rem;border-radius:12px;border:1px solid var(--border);background:var(--surface)}.ing-edit li.review{border-color:var(--warn);background:var(--warn-soft)}.ing-edit .row{flex-wrap:wrap}.big-code{font:600 2.6rem/1 Lora,Georgia,serif;letter-spacing:.12em;padding:.75rem 1.25rem;border-radius:16px;background:var(--accent-soft);color:var(--accent);font-variant-numeric:tabular-nums}.code-input{font-size:1.3rem;letter-spacing:.25em;text-align:center}.pattern{display:flex;gap:.75rem;justify-content:center;padding:.75rem;background:var(--surface);border:1px solid var(--border);border-radius:16px}.fridge-table{width:100%;border-collapse:collapse;font-size:.9rem}.fridge-table th,.fridge-table td{border:1px solid var(--border);padding:.5rem;text-align:left;vertical-align:top}.fridge-table thead th{background:var(--surface-2)}.fridge-table tbody th{width:3.5rem}.fridge-title{font-size:1.4rem}@media print{body.printing-fridge .app,body.printing-fridge .sheet-head,body.printing-fridge .sheet-foot,body.printing-fridge .toast{display:none!important}body.printing-fridge .sheet-backdrop{position:static;background:none;display:block;animation:none}body.printing-fridge .sheet{max-height:none;box-shadow:none;border-radius:0;background:#fff;max-width:none;animation:none}body.printing-fridge .sheet-body{overflow:visible;padding:0}body.printing-fridge .fridge-table{font-size:12pt}body.printing-fridge .fridge-table th,body.printing-fridge .fridge-table td{border-color:#999;padding:10pt 8pt;height:2.6cm}body.printing-fridge .fridge-title{font-size:22pt}@page{size:landscape;margin:1.2cm}}
