*{box-sizing:border-box}:root{--bg: #0f172a;--panel: #1e293b;--panel-alt: #273449;--ink: #e2e8f0;--muted: #94a3b8;--accent: #38bdf8;--accent-strong: #0ea5e9;--danger: #ef4444;--success: #22c55e;--border: #334155;--radius: 8px;--shadow: 0 1px 3px rgba(0, 0, 0, .3);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color-scheme:dark}body{margin:0;background:var(--bg);color:var(--ink);min-height:100vh}button,input,textarea{font:inherit;color:inherit}.btn{padding:8px 14px;border-radius:var(--radius);border:1px solid transparent;cursor:pointer;font-weight:500;background:var(--accent);color:#0b1220}.btn:hover:not(:disabled){background:var(--accent-strong)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:transparent;color:var(--ink);border-color:var(--border)}.btn-danger{background:var(--danger);color:#fff}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.field-label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.input{padding:8px 12px;border-radius:var(--radius);border:1px solid var(--border);background:var(--panel-alt);color:var(--ink);width:100%;max-width:480px}.input:focus{outline:2px solid var(--accent);border-color:transparent}.field-error{color:var(--danger);font-size:13px;margin:4px 0 0}.field-help{color:var(--muted);font-size:12px;margin:4px 0 12px}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:grid;place-items:center;z-index:100}.dialog{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:24px;width:min(90%,480px);box-shadow:var(--shadow)}.dialog-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.dialog-header h2{margin:0;font-size:18px}.dialog-close{background:transparent;border:0;color:var(--muted);font-size:24px;cursor:pointer;line-height:1}.dialog-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.toasts{position:fixed;top:16px;right:16px;display:flex;flex-direction:column;gap:8px;z-index:200}.toast{padding:12px 16px;border-radius:var(--radius);background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow);max-width:360px}.toast-success{border-left:3px solid var(--success)}.toast-error{border-left:3px solid var(--danger)}.login-page,.boards-page,.kanban-page{max-width:1200px;margin:0 auto;padding:32px 24px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.header-actions{display:flex;gap:8px}.board-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.board-link{display:block;padding:16px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);color:var(--ink);text-decoration:none;font-weight:500}.board-link:hover{border-color:var(--accent)}.empty-state{color:var(--muted);padding:32px;text-align:center}.create-task-form{display:flex;gap:8px;align-items:flex-end;margin-bottom:24px}.create-task-form .field{flex:1;margin-bottom:0}.kanban-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:start}.kanban-column{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:12px;min-height:320px}.kanban-column.is-over{border-color:var(--accent);background:var(--panel-alt)}.kanban-column header h2{margin:0 0 12px;font-size:14px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.kanban-column .count{color:var(--muted);font-weight:400}.kanban-column-body{display:flex;flex-direction:column;gap:8px}.task-card{background:var(--panel-alt);border:1px solid var(--border);border-radius:var(--radius);padding:12px;cursor:grab;-webkit-user-select:none;user-select:none;position:relative}.task-card h3{margin:0 0 4px;font-size:14px;font-weight:500}.task-desc{margin:4px 0 0;color:var(--muted);font-size:12px}.task-edit{position:absolute;top:8px;right:8px;background:transparent;border:0;color:var(--muted);cursor:pointer;font-size:12px}.task-edit:hover{color:var(--accent)}.connection{font-size:12px;padding:4px 10px;border-radius:999px;background:var(--panel);border:1px solid var(--border)}.connection-live{border-color:var(--success);color:var(--success)}.connection-connecting,.connection-reconnecting{color:var(--muted)}.connection-closed{color:var(--danger)}.loading{padding:32px;text-align:center;color:var(--muted)}
