:root{--bg:#f6f2ea;--surface:#fffdf8;--surface-2:#efe9dd;--text:#22201c;--muted:#6f685d;--line:#e2dacb;--accent:#2f6b4f;--accent-text:#fff;--accent-soft:#dcebe2;--warn:#b5482f;--warn-soft:#f6dfd7;--star:#e0a526;--radius:14px;--tabbar:64px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-tap-highlight-color:transparent;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.4}@media (prefers-color-scheme:dark){:root{--bg:#161714;--surface:#20221e;--surface-2:#2a2d27;--text:#ece8df;--muted:#a39d90;--line:#34372f;--accent:#6fb48f;--accent-text:#0f1a14;--accent-soft:#24382d;--warn:#ef8a70;--warn-soft:#3d2620;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0}body.noscroll{overflow:hidden}h1,h2,h3{margin:0;line-height:1.2}h1{font-size:1.35rem}h2{font-size:1.05rem}h3{color:var(--muted);margin:1rem 0 .5rem;font-size:.95rem;font-weight:600}a{color:var(--accent)}small{font-size:.8rem}.muted{color:var(--muted)}.grow{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.center{text-align:center}.pad{padding:.75rem 1rem}.pad-x{padding-left:1rem;padding-right:1rem}.error{color:var(--warn);padding:0 1rem}.empty{color:var(--muted);text-align:center;padding:2.5rem 1.5rem}button,.button,input,select,textarea{font:inherit;color:inherit}button,.button{border:1px solid var(--line);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:.35rem;min-height:44px;padding:.5rem .9rem;text-decoration:none;display:inline-flex}button:disabled{opacity:.45;cursor:default}button.primary,.button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}button.danger{color:var(--warn);border-color:var(--warn-soft)}button.small{min-width:36px;min-height:36px;padding:0 .6rem}button.wide{width:calc(100% - 2rem);margin:1rem;display:flex}button.icon,.icon{min-width:44px;min-height:44px;color:var(--text);background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-size:1.5rem;text-decoration:none;display:inline-flex}input,select,textarea{border:1px solid var(--line);background:var(--surface);border-radius:10px;width:100%;min-height:44px;padding:.55rem .8rem}textarea{resize:vertical;line-height:1.5}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.app main{padding-bottom:calc(var(--tabbar) + env(safe-area-inset-bottom) + 1rem)}.page{max-width:720px;min-height:100dvh;margin:0 auto}.page-head{z-index:5;padding:calc(.5rem + env(safe-area-inset-top)) .75rem .5rem 1rem;background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);justify-content:space-between;align-items:center;gap:.5rem;display:flex;position:sticky;top:0}.page-head h1.title{text-align:center;text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.toolbar{flex-wrap:wrap;gap:.5rem;padding:.25rem 1rem .75rem;display:flex}.row-inline{align-items:center;gap:.5rem;margin:.5rem 0;display:flex}.row-inline input{flex:1}.tabs{z-index:10;height:calc(var(--tabbar) + 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(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabs a{color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:.75rem;text-decoration:none;display:flex}.tabs a.active{color:var(--accent);font-weight:600}.tab-icon{filter:grayscale();opacity:.7;font-size:1.35rem;line-height:1}.tabs a.active .tab-icon{filter:none;opacity:1}.splash{min-height:100dvh;color:var(--muted);text-align:center;place-items:center;padding:2rem;display:grid}.center-card{text-align:center;flex-direction:column;align-items:stretch;gap:.75rem;max-width:340px;margin:0 auto;padding:18vh 1.5rem 2rem;display:flex}.center-card img{align-self:center}.list{margin:0;padding:0;list-style:none}.list>li{border-bottom:1px solid var(--line)}.row{text-align:left;white-space:normal;background:0 0;border:none;border-radius:0;align-items:center;gap:.75rem;width:100%;padding:.6rem 1rem;display:flex}.chips{flex-wrap:wrap;gap:.4rem;padding:.25rem 1rem .5rem;display:flex}.chips.scroll-x{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.chip{border:1px solid var(--line);background:var(--surface);min-height:36px;color:var(--text);border-radius:999px;flex-shrink:0;align-items:center;padding:.3rem .8rem;font-size:.9rem;text-decoration:none;display:inline-flex}.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.chip.tag{color:var(--muted)}.badge{background:var(--surface-2);color:var(--muted);vertical-align:middle;border-radius:6px;margin-left:.4rem;padding:0 .4rem;font-size:.7rem;font-weight:500;display:inline-block}.banner{border-radius:var(--radius);background:var(--accent-soft);justify-content:space-between;align-items:center;gap:.5rem;margin:.5rem 1rem;padding:.6rem .9rem;display:flex}.days{flex-direction:column;gap:.5rem;margin:0;padding:0 .75rem;list-style:none;display:flex}.day{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-wrap:wrap;align-items:center;display:flex;overflow:hidden}.day.today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.day.past{opacity:.75}.day-main{text-align:left;white-space:normal;background:0 0;border:none;border-radius:0;flex:1;align-items:center;gap:.75rem;min-height:64px;padding:.6rem .75rem;display:flex}.day-label{flex-direction:column;flex-shrink:0;width:3.2rem;display:flex}.day-label strong:first-letter{text-transform:uppercase}.day-label small{color:var(--muted)}.cooked{background:var(--accent-soft);border-color:var(--accent);min-height:38px;color:var(--accent);margin-right:.6rem;font-weight:600}.note{color:var(--muted);font-style:italic}.suggestion{background:var(--accent-soft);border-top:1px dashed var(--accent);flex-basis:100%;align-items:center;gap:.4rem;padding:.5rem .75rem;display:flex}.suggestion strong:before{content:"✨ "}.thumb{border-radius:10px;flex-shrink:0;width:48px;height:48px}.cover{object-fit:cover;background:var(--surface-2);display:block}.cover.placeholder{opacity:.6;place-items:center;font-size:1.4rem;display:grid}.stepper{border:1px solid var(--line);background:var(--surface);border-radius:999px;align-items:center;gap:.25rem;display:inline-flex}.stepper button{background:0 0;border:none;min-width:40px;min-height:40px;padding:0;font-size:1.2rem}.stepper span{text-align:center;min-width:1.5rem;font-weight:600}.stars{color:var(--line);letter-spacing:1px;display:inline-flex}.stars .on{color:var(--star)}.stars-sm{font-size:.85rem}.stars-lg{justify-content:center;gap:.25rem;width:100%;font-size:2.6rem}.stars button{min-width:52px;min-height:52px;color:inherit;font-size:inherit;background:0 0;border:none;padding:0}.stars button.on{color:var(--star)}.sheet-backdrop{z-index:20;background:#0006;justify-content:center;align-items:flex-end;animation:.15s fade;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:720px;max-height:88dvh;padding-bottom:env(safe-area-inset-bottom);border-radius:20px 20px 0 0;flex-direction:column;animation:.2s ease-out rise;display:flex}.sheet-head{justify-content:space-between;align-items:center;padding:.75rem .5rem .25rem 1rem;display:flex}.sheet-head h2:first-letter{text-transform:uppercase}.sheet-body{padding:0 1rem 1.5rem;overflow-y:auto}.sheet-body .list .row{padding-left:0;padding-right:0}.sheet-body button.wide{width:100%;margin:1rem 0 0}.sheet .current{border-radius:var(--radius);background:var(--surface-2);padding:.5rem .75rem}.picker input{margin:.25rem 0 .5rem}@keyframes rise{0%{opacity:.5;transform:translateY(30%)}}@keyframes fade{0%{opacity:0}}.aisle{margin-top:.75rem}.aisle h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:.4rem 1rem;font-size:.8rem}.aisle .list{background:var(--surface);border-top:1px solid var(--line)}.check-row{cursor:pointer;align-items:center;gap:.85rem;min-height:56px;padding:.7rem 1rem;display:flex}.check-row input{width:26px;height:26px;min-height:0;accent-color:var(--accent);flex-shrink:0}.check-row .item-name{font-size:1.05rem}.check-row.done .item-name{color:var(--muted);text-decoration:line-through}.check-row.done .qty{color:var(--muted)}.qty{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.pantry-row{align-items:center;display:flex}.stock{text-align:left;white-space:normal;background:0 0;border:none;border-radius:0;flex:1;align-items:center;gap:.6rem;min-height:52px;padding:.4rem 0 .4rem 1rem;display:flex}.stock .grow{flex-direction:row;align-items:center}.pill{text-align:center;border-radius:999px;min-width:4.2rem;padding:.2rem .6rem;font-size:.8rem;font-weight:600}.stock.home .pill{background:var(--accent-soft);color:var(--accent)}.stock.out .pill{background:var(--warn-soft);color:var(--warn)}.cards{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;margin:0;padding:.25rem .75rem;list-style:none;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:inherit;flex-direction:column;height:100%;text-decoration:none;display:flex;overflow:hidden}.card .cover{aspect-ratio:4/3;width:100%}.card-body{flex-direction:column;gap:.2rem;padding:.5rem .65rem .65rem;display:flex}.meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.9rem;display:flex}.recipe section{margin-top:1.25rem}.recipe .meta{margin:.5rem 0}.photos .hero{object-fit:cover;width:100%;max-height:52vh;display:block}.thumbs{gap:.4rem;padding:.5rem 1rem;display:flex;overflow-x:auto}.thumbs button{border-radius:10px;flex-shrink:0;width:56px;height:56px;min-height:0;padding:0;overflow:hidden}.thumbs button.on{outline:2px solid var(--accent)}.thumbs img{object-fit:cover;width:100%;height:100%}.add-photo{font-size:1.4rem;border-style:dashed!important}.ingredients{margin:.5rem 0;padding:0;list-style:none}.ingredients li{border-bottom:1px solid var(--line);align-items:baseline;gap:.75rem;padding:.45rem 0;display:flex}.ingredients .amount{text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0;width:5.5rem;font-weight:600}.ingredients .grow{display:block}.ingredients .dot{border-radius:50%;flex-shrink:0;align-self:center;width:9px;height:9px}.ingredients li.home .dot{background:var(--accent)}.ingredients li.out .dot{background:var(--warn)}.steps{margin:.5rem 0;padding-left:1.4rem}.steps li{border-radius:8px;margin-bottom:.3rem;padding:.4rem .3rem;line-height:1.5}.steps li.current{background:var(--accent-soft)}.review-line{align-items:center;gap:.4rem;padding:.35rem 0;display:flex}.history-row{flex-direction:column;gap:.15rem;padding:.7rem 1rem;display:flex}.history-row .review-line{padding:0}.cook{max-width:820px;min-height:100dvh;margin:0 auto;padding-bottom:3rem;font-size:1.25rem}.cook .ingredients{padding:0 1rem}.cook .ingredients .amount{width:6.5rem}.steps.big{padding:0 1rem 0 2.6rem;font-size:1.4rem}.steps.big li{padding:.75rem .5rem}.form-fields{flex-direction:column;gap:.9rem;padding-bottom:2rem;display:flex}.form label,.form-fields label{color:var(--muted);flex-direction:column;gap:.3rem;font-size:.9rem;display:flex}.form label input,.form label select,.form label textarea{color:var(--text);font-size:1rem}.form{flex-direction:column;gap:.9rem;display:flex}label.check{flex-direction:row;align-items:center;gap:.6rem}label.check input{width:22px;height:22px;min-height:0;accent-color:var(--accent)}.grid3{grid-template-columns:1fr 1fr 1.6fr;gap:.5rem;display:grid}fieldset{border:1px solid var(--line);border-radius:var(--radius);margin:0;padding:.5rem .6rem .6rem}legend{color:var(--muted);padding:0 .3rem;font-size:.9rem}.ingredient-line{grid-template-columns:3.6rem 4.4rem 1fr auto;align-items:center;gap:.35rem;margin-bottom:.4rem;display:grid}.ingredient-line .lnote{grid-area:2/3/auto/4;min-height:36px;padding:.3rem .6rem;font-size:.85rem}.ingredient-line input{padding-left:.5rem;padding-right:.5rem}@media (width>=560px){.ingredient-line{grid-template-columns:4rem 5rem 1fr 9rem auto}.ingredient-line .lnote{grid-area:auto}}.sheet-body .chips{padding-left:0;padding-right:0}
