:root{--bg-page: #0a0b0e;--bg-surface: #13151a;--bg-surface-2: #1a1d24;--bg-recessed: #0e1014;--border: #23272f;--border-strong: #313742;--text-primary: #e6e8ec;--text-secondary: #9aa1ad;--text-muted: #626a78;--accent: #4a9eff;--accent-bg: #12243a;--p1: #e2504f;--p2: #d99436;--ok: #3fa96b;--radius: 6px;--dur-fast: .15s;--dur-base: .2s;--ease: cubic-bezier(.2, 0, .2, 1);--ease-spring: cubic-bezier(.34, 1.3, .64, 1);--font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, monospace}*{box-sizing:border-box}html,body{margin:0;background:var(--bg-page);color:var(--text-primary);font-family:var(--font-sans);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.app{max-width:1180px;margin:0 auto;padding:24px}.app-head{display:flex;align-items:center;gap:10px;margin-bottom:16px}.app-head h1{font-size:18px;font-weight:500;margin:0}.app-head .range{color:var(--text-muted);font-size:13px}.spacer{flex:1}.capture{width:100%;padding:11px 14px;margin-bottom:20px;background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius);font-family:var(--font-mono);font-size:14px;transition:border-color var(--dur-fast) var(--ease)}.capture:focus{outline:none;border-color:var(--accent)}.capture::placeholder{color:var(--text-muted)}.board{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.column-head{display:flex;justify-content:space-between;font-size:12px;color:var(--text-secondary);padding-bottom:8px;margin-bottom:10px;border-bottom:1px solid var(--border)}.count{color:var(--text-muted)}.card{display:flex;align-items:flex-start;gap:8px;background:var(--bg-surface);border:1px solid var(--border);border-left:2px solid transparent;padding:10px 12px;margin-bottom:8px;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.card:hover{background:var(--bg-surface-2);border-color:var(--border-strong)}.card.p1{border-left-color:var(--p1)}.card.p2{border-left-color:var(--p2)}.card.is-done{background:var(--bg-recessed)}.card.is-done .card-title{color:var(--text-muted);text-decoration:line-through}.card-title{flex:1;text-align:left;background:none;border:none;padding:0;color:var(--text-primary);font:inherit;font-size:13px;cursor:pointer}.card-actions{display:flex;gap:4px;opacity:0;transition:opacity var(--dur-fast) var(--ease)}.card:hover .card-actions{opacity:1}.chip{background:none;border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text-secondary);font:inherit;font-size:12px;padding:3px 9px;cursor:pointer;margin-left:4px;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.chip:hover:not(:disabled){background:var(--bg-surface-2);color:var(--text-primary)}.chip:disabled{opacity:.3;cursor:default}.chip.active{border-color:var(--accent);color:var(--accent)}.chip.danger:hover{border-color:var(--p1);color:var(--p1)}.empty{color:var(--text-muted);font-size:13px}.save-status{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-muted)}.dot{width:6px;height:6px;border-radius:50%;background:var(--text-muted)}.dot.saved{background:var(--ok)}.dot.saving,.dot.local{background:var(--p2)}.dot.offline{background:var(--p1)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;background:#0009;display:flex;align-items:center;justify-content:center;animation:fade var(--dur-fast) var(--ease)}.modal{width:min(620px,92vw);background:var(--bg-surface-2);border:1px solid var(--border-strong);border-radius:10px;padding:20px;animation:pop var(--dur-base) var(--ease-spring)}.modal-title,.modal-body{width:100%;background:var(--bg-page);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius);padding:9px 12px;margin-bottom:12px;font:inherit;resize:vertical}.modal-title{font-size:16px}.modal-body{font-family:var(--font-mono);font-size:13px}.modal-title:focus,.modal-body:focus{outline:none;border-color:var(--accent)}.modal-foot{display:flex;justify-content:space-between;align-items:center}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:scale(.96)}}
