:root{--nav-h:4.25rem;--bg:#f6f1e7;--surface:#fffdf8;--ink:#1d2420;--muted:#6b7068;--line:#e4ddcf;--brand:#1f3a2e;--brand-ink:#f6f1e7;--accent:#e07a3f;--danger:#b4382c;--radius:14px;--shadow:0 1px 2px #0000000d, 0 6px 20px #0000000f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ink);background:var(--bg);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px}@media (prefers-color-scheme:dark){:root{--bg:#141815;--surface:#1d221e;--ink:#ece7dc;--muted:#9aa096;--line:#2d342f;--brand:#9fd3b4;--brand-ink:#10241a;--accent:#f0955e;--danger:#f07b6e;--shadow:0 1px 2px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{background:var(--bg);-webkit-tap-highlight-color:transparent;margin:0}button,input,select{font:inherit;color:inherit}h1,h2{letter-spacing:-.01em;margin:0}.muted{color:var(--muted);font-weight:400}.error{color:var(--danger);margin:0}button{cursor:pointer;background:0 0;border:0;border-radius:999px;padding:.6rem 1.1rem}button:disabled{opacity:.6;cursor:default}.primary{background:var(--brand);color:var(--brand-ink);font-weight:600}.ghost{border:1px solid var(--line)}.danger{color:var(--danger);border:1px solid}.small{padding:.35rem .8rem;font-size:.875rem}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}label{gap:.35rem;font-size:.875rem;font-weight:600;display:grid}input:not([type=checkbox],[type=radio]),select{border:1px solid var(--line);background:var(--surface);border-radius:10px;width:100%;padding:.7rem .85rem;font-size:1rem;font-weight:400}form{gap:1rem;display:grid}.login{place-items:center;min-height:100dvh;padding:1.5rem;display:grid}.login-card{background:var(--surface);width:min(100%,380px);box-shadow:var(--shadow);border-radius:20px;gap:.5rem;padding:2rem 1.5rem;display:grid}.login-card h1{margin-top:.5rem;font-size:1.6rem}.login-card form{margin-top:1rem}.app{max-width:640px;min-height:100dvh;padding-bottom:calc(6rem + var(--nav-h) + env(safe-area-inset-bottom));margin:0 auto}.topbar{padding:calc(1rem + env(safe-area-inset-top)) 1rem .5rem;justify-content:space-between;align-items:center;display:flex}.topbar h1{font-size:1.75rem}.search{padding:.25rem 1rem .75rem}.tabs{background:var(--line);z-index:1;border-radius:999px;grid-template-columns:repeat(3,1fr);gap:.25rem;margin:0 1rem .5rem;padding:.25rem;display:grid;position:sticky;top:.5rem}.tab{color:var(--muted);padding:.55rem .5rem;font-weight:600}.tab.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.count{color:var(--muted);font-size:.8rem;font-weight:400}.list ul{gap:.5rem;margin:0;padding:0 1rem;list-style:none;display:grid}.empty{text-align:center;color:var(--muted);padding:3rem 1.5rem}.row{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:.5rem;padding:.35rem .5rem .35rem 0;display:flex}.row-main{text-align:left;border-radius:var(--radius);flex:1;gap:.15rem;min-width:0;padding:.6rem .9rem;display:grid}.row-name{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:.4rem;font-weight:600;display:flex;overflow:hidden}.row-meta{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.row-meta:empty{display:none}.badge{color:var(--accent);border:1px solid;border-radius:999px;padding:0 .4rem;font-size:.7rem;font-weight:600}.stepper{border:1px solid var(--line);border-radius:999px;flex-shrink:0;align-items:center;display:flex}.stepper button{width:2.5rem;height:2.5rem;padding:0;font-size:1.25rem;line-height:1}.qty{text-align:center;font-variant-numeric:tabular-nums;min-width:3.5rem;font-size:.9rem;font-weight:600}.done{color:var(--muted);flex-shrink:0}.fab{right:max(1.25rem,50vw - 320px + 1.25rem);bottom:calc(1.25rem + var(--nav-h) + env(safe-area-inset-bottom));background:var(--accent);color:#fff;width:3.75rem;height:3.75rem;padding:0;font-size:2rem;line-height:1;position:fixed;box-shadow:0 6px 20px #0003}.sheet{background:var(--surface);width:100%;max-width:560px;color:var(--ink);overscroll-behavior:contain;border:0;border-radius:20px 20px 0 0;max-height:92dvh;margin:auto auto 0;padding:0;overflow-y:auto}@media (width>=600px){.sheet{border-radius:20px;margin:auto}}.sheet::backdrop{background:#0006}.sheet form{gap:.85rem;padding:1.25rem 1.25rem 0}.segmented{border:0;grid-template-columns:repeat(3,1fr);gap:.4rem;margin:0;padding:0;display:grid}.segmented legend{margin-bottom:.35rem;padding:0;font-size:.875rem;font-weight:600}.seg{text-align:center;border:1px solid var(--line);cursor:pointer;border-radius:10px;padding:.6rem;font-weight:600;display:block}.seg.active{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}.seg input{opacity:0;pointer-events:none;position:absolute}.row2{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.check{align-items:center;gap:.6rem;font-weight:400;display:flex}.check input{width:1.2rem;height:1.2rem;accent-color:var(--brand)}.actions{align-items:center;gap:.5rem;display:flex}.sheet .actions{background:var(--surface);padding:.75rem 1.25rem calc(.75rem + env(safe-area-inset-bottom));border-top:1px solid var(--line);margin:0 -1.25rem;position:sticky;bottom:0}.spacer{flex:1}.toast{max-width:420px;left:1rem;right:5.5rem;bottom:calc(1.5rem + var(--nav-h) + env(safe-area-inset-bottom));background:var(--ink);color:var(--bg);border-radius:12px;justify-content:space-between;align-items:center;gap:.75rem;padding:.7rem .9rem;display:flex;position:fixed;box-shadow:0 6px 20px #00000040}.toast button{color:var(--accent);padding:.25rem .5rem;font-weight:700}.screen{max-width:640px;min-height:100dvh;padding-bottom:calc(2rem + var(--nav-h) + env(safe-area-inset-bottom));margin:0 auto}.small-text{font-size:.85rem}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);margin:0 1rem .75rem}textarea{border:1px solid var(--line);background:var(--surface);width:100%;font:inherit;color:inherit;resize:vertical;border-radius:10px;padding:.7rem .85rem;font-size:1rem}label>span:first-child,.field-label{font-size:.875rem;font-weight:600}.bottom-nav{z-index:5;height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--line);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav button{color:var(--muted);border-radius:0;align-content:center;place-items:center;gap:.15rem;padding:.4rem 0;font-size:.75rem;font-weight:600;display:grid}.bottom-nav button.active{color:var(--brand)}.nav-icon{filter:grayscale();opacity:.7;font-size:1.3rem;line-height:1}.bottom-nav .active .nav-icon{filter:none;opacity:1}.suggest-form,.settings-form{gap:.85rem;padding:1rem;display:grid}.settings-form h2{font-size:1.1rem}.settings-form p{margin:-.5rem 0 0}.chips{flex-wrap:wrap;gap:.4rem;display:flex}.chip{border:1px solid var(--line);background:var(--bg);padding:.4rem .75rem;font-size:.85rem}label.inline{align-items:center;gap:.5rem;display:flex}label.inline select{width:auto;padding:.45rem .6rem}.results{display:grid}.recipe-head{text-align:left;border-radius:var(--radius);gap:.3rem;width:100%;padding:1rem 2.5rem 1rem 1rem;display:grid;position:relative}.recipe-head h3{margin:0;font-size:1.1rem;line-height:1.3}.eyebrow{color:var(--accent);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:700}.recipe-meta{color:var(--muted);font-size:.8rem}.recipe-summary{margin:.15rem 0 0;font-size:.9rem;line-height:1.45}.stock{background:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--accent);border-radius:999px;justify-self:start;margin-top:.25rem;padding:.2rem .6rem;font-size:.8rem;font-weight:600}.stock.ok{background:color-mix(in srgb, var(--brand) 14%, transparent);color:var(--brand)}.chevron{color:var(--muted);position:absolute;top:1rem;right:1rem}.recipe-body{border-top:1px solid var(--line);padding:0 1rem 1rem}.recipe-body h4{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:1rem 0 .5rem;font-size:.8rem}.ingredients{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.ing{align-items:baseline;gap:.5rem;font-size:.95rem;display:flex}.ing-icon{text-align:center;flex-shrink:0;width:1.2rem;font-weight:700}.ing.have .ing-icon{color:var(--brand)}.ing.staple .ing-icon,.ing.staple .ing-name{color:var(--muted)}.ing.missing .ing-icon,.ing.missing .ing-name{color:var(--accent)}.ing-amount{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:.85rem}.steps{gap:.5rem;margin:0;padding-left:1.3rem;line-height:1.5;display:grid}.recipe-actions{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.field{gap:.35rem;display:grid}.tags{border:1px solid var(--line);background:var(--surface);border-radius:10px;flex-wrap:wrap;gap:.35rem;padding:.4rem;display:flex}.tags input:not([type=checkbox],[type=radio]){background:0 0;border:0;flex:1;min-width:8rem;padding:.35rem .4rem}.tag{background:var(--bg);border-radius:999px;align-items:center;gap:.15rem;padding:.2rem .25rem .2rem .65rem;font-size:.875rem;display:inline-flex}.tag button{color:var(--muted);padding:0 .4rem;font-size:1rem;line-height:1}.steps.detailed{gap:.8rem}.detail-cta{flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.9rem;display:flex}.tips{gap:.4rem;margin:0;padding-left:1.2rem;font-size:.95rem;line-height:1.5;display:grid}.suggest-form .actions{flex-wrap:wrap}.tabs.two{grid-template-columns:repeat(2,1fr)}.section-title{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:1.25rem 1rem .6rem;font-size:.8rem}.empty.compact{padding:.75rem 1.5rem 1rem}.hint{margin:0}.center{text-align:center;padding:0 1rem}.recipe-actions{flex-wrap:wrap}details.cooked{padding:.75rem 1rem}details.cooked summary{cursor:pointer;color:var(--muted);font-weight:600}details.cooked ul{gap:.4rem;margin:.6rem 0 0;padding:0;list-style:none;display:grid}details.cooked li{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.shop-add{gap:.5rem;margin-top:.75rem;padding:.6rem;display:flex}.shop-add input:not(.amount){flex:1;min-width:0}.shop-add input.amount{flex:none;width:6.5rem}.shop-list{gap:.5rem;margin:0;padding:0 1rem;list-style:none;display:grid}.shop-row{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:.5rem;padding:.45rem .5rem;display:flex}.tick{border:2px solid var(--line);color:#0000;flex:none;width:2.4rem;height:2.4rem;padding:0;font-weight:700}.tick:focus-visible{border-color:var(--brand)}@media (hover:hover){.tick:hover{border-color:var(--brand);color:var(--brand)}}.shop-main{flex:1;gap:.1rem;min-width:0;display:grid}.shop-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.shop-amount{color:var(--muted);font-weight:400}select.shop-loc{flex:none;width:auto;padding:.35rem .4rem;font-size:.85rem}.icon{flex:none;padding:.3rem .6rem}.model-pick{flex-wrap:wrap;align-items:center;gap:.35rem .75rem;display:flex}.model-pick select{width:auto;padding:.45rem .6rem}
