/* Theme tokens are deliberately scoped to each user's choice. */
:root[data-theme=midnight]{color-scheme:dark;--t-bg:#171d29;--t-side:#131925;--t-surface:#202938;--t-hero:#222b3b;--t-text:#ebeef5;--t-muted:#a0abba;--t-line:#343d4c;--t-accent:#e2c783;--t-ink:#302817;--t-active:#303746;--t-danger:#ed9da8;--t-good:#a3c6ae}
:root[data-theme=cloud]{color-scheme:light;--t-bg:#fafbfe;--t-side:#f0f2f8;--t-surface:#fff;--t-hero:#f0edf9;--t-text:#303449;--t-muted:#687087;--t-line:#d7dce8;--t-accent:#7160bb;--t-ink:#fff;--t-active:#e5e0f3;--t-danger:#a52f4e;--t-good:#3f6b50}
:root[data-theme=radio]{color-scheme:dark;--t-bg:#252328;--t-side:#1b1a20;--t-surface:#302b32;--t-hero:#3f252d;--t-text:#fff3e9;--t-muted:#c0adb4;--t-line:#4d414b;--t-accent:#f16056;--t-ink:#271615;--t-active:#443034;--t-danger:#ffafb2;--t-good:#a5c8ae}
:root:not([data-theme=straw]){--bg:var(--t-bg);--side:var(--t-side);--panel:var(--t-surface);--text:var(--t-text);--muted:var(--t-muted);--line:var(--t-line);--mint:var(--t-accent);--peach:var(--t-accent)}
:root:not([data-theme=straw]) :is(.main,.voice-view,.text-view){background:var(--t-bg);color:var(--t-text)}
:root:not([data-theme=straw]) :is(.sidebar,.members-panel,.rail,.community-header,.topbar,.user-footer){background:var(--t-side);color:var(--t-text);border-color:var(--t-line)}
:root:not([data-theme=straw]) :is(.community-header h1,.topbar h2,.member-info strong,.message-meta strong,.message-text,.voice-card h3,.voice-empty h3,.voice-room-header h2,.channel-welcome h2){color:var(--t-text)}
:root:not([data-theme=straw]) :is(.section-label,.channel,.channel .hash,.member-info span,.members-header h2,.members-header span,.topbar p,.community-header div>span,.self-label span,.user-footer button,.message-meta time,.typing,.composer-foot,.channel-welcome p,.voice-card p,.voice-empty p,.voice-hint,.voice-room-header p,.eyebrow,.small-note){color:var(--t-muted)!important}
:root:not([data-theme=straw]) :is(.channel:hover,.member:hover,.message:hover,.user-footer button:hover){background:var(--t-surface)}
:root:not([data-theme=straw]) .channel.selected{background:var(--t-active);color:var(--t-text)!important;box-shadow:inset 3px 0 var(--t-accent)}
:root:not([data-theme=straw]) :is(.invite-button,.channel .count){background:var(--t-active);color:var(--t-accent)}
:root:not([data-theme=straw]) :is(.community.active,.primary,.composer #send-button){background:var(--t-accent);color:var(--t-ink);animation:none}
:root:not([data-theme=straw]) :is(.primary:hover,.composer #send-button:hover){filter:brightness(1.1)}
:root:not([data-theme=straw]) :is(.control-button,.voice-controls,.voice-card,.composer,.search-wrap input,.emoji-tray,dialog,dialog input,select){background:var(--t-surface);color:var(--t-text);border:1px solid var(--t-line)}
:root:not([data-theme=straw]) :is(dialog p,.settings-row p,.privacy-copy,dialog label){color:var(--t-muted)}
:root:not([data-theme=straw]) .composer textarea{color:var(--t-text)}
:root:not([data-theme=straw]) .control-button:hover{background:var(--t-active)}
:root:not([data-theme=straw]) .control-button[aria-pressed=true]{background:var(--t-accent);color:var(--t-ink)}
:root:not([data-theme=straw]) .danger-button{background:var(--t-active);color:var(--t-danger);border:1px solid var(--t-line)}
:root:not([data-theme=straw]) .crew-welcome{background:var(--t-hero);border-color:var(--t-line);border-radius:14px}
:root:not([data-theme=straw]) .crew-welcome .welcome-symbol{display:none}
:root:not([data-theme=straw]) .crew-welcome h2{font-size:28px;margin-top:0}
:root:not([data-theme=straw]) .rail-logo{background:var(--t-surface);color:var(--t-accent);font-size:30px;animation:none}
:root:not([data-theme=straw]) .rail-add{background:var(--t-surface);color:var(--t-accent)}
:root:not([data-theme=straw]) .voice-empty .empty-shell{background:none;filter:none;font-size:72px;width:auto;height:auto;animation:none;color:var(--t-accent)}
:root:not([data-theme=straw]) :is(.connection-chip,#call-health,.voice-status){background:var(--t-active);color:var(--t-good);border-color:var(--t-line)}
:root:not([data-theme=straw]) .connection-chip[data-quality=slow]{color:var(--t-danger)}
:root:not([data-theme=straw]) .connection-chip[data-quality=fair]{color:var(--t-accent)}
:root:not([data-theme=straw]) .voice-status>span{color:var(--t-muted)}
:root:not([data-theme=straw]) .member .avatar:after{border-color:var(--t-side)}
:root:not([data-theme=straw]) :is(.emoji-toggle,.emoji-choice){color:var(--t-text);background:transparent}
:root:not([data-theme=straw]) .composer .emoji-choice:hover{background:var(--t-active)}
:root:not([data-theme=straw]) :is(.welcome-art,.join-panel){background:var(--t-bg);color:var(--t-text)}
:root:not([data-theme=straw]) .welcome-art{background:var(--t-hero)}
:root:not([data-theme=straw]) :is(.welcome-art .brand,.welcome-art h1,.join-panel h2){color:var(--t-text)}
:root:not([data-theme=straw]) :is(.join-panel p,.join-panel label,.art-caption p,.art-foot){color:var(--t-muted)}
:root:not([data-theme=straw]) .join-panel input{background:var(--t-surface);border-color:var(--t-line);color:var(--t-text)}
:root:not([data-theme=straw]) .join-panel a{color:var(--t-accent)}
:root:not([data-theme=straw]) .toast{background:var(--t-accent);color:var(--t-ink)}
:root[data-theme=radio] .crew-welcome{background:linear-gradient(115deg,#48232c,#302738);border-left:4px solid var(--t-accent)}
:root[data-theme=radio] .voice-room-header h2{font-weight:900;text-transform:uppercase}
:root[data-theme=cloud] .crew-welcome{border-radius:22px}
:root:not([data-theme=straw]) ::-webkit-scrollbar-thumb{background:var(--t-line)}
select{width:100%;padding:12px;border-radius:10px;font:inherit;background:#fffaf3;color:#403348;border:1px solid #d8cbb7}.key-actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.key-fingerprint{overflow-wrap:anywhere;font-family:monospace;font-size:12px}.encryption-status{flex-shrink:0;text-align:left;padding:10px 24px;border-bottom:1px solid var(--line);color:var(--t-good,#38694d);font-size:12px;background:var(--t-side,#f0ece3)}.encryption-status[data-locked=true]{color:var(--t-accent,#96304a)}.message-security{font-size:10px;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:1px 5px}.message-meta{flex-wrap:wrap}.privacy-copy{overflow-wrap:anywhere}.settings-row select:focus-visible{outline:3px solid var(--mint);outline-offset:3px}
:root:not([data-theme=straw]) :is(.rail-bottom,.members-toggle,.small-shell,.section-label button){color:var(--t-muted);border-color:var(--t-line)}
