:root{--ink:#1a1d15;--text:#494d42;--muted:#777b70;--paper:#f4f2ec;--paper-warm:#faf8f4;--surface:#fff;--line:#1a1d151c;--gold:#b8933f;--gold-deep:#8a6d2f;--sage:#5a7050;--sage-light:#7a946f;--blue:#4a7a9e;--blue-deep:#2e5977}*{box-sizing:border-box}html,body{background:var(--paper);min-height:100%;color:var(--ink);margin:0;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,textarea{font:inherit}button{cursor:pointer;border:0}textarea{resize:vertical;border:1px solid var(--line);background:var(--paper-warm);width:100%;min-height:118px;color:var(--ink);border-radius:8px;padding:10px;line-height:1.4}.login-screen{background:radial-gradient(circle at 20% 10%,#b8933f2e,#0000 32%),linear-gradient(145deg,#10140f,#172417 54%,#0f1a1d);place-items:center;min-height:100dvh;padding:24px;display:grid}.login-panel{background:var(--paper-warm);border-radius:8px;gap:20px;width:min(100%,390px);padding:22px;display:grid;box-shadow:0 24px 80px #00000047}.brand-lockup,.page-header p{color:var(--sage);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:12px;font-weight:800}.brand-lockup span,.brand-row span:last-child{color:var(--muted);letter-spacing:.16em;text-transform:uppercase;margin-left:10px;font-size:11px}.login-panel h1,.page-header h1{max-width:12ch;margin:8px 0 0;font-family:ui-serif,Georgia,Cambria,Times New Roman,serif;font-size:35px;font-weight:700;line-height:1.05}.login-copy,.page-header span,.wide-panel p,.item-row p,.meal-row p,.date-card p,.muted{color:var(--text)}.login-form{gap:10px;display:grid}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.login-form label,.source-note{color:var(--muted);letter-spacing:.04em;font-size:12px;font-weight:750}.login-form input{border:1px solid var(--line);background:#fff;border-radius:8px;height:48px;padding:0 13px}.login-form button,.primary-action,.wide-panel button,.item-row button,.lock-form button{background:var(--sage);color:#fff;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:38px;padding:0 14px;font-size:14px;font-weight:750;display:inline-flex}.login-form button:disabled,.primary-action:disabled{opacity:.38;cursor:not-allowed}.form-error{color:#9d2f2f;margin:0;font-size:13px}.lock-form{z-index:5;top:max(14px, env(safe-area-inset-top));position:fixed;right:14px}.lock-form button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1a1d15b8;min-height:32px;font-size:12px}.app-shell{max-width:760px;min-height:100dvh;padding:max(34px, env(safe-area-inset-top)) 18px calc(104px + env(safe-area-inset-bottom));margin:0 auto}.phone-surface{gap:18px;display:grid}.brand-row{color:var(--ink);align-items:center;gap:8px;display:flex}.brand-row strong{font-family:ui-serif,Georgia,Cambria,Times New Roman,serif;font-size:17px}.brand-row em{color:var(--gold);font-style:italic}.brand-mark{color:var(--gold)}.page-stack{gap:14px;padding-bottom:86px;display:grid}.page-header{gap:12px;display:grid}.page-header.compact h1{max-width:14ch;font-size:31px}.top-title{text-align:center;margin:0;font-size:18px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.metric,.card,.wide-panel{border:1px solid var(--line);background:var(--surface);border-radius:8px;box-shadow:0 10px 30px #5a70500f}.metric{border-left:3px solid var(--blue);min-height:150px;color:inherit;text-align:left;align-content:start;gap:7px;padding:16px;transition:border-color .14s,box-shadow .14s,transform .14s;display:grid}.metric.gold{border-left-color:var(--gold)}.metric:hover,.metric:focus-visible{transform:translateY(-1px);box-shadow:0 14px 34px #5a705021}.metric:focus-visible,.section-heading button:focus-visible{outline-offset:2px;outline:2px solid #4a7a9e61}.metric svg{color:var(--blue)}.metric.gold svg,.metric.gold strong{color:var(--gold)}.metric strong{color:var(--blue);font-size:32px;line-height:1}.metric span,.wide-panel h2,.card h2,.item-row h3,.date-card h2{margin:0;font-size:18px}.metric p{color:var(--muted);margin:0;font-size:13px}.wide-panel{border-left:3px solid var(--sage);justify-content:space-between;align-items:center;gap:14px;padding:16px;display:flex}.wide-panel p{margin:6px 0 0;font-size:14px}.card{gap:12px;padding:14px;display:grid}.section-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-heading button{border:1px solid var(--line);background:var(--paper);min-height:32px;color:var(--sage);border-radius:8px;padding:0 10px;font-size:12px;font-weight:800}.accent-blue{border-left:3px solid var(--blue)}.accent-gold{border-left:3px solid var(--gold)}.card-title{justify-content:space-between;align-items:center;gap:12px;display:flex}.card-title span{align-items:center;gap:8px;font-weight:800;display:inline-flex}.card-title em{border:1px solid var(--line);background:var(--paper);color:var(--gold-deep);border-radius:999px;padding:5px 9px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;font-style:normal;font-weight:750}.empty-panel{border:1px solid var(--line);background:var(--paper-warm);border-radius:8px;gap:7px;padding:12px;display:grid}.empty-panel span{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.file-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.file-button{background:var(--sage);color:#fff;border-radius:8px;justify-content:center;align-items:center;gap:7px;min-height:40px;font-size:14px;font-weight:750;display:inline-flex;position:relative;overflow:hidden}.file-button.secondary{background:var(--paper);color:var(--sage);border:1px solid var(--line)}.file-button input{opacity:0;position:absolute;inset:0}.fridge-preview{object-fit:cover;border:1px solid var(--line);border-radius:8px;width:100%;max-height:220px}.item-row{border:1px solid var(--line);background:var(--paper-warm);border-radius:8px;grid-template-columns:1fr auto;gap:12px;padding:12px;display:grid}.item-row.done{opacity:.62}.item-row h3,.item-row p{margin:0}.item-row p{margin-top:6px;font-size:14px;line-height:1.38}.item-row button{background:var(--paper);min-width:42px;color:var(--sage);border:1px solid var(--line);align-self:start}.kind{color:var(--sage);font-size:12px;font-weight:800}.kind span,.item-meta em{color:var(--muted);font-style:normal;font-weight:650}.kind-grocery,.kind-dateidea{color:var(--gold-deep)}.kind-decision{color:var(--blue-deep)}.item-meta{color:var(--muted);align-items:center;gap:8px;margin-top:10px;font-size:12px;display:flex}.item-meta span{color:var(--gold-deep);background:#b8933f26;border-radius:999px;padding:4px 8px;font-weight:800}.meal-list{padding:6px 14px}.meal-row{border-bottom:1px solid var(--line);grid-template-columns:68px 1fr auto;align-items:start;gap:12px;padding:14px 0;display:grid}.meal-row:last-child{border-bottom:0}.meal-row span,.meal-row em,.date-card span,.date-card em{color:var(--muted);font-size:12px;font-style:normal;font-weight:800}.meal-row strong{display:block}.meal-row p,.date-card p{margin:5px 0 0;font-size:14px}.grocery-list{gap:8px}.grocery{background:var(--paper-warm);width:100%;min-height:44px;color:var(--ink);text-align:left;border-radius:8px;grid-template-columns:28px 1fr auto;align-items:center;gap:9px;padding:8px 10px;display:grid}.grocery span{border:1px solid var(--line);color:#0000;border-radius:50%;place-items:center;width:22px;height:22px;display:grid}.grocery.checked{color:var(--muted)}.grocery.checked span{color:#fff;background:var(--sage)}.grocery em{color:var(--muted);font-size:12px;font-style:normal}.date-card{position:relative;overflow:hidden}.date-card:after{content:"";background:linear-gradient(135deg,#b8933f2e,#0000);width:76px;height:100%;position:absolute;top:0;right:0}.prompt span{color:var(--ink);font-weight:800}.tab-bar{left:50%;bottom:max(14px, env(safe-area-inset-bottom));z-index:4;border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffd1;border-radius:8px;grid-template-columns:repeat(5,1fr);gap:4px;width:min(100% - 28px,420px);padding:8px;display:grid;position:fixed;transform:translate(-50%);box-shadow:0 16px 50px #1a1d1529}.tab-bar button{min-height:52px;color:var(--ink);background:0 0;border-radius:8px;place-items:center;gap:3px;font-size:11px;font-weight:750;display:grid}.tab-bar button.active{background:var(--paper);color:var(--sage)}@media (min-width:720px){.app-shell{padding-top:48px}.phone-surface{border:1px solid var(--line);background:#faf8f4b8;border-radius:8px;padding:28px}.tab-bar{margin:16px auto 0;position:static;bottom:auto;left:auto;transform:none}}
