/* D4.3: semantic palette. Legacy names keep existing component rules intact. */
:root,:root[data-theme=voicekord-dark]{
  --desktop-window-accent:#4a547c;--desktop-window-accent-width:1px;
  color-scheme:dark;
  --bg-app:#0f131d;--bg-sidebar:#161c29;--bg-rail:#111725;--bg-raised:#1e2534;--bg-floating:#1e2534;--bg-input:#222b3b;--bg-control:#293347;--bg-hover:#ffffff0d;--bg-selected:#a69cff19;
  --border:#323c50;--border-subtle:#354058;--text-primary:#f0f3fb;--text-secondary:#cbd3e4;--text-muted:#a0abc0;
  --accent:#a69cff;--accent-hover:#8a81ff;--accent-solid:#776df0;--accent-text:#fff;
  --danger:#ef8394;--danger-hover:#9b4355;--success:#62d5aa;--warning:#f1c478;--shadow-color:#0009;
  --sidebar-glow:#192031;--main-glow:#242a3b;--header-bg:#171d2ad9;--footer-bg:#111725;--dock-bg:#20283af5;--callbar-bg:#222d3e;--active-line:#a69cff30;
  --avatar-start:#4a547c;--avatar-end:#303c5b;--composer-border:#3a465c;--link:#b8c2ff;--message-text:#e7eaf2;--auth-card:#1b2230;--auth-input:#141820;--auth-label:#bfc6d4;
  --desktop-titlebar-bg:#171d2a;--desktop-titlebar-border:#323c50;--desktop-titlebar-control-hover:#ffffff17;--desktop-titlebar-text:#edf1fa;--desktop-titlebar-muted:#98a4ba;
  --bg:var(--bg-app);--sidebar:var(--bg-sidebar);--panel:var(--bg-raised);--raised:var(--bg-control);--line:var(--border);--text:var(--text-primary);--muted:var(--text-muted);--safe:var(--success);--accent-strong:var(--accent-solid);--hover-bg:var(--bg-hover);--active-bg:var(--bg-selected);--composer-bg:var(--bg-input);
}
:root[data-theme=discord-dark]{
  --desktop-window-accent:#7983ff;
  --bg-app:#313338;--bg-sidebar:#2b2d31;--bg-rail:#1e1f22;--bg-raised:#383a40;--bg-floating:#383a40;--bg-input:#1e1f22;--bg-control:#404249;--bg-hover:#ffffff12;--bg-selected:#5865f232;
  --border:#42444b;--border-subtle:#383a40;--text-primary:#f2f3f5;--text-secondary:#dbdee1;--text-muted:#aeb4bd;
  --accent:#7983ff;--accent-hover:#6c77ef;--accent-solid:#5865f2;--accent-text:#fff;
  --danger:#f3868f;--danger-hover:#b84c59;--success:#58c995;--warning:#f1c478;--shadow-color:#000a;
  --sidebar-glow:#2b2d31;--main-glow:#313338;--header-bg:#313338f2;--footer-bg:#232428;--dock-bg:#2b2d31f5;--callbar-bg:#292c32;--active-line:#5865f255;
  --avatar-start:#69749b;--avatar-end:#46526f;--composer-border:#555760;--link:#aeb6ff;--message-text:#e6e8eb;--auth-card:#2b2d31;--auth-input:#1e1f22;--auth-label:#dbdee1;
  --desktop-titlebar-bg:#232428;--desktop-titlebar-border:#42444b;--desktop-titlebar-control-hover:#ffffff1c;--desktop-titlebar-text:#f2f3f5;--desktop-titlebar-muted:#b5bac1;
}
:root[data-theme=midnight]{
  --desktop-window-accent:#495373;
  --bg-app:#111214;--bg-sidebar:#0d0e10;--bg-rail:#07080a;--bg-raised:#191b20;--bg-floating:#1d2026;--bg-input:#0a0b0d;--bg-control:#242831;--bg-hover:#ffffff0d;--bg-selected:#7480ff28;
  --border:#30343d;--border-subtle:#262a32;--text-primary:#eff1f6;--text-secondary:#d0d5e0;--text-muted:#adb5c4;
  --accent:#9ba2ff;--accent-hover:#8690ff;--accent-solid:#6875ed;--accent-text:#fff;
  --danger:#f38b9a;--danger-hover:#a84153;--success:#67d4a6;--warning:#efc277;--shadow-color:#000d;
  --sidebar-glow:#0d0e10;--main-glow:#15171b;--header-bg:#17191de8;--footer-bg:#090a0c;--dock-bg:#11151bf5;--callbar-bg:#151920;--active-line:#7480ff44;
  --avatar-start:#495373;--avatar-end:#2b344a;--composer-border:#353b47;--link:#b2b9ff;--message-text:#e3e7ef;--auth-card:#17191d;--auth-input:#0a0b0d;--auth-label:#d0d5e0;
  --desktop-titlebar-bg:#0a0b0d;--desktop-titlebar-border:#30343d;--desktop-titlebar-control-hover:#ffffff18;--desktop-titlebar-text:#eff1f6;--desktop-titlebar-muted:#adb5c4;
}
:root[data-theme=pastel-dusk]{
  --desktop-window-accent:#bda2d0;
  --bg-app:#262637;--bg-sidebar:#303044;--bg-rail:#222331;--bg-raised:#39394e;--bg-floating:#414057;--bg-input:#292a3c;--bg-control:#45455c;--bg-hover:#e7d5f016;--bg-selected:#bda2d02c;
  --border:#56566d;--border-subtle:#49495f;--text-primary:#f4f0f7;--text-secondary:#d6d0e0;--text-muted:#bcb5cb;
  --accent:#dbc3ef;--accent-hover:#654e84;--accent-solid:#735d90;--accent-text:#fff;
  --danger:#f1a9b1;--danger-hover:#8f4f63;--success:#9bdbc4;--warning:#edd499;--shadow-color:#151321ae;
  --sidebar-glow:#323147;--main-glow:#343047;--header-bg:#2d2c41ee;--footer-bg:#272638;--dock-bg:#343348f5;--callbar-bg:#363449;--active-line:#dbc3ef50;
  --avatar-start:#877398;--avatar-end:#574c72;--composer-border:#626078;--link:#d8c6ef;--message-text:#eee9f2;--auth-card:#323044;--auth-input:#262637;--auth-label:#d6d0e0;
  --desktop-titlebar-bg:#282738;--desktop-titlebar-border:#56566d;--desktop-titlebar-control-hover:#e7d5f026;--desktop-titlebar-text:#f4f0f7;--desktop-titlebar-muted:#bcb5cb;
}
:root[data-theme=calm-slate]{
  --desktop-window-accent:#9cc7bb;
  --bg-app:#20272a;--bg-sidebar:#253034;--bg-rail:#1b2225;--bg-raised:#303b3e;--bg-floating:#344044;--bg-input:#202a2e;--bg-control:#3b484c;--bg-hover:#c4d9cf13;--bg-selected:#8fc3af26;
  --border:#4d5b5f;--border-subtle:#404e52;--text-primary:#eff2ed;--text-secondary:#cbd6d0;--text-muted:#a9b9b4;
  --accent:#9cc7bb;--accent-hover:#326459;--accent-solid:#3c766b;--accent-text:#fff;
  --danger:#e7a3a0;--danger-hover:#875254;--success:#88cba3;--warning:#e4c69b;--shadow-color:#0e1719b3;
  --sidebar-glow:#293439;--main-glow:#2a3536;--header-bg:#252f32ee;--footer-bg:#20282b;--dock-bg:#2c3839f5;--callbar-bg:#303c3e;--active-line:#9cc7bb50;
  --avatar-start:#62857c;--avatar-end:#3a5a57;--composer-border:#58696a;--link:#afdccc;--message-text:#e8eee9;--auth-card:#2b3638;--auth-input:#20272a;--auth-label:#cbd6d0;
  --desktop-titlebar-bg:#20292b;--desktop-titlebar-border:#4d5b5f;--desktop-titlebar-control-hover:#c4d9cf20;--desktop-titlebar-text:#eff2ed;--desktop-titlebar-muted:#a9b9b4;
}
:root[data-theme=retro-sunset]{
  --desktop-window-accent:#FFAD59;
  --bg-app:#211824;--bg-sidebar:#2b2030;--bg-rail:#18141f;--bg-raised:#332637;--bg-floating:#3c2b41;--bg-input:#291f2f;--bg-control:#443146;--bg-hover:#ffc7a516;--bg-selected:#ed8b9d26;
  --border:#584057;--border-subtle:#483445;--text-primary:#fff4f1;--text-secondary:#e6cfda;--text-muted:#cbb7c9;
  --accent:#ffaba3;--accent-hover:#a43559;--accent-solid:#b54367;--accent-text:#fff;
  --danger:#f7a0aa;--danger-hover:#873a51;--success:#6bd0b0;--warning:#e7bd78;--shadow-color:#100c18ba;
  --sidebar-glow:#3a233b;--main-glow:#392236;--header-bg:#2a1f2dee;--footer-bg:#201824;--dock-bg:#302235f5;--callbar-bg:#322439;--active-line:#ffaba342;
  --avatar-start:#916171;--avatar-end:#5c3f61;--composer-border:#61465e;--link:#ffc1b1;--message-text:#f7ebf0;--auth-card:#2d2131;--auth-input:#211824;--auth-label:#e6cfda;
  --desktop-titlebar-bg:#231927;--desktop-titlebar-border:#584057;--desktop-titlebar-control-hover:#ffc7a526;--desktop-titlebar-text:#fff4f1;--desktop-titlebar-muted:#cbb7c9;
}
:root[data-theme=sakura-bloom]{
  --desktop-window-accent:#955173;
  color-scheme:light;
  --bg-app:#f3f7fc;--bg-sidebar:#e8eef8;--bg-rail:#dbe5f2;--bg-raised:#fff;--bg-floating:#fff;--bg-input:#e8eef7;--bg-control:#dde6f2;--bg-hover:#536faa13;--bg-selected:#6388c42b;
  --border:#b9c9dd;--border-subtle:#ced8e7;--text-primary:#22334b;--text-secondary:#3e536e;--text-muted:#526780;
  --accent:#955173;--accent-hover:#66435f;--accent-solid:#77516f;--accent-text:#fff;
  --danger:#a93754;--danger-hover:#f5d9e2;--success:#178160;--warning:#926314;--shadow-color:#50658830;
  --sidebar-glow:#e6e9f8;--main-glow:#f0e8f4;--header-bg:#eef3fcee;--footer-bg:#e2eaf6;--dock-bg:#e9eaf6f5;--callbar-bg:#e8edf7;--active-line:#95517330;
  --avatar-start:#cadbed;--avatar-end:#bccfe9;--composer-border:#acbed6;--link:#744468;--message-text:#2c3e55;--auth-card:#fff;--auth-input:#e8eef7;--auth-label:#3e536e;
  --desktop-titlebar-bg:#e5edf8;--desktop-titlebar-border:#b9c9dd;--desktop-titlebar-control-hover:#536faa20;--desktop-titlebar-text:#22334b;--desktop-titlebar-muted:#526780;
}
:root[data-theme=lavender-glass]{
  --desktop-window-accent:#b69ae8;
  --bg-app:#252433;--bg-sidebar:#2f2d40;--bg-rail:#1e1e2e;--bg-raised:#373449;--bg-floating:#3d394f;--bg-input:#2c293e;--bg-control:#48425a;--bg-hover:#decaf516;--bg-selected:#b69ae82b;
  --border:#58516d;--border-subtle:#484359;--text-primary:#f2eefb;--text-secondary:#d7d0e5;--text-muted:#bcb3d0;
  --accent:#c5aff2;--accent-hover:#685180;--accent-solid:#796096;--accent-text:#fff;
  --danger:#eea6b9;--danger-hover:#854b66;--success:#8ad1b0;--warning:#e2c49b;--shadow-color:#141125a6;
  --sidebar-glow:#34304a;--main-glow:#393149;--header-bg:#302d42ee;--footer-bg:#252334;--dock-bg:#342e47f5;--callbar-bg:#352f49;--active-line:#c5aff240;
  --avatar-start:#8775ac;--avatar-end:#514a73;--composer-border:#645879;--link:#d2bef7;--message-text:#ebe5f4;--auth-card:#312d42;--auth-input:#252433;--auth-label:#d7d0e5;
  --desktop-titlebar-bg:#282537;--desktop-titlebar-border:#58516d;--desktop-titlebar-control-hover:#decaf524;--desktop-titlebar-text:#f2eefb;--desktop-titlebar-muted:#bcb3d0;
}
:root[data-theme][data-high-contrast=on]{--text-primary:#fff;--text-secondary:#f1f3f8;--text-muted:#e0e3ea;--border:#a2aec4;--accent:#d1caff;--message-text:#fff;--bg-hover:#ffffff25;--bg-selected:#7480ff55}
:root[data-theme=sakura-bloom][data-high-contrast=on]{--text-primary:#10223b;--text-secondary:#1b314d;--text-muted:#2e455f;--message-text:#10223b;--border:#667f9f;--accent:#693c66;--bg-hover:#536faa25;--bg-selected:#6388c440}
/* Surface rules below replace fixed D4.2 colors without changing layout. */
a,.text-button{color:var(--link)}
.sidebar{border-right-color:var(--border-subtle)}
.sidebar-bottom{background:var(--footer-bg);border-top-color:var(--border-subtle)}
.main-pane{background:radial-gradient(circle at 78% -10%,var(--main-glow) 0,transparent 40%),var(--bg-app)}
.pane-header,.friends-header{background:var(--header-bg)}
.nav-button{color:var(--text-secondary)}
.nav-button:hover,.icon-button:hover,.friend-row:hover,.search-row:hover,.message:hover,.composer button:hover{background:var(--bg-hover)}
.nav-button.active,.conversation-item.active{background:var(--bg-selected);color:var(--text-primary)}
.section-heading,.conversation-copy small,.composer-hint{color:var(--text-muted)}
.voice-status,.voice-diagnostics,.voice-meter{color:var(--text-muted)}.voice-name:hover{color:var(--accent)}
.avatar{background:linear-gradient(145deg,var(--avatar-start),var(--avatar-end));color:var(--text-primary)}
.composer{background:var(--bg-input);border-color:var(--composer-border)}
.composer:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--active-line)}
.composer textarea::placeholder,.composer button{color:var(--text-muted)}
.composer .send-button,.primary,.unread-badge,.new-messages{background:var(--accent-solid);color:var(--accent-text)}
.composer .send-button:hover,.primary:hover{background:var(--accent-hover)}
.message-body{color:var(--message-text)}
.message.highlight{background:var(--bg-selected)}
.message-actions button,.small-button,.friend-row button{background:var(--bg-raised);color:var(--text-primary)}
.message-actions button:hover,.small-button:hover,.friend-row button:hover{background:var(--bg-hover);color:var(--text-primary)}
.voice-enable,.stream-enable{background:var(--accent-solid);color:var(--accent-text)}
.reaction{border-color:var(--active-line);background:var(--bg-selected)}
.skeleton-row{background:linear-gradient(90deg,var(--bg-sidebar),var(--bg-control),var(--bg-sidebar));background-size:200% 100%}
.modal-field,.auth-card input,.field-row input,.settings-input,.settings-select,.settings-field input,.settings-field select{background:var(--bg-input);color:var(--text-primary);border-color:var(--border)}
.auth-card{background:var(--auth-card);border-color:var(--border)}.auth-card label{color:var(--auth-label)}
.auth-brand{color:var(--accent)}
.toast,.load-error,.context-menu,.self-popover,.transient-popout,.voice-quality-popover{background:var(--bg-floating);color:var(--text-primary);border-color:var(--border)}
.desktop-update-panel{background:var(--bg-floating);color:var(--text-primary)}
dialog,.settings-shell,.profile-modal{background:var(--bg-floating);color:var(--text-primary);border-color:var(--border);box-shadow:0 20px 70px var(--shadow-color)}
.settings-shell{background:var(--bg-app)}
.settings-shell-nav,.server-rail,.member-panel{background:var(--bg-sidebar)}.server-rail{background:var(--bg-rail)}
.settings-close,.profile-close,.settings-select,.voice-diagnostic-values{background:var(--bg-raised)}
.voice-button,.voice-accept,.voice-decline{background:var(--bg-raised);border-color:var(--border);color:var(--text-primary)}
.voice-button:hover{background:var(--bg-hover)}
.voice-button.danger,.voice-decline{background:var(--danger-hover);border-color:var(--danger)}
.call-button{background:var(--bg-raised);border-color:var(--success);color:var(--success)}
.call-button:hover{background:var(--bg-hover);color:var(--success)}
.voice-dock,.dm-call-surface{background:var(--dock-bg)}.dm-call-surface{background:var(--callbar-bg)}
.stream-viewer{background:var(--bg-app)}.stream-viewer-header{background:var(--bg-raised)}
.chat-scroll{scrollbar-color:var(--border) transparent}
.theme-heading{margin:25px 0 10px;font-size:11px;letter-spacing:.12em;color:var(--text-muted)}
.theme-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.theme-option{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-content:start;text-align:left;min-width:0;border:1px solid var(--border);background:var(--bg-raised);color:var(--text-primary);border-radius:10px;padding:11px;min-height:148px}
.theme-option:hover{background:var(--bg-hover)}.theme-option.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.theme-option:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.theme-preview{grid-column:1/-1;display:grid;grid-template-columns:13% 32% 1fr;height:65px;overflow:hidden;border-radius:6px;border:1px solid #ffffff28}
.theme-preview-voicekord-dark{--preview-rail:#111725;--preview-sidebar:#161c29;--preview-content:#0f131d;--preview-accent:#776df0}
.theme-preview-discord-dark{--preview-rail:#1e1f22;--preview-sidebar:#2b2d31;--preview-content:#313338;--preview-accent:#5865f2}
.theme-preview-midnight{--preview-rail:#07080a;--preview-sidebar:#0d0e10;--preview-content:#111214;--preview-accent:#6875ed}
.theme-preview-pastel-dusk{--preview-rail:#222331;--preview-sidebar:#303044;--preview-content:#262637;--preview-accent:#735d90}
.theme-preview-calm-slate{--preview-rail:#1b2225;--preview-sidebar:#253034;--preview-content:#20272a;--preview-accent:#3c766b}
.theme-preview-retro-sunset{--preview-rail:#18141f;--preview-sidebar:#2b2030;--preview-content:#211824;--preview-accent:#b54367}
.theme-preview-sakura-bloom{--preview-rail:#dbe5f2;--preview-sidebar:#e8eef8;--preview-content:#f3f7fc;--preview-accent:#77516f}
.theme-preview-lavender-glass{--preview-rail:#1e1e2e;--preview-sidebar:#2f2d40;--preview-content:#252433;--preview-accent:#796096}
.theme-preview-rail{background:var(--preview-rail)}.theme-preview-sidebar{background:var(--preview-sidebar);border-inline:1px solid #ffffff1a}.theme-preview-content{background:linear-gradient(var(--preview-accent),var(--preview-accent)) 12px 12px/34% 5px no-repeat,var(--preview-content)}
.theme-copy{display:grid;gap:3px;min-width:0}.theme-copy strong{font-size:13px}.theme-copy small{font-size:11px;color:var(--text-muted);line-height:1.35}
.theme-check{display:grid;place-items:center;width:19px;height:19px;border:1px solid var(--border);border-radius:50%;font-size:12px;color:transparent}.theme-option.active .theme-check{background:var(--accent-solid);border-color:var(--accent-solid);color:#fff}
@media(max-width:850px){.theme-options{grid-template-columns:1fr}}
.app-icon-section{margin-top:30px;border-top:1px solid var(--border-subtle)}
.app-icon-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px}
.app-icon-option{min-width:0;overflow:hidden;border:1px solid var(--border);border-radius:12px;background:var(--bg-raised)}
.app-icon-option.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.app-icon-choice{position:relative;display:grid;place-items:center;gap:10px;min-width:0;width:100%;padding:18px 8px 12px;border:0;background:transparent;color:var(--text-primary);cursor:pointer}
.app-icon-choice:hover{background:var(--bg-hover)}.app-icon-choice:focus-visible{outline:2px solid var(--accent);outline-offset:-3px;border-radius:10px}
.app-icon-choice img{width:72px;height:72px;object-fit:contain}.app-icon-choice strong{font-size:12px;font-weight:600}
.app-icon-check{position:absolute;right:9px;top:9px;display:grid;place-items:center;width:18px;height:18px;border:1px solid var(--border);border-radius:50%;font-size:11px;color:transparent}
.app-icon-option.active .app-icon-check{background:var(--accent-solid);color:var(--accent-text);border-color:var(--accent-solid)}
.app-icon-match{display:block;width:100%;padding:9px 6px;border:0;border-top:1px solid var(--border-subtle);background:transparent;color:var(--accent);font-size:11px;cursor:pointer}
.app-icon-match:hover{background:var(--bg-hover)}.app-icon-notice{margin-top:14px;line-height:1.5;font-size:12px}
@media(max-width:1100px){.app-icon-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
