:root{--bg: #f5f0e6;--surface: #ffffff;--surface-2: #eae1cc;--text: #2e2a22;--muted: #7c7362;--border: #ddd2b8;--accent: #2f6f62;--accent-strong: #234f45;--accent-soft: #d7ebe6;--check: #b8860b;--check-strong: #94690a;--danger: #a8402f;--shadow: rgba(46, 42, 34, .1);--on-accent: #fdfcf8;--nav-height: 64px}@media (prefers-color-scheme: dark){:root{--bg: #1c211f;--surface: #242b28;--surface-2: #2e3733;--text: #eef1ec;--muted: #a8b3ac;--border: #3c453f;--accent: #59a390;--accent-strong: #7ebcac;--accent-soft: #24413a;--check: #dba940;--check-strong: #e8bd63;--danger: #e0776a;--shadow: rgba(0, 0, 0, .35);--on-accent: #0e1a17}}:root[data-theme=dark]{--bg: #1c211f;--surface: #242b28;--surface-2: #2e3733;--text: #eef1ec;--muted: #a8b3ac;--border: #3c453f;--accent: #59a390;--accent-strong: #7ebcac;--accent-soft: #24413a;--check: #dba940;--check-strong: #e8bd63;--danger: #e0776a;--shadow: rgba(0, 0, 0, .35);--on-accent: #0e1a17}:root[data-theme=light]{--bg: #f5f0e6;--surface: #ffffff;--surface-2: #eae1cc;--text: #2e2a22;--muted: #7c7362;--border: #ddd2b8;--accent: #2f6f62;--accent-strong: #234f45;--accent-soft: #d7ebe6;--check: #b8860b;--check-strong: #94690a;--danger: #a8402f;--shadow: rgba(46, 42, 34, .1);--on-accent: #fdfcf8}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:-apple-system,Segoe UI,Helvetica Neue,Arial,sans-serif;color:var(--text);background:var(--bg);min-height:100vh}h1,h2,h3{margin:0;text-wrap:balance}button{font-family:inherit}.container{max-width:900px;margin:0 auto;padding:16px 16px calc(var(--nav-height) + env(safe-area-inset-bottom,0px) + 16px)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border);background:var(--surface);box-shadow:0 1px 4px var(--shadow);position:sticky;top:0;z-index:20}.brand{font-size:20px;font-weight:700;color:var(--accent-strong)}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;margin:16px 0;box-shadow:0 2px 8px var(--shadow)}.row{display:flex;flex-direction:column;gap:10px;align-items:stretch}.filters{display:flex;flex-direction:column;gap:10px;margin:12px 0}input,select,textarea,button{font-size:16px}input,select,textarea{padding:12px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);min-height:44px;width:100%;font-family:inherit}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:var(--muted)}button.primary,button.secondary,button.danger{min-height:44px;border-radius:12px;padding:12px 16px;cursor:pointer;font-weight:600}button.primary{background:var(--accent);color:var(--on-accent);border:1px solid var(--accent)}button.primary:hover{background:var(--accent-strong)}button.secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}button.secondary:hover{background:var(--surface-2)}button.danger{background:var(--surface);color:var(--danger);border:1px solid var(--danger)}button:disabled{opacity:.55;cursor:not-allowed}.panel-header{display:flex;flex-direction:column;align-items:stretch;gap:12px}.panel-header h2{font-size:20px}.muted{color:var(--muted);font-size:14px;margin-top:8px}.error-text{color:var(--danger);font-size:14px}.list{margin-top:12px;display:flex;flex-direction:column;gap:10px}.list-row{display:flex;flex-direction:column;gap:10px;padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.list-row-top{display:flex;align-items:flex-start;gap:12px}.list-main{flex:1;min-width:0}.list-title{font-weight:700;font-size:16px}.list-sub{color:var(--muted);font-size:14px;line-height:1.5}.steps-list{margin:2px 0 0;padding-left:20px;color:var(--muted);font-size:14px;line-height:1.6}.steps-list li{margin-bottom:4px}.list-actions{display:flex;gap:8px}.list-actions button{flex:1;padding:10px 6px;font-size:14px;min-height:44px}.list-check{flex:0 0 auto;width:44px;height:44px;border-radius:999px;border:2px solid var(--border);background:var(--surface);cursor:pointer;display:flex;align-items:center;justify-content:center;color:transparent;font-size:18px;line-height:1;padding:0}.list-check[aria-pressed=true]{background:var(--check);border-color:var(--check);color:var(--on-accent)}.list-row.is-checked .list-title,.list-row.is-checked .list-sub{text-decoration:line-through;color:var(--muted)}.section-title{font-size:16px;font-weight:600;color:var(--accent-strong);margin:20px 0 10px;padding-bottom:6px;border-bottom:2px solid var(--accent-soft)}.section-title:first-child{margin-top:0}.toggle-group{display:flex;flex-wrap:wrap;gap:8px}.toggle-group .toggle{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:999px;padding:10px 14px;min-height:44px;cursor:pointer}.toggle-group .toggle.is-active{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.tabs{display:flex;gap:4px;position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--surface);border-top:1px solid var(--border);box-shadow:0 -2px 10px var(--shadow);padding:6px 6px calc(6px + env(safe-area-inset-bottom,0px))}.tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:none;background:transparent;color:var(--muted);padding:8px 4px;border-radius:12px;font-size:12px;font-weight:600;cursor:pointer;min-height:52px;text-decoration:none}.tab-icon{width:22px;height:22px;display:block}.tab-icon svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.tab.is-active{color:var(--accent-strong);background:var(--accent-soft)}@media (min-width: 768px){.tabs{position:static;flex-wrap:wrap;box-shadow:none;border-top:none;border-bottom:1px solid var(--border);padding:12px 16px;gap:8px}.container{padding:16px}.tab{flex:0 0 auto;flex-direction:row;border:1px solid var(--border);background:var(--surface-2);padding:10px 14px;min-height:auto}.tab.is-active{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.tab-icon{width:18px;height:18px}.panel-header,.row,.filters{flex-direction:row;align-items:center}.panel-header{justify-content:space-between}.list-row{flex-direction:row;justify-content:space-between;align-items:center}.list-actions{flex:0 0 auto}.list-actions button{flex:none}}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1e140c66;display:flex;align-items:flex-end;justify-content:center;z-index:40}.sheet{background:var(--surface);border-radius:16px 16px 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom,0px));width:100%;max-height:92vh;overflow-y:auto;border:1px solid var(--border);border-bottom:none;box-shadow:0 -8px 24px var(--shadow)}.sheet:before{content:"";display:block;width:40px;height:4px;border-radius:999px;background:var(--border);margin:0 auto 12px}.sheet form{display:flex;flex-direction:column;gap:10px}.sheet label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:14px}.sheet .row{flex-direction:row}body.sheet-open{overflow:hidden}@media (min-width: 768px){.sheet-overlay{align-items:center;padding:16px}.sheet{border-radius:14px;max-width:420px;max-height:none;padding:16px}.sheet:before{display:none}}.meal-plan-day-selector{display:flex;align-items:center;gap:8px;margin-top:12px}.meal-plan-day-nav{flex:0 0 auto;min-width:44px;min-height:44px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font-size:18px;line-height:1;cursor:pointer}.meal-plan-day-chips{flex:1;display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:2px}.meal-plan-day-chip{flex:0 0 auto;scroll-snap-align:center;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;padding:10px 16px;min-height:44px;font-weight:600;cursor:pointer;white-space:nowrap}.meal-plan-day-chip.is-active{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.meal-plan-day-chip.is-today:not(.is-active){border-color:var(--accent);color:var(--accent-strong)}.meal-plan-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;box-shadow:0 2px 8px var(--shadow);display:flex;flex-direction:column;gap:14px;margin-top:16px}.meal-plan-slot{display:flex;flex-direction:column;gap:6px}.meal-plan-slot-label{font-weight:600;color:var(--muted);font-size:14px}.meal-plan-slot-value{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);min-height:44px}.meal-plan-slot-empty{color:var(--muted)}.added-to-grocery-banner{background:var(--accent-soft);border:1px solid var(--accent);color:var(--accent-strong);border-radius:10px;padding:12px 14px;font-size:14px;margin-top:12px}.login-form{display:flex;flex-direction:column;gap:12px;margin-top:12px}@media (prefers-reduced-motion: reduce){*{scroll-behavior:auto!important}}
