:root{--bg:#faf5ee;--card:#fff;--text:#1d2b27;--muted:#6b7a75;--accent:#a8532f;--line:#e3e0d6;--danger:#b3382c;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#1a1512;--card:#241d19;--text:#f1ebe6;--muted:#a79b92;--accent:#e39a72;--line:#3a2f28;--danger:#ef7d71}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;margin:0;font:16px/1.4 system-ui,-apple-system,Segoe UI,sans-serif}h1{margin:0;font-size:1.5rem}h2{margin:0 0 .6rem;font-size:1.05rem}.muted{color:var(--muted)}.center{place-items:center;min-height:100vh;display:grid}.error{color:var(--danger);margin:.5rem 0}main.app,main.login{max-width:32rem;padding:max(1rem, env(safe-area-inset-top)) 1rem max(2rem, env(safe-area-inset-bottom));margin:0 auto}main.login{padding-top:18vh}main.login form{gap:.9rem;margin-top:1.2rem;display:grid}header{justify-content:space-between;align-items:center;margin-bottom:.8rem;display:flex}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;margin-bottom:.8rem;padding:.9rem}label{color:var(--muted);gap:.3rem;font-size:.85rem;display:grid}input{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:10px;width:100%;min-height:44px;padding:.7rem .8rem}button{font:inherit;color:var(--text);cursor:pointer}button:disabled{opacity:.45;cursor:default}button.link{color:var(--accent);background:0 0;border:0;min-height:44px;padding:.4rem}button.link.danger{color:var(--danger);font-weight:600}button.primary{background:var(--accent);color:#fff;border:0;border-radius:12px;width:100%;min-height:52px;margin-top:.8rem;font-weight:600}.big3{grid-template-columns:repeat(3,1fr);gap:.6rem;display:grid}button.big{border:2px solid var(--line);background:var(--bg);border-radius:14px;min-height:84px;font-size:1.1rem;font-weight:600}button.big:active{transform:scale(.97)}button.big.wet{border-color:#4a90c2}button.big.dirty{border-color:#a9793a}button.big.mixed{border-color:#8a62b0}.seg{gap:.4rem;margin-bottom:.6rem;display:flex}.seg button{border:1px solid var(--line);background:var(--bg);border-radius:10px;flex:1;min-height:46px}.seg button.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.row{align-items:end;gap:.8rem;display:flex}.row>label{flex:1}.stepper{align-items:center;gap:.5rem;display:flex}.stepper button{border:1px solid var(--line);background:var(--bg);border-radius:12px;width:48px;height:48px;font-size:1.4rem}.stepper span{text-align:center;color:var(--text);flex:1;font-size:1.3rem;font-weight:600}.when{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;font-size:.9rem;display:flex}.when input{flex:14rem}.daynav{justify-content:space-between;align-items:center;display:flex}.daynav h2{margin:0}.daynav>button{flex:none;width:44px;font-size:1.4rem}.daynav button.small{width:auto;min-height:0;padding:.15rem .6rem;font-size:.85rem}.daynav .center-text{flex:1;min-width:0}.stars{gap:.1rem;display:flex}button.star{width:44px;height:44px;color:var(--line);background:0 0;border:0;padding:0;font-size:1.9rem;line-height:1}button.star.on{color:#e0a020}.rate-row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.usage{margin:0 0 .4rem}.card-top{justify-content:space-between;align-items:baseline;gap:.6rem;display:flex}.rating{color:#b9820f;white-space:nowrap;font-weight:600}.seg{margin-bottom:.8rem}.summary{color:var(--muted);margin:0 0 .6rem;font-size:.9rem}.entries{margin:0;padding:0;list-style:none}.entries li{border-top:1px solid var(--line);align-items:center;gap:.6rem;padding:.3rem 0;display:flex}.entries .time{width:4.6rem;color:var(--muted);font-variant-numeric:tabular-nums}.entries .desc{flex:1}a.link{color:var(--accent);min-height:44px;padding:.4rem;line-height:36px;text-decoration:none;display:inline-block}header>div{align-items:center;gap:.3rem;display:flex}.stats{grid-template-columns:1fr 1fr;gap:.8rem;margin-bottom:.8rem;display:grid}.stats .card{margin:0}.stat{text-align:center;gap:.2rem;display:grid}.stat .label{color:var(--muted);font-size:.8rem}.stat .value{font-variant-numeric:tabular-nums;font-size:2rem;font-weight:700}.entries li{flex-wrap:wrap}.entries li.editing .desc{flex-basis:calc(100% - 5.2rem)}.edit-time{flex-wrap:wrap;align-items:center;gap:.3rem;width:100%;display:flex}.edit-time input{flex:13rem}.fl{color:var(--muted);margin:.4rem 0 .3rem;font-size:.85rem}.card .seg:last-child{margin-bottom:0}.day{color:var(--muted);margin:.8rem 0 .2rem;font-size:.9rem}table.totals{border-collapse:collapse;width:100%}table.totals th{text-align:left;color:var(--muted);padding:.3rem 0;font-weight:500}table.totals td{text-align:right;padding:.3rem 0;font-weight:600}table.totals tr+tr{border-top:1px solid var(--line)}main.app{padding-bottom:calc(5.5rem + env(safe-area-inset-bottom))}select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:10px;width:100%;min-height:44px;padding:.7rem .6rem}textarea{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);resize:vertical;border-radius:10px;width:100%;padding:.7rem .8rem}.search{margin-bottom:.8rem}.ok{color:var(--accent);margin:.5rem 0}.small{font-size:.85rem}.block{display:block}.prewrap{white-space:pre-wrap;margin:0}.center-text{text-align:center}a.plain{color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:3px}.title{margin:.2rem 0 .4rem}.nomargin{margin-top:0}a.linkbtn{text-align:center;background:var(--accent);color:#fff;border-radius:12px;margin-top:.8rem;font-weight:600;line-height:52px;text-decoration:none;display:block}button.inline{background:var(--accent);color:#fff;border:0;border-radius:10px;min-height:44px;padding:0 1rem;font-weight:600}.row3{grid-template-columns:repeat(3,1fr);gap:.6rem;display:grid}.form{gap:.8rem;display:grid}.recipe-list{margin:0;padding:0;list-style:none}.recipe-card{color:inherit;gap:.2rem;margin-bottom:.6rem;text-decoration:none;display:grid}.clamp{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.ingredients,.grocery,.week{margin:0;padding:0;list-style:none}.ingredients li{border-top:1px solid var(--line);gap:.6rem;padding:.3rem 0;display:flex}.ingredients li:first-child{border-top:0}.qty{font-variant-numeric:tabular-nums;min-width:4.2rem;font-weight:600}.grocery .qty{min-width:0;margin-right:.2rem}.steps{margin:0;padding-left:1.3rem}.steps li{padding:.35rem 0}.planner{gap:.7rem;display:grid}.btns{align-items:center;gap:.4rem;display:flex}.btns .primary{flex:1;width:auto;margin-top:0}.ing{grid-template-columns:4.2rem 4.2rem 1fr;align-items:center;gap:.4rem;margin-bottom:.6rem;display:grid}.ing .note,.ing select{grid-column:1/3}.ing>button{grid-column:3;justify-self:end}.ing .note{grid-column:1/-1}.ing select{grid-column:1/3}.day-card{margin-bottom:.6rem}.day-card.today{border-color:var(--accent)}.day-head{justify-content:space-between;align-items:center;display:flex}.dinner{margin:.1rem 0 0;font-size:1.05rem}.dishes{margin:0;padding:0;list-style:none}.dishes>li{border-top:1px solid var(--line);padding:.15rem 0}.dishes>li:first-child{border-top:0}.dish{justify-content:space-between;align-items:center;gap:.4rem;display:flex}.dishes .planner{padding:.5rem 0}.grocery li{border-top:1px solid var(--line);justify-content:space-between;align-items:center;display:flex}.grocery li:first-child{border-top:0}.grocery li.done span{color:var(--muted);text-decoration:line-through}label.check{color:var(--text);flex:1;align-items:flex-start;gap:.7rem;padding:.65rem 0;font-size:1rem;display:flex}label.check input{width:22px;height:22px;min-height:0;accent-color:var(--accent);flex:none;margin-top:.1rem;padding:0}button.primary.alt{background:var(--bg);color:var(--accent);border:1px solid var(--accent)}.store-list{margin:0;padding:0;list-style:none}.store-list>li{border-top:1px solid var(--line);padding:.5rem 0}.store-list>li:first-child{border-top:0}.store-row{justify-content:space-between;align-items:center;display:flex}.store-name{align-items:center;gap:.5rem;font-size:1.05rem;display:flex}.store-actions{display:flex}.store-more{flex-wrap:wrap;gap:.2rem;display:flex}.store-edit{align-items:center;gap:.3rem;display:flex}.badge{text-transform:uppercase;letter-spacing:.04em;color:#fff;background:var(--accent);border-radius:10px;padding:.1rem .5rem;font-size:.7rem;font-weight:600}a.link.manage{font-size:.9rem}header>div{flex-wrap:wrap;justify-content:flex-end}.picker{gap:.4rem;display:grid}.picker-list{border:1px solid var(--line);border-radius:10px;margin:0;padding:0;list-style:none;overflow:hidden}.picker-list li+li{border-top:1px solid var(--line)}.picker-list button{background:var(--bg);text-align:left;border:0;justify-content:space-between;gap:.6rem;width:100%;min-height:44px;padding:.5rem .8rem;display:flex}.picker-list button:active{background:var(--line)}.picked{border:1px solid var(--accent);background:var(--bg);border-radius:10px;justify-content:space-between;align-items:center;gap:.6rem;padding:.5rem .8rem;display:flex}.tags{flex-wrap:wrap;gap:.4rem;display:flex}.tags button{border:1px dashed var(--accent);background:var(--bg);min-height:40px;color:var(--accent);border-radius:20px;padding:0 .85rem}.ing-list{margin:0;padding:0;list-style:none}.ing-card{margin-bottom:.6rem}.ing-top{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.ing-name{text-align:left;background:0 0;border:0;flex:1;align-content:center;min-width:0;min-height:44px;padding:.2rem 0;display:grid}.ing-top select{flex:none;width:9rem}.ing-top select.warn{border-color:#c47a12}label.skip{color:var(--text);align-items:center;gap:.6rem;padding:.3rem 0;font-size:.95rem;display:flex}label.skip input{width:22px;height:22px;min-height:0;accent-color:var(--accent);flex:none;padding:0}.ing-detail{border-top:1px solid var(--line);margin-top:.4rem;padding-top:.3rem}.ing-detail h3{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:.7rem 0 .2rem;font-size:.8rem}.ing-detail p{margin:.2rem 0}.similar{margin:0;padding:0;list-style:none}.similar li{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.2rem .6rem;padding:.3rem 0;display:flex}.similar li:first-child{border-top:0}.similar-actions{flex-wrap:wrap;display:flex}.chips{gap:.4rem;margin-bottom:.8rem;padding-bottom:.2rem;display:flex;overflow-x:auto}.chips button{border:1px solid var(--line);background:var(--card);white-space:nowrap;border-radius:20px;flex:none;min-height:40px;padding:0 .85rem}.chips button span{color:var(--muted);margin-left:.2rem;font-size:.85rem}.chips button.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.chips button.on span{color:#fff;opacity:.85}.store-head{justify-content:space-between;align-items:baseline;display:flex}h3.aisle{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:.7rem 0 0;font-size:.8rem}.grocery li{display:block}.line{align-items:center;gap:.3rem;display:flex}.line .grow{flex:1;padding:.5rem 0}button.store-pill{border:1px solid var(--line);background:var(--bg);min-height:34px;color:var(--muted);border-radius:17px;flex:none;padding:0 .7rem;font-size:.8rem}.store-pick{flex-wrap:wrap;gap:.4rem;padding:0 0 .6rem 2rem;display:flex}.store-pick button{border:1px solid var(--line);background:var(--bg);border-radius:20px;min-height:40px;padding:0 .9rem}.store-pick button.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.grocery li.done .store-pill{opacity:.5}.tabbar{z-index:20;background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar a{text-align:center;color:var(--muted);flex:1;padding:.9rem 0;font-weight:500;text-decoration:none}.tabbar a.on{color:var(--accent);font-weight:700}.banner{z-index:10;background:var(--accent);color:#fff;justify-content:space-between;align-items:center;padding:.5rem 1rem;display:flex;position:sticky;top:0}.banner button{color:var(--accent);background:#fff;border:0;border-radius:8px;padding:.4rem .8rem}
