:root{--bg:#faf6f1;--card:#fff;--ink:#2b2420;--muted:#7a6f66;--line:#e6ddd3;--accent:#b5532f;--accent-ink:#fff;--danger:#a32424;--radius:12px;color:var(--ink);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0}h1,h2,h3{margin:.4em 0;line-height:1.2}h2{font-size:1.4rem}h3{margin-top:1.4em;font-size:1.1rem}a{color:var(--accent)}.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center;margin-top:3rem}.error{color:var(--danger);white-space:pre-line}.app{flex-direction:column;max-width:720px;min-height:100dvh;margin:0 auto;display:flex}.topbar{padding:.7rem 1rem;padding-top:calc(.7rem + env(safe-area-inset-top));border-bottom:1px solid var(--line);background:var(--card);justify-content:space-between;align-items:center;display:flex}.topbar h1{color:var(--accent);margin:0;font-size:1.1rem}.content{flex:1;padding:1rem 1rem 5.5rem}.tabbar{background:var(--card);border-top:1px solid var(--line);max-width:720px;padding-bottom:env(safe-area-inset-bottom);margin:0 auto;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:600;text-decoration:none}.tabbar a.active{color:var(--accent);box-shadow:inset 0 3px 0 var(--accent)}button,.button,input,select,textarea{font:inherit}input,select,textarea{border:1px solid var(--line);border-radius:var(--radius);width:100%;color:var(--ink);background:#fff;padding:.65rem .75rem}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}label{color:var(--muted);margin-top:.8rem;font-size:.9rem;display:block}label input,label select,label textarea{color:var(--ink);margin-top:.25rem;font-size:1rem}button,.button{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);color:var(--ink);cursor:pointer;text-align:center;padding:.6rem 1rem;text-decoration:none;display:inline-block}button.primary,.button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}button.danger{color:var(--danger);border-color:var(--danger);background:0 0}button.link,a.link{color:var(--muted);font-size:inherit;background:0 0;border:none;padding:.3rem;text-decoration:none}button.icon{padding:.5rem .7rem}button:disabled{opacity:.6;cursor:default}.row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.row.between{justify-content:space-between}.actions{margin:1rem 0}.back{margin-bottom:.5rem;text-decoration:none;display:inline-block}.form>button{margin-top:1rem}.form>.primary{width:100%;margin-top:1.4rem;padding:.85rem}.search{margin:.8rem 0 .4rem}.chips{flex-wrap:wrap;gap:.4rem;margin:.5rem 0;display:flex}.chip{border-radius:999px;padding:.3rem .8rem;font-size:.85rem}.chip.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.chip.static{color:var(--ink);background:#f0e6dc;border:none}.list{gap:.5rem;margin:.8rem 0;padding:0;list-style:none;display:grid}.list a{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);flex-direction:column;gap:.15rem;padding:.8rem 1rem;text-decoration:none;display:flex}.list .title{font-weight:600}.ingredients{padding-left:1.2rem}.ingredients li{margin:.25rem 0}.instructions{white-space:pre-line;line-height:1.5}.grid3{grid-template-columns:repeat(3,1fr);gap:.6rem;display:grid}.ing{grid-template-columns:4.2rem 6.2rem 1fr auto;align-items:start;gap:.4rem;margin-bottom:.5rem;display:grid}.ing .note{grid-column:1/4}.ing .icon{grid-area:1/4}.ing input,.ing select{padding:.55rem .5rem;font-size:.95rem}.login{max-width:360px;margin:0 auto;padding:18vh 1.2rem 1rem}.login h1{text-align:center;color:var(--accent);margin-bottom:1.2rem}.login .primary{width:100%;margin-top:1.2rem;padding:.85rem}.overlay{z-index:10;background:#00000073;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.dialog{background:var(--card);border-radius:var(--radius);width:100%;max-width:480px;max-height:90dvh;padding:1rem;overflow:auto}.dialog textarea{margin:.6rem 0;font-size:.9rem}.weeknav{margin:.6rem 0 1rem}.center-col{flex-direction:column;align-items:center;display:flex}.week{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.day{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:.6rem .8rem}.day.today{border-color:var(--accent);box-shadow:inset 4px 0 0 var(--accent)}.day h3{margin:0 0 .4rem;font-size:1rem}.day h3:first-letter{text-transform:uppercase}.slot{text-align:left;border:1px dashed var(--line);background:0 0;align-items:baseline;gap:.8rem;width:100%;margin-top:.3rem;display:flex}.slot.filled{background:#fdf3ec;border-style:solid}.slotname{width:3rem;color:var(--muted);flex-shrink:0;font-size:.85rem}.slotmeal{font-weight:600}.slot:not(.filled) .slotmeal{color:var(--muted);font-weight:400}.list.pick{max-height:40dvh;overflow:auto}.list.pick button{text-align:left;flex-direction:column;gap:.15rem;width:100%;display:flex}.grid2{grid-template-columns:1fr 1fr;gap:.6rem;display:grid}.add-item{grid-template-columns:4rem 6rem 1fr;gap:.4rem;margin:.8rem 0;display:grid}.add-item .name{grid-area:1/1/auto/4}.add-item .qty{grid-area:2/1}.add-item select{grid-area:2/2}.add-item button{grid-area:2/3}.aisle h3{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.3rem;font-size:.85rem}.shop-list{gap:.3rem;margin:0 0 .8rem;padding:0;list-style:none;display:grid}.shop-item{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:.7rem;padding:.3rem .8rem;display:flex}.shop-item input[type=checkbox]{width:1.3rem;height:1.3rem;accent-color:var(--accent);flex-shrink:0}.shop-text{text-align:left;background:0 0;border:none;flex:1;padding:.55rem 0}.shop-name{font-weight:600}.shop-item.done .shop-text{opacity:.55;text-decoration:line-through}.check{color:var(--ink);align-items:flex-start;gap:.7rem;width:100%;margin:0;padding:.5rem 0;font-size:1rem;display:flex}.check input{width:1.3rem;height:1.3rem;accent-color:var(--accent);flex-shrink:0;margin-top:.15rem}.badge{background:#f0e6dc;border-radius:999px;margin-left:.5rem;padding:.1rem .5rem;font-size:.75rem}.block{display:block}.wide{width:100%;margin-top:.8rem;padding:.85rem}.import-box{border:1px dashed var(--line);border-radius:var(--radius);background:#f6ede4;margin:.8rem 0;padding:.2rem .9rem .9rem}.import-box button{margin-top:.6rem}.notice{color:#2f6b3a;margin:.6rem 0 0}.ing .raw{grid-column:1/-1;margin:-.2rem 0 .2rem}.events{color:var(--muted);margin:0 0 .4rem;padding:0;font-size:.85rem;list-style:none}.events li{padding:.05rem 0}.evtime{font-variant-numeric:tabular-nums;min-width:2.6rem;display:inline-block}.slot.warn{background:#fff8e6;border-color:#d9a441}.slot.warn.filled{background:#fdf0d8}.slotbody{flex-direction:column;gap:.1rem;min-width:0;display:flex}.slotwarn{color:#8a5a00;font-size:.8rem;font-weight:500}.warnbox{border-radius:var(--radius);color:#5c3d00;background:#fff8e6;border:1px solid #d9a441;margin:.6rem 0;padding:.6rem .8rem}.warnbox ul{margin:.3rem 0;padding-left:1.1rem}.ratingbar{justify-content:space-between;align-items:center;margin:.4rem 0 .8rem;display:flex}.stars{display:flex}.star,.heart{color:#cfc4b8;background:0 0;border:none;min-height:0;padding:.1rem .2rem;font-size:1.7rem;line-height:1}.star.on{color:#e0a020}.heart.on{color:#c2362d}.marks{white-space:nowrap;margin-left:.3rem;font-size:.85rem}.marks .star,.marks .heart{padding:0 .1rem;font-size:.9rem}.marmiton-search{border-bottom:1px dashed var(--line);margin:.6rem 0 .4rem;padding-bottom:.6rem}.marmiton-search .button{margin-top:.5rem;display:inline-block}.marmiton-search p{margin:.4rem 0 0}.topactions{align-items:center;gap:1rem;display:flex}.ok{color:#1f6b3a;font-weight:500}.members{margin:0 0 1rem;padding:0;list-style:none}.members li{border-bottom:1px solid var(--line);padding:.5rem 0}
