:root{--bg: #0f172a;--surface: #1e293b;--surface-2: #334155;--text: #e2e8f0;--muted: #94a3b8;--accent: #4f46e5;--accent-hover: #6366f1;--done: #16a34a;--danger: #b91c1c;--prio1: #dc2626;--prio2: #d97706;--prio3: #64748b}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}button{cursor:pointer;border:none;border-radius:10px;font-size:.95rem;font-weight:600;padding:10px 14px;color:#fff;background:var(--surface-2);transition:background .15s,opacity .15s}button:disabled{opacity:.5}.app{max-width:640px;margin:0 auto;padding:env(safe-area-inset-top) 16px calc(env(safe-area-inset-bottom) + 16px)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 0 8px}.topbar h1{margin:0;font-size:1rem;font-weight:600;letter-spacing:.5px;text-transform:lowercase;color:var(--muted)}.topbar-actions{display:flex;gap:8px}.quick-add{display:flex;gap:8px;margin:8px 0 16px}.quick-add input{flex:1;padding:14px;font-size:1rem;border-radius:12px;border:1px solid var(--surface-2);background:var(--surface);color:var(--text)}.quick-add button{background:var(--accent);font-size:1.4rem;width:52px}.quick-add button:not(:disabled):hover{background:var(--accent-hover)}.tabs{display:flex;gap:6px;margin-bottom:16px;overflow-x:auto}.tab{background:var(--surface);color:var(--muted);white-space:nowrap}.tab.active{background:var(--accent);color:#fff}.list{display:flex;flex-direction:column;gap:12px}.task{background:var(--surface);border-radius:14px;padding:14px}.task-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}.badge{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:3px 8px;border-radius:999px}.prio-1{background:var(--prio1)}.prio-2{background:var(--prio2)}.prio-3{background:var(--prio3)}.due{font-size:.85rem;color:var(--muted)}.task-title{font-size:1.05rem;font-weight:600;margin-bottom:4px}.task-note{font-size:.9rem;color:var(--muted);margin-bottom:8px}.task-step{font-size:.9rem;color:var(--accent-hover);margin-bottom:6px}.task-from{font-size:.82rem;color:var(--muted);margin-bottom:4px}.timer{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid var(--surface-2)}.timer-disc{line-height:0}.timer-track{fill:none;stroke:var(--surface-2);stroke-width:10}.timer-fill{fill:none;stroke:var(--accent);stroke-width:10;stroke-linecap:round;transition:stroke-dashoffset .2s linear}.timer-fill.done{stroke:var(--done)}.timer-label{fill:var(--text);font-size:26px;font-weight:700;font-variant-numeric:tabular-nums}.timer-presets{display:flex;gap:8px}.chip{background:var(--surface-2);color:var(--muted);padding:7px 12px;font-size:.85rem}.chip.active{background:var(--accent);color:#fff}.timer-controls{display:flex;gap:8px}.timer-controls button{min-width:120px}.btn-ghost.active{background:var(--accent);color:#fff}.task-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.task-actions button{flex:1;min-width:88px;padding:9px 10px}.btn-done{background:var(--done)}.btn-ghost{background:var(--surface-2)}.btn-danger{background:transparent;color:var(--danger);border:1px solid var(--danger)}.calm-banner{background:#4f46e51f;border:1px solid var(--surface-2);color:var(--text);border-radius:14px;padding:14px 16px;text-align:center;font-size:.95rem;line-height:1.4}.btn-replan{background:var(--surface-2);color:var(--text);width:100%;padding:12px}.muted{color:var(--muted)}.empty{text-align:center;padding:40px 0;font-size:1.05rem}.hint{text-align:center;font-size:.82rem;margin-top:4px}.error{color:#fca5a5}.login{display:flex;align-items:center;justify-content:center;min-height:100%;padding:24px}.login-card{background:var(--surface);border-radius:18px;padding:32px 24px;width:100%;max-width:360px;text-align:center}.login-card img{border-radius:16px}.login-card h1{font-size:1.3rem;margin:12px 0 24px}.login-card form{display:flex;flex-direction:column;gap:12px}.login-card input{padding:14px;font-size:1rem;border-radius:12px;border:1px solid var(--surface-2);background:var(--bg);color:var(--text)}.login-card button[type=submit]{background:var(--accent);padding:14px;font-size:1rem}
