:root { color-scheme: light; --ink:#171717; --muted:#707070; --line:#e4e4df; --paper:#f5f5f1; --card:#fff; --accent:#1f5c48; --danger:#9a342c; }
* { box-sizing: border-box; }
body { margin:0; font:16px/1.45 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; color:var(--ink); background:var(--paper); }
a { color:inherit; }
.site-header { min-height:64px; padding:0 5vw; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); background:rgba(255,255,255,.82); }
.brand { font-weight:750; text-decoration:none; letter-spacing:-.02em; }
.header-actions { display:flex; align-items:center; gap:16px; }
.page { max-width:1180px; margin:0 auto; padding:44px 24px 72px; }
.page-heading { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:24px; }
h1,h2,p { margin-top:0; } h1 { font-size:clamp(2rem,5vw,3.4rem); line-height:1; letter-spacing:-.045em; margin-bottom:0; } h2 { font-size:1.1rem; }
.eyebrow { color:var(--muted); text-transform:uppercase; letter-spacing:.12em; font-size:.75rem; font-weight:750; margin-bottom:8px; }
.muted { color:var(--muted); }.grid { display:grid; gap:20px; }.grid.two { grid-template-columns:repeat(2,minmax(0,1fr)); }.board-grid { grid-template-columns:minmax(0,1.7fr) minmax(280px,.8fr); align-items:start; }
.card { background:var(--card); border:1px solid var(--line); border-radius:18px; padding:22px; box-shadow:0 10px 32px rgba(0,0,0,.035); }.narrow { max-width:560px; margin:6vh auto 0; }.main-card { min-height:400px; }
.stack { display:grid; gap:14px; }.stack-gap { display:grid; gap:20px; }.compact { margin-top:14px; }
form div { display:grid; gap:6px; } label { font-size:.82rem; font-weight:700; } input,textarea,select { width:100%; border:1px solid #cecec8; border-radius:10px; padding:10px 12px; font:inherit; background:#fff; } input:focus,textarea:focus,select:focus { outline:2px solid rgba(31,92,72,.18); border-color:var(--accent); }
button,.secondary { border:0; border-radius:10px; padding:10px 14px; font:inherit; font-weight:700; cursor:pointer; text-decoration:none; display:inline-flex; justify-content:center; align-items:center; }.primary { background:var(--accent); color:#fff; }.secondary { background:#ecece7; color:var(--ink); }.danger { background:#f7e7e5; color:var(--danger); }.link-button { padding:0; background:none; color:var(--muted); }
.household-list { display:grid; gap:10px; }.household-link { display:flex; justify-content:space-between; align-items:center; text-decoration:none; padding:14px; border:1px solid var(--line); border-radius:12px; }.household-link span { color:var(--muted); font-size:.85rem; }
.section-heading { display:flex; justify-content:space-between; align-items:center; }.count { color:var(--muted); }.task-list { display:grid; }.task { display:grid; grid-template-columns:38px 1fr; gap:12px; padding:17px 0; border-top:1px solid var(--line); }.task:first-child { border-top:0; }.task.overdue .task-title { color:var(--danger); }.check { width:34px; height:34px; border:1px solid var(--line); border-radius:50%; background:#fff; color:transparent; padding:0; }.check:hover { color:#fff; background:var(--accent); border-color:var(--accent); }.task-title { font-weight:750; text-decoration:none; }.task-body p { color:var(--muted); margin:4px 0 6px; }.task-meta { display:flex; flex-wrap:wrap; gap:8px 16px; color:var(--muted); font-size:.8rem; }.empty { text-align:center; padding:70px 20px; color:var(--muted); }.empty strong { color:var(--ink); }
.people { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }.person { background:#f1f1ec; padding:7px 9px; border-radius:999px; font-size:.85rem; }.person small { color:var(--muted); }.completed-section { margin-top:20px; }.completed-list { display:grid; gap:8px; }.completed-task { display:flex; align-items:center; justify-content:space-between; color:var(--muted); }.danger-zone { border-top:1px solid var(--line); margin-top:22px; padding-top:18px; display:flex; justify-content:space-between; }.message { padding:12px 14px; border-radius:10px; margin-bottom:16px; background:#e8f2ed; }.message.error { background:#f7e7e5; color:var(--danger); }
.errorlist { color:var(--danger); margin:0; padding-left:18px; font-size:.85rem; }
details summary { cursor:pointer; color:var(--muted); font-size:.9rem; }
@media (max-width:760px) { .grid.two,.board-grid { grid-template-columns:1fr; }.page { padding:28px 16px 56px; }.site-header { padding:0 16px; }.page-heading { align-items:start; flex-direction:column; }.header-actions .muted { display:none; } }
