/* Complete palettes: one source for every screen, including account routes. */
:root[data-theme="aurora"],.radio-container.theme-aurora {
    --bg-base:#0a0a0f;
    --bg-surface:#13131a;
    --bg-surface-2:#1c1c26;
    --border:#343443;
    --text-primary:#f4f4f8;
    --text-secondary:#b3b3c4;
    --text-tertiary:#9292a8;
    --accent:#a78bfa;
    --accent-2:#f472b6;
    --accent-contrast:#181027;
    --success:#67d6a5;
    --app-font:"Manrope";
    --fb-accent:var(--accent);
    --danger:var(--error);
    --display-font:"Manrope";
    --theme-radius:16px;
}
:root[data-theme="nebula"],.radio-container.theme-nebula {
    --bg-base:#090f1b;
    --bg-surface:#111b2b;
    --bg-surface-2:#19283b;
    --border:#304760;
    --text-primary:#f0f7ff;
    --text-secondary:#afc4dc;
    --text-tertiary:#8babc9;
    --accent:#c084fc;
    --accent-2:#22d3ee;
    --accent-contrast:#1a0d2b;
    --success:#6ee7b7;
    --app-font:"Space Grotesk";
    --fb-accent:var(--accent);
    --danger:var(--error);
    --display-font:"Space Grotesk";
    --theme-radius:18px;
}
:root[data-theme="zen"],.radio-container.theme-zen {
    --bg-base:#101012;
    --bg-surface:#17171a;
    --bg-surface-2:#1e1e22;
    --border:#3b3b42;
    --text-primary:#f4f4f5;
    --text-secondary:#b6b6be;
    --text-tertiary:#9797a3;
    --accent:#d4d4da;
    --accent-2:#a8a8b0;
    --accent-contrast:#141417;
    --success:#9ecab0;
    --app-font:"DM Sans";
    --fb-accent:var(--accent);
    --danger:var(--error);
    --display-font:"Cormorant Garamond";
    --theme-radius:20px;
}
:root[data-theme="ember"],.radio-container.theme-ember {
    --bg-base:#0a0603;
    --bg-surface:#140d08;
    --bg-surface-2:#23190f;
    --border:#594027;
    --text-primary:#fff4e8;
    --text-secondary:#d6b698;
    --text-tertiary:#ba9473;
    --accent:#ff994d;
    --accent-2:#ffca80;
    --accent-contrast:#261205;
    --success:#f6c779;
    --app-font:"DM Sans";
    --fb-accent:var(--accent);
    --danger:var(--error);
    --display-font:"Lora";
    --theme-radius:14px;
}
:root[data-theme="metal"],.radio-container.theme-metal {
    --bg-base:#14161a;
    --bg-surface:#1c1f24;
    --bg-surface-2:#292d34;
    --border:#4b535e;
    --text-primary:#f2f5f8;
    --text-secondary:#b8c1cd;
    --text-tertiary:#98a6b8;
    --accent:#bec9d6;
    --accent-2:#8998ac;
    --accent-contrast:#151b23;
    --success:#7fd8c8;
    --app-font:"Barlow";
    --fb-accent:var(--accent);
    --danger:var(--error);
    --display-font:"Barlow";
    --theme-radius:8px;
}
:root[data-theme="hexgrid"],.radio-container.theme-hexgrid {
    --bg-base:#070a14;
    --bg-surface:#0d1220;
    --bg-surface-2:#172139;
    --border:#344969;
    --text-primary:#effcff;
    --text-secondary:#a5c8d9;
    --text-tertiary:#85a8c0;
    --accent:#00e5ff;
    --accent-2:#a78bfa;
    --accent-contrast:#061725;
    --success:#5cffc4;
    --app-font:"Rajdhani";
    --fb-accent:var(--accent);
    --danger:var(--error);
    --display-font:"Rajdhani";
    --theme-radius:10px;
}
:root[data-theme="matrix"],.radio-container.theme-matrix {
    --bg-base:#000502;
    --bg-surface:#030a05;
    --bg-surface-2:#091c10;
    --border:#285739;
    --text-primary:#e7ffed;
    --text-secondary:#a6d5b5;
    --text-tertiary:#82b693;
    --accent:#36e677;
    --accent-2:#92ffad;
    --accent-contrast:#03180b;
    --success:#7dffb0;
    --app-font:"JetBrains Mono";
    --fb-accent:var(--accent);
    --danger:var(--error);
    --display-font:"JetBrains Mono";
    --theme-radius:8px;
}
:root[data-theme="retro"],.radio-container.theme-retro {
    --bg-base:#170826;
    --bg-surface:#22103a;
    --bg-surface-2:#331d50;
    --border:#684078;
    --text-primary:#fff0fa;
    --text-secondary:#dec0e6;
    --text-tertiary:#c59bd3;
    --accent:#ff79c6;
    --accent-2:#ffca80;
    --accent-contrast:#2b1029;
    --success:#70e6cf;
    --app-font:"Outfit";
    --fb-accent:var(--accent);
    --danger:var(--error);
    --display-font:"Outfit";
    --theme-radius:18px;
}

:root {color-scheme:dark;--accent-2:#f472b6;--accent-contrast:#181027;--danger:var(--error);}
/* Shared interaction language; theme-specific background artwork remains intact. */
.radio-container[class*="theme-"] .fx-node-active {background:color-mix(in srgb,var(--accent) 17%,var(--bg-surface));color:var(--text-primary);border-color:var(--accent);}
.radio-container .eq-preset-chip-active,.radio-container .eq-section-tabs button.active,
.radio-container .ctrl-btn.primary,.radio-container .icon-mode-btn.active,
.radio-container .btn-primary,.account-card .btn {background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);text-shadow:none;}
.radio-container .ctrl-btn.primary:hover,.radio-container .btn-primary:hover,.account-card .btn:hover {background:color-mix(in srgb,var(--accent) 86%,var(--text-primary));}
.radio-container .toolbar-btn.active,.radio-container .viz-nav-btn.active,.radio-container .icon-btn.active,
.radio-container .np-autochange-mode-btn.active {color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--bg-surface));}
.radio-container .viz-select,.radio-container .viz-cycle-control select {background:var(--bg-surface-2);color:var(--text-primary);border-color:var(--border);}
.radio-container .viz-select option {background:var(--bg-surface-2);color:var(--text-primary);}
.radio-container .viz-controls-panel,.radio-container .np-viz-toolbar {color:var(--text-primary);background:color-mix(in srgb,var(--bg-surface) 92%,transparent);border-color:var(--border);}
.radio-container .np-toolbar-pill {background:var(--bg-surface);border-color:var(--border);}
.radio-container .np-visualizer-label,.radio-container .viz-preset-name,.radio-container .viz-nav-btn,.radio-container .icon-btn {color:var(--text-secondary);}
.radio-container .viz-nav-btn:hover,.radio-container .icon-btn:hover {color:var(--accent);}
.radio-container .theme-swatch.active {background:var(--bg-surface-2);color:var(--text-primary);border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);}
.radio-container .player-bar {background:var(--bg-surface);border-color:var(--border);}
.radio-container .volume-track,.radio-container .fx-wire {background:var(--border);}
.radio-container .volume-fill {background:var(--accent);}
.radio-container .member-gate {border-color:var(--border);background:var(--bg-surface);}
.radio-container .library-error {background:color-mix(in srgb,var(--error) 18%,var(--bg-surface));color:var(--text-primary);}
.station-stars button {color:var(--text-tertiary);}.station-stars button.selected {color:var(--warning);}
:where(input,select,textarea) {accent-color:var(--accent);color-scheme:dark;}
:where(button,a,input,select,textarea,summary,[role=separator]):focus-visible {outline:2px solid var(--accent);outline-offset:3px;}
:where(button):disabled {opacity:.45;cursor:default;}
:where(.radio-container,.account-page) {scrollbar-color:color-mix(in srgb,var(--accent) 40%,var(--bg-surface)) var(--bg-base);}
::selection {background:color-mix(in srgb,var(--accent) 35%,transparent);color:var(--text-primary);}
.account-card a.btn {color:var(--accent-contrast);}
@media(prefers-reduced-motion:reduce) {.radio-container::before,.radio-container::after,.theme-swatch-dot {animation:none!important;}}

/* Typography and tactile details give each palette a distinct character. */
html,body,.radio-container,.account-page {font-family:var(--app-font,"Manrope"),system-ui,sans-serif;}
button,input,select,textarea {font-family:inherit;}
.radio-container :is(h1,h2,h3,h4,.station-card-name,.player-station-name, .player-mini-title),.account-card h1 {font-family:var(--display-font,var(--app-font)),system-ui,sans-serif;}
.radio-container :is(.station-card,.eq-monitor,.eq-bands,.fx-card,.modal-dialog),.account-card {border-radius:var(--theme-radius,16px);}
.radio-container .station-card {transition:border-color .2s,box-shadow .2s,background .2s;}
.radio-container .station-card:hover {border-color:var(--accent);box-shadow:0 5px 22px color-mix(in srgb,var(--accent) 12%,transparent);}
.radio-container.theme-aurora :is(.station-card,.player-bar) {background-image:radial-gradient(ellipse at top left,#b6a0ff12,transparent 65%),radial-gradient(ellipse at bottom right,#f472b610,transparent 65%);}
.theme-aurora .tab-btn.active {border-image:linear-gradient(90deg,var(--accent),var(--accent-2)) 1;}
.theme-aurora .np-station-name {letter-spacing:-.04em;}
.theme-nebula .station-card {background-image:radial-gradient(circle at 94% 12%,#d6f4ff6b 0 1px,transparent 2px),radial-gradient(circle at 87% 27%,#d6f4ff33 0 1px,transparent 2px),linear-gradient(135deg,#c084fc0b,transparent 60%);}
.theme-nebula :is(.tab-btn.active,.np-station-name) {text-shadow:0 0 20px #a984fc50;}
.theme-nebula .tab-btn {letter-spacing:.03em;}
.theme-zen :is(.np-station-name,.design-guide h2) {font-weight:500;letter-spacing:.02em;}
.theme-zen .np-station-name {font-size:clamp(28px,4vw,48px);}
.theme-zen .station-card {background-image:repeating-linear-gradient(15deg,#ffffff03 0 1px,transparent 1px 5px);box-shadow:inset 0 1px 0 #ffffff08;}
.theme-zen .tab-btn.active {border-color:#c1b18d;}
.theme-zen .np-station-meta {letter-spacing:.06em;}
.theme-ember :is(.station-card,.player-bar) {background-image:radial-gradient(ellipse at bottom,#ff7e2010,transparent 70%);box-shadow:inset 0 1px 0 #ffca8018;}
.theme-ember .np-station-name {text-shadow:0 2px 12px #ff7e2035;}
.theme-ember .tab-btn.active {border-image:linear-gradient(90deg,#ff994d,#ffca80,#ff994d) 1;}
.theme-metal :is(.station-card,.player-bar,.eq-monitor) {background-image:repeating-linear-gradient(0deg,#ffffff05 0 1px,#00000005 1px 3px);box-shadow:inset 0 1px 0 #ffffff18,inset 0 -1px 0 #0008;}
.theme-metal :is(.np-station-name,.design-guide h2) {font-weight:700;letter-spacing:.08em;text-transform:uppercase;}
.theme-metal .tab-btn.active {background:linear-gradient(#d4e1f00b,#0003);}
.theme-hexgrid :is(.station-card,.eq-monitor,.fx-card) {border-left:2px solid color-mix(in srgb,var(--accent) 60%,var(--border));background-image:linear-gradient(135deg,#00e5ff0c,transparent 40%);}
.theme-hexgrid :is(.tab-btn,.np-station-name) {letter-spacing:.06em;font-weight:600;}
.theme-hexgrid .station-card {font-size:15px;}
.theme-retro :is(.station-card,.eq-monitor) {background-image:linear-gradient(155deg,#ff79c60d,transparent 45%,#ffca800a);box-shadow:inset 0 1px 0 #ff79c62b;}
.theme-retro .np-station-name {font-weight:700;letter-spacing:-.03em;text-shadow:2px 2px 0 #ff79c630,-2px -1px 0 #22d3ee20;}
.theme-retro .tab-btn.active {border-image:linear-gradient(90deg,#ff79c6,#ffca80) 1;}
.theme-retro .player-bar {background-image:repeating-linear-gradient(0deg,transparent 0 3px,#ff79c606 3px 4px);}
.radio-container.is-playing:not(.theme-matrix) .profile-symbol {animation:theme-breathe 5s ease-in-out infinite;}
@keyframes theme-breathe {50% {box-shadow:0 0 14px color-mix(in srgb,var(--accent) 30%,transparent);}}
@media(prefers-reduced-motion:reduce) {.radio-container .profile-symbol {animation:none!important;}.radio-container .station-card {transition:none;}}

/* Restrained finishing touches; decorative work stays entirely in the browser. */
.ember-sky-canvas {display:none;position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;}
.theme-ember .ember-sky-canvas {display:block;}
.radio-container.theme-ember::after {content:none;animation:none;}
.theme-ember .tab-bar {background:linear-gradient(180deg,#ffbc6b08,transparent);}
.theme-ember .settings-section-title {color:var(--accent-2);letter-spacing:.1em;}
.theme-aurora .tab-bar {background:linear-gradient(110deg,#a78bfa08,transparent 50%,#f472b607);}
.theme-aurora :is(.profile-dropdown,.np-preset-popover) {box-shadow:0 8px 32px #0007,inset 0 1px 0 #c4b5fd18;}
.theme-nebula .tab-bar {background:linear-gradient(90deg,#22d3ee06,transparent,#c084fc08);}
.theme-nebula :is(.eq-monitor,.design-preview) {border-color:color-mix(in srgb,var(--accent-2) 23%,var(--border));box-shadow:inset 0 1px 0 #22d3ee12;}
.theme-zen .tab-bar {border-bottom:1px solid #c1b18d33;}
.theme-zen :is(.settings-section-title,.station-drawer-top-rated summary) {letter-spacing:.045em;}
.theme-zen :is(.design-guide,.account-card) {line-height:1.85;}
.theme-metal .tab-bar {background:linear-gradient(#fff07,#0002);box-shadow:inset 0 1px 0 #ffffff10;}
.theme-metal :is(.np-preset-popover,.profile-dropdown) {border-radius:7px;box-shadow:0 8px 30px #0008,inset 0 1px 0 #ffffff12;}
.theme-hexgrid .tab-bar {background:linear-gradient(90deg,#00e5ff08,transparent 70%);}
.theme-hexgrid :is(.profile-dropdown,.np-preset-popover) {border-left:2px solid var(--accent);box-shadow:0 0 22px #00e5ff0b;}
.theme-matrix .station-drawer-top-rated summary {text-transform:uppercase;letter-spacing:.06em;}
.theme-matrix .favorite-stations-drawer {box-shadow:0 0 26px #00ff4112,0 12px 30px #0008;}
.theme-retro .tab-bar {background:linear-gradient(90deg,#ff79c609,#22d3ee03);}
.theme-retro :is(.np-preset-popover,.profile-dropdown) {box-shadow:0 8px 30px #0008,inset 0 1px 0 #ff79c635;}
.radio-container.theme-retro::after {animation-duration:14s;opacity:.65;}
.radio-container.theme-retro.is-playing::after {animation-duration:8s;}
@media(prefers-reduced-motion:reduce){.radio-container.theme-retro::after{animation:none;}}
