:root{--bg: #f7f7f8;--surface: #ffffff;--text: #1a1a1a;--muted: #6b7280;--border: #e5e7eb;--accent: #2563eb;--accent-text: #ffffff;--todo: #9ca3af;--started: #d97706;--done: #16a34a;--warn: #dc2626;--safe-bottom: env(safe-area-inset-bottom, 0px)}@media(prefers-color-scheme:dark){:root{--bg: #0f1115;--surface: #191c22;--text: #e5e7eb;--muted: #9ca3af;--border: #2a2f3a;--accent: #3b82f6;--todo: #6b7280;--started: #f59e0b;--done: #22c55e;--warn: #f87171}}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font:16px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.app{max-width:640px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;padding-bottom:calc(72px + var(--safe-bottom))}.app.loading{align-items:center;justify-content:center;color:var(--muted)}.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--surface);border-bottom:1px solid var(--border)}.topbar h1{font-size:18px;margin:0}.conn{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}.conn .dot{width:9px;height:9px;border-radius:50%;background:var(--done)}.conn.off .dot{background:var(--muted)}.conn.warn .conn-label,.conn.warn .dot{color:var(--warn);background:var(--warn)}.conn .badge{min-width:20px;text-align:center;padding:1px 6px;border-radius:10px;background:var(--accent);color:var(--accent-text);font-size:12px}.lists{flex:1;padding:8px 12px}.group{margin-bottom:16px}.group h2{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:12px 4px 6px}.group .count{color:var(--muted)}.group .empty{color:var(--muted);font-size:14px;margin:4px}.group ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.row{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:6px 8px 6px 6px}.row .title{flex:1;word-break:break-word}button{font:inherit;cursor:pointer}.status,.delete,.addbar button,.loginbar button{min-height:44px}.status{min-width:84px;border:none;border-radius:8px;color:#fff;padding:0 12px;font-size:13px;font-weight:600}.status-todo{background:var(--todo)}.status-started{background:var(--started)}.status-done{background:var(--done)}.delete{min-width:44px;border:none;background:transparent;color:var(--muted);font-size:18px;border-radius:8px}.addbar{position:fixed;bottom:0;left:0;right:0;display:flex;gap:8px;padding:10px 12px calc(10px + var(--safe-bottom));background:var(--surface);border-top:1px solid var(--border)}.app>.addbar{max-width:640px;margin:0 auto}.addbar input{flex:1;min-height:44px;padding:0 12px;font-size:16px;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--text)}.addbar button{padding:0 18px;border:none;border-radius:10px;background:var(--accent);color:var(--accent-text);font-weight:600}.loginbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--border)}.loginbar input{min-height:44px;padding:0 12px;font-size:16px;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--text)}.loginbar button{padding:0 16px;border:none;border-radius:10px;background:var(--accent);color:var(--accent-text)}.loginbar .err{color:var(--warn);font-size:13px}.undo{position:fixed;bottom:calc(72px + var(--safe-bottom));left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;background:var(--text);color:var(--bg);padding:8px 12px 8px 16px;border-radius:10px;font-size:14px;box-shadow:0 4px 16px #00000040}.undo button{min-height:36px;border:none;background:transparent;color:var(--accent);font-weight:700}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
