@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2) format("woff2-variations");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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2) format("woff2-variations");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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-wght-normal-CnvboYUG.woff2) format("woff2-variations");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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-normal-ukD16Tqj.woff2) format("woff2-variations");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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--basil:#20613f;--basil-deep:#164a30;--leaf:#3aa66a;--leaf-soft:#e4f2e9;--amber:#f0a537;--amber-deep:#c9780f;--amber-soft:#fdf1dd;--berry:#a63b53;--berry-soft:#f7e3e8;--app-bg:#f7f5ef;--card:#ffffff;--ink:#1b271f;--muted:#6f7c72;--line:#e8e4d8;--asda:#63b32b;--aldi:#12489a;--sains:#ec6a1f;--maxw:480px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{margin:0;background:var(--basil);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink);overscroll-behavior-y:none}button,input{font-family:inherit}.app{max-width:var(--maxw);margin:0 auto;min-height:100dvh;background:var(--app-bg);display:flex;flex-direction:column;position:relative;box-shadow:0 0 40px #0000001f}.scroll{flex:1;overflow-y:auto;padding:calc(env(safe-area-inset-top) + 14px) 18px 30px;-webkit-overflow-scrolling:touch}.scroll.has-tabs{padding-bottom:100px}h1.title{font-size:23px;font-weight:800;letter-spacing:-.02em;margin:6px 0 2px;text-wrap:balance}.sub{color:var(--muted);font-size:13px;margin:0 0 14px;line-height:1.5}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:10.5px;font-weight:700;color:var(--muted);margin:18px 0 8px;display:flex;justify-content:space-between}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;cursor:pointer;font-weight:650;background:var(--basil);color:#fff;padding:15px;width:100%;border-radius:15px;font-size:16px;box-shadow:0 8px 18px -8px #20613fb3}.btn:active{transform:translateY(1px)}.btn.ghost{background:var(--leaf-soft);color:var(--basil-deep);box-shadow:none}.btn.amber{background:var(--amber);color:#3a2606;box-shadow:0 8px 18px -8px #c9780f99}.btn:disabled{opacity:.5}.row{display:flex;align-items:center;gap:12px}.between{display:flex;align-items:center;justify-content:space-between;gap:10px}.wrap{flex-wrap:wrap}.pill{font-size:11px;font-weight:700;padding:4px 9px;border-radius:999px;display:inline-flex;align-items:center;gap:5px;background:#eef0ea;color:var(--muted)}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.dot.sm{width:8px;height:8px}.store-asda{background:var(--asda)}.store-aldi{background:var(--aldi)}.store-sains{background:var(--sains)}.store-costco{background:#e31837}.price{font-weight:800;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.was{color:var(--muted);text-decoration:line-through;font-size:12px}.bar{height:8px;border-radius:99px;background:var(--line);overflow:hidden}.bar>i{display:block;height:100%;border-radius:99px;background:var(--basil)}.stepper{display:flex;align-items:center;gap:14px}.stepper button{width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:#fff;font-size:22px;font-weight:600;cursor:pointer;color:var(--basil-deep)}.stepper .val{font-size:24px;font-weight:800;min-width:34px;text-align:center}.storechip{display:flex;align-items:center;gap:10px;border:1.5px solid var(--line);border-radius:14px;padding:13px 14px;cursor:pointer;background:#fff;width:100%;text-align:left}.storechip .check{margin-left:auto;width:22px;height:22px;border-radius:50%;border:2px solid var(--line)}.storechip[aria-pressed=true] .check{background:var(--basil);border-color:var(--basil);box-shadow:inset 0 0 0 3px var(--leaf-soft)}.deal .thumb{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;font-size:22px;flex:none;background:#fdeee0}.dayrow{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);cursor:pointer;width:100%;background:none;border-left:0;border-right:0;border-top:0;text-align:left}.dayrow:last-child{border-bottom:0}.dayrow .dname{width:38px;font-weight:700;font-size:12px;color:var(--muted);text-transform:uppercase}.dayrow .emoji{font-size:24px}.chev{margin-left:auto;color:var(--muted);font-size:20px}.ing{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}.ing:last-child{border-bottom:0}.check-sq{width:22px;height:22px;border-radius:7px;border:2px solid var(--line);flex:none;cursor:pointer;display:grid;place-items:center;background:#fff}.check-sq.on{background:var(--basil);border-color:var(--basil);color:#fff}.strike.done{text-decoration:line-through;color:var(--muted)}.recipe-hero{height:150px;border-radius:18px;display:grid;place-items:center;font-size:64px;background:linear-gradient(135deg,#fbe6bd,#f3c88a)}.back{background:none;border:0;font:inherit;font-weight:650;color:var(--basil-deep);display:flex;align-items:center;gap:4px;cursor:pointer;padding:8px 0}.num{width:22px;height:22px;border-radius:11px;background:var(--leaf-soft);color:var(--basil-deep);font-weight:800;font-size:12px;display:grid;place-items:center;flex:none}.ring{width:150px;height:150px;border-radius:50%;background:conic-gradient(var(--basil) var(--pct,60%),var(--line) 0);display:grid;place-items:center;margin:2px auto 4px}.ring .inner{width:118px;height:118px;border-radius:50%;background:var(--card);display:grid;place-items:center;text-align:center}.ring .big{font-size:26px;font-weight:800;letter-spacing:-.02em}.ring .cap{font-size:11px;color:var(--muted)}.alertcard{background:var(--berry-soft);border:1px solid #eccad3}.tabbar{position:sticky;bottom:0;left:0;right:0;height:calc(76px + env(safe-area-inset-bottom));background:#fffffff0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);display:flex;padding:8px 6px calc(16px + env(safe-area-inset-bottom));z-index:35}.tab{flex:1;background:none;border:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--muted);font-size:10.5px;font-weight:600;padding-top:2px;text-decoration:none}.tab .ic{font-size:21px;line-height:1;filter:grayscale(1) opacity(.6)}.tab.active .ic{filter:none}.addrow{display:flex;gap:10px;align-items:center}.addrow input{flex:1;font-size:15px;color:var(--ink);border:0;outline:none;padding:8px 0;background:none}.addbtn{background:var(--basil);color:#fff;font-weight:700;border:0;border-radius:12px;padding:10px 16px;cursor:pointer}.totalbar{position:sticky;bottom:calc(76px + env(safe-area-inset-bottom));margin:14px -18px -30px;background:var(--basil);color:#fff;padding:12px 18px;display:flex;justify-content:space-between;align-items:center}.totalbar small{opacity:.85;font-size:11px;display:block}.totalbar b{font-size:19px}.toast{position:fixed;left:50%;bottom:110px;transform:translate(-50%,20px);background:var(--ink);color:#fff;padding:11px 16px;border-radius:12px;font-size:13px;font-weight:600;opacity:0;transition:.25s;z-index:60;pointer-events:none;max-width:88%;text-align:center}.toast.show{opacity:1;transform:translate(-50%)}.auth{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;padding:28px 22px calc(28px + env(safe-area-inset-bottom));background:radial-gradient(120% 60% at 50% 0%,#2b7a51,var(--basil));color:#fff}.auth .brand{text-align:center;margin-bottom:26px}.auth .brand .logo{font-size:52px}.auth .brand h1{font-size:26px;margin:8px 0 4px;letter-spacing:-.02em}.auth .brand p{margin:0;opacity:.85;font-size:14px}.auth .panel{background:#fff;color:var(--ink);border-radius:22px;padding:20px}.field{margin-bottom:12px}.field label{display:block;font-size:12px;font-weight:700;color:var(--muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.05em}.field input{width:100%;border:1.5px solid var(--line);border-radius:13px;padding:14px;font-size:16px;color:var(--ink);outline:none}.field input:focus{border-color:var(--basil)}.auth .switch{text-align:center;margin-top:16px;font-size:14px;color:#fff}.auth .switch button{background:none;border:0;color:#fff;font-weight:800;text-decoration:underline;cursor:pointer;font-size:14px}.err{background:var(--berry-soft);color:var(--berry);border-radius:12px;padding:11px 14px;font-size:13px;font-weight:600;margin-bottom:12px}.center-load{min-height:100dvh;display:grid;place-items:center;background:var(--basil);color:#fff;font-weight:700}.spinner{width:34px;height:34px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.linkbtn{background:none;border:0;color:var(--basil-deep);font-weight:700;cursor:pointer;font-size:13px;padding:0}.muted-note{font-size:12px;color:var(--muted);text-align:center;margin-top:12px}.card{border-radius:20px;box-shadow:0 1px 2px #1b271f0a,0 10px 30px -22px #1b271f80;border-color:#eeeade}.btn{border-radius:16px;letter-spacing:-.01em;transition:transform .06s,filter .15s}.btn:active{filter:brightness(.97)}.appbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top) + 10px) 18px 10px;background:#f7f5efd1;-webkit-backdrop-filter:saturate(1.2) blur(12px);backdrop-filter:saturate(1.2) blur(12px);border-bottom:1px solid rgba(232,228,216,.7)}.appbar .brandmini{display:flex;align-items:center;gap:8px;font-weight:800;font-size:16px;letter-spacing:-.02em}.appbar .brandmini .mk{width:26px;height:26px;border-radius:8px;background:var(--basil);display:grid;place-items:center;color:#fff;font-size:14px}.iconbtn{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:#fff;cursor:pointer;display:grid;place-items:center;font-size:15px;font-weight:800;color:var(--basil-deep)}.appbar-scroll{padding-top:12px}.segment{display:flex;gap:4px;background:#ecefe8;border-radius:14px;padding:4px}.segment button{flex:1;border:0;background:none;cursor:pointer;font-weight:700;font-size:13px;color:var(--muted);padding:9px 6px;border-radius:11px;display:flex;align-items:center;justify-content:center;gap:5px;transition:.15s}.segment button.on{background:#fff;color:var(--basil-deep);box-shadow:0 2px 6px #1b271f1f}.chips{display:flex;gap:8px;overflow-x:auto;padding:2px 0 6px;margin:0 -2px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{flex:none;border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:8px 13px;font-size:13px;font-weight:700;color:var(--ink);cursor:pointer;display:flex;align-items:center;gap:6px;white-space:nowrap}.chip.on{border-color:var(--basil);background:var(--leaf-soft);color:var(--basil-deep)}.meal{display:flex;align-items:center;gap:13px}.meal .tile{width:54px;height:54px;border-radius:15px;display:grid;place-items:center;font-size:26px;flex:none;background:linear-gradient(135deg,#fbe6bd,#f4cd92)}.meal .body{flex:1;min-width:0}.meal .body b{font-size:15px}.metarow{display:flex;gap:6px;flex-wrap:wrap;margin-top:5px}.tag{font-size:10.5px;font-weight:700;color:var(--muted);background:#f0f1ec;border-radius:6px;padding:2px 6px}.heart{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:#fff;cursor:pointer;display:grid;place-items:center;font-size:17px;flex:none}.heart.on{background:var(--berry-soft);border-color:#eccad3}.slot{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.slot:last-child{border-bottom:0}.slot .dn{width:42px;font-weight:800;font-size:12px;color:var(--muted);text-transform:uppercase}.slot .emoji{font-size:22px}.slot .fill{flex:1;min-width:0}.slot .empty{flex:1;color:var(--muted);font-weight:600}.slotbtn{border:1px dashed var(--line);background:#fbfaf6;border-radius:12px;padding:11px;width:100%;color:var(--basil-deep);font-weight:700;cursor:pointer;text-align:left}.iconmini{background:none;border:0;cursor:pointer;color:var(--muted);font-size:16px;padding:4px}.tab .ic{padding:3px 14px;border-radius:999px;transition:background .15s}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#141e1873;z-index:50;display:flex;align-items:flex-end;animation:fade .2s}.sheet{background:var(--app-bg);width:100%;max-width:var(--maxw);margin:0 auto;border-radius:22px 22px 0 0;max-height:86vh;overflow-y:auto;padding:8px 18px calc(24px + env(safe-area-inset-bottom));animation:rise .25s}.sheet .grabber{width:40px;height:4px;border-radius:2px;background:var(--line);margin:8px auto 6px}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(30px)}}.picker-row{display:flex;gap:10px;margin-top:10px}.picker-row .btn{font-size:14px;padding:12px}.share-url{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px;background:#f0f1ec;border:1px solid var(--line);border-radius:10px;padding:10px 12px;word-break:break-all;color:var(--ink)}:root{--font-display:"Bricolage Grotesque Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body:-apple-system, BlinkMacSystemFont, "Segoe UI Variable Text", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--basil:#1c6a44;--basil-deep:#0f4a2f;--leaf:#37a869;--leaf-soft:#e6f3ec;--amber:#efa738;--amber-deep:#b56f10;--amber-soft:#fdf0d9;--app-bg:#f6f4ee;--card:#ffffff;--ink:#182219;--muted:#6b7970;--line:#eceadf;--shadow-sm:0 1px 2px rgba(20,35,25,.05);--shadow-md:0 4px 14px -6px rgba(20,35,25,.14), 0 1px 2px rgba(20,35,25,.05)}body{font-family:var(--font-body);letter-spacing:-.005em;color:var(--ink);background:radial-gradient(120% 55% at 50% -8%,#eaf3ec,var(--app-bg) 62%)}.app{background:transparent;box-shadow:0 0 60px #0f2d1e1a}.scroll{animation:pageIn .28s cubic-bezier(.2,.7,.3,1)}@keyframes pageIn{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){.scroll{animation:none}}h1.title,.auth .brand h1,.sheet .title{font-family:var(--font-display);font-weight:800;letter-spacing:-.03em;font-size:26px;line-height:1.08}.ring .big,.totalbar b,.price{font-family:var(--font-display)}.eyebrow{letter-spacing:.14em;font-size:10px;color:var(--muted)}.card{border:1px solid rgba(20,35,25,.05);border-radius:22px;box-shadow:var(--shadow-md);padding:17px}.card+.card{margin-top:12px}.appbar{background:linear-gradient(var(--app-bg),rgba(246,244,238,.75));-webkit-backdrop-filter:saturate(1.3) blur(14px);backdrop-filter:saturate(1.3) blur(14px);border-bottom:1px solid rgba(20,35,25,.06)}.appbar .brandmini{font-family:var(--font-display);font-weight:800;font-size:17px;letter-spacing:-.02em}.appbar .brandmini .mk{background:linear-gradient(145deg,var(--leaf),var(--basil));box-shadow:0 4px 10px -4px #1c6a4499;border-radius:9px}.iconbtn{box-shadow:var(--shadow-sm);font-family:var(--font-display);background:linear-gradient(180deg,#fff,#f7f5ef)}.btn{border-radius:15px;font-weight:700;letter-spacing:-.01em;box-shadow:0 10px 20px -12px #1c6a44bf;transition:transform .08s,box-shadow .15s,filter .15s}.btn:active{transform:translateY(1px) scale(.995)}.btn.ghost{background:var(--leaf-soft);color:var(--basil-deep);box-shadow:none;border:1px solid rgba(28,106,68,.1)}.btn.amber{background:linear-gradient(180deg,#f4b24e,var(--amber));color:#3a2606;box-shadow:0 10px 20px -12px #b56f10b3}.btn:not(.ghost):not(.amber){background:linear-gradient(180deg,#238a56,var(--basil))}.segment{background:#e9ede6;border-radius:16px;padding:5px;gap:4px;box-shadow:inset 0 1px 2px #1423190d}.segment button{border-radius:12px;font-weight:700;font-size:13px;color:var(--muted)}.segment button.on{background:#fff;color:var(--basil-deep);box-shadow:0 2px 8px #14231924}.segment.tight{overflow-x:auto;scrollbar-width:none}.segment.tight::-webkit-scrollbar{display:none}.segment.tight button{flex:1 1 0;min-width:0;padding-left:6px;padding-right:6px;font-size:12.5px;gap:3px}.chip{border:1px solid var(--line);box-shadow:var(--shadow-sm);font-weight:700;border-radius:999px}.chip.on{border-color:transparent;background:var(--basil);color:#fff;box-shadow:0 6px 14px -8px #1c6a44b3}.pill{border-radius:999px;font-weight:700}.meal .tile{border-radius:16px;box-shadow:inset 0 -8px 16px -12px #00000040}.deal .thumb{border-radius:14px}.tag{background:#f1f2ec;border-radius:7px;font-weight:700;color:#5d6a61}.ring{background:conic-gradient(var(--basil) var(--pct,60%),#e7e4d8 0);box-shadow:inset 0 0 0 1px #1423190a}.ring .inner{box-shadow:0 6px 18px -12px #14231980}.ring .big{letter-spacing:-.03em}.tabbar{background:#ffffffe6;-webkit-backdrop-filter:saturate(1.3) blur(16px);backdrop-filter:saturate(1.3) blur(16px);border-top:1px solid rgba(20,35,25,.06)}.tab{font-weight:700}.tab .ic{padding:4px 15px;border-radius:999px}input{font-family:var(--font-body)}.auth{background:radial-gradient(130% 70% at 50% -10%,#2f855a,var(--basil) 60%,var(--basil-deep))}.auth .brand h1{font-size:30px}.auth .panel{border-radius:24px;box-shadow:0 30px 60px -30px #0009}.storechip{border-radius:15px;box-shadow:var(--shadow-sm)}.recipe-hero{border-radius:22px;box-shadow:var(--shadow-md)}.sheet{border-radius:26px 26px 0 0;box-shadow:0 -20px 50px -20px #0006}.scroll{padding-left:20px;padding-right:20px}h1.title{font-size:27px;line-height:1.06}.sub{font-size:13.5px;line-height:1.55}.tabbar{padding-top:9px}.tab{gap:5px;font-size:10px;color:#94a29a;letter-spacing:-.01em}.tab .ic{display:grid;place-items:center;padding:5px 17px;border-radius:999px;transition:background .16s,color .16s;color:inherit}.tab .ic svg{display:block}.appbar{padding-top:calc(env(safe-area-inset-top) + 12px);padding-bottom:12px}.appbar .brandmini{font-size:17px;gap:9px}.appbar .brandmini .mk{width:28px;height:28px;font-size:15px}.iconbtn{width:40px;height:40px;font-size:16px}.eyebrow{margin-top:24px;margin-bottom:10px;align-items:center}.deal .thumb{width:48px;height:48px;font-size:23px}.meal .tile{width:56px;height:56px}:root{--ring-track:#e7e4d8}.big{font-family:var(--font-display);letter-spacing:-.03em}.cap{font-size:11px;color:var(--muted);margin-top:2px}.live-badge{display:inline-flex;align-items:center;gap:5px;color:#d64545;font-weight:800;letter-spacing:.06em}.live-badge:before{content:"";width:7px;height:7px;border-radius:50%;background:#d64545;box-shadow:0 0 #d6454580;animation:pulse 1.8s infinite}@keyframes pulse{0%{box-shadow:0 0 #d6454580}70%{box-shadow:0 0 0 6px #d6454500}to{box-shadow:0 0 #d6454500}}:root{--basil:#0f5c3a;--basil-deep:#0a4128;--leaf:#1c8a58;--leaf-soft:#eef2ef;--amber:#b7791f;--amber-deep:#8a5a12;--amber-soft:#f4efe4;--app-bg:#f7f6f2;--card:#ffffff;--ink:#17140f;--muted:#7c776d;--line:#e9e6dd;--tile:#f2f1ec;--ring-track:#eae7dd;--hair:#ece9e0;--shadow-sm:0 1px 2px rgba(23,20,15,.04);--shadow-md:0 1px 3px rgba(23,20,15,.05), 0 10px 30px -20px rgba(23,20,15,.38)}@media (prefers-color-scheme: dark){:root{--app-bg:#121210;--card:#1b1a17;--ink:#f1eee7;--muted:#9d988d;--line:#2b2925;--tile:#26241f;--leaf-soft:#16241d;--amber-soft:#271f14;--ring-track:#2b2925;--hair:#26241f;--shadow-md:0 1px 3px rgba(0,0,0,.5), 0 12px 34px -20px rgba(0,0,0,.8);--leaf:#2ea36a}}:root[data-theme=light]{--app-bg:#f7f6f2;--card:#fff;--ink:#17140f;--muted:#7c776d;--line:#e9e6dd;--tile:#f2f1ec;--leaf:#1c8a58;--leaf-soft:#eef2ef;--amber-soft:#f4efe4;--ring-track:#eae7dd;--hair:#ece9e0}:root[data-theme=dark]{--app-bg:#121210;--card:#1b1a17;--ink:#f1eee7;--muted:#9d988d;--line:#2b2925;--tile:#26241f;--leaf:#2ea36a;--leaf-soft:#16241d;--amber-soft:#271f14;--ring-track:#2b2925;--hair:#26241f}body{background:var(--app-bg)}h1.title,.auth .brand h1,.sheet .title{font-weight:800;letter-spacing:-.035em}h1.title{font-size:28px}.eyebrow{letter-spacing:.13em;text-transform:uppercase;font-size:10px;color:var(--muted);font-weight:700}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-md);padding:17px}.btn{border-radius:13px;box-shadow:none;font-weight:700}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn.amber{background:var(--ink);color:var(--app-bg);box-shadow:none}.btn:active{transform:translateY(1px);filter:none}.meal .tile,.deal .thumb{background:var(--tile);box-shadow:none;border:1px solid var(--hair)}.recipe-hero{background:var(--tile);border:1px solid var(--hair);box-shadow:none}.pill{background:var(--tile);color:var(--muted);font-weight:700;border-radius:8px}.pill.best{background:var(--leaf-soft);color:var(--basil)}.chip{background:var(--card);border:1px solid var(--line);color:var(--ink);box-shadow:none;border-radius:10px}.chip.on{background:var(--ink);color:var(--app-bg);border-color:var(--ink);box-shadow:none}.tag{background:var(--tile);color:var(--muted);border-radius:6px}.segment{background:var(--tile);border-radius:12px;box-shadow:none}.segment button{border-radius:9px}.appbar{background:color-mix(in srgb,var(--app-bg) 82%,transparent);border-bottom:1px solid var(--line)}.appbar .brandmini .mk{background:var(--basil);box-shadow:none;border-radius:8px}.iconbtn{background:var(--card);border:1px solid var(--line);box-shadow:none;color:var(--ink)}.tabbar{background:color-mix(in srgb,var(--card) 92%,transparent);border-top:1px solid var(--line)}.tab{color:var(--muted)}.storechip{background:var(--card);border:1px solid var(--line);border-radius:13px;box-shadow:none}.field input,.addrow input{background:var(--card);color:var(--ink)}.field input{border:1px solid var(--line);border-radius:12px}.ing,.dayrow,.slot{border-color:var(--line)}.check-sq.on{background:var(--basil);border-color:var(--basil)}.auth{background:linear-gradient(160deg,#10402a,#0a2c1d 70%,#071f14)}.auth .panel{background:var(--card);border-radius:20px}.auth .brand h1{letter-spacing:-.03em}.big{font-weight:800}.was{color:var(--muted)}:root{--font-display:"Geist Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body:"Geist Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}body{font-family:var(--font-body);-webkit-font-smoothing:antialiased;letter-spacing:-.006em}h1.title,.auth .brand h1,.sheet .title,.big{font-family:var(--font-display);font-weight:700;letter-spacing:-.03em}h1.title{font-size:27px}.meal .tile,.deal .thumb{color:var(--basil);display:grid;place-items:center;background:var(--tile);border:1px solid var(--hair)}.recipe-hero{color:var(--basil);display:grid;place-items:center}@media (prefers-color-scheme: dark){.meal .tile,.deal .thumb,.recipe-hero{color:var(--leaf)}}:root[data-theme=dark] .meal .tile,:root[data-theme=dark] .deal .thumb,:root[data-theme=dark] .recipe-hero{color:var(--leaf)}.food-inline{color:var(--basil);display:inline-grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--tile);border:1px solid var(--hair);flex:none}:root[data-theme=dark] .food-inline{color:var(--leaf)}@media (prefers-color-scheme: dark){.food-inline{color:var(--leaf)}}:root{--app-bg:#faf9f6;--card:#ffffff;--ink:#15181c;--muted:#79808a;--line:#ecebe5;--tile:#f4f3ee;--basil:#12a05c;--basil-deep:#0c7a45;--leaf:#12a05c;--leaf-soft:#e8f6ef;--amber:#c98a1a;--amber-deep:#946611;--amber-soft:#f7efe0;--berry:#c2415a;--berry-soft:#fbe9ed;--ring-track:#eceae4;--hair:#f0efe9;--shadow-sm:0 1px 2px rgba(20,24,30,.05);--shadow-md:0 1px 2px rgba(20,24,30,.05), 0 12px 26px -20px rgba(20,24,30,.35)}@media (prefers-color-scheme: dark){:root{--app-bg:#0e0f11;--card:#181a1d;--ink:#f1f2f4;--muted:#9aa0a8;--line:#282c31;--tile:#22262b;--basil:#26bd7c;--basil-deep:#26bd7c;--leaf:#26bd7c;--leaf-soft:#13291e;--amber:#e0a641;--amber-deep:#e0a641;--amber-soft:#2b2214;--berry:#e2708a;--berry-soft:#2a1620;--ring-track:#282c31;--hair:#22262b;--shadow-md:0 1px 2px rgba(0,0,0,.4), 0 16px 34px -22px rgba(0,0,0,.85)}}:root[data-theme=light]{--app-bg:#faf9f6;--card:#fff;--ink:#15181c;--muted:#79808a;--line:#ecebe5;--tile:#f4f3ee;--basil:#12a05c;--basil-deep:#0c7a45;--leaf:#12a05c;--leaf-soft:#e8f6ef;--amber:#c98a1a;--amber-deep:#946611;--amber-soft:#f7efe0;--berry:#c2415a;--berry-soft:#fbe9ed;--ring-track:#eceae4;--hair:#f0efe9}:root[data-theme=dark]{--app-bg:#0e0f11;--card:#181a1d;--ink:#f1f2f4;--muted:#9aa0a8;--line:#282c31;--tile:#22262b;--basil:#26bd7c;--basil-deep:#26bd7c;--leaf:#26bd7c;--leaf-soft:#13291e;--amber:#e0a641;--amber-deep:#e0a641;--amber-soft:#2b2214;--berry:#e2708a;--berry-soft:#2a1620;--ring-track:#282c31;--hair:#22262b}.scroll{padding:calc(env(safe-area-inset-top) + 12px) 20px 40px}.scroll.has-tabs{padding-bottom:104px}h1.title{font-size:26px;letter-spacing:-.03em;margin:4px 0 2px}.sub{font-size:14px;color:var(--muted)}.eyebrow{margin-top:26px;margin-bottom:11px;letter-spacing:.1em;font-size:10.5px;color:var(--muted)}.card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:var(--shadow-md)}.card+.card{margin-top:11px}.big{font-family:var(--font-display);font-weight:700;letter-spacing:-.04em}.cap{font-size:12px;color:var(--muted);font-weight:500;letter-spacing:0;text-transform:none}.btn{border-radius:14px;font-weight:650;font-size:15.5px;padding:15px;box-shadow:none}.btn:not(.ghost):not(.amber){background:var(--basil);color:#fff}.btn.ghost{background:var(--tile);color:var(--ink);border:0}.btn.amber{background:var(--ink);color:var(--app-bg)}.btn:active{transform:translateY(1px);filter:brightness(.98)}.addbtn{background:var(--basil);border-radius:11px}.pill{background:var(--tile);color:var(--muted);border-radius:8px;font-weight:650;padding:5px 10px}.pill.best{background:var(--leaf-soft);color:var(--basil-deep)}.pill.save{background:var(--amber-soft);color:var(--amber-deep)}:root[data-theme=dark] .pill.best{color:var(--basil)}:root[data-theme=dark] .pill.save{color:var(--amber)}.bar{height:10px;background:var(--ring-track);border-radius:99px}.bar>i{border-radius:99px;background:var(--basil)}.chip{background:var(--card);border:1px solid var(--line);border-radius:10px;font-weight:650;box-shadow:none}.chip.on{background:var(--ink);color:var(--app-bg);border-color:var(--ink)}.segment{background:var(--tile);border-radius:13px;padding:4px;box-shadow:none}.segment button{border-radius:10px;font-weight:650;font-size:13px;color:var(--muted);padding:9px 4px}.appbar{background:color-mix(in srgb,var(--app-bg) 84%,transparent);border-bottom:1px solid var(--line)}.appbar .brandmini .mk{background:var(--basil);border-radius:9px}.tabbar{background:color-mix(in srgb,var(--card) 90%,transparent);border-top:1px solid var(--line)}.tab.active{color:var(--basil)}.tab.active .ic{background:var(--leaf-soft)}.meal .tile,.deal .thumb,.recipe-hero,.food-inline{background:var(--tile);border:1px solid var(--hair);color:var(--basil)}.storechip[aria-pressed=true]{border-color:var(--basil);background:var(--leaf-soft)}.share-url{background:var(--tile);border:1px solid var(--line);color:var(--ink)}.totalbar{background:var(--basil)}.auth{background:linear-gradient(165deg,#0f7a48,#0b5c37 70%,#08492c)}:root{--font-display:"Fraunces Variable", Georgia, "Times New Roman", serif;--font-body:"Geist Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--paper:#f1efe9;--card:#ffffff;--ink:#1b1a16;--muted:#645e52;--line:#e4e0d6;--tile:#efece4;--hair:#eae6dd;--pine:#0b5d3b;--pine-deep:#084a2f;--pine-soft:#e6ede8;--marigold:#d98a1f;--marigold-deep:#a9660f;--marigold-soft:#f6ecd7;--berry:#b1433d;--berry-soft:#f6e6e2;--ring-track:#e4e0d6;--app-bg:var(--paper);--basil:var(--pine);--basil-deep:var(--pine-deep);--leaf:var(--pine);--leaf-soft:var(--pine-soft);--amber:var(--marigold);--amber-deep:var(--marigold-deep);--amber-soft:var(--marigold-soft);--shadow-sm:0 1px 2px rgba(27,26,22,.05);--shadow-md:0 1px 2px rgba(27,26,22,.04), 0 10px 26px -18px rgba(27,26,22,.32)}:root[data-theme=light]{--paper:#f1efe9;--card:#fff;--ink:#1b1a16;--muted:#645e52;--line:#e4e0d6;--tile:#efece4;--hair:#eae6dd;--pine:#0b5d3b;--pine-deep:#084a2f;--pine-soft:#e6ede8;--marigold:#d98a1f;--marigold-deep:#a9660f;--marigold-soft:#f6ecd7;--berry:#b1433d;--berry-soft:#f6e6e2;--ring-track:#e4e0d6;--app-bg:var(--paper);--basil:var(--pine);--basil-deep:var(--pine-deep);--leaf:var(--pine);--leaf-soft:var(--pine-soft);--amber:var(--marigold);--amber-deep:var(--marigold-deep);--amber-soft:var(--marigold-soft)}:root[data-theme=dark],html:root[data-theme=dark]{--paper:#14140f;--card:#1d1c16;--ink:#f0eee6;--muted:#a49d8d;--line:#2b2920;--tile:#26241c;--hair:#26241c;--pine:#3fae7c;--pine-deep:#3fae7c;--pine-soft:#16261d;--marigold:#e0a63f;--marigold-deep:#e0a63f;--marigold-soft:#2a2113;--berry:#dd7a72;--berry-soft:#2a1714;--ring-track:#2b2920;--app-bg:var(--paper);--basil:var(--pine);--basil-deep:var(--pine-deep);--leaf:var(--pine);--leaf-soft:var(--pine-soft);--amber:var(--marigold);--amber-deep:var(--marigold-deep);--amber-soft:var(--marigold-soft)}@media (prefers-color-scheme: dark){:root{--paper:#14140f;--card:#1d1c16;--ink:#f0eee6;--muted:#a49d8d;--line:#2b2920;--tile:#26241c;--hair:#26241c;--pine:#3fae7c;--pine-deep:#3fae7c;--pine-soft:#16261d;--marigold:#e0a63f;--marigold-deep:#e0a63f;--marigold-soft:#2a2113;--berry:#dd7a72;--berry-soft:#2a1714;--ring-track:#2b2920}}body{background:var(--paper);color:var(--ink);font-family:var(--font-body)}h1.title,.auth .brand h1,.sheet .title{font-family:var(--font-display);font-weight:600;letter-spacing:-.02em;font-optical-sizing:auto;line-height:1.04}h1.title{font-size:30px}.big{font-family:var(--font-display);font-weight:600;letter-spacing:-.025em;font-optical-sizing:auto;font-variant-numeric:tabular-nums}.price{font-family:var(--font-body);font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.eyebrow{text-transform:none;letter-spacing:0;font-size:12.5px;font-weight:600;color:var(--muted);margin:28px 0 12px}.card{background:var(--card);border:0;border-radius:16px;box-shadow:var(--shadow-md);padding:18px}.card+.card{margin-top:10px}.sub{color:var(--muted)}.btn{border-radius:13px;font-weight:650;box-shadow:none;font-size:15.5px}.btn:not(.ghost):not(.amber){background:var(--pine);color:#fbfaf7}.btn.ghost{background:transparent;color:var(--pine-deep);border:1px solid var(--line)}.btn.amber{background:var(--marigold);color:#241603}:root[data-theme=dark] .btn.amber{color:#1a1206}.pill{background:var(--tile);color:var(--muted);border-radius:7px;font-weight:600}.pill.best{background:var(--pine-soft);color:var(--pine-deep)}:root[data-theme=dark] .pill.best{color:var(--pine)}.pill.save{background:var(--marigold-soft);color:var(--marigold-deep)}:root[data-theme=dark] .pill.save{color:var(--marigold)}.chip{background:transparent;border:1px solid var(--line);color:var(--ink);border-radius:9px;font-weight:600}.chip.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.tag{background:var(--tile);color:var(--muted)}.segment{background:var(--tile);border-radius:12px;padding:4px}.segment button{border-radius:9px;color:var(--muted);font-weight:600}.segment button.on{background:var(--card);color:var(--ink);box-shadow:var(--shadow-sm)}.bar{height:9px;background:var(--ring-track);border-radius:99px}.bar>i{background:var(--pine);border-radius:99px}.appbar{background:color-mix(in srgb,var(--paper) 86%,transparent);border-bottom:1px solid var(--line)}.appbar .brandmini{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em}.appbar .brandmini .mk{background:var(--pine);border-radius:8px}.iconbtn{background:var(--card);border:1px solid var(--line);color:var(--ink)}.tabbar{background:color-mix(in srgb,var(--card) 88%,transparent);border-top:1px solid var(--line)}.tab.active{color:var(--pine)}.tab.active .ic{background:var(--pine-soft)}.meal .tile,.deal .thumb,.recipe-hero,.food-inline{background:var(--tile);border:1px solid var(--hair);color:var(--pine)}.storechip{background:var(--card);border:1px solid var(--line)}.storechip[aria-pressed=true]{border-color:var(--pine);background:var(--pine-soft)}.check-sq{background:var(--card);border-color:var(--line)}.check-sq.on{background:var(--pine);border-color:var(--pine)}.field input,.addrow input,input[type=date],input[type=number]{background:var(--card);color:var(--ink)}.totalbar{background:var(--pine)}.recipe-hero{font-size:64px}.num{background:var(--pine-soft);color:var(--pine-deep)}.auth{background:linear-gradient(168deg,#0c5d3b,#08462d 68%,#063venir 100%);background:linear-gradient(168deg,#0c5d3b,#08462d 70%,#05361f)}.live-badge{color:var(--berry)}.live-badge:before{background:var(--berry)}@media (prefers-reduced-motion:no-preference){.scroll>*{animation:rise .4s cubic-bezier(.22,.8,.28,1) both}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}.auth .brandmark{width:58px;height:58px;margin:0 auto;border-radius:16px;background:#ffffff24;border:1px solid rgba(255,255,255,.28);display:grid;place-items:center;font-family:var(--font-display);font-weight:600;font-size:30px;color:#fff}
