:root{--bg:#fbf8f3;--surface:#fff;--surface-2:#f3eee6;--text:#2a2622;--muted:#6f675e;--line:#e7dfd3;--accent:#2f6b4f;--accent-ink:#fff;--accent-soft:#e3efe7;--warm:#e4572e;--danger:#b3261e;--shadow:0 1px 2px #281e140f, 0 4px 14px #281e140f;--radius:14px;--art-l:88%;--art-c:.06;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#171513;--surface:#211e1b;--surface-2:#2b2723;--text:#f1ebe3;--muted:#a99f93;--line:#3a352f;--accent:#6fbf94;--accent-ink:#10231a;--accent-soft:#1f3529;--warm:#f08a5d;--danger:#f2877f;--shadow:none;--art-l:32%;--art-c:.05;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#171513;--surface:#211e1b;--surface-2:#2b2723;--text:#f1ebe3;--muted:#a99f93;--line:#3a352f;--accent:#6fbf94;--accent-ink:#10231a;--accent-soft:#1f3529;--warm:#f08a5d;--danger:#f2877f;--shadow:none;--art-l:32%;--art-c:.05;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;margin:0;font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1,h2,h3{text-wrap:balance;margin:0;line-height:1.2}button,input,select,textarea{font:inherit;color:inherit}input:not([type=checkbox]),select,textarea{border:1px solid var(--line);background:var(--surface);border-radius:10px;width:100%;padding:10px 12px}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input[type=checkbox]{accent-color:var(--accent);flex:none;width:22px;height:22px;margin:0}.app-header{z-index:5;padding:calc(env(safe-area-inset-top) + 10px) 16px 10px;background:color-mix(in srgb, var(--bg) 90%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.brand{align-items:center;gap:8px;font-weight:700;display:flex}.status{color:var(--muted);font-size:14px}main{max-width:860px;margin:0 auto}.page{padding:4px 16px calc(96px + env(safe-area-inset-bottom));flex-direction:column;gap:14px;display:flex}.banner{background:var(--surface-2);color:var(--muted);border-radius:10px;margin:0 16px;padding:8px 12px;font-size:14px}.tabbar{z-index:5;padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar button{color:var(--muted);cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:2px;padding:8px 0 10px;font-size:12px;font-weight:600;display:flex}.tabbar button span{font-size:22px;line-height:1}.tabbar button.on{color:var(--accent)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.actions{flex-wrap:wrap;gap:8px;display:flex}.actions .btn{flex:160px}.empty{text-align:center;color:var(--muted);padding:24px 16px}.empty .btn{margin-top:8px}.hint{color:var(--muted);margin:0;font-size:14px}.error{color:var(--danger);margin:0}.btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:6px;min-height:44px;padding:8px 16px;font-weight:600;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.55;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.ghost{background:0 0;border-color:#0000}.btn.small{min-height:36px;padding:4px 12px;font-size:14px}.btn.danger{color:var(--danger)}.stepper{border:1px solid var(--line);background:var(--surface);border-radius:999px;align-items:center;display:inline-flex}.stepper button{cursor:pointer;width:40px;height:40px;color:var(--accent);background:0 0;border:0;font-size:20px}.stepper button:disabled{color:var(--line);cursor:default}.stepper span{text-align:center;font-variant-numeric:tabular-nums;min-width:2ch;font-weight:700}.stepper small{color:var(--muted);font-weight:400}.chips{scrollbar-width:none;gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.chip{border:1px solid var(--line);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:999px;flex:none;padding:6px 12px;font-size:14px}.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.tabs{background:var(--surface-2);border-radius:999px;padding:4px;display:flex}.tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;flex:1;padding:8px 4px;font-size:14px;font-weight:600}.tabs button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.art{background:oklch(var(--art-l) var(--art-c) var(--hue));border-radius:12px;flex:none;place-items:center;display:grid}.art-sm{width:52px;height:52px;font-size:28px}.art-md{aspect-ratio:16/10;border-radius:12px 12px 0 0;width:100%;font-size:52px}.art-lg{border-radius:20px;width:96px;height:96px;font-size:56px}.login{place-items:center;min-height:100dvh;padding:16px;display:grid}.login form{text-align:center;flex-direction:column;align-items:center;gap:12px;width:min(360px,100%);padding:28px 20px;display:flex}.login p{color:var(--muted);margin:0}.login .btn{width:100%}.week-picker{justify-content:space-between;align-items:center;gap:8px;display:flex}.week-picker div{text-align:center;flex-direction:column;display:flex}.week-picker strong{font-size:20px}.week-picker small{color:var(--muted)}.week-picker button{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:50%;width:44px;height:44px;font-size:24px;line-height:1}.settings{flex-wrap:wrap;justify-content:space-between;gap:12px 24px;display:flex}.settings label{align-items:center;gap:10px;font-weight:600;display:flex}.summary{background:var(--accent-soft);border-color:#0000;grid-template-columns:1fr 1fr;gap:8px;display:grid}.summary div{flex-direction:column;display:flex}.summary .big{font-variant-numeric:tabular-nums;font-size:26px;font-weight:800}.summary small{color:var(--muted)}.saving{grid-column:1/-1;margin:0;font-size:14px}.plan-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.plan-meal{flex-direction:column;gap:10px;display:flex}.plan-meal.cooked{opacity:.7}.plan-open{text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;padding:0;display:flex}.plan-open h3{font-size:17px}.plan-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.plan-controls select{flex:120px;width:auto;min-height:42px}.empty-slot{border:2px dashed var(--line);width:100%;box-shadow:none;color:var(--accent);cursor:pointer;background:0 0;padding:18px;font-weight:700}.meta{color:var(--muted);flex-wrap:wrap;gap:4px 12px;margin:2px 0 0;font-size:14px;display:flex}.search{font-size:16px}.grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;display:grid}.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;display:flex;overflow:hidden}.tile-main{color:inherit;text-align:left;cursor:pointer;flex-direction:column;flex:1;justify-content:flex-start;text-decoration:none;display:flex}.tile-body{padding:10px 12px 8px}.tile h3{font-size:15px}.fav{color:var(--warm)}.tile-add{border:1px solid var(--accent);min-height:38px;color:var(--accent);cursor:pointer;background:0 0;border-radius:999px;margin:0 10px 10px;font-weight:700}.tile-add.added{background:var(--accent);color:var(--accent-ink)}.draft{flex-direction:column;gap:4px;display:flex}.ideas-form{flex-direction:column;gap:10px;display:flex}.ideas-form>label{font-weight:700}.ideas-form p{margin:0}.ideas-form .row select{width:auto}.ideas-form .row .btn{flex:1}.file{border:2px dashed var(--line);cursor:pointer;text-overflow:ellipsis;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:56px;font-weight:600;display:flex;overflow:hidden}.file input{opacity:0;width:1px;height:1px;position:absolute}.toolbar{justify-content:space-between;align-items:center;gap:8px;display:flex}.sheet{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.sheet-head{border-bottom:1px solid var(--line);align-items:flex-start;gap:16px;padding-bottom:16px;display:flex}.sheet-head h1{font-size:24px}.lede{color:var(--muted);margin:6px 0 10px}.facts{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.facts li{background:var(--surface-2);border-radius:999px;padding:2px 10px;font-size:14px}.cap{text-transform:capitalize}.sheet-cols{gap:20px;padding-top:16px;display:grid}.sheet h2{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:8px;font-size:13px}.ingredients ul{margin:0;padding:0;list-style:none}.ingredients li{border-bottom:1px dotted var(--line);grid-template-columns:76px 1fr;gap:8px;padding:5px 0;display:grid}.ingredients h3{color:var(--muted);margin:14px 0 4px;font-size:14px}.ingredients em,.pantry li{color:var(--muted)}.qty{font-variant-numeric:tabular-nums;font-weight:700}.method ol{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.method li{display:block}.step-row{gap:12px;display:flex}.num{background:var(--accent);width:30px;height:30px;color:var(--accent-ink);border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.method h3{margin-top:4px;font-size:16px}.method p{margin:4px 0 0}.note{color:var(--muted);font-size:14px}@media (width>=720px){.sheet-cols{grid-template-columns:260px 1fr;gap:28px}}.cook{max-width:760px;min-height:100dvh;padding:env(safe-area-inset-top) 16px env(safe-area-inset-bottom);flex-direction:column;margin:0 auto;display:flex}.cook header{align-items:center;gap:8px;padding:8px 0;display:flex}.cook header div{flex-direction:column;display:flex}.cook header small{color:var(--muted)}.progress{gap:4px;display:flex}.progress span{background:var(--line);border-radius:3px;flex:1;height:5px}.progress span.done{background:var(--accent)}.cook-body{flex:1;padding:24px 0}.step-count{color:var(--accent);margin:0 0 6px;font-weight:700}.cook-body h1{margin-bottom:14px;font-size:30px}.step-text{margin:0 0 20px;font-size:22px;line-height:1.55}.gather{margin:0;padding:0;font-size:18px;list-style:none}.gather label{border-bottom:1px solid var(--line);cursor:pointer;align-items:center;gap:12px;padding:10px 0;display:flex}.gather em{color:var(--muted)}.cook-ingredients summary{cursor:pointer;color:var(--accent);font-weight:600}.cook-ingredients ul{padding-left:0;list-style:none}.cook footer{background:var(--bg);grid-template-columns:1fr 2fr;gap:10px;padding:12px 0 16px;display:grid;position:sticky;bottom:0}.cook footer .btn{min-height:56px;font-size:18px}.shop-summary{flex-direction:column;gap:8px;display:flex}.shop-summary p{margin:0}.bar{background:var(--surface-2);border-radius:4px;height:8px;overflow:hidden}.bar span{background:var(--accent);height:100%;transition:width .3s;display:block}.toggle{align-items:center;gap:6px;margin-right:auto;font-size:14px;display:flex}.shop-group{padding-bottom:6px}.shop-group h2{margin-bottom:4px;font-size:15px}.shop-group ul{margin:0;padding:0;list-style:none}.shop-group li{border-bottom:1px solid var(--line);align-items:center;display:flex}.shop-group li:last-child{border-bottom:0}.shop-group li label{cursor:pointer;flex:1;align-items:center;gap:12px;min-width:0;min-height:52px;padding:10px 0;display:flex}.shop-group .item{flex-direction:column;flex:1;min-width:0;display:flex}.shop-group .name:first-letter{text-transform:uppercase}.shop-group .name{display:block}.shop-group .item small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.shop-group .amount{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700}.shop-group li.ticked .name,.shop-group li.ticked .amount{color:var(--muted);text-decoration:line-through}.shop-group.pantry{background:var(--surface-2);box-shadow:none}.shop-group form{flex-wrap:nowrap;padding:8px 0}.remove{color:var(--muted);cursor:pointer;background:0 0;border:0;width:40px;height:40px}@media print{@page{size:A4;margin:12mm}:root{--bg:#fff;--surface:#fff;--surface-2:#f2f2f2;--text:#000;--muted:#555;--line:#ccc;--accent:#2f6b4f;--accent-ink:#fff;--art-l:90%;--art-c:.05}body{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff;font-size:11pt}.no-print,.app-header,.tabbar,.banner{display:none!important}.page{padding:0}.sheet,.card{box-shadow:none;border:0;padding:0}.sheet{break-after:page}.sheet:last-child{break-after:auto}.sheet-cols{grid-template-columns:62mm 1fr;gap:8mm}.method li{break-inside:avoid}.shop-group{break-inside:avoid;margin-bottom:4mm}.shop-group li label{min-height:0;padding:3px 0}.shop-group li.ticked{display:none}}.badge{vertical-align:2px;white-space:nowrap;border-radius:999px;margin-right:6px;padding:1px 8px;font-size:12px;font-weight:700;display:inline-block}.badge.meat{background:var(--meat-soft);color:var(--meat)}.badge.veg{background:var(--accent-soft);color:var(--accent)}:root{--meat:#9a3b1f;--meat-soft:#f8e4dc}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--meat:#f2a184;--meat-soft:#3a241c}}:root[data-theme=dark]{--meat:#f2a184;--meat-soft:#3a241c}.subtitle{color:var(--accent);margin:2px 0 0;font-size:14px;font-weight:600}.veg-summary{color:var(--muted);margin:10px 0 0;font-size:14px}.diet{color:var(--accent);margin:4px 0 0;font-size:13px}.diet.muted{color:var(--muted)}.warn{background:var(--meat-soft);color:var(--meat);border-radius:10px;margin:0;padding:8px 10px;font-size:14px}.warn a{color:inherit;font-weight:700}.split-stepper{flex-wrap:wrap;gap:6px;display:flex}.method li.for-meat .num{background:var(--meat)}.method li.divide .num{background:var(--warm)}.split-hint{border-left:3px solid var(--warm);background:var(--surface-2);border-radius:0 8px 8px 0;margin:6px 0 0;padding:6px 10px;font-size:14px;font-weight:600}.split-hint.big{font-size:18px}.ingredients h3 .badge{vertical-align:0}.step-count .badge{margin-left:8px}.gather .badge,.cook-ingredients .badge{margin-left:6px}.adapt{flex-direction:column;gap:10px;display:flex}.adapt h2{font-size:17px}.totals{grid-template-columns:1fr 1fr;gap:8px;display:grid}.totals div{flex-direction:column;display:flex}.totals .big{font-variant-numeric:tabular-nums;font-size:26px;font-weight:800}.totals .big.muted,.totals small{color:var(--muted)}.shop-group .amount{text-align:right;white-space:normal;flex-direction:column;align-items:flex-end;max-width:40%;font-size:14px;display:flex}.shop-group .amount small{color:var(--muted);font-size:12px;font-weight:400}.shop-group .item small.left{color:var(--warm)}.have-btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;filter:grayscale(.4);border-radius:50%;flex:none;width:40px;height:40px;margin-left:4px}.shop-group.pantry li{justify-content:space-between;gap:8px;padding:8px 0}.impact{color:var(--text);margin:6px 0 0;font-size:13px}.impact span{color:var(--accent)}.leftovers h2{margin-bottom:6px;font-size:16px}.leftovers ul{margin:0 0 10px;padding:0;list-style:none}.leftovers li{border-bottom:1px dotted var(--line);justify-content:space-between;gap:12px;padding:4px 0;font-size:15px;display:flex}.leftovers li span:last-child{color:var(--muted);text-align:right}.cap-first:first-letter{text-transform:uppercase}.cap-first{display:inline-block}.search-row{flex-wrap:nowrap}.search-row select{flex:none;width:auto}@media print{.have-btn{display:none}}.method-toggle{grid-template-columns:1fr 1fr;gap:8px;display:grid}.method-toggle button{border:1px solid var(--line);background:var(--surface);text-align:left;cursor:pointer;border-radius:12px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.method-toggle button.on{border-color:var(--accent);background:var(--accent-soft)}.method-toggle strong{font-size:14px}.method-toggle small{color:var(--muted);font-size:12px;line-height:1.3}.method-name{text-transform:none;letter-spacing:0;color:var(--muted);font-weight:600}.phase{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:4px 0 10px;font-size:13px}.running{color:var(--muted);margin:6px 0 0;font-size:13px}.running strong{color:var(--text);font-weight:600}.cook .running{margin-bottom:16px;font-size:16px}.cook .method-toggle{margin:4px 0 18px}
