:root{--green:#2f6b3a;--green-ink:#2f6b3a;--text:#1d2420;--muted:#5d6862;--bg:#fff;--surface:#f3f5f2;--error:#a32020;--staple:#8a6512;--staple-soft:#f6ecd2;color:var(--text);background:var(--bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font:17px/1.45 system-ui,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#e8ece9;--green-ink:#7cc39e;--muted:#a3ada7;--bg:#121614;--surface:#1c221f;--error:#ff8a80;--staple:#e0b65a;--staple-soft:#33291a}}*{box-sizing:border-box}body{background:var(--bg);margin:0}.page{max-width:40rem;padding:max(1rem, env(safe-area-inset-top)) 1rem 2rem;margin:0 auto}h1{margin:.5rem 0 1rem;font-size:1.6rem}button{font:inherit;border:1px solid var(--muted);background:var(--surface);color:var(--text);border-radius:.6rem;min-height:44px;padding:.6rem 1rem}button.primary{background:var(--green);border-color:var(--green);color:#fff;width:100%;font-weight:600}.sign-in{flex-direction:column;justify-content:center;gap:.5rem;min-height:80vh;display:flex}.error{color:var(--error)}.top-bar{justify-content:space-between;align-items:center;gap:1rem;display:flex}.top-bar p{margin:0}.household{font-weight:600}.member,.empty{color:var(--muted)}.recipes{padding:0;list-style:none}.recipes li{background:var(--surface);border-radius:.6rem;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;padding:.75rem;display:flex}.recipes a{color:var(--text);font-weight:600;text-decoration:none}a{color:var(--green-ink)}input{font:inherit;border:1px solid var(--muted);background:var(--bg);min-height:44px;color:var(--text);border-radius:.6rem;padding:.5rem .75rem}h2{margin:1.5rem 0 .5rem;font-size:1.2rem}h3{margin:1rem 0 .25rem;font-size:1rem}.import{background:var(--surface);border-radius:.8rem;margin-bottom:1.5rem;padding:1rem}.import h2{margin-top:0}.import-form label,.import>label{color:var(--muted);margin-bottom:.25rem;display:block}.import .hint{color:var(--muted);margin-top:0}.import input[type=file]{max-width:100%}.fallbacks{gap:.5rem;display:grid}.fallbacks label{color:var(--muted);display:block}.fallbacks textarea{box-sizing:border-box;width:100%;font:inherit}.import-row{gap:.5rem;margin-top:.5rem;display:flex}.import-row input{flex:1;min-width:0}.import-row button.primary{width:auto}.questions fieldset{border:none;margin:0 0 .75rem;padding:0}.choice{align-items:center;gap:.35rem;min-height:44px;margin-right:1rem;display:inline-flex}.choice input{width:1.2rem;height:1.2rem;min-height:auto}.feeds{flex-direction:column;gap:.25rem;max-width:14rem;display:flex}.badge{white-space:nowrap;color:#3d2e00;background:#f6d365;border-radius:999px;margin-left:.5rem;padding:.05rem .5rem;font-size:.8rem;font-weight:600;display:inline-block}.notice{background:var(--surface);border-radius:.6rem;padding:.5rem .75rem}.back{margin-bottom:.5rem}.recipe-photo{object-fit:cover;border-radius:.8rem;width:100%;max-height:16rem}.facts{color:var(--muted);margin-top:-.5rem}.ingredient-lines{padding-left:1.2rem}.ingredient-lines li,.steps li{margin-bottom:.4rem}.steps li{font-size:1.05rem;line-height:1.55}.source{margin-top:2rem}.photo-placeholder{background:var(--surface);color:var(--muted);justify-content:center;align-items:center;font-size:2rem;display:flex}.recipe .photo-placeholder.recipe-photo{height:8rem}.recipes .thumb{object-fit:cover;background:var(--bg);border-radius:.5rem;flex:none;width:3.5rem;height:3.5rem;font-size:1.4rem}.card-text{flex-direction:column;flex:1;min-width:0;display:flex}.with-line{color:var(--muted);margin:-.75rem 0 .75rem}.card-text .with-line{margin:0;font-size:.9rem}.star{color:#d9a400;font-size:1.2rem}.recipe-bar,.title-row{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.title-row h1{margin-top:1rem}button.favourite{flex:none;margin-top:.75rem}button.favourite[aria-pressed=true]{border-color:#d9a400}button.small{min-height:36px;margin-left:.5rem;padding:.2rem .6rem;font-size:.85rem}.check-this-note,.note{background:var(--surface);border-radius:.6rem;margin-bottom:1rem;padding:.25rem .75rem .75rem}.note h2{margin-top:.5rem}.page.wide{max-width:70rem}.app-nav{border-bottom:1px solid var(--surface);scrollbar-width:none;gap:1.25rem;margin:.75rem 0 1rem;display:flex;overflow-x:auto}.app-nav::-webkit-scrollbar{display:none}.app-nav a{white-space:nowrap;color:var(--muted);border-bottom:3px solid #0000;flex:none;padding:.5rem 0;font-weight:600;text-decoration:none}.app-nav a[aria-current=page]{color:var(--text);border-color:var(--green-ink)}.muted{color:var(--muted)}.recipe-editor .field{border:none;flex-direction:column;gap:.25rem;min-width:0;margin-bottom:1rem;padding:0;display:flex}.recipe-editor legend{margin-bottom:.25rem;font-weight:600}.field-row{gap:.75rem;display:flex}.field-row .field{flex:1}select,textarea{font:inherit;border:1px solid var(--muted);background:var(--bg);min-height:44px;color:var(--text);border-radius:.6rem;width:100%;padding:.5rem .75rem}.section-edit{background:var(--surface);border-radius:.6rem;margin-bottom:.5rem;padding:.75rem}.small{font-size:.85rem}.meal-plan{flex-direction:column;gap:1rem;display:flex}.typetabs{border-bottom:1px solid var(--surface);gap:1.4rem;display:flex;overflow-x:auto}.typetabs button{color:var(--muted);white-space:nowrap;background:0 0;border:none;border-bottom:3px solid #0000;border-radius:0;padding:.5rem 0 .6rem;font-size:1.1rem}.typetabs button.on{color:var(--text);border-color:var(--green-ink);font-weight:600}.typetabs .n{font-variant-numeric:tabular-nums;margin-left:.3rem;font-size:.8rem}.panel-body{flex-direction:column;gap:1rem;display:flex}.count-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.count-row b{flex:1;min-width:8rem}.stepper{align-items:center;gap:.25rem;display:inline-flex}.stepper button{width:44px;color:var(--green-ink);border:none;border-radius:50%;padding:0;font-size:1.15rem;font-weight:700}.stepper output{text-align:center;font-variant-numeric:tabular-nums;min-width:1.75rem;font-weight:700}button.ghost{color:var(--green-ink);border-color:#0000;border-radius:999px;font-weight:600}button:disabled{opacity:.45}.cards{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem;display:grid}@media (width>=860px){.cards{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}}.rc{border:1px solid var(--surface);background:var(--bg);border-radius:.4rem;flex-direction:column;display:flex;overflow:hidden}.rc.picked{border-color:var(--green-ink);box-shadow:0 0 0 1px var(--green)}.rc .ph{position:relative}.rc img{aspect-ratio:4/3;object-fit:cover;background:var(--surface);width:100%;display:block}.rc .badge{letter-spacing:.06em;text-transform:uppercase;border-radius:0;margin:0;font-size:.68rem;position:absolute;bottom:0;left:0}.rc .body{flex-direction:column;flex:1;gap:.2rem;padding:.6rem .75rem .75rem;display:flex}.rc .t{margin:0;font-size:1rem;line-height:1.25}.rc p{margin:0}.rc .sub{font-size:.92rem;line-height:1.3}.rc .tags,.rc .card-facts{color:var(--muted);font-size:.8rem}.rc .card-facts{font-variant-numeric:tabular-nums;font-weight:600}.rc .act{margin-top:auto;padding-top:.6rem}.rc .add{border:1px solid var(--green);width:100%;color:var(--green-ink);background:var(--bg);border-radius:.3rem;font-weight:700}.rc .por{white-space:nowrap;background:var(--green);color:#fff;text-align:center;font-variant-numeric:tabular-nums;border-radius:.3rem;grid-template-columns:minmax(28px,40px) minmax(0,1fr) minmax(28px,40px);align-items:center;font-size:.92rem;font-weight:700;display:grid}.rc .por button{color:#fff;background:0 0;border:none;padding:0;font-size:1.2rem}.bottombar{bottom:calc(.75rem + env(safe-area-inset-bottom,0px));z-index:10;max-width:28rem;position:sticky}.plan-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:1.5rem;display:grid}.filters{flex-direction:column;gap:1.1rem;display:none}.filters.open{z-index:21;background:var(--bg);width:min(320px,86%);padding:calc(1rem + env(safe-area-inset-top,0px)) 1rem calc(1.5rem + env(safe-area-inset-bottom,0px));animation:.18s ease-out slide-in;display:flex;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;box-shadow:-10px 0 30px #0003}@keyframes slide-in{0%{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.filters.open{animation:none}}.drawer-backdrop{z-index:20;background:#00000059;position:fixed;inset:0}@media (width>=860px){.plan-layout{grid-template-columns:minmax(0,1fr) 260px}.filters,.filters.open{z-index:auto;background:var(--surface);width:auto;box-shadow:none;border-radius:.6rem;padding:1rem;animation:none;display:flex;position:sticky;top:1rem}.drawer-backdrop,.filter-button,.filters .block{display:none}}.filters-head{justify-content:space-between;align-items:center;display:flex}.filters h2{margin:0;font-size:1.2rem}.filters fieldset{border:0;flex-direction:column;margin:0;padding:0;display:flex}.filters legend{border-bottom:1px solid var(--muted);width:100%;margin-bottom:.2rem;padding:0 0 .35rem;font-weight:700}.filters fieldset label{cursor:pointer;align-items:center;gap:.6rem;min-height:40px;display:flex}.filters input[type=checkbox]{width:20px;height:20px;min-height:0;accent-color:var(--green);margin:0;padding:0}.craving{flex-direction:column;gap:.35rem;display:flex}.craving label{color:var(--muted);font-size:.9rem}.craving-row{flex-wrap:wrap;gap:.4rem;display:flex}.craving-row button{flex:1 0 auto}.craving input{border:1px solid var(--muted);background:var(--bg);min-width:0;min-height:44px;color:var(--text);font:inherit;border-radius:.6rem;flex:10rem;padding:.5rem .75rem}.filter-button .count-pill{background:var(--green);color:#fff;border-radius:999px;margin-left:.4rem;padding:0 .5rem;font-size:.75rem;font-weight:700;display:inline-flex}.results{flex-direction:column;gap:.6rem;display:flex}.results h2{margin:0;font-size:1rem}.summary h1{margin-bottom:0}.summary h2{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:.8rem}.summary-list{background:var(--surface);border-radius:.8rem;margin:0;padding:0;list-style:none}.summary-list li{align-items:center;gap:.75rem;padding:.6rem .75rem;display:flex}.summary-list li+li{border-top:1px solid var(--bg)}.summary-list .thumb{object-fit:cover;border-radius:.3rem;flex:none;width:64px;height:48px}.summary-list .grow{flex-direction:column;flex:1;min-width:0;display:flex}.summary .actions{gap:.5rem;margin-top:.5rem;display:flex}.hint{color:var(--muted);margin-top:0}.ingredient-list{margin:0;padding:0;list-style:none}.ingredient-list>li{border-bottom:1px solid var(--surface);padding:.75rem 0}.ingredient-summary{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.ingredient-summary .facts{margin:.15rem 0 0}.family{color:var(--text);font-weight:600}.ingredient-form{gap:.5rem;margin-top:.75rem;display:grid}.ingredient-form label{color:var(--muted);gap:.25rem;display:grid}.form-buttons{gap:.5rem;display:flex}.form-buttons button.primary{flex:1;width:auto}.shopping-list h1{margin-bottom:0}.shopping-list h2{text-transform:uppercase;letter-spacing:.08em;max-width:none;color:var(--muted);margin:1.25rem 0 .5rem;font-size:.8rem}.list-items{background:var(--surface);border-radius:.8rem;margin:0;padding:0;list-style:none}.list-items li{align-items:center;gap:.25rem;padding-right:.5rem;display:flex}.list-items li+li{border-top:1px solid var(--bg)}.list-item{text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:.75rem;min-width:0;padding:.6rem .75rem;display:flex}.list-item .grow{flex-direction:column;flex:1;min-width:0;display:flex}.list-item .label{font-weight:600}.list-item .check{border:2px solid var(--muted);color:#0000;border-radius:.4rem;flex:none;place-items:center;width:26px;height:26px;font-weight:700;display:grid}.done .list-item .check{background:var(--green);border-color:var(--green-ink);color:#fff}.done .list-item .label{color:var(--muted);text-decoration:line-through}.list-item .qty{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none}.chip{background:var(--bg);color:var(--green-ink);border-radius:999px;align-self:flex-start;padding:0 .5rem;font-size:.75rem;font-weight:600}.suggestion{border:1px solid var(--green);border-radius:.8rem;margin-bottom:.5rem;padding:.75rem}.suggestion p{margin:0}.shopping-list .actions{gap:.5rem;margin-top:.75rem;display:flex}.shopping-list .actions button.primary,.summary .actions button.primary{flex:1;width:auto}.shopping-list .bottombar{background:var(--bg);margin-top:1rem;padding-top:.5rem}.shopping-list .bottombar .hint{text-align:center;margin:.25rem 0 0;font-size:.85rem}:root{--coles:#e01a22;--coles-soft:#fde8e8;--coles-ink:#fff}@media (prefers-color-scheme:dark){:root{--coles:#ff6b6f;--coles-soft:#3a1c1d;--coles-ink:#1a0405}}.priced-list h2,.settings h2{margin:1.25rem 0 .5rem;font-size:1.05rem}.priced-list .list-items li,.settings .list-items li{gap:.75rem;padding:.6rem .75rem}.priced-list .grow,.settings .grow{flex-direction:column;flex:1;min-width:0;display:flex}.staple-form{gap:.25rem;margin-bottom:1rem;display:grid}.staple-form label{color:var(--muted)}.staple-list li{padding:.4rem .5rem .4rem .75rem}.staple-list .grow{flex-direction:column;flex:1;min-width:0;display:flex}.settings .label{font-weight:600}.field-label{color:var(--muted);margin:.75rem 0 .25rem;display:block}.store-head{flex-wrap:wrap;align-items:baseline;gap:.6rem;margin-top:.5rem;display:flex}.store-mark{color:var(--coles);font-size:1.4rem;font-weight:800}.ptiles{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem;display:grid}.ptile{border:1px solid var(--surface);background:var(--bg);border-radius:.75rem;flex-direction:column;gap:.6rem;padding:.6rem;transition:opacity .2s ease-out;display:flex;position:relative}.ptile-media{position:relative}.ptile img,.ptile-photo{aspect-ratio:4/3;object-fit:contain;background:#fff;border-radius:.5rem;width:100%;display:block}.ptile-photo{background:var(--coles-soft)}.ptile-media .lbl.special{position:absolute;top:.4rem;left:.4rem}.ptile-body{flex-direction:column;flex:1;gap:.15rem;display:flex}.ptile-body .lbl{margin-bottom:.2rem}.ptile-name{font-size:.92rem;line-height:1.3}.ptile-for,.special-elsewhere{color:var(--muted);font-size:.8rem}.ptile-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem;display:flex}.ptile-links{justify-content:space-between;align-items:center;gap:.5rem;font-size:.85rem;display:flex}.ptile-links a{white-space:nowrap;color:var(--green-ink);text-underline-offset:.2em}.ptile-change{min-height:36px;padding:.3rem .8rem;font-size:.85rem}.lbl{border-radius:4px;padding:2px 7px;font-size:.72rem;font-weight:700;display:inline-flex;position:absolute;top:.5rem;left:.5rem}.lbl.special{background:var(--coles);color:var(--coles-ink)}.unitp{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.78rem}.price-row{align-items:baseline;gap:.4rem;display:flex}.price{font-variant-numeric:tabular-nums;font-weight:700}.was{color:var(--muted);font-size:.8rem}.totalbar{bottom:calc(.75rem + env(safe-area-inset-bottom,0px));z-index:10;border:1px solid var(--surface);background:var(--bg);border-radius:1rem;align-items:center;gap:.75rem;margin-top:1rem;padding:.75rem .9rem;display:flex;position:sticky;box-shadow:0 8px 24px #0000001f}.totalbar .grow{flex:1;min-width:0}.totalbar .big{font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:700}a.button{white-space:nowrap;border-radius:.6rem;align-items:center;min-height:44px;padding:.6rem 1rem;font-weight:600;text-decoration:none;display:inline-flex}a.button.primary{background:var(--green);color:#fff}a.button.coles{background:var(--coles);color:var(--coles-ink)}.coles-error{background:var(--coles-soft);color:var(--coles);border-radius:.8rem;flex-direction:column;gap:.5rem;padding:.9rem;display:flex}.coles-error button{align-self:flex-start}.priced-list .actions{margin-top:1rem}.staple-list .label{font-weight:600}.staple-list button[aria-pressed=true]{background:var(--staple-soft);border-color:var(--staple);color:var(--staple);font-weight:600}.chip.staple{background:var(--staple-soft);color:var(--staple)}.shopping-list .bottombar button.block{width:100%;margin-top:.5rem}.done-shopping{margin-top:.75rem}.done-shopping-bar{margin-top:1rem}.done-shopping-bar button.block{width:100%}.lbl.chosen{background:var(--coles-soft);color:var(--coles);align-self:flex-start}.lbl.substitute{background:var(--surface);color:var(--muted);align-self:flex-start}.special-elsewhere{color:var(--coles)}.change-panel{border-top:1px solid var(--surface);flex-direction:column;gap:.4rem;margin-top:.4rem;padding-top:.5rem;display:flex}.change-panel [aria-current=true]{font-weight:700}.ptile.ticked{opacity:.5}.ptile .tick{align-items:center;gap:.4rem;min-height:44px;font-size:.85rem;font-weight:600;display:inline-flex}.ptile .tick input{width:22px;height:22px;accent-color:var(--green);margin:0}.ptile .stepper{align-items:center;gap:.15rem;display:inline-flex}.ptile .stepper button{border-radius:999px;min-width:36px;min-height:36px;padding:0}.ptile .stepper-value{white-space:nowrap;font-variant-numeric:tabular-nums;flex-direction:column;align-items:center;min-width:3.4rem;font-size:.85rem;font-weight:600;display:inline-flex}.ptile .stepper-note{color:var(--muted);font-size:.7rem;font-weight:400}@media (width<=420px){.app-nav{gap:.9rem}.app-nav a{font-size:.92rem}}
