:root{--bg:#f6f7f9;--surface:#ffffff;--border:#dfe3e8;--text:#16202c;--muted:#5d6b7a;--accent:#2563eb;--accent-text:#ffffff;--ok:#15803d;--warn:#b45309;--danger:#b91c1c;--radius:12px}@media (prefers-color-scheme:dark){:root{--bg:#0b1220;--surface:#131c2b;--border:#25324a;--text:#e8edf5;--muted:#94a3b8;--accent:#3b82f6;--accent-text:#ffffff;--ok:#4ade80;--warn:#fbbf24;--danger:#f87171}}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,system-ui,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}.app{max-width:34rem;margin:0 auto;padding:max(1rem,env(safe-area-inset-top)) 1rem max(1.5rem,env(safe-area-inset-bottom))}h1{font-size:1.5rem;margin:0 0 .25rem}h2{font-size:1.05rem;margin:0 0 .5rem}p{margin:0 0 .75rem}.muted{color:var(--muted);font-size:.9rem}.card{border:1px solid var(--border);padding:1rem}.banner,.card{background:var(--surface);border-radius:var(--radius);margin-bottom:1rem}.banner{padding:.85rem 1rem;border:1px solid var(--border)}.banner[data-tone=warn]{border-color:var(--warn)}.banner[data-tone=ok]{border-color:var(--ok)}.banner[data-tone=danger]{border-color:var(--danger)}button{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;min-height:44px;padding:.5rem 1rem;cursor:pointer}button[data-variant=primary]{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}button:disabled{opacity:.55;cursor:default}.row{display:flex;gap:.5rem;flex-wrap:wrap}ol.steps{margin:.5rem 0 0;padding-left:1.25rem}ol.steps li{margin-bottom:.35rem}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.875em;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.1em .35em}a{color:var(--accent)}.page-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.add-link{font-size:.95rem;text-decoration:none;white-space:nowrap}.nav{display:flex;gap:.25rem;margin:.75rem 0 1.25rem;border-bottom:1px solid var(--border)}.nav a{padding:.5rem .75rem;text-decoration:none;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}.nav a[data-active=true]{color:var(--text);border-bottom-color:var(--accent)}.list{list-style:none;margin:0 0 1rem;padding:0}.list li{padding:.6rem .25rem;border-bottom:1px solid var(--border)}.list li,.list li label{display:flex;align-items:center;gap:.75rem}.list li label{flex:1 1;cursor:pointer;min-height:32px}.list li input[type=checkbox]{width:22px;height:22px;flex-shrink:0;accent-color:var(--accent)}.list li[data-done=true] span{text-decoration:line-through;color:var(--muted)}.section-head{display:flex;align-items:center;justify-content:space-between;margin-top:1.5rem}button.ghost{border:none;background:none;color:var(--muted);min-height:36px;padding:.25rem .5rem}.tasks li{align-items:flex-start}.task-body{display:flex;flex-direction:column;gap:.15rem;flex:1 1;min-width:0}.task-title{font-weight:500}.task-meta{display:flex;align-items:center;gap:.35rem;font-size:.85rem}.who{width:9px;height:9px;display:inline-block}.who,button.tick{border-radius:50%;flex-shrink:0}button.tick{width:44px;height:44px;min-height:44px;padding:0;font-size:1.1rem;color:var(--muted)}.tasks li[data-state=overdue] button.tick{border-color:var(--danger);color:var(--danger)}.tasks li[data-state=today] button.tick{border-color:var(--accent);color:var(--accent)}.tasks li[data-state=overdue] .task-meta{color:var(--danger)}.ask{border-color:var(--accent)}.add-row{display:flex;gap:.5rem;margin-bottom:1rem}.add-row input{flex:1 1;min-width:0}input,select{font:inherit;font-size:16px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:.6rem .75rem;min-height:44px}.form{gap:1.25rem}.field,.form{display:flex;flex-direction:column}.field{gap:.4rem;border:none;margin:0;padding:0}.field legend,.field>span:first-child{font-size:.9rem;color:var(--muted);padding:0}.hint{font-size:.82rem}.chips{display:flex;flex-wrap:wrap;gap:.4rem}.chips button{min-height:40px;padding:.35rem .8rem;border-radius:999px;font-size:.9rem}.chips button[data-selected=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.error{color:var(--danger);font-size:.9rem}.sync-note{margin-top:-.5rem}