:root{--bg:#f7f3ec;--card:#fff;--ink:#2b2620;--muted:#7a7264;--accent:#21638c;--accent-dark:#174a68;--line:#e6ddcd;--danger:#b3492f}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;padding-bottom:3rem;font-family:Segoe UI,system-ui,-apple-system,sans-serif}header{background:var(--accent);color:#fff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;padding:1.1rem 1.2rem;display:flex}header h1{margin:0;font-size:1.3rem}main{max-width:780px;margin:0 auto;padding:1.1rem}.toolbar{flex-wrap:wrap;align-items:center;gap:.8rem;margin-bottom:1rem;display:flex}.toolbar label{color:var(--muted);font-size:.9rem}select,button{font:inherit;border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:8px;padding:.5rem .8rem}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.primary:hover{background:var(--accent-dark)}button.ghost{background:0 0}button.link{text-align:left;cursor:pointer;color:inherit;font:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:3px;background:0 0;border:none;padding:0}button.link:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.day-card{background:var(--card);border:1px solid var(--line);border-radius:12px;justify-content:space-between;align-items:center;gap:.8rem;margin-bottom:.7rem;padding:.9rem 1rem;display:flex}.day-card .day-name{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.78rem;display:block}.day-card .meal-name{font-size:1.05rem;font-weight:600}.day-card button{flex-shrink:0;padding:.4rem .6rem;font-size:.85rem}section h2{margin:1.6rem 0 .6rem;font-size:1.05rem}.shop-cat{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:.7rem;padding:.8rem 1rem}.shop-cat h3{color:var(--accent-dark);text-transform:uppercase;letter-spacing:.03em;margin:0 0 .5rem;font-size:.85rem}.shop-cat ul{margin:0;padding:0;list-style:none}.shop-cat li{border-bottom:1px dashed var(--line);align-items:center;gap:.6rem;padding:.3rem 0;font-size:.98rem;display:flex}.shop-cat li:last-child{border-bottom:none}.shop-cat li.checked span.item-text{color:var(--muted);text-decoration:line-through}.shop-cat input[type=checkbox]{width:1.15rem;height:1.15rem;accent-color:var(--accent)}.item-amount{color:var(--muted);font-variant-numeric:tabular-nums;min-width:4.2rem;display:inline-block}#gate{background:var(--bg);z-index:10;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}#gate .box{background:var(--card);border:1px solid var(--line);text-align:center;border-radius:14px;width:100%;max-width:320px;padding:1.8rem}#gate h1{margin-top:0;font-size:1.2rem}#gate input{border:1px solid var(--line);text-align:center;border-radius:8px;width:100%;margin:.8rem 0;padding:.7rem;font-size:1rem}#gate .error{color:var(--danger);min-height:1.2em;font-size:.85rem}.recipe-row{background:var(--card);border:1px solid var(--line);border-radius:12px;justify-content:space-between;align-items:center;gap:.8rem;margin-bottom:.6rem;padding:.7rem 1rem;display:flex}.recipe-row .recipe-name{margin-bottom:.15rem;font-weight:600;display:block}.recipe-row .recipe-meta{color:var(--muted);font-size:.8rem}.recipe-row .recipe-actions{flex-shrink:0;gap:.4rem;display:flex}.recipe-row .recipe-actions button{padding:.4rem .6rem;font-size:.85rem}#add-recipe{margin-bottom:1rem}.recipe-form{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-top:.5rem;padding:1rem}.recipe-form h3{margin-top:0}.recipe-form label{color:var(--muted);margin-bottom:1rem;font-size:.85rem;display:block}.recipe-form label input{border:1px solid var(--line);border-radius:8px;width:100%;margin-top:.3rem;padding:.55rem;font-size:1rem;display:block}.ingredient-row{grid-template-columns:2fr 1fr 1fr 1.3fr auto;gap:.4rem;margin-bottom:.5rem;display:grid}.ingredient-row input,.ingredient-row select{width:100%;padding:.45rem;font-size:.92rem}.ingredient-row button{color:var(--danger);padding:.3rem .5rem}.form-actions{gap:.6rem;margin-top:1rem;display:flex}@media (width<=520px){.ingredient-row{grid-template-columns:1fr 1fr}}#recipe-view{width:calc(100% - 2rem);max-width:420px;color:var(--ink);background:var(--card);border:none;border-radius:14px;padding:1.4rem}#recipe-view::backdrop{background:#0006}#recipe-view h3{margin-top:0}.ingredient-view-list{margin:.8rem 0 0;padding:0;list-style:none}.ingredient-view-list li{border-bottom:1px dashed var(--line);gap:.6rem;padding:.3rem 0;display:flex}.ingredient-view-list li:last-child{border-bottom:none}@media print{header,.toolbar,#plan,.no-print{display:none!important}}
