CI Redesign: Warm-Brown Palette, DM Sans, vereinfachtes Accent-System

- Neon-Forge Design-System ersetzt durch warme Braun-Palette
- Fonts: DM Sans + DM Mono statt Space Grotesk + JetBrains Mono
- Glassmorphism (backdrop-filter: blur) komplett entfernt
- Accent-Gradients und Glow-Effekte durch solide Farben ersetzt
- Border-Radius vereinheitlicht (max 8px, Standard 4px)
- Button-Hoehen: 26px Standard, 24px Small, 32px Large
- Noise-Texture-Overlay entfernt
- Plugin-CSS (Soundboard, Game-Library, LoLStats, Streaming, Watch-Together) angepasst

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Daniel 2026-03-11 01:45:51 +01:00
parent 970e1c2bc1
commit 7d89ba6978
6 changed files with 199 additions and 292 deletions

View file

@ -62,7 +62,7 @@
align-items: center; align-items: center;
gap: 8px; gap: 8px;
padding: 6px 12px; padding: 6px 12px;
border-radius: 20px; border-radius: 4px;
background: rgba(255,255,255,0.05); background: rgba(255,255,255,0.05);
border: 1px solid rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.1);
cursor: pointer; cursor: pointer;
@ -234,7 +234,7 @@
gap: 6px; gap: 6px;
background: var(--bg-tertiary); background: var(--bg-tertiary);
padding: 6px 12px 6px 6px; padding: 6px 12px 6px 6px;
border-radius: 20px; border-radius: 4px;
cursor: pointer; cursor: pointer;
transition: all var(--transition); transition: all var(--transition);
} }
@ -479,7 +479,6 @@
.gl-empty-icon { .gl-empty-icon {
font-size: 64px; line-height: 1; font-size: 64px; line-height: 1;
filter: drop-shadow(0 0 20px rgba(230,126,34,0.5));
animation: gl-empty-float 3s ease-in-out infinite; animation: gl-empty-float 3s ease-in-out infinite;
} }
@ -704,7 +703,7 @@
} }
.gl-sort-select option { .gl-sort-select option {
background: #1a1a2e; background: #1a1810;
color: #c7d5e0; color: #c7d5e0;
} }
@ -723,7 +722,7 @@
color: #8899a6; color: #8899a6;
border: 1px solid rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.08);
padding: 5px 12px; padding: 5px 12px;
border-radius: 20px; border-radius: 4px;
font-size: 12px; font-size: 12px;
cursor: pointer; cursor: pointer;
transition: all 0.2s; transition: all 0.2s;
@ -778,12 +777,11 @@
align-items: center; align-items: center;
justify-content: center; justify-content: center;
z-index: 1000; z-index: 1000;
backdrop-filter: blur(4px);
} }
.gl-dialog { .gl-dialog {
background: #2a2a3e; background: #2a2620;
border-radius: 12px; border-radius: 6px;
padding: 24px; padding: 24px;
max-width: 500px; max-width: 500px;
width: 90%; width: 90%;
@ -806,9 +804,9 @@
.gl-dialog-input { .gl-dialog-input {
width: 100%; width: 100%;
padding: 10px 12px; padding: 10px 12px;
background: #1a1a2e; background: #1a1810;
border: 1px solid #444; border: 1px solid #444;
border-radius: 8px; border-radius: 6px;
color: #fff; color: #fff;
font-size: 0.9rem; font-size: 0.9rem;
outline: none; outline: none;
@ -847,16 +845,16 @@
.gl-dialog-cancel { .gl-dialog-cancel {
padding: 8px 18px; padding: 8px 18px;
background: #3a3a4e; background: #322d26;
color: #ccc; color: #ccc;
border: none; border: none;
border-radius: 8px; border-radius: 6px;
cursor: pointer; cursor: pointer;
font-size: 0.9rem; font-size: 0.9rem;
} }
.gl-dialog-cancel:hover { .gl-dialog-cancel:hover {
background: #4a4a5e; background: #3a352d;
} }
.gl-dialog-submit { .gl-dialog-submit {
@ -864,7 +862,7 @@
background: #a855f7; background: #a855f7;
color: #fff; color: #fff;
border: none; border: none;
border-radius: 8px; border-radius: 6px;
cursor: pointer; cursor: pointer;
font-size: 0.9rem; font-size: 0.9rem;
font-weight: 600; font-weight: 600;
@ -902,8 +900,8 @@
} }
.gl-admin-panel { .gl-admin-panel {
background: #2a2a3e; background: #2a2620;
border-radius: 12px; border-radius: 6px;
padding: 0; padding: 0;
max-width: 600px; max-width: 600px;
width: 92%; width: 92%;
@ -962,7 +960,7 @@
color: #fff; color: #fff;
border: none; border: none;
padding: 10px 20px; padding: 10px 20px;
border-radius: 8px; border-radius: 6px;
cursor: pointer; cursor: pointer;
font-weight: 600; font-weight: 600;
white-space: nowrap; white-space: nowrap;

View file

@ -20,7 +20,7 @@
min-width: 0; min-width: 0;
padding: 10px 14px; padding: 10px 14px;
border: 1px solid var(--bg-tertiary); border: 1px solid var(--bg-tertiary);
border-radius: 8px; border-radius: 4px;
background: var(--bg-secondary); background: var(--bg-secondary);
color: var(--text-normal); color: var(--text-normal);
font-size: 15px; font-size: 15px;
@ -33,7 +33,7 @@
.lol-search-region { .lol-search-region {
padding: 10px 12px; padding: 10px 12px;
border: 1px solid var(--bg-tertiary); border: 1px solid var(--bg-tertiary);
border-radius: 8px; border-radius: 4px;
background: var(--bg-secondary); background: var(--bg-secondary);
color: var(--text-normal); color: var(--text-normal);
font-size: 14px; font-size: 14px;
@ -44,7 +44,7 @@
.lol-search-btn { .lol-search-btn {
padding: 10px 20px; padding: 10px 20px;
border: none; border: none;
border-radius: 8px; border-radius: 4px;
background: var(--accent); background: var(--accent);
color: #fff; color: #fff;
font-weight: 600; font-weight: 600;
@ -70,7 +70,7 @@
gap: 6px; gap: 6px;
padding: 4px 10px; padding: 4px 10px;
border: 1px solid var(--bg-tertiary); border: 1px solid var(--bg-tertiary);
border-radius: 16px; border-radius: 4px;
background: var(--bg-secondary); background: var(--bg-secondary);
color: var(--text-muted); color: var(--text-muted);
font-size: 12px; font-size: 12px;
@ -94,13 +94,13 @@
align-items: center; align-items: center;
gap: 16px; gap: 16px;
padding: 16px; padding: 16px;
border-radius: 12px; border-radius: 6px;
background: var(--bg-secondary); background: var(--bg-secondary);
margin-bottom: 12px; margin-bottom: 12px;
} }
.lol-profile-icon { .lol-profile-icon {
width: 72px; height: 72px; width: 72px; height: 72px;
border-radius: 12px; border-radius: 6px;
border: 2px solid var(--bg-tertiary); border: 2px solid var(--bg-tertiary);
object-fit: cover; object-fit: cover;
} }
@ -139,7 +139,7 @@
gap: 6px; gap: 6px;
padding: 8px 16px; padding: 8px 16px;
border: 1px solid var(--bg-tertiary); border: 1px solid var(--bg-tertiary);
border-radius: 8px; border-radius: 4px;
background: var(--bg-primary); background: var(--bg-primary);
color: var(--text-muted); color: var(--text-muted);
font-size: 13px; font-size: 13px;
@ -170,7 +170,7 @@
.lol-ranked-card { .lol-ranked-card {
flex: 1; flex: 1;
padding: 12px 14px; padding: 12px 14px;
border-radius: 10px; border-radius: 6px;
background: var(--bg-secondary); background: var(--bg-secondary);
border-left: 4px solid var(--bg-tertiary); border-left: 4px solid var(--bg-tertiary);
} }
@ -232,7 +232,7 @@
align-items: center; align-items: center;
gap: 8px; gap: 8px;
padding: 8px 12px; padding: 8px 12px;
border-radius: 8px; border-radius: 4px;
background: var(--bg-secondary); background: var(--bg-secondary);
min-width: 180px; min-width: 180px;
flex-shrink: 0; flex-shrink: 0;
@ -268,7 +268,7 @@
align-items: center; align-items: center;
gap: 10px; gap: 10px;
padding: 10px 12px; padding: 10px 12px;
border-radius: 8px; border-radius: 4px;
background: var(--bg-secondary); background: var(--bg-secondary);
border-left: 4px solid var(--bg-tertiary); border-left: 4px solid var(--bg-tertiary);
cursor: pointer; cursor: pointer;
@ -374,7 +374,7 @@
/* ── Match Detail (expanded) ── */ /* ── Match Detail (expanded) ── */
.lol-match-detail { .lol-match-detail {
background: var(--bg-primary); background: var(--bg-primary);
border-radius: 8px; border-radius: 4px;
padding: 8px; padding: 8px;
margin-top: 4px; margin-top: 4px;
margin-bottom: 4px; margin-bottom: 4px;
@ -447,7 +447,7 @@
.lol-error { .lol-error {
padding: 16px; padding: 16px;
border-radius: 8px; border-radius: 4px;
background: rgba(231,76,60,0.1); background: rgba(231,76,60,0.1);
color: #e74c3c; color: #e74c3c;
font-size: 13px; font-size: 13px;
@ -462,7 +462,6 @@
} }
.lol-empty-icon { .lol-empty-icon {
font-size: 64px; line-height: 1; font-size: 64px; line-height: 1;
filter: drop-shadow(0 0 20px rgba(230,126,34,0.5));
animation: lol-float 3s ease-in-out infinite; animation: lol-float 3s ease-in-out infinite;
} }
@keyframes lol-float { @keyframes lol-float {
@ -470,11 +469,11 @@
50% { transform: translateY(-8px); } 50% { transform: translateY(-8px); }
} }
.lol-empty h3 { .lol-empty h3 {
font-size: 26px; font-weight: 700; color: #f2f3f5; font-size: 26px; font-weight: 700; color: var(--text-normal);
letter-spacing: -0.5px; margin: 0; letter-spacing: -0.5px; margin: 0;
} }
.lol-empty p { .lol-empty p {
font-size: 15px; color: #80848e; font-size: 15px; color: var(--text-muted);
text-align: center; max-width: 360px; line-height: 1.5; margin: 0; text-align: center; max-width: 360px; line-height: 1.5; margin: 0;
} }
@ -485,7 +484,7 @@
padding: 10px; padding: 10px;
margin-top: 8px; margin-top: 8px;
border: 1px solid var(--bg-tertiary); border: 1px solid var(--bg-tertiary);
border-radius: 8px; border-radius: 4px;
background: transparent; background: transparent;
color: var(--text-muted); color: var(--text-muted);
font-size: 13px; font-size: 13px;
@ -521,7 +520,7 @@
.lol-tier-mode-btn { .lol-tier-mode-btn {
padding: 6px 14px; padding: 6px 14px;
border: 1px solid var(--bg-tertiary); border: 1px solid var(--bg-tertiary);
border-radius: 16px; border-radius: 4px;
background: var(--bg-secondary); background: var(--bg-secondary);
color: var(--text-muted); color: var(--text-muted);
font-size: 12px; font-size: 12px;
@ -540,7 +539,7 @@
.lol-tier-filter { .lol-tier-filter {
padding: 6px 12px; padding: 6px 12px;
border: 1px solid var(--bg-tertiary); border: 1px solid var(--bg-tertiary);
border-radius: 8px; border-radius: 4px;
background: var(--bg-secondary); background: var(--bg-secondary);
color: var(--text-normal); color: var(--text-normal);
font-size: 12px; font-size: 12px;

View file

@ -266,13 +266,12 @@
height: 7px; height: 7px;
border-radius: 50%; border-radius: 50%;
background: var(--success); background: var(--success);
box-shadow: 0 0 6px rgba(67, 181, 129, .6);
animation: pulse-dot 2s ease-in-out infinite; animation: pulse-dot 2s ease-in-out infinite;
} }
@keyframes pulse-dot { @keyframes pulse-dot {
0%, 100% { box-shadow: 0 0 6px rgba(67, 181, 129, .5); } 0%, 100% { opacity: 1; }
50% { box-shadow: 0 0 12px rgba(67, 181, 129, .8); } 50% { opacity: .6; }
} }
.conn-ping { .conn-ping {
@ -290,7 +289,6 @@
border-radius: var(--radius-full); border-radius: var(--radius-full);
background: rgba(237, 66, 69, .1); background: rgba(237, 66, 69, .1);
border: 1px solid rgba(237, 66, 69, .2); border: 1px solid rgba(237, 66, 69, .2);
backdrop-filter: blur(8px);
color: var(--danger); color: var(--danger);
font-size: var(--text-sm); font-size: var(--text-sm);
font-weight: var(--weight-semibold); font-weight: var(--weight-semibold);
@ -301,7 +299,6 @@
.disconnect-btn:hover { .disconnect-btn:hover {
background: rgba(237, 66, 69, .2); background: rgba(237, 66, 69, .2);
border-color: rgba(237, 66, 69, .4); border-color: rgba(237, 66, 69, .4);
box-shadow: 0 0 12px rgba(237, 66, 69, .15);
} }
.disconnect-btn:active { .disconnect-btn:active {
@ -317,7 +314,6 @@
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
backdrop-filter: blur(16px);
animation: fade-in .15s ease; animation: fade-in .15s ease;
} }
@ -399,8 +395,8 @@
/* ── Admin Icon Button ── */ /* ── Admin Icon Button ── */
.admin-btn-icon { .admin-btn-icon {
width: 32px; width: 26px;
height: 32px; height: 26px;
border-radius: var(--radius-sm); border-radius: var(--radius-sm);
display: flex; display: flex;
align-items: center; align-items: center;
@ -442,7 +438,7 @@
/* Alias: SoundboardTab uses .filter-chip */ /* Alias: SoundboardTab uses .filter-chip */
.filter-chip { .filter-chip {
height: 30px; height: 26px;
display: flex; display: flex;
align-items: center; align-items: center;
gap: var(--space-1); gap: var(--space-1);
@ -475,7 +471,7 @@
} }
.cat-tab { .cat-tab {
height: 30px; height: 26px;
display: flex; display: flex;
align-items: center; align-items: center;
gap: var(--space-1); gap: var(--space-1);
@ -530,7 +526,7 @@
.search-input { .search-input {
width: 100%; width: 100%;
height: 32px; height: 26px;
padding: 0 var(--space-7) 0 var(--space-8); padding: 0 var(--space-7) 0 var(--space-8);
border: 1px solid var(--border-default); border: 1px solid var(--border-default);
border-radius: var(--radius-sm); border-radius: var(--radius-sm);
@ -712,20 +708,20 @@
.tb-btn.party:hover { .tb-btn.party:hover {
background: var(--warning); background: var(--warning);
color: #1a1b1e; color: #1a1810;
border-color: var(--warning); border-color: var(--warning);
} }
.tb-btn.party.active { .tb-btn.party.active {
background: var(--warning); background: var(--warning);
color: #1a1b1e; color: #1a1810;
border-color: var(--warning); border-color: var(--warning);
animation: party-btn 600ms ease-in-out infinite alternate; animation: party-btn 600ms ease-in-out infinite alternate;
} }
@keyframes party-btn { @keyframes party-btn {
from { box-shadow: 0 0 8px rgba(250, 166, 26, .4); } from { opacity: .9; }
to { box-shadow: 0 0 20px rgba(250, 166, 26, .7); } to { opacity: 1; }
} }
.tb-btn.stop { .tb-btn.stop {
@ -815,7 +811,6 @@
.theme-dot.active { .theme-dot.active {
border-color: #fff; border-color: #fff;
box-shadow: 0 0 6px var(--accent-glow);
} }
/* ── Analytics Strip ── */ /* ── Analytics Strip ── */
@ -1187,14 +1182,13 @@
border-radius: inherit; border-radius: inherit;
opacity: 0; opacity: 0;
transition: opacity var(--duration-fast); transition: opacity var(--duration-fast);
background: radial-gradient(circle at 50% 0%, var(--accent-soft), transparent 70%); background: var(--accent-soft);
pointer-events: none; pointer-events: none;
} }
.sound-card:hover { .sound-card:hover {
border-color: var(--accent); border-color: var(--accent);
transform: translateY(-2px); transform: translateY(-2px);
box-shadow: 0 4px 20px var(--accent-glow);
background: var(--surface-glass-hover); background: var(--surface-glass-hover);
} }
@ -1209,14 +1203,13 @@
.sound-card.playing { .sound-card.playing {
border-color: var(--accent); border-color: var(--accent);
box-shadow: 0 0 20px var(--accent-glow); background: var(--accent-soft);
background: linear-gradient(135deg, var(--accent-soft), var(--surface-glass));
animation: card-enter 350ms var(--ease-out) forwards, playing-glow 1.2s ease-in-out infinite alternate; animation: card-enter 350ms var(--ease-out) forwards, playing-glow 1.2s ease-in-out infinite alternate;
} }
@keyframes playing-glow { @keyframes playing-glow {
from { box-shadow: 0 0 4px var(--accent-glow); } from { opacity: .85; }
to { box-shadow: 0 0 16px var(--accent-glow); } to { opacity: 1; }
} }
@keyframes card-enter { @keyframes card-enter {
@ -1491,14 +1484,12 @@
height: 14px; height: 14px;
border-radius: 50%; border-radius: 50%;
background: var(--accent); background: var(--accent);
box-shadow: 0 0 8px var(--accent-glow);
cursor: pointer; cursor: pointer;
transition: transform var(--duration-fast), box-shadow var(--duration-fast); transition: transform var(--duration-fast);
} }
.vol-slider::-webkit-slider-thumb:hover { .vol-slider::-webkit-slider-thumb:hover {
transform: scale(1.3); transform: scale(1.3);
box-shadow: 0 0 14px var(--accent-glow);
} }
.vol-slider::-moz-range-thumb { .vol-slider::-moz-range-thumb {
@ -1506,7 +1497,6 @@
height: 14px; height: 14px;
border-radius: 50%; border-radius: 50%;
background: var(--accent); background: var(--accent);
box-shadow: 0 0 8px var(--accent-glow);
border: none; border: none;
cursor: pointer; cursor: pointer;
} }
@ -1537,24 +1527,7 @@
animation: party-hue 2s linear infinite; animation: party-hue 2s linear infinite;
} }
.party-overlay::before { /* Party gradient removed per CI v2 */
content: '';
position: absolute;
inset: 0;
background: linear-gradient(45deg,
rgba(255, 0, 0, .04),
rgba(0, 255, 0, .04),
rgba(0, 0, 255, .04),
rgba(255, 255, 0, .04)
);
background-size: 400% 400%;
animation: party-grad 3s ease infinite;
}
@keyframes party-grad {
0% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
100% { background-position: 0% 50%; }
} }
@keyframes party-hue { @keyframes party-hue {
@ -1574,7 +1547,6 @@
padding: var(--space-1); padding: var(--space-1);
z-index: 1000; z-index: 1000;
animation: ctx-in 100ms var(--ease-out); animation: ctx-in 100ms var(--ease-out);
backdrop-filter: blur(16px);
} }
@keyframes ctx-in { @keyframes ctx-in {
@ -1655,7 +1627,7 @@
.toast.warning { .toast.warning {
background: var(--warning); background: var(--warning);
color: #1a1b1e; color: #1a1810;
} }
.toast.notice { .toast.notice {
@ -1675,8 +1647,6 @@
position: fixed; position: fixed;
inset: 0; inset: 0;
background: rgba(0, 0, 0, .6); background: rgba(0, 0, 0, .6);
backdrop-filter: blur(16px);
-webkit-backdrop-filter: blur(16px);
z-index: 60; z-index: 60;
display: flex; display: flex;
align-items: center; align-items: center;
@ -2096,8 +2066,6 @@
position: fixed; position: fixed;
inset: 0; inset: 0;
background: rgba(0, 0, 0, .78); background: rgba(0, 0, 0, .78);
backdrop-filter: blur(6px);
-webkit-backdrop-filter: blur(6px);
z-index: 300; z-index: 300;
display: flex; display: flex;
align-items: center; align-items: center;
@ -2126,7 +2094,7 @@
} }
50% { 50% {
border-color: var(--accent); border-color: var(--accent);
box-shadow: 0 0 60px 12px var(--accent-glow); box-shadow: none;
opacity: 1; opacity: 1;
} }
} }
@ -2168,7 +2136,6 @@
border-radius: var(--radius-lg); border-radius: var(--radius-lg);
box-shadow: var(--shadow-xl); box-shadow: var(--shadow-xl);
z-index: 200; z-index: 200;
backdrop-filter: blur(16px);
animation: slide-up 200ms var(--ease-out); animation: slide-up 200ms var(--ease-out);
} }
@ -2311,7 +2278,6 @@
align-items: center; align-items: center;
justify-content: center; justify-content: center;
z-index: 300; z-index: 300;
backdrop-filter: blur(16px);
animation: fade-in 150ms ease; animation: fade-in 150ms ease;
} }

View file

@ -379,7 +379,6 @@
} }
.stream-empty-icon { .stream-empty-icon {
font-size: 64px; line-height: 1; font-size: 64px; line-height: 1;
filter: drop-shadow(0 0 20px rgba(230,126,34,0.5));
animation: stream-float 3s ease-in-out infinite; animation: stream-float 3s ease-in-out infinite;
} }
@keyframes stream-float { @keyframes stream-float {
@ -539,7 +538,7 @@
.stream-admin-panel { .stream-admin-panel {
background: var(--bg-secondary); background: var(--bg-secondary);
border-radius: 12px; border-radius: 6px;
width: 560px; width: 560px;
max-width: 95vw; max-width: 95vw;
max-height: 80vh; max-height: 80vh;
@ -652,7 +651,7 @@
align-items: center; align-items: center;
gap: 4px; gap: 4px;
padding: 4px 10px; padding: 4px 10px;
border-radius: 14px; border-radius: 6px;
font-size: 12px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
background: var(--bg-secondary); background: var(--bg-secondary);

View file

@ -167,7 +167,6 @@
} }
.wt-empty-icon { .wt-empty-icon {
font-size: 64px; line-height: 1; font-size: 64px; line-height: 1;
filter: drop-shadow(0 0 20px rgba(230,126,34,0.5));
animation: wt-float 3s ease-in-out infinite; animation: wt-float 3s ease-in-out infinite;
} }
@keyframes wt-float { @keyframes wt-float {
@ -557,9 +556,9 @@
} }
.wt-quality-select { .wt-quality-select {
background: var(--bg-secondary, #2a2a3e); background: var(--bg-secondary, #2a2620);
color: var(--text-primary, #e0e0e0); color: var(--text-primary, #e0e0e0);
border: 1px solid var(--border-color, #3a3a4e); border: 1px solid var(--border-color, #3a352d);
border-radius: 6px; border-radius: 6px;
padding: 2px 6px; padding: 2px 6px;
font-size: 12px; font-size: 12px;
@ -865,9 +864,9 @@
border-radius: 50%; border-radius: 50%;
flex-shrink: 0; flex-shrink: 0;
} }
.wt-sync-synced { background: #2ecc71; box-shadow: 0 0 6px rgba(46, 204, 113, 0.5); } .wt-sync-synced { background: #2ecc71; }
.wt-sync-drifting { background: #f1c40f; box-shadow: 0 0 6px rgba(241, 196, 15, 0.5); } .wt-sync-drifting { background: #f1c40f; }
.wt-sync-desynced { background: #e74c3c; box-shadow: 0 0 6px rgba(231, 76, 60, 0.5); } .wt-sync-desynced { background: #e74c3c; }
/* /*
VOTE BUTTONS VOTE BUTTONS

View file

@ -1,63 +1,69 @@
/* ============================================================ /* ============================================================
GAMING HUB -- Global Styles GAMING HUB -- Global Styles
Design System v2.0 -- Codename "Neon Forge" Design System v3.0 -- CI Redesign (warm brown, DM Sans)
============================================================ */ ============================================================ */
/* -- Google Fonts ------------------------------------------- */ /* -- Google Fonts ------------------------------------------- */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&family=Space+Grotesk:wght@600;700&display=swap'); @import url('https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500;9..40,600;9..40,700&family=DM+Mono:wght@400;500&display=swap');
/* ============================================================ /* ============================================================
A) CSS CUSTOM PROPERTIES A) CSS CUSTOM PROPERTIES
============================================================ */ ============================================================ */
:root { :root {
/* -- Surface Palette -------------------------------------- */ /* -- Surface Palette (warm brown) ------------------------- */
--bg-deepest: #0d0e12; --bg-deepest: #141209;
--bg-deep: #12131a; --bg-deep: #1a1810;
--bg-primary: #181a23; --bg-primary: #211e17;
--bg-secondary: #1e2030; --bg-secondary: #2a2620;
--bg-tertiary: #252839; --bg-tertiary: #322d26;
--bg-elevated: #2a2d42; --bg-elevated: #3a352d;
--bg-hover: #303450; --bg-hover: #3e3830;
--bg-active: #383c58; --bg-active: #453f36;
--bg-input: #1e1b15;
--bg-header: #1e1b14;
/* -- Text Colors ------------------------------------------ */ /* -- Text Colors ------------------------------------------ */
--text-primary: #eef0f6; --text-primary: #dbdee1;
--text-secondary: #a0a5b8; --text-secondary: #949ba4;
--text-tertiary: #6b7089; --text-tertiary: #6d6f78;
--text-disabled: #484d64; --text-disabled: #4a4940;
/* -- Semantic Colors -------------------------------------- */ /* -- Semantic Colors -------------------------------------- */
--success: #43b581; --success: #57d28f;
--warning: #faa61a; --warning: #fee75c;
--danger: #ed4245; --danger: #ed4245;
--info: #5865f2; --info: #5865f2;
/* -- Glass / Surface Tokens ------------------------------- */ /* -- Surface Tokens (solid, no glass) --------------------- */
--surface-glass: rgba(255, 255, 255, .035); --surface-glass: rgba(255, 255, 255, .04);
--surface-glass-hover: rgba(255, 255, 255, .065); --surface-glass-hover: rgba(255, 255, 255, .07);
--surface-glass-active: rgba(255, 255, 255, .09); --surface-glass-active: rgba(255, 255, 255, .10);
--surface-glass-border: rgba(255, 255, 255, .07); --surface-glass-border: rgba(255, 255, 255, .05);
--surface-glass-border-hover: rgba(255, 255, 255, .12); --surface-glass-border-hover: rgba(255, 255, 255, .10);
/* -- Border Tokens ---------------------------------------- */ /* -- Border Tokens ---------------------------------------- */
--border-subtle: rgba(255, 255, 255, .05); --border-subtle: rgba(255, 255, 255, .05);
--border-default: rgba(255, 255, 255, .08); --border-default: rgba(255, 255, 255, .08);
--border-strong: rgba(255, 255, 255, .14); --border-strong: rgba(255, 255, 255, .12);
/* -- Accent Helpers --------------------------------------- */
--accent-dim: rgba(230, 126, 34, 0.15);
--accent-border: rgba(230, 126, 34, 0.35);
/* -- Font Stacks ------------------------------------------ */ /* -- Font Stacks ------------------------------------------ */
--font-display: 'Space Grotesk', 'DM Sans', system-ui, sans-serif; --font-display: 'DM Sans', system-ui, sans-serif;
--font-body: 'DM Sans', system-ui, -apple-system, sans-serif; --font-body: 'DM Sans', system-ui, -apple-system, sans-serif;
--font-mono: 'JetBrains Mono', 'Fira Code', monospace; --font-mono: 'DM Mono', monospace;
/* -- Type Scale ------------------------------------------- */ /* -- Type Scale ------------------------------------------- */
--text-xs: 11px; --text-xs: 11px;
--text-sm: 12px; --text-sm: 12px;
--text-base: 14px; --text-base: 13px;
--text-md: 15px; --text-md: 14px;
--text-lg: 18px; --text-lg: 16px;
--text-xl: 22px; --text-xl: 20px;
--text-2xl: 28px; --text-2xl: 24px;
--text-3xl: 36px; --text-3xl: 32px;
/* -- Font Weights ----------------------------------------- */ /* -- Font Weights ----------------------------------------- */
--weight-regular: 400; --weight-regular: 400;
@ -78,31 +84,31 @@
--space-10: 64px; --space-10: 64px;
/* -- Border Radii ----------------------------------------- */ /* -- Border Radii ----------------------------------------- */
--radius-xs: 4px; --radius-xs: 3px;
--radius-sm: 6px; --radius-sm: 4px;
--radius-md: 10px; --radius-md: 6px;
--radius-lg: 14px; --radius-lg: 8px;
--radius-xl: 20px; --radius-xl: 8px;
--radius-full: 9999px; --radius-full: 9999px;
/* -- Shadows / Elevation ---------------------------------- */ /* -- Shadows / Elevation ---------------------------------- */
--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3); --shadow-xs: 0 1px 2px rgba(0, 0, 0, .25);
--shadow-sm: 0 2px 8px rgba(0, 0, 0, .35); --shadow-sm: 0 2px 6px rgba(0, 0, 0, .3);
--shadow-md: 0 4px 16px rgba(0, 0, 0, .4); --shadow-md: 0 2px 8px rgba(0, 0, 0, .35);
--shadow-lg: 0 8px 32px rgba(0, 0, 0, .5); --shadow-lg: 0 4px 16px rgba(0, 0, 0, .4);
--shadow-xl: 0 16px 48px rgba(0, 0, 0, .6); --shadow-xl: 0 8px 24px rgba(0, 0, 0, .45);
/* -- Motion ----------------------------------------------- */ /* -- Motion ----------------------------------------------- */
--duration-fast: 120ms; --duration-fast: 100ms;
--duration-normal: 200ms; --duration-normal: 150ms;
--duration-slow: 350ms; --duration-slow: 200ms;
--ease-out: cubic-bezier(0.16, 1, 0.3, 1); --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
--ease-in-out: cubic-bezier(0.76, 0, 0.24, 1); --ease-in-out: cubic-bezier(0.76, 0, 0.24, 1);
--ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1); --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
/* -- Layout ----------------------------------------------- */ /* -- Layout ----------------------------------------------- */
--sidebar-nav-w: 200px; --sidebar-nav-w: 200px;
--header-h: 52px; --header-h: 44px;
} }
@ -113,87 +119,45 @@
/* Default: Ember (orange) */ /* Default: Ember (orange) */
:root, :root,
[data-accent="ember"] { [data-accent="ember"] {
--accent-h: 27; --accent: #e67e22;
--accent-s: 80%; --accent-hover: #d35400;
--accent-l: 52%; --accent-soft: rgba(230, 126, 34, 0.15);
--accent: hsl(var(--accent-h), var(--accent-s), var(--accent-l)); --accent-text: #f0a050;
--accent-hover: hsl(var(--accent-h), var(--accent-s), calc(var(--accent-l) - 8%));
--accent-soft: hsla(var(--accent-h), var(--accent-s), var(--accent-l), 0.15);
--accent-glow: hsla(var(--accent-h), var(--accent-s), var(--accent-l), 0.45);
--accent-text: hsl(var(--accent-h), var(--accent-s), calc(var(--accent-l) + 15%));
--accent-gradient: linear-gradient(135deg,
hsl(var(--accent-h), var(--accent-s), var(--accent-l)),
hsl(calc(var(--accent-h) + 30), var(--accent-s), var(--accent-l)));
} }
[data-accent="amethyst"] { [data-accent="amethyst"] {
--accent-h: 270; --accent: #9b59b6;
--accent-s: 60%; --accent-hover: #8e44ad;
--accent-l: 55%; --accent-soft: rgba(155, 89, 182, 0.15);
--accent: hsl(var(--accent-h), var(--accent-s), var(--accent-l)); --accent-text: #b580d0;
--accent-hover: hsl(var(--accent-h), var(--accent-s), calc(var(--accent-l) - 8%));
--accent-soft: hsla(var(--accent-h), var(--accent-s), var(--accent-l), 0.15);
--accent-glow: hsla(var(--accent-h), var(--accent-s), var(--accent-l), 0.45);
--accent-text: hsl(var(--accent-h), var(--accent-s), calc(var(--accent-l) + 15%));
--accent-gradient: linear-gradient(135deg,
hsl(var(--accent-h), var(--accent-s), var(--accent-l)),
hsl(calc(var(--accent-h) + 30), var(--accent-s), var(--accent-l)));
} }
[data-accent="ocean"] { [data-accent="ocean"] {
--accent-h: 210; --accent: #2e86c1;
--accent-s: 70%; --accent-hover: #2471a3;
--accent-l: 52%; --accent-soft: rgba(46, 134, 193, 0.15);
--accent: hsl(var(--accent-h), var(--accent-s), var(--accent-l)); --accent-text: #5da8d8;
--accent-hover: hsl(var(--accent-h), var(--accent-s), calc(var(--accent-l) - 8%));
--accent-soft: hsla(var(--accent-h), var(--accent-s), var(--accent-l), 0.15);
--accent-glow: hsla(var(--accent-h), var(--accent-s), var(--accent-l), 0.45);
--accent-text: hsl(var(--accent-h), var(--accent-s), calc(var(--accent-l) + 15%));
--accent-gradient: linear-gradient(135deg,
hsl(var(--accent-h), var(--accent-s), var(--accent-l)),
hsl(calc(var(--accent-h) + 30), var(--accent-s), var(--accent-l)));
} }
[data-accent="jade"] { [data-accent="jade"] {
--accent-h: 152; --accent: #27ae60;
--accent-s: 60%; --accent-hover: #1e8449;
--accent-l: 48%; --accent-soft: rgba(39, 174, 96, 0.15);
--accent: hsl(var(--accent-h), var(--accent-s), var(--accent-l)); --accent-text: #52c47a;
--accent-hover: hsl(var(--accent-h), var(--accent-s), calc(var(--accent-l) - 8%));
--accent-soft: hsla(var(--accent-h), var(--accent-s), var(--accent-l), 0.15);
--accent-glow: hsla(var(--accent-h), var(--accent-s), var(--accent-l), 0.45);
--accent-text: hsl(var(--accent-h), var(--accent-s), calc(var(--accent-l) + 15%));
--accent-gradient: linear-gradient(135deg,
hsl(var(--accent-h), var(--accent-s), var(--accent-l)),
hsl(calc(var(--accent-h) + 30), var(--accent-s), var(--accent-l)));
} }
[data-accent="rose"] { [data-accent="rose"] {
--accent-h: 340; --accent: #e74c8b;
--accent-s: 72%; --accent-hover: #c0397a;
--accent-l: 55%; --accent-soft: rgba(231, 76, 139, 0.15);
--accent: hsl(var(--accent-h), var(--accent-s), var(--accent-l)); --accent-text: #f07aa8;
--accent-hover: hsl(var(--accent-h), var(--accent-s), calc(var(--accent-l) - 8%));
--accent-soft: hsla(var(--accent-h), var(--accent-s), var(--accent-l), 0.15);
--accent-glow: hsla(var(--accent-h), var(--accent-s), var(--accent-l), 0.45);
--accent-text: hsl(var(--accent-h), var(--accent-s), calc(var(--accent-l) + 15%));
--accent-gradient: linear-gradient(135deg,
hsl(var(--accent-h), var(--accent-s), var(--accent-l)),
hsl(calc(var(--accent-h) + 30), var(--accent-s), var(--accent-l)));
} }
[data-accent="crimson"] { [data-accent="crimson"] {
--accent-h: 0; --accent: #d63031;
--accent-s: 72%; --accent-hover: #b52728;
--accent-l: 52%; --accent-soft: rgba(214, 48, 49, 0.15);
--accent: hsl(var(--accent-h), var(--accent-s), var(--accent-l)); --accent-text: #e25b5c;
--accent-hover: hsl(var(--accent-h), var(--accent-s), calc(var(--accent-l) - 8%));
--accent-soft: hsla(var(--accent-h), var(--accent-s), var(--accent-l), 0.15);
--accent-glow: hsla(var(--accent-h), var(--accent-s), var(--accent-l), 0.45);
--accent-text: hsl(var(--accent-h), var(--accent-s), calc(var(--accent-l) + 15%));
--accent-gradient: linear-gradient(135deg,
hsl(var(--accent-h), var(--accent-s), var(--accent-l)),
hsl(calc(var(--accent-h) + 30), var(--accent-s), var(--accent-l)));
} }
@ -298,14 +262,14 @@ html, body {
height: 32px; height: 32px;
min-width: 32px; min-width: 32px;
border-radius: var(--radius-md); border-radius: var(--radius-md);
background: var(--accent-gradient); background: var(--accent);
display: grid; display: grid;
place-items: center; place-items: center;
font-family: var(--font-display); font-family: var(--font-display);
font-weight: var(--weight-bold); font-weight: var(--weight-bold);
font-size: var(--text-base); font-size: var(--text-base);
color: #fff; color: #fff;
box-shadow: 0 0 12px var(--accent-glow); /* no glow */
flex-shrink: 0; flex-shrink: 0;
} }
@ -314,7 +278,7 @@ html, body {
font-weight: var(--weight-bold); font-weight: var(--weight-bold);
font-size: var(--text-md); font-size: var(--text-md);
letter-spacing: -0.02em; letter-spacing: -0.02em;
background: var(--accent-gradient); background: var(--accent);
-webkit-background-clip: text; -webkit-background-clip: text;
-webkit-text-fill-color: transparent; -webkit-text-fill-color: transparent;
background-clip: text; background-clip: text;
@ -648,7 +612,7 @@ html, body {
width: 32px; width: 32px;
height: 32px; height: 32px;
border-radius: var(--radius-full); border-radius: var(--radius-full);
background: var(--accent-gradient); background: var(--accent);
display: grid; display: grid;
place-items: center; place-items: center;
font-size: var(--text-base); font-size: var(--text-base);
@ -678,8 +642,8 @@ html, body {
} }
@keyframes pulse-status { @keyframes pulse-status {
0%, 100% { box-shadow: 0 0 0 0 rgba(67, 181, 129, .4); } 0%, 100% { box-shadow: 0 0 0 0 rgba(87, 210, 143, .4); }
50% { box-shadow: 0 0 0 5px rgba(67, 181, 129, 0); } 50% { box-shadow: 0 0 0 5px rgba(87, 210, 143, 0); }
} }
.sidebar-avatar .status-dot.online { .sidebar-avatar .status-dot.online {
@ -756,7 +720,6 @@ html, body {
.accent-swatch.active { .accent-swatch.active {
border-color: #fff; border-color: #fff;
transform: scale(1.15); transform: scale(1.15);
box-shadow: 0 0 8px currentColor;
} }
@ -803,14 +766,13 @@ html, body {
} }
.playback-btn--party { .playback-btn--party {
background: var(--accent-gradient); background: var(--accent);
color: #fff; color: #fff;
font-weight: var(--weight-semibold); font-weight: var(--weight-semibold);
} }
.playback-btn--party:hover { .playback-btn--party:hover {
box-shadow: 0 0 16px var(--accent-glow); opacity: 0.85;
transform: translateY(-1px);
} }
/* -- Theme Picker ------------------------------------------- */ /* -- Theme Picker ------------------------------------------- */
@ -839,15 +801,15 @@ html, body {
.theme-swatch.active { .theme-swatch.active {
border-color: #fff; border-color: #fff;
box-shadow: 0 0 8px var(--accent-glow); /* no glow */
} }
.theme-swatch[data-t="ember"] { background: hsl(27, 80%, 52%); } .theme-swatch[data-t="ember"] { background: #e67e22; }
.theme-swatch[data-t="amethyst"] { background: hsl(270, 60%, 55%); } .theme-swatch[data-t="amethyst"] { background: #9b59b6; }
.theme-swatch[data-t="ocean"] { background: hsl(210, 70%, 52%); } .theme-swatch[data-t="ocean"] { background: #2e86c1; }
.theme-swatch[data-t="jade"] { background: hsl(152, 60%, 48%); } .theme-swatch[data-t="jade"] { background: #27ae60; }
.theme-swatch[data-t="rose"] { background: hsl(340, 72%, 55%); } .theme-swatch[data-t="rose"] { background: #e74c8b; }
.theme-swatch[data-t="crimson"] { background: hsl(0, 72%, 52%); } .theme-swatch[data-t="crimson"] { background: #d63031; }
/* -- Connection Badge --------------------------------------- */ /* -- Connection Badge --------------------------------------- */
.connection-badge { .connection-badge {
@ -862,7 +824,7 @@ html, body {
.connection-badge.connected { .connection-badge.connected {
color: var(--success); color: var(--success);
background: rgba(67, 181, 129, .1); background: rgba(87, 210, 143, .1);
} }
.connection-badge .dot { .connection-badge .dot {
@ -874,8 +836,8 @@ html, body {
} }
@keyframes pulse-dot { @keyframes pulse-dot {
0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(67, 181, 129, .4); } 0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(87, 210, 143, .4); }
50% { opacity: .8; box-shadow: 0 0 0 6px rgba(67, 181, 129, 0); } 50% { opacity: .8; box-shadow: 0 0 0 6px rgba(87, 210, 143, 0); }
} }
/* -- Volume Control ----------------------------------------- */ /* -- Volume Control ----------------------------------------- */
@ -907,7 +869,7 @@ html, body {
background: var(--accent); background: var(--accent);
cursor: pointer; cursor: pointer;
border: none; border: none;
box-shadow: 0 0 8px var(--accent-glow); /* no glow */
} }
.volume-slider::-moz-range-thumb { .volume-slider::-moz-range-thumb {
@ -917,7 +879,7 @@ html, body {
background: var(--accent); background: var(--accent);
cursor: pointer; cursor: pointer;
border: none; border: none;
box-shadow: 0 0 8px var(--accent-glow); /* no glow */
} }
.volume-label { .volume-label {
@ -939,8 +901,7 @@ html, body {
position: fixed; position: fixed;
inset: 0; inset: 0;
background: rgba(0, 0, 0, .7); background: rgba(0, 0, 0, .7);
backdrop-filter: blur(6px); /* no blur */
-webkit-backdrop-filter: blur(6px);
z-index: 1000; z-index: 1000;
display: flex; display: flex;
align-items: center; align-items: center;
@ -1096,12 +1057,12 @@ html, body {
} }
.hub-version-modal-update-btn.ready { .hub-version-modal-update-btn.ready {
background: rgba(67, 181, 129, .15); background: rgba(87, 210, 143, .15);
color: var(--success); color: var(--success);
} }
.hub-version-modal-update-btn.ready:hover { .hub-version-modal-update-btn.ready:hover {
background: rgba(67, 181, 129, .25); background: rgba(87, 210, 143, .25);
} }
.hub-version-modal-update-status { .hub-version-modal-update-status {
@ -1313,12 +1274,12 @@ html, body {
padding: var(--space-3); padding: var(--space-3);
cursor: pointer; cursor: pointer;
transition: all var(--duration-fast); transition: all var(--duration-fast);
box-shadow: 0 2px 10px var(--accent-glow); box-shadow: 0 2px 6px rgba(0, 0, 0, .3);
} }
.hub-admin-modal-login:hover { .hub-admin-modal-login:hover {
background: var(--accent-hover); background: var(--accent-hover);
box-shadow: 0 4px 16px var(--accent-glow); box-shadow: 0 2px 8px rgba(0, 0, 0, .35);
} }
.hub-admin-modal-info { .hub-admin-modal-info {
@ -1332,14 +1293,14 @@ html, body {
width: 44px; width: 44px;
height: 44px; height: 44px;
border-radius: 50%; border-radius: 50%;
background: var(--accent-gradient); background: var(--accent);
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
font-size: 20px; font-size: 20px;
font-weight: var(--weight-bold); font-weight: var(--weight-bold);
color: #fff; color: #fff;
box-shadow: 0 0 12px var(--accent-glow); /* no glow */
} }
.hub-admin-modal-text { .hub-admin-modal-text {
@ -1396,7 +1357,7 @@ html, body {
.hub-admin-btn:hover { .hub-admin-btn:hover {
background: var(--surface-glass-hover); background: var(--surface-glass-hover);
border-color: var(--accent-glow); border-color: var(--accent);
box-shadow: 0 0 12px var(--accent-soft); box-shadow: 0 0 12px var(--accent-soft);
} }
@ -1492,7 +1453,7 @@ html, body {
} }
.badge--success { .badge--success {
background: rgba(67, 181, 129, .15); background: rgba(87, 210, 143, .15);
color: var(--success); color: var(--success);
} }
@ -1526,9 +1487,9 @@ html, body {
white-space: nowrap; white-space: nowrap;
} }
.btn--sm { height: 30px; padding: 0 var(--space-3); font-size: var(--text-sm); } .btn--sm { height: 24px; padding: 0 var(--space-2); font-size: var(--text-xs); }
.btn--md { height: 36px; padding: 0 var(--space-4); font-size: var(--text-base); } .btn--md { height: 26px; padding: 0 var(--space-3); font-size: var(--text-sm); }
.btn--lg { height: 42px; padding: 0 var(--space-5); font-size: var(--text-md); } .btn--lg { height: 32px; padding: 0 var(--space-4); font-size: var(--text-base); }
.btn--primary { .btn--primary {
background: var(--accent); background: var(--accent);
@ -1568,7 +1529,7 @@ html, body {
background: #d63638; background: #d63638;
} }
/* -- Glass Surfaces ----------------------------------------- */ /* Glass classes kept as simple surface */
.glass--subtle { .glass--subtle {
background: var(--surface-glass); background: var(--surface-glass);
border: 1px solid var(--surface-glass-border); border: 1px solid var(--surface-glass-border);
@ -1577,15 +1538,11 @@ html, body {
.glass--medium { .glass--medium {
background: rgba(255, 255, 255, .06); background: rgba(255, 255, 255, .06);
border: 1px solid rgba(255, 255, 255, .10); border: 1px solid rgba(255, 255, 255, .10);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
} }
.glass--strong { .glass--strong {
background: rgba(255, 255, 255, .09); background: rgba(255, 255, 255, .09);
border: 1px solid rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .14);
backdrop-filter: blur(16px);
-webkit-backdrop-filter: blur(16px);
} }
/* -- Toast Notifications ------------------------------------ */ /* -- Toast Notifications ------------------------------------ */
@ -1661,18 +1618,7 @@ html, body {
} }
/* ============================================================ /* Noise texture removed per CI v2 */
K) NOISE TEXTURE OVERLAY
============================================================ */
.content-area::before,
.app-main::before {
content: '';
position: absolute;
inset: 0;
background: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.015'/%3E%3C/svg%3E");
pointer-events: none;
z-index: 0;
}
/* ============================================================ /* ============================================================
@ -1717,7 +1663,7 @@ html, body {
width: 34px; width: 34px;
height: 34px; height: 34px;
border-radius: 50%; border-radius: 50%;
background: var(--accent-gradient); background: var(--accent);
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
@ -1776,37 +1722,37 @@ html, body {
/* -- Radio Themes ------------------------------------------- */ /* -- Radio Themes ------------------------------------------- */
.radio-container[data-theme="purple"] { .radio-container[data-theme="purple"] {
--bg-deep: #13111c; --bg-deep: #16131c;
--bg-primary: #1a1726; --bg-primary: #1d1926;
--bg-secondary: #241f35; --bg-secondary: #272235;
--bg-tertiary: #2e2845; --bg-tertiary: #312b42;
--accent: #9b59b6; --accent: #9b59b6;
--accent-hover: #8e44ad; --accent-hover: #8e44ad;
} }
.radio-container[data-theme="forest"] { .radio-container[data-theme="forest"] {
--bg-deep: #0f1a14; --bg-deep: #121a14;
--bg-primary: #142119; --bg-primary: #172119;
--bg-secondary: #1c2e22; --bg-secondary: #1f2e22;
--bg-tertiary: #253a2c; --bg-tertiary: #283a2c;
--accent: #2ecc71; --accent: #2ecc71;
--accent-hover: #27ae60; --accent-hover: #27ae60;
} }
.radio-container[data-theme="ocean"] { .radio-container[data-theme="ocean"] {
--bg-deep: #0a1628; --bg-deep: #101620;
--bg-primary: #0f1e33; --bg-primary: #151e2c;
--bg-secondary: #162a42; --bg-secondary: #1c2a38;
--bg-tertiary: #1e3652; --bg-tertiary: #243646;
--accent: #3498db; --accent: #3498db;
--accent-hover: #2980b9; --accent-hover: #2980b9;
} }
.radio-container[data-theme="cherry"] { .radio-container[data-theme="cherry"] {
--bg-deep: #1a0f14; --bg-deep: #1a1014;
--bg-primary: #22141a; --bg-primary: #22151a;
--bg-secondary: #301c25; --bg-secondary: #301e25;
--bg-tertiary: #3e2530; --bg-tertiary: #3e2830;
--accent: #e74c6f; --accent: #e74c6f;
--accent-hover: #c0392b; --accent-hover: #c0392b;
} }
@ -1916,8 +1862,8 @@ html, body {
.radio-search-wrap { .radio-search-wrap {
display: flex; display: flex;
align-items: center; align-items: center;
background: rgba(30, 31, 34, 0.92); background: rgba(33, 30, 23, 0.92);
backdrop-filter: blur(12px); /* no blur */
border: 1px solid var(--border-default); border: 1px solid var(--border-default);
border-radius: var(--radius-lg); border-radius: var(--radius-lg);
padding: 0 var(--space-3); padding: 0 var(--space-3);
@ -1964,8 +1910,8 @@ html, body {
/* -- Radio Search Results ----------------------------------- */ /* -- Radio Search Results ----------------------------------- */
.radio-search-results { .radio-search-results {
margin-top: var(--space-2); margin-top: var(--space-2);
background: rgba(30, 31, 34, 0.95); background: rgba(33, 30, 23, 0.95);
backdrop-filter: blur(12px); /* no blur */
border: 1px solid var(--border-default); border: 1px solid var(--border-default);
border-radius: var(--radius-lg); border-radius: var(--radius-lg);
max-height: 360px; max-height: 360px;
@ -2035,8 +1981,8 @@ html, body {
align-items: center; align-items: center;
gap: var(--space-1); gap: var(--space-1);
padding: var(--space-3) var(--space-3); padding: var(--space-3) var(--space-3);
background: rgba(30, 31, 34, 0.92); background: rgba(33, 30, 23, 0.92);
backdrop-filter: blur(12px); /* no blur */
border: 1px solid var(--border-default); border: 1px solid var(--border-default);
border-radius: var(--radius-lg); border-radius: var(--radius-lg);
color: var(--text-primary); color: var(--text-primary);
@ -2071,8 +2017,8 @@ html, body {
width: 340px; width: 340px;
height: 100%; height: 100%;
z-index: 15; z-index: 15;
background: rgba(30, 31, 34, 0.95); background: rgba(33, 30, 23, 0.95);
backdrop-filter: blur(16px); /* no blur */
border-left: 1px solid var(--border-default); border-left: 1px solid var(--border-default);
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@ -2420,7 +2366,7 @@ html, body {
z-index: 10; z-index: 10;
font-size: var(--text-sm); font-size: var(--text-sm);
color: var(--text-tertiary); color: var(--text-tertiary);
background: rgba(30, 31, 34, 0.8); background: rgba(33, 30, 23, 0.8);
padding: var(--space-1) var(--space-3); padding: var(--space-1) var(--space-3);
border-radius: var(--radius-full); border-radius: var(--radius-full);
pointer-events: none; pointer-events: none;
@ -2433,7 +2379,7 @@ html, body {
z-index: 10; z-index: 10;
font-size: var(--text-sm); font-size: var(--text-sm);
color: var(--text-tertiary); color: var(--text-tertiary);
background: rgba(30, 31, 34, 0.8); background: rgba(33, 30, 23, 0.8);
padding: var(--space-1) var(--space-3); padding: var(--space-1) var(--space-3);
border-radius: var(--radius-full); border-radius: var(--radius-full);
text-decoration: none; text-decoration: none;
@ -2442,7 +2388,7 @@ html, body {
.radio-attribution:hover { .radio-attribution:hover {
color: var(--text-primary); color: var(--text-primary);
background: rgba(30, 31, 34, 0.92); background: rgba(33, 30, 23, 0.92);
} }
/* -- Radio Spinner ------------------------------------------ */ /* -- Radio Spinner ------------------------------------------ */
@ -2465,14 +2411,14 @@ html, body {
cursor: pointer; cursor: pointer;
padding: var(--space-1) var(--space-3); padding: var(--space-1) var(--space-3);
border-radius: var(--radius-full); border-radius: var(--radius-full);
background: rgba(67, 181, 129, .08); background: rgba(87, 210, 143, .08);
transition: all var(--duration-fast); transition: all var(--duration-fast);
flex-shrink: 0; flex-shrink: 0;
user-select: none; user-select: none;
} }
.radio-conn:hover { .radio-conn:hover {
background: rgba(67, 181, 129, .15); background: rgba(87, 210, 143, .15);
} }
.radio-conn-dot { .radio-conn-dot {
@ -2499,7 +2445,7 @@ html, body {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
backdrop-filter: blur(4px); /* no blur */
animation: fade-in .15s ease; animation: fade-in .15s ease;
} }