:root{--ink:#22251f;--muted:#72766c;--paper:#fffbf4;--surface:#fff;--line:#e8e0d2;--accent:#e75e3d;--accent-dark:#bd4329;--sage:#dce6cc;--danger:#b93232;color:var(--ink);background:var(--paper);font-family:Arial,Helvetica,sans-serif}.invite{gap:4px;display:grid}.invite form{gap:6px;display:flex}.invite input{width:180px;min-height:36px}.invite form button{padding:7px 10px}*{box-sizing:border-box}body{background:var(--paper);margin:0}button,input,select,textarea{font:inherit}button{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:10px;padding:10px 14px;font-weight:700}button:hover{background:var(--accent-dark)}button.secondary,.secondary{color:var(--ink);background:#f2ece0}button.text-button{color:var(--muted);background:0 0;padding:7px}button.danger{color:var(--danger);background:#fff0ef}a{color:inherit}label{color:var(--muted);gap:6px;font-size:.9rem;display:grid}input,select,textarea{border:1px solid var(--line);width:100%;min-height:42px;color:var(--ink);background:#fff;border-radius:9px;padding:9px 10px}textarea{resize:vertical;min-height:76px}h1,h2,p{margin-top:0}h1{letter-spacing:-.04em;margin-bottom:8px;font-family:Georgia,serif;font-size:clamp(2rem,5vw,3.4rem)}h2{font-size:1rem}small,.muted{color:var(--muted)}.login-shell{background:radial-gradient(circle at 100% 0, #f6ddba, transparent 35%), var(--paper);place-items:center;min-height:100dvh;padding:24px;display:grid}.login-card{border:1px solid var(--line);background:#fff;border-radius:24px;width:min(100%,520px);padding:clamp(24px,6vw,48px);box-shadow:0 20px 60px #a4693a19}.login-card>p{color:var(--muted);line-height:1.5}.stack{gap:14px;display:grid}.eyebrow{color:var(--accent);letter-spacing:.13em;margin-bottom:8px;font-size:.72rem;font-weight:800}.notice,.dev-link{background:#eff5e6;border-radius:9px;padding:10px;font-size:.9rem}.error{color:var(--danger);background:#fff0ef;border-radius:9px;padding:10px}.app-shell{max-width:1240px;min-height:100dvh;margin:auto;padding:0 20px}.topbar{justify-content:space-between;align-items:center;gap:20px;min-height:72px;display:flex}.brand{font-family:Georgia,serif;font-size:1.7rem;font-weight:700;text-decoration:none}.brand span{color:var(--accent)}.household-picker{margin-left:auto}.household-picker label{grid-template-columns:auto 170px;align-items:center}.tabs{border-bottom:1px solid var(--line);gap:4px;display:flex;overflow:auto}.tabs button{color:var(--muted);white-space:nowrap;background:0 0;border-radius:0;padding:13px 14px}.tabs button.active{color:var(--ink);box-shadow:inset 0 -3px var(--accent)}.content{padding:38px 0 70px}.section-heading{justify-content:space-between;align-items:start;gap:18px;margin-bottom:24px;display:flex}.section-heading p:not(.eyebrow){color:var(--muted);margin-bottom:0}.week-actions{white-space:nowrap;align-items:center;gap:8px;font-size:.85rem;display:flex}.icon-button{background:var(--ink);width:38px;height:38px;padding:0}.suggestion{background:var(--sage);border-radius:14px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;padding:16px;display:flex}.suggestion div{gap:4px;display:grid}.suggestion span{color:#59634d;font-size:.9rem}.week-grid{grid-template-columns:repeat(7,1fr);gap:10px;display:grid}.day-card{border:1px solid var(--line);background:#fff;border-radius:14px;min-height:180px;padding:11px}.day-card h2{text-transform:capitalize;margin-bottom:10px}.meal-slot{margin:7px 0;position:relative}.meal-slot-main{text-align:left;width:100%;color:var(--ink);background:#faf7f1;gap:4px;padding:10px 36px 10px 10px;display:grid}.meal-slot-main:hover{background:#f1e9dc}.meal-slot-main.meal-slot-empty{border:1px dashed var(--line);color:var(--muted);background:0 0}.meal-slot-main.meal-slot-empty:hover{background:#faf7f1;border-color:#d7cbb8}.meal-slot-main span{color:var(--muted);font-size:.72rem;font-weight:400}.meal-slot-main small{font-size:.7rem}.meal-slot-main.meal-slot-empty strong{color:var(--muted);font-weight:600}.meal-slot-main.meal-slot-empty small{color:#9a998f}.meal-slot-quick{width:24px;height:24px;color:var(--ink);border:1px solid var(--line);background:#fff;padding:0;font-size:.85rem;line-height:1;position:absolute;top:8px;right:8px}.meal-slot-quick:hover{background:var(--sage)}.modal-backdrop{z-index:3;background:#1d1b1777;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--paper);border-radius:18px;width:min(100%,480px);max-height:90dvh;padding:28px;position:relative;overflow:auto}.modal-wide{width:min(100%,780px)}.modal .close{color:var(--ink);background:0 0;padding:4px;font-size:1.5rem;position:absolute;top:12px;right:12px}.modal-actions{justify-content:space-between;gap:10px;margin-top:18px;display:flex}.week-preview{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-bottom:18px;display:grid}.week-preview-day{border:1px solid var(--line);background:#faf7f1;border-radius:10px;gap:3px;padding:8px;font-size:.78rem;display:grid}.week-preview-day strong{text-transform:capitalize;font-size:.78rem}.week-preview-day span.muted{color:var(--muted)}.shopping-groups{columns:2 290px;column-gap:18px}.shopping-group{break-inside:avoid;border:1px solid var(--line);background:#fff;border-radius:14px;margin-bottom:18px;padding:16px}.shopping-group h2{color:var(--accent)}.check-row{color:var(--ink);border-top:1px solid #f2eee8;grid-template-columns:22px 1fr auto;align-items:center;gap:8px;padding:9px 0}.check-row input{width:16px;height:16px;min-height:auto;accent-color:var(--accent)}.check-row.checked span,.check-row.checked strong{color:var(--muted);text-decoration:line-through}.quick-add{gap:10px;max-width:570px;margin-bottom:18px;display:flex}.renewable-list{gap:8px;max-width:700px;display:grid}.renewable{border:1px solid var(--line);background:#fff;border-radius:10px;justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.archived{opacity:.7}.recipe-form{border:1px solid var(--line);background:#fff;border-radius:14px;gap:12px;margin-bottom:22px;padding:20px;display:grid}.ingredient-row{grid-template-columns:2fr .8fr .8fr 1.2fr auto;gap:7px;display:grid}.ingredient-row input{min-width:0}.recipe-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.recipe-card{border:1px solid var(--line);background:#fff;border-radius:14px;padding:16px}.recipe-card-actions{gap:8px;margin-top:12px;display:flex}.recipe-card-actions button{padding:7px 10px}.recipe-card p{color:var(--muted);font-size:.85rem}.recipe-card ul{color:var(--muted);margin:0;padding-left:18px;font-size:.85rem;line-height:1.6}.empty{color:var(--muted);text-align:center;border:1px dashed #d9cdbd;border-radius:14px;gap:8px;padding:30px;display:grid}.empty strong{color:var(--ink)}footer{border-top:1px solid var(--line);color:var(--muted);padding:16px 0 26px;font-size:.8rem}@media (max-width:800px){.app-shell{padding:0 14px}.topbar{gap:8px}.household-picker{margin-left:0}.household-picker label{grid-template-columns:1fr}.household-picker select{width:130px}.topbar .text-button{font-size:.75rem}.content{padding-top:24px}.section-heading{display:grid}.week-grid{grid-template-columns:1fr}.day-card{grid-template-columns:86px 1fr 1fr;align-items:stretch;gap:6px;min-height:0;display:grid}.day-card h2{margin:0;font-size:.82rem}.meal-slot{margin:0}.ingredient-row{grid-template-columns:1fr 70px 70px}.ingredient-row input:nth-of-type(4){grid-column:1/4}.suggestion{flex-direction:column;align-items:start}.quick-add{flex-direction:column}.week-actions{flex-wrap:wrap}.modal{padding:24px 18px}}.duplicate-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px;display:grid}@media (max-width:520px){.duplicate-controls{grid-template-columns:1fr}}
