:root{--bg: #f9fafb;--fg: #111827;--muted: #6b7280;--border: #e5e7eb;--accent: #4f46e5;--accent-fg: #ffffff;--danger: #dc2626;--success: #059669;font-family:-apple-system,Helvetica Neue,Hiragino Kaku Gothic ProN,system-ui,sans-serif;color:var(--fg);background:var(--bg)}*{box-sizing:border-box}body{margin:0}.page{max-width:720px;margin:2rem auto;padding:0 1rem}h1{font-size:1.5rem;margin:0 0 1.5rem}.flash{margin-bottom:1rem;padding:.6rem .8rem;border-radius:.5rem;font-size:.9rem}.flash.notice{background:#ecfdf5;color:var(--success);border:1px solid #a7f3d0}.flash.alert{background:#fef2f2;color:var(--danger);border:1px solid #fecaca}form.todo-form{display:grid;gap:.6rem;margin-bottom:1.5rem;padding:1rem;background:#fff;border:1px solid var(--border);border-radius:.75rem}form.todo-form label{font-size:.85rem;color:var(--muted)}form.todo-form input[type=text],form.todo-form textarea{width:100%;padding:.55rem .7rem;border:1px solid var(--border);border-radius:.4rem;font-size:1rem;font:inherit}form.todo-form input[aria-invalid=true],form.todo-form textarea[aria-invalid=true]{border-color:var(--danger)}form.todo-form .error{color:var(--danger);font-size:.8rem;margin-top:.15rem}form.todo-form button{justify-self:end;background:var(--accent);color:var(--accent-fg);padding:.5rem 1rem;border:0;border-radius:.4rem;cursor:pointer;font:inherit;font-weight:600}form.todo-form button:hover{opacity:.9}.stats{display:flex;gap:1rem;margin-bottom:1rem;font-size:.85rem;color:var(--muted)}.stats span strong{color:var(--fg);margin-right:.25rem}.todo-list{list-style:none;padding:0;margin:0;background:#fff;border:1px solid var(--border);border-radius:.75rem;overflow:hidden}.todo-list li{display:grid;grid-template-columns:auto 1fr auto;gap:.75rem;align-items:center;padding:.6rem .9rem;border-bottom:1px solid var(--border)}.todo-list li:last-child{border-bottom:0}.todo-list .title{font-weight:500}.todo-list .title.done{text-decoration:line-through;color:var(--muted)}.todo-list .description{color:var(--muted);font-size:.85rem}.todo-list .delete-btn{background:transparent;color:var(--danger);border:0;cursor:pointer;padding:.25rem .4rem;font-size:.85rem}.empty{color:var(--muted);text-align:center;padding:1.5rem;background:#fff;border:1px solid var(--border);border-radius:.75rem}
