:root{--ink:#1c1a17;--muted:#6b635a;--line:#e4ded6;--paper:#fbf9f6;--accent:#7a4419}*{box-sizing:border-box}body{margin:0;font:16px/1.55 ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:var(--paper)}main{max-width:46rem;margin:0 auto;padding:2.5rem 1.25rem 4rem}h1{font-size:1.75rem;margin:0 0 .25rem;letter-spacing:-.01em}h2{font-size:1.05rem;margin:0 0 .35rem}a{color:var(--accent)}.subtitle{color:var(--muted);margin:0 0 2rem}.bar{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}.notice{border:1px solid var(--line);border-left:3px solid var(--accent);padding:.85rem 1rem;margin-bottom:1.75rem;font-size:.9rem;color:var(--muted)}.card,.notice{background:#fff}.card{border:1px solid var(--line);padding:1rem 1.1rem;margin-bottom:.75rem}.card .meta{color:var(--muted);font-size:.85rem}.empty{border:1px dashed var(--line);padding:2rem 1.25rem;text-align:center;color:var(--muted)}form.stack{display:flex;flex-direction:column;gap:.85rem;max-width:22rem}label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.25rem}input{width:100%;padding:.55rem .65rem;font-size:1rem;border:1px solid var(--line);background:#fff;color:var(--ink)}button{padding:.55rem 1rem;font-size:.95rem;cursor:pointer;border:1px solid var(--ink);background:var(--ink);color:var(--paper)}button.quiet{background:none;color:var(--muted);border-color:var(--line)}button[disabled]{opacity:.55;cursor:progress}.error{color:#8c2f14;font-size:.9rem}.tabs{display:flex;gap:.5rem;margin-bottom:1.25rem}a.card{display:block;text-decoration:none;color:inherit}a.card:hover{border-color:var(--accent)}a.card h2{color:var(--accent)}.photo,section{margin-bottom:2rem}.photo{display:block;width:100%;height:auto;max-height:22rem;object-fit:cover;border:1px solid var(--line);background:#fff}ul.ingredients{list-style:none;padding:0;margin:0}ul.ingredients li{padding:.4rem 0;border-bottom:1px solid var(--line)}.measure{display:inline-block;min-width:6rem;color:var(--muted)}.estimated{margin-left:.5rem;padding:.05rem .35rem;font-size:.72rem;border:1px solid var(--line);color:var(--muted);vertical-align:middle}ol.steps{padding-left:1.4rem;margin:0}ol.steps li{padding:.35rem 0}ul.verdicts{list-style:none;padding:0;margin:0}ul.verdicts li{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--line)}.scale{display:flex;gap:.3rem}.scale button{min-width:2.2rem;padding:.35rem 0}.filters{margin-bottom:1.5rem}.filters form{display:flex;gap:.5rem;margin-bottom:.75rem}.filters input[type=search]{flex:1 1}.chips{display:flex;flex-wrap:wrap;gap:.4rem}.chip{display:inline-block;padding:.3rem .7rem;font-size:.85rem;border:1px solid var(--line);background:#fff;color:var(--muted);text-decoration:none}.chip:hover{border-color:var(--accent)}.chip.on{border-color:var(--ink)}.chip.on,a.button{background:var(--ink);color:var(--paper)}a.button{display:inline-block;padding:.55rem 1rem;font-size:.95rem;border:1px solid var(--ink);text-decoration:none}a.button:hover{opacity:.9}textarea{width:100%;padding:.55rem .65rem;font:inherit;line-height:1.5;border:1px solid var(--line);background:#fff;color:var(--ink);resize:vertical}.row{display:flex;gap:.75rem}.row>div{flex:1 1}.danger{border-color:#8c2f14;background:none;color:#8c2f14}.parsed{margin:.5rem 0 0;padding:0;list-style:none;font-size:.85rem;color:var(--muted)}.parsed li{padding:.15rem 0}.confirm{display:inline-flex;align-items:center;gap:.5rem;flex-wrap:wrap}.matched{margin:.35rem 0 0;font-size:.8rem;color:var(--accent)}.week{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));grid-gap:.75rem;gap:.75rem}.day{border:1px solid var(--line);background:#fff;padding:.75rem;margin:0}.day.today{border-color:var(--accent)}.day h3{font-size:.9rem;margin:0 0 .5rem}.day .meta{font-size:.8rem}.entry{padding:.4rem 0;border-top:1px solid var(--line)}.entry:first-of-type{border-top:none}.entry a{font-size:.9rem}.entry .scale button{min-width:2.1rem;padding:.2rem 0;font-size:.75rem}ul.waiting{list-style:none;padding:0;margin:0}ul.waiting li{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;padding:.5rem 0;border-bottom:1px solid var(--line)}ul.waiting li a{flex:1 1;min-width:8rem}.days{display:flex;gap:.25rem}.days button{min-width:2.6rem;padding:.25rem 0;font-size:.75rem}.card-actions{margin-top:.6rem}.card-actions button{font-size:.8rem;padding:.25rem .6rem}.aisle{margin-bottom:1.75rem}.aisle h2{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding-bottom:.3rem;margin-bottom:.5rem}.aisle h2,.line{border-bottom:1px solid var(--line)}.line{display:flex;gap:.75rem;align-items:flex-start;padding:.6rem 0}.line.ticked .what{opacity:.45;text-decoration:line-through}.line .tick input{width:1.15rem;height:1.15rem}.line .what{flex:1 1;min-width:0}.buy{margin:0 0 .2rem;font-size:1.02rem}.buy strong{color:var(--accent)}.split{margin:0;font-size:.82rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:.15rem .75rem}.split .spare{color:var(--accent)}.chip.pantry{margin-left:.5rem;font-size:.7rem;padding:.1rem .4rem}ul.chips{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;padding:0;margin:0}ul.chips button.chip{cursor:pointer}