:root{--bg:#f4efe4;--surface:#fffdf8;--ink:#1d2420;--muted:#6b716c;--line:#e4ddcd;--brand:#1f6f4a;--brand-ink:#fff;--accent:#e08a3c;--ok:#1f6f4a;--ko:#b23a2b;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--ink);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#141815;--surface:#1d221e;--ink:#ece8de;--muted:#9aa19b;--line:#2d342f;--brand:#3fa274;--ok:#4cbb86;--ko:#e5705f}}*{box-sizing:border-box}body{background:var(--bg);margin:0}.app{flex-direction:column;max-width:640px;min-height:100dvh;margin:0 auto;display:flex}.topbar{padding:calc(env(safe-area-inset-top) + 14px) 16px 10px}.topbar h1{letter-spacing:-.01em;margin:0;font-size:1.15rem}.content{flex:1;padding:8px 16px 96px}.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px 16px}.card h2{margin:0 0 6px;font-size:1.1rem}.intro p{color:var(--muted);margin:0 0 16px;line-height:1.45}.intro strong{color:var(--ink)}button{font:inherit;cursor:pointer}button.primary{background:var(--brand);width:100%;color:var(--brand-ink);border:0;border-radius:12px;padding:14px;font-weight:600}button.primary:disabled{opacity:.6}button.ghost{color:var(--muted);background:0 0;border:0;padding:4px 8px;font-size:1.1rem}.error{color:var(--ko);margin:12px 0 0!important}.muted{color:var(--muted);margin:0}.small{margin-top:16px;font-size:.85rem}.receipt-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.total{justify-content:space-between;align-items:center;margin:14px 0 6px;font-size:1.15rem;font-weight:700;display:flex}.badge{border-radius:999px;padding:3px 9px;font-size:.75rem;font-weight:600}.total.ok .badge{background:color-mix(in srgb, var(--ok) 15%, transparent);color:var(--ok)}.total.ko .badge{background:color-mix(in srgb, var(--ko) 15%, transparent);color:var(--ko)}.lines h3,.unparsed h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:18px 0 6px;font-size:.78rem}.lines ul,.unparsed ul{margin:0;padding:0;list-style:none}.lines li{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:9px 0;font-size:.95rem;display:flex}.lines li:last-child{border-bottom:0}.lines.dim li{color:var(--muted)}.desc{overflow-wrap:anywhere;min-width:0}.qty{color:var(--accent);margin-right:6px;font-weight:600}.price{white-space:nowrap;font-variant-numeric:tabular-nums}.price s{color:var(--muted);margin-right:6px;font-size:.85em}.unparsed code{color:var(--ko);font-size:.8rem}.tabbar{background:var(--surface);border-top:1px solid var(--line);padding:10px 8px calc(env(safe-area-inset-bottom) + 10px);justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.tab{color:var(--muted);font-size:.85rem}.tab.active{color:var(--brand);font-weight:700}.tab.soon{opacity:.45}.content>.card+.card,.content>.notice+.card{margin-top:14px}.notice{background:color-mix(in srgb, var(--ok) 14%, var(--surface));color:var(--ok);border-radius:12px;margin:0 0 12px;padding:10px 14px;font-size:.92rem;font-weight:600}.note{color:var(--ink);margin:0 0 12px}.empty{text-align:center;margin:20px 0}.list-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.list-head .muted{font-size:.85rem}.list ul{margin:8px 0 0;padding:0;list-style:none}.list li+li{border-top:1px solid var(--line)}.row{width:100%;color:inherit;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;padding:11px 0;display:flex}.row-title{font-weight:600;display:block}.row-sub{margin-top:2px;font-size:.82rem;display:block}.receipt-footer{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}.receipt-footer .small{margin:0 0 12px}.button-row{gap:10px;margin-top:14px;display:flex}.button-row button{flex:1}.backup .note,.backup .error{font-size:.9rem;margin:12px 0 0!important}button.secondary,button.danger{background:0 0;border-radius:12px;width:100%;padding:12px;font-weight:600}button.secondary{border:1px solid var(--line);color:var(--ink)}button.secondary:disabled{opacity:.5}button.danger{border:1px solid color-mix(in srgb, var(--ko) 40%, transparent);color:var(--ko)}button.card.todo{text-align:left;width:100%;color:inherit;font:inherit;border-color:color-mix(in srgb, var(--accent) 55%, var(--line));background:color-mix(in srgb, var(--accent) 9%, var(--surface));justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.todo-cta{color:var(--accent);white-space:nowrap;font-weight:700}button.stacked{margin-top:10px}.view-head{justify-content:space-between;align-items:center;display:flex}.view-head h2{margin:0;font-size:1.15rem}.pending-view>.muted{margin:4px 0 14px;font-size:.92rem}.bulk{margin-bottom:14px}.pending-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.pending-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.pending .primary{margin-top:14px}.pending .error{margin:10px 0 0!important}.chips{flex-wrap:wrap;gap:8px;margin:4px 0 12px;display:flex}.chip{border:1px solid var(--line);color:var(--ink);background:0 0;border-radius:999px;padding:8px 12px;font-size:.88rem}.chip.on{background:var(--brand);border-color:var(--brand);color:var(--brand-ink);font-weight:600}.field{color:var(--muted);gap:6px;margin-bottom:12px;font-size:.85rem;display:grid}.field input,.field select{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;width:100%;padding:10px 12px;font-size:1rem}.stepper{justify-content:space-between;align-items:center;gap:12px;margin-top:4px;display:flex}.stepper-label{color:var(--muted);font-size:.9rem}.stepper-controls{align-items:center;gap:6px;display:flex}.stepper-controls button{border:1px solid var(--line);background:var(--bg);width:44px;height:44px;color:var(--ink);border-radius:12px;font-size:1.3rem;line-height:1}.stepper-controls button:disabled{opacity:.4}.stepper-controls input{text-align:center;width:72px;height:44px;font:inherit;font-variant-numeric:tabular-nums;color:var(--ink);background:var(--surface);border:1px solid var(--line);-moz-appearance:textfield;border-radius:10px;font-size:1.05rem}.stepper-controls input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.stepper-controls input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.unit{color:var(--muted);margin-left:-2px;font-size:.9rem}.hint{color:var(--muted);margin:8px 0 0;font-size:.82rem}.tabbar{align-items:center}.tab{padding:4px 6px;line-height:1.2}button.tab{font:inherit;color:var(--muted);background:0 0;border:0;font-size:.85rem}button.tab.active{color:var(--brand)}.stock-editor{padding:2px 0 14px}.lots{margin:0 0 10px;padding:0;font-size:.88rem;list-style:none}.lots li{justify-content:space-between;gap:12px;padding:4px 0;display:flex;border:0!important}.stock-editor .button-row button{margin:0}.update-banner{left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom) + 62px);background:var(--ink);max-width:616px;color:var(--bg);z-index:10;border-radius:14px;align-items:center;gap:10px;margin:0 auto;padding:10px 12px 10px 16px;font-size:.92rem;display:flex;position:fixed;box-shadow:0 6px 24px #0000002e}.update-banner span{flex:1}.update-banner .link{color:inherit;opacity:.7;background:0 0;border:0;padding:6px}.update-banner .update-now{background:var(--brand);color:var(--brand-ink);border:0;border-radius:10px;padding:8px 14px;font-weight:700}button.link.edit-product{color:var(--brand);font:inherit;background:0 0;border:0;margin:12px auto 0;padding:6px;font-size:.9rem;font-weight:600;display:block}.product-editor{padding-top:10px}.product-editor .button-row button.primary{width:auto;padding:12px}.field.consume{margin:12px 0 0}.field.consume .chips{margin-bottom:8px}.version{color:var(--muted);text-align:center;font-variant-numeric:tabular-nums;margin:14px 0 0;font-size:.75rem}.day-nav{justify-content:space-between;align-items:center;margin:0 0 10px;display:flex}.day-nav .ghost{padding:2px 14px;font-size:1.6rem}.day-nav .ghost:disabled{opacity:.25}.day-label{text-transform:capitalize;font-weight:700}.day-totals .total{margin-top:0}.macro-line{font-variant-numeric:tabular-nums;font-size:.88rem}.m-p{color:var(--brand);font-weight:600}.m-c{color:var(--accent);font-weight:600}.m-g{color:var(--muted);font-weight:600}.add-meal{margin:14px 0}.meal-list,.meal-items{gap:12px;margin:0;padding:0;list-style:none;display:grid}.meal-card{padding-top:6px;padding-bottom:6px}.meal-sum{justify-items:end;gap:2px;font-size:.95rem;display:grid}.meal-detail{border-top:1px solid var(--line);padding:4px 0 12px}.meal-detail .lots{margin-top:10px}.meal-detail .button-row button{padding:10px 6px}.meal-editor{gap:12px;display:grid}.meal-editor>.view-head{margin-bottom:2px}.meal-editor .field{margin-bottom:0}.meal-editor .field input[type=datetime-local]{min-height:44px}.section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 4px;font-size:.78rem}.repeat ul{margin:0;padding:0;list-style:none}.repeat li+li{border-top:1px solid var(--line)}.meal-item .pending-head{align-items:center;margin-bottom:4px}.item-foot{justify-content:space-between;align-items:center;gap:10px;margin-top:10px;display:flex}button.link{color:var(--brand);font:inherit;background:0 0;border:0;padding:4px 0;font-size:.9rem;font-weight:600}.add-food{border-style:dashed}.meal-total .total{margin:0 0 4px}.small-inline{font-size:.8rem;font-weight:500}.picker-list{margin:0;padding:0;list-style:none}.picker-list li+li{border-top:1px solid var(--line)}.picker .lines h3{margin-top:10px}.nutrition-form>.muted{margin:4px 0 14px;font-size:.92rem}.macro-grid{grid-template-columns:1fr 1fr;gap:10px 12px;display:grid}.macro-grid .field{margin:0}.with-unit{align-items:center;gap:6px;display:flex}.with-unit input{flex:1;min-width:0}.off-search{border-top:1px solid var(--line);margin-top:16px;padding-top:14px}.search-row{gap:8px;display:flex}.search-row input{flex:1;min-width:0}.search-row button{width:auto;padding:0 16px}.off-results{margin:0 0 6px;padding:0;list-style:none}.off-results li+li{border-top:1px solid var(--line)}.off-results .row:disabled{opacity:.5}.nutrition-form .primary{margin-top:14px}.lots li{align-items:center}.lot-right{align-items:center;gap:10px;display:flex}.lot-finish{border:1px solid color-mix(in srgb, var(--ko) 40%, transparent);color:var(--ko);font:inherit;background:0 0;border-radius:999px;padding:4px 10px;font-size:.8rem;font-weight:600}.lot-qty{white-space:nowrap;font-variant-numeric:tabular-nums}.shop-status h2{margin:0 0 4px;font-size:1.05rem}.shop-status p{margin:0;font-size:.9rem}.shop-status.due{border-color:color-mix(in srgb, var(--accent) 55%, var(--line));background:color-mix(in srgb, var(--accent) 9%, var(--surface))}.shop-status.due h2{color:var(--accent)}.shop-status.ok h2{color:var(--brand)}.shop-row{align-items:center;gap:12px;padding:10px 0;display:flex}.shop-main{flex:1;min-width:0}.shop-side{justify-items:end;gap:2px;display:grid}.row-sub.urgent{color:var(--accent);font-weight:600}.small-link{color:var(--muted)!important;padding:2px 0!important;font-size:.8rem!important}.shop-row.checked .row-title{color:var(--muted);text-decoration:line-through}.check{border:2px solid var(--line);color:#0000;background:0 0;border-radius:9px;flex:none;place-items:center;width:30px;height:30px;padding:0;display:grid}.check.on{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}.add-item{gap:8px;margin-top:12px;display:flex}.add-item input{min-width:0;font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;flex:1;padding:10px 12px}.add-item button{width:auto;padding:0 16px}.match-chips{margin:10px 0 0}.shopping.done{opacity:.85}.shopping.done .list-head .link{font-size:.9rem}.shop-explain{margin:14px 4px 0}
