:root {
    --bg-primary: #0f172a;
    --bg-secondary: #1e293b;
    --bg-card: #1e293b;
    --bg-header: #111827;
    --text-primary: #f8fafc;
    --text-secondary: #94a3b8;
    --accent: #3b82f6;
    --border: #1e293b;
    --radius: 0.75rem;
    --font-main: 'Inter', sans-serif;
    scroll-behavior: smooth;
}

.help-btn { background-color: #d97706; } /* Default Amber */
.help-btn:hover { background-color: #b45309; }

[data-theme='hydraulic'] {
    --bg-primary: #1f2937;
    --bg-secondary: #111827;
    --bg-card: #374151;
    --bg-header: #000000;
    --text-primary: #fbbf24;
    --text-secondary: #d1d5db;
    --accent: #fbbf24;
    --border: #111827;
    --radius: 0px;
    --font-main: "Arial Black", Gadget, sans-serif;
}

[data-theme='hydraulic'] h1, 
[data-theme='hydraulic'] h2, 
[data-theme='hydraulic'] h3,
[data-theme='hydraulic'] .font-bold,
[data-theme='hydraulic'] .font-black {
    font-family: "Arial Black", Gadget, sans-serif !important;
    letter-spacing: -0.05em;
    text-transform: uppercase;
}

/* Hydraulic Theme Difficulty Stars */
[data-theme='hydraulic'] .text-gaming-text\/10 {
    color: rgba(0, 0, 0, 0.3) !important;
}

[data-theme='hydraulic'] body {
    background-image: 
        repeating-linear-gradient(45deg, rgba(251, 191, 36, 0.02) 0px, rgba(251, 191, 36, 0.02) 20px, transparent 20px, transparent 40px) !important;
    background-attachment: fixed;
}

[data-theme='hydraulic'] .help-btn { background-color: #fbbf24 !important; color: #000 !important; }
[data-theme='hydraulic'] .help-btn:hover { background-color: #f59e0b !important; }

body {
    font-family: var(--font-main);
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}

[data-theme='brick'] {
    --bg-primary: #8bac0f;
    --bg-secondary: #9bbc0f;
    --bg-card: #9bbc0f;
    --bg-header: #306230;
    --text-primary: #0f380f;
    --text-secondary: #306230;
    --accent: #0f380f;
    --border: #0f380f;
    --radius: 0px;
    --font-main: 'DotGothic16', monospace;
}

[data-theme='cube'] {
    --bg-primary: #6a5acd;
    --bg-secondary: #483d8b;
    --bg-card: #1e1e1e;
    --bg-header: #4b0082;
    --text-primary: #ffffff;
    --text-secondary: #dcdcdc;
    --accent: #ff4500;
    --border: #4b0082;
    --radius: 2rem;
    --font-main: 'Archivo Black', sans-serif;
}

[data-theme='os'] {
    --bg-primary: #c0c0c0;
    --bg-secondary: #c0c0c0;
    --bg-card: #ffffff;
    --bg-header: #000080;
    --text-primary: #000000;
    --text-secondary: #404040;
    --accent: #000080;
    --border: #808080;
    --radius: 0px;
    --font-main: 'IBM Plex Mono', monospace;
}

[data-theme='legacy'] {
    --bg-primary: #000000;
    --bg-secondary: #000000;
    --bg-card: #000000;
    --bg-header: #000000;
    --text-primary: #ffffff;
    --text-secondary: #cccccc;
    --accent: #ffffff;
    --border: #333333;
    --radius: 0.5rem;
    --font-main: 'JetBrains Mono', monospace;
}

[data-theme='blueprint'] {
    --bg-primary: #002b5c;
    --bg-secondary: #003d7a;
    --bg-card: rgba(0, 43, 92, 0.5);
    --bg-header: #001f42;
    --text-primary: #ffffff;
    --text-secondary: #8da9c4;
    --accent: #00f2ff;
    --border: #ffffff;
    --radius: 0px;
    --font-main: 'Space Mono', monospace;
}

[data-theme='blueprint'] body {
    background-image: 
        linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px) !important;
    background-size: 40px 40px !important;
    background-attachment: fixed;
}

[data-theme='woodgrain'] {
    --bg-primary: #3d2b1f;
    --bg-secondary: #5c4033;
    --bg-card: #4a3728;
    --bg-header: #2a1b0e;
    --text-primary: #fdf5e6;
    --text-secondary: #d2b48c;
    --accent: #ffbf00;
    --border: #1a0f00;
    --radius: 4px;
    --font-main: 'DM Serif Display', serif;
}

[data-theme='papercraft'] {
    --bg-primary: #e6dfcf;
    --bg-secondary: #dcd4c3;
    --bg-card: #f4eee1;
    --bg-header: #cbbba0;
    --text-primary: #2c2c2c;
    --text-secondary: #5a5a5a;
    --accent: #d32f2f;
    --border: #333333;
    --radius: 2px;
    --font-main: 'Special Elite', cursive;
}

[data-theme='candy'] {
    --bg-primary: #00d2ff;
    --bg-secondary: #3a7bd5;
    --bg-card: rgba(255, 255, 255, 0.7);
    --bg-header: rgba(58, 123, 213, 0.9);
    --text-primary: #1a1a1a;
    --text-secondary: #4a4a4a;
    --accent: #ff00ff;
    --border: rgba(255, 255, 255, 0.5);
    --radius: 2rem;
    --font-main: 'Comfortaa', cursive;
}

[data-theme='arcade'] {
    --bg-primary: #050505;
    --bg-secondary: #111111;
    --bg-card: #000000;
    --bg-header: #000000;
    --text-primary: #ff00ff;
    --text-secondary: #00f2ff;
    --accent: #ff00ff;
    --border: #00f2ff;
    --radius: 0px;
    --font-main: 'Silkscreen', cursive;
}

[data-theme='obsidian'] {
    --bg-primary: #0a0a0a;
    --bg-secondary: #141414;
    --bg-card: #0f0f0f;
    --bg-header: #000000;
    --text-primary: #e0e0e0;
    --text-secondary: #a0a0a0;
    --accent: #ff6600;
    --border: #222222;
    --radius: 0px;
    --font-main: 'Chakra Petch', sans-serif;
}

/* Overgrown Background */
[data-theme='overgrown'] body {
    background-image: 
        radial-gradient(circle at 20% 30%, rgba(74, 222, 128, 0.05) 0%, transparent 50%),
        radial-gradient(circle at 80% 70%, rgba(74, 222, 128, 0.05) 0%, transparent 50%) !important;
    background-attachment: fixed;
}

/* Ink-Wash Background */
[data-theme='inkwash'] body {
    background-color: #f2f0e9 !important;
    background-image: url('https://www.transparenttextures.com/patterns/parchment.png') !important;
    background-attachment: fixed;
}

/* Hero Background */
[data-theme='hero'] body {
    background-image: 
        radial-gradient(#000000 1px, transparent 1px) !important;
    background-size: 20px 20px !important;
    background-attachment: fixed;
}

/* Navigator Background */
[data-theme='navigator'] body {
    background-image: 
        radial-gradient(white 1px, transparent 1px),
        radial-gradient(white 1px, transparent 1px) !important;
    background-size: 100px 100px, 150px 150px !important;
    background-position: 0 0, 50px 50px !important;
    background-attachment: fixed;
}

/* Glacier Background */
[data-theme='glacier'] body {
    background-image: 
        radial-gradient(circle at 50% -20%, #ffffff 0%, transparent 80%),
        linear-gradient(to bottom, #e0f2fe, #bae6fd) !important;
    background-attachment: fixed;
}

/* Nomad Background */
[data-theme='nomad'] body {
    background-color: #451a03 !important;
    background-image: url('https://www.transparenttextures.com/patterns/asfalt-dark.png') !important;
    background-attachment: fixed;
}

/* Prism Background */
[data-theme='prism'] body {
    background-image: 
        linear-gradient(135deg, rgba(255,0,0,0.05), rgba(0,255,0,0.05), rgba(0,0,255,0.05)) !important;
    background-attachment: fixed;
}

/* Invader Background */
[data-theme='invader'] body {
    background-color: #000000 !important;
    background-image: linear-gradient(rgba(34, 197, 94, 0.05) 50%, transparent 50%) !important;
    background-size: 100% 4px !important;
    background-attachment: fixed;
}

/* Virtual Background */
[data-theme='virtual'] body {
    background-color: #000000 !important;
    background-image: 
        repeating-linear-gradient(transparent 0px, transparent 2px, rgba(255, 0, 0, 0.05) 2px, rgba(255, 0, 0, 0.05) 4px),
        linear-gradient(90deg, rgba(255, 0, 0, 0.02) 1px, transparent 1px),
        linear-gradient(rgba(255, 0, 0, 0.02) 1px, transparent 1px) !important;
    background-size: 100% 4px, 40px 40px, 40px 40px !important;
    background-attachment: fixed;
}

/* Quest Background */
[data-theme='quest'] body {
    background-color: #000040 !important;
    background-image: 
        radial-gradient(circle at 50% 50%, #000080 0%, #000020 100%) !important;
    background-attachment: fixed;
}

/* Genesis Background */
[data-theme='genesis'] body {
    background-color: #000000 !important;
    background-image: 
        linear-gradient(rgba(0, 242, 255, 0.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 242, 255, 0.05) 1px, transparent 1px),
        linear-gradient(45deg, rgba(30, 58, 138, 0.1) 25%, transparent 25%, transparent 50%, rgba(30, 58, 138, 0.1) 50%, rgba(30, 58, 138, 0.1) 75%, transparent 75%, transparent) !important;
    background-size: 20px 20px, 20px 20px, 60px 60px !important;
    background-attachment: fixed;
}

/* Spectrum Background */
[data-theme='spectrum'] body {
    background-color: #000 !important;
    background-image: 
        linear-gradient(90deg, rgba(255,0,255,0.05) 50%, transparent 50%),
        linear-gradient(rgba(0,255,255,0.05) 50%, transparent 50%) !important;
    background-size: 64px 64px !important;
    background-attachment: fixed;
}

/* Famicom Background */
[data-theme='famicom'] body {
    background-color: #f2f0e9 !important;
    background-image: 
        radial-gradient(circle at 50% 50%, rgba(153, 27, 27, 0.02) 0%, transparent 100%) !important;
    background-attachment: fixed;
}

/* Web-1.0 Background */
[data-theme='web1'] body {
    background-color: #c0c0c0 !important;
    background-image: url('https://www.transparenttextures.com/patterns/cubes.png') !important;
    background-attachment: fixed;
}

/* Game Gear Background */
[data-theme='gamegear'] body {
    background-color: #1f2937 !important;
    background-image: 
        radial-gradient(circle at 50% 50%, #111827 0%, #000 100%) !important;
    background-attachment: fixed;
}

/* Manga Background */
[data-theme='manga'] body {
    background-color: #fff !important;
    background-image: 
        linear-gradient(45deg, rgba(0,0,0,0.05) 25%, transparent 25%, transparent 50%, rgba(0,0,0,0.05) 50%, rgba(0,0,0,0.05) 75%, transparent 75%, transparent) !important;
    background-size: 100px 100px !important;
    background-attachment: fixed;
}

/* Museum Background */
[data-theme='museum'] body {
    background-color: #f5f5f5 !important;
    background-image: url('https://www.transparenttextures.com/patterns/white-diamond.png') !important;
    background-attachment: fixed;
}

/* Craft Background */
[data-theme='craft'] body {
    background-color: #3b82f6 !important;
    background-image: url('https://www.transparenttextures.com/patterns/denim.png') !important;
    background-attachment: fixed;
}

/* Street Background */
[data-theme='street'] body {
    background-color: #374151 !important;
    background-image: url('https://www.transparenttextures.com/patterns/asphalt-dark.png') !important;
    background-attachment: fixed;
}

/* Noir Background */
[data-theme='noir'] body {
    background-color: #0a0a0a !important;
    background-image: radial-gradient(circle at 50% 50%, #1a1a1a 0%, #000 100%) !important;
    background-attachment: fixed;
}

/* Tokyo Background */
[data-theme='tokyo'] body {
    background-color: #2e1065 !important;
    background-image: 
        linear-gradient(rgba(217, 70, 239, 0.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(217, 70, 239, 0.05) 1px, transparent 1px) !important;
    background-size: 50px 50px !important;
    background-attachment: fixed;
}

[data-theme='overgrown'] {
    --bg-primary: #1a2421;
    --bg-secondary: #2d3a35;
    --bg-card: rgba(26, 36, 33, 0.8);
    --bg-header: #0f1412;
    --text-primary: #d1dace;
    --text-secondary: #8a9a85;
    --accent: #4ade80;
    --border: #3d4a44;
    --radius: 0.5rem;
    --font-main: 'Cormorant Garamond', serif;
}

[data-theme='inkwash'] {
    --bg-primary: #f2f0e9;
    --bg-secondary: #e8e4d9;
    --bg-card: #f2f0e9;
    --bg-header: #e5e5e5;
    --text-primary: #1a1a1a;
    --text-secondary: #4a4a4a;
    --accent: #d32f2f;
    --border: #1a1a1a;
    --radius: 0px;
    --font-main: 'ZCOOL XiaoWei', serif;
}

[data-theme='inkwash'] header {
    box-shadow: inset 0 -1px 0 0 #1a1a1a !important;
}

[data-theme='hero'] {
    --bg-primary: #ffde00;
    --bg-secondary: #ff0000;
    --bg-card: #ffffff;
    --bg-header: #0000ff;
    --text-primary: #000000;
    --text-secondary: #333333;
    --accent: #ff0000;
    --border: #000000;
    --radius: 0px;
    --font-main: 'Balsamiq Sans', cursive;
}

[data-theme='navigator'] {
    --bg-primary: #0b0e14;
    --bg-secondary: #1a1f2b;
    --bg-card: rgba(11, 14, 20, 0.9);
    --bg-header: #05070a;
    --text-primary: #00f2ff;
    --text-secondary: #708090;
    --accent: #00f2ff;
    --border: #1e90ff;
    --radius: 0.25rem;
    --font-main: 'Audiowide', cursive;
}

[data-theme='glacier'] {
    --bg-primary: #e0f2fe;
    --bg-secondary: #f0f9ff;
    --bg-card: rgba(255, 255, 255, 0.6);
    --bg-header: rgba(224, 242, 254, 0.9);
    --text-primary: #0369a1;
    --text-secondary: #075985;
    --accent: #0ea5e9;
    --border: #bae6fd;
    --radius: 1.5rem;
    --font-main: 'Quicksand', sans-serif;
}

[data-theme='nomad'] {
    --bg-primary: #451a03;
    --bg-secondary: #78350f;
    --bg-card: #92400e;
    --bg-header: #451a03;
    --text-primary: #fef3c7;
    --text-secondary: #fbbf24;
    --accent: #f59e0b;
    --border: #b45309;
    --radius: 2px;
    --font-main: 'Stardos Stencil', cursive;
}

[data-theme='prism'] {
    --bg-primary: #ffffff;
    --bg-secondary: #f8fafc;
    --bg-card: rgba(255, 255, 255, 0.8);
    --bg-header: #ffffff;
    --text-primary: #0f172a;
    --text-secondary: #475569;
    --accent: #ec4899;
    --border: rgba(0,0,0,0.1);
    --radius: 0px;
    --font-main: 'Montserrat', sans-serif;
}

[data-theme='invader'] {
    --bg-primary: #000000;
    --bg-secondary: #0a0a0a;
    --bg-card: #000000;
    --bg-header: #000000;
    --text-primary: #22c55e;
    --text-secondary: #166534;
    --accent: #22c55e;
    --border: #22c55e;
    --radius: 0px;
    --font-main: 'Press Start 2P', cursive;
}

[data-theme='virtual'] {
    --bg-primary: #000000;
    --bg-secondary: #000000;
    --bg-card: #000000;
    --bg-header: #000000;
    --text-primary: #ff0000;
    --text-secondary: #800000;
    --accent: #ff0000;
    --border: #ff0000;
    --radius: 0px;
    --font-main: 'DotGothic16', sans-serif;
}

[data-theme='quest'] {
    --bg-primary: #000080;
    --bg-secondary: #0000a0;
    --bg-card: linear-gradient(to bottom, #0000ff, #000040);
    --bg-header: #000080;
    --text-primary: #ffffff;
    --text-secondary: #a0a0a0;
    --accent: #ffde00;
    --border: #ffffff;
    --radius: 4px;
    --font-main: 'Pixelify Sans', cursive;
}

[data-theme='genesis'] {
    --bg-primary: #000000;
    --bg-secondary: #111111;
    --bg-card: #1a1a1a;
    --bg-header: #000000;
    --text-primary: #00f2ff;
    --text-secondary: #0077ff;
    --accent: #ffde00;
    --border: #00f2ff;
    --radius: 0px;
    --font-main: 'Exo 2', sans-serif;
}

[data-theme='spectrum'] {
    --bg-primary: #000000;
    --bg-secondary: #000000;
    --bg-card: #000000;
    --bg-header: #000000;
    --text-primary: #ffffff;
    --text-secondary: #00ffff;
    --accent: #ffff00;
    --border: #ffffff;
    --radius: 0px;
    --font-main: 'JetBrains Mono', monospace;
}

[data-theme='famicom'] {
    --bg-primary: #f2f0e9;
    --bg-secondary: #991b1b;
    --bg-card: #f2f0e9;
    --bg-header: #991b1b;
    --text-primary: #1a1a1a;
    --text-secondary: #991b1b;
    --accent: #ffde00;
    --border: #ffde00;
    --radius: 2px;
    --font-main: 'DotGothic16', sans-serif;
}

[data-theme='web1'] {
    --bg-primary: #c0c0c0;
    --bg-secondary: #808080;
    --bg-card: #c0c0c0;
    --bg-header: #000080;
    --text-primary: #000000;
    --text-secondary: #0000ff;
    --accent: #0000ff;
    --border: #ffffff;
    --radius: 0px;
    --font-main: 'Cormorant Garamond', serif;
}

[data-theme='gamegear'] {
    --bg-primary: #1f2937;
    --bg-secondary: #111827;
    --bg-card: #374151;
    --bg-header: #000000;
    --text-primary: #a855f7;
    --text-secondary: #3b82f6;
    --accent: #a855f7;
    --border: #3b82f6;
    --radius: 1rem;
    --font-main: 'Exo 2', sans-serif;
}

[data-theme='manga'] {
    --bg-primary: #ffffff;
    --bg-secondary: #f3f4f6;
    --bg-card: #ffffff;
    --bg-header: #000000;
    --text-primary: #000000;
    --text-secondary: #4b5563;
    --accent: #000000;
    --border: #000000;
    --radius: 0px;
    --font-main: 'Balsamiq Sans', cursive;
}

[data-theme='museum'] {
    --bg-primary: #f5f5f5;
    --bg-secondary: #e5e5e5;
    --bg-card: #ffffff;
    --bg-header: #ffffff;
    --text-primary: #1a1a1a;
    --text-secondary: #71717a;
    --accent: #d4af37;
    --border: #d4af37;
    --radius: 2px;
    --font-main: 'Cormorant Garamond', serif;
}

[data-theme='craft'] {
    --bg-primary: #3b82f6;
    --bg-secondary: #2563eb;
    --bg-card: #60a5fa;
    --bg-header: #1d4ed8;
    --text-primary: #ffffff;
    --text-secondary: #bfdbfe;
    --accent: #fcd34d;
    --border: #ffffff;
    --radius: 1rem;
    --font-main: 'Comfortaa', cursive;
}

[data-theme='street'] {
    --bg-primary: #374151;
    --bg-secondary: #1f2937;
    --bg-card: #4b5563;
    --bg-header: #111827;
    --text-primary: #ffffff;
    --text-secondary: #9ca3af;
    --accent: #22c55e;
    --border: #22c55e;
    --radius: 4px;
    --font-main: 'Archivo Black', sans-serif;
}

[data-theme='noir'] {
    --bg-primary: #0a0a0a;
    --bg-secondary: #1a1a1a;
    --bg-card: #111111;
    --bg-header: #000000;
    --text-primary: #e5e5e5;
    --text-secondary: #737373;
    --accent: #ffffff;
    --border: #262626;
    --radius: 0px;
    --font-main: 'JetBrains Mono', monospace;
}

[data-theme='tokyo'] {
    --bg-primary: #2e1065;
    --bg-secondary: #4c1d95;
    --bg-card: #581c87;
    --bg-header: #000000;
    --text-primary: #f0abfc;
    --text-secondary: #c084fc;
    --accent: #e879f9;
    --border: #d946ef;
    --radius: 0.5rem;
    --font-main: 'DotGothic16', sans-serif;
}

[data-theme='future'] {
    --font-main: 'Inter', sans-serif;
}

/* --- Theme Global Overrides --- */

[data-theme='brick'] .bg-gaming-accent { background-color: var(--accent) !important; color: var(--bg-primary) !important; }
[data-theme='brick'] header .text-gaming-text, [data-theme='brick'] header h1 { color: var(--bg-primary) !important; }
[data-theme='brick'] header .text-gaming-muted, [data-theme='brick'] header #xp-text { color: #0f380f !important; opacity: 1 !important; }
[data-theme='brick'] .text-blue-400, 
[data-theme='brick'] .text-emerald-400,
[data-theme='brick'] .text-orange-400,
[data-theme='brick'] .text-yellow-400,
[data-theme='brick'] .text-purple-400 { color: #0f380f !important; }

/* Brick Theme Difficulty Stars */
[data-theme='brick'] .text-yellow-500 {
    color: #0f380f !important;
}
[data-theme='brick'] .text-gaming-text\/10 {
    color: rgba(15, 56, 15, 0.15) !important;
}

/* Brick Theme Header Details */
[data-theme='brick'] header h1 .text-blue-500,
[data-theme='brick'] header h1 svg {
    color: #0f380f !important;
}
[data-theme='brick'] #now-playing-marquee .bg-black\/40 {
    background-color: #8bac0f !important;
    border-color: #0f380f !important;
}
[data-theme='brick'] #now-playing-marquee .marquee-content,
[data-theme='brick'] #now-playing-marquee .text-emerald-500 {
    color: #0f380f !important;
}
[data-theme='brick'] #now-playing-marquee .bg-emerald-500 {
    background-color: #0f380f !important;
}
[data-theme='brick'] #level-badge {
    background-color: #0f380f !important;
    color: #8bac0f !important;
    box-shadow: none !important;
}
[data-theme='brick'] header button.bg-blue-600 {
    background-color: #0f380f !important;
    color: #8bac0f !important;
    box-shadow: none !important;
}

/* --- Dot Matrix Grid Effect (Brick Theme) --- */
[data-theme='brick'] .game-card-front .relative.h-40::after,
[data-theme='brick'] #modal-banner::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 15;
    background-image: radial-gradient(rgba(15, 56, 15, 0.4) 1px, transparent 1px);
    background-size: 3px 3px;
    pointer-events: none;
}

[data-theme='brick'] img {
    filter: sepia(1) hue-rotate(40deg) saturate(2) brightness(0.9) contrast(1.2) !important;
}

[data-theme='virtual'] .game-card-front img,
[data-theme='virtual'] .game-card-back img,
[data-theme='virtual'] #modal-banner,
[data-theme='virtual'] .w-12 img,
[data-theme='virtual'] #cart-label {
    filter: grayscale(1) brightness(0.5) contrast(2) sepia(1) hue-rotate(-50deg) saturate(10) !important;
}

[data-theme='os'] .bg-blue-600 { background-color: #000080 !important; }
[data-theme='os'] header .text-gaming-text, [data-theme='os'] header h1 { color: #ffffff !important; }
[data-theme='os'] header .text-gaming-muted, [data-theme='os'] header .text-gaming-muted\/60 { color: rgba(255,255,255,0.8) !important; }
[data-theme='os'] header #progress-text, [data-theme='os'] header h1 span { color: #ffffff !important; }
[data-theme='os'] header h1 svg { color: #ffffff !important; }
[data-theme='os'] #level-badge { 
    background-color: #c0c0c0 !important; 
    color: #000000 !important; 
    border: 2px solid; 
    border-color: #ffffff #808080 #808080 #ffffff !important; 
    border-radius: 0px !important;
    font-weight: 900;
    box-shadow: none !important;
}

[data-theme='legacy'] h1, [data-theme='legacy'] h2, [data-theme='legacy'] h3, [data-theme='legacy'] h1 span { color: #ffffff !important; letter-spacing: -0.05em; }
[data-theme='legacy'] .text-gaming-accent, [data-theme='legacy'] .text-blue-500, [data-theme='legacy'] #progress-text { color: #ffffff !important; }
[data-theme='legacy'] #level-badge { background-color: #ffffff !important; color: #000000 !important; border-radius: 0.5rem !important; font-weight: 900; }

[data-theme='blueprint'] #now-playing-marquee .bg-black\/40 {
    background-color: #001f42 !important;
    border-color: var(--accent) !important;
}
[data-theme='blueprint'] #now-playing-marquee .marquee-content,
[data-theme='blueprint'] #now-playing-marquee .text-emerald-400,
[data-theme='blueprint'] #now-playing-marquee .text-red-500 {
    color: var(--accent) !important;
}
[data-theme='blueprint'] #marquee-status,
[data-theme='blueprint'] #marquee-led {
    color: var(--accent) !important;
    /* background-color: var(--accent) !important; */
}

[data-theme='woodgrain'] header .text-gaming-text, [data-theme='woodgrain'] header h1 { color: #fdf5e6 !important; }
[data-theme='woodgrain'] #level-badge { 
    background-color: #ffbf00 !important; 
    color: #1a0f00 !important; 
    border: 2px solid #1a0f00 !important;
    font-weight: 900;
}
[data-theme='woodgrain'] #now-playing-marquee .bg-black\/40 {
    background-color: #1a0f00 !important;
    border-color: #ffbf00 !important;
}
[data-theme='woodgrain'] #now-playing-marquee .marquee-content,
[data-theme='woodgrain'] #now-playing-marquee .text-emerald-500,
[data-theme='woodgrain'] #now-playing-marquee .text-red-500 {
    color: #ffbf00 !important;
}

/* --- Ink-Wash Global Overrides --- */
[data-theme='inkwash'] .text-gaming-muted,
[data-theme='inkwash'] .text-gaming-muted\/60 { color: #4a4a4a !important; opacity: 1 !important; }
[data-theme='inkwash'] .text-blue-400,
[data-theme='inkwash'] .text-emerald-400,
[data-theme='inkwash'] .text-yellow-500,
[data-theme='inkwash'] .text-red-400 { color: #1a1a1a !important; }
[data-theme='inkwash'] .bg-gaming-dark\/50 { background-color: rgba(0,0,0,0.05) !important; border-top: 1px solid #1a1a1a !important; }
[data-theme='inkwash'] #level-badge { background-color: #1a1a1a !important; color: #f2f0e9 !important; }
[data-theme='inkwash'] #now-playing-marquee .bg-black\/40 { background-color: #f2f0e9 !important; border-color: #1a1a1a !important; }
[data-theme='inkwash'] #now-playing-marquee .marquee-content { color: #1a1a1a !important; }
[data-theme='inkwash'] .text-gaming-text\/10 { color: rgba(0,0,0,0.1) !important; }

/* Ink-Wash Header Readability */
[data-theme='inkwash'] header h1,
[data-theme='inkwash'] header h1 span,
[data-theme='inkwash'] header #progress-text,
[data-theme='inkwash'] header #xp-text,
[data-theme='inkwash'] header .text-gaming-muted,
[data-theme='inkwash'] header .text-gaming-text {
    color: #1a1a1a !important;
}
[data-theme='inkwash'] header button.bg-blue-600,
[data-theme='inkwash'] header button.bg-gaming-card\/80 {
    background-color: #1a1a1a !important;
    color: #f2f0e9 !important;
    border: 1px solid #1a1a1a !important;
}
[data-theme='inkwash'] header button:hover {
    background-color: #d32f2f !important;
    border-color: #d32f2f !important;
}
[data-theme='inkwash'] header svg {
    color: #1a1a1a !important;
}
[data-theme='inkwash'] header .bg-gaming-dark {
    background-color: rgba(0,0,0,0.1) !important;
}
[data-theme='inkwash'] header #progress-bar,
[data-theme='inkwash'] header #xp-bar {
    background-color: #1a1a1a !important;
}

/* --- Hero Global Overrides --- */
[data-theme='hero'] .text-gaming-muted,
[data-theme='hero'] .text-gaming-muted\/60 { color: #000000 !important; opacity: 0.7 !important; }
[data-theme='hero'] .text-blue-400,
[data-theme='hero'] .text-emerald-400,
[data-theme='hero'] .text-yellow-500,
[data-theme='hero'] .text-red-400 { color: #000000 !important; font-weight: 900 !important; }
[data-theme='hero'] .bg-gaming-dark\/50 { background-color: #ffde00 !important; border-top: 2px solid #000 !important; }
[data-theme='hero'] #level-badge { background-color: #ff0000 !important; color: #ffffff !important; border: 2px solid #000 !important; }
[data-theme='hero'] #now-playing-marquee .bg-black\/40 { background-color: #ffffff !important; border: 2px solid #000 !important; }
[data-theme='hero'] #now-playing-marquee .marquee-content { color: #000 !important; font-family: 'Luckiest Guy', cursive !important; }
[data-theme='hero'] .text-gaming-text\/10 { color: rgba(0,0,0,0.2) !important; }
[data-theme='hero'] .text-yellow-500 { color: #000 !important; } /* Make filled stars black for contrast */

/* --- Glacier Global Overrides --- */
[data-theme='glacier'] header { backdrop-filter: blur(10px); }
[data-theme='glacier'] .bg-gaming-dark { background-color: rgba(224, 242, 254, 0.5) !important; }
[data-theme='glacier'] #now-playing-marquee .bg-black\/40 { background-color: rgba(255,255,255,0.4) !important; border-color: #bae6fd !important; }
[data-theme='glacier'] #now-playing-marquee .marquee-content { color: #0369a1 !important; }
[data-theme='glacier'] #level-badge { background-color: #ffffff !important; color: #0ea5e9 !important; border: 1px solid #bae6fd !important; }

/* --- Nomad Global Overrides --- */
[data-theme='nomad'] header .text-gaming-muted { color: #fcd34d !important; }
[data-theme='nomad'] #now-playing-marquee .bg-black\/40 { background-color: #451a03 !important; border: 2px solid #92400e !important; }
[data-theme='nomad'] #now-playing-marquee .marquee-content { color: #fbbf24 !important; }
[data-theme='nomad'] #level-badge { background-color: #f59e0b !important; color: #451a03 !important; border-radius: 0 !important; }

/* --- Prism Global Overrides --- */
[data-theme='prism'] header { background: linear-gradient(to right, #ffffff, #f8fafc) !important; border-bottom: 2px solid; border-image: linear-gradient(to right, #ff0000, #00ff00, #0000ff) 1; }
[data-theme='prism'] #now-playing-marquee .bg-black\/40 { background-color: #ffffff !important; border: 1px solid #000 !important; }
[data-theme='prism'] #now-playing-marquee .marquee-content { background: linear-gradient(to right, #ef4444, #3b82f6); -webkit-background-clip: text; -webkit-text-fill-color: transparent; font-weight: 900; }

/* --- Invader Global Overrides --- */
[data-theme='invader'] header { border-bottom: 2px solid #22c55e; }
[data-theme='invader'] #now-playing-marquee .bg-black\/40 { background-color: #000 !important; border: 1px solid #22c55e !important; }
[data-theme='invader'] #now-playing-marquee .marquee-content { color: #22c55e !important; text-shadow: 0 0 5px #22c55e; }
[data-theme='invader'] #level-badge { background-color: #22c55e !important; color: #000 !important; }
[data-theme='invader'] .text-gaming-text\/10 { color: rgba(34, 197, 94, 0.1) !important; }
[data-theme='invader'] .text-yellow-500 { color: #22c55e !important; }

/* Hero Header Readability */
[data-theme='hero'] header h1,
[data-theme='hero'] header h1 span,
[data-theme='hero'] header #progress-text,
[data-theme='hero'] header #xp-text {
    color: #ffffff !important;
    text-shadow: 2px 2px 0px #000 !important;
}
[data-theme='hero'] header svg {
    color: #ffde00 !important;
    filter: drop-shadow(2px 2px 0px #000) !important;
}

/* --- Virtual Global Overrides --- */
[data-theme='virtual'] header { border-bottom: 2px solid #ff0000; }
[data-theme='virtual'] #now-playing-marquee .bg-black\/40 { background-color: #000 !important; border: 1px solid #ff0000 !important; }
[data-theme='virtual'] #now-playing-marquee .marquee-content { color: #ff0000 !important; text-shadow: 0 0 10px #ff0000; }
[data-theme='virtual'] #level-badge { background-color: #000 !important; color: #ff0000 !important; border: 1px solid #ff0000 !important; }
[data-theme='virtual'] .text-gaming-text\/10 { color: rgba(255, 0, 0, 0.1) !important; }
[data-theme='virtual'] .text-yellow-500 { color: #ff0000 !important; }

/* --- Quest Global Overrides --- */
[data-theme='quest'] header { background: linear-gradient(to bottom, #0000ff, #000080) !important; border-bottom: 3px double #ffffff !important; }
[data-theme='quest'] #now-playing-marquee .bg-black\/40 { background-color: #000040 !important; border: 2px solid #ffffff !important; }
[data-theme='quest'] #now-playing-marquee .marquee-content { color: #ffffff !important; font-family: 'Pixelify Sans', cursive !important; }
[data-theme='quest'] #level-badge { background-color: #ffffff !important; color: #000080 !important; border-radius: 4px !important; border: 2px solid #ffde00 !important; }

/* --- Genesis Global Overrides --- */
[data-theme='genesis'] header { border-bottom: 4px solid #333; background: linear-gradient(to bottom, #1a1a1a, #000000) !important; }
[data-theme='genesis'] #now-playing-marquee .bg-black\/40 { background-color: #000 !important; border: 1px solid #00f2ff !important; }
[data-theme='genesis'] #now-playing-marquee .marquee-content { color: #ffde00 !important; font-family: 'Exo 2', sans-serif !important; font-weight: 900 !important; font-style: italic !important; }
[data-theme='genesis'] #level-badge { background-color: #ffde00 !important; color: #000 !important; border-radius: 4px !important; }

/* --- Spectrum Global Overrides --- */
[data-theme='spectrum'] header { border-bottom: 4px solid #fff; }
[data-theme='spectrum'] #now-playing-marquee .bg-black\/40 { background-color: #000 !important; border: 2px solid #00ffff !important; }
[data-theme='spectrum'] #now-playing-marquee .marquee-content { color: #ffff00 !important; font-family: 'JetBrains Mono', monospace !important; }
[data-theme='spectrum'] #level-badge { background-color: #ff00ff !important; color: #000 !important; border-radius: 0 !important; }

/* --- Famicom Global Overrides --- */
[data-theme='famicom'] header { border-bottom: 4px solid #ffde00; }
[data-theme='famicom'] #now-playing-marquee .bg-black\/40 { background-color: #f2f0e9 !important; border: 2px solid #991b1b !important; }
[data-theme='famicom'] #now-playing-marquee .marquee-content { color: #991b1b !important; font-family: 'DotGothic16', sans-serif !important; font-weight: 900 !important; }
[data-theme='famicom'] #level-badge { background-color: #ffde00 !important; color: #991b1b !important; border: 1px solid #991b1b !important; }

/* --- Web-1.0 Global Overrides --- */
[data-theme='web1'] header { background-color: #000080 !important; border-bottom: 2px solid #fff; }
[data-theme='web1'] header h1, [data-theme='web1'] header span, [data-theme='web1'] header #progress-text { color: #fff !important; }
[data-theme='web1'] #now-playing-marquee .bg-black\/40 { background-color: #c0c0c0 !important; border: 2px solid !important; border-color: #808080 #fff #fff #808080 !important; }
[data-theme='web1'] #now-playing-marquee .marquee-content { color: #000 !important; font-family: 'Times New Roman', serif !important; text-decoration: underline; }
[data-theme='web1'] #level-badge { background-color: #c0c0c0 !important; color: #000 !important; border: 2px solid !important; border-color: #fff #808080 #808080 #fff !important; }

/* --- Game Gear Global Overrides --- */
[data-theme='gamegear'] header { border-bottom: 4px solid #3b82f6; }
[data-theme='gamegear'] #now-playing-marquee .bg-black\/40 { background-color: #000 !important; border: 1px solid #a855f7 !important; }
[data-theme='gamegear'] #now-playing-marquee .marquee-content { color: #3b82f6 !important; font-family: 'Exo 2', sans-serif !important; font-weight: 900 !important; }
[data-theme='gamegear'] #level-badge { background-color: #a855f7 !important; color: #fff !important; }

/* --- Manga Global Overrides --- */
[data-theme='manga'] header { border-bottom: 4px solid #000; }
[data-theme='manga'] #now-playing-marquee .bg-black\/40 { background-color: #fff !important; border: 2px solid #000 !important; }
[data-theme='manga'] #now-playing-marquee .marquee-content { color: #000 !important; font-family: 'Balsamiq Sans', cursive !important; font-weight: 900 !important; }
[data-theme='manga'] #level-badge { background-color: #000 !important; color: #fff !important; }

/* --- Museum Global Overrides --- */
[data-theme='museum'] header { border-bottom: 2px solid #d4af37; box-shadow: 0 5px 15px rgba(0,0,0,0.05); }
[data-theme='museum'] #now-playing-marquee .bg-black\/40 { background-color: #ffffff !important; border: 1px solid #d4af37 !important; }
[data-theme='museum'] #now-playing-marquee .marquee-content { color: #d4af37 !important; font-family: 'Cormorant Garamond', serif !important; font-style: italic !important; }
[data-theme='museum'] #level-badge { background-color: #d4af37 !important; color: #fff !important; border-radius: 0 !important; }

/* --- Craft Global Overrides --- */
[data-theme='craft'] header { border-bottom: 4px dashed #fff; background-color: #1d4ed8 !important; }
[data-theme='craft'] #now-playing-marquee .bg-black\/40 { background-color: #3b82f6 !important; border: 2px solid #fff !important; }
[data-theme='craft'] #now-playing-marquee .marquee-content { color: #fff !important; font-family: 'Comfortaa', cursive !important; }
[data-theme='craft'] #level-badge { background-color: #fcd34d !important; color: #1d4ed8 !important; border: 2px solid #fff !important; }

/* --- Street Global Overrides --- */
[data-theme='street'] header { border-bottom: 4px solid #22c55e; }
[data-theme='street'] #now-playing-marquee .bg-black\/40 { background-color: #000 !important; border: 2px solid #22c55e !important; }
[data-theme='street'] #now-playing-marquee .marquee-content { color: #22c55e !important; font-family: 'Archivo Black', sans-serif !important; }
[data-theme='street'] #level-badge { background-color: #22c55e !important; color: #000 !important; transform: rotate(-2deg); }

/* --- Noir Global Overrides --- */
[data-theme='noir'] header { border-bottom: 1px solid #404040; background-color: #000 !important; }
[data-theme='noir'] #now-playing-marquee .bg-black\/40 { background-color: #111 !important; border: 1px solid #404040 !important; }
[data-theme='noir'] #now-playing-marquee .marquee-content { color: #e5e5e5 !important; font-family: 'JetBrains Mono', monospace !important; opacity: 0.8 !important; }
[data-theme='noir'] #level-badge { background-color: #e5e5e5 !important; color: #000 !important; border-radius: 0 !important; }

/* --- Tokyo Global Overrides --- */
[data-theme='tokyo'] header { border-bottom: 3px solid #d946ef; box-shadow: 0 0 20px rgba(217, 70, 239, 0.3); }
[data-theme='tokyo'] #now-playing-marquee .bg-black\/40 { background-color: #000 !important; border: 1px solid #d946ef !important; }
[data-theme='tokyo'] #now-playing-marquee .marquee-content { color: #f0abfc !important; text-shadow: 0 0 10px #d946ef; }
[data-theme='tokyo'] #level-badge { background-color: #d946ef !important; color: #000 !important; box-shadow: 0 0 10px #d946ef; }
[data-theme='hero'] header .text-gaming-muted,
[data-theme='hero'] header .text-gaming-text {
    color: rgba(255, 255, 255, 0.8) !important;
}
[data-theme='hero'] header button.bg-blue-600,
[data-theme='hero'] header button.bg-gaming-card\/80 {
    background-color: #ffde00 !important;
    color: #000000 !important;
    border: 2px solid #000 !important;
    box-shadow: 3px 3px 0px #000 !important;
    font-family: 'Luckiest Guy', cursive !important;
}
[data-theme='hero'] header button:hover {
    background-color: #ff0000 !important;
    color: #ffffff !important;
}
[data-theme='hero'] header #progress-bar,
[data-theme='hero'] header #xp-bar {
    background-color: #ffde00 !important;
}
[data-theme='hero'] header .bg-gaming-dark {
    background-color: rgba(0,0,0,0.3) !important;
    border: 1px solid #000 !important;
}

[data-theme='papercraft'] header .text-gaming-text, [data-theme='papercraft'] header h1 { color: #2c2c2c !important; }
[data-theme='papercraft'] #level-badge { 
    background-color: #d32f2f !important; 
    color: #ffffff !important; 
    border: 2px solid #333 !important;
    font-weight: 900;
}
[data-theme='papercraft'] #now-playing-marquee .bg-black\/40 {
    background-color: #f4eee1 !important;
    border-color: #333 !important;
}
[data-theme='papercraft'] #now-playing-marquee .marquee-content,
[data-theme='papercraft'] #now-playing-marquee .text-emerald-500,
[data-theme='papercraft'] #now-playing-marquee .text-red-500 {
    color: #333 !important;
}
[data-theme='papercraft'] #marquee-led {
    background-color: #d32f2f !important;
}

[data-theme='candy'] header .text-gaming-text, [data-theme='candy'] header h1 { color: #ffffff !important; }
[data-theme='candy'] header h1 .text-blue-500 { color: #ffffff !important; text-shadow: 0 0 10px #ff00ff !important; }
[data-theme='candy'] #now-playing-marquee .bg-black\/40 {
    background-color: rgba(255, 255, 255, 0.3) !important;
    border-color: #ffffff !important;
    backdrop-filter: blur(5px);
}
[data-theme='candy'] #now-playing-marquee .marquee-content,
[data-theme='candy'] #now-playing-marquee .text-emerald-500,
[data-theme='candy'] #now-playing-marquee .text-red-500 {
    color: #ffffff !important;
    text-shadow: 0 0 10px #ff00ff !important;
}
[data-theme='candy'] #marquee-led {
    background-color: #ff00ff !important;
    box-shadow: 0 0 10px #ff00ff !important;
}

/* Legacy Theme Button Overrides (including Share and Active Radio Channels) */
[data-theme='legacy'] .bg-blue-600,
[data-theme='legacy'] .bg-gaming-accent,
[data-theme='legacy'] .hover\:bg-blue-500:hover,
[data-theme='legacy'] .poster-btn:hover,
[data-theme='legacy'] .help-btn:hover {
    background-color: #ffffff !important;
    color: #000000 !important;
    border: 1px solid #ffffff !important;
}
[data-theme='legacy'] .poster-btn:hover span,
[data-theme='legacy'] .poster-btn:hover svg,
[data-theme='legacy'] .help-btn:hover span,
[data-theme='legacy'] .help-btn:hover svg {
    color: #000000 !important;
}
[data-theme='legacy'] .help-btn { background-color: #000 !important; border: 1px solid #fff !important; }

/* Legacy Toolbar Transparency */
[data-theme='legacy'] header .bg-gaming-card\/80 {
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

/* Legacy Theme Image Filters */
[data-theme='legacy'] img, 
[data-theme='legacy'] #modal-banner {
    filter: grayscale(1) contrast(1.2) brightness(0.9) !important;
}

/* Legacy Buddy Refinements */
[data-theme='legacy'] .companion-window .bg-gaming-accent span {
    color: #000000 !important;
}
[data-theme='legacy'] .companion-window .bg-gaming-accent .w-2.h-2 {
    background-color: #000000 !important;
}
[data-theme='legacy'] .companion-floor {
    background-color: #111111 !important;
    border-top: 2px solid #ffffff !important;
    /* Add dots to floor as well */
    background-image: radial-gradient(rgba(255, 255, 255, 0.2) 1px, transparent 1px) !important;
    background-size: 4px 4px !important;
}
[data-theme='legacy'] .companion-window .bg-gaming-dark\/30 {
    background-image: radial-gradient(rgba(255, 255, 255, 0.2) 1px, transparent 1px) !important;
    background-size: 4px 4px !important;
    background-color: #000000 !important;
}
[data-theme='legacy'] #companion-sprite {
    background: transparent !important;
}

/* Legacy Genre Color Overrides (Front & Back) */
[data-theme='legacy'] .text-blue-400,
[data-theme='legacy'] .bg-blue-900\/20,
[data-theme='legacy'] .bg-blue-900\/30 {
    color: #ffffff !important;
    background-color: transparent !important; /* Fixed: removed the bg color */
    border-color: rgba(255,255,255,0.2) !important;
}
