:root{color-scheme:dark light;--bg: #0e1116;--bg-elev: #161b22;--bg-hover: #1f2530;--fg: #e6edf3;--fg-muted: #8b949e;--accent: #58a6ff;--accent-fg: #0b1929;--border: #30363d;--danger: #f85149;--danger-bg: #490202;--radius: 8px}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--fg);font:16px/1.5 system-ui,-apple-system,Segoe UI,sans-serif;min-height:100vh}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:4px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:absolute;top:-40px;left:8px;background:var(--accent);color:var(--accent-fg);padding:8px 12px;border-radius:var(--radius);z-index:100;text-decoration:none;font-weight:600}.skip-link:focus{top:8px}.app-shell{max-width:960px;margin:0 auto;padding:32px 16px}.auth-shell{max-width:480px}.muted{color:var(--fg-muted)}h1{font-size:1.75rem;margin:0 0 16px}h2{font-size:1.25rem;margin:0 0 12px}p{margin:0 0 12px}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-top:16px}code{background:var(--bg-elev);border:1px solid var(--border);border-radius:4px;padding:1px 6px;font-size:.9em}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}label{font-weight:600}input[type=text],input[type=password],input[type=email],select{background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;font:inherit;width:100%}input:focus-visible,select:focus-visible{border-color:var(--accent)}input[aria-invalid=true]{border-color:var(--danger)}button{background:var(--accent);color:var(--accent-fg);border:none;border-radius:var(--radius);padding:10px 16px;font:inherit;font-weight:600;cursor:pointer}button:hover:not(:disabled){filter:brightness(1.08)}button:disabled{opacity:.6;cursor:not-allowed}.button-secondary{background:transparent;color:var(--fg);border:1px solid var(--border)}.button-danger{background:var(--danger);color:#fff}.error{background:var(--danger-bg);border:1px solid var(--danger);border-radius:var(--radius);padding:10px 12px;margin:0 0 12px;color:#ffd7d7}.profile-list{display:grid;gap:8px;margin:0}.profile-list>div{display:grid;grid-template-columns:160px 1fr;gap:12px}.profile-list dt{color:var(--fg-muted);font-weight:600}.profile-list dd{margin:0}.home-layout{max-width:1200px;margin:0 auto;padding:16px}.home-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-bottom:12px;border-bottom:1px solid var(--border);margin-bottom:12px}.home-header-right{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.home-grid{display:grid;grid-template-columns:minmax(240px,320px) 1fr;gap:16px}@media (max-width: 720px){.home-grid{grid-template-columns:1fr}}.home-tree{align-self:start;max-height:calc(100vh - 180px);overflow:auto}.home-tree h2{margin-bottom:8px}.channel-tree-wrapper{margin-top:8px}.channel-tree{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px;outline:none}.channel-tree-item{list-style:none;outline:none}.channel-tree-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer}.channel-tree-item[data-focused=true]>.react-aria-TreeItemContent>.channel-tree-row,.channel-tree-item:hover>.react-aria-TreeItemContent>.channel-tree-row{background:var(--bg-hover)}.channel-tree-item[data-selected=true]>.react-aria-TreeItemContent>.channel-tree-row{background:#58a6ff2e;outline:1px solid var(--accent)}.channel-tree-icon{flex-shrink:0}.channel-tree-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.channel-tree-chevron{background:none;border:none;color:var(--fg-muted);font-weight:700;padding:0 4px;cursor:pointer;width:20px}.channel-detail{margin-top:0}.new-channel-form{display:flex;flex-direction:column}.room-view{margin-top:16px}.room-controls{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.room-participants h4{margin:16px 0 8px;font-size:1rem}.participants-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.participant{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg)}.participant.is-speaking{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.participant-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.participant-status{font-size:1.1em;width:1.5em;text-align:center}.data-table{width:100%;border-collapse:collapse;margin:0 0 16px}.data-table th,.data-table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.data-table th{background:var(--bg);font-size:.9em;color:var(--fg-muted);font-weight:600}.actions-cell{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.actions-cell button{padding:6px 10px;font-size:.9em}.disclosure{border-top:1px solid var(--border);padding-top:12px;margin-top:12px}.disclosure summary{cursor:pointer;font-weight:600;padding:4px 0;list-style:none}.disclosure summary:before{content:"▸";display:inline-block;margin-right:8px;transition:transform .15s}.disclosure[open] summary:before{transform:rotate(90deg)}.new-user-form{padding-top:12px}.modal-backdrop{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:24px;width:min(440px,90vw);max-height:90vh;overflow:auto}.modal h3{margin-top:0}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}.chat{display:flex;flex-direction:column}.messages{list-style:none;padding:0;margin:0 0 12px;max-height:50vh;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg)}.message{padding:10px 12px;border-bottom:1px solid var(--border)}.message:last-child{border-bottom:none}.message.is-own{background:#58a6ff0f}.message-header{display:flex;gap:8px;align-items:baseline;margin-bottom:4px;flex-wrap:wrap}.message-author{font-size:.95em}.message-time,.message-edited{font-size:.85em}.message-body{margin:0;white-space:pre-wrap;word-wrap:break-word}.message-actions{display:flex;gap:6px;margin-top:6px}.button-sm{padding:4px 10px;font-size:.85em}.inline-editor textarea{width:100%;background:var(--bg-elev);color:var(--fg);border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;font:inherit;resize:vertical;min-height:60px}.inline-editor-actions{display:flex;gap:6px;justify-content:flex-end;margin-top:6px}.composer textarea{width:100%;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;font:inherit;resize:vertical;min-height:60px}.composer textarea:focus-visible{border-color:var(--accent)}.composer-actions{display:flex;justify-content:space-between;align-items:center;margin-top:8px;gap:12px}.participant{flex-direction:column;align-items:stretch}.participant-row{display:flex;align-items:center;gap:10px;width:100%}.participant-index{display:inline-block;width:1.5em;text-align:center;color:var(--fg-muted);font-size:.85em;font-weight:600}.peer-controls{margin-top:6px}.peer-controls-toggle{width:100%;text-align:left}.peer-controls-panel{margin-top:8px;padding:12px;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius)}.peer-controls-panel input[type=range]{width:100%;accent-color:var(--accent)}.peer-controls-panel output{font-weight:600;color:var(--fg-muted)}.inline-field{flex-direction:row;align-items:center}.eq-fieldset{border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;margin:0 0 8px}.eq-fieldset legend{padding:0 6px;font-weight:600;font-size:.9em}.peer-controls-actions{display:flex;gap:6px;justify-content:flex-end}.peer-controls-hint{margin:6px 0 0;font-size:.85em}.mute-chord-hint{padding:6px 10px;background:#58a6ff2e;border-radius:var(--radius);border:1px solid var(--accent);margin:0 0 8px}.keyboard-hints{margin-top:10px;font-size:.85em}kbd{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:.85em}.participant-self{border-style:dashed}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
