mirror of
https://github.com/Psychotoxical/psysonic.git
synced 2026-07-21 23:05:46 +00:00
29a4363dca
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
11674 lines
391 KiB
CSS
11674 lines
391 KiB
CSS
/* ─────────────────────────────────────────────────────────────
|
||
Psysonic – Design System
|
||
Catppuccin Mocha Color Palette + Inter Typography
|
||
───────────────────────────────────────────────────────────── */
|
||
|
||
@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Space+Grotesk:wght@400;500;600;700&family=Outfit:wght@300..700&family=DM+Sans:ital,opsz,wght@0,9..40,300..700;1,9..40,300..700&family=Nunito:ital,wght@0,300..800;1,300..800&family=Rubik:ital,wght@0,300..700;1,300..700&family=Figtree:ital,wght@0,300..800;1,300..800&family=Manrope:wght@300..800&family=Plus+Jakarta+Sans:ital,wght@0,300..800;1,300..800&family=Lexend:wght@300..700&display=swap');
|
||
|
||
/* ─── Catppuccin Mocha Variables ─── */
|
||
:root, [data-theme='mocha'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23bac2de%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
--ctp-rosewater: #f5e0dc;
|
||
--ctp-flamingo: #f2cdcd;
|
||
--ctp-pink: #f5c2e7;
|
||
--ctp-mauve: #cba6f7;
|
||
--ctp-red: #f38ba8;
|
||
--ctp-maroon: #eba0ac;
|
||
--ctp-peach: #fab387;
|
||
--ctp-yellow: #f9e2af;
|
||
--ctp-green: #a6e3a1;
|
||
--ctp-teal: #94e2d5;
|
||
--ctp-sky: #89dceb;
|
||
--ctp-sapphire: #74c7ec;
|
||
--ctp-blue: #89b4fa;
|
||
--ctp-lavender: #b4befe;
|
||
--ctp-text: #cdd6f4;
|
||
--ctp-subtext1: #bac2de;
|
||
--ctp-subtext0: #a6adc8;
|
||
--ctp-overlay2: #9399b2;
|
||
--ctp-overlay1: #7f849c;
|
||
--ctp-overlay0: #6c7086;
|
||
--ctp-surface2: #585b70;
|
||
--ctp-surface1: #45475a;
|
||
--ctp-surface0: #313244;
|
||
--ctp-base: #1e1e2e;
|
||
--ctp-mantle: #181825;
|
||
--ctp-crust: #11111b;
|
||
|
||
/* Semantic tokens */
|
||
--bg-app: var(--ctp-base);
|
||
--bg-sidebar: var(--ctp-mantle);
|
||
--bg-card: var(--ctp-surface0);
|
||
--bg-hover: var(--ctp-surface1);
|
||
--bg-player: var(--ctp-crust);
|
||
--bg-glass: rgba(30, 30, 46, 0.75);
|
||
--accent: var(--ctp-mauve);
|
||
--accent-dim: rgba(203, 166, 247, 0.15);
|
||
--accent-glow: rgba(203, 166, 247, 0.3);
|
||
--text-primary: var(--ctp-text);
|
||
--text-secondary:var(--ctp-subtext1);
|
||
--text-muted: var(--ctp-subtext0);
|
||
--border: var(--ctp-surface1);
|
||
--border-subtle: var(--ctp-surface0);
|
||
--positive: var(--ctp-green);
|
||
--warning: var(--ctp-yellow);
|
||
--danger: var(--ctp-red);
|
||
}
|
||
|
||
/* ─── Catppuccin Macchiato Variables ─── */
|
||
[data-theme='macchiato'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23b8c0e0%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
--ctp-rosewater: #f4dbd6;
|
||
--ctp-flamingo: #f0c6c6;
|
||
--ctp-pink: #f5bde6;
|
||
--ctp-mauve: #c6a0f6;
|
||
--ctp-red: #ed8796;
|
||
--ctp-maroon: #ee99a0;
|
||
--ctp-peach: #f5a97f;
|
||
--ctp-yellow: #eed49f;
|
||
--ctp-green: #a6da95;
|
||
--ctp-teal: #8bd5ca;
|
||
--ctp-sky: #91d7e3;
|
||
--ctp-sapphire: #7dc4e4;
|
||
--ctp-blue: #8aadf4;
|
||
--ctp-lavender: #b7bdf8;
|
||
--ctp-text: #cad3f5;
|
||
--ctp-subtext1: #b8c0e0;
|
||
--ctp-subtext0: #a5adcb;
|
||
--ctp-overlay2: #939ab7;
|
||
--ctp-overlay1: #8087a2;
|
||
--ctp-overlay0: #6e738d;
|
||
--ctp-surface2: #5b6078;
|
||
--ctp-surface1: #494d64;
|
||
--ctp-surface0: #363a4f;
|
||
--ctp-base: #24273a;
|
||
--ctp-mantle: #1e2030;
|
||
--ctp-crust: #181926;
|
||
|
||
--bg-app: var(--ctp-base);
|
||
--bg-sidebar: var(--ctp-mantle);
|
||
--bg-card: var(--ctp-surface0);
|
||
--bg-hover: var(--ctp-surface1);
|
||
--bg-player: var(--ctp-crust);
|
||
--bg-glass: rgba(36, 39, 58, 0.75);
|
||
--accent: var(--ctp-mauve);
|
||
--accent-dim: rgba(198, 160, 246, 0.15);
|
||
--accent-glow: rgba(198, 160, 246, 0.3);
|
||
--text-primary: var(--ctp-text);
|
||
--text-secondary:var(--ctp-subtext1);
|
||
--text-muted: var(--ctp-subtext0);
|
||
--border: var(--ctp-surface1);
|
||
--border-subtle: var(--ctp-surface0);
|
||
--positive: var(--ctp-green);
|
||
--warning: var(--ctp-yellow);
|
||
--danger: var(--ctp-red);
|
||
}
|
||
|
||
/* ─── Catppuccin Frappé Variables ─── */
|
||
[data-theme='frappe'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23b5bfe2%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
--ctp-rosewater: #f2d5cf;
|
||
--ctp-flamingo: #eebebe;
|
||
--ctp-pink: #f4b8e4;
|
||
--ctp-mauve: #ca9ee6;
|
||
--ctp-red: #e78284;
|
||
--ctp-maroon: #ea999c;
|
||
--ctp-peach: #ef9f76;
|
||
--ctp-yellow: #e5c890;
|
||
--ctp-green: #a6d189;
|
||
--ctp-teal: #81c8be;
|
||
--ctp-sky: #99d1db;
|
||
--ctp-sapphire: #85c1dc;
|
||
--ctp-blue: #8caaee;
|
||
--ctp-lavender: #babbf1;
|
||
--ctp-text: #c6d0f5;
|
||
--ctp-subtext1: #b5bfe2;
|
||
--ctp-subtext0: #a5adce;
|
||
--ctp-overlay2: #949cbb;
|
||
--ctp-overlay1: #838ba7;
|
||
--ctp-overlay0: #737994;
|
||
--ctp-surface2: #626880;
|
||
--ctp-surface1: #51576d;
|
||
--ctp-surface0: #414559;
|
||
--ctp-base: #303446;
|
||
--ctp-mantle: #292c3c;
|
||
--ctp-crust: #232634;
|
||
|
||
--bg-app: var(--ctp-base);
|
||
--bg-sidebar: var(--ctp-mantle);
|
||
--bg-card: var(--ctp-surface0);
|
||
--bg-hover: var(--ctp-surface1);
|
||
--bg-player: var(--ctp-crust);
|
||
--bg-glass: rgba(48, 52, 70, 0.75);
|
||
--accent: var(--ctp-mauve);
|
||
--accent-dim: rgba(202, 158, 230, 0.15);
|
||
--accent-glow: rgba(202, 158, 230, 0.3);
|
||
--text-primary: var(--ctp-text);
|
||
--text-secondary:var(--ctp-subtext1);
|
||
--text-muted: var(--ctp-subtext0);
|
||
--border: var(--ctp-surface1);
|
||
--border-subtle: var(--ctp-surface0);
|
||
--positive: var(--ctp-green);
|
||
--warning: var(--ctp-yellow);
|
||
--danger: var(--ctp-red);
|
||
}
|
||
|
||
/* ─── Catppuccin Latte Variables (Light Theme) ─── */
|
||
[data-theme='latte'] {
|
||
color-scheme: light;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%235c5f77%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
--ctp-rosewater: #dc8a78;
|
||
--ctp-flamingo: #dd7878;
|
||
--ctp-pink: #ea76cb;
|
||
--ctp-mauve: #8839ef;
|
||
--ctp-red: #d20f39;
|
||
--ctp-maroon: #e64553;
|
||
--ctp-peach: #fe640b;
|
||
--ctp-yellow: #df8e1d;
|
||
--ctp-green: #40a02b;
|
||
--ctp-teal: #179299;
|
||
--ctp-sky: #04a5e5;
|
||
--ctp-sapphire: #209fb5;
|
||
--ctp-blue: #1e66f5;
|
||
--ctp-lavender: #7287fd;
|
||
--ctp-text: #4c4f69;
|
||
--ctp-subtext1: #5c5f77;
|
||
--ctp-subtext0: #6c6f85;
|
||
--ctp-overlay2: #7c7f93;
|
||
--ctp-overlay1: #8c8fa1;
|
||
--ctp-overlay0: #9ca0b0;
|
||
--ctp-surface2: #acb0be;
|
||
--ctp-surface1: #bcc0cc;
|
||
--ctp-surface0: #ccd0da;
|
||
--ctp-base: #eff1f5;
|
||
--ctp-mantle: #e6e9ef;
|
||
--ctp-crust: #dce0e8;
|
||
|
||
/* Semantic tokens */
|
||
--bg-app: var(--ctp-base);
|
||
--bg-sidebar: var(--ctp-mantle);
|
||
--bg-card: var(--ctp-surface0);
|
||
--bg-hover: var(--ctp-surface1);
|
||
--bg-player: var(--ctp-crust);
|
||
--bg-glass: rgba(239, 241, 245, 0.75);
|
||
--accent: var(--ctp-mauve);
|
||
--accent-dim: rgba(136, 57, 239, 0.15);
|
||
--accent-glow: rgba(136, 57, 239, 0.3);
|
||
--text-primary: var(--ctp-text);
|
||
--text-secondary:var(--ctp-subtext1);
|
||
--text-muted: var(--ctp-subtext0);
|
||
--border: var(--ctp-surface1);
|
||
--border-subtle: var(--ctp-surface0);
|
||
--positive: var(--ctp-green);
|
||
--warning: var(--ctp-yellow);
|
||
--danger: var(--ctp-red);
|
||
}
|
||
|
||
/* ─── Nord – Polar Night (Dark) ─── */
|
||
[data-theme='nord'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23e5e9f0%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
/* Polar Night */
|
||
--ctp-crust: #2e3440;
|
||
--ctp-mantle: #2e3440;
|
||
--ctp-base: #3b4252;
|
||
--ctp-surface0: #434c5e;
|
||
--ctp-surface1: #4c566a;
|
||
--ctp-surface2: #576070;
|
||
--ctp-overlay0: #7a8898;
|
||
--ctp-overlay1: #8894a4;
|
||
--ctp-overlay2: #96a2b0;
|
||
/* Snow Storm as text */
|
||
--ctp-text: #eceff4;
|
||
--ctp-subtext1: #e5e9f0;
|
||
--ctp-subtext0: #d8dee9;
|
||
/* Frost */
|
||
--ctp-teal: #8fbcbb;
|
||
--ctp-sky: #88c0d0;
|
||
--ctp-sapphire: #81a1c1;
|
||
--ctp-blue: #5e81ac;
|
||
--ctp-lavender: #81a1c1;
|
||
--ctp-mauve: #88c0d0;
|
||
/* Aurora */
|
||
--ctp-red: #bf616a;
|
||
--ctp-maroon: #d08770;
|
||
--ctp-peach: #d08770;
|
||
--ctp-yellow: #ebcb8b;
|
||
--ctp-green: #a3be8c;
|
||
--ctp-pink: #b48ead;
|
||
--ctp-flamingo: #bf616a;
|
||
--ctp-rosewater: #d08770;
|
||
|
||
--bg-app: #3b4252;
|
||
--bg-sidebar: #2e3440;
|
||
--bg-card: #434c5e;
|
||
--bg-hover: #4c566a;
|
||
--bg-player: #2e3440;
|
||
--bg-glass: rgba(59, 66, 82, 0.75);
|
||
--accent: #88c0d0;
|
||
--accent-dim: rgba(136, 192, 208, 0.15);
|
||
--accent-glow: rgba(136, 192, 208, 0.3);
|
||
--text-primary: #eceff4;
|
||
--text-secondary:#e5e9f0;
|
||
--text-muted: #a0aab8;
|
||
--border: #434c5e;
|
||
--border-subtle: #3b4252;
|
||
--border-dropdown: #576070;
|
||
--shadow-dropdown: rgba(0, 0, 0, 0.55);
|
||
--positive: #a3be8c;
|
||
--warning: #ebcb8b;
|
||
--danger: #bf616a;
|
||
}
|
||
|
||
/* ─── Nord – Snow Storm (Light) ─── */
|
||
[data-theme='nord-snowstorm'] {
|
||
color-scheme: light;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%233b4252%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
/* Snow Storm as backgrounds */
|
||
--ctp-crust: #d8dee9;
|
||
--ctp-mantle: #e5e9f0;
|
||
--ctp-base: #eceff4;
|
||
--ctp-surface0: #d8dee9;
|
||
--ctp-surface1: #c8d0de;
|
||
--ctp-surface2: #b8c2d0;
|
||
--ctp-overlay0: #7a8898;
|
||
--ctp-overlay1: #636e7e;
|
||
--ctp-overlay2: #4c566a;
|
||
/* Polar Night as text */
|
||
--ctp-text: #2e3440;
|
||
--ctp-subtext1: #3b4252;
|
||
--ctp-subtext0: #434c5e;
|
||
/* Frost */
|
||
--ctp-teal: #8fbcbb;
|
||
--ctp-sky: #88c0d0;
|
||
--ctp-sapphire: #81a1c1;
|
||
--ctp-blue: #5e81ac;
|
||
--ctp-lavender: #81a1c1;
|
||
--ctp-mauve: #5e81ac;
|
||
/* Aurora */
|
||
--ctp-red: #bf616a;
|
||
--ctp-maroon: #d08770;
|
||
--ctp-peach: #d08770;
|
||
--ctp-yellow: #9a7200;
|
||
--ctp-green: #4e7c3f;
|
||
--ctp-pink: #7e5d8c;
|
||
--ctp-flamingo: #bf616a;
|
||
--ctp-rosewater: #d08770;
|
||
|
||
--bg-app: #eceff4;
|
||
--bg-sidebar: #e5e9f0;
|
||
--bg-card: #d8dee9;
|
||
--bg-hover: #c8d0de;
|
||
--bg-player: #e5e9f0;
|
||
--bg-glass: rgba(236, 239, 244, 0.80);
|
||
--accent: #5e81ac;
|
||
--accent-dim: rgba(94, 129, 172, 0.15);
|
||
--accent-glow: rgba(94, 129, 172, 0.3);
|
||
--text-primary: #2e3440;
|
||
--text-secondary:#3b4252;
|
||
--text-muted: #636e7e;
|
||
--border: #c8d0de;
|
||
--border-subtle: #d8dee9;
|
||
--positive: #4e7c3f;
|
||
--warning: #9a7200;
|
||
--danger: #bf616a;
|
||
}
|
||
|
||
/* ─── Nord – Frost (Deep Ocean Blue) ─── */
|
||
[data-theme='nord-frost'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23e5e9f0%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
/* Deep ocean blue – Frost-inspired dark backgrounds */
|
||
--ctp-crust: #1a2535;
|
||
--ctp-mantle: #1d2b3a;
|
||
--ctp-base: #253545;
|
||
--ctp-surface0: #2d3f52;
|
||
--ctp-surface1: #354a60;
|
||
--ctp-surface2: #3d546e;
|
||
--ctp-overlay0: #6888a4;
|
||
--ctp-overlay1: #7898b4;
|
||
--ctp-overlay2: #88a8c4;
|
||
/* Snow Storm as text */
|
||
--ctp-text: #eceff4;
|
||
--ctp-subtext1: #e5e9f0;
|
||
--ctp-subtext0: #d8dee9;
|
||
/* Frost accent */
|
||
--ctp-teal: #8fbcbb;
|
||
--ctp-sky: #88c0d0;
|
||
--ctp-sapphire: #81a1c1;
|
||
--ctp-blue: #5e81ac;
|
||
--ctp-lavender: #8fbcbb;
|
||
--ctp-mauve: #88c0d0;
|
||
/* Aurora */
|
||
--ctp-red: #bf616a;
|
||
--ctp-maroon: #d08770;
|
||
--ctp-peach: #d08770;
|
||
--ctp-yellow: #ebcb8b;
|
||
--ctp-green: #a3be8c;
|
||
--ctp-pink: #b48ead;
|
||
--ctp-flamingo: #bf616a;
|
||
--ctp-rosewater: #d08770;
|
||
|
||
--bg-app: #253545;
|
||
--bg-sidebar: #1d2b3a;
|
||
--bg-card: #2d3f52;
|
||
--bg-hover: #354a60;
|
||
--bg-player: #1a2535;
|
||
--bg-glass: rgba(37, 53, 69, 0.75);
|
||
--accent: #88c0d0;
|
||
--accent-dim: rgba(136, 192, 208, 0.15);
|
||
--accent-glow: rgba(136, 192, 208, 0.35);
|
||
--text-primary: #eceff4;
|
||
--text-secondary:#e5e9f0;
|
||
--text-muted: #7898b4;
|
||
--border: #2d3f52;
|
||
--border-subtle: #253545;
|
||
--border-dropdown: #3d546e;
|
||
--shadow-dropdown: rgba(0, 0, 0, 0.6);
|
||
--positive: #a3be8c;
|
||
--warning: #ebcb8b;
|
||
--danger: #bf616a;
|
||
}
|
||
|
||
/* ─── Nord – Aurora (Dark + Aurora Purple) ─── */
|
||
[data-theme='nord-aurora'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23e5e9f0%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
/* Polar Night base */
|
||
--ctp-crust: #2e3440;
|
||
--ctp-mantle: #2e3440;
|
||
--ctp-base: #3b4252;
|
||
--ctp-surface0: #434c5e;
|
||
--ctp-surface1: #4c566a;
|
||
--ctp-surface2: #576070;
|
||
--ctp-overlay0: #7a8898;
|
||
--ctp-overlay1: #8894a4;
|
||
--ctp-overlay2: #96a2b0;
|
||
/* Snow Storm as text */
|
||
--ctp-text: #eceff4;
|
||
--ctp-subtext1: #e5e9f0;
|
||
--ctp-subtext0: #d8dee9;
|
||
/* Aurora accents — purple as mauve/lavender for button gradients */
|
||
--ctp-mauve: #b48ead;
|
||
--ctp-lavender: #a3be8c;
|
||
--ctp-pink: #b48ead;
|
||
--ctp-teal: #8fbcbb;
|
||
--ctp-sky: #88c0d0;
|
||
--ctp-sapphire: #81a1c1;
|
||
--ctp-blue: #5e81ac;
|
||
--ctp-red: #bf616a;
|
||
--ctp-maroon: #d08770;
|
||
--ctp-peach: #d08770;
|
||
--ctp-yellow: #ebcb8b;
|
||
--ctp-green: #a3be8c;
|
||
--ctp-flamingo: #bf616a;
|
||
--ctp-rosewater: #d08770;
|
||
|
||
--bg-app: #3b4252;
|
||
--bg-sidebar: #2e3440;
|
||
--bg-card: #434c5e;
|
||
--bg-hover: #4c566a;
|
||
--bg-player: #2e3440;
|
||
--bg-glass: rgba(59, 66, 82, 0.75);
|
||
--accent: #b48ead;
|
||
--accent-dim: rgba(180, 142, 173, 0.15);
|
||
--accent-glow: rgba(180, 142, 173, 0.3);
|
||
--text-primary: #eceff4;
|
||
--text-secondary:#e5e9f0;
|
||
--text-muted: #a0aab8;
|
||
--border: #434c5e;
|
||
--border-subtle: #3b4252;
|
||
--border-dropdown: #576070;
|
||
--shadow-dropdown: rgba(0, 0, 0, 0.55);
|
||
--positive: #a3be8c;
|
||
--warning: #ebcb8b;
|
||
--danger: #bf616a;
|
||
}
|
||
|
||
/* ─── Poison ─── */
|
||
[data-theme='poison'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%231bd655%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* ── Palette — charcoal grays + phosphor green ── */
|
||
--ctp-crust: #0e0e0e;
|
||
--ctp-mantle: #161616;
|
||
--ctp-base: #1f1f1f;
|
||
--ctp-surface0: #282828;
|
||
--ctp-surface1: #323232;
|
||
--ctp-surface2: #3e3e3e;
|
||
--ctp-overlay0: #525252;
|
||
--ctp-overlay1: #686868;
|
||
--ctp-overlay2: #848484;
|
||
--ctp-text: #d0d0cc;
|
||
--ctp-subtext1: #a8a8a4;
|
||
--ctp-subtext0: #787874;
|
||
/* Phosphor green accent — the Winamp LED display color */
|
||
--ctp-mauve: #1bd655;
|
||
--ctp-lavender: #28e860;
|
||
--ctp-green: #1bd655;
|
||
--ctp-teal: #1ab8a8;
|
||
--ctp-sky: #58a8e0;
|
||
--ctp-blue: #4888d0;
|
||
--ctp-sapphire: #3870b8;
|
||
--ctp-pink: #c86888;
|
||
--ctp-flamingo: #b85858;
|
||
--ctp-rosewater: #c88080;
|
||
--ctp-yellow: #c8a830;
|
||
--ctp-peach: #c07838;
|
||
--ctp-maroon: #a03030;
|
||
--ctp-red: #c03030;
|
||
|
||
/* ── Semantic tokens ── */
|
||
--bg-app: #1f1f1f;
|
||
--bg-sidebar: #161616;
|
||
--bg-card: #282828;
|
||
--bg-hover: #323232;
|
||
--bg-player: #0e0e0e;
|
||
--bg-glass: rgba(22, 22, 22, 0.90);
|
||
--accent: #1bd655;
|
||
--accent-dim: rgba(27, 214, 85, 0.12);
|
||
--accent-glow: rgba(27, 214, 85, 0.35);
|
||
--text-primary: #d0d0cc;
|
||
--text-secondary:#a8a8a4;
|
||
--text-muted: #909090;
|
||
--border: #3a3a38;
|
||
--border-subtle: #282826;
|
||
--positive: #1bd655;
|
||
--warning: #c8a830;
|
||
--danger: #c03030;
|
||
}
|
||
|
||
/* ── Winamp: LED display glow + tactile buttons ── */
|
||
[data-theme='poison'] .player-track-name {
|
||
text-shadow: 0 0 8px rgba(27, 214, 85, 0.7), 0 0 2px rgba(27, 214, 85, 0.4);
|
||
color: #1bd655;
|
||
}
|
||
|
||
[data-theme='poison'] .player-track-artist {
|
||
color: #1bd655;
|
||
opacity: 0.7;
|
||
}
|
||
|
||
[data-theme='poison'] .btn {
|
||
box-shadow: 0 2px 3px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.1);
|
||
}
|
||
|
||
[data-theme='poison'] .player-btn,
|
||
[data-theme='poison'] .player-btn-primary {
|
||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.12), inset 0 -1px 0 rgba(0, 0, 0, 0.3);
|
||
}
|
||
|
||
/* ─── Classic Winamp — Winamp 2.x Base Skin ─── */
|
||
[data-theme='wnamp'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23c8c8d0%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* ── Palette ── */
|
||
--ctp-crust: #000000;
|
||
--ctp-mantle: #1e1e28;
|
||
--ctp-base: #2b2b3a;
|
||
--ctp-surface0: #353545;
|
||
--ctp-surface1: #404055;
|
||
--ctp-surface2: #4e4e65;
|
||
--ctp-overlay0: #5a5a75;
|
||
--ctp-overlay1: #6e6e88;
|
||
--ctp-overlay2: #8a8a96;
|
||
--ctp-text: #c8c8d0;
|
||
--ctp-subtext1: #a0a0ac;
|
||
--ctp-subtext0: #8a8a96;
|
||
/* Winamp orange accent + iconic green glow */
|
||
--ctp-mauve: #d4cc46;
|
||
--ctp-lavender: #e0d860;
|
||
--ctp-green: #00ff00;
|
||
--ctp-teal: #00cc88;
|
||
--ctp-sky: #5ab8e0;
|
||
--ctp-blue: #4898d0;
|
||
--ctp-sapphire: #3878b8;
|
||
--ctp-pink: #c06888;
|
||
--ctp-flamingo: #b85858;
|
||
--ctp-rosewater: #c88080;
|
||
--ctp-yellow: #e8c050;
|
||
--ctp-peach: #d08840;
|
||
--ctp-maroon: #a03030;
|
||
--ctp-red: #c03030;
|
||
|
||
/* ── Semantic tokens ── */
|
||
--bg-app: #2b2b3a;
|
||
--bg-sidebar: #1e1e28;
|
||
--bg-card: #353545;
|
||
--bg-hover: #404055;
|
||
--bg-player: #000000;
|
||
--bg-glass: rgba(43, 43, 58, 0.90);
|
||
--accent: #d4cc46;
|
||
--accent-dim: rgba(212, 204, 70, 0.15);
|
||
--accent-glow: rgba(212, 204, 70, 0.35);
|
||
--volume-accent: #de9b35;
|
||
--text-primary: #c8c8d0;
|
||
--text-secondary:#a0a0ac;
|
||
--text-muted: #a0a0bc;
|
||
--border: #5a5a75;
|
||
--border-subtle: #353545;
|
||
--positive: #00cc66;
|
||
--warning: #d4cc46;
|
||
--danger: #c03030;
|
||
}
|
||
|
||
/* ── Classic Winamp: LCD display + bevel buttons ── */
|
||
[data-theme='wnamp'] .connection-type {
|
||
color: var(--text-primary);
|
||
}
|
||
[data-theme='wnamp'] .connection-server {
|
||
color: var(--text-secondary);
|
||
}
|
||
|
||
[data-theme='wnamp'] .player-track-name {
|
||
color: #00ff00;
|
||
text-shadow: 0 0 6px rgba(0, 255, 0, 0.65), 0 0 2px rgba(0, 255, 0, 0.4);
|
||
font-family: 'Courier New', 'Lucida Console', monospace;
|
||
letter-spacing: 0.04em;
|
||
}
|
||
|
||
[data-theme='wnamp'] .player-track-artist {
|
||
color: #00cc00;
|
||
font-family: 'Courier New', 'Lucida Console', monospace;
|
||
opacity: 0.85;
|
||
}
|
||
|
||
[data-theme='wnamp'] .btn {
|
||
box-shadow: inset 1px 1px 0 rgba(255,255,255,0.18), inset -1px -1px 0 rgba(0,0,0,0.55), 0 1px 3px rgba(0,0,0,0.4);
|
||
}
|
||
|
||
[data-theme='wnamp'] .player-btn,
|
||
[data-theme='wnamp'] .player-btn-primary {
|
||
box-shadow: inset 1px 1px 0 rgba(255,255,255,0.18), inset -1px -1px 0 rgba(0,0,0,0.55), 0 2px 5px rgba(0,0,0,0.5);
|
||
}
|
||
|
||
/* ─── Nucleo — Classic HiFi / Winamp Brass ─── */
|
||
[data-theme='nucleo'] {
|
||
color-scheme: light;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%238c7356%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* ── Palette ── */
|
||
--ctp-crust: #c8a458;
|
||
--ctp-mantle: #dfc08f;
|
||
--ctp-base: #e9d3ac;
|
||
--ctp-surface0: #eedbb8;
|
||
--ctp-surface1: #f5e4c3;
|
||
--ctp-surface2: #f9ecd4;
|
||
--ctp-overlay0: #b09060;
|
||
--ctp-overlay1: #987848;
|
||
--ctp-overlay2: #805c30;
|
||
--ctp-text: #2c1e10;
|
||
--ctp-subtext1: #5a3e20;
|
||
--ctp-subtext0: #8c7356;
|
||
/* Accents — burnished brass + warm tones */
|
||
--ctp-mauve: #7a5218; /* dark burnished brass — primary accent */
|
||
--ctp-lavender: #9a6a28; /* mid brass — hover/lighter variant */
|
||
--ctp-pink: #c06880;
|
||
--ctp-flamingo: #c06050;
|
||
--ctp-rosewater: #d08070;
|
||
--ctp-blue: #5878a8; /* muted steel blue */
|
||
--ctp-sapphire: #4868a0;
|
||
--ctp-sky: #6898b8;
|
||
--ctp-teal: #487878;
|
||
--ctp-green: #587838; /* muted olive */
|
||
--ctp-yellow: #a88020; /* dark burnished gold */
|
||
--ctp-peach: #b87040;
|
||
--ctp-maroon: #903030;
|
||
--ctp-red: #a03828;
|
||
|
||
/* ── Semantic tokens ── */
|
||
--bg-app: #f5e4c3;
|
||
--bg-sidebar: #e9d3ac;
|
||
--bg-card: #eedbb8;
|
||
--bg-hover: #e3cc9e;
|
||
--bg-player: #dfc08f;
|
||
--bg-glass: rgba(245, 228, 195, 0.90);
|
||
--accent: #7a5218;
|
||
--accent-dim: rgba(122, 82, 24, 0.15);
|
||
--accent-glow: rgba(122, 82, 24, 0.30);
|
||
--text-primary: #2c1e10;
|
||
--text-secondary:#5a3e20;
|
||
--text-muted: #8c7356;
|
||
--border: #b89a69;
|
||
--border-subtle: #dfc08f;
|
||
--positive: #587838;
|
||
--warning: #a88020;
|
||
--danger: #a03828;
|
||
}
|
||
|
||
/* ── Nucleo: skeuomorphic detail layer ── */
|
||
[data-theme='nucleo'] .sidebar {
|
||
background-image: repeating-linear-gradient(
|
||
90deg,
|
||
rgba(255,255,255,0.06) 0px,
|
||
rgba(255,255,255,0.06) 1px,
|
||
transparent 1px,
|
||
transparent 5px
|
||
);
|
||
}
|
||
|
||
[data-theme='nucleo'] .player-bar {
|
||
background-image: repeating-linear-gradient(
|
||
90deg,
|
||
rgba(255,255,255,0.05) 0px,
|
||
rgba(255,255,255,0.05) 1px,
|
||
transparent 1px,
|
||
transparent 5px
|
||
);
|
||
}
|
||
|
||
[data-theme='nucleo'] .player-track-name {
|
||
text-shadow: 0 0 10px rgba(255, 244, 219, 0.75), 0 0 2px rgba(255, 244, 219, 0.4);
|
||
}
|
||
|
||
[data-theme='nucleo'] .btn {
|
||
box-shadow: 0 2px 4px rgba(44, 30, 16, 0.20), inset 0 1px 0 rgba(255, 255, 255, 0.35);
|
||
}
|
||
|
||
[data-theme='nucleo'] .btn-surface {
|
||
background: #c8a860;
|
||
color: #2c1e10;
|
||
}
|
||
[data-theme='nucleo'] .btn-surface:hover { background: #b89448; }
|
||
|
||
[data-theme='nucleo'] .btn-ghost:hover {
|
||
background: #c8a860;
|
||
color: #2c1e10;
|
||
}
|
||
|
||
[data-theme='nucleo'] .player-btn,
|
||
[data-theme='nucleo'] .player-btn-primary {
|
||
box-shadow: 0 2px 5px rgba(44, 30, 16, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.4);
|
||
}
|
||
|
||
/* ─── Psychowave — Synthwave / Retrowave ─── */
|
||
[data-theme='psychowave'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23b09ee0%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* ── Palette ── */
|
||
--ctp-crust: #0d0c1a;
|
||
--ctp-mantle: #110f22;
|
||
--ctp-base: #161428;
|
||
--ctp-surface0: #1f1c38;
|
||
--ctp-surface1: #2a2750;
|
||
--ctp-surface2: #383468;
|
||
--ctp-overlay0: #4a4580;
|
||
--ctp-overlay1: #6460a8;
|
||
--ctp-overlay2: #8078c8;
|
||
/* Text */
|
||
--ctp-text: #e6e0f6;
|
||
--ctp-subtext1: #b09ee0;
|
||
--ctp-subtext0: #8878c0;
|
||
/* Accents — muted synthwave palette */
|
||
--ctp-mauve: #a06ae0; /* soft violet — primary accent */
|
||
--ctp-lavender: #7878d8; /* muted indigo — gradient end */
|
||
--ctp-pink: #c060a8; /* dusty rose */
|
||
--ctp-flamingo: #c07090;
|
||
--ctp-rosewater: #c89090;
|
||
--ctp-blue: #58a8e8; /* steel blue */
|
||
--ctp-sapphire: #4880c8;
|
||
--ctp-sky: #60c0d8;
|
||
--ctp-teal: #40a8a8;
|
||
--ctp-green: #58c878; /* soft mint green */
|
||
--ctp-yellow: #c8a848; /* muted gold */
|
||
--ctp-peach: #c87848;
|
||
--ctp-maroon: #c05868;
|
||
--ctp-red: #b04060;
|
||
|
||
/* ── Semantic tokens ── */
|
||
--bg-app: #161428;
|
||
--bg-sidebar: #110f22;
|
||
--bg-card: #1f1c38;
|
||
--bg-hover: #2a2750;
|
||
--bg-player: #0d0c1a;
|
||
--bg-glass: rgba(22, 20, 40, 0.85);
|
||
--accent: #a06ae0;
|
||
--accent-dim: rgba(160, 106, 224, 0.12);
|
||
--accent-glow: rgba(160, 106, 224, 0.30);
|
||
--text-primary: #e6e0f6;
|
||
--text-secondary:#b09ee0;
|
||
--text-muted: #706898;
|
||
--border: #383468;
|
||
--border-subtle: #1f1c38;
|
||
--positive: #58c878;
|
||
--warning: #c8a848;
|
||
--danger: #b04060;
|
||
}
|
||
|
||
/* ─── Gruvbox Dark Hard ─── */
|
||
[data-theme='gruvbox-dark-hard'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ebdbb2%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
--ctp-crust: #1d2021;
|
||
--ctp-mantle: #1d2021;
|
||
--ctp-base: #282828;
|
||
--ctp-surface0: #3c3836;
|
||
--ctp-surface1: #504945;
|
||
--ctp-surface2: #665c54;
|
||
--ctp-overlay0: #7c6f64;
|
||
--ctp-overlay1: #928374;
|
||
--ctp-overlay2: #a89984;
|
||
--ctp-text: #ebdbb2;
|
||
--ctp-subtext1: #d5c4a1;
|
||
--ctp-subtext0: #bdae93;
|
||
--ctp-mauve: #d3869b;
|
||
--ctp-lavender: #d3869b;
|
||
--ctp-pink: #d3869b;
|
||
--ctp-flamingo: #fb4934;
|
||
--ctp-rosewater: #fb4934;
|
||
--ctp-blue: #83a598;
|
||
--ctp-sapphire: #83a598;
|
||
--ctp-sky: #8ec07c;
|
||
--ctp-teal: #8ec07c;
|
||
--ctp-green: #b8bb26;
|
||
--ctp-yellow: #fabd2f;
|
||
--ctp-peach: #fe8019;
|
||
--ctp-maroon: #fb4934;
|
||
--ctp-red: #cc241d;
|
||
|
||
--bg-app: #1d2021;
|
||
--bg-sidebar: #141617;
|
||
--bg-card: #3c3836;
|
||
--bg-hover: #504945;
|
||
--bg-player: #1d2021;
|
||
--bg-glass: rgba(29, 32, 33, 0.82);
|
||
--accent: #fabd2f;
|
||
--accent-dim: rgba(250, 189, 47, 0.15);
|
||
--accent-glow: rgba(250, 189, 47, 0.3);
|
||
--text-primary: #ebdbb2;
|
||
--text-secondary:#d5c4a1;
|
||
--text-muted: #928374;
|
||
--border: #504945;
|
||
--border-subtle: #3c3836;
|
||
--border-dropdown: #665c54;
|
||
--shadow-dropdown: rgba(0, 0, 0, 0.6);
|
||
--positive: #b8bb26;
|
||
--warning: #fabd2f;
|
||
--danger: #fb4934;
|
||
}
|
||
|
||
/* ─── Gruvbox Dark Medium ─── */
|
||
[data-theme='gruvbox-dark-medium'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ebdbb2%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
--ctp-crust: #1d2021;
|
||
--ctp-mantle: #1d2021;
|
||
--ctp-base: #282828;
|
||
--ctp-surface0: #3c3836;
|
||
--ctp-surface1: #504945;
|
||
--ctp-surface2: #665c54;
|
||
--ctp-overlay0: #7c6f64;
|
||
--ctp-overlay1: #928374;
|
||
--ctp-overlay2: #a89984;
|
||
--ctp-text: #ebdbb2;
|
||
--ctp-subtext1: #d5c4a1;
|
||
--ctp-subtext0: #bdae93;
|
||
--ctp-mauve: #d3869b;
|
||
--ctp-lavender: #d3869b;
|
||
--ctp-pink: #d3869b;
|
||
--ctp-flamingo: #fb4934;
|
||
--ctp-rosewater: #fb4934;
|
||
--ctp-blue: #83a598;
|
||
--ctp-sapphire: #83a598;
|
||
--ctp-sky: #8ec07c;
|
||
--ctp-teal: #8ec07c;
|
||
--ctp-green: #b8bb26;
|
||
--ctp-yellow: #fabd2f;
|
||
--ctp-peach: #fe8019;
|
||
--ctp-maroon: #fb4934;
|
||
--ctp-red: #cc241d;
|
||
|
||
--bg-app: #282828;
|
||
--bg-sidebar: #1d2021;
|
||
--bg-card: #3c3836;
|
||
--bg-hover: #504945;
|
||
--bg-player: #1d2021;
|
||
--bg-glass: rgba(40, 40, 40, 0.82);
|
||
--accent: #fabd2f;
|
||
--accent-dim: rgba(250, 189, 47, 0.15);
|
||
--accent-glow: rgba(250, 189, 47, 0.3);
|
||
--text-primary: #ebdbb2;
|
||
--text-secondary:#d5c4a1;
|
||
--text-muted: #928374;
|
||
--border: #504945;
|
||
--border-subtle: #3c3836;
|
||
--border-dropdown: #665c54;
|
||
--shadow-dropdown: rgba(0, 0, 0, 0.55);
|
||
--positive: #b8bb26;
|
||
--warning: #fabd2f;
|
||
--danger: #fb4934;
|
||
}
|
||
|
||
/* ─── Gruvbox Dark Soft ─── */
|
||
[data-theme='gruvbox-dark-soft'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ebdbb2%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
--ctp-crust: #1d2021;
|
||
--ctp-mantle: #282828;
|
||
--ctp-base: #32302f;
|
||
--ctp-surface0: #3c3836;
|
||
--ctp-surface1: #504945;
|
||
--ctp-surface2: #665c54;
|
||
--ctp-overlay0: #7c6f64;
|
||
--ctp-overlay1: #928374;
|
||
--ctp-overlay2: #a89984;
|
||
--ctp-text: #ebdbb2;
|
||
--ctp-subtext1: #d5c4a1;
|
||
--ctp-subtext0: #bdae93;
|
||
--ctp-mauve: #d3869b;
|
||
--ctp-lavender: #d3869b;
|
||
--ctp-pink: #d3869b;
|
||
--ctp-flamingo: #fb4934;
|
||
--ctp-rosewater: #fb4934;
|
||
--ctp-blue: #83a598;
|
||
--ctp-sapphire: #83a598;
|
||
--ctp-sky: #8ec07c;
|
||
--ctp-teal: #8ec07c;
|
||
--ctp-green: #b8bb26;
|
||
--ctp-yellow: #fabd2f;
|
||
--ctp-peach: #fe8019;
|
||
--ctp-maroon: #fb4934;
|
||
--ctp-red: #cc241d;
|
||
|
||
--bg-app: #32302f;
|
||
--bg-sidebar: #282828;
|
||
--bg-card: #45403d;
|
||
--bg-hover: #504945;
|
||
--bg-player: #282828;
|
||
--bg-glass: rgba(50, 48, 47, 0.82);
|
||
--accent: #fabd2f;
|
||
--accent-dim: rgba(250, 189, 47, 0.15);
|
||
--accent-glow: rgba(250, 189, 47, 0.3);
|
||
--text-primary: #ebdbb2;
|
||
--text-secondary:#d5c4a1;
|
||
--text-muted: #928374;
|
||
--border: #504945;
|
||
--border-subtle: #3c3836;
|
||
--border-dropdown: #665c54;
|
||
--shadow-dropdown: rgba(0, 0, 0, 0.5);
|
||
--positive: #b8bb26;
|
||
--warning: #fabd2f;
|
||
--danger: #fb4934;
|
||
}
|
||
|
||
/* ─── Gruvbox Light Hard ─── */
|
||
[data-theme='gruvbox-light-hard'] {
|
||
color-scheme: light;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23504945%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
--ctp-crust: #ebdbb2;
|
||
--ctp-mantle: #f2e5bc;
|
||
--ctp-base: #f9f5d7;
|
||
--ctp-surface0: #f2e5bc;
|
||
--ctp-surface1: #ebdbb2;
|
||
--ctp-surface2: #d5c4a1;
|
||
--ctp-overlay0: #bdae93;
|
||
--ctp-overlay1: #a89984;
|
||
--ctp-overlay2: #928374;
|
||
--ctp-text: #3c3836;
|
||
--ctp-subtext1: #504945;
|
||
--ctp-subtext0: #665c54;
|
||
--ctp-mauve: #8f3f71;
|
||
--ctp-lavender: #8f3f71;
|
||
--ctp-pink: #8f3f71;
|
||
--ctp-flamingo: #9d0006;
|
||
--ctp-rosewater: #cc241d;
|
||
--ctp-blue: #076678;
|
||
--ctp-sapphire: #076678;
|
||
--ctp-sky: #427b58;
|
||
--ctp-teal: #427b58;
|
||
--ctp-green: #79740e;
|
||
--ctp-yellow: #b57614;
|
||
--ctp-peach: #af3a03;
|
||
--ctp-maroon: #9d0006;
|
||
--ctp-red: #cc241d;
|
||
|
||
--bg-app: #f9f5d7;
|
||
--bg-sidebar: #f2e5bc;
|
||
--bg-card: #f2e5bc;
|
||
--bg-hover: #ebdbb2;
|
||
--bg-player: #f2e5bc;
|
||
--bg-glass: rgba(249, 245, 215, 0.9);
|
||
--accent: #b57614;
|
||
--accent-dim: rgba(181, 118, 20, 0.15);
|
||
--accent-glow: rgba(181, 118, 20, 0.25);
|
||
--text-primary: #3c3836;
|
||
--text-secondary:#504945;
|
||
--text-muted: #7c6f64;
|
||
--border: #d5c4a1;
|
||
--border-subtle: #ebdbb2;
|
||
--positive: #79740e;
|
||
--warning: #b57614;
|
||
--danger: #9d0006;
|
||
}
|
||
|
||
/* ─── Gruvbox Light Medium ─── */
|
||
[data-theme='gruvbox-light-medium'] {
|
||
color-scheme: light;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23504945%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
--ctp-crust: #ebdbb2;
|
||
--ctp-mantle: #f2e5bc;
|
||
--ctp-base: #fbf1c7;
|
||
--ctp-surface0: #f2e5bc;
|
||
--ctp-surface1: #ebdbb2;
|
||
--ctp-surface2: #d5c4a1;
|
||
--ctp-overlay0: #bdae93;
|
||
--ctp-overlay1: #a89984;
|
||
--ctp-overlay2: #928374;
|
||
--ctp-text: #3c3836;
|
||
--ctp-subtext1: #504945;
|
||
--ctp-subtext0: #665c54;
|
||
--ctp-mauve: #8f3f71;
|
||
--ctp-lavender: #8f3f71;
|
||
--ctp-pink: #8f3f71;
|
||
--ctp-flamingo: #9d0006;
|
||
--ctp-rosewater: #cc241d;
|
||
--ctp-blue: #076678;
|
||
--ctp-sapphire: #076678;
|
||
--ctp-sky: #427b58;
|
||
--ctp-teal: #427b58;
|
||
--ctp-green: #79740e;
|
||
--ctp-yellow: #b57614;
|
||
--ctp-peach: #af3a03;
|
||
--ctp-maroon: #9d0006;
|
||
--ctp-red: #cc241d;
|
||
|
||
--bg-app: #fbf1c7;
|
||
--bg-sidebar: #f2e5bc;
|
||
--bg-card: #f2e5bc;
|
||
--bg-hover: #ebdbb2;
|
||
--bg-player: #f2e5bc;
|
||
--bg-glass: rgba(251, 241, 199, 0.9);
|
||
--accent: #b57614;
|
||
--accent-dim: rgba(181, 118, 20, 0.15);
|
||
--accent-glow: rgba(181, 118, 20, 0.25);
|
||
--text-primary: #3c3836;
|
||
--text-secondary:#504945;
|
||
--text-muted: #7c6f64;
|
||
--border: #d5c4a1;
|
||
--border-subtle: #ebdbb2;
|
||
--positive: #79740e;
|
||
--warning: #b57614;
|
||
--danger: #9d0006;
|
||
}
|
||
|
||
/* ─── Gruvbox Light Soft ─── */
|
||
[data-theme='gruvbox-light-soft'] {
|
||
color-scheme: light;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23504945%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
--ctp-crust: #ebdbb2;
|
||
--ctp-mantle: #f2e5bc;
|
||
--ctp-base: #f2e5bc;
|
||
--ctp-surface0: #ebdbb2;
|
||
--ctp-surface1: #d5c4a1;
|
||
--ctp-surface2: #bdae93;
|
||
--ctp-overlay0: #a89984;
|
||
--ctp-overlay1: #928374;
|
||
--ctp-overlay2: #7c6f64;
|
||
--ctp-text: #3c3836;
|
||
--ctp-subtext1: #504945;
|
||
--ctp-subtext0: #665c54;
|
||
--ctp-mauve: #8f3f71;
|
||
--ctp-lavender: #8f3f71;
|
||
--ctp-pink: #8f3f71;
|
||
--ctp-flamingo: #9d0006;
|
||
--ctp-rosewater: #cc241d;
|
||
--ctp-blue: #076678;
|
||
--ctp-sapphire: #076678;
|
||
--ctp-sky: #427b58;
|
||
--ctp-teal: #427b58;
|
||
--ctp-green: #79740e;
|
||
--ctp-yellow: #b57614;
|
||
--ctp-peach: #af3a03;
|
||
--ctp-maroon: #9d0006;
|
||
--ctp-red: #cc241d;
|
||
|
||
--bg-app: #f2e5bc;
|
||
--bg-sidebar: #ebdbb2;
|
||
--bg-card: #ebdbb2;
|
||
--bg-hover: #d5c4a1;
|
||
--bg-player: #ebdbb2;
|
||
--bg-glass: rgba(242, 229, 188, 0.9);
|
||
--accent: #b57614;
|
||
--accent-dim: rgba(181, 118, 20, 0.15);
|
||
--accent-glow: rgba(181, 118, 20, 0.25);
|
||
--text-primary: #3c3836;
|
||
--text-secondary:#504945;
|
||
--text-muted: #7c6f64;
|
||
--border: #d5c4a1;
|
||
--border-subtle: #ebdbb2;
|
||
--positive: #79740e;
|
||
--warning: #b57614;
|
||
--danger: #9d0006;
|
||
}
|
||
|
||
/* ─── Lambda 17 — Half-Life / City 17 ─── */
|
||
/* HEV orange + Combine Overwatch teal + City 17 concrete */
|
||
[data-theme='lambda-17'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ff9d00%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* City 17 — warm concrete dark, not pure black */
|
||
--ctp-crust: #0c0d0e;
|
||
--ctp-mantle: #111315;
|
||
--ctp-base: #171a1c;
|
||
--ctp-surface0: #1f2326;
|
||
--ctp-surface1: #282d30;
|
||
--ctp-surface2: #33393d;
|
||
--ctp-overlay0: #4e5660;
|
||
--ctp-overlay1: #718090;
|
||
--ctp-overlay2: #96a8b4;
|
||
--ctp-text: #e4ddd0; /* concrete dust off-white */
|
||
--ctp-subtext1: #c8c0b0;
|
||
--ctp-subtext0: #96a8b4;
|
||
|
||
/* Half-Life palette */
|
||
--ctp-peach: #ff9d00; /* HEV suit orange */
|
||
--ctp-mauve: #ff9d00;
|
||
--ctp-lavender: #ffb84d;
|
||
--ctp-flamingo: #ffb84d;
|
||
--ctp-rosewater:#ffd080;
|
||
--ctp-teal: #00c8c0; /* Combine Overwatch scanner teal */
|
||
--ctp-sky: #00c8c0;
|
||
--ctp-sapphire: #0090a0;
|
||
--ctp-blue: #0060a0; /* G-Man suit navy */
|
||
--ctp-green: #78c800; /* Headcrab / barnacle green */
|
||
--ctp-yellow: #f0d000; /* radiation warning yellow */
|
||
--ctp-red: #e03020; /* danger / health critical */
|
||
--ctp-maroon: #b82010;
|
||
--ctp-pink: #cc44aa; /* Xen alien purple-pink */
|
||
|
||
--bg-app: #171a1c; /* City 17 corridor concrete */
|
||
--bg-sidebar: #111315; /* Combine facility wall */
|
||
--bg-card: #1f2326;
|
||
--bg-hover: rgba(255, 157, 0, 0.08);
|
||
--bg-player: #0c0d0e; /* HEV suit display dark */
|
||
--bg-glass: rgba(17, 19, 21, 0.95);
|
||
|
||
--accent: #ff9d00; /* HEV orange */
|
||
--accent-dim: rgba(255, 157, 0, 0.13);
|
||
--accent-glow: rgba(255, 157, 0, 0.45);
|
||
--volume-accent:#00c8c0; /* Combine teal for volume */
|
||
|
||
--text-primary: #e4ddd0; /* concrete dust off-white */
|
||
--text-secondary:#00c8c0; /* Combine Overwatch teal */
|
||
--text-muted: #4e5660;
|
||
--border: #2a3035;
|
||
--border-subtle: #1f2326;
|
||
--shadow-dropdown: rgba(0, 0, 0, 0.85);
|
||
|
||
--positive: #78c800;
|
||
--warning: #ff9d00;
|
||
--danger: #e03020;
|
||
|
||
--radius-sm: 0px;
|
||
--radius-md: 1px;
|
||
--radius-lg: 2px;
|
||
--radius-xl: 3px;
|
||
}
|
||
|
||
/* Sidebar = Combine control panel: horizontal panel lines */
|
||
[data-theme='lambda-17'] .sidebar {
|
||
border-right: 2px solid #ff9d00;
|
||
box-shadow: 2px 0 12px rgba(255, 157, 0, 0.08);
|
||
background-image: repeating-linear-gradient(
|
||
0deg,
|
||
transparent,
|
||
transparent 28px,
|
||
rgba(0, 200, 192, 0.04) 28px,
|
||
rgba(0, 200, 192, 0.04) 29px
|
||
);
|
||
}
|
||
|
||
/* Player bar = HEV suit monitor: orange top + teal secondary */
|
||
[data-theme='lambda-17'] .player-bar {
|
||
border-top: 2px solid #ff9d00;
|
||
box-shadow:
|
||
0 -1px 0 rgba(0, 200, 192, 0.3),
|
||
0 -6px 24px rgba(255, 157, 0, 0.07);
|
||
}
|
||
|
||
/* Track name = HEV announcement style */
|
||
[data-theme='lambda-17'] .player-track-name {
|
||
color: #ff9d00;
|
||
text-shadow: 0 0 10px rgba(255, 157, 0, 0.65), 0 0 24px rgba(255, 157, 0, 0.25);
|
||
text-transform: uppercase;
|
||
font-weight: 700;
|
||
letter-spacing: 0.06em;
|
||
}
|
||
|
||
/* Artist = Combine Overwatch voice color */
|
||
[data-theme='lambda-17'] .player-track-artist { color: #00c8c0; }
|
||
|
||
/* Queue album = Xen purple */
|
||
[data-theme='lambda-17'] .queue-meta-album { color: #cc44aa; }
|
||
|
||
/* Active nav: HEV orange gradient */
|
||
[data-theme='lambda-17'] .nav-link.active {
|
||
background: linear-gradient(90deg, rgba(255,157,0,0.16) 0%, transparent 100%);
|
||
color: #ff9d00;
|
||
}
|
||
[data-theme='lambda-17'] .nav-link.active::before {
|
||
width: 3px;
|
||
box-shadow: 2px 0 10px rgba(255,157,0,0.6);
|
||
}
|
||
|
||
/* Buttons */
|
||
[data-theme='lambda-17'] .btn-primary {
|
||
background: #ff9d00;
|
||
color: #0c0d0e;
|
||
font-weight: 700;
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.06em;
|
||
border: none;
|
||
border-radius: 1px;
|
||
}
|
||
[data-theme='lambda-17'] .btn-primary:hover { background: #ffb030; }
|
||
|
||
/* Queue active = HEV orange lambda bar */
|
||
[data-theme='lambda-17'] .queue-item.active {
|
||
background: rgba(255, 157, 0, 0.08);
|
||
box-shadow: inset 3px 0 0 #ff9d00;
|
||
}
|
||
[data-theme='lambda-17'] .np-queue-item.active { background: rgba(255,157,0,0.07); }
|
||
[data-theme='lambda-17'] .np-queue-item-active {
|
||
color: #ff9d00;
|
||
text-shadow: 0 0 8px rgba(255,157,0,0.55);
|
||
}
|
||
|
||
/* Now-playing active track = Combine teal */
|
||
[data-theme='lambda-17'] .np-album-track.active .np-album-track-title,
|
||
[data-theme='lambda-17'] .np-album-track.active .np-album-track-num {
|
||
color: #00c8c0;
|
||
text-shadow: 0 0 8px rgba(0,200,192,0.5);
|
||
}
|
||
|
||
/* Hover rows */
|
||
[data-theme='lambda-17'] .track-row:hover,
|
||
[data-theme='lambda-17'] .track-row.context-active {
|
||
background: rgba(255,157,0,0.07) !important;
|
||
box-shadow: inset 3px 0 0 #ff9d00;
|
||
}
|
||
[data-theme='lambda-17'] .queue-item:hover,
|
||
[data-theme='lambda-17'] .queue-item.context-active {
|
||
background: rgba(255,157,0,0.07) !important;
|
||
box-shadow: inset 3px 0 0 #ff9d00;
|
||
}
|
||
[data-theme='lambda-17'] .np-queue-item:hover,
|
||
[data-theme='lambda-17'] .np-queue-item.context-active {
|
||
background: rgba(255,157,0,0.07);
|
||
box-shadow: inset 2px 0 0 #ff9d00;
|
||
}
|
||
[data-theme='lambda-17'] .artist-row:hover { background: rgba(255,157,0,0.06); box-shadow: inset 3px 0 0 #ff9d00; }
|
||
[data-theme='lambda-17'] .playlist-row:hover { background: rgba(255,157,0,0.06); box-shadow: inset 3px 0 0 #ff9d00; }
|
||
|
||
/* Settings tabs: Combine teal when active */
|
||
[data-theme='lambda-17'] .settings-tab:hover { background: rgba(255,157,0,0.07); color: #ff9d00; }
|
||
[data-theme='lambda-17'] .settings-tab.active {
|
||
background: rgba(0, 200, 192, 0.08);
|
||
color: #00c8c0;
|
||
box-shadow: inset 3px 0 0 #00c8c0;
|
||
}
|
||
|
||
/* Queue tabs */
|
||
[data-theme='lambda-17'] .queue-tab-btn:hover { background: rgba(255,157,0,0.07); color: #ff9d00; }
|
||
|
||
/* Dropdowns */
|
||
[data-theme='lambda-17'] .custom-select-trigger:hover { background: rgba(255,157,0,0.07); }
|
||
[data-theme='lambda-17'] .custom-select-option:hover {
|
||
background: rgba(255,157,0,0.1) !important;
|
||
color: #ff9d00 !important;
|
||
}
|
||
|
||
/* Artist pills = headcrab green */
|
||
[data-theme='lambda-17'] .artist-ext-link:hover {
|
||
background: rgba(120,200,0,0.1);
|
||
color: #78c800 !important;
|
||
border-color: rgba(120,200,0,0.4) !important;
|
||
}
|
||
|
||
/* Connection indicators */
|
||
[data-theme='lambda-17'] .connection-type,
|
||
[data-theme='lambda-17'] .connection-server { color: #00c8c0; }
|
||
|
||
/* ─── Guild Wars 1 — Tyria ─── */
|
||
[data-theme='gw1'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23c8960c%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* Palette — aged Tyrian stone, ornate gold, Searing crimson */
|
||
--ctp-crust: #060402;
|
||
--ctp-mantle: #0a0806;
|
||
--ctp-base: #0e0b08;
|
||
--ctp-surface0: #1a1208;
|
||
--ctp-surface1: #261b0c;
|
||
--ctp-surface2: #342510;
|
||
--ctp-overlay0: #5a4830;
|
||
--ctp-overlay1: #7a6448;
|
||
--ctp-overlay2: #9a8060;
|
||
--ctp-text: #f0e4c4;
|
||
--ctp-subtext1: #d4c49a;
|
||
--ctp-subtext0: #b0a07a;
|
||
--ctp-mauve: #c8960c;
|
||
--ctp-lavender: #e8b820;
|
||
--ctp-pink: #c0321a;
|
||
--ctp-flamingo: #d4780c;
|
||
--ctp-rosewater:#f0e4c4;
|
||
--ctp-green: #5a8030;
|
||
--ctp-teal: #3a6858;
|
||
--ctp-sky: #7aaccc;
|
||
--ctp-blue: #3a6898;
|
||
--ctp-sapphire: #3a6898;
|
||
--ctp-yellow: #e8c840;
|
||
--ctp-peach: #d4780c;
|
||
--ctp-maroon: #8b1515;
|
||
--ctp-red: #c0321a;
|
||
|
||
--bg-app: #0e0b08;
|
||
--bg-sidebar: #0a0806;
|
||
--bg-card: #1a1208;
|
||
--bg-hover: #261b0c;
|
||
--bg-player: #060402;
|
||
--bg-glass: rgba(14, 11, 8, 0.88);
|
||
--accent: #c8960c;
|
||
--accent-dim: rgba(200, 150, 12, 0.15);
|
||
--accent-glow: rgba(200, 150, 12, 0.35);
|
||
--text-primary: #f0e4c4;
|
||
--text-secondary:#9a8060;
|
||
--text-muted: #a08858;
|
||
--border: rgba(200, 150, 12, 0.28);
|
||
--border-subtle: rgba(200, 150, 12, 0.10);
|
||
--border-dropdown: rgba(200, 150, 12, 0.35);
|
||
--shadow-dropdown: rgba(0, 0, 0, 0.85);
|
||
--positive: #5a8030;
|
||
--warning: #d4780c;
|
||
--danger: #c0321a;
|
||
--radius-sm: 2px;
|
||
--radius-md: 3px;
|
||
--radius-lg: 4px;
|
||
}
|
||
|
||
/* App shell — solid dark stone base (grid moved to sidebar-only for perf) */
|
||
|
||
/* Sidebar — worn leather with faint horizontal stone lines */
|
||
[data-theme='gw1'] .sidebar {
|
||
border-right: 1px solid rgba(200,150,12,0.35);
|
||
background: linear-gradient(180deg, #0c0906 0%, #080604 100%);
|
||
background-image: repeating-linear-gradient(
|
||
0deg,
|
||
rgba(200,150,12,0.04) 0px,
|
||
transparent 1px,
|
||
transparent 48px,
|
||
rgba(200,150,12,0.04) 49px
|
||
);
|
||
}
|
||
|
||
/* Player bar — the GW1 skill bar: deepest black, gold top border */
|
||
[data-theme='gw1'] .player-bar {
|
||
background: #060402;
|
||
border-top: 2px solid #c8960c;
|
||
box-shadow: 0 -6px 28px rgba(200,150,12,0.14), 0 -1px 0 rgba(0,0,0,0.9);
|
||
}
|
||
|
||
/* Track name — Tyrian item-name gold glow, Cinzel serif */
|
||
[data-theme='gw1'] .player-track-name {
|
||
color: #e8b820;
|
||
text-shadow: 0 0 10px rgba(232,184,32,0.55), 0 0 22px rgba(200,150,12,0.25);
|
||
font-family: 'Cinzel', 'Palatino Linotype', Georgia, serif;
|
||
letter-spacing: 0.03em;
|
||
}
|
||
|
||
/* Artist name — faded parchment, not competing with gold */
|
||
[data-theme='gw1'] .player-artist-name {
|
||
color: #9a8060;
|
||
}
|
||
|
||
/* Nav active — left gold bar like GW1 menu selection */
|
||
[data-theme='gw1'] .nav-link.active {
|
||
background: linear-gradient(90deg, rgba(200,150,12,0.20) 0%, transparent 100%);
|
||
border-left: 3px solid #c8960c;
|
||
color: #e8b820;
|
||
}
|
||
|
||
[data-theme='gw1'] .nav-link:hover:not(.active) {
|
||
background: linear-gradient(90deg, rgba(200,150,12,0.09) 0%, transparent 100%);
|
||
border-left: 3px solid rgba(200,150,12,0.35);
|
||
}
|
||
|
||
/* Content header — ornate double gold rule */
|
||
[data-theme='gw1'] .content-header {
|
||
border-bottom: 1px solid rgba(200,150,12,0.22);
|
||
position: relative;
|
||
}
|
||
|
||
[data-theme='gw1'] .content-header::after {
|
||
content: '';
|
||
position: absolute;
|
||
bottom: -3px;
|
||
left: 0;
|
||
right: 0;
|
||
height: 1px;
|
||
background: linear-gradient(90deg, transparent 0%, rgba(200,150,12,0.7) 20%, rgba(232,184,32,0.9) 50%, rgba(200,150,12,0.7) 80%, transparent 100%);
|
||
}
|
||
|
||
/* Cards — dark leather panels with subtle gold frame */
|
||
[data-theme='gw1'] .album-card,
|
||
[data-theme='gw1'] .artist-card {
|
||
box-shadow: inset 0 0 0 1px rgba(200,150,12,0.18);
|
||
}
|
||
|
||
[data-theme='gw1'] .album-card:hover,
|
||
[data-theme='gw1'] .artist-card:hover {
|
||
box-shadow: inset 0 0 0 1px rgba(200,150,12,0.55), 0 4px 20px rgba(200,150,12,0.18);
|
||
}
|
||
|
||
/* Queue / track rows — gold left accent bar on hover */
|
||
[data-theme='gw1'] .track-row:hover,
|
||
[data-theme='gw1'] .queue-item:hover {
|
||
box-shadow: inset 2px 0 0 #c8960c;
|
||
background: rgba(200,150,12,0.08);
|
||
}
|
||
|
||
/* Primary play button — hammered gold like GW1 UI buttons */
|
||
[data-theme='gw1'] .player-btn-primary {
|
||
background: linear-gradient(180deg, #e8b820 0%, #c8960c 50%, #a87808 100%);
|
||
color: #060402;
|
||
box-shadow: 0 0 14px rgba(200,150,12,0.45);
|
||
border: 1px solid #906606;
|
||
}
|
||
|
||
[data-theme='gw1'] .player-btn-primary:hover {
|
||
background: linear-gradient(180deg, #f0c830 0%, #d8a818 50%, #b88818 100%);
|
||
box-shadow: 0 0 22px rgba(200,150,12,0.65);
|
||
}
|
||
|
||
/* btn-primary (play album, etc.) */
|
||
[data-theme='gw1'] .btn-primary {
|
||
background: linear-gradient(180deg, #e8b820 0%, #c8960c 50%, #a87808 100%);
|
||
color: #060402;
|
||
border: 1px solid #906606;
|
||
}
|
||
|
||
[data-theme='gw1'] .btn-primary:hover {
|
||
background: linear-gradient(180deg, #f0c830 0%, #d8a818 50%, #b88818 100%);
|
||
}
|
||
|
||
/* Hero play button — Cinzel font, gold, no flash on hover */
|
||
[data-theme='gw1'] .hero-play-btn {
|
||
background: linear-gradient(180deg, #e8b820 0%, #c8960c 50%, #a87808 100%);
|
||
color: #060402;
|
||
border: 1px solid #906606;
|
||
box-shadow: 0 2px 14px rgba(200,150,12,0.45);
|
||
font-family: 'Cinzel', Georgia, serif;
|
||
letter-spacing: 0.05em;
|
||
transition: filter var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
|
||
}
|
||
|
||
[data-theme='gw1'] .hero-play-btn:hover {
|
||
background: linear-gradient(180deg, #f0c830 0%, #d8a818 50%, #b88818 100%);
|
||
box-shadow: 0 4px 22px rgba(200,150,12,0.65);
|
||
transform: scale(1.02);
|
||
}
|
||
|
||
/* Album card overlay play button */
|
||
[data-theme='gw1'] .album-card-details-btn {
|
||
background: linear-gradient(180deg, #e8b820 0%, #c8960c 50%, #a87808 100%);
|
||
color: #060402;
|
||
border: 1px solid #906606;
|
||
box-shadow: 0 2px 10px rgba(200,150,12,0.5);
|
||
}
|
||
|
||
/* Scrollbar — dark stone with gold thumb */
|
||
[data-theme='gw1'] ::-webkit-scrollbar {
|
||
width: 6px;
|
||
height: 6px;
|
||
}
|
||
|
||
[data-theme='gw1'] ::-webkit-scrollbar-track {
|
||
background: #0a0806;
|
||
border-left: 1px solid rgba(200,150,12,0.08);
|
||
}
|
||
|
||
[data-theme='gw1'] ::-webkit-scrollbar-thumb {
|
||
background: linear-gradient(180deg, #c8960c, #a87808);
|
||
border-radius: 3px;
|
||
}
|
||
|
||
[data-theme='gw1'] ::-webkit-scrollbar-thumb:hover {
|
||
background: #e8b820;
|
||
}
|
||
|
||
|
||
/* ─── Grand Theft Audio — GTA V / Los Santos at Night ─── */
|
||
/* Money green + Wanted-level gold + LS asphalt dark */
|
||
[data-theme='grand-theft-audio'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%2357b05a%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* LS asphalt — almost black with a warm urban undertone */
|
||
--ctp-crust: #030303;
|
||
--ctp-mantle: #080808;
|
||
--ctp-base: #0e0e0e;
|
||
--ctp-surface0: #161616;
|
||
--ctp-surface1: #202020;
|
||
--ctp-surface2: #2c2c2c;
|
||
--ctp-overlay0: #484848;
|
||
--ctp-overlay1: #707070;
|
||
--ctp-overlay2: #989898;
|
||
--ctp-text: #e8e8e8;
|
||
--ctp-subtext1: #c0c0c0;
|
||
--ctp-subtext0: #888888;
|
||
|
||
/* GTA palette */
|
||
--ctp-green: #57b05a; /* money green — health bar */
|
||
--ctp-mauve: #57b05a;
|
||
--ctp-teal: #3d9e40;
|
||
--ctp-yellow: #ffd700; /* wanted stars — 5-star gold */
|
||
--ctp-peach: #ffb800; /* Los Santos Customs orange */
|
||
--ctp-flamingo: #ffb800;
|
||
--ctp-rosewater:#ffb800;
|
||
--ctp-red: #e02020; /* wasted / busted red */
|
||
--ctp-maroon: #c01818;
|
||
--ctp-blue: #4a9fd4; /* armor bar blue */
|
||
--ctp-sapphire: #3a8fc4;
|
||
--ctp-sky: #4a9fd4;
|
||
--ctp-lavender: #57b05a;
|
||
--ctp-pink: #e02020;
|
||
|
||
--bg-app: #0e0e0e;
|
||
--bg-sidebar: #080808; /* minimap dark */
|
||
--bg-card: #161616;
|
||
--bg-hover: rgba(87, 176, 90, 0.08);
|
||
--bg-player: #030303; /* HUD strip */
|
||
--bg-glass: rgba(8, 8, 8, 0.95);
|
||
|
||
--accent: #57b05a; /* money green */
|
||
--accent-dim: rgba(87, 176, 90, 0.14);
|
||
--accent-glow: rgba(87, 176, 90, 0.45);
|
||
--volume-accent:#ffd700; /* wanted-gold for volume knob */
|
||
|
||
--text-primary: #e8e8e8;
|
||
--text-secondary:#ffd700; /* wanted-level gold — the key differentiator */
|
||
--text-muted: #484848;
|
||
--border: #242424;
|
||
--border-subtle: #161616;
|
||
--shadow-dropdown: rgba(0, 0, 0, 0.9);
|
||
|
||
--radius-sm: 0px;
|
||
--radius-md: 2px;
|
||
--radius-lg: 3px;
|
||
--radius-xl: 4px;
|
||
}
|
||
|
||
/* Sidebar = minimap panel: dark border + subtle city-grid stripe */
|
||
[data-theme='grand-theft-audio'] .sidebar {
|
||
border-right: 2px solid #57b05a;
|
||
background-image: repeating-linear-gradient(
|
||
135deg,
|
||
transparent,
|
||
transparent 40px,
|
||
rgba(87, 176, 90, 0.018) 40px,
|
||
rgba(87, 176, 90, 0.018) 41px
|
||
);
|
||
}
|
||
|
||
/* Player bar = GTA HUD strip: green health line + gold secondary */
|
||
[data-theme='grand-theft-audio'] .player-bar {
|
||
border-top: 2px solid #57b05a;
|
||
box-shadow:
|
||
0 -1px 0 rgba(255, 215, 0, 0.25),
|
||
0 -8px 30px rgba(87, 176, 90, 0.08);
|
||
}
|
||
|
||
/* Track name = money counter — green + uppercase */
|
||
[data-theme='grand-theft-audio'] .player-track-name {
|
||
color: #57b05a;
|
||
text-shadow: 0 0 10px rgba(87, 176, 90, 0.6), 0 0 24px rgba(87, 176, 90, 0.25);
|
||
text-transform: uppercase;
|
||
font-weight: 800;
|
||
letter-spacing: 0.06em;
|
||
}
|
||
|
||
/* Artist = wanted-gold, like the bounty/level display */
|
||
[data-theme='grand-theft-audio'] .player-track-artist { color: #ffd700; }
|
||
|
||
/* Active nav link: money-green gradient + glow bar */
|
||
[data-theme='grand-theft-audio'] .nav-link.active {
|
||
background: linear-gradient(90deg, rgba(87, 176, 90, 0.18) 0%, transparent 100%);
|
||
color: #57b05a;
|
||
}
|
||
[data-theme='grand-theft-audio'] .nav-link.active::before {
|
||
width: 3px;
|
||
box-shadow: 2px 0 12px rgba(87, 176, 90, 0.6);
|
||
}
|
||
|
||
/* Buttons: blocky GTA UI style */
|
||
[data-theme='grand-theft-audio'] .btn-primary {
|
||
background: #57b05a;
|
||
color: #030303;
|
||
text-transform: uppercase;
|
||
font-weight: 800;
|
||
letter-spacing: 0.06em;
|
||
border: none;
|
||
}
|
||
[data-theme='grand-theft-audio'] .btn-primary:hover { background: #6abf6e; }
|
||
|
||
/* Queue active = health-bar green left strip */
|
||
[data-theme='grand-theft-audio'] .queue-item.active {
|
||
background: rgba(87, 176, 90, 0.08);
|
||
box-shadow: inset 3px 0 0 #57b05a;
|
||
}
|
||
[data-theme='grand-theft-audio'] .np-queue-item.active { background: rgba(87, 176, 90, 0.07); }
|
||
[data-theme='grand-theft-audio'] .np-queue-item-active {
|
||
color: #57b05a;
|
||
text-shadow: 0 0 8px rgba(87, 176, 90, 0.55);
|
||
}
|
||
|
||
/* Now-playing active track = gold (5-star wanted) */
|
||
[data-theme='grand-theft-audio'] .np-album-track.active .np-album-track-title,
|
||
[data-theme='grand-theft-audio'] .np-album-track.active .np-album-track-num {
|
||
color: #ffd700;
|
||
text-shadow: 0 0 8px rgba(255, 215, 0, 0.5);
|
||
}
|
||
|
||
/* Hover rows */
|
||
[data-theme='grand-theft-audio'] .track-row:hover,
|
||
[data-theme='grand-theft-audio'] .track-row.context-active {
|
||
background: rgba(87, 176, 90, 0.07) !important;
|
||
box-shadow: inset 3px 0 0 #57b05a;
|
||
}
|
||
[data-theme='grand-theft-audio'] .queue-item:hover,
|
||
[data-theme='grand-theft-audio'] .queue-item.context-active {
|
||
background: rgba(87, 176, 90, 0.08) !important;
|
||
box-shadow: inset 3px 0 0 #57b05a;
|
||
}
|
||
[data-theme='grand-theft-audio'] .np-queue-item:hover,
|
||
[data-theme='grand-theft-audio'] .np-queue-item.context-active {
|
||
background: rgba(87, 176, 90, 0.07);
|
||
box-shadow: inset 2px 0 0 #57b05a;
|
||
}
|
||
[data-theme='grand-theft-audio'] .artist-row:hover { background: rgba(87,176,90,0.07); box-shadow: inset 3px 0 0 #57b05a; }
|
||
[data-theme='grand-theft-audio'] .playlist-row:hover { background: rgba(87,176,90,0.07); box-shadow: inset 3px 0 0 #57b05a; }
|
||
|
||
/* Settings tabs: gold active = 5-star screen */
|
||
[data-theme='grand-theft-audio'] .settings-tab:hover { background: rgba(87,176,90,0.07); color: #57b05a; }
|
||
[data-theme='grand-theft-audio'] .settings-tab.active {
|
||
background: rgba(255, 215, 0, 0.07);
|
||
color: #ffd700;
|
||
box-shadow: inset 3px 0 0 #ffd700;
|
||
}
|
||
|
||
/* Queue tab */
|
||
[data-theme='grand-theft-audio'] .queue-tab-btn:hover { background: rgba(87,176,90,0.07); color: #57b05a; }
|
||
|
||
/* Dropdowns */
|
||
[data-theme='grand-theft-audio'] .custom-select-trigger:hover { background: rgba(87,176,90,0.07); }
|
||
[data-theme='grand-theft-audio'] .custom-select-option:hover {
|
||
background: rgba(87, 176, 90, 0.1) !important;
|
||
color: #57b05a !important;
|
||
}
|
||
|
||
/* Artist pills = LS Customs orange */
|
||
[data-theme='grand-theft-audio'] .artist-ext-link:hover {
|
||
background: rgba(255, 184, 0, 0.1);
|
||
color: #ffb800 !important;
|
||
border-color: rgba(255, 184, 0, 0.4) !important;
|
||
}
|
||
|
||
/* Queue album title = gold */
|
||
[data-theme='grand-theft-audio'] .queue-meta-album { color: #ffd700; }
|
||
|
||
/* Connection indicators */
|
||
[data-theme='grand-theft-audio'] .connection-type,
|
||
[data-theme='grand-theft-audio'] .connection-server { color: #ffd700; }
|
||
|
||
/* ─── V-Tactical ─── */
|
||
[data-theme='v-tactical'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23708599%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
--ctp-crust: #090c0e;
|
||
--ctp-mantle: #0d1114;
|
||
--ctp-base: #161c22;
|
||
--ctp-surface0: #1f2830;
|
||
--ctp-surface1: #2a3640;
|
||
--ctp-surface2: #3a4a58;
|
||
--ctp-overlay0: #526371;
|
||
--ctp-overlay1: #708599;
|
||
--ctp-overlay2: #8da4b8;
|
||
--ctp-text: #e1e9ef;
|
||
--ctp-subtext1: #b0c1d1;
|
||
--ctp-subtext0: #8da4b8;
|
||
--ctp-mauve: #ff8a00;
|
||
--ctp-lavender: #ffaa45;
|
||
--ctp-pink: #bf616a;
|
||
--ctp-flamingo: #d08770;
|
||
--ctp-rosewater:#e1e9ef;
|
||
--ctp-green: #a3be8c;
|
||
--ctp-teal: #88c0d0;
|
||
--ctp-sky: #81a1c1;
|
||
--ctp-blue: #5e81ac;
|
||
--ctp-sapphire: #5e81ac;
|
||
--ctp-yellow: #ebcb8b;
|
||
--ctp-peach: #d08770;
|
||
--ctp-maroon: #bf616a;
|
||
--ctp-red: #bf616a;
|
||
|
||
--bg-app: #161c22;
|
||
--bg-sidebar: #0d1114;
|
||
--bg-card: #1f2830;
|
||
--bg-hover: rgba(255, 138, 0, 0.1);
|
||
--bg-player: #090c0e;
|
||
--bg-glass: rgba(13, 17, 20, 0.85);
|
||
--accent: #ff8a00;
|
||
--accent-dim: rgba(255, 138, 0, 0.15);
|
||
--accent-glow: rgba(255, 138, 0, 0.4);
|
||
--text-primary: #e1e9ef;
|
||
--text-secondary:#b0c1d1;
|
||
--text-muted: #708599;
|
||
--border: #3a4a58;
|
||
--border-subtle: #1f2830;
|
||
--border-dropdown: #3a4a58;
|
||
--shadow-dropdown: rgba(0, 0, 0, 0.7);
|
||
--positive: #a3be8c;
|
||
--warning: #ebcb8b;
|
||
--danger: #bf616a;
|
||
--radius-sm: 1px;
|
||
--radius-md: 2px;
|
||
--radius-lg: 4px;
|
||
}
|
||
|
||
[data-theme='v-tactical'] .sidebar {
|
||
border-right: 1px solid var(--border);
|
||
}
|
||
|
||
[data-theme='v-tactical'] .player-bar {
|
||
border-top: 2px solid var(--accent);
|
||
background: linear-gradient(180deg, #0d1114 0%, #090c0e 100%);
|
||
}
|
||
|
||
[data-theme='v-tactical'] .player-track-name {
|
||
text-transform: uppercase;
|
||
letter-spacing: 1px;
|
||
font-weight: 700;
|
||
color: var(--accent);
|
||
text-shadow: 0 0 10px var(--accent-glow);
|
||
}
|
||
|
||
[data-theme='v-tactical'] .nav-link.active {
|
||
background: linear-gradient(90deg, rgba(255, 138, 0, 0.15) 0%, transparent 100%);
|
||
border-left: 3px solid var(--accent);
|
||
}
|
||
|
||
[data-theme='v-tactical'] .btn-primary {
|
||
text-transform: uppercase;
|
||
font-weight: 800;
|
||
letter-spacing: 0.5px;
|
||
}
|
||
|
||
/* ─── NightCity 2077 — Cyberpunk 2077 ─── */
|
||
/* V yellow + Netrunner cyan + Gang magenta + Johnny Silverhand glitch */
|
||
@keyframes glitch-2077 {
|
||
0%, 85%, 100% {
|
||
text-shadow:
|
||
0 0 8px rgba(252,238,10,0.75),
|
||
0 0 22px rgba(252,238,10,0.35),
|
||
0 0 48px rgba(252,238,10,0.12);
|
||
transform: none;
|
||
}
|
||
86% {
|
||
text-shadow:
|
||
-3px 0 rgba(0,245,255,0.65),
|
||
3px 0 rgba(255,45,155,0.65),
|
||
0 0 8px rgba(252,238,10,0.75);
|
||
transform: translateX(-2px);
|
||
}
|
||
87% {
|
||
text-shadow:
|
||
3px 0 rgba(0,245,255,0.65),
|
||
-3px 0 rgba(255,45,155,0.65),
|
||
0 0 8px rgba(252,238,10,0.75);
|
||
transform: translateX(2px) skewX(-2deg);
|
||
}
|
||
88% {
|
||
text-shadow:
|
||
0 0 8px rgba(252,238,10,0.75),
|
||
0 0 22px rgba(252,238,10,0.35);
|
||
transform: none;
|
||
}
|
||
89% {
|
||
text-shadow:
|
||
-1px 0 rgba(0,245,255,0.4),
|
||
1px 0 rgba(255,45,155,0.4),
|
||
0 0 10px rgba(252,238,10,0.8);
|
||
transform: translateX(1px);
|
||
}
|
||
90% {
|
||
text-shadow:
|
||
0 0 8px rgba(252,238,10,0.75),
|
||
0 0 22px rgba(252,238,10,0.35),
|
||
0 0 48px rgba(252,238,10,0.12);
|
||
transform: none;
|
||
}
|
||
}
|
||
|
||
[data-theme='nightcity-2077'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23FCEE0A%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* Night City asphalt — dark with cold blue-black undertone */
|
||
--ctp-crust: #000003;
|
||
--ctp-mantle: #020208;
|
||
--ctp-base: #06060f;
|
||
--ctp-surface0: #0d0d1a;
|
||
--ctp-surface1: #141428;
|
||
--ctp-surface2: #1e1e38;
|
||
--ctp-overlay0: #50508a;
|
||
--ctp-overlay1: #7878b8;
|
||
--ctp-overlay2: #a0a0d8;
|
||
--ctp-text: #f0f0ff;
|
||
--ctp-subtext1: #d0d0f8;
|
||
--ctp-subtext0: #a0a0d8;
|
||
|
||
/* Cyberpunk palette */
|
||
--ctp-yellow: #FCEE0A; /* V / Johnny — primary yellow */
|
||
--ctp-mauve: #FCEE0A;
|
||
--ctp-lavender: #ffe84d;
|
||
--ctp-teal: #00f5ff; /* Netrunner cyan */
|
||
--ctp-sky: #00f5ff;
|
||
--ctp-sapphire: #00c8e0;
|
||
--ctp-blue: #0088ff; /* NCPD/corpo blue */
|
||
--ctp-pink: #ff2d9b; /* Gang magenta — Maelstrom/Valentinos neon */
|
||
--ctp-flamingo: #ff2d9b;
|
||
--ctp-rosewater:#ff80c8;
|
||
--ctp-green: #00ff9f; /* Netrunner green — Quickhack */
|
||
--ctp-red: #ff1a1a; /* Combat critical / Arasaka red */
|
||
--ctp-maroon: #cc0000;
|
||
--ctp-peach: #ff8800; /* Trauma Team orange */
|
||
|
||
--bg-app: #06060f;
|
||
--bg-sidebar: #020208; /* deeper — like the Night City backdrop */
|
||
--bg-card: #0d0d1a;
|
||
--bg-hover: rgba(252, 238, 10, 0.07);
|
||
--bg-player: #000003;
|
||
--bg-glass: rgba(6, 6, 15, 0.96);
|
||
|
||
--accent: #FCEE0A; /* V yellow */
|
||
--accent-dim: rgba(252, 238, 10, 0.12);
|
||
--accent-glow: rgba(252, 238, 10, 0.5);
|
||
--volume-accent:#00f5ff; /* Netrunner cyan for volume */
|
||
|
||
--text-primary: #f0f0ff;
|
||
--text-secondary:#00f5ff; /* Netrunner cyan — the key differentiator */
|
||
--text-muted: #6868a8;
|
||
--border: #1e1e38;
|
||
--border-subtle: #0d0d1a;
|
||
--shadow-dropdown: rgba(0, 0, 0, 0.95);
|
||
|
||
--positive: #00ff9f;
|
||
--warning: #FCEE0A;
|
||
--danger: #ff1a1a;
|
||
|
||
--radius-sm: 0px;
|
||
--radius-md: 0px;
|
||
--radius-lg: 2px;
|
||
--radius-xl: 2px;
|
||
}
|
||
|
||
/* Sidebar = tech/netrunner panel: cyan border + scan-line texture */
|
||
[data-theme='nightcity-2077'] .sidebar {
|
||
border-right: 2px solid #00f5ff;
|
||
box-shadow: 2px 0 16px rgba(0, 245, 255, 0.1);
|
||
background-image: repeating-linear-gradient(
|
||
0deg,
|
||
transparent,
|
||
transparent 3px,
|
||
rgba(0, 245, 255, 0.012) 3px,
|
||
rgba(0, 245, 255, 0.012) 4px
|
||
);
|
||
}
|
||
|
||
/* Player bar = HUD: V yellow top + cyan secondary strip */
|
||
[data-theme='nightcity-2077'] .player-bar {
|
||
border-top: 2px solid #FCEE0A;
|
||
box-shadow:
|
||
0 -1px 0 rgba(0, 245, 255, 0.35),
|
||
0 -8px 32px rgba(252, 238, 10, 0.08),
|
||
0 -2px 16px rgba(0, 245, 255, 0.06);
|
||
}
|
||
|
||
/* Track name = V's yellow + Johnny Silverhand glitch */
|
||
[data-theme='nightcity-2077'] .player-track-name {
|
||
color: #FCEE0A;
|
||
text-transform: uppercase;
|
||
font-weight: 800;
|
||
letter-spacing: 0.08em;
|
||
animation: glitch-2077 9s infinite;
|
||
}
|
||
|
||
/* Artist = Netrunner cyan */
|
||
[data-theme='nightcity-2077'] .player-track-artist { color: #00f5ff; }
|
||
|
||
/* Queue album = gang magenta */
|
||
[data-theme='nightcity-2077'] .queue-meta-album { color: #ff2d9b; }
|
||
|
||
/* Active nav: yellow gradient + chamfered feel */
|
||
[data-theme='nightcity-2077'] .nav-link.active {
|
||
background: linear-gradient(90deg, rgba(252,238,10,0.15) 0%, transparent 100%);
|
||
color: #FCEE0A;
|
||
}
|
||
[data-theme='nightcity-2077'] .nav-link.active::before {
|
||
width: 3px;
|
||
background: #FCEE0A;
|
||
box-shadow: 2px 0 14px rgba(252,238,10,0.7);
|
||
}
|
||
|
||
/* Buttons: angular chamfered corner — iconic CP2077 UI shape */
|
||
[data-theme='nightcity-2077'] .btn-primary {
|
||
background: #FCEE0A;
|
||
color: #000000;
|
||
font-weight: 800;
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.08em;
|
||
border: none;
|
||
border-radius: 0;
|
||
clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 10px 100%, 0 calc(100% - 10px));
|
||
}
|
||
[data-theme='nightcity-2077'] .btn-primary:hover {
|
||
background: #ffe84d;
|
||
box-shadow: 0 0 20px rgba(252,238,10,0.5);
|
||
}
|
||
[data-theme='nightcity-2077'] .btn-surface {
|
||
border-radius: 0;
|
||
clip-path: polygon(0 0, calc(100% - 6px) 0, 100% 6px, 100% 100%, 0 100%);
|
||
}
|
||
|
||
/* Queue active = cyan netrunner bar */
|
||
[data-theme='nightcity-2077'] .queue-item.active {
|
||
background: rgba(0, 245, 255, 0.07);
|
||
box-shadow: inset 3px 0 0 #00f5ff;
|
||
}
|
||
[data-theme='nightcity-2077'] .np-queue-item.active { background: rgba(0,245,255,0.06); }
|
||
[data-theme='nightcity-2077'] .np-queue-item-active {
|
||
color: #FCEE0A;
|
||
text-shadow: 0 0 8px rgba(252,238,10,0.6);
|
||
}
|
||
|
||
/* Now-playing active track = magenta gang glow */
|
||
[data-theme='nightcity-2077'] .np-album-track.active .np-album-track-title,
|
||
[data-theme='nightcity-2077'] .np-album-track.active .np-album-track-num {
|
||
color: #ff2d9b;
|
||
text-shadow: 0 0 10px rgba(255,45,155,0.55);
|
||
}
|
||
|
||
/* Hover rows: yellow left bar */
|
||
[data-theme='nightcity-2077'] .track-row:hover,
|
||
[data-theme='nightcity-2077'] .track-row.context-active {
|
||
background: rgba(252,238,10,0.06) !important;
|
||
box-shadow: inset 3px 0 0 #FCEE0A;
|
||
}
|
||
[data-theme='nightcity-2077'] .queue-item:hover,
|
||
[data-theme='nightcity-2077'] .queue-item.context-active {
|
||
background: rgba(0,245,255,0.06) !important;
|
||
box-shadow: inset 3px 0 0 #00f5ff;
|
||
}
|
||
[data-theme='nightcity-2077'] .np-queue-item:hover,
|
||
[data-theme='nightcity-2077'] .np-queue-item.context-active {
|
||
background: rgba(0,245,255,0.06);
|
||
box-shadow: inset 2px 0 0 #00f5ff;
|
||
}
|
||
[data-theme='nightcity-2077'] .artist-row:hover { background: rgba(252,238,10,0.05); box-shadow: inset 3px 0 0 #FCEE0A; }
|
||
[data-theme='nightcity-2077'] .playlist-row:hover { background: rgba(252,238,10,0.05); box-shadow: inset 3px 0 0 #FCEE0A; }
|
||
|
||
/* Settings tabs: active = magenta Valentinos style */
|
||
[data-theme='nightcity-2077'] .settings-tab:hover { background: rgba(252,238,10,0.06); color: #FCEE0A; }
|
||
[data-theme='nightcity-2077'] .settings-tab.active {
|
||
background: rgba(255,45,155,0.08);
|
||
color: #ff2d9b;
|
||
box-shadow: inset 3px 0 0 #ff2d9b;
|
||
}
|
||
|
||
/* Queue tabs */
|
||
[data-theme='nightcity-2077'] .queue-tab-btn:hover { background: rgba(0,245,255,0.07); color: #00f5ff; }
|
||
|
||
/* Dropdowns */
|
||
[data-theme='nightcity-2077'] .custom-select-trigger:hover { background: rgba(252,238,10,0.07); }
|
||
[data-theme='nightcity-2077'] .custom-select-option:hover {
|
||
background: rgba(252,238,10,0.1) !important;
|
||
color: #FCEE0A !important;
|
||
}
|
||
|
||
/* Artist pills = Trauma Team orange */
|
||
[data-theme='nightcity-2077'] .artist-ext-link:hover {
|
||
background: rgba(255,136,0,0.1);
|
||
color: #ff8800 !important;
|
||
border-color: rgba(255,136,0,0.4) !important;
|
||
}
|
||
|
||
/* Cards: dark glass with cyan edge-glow */
|
||
[data-theme='nightcity-2077'] .glass {
|
||
border: 1px solid rgba(0, 245, 255, 0.12) !important;
|
||
box-shadow: 0 0 0 1px rgba(252,238,10,0.04), inset 0 0 20px rgba(0,245,255,0.02) !important;
|
||
}
|
||
|
||
/* Connection indicators */
|
||
[data-theme='nightcity-2077'] .connection-type,
|
||
[data-theme='nightcity-2077'] .connection-server { color: #00f5ff; }
|
||
|
||
/* ─── Heisenberg — Breaking Bad ─── */
|
||
@keyframes crystal-pulse {
|
||
0%, 100% {
|
||
text-shadow:
|
||
0 0 6px rgba(78,223,47,0.60),
|
||
0 0 18px rgba(78,223,47,0.32),
|
||
0 0 40px rgba(78,223,47,0.14);
|
||
}
|
||
50% {
|
||
text-shadow:
|
||
0 0 10px rgba(78,223,47,0.80),
|
||
0 0 28px rgba(78,223,47,0.48),
|
||
0 0 60px rgba(78,223,47,0.22);
|
||
}
|
||
}
|
||
|
||
[data-theme='heisenberg'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%2335d4f8%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* Breaking Bad palette — crystal blue, BB logo green, hazmat yellow */
|
||
--ctp-crust: #050709;
|
||
--ctp-mantle: #080b0e;
|
||
--ctp-base: #0b0e12;
|
||
--ctp-surface0: #141a22;
|
||
--ctp-surface1: #1e2830;
|
||
--ctp-surface2: #283440;
|
||
--ctp-overlay0: #3a4e60;
|
||
--ctp-overlay1: #5a7288;
|
||
--ctp-overlay2: #7a96a8;
|
||
--ctp-text: #e4f0f8;
|
||
--ctp-subtext1: #c0d8e8;
|
||
--ctp-subtext0: #8ab0c8;
|
||
--ctp-mauve: #35d4f8;
|
||
--ctp-lavender: #70e8ff;
|
||
--ctp-pink: #f05080;
|
||
--ctp-flamingo: #e84060;
|
||
--ctp-rosewater:#e4f0f8;
|
||
--ctp-green: #4edf2f;
|
||
--ctp-teal: #20c8b0;
|
||
--ctp-sky: #55ddff;
|
||
--ctp-blue: #35d4f8;
|
||
--ctp-sapphire: #1ab8e0;
|
||
--ctp-yellow: #f0c020;
|
||
--ctp-peach: #e88040;
|
||
--ctp-maroon: #a01820;
|
||
--ctp-red: #e03030;
|
||
|
||
--bg-app: #0b0e12;
|
||
--bg-sidebar: #060a0e;
|
||
--bg-card: #141a22;
|
||
--bg-hover: #1e2830;
|
||
--bg-player: #060809;
|
||
--bg-glass: rgba(8, 11, 14, 0.92);
|
||
--accent: #35d4f8;
|
||
--accent-dim: rgba(53, 212, 248, 0.12);
|
||
--accent-glow: rgba(53, 212, 248, 0.35);
|
||
--text-primary: #e4f0f8;
|
||
--text-secondary:#7a96a8;
|
||
--text-muted: #7aaabe;
|
||
--border: rgba(53, 212, 248, 0.14);
|
||
--border-subtle: rgba(53, 212, 248, 0.06);
|
||
--border-dropdown: rgba(53, 212, 248, 0.25);
|
||
--shadow-dropdown: rgba(0, 0, 0, 0.92);
|
||
--positive: #4edf2f;
|
||
--warning: #f0c020;
|
||
--danger: #e03030;
|
||
--radius-sm: 2px;
|
||
--radius-md: 4px;
|
||
--radius-lg: 6px;
|
||
}
|
||
|
||
/* App shell — periodic table grid (BB opening credits) */
|
||
[data-theme='heisenberg'] .app-shell {
|
||
background-image:
|
||
linear-gradient(rgba(53,212,248,0.04) 1px, transparent 1px),
|
||
linear-gradient(90deg, rgba(53,212,248,0.04) 1px, transparent 1px);
|
||
background-size: 60px 60px;
|
||
}
|
||
|
||
/* Sidebar — darker lab space, hazmat tape diagonal (very subtle) */
|
||
[data-theme='heisenberg'] .sidebar {
|
||
background: #060a0e;
|
||
border-right: 1px solid rgba(53,212,248,0.14);
|
||
background-image:
|
||
repeating-linear-gradient(
|
||
45deg,
|
||
transparent 0px,
|
||
transparent 20px,
|
||
rgba(240,192,32,0.028) 20px,
|
||
rgba(240,192,32,0.028) 22px
|
||
);
|
||
}
|
||
|
||
/* Player bar — lab fluorescent: crystal blue top glow */
|
||
[data-theme='heisenberg'] .player-bar {
|
||
background: #060809;
|
||
border-top: 2px solid #35d4f8;
|
||
box-shadow: 0 -8px 32px rgba(53,212,248,0.14), 0 -1px 0 rgba(0,0,0,0.9);
|
||
}
|
||
|
||
/* Track name — BB logo green glow (the Br/Ba element box color) */
|
||
[data-theme='heisenberg'] .player-track-name {
|
||
color: #4edf2f;
|
||
animation: crystal-pulse 3s ease-in-out infinite;
|
||
}
|
||
|
||
/* Artist name — hazmat suit yellow */
|
||
[data-theme='heisenberg'] .player-artist-name {
|
||
color: #f0c020;
|
||
}
|
||
|
||
/* Nav active — BB green left bar */
|
||
[data-theme='heisenberg'] .nav-link.active {
|
||
background: linear-gradient(90deg, rgba(78,223,47,0.12) 0%, transparent 100%);
|
||
border-left: 3px solid #4edf2f;
|
||
color: #4edf2f;
|
||
}
|
||
|
||
[data-theme='heisenberg'] .nav-link:hover:not(.active) {
|
||
background: linear-gradient(90deg, rgba(53,212,248,0.06) 0%, transparent 100%);
|
||
border-left: 3px solid rgba(53,212,248,0.28);
|
||
}
|
||
|
||
/* Content header */
|
||
[data-theme='heisenberg'] .content-header {
|
||
border-bottom: 1px solid rgba(53,212,248,0.10);
|
||
}
|
||
|
||
/* Cards — blue crystal border on hover */
|
||
[data-theme='heisenberg'] .album-card:hover,
|
||
[data-theme='heisenberg'] .artist-card:hover {
|
||
box-shadow: 0 0 0 1px rgba(53,212,248,0.50), 0 4px 20px rgba(53,212,248,0.14);
|
||
}
|
||
|
||
/* Track / queue rows */
|
||
[data-theme='heisenberg'] .track-row:hover,
|
||
[data-theme='heisenberg'] .queue-item:hover {
|
||
box-shadow: inset 2px 0 0 #35d4f8;
|
||
background: rgba(53,212,248,0.05);
|
||
}
|
||
|
||
/* Primary play button — crystal blue gradient */
|
||
[data-theme='heisenberg'] .player-btn-primary {
|
||
background: linear-gradient(180deg, #60e4ff 0%, #35d4f8 50%, #18b8e0 100%);
|
||
color: #060809;
|
||
box-shadow: 0 0 16px rgba(53,212,248,0.45);
|
||
border: 1px solid #14a8d0;
|
||
}
|
||
|
||
[data-theme='heisenberg'] .player-btn-primary:hover {
|
||
background: linear-gradient(180deg, #7aecff 0%, #50deff 50%, #28caf0 100%);
|
||
box-shadow: 0 0 26px rgba(53,212,248,0.70);
|
||
}
|
||
|
||
/* btn-primary */
|
||
[data-theme='heisenberg'] .btn-primary {
|
||
background: linear-gradient(180deg, #60e4ff 0%, #35d4f8 50%, #18b8e0 100%);
|
||
color: #060809;
|
||
border: 1px solid #14a8d0;
|
||
}
|
||
|
||
[data-theme='heisenberg'] .btn-primary:hover {
|
||
background: linear-gradient(180deg, #7aecff 0%, #50deff 50%, #28caf0 100%);
|
||
}
|
||
|
||
/* Hero play button */
|
||
[data-theme='heisenberg'] .hero-play-btn {
|
||
background: linear-gradient(180deg, #60e4ff 0%, #35d4f8 50%, #18b8e0 100%);
|
||
color: #060809;
|
||
border: 1px solid #14a8d0;
|
||
box-shadow: 0 2px 16px rgba(53,212,248,0.45);
|
||
transition: filter var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
|
||
}
|
||
|
||
[data-theme='heisenberg'] .hero-play-btn:hover {
|
||
background: linear-gradient(180deg, #7aecff 0%, #50deff 50%, #28caf0 100%);
|
||
box-shadow: 0 4px 26px rgba(53,212,248,0.68);
|
||
transform: scale(1.02);
|
||
}
|
||
|
||
/* Album card overlay button */
|
||
[data-theme='heisenberg'] .album-card-details-btn {
|
||
background: linear-gradient(180deg, #60e4ff 0%, #35d4f8 50%, #18b8e0 100%);
|
||
color: #060809;
|
||
border: 1px solid #14a8d0;
|
||
box-shadow: 0 2px 12px rgba(53,212,248,0.40);
|
||
}
|
||
|
||
/* Scrollbar — thin blue crystal */
|
||
[data-theme='heisenberg'] ::-webkit-scrollbar { width: 5px; height: 5px; }
|
||
|
||
[data-theme='heisenberg'] ::-webkit-scrollbar-track {
|
||
background: #080b0e;
|
||
}
|
||
|
||
[data-theme='heisenberg'] ::-webkit-scrollbar-thumb {
|
||
background: rgba(53,212,248,0.35);
|
||
border-radius: 3px;
|
||
}
|
||
|
||
[data-theme='heisenberg'] ::-webkit-scrollbar-thumb:hover {
|
||
background: #35d4f8;
|
||
}
|
||
|
||
/* ─── A Theme of Ice and Fire — Game of Thrones ─── */
|
||
/* Concept: FIRE (volcanic Dragonstone, main area) vs ICE (Castle Black, sidebar) */
|
||
@keyframes fire-flicker {
|
||
0% { text-shadow: 0 0 8px rgba(200,30,20,0.65), 0 0 20px rgba(200,60,10,0.30); }
|
||
20% { text-shadow: 0 0 12px rgba(220,55,15,0.75), 0 0 28px rgba(210,40,10,0.38); }
|
||
40% { text-shadow: 0 0 6px rgba(180,20,10,0.55), 0 0 14px rgba(190,30,10,0.22); }
|
||
65% { text-shadow: 0 0 14px rgba(215,50,12,0.80), 0 0 32px rgba(200,70,15,0.40); }
|
||
85% { text-shadow: 0 0 9px rgba(195,25,15,0.60), 0 0 22px rgba(200,40,10,0.28); }
|
||
100% { text-shadow: 0 0 8px rgba(200,30,20,0.65), 0 0 20px rgba(200,60,10,0.30); }
|
||
}
|
||
|
||
[data-theme='ice-and-fire'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23c41e1e%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* Palette — Targaryen blood red, dragon gold, volcanic black, Wall ice */
|
||
--ctp-crust: #060402;
|
||
--ctp-mantle: #0a0806;
|
||
--ctp-base: #100c08;
|
||
--ctp-surface0: #1c1410;
|
||
--ctp-surface1: #281c14;
|
||
--ctp-surface2: #38261c;
|
||
--ctp-overlay0: #5a3e2e;
|
||
--ctp-overlay1: #7a5840;
|
||
--ctp-overlay2: #9a7858;
|
||
--ctp-text: #ecdcc8;
|
||
--ctp-subtext1: #d0b898;
|
||
--ctp-subtext0: #a89070;
|
||
--ctp-mauve: #c41e1e;
|
||
--ctp-lavender: #e03030;
|
||
--ctp-pink: #e03030;
|
||
--ctp-flamingo: #c83010;
|
||
--ctp-rosewater:#ecdcc8;
|
||
--ctp-green: #5a8a3a;
|
||
--ctp-teal: #5090a0; /* Wall ice teal */
|
||
--ctp-sky: #80b8d0; /* Northern sky */
|
||
--ctp-blue: #3a6898;
|
||
--ctp-sapphire: #3a6898;
|
||
--ctp-yellow: #c8880a; /* Lannister / dragon gold */
|
||
--ctp-peach: #c83010;
|
||
--ctp-maroon: #8b0808;
|
||
--ctp-red: #c41e1e;
|
||
|
||
--bg-app: #100c08; /* volcanic black — warm dark */
|
||
--bg-sidebar: #090c10; /* Castle Black — cold blue-grey stone */
|
||
--bg-card: #1c1410;
|
||
--bg-hover: #281c14;
|
||
--bg-player: #060402; /* obsidian black */
|
||
--bg-glass: rgba(10, 8, 6, 0.92);
|
||
--accent: #c41e1e; /* Targaryen blood red */
|
||
--accent-dim: rgba(196, 30, 30, 0.14);
|
||
--accent-glow: rgba(196, 30, 30, 0.38);
|
||
--text-primary: #ecdcc8; /* warm stone parchment */
|
||
--text-secondary:#9a7858;
|
||
--text-muted: #b08860;
|
||
--border: rgba(196, 30, 30, 0.20);
|
||
--border-subtle: rgba(196, 30, 30, 0.08);
|
||
--border-dropdown: rgba(196, 30, 30, 0.32);
|
||
--shadow-dropdown: rgba(0, 0, 0, 0.92);
|
||
--positive: #5a8a3a;
|
||
--warning: #c8880a;
|
||
--danger: #c41e1e;
|
||
--radius-sm: 2px;
|
||
--radius-md: 4px;
|
||
--radius-lg: 6px;
|
||
}
|
||
|
||
/* App shell — scattered torch-light: warm pools of fire at corners */
|
||
[data-theme='ice-and-fire'] .app-shell {
|
||
background-image:
|
||
radial-gradient(ellipse at 15% 85%, rgba(200, 80, 10, 0.07) 0%, transparent 55%),
|
||
radial-gradient(ellipse at 85% 15%, rgba(180, 20, 10, 0.06) 0%, transparent 55%),
|
||
radial-gradient(ellipse at 85% 85%, rgba(200, 100, 15, 0.05) 0%, transparent 45%);
|
||
}
|
||
|
||
/* Sidebar — THE NORTH: cold Castle Black stone, masonry pattern */
|
||
[data-theme='ice-and-fire'] .sidebar {
|
||
background: #090c10;
|
||
border-right: 1px solid rgba(196, 30, 30, 0.20);
|
||
background-image:
|
||
repeating-linear-gradient(
|
||
0deg,
|
||
rgba(80, 110, 140, 0.04) 0px, transparent 1px, transparent 56px,
|
||
rgba(80, 110, 140, 0.04) 57px
|
||
),
|
||
repeating-linear-gradient(
|
||
90deg,
|
||
rgba(80, 110, 140, 0.025) 0px, transparent 1px, transparent 112px,
|
||
rgba(80, 110, 140, 0.025) 113px
|
||
);
|
||
}
|
||
|
||
/* Player bar — Dragonstone forge: fire glow rising from below */
|
||
[data-theme='ice-and-fire'] .player-bar {
|
||
background: #060402;
|
||
border-top: 2px solid #c41e1e;
|
||
background-image:
|
||
radial-gradient(ellipse at 50% 130%, rgba(200, 80, 15, 0.22) 0%, rgba(180, 20, 10, 0.12) 45%, transparent 70%);
|
||
box-shadow: 0 -8px 36px rgba(180, 20, 10, 0.22), 0 -1px 0 rgba(0,0,0,0.9);
|
||
}
|
||
|
||
/* Track name — Targaryen red, fire flicker (irregular like real flame) */
|
||
[data-theme='ice-and-fire'] .player-track-name {
|
||
color: #d42020;
|
||
animation: fire-flicker 5s ease-in-out infinite;
|
||
}
|
||
|
||
/* Artist name — Lannister/dragon gold */
|
||
[data-theme='ice-and-fire'] .player-artist-name {
|
||
color: #c8880a;
|
||
}
|
||
|
||
/* Nav active — blood red left bar */
|
||
[data-theme='ice-and-fire'] .nav-link.active {
|
||
background: linear-gradient(90deg, rgba(196,30,30,0.18) 0%, transparent 100%);
|
||
border-left: 3px solid #c41e1e;
|
||
color: #d42020;
|
||
}
|
||
|
||
[data-theme='ice-and-fire'] .nav-link:hover:not(.active) {
|
||
background: linear-gradient(90deg, rgba(196,30,30,0.08) 0%, transparent 100%);
|
||
border-left: 3px solid rgba(196,30,30,0.32);
|
||
}
|
||
|
||
/* Content header — red-to-gold ornate rule: Fire and Blood / Hear Me Roar */
|
||
[data-theme='ice-and-fire'] .content-header {
|
||
border-bottom: 1px solid rgba(196,30,30,0.16);
|
||
position: relative;
|
||
}
|
||
|
||
[data-theme='ice-and-fire'] .content-header::after {
|
||
content: '';
|
||
position: absolute;
|
||
bottom: -3px;
|
||
left: 0; right: 0;
|
||
height: 1px;
|
||
background: linear-gradient(90deg,
|
||
transparent 0%,
|
||
rgba(196,30,30,0.70) 25%,
|
||
rgba(200,136,10,0.90) 50%,
|
||
rgba(196,30,30,0.70) 75%,
|
||
transparent 100%
|
||
);
|
||
}
|
||
|
||
/* Cards — volcanic panel, fire-gold border on hover */
|
||
[data-theme='ice-and-fire'] .album-card:hover,
|
||
[data-theme='ice-and-fire'] .artist-card:hover {
|
||
box-shadow:
|
||
0 0 0 1px rgba(196,30,30,0.50),
|
||
0 0 0 2px rgba(200,136,10,0.14),
|
||
0 4px 24px rgba(180,20,10,0.18);
|
||
}
|
||
|
||
/* Track / queue rows */
|
||
[data-theme='ice-and-fire'] .track-row:hover,
|
||
[data-theme='ice-and-fire'] .queue-item:hover {
|
||
box-shadow: inset 2px 0 0 #c41e1e;
|
||
background: rgba(196,30,30,0.07);
|
||
}
|
||
|
||
/* Primary play button — Targaryen red gradient */
|
||
[data-theme='ice-and-fire'] .player-btn-primary {
|
||
background: linear-gradient(180deg, #e03030 0%, #c41e1e 50%, #9c1010 100%);
|
||
color: #ecdcc8;
|
||
box-shadow: 0 0 16px rgba(196,30,30,0.48);
|
||
border: 1px solid #880808;
|
||
}
|
||
|
||
[data-theme='ice-and-fire'] .player-btn-primary:hover {
|
||
background: linear-gradient(180deg, #f04040 0%, #d42828 50%, #ac1818 100%);
|
||
box-shadow: 0 0 26px rgba(196,30,30,0.70);
|
||
}
|
||
|
||
/* btn-primary */
|
||
[data-theme='ice-and-fire'] .btn-primary {
|
||
background: linear-gradient(180deg, #e03030 0%, #c41e1e 50%, #9c1010 100%);
|
||
color: #ecdcc8;
|
||
border: 1px solid #880808;
|
||
}
|
||
|
||
[data-theme='ice-and-fire'] .btn-primary:hover {
|
||
background: linear-gradient(180deg, #f04040 0%, #d42828 50%, #ac1818 100%);
|
||
}
|
||
|
||
/* Hero play button */
|
||
[data-theme='ice-and-fire'] .hero-play-btn {
|
||
background: linear-gradient(180deg, #e03030 0%, #c41e1e 50%, #9c1010 100%);
|
||
color: #ecdcc8;
|
||
border: 1px solid #880808;
|
||
box-shadow: 0 2px 16px rgba(196,30,30,0.48);
|
||
transition: filter var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
|
||
}
|
||
|
||
[data-theme='ice-and-fire'] .hero-play-btn:hover {
|
||
background: linear-gradient(180deg, #f04040 0%, #d42828 50%, #ac1818 100%);
|
||
box-shadow: 0 4px 26px rgba(196,30,30,0.70);
|
||
transform: scale(1.02);
|
||
}
|
||
|
||
/* Album card overlay button */
|
||
[data-theme='ice-and-fire'] .album-card-details-btn {
|
||
background: linear-gradient(180deg, #e03030 0%, #c41e1e 50%, #9c1010 100%);
|
||
color: #ecdcc8;
|
||
border: 1px solid #880808;
|
||
box-shadow: 0 2px 12px rgba(196,30,30,0.45);
|
||
}
|
||
|
||
/* Scrollbar — obsidian dark, blood-red thumb transitioning to gold */
|
||
[data-theme='ice-and-fire'] ::-webkit-scrollbar { width: 5px; height: 5px; }
|
||
|
||
[data-theme='ice-and-fire'] ::-webkit-scrollbar-track {
|
||
background: #090c10;
|
||
}
|
||
|
||
[data-theme='ice-and-fire'] ::-webkit-scrollbar-thumb {
|
||
background: linear-gradient(180deg, #c41e1e, #883010);
|
||
border-radius: 3px;
|
||
}
|
||
|
||
[data-theme='ice-and-fire'] ::-webkit-scrollbar-thumb:hover {
|
||
background: #c8880a;
|
||
}
|
||
|
||
/* Connection indicators */
|
||
[data-theme='ice-and-fire'] .connection-type,
|
||
[data-theme='ice-and-fire'] .connection-server { color: #9a7858; }
|
||
|
||
/* ─── D'oh-matic ─── */
|
||
[data-theme='doh-matic'] {
|
||
color-scheme: light;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23444444%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
--ctp-crust: #FFD90F;
|
||
--ctp-mantle: #BAE1FF;
|
||
--ctp-base: #FFFDF0;
|
||
--ctp-surface0: #F0F8FF;
|
||
--ctp-surface1: #E0EFFF;
|
||
--ctp-surface2: #D0E5FF;
|
||
--ctp-overlay0: #999999;
|
||
--ctp-overlay1: #777777;
|
||
--ctp-overlay2: #555555;
|
||
--ctp-text: #222222;
|
||
--ctp-subtext1: #444444;
|
||
--ctp-subtext0: #666666;
|
||
--ctp-mauve: #1F75FE;
|
||
--ctp-lavender: #4D91FF;
|
||
--ctp-pink: #F14E96;
|
||
--ctp-flamingo: #F14E96;
|
||
--ctp-rosewater:#FFD90F;
|
||
--ctp-green: #4AC948;
|
||
--ctp-teal: #00BFAF;
|
||
--ctp-sky: #4D91FF;
|
||
--ctp-blue: #1F75FE;
|
||
--ctp-sapphire: #1F75FE;
|
||
--ctp-yellow: #FFD90F;
|
||
--ctp-peach: #F26522;
|
||
--ctp-maroon: #CC0000;
|
||
--ctp-red: #ED1C24;
|
||
|
||
--bg-app: #FFFDF0;
|
||
--bg-sidebar: #BAE1FF;
|
||
--bg-card: #FFFFFF;
|
||
--bg-hover: rgba(31, 117, 254, 0.1);
|
||
--bg-player: #FFD90F;
|
||
--bg-glass: rgba(255, 253, 240, 0.8);
|
||
--accent: #1F75FE;
|
||
--accent-dim: rgba(31, 117, 254, 0.15);
|
||
--accent-glow: rgba(31, 117, 254, 0.3);
|
||
--text-primary: #222222;
|
||
--text-secondary:#444444;
|
||
--text-muted: #555555;
|
||
--border: #222222;
|
||
--border-subtle: rgba(0, 0, 0, 0.1);
|
||
--border-dropdown: #cccccc;
|
||
--shadow-dropdown: rgba(0, 0, 0, 0.15);
|
||
--positive: #4AC948;
|
||
--warning: #F26522;
|
||
--danger: #ED1C24;
|
||
--radius-md: 12px;
|
||
}
|
||
|
||
[data-theme='doh-matic'] .sidebar {
|
||
border-right: 2px solid #222222;
|
||
}
|
||
|
||
[data-theme='doh-matic'] .player-bar {
|
||
border-top: 3px solid #222222;
|
||
}
|
||
|
||
[data-theme='doh-matic'] .player-track-name,
|
||
[data-theme='doh-matic'] .player-track-artist,
|
||
[data-theme='doh-matic'] .player-time {
|
||
color: #222222 !important;
|
||
}
|
||
|
||
[data-theme='doh-matic'] .player-btn {
|
||
color: #222222;
|
||
}
|
||
|
||
[data-theme='doh-matic'] .btn-primary:hover {
|
||
background-color: var(--ctp-pink);
|
||
border-color: #222222;
|
||
}
|
||
|
||
[data-theme='doh-matic'] .btn-surface:hover {
|
||
background: #D0E5FF;
|
||
}
|
||
|
||
/* ─── Order of the Phoenix ─── */
|
||
/* ─── W98 ─── */
|
||
[data-theme='w98'] {
|
||
color-scheme: light;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* ── Authentische W98 Palette ── */
|
||
--ctp-crust: #808080;
|
||
--ctp-mantle: #a0a0a0;
|
||
--ctp-base: #d4d0c8; /* Echtes W98 Button Face */
|
||
--ctp-surface0: #ffffff;
|
||
--ctp-surface1: #ececec;
|
||
--ctp-surface2: #d4d0c8;
|
||
--ctp-overlay0: #808080;
|
||
--ctp-overlay1: #404040;
|
||
--ctp-overlay2: #000000;
|
||
--ctp-text: #000000;
|
||
--ctp-subtext1: #000000;
|
||
--ctp-subtext0: #404040;
|
||
|
||
--ctp-mauve: #000080;
|
||
--ctp-lavender: #0000cc;
|
||
--ctp-green: #008000;
|
||
--ctp-teal: #008080;
|
||
--ctp-sky: #0000ff;
|
||
--ctp-blue: #0000ff;
|
||
--ctp-sapphire: #000080;
|
||
--ctp-pink: #ff00ff;
|
||
--ctp-flamingo: #ff00ff;
|
||
--ctp-rosewater:#d4d0c8;
|
||
--ctp-yellow: #808000;
|
||
--ctp-peach: #ff8000;
|
||
--ctp-maroon: #800000;
|
||
--ctp-red: #ff0000;
|
||
|
||
--bg-app: #008080; /* Teal Desktop */
|
||
--bg-sidebar: #d4d0c8;
|
||
--bg-card: #d4d0c8;
|
||
--bg-hover: #000080;
|
||
--bg-player: #d4d0c8;
|
||
--bg-glass: rgba(212, 208, 200, 0.95);
|
||
|
||
--accent: #000080;
|
||
--accent-dim: rgba(0, 0, 128, 0.12);
|
||
--accent-glow: transparent;
|
||
--volume-accent: #000080;
|
||
|
||
--text-primary: #000000;
|
||
--text-secondary:#000000;
|
||
--text-muted: #000000;
|
||
|
||
--border: #808080;
|
||
--border-subtle: #d4d0c8;
|
||
--border-dropdown: #000000;
|
||
--shadow-dropdown: rgba(0, 0, 0, 0.4);
|
||
|
||
--positive: #008000;
|
||
--warning: #808000;
|
||
--danger: #ff0000;
|
||
|
||
--radius-sm: 0px;
|
||
--radius-md: 0px;
|
||
--radius-lg: 0px;
|
||
--radius-xl: 0px;
|
||
--radius-full: 0px;
|
||
}
|
||
|
||
/* Teal Desktop (nur der äußere Shell-Rahmen) */
|
||
[data-theme='w98'] .app-shell {
|
||
background-color: #008080;
|
||
}
|
||
|
||
|
||
/* ── 3D Bevel: Raised ── */
|
||
[data-theme='w98'] .sidebar,
|
||
[data-theme='w98'] .player-bar,
|
||
[data-theme='w98'] .card {
|
||
background: #d4d0c8;
|
||
border: 1px solid #000000;
|
||
box-shadow:
|
||
inset 1px 1px #ffffff,
|
||
inset -1px -1px #808080,
|
||
inset 2px 2px #dfdfdf,
|
||
inset -2px -2px #404040;
|
||
}
|
||
|
||
[data-theme='w98'] .sidebar {
|
||
border-right: 2px solid #000000;
|
||
}
|
||
|
||
/* Player Bar Titelbalken: ikonischer W98 Gradient für den Song-Titel */
|
||
[data-theme='w98'] .player-track-name {
|
||
background: linear-gradient(to right, #09246d, #a6c4e8);
|
||
color: #ffffff !important;
|
||
padding: 1px 6px;
|
||
font-weight: bold;
|
||
}
|
||
|
||
[data-theme='w98'] .player-track-artist,
|
||
[data-theme='w98'] .player-time {
|
||
color: #000000 !important;
|
||
}
|
||
|
||
/* Nav */
|
||
[data-theme='w98'] .nav-link.active {
|
||
background: #000080 !important;
|
||
color: #ffffff !important;
|
||
}
|
||
[data-theme='w98'] .nav-link.active svg { color: #ffffff !important; }
|
||
[data-theme='w98'] .nav-link:hover:not(.active) {
|
||
background: #000080 !important;
|
||
color: #ffffff !important;
|
||
}
|
||
[data-theme='w98'] .nav-link:hover:not(.active) svg { color: #ffffff !important; }
|
||
|
||
/* Alle Buttons: 3D Raised Bevel */
|
||
[data-theme='w98'] .btn,
|
||
[data-theme='w98'] .btn-primary,
|
||
[data-theme='w98'] .btn-surface,
|
||
[data-theme='w98'] .btn-ghost,
|
||
[data-theme='w98'] .hero-play-btn,
|
||
[data-theme='w98'] .queue-round-btn,
|
||
[data-theme='w98'] .player-btn,
|
||
[data-theme='w98'] .album-card-details-btn {
|
||
background: #d4d0c8 !important;
|
||
color: #000000 !important;
|
||
border: 1px solid #000000 !important;
|
||
border-radius: 0 !important;
|
||
box-shadow:
|
||
inset 1px 1px #ffffff,
|
||
inset -1px -1px #808080,
|
||
inset 2px 2px #dfdfdf,
|
||
inset -2px -2px #404040 !important;
|
||
text-shadow: none !important;
|
||
filter: none !important;
|
||
transform: none !important;
|
||
}
|
||
|
||
/* Gedrückt: Bevel umkehren */
|
||
[data-theme='w98'] .btn:active,
|
||
[data-theme='w98'] .btn-primary:active,
|
||
[data-theme='w98'] .btn-surface:active,
|
||
[data-theme='w98'] .btn-ghost:active,
|
||
[data-theme='w98'] .hero-play-btn:active,
|
||
[data-theme='w98'] .queue-round-btn:active,
|
||
[data-theme='w98'] .player-btn:active,
|
||
[data-theme='w98'] .album-card-details-btn:active {
|
||
box-shadow:
|
||
inset 1px 1px #808080,
|
||
inset -1px -1px #ffffff,
|
||
inset 2px 2px #404040,
|
||
inset -2px -2px #dfdfdf !important;
|
||
}
|
||
|
||
/* Hover: heller */
|
||
[data-theme='w98'] .btn:hover,
|
||
[data-theme='w98'] .btn-primary:hover,
|
||
[data-theme='w98'] .btn-surface:hover,
|
||
[data-theme='w98'] .btn-ghost:hover,
|
||
[data-theme='w98'] .hero-play-btn:hover,
|
||
[data-theme='w98'] .album-card-details-btn:hover {
|
||
background: #e4e0d8 !important;
|
||
color: #000000 !important;
|
||
}
|
||
|
||
/* Aktive Queue-Buttons: navy, sunken */
|
||
[data-theme='w98'] .queue-round-btn.active {
|
||
background: #000080 !important;
|
||
color: #ffffff !important;
|
||
box-shadow:
|
||
inset 1px 1px #808080,
|
||
inset -1px -1px #ffffff,
|
||
inset 2px 2px #404040,
|
||
inset -2px -2px #dfdfdf !important;
|
||
}
|
||
[data-theme='w98'] .queue-round-btn:hover:not(:disabled):not(.active) {
|
||
background: #e4e0d8 !important;
|
||
color: #000000 !important;
|
||
}
|
||
|
||
/* Progress Bar: eingesunkene Rille, navy Fill */
|
||
[data-theme='w98'] .progress-bar-track {
|
||
background: #ffffff;
|
||
box-shadow: inset 1px 1px #808080, inset -1px -1px #ffffff;
|
||
border-radius: 0;
|
||
}
|
||
[data-theme='w98'] .progress-bar-fill {
|
||
background: #000080;
|
||
border-radius: 0;
|
||
box-shadow: none;
|
||
}
|
||
|
||
/* Scrollbar */
|
||
[data-theme='w98'] ::-webkit-scrollbar { width: 16px; height: 16px; }
|
||
[data-theme='w98'] ::-webkit-scrollbar-track { background: #d4d0c8; }
|
||
[data-theme='w98'] ::-webkit-scrollbar-thumb {
|
||
background: #d4d0c8;
|
||
border: 1px solid #000000;
|
||
box-shadow: inset 1px 1px #ffffff, inset -1px -1px #808080;
|
||
}
|
||
[data-theme='w98'] ::-webkit-scrollbar-button {
|
||
background: #d4d0c8;
|
||
border: 1px solid #000000;
|
||
box-shadow: inset 1px 1px #ffffff, inset -1px -1px #808080;
|
||
}
|
||
|
||
/* Queue Tab */
|
||
[data-theme='w98'] .queue-tab-btn:hover { background: #e4e0d8; color: #000000; }
|
||
|
||
/* Hero */
|
||
[data-theme='w98'] .hero-eyebrow { color: rgba(255,255,255,0.9); }
|
||
[data-theme='w98'] .hero-meta .badge { background: rgba(255,255,255,0.15); }
|
||
|
||
/* Settings */
|
||
[data-theme='w98'] .settings-tab:hover { background: #000080; color: #ffffff; }
|
||
[data-theme='w98'] .theme-accordion-header:hover { background: #000080; color: #ffffff; }
|
||
[data-theme='w98'] .theme-accordion-open .theme-accordion-header { background: #000080; color: #ffffff; }
|
||
[data-theme='w98'] .theme-accordion-open .theme-accordion-chevron { color: #ffffff; }
|
||
|
||
/* Dropdowns */
|
||
[data-theme='w98'] .custom-select-trigger:hover { background: #000080; color: #ffffff; }
|
||
[data-theme='w98'] .custom-select-option:hover { background: #000080 !important; color: #ffffff !important; }
|
||
|
||
/* Various hovers → navy + white */
|
||
[data-theme='w98'] .artist-ext-link:hover { background: #000080; color: #ffffff !important; }
|
||
[data-theme='w98'] .changelog-summary:hover { color: #000080; }
|
||
[data-theme='w98'] .changelog-code { background: #ffffff; color: #000080; border: 1px solid #808080; }
|
||
[data-theme='w98'] .keybind-badge { background: #d4d0c8 !important; color: #000000 !important; border: 1px solid #808080 !important; }
|
||
[data-theme='w98'] .eq-ctrl-btn { background: #d4d0c8; color: #000000; border: 1px solid #808080; box-shadow: inset 1px 1px #ffffff, inset -1px -1px #808080; }
|
||
[data-theme='w98'] .eq-ctrl-btn:hover { background: #000080; color: #ffffff; }
|
||
[data-theme='w98'] .genre-keyword-badge { background: #d4d0c8 !important; color: #000000 !important; border: 1px solid #808080 !important; }
|
||
[data-theme='w98'] .toggle-track::before { background: #d4d0c8; border: 1px solid #808080; }
|
||
[data-theme='w98'] .np-title { color: #000080 !important; }
|
||
[data-theme='w98'] .np-action-btn:hover { background: #000080; color: #ffffff; }
|
||
[data-theme='w98'] .np-queue-item:hover,
|
||
[data-theme='w98'] .np-queue-item.context-active { background: #000080; color: #ffffff; }
|
||
[data-theme='w98'] .track-row:hover,
|
||
[data-theme='w98'] .track-row.context-active { background: #000080 !important; }
|
||
[data-theme='w98'] .track-row:hover *,
|
||
[data-theme='w98'] .track-row.context-active * { color: #ffffff !important; }
|
||
[data-theme='w98'] .artist-row:hover { background: #000080; color: #ffffff; }
|
||
[data-theme='w98'] .year-toggle:hover { color: #000080; }
|
||
[data-theme='w98'] .playlist-row:hover { background: #000080; }
|
||
[data-theme='w98'] .playlist-row:hover,
|
||
[data-theme='w98'] .playlist-row:hover * { color: #ffffff; }
|
||
[data-theme='w98'] .help-question:hover { color: #000080; }
|
||
[data-theme='w98'] .help-item-open .help-question { color: #000080; font-weight: bold; }
|
||
[data-theme='w98'] .help-item-open .help-chevron { color: #000080; }
|
||
[data-theme='w98'] .queue-item:hover,
|
||
[data-theme='w98'] .queue-item.context-active { background: #000080 !important; }
|
||
[data-theme='w98'] .queue-item:hover .queue-item-title,
|
||
[data-theme='w98'] .queue-item:hover .queue-item-artist,
|
||
[data-theme='w98'] .queue-item:hover .queue-item-duration,
|
||
[data-theme='w98'] .queue-item.context-active .queue-item-title,
|
||
[data-theme='w98'] .queue-item.context-active .queue-item-artist,
|
||
[data-theme='w98'] .queue-item.context-active .queue-item-duration { color: #ffffff; }
|
||
[data-theme='w98'] .player-btn:hover { background: #000080; color: #ffffff; }
|
||
[data-theme='w98'] .player-btn-primary { background: #d4d0c8 !important; color: #000000 !important; }
|
||
[data-theme='w98'] .player-btn-primary:hover { background: #000080 !important; color: #ffffff !important; }
|
||
[data-theme='w98'] .search-result-item:hover,
|
||
[data-theme='w98'] .search-result-item.active { background: #000080; }
|
||
[data-theme='w98'] .search-result-item:hover .search-result-name,
|
||
[data-theme='w98'] .search-result-item:hover .search-result-sub,
|
||
[data-theme='w98'] .search-result-item.active .search-result-name,
|
||
[data-theme='w98'] .search-result-item.active .search-result-sub { color: #ffffff; }
|
||
[data-theme='w98'] .collapse-btn { border-color: #808080 !important; }
|
||
[data-theme='w98'] .collapse-btn:hover { background: #000080 !important; color: #ffffff !important; }
|
||
[data-theme='w98'] .album-row-nav .nav-btn:hover:not(.disabled) { background: #000080; color: #ffffff; }
|
||
|
||
/* Live-Dropdown: kein backdrop-blur (saugt teal durch), solider W98-Hintergrund */
|
||
[data-theme='w98'] .glass {
|
||
background: #d4d0c8 !important;
|
||
backdrop-filter: none !important;
|
||
-webkit-backdrop-filter: none !important;
|
||
border: 1px solid #000000;
|
||
box-shadow: inset 1px 1px #ffffff, inset -1px -1px #808080, 2px 2px 4px rgba(0,0,0,0.3);
|
||
color: #000000;
|
||
}
|
||
|
||
/* Stream-Einträge: --bg-hover ist navy → Override auf W98-Grau mit Bevel */
|
||
[data-theme='w98'] .glass [style*="var(--bg-hover)"] {
|
||
background: #ece8e0 !important;
|
||
border: 1px solid #808080;
|
||
box-shadow: inset 1px 1px #ffffff, inset -1px -1px #808080;
|
||
border-radius: 0 !important;
|
||
}
|
||
|
||
/* Inline-color-Overrides für Text in Stream-Einträgen */
|
||
[data-theme='w98'] .glass [style*="var(--text-primary)"],
|
||
[data-theme='w98'] .glass [style*="var(--text-secondary)"],
|
||
[data-theme='w98'] .glass [style*="var(--text-muted)"] {
|
||
color: #000000 !important;
|
||
}
|
||
|
||
/* ─── Global Base Settings ─── */
|
||
:root {
|
||
/* Typography */
|
||
--font-sans: 'Inter', system-ui, -apple-system, sans-serif;
|
||
--font-display: 'Space Grotesk', 'Inter', sans-serif;
|
||
|
||
/* Spacing */
|
||
--space-1: 4px;
|
||
--space-2: 8px;
|
||
--space-3: 12px;
|
||
--space-4: 16px;
|
||
--space-5: 20px;
|
||
--space-6: 24px;
|
||
--space-8: 32px;
|
||
--space-10: 40px;
|
||
|
||
/* Radii */
|
||
--radius-sm: 6px;
|
||
--radius-md: 10px;
|
||
--radius-lg: 16px;
|
||
--radius-xl: 24px;
|
||
--radius-full: 9999px;
|
||
|
||
/* Shadows */
|
||
--shadow-sm: 0 1px 3px rgba(0,0,0,0.4);
|
||
--shadow-md: 0 4px 16px rgba(0,0,0,0.5);
|
||
--shadow-lg: 0 8px 32px rgba(0,0,0,0.6);
|
||
--shadow-glow: 0 0 24px var(--accent-glow);
|
||
|
||
/* Transitions */
|
||
--transition-fast: 120ms ease;
|
||
--transition-base: 200ms ease;
|
||
--transition-slow: 350ms ease;
|
||
|
||
/* Layout */
|
||
--sidebar-width: 220px;
|
||
--player-height: 88px;
|
||
}
|
||
|
||
/* ─── Spotless ─── */
|
||
[data-theme='spotless'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23B3B3B3%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
--ctp-crust: #000000;
|
||
--ctp-mantle: #121212;
|
||
--ctp-base: #181818;
|
||
--ctp-surface0: #282828;
|
||
--ctp-surface1: #3E3E3E;
|
||
--ctp-surface2: #535353;
|
||
--ctp-overlay0: #727272;
|
||
--ctp-overlay1: #A7A7A7;
|
||
--ctp-overlay2: #B3B3B3;
|
||
--ctp-text: #FFFFFF;
|
||
--ctp-subtext1: #EBEBEB;
|
||
--ctp-subtext0: #D6D6D6;
|
||
|
||
--ctp-mauve: #1ED760;
|
||
--ctp-lavender: #1FDF64;
|
||
--ctp-green: #1ED760;
|
||
--ctp-teal: #1DF2A4;
|
||
--ctp-sky: #3D91F4;
|
||
--ctp-blue: #2E77D0;
|
||
--ctp-sapphire: #1C5599;
|
||
--ctp-pink: #E55C5C;
|
||
--ctp-flamingo: #E55C5C;
|
||
--ctp-rosewater:#FFC8C8;
|
||
--ctp-yellow: #FFA42B;
|
||
--ctp-peach: #FF7A00;
|
||
--ctp-maroon: #B22A2A;
|
||
--ctp-red: #E22134;
|
||
|
||
--bg-app: #121212;
|
||
--bg-sidebar: #000000;
|
||
--bg-card: #181818;
|
||
--bg-hover: #282828;
|
||
--bg-player: #181818;
|
||
--bg-glass: rgba(18, 18, 18, 0.85);
|
||
|
||
--accent: #1ED760;
|
||
--accent-dim: rgba(30, 215, 96, 0.15);
|
||
--accent-glow: rgba(30, 215, 96, 0.35);
|
||
--volume-accent: #FFFFFF;
|
||
|
||
--text-primary: #FFFFFF;
|
||
--text-secondary:#B3B3B3;
|
||
--text-muted: #A7A7A7;
|
||
|
||
--border: #282828;
|
||
--border-subtle: rgba(255, 255, 255, 0.1);
|
||
|
||
--positive: #1ED760;
|
||
--warning: #FFA42B;
|
||
--danger: #E22134;
|
||
|
||
--radius-sm: 4px;
|
||
--radius-md: 8px;
|
||
--radius-lg: 16px;
|
||
--radius-xl: 24px;
|
||
--radius-full: 9999px;
|
||
|
||
--shadow-sm: 0 1px 3px rgba(0,0,0,0.5);
|
||
--shadow-md: 0 4px 16px rgba(0,0,0,0.6);
|
||
--shadow-lg: 0 8px 32px rgba(0,0,0,0.7);
|
||
|
||
--transition-fast: 150ms ease;
|
||
--transition-med: 250ms ease;
|
||
--transition-slow: 350ms ease;
|
||
|
||
--sidebar-width: 220px;
|
||
--player-height: 88px;
|
||
}
|
||
|
||
[data-theme='spotless'] .sidebar {
|
||
border-right: none;
|
||
}
|
||
|
||
[data-theme='spotless'] .player-bar {
|
||
border-top: 1px solid var(--border-subtle);
|
||
}
|
||
|
||
[data-theme='spotless'] .nav-link:hover {
|
||
color: var(--text-primary);
|
||
background-color: transparent;
|
||
}
|
||
|
||
[data-theme='spotless'] .nav-link.active {
|
||
background-color: var(--bg-hover);
|
||
color: var(--text-primary);
|
||
border-radius: var(--radius-sm);
|
||
}
|
||
|
||
[data-theme='spotless'] .nav-link.active::before {
|
||
display: none;
|
||
}
|
||
|
||
[data-theme='spotless'] .btn-primary {
|
||
color: var(--ctp-crust);
|
||
border-radius: var(--radius-full);
|
||
font-weight: 700;
|
||
}
|
||
|
||
[data-theme='spotless'] .player-btn-primary {
|
||
color: var(--ctp-crust);
|
||
background-color: var(--text-primary);
|
||
border-radius: var(--radius-full);
|
||
}
|
||
|
||
[data-theme='spotless'] .player-btn-primary:hover {
|
||
background-color: var(--accent);
|
||
transform: scale(1.05);
|
||
}
|
||
|
||
[data-theme='spotless'] .queue-item:hover,
|
||
[data-theme='spotless'] .track-row:hover {
|
||
background-color: var(--bg-hover);
|
||
border-radius: var(--radius-sm);
|
||
}
|
||
|
||
/* ─── Cupertino Beats ─── */
|
||
[data-theme='cupertino-beats'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23a1a1a1%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
--ctp-crust: #000000;
|
||
--ctp-mantle: #121212;
|
||
--ctp-base: #1c1c1e;
|
||
--ctp-surface0: #2c2c2e;
|
||
--ctp-surface1: #3a3a3c;
|
||
--ctp-surface2: #48484a;
|
||
--ctp-overlay0: #636366;
|
||
--ctp-overlay1: #8e8e93;
|
||
--ctp-overlay2: #aeaeb2;
|
||
--ctp-text: #ffffff;
|
||
--ctp-subtext1: #ebebf599;
|
||
--ctp-subtext0: #ebebf560;
|
||
|
||
--ctp-mauve: #fa243c;
|
||
--ctp-lavender: #ff5e71;
|
||
--ctp-green: #34c759;
|
||
--ctp-teal: #30b0c7;
|
||
--ctp-sky: #5ac8fa;
|
||
--ctp-blue: #007aff;
|
||
--ctp-sapphire: #0051d5;
|
||
--ctp-pink: #ff2d55;
|
||
--ctp-flamingo: #ff3b30;
|
||
--ctp-rosewater:#ff9f0a;
|
||
--ctp-yellow: #ffcc00;
|
||
--ctp-peach: #ff9500;
|
||
--ctp-maroon: #af52de;
|
||
--ctp-red: #ff3b30;
|
||
|
||
--bg-app: #1c1c1e;
|
||
--bg-sidebar: rgba(18, 18, 18, 0.75);
|
||
--bg-card: #2c2c2e;
|
||
--bg-hover: rgba(255, 255, 255, 0.08);
|
||
--bg-player: rgba(0, 0, 0, 0.85);
|
||
--bg-glass: rgba(28, 28, 30, 0.6);
|
||
|
||
--accent: #fa243c;
|
||
--accent-dim: rgba(250, 36, 60, 0.15);
|
||
--accent-glow: rgba(250, 36, 60, 0.3);
|
||
--volume-accent: #fa243c;
|
||
|
||
--text-primary: #ffffff;
|
||
--text-secondary:rgba(235, 235, 245, 0.6);
|
||
--text-muted: rgba(235, 235, 245, 0.3);
|
||
|
||
--border: rgba(255, 255, 255, 0.1);
|
||
--border-subtle: rgba(255, 255, 255, 0.05);
|
||
|
||
--positive: #34c759;
|
||
--warning: #ffcc00;
|
||
--danger: #ff3b30;
|
||
|
||
--radius-sm: 8px;
|
||
--radius-md: 12px;
|
||
--radius-lg: 20px;
|
||
--radius-xl: 28px;
|
||
--radius-full: 9999px;
|
||
|
||
--shadow-sm: 0 1px 3px rgba(0,0,0,0.5);
|
||
--shadow-md: 0 4px 20px rgba(0,0,0,0.4);
|
||
--shadow-lg: 0 8px 32px rgba(0,0,0,0.6);
|
||
|
||
--transition-fast: 150ms ease;
|
||
--transition-med: 250ms ease;
|
||
--transition-slow: 350ms ease;
|
||
|
||
--sidebar-width: 220px;
|
||
--player-height: 88px;
|
||
}
|
||
|
||
[data-theme='cupertino-beats'] .sidebar {
|
||
backdrop-filter: blur(40px) saturate(180%);
|
||
-webkit-backdrop-filter: blur(40px) saturate(180%);
|
||
border-right: 1px solid var(--border);
|
||
}
|
||
|
||
[data-theme='cupertino-beats'] .player-bar {
|
||
backdrop-filter: blur(30px) saturate(150%);
|
||
-webkit-backdrop-filter: blur(30px) saturate(150%);
|
||
border-top: 1px solid var(--border);
|
||
}
|
||
|
||
[data-theme='cupertino-beats'] .nav-link.active {
|
||
background: var(--accent-dim);
|
||
color: var(--accent);
|
||
font-weight: 600;
|
||
}
|
||
|
||
[data-theme='cupertino-beats'] .nav-link.active::before {
|
||
width: 4px;
|
||
border-radius: 0 4px 4px 0;
|
||
}
|
||
|
||
/* ─── Dzr0 ─── */
|
||
[data-theme='dzr0'] {
|
||
color-scheme: light;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23A238FF%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
--ctp-crust: #E5E5E9;
|
||
--ctp-mantle: #F5F5F7;
|
||
--ctp-base: #FFFFFF;
|
||
--ctp-surface0: #F0F0F3;
|
||
--ctp-surface1: #E8E8EC;
|
||
--ctp-surface2: #D8D8DF;
|
||
--ctp-overlay0: #9E9EAF;
|
||
--ctp-overlay1: #7C7C8F;
|
||
--ctp-overlay2: #5D5D70;
|
||
--ctp-text: #121216;
|
||
--ctp-subtext1: #4A4A5A;
|
||
--ctp-subtext0: #6A6A7A;
|
||
|
||
--ctp-mauve: #A238FF;
|
||
--ctp-lavender: #B86BFF;
|
||
--ctp-green: #00C171;
|
||
--ctp-teal: #00C171;
|
||
--ctp-sky: #3D91F4;
|
||
--ctp-blue: #2E77D0;
|
||
--ctp-sapphire: #1C5599;
|
||
--ctp-pink: #EF3B5D;
|
||
--ctp-flamingo: #EF3B5D;
|
||
--ctp-rosewater:#FFC8C8;
|
||
--ctp-yellow: #FFCC00;
|
||
--ctp-peach: #FF7A00;
|
||
--ctp-maroon: #B22A2A;
|
||
--ctp-red: #EF3B5D;
|
||
|
||
--bg-app: #FFFFFF;
|
||
--bg-sidebar: #F5F5F7;
|
||
--bg-card: #FBFBFC;
|
||
--bg-hover: #F0F0F3;
|
||
--bg-player: #FFFFFF;
|
||
--bg-glass: rgba(255, 255, 255, 0.85);
|
||
|
||
--accent: #A238FF;
|
||
--accent-dim: rgba(162, 56, 255, 0.12);
|
||
--accent-glow: rgba(162, 56, 255, 0.25);
|
||
--volume-accent: #A238FF;
|
||
|
||
--text-primary: #121216;
|
||
--text-secondary:#4A4A5A;
|
||
--text-muted: #6B6B7A;
|
||
|
||
--border: #E2E2E9;
|
||
--border-subtle: #F0F0F5;
|
||
|
||
--positive: #00C171;
|
||
--warning: #FFCC00;
|
||
--danger: #EF3B5D;
|
||
|
||
--radius-sm: 8px;
|
||
--radius-md: 12px;
|
||
--radius-lg: 20px;
|
||
--radius-xl: 28px;
|
||
--radius-full: 9999px;
|
||
|
||
--shadow-sm: 0 1px 3px rgba(0,0,0,0.08);
|
||
--shadow-md: 0 4px 16px rgba(0,0,0,0.10);
|
||
--shadow-lg: 0 8px 32px rgba(0,0,0,0.12);
|
||
|
||
--transition-fast: 150ms ease;
|
||
--transition-med: 250ms ease;
|
||
--transition-slow: 350ms ease;
|
||
|
||
--sidebar-width: 220px;
|
||
--player-height: 88px;
|
||
}
|
||
|
||
[data-theme='dzr0'] .player-bar {
|
||
border-top: 1px solid var(--border-subtle);
|
||
box-shadow: 0 -4px 12px rgba(0,0,0,0.03);
|
||
}
|
||
|
||
[data-theme='dzr0'] .player-track-name,
|
||
[data-theme='dzr0'] .player-time,
|
||
[data-theme='dzr0'] .player-track-artist {
|
||
color: var(--text-primary) !important;
|
||
}
|
||
|
||
[data-theme='dzr0'] .sidebar {
|
||
border-right: 1px solid var(--border-subtle);
|
||
}
|
||
|
||
[data-theme='dzr0'] .nav-link:hover {
|
||
background-color: var(--bg-hover);
|
||
color: var(--accent);
|
||
}
|
||
|
||
[data-theme='dzr0'] .nav-link.active {
|
||
background-color: var(--accent-dim);
|
||
color: var(--accent);
|
||
font-weight: 600;
|
||
}
|
||
|
||
[data-theme='dzr0'] .btn-primary {
|
||
color: #FFFFFF !important;
|
||
}
|
||
|
||
/* ─── Reset ─── */
|
||
*, *::before, *::after {
|
||
box-sizing: border-box;
|
||
margin: 0;
|
||
padding: 0;
|
||
}
|
||
|
||
html, body, #root {
|
||
height: 100%;
|
||
min-width: 1280px;
|
||
min-height: 720px;
|
||
overflow: hidden;
|
||
}
|
||
|
||
body {
|
||
font-family: var(--font-sans);
|
||
font-size: 14px;
|
||
line-height: 1.5;
|
||
color: var(--text-primary);
|
||
user-select: none;
|
||
background: var(--bg-app);
|
||
-webkit-font-smoothing: antialiased;
|
||
-moz-osx-font-smoothing: grayscale;
|
||
user-select: none;
|
||
}
|
||
|
||
/* Allow text selection in specific areas */
|
||
input, textarea, [data-selectable] {
|
||
user-select: text;
|
||
}
|
||
|
||
a { color: inherit; text-decoration: none; }
|
||
button { cursor: pointer; border: none; background: none; font: inherit; color: inherit; }
|
||
img { display: block; max-width: 100%; }
|
||
ul, ol { list-style: none; }
|
||
|
||
/* ─── Scrollbars ─── */
|
||
::-webkit-scrollbar { width: 5px; height: 5px; }
|
||
::-webkit-scrollbar-track { background: transparent; }
|
||
::-webkit-scrollbar-thumb {
|
||
background: transparent;
|
||
border-radius: var(--radius-full);
|
||
transition: background 0.3s ease;
|
||
}
|
||
*:hover::-webkit-scrollbar-thumb { background: var(--ctp-surface2); }
|
||
.is-scrolling::-webkit-scrollbar-thumb { background: var(--ctp-surface2); }
|
||
::-webkit-scrollbar-thumb:hover { background: var(--ctp-overlay0); }
|
||
|
||
/* ─── Focus ─── */
|
||
:focus-visible {
|
||
outline: 2px solid var(--accent);
|
||
outline-offset: 2px;
|
||
border-radius: var(--radius-sm);
|
||
}
|
||
|
||
/* ─── Global Dragging State ─── */
|
||
body.is-dragging,
|
||
body.is-dragging * {
|
||
user-select: none !important;
|
||
cursor: col-resize !important;
|
||
}
|
||
|
||
/* ─── Utility Classes ─── */
|
||
.glass {
|
||
background: var(--bg-glass, rgba(30, 30, 46, 0.75));
|
||
backdrop-filter: blur(20px);
|
||
-webkit-backdrop-filter: blur(20px);
|
||
border: 1px solid var(--border-subtle);
|
||
}
|
||
|
||
.gradient-text {
|
||
background: linear-gradient(135deg, var(--ctp-mauve), var(--ctp-blue));
|
||
-webkit-background-clip: text;
|
||
-webkit-text-fill-color: transparent;
|
||
background-clip: text;
|
||
}
|
||
|
||
.truncate {
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
.visually-hidden {
|
||
position: absolute;
|
||
width: 1px;
|
||
height: 1px;
|
||
overflow: hidden;
|
||
clip: rect(0,0,0,0);
|
||
}
|
||
|
||
/* ─── Button Variants ─── */
|
||
.btn {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: var(--space-2);
|
||
padding: var(--space-2) var(--space-4);
|
||
border-radius: var(--radius-md);
|
||
font-size: 14px;
|
||
font-weight: 500;
|
||
transition: all var(--transition-fast);
|
||
white-space: nowrap;
|
||
}
|
||
|
||
.btn-primary {
|
||
background: var(--accent);
|
||
color: var(--ctp-crust);
|
||
font-weight: 600;
|
||
}
|
||
.btn-primary:hover { background: var(--accent); filter: brightness(1.1); transform: translateY(-1px); box-shadow: var(--shadow-glow); }
|
||
.btn-primary:active { transform: translateY(0); }
|
||
|
||
.btn-ghost {
|
||
background: transparent;
|
||
color: var(--text-secondary);
|
||
}
|
||
.btn-ghost:hover { background: var(--bg-hover); color: var(--text-primary); }
|
||
|
||
.btn-surface {
|
||
background: var(--bg-card);
|
||
color: var(--text-primary);
|
||
}
|
||
.btn-surface:hover { background: var(--bg-hover); }
|
||
|
||
/* ─── Input ─── */
|
||
.input {
|
||
width: 100%;
|
||
padding: var(--space-3) var(--space-4);
|
||
background: var(--ctp-base);
|
||
border: 1px solid var(--ctp-overlay0);
|
||
border-radius: var(--radius-md);
|
||
color: var(--text-primary);
|
||
font-family: var(--font-sans);
|
||
font-size: 14px;
|
||
transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);
|
||
outline: none;
|
||
}
|
||
.input::placeholder { color: var(--text-muted); }
|
||
.input:focus {
|
||
border-color: var(--accent);
|
||
box-shadow: 0 0 0 3px var(--accent-dim);
|
||
}
|
||
|
||
select.input {
|
||
appearance: none;
|
||
-webkit-appearance: none;
|
||
background-image: var(--select-arrow);
|
||
background-repeat: no-repeat;
|
||
background-position: right 12px center;
|
||
background-size: 16px;
|
||
padding-right: 40px;
|
||
cursor: pointer;
|
||
}
|
||
|
||
select.input.input:focus {
|
||
background-image: var(--select-arrow); /* Keep arrow on focus */
|
||
}
|
||
|
||
/* ─── Card ─── */
|
||
.card {
|
||
background: var(--bg-card);
|
||
border-radius: var(--radius-lg);
|
||
border: 1px solid var(--border-subtle);
|
||
overflow: hidden;
|
||
transition: transform var(--transition-base), box-shadow var(--transition-base);
|
||
}
|
||
.card:hover {
|
||
transform: translateY(-2px);
|
||
box-shadow: var(--shadow-md);
|
||
}
|
||
|
||
/* ─── Album Grid ─── */
|
||
.album-grid {
|
||
display: grid;
|
||
grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
|
||
gap: var(--space-4);
|
||
}
|
||
|
||
/* ─── Scrollable area ─── */
|
||
.scroll-area {
|
||
overflow-y: auto;
|
||
overflow-x: hidden;
|
||
flex: 1;
|
||
}
|
||
|
||
/* ─── Divider ─── */
|
||
.divider {
|
||
height: 1px;
|
||
background: var(--border-subtle);
|
||
margin: var(--space-4) 0;
|
||
}
|
||
|
||
/* ─── Badge ─── */
|
||
.badge {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
padding: 2px var(--space-2);
|
||
border-radius: var(--radius-full);
|
||
font-size: 11px;
|
||
font-weight: 600;
|
||
letter-spacing: 0.03em;
|
||
background: var(--accent-dim);
|
||
color: var(--accent);
|
||
}
|
||
|
||
/* ─── Star Rating ─── */
|
||
.star-rating {
|
||
display: flex;
|
||
gap: 2px;
|
||
color: var(--ctp-overlay1);
|
||
justify-content: center;
|
||
width: 100%;
|
||
}
|
||
.star-rating .star.filled { color: var(--ctp-yellow); }
|
||
.star-rating .star:hover { color: var(--ctp-yellow); cursor: pointer; }
|
||
|
||
/* ─── Animations ─── */
|
||
@keyframes fadeIn {
|
||
from { opacity: 0; transform: translateY(8px); }
|
||
to { opacity: 1; transform: translateY(0); }
|
||
}
|
||
|
||
@keyframes slideIn {
|
||
from { opacity: 0; transform: translateX(-12px); }
|
||
to { opacity: 1; transform: translateX(0); }
|
||
}
|
||
|
||
@keyframes pulse {
|
||
0%, 100% { opacity: 1; }
|
||
50% { opacity: 0.5; }
|
||
}
|
||
|
||
@keyframes spin {
|
||
to { transform: rotate(360deg); }
|
||
}
|
||
|
||
@keyframes wave {
|
||
0%, 100% { transform: scaleY(0.4); }
|
||
50% { transform: scaleY(1); }
|
||
}
|
||
|
||
.animate-fade-in { animation: fadeIn var(--transition-slow) both; }
|
||
.animate-slide-in { animation: slideIn var(--transition-slow) both; }
|
||
.animate-pulse { animation: pulse 1.5s ease infinite; }
|
||
.animate-spin { animation: spin 1s linear infinite; }
|
||
|
||
/* ─── Progress / Range ─── */
|
||
input[type="range"] {
|
||
-webkit-appearance: none;
|
||
appearance: none;
|
||
height: 4px;
|
||
border-radius: var(--radius-full);
|
||
background: var(--ctp-surface2);
|
||
outline: none;
|
||
cursor: pointer;
|
||
transition: all var(--transition-fast);
|
||
}
|
||
|
||
input[type="range"]::-webkit-slider-thumb {
|
||
-webkit-appearance: none;
|
||
width: 14px;
|
||
height: 14px;
|
||
border-radius: 50%;
|
||
background: var(--text-primary);
|
||
cursor: pointer;
|
||
transition: transform var(--transition-fast), background var(--transition-fast);
|
||
box-shadow: var(--shadow-sm);
|
||
}
|
||
|
||
input[type="range"]:hover::-webkit-slider-thumb {
|
||
transform: scale(1.2);
|
||
background: var(--accent);
|
||
}
|
||
|
||
/* ─── Loading Spinner ─── */
|
||
.spinner {
|
||
width: 24px;
|
||
height: 24px;
|
||
border: 2px solid var(--border);
|
||
border-top-color: var(--accent);
|
||
border-radius: 50%;
|
||
animation: spin 0.7s linear infinite;
|
||
}
|
||
|
||
/* ─── Musicmatch Jukebox — Y2K Metallic Silver / Blue Display ─── */
|
||
[data-theme='muma-jukebox'] {
|
||
color-scheme: light;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%234a4a4a%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* ── Palette ── */
|
||
--ctp-crust: #001358; /* deep blue — LCD display */
|
||
--ctp-mantle: #b5babc; /* dark silver — panels, sidebar */
|
||
--ctp-base: #d4d8db; /* metallic silver — main body */
|
||
--ctp-surface0: #c8ccce;
|
||
--ctp-surface1: #bec2c4;
|
||
--ctp-surface2: #8a9094; /* border gray */
|
||
--ctp-overlay0: #6a7074;
|
||
--ctp-overlay1: #505458;
|
||
--ctp-overlay2: #3a3e42;
|
||
--ctp-text: #1a1a1a;
|
||
--ctp-subtext1: #3a3a3a;
|
||
--ctp-subtext0: #4a4a4a;
|
||
/* Cyan accent + Musicmatch orange */
|
||
--ctp-mauve: #00d0ff; /* cyan — primary accent */
|
||
--ctp-lavender: #40e0ff;
|
||
--ctp-sky: #00c0e8;
|
||
--ctp-sapphire: #0088c8;
|
||
--ctp-blue: #0058b8;
|
||
--ctp-teal: #009898;
|
||
--ctp-green: #008840;
|
||
--ctp-yellow: #cc8800;
|
||
--ctp-peach: #ff6600; /* Musicmatch orange — secondary accent */
|
||
--ctp-pink: #d04060;
|
||
--ctp-flamingo: #c05040;
|
||
--ctp-rosewater: #c87060;
|
||
--ctp-maroon: #b02828;
|
||
--ctp-red: #c82020;
|
||
|
||
/* ── Semantic tokens ── */
|
||
--bg-app: #d4d8db;
|
||
--bg-sidebar: #b5babc;
|
||
--bg-card: #c8ccce;
|
||
--bg-hover: #bec2c4;
|
||
--bg-player: #001358; /* LCD display — deep blue */
|
||
--bg-glass: rgba(212, 216, 219, 0.92);
|
||
--accent: #00d0ff;
|
||
--accent-dim: rgba(0, 208, 255, 0.15);
|
||
--accent-glow: rgba(0, 208, 255, 0.35);
|
||
--volume-accent: #ff6600; /* Musicmatch orange for volume */
|
||
--text-primary: #1a1a1a;
|
||
--text-secondary:#4a4a4a;
|
||
--text-muted: #909090;
|
||
--border: #8a9094;
|
||
--border-subtle: #c0c4c6;
|
||
--positive: #008840;
|
||
--warning: #cc8800;
|
||
--danger: #c82020;
|
||
}
|
||
|
||
/* ── Musicmatch: contrast fixes ── */
|
||
[data-theme='muma-jukebox'] .queue-round-btn.active { color: #001358; }
|
||
|
||
/* Accent-coloured text on silver body needs to be darker */
|
||
[data-theme='muma-jukebox'] {
|
||
--accent: #0070a0;
|
||
--accent-dim: rgba(0, 112, 160, 0.15);
|
||
--accent-glow: rgba(0, 112, 160, 0.35);
|
||
}
|
||
|
||
/* Player bar keeps the bright cyan since it's on dark blue bg */
|
||
[data-theme='muma-jukebox'] .player-bar { --accent: #00d0ff; }
|
||
|
||
/* ── Metallic bevel buttons ── */
|
||
[data-theme='muma-jukebox'] .btn {
|
||
background: linear-gradient(180deg, #e4e8eb 0%, #c0c4c7 100%);
|
||
color: #1a1a1a;
|
||
box-shadow:
|
||
inset 1px 1px 0 rgba(255,255,255,0.9),
|
||
inset -1px -1px 0 rgba(0,0,0,0.28),
|
||
0 1px 3px rgba(0,0,0,0.2);
|
||
border-radius: 4px;
|
||
}
|
||
[data-theme='muma-jukebox'] .btn:hover {
|
||
background: linear-gradient(180deg, #eceef0 0%, #cacdd0 100%);
|
||
}
|
||
[data-theme='muma-jukebox'] .btn-primary {
|
||
background: linear-gradient(180deg, #40e0ff 0%, #00a8d8 100%);
|
||
color: #001358;
|
||
font-weight: 600;
|
||
box-shadow:
|
||
inset 1px 1px 0 rgba(255,255,255,0.6),
|
||
inset -1px -1px 0 rgba(0,60,120,0.4),
|
||
0 1px 4px rgba(0,0,0,0.25);
|
||
border-radius: 4px;
|
||
}
|
||
[data-theme='muma-jukebox'] .btn-primary:hover {
|
||
background: linear-gradient(180deg, #60e8ff 0%, #20c0f0 100%);
|
||
}
|
||
|
||
/* ── Player bar: blue LCD display area ── */
|
||
[data-theme='muma-jukebox'] .player-bar {
|
||
background: #001358;
|
||
border-top: 3px solid #8a9094;
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255,255,255,0.08),
|
||
inset 0 2px 12px rgba(0,0,0,0.4);
|
||
}
|
||
[data-theme='muma-jukebox'] .player-track-name {
|
||
color: #ffffff;
|
||
text-shadow: 0 0 8px rgba(0,208,255,0.75), 0 0 2px rgba(0,208,255,0.4);
|
||
letter-spacing: 0.02em;
|
||
}
|
||
[data-theme='muma-jukebox'] .player-track-artist {
|
||
color: #00d0ff;
|
||
opacity: 0.9;
|
||
}
|
||
[data-theme='muma-jukebox'] .player-btn,
|
||
[data-theme='muma-jukebox'] .player-btn-primary {
|
||
background: linear-gradient(180deg, #1a2880 0%, #000e40 100%);
|
||
color: #00d0ff;
|
||
box-shadow:
|
||
inset 1px 1px 0 rgba(0,208,255,0.25),
|
||
inset -1px -1px 0 rgba(0,0,0,0.5),
|
||
0 2px 5px rgba(0,0,0,0.4);
|
||
border-radius: 50%;
|
||
}
|
||
[data-theme='muma-jukebox'] .player-btn:hover,
|
||
[data-theme='muma-jukebox'] .player-btn-primary:hover {
|
||
background: linear-gradient(180deg, #2030a0 0%, #001060 100%);
|
||
color: #40e8ff;
|
||
}
|
||
|
||
/* ── Sidebar: brushed-metal panel ── */
|
||
[data-theme='muma-jukebox'] .sidebar {
|
||
background: linear-gradient(180deg, #c8ccce 0%, #b0b4b7 100%);
|
||
border-right: 2px solid #7a8084;
|
||
box-shadow: inset -2px 0 0 rgba(255,255,255,0.5), 2px 0 4px rgba(0,0,0,0.15);
|
||
}
|
||
|
||
/* Nav links on silver: look like Windows panel items */
|
||
[data-theme='muma-jukebox'] .nav-link {
|
||
color: #1a1a2a;
|
||
border-radius: 3px;
|
||
margin: 1px 4px;
|
||
}
|
||
[data-theme='muma-jukebox'] .nav-link:hover {
|
||
background: linear-gradient(180deg, #dde2e5 0%, #c8ccce 100%);
|
||
box-shadow: inset 1px 1px 0 rgba(255,255,255,0.8), inset -1px -1px 0 rgba(0,0,0,0.15);
|
||
color: #0070a0;
|
||
}
|
||
[data-theme='muma-jukebox'] .nav-link.active {
|
||
background: linear-gradient(180deg, #b8c8e0 0%, #9ab0d0 100%);
|
||
box-shadow:
|
||
inset 1px 1px 0 rgba(0,0,0,0.15),
|
||
inset -1px -1px 0 rgba(255,255,255,0.5);
|
||
color: #001358;
|
||
font-weight: 600;
|
||
}
|
||
[data-theme='muma-jukebox'] .nav-link.active::before { display: none; }
|
||
|
||
/* ── Cards / panels: inset bevel ── */
|
||
[data-theme='muma-jukebox'] .glass,
|
||
[data-theme='muma-jukebox'] .card {
|
||
background: #d4d8db;
|
||
box-shadow:
|
||
inset 1px 1px 0 rgba(255,255,255,0.85),
|
||
inset -1px -1px 0 rgba(0,0,0,0.15),
|
||
0 2px 6px rgba(0,0,0,0.1);
|
||
border: 1px solid #9a9ea0 !important;
|
||
}
|
||
|
||
/* ── Track rows: Windows XP list selection ── */
|
||
[data-theme='muma-jukebox'] .track-row:hover,
|
||
[data-theme='muma-jukebox'] .track-row.context-active {
|
||
background: #316AC5 !important;
|
||
color: #ffffff !important;
|
||
box-shadow: none;
|
||
}
|
||
[data-theme='muma-jukebox'] .track-row:hover .track-title,
|
||
[data-theme='muma-jukebox'] .track-row:hover .track-artist,
|
||
[data-theme='muma-jukebox'] .track-row:hover .track-duration,
|
||
[data-theme='muma-jukebox'] .track-row:hover .track-num,
|
||
[data-theme='muma-jukebox'] .track-row.context-active .track-title,
|
||
[data-theme='muma-jukebox'] .track-row.context-active .track-artist { color: #ffffff !important; }
|
||
|
||
/* ── Queue items ── */
|
||
[data-theme='muma-jukebox'] .queue-item:hover,
|
||
[data-theme='muma-jukebox'] .queue-item.context-active {
|
||
background: #316AC5 !important;
|
||
}
|
||
[data-theme='muma-jukebox'] .queue-item:hover .queue-item-title,
|
||
[data-theme='muma-jukebox'] .queue-item:hover .queue-item-artist,
|
||
[data-theme='muma-jukebox'] .queue-item:hover .queue-item-duration,
|
||
[data-theme='muma-jukebox'] .queue-item.context-active .queue-item-title,
|
||
[data-theme='muma-jukebox'] .queue-item.context-active .queue-item-artist { color: #ffffff !important; }
|
||
[data-theme='muma-jukebox'] .queue-item.active {
|
||
background: rgba(0, 112, 160, 0.14);
|
||
box-shadow: inset 3px 0 0 #0070a0;
|
||
}
|
||
[data-theme='muma-jukebox'] .np-queue-item:hover,
|
||
[data-theme='muma-jukebox'] .np-queue-item.context-active {
|
||
background: #316AC5;
|
||
}
|
||
[data-theme='muma-jukebox'] .np-queue-item-active { color: #001358; font-weight: 600; }
|
||
[data-theme='muma-jukebox'] .np-queue-item.active { background: rgba(49,106,197,0.18); }
|
||
|
||
/* ── Artist / playlist rows ── */
|
||
[data-theme='muma-jukebox'] .artist-row:hover,
|
||
[data-theme='muma-jukebox'] .playlist-row:hover {
|
||
background: #316AC5;
|
||
color: #ffffff;
|
||
}
|
||
|
||
/* ── Settings tabs: XP tab strip ── */
|
||
[data-theme='muma-jukebox'] .settings-tab {
|
||
background: linear-gradient(180deg, #d4d8db 0%, #c0c4c7 100%);
|
||
border: 1px solid #9a9ea0;
|
||
color: #1a1a1a;
|
||
border-radius: 3px 3px 0 0;
|
||
margin-right: 2px;
|
||
}
|
||
[data-theme='muma-jukebox'] .settings-tab:hover {
|
||
background: linear-gradient(180deg, #dde2e5 0%, #cacdd0 100%);
|
||
color: #0070a0;
|
||
}
|
||
[data-theme='muma-jukebox'] .settings-tab.active {
|
||
background: linear-gradient(180deg, #ffffff 0%, #f0f4f8 100%);
|
||
color: #001358;
|
||
font-weight: 600;
|
||
box-shadow: inset 0 2px 0 #0070a0;
|
||
border-bottom-color: transparent;
|
||
}
|
||
|
||
/* ── Queue tab buttons ── */
|
||
[data-theme='muma-jukebox'] .queue-tab-btn:hover { color: #0070a0; }
|
||
|
||
/* ── Now-playing active ── */
|
||
[data-theme='muma-jukebox'] .np-album-track.active .np-album-track-title,
|
||
[data-theme='muma-jukebox'] .np-album-track.active .np-album-track-num {
|
||
color: #0070a0;
|
||
font-weight: 600;
|
||
}
|
||
|
||
/* ── Scrollbar: XP silver ── */
|
||
[data-theme='muma-jukebox'] ::-webkit-scrollbar { width: 16px; height: 16px; }
|
||
[data-theme='muma-jukebox'] ::-webkit-scrollbar-track {
|
||
background: linear-gradient(90deg, #c0c4c7 0%, #d4d8db 100%);
|
||
border: 1px solid #9a9ea0;
|
||
}
|
||
[data-theme='muma-jukebox'] ::-webkit-scrollbar-thumb {
|
||
background: linear-gradient(180deg, #dde2e5 0%, #b8bcbf 100%);
|
||
border: 1px solid #9a9ea0;
|
||
box-shadow: inset 1px 1px 0 rgba(255,255,255,0.7), inset -1px -1px 0 rgba(0,0,0,0.15);
|
||
}
|
||
[data-theme='muma-jukebox'] ::-webkit-scrollbar-thumb:hover {
|
||
background: linear-gradient(180deg, #e8ecf0 0%, #c8ccce 100%);
|
||
}
|
||
[data-theme='muma-jukebox'] ::-webkit-scrollbar-button {
|
||
background: linear-gradient(180deg, #dde2e5 0%, #b8bcbf 100%);
|
||
border: 1px solid #9a9ea0;
|
||
height: 16px;
|
||
}
|
||
|
||
/* ── Dropdowns ── */
|
||
[data-theme='muma-jukebox'] .custom-select-trigger {
|
||
background: linear-gradient(180deg, #e4e8eb 0%, #d4d8db 100%);
|
||
border: 1px solid #9a9ea0;
|
||
box-shadow: inset 1px 1px 0 rgba(255,255,255,0.7);
|
||
}
|
||
[data-theme='muma-jukebox'] .custom-select-option:hover {
|
||
background: #316AC5 !important;
|
||
color: #ffffff !important;
|
||
}
|
||
|
||
/* ── Connection indicators ── */
|
||
[data-theme='muma-jukebox'] .connection-type,
|
||
[data-theme='muma-jukebox'] .connection-server { color: #0070a0; }
|
||
|
||
/* ── Orange: volume knob + active/playing states ── */
|
||
/* Knob is var(--text-primary) by default = near-black on silver → fix to orange */
|
||
[data-theme='muma-jukebox'] input[type="range"]::-webkit-slider-thumb {
|
||
background: #ff6600;
|
||
box-shadow: inset 1px 1px 0 rgba(255,180,80,0.7), inset -1px -1px 0 rgba(160,40,0,0.4);
|
||
}
|
||
[data-theme='muma-jukebox'] input[type="range"]:hover::-webkit-slider-thumb {
|
||
background: #ff8020;
|
||
}
|
||
|
||
/* Active queue item: orange left bar instead of blue */
|
||
[data-theme='muma-jukebox'] .queue-item.active {
|
||
background: rgba(255, 102, 0, 0.1);
|
||
box-shadow: inset 3px 0 0 #ff6600;
|
||
}
|
||
[data-theme='muma-jukebox'] .np-queue-item-active {
|
||
color: #cc4400;
|
||
font-weight: 600;
|
||
}
|
||
[data-theme='muma-jukebox'] .np-queue-item.active {
|
||
background: rgba(255, 102, 0, 0.1);
|
||
}
|
||
|
||
/* Now-playing active track = orange brand color */
|
||
[data-theme='muma-jukebox'] .np-album-track.active .np-album-track-title,
|
||
[data-theme='muma-jukebox'] .np-album-track.active .np-album-track-num {
|
||
color: #cc4400;
|
||
font-weight: 600;
|
||
}
|
||
|
||
/* Active nav link: orange accent text */
|
||
[data-theme='muma-jukebox'] .nav-link.active { color: #cc4400; }
|
||
|
||
/* Settings tab active: orange top border */
|
||
[data-theme='muma-jukebox'] .settings-tab.active {
|
||
box-shadow: inset 0 2px 0 #ff6600;
|
||
color: #cc4400;
|
||
}
|
||
|
||
/* Track row playing indicator (now-playing track-num shown in orange) */
|
||
[data-theme='muma-jukebox'] .track-row.playing .track-num { color: #ff6600; }
|
||
|
||
/* Player bar artist: keep cyan, but LCD progress/waveform in orange */
|
||
[data-theme='muma-jukebox'] .player-bar input[type="range"]::-webkit-slider-thumb {
|
||
background: #ff6600;
|
||
}
|
||
/* Waveform: orange played, cyan buffered, dim unplayed */
|
||
[data-theme='muma-jukebox'] {
|
||
--waveform-played: #ff6600;
|
||
--waveform-buffered: #00d0ff;
|
||
--waveform-unplayed: #3a5080;
|
||
}
|
||
|
||
/* ── Hero readability on silver background ── */
|
||
[data-theme='muma-jukebox'] .album-detail-badge {
|
||
background: #0070a0;
|
||
color: #ffffff;
|
||
}
|
||
[data-theme='muma-jukebox'] .album-detail-info {
|
||
color: #4a4a4a;
|
||
}
|
||
|
||
/* ─── WMP8 Classic — Windows Media Player 8 / XP Luna ─── */
|
||
[data-theme='winmedplayer'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23c2d4f2%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* ── Palette ── */
|
||
--ctp-crust: #000000; /* black — LCD display / playlist */
|
||
--ctp-mantle: #1a3060; /* darkest blue — sidebar */
|
||
--ctp-base: #3a62a5; /* Luna blue — main body (dark enough for white text) */
|
||
--ctp-surface0: #4a72b8;
|
||
--ctp-surface1: #5480cc;
|
||
--ctp-surface2: #6090d8;
|
||
--ctp-overlay0: #7090c0;
|
||
--ctp-overlay1: #8aaad8;
|
||
--ctp-overlay2: #a0c0e8;
|
||
--ctp-text: #ffffff;
|
||
--ctp-subtext1: #dce8ff;
|
||
--ctp-subtext0: #b8d0f8;
|
||
/* WMP green + XP blue-cool palette */
|
||
--ctp-mauve: #45ff00; /* WMP poison green — primary accent */
|
||
--ctp-lavender: #70ff40;
|
||
--ctp-green: #30dd00;
|
||
--ctp-teal: #00cc88;
|
||
--ctp-sky: #88ccff;
|
||
--ctp-blue: #5599ee;
|
||
--ctp-sapphire: #3378cc;
|
||
--ctp-pink: #ff88cc;
|
||
--ctp-flamingo: #ff7788;
|
||
--ctp-rosewater: #ffaabb;
|
||
--ctp-yellow: #ffdd44;
|
||
--ctp-peach: #ff9944;
|
||
--ctp-maroon: #dd4455;
|
||
--ctp-red: #ee3344;
|
||
|
||
/* ── Semantic tokens ── */
|
||
--bg-app: #3a62a5; /* ~12% luminance → white contrast 6:1 */
|
||
--bg-sidebar: #1a3060;
|
||
--bg-card: #4a72b8;
|
||
--bg-hover: #5480cc;
|
||
--bg-player: #000000;
|
||
--bg-glass: rgba(30, 58, 110, 0.88);
|
||
--accent: #45ff00;
|
||
--accent-dim: rgba(69, 255, 0, 0.15);
|
||
--accent-glow: rgba(69, 255, 0, 0.45);
|
||
--text-primary: #ffffff;
|
||
--text-secondary:#dce8ff;
|
||
--text-muted: #b8d0f8; /* lighter so readable on #3a62a5 */
|
||
--border: #2a5090;
|
||
--border-subtle: #4a72b8;
|
||
--positive: #30dd00;
|
||
--warning: #ffdd44;
|
||
--danger: #ee3344;
|
||
}
|
||
|
||
/* ── WMP8: Luna-style gradients + skeuomorphic detail ── */
|
||
|
||
/* Sidebar: deep WMP task-pane blue */
|
||
[data-theme='winmedplayer'] .sidebar {
|
||
background: linear-gradient(180deg, #244080 0%, #1a3060 60%, #0e2048 100%);
|
||
border-right: 2px solid #0e2048;
|
||
box-shadow: inset -1px 0 0 rgba(120, 160, 220, 0.2);
|
||
}
|
||
|
||
/* Main body: Luna blue */
|
||
[data-theme='winmedplayer'] .app-shell {
|
||
background: linear-gradient(160deg, #4a72b8 0%, #3a62a5 40%, #2e5498 100%);
|
||
}
|
||
|
||
/* Player bar: black LCD display with green glow ambience */
|
||
[data-theme='winmedplayer'] .player-bar {
|
||
background: #000000;
|
||
border-top: 2px solid #1a3060;
|
||
box-shadow: inset 0 1px 0 rgba(69, 255, 0, 0.06), 0 -2px 12px rgba(0, 0, 0, 0.6);
|
||
}
|
||
|
||
/* Track name: WMP green glow */
|
||
[data-theme='winmedplayer'] .player-track-name {
|
||
color: #45ff00;
|
||
text-shadow:
|
||
0 0 8px rgba(69, 255, 0, 0.80),
|
||
0 0 16px rgba(69, 255, 0, 0.40),
|
||
0 0 2px rgba(69, 255, 0, 0.60);
|
||
letter-spacing: 0.03em;
|
||
}
|
||
|
||
[data-theme='winmedplayer'] .player-track-artist {
|
||
color: #30dd00;
|
||
opacity: 0.85;
|
||
text-shadow: 0 0 4px rgba(69, 255, 0, 0.4);
|
||
}
|
||
|
||
/* Transport buttons: round, radial metallic gradient, drop shadow */
|
||
[data-theme='winmedplayer'] .player-btn,
|
||
[data-theme='winmedplayer'] .player-btn-primary {
|
||
background: radial-gradient(circle at 38% 32%, #c8dcf8 0%, #8aacdc 40%, #4870b8 100%);
|
||
color: #ffffff;
|
||
border-radius: 50%;
|
||
box-shadow:
|
||
0 3px 8px rgba(0, 0, 0, 0.55),
|
||
0 1px 2px rgba(0, 0, 0, 0.35),
|
||
inset 0 1px 0 rgba(255, 255, 255, 0.55),
|
||
inset 0 -1px 0 rgba(0, 0, 50, 0.3);
|
||
border: 1px solid #2a5090;
|
||
}
|
||
|
||
[data-theme='winmedplayer'] .player-btn:hover,
|
||
[data-theme='winmedplayer'] .player-btn-primary:hover {
|
||
background: radial-gradient(circle at 38% 32%, #d8ecff 0%, #a0c0ee 40%, #5888d0 100%);
|
||
box-shadow:
|
||
0 4px 10px rgba(0, 0, 0, 0.55),
|
||
0 1px 2px rgba(0, 0, 0, 0.35),
|
||
inset 0 1px 0 rgba(255, 255, 255, 0.6),
|
||
inset 0 -1px 0 rgba(0, 0, 50, 0.3);
|
||
}
|
||
|
||
/* Regular buttons: Luna soft rounded pill */
|
||
[data-theme='winmedplayer'] .btn {
|
||
background: linear-gradient(180deg, #b8d0f0 0%, #7898d8 55%, #5878c0 100%);
|
||
color: #ffffff;
|
||
border-radius: 12px;
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255, 255, 255, 0.5),
|
||
inset 0 -1px 0 rgba(0, 0, 80, 0.25),
|
||
0 2px 4px rgba(0, 0, 0, 0.3);
|
||
border: 1px solid #3a60b0;
|
||
}
|
||
|
||
[data-theme='winmedplayer'] .btn:hover {
|
||
background: linear-gradient(180deg, #cce0ff 0%, #90aaee 55%, #6888d0 100%);
|
||
}
|
||
|
||
[data-theme='winmedplayer'] .btn-primary {
|
||
background: linear-gradient(180deg, #70ff40 0%, #38cc00 55%, #28aa00 100%);
|
||
color: #003300;
|
||
border: 1px solid #208800;
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255, 255, 255, 0.5),
|
||
inset 0 -1px 0 rgba(0, 60, 0, 0.25),
|
||
0 2px 6px rgba(0, 0, 0, 0.3),
|
||
0 0 8px rgba(69, 255, 0, 0.25);
|
||
}
|
||
|
||
/* Active queue round buttons: green bg, dark text */
|
||
[data-theme='winmedplayer'] .queue-round-btn.active {
|
||
color: #003300;
|
||
}
|
||
|
||
/* Cards / glass panels: slightly elevated with border */
|
||
[data-theme='winmedplayer'] .glass,
|
||
[data-theme='winmedplayer'] .card {
|
||
background: rgba(90, 128, 190, 0.55);
|
||
border: 1px solid rgba(160, 190, 230, 0.5);
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255, 255, 255, 0.25),
|
||
0 2px 6px rgba(0, 0, 0, 0.2);
|
||
}
|
||
|
||
/* Content header: slightly darker Luna band */
|
||
[data-theme='winmedplayer'] .content-header {
|
||
background: linear-gradient(180deg, rgba(58, 98, 165, 0.55) 0%, rgba(58, 98, 165, 0.2) 100%);
|
||
border-bottom: 1px solid #6888c2;
|
||
}
|
||
|
||
/* ─── PowerDVD Classic — Virtual HiFi Receiver / VFD Display ─── */
|
||
/* ─── CyberLink PowerDVD ─── */
|
||
/* Midnight navy-blue darkness — not flat black, but that specific cinema-hall depth */
|
||
[data-theme='p-dvd'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%235a7090%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* ── Palette — midnight navy spectrum ── */
|
||
--ctp-crust: #020306; /* cinema blackout */
|
||
--ctp-mantle: #060810; /* control deck depth */
|
||
--ctp-base: #0a0d18; /* main chassis — navy-black */
|
||
--ctp-surface0: #10141f;
|
||
--ctp-surface1: #171c2a;
|
||
--ctp-surface2: #1f2535;
|
||
--ctp-overlay0: #2c3548;
|
||
--ctp-overlay1: #3c4860;
|
||
--ctp-overlay2: #506078;
|
||
--ctp-text: #a8b8d0; /* blue-tinted label silver */
|
||
--ctp-subtext1: #7890b0;
|
||
--ctp-subtext0: #506080;
|
||
/* PowerDVD blue spectrum */
|
||
--ctp-mauve: #0088e8; /* PowerDVD blue — primary */
|
||
--ctp-lavender: #00a8ff;
|
||
--ctp-sky: #00ccff; /* glow highlight */
|
||
--ctp-teal: #00b8cc;
|
||
--ctp-blue: #0070cc;
|
||
--ctp-sapphire: #0055aa;
|
||
--ctp-green: #00cc66;
|
||
--ctp-yellow: #ccaa00;
|
||
--ctp-peach: #e07040;
|
||
--ctp-pink: #cc5588;
|
||
--ctp-flamingo: #bb4466;
|
||
--ctp-rosewater: #cc6666;
|
||
--ctp-maroon: #aa3333;
|
||
--ctp-red: #cc2222;
|
||
|
||
/* ── Semantic tokens ── */
|
||
--bg-app: #0a0d18;
|
||
--bg-sidebar: #060810;
|
||
--bg-card: #10141f;
|
||
--bg-hover: #171c2a;
|
||
--bg-player: #020306;
|
||
--bg-glass: rgba(10, 13, 24, 0.96);
|
||
--accent: #0088e8;
|
||
--accent-dim: rgba(0, 136, 232, 0.14);
|
||
--accent-glow: rgba(0, 136, 232, 0.40);
|
||
--text-primary: #a8b8d0;
|
||
--text-secondary:#6880a8;
|
||
--text-muted: #506080;
|
||
--border: #1a2030;
|
||
--border-subtle: #10141e;
|
||
--positive: #00cc66;
|
||
--warning: #ccaa00;
|
||
--danger: #cc2222;
|
||
}
|
||
|
||
/* ── App shell: very subtle navy depth gradient ── */
|
||
[data-theme='p-dvd'] .app-shell {
|
||
background: linear-gradient(160deg, #0c1020 0%, #080c18 50%, #060910 100%);
|
||
}
|
||
|
||
/* ── Sidebar: darkest navy — control panel behind the disc tray ── */
|
||
[data-theme='p-dvd'] .sidebar {
|
||
background: linear-gradient(180deg, #07091280 0%, #060810 40%, #050710 100%);
|
||
border-right: 1px solid #141824;
|
||
box-shadow: inset -1px 0 0 rgba(0, 136, 232, 0.08), 2px 0 12px rgba(0, 0, 0, 0.7);
|
||
}
|
||
|
||
/* Active nav: PowerDVD blue LED strip */
|
||
[data-theme='p-dvd'] .nav-link.active {
|
||
color: #00a8ff;
|
||
}
|
||
[data-theme='p-dvd'] .nav-link.active::before {
|
||
background: #0088e8;
|
||
box-shadow: 0 0 8px rgba(0, 136, 232, 0.7);
|
||
}
|
||
|
||
/* ── Player bar: cinema control deck — pure black + blue accent top border ── */
|
||
[data-theme='p-dvd'] .player-bar {
|
||
background: linear-gradient(180deg, #050710 0%, #020306 100%);
|
||
border-top: 1px solid #0a1828;
|
||
box-shadow:
|
||
inset 0 2px 0 rgba(0, 136, 232, 0.18),
|
||
inset 0 1px 0 rgba(0, 200, 255, 0.08),
|
||
0 -4px 24px rgba(0, 0, 0, 0.9);
|
||
}
|
||
|
||
/* Track name: PowerDVD blue LED display glow */
|
||
[data-theme='p-dvd'] .player-track-name {
|
||
color: #00ccff;
|
||
text-shadow:
|
||
0 0 5px rgba(0, 204, 255, 0.95),
|
||
0 0 12px rgba(0, 136, 232, 0.70),
|
||
0 0 24px rgba(0, 100, 200, 0.35);
|
||
letter-spacing: 0.03em;
|
||
}
|
||
|
||
[data-theme='p-dvd'] .player-track-artist {
|
||
color: #0088e8;
|
||
text-shadow: 0 0 6px rgba(0, 136, 232, 0.60);
|
||
opacity: 1;
|
||
}
|
||
|
||
[data-theme='p-dvd'] .player-time {
|
||
color: #0088e8;
|
||
text-shadow: 0 0 5px rgba(0, 136, 232, 0.65);
|
||
}
|
||
|
||
/* ── Chrome transport buttons: silver against navy — the iconic contrast ── */
|
||
[data-theme='p-dvd'] .player-btn,
|
||
[data-theme='p-dvd'] .player-btn-primary {
|
||
background: linear-gradient(170deg, #e8e8e8 0%, #ffffff 30%, #c0c0c0 70%, #989898 100%);
|
||
color: #1a1a1a;
|
||
border: 1px solid #707070;
|
||
box-shadow:
|
||
0 3px 8px rgba(0, 0, 0, 0.8),
|
||
0 1px 2px rgba(0, 0, 0, 0.6),
|
||
inset 0 1px 0 rgba(255, 255, 255, 0.9),
|
||
inset 0 -1px 0 rgba(0, 0, 0, 0.2);
|
||
}
|
||
|
||
[data-theme='p-dvd'] .player-btn:hover,
|
||
[data-theme='p-dvd'] .player-btn-primary:hover {
|
||
background: linear-gradient(170deg, #f5f5f5 0%, #ffffff 30%, #d0d0d0 70%, #aaaaaa 100%);
|
||
box-shadow:
|
||
0 4px 10px rgba(0, 0, 0, 0.8),
|
||
0 1px 3px rgba(0, 0, 0, 0.6),
|
||
inset 0 1px 0 rgba(255, 255, 255, 1),
|
||
inset 0 -1px 0 rgba(0, 0, 0, 0.2),
|
||
0 0 10px rgba(0, 136, 232, 0.20);
|
||
}
|
||
|
||
/* ── Regular buttons: navy panel style ── */
|
||
[data-theme='p-dvd'] .btn {
|
||
background: linear-gradient(180deg, #171c2a 0%, #10141f 100%);
|
||
color: #a8b8d0;
|
||
border: 1px solid #1f2a3e;
|
||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 1px 3px rgba(0, 0, 0, 0.6);
|
||
}
|
||
|
||
[data-theme='p-dvd'] .btn:hover {
|
||
background: linear-gradient(180deg, #1f2535 0%, #171c2a 100%);
|
||
border-color: #2a3850;
|
||
}
|
||
|
||
[data-theme='p-dvd'] .btn-primary {
|
||
background: linear-gradient(180deg, #00a8ff 0%, #0070cc 100%);
|
||
color: #ffffff;
|
||
border: 1px solid #0055aa;
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255, 255, 255, 0.25),
|
||
0 1px 4px rgba(0, 0, 0, 0.5),
|
||
0 0 10px rgba(0, 136, 232, 0.35);
|
||
}
|
||
|
||
/* Active queue round buttons: white on blue */
|
||
[data-theme='p-dvd'] .queue-round-btn.active {
|
||
color: #ffffff;
|
||
}
|
||
|
||
/* ── Cards / panels: navy inset ── */
|
||
[data-theme='p-dvd'] .glass,
|
||
[data-theme='p-dvd'] .card {
|
||
background: rgba(16, 20, 31, 0.90);
|
||
border: 1px solid #1a2030;
|
||
box-shadow: inset 0 1px 0 rgba(0, 136, 232, 0.04), 0 2px 8px rgba(0, 0, 0, 0.5);
|
||
}
|
||
|
||
/* ── Content header: dark navy band ── */
|
||
[data-theme='p-dvd'] .content-header {
|
||
background: linear-gradient(180deg, rgba(16, 20, 31, 0.80) 0%, rgba(10, 13, 24, 0.30) 100%);
|
||
border-bottom: 1px solid #1a2030;
|
||
}
|
||
|
||
/* ── Hover / active states: blue LED glow ── */
|
||
[data-theme='p-dvd'] .track-row:hover,
|
||
[data-theme='p-dvd'] .track-row.context-active {
|
||
background: rgba(0, 136, 232, 0.07);
|
||
box-shadow: inset 3px 0 0 #0088e8;
|
||
}
|
||
|
||
[data-theme='p-dvd'] .queue-item:hover,
|
||
[data-theme='p-dvd'] .queue-item.context-active {
|
||
background: rgba(0, 136, 232, 0.07);
|
||
}
|
||
|
||
[data-theme='p-dvd'] .queue-item.active {
|
||
background: rgba(0, 136, 232, 0.12);
|
||
border-left: 2px solid #0088e8;
|
||
}
|
||
|
||
[data-theme='p-dvd'] .np-queue-item.active { background: rgba(0, 136, 232, 0.08); }
|
||
[data-theme='p-dvd'] .np-queue-item-active { color: #00a8ff; }
|
||
[data-theme='p-dvd'] .np-queue-item:hover,
|
||
[data-theme='p-dvd'] .np-queue-item.context-active { background: rgba(0, 136, 232, 0.06); }
|
||
|
||
[data-theme='p-dvd'] .np-album-track.active .np-album-track-title,
|
||
[data-theme='p-dvd'] .np-album-track.active .np-album-track-num { color: #00a8ff; }
|
||
|
||
[data-theme='p-dvd'] .artist-row:hover { background: rgba(0, 136, 232, 0.06); box-shadow: inset 3px 0 0 #0088e8; }
|
||
[data-theme='p-dvd'] .playlist-row:hover { background: rgba(0, 136, 232, 0.06); box-shadow: inset 3px 0 0 #0088e8; }
|
||
|
||
[data-theme='p-dvd'] .settings-tab:hover { background: rgba(0, 136, 232, 0.08); color: #00a8ff; }
|
||
[data-theme='p-dvd'] .settings-tab.active { background: rgba(0, 136, 232, 0.14); color: #00a8ff; border-color: #0088e8; }
|
||
[data-theme='p-dvd'] .queue-tab-btn:hover { background: rgba(0, 136, 232, 0.08); color: #00a8ff; }
|
||
|
||
[data-theme='p-dvd'] .custom-select-trigger:hover { background: rgba(0, 136, 232, 0.08); }
|
||
[data-theme='p-dvd'] .custom-select-option:hover { background: rgba(0, 136, 232, 0.12); }
|
||
|
||
[data-theme='p-dvd'] .artist-ext-link:hover { background: rgba(0, 136, 232, 0.10); border-color: #0088e8; }
|
||
|
||
[data-theme='p-dvd'] .connection-type,
|
||
[data-theme='p-dvd'] .connection-server { color: #4880b8; }
|
||
|
||
/* ─── Vintage Tube Radio — 1950s Bakelite & Vacuum Tube ─── */
|
||
[data-theme='vintage-tube-radio'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23BCAAA4%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* ── Palette ── */
|
||
--ctp-crust: #1E110A; /* deep warm black-brown — dial background */
|
||
--ctp-mantle: #5D4037; /* speaker cloth brown — sidebar */
|
||
--ctp-base: #3E2723; /* polished bakelite — chassis */
|
||
--ctp-surface0: #4E342E;
|
||
--ctp-surface1: #5D4037;
|
||
--ctp-surface2: #6D4C41;
|
||
--ctp-overlay0: #795548;
|
||
--ctp-overlay1: #8D6E63;
|
||
--ctp-overlay2: #A1887F;
|
||
--ctp-text: #FFECB3; /* ivory/cream — dial lettering */
|
||
--ctp-subtext1: #D7CCC8;
|
||
--ctp-subtext0: #BCAAA4; /* aged ivory — secondary labels */
|
||
/* Tube glow + tarnished brass accents */
|
||
--ctp-mauve: #FF6F00; /* vacuum tube orange — primary accent */
|
||
--ctp-lavender: #FF8F00;
|
||
--ctp-yellow: #FFC107; /* warm dial backlight */
|
||
--ctp-peach: #FFB300;
|
||
--ctp-green: #558B2F;
|
||
--ctp-teal: #00695C;
|
||
--ctp-sky: #B08D57; /* tarnished brass */
|
||
--ctp-blue: #5C6BC0;
|
||
--ctp-sapphire: #3949AB;
|
||
--ctp-pink: #C2185B;
|
||
--ctp-flamingo: #AD1457;
|
||
--ctp-rosewater: #E91E63;
|
||
--ctp-maroon: #B71C1C;
|
||
--ctp-red: #C62828;
|
||
|
||
/* ── Semantic tokens ── */
|
||
--bg-app: #3E2723;
|
||
--bg-sidebar: #5D4037;
|
||
--bg-card: #4E342E;
|
||
--bg-hover: #5D4037;
|
||
--bg-player: #1E110A;
|
||
--bg-glass: rgba(62, 39, 35, 0.92);
|
||
--accent: #FF6F00;
|
||
--accent-dim: rgba(255, 111, 0, 0.15);
|
||
--accent-glow: rgba(255, 111, 0, 0.40);
|
||
--text-primary: #FFECB3;
|
||
--text-secondary:#BCAAA4;
|
||
--text-muted: #b09880;
|
||
--border: #B08D57; /* tarnished brass */
|
||
--border-subtle: #4E342E;
|
||
--positive: #558B2F;
|
||
--warning: #FFC107;
|
||
--danger: #C62828;
|
||
}
|
||
|
||
/* ── Tube Radio: polished bakelite chassis texture ── */
|
||
[data-theme='vintage-tube-radio'] .app-shell {
|
||
background:
|
||
radial-gradient(ellipse at 30% 20%, rgba(255, 111, 0, 0.04) 0%, transparent 60%),
|
||
radial-gradient(ellipse at 80% 80%, rgba(255, 193, 7, 0.03) 0%, transparent 50%),
|
||
#3E2723;
|
||
}
|
||
|
||
/* Sidebar: speaker cloth — soft radial texture */
|
||
[data-theme='vintage-tube-radio'] .sidebar {
|
||
background:
|
||
repeating-linear-gradient(
|
||
0deg,
|
||
rgba(0, 0, 0, 0.12) 0px,
|
||
rgba(0, 0, 0, 0.12) 1px,
|
||
transparent 1px,
|
||
transparent 4px
|
||
),
|
||
repeating-linear-gradient(
|
||
90deg,
|
||
rgba(0, 0, 0, 0.08) 0px,
|
||
rgba(0, 0, 0, 0.08) 1px,
|
||
transparent 1px,
|
||
transparent 4px
|
||
),
|
||
#5D4037;
|
||
border-right: 2px solid #B08D57;
|
||
box-shadow: inset -2px 0 8px rgba(0, 0, 0, 0.4);
|
||
}
|
||
|
||
/* ── Frequency dial (Player Bar) ── */
|
||
[data-theme='vintage-tube-radio'] .player-bar {
|
||
background: #1E110A;
|
||
border-top: 2px solid #B08D57;
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255, 193, 7, 0.08),
|
||
0 -3px 20px rgba(0, 0, 0, 0.7);
|
||
}
|
||
|
||
/* Track name: warm tube-glow */
|
||
[data-theme='vintage-tube-radio'] .player-track-name {
|
||
color: #FFC107;
|
||
text-shadow:
|
||
0 0 6px rgba(255, 193, 7, 0.90),
|
||
0 0 14px rgba(255, 111, 0, 0.60),
|
||
0 0 28px rgba(255, 111, 0, 0.30);
|
||
letter-spacing: 0.04em;
|
||
}
|
||
|
||
[data-theme='vintage-tube-radio'] .player-track-artist {
|
||
color: #FF8F00;
|
||
text-shadow: 0 0 6px rgba(255, 111, 0, 0.50);
|
||
opacity: 1;
|
||
}
|
||
|
||
[data-theme='vintage-tube-radio'] .player-time {
|
||
color: #FF8F00;
|
||
text-shadow: 0 0 5px rgba(255, 111, 0, 0.55);
|
||
}
|
||
|
||
/* ── Transport buttons: turned brass knobs ── */
|
||
[data-theme='vintage-tube-radio'] .player-btn,
|
||
[data-theme='vintage-tube-radio'] .player-btn-primary {
|
||
background: radial-gradient(circle at 38% 32%, #d4a843 0%, #b08d57 45%, #7a5e2a 100%);
|
||
color: #1E110A;
|
||
border: 1px solid #7a5e2a;
|
||
box-shadow:
|
||
0 3px 7px rgba(0, 0, 0, 0.7),
|
||
0 1px 2px rgba(0, 0, 0, 0.5),
|
||
inset 0 1px 0 rgba(255, 220, 120, 0.55),
|
||
inset 0 -1px 0 rgba(0, 0, 0, 0.3);
|
||
}
|
||
|
||
[data-theme='vintage-tube-radio'] .player-btn:hover,
|
||
[data-theme='vintage-tube-radio'] .player-btn-primary:hover {
|
||
background: radial-gradient(circle at 38% 32%, #e8bc55 0%, #c09a65 45%, #8a6e38 100%);
|
||
box-shadow:
|
||
0 4px 10px rgba(0, 0, 0, 0.7),
|
||
0 1px 2px rgba(0, 0, 0, 0.5),
|
||
inset 0 1px 0 rgba(255, 230, 140, 0.65),
|
||
inset 0 -1px 0 rgba(0, 0, 0, 0.3);
|
||
}
|
||
|
||
/* ── Regular buttons: bakelite style ── */
|
||
[data-theme='vintage-tube-radio'] .btn {
|
||
background: linear-gradient(180deg, #4E342E 0%, #3E2723 100%);
|
||
color: #FFECB3;
|
||
border: 1px solid #B08D57;
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255, 220, 150, 0.10),
|
||
0 1px 4px rgba(0, 0, 0, 0.5);
|
||
}
|
||
|
||
[data-theme='vintage-tube-radio'] .btn:hover {
|
||
background: linear-gradient(180deg, #5D4037 0%, #4E342E 100%);
|
||
}
|
||
|
||
[data-theme='vintage-tube-radio'] .btn-primary {
|
||
background: linear-gradient(180deg, #FF8F00 0%, #E65100 100%);
|
||
color: #1E110A;
|
||
border: 1px solid #BF360C;
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255, 220, 120, 0.35),
|
||
0 1px 4px rgba(0, 0, 0, 0.4),
|
||
0 0 10px rgba(255, 111, 0, 0.30);
|
||
}
|
||
|
||
/* Active queue buttons: dark text on orange */
|
||
[data-theme='vintage-tube-radio'] .queue-round-btn.active {
|
||
color: #1E110A;
|
||
}
|
||
|
||
/* Cards / panels: inset bakelite */
|
||
[data-theme='vintage-tube-radio'] .glass,
|
||
[data-theme='vintage-tube-radio'] .card {
|
||
background: rgba(78, 52, 46, 0.80);
|
||
border: 1px solid #B08D57;
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255, 220, 150, 0.06),
|
||
0 2px 8px rgba(0, 0, 0, 0.4);
|
||
}
|
||
|
||
/* Content header: warm band */
|
||
[data-theme='vintage-tube-radio'] .content-header {
|
||
background: linear-gradient(180deg, rgba(93, 64, 55, 0.60) 0%, rgba(62, 39, 35, 0.20) 100%);
|
||
border-bottom: 1px solid #B08D57;
|
||
}
|
||
|
||
/* ─── Windows 7 Aero — Aero Glass & Frutiger Aero ─── */
|
||
/* ─── Windows 7 Aero Glass ─── */
|
||
[data-theme='aero-glass'] {
|
||
color-scheme: light;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%234c607a%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* ── Palette ── */
|
||
--ctp-crust: #05080f;
|
||
--ctp-mantle: #0d1a2e;
|
||
--ctp-base: #b8cfe8;
|
||
--ctp-surface0: #ccdaea;
|
||
--ctp-surface1: #d8e6f2;
|
||
--ctp-surface2: #e4f0f8;
|
||
--ctp-overlay0: #a0bcd8;
|
||
--ctp-overlay1: #7aa0c0;
|
||
--ctp-overlay2: #5a84a8;
|
||
--ctp-text: #0d1a2e;
|
||
--ctp-subtext1: #1e3250;
|
||
--ctp-subtext0: #3a5070;
|
||
--ctp-mauve: #1878e8;
|
||
--ctp-lavender: #3399ff;
|
||
--ctp-sky: #5bb3ff;
|
||
--ctp-blue: #1d4268;
|
||
--ctp-sapphire: #1366c8;
|
||
--ctp-teal: #0099aa;
|
||
--ctp-green: #107c10;
|
||
--ctp-yellow: #f7c948;
|
||
--ctp-peach: #e8890c;
|
||
--ctp-pink: #e3008c;
|
||
--ctp-flamingo: #c50f1f;
|
||
--ctp-rosewater: #da3b01;
|
||
--ctp-maroon: #a4262c;
|
||
--ctp-red: #c42b1c;
|
||
|
||
/* ── Semantic tokens ── */
|
||
--bg-app: #b8cfe8;
|
||
--bg-sidebar: rgba(210, 228, 248, 0.55);
|
||
--bg-card: rgba(225, 238, 252, 0.65);
|
||
--bg-hover: rgba(24, 120, 232, 0.85);
|
||
--bg-player: #05080f;
|
||
--bg-glass: rgba(210, 228, 248, 0.82);
|
||
--accent: #1878e8;
|
||
--accent-dim: rgba(24, 120, 232, 0.14);
|
||
--accent-glow: rgba(24, 120, 232, 0.40);
|
||
--volume-accent: #1878e8;
|
||
--text-primary: #0d1a2e;
|
||
--text-secondary:#1e3250;
|
||
--text-muted: #7090b8;
|
||
--border: rgba(130, 175, 220, 0.65);
|
||
--border-subtle: rgba(160, 200, 240, 0.45);
|
||
--positive: #107c10;
|
||
--warning: #c87400;
|
||
--danger: #c42b1c;
|
||
--radius-sm: 4px;
|
||
--radius-md: 6px;
|
||
--radius-lg: 8px;
|
||
}
|
||
|
||
/* ── Background: W7 sky with depth ── */
|
||
[data-theme='aero-glass'] .app-shell {
|
||
background: linear-gradient(160deg, #c8e2f5 0%, #b5cfe4 45%, #9fc0db 100%);
|
||
}
|
||
|
||
/* ── Sidebar: Aero glass panel — frosted translucent ── */
|
||
[data-theme='aero-glass'] .sidebar {
|
||
background: rgba(210, 232, 252, 0.52);
|
||
backdrop-filter: blur(20px);
|
||
-webkit-backdrop-filter: blur(20px);
|
||
border-right: 1px solid rgba(150, 190, 230, 0.55);
|
||
box-shadow:
|
||
inset -1px 0 0 rgba(255,255,255,0.75),
|
||
inset 1px 0 0 rgba(255,255,255,0.25),
|
||
2px 0 8px rgba(0,0,0,0.12);
|
||
}
|
||
|
||
/* ── Player bar: authentic W7 taskbar — near-black glass ── */
|
||
[data-theme='aero-glass'] .player-bar {
|
||
background: linear-gradient(180deg,
|
||
rgba(12, 18, 32, 0.96) 0%,
|
||
rgba(6, 10, 20, 0.99) 100%
|
||
);
|
||
backdrop-filter: blur(22px);
|
||
-webkit-backdrop-filter: blur(22px);
|
||
border-top: 1px solid rgba(80, 155, 235, 0.60);
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(100, 180, 255, 0.28),
|
||
inset 0 2px 0 rgba(255,255,255,0.06),
|
||
0 -2px 16px rgba(0,0,0,0.55);
|
||
}
|
||
|
||
/* Track info: white on near-black, blue glow */
|
||
[data-theme='aero-glass'] .player-track-name {
|
||
color: #ffffff;
|
||
text-shadow: 0 0 12px rgba(80, 160, 255, 0.65), 0 1px 2px rgba(0,0,0,0.60);
|
||
font-weight: 600;
|
||
}
|
||
[data-theme='aero-glass'] .player-track-artist { color: #88b8e0; opacity: 1; }
|
||
[data-theme='aero-glass'] .player-time { color: #88b8e0; }
|
||
|
||
/* ── Transport buttons: Aero glass gel circles ── */
|
||
[data-theme='aero-glass'] .player-btn,
|
||
[data-theme='aero-glass'] .player-btn-primary {
|
||
background: linear-gradient(180deg,
|
||
rgba(255,255,255,0.80) 0%,
|
||
rgba(195,228,255,0.82) 48%,
|
||
rgba(80,160,235,0.92) 50%,
|
||
rgba(30,110,205,0.96) 100%
|
||
);
|
||
color: #ffffff;
|
||
border: 1px solid rgba(20, 75, 180, 0.55);
|
||
border-radius: 50%;
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255,255,255,0.90),
|
||
0 2px 6px rgba(0,0,0,0.40),
|
||
0 0 0 1px rgba(80,150,230,0.25);
|
||
}
|
||
[data-theme='aero-glass'] .player-btn:hover,
|
||
[data-theme='aero-glass'] .player-btn-primary:hover {
|
||
background: linear-gradient(180deg,
|
||
rgba(255,255,255,0.92) 0%,
|
||
rgba(215,240,255,0.90) 48%,
|
||
rgba(105,178,248,0.95) 50%,
|
||
rgba(50,130,220,0.99) 100%
|
||
);
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255,255,255,0.95),
|
||
0 3px 10px rgba(0,0,0,0.40),
|
||
0 0 12px rgba(51,153,255,0.45);
|
||
}
|
||
|
||
/* ── Regular buttons: Aero frosted glass ── */
|
||
[data-theme='aero-glass'] .btn,
|
||
[data-theme='aero-glass'] .btn-surface,
|
||
[data-theme='aero-glass'] .btn-ghost {
|
||
background: linear-gradient(180deg,
|
||
rgba(255,255,255,0.85) 0%,
|
||
rgba(255,255,255,0.85) 48%,
|
||
rgba(190,220,248,0.90) 50%,
|
||
rgba(155,198,240,0.94) 100%
|
||
);
|
||
color: #0d1a2e;
|
||
border: 1px solid rgba(120, 170, 220, 0.65);
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255,255,255,0.95),
|
||
inset 0 1px 0 rgba(255,255,255,0.50),
|
||
0 1px 3px rgba(0,0,0,0.18);
|
||
border-radius: 5px;
|
||
}
|
||
[data-theme='aero-glass'] .btn:hover,
|
||
[data-theme='aero-glass'] .btn-surface:hover,
|
||
[data-theme='aero-glass'] .btn-ghost:hover {
|
||
background: linear-gradient(180deg,
|
||
rgba(255,255,255,0.96) 0%,
|
||
rgba(255,255,255,0.96) 48%,
|
||
rgba(210,235,255,0.95) 50%,
|
||
rgba(175,215,252,0.98) 100%
|
||
);
|
||
border-color: rgba(24, 120, 232, 0.70);
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255,255,255,1),
|
||
0 1px 4px rgba(0,0,0,0.20),
|
||
0 0 8px rgba(24,120,232,0.22);
|
||
}
|
||
|
||
/* ── Primary button: Aero blue gel ── */
|
||
[data-theme='aero-glass'] .btn-primary {
|
||
background: linear-gradient(180deg,
|
||
rgba(110,185,255,0.92) 0%,
|
||
rgba(70,155,245,0.92) 48%,
|
||
rgba(24,100,205,0.96) 50%,
|
||
rgba(12,72,175,0.99) 100%
|
||
);
|
||
color: #ffffff;
|
||
border: 1px solid rgba(12, 60, 155, 0.70);
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255,255,255,0.58),
|
||
0 1px 4px rgba(0,0,0,0.30),
|
||
0 0 10px rgba(24,120,232,0.38);
|
||
border-radius: 5px;
|
||
}
|
||
[data-theme='aero-glass'] .btn-primary:hover {
|
||
background: linear-gradient(180deg,
|
||
rgba(140,200,255,0.95) 0%,
|
||
rgba(90,170,255,0.95) 48%,
|
||
rgba(40,120,225,0.98) 50%,
|
||
rgba(24,95,195,1) 100%
|
||
);
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255,255,255,0.65),
|
||
0 1px 5px rgba(0,0,0,0.30),
|
||
0 0 14px rgba(24,120,232,0.50);
|
||
}
|
||
|
||
/* ── Hero / album-card buttons: frosted glass ── */
|
||
[data-theme='aero-glass'] .hero-play-btn,
|
||
[data-theme='aero-glass'] .album-card-details-btn {
|
||
background: linear-gradient(180deg,
|
||
rgba(255,255,255,0.82) 0%,
|
||
rgba(190,220,248,0.88) 48%,
|
||
rgba(140,190,235,0.92) 50%,
|
||
rgba(100,160,220,0.95) 100%
|
||
);
|
||
color: #0d1a2e;
|
||
border: 1px solid rgba(100,160,220,0.60);
|
||
box-shadow: inset 0 1px 0 rgba(255,255,255,0.90), 0 1px 3px rgba(0,0,0,0.20);
|
||
}
|
||
[data-theme='aero-glass'] .hero-play-btn:hover,
|
||
[data-theme='aero-glass'] .album-card-details-btn:hover {
|
||
background: linear-gradient(180deg,
|
||
rgba(255,255,255,0.95) 0%,
|
||
rgba(215,238,255,0.95) 50%,
|
||
rgba(165,210,250,0.98) 100%
|
||
);
|
||
border-color: rgba(24,120,232,0.70);
|
||
box-shadow: inset 0 1px 0 rgba(255,255,255,1), 0 0 8px rgba(24,120,232,0.25);
|
||
}
|
||
|
||
/* ── Queue toolbar round buttons: Aero glass ── */
|
||
[data-theme='aero-glass'] .queue-round-btn {
|
||
background: linear-gradient(180deg,
|
||
rgba(255,255,255,0.80) 0%,
|
||
rgba(185,218,248,0.88) 50%,
|
||
rgba(140,190,235,0.92) 100%
|
||
);
|
||
color: #1e3250;
|
||
border: 1px solid rgba(110,165,220,0.60);
|
||
box-shadow: inset 0 1px 0 rgba(255,255,255,0.90), 0 1px 2px rgba(0,0,0,0.18);
|
||
}
|
||
[data-theme='aero-glass'] .queue-round-btn:hover:not(:disabled):not(.active) {
|
||
background: linear-gradient(180deg,
|
||
rgba(255,255,255,0.95) 0%,
|
||
rgba(210,235,255,0.95) 50%,
|
||
rgba(165,208,250,0.98) 100%
|
||
);
|
||
border-color: rgba(24,120,232,0.65);
|
||
box-shadow: inset 0 1px 0 rgba(255,255,255,1), 0 0 8px rgba(24,120,232,0.25);
|
||
color: #0d1a2e;
|
||
}
|
||
[data-theme='aero-glass'] .queue-round-btn.active {
|
||
background: linear-gradient(180deg,
|
||
rgba(110,180,255,0.90) 0%,
|
||
rgba(24,100,210,0.96) 100%
|
||
);
|
||
color: #ffffff;
|
||
border-color: rgba(12,60,155,0.70);
|
||
box-shadow: inset 0 1px 0 rgba(255,255,255,0.45), 0 0 8px rgba(24,120,232,0.50);
|
||
}
|
||
|
||
/* ── Cards: frosted glass panels ── */
|
||
[data-theme='aero-glass'] .card {
|
||
background: rgba(225, 240, 255, 0.62);
|
||
backdrop-filter: blur(10px);
|
||
-webkit-backdrop-filter: blur(10px);
|
||
border: 1px solid rgba(160, 200, 240, 0.60);
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255,255,255,0.80),
|
||
0 2px 8px rgba(0,0,0,0.12);
|
||
border-radius: 6px;
|
||
}
|
||
|
||
/* ── Content header: Aero chrome strip ── */
|
||
[data-theme='aero-glass'] .content-header {
|
||
background: rgba(210, 232, 252, 0.58);
|
||
backdrop-filter: blur(14px);
|
||
-webkit-backdrop-filter: blur(14px);
|
||
border-bottom: 1px solid rgba(150, 195, 240, 0.55);
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255,255,255,0.70),
|
||
inset 0 -1px 0 rgba(255,255,255,0.35),
|
||
0 2px 6px rgba(0,0,0,0.10);
|
||
}
|
||
|
||
/* Connection indicators: dark navy, readable on glass */
|
||
[data-theme='aero-glass'] .connection-type,
|
||
[data-theme='aero-glass'] .connection-server {
|
||
color: #0d1a2e;
|
||
}
|
||
|
||
/* ── Theme accordion: glass hover ── */
|
||
[data-theme='aero-glass'] .theme-accordion-header:hover {
|
||
background: rgba(24,120,232,0.18);
|
||
color: #0d1a2e;
|
||
}
|
||
[data-theme='aero-glass'] .theme-accordion-open .theme-accordion-header {
|
||
background: rgba(24,120,232,0.22);
|
||
color: #0d1a2e;
|
||
}
|
||
|
||
/* ── Progress bar: Aero blue ── */
|
||
[data-theme='aero-glass'] .progress-bar-track {
|
||
background: rgba(150, 195, 235, 0.45);
|
||
border-radius: 3px;
|
||
box-shadow: inset 0 1px 2px rgba(0,0,0,0.15);
|
||
}
|
||
[data-theme='aero-glass'] .progress-bar-fill {
|
||
background: linear-gradient(180deg,
|
||
rgba(110,185,255,0.95) 0%,
|
||
rgba(24,120,232,0.98) 50%,
|
||
rgba(12,90,200,1) 100%
|
||
);
|
||
border-radius: 3px;
|
||
box-shadow: 0 0 6px rgba(24,120,232,0.50);
|
||
}
|
||
|
||
/* ── Scrollbar: W7 thin glass style ── */
|
||
[data-theme='aero-glass'] ::-webkit-scrollbar { width: 10px; height: 10px; }
|
||
[data-theme='aero-glass'] ::-webkit-scrollbar-track {
|
||
background: rgba(175, 210, 245, 0.25);
|
||
border-radius: 5px;
|
||
}
|
||
[data-theme='aero-glass'] ::-webkit-scrollbar-thumb {
|
||
background: rgba(110, 168, 225, 0.60);
|
||
border: 1px solid rgba(80, 140, 200, 0.45);
|
||
border-radius: 5px;
|
||
box-shadow: inset 0 1px 0 rgba(255,255,255,0.45);
|
||
}
|
||
[data-theme='aero-glass'] ::-webkit-scrollbar-thumb:hover {
|
||
background: rgba(24, 120, 232, 0.72);
|
||
box-shadow: inset 0 1px 0 rgba(255,255,255,0.50), 0 0 4px rgba(24,120,232,0.30);
|
||
}
|
||
|
||
/* ── Glass / dropdowns: frosted glass panel ── */
|
||
[data-theme='aero-glass'] .glass {
|
||
background: rgba(218, 236, 255, 0.88) !important;
|
||
backdrop-filter: blur(18px) !important;
|
||
-webkit-backdrop-filter: blur(18px) !important;
|
||
border: 1px solid rgba(150, 195, 240, 0.65) !important;
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255,255,255,0.75),
|
||
2px 2px 12px rgba(0,0,0,0.18) !important;
|
||
border-radius: 8px !important;
|
||
}
|
||
[data-theme='aero-glass'] .glass [style*="var(--bg-hover)"] {
|
||
background: rgba(24,120,232,0.20) !important;
|
||
border-radius: 4px !important;
|
||
}
|
||
[data-theme='aero-glass'] .glass [style*="var(--text-primary)"] { color: #0d1a2e !important; }
|
||
[data-theme='aero-glass'] .glass [style*="var(--text-secondary)"] { color: #1e3250 !important; }
|
||
[data-theme='aero-glass'] .glass [style*="var(--text-muted)"] { color: #3a5070 !important; }
|
||
|
||
/* ── Hover / selection: Aero blue glass ── */
|
||
[data-theme='aero-glass'] .queue-tab-btn:hover { background: rgba(24,120,232,0.18); color: #0d1a2e; }
|
||
[data-theme='aero-glass'] .settings-tab:hover { background: rgba(24,120,232,0.18); color: #0d1a2e; }
|
||
[data-theme='aero-glass'] .settings-tab.active {
|
||
background: rgba(24,120,232,0.85);
|
||
color: #ffffff;
|
||
}
|
||
[data-theme='aero-glass'] .custom-select-trigger:hover { background: rgba(24,120,232,0.15); }
|
||
[data-theme='aero-glass'] .custom-select-option:hover {
|
||
background: rgba(24,120,232,0.85) !important;
|
||
color: #ffffff !important;
|
||
}
|
||
[data-theme='aero-glass'] .artist-ext-link:hover {
|
||
background: rgba(24,120,232,0.85);
|
||
color: #ffffff !important;
|
||
}
|
||
[data-theme='aero-glass'] .np-action-btn:hover { background: rgba(24,120,232,0.18); }
|
||
[data-theme='aero-glass'] .np-queue-item:hover,
|
||
[data-theme='aero-glass'] .np-queue-item.context-active {
|
||
background: rgba(24,120,232,0.85);
|
||
color: #ffffff;
|
||
}
|
||
[data-theme='aero-glass'] .track-row:hover,
|
||
[data-theme='aero-glass'] .track-row.context-active {
|
||
background: rgba(24,120,232,0.85) !important;
|
||
}
|
||
[data-theme='aero-glass'] .track-row:hover *,
|
||
[data-theme='aero-glass'] .track-row.context-active * { color: #ffffff !important; }
|
||
[data-theme='aero-glass'] .artist-row:hover { background: rgba(24,120,232,0.85); color: #ffffff; }
|
||
[data-theme='aero-glass'] .playlist-row:hover { background: rgba(24,120,232,0.85); }
|
||
[data-theme='aero-glass'] .playlist-row:hover,
|
||
[data-theme='aero-glass'] .playlist-row:hover * { color: #ffffff; }
|
||
[data-theme='aero-glass'] .queue-item:hover,
|
||
[data-theme='aero-glass'] .queue-item.context-active {
|
||
background: rgba(24,120,232,0.85) !important;
|
||
}
|
||
[data-theme='aero-glass'] .queue-item:hover .queue-item-title,
|
||
[data-theme='aero-glass'] .queue-item:hover .queue-item-artist,
|
||
[data-theme='aero-glass'] .queue-item:hover .queue-item-duration,
|
||
[data-theme='aero-glass'] .queue-item.context-active .queue-item-title,
|
||
[data-theme='aero-glass'] .queue-item.context-active .queue-item-artist,
|
||
[data-theme='aero-glass'] .queue-item.context-active .queue-item-duration { color: #ffffff; }
|
||
|
||
/* ── Active queue / now-playing items ── */
|
||
[data-theme='aero-glass'] .queue-item.active {
|
||
background: rgba(24, 120, 232, 0.14);
|
||
color: #1366c8;
|
||
}
|
||
[data-theme='aero-glass'] .queue-item.active .queue-item-artist,
|
||
[data-theme='aero-glass'] .queue-item.active .queue-item-duration {
|
||
color: #1878e8;
|
||
opacity: 0.85;
|
||
}
|
||
[data-theme='aero-glass'] .np-queue-item-active { color: #1366c8; }
|
||
[data-theme='aero-glass'] .np-queue-item.active { background: rgba(24, 120, 232, 0.10); }
|
||
[data-theme='aero-glass'] .np-album-track.active .np-album-track-title,
|
||
[data-theme='aero-glass'] .np-album-track.active .np-album-track-num { color: #1366c8; }
|
||
|
||
/* ─── Windows XP Luna — Classic 2001 ─── */
|
||
/* ─── Windows XP Luna Teal ─── */
|
||
[data-theme='luna-teal'] {
|
||
color-scheme: light;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23444444%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* ── Palette ── */
|
||
--ctp-crust: #0041b8;
|
||
--ctp-mantle: #0055e5;
|
||
--ctp-base: #ece9d8;
|
||
--ctp-surface0: #ffffff;
|
||
--ctp-surface1: #f5f3ec;
|
||
--ctp-surface2: #ece9d8;
|
||
--ctp-overlay0: #c0bba8;
|
||
--ctp-overlay1: #8a8675;
|
||
--ctp-overlay2: #5e5a4c;
|
||
--ctp-text: #000000;
|
||
--ctp-subtext1: #1a1a1a;
|
||
--ctp-subtext0: #444444;
|
||
--ctp-mauve: #3c9d29;
|
||
--ctp-lavender: #52b83c;
|
||
--ctp-green: #3c9d29;
|
||
--ctp-teal: #007c8a;
|
||
--ctp-sky: #316ac5;
|
||
--ctp-blue: #0055e5;
|
||
--ctp-sapphire: #0041b8;
|
||
--ctp-pink: #cc2288;
|
||
--ctp-flamingo: #cc2020;
|
||
--ctp-rosewater: #dd4400;
|
||
--ctp-yellow: #b87800;
|
||
--ctp-peach: #cc6600;
|
||
--ctp-maroon: #aa1111;
|
||
--ctp-red: #cc1111;
|
||
|
||
/* ── Semantic tokens ── */
|
||
--bg-app: #ece9d8;
|
||
--bg-sidebar: #c8daf5;
|
||
--bg-card: #ffffff;
|
||
--bg-hover: #316ac5;
|
||
--bg-player: #1248b8;
|
||
--bg-glass: rgba(255, 255, 255, 0.97);
|
||
--accent: #3c9d29;
|
||
--accent-dim: rgba(60, 157, 41, 0.14);
|
||
--accent-glow: rgba(60, 157, 41, 0.35);
|
||
--volume-accent: #3c9d29;
|
||
--text-primary: #000000;
|
||
--text-secondary:#333333;
|
||
--text-muted: #555555;
|
||
--border: #003399;
|
||
--border-subtle: #aca899;
|
||
--positive: #3c9d29;
|
||
--warning: #b87800;
|
||
--danger: #cc1111;
|
||
--radius-sm: 3px;
|
||
--radius-md: 4px;
|
||
--radius-lg: 6px;
|
||
}
|
||
|
||
/* ── App shell: XP sandy desktop ── */
|
||
[data-theme='luna-teal'] .app-shell {
|
||
background: #ece9d8;
|
||
}
|
||
|
||
/* ── Sidebar: XP Explorer task pane / Folders panel ── */
|
||
[data-theme='luna-teal'] .sidebar {
|
||
background: linear-gradient(180deg, #d8e8fa 0%, #c0d4f5 40%, #b0c8f0 100%);
|
||
border-right: 1px solid #7090c0;
|
||
box-shadow: inset -1px 0 0 rgba(255,255,255,0.60), 2px 0 4px rgba(0,0,0,0.14);
|
||
}
|
||
|
||
/* Sidebar text: dark navy on ice blue — with white text-shadow for legibility */
|
||
[data-theme='luna-teal'] .sidebar-link,
|
||
[data-theme='luna-teal'] .sidebar-section-title,
|
||
[data-theme='luna-teal'] .sidebar-logo-text,
|
||
[data-theme='luna-teal'] .nav-section-label,
|
||
[data-theme='luna-teal'] .brand-name {
|
||
color: #002060;
|
||
text-shadow: 0 1px 0 rgba(255,255,255,0.55);
|
||
font-weight: 700;
|
||
}
|
||
|
||
/* Nav links */
|
||
[data-theme='luna-teal'] .nav-link { color: #001850; }
|
||
[data-theme='luna-teal'] .nav-link:hover {
|
||
background: rgba(255,255,255,0.45);
|
||
color: #000000;
|
||
border-radius: 3px;
|
||
}
|
||
[data-theme='luna-teal'] .nav-link.active {
|
||
background: #316ac5;
|
||
color: #ffffff;
|
||
border-radius: 3px;
|
||
text-shadow: none;
|
||
}
|
||
[data-theme='luna-teal'] .nav-link.active::before { background: #ffffff; }
|
||
[data-theme='luna-teal'] .nav-link.active svg,
|
||
[data-theme='luna-teal'] .nav-link:hover svg { opacity: 1; }
|
||
|
||
/* Now Playing nav link */
|
||
[data-theme='luna-teal'] .nav-link-nowplaying { background: rgba(0,0,80,0.10); color: #001850; }
|
||
[data-theme='luna-teal'] .nav-link-nowplaying:hover { background: rgba(255,255,255,0.45); color: #000000; }
|
||
[data-theme='luna-teal'] .nav-link-nowplaying.active { background: #316ac5; color: #ffffff; }
|
||
|
||
/* ── Player bar: authentic XP Luna taskbar blue ── */
|
||
[data-theme='luna-teal'] .player-bar {
|
||
background: linear-gradient(180deg,
|
||
#4b8ee8 0%,
|
||
#2568d4 8%,
|
||
#1a56c4 30%,
|
||
#1248b8 70%,
|
||
#0e3da8 85%,
|
||
#1248b8 100%
|
||
);
|
||
border-top: 1px solid #7aaaff;
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255,255,255,0.55),
|
||
inset 0 2px 0 rgba(255,255,255,0.18),
|
||
0 -2px 8px rgba(0,0,0,0.30);
|
||
}
|
||
|
||
/* Track name: white with XP glow */
|
||
[data-theme='luna-teal'] .player-track-name {
|
||
color: #ffffff;
|
||
text-shadow: 0 1px 2px rgba(0,0,0,0.60), 0 0 10px rgba(120,180,255,0.40);
|
||
font-weight: 700;
|
||
}
|
||
[data-theme='luna-teal'] .player-track-artist { color: #b8d4ff; opacity: 1; }
|
||
[data-theme='luna-teal'] .player-time { color: #b8d4ff; }
|
||
|
||
/* ── Transport buttons: XP Luna gel circles ── */
|
||
[data-theme='luna-teal'] .player-btn,
|
||
[data-theme='luna-teal'] .player-btn-primary {
|
||
background: linear-gradient(180deg,
|
||
#80aaff 0%,
|
||
#4477ee 45%,
|
||
#1a50dd 50%,
|
||
#0c3bb8 100%
|
||
);
|
||
color: #ffffff;
|
||
border: 1px solid #002288;
|
||
border-radius: 50%;
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255,255,255,0.65),
|
||
0 2px 5px rgba(0,0,0,0.45);
|
||
}
|
||
[data-theme='luna-teal'] .player-btn:hover,
|
||
[data-theme='luna-teal'] .player-btn-primary:hover {
|
||
background: linear-gradient(180deg,
|
||
#99bbff 0%,
|
||
#5588ff 45%,
|
||
#2264ee 50%,
|
||
#1a52d0 100%
|
||
);
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255,255,255,0.75),
|
||
0 3px 8px rgba(0,0,0,0.40),
|
||
0 0 10px rgba(80,140,255,0.40);
|
||
}
|
||
|
||
/* ── Regular buttons: XP bevel style ── */
|
||
[data-theme='luna-teal'] .btn,
|
||
[data-theme='luna-teal'] .btn-surface,
|
||
[data-theme='luna-teal'] .btn-ghost {
|
||
background: linear-gradient(180deg, #f5f3ec 0%, #ece9d8 48%, #ddd9c8 50%, #d0cdb8 100%);
|
||
color: #000000;
|
||
border: 1px solid #888480;
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255,255,255,0.95),
|
||
inset 1px 0 0 rgba(255,255,255,0.70),
|
||
0 1px 2px rgba(0,0,0,0.20);
|
||
border-radius: 3px;
|
||
}
|
||
[data-theme='luna-teal'] .btn:hover,
|
||
[data-theme='luna-teal'] .btn-surface:hover,
|
||
[data-theme='luna-teal'] .btn-ghost:hover {
|
||
background: linear-gradient(180deg, #ffffff 0%, #f0ede0 48%, #e4e0d0 50%, #d8d4c4 100%);
|
||
border-color: #0055e5;
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255,255,255,1),
|
||
0 1px 3px rgba(0,0,0,0.18);
|
||
}
|
||
|
||
/* ── Primary button: XP green gel ── */
|
||
[data-theme='luna-teal'] .btn-primary {
|
||
background: linear-gradient(180deg,
|
||
#66dd50 0%,
|
||
#3c9d29 45%,
|
||
#2e8020 50%,
|
||
#1e6015 100%
|
||
);
|
||
color: #ffffff;
|
||
border: 1px solid #1a5010;
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255,255,255,0.55),
|
||
0 1px 3px rgba(0,0,0,0.30);
|
||
border-radius: 4px;
|
||
}
|
||
[data-theme='luna-teal'] .btn-primary:hover {
|
||
background: linear-gradient(180deg,
|
||
#80ee68 0%,
|
||
#4db035 45%,
|
||
#3a9028 50%,
|
||
#2e8020 100%
|
||
);
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255,255,255,0.60),
|
||
0 1px 4px rgba(0,0,0,0.30),
|
||
0 0 8px rgba(60,157,41,0.40);
|
||
}
|
||
|
||
/* ── Hero / album-card play buttons ── */
|
||
[data-theme='luna-teal'] .hero-play-btn,
|
||
[data-theme='luna-teal'] .album-card-details-btn {
|
||
background: linear-gradient(180deg, #f5f3ec 0%, #d0cdb8 100%);
|
||
color: #000000;
|
||
border: 1px solid #888480;
|
||
box-shadow: inset 0 1px 0 rgba(255,255,255,0.95), 0 1px 2px rgba(0,0,0,0.20);
|
||
}
|
||
[data-theme='luna-teal'] .hero-play-btn:hover,
|
||
[data-theme='luna-teal'] .album-card-details-btn:hover {
|
||
background: linear-gradient(180deg, #ffffff 0%, #ddd9c8 100%);
|
||
border-color: #0055e5;
|
||
}
|
||
|
||
/* ── Queue toolbar round buttons ── */
|
||
[data-theme='luna-teal'] .queue-round-btn {
|
||
background: linear-gradient(180deg, #f5f3ec 0%, #d0cdb8 100%);
|
||
color: #333333;
|
||
border: 1px solid #888480;
|
||
box-shadow: inset 0 1px 0 rgba(255,255,255,0.90), 0 1px 2px rgba(0,0,0,0.18);
|
||
}
|
||
[data-theme='luna-teal'] .queue-round-btn:hover:not(:disabled):not(.active) {
|
||
background: linear-gradient(180deg, #ffffff 0%, #e0ddd0 100%);
|
||
border-color: #0055e5;
|
||
color: #000000;
|
||
}
|
||
[data-theme='luna-teal'] .queue-round-btn.active {
|
||
background: #316ac5;
|
||
color: #ffffff;
|
||
border-color: #0033aa;
|
||
box-shadow: inset 0 1px 3px rgba(0,0,0,0.30), 0 1px 0 rgba(255,255,255,0.15);
|
||
}
|
||
|
||
/* ── Cards: XP white window interior ── */
|
||
[data-theme='luna-teal'] .card {
|
||
background: #ffffff;
|
||
border: 1px solid #aca899;
|
||
box-shadow: inset 0 1px 0 rgba(255,255,255,1), 0 1px 3px rgba(0,0,0,0.15);
|
||
border-radius: 4px;
|
||
}
|
||
|
||
/* ── Content header: XP title bar gradient ── */
|
||
[data-theme='luna-teal'] .content-header {
|
||
background: linear-gradient(180deg,
|
||
#5a9aee 0%,
|
||
#2a6ad4 25%,
|
||
#1a56c4 50%,
|
||
#0e48b8 75%,
|
||
#0a3aaa 100%
|
||
);
|
||
border-bottom: 1px solid #0033aa;
|
||
color: #ffffff;
|
||
box-shadow: inset 0 1px 0 rgba(255,255,255,0.40), 0 2px 4px rgba(0,0,0,0.18);
|
||
}
|
||
|
||
/* Connection indicators: white on blue header */
|
||
[data-theme='luna-teal'] .connection-type,
|
||
[data-theme='luna-teal'] .connection-server {
|
||
color: #ffffff;
|
||
text-shadow: 0 1px 2px rgba(0,0,0,0.50);
|
||
}
|
||
|
||
/* ── Theme accordion: XP selection blue ── */
|
||
[data-theme='luna-teal'] .theme-accordion-header:hover { background: #316ac5; color: #ffffff; }
|
||
[data-theme='luna-teal'] .theme-accordion-open .theme-accordion-header { background: #316ac5; color: #ffffff; }
|
||
[data-theme='luna-teal'] .theme-accordion-open .theme-accordion-chevron { color: #ffffff; }
|
||
|
||
/* ── Progress bar: XP green ── */
|
||
[data-theme='luna-teal'] .progress-bar-track {
|
||
background: #aca899;
|
||
border-radius: 2px;
|
||
box-shadow: inset 0 1px 2px rgba(0,0,0,0.25);
|
||
}
|
||
[data-theme='luna-teal'] .progress-bar-fill {
|
||
background: linear-gradient(180deg, #52cc3c 0%, #3c9d29 50%, #2e8020 100%);
|
||
border-radius: 2px;
|
||
}
|
||
|
||
/* ── Scrollbar: XP 16px system style ── */
|
||
[data-theme='luna-teal'] ::-webkit-scrollbar { width: 16px; height: 16px; }
|
||
[data-theme='luna-teal'] ::-webkit-scrollbar-track { background: #ece9d8; border-left: 1px solid #aca899; }
|
||
[data-theme='luna-teal'] ::-webkit-scrollbar-thumb {
|
||
background: linear-gradient(to right, #c8c4b8 0%, #e0ddd0 40%, #c0bbb4 100%);
|
||
border: 1px solid #888480;
|
||
box-shadow: inset 1px 1px 0 #ffffff, inset -1px -1px 0 #888480;
|
||
border-radius: 2px;
|
||
}
|
||
[data-theme='luna-teal'] ::-webkit-scrollbar-button {
|
||
background: linear-gradient(180deg, #f0ede0 0%, #d8d4c4 100%);
|
||
border: 1px solid #888480;
|
||
box-shadow: inset 1px 1px 0 #ffffff, inset -1px -1px 0 #888480;
|
||
}
|
||
|
||
/* ── Glass / dropdowns: solid XP dialog style ── */
|
||
[data-theme='luna-teal'] .glass {
|
||
background: #ffffff !important;
|
||
backdrop-filter: none !important;
|
||
border: 1px solid #aca899 !important;
|
||
box-shadow: 2px 2px 8px rgba(0,0,0,0.28) !important;
|
||
border-radius: 4px !important;
|
||
}
|
||
[data-theme='luna-teal'] .glass [style*="var(--bg-hover)"] {
|
||
background: #316ac5 !important;
|
||
border-radius: 0 !important;
|
||
color: #ffffff !important;
|
||
}
|
||
[data-theme='luna-teal'] .glass [style*="var(--text-primary)"] { color: #000000 !important; }
|
||
[data-theme='luna-teal'] .glass [style*="var(--text-secondary)"] { color: #333333 !important; }
|
||
[data-theme='luna-teal'] .glass [style*="var(--text-muted)"] { color: #555555 !important; }
|
||
|
||
/* ── Hover / selection: XP classic blue ── */
|
||
[data-theme='luna-teal'] .queue-tab-btn:hover { background: #316ac5; color: #ffffff; }
|
||
[data-theme='luna-teal'] .settings-tab:hover { background: #316ac5; color: #ffffff; }
|
||
[data-theme='luna-teal'] .settings-tab.active { background: #316ac5; color: #ffffff; }
|
||
[data-theme='luna-teal'] .custom-select-trigger:hover { background: #316ac5; color: #ffffff; }
|
||
[data-theme='luna-teal'] .custom-select-option:hover { background: #316ac5 !important; color: #ffffff !important; }
|
||
[data-theme='luna-teal'] .artist-ext-link:hover { background: #316ac5; color: #ffffff !important; }
|
||
[data-theme='luna-teal'] .np-action-btn:hover { background: #316ac5; color: #ffffff; }
|
||
[data-theme='luna-teal'] .np-queue-item:hover,
|
||
[data-theme='luna-teal'] .np-queue-item.context-active { background: #316ac5; color: #ffffff; }
|
||
[data-theme='luna-teal'] .track-row:hover,
|
||
[data-theme='luna-teal'] .track-row.context-active { background: #316ac5 !important; }
|
||
[data-theme='luna-teal'] .track-row:hover *,
|
||
[data-theme='luna-teal'] .track-row.context-active * { color: #ffffff !important; }
|
||
[data-theme='luna-teal'] .artist-row:hover { background: #316ac5; color: #ffffff; }
|
||
[data-theme='luna-teal'] .playlist-row:hover { background: #316ac5; }
|
||
[data-theme='luna-teal'] .playlist-row:hover,
|
||
[data-theme='luna-teal'] .playlist-row:hover * { color: #ffffff; }
|
||
[data-theme='luna-teal'] .queue-item:hover,
|
||
[data-theme='luna-teal'] .queue-item.context-active { background: #316ac5 !important; }
|
||
[data-theme='luna-teal'] .queue-item:hover .queue-item-title,
|
||
[data-theme='luna-teal'] .queue-item:hover .queue-item-artist,
|
||
[data-theme='luna-teal'] .queue-item:hover .queue-item-duration,
|
||
[data-theme='luna-teal'] .queue-item.context-active .queue-item-title,
|
||
[data-theme='luna-teal'] .queue-item.context-active .queue-item-artist,
|
||
[data-theme='luna-teal'] .queue-item.context-active .queue-item-duration { color: #ffffff; }
|
||
|
||
/* ── Active queue / now-playing items ── */
|
||
[data-theme='luna-teal'] .queue-item.active {
|
||
background: rgba(49, 106, 197, 0.12);
|
||
color: #0041b8;
|
||
}
|
||
[data-theme='luna-teal'] .queue-item.active .queue-item-artist,
|
||
[data-theme='luna-teal'] .queue-item.active .queue-item-duration {
|
||
color: #0055e5;
|
||
opacity: 0.85;
|
||
}
|
||
[data-theme='luna-teal'] .np-queue-item-active { color: #0041b8; }
|
||
[data-theme='luna-teal'] .np-queue-item.active { background: rgba(49, 106, 197, 0.10); }
|
||
[data-theme='luna-teal'] .np-album-track.active .np-album-track-title,
|
||
[data-theme='luna-teal'] .np-album-track.active .np-album-track-num { color: #0041b8; }
|
||
|
||
/* ─── macOS Ventura Light ─── */
|
||
[data-theme='cupertino-light'] {
|
||
color-scheme: light;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23636366%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* Palette */
|
||
--ctp-crust: #f5f5f7;
|
||
--ctp-mantle: #e8e8ed;
|
||
--ctp-base: #ffffff;
|
||
--ctp-surface0: #f2f2f7;
|
||
--ctp-surface1: #e5e5ea;
|
||
--ctp-surface2: #d1d1d6;
|
||
--ctp-overlay0: #8e8e93;
|
||
--ctp-overlay1: #6c6c70;
|
||
--ctp-overlay2: #48484a;
|
||
--ctp-text: #1c1c1e;
|
||
--ctp-subtext1: #3a3a3c;
|
||
--ctp-subtext0: #636366;
|
||
--ctp-mauve: #0071e3;
|
||
--ctp-lavender: #2c9af0;
|
||
--ctp-green: #34c759;
|
||
--ctp-teal: #5ac8fa;
|
||
--ctp-sky: #32ade6;
|
||
--ctp-blue: #0071e3;
|
||
--ctp-sapphire: #0051a8;
|
||
--ctp-pink: #ff2d55;
|
||
--ctp-flamingo: #ff6b81;
|
||
--ctp-rosewater:#ffd6d6;
|
||
--ctp-yellow: #ffd60a;
|
||
--ctp-peach: #ff9f0a;
|
||
--ctp-maroon: #c0392b;
|
||
--ctp-red: #ff3b30;
|
||
|
||
/* Semantic tokens */
|
||
--bg-app: #ffffff;
|
||
--bg-sidebar: #f2f2f7;
|
||
--bg-card: #ffffff;
|
||
--bg-hover: #f2f2f7;
|
||
--bg-player: rgba(255, 255, 255, 0.85);
|
||
--bg-glass: rgba(255, 255, 255, 0.72);
|
||
--accent: #0071e3;
|
||
--accent-dim: rgba(0, 113, 227, 0.12);
|
||
--accent-glow: rgba(0, 113, 227, 0.30);
|
||
--text-primary: #1c1c1e;
|
||
--text-secondary:#3a3a3c;
|
||
--text-muted: #6d6d72;
|
||
--border: #d1d1d6;
|
||
--border-subtle: #e5e5ea;
|
||
--positive: #34c759;
|
||
--warning: #ff9f0a;
|
||
--danger: #ff3b30;
|
||
|
||
--shadow-dropdown: 0 8px 30px rgba(0,0,0,0.12), 0 2px 8px rgba(0,0,0,0.08);
|
||
}
|
||
|
||
[data-theme='cupertino-light'] .app-shell {
|
||
background: #f2f2f7;
|
||
}
|
||
|
||
[data-theme='cupertino-light'] .sidebar {
|
||
background: rgba(242, 242, 247, 0.85);
|
||
backdrop-filter: blur(20px);
|
||
-webkit-backdrop-filter: blur(20px);
|
||
border-right: 1px solid rgba(0,0,0,0.08);
|
||
}
|
||
|
||
[data-theme='cupertino-light'] .player-bar {
|
||
background: rgba(255, 255, 255, 0.85);
|
||
backdrop-filter: blur(20px);
|
||
-webkit-backdrop-filter: blur(20px);
|
||
border-top: 1px solid rgba(0,0,0,0.10);
|
||
box-shadow: 0 -1px 0 rgba(0,0,0,0.06);
|
||
}
|
||
|
||
/* Player text: dark on light bar */
|
||
[data-theme='cupertino-light'] .player-track-name {
|
||
color: #1c1c1e;
|
||
}
|
||
[data-theme='cupertino-light'] .player-track-artist {
|
||
color: #636366;
|
||
}
|
||
[data-theme='cupertino-light'] .player-time {
|
||
color: #636366;
|
||
}
|
||
[data-theme='cupertino-light'] .player-btn {
|
||
color: #1c1c1e;
|
||
}
|
||
[data-theme='cupertino-light'] .player-btn:hover {
|
||
color: #0071e3;
|
||
background: rgba(0, 113, 227, 0.10);
|
||
}
|
||
[data-theme='cupertino-light'] .player-btn-primary {
|
||
color: #ffffff;
|
||
background: #0071e3;
|
||
box-shadow: 0 2px 8px rgba(0, 113, 227, 0.35);
|
||
}
|
||
[data-theme='cupertino-light'] .player-btn-primary:hover {
|
||
background: #0077ed;
|
||
box-shadow: 0 4px 12px rgba(0, 113, 227, 0.45);
|
||
}
|
||
|
||
/* Nav links */
|
||
[data-theme='cupertino-light'] .nav-link {
|
||
color: #3a3a3c;
|
||
}
|
||
[data-theme='cupertino-light'] .nav-link:hover {
|
||
background: rgba(0,0,0,0.06);
|
||
color: #1c1c1e;
|
||
}
|
||
[data-theme='cupertino-light'] .nav-link.active {
|
||
background: #0071e3;
|
||
color: #ffffff;
|
||
border-left-color: transparent;
|
||
border-radius: 8px;
|
||
}
|
||
[data-theme='cupertino-light'] .nav-link.active::before {
|
||
display: none;
|
||
}
|
||
[data-theme='cupertino-light'] .nav-link-nowplaying {
|
||
color: #0071e3;
|
||
font-weight: 600;
|
||
}
|
||
|
||
/* Queue active */
|
||
[data-theme='cupertino-light'] .queue-item.active {
|
||
background: rgba(0, 113, 227, 0.10);
|
||
color: #0071e3;
|
||
}
|
||
|
||
/* NowPlaying overrides */
|
||
[data-theme='cupertino-light'] .np-queue-item-active {
|
||
color: #0071e3;
|
||
}
|
||
[data-theme='cupertino-light'] .np-album-track.active .np-album-track-title,
|
||
[data-theme='cupertino-light'] .np-album-track.active .np-album-track-num {
|
||
color: #0071e3;
|
||
}
|
||
|
||
/* ─── macOS Ventura Dark ─── */
|
||
[data-theme='cupertino-dark'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%2398989d%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* Palette */
|
||
--ctp-crust: #0d0d0e;
|
||
--ctp-mantle: #161617;
|
||
--ctp-base: #1e1e1f;
|
||
--ctp-surface0: #2d2d2f;
|
||
--ctp-surface1: #3a3a3c;
|
||
--ctp-surface2: #48484a;
|
||
--ctp-overlay0: #636366;
|
||
--ctp-overlay1: #8e8e93;
|
||
--ctp-overlay2: #aeaeb2;
|
||
--ctp-text: #f5f5f7;
|
||
--ctp-subtext1: #e5e5ea;
|
||
--ctp-subtext0: #c7c7cc;
|
||
--ctp-mauve: #007aff;
|
||
--ctp-lavender: #409cff;
|
||
--ctp-green: #30d158;
|
||
--ctp-teal: #5ac8fa;
|
||
--ctp-sky: #32ade6;
|
||
--ctp-blue: #007aff;
|
||
--ctp-sapphire: #0a84ff;
|
||
--ctp-pink: #ff375f;
|
||
--ctp-flamingo: #ff6b81;
|
||
--ctp-rosewater:#ffd6d6;
|
||
--ctp-yellow: #ffd60a;
|
||
--ctp-peach: #ff9f0a;
|
||
--ctp-maroon: #c0392b;
|
||
--ctp-red: #ff453a;
|
||
|
||
/* Semantic tokens */
|
||
--bg-app: #1e1e1f;
|
||
--bg-sidebar: #161617;
|
||
--bg-card: #2d2d2f;
|
||
--bg-hover: #3a3a3c;
|
||
--bg-player: rgba(16, 16, 17, 0.90);
|
||
--bg-glass: rgba(30, 30, 31, 0.80);
|
||
--accent: #007aff;
|
||
--accent-dim: rgba(0, 122, 255, 0.15);
|
||
--accent-glow: rgba(0, 122, 255, 0.35);
|
||
--text-primary: #f5f5f7;
|
||
--text-secondary:#c7c7cc;
|
||
--text-muted: #8e8e93;
|
||
--border: #3a3a3c;
|
||
--border-subtle: #2d2d2f;
|
||
--positive: #30d158;
|
||
--warning: #ff9f0a;
|
||
--danger: #ff453a;
|
||
|
||
--shadow-dropdown: 0 8px 30px rgba(0,0,0,0.55), 0 2px 8px rgba(0,0,0,0.30);
|
||
}
|
||
|
||
[data-theme='cupertino-dark'] .app-shell {
|
||
background: #1e1e1f;
|
||
}
|
||
|
||
[data-theme='cupertino-dark'] .sidebar {
|
||
background: rgba(22, 22, 23, 0.90);
|
||
backdrop-filter: blur(25px);
|
||
-webkit-backdrop-filter: blur(25px);
|
||
border-right: 1px solid rgba(255,255,255,0.06);
|
||
}
|
||
|
||
[data-theme='cupertino-dark'] .player-bar {
|
||
background: rgba(16, 16, 17, 0.90);
|
||
backdrop-filter: blur(25px);
|
||
-webkit-backdrop-filter: blur(25px);
|
||
border-top: 1px solid rgba(255,255,255,0.06);
|
||
}
|
||
|
||
[data-theme='cupertino-dark'] .player-btn:hover {
|
||
color: #007aff;
|
||
background: rgba(0, 122, 255, 0.12);
|
||
}
|
||
[data-theme='cupertino-dark'] .player-btn-primary {
|
||
color: #ffffff;
|
||
background: #007aff;
|
||
box-shadow: 0 2px 8px rgba(0, 122, 255, 0.40);
|
||
}
|
||
[data-theme='cupertino-dark'] .player-btn-primary:hover {
|
||
background: #0a84ff;
|
||
box-shadow: 0 4px 14px rgba(0, 122, 255, 0.50);
|
||
}
|
||
|
||
/* Nav links */
|
||
[data-theme='cupertino-dark'] .nav-link.active {
|
||
background: #007aff;
|
||
color: #ffffff;
|
||
border-left-color: transparent;
|
||
border-radius: 8px;
|
||
}
|
||
[data-theme='cupertino-dark'] .nav-link.active::before {
|
||
display: none;
|
||
}
|
||
[data-theme='cupertino-dark'] .nav-link-nowplaying {
|
||
color: #409cff;
|
||
font-weight: 600;
|
||
}
|
||
|
||
/* Queue active */
|
||
[data-theme='cupertino-dark'] .queue-item.active {
|
||
background: rgba(0, 122, 255, 0.15);
|
||
color: #007aff;
|
||
}
|
||
|
||
/* NowPlaying overrides */
|
||
[data-theme='cupertino-dark'] .np-queue-item-active {
|
||
color: #007aff;
|
||
}
|
||
[data-theme='cupertino-dark'] .np-album-track.active .np-album-track-title,
|
||
[data-theme='cupertino-dark'] .np-album-track.active .np-album-track-num {
|
||
color: #007aff;
|
||
}
|
||
|
||
/* ─── Neon Drift ─── */
|
||
[data-theme='neon-drift'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%2300f2ff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
--ctp-crust: #080916;
|
||
--ctp-mantle: #0d0e21;
|
||
--ctp-base: #12132c;
|
||
--ctp-surface0: #1a1b3b;
|
||
--ctp-surface1: #242650;
|
||
--ctp-surface2: #2f3166;
|
||
--ctp-overlay0: #51548a;
|
||
--ctp-overlay1: #7277ad;
|
||
--ctp-overlay2: #9299cf;
|
||
--ctp-text: #e0e2ff;
|
||
--ctp-subtext1: #aeb3e0;
|
||
--ctp-subtext0: #8b91c4;
|
||
--ctp-mauve: #00f2ff;
|
||
--ctp-lavender: #7000ff;
|
||
--ctp-green: #00ffa3;
|
||
--ctp-teal: #00d4cc;
|
||
--ctp-sky: #00c8ff;
|
||
--ctp-blue: #0077ff;
|
||
--ctp-sapphire: #0055cc;
|
||
--ctp-pink: #ff00cc;
|
||
--ctp-flamingo: #ff44aa;
|
||
--ctp-rosewater:#ffaadd;
|
||
--ctp-yellow: #ffe600;
|
||
--ctp-peach: #ff9900;
|
||
--ctp-maroon: #cc2244;
|
||
--ctp-red: #ff2d55;
|
||
|
||
--bg-app: #12132c;
|
||
--bg-sidebar: #0d0e21;
|
||
--bg-card: #1a1b3b;
|
||
--bg-hover: #242650;
|
||
--bg-player: #080916;
|
||
--bg-glass: rgba(13, 14, 33, 0.85);
|
||
--accent: #00f2ff;
|
||
--accent-dim: rgba(0, 242, 255, 0.12);
|
||
--accent-glow: rgba(0, 242, 255, 0.40);
|
||
--text-primary: #e0e2ff;
|
||
--text-secondary:#aeb3e0;
|
||
--text-muted: #7277ad;
|
||
--border: #2f3166;
|
||
--border-subtle: #242650;
|
||
--positive: #00ffa3;
|
||
--warning: #ffe600;
|
||
--danger: #ff2d55;
|
||
|
||
--radius-md: 8px;
|
||
--radius-lg: 12px;
|
||
}
|
||
|
||
[data-theme='neon-drift'] .player-bar {
|
||
border-top: 1px solid rgba(0, 242, 255, 0.20);
|
||
box-shadow: 0 -10px 30px -15px rgba(0, 242, 255, 0.15);
|
||
}
|
||
|
||
[data-theme='neon-drift'] .player-track-name {
|
||
color: #00f2ff;
|
||
text-shadow: 0 0 12px rgba(0, 242, 255, 0.30);
|
||
font-weight: 600;
|
||
}
|
||
|
||
[data-theme='neon-drift'] .nav-link.active {
|
||
color: #00f2ff;
|
||
text-shadow: 0 0 8px rgba(0, 242, 255, 0.50);
|
||
}
|
||
|
||
[data-theme='neon-drift'] .nav-link.active::before {
|
||
box-shadow: 0 0 10px #00f2ff;
|
||
}
|
||
|
||
[data-theme='neon-drift'] .btn-primary {
|
||
background: linear-gradient(135deg, #00f2ff, #0077ff);
|
||
border: none;
|
||
color: #080916 !important;
|
||
box-shadow: 0 4px 15px rgba(0, 242, 255, 0.30);
|
||
}
|
||
|
||
[data-theme='neon-drift'] input[type="range"]::-webkit-slider-thumb {
|
||
background: white;
|
||
box-shadow: 0 0 10px #00f2ff;
|
||
}
|
||
|
||
/* ─── Font overrides ─── */
|
||
[data-font='outfit'] {
|
||
--font-sans: 'Outfit', system-ui, sans-serif;
|
||
--font-display: 'Outfit', sans-serif;
|
||
}
|
||
[data-font='dm-sans'] {
|
||
--font-sans: 'DM Sans', system-ui, sans-serif;
|
||
--font-display: 'DM Sans', sans-serif;
|
||
}
|
||
[data-font='nunito'] {
|
||
--font-sans: 'Nunito', system-ui, sans-serif;
|
||
--font-display: 'Nunito', sans-serif;
|
||
}
|
||
[data-font='rubik'] {
|
||
--font-sans: 'Rubik', system-ui, sans-serif;
|
||
--font-display: 'Rubik', sans-serif;
|
||
}
|
||
|
||
[data-font='space-grotesk'] {
|
||
--font-sans: 'Space Grotesk', system-ui, sans-serif;
|
||
--font-display: 'Space Grotesk', sans-serif;
|
||
}
|
||
[data-font='figtree'] {
|
||
--font-sans: 'Figtree', system-ui, sans-serif;
|
||
--font-display: 'Figtree', sans-serif;
|
||
}
|
||
[data-font='manrope'] {
|
||
--font-sans: 'Manrope', system-ui, sans-serif;
|
||
--font-display: 'Manrope', sans-serif;
|
||
}
|
||
[data-font='plus-jakarta-sans'] {
|
||
--font-sans: 'Plus Jakarta Sans', system-ui, sans-serif;
|
||
--font-display: 'Plus Jakarta Sans', sans-serif;
|
||
}
|
||
[data-font='lexend'] {
|
||
--font-sans: 'Lexend', system-ui, sans-serif;
|
||
--font-display: 'Lexend', sans-serif;
|
||
}
|
||
|
||
/* ─── Equalizer bars animation ─── */
|
||
.eq-bar {
|
||
display: inline-block;
|
||
width: 3px;
|
||
background: var(--accent);
|
||
border-radius: 2px;
|
||
transform-origin: bottom;
|
||
}
|
||
.eq-bar:nth-child(1) { animation: wave 0.8s ease-in-out 0.0s infinite; }
|
||
.eq-bar:nth-child(2) { animation: wave 0.8s ease-in-out 0.15s infinite; }
|
||
.eq-bar:nth-child(3) { animation: wave 0.8s ease-in-out 0.3s infinite; }
|
||
.eq-bar:nth-child(4) { animation: wave 0.8s ease-in-out 0.45s infinite; }
|
||
|
||
/* ─────────────────────────────────────────────────────────────
|
||
Middle Earth — Epic Fantasy / Cinematic
|
||
───────────────────────────────────────────────────────────── */
|
||
|
||
/* ─────────────────────────────────────────────────────────────
|
||
Middle-Earth — The One Ring Inscription Glow
|
||
───────────────────────────────────────────────────────────── */
|
||
|
||
/* Breathing glow of the Ring — applied to player-track-name.
|
||
Like the inscription heating up in Bag End's fireplace. */
|
||
@keyframes ring-inscription-glow {
|
||
0%, 100% {
|
||
text-shadow:
|
||
0 0 8px rgba(240, 200, 60, 0.70),
|
||
0 0 18px rgba(200, 140, 20, 0.38),
|
||
0 0 36px rgba(160, 100, 10, 0.15);
|
||
}
|
||
50% {
|
||
text-shadow:
|
||
0 0 12px rgba(240, 200, 60, 0.95),
|
||
0 0 28px rgba(200, 140, 20, 0.65),
|
||
0 0 52px rgba(160, 100, 10, 0.32),
|
||
0 0 80px rgba(100, 60, 5, 0.14);
|
||
}
|
||
}
|
||
|
||
/* ─── Middle-Earth — Red Book of Westmarch ─── */
|
||
[data-theme='middle-earth'] {
|
||
color-scheme: light;
|
||
--color-star-active: #8c6800;
|
||
--color-star-inactive: #b8985a;
|
||
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%234a3728%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* ── Palette ── */
|
||
/* Warm — Shire, Rohan, Dwarvish gold */
|
||
--ctp-crust: #1a1008;
|
||
--ctp-mantle: #281808;
|
||
--ctp-base: #f0e0b0;
|
||
--ctp-surface0: #e8d498;
|
||
--ctp-surface1: #dcc482;
|
||
--ctp-surface2: #ccb06e;
|
||
--ctp-overlay0: #8a7250;
|
||
--ctp-overlay1: #6a5438;
|
||
--ctp-overlay2: #4a3828;
|
||
--ctp-text: #1e1408;
|
||
--ctp-subtext1: #3e2c1a;
|
||
--ctp-subtext0: #5e4a30;
|
||
/* Gold of the One Ring */
|
||
--ctp-mauve: #d4a820;
|
||
--ctp-lavender: #f0d060;
|
||
--ctp-yellow: #f8e880;
|
||
--ctp-peach: #b88010;
|
||
/* Shire green, Rivendell silver, Elvish blue */
|
||
--ctp-green: #4a7038;
|
||
--ctp-teal: #3a6858;
|
||
--ctp-sky: #7898b8;
|
||
--ctp-blue: #486888;
|
||
--ctp-sapphire: #2a4868;
|
||
/* Mordor / danger */
|
||
--ctp-red: #8a2820;
|
||
--ctp-maroon: #5a1818;
|
||
--ctp-flamingo: #b05838;
|
||
--ctp-pink: #904868;
|
||
--ctp-rosewater: #e8c8a8;
|
||
|
||
/* ── Semantic tokens ── */
|
||
--bg-app: #f0e0b0;
|
||
--bg-sidebar: #241a0e; /* Bag End — old oak wood, hearthlit */
|
||
--bg-card: #f4e8c0;
|
||
--bg-hover: rgba(180, 130, 20, 0.12);
|
||
--bg-player: #1a1008; /* Orodruin / the forge-dark */
|
||
--bg-glass: rgba(244, 232, 192, 0.92);
|
||
--accent: #d4a820;
|
||
--accent-dim: rgba(212, 168, 32, 0.16);
|
||
--accent-glow: rgba(212, 168, 32, 0.45);
|
||
--volume-accent: #d4a820;
|
||
--text-primary: #1e1408;
|
||
--text-secondary:#3e2c1a;
|
||
--text-muted: #6a5230;
|
||
--border: rgba(180, 140, 50, 0.38);
|
||
--border-subtle: rgba(180, 140, 50, 0.18);
|
||
--positive: #4a7038;
|
||
--warning: #c88a10;
|
||
--danger: #8a2820;
|
||
--radius-sm: 4px;
|
||
--radius-md: 8px;
|
||
--radius-lg: 12px;
|
||
}
|
||
|
||
/* ── App shell: parchment map of Middle-Earth ── */
|
||
/* Three-layer: warm gold illumination top-right (candlelight),
|
||
ember glow bottom-left (hearth), radial vignette darkening corners */
|
||
[data-theme='middle-earth'] .app-shell {
|
||
background:
|
||
radial-gradient(ellipse at center, transparent 50%, rgba(60, 38, 18, 0.12) 100%),
|
||
radial-gradient(ellipse at 78% 18%, rgba(220, 180, 60, 0.08) 0%, transparent 50%),
|
||
radial-gradient(ellipse at 15% 88%, rgba(180, 110, 20, 0.07) 0%, transparent 45%),
|
||
linear-gradient(155deg, #f4e8c0 0%, #eed8a0 50%, #e8d098 100%);
|
||
}
|
||
|
||
/* Parchment grain overlay — the texture of the Red Book's pages */
|
||
[data-theme='middle-earth'] .app-shell::after {
|
||
content: '';
|
||
position: fixed;
|
||
inset: 0;
|
||
pointer-events: none;
|
||
z-index: 9999;
|
||
opacity: 0.045;
|
||
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
|
||
background-size: 200px 200px;
|
||
}
|
||
|
||
/* ── Sidebar: Bag End oak paneling ── */
|
||
/* Old Shire craftsmanship — vertical wood grain, warm hearthlight from right edge */
|
||
[data-theme='middle-earth'] .sidebar {
|
||
background-color: #221608;
|
||
background-image:
|
||
repeating-linear-gradient(
|
||
90deg,
|
||
rgba(255, 220, 120, 0.04) 0px, rgba(255, 220, 120, 0.04) 1px,
|
||
transparent 1px, transparent 14px
|
||
),
|
||
linear-gradient(180deg, #261a0a 0%, #1e1408 55%, #241c0e 100%);
|
||
border-right: 2px solid rgba(200, 160, 40, 0.28);
|
||
box-shadow:
|
||
inset -3px 0 12px rgba(200, 140, 30, 0.10),
|
||
2px 0 8px rgba(0, 0, 0, 0.50);
|
||
}
|
||
|
||
/* Sidebar text: warm candlelight on dark oak */
|
||
[data-theme='middle-earth'] .nav-link { color: #c8a060; }
|
||
[data-theme='middle-earth'] .nav-link:hover {
|
||
background: rgba(212, 168, 32, 0.12);
|
||
color: #f0d880;
|
||
}
|
||
[data-theme='middle-earth'] .nav-link.active {
|
||
background: linear-gradient(90deg, rgba(212,168,32,0.22) 0%, transparent 100%);
|
||
color: #f0d060;
|
||
border-left: 2px solid #d4a820;
|
||
box-shadow: inset 4px 0 18px rgba(212,168,32,0.12);
|
||
}
|
||
[data-theme='middle-earth'] .nav-link.active::before {
|
||
background: #d4a820;
|
||
box-shadow: 0 0 10px rgba(212,168,32,0.80), 0 0 20px rgba(212,168,32,0.40);
|
||
}
|
||
[data-theme='middle-earth'] .nav-link.active svg { color: #d4a820; }
|
||
[data-theme='middle-earth'] .nav-section-label {
|
||
color: #6a5030;
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.14em;
|
||
font-size: 0.67em;
|
||
font-family: Georgia, 'Book Antiqua', serif;
|
||
}
|
||
|
||
/* ── Player bar: Sammath Naur — the fires of Orodruin ── */
|
||
/* Near-black volcanic dark, sealed with the gold of the Ring */
|
||
[data-theme='middle-earth'] .player-bar {
|
||
background: linear-gradient(180deg, #1c1208 0%, #100c04 100%);
|
||
border-top: 2px solid rgba(212, 168, 32, 0.58);
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(240, 200, 60, 0.22),
|
||
0 -8px 40px rgba(180, 120, 20, 0.20),
|
||
0 -20px 70px rgba(160, 100, 15, 0.09);
|
||
}
|
||
|
||
/* Track name: THE ONE RING INSCRIPTION — breathing gold fire */
|
||
[data-theme='middle-earth'] .player-track-name {
|
||
color: #f0d060;
|
||
font-family: Georgia, 'Book Antiqua', 'Palatino Linotype', Palatino, serif;
|
||
letter-spacing: 0.06em;
|
||
font-weight: 600;
|
||
animation: ring-inscription-glow 5s ease-in-out infinite;
|
||
}
|
||
|
||
/* Artist: Elvish silver on the dark forge */
|
||
[data-theme='middle-earth'] .player-track-artist {
|
||
color: #b8985a;
|
||
font-family: Georgia, 'Book Antiqua', serif;
|
||
letter-spacing: 0.03em;
|
||
opacity: 1;
|
||
}
|
||
[data-theme='middle-earth'] .player-time { color: #7a5c30; }
|
||
|
||
/* ── Transport buttons: Mithril-crafted, hearthlit ── */
|
||
[data-theme='middle-earth'] .player-btn,
|
||
[data-theme='middle-earth'] .player-btn-primary {
|
||
background: linear-gradient(180deg, #2e2010 0%, #1e1408 100%);
|
||
color: #d4a820;
|
||
border: 1px solid rgba(212, 168, 32, 0.38);
|
||
border-radius: 50%;
|
||
box-shadow: inset 0 1px 0 rgba(240,200,60,0.10), 0 2px 6px rgba(0,0,0,0.60);
|
||
}
|
||
[data-theme='middle-earth'] .player-btn:hover,
|
||
[data-theme='middle-earth'] .player-btn-primary:hover {
|
||
background: rgba(212, 168, 32, 0.14);
|
||
border-color: #d4a820;
|
||
color: #f0d060;
|
||
box-shadow:
|
||
0 0 16px rgba(212, 168, 32, 0.48),
|
||
inset 0 0 8px rgba(200, 140, 20, 0.10);
|
||
}
|
||
|
||
/* ── Regular buttons: parchment scroll / carved Shire wood ── */
|
||
[data-theme='middle-earth'] .btn,
|
||
[data-theme='middle-earth'] .btn-surface,
|
||
[data-theme='middle-earth'] .btn-ghost {
|
||
background: linear-gradient(180deg, #f8f0d0 0%, #e8d898 50%, #dece88 100%);
|
||
color: #2a1c0e;
|
||
border: 1px solid rgba(160, 120, 40, 0.48);
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255, 255, 255, 0.65),
|
||
inset 1px 0 0 rgba(255, 255, 255, 0.45),
|
||
0 1px 3px rgba(80, 50, 10, 0.22);
|
||
border-radius: 6px;
|
||
font-family: Georgia, 'Book Antiqua', serif;
|
||
}
|
||
[data-theme='middle-earth'] .btn:hover,
|
||
[data-theme='middle-earth'] .btn-surface:hover,
|
||
[data-theme='middle-earth'] .btn-ghost:hover {
|
||
background: linear-gradient(180deg, #fffff0 0%, #f0e8a8 50%, #e8d890 100%);
|
||
border-color: rgba(180, 140, 40, 0.70);
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255,255,255,0.80),
|
||
0 1px 4px rgba(80,50,10,0.20),
|
||
0 0 8px rgba(212,168,32,0.18);
|
||
}
|
||
|
||
/* ── Primary button: One Ring gold — the most precious craftsmanship ── */
|
||
[data-theme='middle-earth'] .btn-primary {
|
||
background: linear-gradient(180deg, #e8bc28 0%, #c8940c 50%, #aa7808 100%);
|
||
color: #1a1008;
|
||
border: 1px solid #c89818;
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255, 240, 100, 0.45),
|
||
0 0 16px rgba(212, 168, 32, 0.42),
|
||
0 2px 4px rgba(80, 50, 0, 0.30);
|
||
border-radius: 6px;
|
||
font-weight: 700;
|
||
font-family: Georgia, 'Book Antiqua', serif;
|
||
}
|
||
[data-theme='middle-earth'] .btn-primary:hover {
|
||
background: linear-gradient(180deg, #f8cc38 0%, #d8a018 50%, #bc8810 100%);
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255, 240, 100, 0.55),
|
||
0 0 24px rgba(212, 168, 32, 0.60),
|
||
0 2px 6px rgba(80, 50, 0, 0.28);
|
||
}
|
||
|
||
/* ── Hero / album-card play buttons: solid One Ring gold ── */
|
||
/* These appear on dark album-art overlays — must be fully opaque and prominent */
|
||
[data-theme='middle-earth'] .hero-play-btn,
|
||
[data-theme='middle-earth'] .album-card-details-btn {
|
||
background: linear-gradient(180deg, #e8bc28 0%, #c8940c 50%, #aa7808 100%);
|
||
color: #1a1008;
|
||
border: 1px solid #c89818;
|
||
font-family: Georgia, 'Book Antiqua', serif;
|
||
font-weight: 700;
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255, 240, 100, 0.45),
|
||
0 0 14px rgba(212, 168, 32, 0.38),
|
||
0 2px 6px rgba(0, 0, 0, 0.40);
|
||
}
|
||
[data-theme='middle-earth'] .hero-play-btn:hover,
|
||
[data-theme='middle-earth'] .album-card-details-btn:hover {
|
||
background: linear-gradient(180deg, #f8cc38 0%, #d8a018 50%, #bc8810 100%);
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255, 240, 100, 0.55),
|
||
0 0 22px rgba(212, 168, 32, 0.58),
|
||
0 2px 8px rgba(0, 0, 0, 0.35);
|
||
filter: none;
|
||
}
|
||
|
||
/* ── Queue round buttons ── */
|
||
[data-theme='middle-earth'] .queue-round-btn {
|
||
background: linear-gradient(180deg, #f0e4b0 0%, #dece88 100%);
|
||
color: #4a3828;
|
||
border: 1px solid rgba(150, 112, 38, 0.40);
|
||
box-shadow: inset 0 1px 0 rgba(255,255,255,0.55), 0 1px 2px rgba(80,50,10,0.18);
|
||
}
|
||
[data-theme='middle-earth'] .queue-round-btn:hover:not(:disabled):not(.active) {
|
||
background: linear-gradient(180deg, #fffff0 0%, #f0e4a0 100%);
|
||
border-color: rgba(180,140,40,0.60);
|
||
box-shadow: inset 0 1px 0 rgba(255,255,255,0.70), 0 0 8px rgba(212,168,32,0.22);
|
||
color: #2a1c0e;
|
||
}
|
||
[data-theme='middle-earth'] .queue-round-btn.active {
|
||
background: linear-gradient(180deg, #e8bc28 0%, #c8940c 100%);
|
||
color: #1a1008;
|
||
border-color: #c89818;
|
||
box-shadow: 0 0 14px rgba(212,168,32,0.45), inset 0 1px 0 rgba(255,240,100,0.35);
|
||
}
|
||
|
||
/* ── Cards: leaves of the Red Book — layered parchment ── */
|
||
[data-theme='middle-earth'] .card {
|
||
background: linear-gradient(180deg, #f8f0d0 0%, #f0e4b8 100%);
|
||
border: 1px solid rgba(168, 130, 48, 0.32);
|
||
border-radius: 10px;
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255, 255, 255, 0.70),
|
||
0 2px 8px rgba(80, 50, 10, 0.16),
|
||
0 4px 16px rgba(60, 38, 10, 0.08);
|
||
}
|
||
|
||
/* ── Content header: illuminated manuscript chapter heading ── */
|
||
/* The gold ruled border at the bottom is the decorative line
|
||
that separates the chapter title from the body of the text */
|
||
[data-theme='middle-earth'] .content-header {
|
||
position: relative;
|
||
background: linear-gradient(180deg, #f8f0d0 0%, #f0e4b8 100%);
|
||
border-bottom: 2px solid rgba(200, 158, 38, 0.45);
|
||
box-shadow: 0 3px 14px rgba(120, 80, 15, 0.12);
|
||
}
|
||
/* The gold rule — fades at edges like gold leaf on vellum */
|
||
[data-theme='middle-earth'] .content-header::after {
|
||
content: '';
|
||
position: absolute;
|
||
bottom: -3px;
|
||
left: 8%;
|
||
right: 8%;
|
||
height: 1px;
|
||
background: linear-gradient(
|
||
90deg, transparent 0%, rgba(212,168,32,0.65) 20%,
|
||
rgba(240,210,60,0.85) 50%, rgba(212,168,32,0.65) 80%, transparent 100%
|
||
);
|
||
pointer-events: none;
|
||
}
|
||
|
||
/* Connection indicators */
|
||
[data-theme='middle-earth'] .connection-type,
|
||
[data-theme='middle-earth'] .connection-server { color: #5a4828; }
|
||
|
||
/* ── Theme accordion: old book binding ── */
|
||
[data-theme='middle-earth'] .theme-accordion-header:hover {
|
||
background: rgba(212, 168, 32, 0.12);
|
||
color: #6a4820;
|
||
}
|
||
[data-theme='middle-earth'] .theme-accordion-open .theme-accordion-header {
|
||
background: rgba(212, 168, 32, 0.16);
|
||
color: #5a3818;
|
||
}
|
||
[data-theme='middle-earth'] .theme-accordion-open .theme-accordion-chevron { color: #c89818; }
|
||
|
||
/* ── Progress bar: THE ROAD GOES EVER ON ── */
|
||
/* From darkness into gold light — the long journey from the Shire to Mount Doom */
|
||
[data-theme='middle-earth'] .progress-bar-track {
|
||
background: #d8c880;
|
||
border: 1px solid rgba(160, 120, 38, 0.40);
|
||
border-radius: 4px;
|
||
box-shadow: inset 0 1px 3px rgba(80,50,10,0.20);
|
||
}
|
||
[data-theme='middle-earth'] .progress-bar-fill {
|
||
background: linear-gradient(90deg,
|
||
#5a3802 0%,
|
||
#9a6808 25%,
|
||
#c89018 55%,
|
||
#d4a820 75%,
|
||
#f0d060 90%,
|
||
#fff0a0 100%
|
||
);
|
||
border-radius: 4px;
|
||
box-shadow: 0 0 10px rgba(212,168,32,0.65), 0 0 3px rgba(255,230,100,0.55);
|
||
}
|
||
|
||
/* ── Scrollbar: aged oak library shelves ── */
|
||
[data-theme='middle-earth'] ::-webkit-scrollbar { width: 8px; height: 8px; }
|
||
[data-theme='middle-earth'] ::-webkit-scrollbar-track {
|
||
background: #dcc880;
|
||
border-radius: 4px;
|
||
}
|
||
[data-theme='middle-earth'] ::-webkit-scrollbar-thumb {
|
||
background: linear-gradient(to right, #6e4a28 0%, #9a7040 40%, #6a4420 100%);
|
||
border: 1px solid rgba(180, 130, 40, 0.45);
|
||
border-radius: 4px;
|
||
box-shadow: inset 0 1px 0 rgba(255,220,100,0.25);
|
||
}
|
||
[data-theme='middle-earth'] ::-webkit-scrollbar-thumb:hover {
|
||
background: linear-gradient(to right, #8a6038 0%, #b88a50 40%, #8a5a30 100%);
|
||
box-shadow: inset 0 1px 0 rgba(255,220,100,0.35), 0 0 5px rgba(212,168,32,0.28);
|
||
}
|
||
|
||
/* ── Glass / dropdowns: a scroll held to the light ── */
|
||
[data-theme='middle-earth'] .glass {
|
||
background: rgba(248, 238, 198, 0.96) !important;
|
||
backdrop-filter: none !important;
|
||
border: 1px solid rgba(180, 140, 48, 0.45) !important;
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255,255,255,0.70),
|
||
0 4px 20px rgba(80, 50, 10, 0.20),
|
||
0 8px 30px rgba(60, 38, 10, 0.10) !important;
|
||
border-radius: 10px !important;
|
||
}
|
||
[data-theme='middle-earth'] .glass [style*="var(--bg-hover)"] {
|
||
background: rgba(212, 168, 32, 0.12) !important;
|
||
border-radius: 6px !important;
|
||
}
|
||
[data-theme='middle-earth'] .glass [style*="var(--text-primary)"] { color: #1e1408 !important; }
|
||
[data-theme='middle-earth'] .glass [style*="var(--text-secondary)"] { color: #3e2c1a !important; }
|
||
[data-theme='middle-earth'] .glass [style*="var(--text-muted)"] { color: #8a7250 !important; }
|
||
|
||
/* ── Hover / selection: candlelight — warm gold glow ── */
|
||
[data-theme='middle-earth'] .settings-tab:hover { background: rgba(212,168,32,0.12); color: #2a1c0e; }
|
||
[data-theme='middle-earth'] .settings-tab.active {
|
||
background: rgba(212,168,32,0.18);
|
||
color: #2a1c0e;
|
||
box-shadow: inset 2px 0 0 #d4a820;
|
||
}
|
||
[data-theme='middle-earth'] .custom-select-trigger:hover { background: rgba(212,168,32,0.10); }
|
||
[data-theme='middle-earth'] .custom-select-option:hover {
|
||
background: rgba(212,168,32,0.15) !important;
|
||
color: #1e1408 !important;
|
||
}
|
||
[data-theme='middle-earth'] .artist-ext-link:hover {
|
||
background: rgba(212,168,32,0.12);
|
||
color: #2a1c0e !important;
|
||
border-color: rgba(180,140,40,0.55) !important;
|
||
}
|
||
[data-theme='middle-earth'] .np-action-btn:hover { background: rgba(212,168,32,0.10); }
|
||
[data-theme='middle-earth'] .np-queue-item:hover,
|
||
[data-theme='middle-earth'] .np-queue-item.context-active {
|
||
background: rgba(212,168,32,0.13);
|
||
box-shadow: inset 2px 0 0 #d4a820;
|
||
}
|
||
[data-theme='middle-earth'] .track-row:hover,
|
||
[data-theme='middle-earth'] .track-row.context-active {
|
||
background: rgba(212,168,32,0.10) !important;
|
||
box-shadow: inset 2px 0 0 #d4a820;
|
||
}
|
||
[data-theme='middle-earth'] .artist-row:hover {
|
||
background: rgba(212,168,32,0.10);
|
||
box-shadow: inset 2px 0 0 #d4a820;
|
||
}
|
||
[data-theme='middle-earth'] .playlist-row:hover {
|
||
background: rgba(212,168,32,0.10);
|
||
box-shadow: inset 2px 0 0 #d4a820;
|
||
}
|
||
[data-theme='middle-earth'] .queue-item:hover,
|
||
[data-theme='middle-earth'] .queue-item.context-active {
|
||
background: rgba(212,168,32,0.12) !important;
|
||
box-shadow: inset 2px 0 0 #d4a820;
|
||
}
|
||
|
||
/* ── Active queue / now-playing: the bearer of the Ring ── */
|
||
[data-theme='middle-earth'] .queue-item.active {
|
||
background: rgba(212, 168, 32, 0.14);
|
||
box-shadow: inset 2px 0 0 #d4a820;
|
||
}
|
||
[data-theme='middle-earth'] .queue-item.active .queue-item-title { color: #f8e060; }
|
||
[data-theme='middle-earth'] .queue-item.active .queue-item-artist,
|
||
[data-theme='middle-earth'] .queue-item.active .queue-item-duration { color: #c8a060; }
|
||
[data-theme='middle-earth'] .np-queue-item-active {
|
||
color: #2a1c0e;
|
||
text-shadow: 0 0 6px rgba(212,168,32,0.40);
|
||
}
|
||
[data-theme='middle-earth'] .np-queue-item.active { background: rgba(212,168,32,0.10); }
|
||
[data-theme='middle-earth'] .np-album-track.active .np-album-track-title,
|
||
[data-theme='middle-earth'] .np-album-track.active .np-album-track-num {
|
||
color: #2a1c0e;
|
||
text-shadow: 0 0 6px rgba(212,168,32,0.38);
|
||
}
|
||
|
||
/* ── Queue tech bar: dark text on light parchment ── */
|
||
[data-theme='middle-earth'] .queue-current-tech {
|
||
color: #3e2808;
|
||
}
|
||
|
||
/* ── Queue + Lyrics on dark sidebar ── */
|
||
[data-theme='middle-earth'] .queue-current-info h3 { color: #f0d880; }
|
||
[data-theme='middle-earth'] .queue-current-sub { color: #d4a820; }
|
||
[data-theme='middle-earth'] .queue-item-title { color: #f0d880; }
|
||
[data-theme='middle-earth'] .queue-item-artist { color: #c8a060; }
|
||
[data-theme='middle-earth'] .queue-item-duration { color: #8a6838; }
|
||
[data-theme='middle-earth'] .queue-tab-btn { color: #c8a060; font-family: Georgia, serif; }
|
||
[data-theme='middle-earth'] .queue-tab-btn:hover { color: #f0d880; background: rgba(212,168,32,0.10); }
|
||
[data-theme='middle-earth'] .queue-tab-btn.active { color: #d4a820; }
|
||
[data-theme='middle-earth'] .lyrics-line { color: #8a6840; }
|
||
[data-theme='middle-earth'] .lyrics-line.active { color: #f0d880; text-shadow: 0 0 6px rgba(212,168,32,0.35); }
|
||
[data-theme='middle-earth'] .lyrics-plain-line { color: #c8a060; }
|
||
[data-theme='middle-earth'] .lyrics-status { color: #7a5a30; }
|
||
|
||
/* ─────────────────────────────────────────────────────────────
|
||
Morpheus — Matrix Style
|
||
───────────────────────────────────────────────────────────── */
|
||
|
||
/* ─── The Matrix — Morpheus ─── */
|
||
[data-theme='morpheus'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%2300ff41%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* ── Palette ── */
|
||
--ctp-crust: #000000;
|
||
--ctp-mantle: #020502;
|
||
--ctp-base: #050905;
|
||
--ctp-surface0: #0a120a;
|
||
--ctp-surface1: #0f1c0f;
|
||
--ctp-surface2: #162416;
|
||
--ctp-overlay0: #003b00;
|
||
--ctp-overlay1: #008f11;
|
||
--ctp-overlay2: #00cc33;
|
||
--ctp-text: #00ff41;
|
||
--ctp-subtext1: #00cc33;
|
||
--ctp-subtext0: #008f11;
|
||
--ctp-mauve: #00ff41;
|
||
--ctp-lavender: #adff2f;
|
||
--ctp-green: #00ff41;
|
||
--ctp-teal: #20c20e;
|
||
--ctp-sky: #00ff41;
|
||
--ctp-blue: #00ff41;
|
||
--ctp-sapphire: #008f11;
|
||
--ctp-pink: #003b00;
|
||
--ctp-flamingo: #003b00;
|
||
--ctp-rosewater: #d2ff00;
|
||
--ctp-yellow: #adff2f;
|
||
--ctp-peach: #00ff41;
|
||
--ctp-maroon: #003b00;
|
||
--ctp-red: #ff0033;
|
||
|
||
/* ── Semantic tokens ── */
|
||
--bg-app: #050905;
|
||
--bg-sidebar: #000000;
|
||
--bg-card: #0a120a;
|
||
--bg-hover: rgba(0, 255, 65, 0.10);
|
||
--bg-player: #000000;
|
||
--bg-glass: rgba(0, 8, 0, 0.96);
|
||
--accent: #00ff41;
|
||
--accent-dim: rgba(0, 255, 65, 0.12);
|
||
--accent-glow: rgba(0, 255, 65, 0.45);
|
||
--volume-accent: #00ff41;
|
||
--text-primary: #00ff41;
|
||
--text-secondary:#00cc33;
|
||
--text-muted: #22cc44;
|
||
--border: #003b00;
|
||
--border-subtle: #001a00;
|
||
--positive: #00ff41;
|
||
--warning: #adff2f;
|
||
--danger: #ff0033;
|
||
--radius-sm: 0px;
|
||
--radius-md: 0px;
|
||
--radius-lg: 2px;
|
||
}
|
||
|
||
/* ── App shell: solid dark base (scanlines moved to sidebar for perf) ── */
|
||
[data-theme='morpheus'] .app-shell {
|
||
background-color: #050905;
|
||
}
|
||
|
||
/* ── Sidebar: black with code-column ghost pattern ── */
|
||
[data-theme='morpheus'] .sidebar {
|
||
background-color: #000000;
|
||
background-image: repeating-linear-gradient(
|
||
90deg, transparent 0px, transparent 19px,
|
||
rgba(0, 255, 65, 0.03) 19px, rgba(0, 255, 65, 0.03) 20px
|
||
);
|
||
border-right: 1px solid #003b00;
|
||
}
|
||
|
||
/* Nav links */
|
||
[data-theme='morpheus'] .nav-link { color: #00cc33; }
|
||
[data-theme='morpheus'] .nav-link:hover {
|
||
background: rgba(0, 255, 65, 0.08);
|
||
color: #00ff41;
|
||
text-shadow: 0 0 8px rgba(0, 255, 65, 0.50);
|
||
}
|
||
[data-theme='morpheus'] .nav-link.active {
|
||
background: rgba(0, 255, 65, 0.10);
|
||
color: #00ff41;
|
||
text-shadow: 0 0 6px rgba(0, 255, 65, 0.45);
|
||
}
|
||
[data-theme='morpheus'] .nav-link.active::before {
|
||
background: #00ff41;
|
||
box-shadow: 0 0 8px rgba(0, 255, 65, 0.70);
|
||
}
|
||
[data-theme='morpheus'] .nav-section-label { color: #003b00; }
|
||
|
||
/* ── Player bar: black glass with phosphor glow ── */
|
||
[data-theme='morpheus'] .player-bar {
|
||
background: #000000;
|
||
border-top: 1px solid rgba(0, 255, 65, 0.35);
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(0, 255, 65, 0.12),
|
||
0 -4px 24px rgba(0, 255, 65, 0.06);
|
||
}
|
||
|
||
/* Track info: phosphor CRT glow */
|
||
[data-theme='morpheus'] .player-track-name {
|
||
font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
|
||
color: #00ff41;
|
||
text-shadow: 0 0 10px rgba(0, 255, 65, 0.70), 0 0 20px rgba(0, 255, 65, 0.30);
|
||
letter-spacing: 0.04em;
|
||
}
|
||
[data-theme='morpheus'] .player-track-artist,
|
||
[data-theme='morpheus'] .player-time {
|
||
font-family: 'JetBrains Mono', 'Courier New', monospace;
|
||
color: #00cc33;
|
||
opacity: 0.85;
|
||
}
|
||
|
||
/* ── Transport buttons: terminal command style ── */
|
||
[data-theme='morpheus'] .player-btn,
|
||
[data-theme='morpheus'] .player-btn-primary {
|
||
background: #000000;
|
||
color: #00ff41;
|
||
border: 1px solid #003b00;
|
||
border-radius: 2px;
|
||
box-shadow: inset 0 0 6px rgba(0, 255, 65, 0.05);
|
||
}
|
||
[data-theme='morpheus'] .player-btn:hover,
|
||
[data-theme='morpheus'] .player-btn-primary:hover {
|
||
background: rgba(0, 255, 65, 0.08);
|
||
border-color: #00ff41;
|
||
box-shadow:
|
||
0 0 12px rgba(0, 255, 65, 0.35),
|
||
inset 0 0 8px rgba(0, 255, 65, 0.08);
|
||
color: #00ff41;
|
||
}
|
||
|
||
/* ── All buttons: terminal style ── */
|
||
[data-theme='morpheus'] .btn,
|
||
[data-theme='morpheus'] .btn-surface,
|
||
[data-theme='morpheus'] .btn-ghost,
|
||
[data-theme='morpheus'] .btn-primary,
|
||
[data-theme='morpheus'] .hero-play-btn,
|
||
[data-theme='morpheus'] .album-card-details-btn,
|
||
[data-theme='morpheus'] .queue-round-btn {
|
||
background: #000000;
|
||
color: #00ff41;
|
||
border: 1px solid #003b00;
|
||
border-radius: 0;
|
||
font-family: 'JetBrains Mono', 'Courier New', monospace;
|
||
box-shadow: none;
|
||
}
|
||
[data-theme='morpheus'] .btn:hover,
|
||
[data-theme='morpheus'] .btn-surface:hover,
|
||
[data-theme='morpheus'] .btn-ghost:hover,
|
||
[data-theme='morpheus'] .btn-primary:hover,
|
||
[data-theme='morpheus'] .hero-play-btn:hover,
|
||
[data-theme='morpheus'] .album-card-details-btn:hover {
|
||
background: rgba(0, 255, 65, 0.08);
|
||
border-color: #00ff41;
|
||
color: #00ff41;
|
||
box-shadow: 0 0 10px rgba(0, 255, 65, 0.28), inset 0 0 8px rgba(0, 255, 65, 0.05);
|
||
}
|
||
[data-theme='morpheus'] .btn-primary {
|
||
border-color: #00cc33;
|
||
box-shadow: 0 0 8px rgba(0, 255, 65, 0.20);
|
||
}
|
||
[data-theme='morpheus'] .btn-primary:hover {
|
||
border-color: #00ff41;
|
||
box-shadow: 0 0 16px rgba(0, 255, 65, 0.45), inset 0 0 10px rgba(0, 255, 65, 0.08);
|
||
}
|
||
|
||
/* Queue round button active: bright green */
|
||
[data-theme='morpheus'] .queue-round-btn:hover:not(:disabled):not(.active) {
|
||
background: rgba(0, 255, 65, 0.08);
|
||
border-color: #00ff41;
|
||
color: #00ff41;
|
||
box-shadow: 0 0 10px rgba(0, 255, 65, 0.28);
|
||
}
|
||
[data-theme='morpheus'] .queue-round-btn.active {
|
||
background: rgba(0, 255, 65, 0.15);
|
||
border-color: #00ff41;
|
||
color: #00ff41;
|
||
box-shadow: 0 0 12px rgba(0, 255, 65, 0.40), inset 0 0 8px rgba(0, 255, 65, 0.08);
|
||
}
|
||
|
||
/* ── Cards: dark terminal panels ── */
|
||
[data-theme='morpheus'] .card {
|
||
background: #0a120a;
|
||
border: 1px solid #003b00;
|
||
border-radius: 0;
|
||
box-shadow: inset 0 0 24px rgba(0, 255, 65, 0.02), 0 0 12px rgba(0, 0, 0, 0.60);
|
||
}
|
||
|
||
/* ── Content header: terminal prompt bar ── */
|
||
[data-theme='morpheus'] .content-header {
|
||
background: #000000;
|
||
border-bottom: 1px solid rgba(0, 255, 65, 0.25);
|
||
box-shadow: 0 2px 16px rgba(0, 255, 65, 0.04);
|
||
}
|
||
|
||
/* ── Theme accordion: terminal hover ── */
|
||
[data-theme='morpheus'] .theme-accordion-header:hover {
|
||
background: rgba(0, 255, 65, 0.08);
|
||
color: #00ff41;
|
||
text-shadow: 0 0 6px rgba(0, 255, 65, 0.40);
|
||
}
|
||
[data-theme='morpheus'] .theme-accordion-open .theme-accordion-header {
|
||
background: rgba(0, 255, 65, 0.10);
|
||
color: #00ff41;
|
||
}
|
||
[data-theme='morpheus'] .theme-accordion-open .theme-accordion-chevron { color: #00ff41; }
|
||
|
||
/* ── Progress bar: terminal loading bar ── */
|
||
[data-theme='morpheus'] .progress-bar-track {
|
||
background: #001a00;
|
||
border: 1px solid #003b00;
|
||
border-radius: 0;
|
||
}
|
||
[data-theme='morpheus'] .progress-bar-fill {
|
||
background: #00ff41;
|
||
border-radius: 0;
|
||
box-shadow: 0 0 8px rgba(0, 255, 65, 0.60), 0 0 2px rgba(0, 255, 65, 1);
|
||
}
|
||
|
||
/* ── Scrollbar: CRT terminal style ── */
|
||
[data-theme='morpheus'] ::-webkit-scrollbar { width: 6px; height: 6px; }
|
||
[data-theme='morpheus'] ::-webkit-scrollbar-track { background: #000000; }
|
||
[data-theme='morpheus'] ::-webkit-scrollbar-thumb {
|
||
background: #003b00;
|
||
border: 1px solid rgba(0, 255, 65, 0.30);
|
||
}
|
||
[data-theme='morpheus'] ::-webkit-scrollbar-thumb:hover {
|
||
background: rgba(0, 255, 65, 0.25);
|
||
box-shadow: 0 0 6px rgba(0, 255, 65, 0.40);
|
||
}
|
||
|
||
/* ── Glass / dropdowns: black terminal window ── */
|
||
[data-theme='morpheus'] .glass {
|
||
background: rgba(0, 8, 0, 0.97) !important;
|
||
backdrop-filter: none !important;
|
||
border: 1px solid rgba(0, 255, 65, 0.28) !important;
|
||
box-shadow:
|
||
0 0 20px rgba(0, 255, 65, 0.08),
|
||
inset 0 0 16px rgba(0, 255, 65, 0.02) !important;
|
||
border-radius: 0 !important;
|
||
}
|
||
[data-theme='morpheus'] .glass [style*="var(--bg-hover)"] {
|
||
background: rgba(0, 255, 65, 0.10) !important;
|
||
border-radius: 0 !important;
|
||
}
|
||
[data-theme='morpheus'] .glass [style*="var(--text-primary)"] { color: #00ff41 !important; }
|
||
[data-theme='morpheus'] .glass [style*="var(--text-secondary)"] { color: #00cc33 !important; }
|
||
[data-theme='morpheus'] .glass [style*="var(--text-muted)"] { color: #006b10 !important; }
|
||
|
||
/* ── Hover / selection: phosphor glow highlight ── */
|
||
[data-theme='morpheus'] .queue-tab-btn:hover {
|
||
background: rgba(0, 255, 65, 0.08);
|
||
color: #00ff41;
|
||
text-shadow: 0 0 6px rgba(0, 255, 65, 0.40);
|
||
}
|
||
[data-theme='morpheus'] .settings-tab:hover { background: rgba(0, 255, 65, 0.08); color: #00ff41; }
|
||
[data-theme='morpheus'] .settings-tab.active {
|
||
background: rgba(0, 255, 65, 0.12);
|
||
color: #00ff41;
|
||
box-shadow: inset 2px 0 0 #00ff41;
|
||
}
|
||
[data-theme='morpheus'] .custom-select-trigger:hover { background: rgba(0, 255, 65, 0.08); }
|
||
[data-theme='morpheus'] .custom-select-option:hover {
|
||
background: rgba(0, 255, 65, 0.12) !important;
|
||
color: #00ff41 !important;
|
||
text-shadow: 0 0 6px rgba(0, 255, 65, 0.40) !important;
|
||
}
|
||
[data-theme='morpheus'] .artist-ext-link:hover {
|
||
background: rgba(0, 255, 65, 0.10);
|
||
color: #00ff41 !important;
|
||
border-color: #00ff41 !important;
|
||
text-shadow: 0 0 6px rgba(0, 255, 65, 0.40);
|
||
}
|
||
[data-theme='morpheus'] .np-action-btn:hover { background: rgba(0, 255, 65, 0.08); }
|
||
[data-theme='morpheus'] .np-queue-item:hover,
|
||
[data-theme='morpheus'] .np-queue-item.context-active {
|
||
background: rgba(0, 255, 65, 0.10);
|
||
box-shadow: inset 2px 0 0 #00ff41;
|
||
}
|
||
[data-theme='morpheus'] .track-row:hover,
|
||
[data-theme='morpheus'] .track-row.context-active {
|
||
background: rgba(0, 255, 65, 0.08) !important;
|
||
box-shadow: inset 2px 0 0 #00ff41;
|
||
}
|
||
[data-theme='morpheus'] .artist-row:hover {
|
||
background: rgba(0, 255, 65, 0.08);
|
||
box-shadow: inset 2px 0 0 #00ff41;
|
||
}
|
||
[data-theme='morpheus'] .playlist-row:hover {
|
||
background: rgba(0, 255, 65, 0.08);
|
||
box-shadow: inset 2px 0 0 #00ff41;
|
||
}
|
||
[data-theme='morpheus'] .queue-item:hover,
|
||
[data-theme='morpheus'] .queue-item.context-active {
|
||
background: rgba(0, 255, 65, 0.10) !important;
|
||
box-shadow: inset 2px 0 0 #00ff41;
|
||
}
|
||
|
||
/* ── Active queue item: glowing green ── */
|
||
[data-theme='morpheus'] .queue-item.active {
|
||
background: rgba(0, 255, 65, 0.08);
|
||
box-shadow: inset 2px 0 0 #00ff41, 0 0 8px rgba(0, 255, 65, 0.06);
|
||
}
|
||
[data-theme='morpheus'] .np-queue-item-active { text-shadow: 0 0 8px rgba(0, 255, 65, 0.60); }
|
||
[data-theme='morpheus'] .np-queue-item.active { background: rgba(0, 255, 65, 0.08); }
|
||
[data-theme='morpheus'] .np-album-track.active .np-album-track-title,
|
||
[data-theme='morpheus'] .np-album-track.active .np-album-track-num {
|
||
text-shadow: 0 0 8px rgba(0, 255, 65, 0.60);
|
||
}
|
||
|
||
/* ─────────────────────────────────────────────────────────────
|
||
Pandora — Bioluminescent Sci-Fi
|
||
───────────────────────────────────────────────────────────── */
|
||
|
||
/* ─────────────────────────────────────────────────────────────
|
||
Stark HUD — Iron Man / Arc Reactor
|
||
───────────────────────────────────────────────────────────── */
|
||
|
||
[data-theme='stark-hud'] {
|
||
color-scheme: dark;
|
||
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%2300f2ff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
--ctp-crust: #05070a;
|
||
--ctp-mantle: #080c12;
|
||
--ctp-base: #0b0f15;
|
||
--ctp-surface0: #141b24;
|
||
--ctp-surface1: #1c2531;
|
||
--ctp-surface2: #253141;
|
||
--ctp-overlay0: #4a5d75;
|
||
--ctp-overlay1: #6a8099;
|
||
--ctp-overlay2: #8ba2bd;
|
||
--ctp-text: #e0f7fa;
|
||
--ctp-subtext1: #a3ced4;
|
||
--ctp-subtext0: #7da5aa;
|
||
--ctp-mauve: #00f2ff;
|
||
--ctp-lavender: #7df9ff;
|
||
--ctp-green: #00ff9d;
|
||
--ctp-teal: #00d4cc;
|
||
--ctp-sky: #00f2ff;
|
||
--ctp-blue: #00f2ff;
|
||
--ctp-sapphire: #0088cc;
|
||
--ctp-pink: #ff3399;
|
||
--ctp-flamingo: #ff6680;
|
||
--ctp-rosewater:#ffe0e6;
|
||
--ctp-yellow: #ffcc00;
|
||
--ctp-peach: #ff8800;
|
||
--ctp-maroon: #cc0022;
|
||
--ctp-red: #ff3333;
|
||
|
||
--bg-app: #0b0f15;
|
||
--bg-sidebar: #080c12;
|
||
--bg-card: #141b24;
|
||
--bg-hover: rgba(0, 242, 255, 0.08);
|
||
--bg-player: #05070a;
|
||
--bg-glass: rgba(11, 15, 21, 0.85);
|
||
|
||
--accent: #00f2ff;
|
||
--accent-dim: rgba(0, 242, 255, 0.12);
|
||
--accent-glow: rgba(0, 242, 255, 0.4);
|
||
|
||
--text-primary: #e0f7fa;
|
||
--text-secondary:#a3ced4;
|
||
--text-muted: #5a718a;
|
||
|
||
--border: #1e2a3a;
|
||
--border-subtle: #141b24;
|
||
|
||
--radius-sm: 2px;
|
||
--radius-md: 4px;
|
||
--radius-lg: 6px;
|
||
}
|
||
|
||
[data-theme='stark-hud'] .app-shell {
|
||
background: radial-gradient(circle at 50% 50%, #0e1621 0%, #05070a 100%);
|
||
}
|
||
[data-theme='stark-hud'] .sidebar {
|
||
border-right: 1px solid rgba(0, 242, 255, 0.15);
|
||
}
|
||
[data-theme='stark-hud'] .player-bar {
|
||
border-top: 1px solid rgba(0, 242, 255, 0.2);
|
||
box-shadow: 0 -10px 30px rgba(0, 242, 255, 0.05);
|
||
}
|
||
[data-theme='stark-hud'] .player-track-name {
|
||
color: #00f2ff;
|
||
text-shadow: 0 0 10px rgba(0, 242, 255, 0.6);
|
||
font-family: 'JetBrains Mono', monospace;
|
||
letter-spacing: 0.5px;
|
||
}
|
||
[data-theme='stark-hud'] .nav-link.active {
|
||
background: linear-gradient(90deg, rgba(0, 242, 255, 0.1) 0%, transparent 100%);
|
||
box-shadow: -5px 0 15px rgba(0, 242, 255, 0.2);
|
||
}
|
||
[data-theme='stark-hud'] .nav-link.active::before {
|
||
box-shadow: 0 0 10px rgba(0, 242, 255, 0.5);
|
||
}
|
||
[data-theme='stark-hud'] .btn-primary {
|
||
background: #00f2ff;
|
||
color: #05070a;
|
||
font-weight: 700;
|
||
box-shadow: 0 0 15px rgba(0, 242, 255, 0.3);
|
||
text-transform: uppercase;
|
||
letter-spacing: 1px;
|
||
}
|
||
|
||
/* ─────────────────────────────────────────────────────────────
|
||
Blade — Cinematic Industrial
|
||
───────────────────────────────────────────────────────────── */
|
||
|
||
[data-theme='blade'] {
|
||
color-scheme: dark;
|
||
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23a0a0a0%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
--ctp-crust: #050505;
|
||
--ctp-mantle: #0a0a0a;
|
||
--ctp-base: #121212;
|
||
--ctp-surface0: #1a1a1a;
|
||
--ctp-surface1: #252525;
|
||
--ctp-surface2: #333333;
|
||
--ctp-overlay0: #4a4a4a;
|
||
--ctp-overlay1: #707070;
|
||
--ctp-overlay2: #909090;
|
||
--ctp-text: #e0e0e0;
|
||
--ctp-subtext1: #b0b0b0;
|
||
--ctp-subtext0: #888888;
|
||
--ctp-mauve: #b30000;
|
||
--ctp-lavender: #ff1a1a;
|
||
--ctp-green: #00ff66;
|
||
--ctp-teal: #1abc9c;
|
||
--ctp-sky: #3498db;
|
||
--ctp-blue: #2980b9;
|
||
--ctp-sapphire: #1f618d;
|
||
--ctp-pink: #e91e63;
|
||
--ctp-flamingo: #f06292;
|
||
--ctp-rosewater:#f8bbd0;
|
||
--ctp-yellow: #f1c40f;
|
||
--ctp-peach: #e67e22;
|
||
--ctp-maroon: #800000;
|
||
--ctp-red: #ff0000;
|
||
|
||
--bg-app: #121212;
|
||
--bg-sidebar: #0a0a0a;
|
||
--bg-card: #1a1a1a;
|
||
--bg-hover: rgba(179, 0, 0, 0.1);
|
||
--bg-player: #050505;
|
||
--bg-glass: rgba(10, 10, 10, 0.85);
|
||
|
||
--accent: #b30000;
|
||
--accent-dim: rgba(179, 0, 0, 0.15);
|
||
--accent-glow: rgba(179, 0, 0, 0.4);
|
||
|
||
--text-primary: #e0e0e0;
|
||
--text-secondary:#b0b0b0;
|
||
--text-muted: #888888;
|
||
|
||
--border: #2a2a2a;
|
||
--border-subtle: #1a1a1a;
|
||
|
||
--positive: #00ff66;
|
||
--warning: #f1c40f;
|
||
--danger: #ff0000;
|
||
|
||
--radius-sm: 2px;
|
||
--radius-md: 4px;
|
||
--radius-lg: 6px;
|
||
}
|
||
|
||
[data-theme='blade'] .player-bar {
|
||
border-top: 1px solid #222;
|
||
background: linear-gradient(to bottom, #0a0a0a 0%, #050505 100%);
|
||
box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.8);
|
||
}
|
||
[data-theme='blade'] .sidebar {
|
||
border-right: 1px solid #1a1a1a;
|
||
}
|
||
[data-theme='blade'] .nav-link.active {
|
||
background: linear-gradient(90deg, rgba(179, 0, 0, 0.2) 0%, transparent 100%);
|
||
color: #fff;
|
||
}
|
||
[data-theme='blade'] .nav-link.active::before {
|
||
box-shadow: 0 0 8px rgba(179, 0, 0, 0.5);
|
||
}
|
||
[data-theme='blade'] .player-track-name {
|
||
text-transform: uppercase;
|
||
letter-spacing: 1px;
|
||
font-weight: 700;
|
||
color: #fff;
|
||
text-shadow: 0 0 10px rgba(179, 0, 0, 0.3);
|
||
}
|
||
[data-theme='blade'] .btn-primary {
|
||
background: linear-gradient(135deg, #b30000 0%, #800000 100%);
|
||
border: 1px solid rgba(255, 26, 26, 0.2);
|
||
color: #fff;
|
||
}
|
||
|
||
/* ── T-800 — Terminator 2: Judgment Day ─────────────────────── */
|
||
/* Endoskeleton HUD red + machine data green + industrial dark */
|
||
[data-theme='t-800'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ff2000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* Industrial dark — machine oil, scorched steel, warm black */
|
||
--ctp-crust: #080606;
|
||
--ctp-mantle: #0e0a0a;
|
||
--ctp-base: #140e0e;
|
||
--ctp-surface0: #1e1414;
|
||
--ctp-surface1: #281c1c;
|
||
--ctp-surface2: #342424;
|
||
--ctp-overlay0: #584040;
|
||
--ctp-overlay1: #806060;
|
||
--ctp-overlay2: #a88888;
|
||
--ctp-text: #e8d8c8; /* CRT terminal warm white */
|
||
--ctp-subtext1: #c8b8a0;
|
||
--ctp-subtext0: #a08888;
|
||
|
||
/* T2 palette */
|
||
--ctp-red: #ff2000; /* T-800 eye / HUD targeting red */
|
||
--ctp-maroon: #cc1800;
|
||
--ctp-flamingo: #ff4020;
|
||
--ctp-mauve: #ff2000;
|
||
--ctp-lavender: #ff5040;
|
||
--ctp-pink: #ff4020;
|
||
--ctp-rosewater:#ff8060;
|
||
--ctp-green: #00e040; /* machine data readout green */
|
||
--ctp-teal: #00b830;
|
||
--ctp-sky: #40ff80;
|
||
--ctp-yellow: #f0a000; /* Judgment Day fire / nuclear orange */
|
||
--ctp-peach: #ff6000; /* napalm / explosion */
|
||
--ctp-blue: #2040c0; /* future war laser / Skynet */
|
||
--ctp-sapphire: #1830a0;
|
||
|
||
--bg-app: #140e0e; /* scorched industrial dark */
|
||
--bg-sidebar: #0e0a0a; /* machine interior */
|
||
--bg-card: #1e1414;
|
||
--bg-hover: rgba(255, 32, 0, 0.08);
|
||
--bg-player: #080606; /* endoskeleton chassis */
|
||
--bg-glass: rgba(14, 10, 10, 0.96);
|
||
|
||
--accent: #ff2000; /* T-800 eye red */
|
||
--accent-dim: rgba(255, 32, 0, 0.12);
|
||
--accent-glow: rgba(255, 32, 0, 0.5);
|
||
--volume-accent:#00e040; /* data-green for volume */
|
||
|
||
--text-primary: #e8d8c8; /* warm terminal white */
|
||
--text-secondary:#00e040; /* machine data green */
|
||
--text-muted: #584040;
|
||
--border: #2a1a1a;
|
||
--border-subtle: #1e1414;
|
||
--shadow-dropdown: rgba(0, 0, 0, 0.9);
|
||
|
||
--positive: #00e040;
|
||
--warning: #f0a000;
|
||
--danger: #ff2000;
|
||
|
||
--radius-sm: 0px;
|
||
--radius-md: 1px;
|
||
--radius-lg: 2px;
|
||
--radius-xl: 2px;
|
||
}
|
||
|
||
/* Sidebar = endoskeleton interior: scan-line texture + red glow */
|
||
[data-theme='t-800'] .sidebar {
|
||
border-right: 2px solid #ff2000;
|
||
box-shadow: 2px 0 16px rgba(255, 32, 0, 0.1);
|
||
background-image: repeating-linear-gradient(
|
||
0deg,
|
||
transparent,
|
||
transparent 3px,
|
||
rgba(255, 32, 0, 0.025) 3px,
|
||
rgba(255, 32, 0, 0.025) 4px
|
||
);
|
||
}
|
||
|
||
/* Player bar = HUD targeting display */
|
||
[data-theme='t-800'] .player-bar {
|
||
border-top: 2px solid #ff2000;
|
||
box-shadow:
|
||
0 -1px 0 rgba(0, 224, 64, 0.2),
|
||
0 -8px 28px rgba(255, 32, 0, 0.1);
|
||
}
|
||
|
||
/* Track name = TARGET ACQUIRED — red HUD uppercase */
|
||
[data-theme='t-800'] .player-track-name {
|
||
color: #ff2000;
|
||
text-shadow: 0 0 10px rgba(255, 32, 0, 0.75), 0 0 28px rgba(255, 32, 0, 0.3);
|
||
text-transform: uppercase;
|
||
font-weight: 700;
|
||
letter-spacing: 0.08em;
|
||
}
|
||
|
||
/* Artist = machine data readout green */
|
||
[data-theme='t-800'] .player-track-artist { color: #00e040; }
|
||
|
||
/* Queue album = Judgment Day orange */
|
||
[data-theme='t-800'] .queue-meta-album { color: #f0a000; }
|
||
|
||
/* Active nav: red HUD left bar */
|
||
[data-theme='t-800'] .nav-link.active {
|
||
background: linear-gradient(90deg, rgba(255,32,0,0.15) 0%, transparent 100%);
|
||
color: #ff2000;
|
||
}
|
||
[data-theme='t-800'] .nav-link.active::before {
|
||
width: 3px;
|
||
box-shadow: 2px 0 12px rgba(255,32,0,0.65);
|
||
}
|
||
|
||
/* Buttons: dark steel with red */
|
||
[data-theme='t-800'] .btn-primary {
|
||
background: #ff2000;
|
||
color: #080606;
|
||
font-weight: 700;
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.07em;
|
||
border: none;
|
||
border-radius: 1px;
|
||
}
|
||
[data-theme='t-800'] .btn-primary:hover {
|
||
background: #ff4020;
|
||
box-shadow: 0 0 18px rgba(255,32,0,0.5);
|
||
}
|
||
|
||
/* Play button = T-800 eye glow */
|
||
[data-theme='t-800'] .player-btn-primary {
|
||
background: #ff2000;
|
||
box-shadow: 0 0 16px rgba(255,32,0,0.5);
|
||
color: #080606;
|
||
}
|
||
[data-theme='t-800'] .player-btn-primary:hover {
|
||
box-shadow: 0 0 26px rgba(255,32,0,0.7);
|
||
}
|
||
|
||
/* Queue active = targeting lock — red left bar */
|
||
[data-theme='t-800'] .queue-item.active {
|
||
background: rgba(255, 32, 0, 0.08);
|
||
box-shadow: inset 3px 0 0 #ff2000;
|
||
}
|
||
[data-theme='t-800'] .np-queue-item.active { background: rgba(255,32,0,0.07); }
|
||
[data-theme='t-800'] .np-queue-item-active {
|
||
color: #ff2000;
|
||
text-shadow: 0 0 8px rgba(255,32,0,0.6);
|
||
}
|
||
|
||
/* Now-playing active track = data green */
|
||
[data-theme='t-800'] .np-album-track.active .np-album-track-title,
|
||
[data-theme='t-800'] .np-album-track.active .np-album-track-num {
|
||
color: #00e040;
|
||
text-shadow: 0 0 8px rgba(0,224,64,0.5);
|
||
}
|
||
|
||
/* Hover rows */
|
||
[data-theme='t-800'] .track-row:hover,
|
||
[data-theme='t-800'] .track-row.context-active {
|
||
background: rgba(255,32,0,0.07) !important;
|
||
box-shadow: inset 3px 0 0 #ff2000;
|
||
}
|
||
[data-theme='t-800'] .queue-item:hover,
|
||
[data-theme='t-800'] .queue-item.context-active {
|
||
background: rgba(255,32,0,0.07) !important;
|
||
box-shadow: inset 3px 0 0 #ff2000;
|
||
}
|
||
[data-theme='t-800'] .np-queue-item:hover,
|
||
[data-theme='t-800'] .np-queue-item.context-active {
|
||
background: rgba(255,32,0,0.07);
|
||
box-shadow: inset 2px 0 0 #ff2000;
|
||
}
|
||
[data-theme='t-800'] .artist-row:hover { background: rgba(255,32,0,0.06); box-shadow: inset 3px 0 0 #ff2000; }
|
||
[data-theme='t-800'] .playlist-row:hover { background: rgba(255,32,0,0.06); box-shadow: inset 3px 0 0 #ff2000; }
|
||
|
||
/* Settings tabs: data-green active = SYSTEM ONLINE */
|
||
[data-theme='t-800'] .settings-tab:hover { background: rgba(255,32,0,0.07); color: #ff2000; }
|
||
[data-theme='t-800'] .settings-tab.active {
|
||
background: rgba(0, 224, 64, 0.07);
|
||
color: #00e040;
|
||
box-shadow: inset 3px 0 0 #00e040;
|
||
}
|
||
|
||
/* Queue tabs */
|
||
[data-theme='t-800'] .queue-tab-btn:hover { background: rgba(255,32,0,0.07); color: #ff2000; }
|
||
|
||
/* Dropdowns */
|
||
[data-theme='t-800'] .custom-select-trigger:hover { background: rgba(255,32,0,0.07); }
|
||
[data-theme='t-800'] .custom-select-option:hover {
|
||
background: rgba(255, 32, 0, 0.1) !important;
|
||
color: #ff2000 !important;
|
||
}
|
||
|
||
/* Artist pills = Skynet blue */
|
||
[data-theme='t-800'] .artist-ext-link:hover {
|
||
background: rgba(32, 64, 192, 0.15);
|
||
color: #4060e0 !important;
|
||
border-color: rgba(32, 64, 192, 0.4) !important;
|
||
}
|
||
|
||
/* Connection indicators */
|
||
[data-theme='t-800'] .connection-type,
|
||
[data-theme='t-800'] .connection-server { color: #00e040; }
|
||
|
||
/* ─── Dune — Arrakis ─── */
|
||
[data-theme='dune'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23c8780a%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* ── Palette — two-temperature Arrakis ── */
|
||
/* Warm: spice / sand / desert sun */
|
||
--ctp-crust: #0a0804;
|
||
--ctp-mantle: #120e06;
|
||
--ctp-base: #1c1408;
|
||
--ctp-surface0: #2e1e0a;
|
||
--ctp-surface1: #3e2a0e;
|
||
--ctp-surface2: #503614;
|
||
/* Cool: sietch / rock shadow / Fremen darkness */
|
||
--ctp-overlay0: #2a2440;
|
||
--ctp-overlay1: #4a4268;
|
||
--ctp-overlay2: #6a6090;
|
||
/* Text: aged parchment, scrolls of the Bene Gesserit */
|
||
--ctp-text: #f0deb0;
|
||
--ctp-subtext1: #d8c090;
|
||
--ctp-subtext0: #b09060;
|
||
/* Accent palette */
|
||
--ctp-mauve: #c8780a; /* spice melange — cinnamon rust */
|
||
--ctp-lavender: #e8a020; /* spice shimmer — bright amber */
|
||
--ctp-yellow: #f5cc50; /* spice flare */
|
||
--ctp-peach: #aa5a08; /* deep spice shadow */
|
||
--ctp-green: #7a8c40; /* Caladan seagrass (far memory) */
|
||
--ctp-teal: #1a80c0; /* Fremen eye blue — spice prescience */
|
||
--ctp-sky: #2090d0; /* Guild Navigator blue */
|
||
--ctp-blue: #1468a8; /* sietch pool depth */
|
||
--ctp-sapphire: #0e4a80; /* deep cave water */
|
||
--ctp-pink: #c84060;
|
||
--ctp-flamingo: #e06080;
|
||
--ctp-rosewater: #f0c0a0;
|
||
--ctp-red: #cc2800;
|
||
--ctp-maroon: #8c1c00;
|
||
|
||
/* ── Semantic tokens ── */
|
||
--bg-app: #1c1408;
|
||
--bg-sidebar: #0e0c1a; /* sietch interior — cool rock */
|
||
--bg-card: #2e1e0a;
|
||
--bg-hover: rgba(200, 120, 10, 0.14);
|
||
--bg-player: #0e0a04;
|
||
--bg-glass: rgba(10, 8, 4, 0.96);
|
||
--accent: #c8780a;
|
||
--accent-dim: rgba(200, 120, 10, 0.12);
|
||
--accent-glow: rgba(200, 120, 10, 0.40);
|
||
--volume-accent: #c8780a;
|
||
--text-primary: #f0deb0;
|
||
--text-secondary:#d8c090;
|
||
--text-muted: #a89870;
|
||
--border: rgba(200, 120, 10, 0.22);
|
||
--border-subtle: rgba(200, 120, 10, 0.10);
|
||
--positive: #7a8c40;
|
||
--warning: #f5cc50;
|
||
--danger: #cc2800;
|
||
--radius-sm: 2px;
|
||
--radius-md: 4px;
|
||
--radius-lg: 6px;
|
||
}
|
||
|
||
/* ── App shell: Arrakis desert horizon at dusk ── */
|
||
/* Sky (cool/dark at top) fading into burning sand (warm at bottom) */
|
||
[data-theme='dune'] .app-shell {
|
||
background: linear-gradient(180deg,
|
||
#12101c 0%,
|
||
#1a1408 30%,
|
||
#201608 60%,
|
||
#281e0a 100%
|
||
);
|
||
}
|
||
|
||
/* ── Sidebar: sietch interior — cold carved rock ── */
|
||
/* The Fremen lived in caves cut from rock — cool, dark, shadows of blue and purple */
|
||
[data-theme='dune'] .sidebar {
|
||
background: linear-gradient(180deg, #141228 0%, #0e0c1c 40%, #0c0a16 100%);
|
||
border-right: 1px solid rgba(200, 120, 10, 0.22);
|
||
box-shadow:
|
||
inset -3px 0 10px rgba(200, 100, 8, 0.07),
|
||
2px 0 8px rgba(0, 0, 0, 0.50);
|
||
}
|
||
|
||
/* Nav text: parchment on cool rock */
|
||
[data-theme='dune'] .nav-link { color: #b09060; }
|
||
[data-theme='dune'] .nav-link:hover {
|
||
background: rgba(200, 120, 10, 0.10);
|
||
color: #d8c090;
|
||
}
|
||
[data-theme='dune'] .nav-link.active {
|
||
background: linear-gradient(90deg, rgba(200,120,10,0.20) 0%, transparent 100%);
|
||
color: #e8a020;
|
||
border-left: 2px solid #c8780a;
|
||
box-shadow: inset 4px 0 14px rgba(200,120,10,0.10);
|
||
}
|
||
[data-theme='dune'] .nav-link.active::before {
|
||
background: #c8780a;
|
||
box-shadow: 0 0 10px rgba(200,120,10,0.70);
|
||
}
|
||
[data-theme='dune'] .nav-link.active svg { color: #c8780a; }
|
||
[data-theme='dune'] .nav-section-label {
|
||
color: #4a4268;
|
||
letter-spacing: 0.08em;
|
||
text-transform: uppercase;
|
||
font-size: 0.70em;
|
||
}
|
||
|
||
/* ── Player bar: spice harvester console — deep amber warmth ── */
|
||
[data-theme='dune'] .player-bar {
|
||
background: linear-gradient(180deg, #140e04 0%, #0a0802 100%);
|
||
border-top: 2px solid rgba(200, 120, 10, 0.50);
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(240, 180, 40, 0.16),
|
||
0 -8px 40px rgba(180, 100, 8, 0.16),
|
||
0 -2px 80px rgba(20, 100, 160, 0.04);
|
||
}
|
||
|
||
/* Track name: the spice calls — amber prophetic glow */
|
||
[data-theme='dune'] .player-track-name {
|
||
color: #e8a020;
|
||
text-shadow:
|
||
0 0 8px rgba(232, 160, 32, 0.75),
|
||
0 0 20px rgba(200, 120, 10, 0.40),
|
||
0 0 40px rgba(200, 120, 10, 0.15);
|
||
letter-spacing: 0.04em;
|
||
}
|
||
/* Artist: deeper spice cinnamon */
|
||
[data-theme='dune'] .player-track-artist {
|
||
color: #aa7030;
|
||
opacity: 1;
|
||
text-shadow: 0 0 8px rgba(170, 112, 48, 0.45);
|
||
}
|
||
[data-theme='dune'] .player-time { color: #7a5020; }
|
||
|
||
/* ── Transport buttons: Fremen tech — minimal, earth-worn ── */
|
||
[data-theme='dune'] .player-btn,
|
||
[data-theme='dune'] .player-btn-primary {
|
||
background: linear-gradient(180deg, #2e1e0a 0%, #1e1406 100%);
|
||
color: #c8780a;
|
||
border: 1px solid rgba(200, 120, 10, 0.38);
|
||
border-radius: 50%;
|
||
box-shadow: inset 0 1px 0 rgba(240,180,40,0.08), 0 2px 6px rgba(0,0,0,0.50);
|
||
}
|
||
[data-theme='dune'] .player-btn:hover,
|
||
[data-theme='dune'] .player-btn-primary:hover {
|
||
background: rgba(200, 120, 10, 0.14);
|
||
border-color: #c8780a;
|
||
color: #e8a020;
|
||
box-shadow:
|
||
0 0 14px rgba(200, 120, 10, 0.42),
|
||
inset 0 0 8px rgba(200, 100, 8, 0.08);
|
||
}
|
||
|
||
/* ── Regular buttons: desert stone / carved bone ── */
|
||
[data-theme='dune'] .btn,
|
||
[data-theme='dune'] .btn-surface,
|
||
[data-theme='dune'] .btn-ghost {
|
||
background: linear-gradient(180deg, #2e1e0a 0%, #221608 100%);
|
||
color: #d8c090;
|
||
border: 1px solid rgba(200, 120, 10, 0.30);
|
||
box-shadow: inset 0 1px 0 rgba(240,200,80,0.06), 0 1px 4px rgba(0,0,0,0.40);
|
||
border-radius: 3px;
|
||
}
|
||
[data-theme='dune'] .btn:hover,
|
||
[data-theme='dune'] .btn-surface:hover,
|
||
[data-theme='dune'] .btn-ghost:hover {
|
||
background: rgba(200, 120, 10, 0.12);
|
||
border-color: rgba(200, 120, 10, 0.65);
|
||
color: #f0deb0;
|
||
box-shadow: 0 0 10px rgba(200, 120, 10, 0.24), inset 0 0 6px rgba(200,100,8,0.05);
|
||
}
|
||
|
||
/* ── Primary button: spice melange — the most precious thing ── */
|
||
[data-theme='dune'] .btn-primary {
|
||
background: linear-gradient(180deg, #b86808 0%, #884e04 100%);
|
||
color: #ffe8a0;
|
||
border: 1px solid #d08010;
|
||
box-shadow: 0 0 14px rgba(200, 120, 10, 0.35), inset 0 1px 0 rgba(255,220,80,0.20);
|
||
border-radius: 3px;
|
||
font-weight: 600;
|
||
}
|
||
[data-theme='dune'] .btn-primary:hover {
|
||
background: linear-gradient(180deg, #d07a10 0%, #a05e06 100%);
|
||
box-shadow: 0 0 22px rgba(200, 120, 10, 0.55), inset 0 1px 0 rgba(255,220,80,0.25);
|
||
}
|
||
|
||
/* ── Hero / album buttons ── */
|
||
[data-theme='dune'] .hero-play-btn,
|
||
[data-theme='dune'] .album-card-details-btn {
|
||
background: rgba(200, 120, 10, 0.12);
|
||
color: #c8780a;
|
||
border: 1px solid rgba(200, 120, 10, 0.36);
|
||
box-shadow: inset 0 1px 0 rgba(240,180,40,0.06);
|
||
}
|
||
[data-theme='dune'] .hero-play-btn:hover,
|
||
[data-theme='dune'] .album-card-details-btn:hover {
|
||
background: rgba(200, 120, 10, 0.20);
|
||
border-color: #c8780a;
|
||
box-shadow: 0 0 12px rgba(200, 120, 10, 0.38);
|
||
}
|
||
|
||
/* ── Queue round buttons ── */
|
||
[data-theme='dune'] .queue-round-btn {
|
||
background: linear-gradient(180deg, #2e1e0a 0%, #1e1406 100%);
|
||
color: #8a6030;
|
||
border: 1px solid rgba(200, 120, 10, 0.24);
|
||
}
|
||
[data-theme='dune'] .queue-round-btn:hover:not(:disabled):not(.active) {
|
||
background: rgba(200, 120, 10, 0.10);
|
||
border-color: rgba(200, 120, 10, 0.55);
|
||
color: #c8780a;
|
||
box-shadow: 0 0 10px rgba(200, 120, 10, 0.22);
|
||
}
|
||
[data-theme='dune'] .queue-round-btn.active {
|
||
background: rgba(200, 120, 10, 0.20);
|
||
border-color: #c8780a;
|
||
color: #e8a020;
|
||
box-shadow: 0 0 12px rgba(200, 120, 10, 0.42), inset 0 0 6px rgba(200,100,8,0.08);
|
||
}
|
||
|
||
/* ── Cards: ancient stone / sand-worn rock ── */
|
||
[data-theme='dune'] .card {
|
||
background: linear-gradient(180deg, #2e1e0a 0%, #281808 100%);
|
||
border: 1px solid rgba(200, 120, 10, 0.16);
|
||
border-radius: 4px;
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(240,200,80,0.04),
|
||
inset 0 0 24px rgba(200,100,8,0.03),
|
||
0 2px 10px rgba(0,0,0,0.50);
|
||
}
|
||
|
||
/* ── Content header: sietch entrance — cool rock above warm desert ── */
|
||
/* The contrast between the cold header and warm body is intentional — Arrakis duality */
|
||
[data-theme='dune'] .content-header {
|
||
background: linear-gradient(180deg, #151228 0%, #12101e 100%);
|
||
border-bottom: 1px solid rgba(200, 120, 10, 0.24);
|
||
box-shadow: 0 3px 16px rgba(200, 100, 8, 0.06);
|
||
}
|
||
/* Text on cool header: light but warm */
|
||
[data-theme='dune'] .content-header .page-title,
|
||
[data-theme='dune'] .content-header h1,
|
||
[data-theme='dune'] .content-header h2 { color: #d8c090; }
|
||
|
||
/* ── Connection indicators: parchment legible ── */
|
||
[data-theme='dune'] .connection-type,
|
||
[data-theme='dune'] .connection-server { color: #b09060; }
|
||
|
||
/* ── Theme accordion ── */
|
||
[data-theme='dune'] .theme-accordion-header:hover {
|
||
background: rgba(200, 120, 10, 0.10);
|
||
color: #e8a020;
|
||
}
|
||
[data-theme='dune'] .theme-accordion-open .theme-accordion-header {
|
||
background: rgba(200, 120, 10, 0.14);
|
||
color: #e8a020;
|
||
}
|
||
[data-theme='dune'] .theme-accordion-open .theme-accordion-chevron { color: #c8780a; }
|
||
|
||
/* ── Progress bar: spice flowing — from deep rust to bright amber ── */
|
||
[data-theme='dune'] .progress-bar-track {
|
||
background: #1a1006;
|
||
border: 1px solid rgba(200, 120, 10, 0.22);
|
||
border-radius: 2px;
|
||
}
|
||
[data-theme='dune'] .progress-bar-fill {
|
||
background: linear-gradient(90deg,
|
||
#6a3604 0%,
|
||
#a85a08 30%,
|
||
#c8780a 65%,
|
||
#e8a020 85%,
|
||
#f5cc50 100%
|
||
);
|
||
border-radius: 2px;
|
||
box-shadow: 0 0 10px rgba(200, 120, 10, 0.55), 0 0 3px rgba(240,200,60,0.40);
|
||
}
|
||
|
||
/* ── Scrollbar: sand grain — thin, warm, minimal ── */
|
||
[data-theme='dune'] ::-webkit-scrollbar { width: 5px; height: 5px; }
|
||
[data-theme='dune'] ::-webkit-scrollbar-track { background: #0a0804; }
|
||
[data-theme='dune'] ::-webkit-scrollbar-thumb {
|
||
background: rgba(200, 120, 10, 0.30);
|
||
border-radius: 2px;
|
||
border: 1px solid rgba(200, 120, 10, 0.16);
|
||
}
|
||
[data-theme='dune'] ::-webkit-scrollbar-thumb:hover {
|
||
background: rgba(200, 120, 10, 0.55);
|
||
box-shadow: 0 0 5px rgba(200, 120, 10, 0.40);
|
||
}
|
||
|
||
/* ── Glass / dropdowns: deep sand shelter ── */
|
||
[data-theme='dune'] .glass {
|
||
background: rgba(10, 8, 4, 0.97) !important;
|
||
backdrop-filter: none !important;
|
||
border: 1px solid rgba(200, 120, 10, 0.30) !important;
|
||
box-shadow:
|
||
0 0 20px rgba(180, 100, 8, 0.10),
|
||
inset 0 0 16px rgba(200, 100, 8, 0.02) !important;
|
||
border-radius: 4px !important;
|
||
}
|
||
[data-theme='dune'] .glass [style*="var(--bg-hover)"] {
|
||
background: rgba(200, 120, 10, 0.12) !important;
|
||
border-radius: 2px !important;
|
||
}
|
||
[data-theme='dune'] .glass [style*="var(--text-primary)"] { color: #f0deb0 !important; }
|
||
[data-theme='dune'] .glass [style*="var(--text-secondary)"] { color: #d8c090 !important; }
|
||
[data-theme='dune'] .glass [style*="var(--text-muted)"] { color: #6a5830 !important; }
|
||
|
||
/* ── Hover / selection: spice glow — warm amber indicator bar ── */
|
||
[data-theme='dune'] .queue-tab-btn:hover { background: rgba(200,120,10,0.10); color: #c8780a; }
|
||
[data-theme='dune'] .settings-tab:hover { background: rgba(200,120,10,0.10); color: #c8780a; }
|
||
[data-theme='dune'] .settings-tab.active {
|
||
background: rgba(200,120,10,0.16);
|
||
color: #e8a020;
|
||
box-shadow: inset 2px 0 0 #c8780a;
|
||
}
|
||
[data-theme='dune'] .custom-select-trigger:hover { background: rgba(200,120,10,0.10); }
|
||
[data-theme='dune'] .custom-select-option:hover {
|
||
background: rgba(200,120,10,0.14) !important;
|
||
color: #e8a020 !important;
|
||
}
|
||
[data-theme='dune'] .artist-ext-link:hover {
|
||
background: rgba(200,120,10,0.10);
|
||
color: #c8780a !important;
|
||
border-color: rgba(200,120,10,0.45) !important;
|
||
}
|
||
[data-theme='dune'] .np-action-btn:hover { background: rgba(200,120,10,0.10); }
|
||
[data-theme='dune'] .np-queue-item:hover,
|
||
[data-theme='dune'] .np-queue-item.context-active {
|
||
background: rgba(200,120,10,0.12);
|
||
box-shadow: inset 2px 0 0 #c8780a;
|
||
}
|
||
[data-theme='dune'] .track-row:hover,
|
||
[data-theme='dune'] .track-row.context-active {
|
||
background: rgba(200,120,10,0.09) !important;
|
||
box-shadow: inset 2px 0 0 #c8780a;
|
||
}
|
||
[data-theme='dune'] .artist-row:hover {
|
||
background: rgba(200,120,10,0.09);
|
||
box-shadow: inset 2px 0 0 #c8780a;
|
||
}
|
||
[data-theme='dune'] .playlist-row:hover {
|
||
background: rgba(200,120,10,0.09);
|
||
box-shadow: inset 2px 0 0 #c8780a;
|
||
}
|
||
[data-theme='dune'] .queue-item:hover,
|
||
[data-theme='dune'] .queue-item.context-active {
|
||
background: rgba(200,120,10,0.10) !important;
|
||
box-shadow: inset 2px 0 0 #c8780a;
|
||
}
|
||
[data-theme='dune'] .queue-item:hover .queue-item-title,
|
||
[data-theme='dune'] .queue-item:hover .queue-item-artist,
|
||
[data-theme='dune'] .queue-item:hover .queue-item-duration,
|
||
[data-theme='dune'] .queue-item.context-active .queue-item-title,
|
||
[data-theme='dune'] .queue-item.context-active .queue-item-artist,
|
||
[data-theme='dune'] .queue-item.context-active .queue-item-duration { color: #c8780a; }
|
||
|
||
/* ── Active queue / now-playing: the worm has come ── */
|
||
[data-theme='dune'] .queue-item.active {
|
||
background: rgba(200, 120, 10, 0.08);
|
||
box-shadow: inset 2px 0 0 #c8780a;
|
||
}
|
||
[data-theme='dune'] .np-queue-item-active { color: #c8780a; text-shadow: 0 0 8px rgba(200,120,10,0.55); }
|
||
[data-theme='dune'] .np-queue-item.active { background: rgba(200,120,10,0.08); }
|
||
[data-theme='dune'] .np-album-track.active .np-album-track-title,
|
||
[data-theme='dune'] .np-album-track.active .np-album-track-num {
|
||
color: #c8780a;
|
||
text-shadow: 0 0 8px rgba(200,120,10,0.50);
|
||
}
|
||
|
||
/* ── TetraStack (Games) — 7-tetromino NES Tetris ─────────────── */
|
||
/* I=cyan O=yellow T=purple S=green Z=red J=blue L=orange */
|
||
[data-theme='tetrastack'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%2300f0f0%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* Dark navy — NES Tetris backdrop, not pure black */
|
||
--ctp-crust: #000008;
|
||
--ctp-mantle: #00000e;
|
||
--ctp-base: #060614;
|
||
--ctp-surface0: #0d0d22;
|
||
--ctp-surface1: #141432;
|
||
--ctp-surface2: #1e1e48;
|
||
--ctp-overlay0: #3a3a6a;
|
||
--ctp-overlay1: #6060a8;
|
||
--ctp-overlay2: #9090cc;
|
||
--ctp-text: #ffffff;
|
||
--ctp-subtext1: #d0d0ff;
|
||
--ctp-subtext0: #9090cc;
|
||
|
||
/* 7 Tetromino colours mapped to palette slots */
|
||
--ctp-sky: #00f0f0; /* I-piece — cyan */
|
||
--ctp-teal: #00f0f0;
|
||
--ctp-yellow: #f0d000; /* O-piece — yellow */
|
||
--ctp-mauve: #a020f0; /* T-piece — purple */
|
||
--ctp-lavender: #a020f0;
|
||
--ctp-pink: #a020f0;
|
||
--ctp-green: #00d000; /* S-piece — green */
|
||
--ctp-red: #f02000; /* Z-piece — red */
|
||
--ctp-flamingo: #f02000;
|
||
--ctp-maroon: #f02000;
|
||
--ctp-blue: #0060f0; /* J-piece — blue */
|
||
--ctp-sapphire: #0060f0;
|
||
--ctp-peach: #f07800; /* L-piece — orange */
|
||
--ctp-rosewater:#f07800;
|
||
|
||
--bg-app: #060614;
|
||
--bg-sidebar: #00000e;
|
||
--bg-card: #0d0d22;
|
||
--bg-hover: rgba(0, 240, 240, 0.07);
|
||
--bg-player: #000008;
|
||
--bg-glass: rgba(6, 6, 20, 0.96);
|
||
|
||
--accent: #00f0f0; /* I-piece cyan */
|
||
--accent-dim: rgba(0, 240, 240, 0.12);
|
||
--accent-glow: rgba(0, 240, 240, 0.5);
|
||
--volume-accent:#f0d000; /* O-piece yellow — classic score-panel feel */
|
||
|
||
--text-primary: #ffffff;
|
||
--text-secondary:#f0d000; /* O-piece yellow — like the score readout */
|
||
--text-muted: #3a3a6a;
|
||
--border: #1e1e48;
|
||
--border-subtle: #0d0d22;
|
||
|
||
/* All corners square — every element is a block */
|
||
--radius-sm: 0px;
|
||
--radius-md: 0px;
|
||
--radius-lg: 0px;
|
||
--radius-xl: 0px;
|
||
}
|
||
|
||
/* 30 px grid — Tetris block scale */
|
||
[data-theme='tetrastack'] .app-shell {
|
||
background-image:
|
||
linear-gradient(rgba(0, 240, 240, 0.04) 1px, transparent 1px),
|
||
linear-gradient(90deg, rgba(0, 240, 240, 0.04) 1px, transparent 1px);
|
||
background-size: 30px 30px;
|
||
}
|
||
|
||
/* Sidebar = the score/next-piece panel */
|
||
[data-theme='tetrastack'] .sidebar {
|
||
border-right: 3px solid #00f0f0;
|
||
}
|
||
|
||
/* Player bar = bottom of the well */
|
||
[data-theme='tetrastack'] .player-bar {
|
||
border-top: 3px solid #00f0f0;
|
||
box-shadow:
|
||
0 -2px 0 #a020f0,
|
||
0 -8px 24px rgba(0, 240, 240, 0.12);
|
||
}
|
||
|
||
/* NES block shading on cards — lighter top-left, darker bottom-right */
|
||
[data-theme='tetrastack'] .card,
|
||
[data-theme='tetrastack'] .glass,
|
||
[data-theme='tetrastack'] .settings-card {
|
||
border: 1px solid #1e1e48 !important;
|
||
border-radius: 0 !important;
|
||
box-shadow:
|
||
inset -3px -3px 0 rgba(0, 0, 0, 0.55),
|
||
inset 3px 3px 0 rgba(255, 255, 255, 0.05) !important;
|
||
}
|
||
|
||
/* Buttons: block-shaped, NES-style press effect */
|
||
[data-theme='tetrastack'] .btn-primary {
|
||
background: #00f0f0;
|
||
color: #000000;
|
||
border: none;
|
||
border-radius: 0;
|
||
box-shadow: inset -3px -3px 0 rgba(0,0,0,0.5), inset 3px 3px 0 rgba(255,255,255,0.35);
|
||
text-transform: uppercase;
|
||
font-weight: 800;
|
||
letter-spacing: 0.08em;
|
||
}
|
||
[data-theme='tetrastack'] .btn-primary:hover {
|
||
background: #30ffff;
|
||
box-shadow: inset -3px -3px 0 rgba(0,0,0,0.4), inset 3px 3px 0 rgba(255,255,255,0.45);
|
||
}
|
||
[data-theme='tetrastack'] .btn-surface {
|
||
border-radius: 0;
|
||
box-shadow: inset -2px -2px 0 rgba(0,0,0,0.5), inset 2px 2px 0 rgba(255,255,255,0.06);
|
||
}
|
||
|
||
/* Track name = I-piece glow */
|
||
[data-theme='tetrastack'] .player-track-name {
|
||
color: #00f0f0;
|
||
text-shadow: 0 0 8px rgba(0,240,240,0.7), 0 0 20px rgba(0,240,240,0.3);
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.04em;
|
||
}
|
||
|
||
/* Artist name = L-piece orange */
|
||
[data-theme='tetrastack'] .player-track-artist { color: #f07800; }
|
||
|
||
/* Album title in queue = T-piece purple */
|
||
[data-theme='tetrastack'] .queue-meta-album { color: #a020f0; }
|
||
|
||
/* Active queue item = I-piece left border */
|
||
[data-theme='tetrastack'] .queue-item.active {
|
||
background: rgba(0, 240, 240, 0.07);
|
||
box-shadow: inset 3px 0 0 #00f0f0;
|
||
}
|
||
[data-theme='tetrastack'] .np-queue-item-active {
|
||
color: #00f0f0;
|
||
text-shadow: 0 0 8px rgba(0,240,240,0.6);
|
||
}
|
||
[data-theme='tetrastack'] .np-queue-item.active { background: rgba(0,240,240,0.07); }
|
||
|
||
/* Hover rows: subtle block highlight */
|
||
[data-theme='tetrastack'] .track-row:hover,
|
||
[data-theme='tetrastack'] .track-row.context-active {
|
||
background: rgba(0, 240, 240, 0.06) !important;
|
||
box-shadow: inset 3px 0 0 #00f0f0;
|
||
}
|
||
[data-theme='tetrastack'] .queue-item:hover,
|
||
[data-theme='tetrastack'] .queue-item.context-active {
|
||
background: rgba(0, 240, 240, 0.07) !important;
|
||
box-shadow: inset 3px 0 0 #00f0f0;
|
||
}
|
||
[data-theme='tetrastack'] .np-queue-item:hover,
|
||
[data-theme='tetrastack'] .np-queue-item.context-active {
|
||
background: rgba(0, 240, 240, 0.07);
|
||
box-shadow: inset 2px 0 0 #00f0f0;
|
||
}
|
||
[data-theme='tetrastack'] .artist-row:hover { background: rgba(0,240,240,0.06); box-shadow: inset 3px 0 0 #00f0f0; }
|
||
[data-theme='tetrastack'] .playlist-row:hover { background: rgba(0,240,240,0.06); box-shadow: inset 3px 0 0 #00f0f0; }
|
||
|
||
/* Settings tabs: active = S-piece green left border */
|
||
[data-theme='tetrastack'] .settings-tab:hover { background: rgba(0,240,240,0.06); color: #00f0f0; }
|
||
[data-theme='tetrastack'] .settings-tab.active {
|
||
background: rgba(0, 208, 0, 0.08);
|
||
color: #00d000;
|
||
box-shadow: inset 3px 0 0 #00d000;
|
||
}
|
||
|
||
/* Queue tabs */
|
||
[data-theme='tetrastack'] .queue-tab-btn:hover { background: rgba(0,240,240,0.06); color: #00f0f0; }
|
||
|
||
/* Dropdowns / selects */
|
||
[data-theme='tetrastack'] .custom-select-trigger:hover { background: rgba(0,240,240,0.06); }
|
||
[data-theme='tetrastack'] .custom-select-option:hover {
|
||
background: rgba(0, 240, 240, 0.1) !important;
|
||
color: #00f0f0 !important;
|
||
}
|
||
|
||
/* Artist pill links = J-piece blue */
|
||
[data-theme='tetrastack'] .artist-ext-link:hover {
|
||
background: rgba(0, 96, 240, 0.1);
|
||
color: #0060f0 !important;
|
||
border-color: rgba(0, 96, 240, 0.4) !important;
|
||
}
|
||
|
||
/* Now playing active track = Z-piece red accent */
|
||
[data-theme='tetrastack'] .np-album-track.active .np-album-track-title,
|
||
[data-theme='tetrastack'] .np-album-track.active .np-album-track-num {
|
||
color: #f02000;
|
||
text-shadow: 0 0 8px rgba(240, 32, 0, 0.5);
|
||
}
|
||
|
||
/* Connection indicators */
|
||
[data-theme='tetrastack'] .connection-type,
|
||
[data-theme='tetrastack'] .connection-server { color: #f0d000; }
|
||
|
||
/* ── The Book (Social Media) ────────────────────────────────── */
|
||
[data-theme='the-book'] {
|
||
color-scheme: light;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%2365676B%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
--ctp-crust: #FFFFFF;
|
||
--ctp-mantle: #FFFFFF;
|
||
--ctp-base: #F0F2F5;
|
||
--ctp-surface0: #E4E6EB;
|
||
--ctp-surface1: #D8DADF;
|
||
--ctp-surface2: #CED0D4;
|
||
--ctp-overlay0: #B0B3B8;
|
||
--ctp-overlay1: #65676B;
|
||
--ctp-overlay2: #4B4C4F;
|
||
--ctp-text: #050505;
|
||
--ctp-subtext1: #65676B;
|
||
--ctp-subtext0: #8A8D91;
|
||
|
||
--ctp-mauve: #1877F2;
|
||
--ctp-lavender: #2D88FF;
|
||
--ctp-green: #42B72A;
|
||
--ctp-yellow: #F7B125;
|
||
--ctp-red: #FA383E;
|
||
--ctp-blue: #1877F2;
|
||
--ctp-teal: #00A400;
|
||
--ctp-sky: #45BD62;
|
||
--ctp-sapphire: #0064D1;
|
||
--ctp-pink: #F33E58;
|
||
--ctp-flamingo: #F33E58;
|
||
--ctp-rosewater:#F0F2F5;
|
||
--ctp-maroon: #B12425;
|
||
--ctp-peach: #F7B125;
|
||
|
||
--bg-app: #F0F2F5;
|
||
--bg-sidebar: #1877F2;
|
||
--bg-card: #FFFFFF;
|
||
--bg-hover: #F2F2F2;
|
||
--bg-player: #FFFFFF;
|
||
--bg-glass: rgba(255, 255, 255, 0.9);
|
||
|
||
--accent: #1877F2;
|
||
--accent-dim: rgba(24, 119, 242, 0.1);
|
||
--accent-glow: rgba(24, 119, 242, 0.2);
|
||
--volume-accent:#1877F2;
|
||
|
||
--text-primary: #050505;
|
||
--text-secondary:#65676B;
|
||
--text-muted: #606369;
|
||
--border: #CED0D4;
|
||
--border-subtle: #E4E6EB;
|
||
|
||
--positive: #42B72A;
|
||
--warning: #F7B125;
|
||
--danger: #FA383E;
|
||
|
||
--radius-sm: 4px;
|
||
--radius-md: 8px;
|
||
--radius-lg: 12px;
|
||
--radius-xl: 16px;
|
||
|
||
--shadow-dropdown: 0 12px 28px 0 rgba(0,0,0,0.1), 0 2px 4px 0 rgba(0,0,0,0.1);
|
||
}
|
||
|
||
[data-theme='the-book'] .player-bar {
|
||
border-top: 1px solid var(--border-subtle);
|
||
box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.03);
|
||
}
|
||
|
||
[data-theme='the-book'] .sidebar {
|
||
border-right: none;
|
||
}
|
||
|
||
[data-theme='the-book'] .sidebar .nav-link {
|
||
color: rgba(255, 255, 255, 0.85);
|
||
}
|
||
|
||
[data-theme='the-book'] .sidebar .nav-link:hover {
|
||
background: rgba(255, 255, 255, 0.15);
|
||
color: #ffffff;
|
||
}
|
||
|
||
[data-theme='the-book'] .sidebar .nav-link.active {
|
||
background: rgba(255, 255, 255, 0.2);
|
||
color: #ffffff;
|
||
font-weight: 600;
|
||
}
|
||
|
||
[data-theme='the-book'] .sidebar .nav-section-label {
|
||
color: rgba(255, 255, 255, 0.55);
|
||
}
|
||
|
||
[data-theme='the-book'] .sidebar-brand .brand-name {
|
||
-webkit-text-fill-color: #ffffff;
|
||
color: #ffffff;
|
||
}
|
||
|
||
[data-theme='the-book'] .sidebar {
|
||
--accent: #ffffff;
|
||
--ctp-blue: #ffffff;
|
||
}
|
||
|
||
/* Queue panel — white text on blue background */
|
||
[data-theme='the-book'] .queue-item-title {
|
||
color: rgba(255, 255, 255, 0.9);
|
||
}
|
||
|
||
[data-theme='the-book'] .queue-item-artist,
|
||
[data-theme='the-book'] .queue-item-duration {
|
||
color: rgba(255, 255, 255, 0.55);
|
||
}
|
||
|
||
[data-theme='the-book'] .queue-item:hover .queue-item-title,
|
||
[data-theme='the-book'] .queue-item.context-active .queue-item-title {
|
||
color: #ffffff;
|
||
}
|
||
|
||
[data-theme='the-book'] .queue-item.active .queue-item-title {
|
||
color: #ffffff;
|
||
}
|
||
|
||
[data-theme='the-book'] .queue-item.active .queue-item-artist,
|
||
[data-theme='the-book'] .queue-item.active .queue-item-duration {
|
||
color: rgba(255, 255, 255, 0.7);
|
||
}
|
||
|
||
[data-theme='the-book'] .queue-item:hover,
|
||
[data-theme='the-book'] .queue-item.context-active {
|
||
background: rgba(255, 255, 255, 0.1);
|
||
}
|
||
|
||
[data-theme='the-book'] .queue-header,
|
||
[data-theme='the-book'] .queue-header h2 {
|
||
color: var(--text-primary);
|
||
}
|
||
|
||
[data-theme='the-book'] .queue-current-info h3 {
|
||
color: rgba(255, 255, 255, 0.9);
|
||
}
|
||
|
||
[data-theme='the-book'] .queue-current-sub {
|
||
color: rgba(255, 255, 255, 0.65);
|
||
}
|
||
|
||
[data-theme='the-book'] .collapse-btn {
|
||
background: rgba(255, 255, 255, 0.15);
|
||
border-color: rgba(255, 255, 255, 0.3);
|
||
color: #ffffff;
|
||
}
|
||
|
||
[data-theme='the-book'] .player-track-name,
|
||
[data-theme='the-book'] .player-track-artist,
|
||
[data-theme='the-book'] .player-time {
|
||
color: var(--text-primary) !important;
|
||
}
|
||
|
||
|
||
[data-theme='the-book'] .card {
|
||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
|
||
border: 1px solid var(--border-subtle);
|
||
}
|
||
|
||
/* ── ReadIt (Social Media) ──────────────────────────────────── */
|
||
[data-theme='readit'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23FF4500%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
--ctp-crust: #030303;
|
||
--ctp-mantle: #1A1A1B;
|
||
--ctp-base: #030303;
|
||
--ctp-surface0: #1A1A1B;
|
||
--ctp-surface1: #272729;
|
||
--ctp-surface2: #343536;
|
||
--ctp-overlay0: #818384;
|
||
--ctp-overlay1: #D7DADC;
|
||
--ctp-overlay2: #FFFFFF;
|
||
--ctp-text: #D7DADC;
|
||
--ctp-subtext1: #D7DADC;
|
||
--ctp-subtext0: #818384;
|
||
|
||
--ctp-mauve: #FF4500;
|
||
--ctp-lavender: #FF581A;
|
||
--ctp-green: #46D160;
|
||
--ctp-yellow: #FFD635;
|
||
--ctp-red: #FF4500;
|
||
--ctp-blue: #0079D3;
|
||
--ctp-teal: #00AD96;
|
||
--ctp-sky: #7193FF;
|
||
--ctp-sapphire: #3E5EB3;
|
||
--ctp-pink: #FF66AC;
|
||
--ctp-flamingo: #FF8280;
|
||
--ctp-rosewater:#FFB3A6;
|
||
--ctp-maroon: #EA0027;
|
||
--ctp-peach: #FFB000;
|
||
|
||
--bg-app: #030303;
|
||
--bg-sidebar: #1A1A1B;
|
||
--bg-card: #1A1A1B;
|
||
--bg-hover: #272729;
|
||
--bg-player: #1A1A1B;
|
||
--bg-glass: rgba(26, 26, 27, 0.9);
|
||
|
||
--accent: #FF4500;
|
||
--accent-dim: rgba(255, 69, 0, 0.1);
|
||
--accent-glow: rgba(255, 69, 0, 0.3);
|
||
--volume-accent:#FF4500;
|
||
|
||
--text-primary: #D7DADC;
|
||
--text-secondary:#D7DADC;
|
||
--text-muted: #818384;
|
||
--border: #343536;
|
||
--border-subtle: #272729;
|
||
|
||
--radius-sm: 4px;
|
||
--radius-md: 4px;
|
||
--radius-lg: 8px;
|
||
--radius-xl: 12px;
|
||
}
|
||
|
||
[data-theme='readit'] .player-bar {
|
||
border-top: 1px solid var(--border);
|
||
background: var(--bg-sidebar);
|
||
}
|
||
|
||
[data-theme='readit'] .sidebar {
|
||
border-right: 1px solid var(--border);
|
||
}
|
||
|
||
[data-theme='readit'] .nav-link.active {
|
||
background: transparent;
|
||
color: var(--accent);
|
||
}
|
||
|
||
[data-theme='readit'] .nav-link.active::before {
|
||
background: var(--accent) !important;
|
||
width: 2px;
|
||
border-radius: 0 2px 2px 0;
|
||
}
|
||
|
||
[data-theme='readit'] .btn-primary {
|
||
background: var(--accent);
|
||
color: white;
|
||
font-weight: 700;
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.5px;
|
||
font-size: 11px;
|
||
}
|
||
|
||
[data-theme='readit'] .btn-primary:hover {
|
||
background: var(--ctp-lavender);
|
||
}
|
||
|
||
[data-theme='readit'] .card {
|
||
border: 1px solid var(--border);
|
||
}
|
||
|
||
[data-theme='readit'] .queue-item.active {
|
||
border-left: 2px solid var(--accent);
|
||
background: var(--accent-dim);
|
||
}
|
||
|
||
/* ── Insta (Social Media) ───────────────────────────────────── */
|
||
[data-theme='insta'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23FFFFFF%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
--ctp-crust: #000000;
|
||
--ctp-mantle: #000000;
|
||
--ctp-base: #121212;
|
||
--ctp-surface0: #1A1A1A;
|
||
--ctp-surface1: #262626;
|
||
--ctp-surface2: #363636;
|
||
--ctp-overlay0: #737373;
|
||
--ctp-overlay1: #A8A8A8;
|
||
--ctp-overlay2: #C7C7C7;
|
||
--ctp-text: #F5F5F5;
|
||
--ctp-subtext1: #DBDBDB;
|
||
--ctp-subtext0: #8E8E8E;
|
||
|
||
--ctp-mauve: #E1306C;
|
||
--ctp-lavender: #C13584;
|
||
--ctp-green: #0095F6;
|
||
--ctp-yellow: #FFD600;
|
||
--ctp-red: #ED4956;
|
||
--ctp-peach: #F56040;
|
||
--ctp-flamingo: #FD1D1D;
|
||
--ctp-blue: #0095F6;
|
||
--ctp-teal: #0095F6;
|
||
--ctp-sky: #C13584;
|
||
--ctp-sapphire: #833ab4;
|
||
--ctp-pink: #E1306C;
|
||
--ctp-rosewater:#fcb045;
|
||
--ctp-maroon: #ED4956;
|
||
|
||
--bg-app: #121212;
|
||
--bg-sidebar: #000000;
|
||
--bg-card: #1A1A1A;
|
||
--bg-hover: #262626;
|
||
--bg-player: #000000;
|
||
--bg-glass: rgba(0, 0, 0, 0.85);
|
||
|
||
--accent: #E1306C;
|
||
--accent-dim: rgba(225, 48, 108, 0.15);
|
||
--accent-glow: rgba(225, 48, 108, 0.35);
|
||
--volume-accent:#E1306C;
|
||
|
||
--text-primary: #F5F5F5;
|
||
--text-secondary:#A8A8A8;
|
||
--text-muted: #737373;
|
||
--border: #262626;
|
||
--border-subtle: #1A1A1A;
|
||
|
||
--radius-sm: 4px;
|
||
--radius-md: 8px;
|
||
--radius-lg: 12px;
|
||
--radius-xl: 22px;
|
||
}
|
||
|
||
[data-theme='insta'] .progress-bar-fill {
|
||
background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%) !important;
|
||
}
|
||
|
||
[data-theme='insta'] .nav-link.active::before {
|
||
background: linear-gradient(to bottom, #833ab4, #fd1d1d, #fcb045) !important;
|
||
width: 3px;
|
||
}
|
||
|
||
[data-theme='insta'] .player-bar {
|
||
border-top: 1px solid var(--border);
|
||
}
|
||
|
||
[data-theme='insta'] .btn-primary:hover {
|
||
background: linear-gradient(45deg, #f09433, #dc2743, #bc1888) !important;
|
||
border-color: transparent;
|
||
}
|
||
|
||
[data-theme='insta'] .sidebar {
|
||
border-right: 1px solid var(--border);
|
||
}
|
||
|
||
/* ── Hill Valley 85 (Movies) ────────────────────────────────── */
|
||
/* ─── Back to the Future — Hill Valley '85 ─── */
|
||
[data-theme='hill-valley-85'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ff8c00%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* ── Palette ── */
|
||
--ctp-crust: #020106;
|
||
--ctp-mantle: #07060f;
|
||
--ctp-base: #0d0b18;
|
||
--ctp-surface0: #151220;
|
||
--ctp-surface1: #1e1a2c;
|
||
--ctp-surface2: #272338;
|
||
--ctp-overlay0: #3d3455;
|
||
--ctp-overlay1: #5a4e70;
|
||
--ctp-overlay2: #7a6e90;
|
||
--ctp-text: #ede0c8;
|
||
--ctp-subtext1: #c8b898;
|
||
--ctp-subtext0: #a09070;
|
||
/* BTTF palette: flame orange, DeLorean red, lightning blue, flux yellow */
|
||
--ctp-mauve: #ff8c00;
|
||
--ctp-lavender: #ffaa33;
|
||
--ctp-red: #ff2200;
|
||
--ctp-blue: #3d88ff;
|
||
--ctp-sapphire: #1a5ccc;
|
||
--ctp-sky: #66aaff;
|
||
--ctp-teal: #00ccff;
|
||
--ctp-green: #44dd00;
|
||
--ctp-yellow: #ffe033;
|
||
--ctp-peach: #ff6600;
|
||
--ctp-pink: #ff44aa;
|
||
--ctp-flamingo: #ff2266;
|
||
--ctp-rosewater: #ffd0b0;
|
||
--ctp-maroon: #cc1100;
|
||
|
||
/* ── Semantic tokens ── */
|
||
--bg-app: #0d0b18;
|
||
--bg-sidebar: #08060f;
|
||
--bg-card: #141120;
|
||
--bg-hover: rgba(255, 140, 0, 0.12);
|
||
--bg-player: #040209;
|
||
--bg-glass: rgba(6, 4, 12, 0.96);
|
||
--accent: #ff8c00;
|
||
--accent-dim: rgba(255, 140, 0, 0.12);
|
||
--accent-glow: rgba(255, 140, 0, 0.40);
|
||
--volume-accent: #ff8c00;
|
||
--text-primary: #ede0c8;
|
||
--text-secondary:#c8b898;
|
||
--text-muted: #b0a0c8;
|
||
--border: rgba(255, 140, 0, 0.20);
|
||
--border-subtle: rgba(255, 140, 0, 0.10);
|
||
--positive: #44dd00;
|
||
--warning: #ffe033;
|
||
--danger: #ff2200;
|
||
--radius-sm: 2px;
|
||
--radius-md: 4px;
|
||
--radius-lg: 6px;
|
||
}
|
||
|
||
/* ── App shell: Hill Valley night sky — orange fire & blue lightning ── */
|
||
[data-theme='hill-valley-85'] .app-shell {
|
||
background:
|
||
radial-gradient(ellipse at 15% 80%, rgba(255, 110, 0, 0.07) 0%, transparent 55%),
|
||
radial-gradient(ellipse at 85% 15%, rgba(60, 130, 255, 0.06) 0%, transparent 50%),
|
||
#0d0b18;
|
||
}
|
||
|
||
/* ── Sidebar: DeLorean stainless steel panels ── */
|
||
[data-theme='hill-valley-85'] .sidebar {
|
||
background-color: #08060f;
|
||
background-image: repeating-linear-gradient(
|
||
90deg,
|
||
rgba(255,255,255,0.025) 0px, rgba(255,255,255,0.025) 1px,
|
||
transparent 1px, transparent 10px
|
||
);
|
||
border-right: 1px solid rgba(255, 140, 0, 0.22);
|
||
box-shadow: inset -2px 0 8px rgba(255, 100, 0, 0.05), 2px 0 6px rgba(0,0,0,0.40);
|
||
}
|
||
|
||
/* Nav links */
|
||
[data-theme='hill-valley-85'] .nav-link { color: #c8b898; }
|
||
[data-theme='hill-valley-85'] .nav-link:hover {
|
||
background: rgba(255, 140, 0, 0.10);
|
||
color: #ede0c8;
|
||
}
|
||
[data-theme='hill-valley-85'] .nav-link.active {
|
||
background: linear-gradient(90deg, rgba(255,140,0,0.18) 0%, transparent 100%);
|
||
color: #ff8c00;
|
||
border-left: 2px solid #ff8c00;
|
||
box-shadow: inset 4px 0 12px rgba(255,140,0,0.10);
|
||
}
|
||
[data-theme='hill-valley-85'] .nav-link.active::before {
|
||
background: #ff8c00;
|
||
box-shadow: 0 0 8px rgba(255,140,0,0.70);
|
||
}
|
||
[data-theme='hill-valley-85'] .nav-link.active svg { color: #ff8c00; }
|
||
|
||
/* ── Player bar: DeLorean time circuit console ── */
|
||
[data-theme='hill-valley-85'] .player-bar {
|
||
background: linear-gradient(180deg, #060410 0%, #030208 100%);
|
||
border-top: 2px solid rgba(255, 140, 0, 0.45);
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255, 140, 0, 0.18),
|
||
0 -6px 30px rgba(255, 100, 0, 0.12),
|
||
0 -2px 60px rgba(60, 130, 255, 0.04);
|
||
}
|
||
|
||
/* Track name: DeLorean time circuit red LED display */
|
||
[data-theme='hill-valley-85'] .player-track-name {
|
||
color: #ff2200;
|
||
font-family: 'Courier New', 'Courier', monospace;
|
||
text-shadow:
|
||
0 0 8px rgba(255, 34, 0, 0.90),
|
||
0 0 18px rgba(255, 34, 0, 0.50),
|
||
0 0 30px rgba(255, 34, 0, 0.20);
|
||
letter-spacing: 1.5px;
|
||
text-transform: uppercase;
|
||
font-weight: 700;
|
||
}
|
||
|
||
/* Artist name: amber LED — second row of the time display */
|
||
[data-theme='hill-valley-85'] .player-track-artist {
|
||
color: #ff8c00;
|
||
font-family: 'Courier New', monospace;
|
||
text-shadow: 0 0 8px rgba(255, 140, 0, 0.65);
|
||
letter-spacing: 0.5px;
|
||
opacity: 1;
|
||
}
|
||
|
||
/* Time readout: amber LCD */
|
||
[data-theme='hill-valley-85'] .player-time {
|
||
color: #cc6a00;
|
||
font-family: 'Courier New', monospace;
|
||
text-shadow: 0 0 6px rgba(255, 140, 0, 0.40);
|
||
}
|
||
|
||
/* ── Transport buttons: illuminated 80s switches ── */
|
||
[data-theme='hill-valley-85'] .player-btn,
|
||
[data-theme='hill-valley-85'] .player-btn-primary {
|
||
background: linear-gradient(180deg, #100d1c 0%, #0a0815 100%);
|
||
color: #ff8c00;
|
||
border: 1px solid rgba(255, 140, 0, 0.35);
|
||
border-radius: 50%;
|
||
box-shadow: inset 0 0 6px rgba(255,100,0,0.06), 0 1px 3px rgba(0,0,0,0.50);
|
||
}
|
||
[data-theme='hill-valley-85'] .player-btn:hover,
|
||
[data-theme='hill-valley-85'] .player-btn-primary:hover {
|
||
background: rgba(255, 140, 0, 0.12);
|
||
border-color: #ff8c00;
|
||
color: #ffaa33;
|
||
box-shadow:
|
||
0 0 14px rgba(255, 140, 0, 0.40),
|
||
inset 0 0 8px rgba(255, 100, 0, 0.08);
|
||
}
|
||
|
||
/* ── Regular buttons: DeLorean console switches ── */
|
||
[data-theme='hill-valley-85'] .btn,
|
||
[data-theme='hill-valley-85'] .btn-surface,
|
||
[data-theme='hill-valley-85'] .btn-ghost {
|
||
background: linear-gradient(180deg, #141120 0%, #0e0c1a 100%);
|
||
color: #c8b898;
|
||
border: 1px solid rgba(255, 140, 0, 0.28);
|
||
box-shadow: inset 0 1px 0 rgba(255,255,255,0.04), 0 1px 3px rgba(0,0,0,0.40);
|
||
border-radius: 4px;
|
||
}
|
||
[data-theme='hill-valley-85'] .btn:hover,
|
||
[data-theme='hill-valley-85'] .btn-surface:hover,
|
||
[data-theme='hill-valley-85'] .btn-ghost:hover {
|
||
background: rgba(255, 140, 0, 0.10);
|
||
border-color: rgba(255, 140, 0, 0.60);
|
||
color: #ede0c8;
|
||
box-shadow: 0 0 10px rgba(255, 140, 0, 0.22), inset 0 0 6px rgba(255,100,0,0.05);
|
||
}
|
||
|
||
/* ── Primary button: fire orange ── */
|
||
[data-theme='hill-valley-85'] .btn-primary {
|
||
background: linear-gradient(180deg, #cc5500 0%, #993d00 100%);
|
||
color: #ffffff;
|
||
border: 1px solid #ff6600;
|
||
box-shadow: 0 0 12px rgba(255, 140, 0, 0.30), inset 0 1px 0 rgba(255,180,0,0.25);
|
||
border-radius: 4px;
|
||
}
|
||
[data-theme='hill-valley-85'] .btn-primary:hover {
|
||
background: linear-gradient(180deg, #e86000 0%, #b04800 100%);
|
||
box-shadow: 0 0 18px rgba(255, 140, 0, 0.50), inset 0 1px 0 rgba(255,200,0,0.25);
|
||
}
|
||
|
||
/* ── Hero / album-card buttons ── */
|
||
[data-theme='hill-valley-85'] .hero-play-btn,
|
||
[data-theme='hill-valley-85'] .album-card-details-btn {
|
||
background: rgba(255, 140, 0, 0.10);
|
||
color: #ff8c00;
|
||
border: 1px solid rgba(255, 140, 0, 0.35);
|
||
box-shadow: inset 0 1px 0 rgba(255,180,0,0.08);
|
||
}
|
||
[data-theme='hill-valley-85'] .hero-play-btn:hover,
|
||
[data-theme='hill-valley-85'] .album-card-details-btn:hover {
|
||
background: rgba(255, 140, 0, 0.18);
|
||
border-color: #ff8c00;
|
||
box-shadow: 0 0 12px rgba(255, 140, 0, 0.35);
|
||
}
|
||
|
||
/* ── Queue toolbar round buttons ── */
|
||
[data-theme='hill-valley-85'] .queue-round-btn {
|
||
background: linear-gradient(180deg, #141120 0%, #0e0c1a 100%);
|
||
color: #a09070;
|
||
border: 1px solid rgba(255, 140, 0, 0.22);
|
||
box-shadow: inset 0 1px 0 rgba(255,255,255,0.03);
|
||
}
|
||
[data-theme='hill-valley-85'] .queue-round-btn:hover:not(:disabled):not(.active) {
|
||
background: rgba(255, 140, 0, 0.10);
|
||
border-color: rgba(255, 140, 0, 0.55);
|
||
color: #ff8c00;
|
||
box-shadow: 0 0 10px rgba(255, 140, 0, 0.22);
|
||
}
|
||
[data-theme='hill-valley-85'] .queue-round-btn.active {
|
||
background: rgba(255, 140, 0, 0.18);
|
||
border-color: #ff8c00;
|
||
color: #ff8c00;
|
||
box-shadow: 0 0 12px rgba(255, 140, 0, 0.40), inset 0 0 6px rgba(255,100,0,0.08);
|
||
}
|
||
|
||
/* ── Cards: dark interior panels ── */
|
||
[data-theme='hill-valley-85'] .card {
|
||
background: #141120;
|
||
border: 1px solid rgba(255, 140, 0, 0.14);
|
||
box-shadow: inset 0 0 20px rgba(255, 100, 0, 0.03), 0 2px 8px rgba(0,0,0,0.40);
|
||
}
|
||
|
||
/* ── Content header: console panel strip ── */
|
||
[data-theme='hill-valley-85'] .content-header {
|
||
background: linear-gradient(180deg, #100d1c 0%, #0d0b18 100%);
|
||
border-bottom: 1px solid rgba(255, 140, 0, 0.22);
|
||
box-shadow: 0 2px 12px rgba(255, 100, 0, 0.05);
|
||
}
|
||
|
||
/* ── Theme accordion ── */
|
||
[data-theme='hill-valley-85'] .theme-accordion-header:hover {
|
||
background: rgba(255, 140, 0, 0.10);
|
||
color: #ff8c00;
|
||
}
|
||
[data-theme='hill-valley-85'] .theme-accordion-open .theme-accordion-header {
|
||
background: rgba(255, 140, 0, 0.12);
|
||
color: #ff8c00;
|
||
}
|
||
[data-theme='hill-valley-85'] .theme-accordion-open .theme-accordion-chevron { color: #ff8c00; }
|
||
|
||
/* ── Progress bar: speedometer reaching 88 mph ── */
|
||
[data-theme='hill-valley-85'] .progress-bar-track {
|
||
background: #0a0815;
|
||
border: 1px solid rgba(255, 140, 0, 0.20);
|
||
border-radius: 2px;
|
||
}
|
||
[data-theme='hill-valley-85'] .progress-bar-fill {
|
||
background: linear-gradient(90deg, #993d00 0%, #cc5500 40%, #ff8c00 80%, #ffaa33 100%);
|
||
border-radius: 2px;
|
||
box-shadow: 0 0 10px rgba(255, 140, 0, 0.55), 0 0 3px rgba(255, 200, 0, 0.40);
|
||
}
|
||
|
||
/* ── Scrollbar: fire trail minimal ── */
|
||
[data-theme='hill-valley-85'] ::-webkit-scrollbar { width: 6px; height: 6px; }
|
||
[data-theme='hill-valley-85'] ::-webkit-scrollbar-track { background: #07060e; }
|
||
[data-theme='hill-valley-85'] ::-webkit-scrollbar-thumb {
|
||
background: rgba(255, 140, 0, 0.28);
|
||
border: 1px solid rgba(255, 140, 0, 0.18);
|
||
border-radius: 3px;
|
||
}
|
||
[data-theme='hill-valley-85'] ::-webkit-scrollbar-thumb:hover {
|
||
background: rgba(255, 140, 0, 0.55);
|
||
box-shadow: 0 0 6px rgba(255, 140, 0, 0.40);
|
||
}
|
||
|
||
/* ── Glass / dropdowns: dark DeLorean interior ── */
|
||
[data-theme='hill-valley-85'] .glass {
|
||
background: rgba(6, 4, 12, 0.97) !important;
|
||
backdrop-filter: none !important;
|
||
border: 1px solid rgba(255, 140, 0, 0.28) !important;
|
||
box-shadow:
|
||
0 0 20px rgba(255, 100, 0, 0.08),
|
||
inset 0 0 16px rgba(255, 100, 0, 0.02) !important;
|
||
border-radius: 4px !important;
|
||
}
|
||
[data-theme='hill-valley-85'] .glass [style*="var(--bg-hover)"] {
|
||
background: rgba(255, 140, 0, 0.10) !important;
|
||
border-radius: 2px !important;
|
||
}
|
||
[data-theme='hill-valley-85'] .glass [style*="var(--text-primary)"] { color: #ede0c8 !important; }
|
||
[data-theme='hill-valley-85'] .glass [style*="var(--text-secondary)"] { color: #c8b898 !important; }
|
||
[data-theme='hill-valley-85'] .glass [style*="var(--text-muted)"] { color: #5a4e70 !important; }
|
||
|
||
/* ── Hover / selection: fire orange glow ── */
|
||
[data-theme='hill-valley-85'] .queue-tab-btn:hover { background: rgba(255,140,0,0.10); color: #ff8c00; }
|
||
[data-theme='hill-valley-85'] .settings-tab:hover { background: rgba(255,140,0,0.10); color: #ff8c00; }
|
||
[data-theme='hill-valley-85'] .settings-tab.active {
|
||
background: rgba(255,140,0,0.15);
|
||
color: #ff8c00;
|
||
box-shadow: inset 2px 0 0 #ff8c00;
|
||
}
|
||
[data-theme='hill-valley-85'] .custom-select-trigger:hover { background: rgba(255,140,0,0.10); }
|
||
[data-theme='hill-valley-85'] .custom-select-option:hover {
|
||
background: rgba(255,140,0,0.14) !important;
|
||
color: #ffaa33 !important;
|
||
}
|
||
[data-theme='hill-valley-85'] .artist-ext-link:hover {
|
||
background: rgba(255,140,0,0.10);
|
||
color: #ff8c00 !important;
|
||
border-color: rgba(255,140,0,0.50) !important;
|
||
}
|
||
[data-theme='hill-valley-85'] .np-action-btn:hover { background: rgba(255,140,0,0.10); }
|
||
[data-theme='hill-valley-85'] .np-queue-item:hover,
|
||
[data-theme='hill-valley-85'] .np-queue-item.context-active {
|
||
background: rgba(255,140,0,0.12);
|
||
box-shadow: inset 2px 0 0 #ff8c00;
|
||
}
|
||
[data-theme='hill-valley-85'] .track-row:hover,
|
||
[data-theme='hill-valley-85'] .track-row.context-active {
|
||
background: rgba(255,140,0,0.08) !important;
|
||
box-shadow: inset 2px 0 0 #ff8c00;
|
||
}
|
||
[data-theme='hill-valley-85'] .artist-row:hover {
|
||
background: rgba(255,140,0,0.08);
|
||
box-shadow: inset 2px 0 0 #ff8c00;
|
||
}
|
||
[data-theme='hill-valley-85'] .playlist-row:hover {
|
||
background: rgba(255,140,0,0.08);
|
||
box-shadow: inset 2px 0 0 #ff8c00;
|
||
}
|
||
[data-theme='hill-valley-85'] .queue-item:hover,
|
||
[data-theme='hill-valley-85'] .queue-item.context-active {
|
||
background: rgba(255,140,0,0.10) !important;
|
||
box-shadow: inset 2px 0 0 #ff8c00;
|
||
}
|
||
[data-theme='hill-valley-85'] .queue-item:hover .queue-item-title,
|
||
[data-theme='hill-valley-85'] .queue-item:hover .queue-item-artist,
|
||
[data-theme='hill-valley-85'] .queue-item:hover .queue-item-duration,
|
||
[data-theme='hill-valley-85'] .queue-item.context-active .queue-item-title,
|
||
[data-theme='hill-valley-85'] .queue-item.context-active .queue-item-artist,
|
||
[data-theme='hill-valley-85'] .queue-item.context-active .queue-item-duration { color: #ff8c00; }
|
||
|
||
/* ── Active queue item: glowing orange ── */
|
||
[data-theme='hill-valley-85'] .queue-item.active {
|
||
background: rgba(255, 140, 0, 0.08);
|
||
box-shadow: inset 2px 0 0 #ff8c00;
|
||
}
|
||
[data-theme='hill-valley-85'] .np-queue-item-active { color: #ff8c00; text-shadow: 0 0 8px rgba(255,140,0,0.55); }
|
||
[data-theme='hill-valley-85'] .np-queue-item.active { background: rgba(255,140,0,0.08); }
|
||
[data-theme='hill-valley-85'] .np-album-track.active .np-album-track-title,
|
||
[data-theme='hill-valley-85'] .np-album-track.active .np-album-track-num {
|
||
color: #ff8c00;
|
||
text-shadow: 0 0 8px rgba(255,140,0,0.50);
|
||
}
|
||
|
||
[data-theme='turtle-power'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%2333cc33%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
--ctp-crust: #0a0a0a;
|
||
--ctp-mantle: #121212;
|
||
--ctp-base: #1a1a1a;
|
||
--ctp-surface0: #2a2a2a;
|
||
--ctp-surface1: #353535;
|
||
--ctp-surface2: #404040;
|
||
--ctp-overlay0: #556655;
|
||
--ctp-overlay1: #778877;
|
||
--ctp-overlay2: #99aa99;
|
||
--ctp-text: #e0e0e0;
|
||
--ctp-subtext1: #a0b0a0;
|
||
--ctp-subtext0: #809080;
|
||
|
||
--ctp-mauve: #33cc33;
|
||
--ctp-lavender: #44ee44;
|
||
--ctp-red: #ff0000;
|
||
--ctp-blue: #00aaff;
|
||
--ctp-peach: #ff8c00;
|
||
--ctp-yellow: #ffcc00;
|
||
--ctp-maroon: #a020f0;
|
||
--ctp-green: #33cc33;
|
||
--ctp-teal: #44ee44;
|
||
--ctp-sky: #00aaff;
|
||
--ctp-sapphire: #0077cc;
|
||
--ctp-pink: #ff66aa;
|
||
--ctp-flamingo: #ff4488;
|
||
--ctp-rosewater:#ffaacc;
|
||
|
||
--bg-app: #1a1a1a;
|
||
--bg-sidebar: #121212;
|
||
--bg-card: #242424;
|
||
--bg-hover: rgba(51, 204, 51, 0.1);
|
||
--bg-player: #0a0a0a;
|
||
--bg-glass: rgba(10, 10, 10, 0.85);
|
||
|
||
--accent: #33cc33;
|
||
--accent-dim: rgba(51, 204, 51, 0.15);
|
||
--accent-glow: rgba(51, 204, 51, 0.4);
|
||
--volume-accent:#33cc33;
|
||
|
||
--text-primary: #e0e0e0;
|
||
--text-secondary:#a0b0a0;
|
||
--text-muted: #667766;
|
||
--border: #333333;
|
||
--border-subtle: #222222;
|
||
|
||
--radius-sm: 2px;
|
||
--radius-md: 4px;
|
||
--radius-lg: 8px;
|
||
}
|
||
|
||
[data-theme='turtle-power'] .sidebar {
|
||
background-image:
|
||
linear-gradient(335deg, #161616 5px, transparent 5px),
|
||
linear-gradient(155deg, #161616 5px, transparent 5px),
|
||
linear-gradient(335deg, #161616 5px, transparent 5px),
|
||
linear-gradient(155deg, #161616 5px, transparent 5px);
|
||
background-size: 20px 20px;
|
||
background-position: 0 0, 10px 10px, 10px 10px, 0 0;
|
||
border-right: 2px solid #222;
|
||
}
|
||
|
||
[data-theme='turtle-power'] .player-bar {
|
||
background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
|
||
border-top: 2px solid #333;
|
||
box-shadow: 0 -4px 10px rgba(0, 0, 0, 0.5);
|
||
}
|
||
|
||
[data-theme='turtle-power'] .player-track-name {
|
||
color: #44ee44;
|
||
text-shadow: 0 0 8px rgba(68, 238, 68, 0.6);
|
||
font-weight: bold;
|
||
}
|
||
|
||
[data-theme='turtle-power'] .btn-primary,
|
||
[data-theme='turtle-power'] .player-btn-primary {
|
||
background: linear-gradient(145deg, #33cc33, #28a428);
|
||
border: 1px solid #1e7a1e;
|
||
box-shadow: inset 1px 1px 2px rgba(255,255,255,0.3), 2px 2px 5px rgba(0,0,0,0.5);
|
||
color: #000 !important;
|
||
}
|
||
|
||
[data-theme='turtle-power'] .nav-link.active {
|
||
background: var(--accent-dim);
|
||
border-left: 4px solid var(--accent);
|
||
color: var(--accent) !important;
|
||
text-shadow: 0 0 5px rgba(51, 204, 51, 0.3);
|
||
}
|
||
|
||
[data-theme='turtle-power'] .queue-item.active {
|
||
border-left: 3px solid var(--accent);
|
||
background: rgba(51, 204, 51, 0.05);
|
||
}
|
||
|
||
/* ── W3.1 (Operating Systems) ───────────────────────────────── */
|
||
[data-theme='w3-1'] {
|
||
color-scheme: light;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* ── Authentische W3.1 Palette ── */
|
||
--ctp-crust: #808080;
|
||
--ctp-mantle: #a0a0a0;
|
||
--ctp-base: #c0c0c0; /* Reines W3.1 Grau */
|
||
--ctp-surface0: #ffffff;
|
||
--ctp-surface1: #e0e0e0;
|
||
--ctp-surface2: #c0c0c0;
|
||
--ctp-overlay0: #808080;
|
||
--ctp-overlay1: #404040;
|
||
--ctp-overlay2: #000000;
|
||
--ctp-text: #000000;
|
||
--ctp-subtext1: #000000;
|
||
--ctp-subtext0: #000000;
|
||
|
||
--ctp-mauve: #000080;
|
||
--ctp-lavender: #0000a0;
|
||
--ctp-green: #008000;
|
||
--ctp-teal: #008080;
|
||
--ctp-sky: #0000ff;
|
||
--ctp-blue: #000080;
|
||
--ctp-sapphire: #000080;
|
||
--ctp-pink: #ff00ff;
|
||
--ctp-flamingo: #ff00ff;
|
||
--ctp-rosewater:#ffffff;
|
||
--ctp-yellow: #ffff00;
|
||
--ctp-peach: #ff8000;
|
||
--ctp-maroon: #800000;
|
||
--ctp-red: #ff0000;
|
||
|
||
--bg-app: #008080; /* Teal Desktop */
|
||
--bg-sidebar: #c0c0c0;
|
||
--bg-card: #ffffff;
|
||
--bg-hover: #000080;
|
||
--bg-player: #c0c0c0;
|
||
--bg-glass: #c0c0c0;
|
||
|
||
--accent: #000080;
|
||
--accent-dim: rgba(0, 0, 128, 0.12);
|
||
--accent-glow: transparent;
|
||
--volume-accent: #000080;
|
||
|
||
--text-primary: #000000;
|
||
--text-secondary:#000000;
|
||
--text-muted: #000000;
|
||
|
||
--border: #000000;
|
||
--border-subtle: #808080;
|
||
--border-dropdown: #000000;
|
||
--shadow-dropdown: rgba(0, 0, 0, 0.4);
|
||
|
||
--positive: #008000;
|
||
--warning: #808000;
|
||
--danger: #ff0000;
|
||
|
||
--radius-sm: 0px;
|
||
--radius-md: 0px;
|
||
--radius-lg: 0px;
|
||
--radius-xl: 0px;
|
||
--radius-full: 0px;
|
||
}
|
||
|
||
/* Teal Desktop */
|
||
[data-theme='w3-1'] .app-shell {
|
||
background: #008080;
|
||
}
|
||
|
||
/* ── W3.1 Bevel (2-Layer, schlichter als W98) ── */
|
||
[data-theme='w3-1'] .sidebar,
|
||
[data-theme='w3-1'] .player-bar,
|
||
[data-theme='w3-1'] .card {
|
||
background: #c0c0c0;
|
||
border: 2px solid #000000;
|
||
box-shadow:
|
||
inset 1px 1px #ffffff,
|
||
inset -1px -1px #808080;
|
||
}
|
||
|
||
[data-theme='w3-1'] .sidebar {
|
||
border-right: 2px solid #000000;
|
||
}
|
||
|
||
/* Titelbalken-Stil: solides Navy — der Kern-Unterschied zu W98 */
|
||
[data-theme='w3-1'] .player-bar {
|
||
border-top: 2px solid #000000;
|
||
}
|
||
|
||
[data-theme='w3-1'] .player-track-name {
|
||
background: #000080;
|
||
color: #ffffff !important;
|
||
padding: 2px 6px;
|
||
font-weight: bold;
|
||
text-align: center;
|
||
letter-spacing: 0.03em;
|
||
}
|
||
|
||
[data-theme='w3-1'] .player-track-artist,
|
||
[data-theme='w3-1'] .player-time {
|
||
color: #000000 !important;
|
||
}
|
||
|
||
/* Nav */
|
||
[data-theme='w3-1'] .nav-link.active {
|
||
background: #000080 !important;
|
||
color: #ffffff !important;
|
||
}
|
||
[data-theme='w3-1'] .nav-link.active svg { color: #ffffff !important; }
|
||
[data-theme='w3-1'] .nav-link:hover:not(.active) {
|
||
background: #000080 !important;
|
||
color: #ffffff !important;
|
||
}
|
||
[data-theme='w3-1'] .nav-link:hover:not(.active) svg { color: #ffffff !important; }
|
||
|
||
/* Accordion (Settings Theme Picker) */
|
||
[data-theme='w3-1'] .nav-section-label { color: #000000 !important; }
|
||
[data-theme='w3-1'] .theme-accordion-header:hover { background: #000080; color: #ffffff; }
|
||
[data-theme='w3-1'] .theme-accordion-open .theme-accordion-header { background: #000080; color: #ffffff; }
|
||
[data-theme='w3-1'] .theme-accordion-open .theme-accordion-chevron { color: #ffffff; }
|
||
|
||
/* Alle Buttons: W3.1 Bevel (einfach, ohne doppelte Inset-Schicht) */
|
||
[data-theme='w3-1'] .btn,
|
||
[data-theme='w3-1'] .btn-primary,
|
||
[data-theme='w3-1'] .btn-surface,
|
||
[data-theme='w3-1'] .btn-ghost,
|
||
[data-theme='w3-1'] .hero-play-btn,
|
||
[data-theme='w3-1'] .queue-round-btn,
|
||
[data-theme='w3-1'] .player-btn,
|
||
[data-theme='w3-1'] .album-card-details-btn {
|
||
background: #c0c0c0 !important;
|
||
color: #000000 !important;
|
||
border: 1px solid #000000 !important;
|
||
border-radius: 0 !important;
|
||
box-shadow: inset 1px 1px #ffffff, inset -1px -1px #808080 !important;
|
||
text-shadow: none !important;
|
||
filter: none !important;
|
||
transform: none !important;
|
||
}
|
||
|
||
/* Gedrückt */
|
||
[data-theme='w3-1'] .btn:active,
|
||
[data-theme='w3-1'] .btn-primary:active,
|
||
[data-theme='w3-1'] .btn-surface:active,
|
||
[data-theme='w3-1'] .btn-ghost:active,
|
||
[data-theme='w3-1'] .hero-play-btn:active,
|
||
[data-theme='w3-1'] .queue-round-btn:active,
|
||
[data-theme='w3-1'] .player-btn:active,
|
||
[data-theme='w3-1'] .album-card-details-btn:active {
|
||
box-shadow: inset -1px -1px #ffffff, inset 1px 1px #808080 !important;
|
||
}
|
||
|
||
/* Hover */
|
||
[data-theme='w3-1'] .btn:hover,
|
||
[data-theme='w3-1'] .btn-primary:hover,
|
||
[data-theme='w3-1'] .btn-surface:hover,
|
||
[data-theme='w3-1'] .btn-ghost:hover,
|
||
[data-theme='w3-1'] .hero-play-btn:hover,
|
||
[data-theme='w3-1'] .album-card-details-btn:hover {
|
||
background: #d0d0d0 !important;
|
||
color: #000000 !important;
|
||
}
|
||
|
||
/* Aktive Queue-Buttons */
|
||
[data-theme='w3-1'] .queue-round-btn.active {
|
||
background: #000080 !important;
|
||
color: #ffffff !important;
|
||
box-shadow: inset -1px -1px #ffffff, inset 1px 1px #808080 !important;
|
||
}
|
||
[data-theme='w3-1'] .queue-round-btn:hover:not(:disabled):not(.active) {
|
||
background: #d0d0d0 !important;
|
||
color: #000000 !important;
|
||
}
|
||
|
||
/* Progress Bar */
|
||
[data-theme='w3-1'] .progress-bar-track {
|
||
background: #ffffff;
|
||
box-shadow: inset 1px 1px #808080, inset -1px -1px #ffffff;
|
||
border-radius: 0;
|
||
}
|
||
[data-theme='w3-1'] .progress-bar-fill {
|
||
background: #000080;
|
||
border-radius: 0;
|
||
box-shadow: none;
|
||
}
|
||
|
||
/* Scrollbar */
|
||
[data-theme='w3-1'] ::-webkit-scrollbar { width: 16px; height: 16px; }
|
||
[data-theme='w3-1'] ::-webkit-scrollbar-track { background: #c0c0c0; }
|
||
[data-theme='w3-1'] ::-webkit-scrollbar-thumb {
|
||
background: #c0c0c0;
|
||
border: 1px solid #000000;
|
||
box-shadow: inset 1px 1px #ffffff, inset -1px -1px #808080;
|
||
}
|
||
|
||
/* Cards */
|
||
[data-theme='w3-1'] .card {
|
||
background: #ffffff;
|
||
border: 2px solid #000000;
|
||
box-shadow: inset 1px 1px #ffffff, inset -1px -1px #808080;
|
||
}
|
||
|
||
/* Glass (Live Dropdown etc.) */
|
||
[data-theme='w3-1'] .glass {
|
||
background: #c0c0c0 !important;
|
||
backdrop-filter: none !important;
|
||
-webkit-backdrop-filter: none !important;
|
||
border: 2px solid #000000;
|
||
box-shadow: inset 1px 1px #ffffff, inset -1px -1px #808080;
|
||
color: #000000;
|
||
}
|
||
[data-theme='w3-1'] .glass [style*="var(--bg-hover)"] {
|
||
background: #d8d8d8 !important;
|
||
border: 1px solid #808080;
|
||
border-radius: 0 !important;
|
||
}
|
||
[data-theme='w3-1'] .glass [style*="var(--text-primary)"],
|
||
[data-theme='w3-1'] .glass [style*="var(--text-secondary)"],
|
||
[data-theme='w3-1'] .glass [style*="var(--text-muted)"] { color: #000000 !important; }
|
||
|
||
/* Universelle Hover-Zustände → navy + weiß */
|
||
[data-theme='w3-1'] .queue-tab-btn:hover { background: #d0d0d0; color: #000000; }
|
||
[data-theme='w3-1'] .settings-tab:hover { background: #000080; color: #ffffff; }
|
||
[data-theme='w3-1'] .custom-select-trigger:hover { background: #000080; color: #ffffff; }
|
||
[data-theme='w3-1'] .custom-select-option:hover { background: #000080 !important; color: #ffffff !important; }
|
||
[data-theme='w3-1'] .artist-ext-link:hover { background: #000080; color: #ffffff !important; }
|
||
[data-theme='w3-1'] .np-action-btn:hover { background: #000080; color: #ffffff; }
|
||
[data-theme='w3-1'] .np-queue-item:hover,
|
||
[data-theme='w3-1'] .np-queue-item.context-active { background: #000080; color: #ffffff; }
|
||
[data-theme='w3-1'] .track-row:hover,
|
||
[data-theme='w3-1'] .track-row.context-active { background: #000080 !important; }
|
||
[data-theme='w3-1'] .track-row:hover *,
|
||
[data-theme='w3-1'] .track-row.context-active * { color: #ffffff !important; }
|
||
[data-theme='w3-1'] .artist-row:hover { background: #000080; color: #ffffff; }
|
||
[data-theme='w3-1'] .playlist-row:hover { background: #000080; }
|
||
[data-theme='w3-1'] .playlist-row:hover,
|
||
[data-theme='w3-1'] .playlist-row:hover * { color: #ffffff; }
|
||
[data-theme='w3-1'] .queue-item:hover,
|
||
[data-theme='w3-1'] .queue-item.context-active { background: #000080 !important; }
|
||
[data-theme='w3-1'] .queue-item:hover .queue-item-title,
|
||
[data-theme='w3-1'] .queue-item:hover .queue-item-artist,
|
||
[data-theme='w3-1'] .queue-item:hover .queue-item-duration,
|
||
[data-theme='w3-1'] .queue-item.context-active .queue-item-title,
|
||
[data-theme='w3-1'] .queue-item.context-active .queue-item-artist,
|
||
[data-theme='w3-1'] .queue-item.context-active .queue-item-duration { color: #ffffff; }
|
||
[data-theme='w3-1'] .player-btn:hover { background: #000080; color: #ffffff; }
|
||
[data-theme='w3-1'] .player-btn-primary { background: #c0c0c0 !important; color: #000000 !important; }
|
||
[data-theme='w3-1'] .player-btn-primary:hover { background: #000080 !important; color: #ffffff !important; }
|
||
[data-theme='w3-1'] .search-result-item:hover,
|
||
[data-theme='w3-1'] .search-result-item.active { background: #000080; }
|
||
[data-theme='w3-1'] .search-result-item:hover .search-result-name,
|
||
[data-theme='w3-1'] .search-result-item:hover .search-result-sub,
|
||
[data-theme='w3-1'] .search-result-item.active .search-result-name,
|
||
[data-theme='w3-1'] .search-result-item.active .search-result-sub { color: #ffffff; }
|
||
[data-theme='w3-1'] .np-title { color: #000080 !important; }
|
||
[data-theme='w3-1'] .changelog-code { background: #ffffff; color: #000080; border: 1px solid #808080; }
|
||
[data-theme='w3-1'] .keybind-badge { background: #c0c0c0 !important; color: #000000 !important; border: 1px solid #808080 !important; }
|
||
[data-theme='w3-1'] .genre-keyword-badge { background: #c0c0c0 !important; color: #000000 !important; border: 1px solid #808080 !important; }
|
||
[data-theme='w3-1'] .eq-ctrl-btn { background: #c0c0c0; color: #000000; border: 1px solid #808080; box-shadow: inset 1px 1px #ffffff, inset -1px -1px #808080; }
|
||
[data-theme='w3-1'] .eq-ctrl-btn:hover { background: #000080; color: #ffffff; }
|
||
[data-theme='w3-1'] .toggle-track::before { background: #c0c0c0; border: 1px solid #808080; }
|
||
[data-theme='w3-1'] .hero-eyebrow { color: rgba(255,255,255,0.9); }
|
||
[data-theme='w3-1'] .hero-meta .badge { background: rgba(255,255,255,0.15); }
|
||
[data-theme='w3-1'] .connection-type,
|
||
[data-theme='w3-1'] .connection-server { color: #000000; }
|
||
[data-theme='w3-1'] .collapse-btn { border-color: #808080 !important; }
|
||
[data-theme='w3-1'] .collapse-btn:hover { background: #000080 !important; color: #ffffff !important; }
|
||
[data-theme='w3-1'] .album-row-nav .nav-btn:hover:not(.disabled) { background: #000080; color: #ffffff; }
|
||
[data-theme='w3-1'] .help-question:hover { color: #000080; }
|
||
[data-theme='w3-1'] .help-item-open .help-question { color: #000080; font-weight: bold; }
|
||
[data-theme='w3-1'] .year-toggle:hover { color: #000080; }
|
||
|
||
/* ─── Ubuntu — Unity Ambiance (Classic Light) ─── */
|
||
/* Warm human desktop: aubergine launcher + orange accent + warm off-white content */
|
||
[data-theme='ubuntu-ambiance'] {
|
||
color-scheme: light;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%237d6e68%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* ── Palette — warm human spectrum ── */
|
||
--ctp-crust: #1a000f; /* panel blackout aubergine */
|
||
--ctp-mantle: #2c001e; /* Ubuntu top/bottom panel */
|
||
--ctp-base: #f4efea; /* Ambiance window warm off-white */
|
||
--ctp-surface0: #ede8e2;
|
||
--ctp-surface1: #e4dfd8;
|
||
--ctp-surface2: #d8d0c8;
|
||
--ctp-overlay0: #c0b0a0;
|
||
--ctp-overlay1: #a89080;
|
||
--ctp-overlay2: #907870;
|
||
--ctp-text: #3d2b2b; /* warm dark brown — human, not pure black */
|
||
--ctp-subtext1: #5d4e48;
|
||
--ctp-subtext0: #7d6e68;
|
||
/* Ubuntu color spectrum */
|
||
--ctp-mauve: #e95420; /* Ubuntu Orange — the soul of Ubuntu */
|
||
--ctp-lavender: #f06030;
|
||
--ctp-sky: #f07050;
|
||
--ctp-peach: #e95420;
|
||
--ctp-teal: #06989a;
|
||
--ctp-blue: #3465a4;
|
||
--ctp-sapphire: #204a87;
|
||
--ctp-green: #4e9a06; /* Ubuntu success green */
|
||
--ctp-yellow: #c4a000;
|
||
--ctp-pink: #cc1e4a;
|
||
--ctp-flamingo: #a52828;
|
||
--ctp-maroon: #800000;
|
||
--ctp-red: #cc0000;
|
||
--ctp-rosewater: #cc4444;
|
||
|
||
/* ── Semantic tokens ── */
|
||
--bg-app: #f4efea; /* warm Ambiance window */
|
||
--bg-sidebar: #3d1f3d; /* Unity Launcher — dark aubergine */
|
||
--bg-card: #ede8e2;
|
||
--bg-hover: #e4ddd5;
|
||
--bg-player: #2c001e; /* Ubuntu panel — blackest aubergine */
|
||
--bg-glass: rgba(244, 239, 234, 0.94);
|
||
--accent: #e95420; /* Ubuntu Orange */
|
||
--accent-dim: rgba(233, 84, 32, 0.12);
|
||
--accent-glow: rgba(233, 84, 32, 0.30);
|
||
--text-primary: #3d2b2b;
|
||
--text-secondary:#5d4e48;
|
||
--text-muted: #7d6e68;
|
||
--border: #c8b8a8;
|
||
--border-subtle: #ddd5cc;
|
||
--positive: #4e9a06;
|
||
--warning: #c4a000;
|
||
--danger: #cc0000;
|
||
}
|
||
|
||
/* ── App shell: warm Ambiance off-white ── */
|
||
[data-theme='ubuntu-ambiance'] .app-shell {
|
||
background: #f4efea;
|
||
}
|
||
|
||
/* ── Sidebar: Unity Launcher dark aubergine ── */
|
||
[data-theme='ubuntu-ambiance'] .sidebar {
|
||
background: linear-gradient(180deg, #3d1f3d 0%, #2e162e 100%);
|
||
border-right: 1px solid #1a0a1a;
|
||
box-shadow: 2px 0 10px rgba(0, 0, 0, 0.35);
|
||
}
|
||
|
||
/* Sidebar text: light on dark aubergine */
|
||
[data-theme='ubuntu-ambiance'] .sidebar-logo-text,
|
||
[data-theme='ubuntu-ambiance'] .nav-link,
|
||
[data-theme='ubuntu-ambiance'] .sidebar-bottom a,
|
||
[data-theme='ubuntu-ambiance'] .sidebar-bottom button { color: rgba(255, 255, 255, 0.72); }
|
||
|
||
[data-theme='ubuntu-ambiance'] .nav-link:hover {
|
||
background: rgba(255, 255, 255, 0.09);
|
||
color: #ffffff;
|
||
}
|
||
|
||
[data-theme='ubuntu-ambiance'] .nav-link.active {
|
||
background: rgba(233, 84, 32, 0.22);
|
||
color: #ffffff;
|
||
}
|
||
|
||
[data-theme='ubuntu-ambiance'] .nav-link.active::before {
|
||
background: #e95420;
|
||
box-shadow: 0 0 8px rgba(233, 84, 32, 0.60);
|
||
}
|
||
|
||
[data-theme='ubuntu-ambiance'] { --logo-color-start: #ffffff; --logo-color-end: #ffb090; }
|
||
[data-theme='ubuntu-ambiance'] .sidebar-logo-icon { color: #e95420; }
|
||
|
||
/* Sidebar version / muted labels */
|
||
[data-theme='ubuntu-ambiance'] .sidebar-version,
|
||
[data-theme='ubuntu-ambiance'] .update-toast { color: rgba(255, 255, 255, 0.40); }
|
||
|
||
/* ── Player bar: Ubuntu panel — darkest aubergine ── */
|
||
[data-theme='ubuntu-ambiance'] .player-bar {
|
||
background: linear-gradient(180deg, #2c001e 0%, #1a000f 100%);
|
||
border-top: 1px solid #3d0828;
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255, 255, 255, 0.06),
|
||
0 -3px 16px rgba(0, 0, 0, 0.50);
|
||
}
|
||
|
||
/* Player text: light on dark panel */
|
||
[data-theme='ubuntu-ambiance'] .player-track-name {
|
||
color: #ffffff;
|
||
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
|
||
}
|
||
|
||
[data-theme='ubuntu-ambiance'] .player-track-artist {
|
||
color: rgba(255, 255, 255, 0.60);
|
||
opacity: 1;
|
||
}
|
||
|
||
[data-theme='ubuntu-ambiance'] .player-time { color: rgba(255, 255, 255, 0.65); }
|
||
|
||
/* Transport buttons: Ubuntu Orange on dark panel */
|
||
[data-theme='ubuntu-ambiance'] .player-btn,
|
||
[data-theme='ubuntu-ambiance'] .player-btn-primary {
|
||
background: linear-gradient(180deg, #f06030 0%, #e95420 50%, #d44418 100%);
|
||
color: #ffffff;
|
||
border: 1px solid #b83010;
|
||
box-shadow:
|
||
0 2px 6px rgba(0, 0, 0, 0.50),
|
||
inset 0 1px 0 rgba(255, 255, 255, 0.25),
|
||
inset 0 -1px 0 rgba(0, 0, 0, 0.20);
|
||
}
|
||
|
||
[data-theme='ubuntu-ambiance'] .player-btn:hover,
|
||
[data-theme='ubuntu-ambiance'] .player-btn-primary:hover {
|
||
background: linear-gradient(180deg, #f87040 0%, #f06030 50%, #e04828 100%);
|
||
box-shadow:
|
||
0 3px 8px rgba(0, 0, 0, 0.50),
|
||
inset 0 1px 0 rgba(255, 255, 255, 0.30),
|
||
inset 0 -1px 0 rgba(0, 0, 0, 0.15);
|
||
}
|
||
|
||
/* ── Content area buttons: Ambiance GTK style ── */
|
||
[data-theme='ubuntu-ambiance'] .btn {
|
||
background: linear-gradient(180deg, #f0ebe5 0%, #e4dfd8 100%);
|
||
color: #3d2b2b;
|
||
border: 1px solid #b8a898;
|
||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.70), 0 1px 2px rgba(0, 0, 0, 0.15);
|
||
}
|
||
|
||
[data-theme='ubuntu-ambiance'] .btn:hover {
|
||
background: linear-gradient(180deg, #f8f3ed 0%, #ede8e2 100%);
|
||
border-color: #a89888;
|
||
}
|
||
|
||
[data-theme='ubuntu-ambiance'] .btn-primary {
|
||
background: linear-gradient(180deg, #f06030 0%, #e95420 100%);
|
||
color: #ffffff;
|
||
border: 1px solid #b83010;
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255, 255, 255, 0.22),
|
||
0 1px 3px rgba(0, 0, 0, 0.25),
|
||
0 0 0 0px rgba(233, 84, 32, 0);
|
||
}
|
||
|
||
[data-theme='ubuntu-ambiance'] .btn-primary:hover {
|
||
background: linear-gradient(180deg, #f87040 0%, #f06030 100%);
|
||
}
|
||
|
||
/* ── Content header: warm Ambiance title band ── */
|
||
[data-theme='ubuntu-ambiance'] .content-header {
|
||
background: linear-gradient(180deg, rgba(244, 239, 234, 1) 0%, rgba(237, 232, 226, 0.60) 100%);
|
||
border-bottom: 1px solid #c8b8a8;
|
||
}
|
||
|
||
/* ── Cards / panels ── */
|
||
[data-theme='ubuntu-ambiance'] .glass,
|
||
[data-theme='ubuntu-ambiance'] .card {
|
||
background: rgba(237, 232, 226, 0.88);
|
||
border: 1px solid #c8b8a8;
|
||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.60), 0 1px 4px rgba(0, 0, 0, 0.10);
|
||
}
|
||
|
||
/* ── Hover / active states: orange accent ── */
|
||
[data-theme='ubuntu-ambiance'] .track-row:hover,
|
||
[data-theme='ubuntu-ambiance'] .track-row.context-active {
|
||
background: rgba(233, 84, 32, 0.07);
|
||
box-shadow: inset 3px 0 0 #e95420;
|
||
}
|
||
|
||
[data-theme='ubuntu-ambiance'] .queue-item:hover,
|
||
[data-theme='ubuntu-ambiance'] .queue-item.context-active {
|
||
background: rgba(233, 84, 32, 0.07);
|
||
}
|
||
|
||
[data-theme='ubuntu-ambiance'] .queue-item.active {
|
||
background: rgba(233, 84, 32, 0.12);
|
||
border-left: 2px solid #e95420;
|
||
}
|
||
|
||
[data-theme='ubuntu-ambiance'] .np-queue-item.active { background: rgba(233, 84, 32, 0.08); }
|
||
[data-theme='ubuntu-ambiance'] .np-queue-item-active { color: #e95420; }
|
||
[data-theme='ubuntu-ambiance'] .np-queue-item:hover,
|
||
[data-theme='ubuntu-ambiance'] .np-queue-item.context-active { background: rgba(233, 84, 32, 0.06); }
|
||
|
||
[data-theme='ubuntu-ambiance'] .np-album-track.active .np-album-track-title,
|
||
[data-theme='ubuntu-ambiance'] .np-album-track.active .np-album-track-num { color: #e95420; }
|
||
|
||
[data-theme='ubuntu-ambiance'] .artist-row:hover { background: rgba(233, 84, 32, 0.06); box-shadow: inset 3px 0 0 #e95420; }
|
||
[data-theme='ubuntu-ambiance'] .playlist-row:hover { background: rgba(233, 84, 32, 0.06); box-shadow: inset 3px 0 0 #e95420; }
|
||
|
||
[data-theme='ubuntu-ambiance'] .settings-tab:hover { background: rgba(233, 84, 32, 0.08); color: #e95420; }
|
||
[data-theme='ubuntu-ambiance'] .settings-tab.active { background: rgba(233, 84, 32, 0.14); color: #e95420; border-color: #e95420; }
|
||
[data-theme='ubuntu-ambiance'] .queue-tab-btn:hover { background: rgba(233, 84, 32, 0.08); color: #e95420; }
|
||
|
||
[data-theme='ubuntu-ambiance'] .custom-select-trigger:hover { background: rgba(233, 84, 32, 0.07); }
|
||
[data-theme='ubuntu-ambiance'] .custom-select-option:hover { background: rgba(233, 84, 32, 0.10); }
|
||
|
||
[data-theme='ubuntu-ambiance'] .artist-ext-link:hover { background: rgba(233, 84, 32, 0.09); border-color: #e95420; }
|
||
|
||
/* Queue panel on dark player area */
|
||
[data-theme='ubuntu-ambiance'] .queue-round-btn.active { color: #ffffff; }
|
||
|
||
/* Connection indicators: warm muted on light bg */
|
||
[data-theme='ubuntu-ambiance'] .connection-type,
|
||
[data-theme='ubuntu-ambiance'] .connection-server { color: #907860; }
|
||
|
||
/* ── Album chip: opaque orange pill so it reads on both dark hero and light bg ── */
|
||
[data-theme='ubuntu-ambiance'] .badge,
|
||
[data-theme='ubuntu-ambiance'] .album-detail-badge {
|
||
background: #e95420;
|
||
color: #ffffff;
|
||
}
|
||
|
||
/* ── Queue panel: on dark aubergine bg — all text must be light ── */
|
||
/* Header + toolbar sit on --bg-app (light) — fine as-is */
|
||
/* List, meta box, divider sit on --bg-sidebar (dark aubergine) */
|
||
|
||
[data-theme='ubuntu-ambiance'] .queue-item-title { color: rgba(255, 255, 255, 0.88); }
|
||
[data-theme='ubuntu-ambiance'] .queue-item-artist,
|
||
[data-theme='ubuntu-ambiance'] .queue-item-duration { color: rgba(255, 255, 255, 0.52); }
|
||
|
||
[data-theme='ubuntu-ambiance'] .queue-item.active .queue-item-artist,
|
||
[data-theme='ubuntu-ambiance'] .queue-item.active .queue-item-duration { color: rgba(255, 255, 255, 0.72); }
|
||
|
||
[data-theme='ubuntu-ambiance'] .queue-divider span { color: rgba(255, 255, 255, 0.40) !important; }
|
||
|
||
/* Meta box (current track info) on dark aubergine */
|
||
[data-theme='ubuntu-ambiance'] .queue-current-info h3 { color: rgba(255, 255, 255, 0.92); }
|
||
[data-theme='ubuntu-ambiance'] .queue-current-sub { color: rgba(255, 255, 255, 0.55); }
|
||
[data-theme='ubuntu-ambiance'] .queue-current-cover .fallback { color: rgba(255, 255, 255, 0.35); }
|
||
|
||
/* Tabs sit on dark bg too */
|
||
[data-theme='ubuntu-ambiance'] .queue-tab-btn { color: rgba(255, 255, 255, 0.60); }
|
||
[data-theme='ubuntu-ambiance'] .queue-tab-btn:hover { background: rgba(255, 255, 255, 0.08); color: rgba(255, 255, 255, 0.90); }
|
||
[data-theme='ubuntu-ambiance'] .queue-tab-btn.active { color: #e95420; }
|
||
|
||
/* Action buttons in header (on light --bg-app) */
|
||
[data-theme='ubuntu-ambiance'] .queue-action-btn { color: #7d6e68; }
|
||
[data-theme='ubuntu-ambiance'] .queue-action-btn:hover:not(:disabled) { color: #3d2b2b; }
|
||
|
||
/* ─────────────────────────────────────────── */
|
||
|
||
/* ─── Windows 10 — Fluent Design Light ─── */
|
||
/* Clean flat white + the iconic near-black taskbar + Windows blue #0078D4 */
|
||
[data-theme='w10'] {
|
||
color-scheme: light;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23767676%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* ── Palette — Windows 10 neutral + Fluent blue ── */
|
||
--ctp-crust: #1c1c1c; /* taskbar near-black */
|
||
--ctp-mantle: #2b2b2b;
|
||
--ctp-base: #ffffff; /* window white */
|
||
--ctp-surface0: #f3f3f3; /* nav pane / secondary bg */
|
||
--ctp-surface1: #ebebeb;
|
||
--ctp-surface2: #d6d6d6; /* borders, dividers */
|
||
--ctp-overlay0: #767676; /* muted / disabled */
|
||
--ctp-overlay1: #4a4a4a;
|
||
--ctp-overlay2: #2b2b2b;
|
||
--ctp-text: #000000; /* primary text — true black */
|
||
--ctp-subtext1: #1b1b1b;
|
||
--ctp-subtext0: #5d5d5d;
|
||
/* Windows Fluent blue spectrum */
|
||
--ctp-mauve: #0078d4; /* Windows blue — THE accent */
|
||
--ctp-lavender: #2e95d3;
|
||
--ctp-sky: #cce4f7; /* selection highlight */
|
||
--ctp-teal: #008272;
|
||
--ctp-blue: #0063b1;
|
||
--ctp-sapphire: #003e92;
|
||
--ctp-green: #107c10;
|
||
--ctp-yellow: #ffb900;
|
||
--ctp-peach: #d83b01;
|
||
--ctp-pink: #e3008c;
|
||
--ctp-flamingo: #c239b3;
|
||
--ctp-rosewater: #ef6950;
|
||
--ctp-maroon: #a80000;
|
||
--ctp-red: #d13438;
|
||
|
||
/* ── Semantic tokens ── */
|
||
--bg-app: #ffffff;
|
||
--bg-sidebar: #f3f3f3;
|
||
--bg-card: #ffffff;
|
||
--bg-hover: #e8e8e8;
|
||
--bg-player: #1c1c1c; /* taskbar */
|
||
--bg-glass: rgba(255, 255, 255, 0.90);
|
||
--accent: #0078d4;
|
||
--accent-dim: rgba(0, 120, 212, 0.10);
|
||
--accent-glow: rgba(0, 120, 212, 0.28);
|
||
--text-primary: #000000;
|
||
--text-secondary:#1b1b1b;
|
||
--text-muted: #767676;
|
||
--border: #d6d6d6;
|
||
--border-subtle: #ebebeb;
|
||
--positive: #107c10;
|
||
--warning: #ffb900;
|
||
--danger: #d13438;
|
||
--radius-sm: 2px;
|
||
--radius-md: 4px;
|
||
--radius-lg: 6px;
|
||
/* Waveform: Windows blue progress */
|
||
--waveform-played: #0078d4;
|
||
--waveform-buffered: #80bbea;
|
||
--waveform-unplayed: #d6d6d6;
|
||
}
|
||
|
||
/* ── App shell: W10 desktop — clean off-white ── */
|
||
[data-theme='w10'] .app-shell {
|
||
background: #f3f3f3;
|
||
}
|
||
|
||
/* ── Sidebar: W10 Navigation Pane — flat light gray ── */
|
||
[data-theme='w10'] .sidebar {
|
||
background: #f3f3f3;
|
||
border-right: 1px solid #d6d6d6;
|
||
box-shadow: none;
|
||
}
|
||
|
||
/* Nav links: dark on light pane */
|
||
[data-theme='w10'] .nav-link { color: #1b1b1b; }
|
||
[data-theme='w10'] .nav-link:hover {
|
||
background: rgba(0, 0, 0, 0.06);
|
||
color: #000000;
|
||
}
|
||
[data-theme='w10'] .nav-link.active {
|
||
background: rgba(0, 120, 212, 0.10);
|
||
color: #0078d4;
|
||
}
|
||
[data-theme='w10'] .nav-link.active::before {
|
||
background: #0078d4;
|
||
box-shadow: none;
|
||
}
|
||
|
||
/* ── Player bar: W10 Taskbar — near-black flat + accent stripe ── */
|
||
[data-theme='w10'] .player-bar {
|
||
background: #1c1c1c;
|
||
border-top: 2px solid #0078d4;
|
||
box-shadow: 0 -2px 16px rgba(0, 0, 0, 0.50);
|
||
}
|
||
|
||
/* Player text: white on dark taskbar */
|
||
[data-theme='w10'] .player-track-name { color: #ffffff; font-weight: 500; }
|
||
[data-theme='w10'] .player-track-artist { color: rgba(255, 255, 255, 0.65); opacity: 1; }
|
||
[data-theme='w10'] .player-time { color: rgba(255, 255, 255, 0.60); }
|
||
|
||
/* Transport: flat ghosted icons on dark bar */
|
||
[data-theme='w10'] .player-btn {
|
||
color: rgba(255, 255, 255, 0.82);
|
||
background: transparent;
|
||
border: none;
|
||
box-shadow: none;
|
||
}
|
||
[data-theme='w10'] .player-btn:hover {
|
||
color: #ffffff;
|
||
background: rgba(255, 255, 255, 0.12);
|
||
box-shadow: none;
|
||
}
|
||
[data-theme='w10'] .player-btn-primary {
|
||
background: #0078d4;
|
||
color: #ffffff;
|
||
border: none;
|
||
box-shadow: none;
|
||
}
|
||
[data-theme='w10'] .player-btn-primary:hover {
|
||
background: #1684d8;
|
||
box-shadow: none;
|
||
}
|
||
|
||
/* ── Content-area buttons: W10 flat button style ── */
|
||
[data-theme='w10'] .btn {
|
||
background: #ffffff;
|
||
color: #1b1b1b;
|
||
border: 1px solid #d6d6d6;
|
||
border-radius: 4px;
|
||
box-shadow: none;
|
||
}
|
||
[data-theme='w10'] .btn:hover {
|
||
background: #f3f3f3;
|
||
border-color: #767676;
|
||
box-shadow: none;
|
||
}
|
||
[data-theme='w10'] .btn-primary {
|
||
background: #0078d4;
|
||
color: #ffffff;
|
||
border: 1px solid transparent;
|
||
box-shadow: none;
|
||
}
|
||
[data-theme='w10'] .btn-primary:hover {
|
||
background: #006cbd;
|
||
box-shadow: none;
|
||
}
|
||
[data-theme='w10'] .btn-ghost {
|
||
background: transparent;
|
||
border-color: transparent;
|
||
color: #1b1b1b;
|
||
}
|
||
[data-theme='w10'] .btn-ghost:hover {
|
||
background: rgba(0, 0, 0, 0.06);
|
||
border-color: transparent;
|
||
}
|
||
[data-theme='w10'] .btn-surface {
|
||
background: #ffffff;
|
||
color: #1b1b1b;
|
||
border: 1px solid #d6d6d6;
|
||
}
|
||
[data-theme='w10'] .btn-surface:hover {
|
||
background: #f3f3f3;
|
||
border-color: #767676;
|
||
}
|
||
|
||
/* Cards: white, flat border, very subtle lift */
|
||
[data-theme='w10'] .glass,
|
||
[data-theme='w10'] .card {
|
||
background: #ffffff;
|
||
border: 1px solid #d6d6d6;
|
||
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
|
||
}
|
||
|
||
/* Content header */
|
||
[data-theme='w10'] .content-header {
|
||
background: rgba(255, 255, 255, 0.92);
|
||
border-bottom: 1px solid #d6d6d6;
|
||
}
|
||
|
||
/* Album badge: Windows blue */
|
||
[data-theme='w10'] .badge,
|
||
[data-theme='w10'] .album-detail-badge {
|
||
background: #0078d4;
|
||
color: #ffffff;
|
||
}
|
||
|
||
/* ── Hover / active states ── */
|
||
[data-theme='w10'] .track-row:hover,
|
||
[data-theme='w10'] .track-row.context-active {
|
||
background: rgba(0, 120, 212, 0.06);
|
||
box-shadow: inset 3px 0 0 #0078d4;
|
||
}
|
||
[data-theme='w10'] .queue-item:hover,
|
||
[data-theme='w10'] .queue-item.context-active { background: rgba(0, 120, 212, 0.07); }
|
||
[data-theme='w10'] .queue-item.active {
|
||
background: rgba(0, 120, 212, 0.10);
|
||
border-left: 2px solid #0078d4;
|
||
}
|
||
[data-theme='w10'] .np-queue-item.active { background: rgba(0, 120, 212, 0.08); }
|
||
[data-theme='w10'] .np-queue-item-active { color: #0078d4; }
|
||
[data-theme='w10'] .np-queue-item:hover,
|
||
[data-theme='w10'] .np-queue-item.context-active { background: rgba(0, 120, 212, 0.05); }
|
||
[data-theme='w10'] .np-album-track.active .np-album-track-title,
|
||
[data-theme='w10'] .np-album-track.active .np-album-track-num { color: #0078d4; }
|
||
[data-theme='w10'] .artist-row:hover { background: rgba(0, 120, 212, 0.06); box-shadow: inset 3px 0 0 #0078d4; }
|
||
[data-theme='w10'] .playlist-row:hover { background: rgba(0, 120, 212, 0.06); box-shadow: inset 3px 0 0 #0078d4; }
|
||
[data-theme='w10'] .settings-tab:hover { background: rgba(0, 0, 0, 0.05); color: #0078d4; }
|
||
[data-theme='w10'] .settings-tab.active { background: rgba(0, 120, 212, 0.10); color: #0078d4; border-color: #0078d4; }
|
||
[data-theme='w10'] .queue-tab-btn:hover { background: rgba(0, 0, 0, 0.05); color: #0078d4; }
|
||
[data-theme='w10'] .custom-select-trigger:hover { background: rgba(0, 0, 0, 0.05); }
|
||
[data-theme='w10'] .custom-select-option:hover { background: rgba(0, 120, 212, 0.08); }
|
||
[data-theme='w10'] .artist-ext-link:hover { background: rgba(0, 120, 212, 0.08); border-color: #0078d4; }
|
||
|
||
/* Connection info: readable on light sidebar */
|
||
[data-theme='w10'] .connection-type,
|
||
[data-theme='w10'] .connection-server { color: #5d5d5d; }
|
||
|
||
/* ─────────────────────────────────────────── */
|
||
|
||
/* ─── Windows Vista — Aero Glass ─── */
|
||
/* Pure CSS glass illusion: layered gradients + strategic box-shadows, no backdrop-filter */
|
||
[data-theme='wista'] {
|
||
color-scheme: light;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%234870a8%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* ── Palette ── */
|
||
--ctp-crust: #010308;
|
||
--ctp-mantle: #050b1a;
|
||
--ctp-base: #eef3fc; /* Vista window interior — ice blue-white */
|
||
--ctp-surface0: #e2ecf8;
|
||
--ctp-surface1: #d5e4f5;
|
||
--ctp-surface2: #c5d8f0;
|
||
--ctp-overlay0: #a8c4e0;
|
||
--ctp-overlay1: #88a8cc;
|
||
--ctp-overlay2: #6888b0;
|
||
--ctp-text: #0d1d3c; /* deep navy — readable on ice bg */
|
||
--ctp-subtext1: #2a4878;
|
||
--ctp-subtext0: #4870a8;
|
||
/* Vista Aero blue spectrum */
|
||
--ctp-mauve: #1565c8; /* Vista Aero blue — THE accent */
|
||
--ctp-lavender: #2880e0;
|
||
--ctp-sky: #5aaaf8; /* selection/highlight blue */
|
||
--ctp-teal: #1890b8;
|
||
--ctp-blue: #0e50a8;
|
||
--ctp-sapphire: #0848a0;
|
||
--ctp-green: #1a8020;
|
||
--ctp-yellow: #c8980c;
|
||
--ctp-peach: #d06818;
|
||
--ctp-pink: #c03878;
|
||
--ctp-flamingo: #a82860;
|
||
--ctp-rosewater: #c04848;
|
||
--ctp-maroon: #903030;
|
||
--ctp-red: #c02020;
|
||
|
||
/* ── Semantic tokens ── */
|
||
--bg-app: #eef3fc;
|
||
--bg-sidebar: #0e1e3e; /* deep navy glass — Vista nav pane in dark mode */
|
||
--bg-card: #e2ecf8;
|
||
--bg-hover: rgba(21, 101, 200, 0.09);
|
||
--bg-player: #050810; /* Vista taskbar — black glass */
|
||
--bg-glass: rgba(238, 243, 252, 0.94);
|
||
--accent: #1565c8;
|
||
--accent-dim: rgba(21, 101, 200, 0.12);
|
||
--accent-glow: rgba(21, 101, 200, 0.40);
|
||
--text-primary: #0d1d3c;
|
||
--text-secondary:#2a4878;
|
||
--text-muted: #4870a8;
|
||
--border: rgba(100, 160, 220, 0.45);
|
||
--border-subtle: rgba(140, 190, 240, 0.30);
|
||
--positive: #1a8020;
|
||
--warning: #c8980c;
|
||
--danger: #c02020;
|
||
--radius-sm: 3px;
|
||
--radius-md: 6px;
|
||
--radius-lg: 10px;
|
||
/* Waveform: Vista blue progress bar */
|
||
--waveform-played: #1565c8;
|
||
--waveform-buffered: #5aaaf8;
|
||
--waveform-unplayed: #c5d8f0;
|
||
}
|
||
|
||
/* ── App shell: Vista desktop — soft blue gradient ── */
|
||
[data-theme='wista'] .app-shell {
|
||
background: linear-gradient(160deg, #dce8f8 0%, #e5eefa 50%, #eef3fc 100%);
|
||
}
|
||
|
||
/* ── Sidebar: Aero glass nav pane ──
|
||
Three layers: 1) top specular reflection, 2) deep navy base, 3) edge highlight via box-shadow */
|
||
[data-theme='wista'] .sidebar {
|
||
background:
|
||
linear-gradient(180deg,
|
||
rgba(255, 255, 255, 0.22) 0%,
|
||
rgba(255, 255, 255, 0.08) 20%,
|
||
rgba(255, 255, 255, 0.00) 55%,
|
||
rgba(0, 20, 60, 0.12) 100%
|
||
),
|
||
linear-gradient(180deg, #1a3368 0%, #0e1e3e 45%, #0a1830 100%);
|
||
border-right: 1px solid rgba(120, 180, 255, 0.55);
|
||
box-shadow:
|
||
inset -1px 0 0 rgba(255, 255, 255, 0.28),
|
||
inset 1px 0 0 rgba(255, 255, 255, 0.10),
|
||
2px 0 18px rgba(0, 0, 0, 0.40);
|
||
}
|
||
|
||
/* Sidebar text: light on dark glass */
|
||
[data-theme='wista'] .nav-link { color: rgba(210, 228, 255, 0.72); }
|
||
[data-theme='wista'] .nav-link:hover {
|
||
background: rgba(255, 255, 255, 0.11);
|
||
color: #ffffff;
|
||
}
|
||
[data-theme='wista'] .nav-link.active {
|
||
background: rgba(21, 101, 200, 0.38);
|
||
color: #ffffff;
|
||
}
|
||
[data-theme='wista'] .nav-link.active::before {
|
||
background: #5aaaf8;
|
||
box-shadow: 0 0 10px rgba(90, 170, 248, 0.85);
|
||
}
|
||
[data-theme='wista'] .sidebar-logo-text,
|
||
[data-theme='wista'] .sidebar-bottom a,
|
||
[data-theme='wista'] .sidebar-bottom button { color: rgba(210, 228, 255, 0.70); }
|
||
[data-theme='wista'] { --logo-color-start: #ffffff; --logo-color-end: #a8ccff; }
|
||
[data-theme='wista'] .sidebar-version { color: rgba(210, 228, 255, 0.35); }
|
||
|
||
/* ── Player bar: Vista Aero taskbar ──
|
||
Black glass + intense blue glow on top border — the most iconic Vista element */
|
||
[data-theme='wista'] .player-bar {
|
||
background:
|
||
linear-gradient(180deg,
|
||
rgba(255, 255, 255, 0.07) 0%,
|
||
rgba(255, 255, 255, 0.00) 18%,
|
||
rgba(0, 0, 0, 0.00) 82%,
|
||
rgba(0, 0, 0, 0.18) 100%
|
||
),
|
||
linear-gradient(180deg, #0c1828 0%, #050810 100%);
|
||
border-top: 1px solid rgba(80, 155, 255, 0.70);
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(140, 200, 255, 0.55),
|
||
inset 0 2px 0 rgba(255, 255, 255, 0.14),
|
||
0 -4px 24px rgba(0, 0, 0, 0.70);
|
||
}
|
||
|
||
/* Player text: white on black glass */
|
||
[data-theme='wista'] .player-track-name {
|
||
color: #ffffff;
|
||
text-shadow: 0 0 12px rgba(100, 170, 255, 0.65), 0 1px 2px rgba(0, 0, 0, 0.60);
|
||
font-weight: 600;
|
||
}
|
||
[data-theme='wista'] .player-track-artist { color: #88b8e8; opacity: 1; }
|
||
[data-theme='wista'] .player-time { color: #88b8e8; }
|
||
|
||
/* ── Transport buttons: Vista glass orbs ──
|
||
Top half: white → ice-blue reflection | Bottom half: royal blue deep — the iconic split */
|
||
[data-theme='wista'] .player-btn,
|
||
[data-theme='wista'] .player-btn-primary {
|
||
background: linear-gradient(180deg,
|
||
#daeeff 0%,
|
||
#b8d8ff 44%,
|
||
#3a91f8 50%,
|
||
#0f58d7 100%
|
||
);
|
||
color: #ffffff;
|
||
border: 1px solid rgba(10, 65, 180, 0.70);
|
||
border-radius: 50%;
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255, 255, 255, 0.75),
|
||
0 2px 8px rgba(0, 0, 0, 0.50),
|
||
0 0 0 1px rgba(80, 140, 255, 0.20);
|
||
}
|
||
[data-theme='wista'] .player-btn:hover,
|
||
[data-theme='wista'] .player-btn-primary:hover {
|
||
background: linear-gradient(180deg,
|
||
#e8f4ff 0%,
|
||
#c8e4ff 44%,
|
||
#58a8ff 50%,
|
||
#2070e8 100%
|
||
);
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255, 255, 255, 0.80),
|
||
0 3px 12px rgba(0, 0, 0, 0.50),
|
||
0 0 16px rgba(80, 150, 255, 0.35);
|
||
}
|
||
|
||
/* ── Content-area buttons: Vista dialog glass ── */
|
||
[data-theme='wista'] .btn {
|
||
background: linear-gradient(180deg,
|
||
rgba(255, 255, 255, 0.98) 0%,
|
||
rgba(238, 248, 255, 0.95) 44%,
|
||
rgba(195, 222, 248, 0.90) 50%,
|
||
rgba(168, 205, 240, 0.85) 100%
|
||
);
|
||
color: #0d1d3c;
|
||
border: 1px solid rgba(100, 160, 220, 0.68);
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255, 255, 255, 0.90),
|
||
0 1px 3px rgba(0, 0, 0, 0.18);
|
||
}
|
||
[data-theme='wista'] .btn:hover {
|
||
background: linear-gradient(180deg,
|
||
rgba(255, 255, 255, 1.00) 0%,
|
||
rgba(245, 252, 255, 0.98) 44%,
|
||
rgba(210, 233, 255, 0.95) 50%,
|
||
rgba(180, 220, 252, 0.92) 100%
|
||
);
|
||
border-color: rgba(80, 140, 220, 0.80);
|
||
}
|
||
[data-theme='wista'] .btn-primary {
|
||
background: linear-gradient(180deg,
|
||
rgba(255, 255, 255, 0.95) 0%,
|
||
rgba(190, 222, 255, 0.92) 44%,
|
||
rgba(48, 130, 240, 0.96) 50%,
|
||
rgba(15, 78, 210, 0.99) 100%
|
||
);
|
||
color: #ffffff;
|
||
border: 1px solid rgba(10, 60, 180, 0.72);
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255, 255, 255, 0.88),
|
||
0 1px 4px rgba(0, 0, 0, 0.28),
|
||
0 0 8px rgba(21, 101, 200, 0.22);
|
||
}
|
||
[data-theme='wista'] .btn-primary:hover {
|
||
background: linear-gradient(180deg,
|
||
rgba(255, 255, 255, 1.00) 0%,
|
||
rgba(210, 235, 255, 0.95) 44%,
|
||
rgba(68, 148, 255, 0.97) 50%,
|
||
rgba(30, 95, 225, 1.00) 100%
|
||
);
|
||
}
|
||
|
||
/* ── Cards/panels: Vista frosted glass panel ── */
|
||
[data-theme='wista'] .glass,
|
||
[data-theme='wista'] .card {
|
||
background: linear-gradient(180deg,
|
||
rgba(255, 255, 255, 0.88) 0%,
|
||
rgba(225, 240, 255, 0.82) 100%
|
||
);
|
||
border: 1px solid rgba(130, 182, 232, 0.60);
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255, 255, 255, 0.92),
|
||
0 2px 8px rgba(21, 101, 200, 0.10);
|
||
}
|
||
|
||
/* ── Content header: Vista titlebar / toolbar band ── */
|
||
[data-theme='wista'] .content-header {
|
||
background: linear-gradient(180deg,
|
||
rgba(255, 255, 255, 0.92) 0%,
|
||
rgba(232, 245, 255, 0.72) 100%
|
||
);
|
||
border-bottom: 1px solid rgba(150, 198, 238, 0.65);
|
||
box-shadow: 0 1px 4px rgba(21, 101, 200, 0.10);
|
||
}
|
||
|
||
/* ── Album badge: Vista blue pill ── */
|
||
[data-theme='wista'] .badge,
|
||
[data-theme='wista'] .album-detail-badge {
|
||
background: #1565c8;
|
||
color: #ffffff;
|
||
}
|
||
|
||
/* ── Scrollbar: Vista light-blue style ── */
|
||
[data-theme='wista'] ::-webkit-scrollbar-track { background: #d5e4f5; }
|
||
[data-theme='wista'] ::-webkit-scrollbar-thumb { background: linear-gradient(180deg, #90b8e0 0%, #6898c8 100%); border-radius: 4px; }
|
||
[data-theme='wista'] ::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, #a8ccf0 0%, #80a8e0 100%); }
|
||
|
||
/* ── Hover / active states: Vista selection blue ── */
|
||
[data-theme='wista'] .track-row:hover,
|
||
[data-theme='wista'] .track-row.context-active {
|
||
background: rgba(21, 101, 200, 0.08);
|
||
box-shadow: inset 3px 0 0 #1565c8;
|
||
}
|
||
|
||
[data-theme='wista'] .queue-item:hover,
|
||
[data-theme='wista'] .queue-item.context-active { background: rgba(90, 170, 248, 0.18); }
|
||
|
||
[data-theme='wista'] .queue-item.active {
|
||
background: rgba(21, 101, 200, 0.28);
|
||
border-left: 2px solid #5aaaf8;
|
||
}
|
||
|
||
[data-theme='wista'] .np-queue-item.active { background: rgba(21, 101, 200, 0.10); }
|
||
[data-theme='wista'] .np-queue-item-active { color: #1565c8; }
|
||
[data-theme='wista'] .np-queue-item:hover,
|
||
[data-theme='wista'] .np-queue-item.context-active { background: rgba(21, 101, 200, 0.07); }
|
||
|
||
[data-theme='wista'] .np-album-track.active .np-album-track-title,
|
||
[data-theme='wista'] .np-album-track.active .np-album-track-num { color: #1565c8; }
|
||
|
||
[data-theme='wista'] .artist-row:hover { background: rgba(21, 101, 200, 0.07); box-shadow: inset 3px 0 0 #1565c8; }
|
||
[data-theme='wista'] .playlist-row:hover { background: rgba(21, 101, 200, 0.07); box-shadow: inset 3px 0 0 #1565c8; }
|
||
|
||
[data-theme='wista'] .settings-tab:hover { background: rgba(21, 101, 200, 0.08); color: #1565c8; }
|
||
[data-theme='wista'] .settings-tab.active { background: rgba(21, 101, 200, 0.14); color: #1565c8; border-color: #1565c8; }
|
||
[data-theme='wista'] .queue-tab-btn:hover { background: rgba(21, 101, 200, 0.08); color: #1565c8; }
|
||
|
||
[data-theme='wista'] .custom-select-trigger:hover { background: rgba(21, 101, 200, 0.08); }
|
||
[data-theme='wista'] .custom-select-option:hover { background: rgba(21, 101, 200, 0.12); }
|
||
|
||
[data-theme='wista'] .artist-ext-link:hover { background: rgba(21, 101, 200, 0.10); border-color: #1565c8; }
|
||
|
||
/* ── Queue: dark glass sidebar → light text ── */
|
||
[data-theme='wista'] .queue-item-title { color: rgba(210, 228, 255, 0.90); }
|
||
[data-theme='wista'] .queue-item-artist,
|
||
[data-theme='wista'] .queue-item-duration { color: rgba(170, 205, 250, 0.55); }
|
||
|
||
[data-theme='wista'] .queue-item.active .queue-item-artist,
|
||
[data-theme='wista'] .queue-item.active .queue-item-duration { color: rgba(190, 218, 255, 0.75); }
|
||
|
||
[data-theme='wista'] .queue-divider span { color: rgba(180, 210, 255, 0.38) !important; }
|
||
|
||
[data-theme='wista'] .queue-current-info h3 { color: rgba(220, 235, 255, 0.92); }
|
||
[data-theme='wista'] .queue-current-sub { color: rgba(180, 210, 252, 0.58); }
|
||
|
||
[data-theme='wista'] .queue-tab-btn { color: rgba(200, 220, 255, 0.62); }
|
||
[data-theme='wista'] .queue-tab-btn.active { color: #5aaaf8; }
|
||
|
||
[data-theme='wista'] .queue-round-btn.active { color: #050810; }
|
||
|
||
/* Connection indicators: muted Vista blue on light bg */
|
||
[data-theme='wista'] .connection-type,
|
||
[data-theme='wista'] .connection-server { color: #6090b8; }
|
||
|
||
/* ─────────────────────────────────────────── */
|
||
|
||
[data-theme='aqua-quartz'] {
|
||
color-scheme: light;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23666666%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
--ctp-crust: #b0b8c8;
|
||
--ctp-mantle: #c8d0e0;
|
||
--ctp-base: #e8e8e8;
|
||
--ctp-surface0: #f4f4f4;
|
||
--ctp-surface1: #ececec;
|
||
--ctp-surface2: #e0e0e0;
|
||
--ctp-overlay0: #888888;
|
||
--ctp-overlay1: #666666;
|
||
--ctp-overlay2: #444444;
|
||
--ctp-text: #111111;
|
||
--ctp-subtext1: #333333;
|
||
--ctp-subtext0: #555555;
|
||
|
||
--ctp-mauve: #3165c4;
|
||
--ctp-lavender: #6699dd;
|
||
--ctp-green: #28c941;
|
||
--ctp-teal: #17a2b8;
|
||
--ctp-sky: #5ac8fa;
|
||
--ctp-blue: #2060c0;
|
||
--ctp-sapphire: #1a4fa0;
|
||
--ctp-pink: #ff2d55;
|
||
--ctp-flamingo: #ff3b30;
|
||
--ctp-rosewater:#ffcc00;
|
||
--ctp-yellow: #ffcc00;
|
||
--ctp-peach: #ff9500;
|
||
--ctp-maroon: #af52de;
|
||
--ctp-red: #ff3b30;
|
||
|
||
/* Aluminium app bg, blue sidebar token (overridden below) */
|
||
--bg-app: #e8e8e8;
|
||
--bg-sidebar: #5a7ab8;
|
||
--bg-card: #f4f4f4;
|
||
--bg-hover: rgba(49, 101, 196, 0.12);
|
||
--bg-player: #c0c0c0;
|
||
--bg-glass: rgba(232, 232, 232, 0.85);
|
||
|
||
--accent: #3165c4;
|
||
--accent-dim: rgba(49, 101, 196, 0.15);
|
||
--accent-glow: rgba(49, 101, 196, 0.45);
|
||
--volume-accent: #3165c4;
|
||
|
||
--text-primary: #111111;
|
||
--text-secondary:#333333;
|
||
--text-muted: #777777;
|
||
|
||
--border: #a0a0a0;
|
||
--border-subtle: #cccccc;
|
||
|
||
--radius-sm: 4px;
|
||
--radius-md: 10px;
|
||
--radius-lg: 16px;
|
||
--radius-xl: 20px;
|
||
--radius-full: 999px;
|
||
}
|
||
|
||
/* Aluminium pinstripe background */
|
||
[data-theme='aqua-quartz'] .app-shell {
|
||
background: #e8e8e8;
|
||
}
|
||
|
||
/* Iconic Aqua blue Source List sidebar */
|
||
[data-theme='aqua-quartz'] .sidebar {
|
||
background: linear-gradient(to bottom, #7090c8 0%, #5a78b8 35%, #4a68a8 70%, #4060a0 100%);
|
||
border-right: 1px solid #3a5590;
|
||
}
|
||
|
||
/* White text/icons in sidebar */
|
||
[data-theme='aqua-quartz'] .sidebar,
|
||
[data-theme='aqua-quartz'] .nav-link,
|
||
[data-theme='aqua-quartz'] .sidebar-logo-text,
|
||
[data-theme='aqua-quartz'] .sidebar-section-label,
|
||
[data-theme='aqua-quartz'] .nav-section-label {
|
||
color: rgba(255, 255, 255, 0.9) !important;
|
||
}
|
||
|
||
[data-theme='aqua-quartz'] .nav-link {
|
||
color: rgba(255, 255, 255, 0.85) !important;
|
||
}
|
||
|
||
[data-theme='aqua-quartz'] .nav-link:hover {
|
||
background: rgba(255, 255, 255, 0.15) !important;
|
||
color: #ffffff !important;
|
||
}
|
||
|
||
/* Active nav: white pill with blue-tinted text */
|
||
[data-theme='aqua-quartz'] .nav-link.active {
|
||
background: linear-gradient(to bottom, rgba(255,255,255,0.95), rgba(240,245,255,0.9)) !important;
|
||
color: #1a4a9c !important;
|
||
border-radius: var(--radius-full) !important;
|
||
box-shadow: 0 1px 3px rgba(0,0,0,0.25), inset 0 1px 0 rgba(255,255,255,0.9);
|
||
}
|
||
|
||
[data-theme='aqua-quartz'] .nav-link.active svg {
|
||
color: #1a4a9c !important;
|
||
}
|
||
|
||
/* Brushed aluminum player bar */
|
||
[data-theme='aqua-quartz'] .player-bar {
|
||
background: linear-gradient(
|
||
to bottom,
|
||
#d8d8d8 0%,
|
||
#d0d0d0 15%,
|
||
#c0c0c0 50%,
|
||
#b4b4b4 85%,
|
||
#acacac 100%
|
||
);
|
||
border-top: 1px solid #909090;
|
||
box-shadow: 0 -1px 0 rgba(255,255,255,0.6) inset;
|
||
}
|
||
|
||
[data-theme='aqua-quartz'] .player-track-name,
|
||
[data-theme='aqua-quartz'] .player-track-artist,
|
||
[data-theme='aqua-quartz'] .player-time {
|
||
color: #111111 !important;
|
||
}
|
||
|
||
/* All buttons get rounded pill shape */
|
||
[data-theme='aqua-quartz'] .btn {
|
||
border-radius: var(--radius-full) !important;
|
||
}
|
||
|
||
/* Aluminium jelly — secondary/surface/ghost buttons */
|
||
[data-theme='aqua-quartz'] .btn-surface,
|
||
[data-theme='aqua-quartz'] .btn-ghost {
|
||
background: linear-gradient(
|
||
to bottom,
|
||
rgba(255,255,255,0.95) 0%,
|
||
#ececec 20%,
|
||
#d4d4d4 48%,
|
||
#c4c4c4 52%,
|
||
#d0d0d0 80%,
|
||
#e0e0e0 100%
|
||
) !important;
|
||
border: 1px solid #909090 !important;
|
||
box-shadow: 0 2px 4px rgba(0,0,0,0.18), inset 0 1px 0 rgba(255,255,255,0.85);
|
||
color: #111111 !important;
|
||
text-shadow: 0 1px 0 rgba(255,255,255,0.6);
|
||
}
|
||
|
||
[data-theme='aqua-quartz'] .btn-surface:hover,
|
||
[data-theme='aqua-quartz'] .btn-ghost:hover {
|
||
filter: brightness(1.05);
|
||
box-shadow: 0 2px 6px rgba(0,0,0,0.22), inset 0 1px 0 rgba(255,255,255,0.85);
|
||
background: linear-gradient(
|
||
to bottom,
|
||
rgba(255,255,255,0.95) 0%,
|
||
#f0f0f0 20%,
|
||
#dadada 48%,
|
||
#cacaca 52%,
|
||
#d6d6d6 80%,
|
||
#e4e4e4 100%
|
||
) !important;
|
||
}
|
||
|
||
/* Authentic Aqua blue jelly — primary buttons */
|
||
[data-theme='aqua-quartz'] .btn-primary,
|
||
[data-theme='aqua-quartz'] .player-btn-primary {
|
||
background: linear-gradient(
|
||
to bottom,
|
||
rgba(255,255,255,0.95) 0%,
|
||
rgba(160,195,255,0.9) 20%,
|
||
#3165c4 48%,
|
||
#1a4aaa 52%,
|
||
#2555bb 75%,
|
||
#4a7ad4 100%
|
||
) !important;
|
||
border: 1px solid #1040a0 !important;
|
||
border-radius: var(--radius-full) !important;
|
||
box-shadow: 0 2px 8px rgba(49, 101, 196, 0.5), inset 0 1px 0 rgba(255,255,255,0.7);
|
||
color: white !important;
|
||
text-shadow: 0 1px 1px rgba(0,0,0,0.4);
|
||
}
|
||
|
||
[data-theme='aqua-quartz'] .btn-primary:hover,
|
||
[data-theme='aqua-quartz'] .player-btn-primary:hover {
|
||
filter: brightness(1.08);
|
||
box-shadow: 0 3px 12px rgba(49, 101, 196, 0.6), inset 0 1px 0 rgba(255,255,255,0.7);
|
||
}
|
||
|
||
/* Aqua progress/seek track + fill */
|
||
[data-theme='aqua-quartz'] .progress-bar-track {
|
||
background: linear-gradient(to bottom, #b0b0b0, #d0d0d0);
|
||
box-shadow: inset 0 1px 2px rgba(0,0,0,0.25);
|
||
}
|
||
|
||
[data-theme='aqua-quartz'] .progress-bar-fill {
|
||
background: linear-gradient(
|
||
to bottom,
|
||
rgba(255,255,255,0.85) 0%,
|
||
#6699ee 25%,
|
||
#3165c4 55%,
|
||
#1a4aaa 56%,
|
||
#4070cc 100%
|
||
);
|
||
box-shadow: 0 0 6px rgba(49, 101, 196, 0.5);
|
||
border-radius: 999px;
|
||
}
|
||
|
||
/* Cards with subtle aluminium feel */
|
||
[data-theme='aqua-quartz'] .card {
|
||
background: #f4f4f4;
|
||
border: 1px solid #c0c0c0;
|
||
box-shadow: 0 1px 4px rgba(0,0,0,0.1), inset 0 1px 0 rgba(255,255,255,0.9);
|
||
}
|
||
|
||
/* Queue / panels on light aluminium bg */
|
||
[data-theme='aqua-quartz'] .queue-panel,
|
||
[data-theme='aqua-quartz'] .queue-header {
|
||
background: #e8e8e8;
|
||
color: #111111;
|
||
}
|
||
|
||
[data-theme='aqua-quartz'] .queue-item {
|
||
color: #111111;
|
||
}
|
||
|
||
[data-theme='aqua-quartz'] .queue-item-artist,
|
||
[data-theme='aqua-quartz'] .queue-item-sub {
|
||
color: #555555;
|
||
}
|
||
|
||
/* Queue round toolbar buttons — aluminium jelly */
|
||
[data-theme='aqua-quartz'] .queue-round-btn {
|
||
background: linear-gradient(to bottom, rgba(255,255,255,0.95) 0%, #ececec 20%, #d4d4d4 48%, #c4c4c4 52%, #d0d0d0 100%);
|
||
border: 1px solid #909090;
|
||
box-shadow: 0 2px 4px rgba(0,0,0,0.18), inset 0 1px 0 rgba(255,255,255,0.85);
|
||
color: #333333;
|
||
}
|
||
|
||
[data-theme='aqua-quartz'] .queue-round-btn:hover:not(:disabled) {
|
||
background: linear-gradient(to bottom, rgba(255,255,255,0.95) 0%, #f0f0f0 20%, #dadada 48%, #cacaca 52%, #d6d6d6 100%);
|
||
color: #111111;
|
||
box-shadow: 0 2px 6px rgba(0,0,0,0.22), inset 0 1px 0 rgba(255,255,255,0.85);
|
||
}
|
||
|
||
[data-theme='aqua-quartz'] .queue-round-btn.active {
|
||
background: linear-gradient(to bottom, rgba(255,255,255,0.95) 0%, rgba(160,195,255,0.9) 20%, #3165c4 48%, #1a4aaa 52%, #4a7ad4 100%);
|
||
border: 1px solid #1040a0;
|
||
color: #ffffff;
|
||
box-shadow: 0 2px 8px rgba(49,101,196,0.5), inset 0 1px 0 rgba(255,255,255,0.7);
|
||
}
|
||
|
||
/* Hero play button — blue jelly */
|
||
[data-theme='aqua-quartz'] .hero-play-btn {
|
||
background: linear-gradient(to bottom, rgba(255,255,255,0.95) 0%, rgba(160,195,255,0.9) 20%, #3165c4 48%, #1a4aaa 52%, #2555bb 75%, #4a7ad4 100%);
|
||
border: 1px solid #1040a0;
|
||
border-radius: var(--radius-full);
|
||
box-shadow: 0 2px 8px rgba(49,101,196,0.5), inset 0 1px 0 rgba(255,255,255,0.7);
|
||
color: white;
|
||
text-shadow: 0 1px 1px rgba(0,0,0,0.4);
|
||
transition: filter var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
|
||
}
|
||
|
||
[data-theme='aqua-quartz'] .hero-play-btn:hover {
|
||
background: linear-gradient(to bottom, rgba(255,255,255,0.98) 0%, rgba(185,215,255,0.95) 20%, #3a72d8 48%, #2058c0 52%, #2d62cc 75%, #5585e0 100%);
|
||
filter: brightness(1.08);
|
||
box-shadow: 0 3px 12px rgba(49,101,196,0.6), inset 0 1px 0 rgba(255,255,255,0.7);
|
||
transform: scale(1.02);
|
||
}
|
||
|
||
/* Album card hover play button — blue jelly */
|
||
[data-theme='aqua-quartz'] .album-card-details-btn {
|
||
background: linear-gradient(to bottom, rgba(255,255,255,0.95) 0%, rgba(160,195,255,0.9) 20%, #3165c4 48%, #1a4aaa 52%, #4a7ad4 100%);
|
||
border: 1px solid #1040a0;
|
||
box-shadow: 0 3px 10px rgba(49,101,196,0.5), inset 0 1px 0 rgba(255,255,255,0.7);
|
||
color: white;
|
||
text-shadow: 0 1px 1px rgba(0,0,0,0.4);
|
||
}
|
||
|
||
/* ─── Spider-Tech — Spider-Man ─── */
|
||
[data-theme='spider-tech'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23E62429%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* Palette — suit red, night-sky navy, web black */
|
||
--ctp-crust: #060408;
|
||
--ctp-mantle: #0a0610;
|
||
--ctp-base: #0e0c18;
|
||
--ctp-surface0: #181428;
|
||
--ctp-surface1: #241e3a;
|
||
--ctp-surface2: #302848;
|
||
--ctp-overlay0: #4a3e68;
|
||
--ctp-overlay1: #6a5888;
|
||
--ctp-overlay2: #9080a8;
|
||
--ctp-text: #f0ecf8;
|
||
--ctp-subtext1: #d0c8e0;
|
||
--ctp-subtext0: #a898c0;
|
||
--ctp-mauve: #E62429;
|
||
--ctp-lavender: #ff4a50;
|
||
--ctp-pink: #ff4a50;
|
||
--ctp-flamingo: #cc1a1f;
|
||
--ctp-rosewater:#f0ecf8;
|
||
--ctp-green: #4adf80;
|
||
--ctp-teal: #3ab8d0;
|
||
--ctp-sky: #4a88ff;
|
||
--ctp-blue: #1e52c8;
|
||
--ctp-sapphire: #1e52c8;
|
||
--ctp-yellow: #f0c030;
|
||
--ctp-peach: #E62429;
|
||
--ctp-maroon: #8b0010;
|
||
--ctp-red: #E62429;
|
||
|
||
--bg-app: #0e0c18;
|
||
--bg-sidebar: #0a0610;
|
||
--bg-card: #181428;
|
||
--bg-hover: #241e3a;
|
||
--bg-player: #060408;
|
||
--bg-glass: rgba(10, 6, 16, 0.92);
|
||
--accent: #E62429;
|
||
--accent-dim: rgba(230, 36, 41, 0.14);
|
||
--accent-glow: rgba(230, 36, 41, 0.38);
|
||
--text-primary: #f0ecf8;
|
||
--text-secondary:#9080a8;
|
||
--text-muted: #a898c0;
|
||
--border: rgba(230, 36, 41, 0.18);
|
||
--border-subtle: rgba(230, 36, 41, 0.08);
|
||
--border-dropdown: rgba(230, 36, 41, 0.30);
|
||
--shadow-dropdown: rgba(0, 0, 0, 0.92);
|
||
--positive: #4adf80;
|
||
--warning: #f0c030;
|
||
--danger: #E62429;
|
||
--radius-sm: 2px;
|
||
--radius-md: 4px;
|
||
--radius-lg: 6px;
|
||
}
|
||
|
||
/* App shell — Into the Spider-Verse comic halftone dots */
|
||
[data-theme='spider-tech'] .app-shell {
|
||
background-image: radial-gradient(
|
||
circle,
|
||
rgba(230, 36, 41, 0.055) 1px,
|
||
transparent 1px
|
||
);
|
||
background-size: 14px 14px;
|
||
}
|
||
|
||
/* Sidebar — CSS spider web radiating from top-left corner */
|
||
[data-theme='spider-tech'] .sidebar {
|
||
background: #080510;
|
||
border-right: 1px solid rgba(230, 36, 41, 0.22);
|
||
background-image:
|
||
repeating-radial-gradient(
|
||
circle at 0% 0%,
|
||
transparent 0px,
|
||
transparent 38px,
|
||
rgba(230, 36, 41, 0.10) 39px,
|
||
rgba(230, 36, 41, 0.10) 40px
|
||
),
|
||
repeating-conic-gradient(
|
||
from 0deg at 0% 0%,
|
||
transparent 0deg,
|
||
transparent 19deg,
|
||
rgba(230, 36, 41, 0.07) 19deg,
|
||
rgba(230, 36, 41, 0.07) 20deg
|
||
);
|
||
}
|
||
|
||
/* Player bar — deep black with red suit border + glow */
|
||
[data-theme='spider-tech'] .player-bar {
|
||
background: #060408;
|
||
border-top: 2px solid #E62429;
|
||
box-shadow: 0 -6px 28px rgba(230, 36, 41, 0.20), 0 -1px 0 rgba(0,0,0,0.9);
|
||
}
|
||
|
||
/* Track name — Spider-Man red, bold */
|
||
[data-theme='spider-tech'] .player-track-name {
|
||
color: #E62429;
|
||
font-weight: 700;
|
||
text-shadow: 0 0 10px rgba(230,36,41,0.45), 0 0 24px rgba(230,36,41,0.20);
|
||
}
|
||
|
||
/* Artist name — Spider suit blue */
|
||
[data-theme='spider-tech'] .player-artist-name {
|
||
color: #4a88ff;
|
||
}
|
||
|
||
/* Nav active — red left bar */
|
||
[data-theme='spider-tech'] .nav-link.active {
|
||
background: linear-gradient(90deg, rgba(230,36,41,0.18) 0%, transparent 100%);
|
||
border-left: 3px solid #E62429;
|
||
color: #E62429;
|
||
}
|
||
|
||
[data-theme='spider-tech'] .nav-link:hover:not(.active) {
|
||
background: linear-gradient(90deg, rgba(230,36,41,0.08) 0%, transparent 100%);
|
||
border-left: 3px solid rgba(230,36,41,0.35);
|
||
}
|
||
|
||
/* Content header */
|
||
[data-theme='spider-tech'] .content-header {
|
||
border-bottom: 1px solid rgba(230,36,41,0.14);
|
||
}
|
||
|
||
/* Cards — red border glow on hover */
|
||
[data-theme='spider-tech'] .album-card:hover,
|
||
[data-theme='spider-tech'] .artist-card:hover {
|
||
box-shadow: 0 0 0 1px rgba(230,36,41,0.55), 0 4px 20px rgba(230,36,41,0.16);
|
||
}
|
||
|
||
/* Track / queue rows */
|
||
[data-theme='spider-tech'] .track-row:hover,
|
||
[data-theme='spider-tech'] .queue-item:hover {
|
||
box-shadow: inset 2px 0 0 #E62429;
|
||
background: rgba(230,36,41,0.06);
|
||
}
|
||
|
||
/* Primary play button — suit red */
|
||
[data-theme='spider-tech'] .player-btn-primary {
|
||
background: linear-gradient(180deg, #ff4a50 0%, #E62429 50%, #b81820 100%);
|
||
color: #ffffff;
|
||
box-shadow: 0 0 16px rgba(230,36,41,0.50);
|
||
border: 1px solid #9c1018;
|
||
}
|
||
|
||
[data-theme='spider-tech'] .player-btn-primary:hover {
|
||
background: linear-gradient(180deg, #ff6065 0%, #f03035 50%, #cc2025 100%);
|
||
box-shadow: 0 0 26px rgba(230,36,41,0.72);
|
||
}
|
||
|
||
/* btn-primary */
|
||
[data-theme='spider-tech'] .btn-primary {
|
||
background: linear-gradient(180deg, #ff4a50 0%, #E62429 50%, #b81820 100%);
|
||
color: #ffffff;
|
||
border: 1px solid #9c1018;
|
||
}
|
||
|
||
[data-theme='spider-tech'] .btn-primary:hover {
|
||
background: linear-gradient(180deg, #ff6065 0%, #f03035 50%, #cc2025 100%);
|
||
}
|
||
|
||
/* Hero play button */
|
||
[data-theme='spider-tech'] .hero-play-btn {
|
||
background: linear-gradient(180deg, #ff4a50 0%, #E62429 50%, #b81820 100%);
|
||
color: #ffffff;
|
||
border: 1px solid #9c1018;
|
||
box-shadow: 0 2px 16px rgba(230,36,41,0.50);
|
||
transition: filter var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
|
||
}
|
||
|
||
[data-theme='spider-tech'] .hero-play-btn:hover {
|
||
background: linear-gradient(180deg, #ff6065 0%, #f03035 50%, #cc2025 100%);
|
||
box-shadow: 0 4px 26px rgba(230,36,41,0.72);
|
||
transform: scale(1.02);
|
||
}
|
||
|
||
/* Album card overlay button */
|
||
[data-theme='spider-tech'] .album-card-details-btn {
|
||
background: linear-gradient(180deg, #ff4a50 0%, #E62429 50%, #b81820 100%);
|
||
color: #ffffff;
|
||
border: 1px solid #9c1018;
|
||
box-shadow: 0 2px 12px rgba(230,36,41,0.45);
|
||
}
|
||
|
||
/* Scrollbar — dark with red thumb */
|
||
[data-theme='spider-tech'] ::-webkit-scrollbar { width: 5px; height: 5px; }
|
||
|
||
[data-theme='spider-tech'] ::-webkit-scrollbar-track {
|
||
background: #0a0610;
|
||
}
|
||
|
||
[data-theme='spider-tech'] ::-webkit-scrollbar-thumb {
|
||
background: rgba(230,36,41,0.40);
|
||
border-radius: 3px;
|
||
}
|
||
|
||
[data-theme='spider-tech'] ::-webkit-scrollbar-thumb:hover {
|
||
background: #E62429;
|
||
}
|
||
|
||
/* ── Jayfin (Mediaplayer) ─────────────────────────────────────── */
|
||
[data-theme='jayfin'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23AA5CC3%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* ── Jellyfin Palette ── */
|
||
--ctp-crust: #050505;
|
||
--ctp-mantle: #0c0c0c;
|
||
--ctp-base: #141414;
|
||
--ctp-surface0: #1e1e1e;
|
||
--ctp-surface1: #282828;
|
||
--ctp-surface2: #333333;
|
||
--ctp-overlay0: #505050;
|
||
--ctp-overlay1: #787878;
|
||
--ctp-overlay2: #a8a8a8;
|
||
--ctp-text: #ffffff;
|
||
--ctp-subtext1: #e8e8e8;
|
||
--ctp-subtext0: #c0c0c0;
|
||
|
||
/* Jellyfin Lila als Hauptakzent, Cyan als Sekundärfarbe */
|
||
--ctp-mauve: #AA5CC3;
|
||
--ctp-lavender: #bf7ed4;
|
||
--ctp-green: #2ed573;
|
||
--ctp-teal: #00c8dc;
|
||
--ctp-sky: #00A4DC;
|
||
--ctp-blue: #0088cc;
|
||
--ctp-sapphire: #0060a0;
|
||
--ctp-pink: #c070d8;
|
||
--ctp-flamingo: #d488e8;
|
||
--ctp-rosewater:#e8b8f8;
|
||
--ctp-yellow: #ffd060;
|
||
--ctp-peach: #ff9500;
|
||
--ctp-maroon: #cc3355;
|
||
--ctp-red: #ff4444;
|
||
|
||
/* ── Semantische Tokens ── */
|
||
--bg-app: #141414;
|
||
--bg-sidebar: #0c0c0c;
|
||
--bg-card: #1e1e1e;
|
||
--bg-hover: rgba(170, 92, 195, 0.1);
|
||
--bg-player: #050505;
|
||
--bg-glass: rgba(14, 14, 14, 0.88);
|
||
|
||
--accent: #AA5CC3;
|
||
--accent-dim: rgba(170, 92, 195, 0.15);
|
||
--accent-glow: rgba(170, 92, 195, 0.4);
|
||
--volume-accent: #AA5CC3;
|
||
|
||
--text-primary: #ffffff;
|
||
--text-secondary:#c8c8c8;
|
||
--text-muted: #888888;
|
||
|
||
--border: #2a2a2a;
|
||
--border-subtle: #1e1e1e;
|
||
|
||
--positive: #2ed573;
|
||
--warning: #ffd060;
|
||
--danger: #ff4444;
|
||
|
||
--radius-sm: 4px;
|
||
--radius-md: 6px;
|
||
--radius-lg: 10px;
|
||
--radius-xl: 14px;
|
||
--radius-full: 999px;
|
||
}
|
||
|
||
/* Sidebar mit dezenter Tiefe */
|
||
[data-theme='jayfin'] .sidebar {
|
||
background: #0c0c0c;
|
||
border-right: 1px solid #1e1e1e;
|
||
}
|
||
|
||
/* Aktiver Nav-Link: Lila-Akzent mit linkem Balken */
|
||
[data-theme='jayfin'] .nav-link.active {
|
||
background: rgba(170, 92, 195, 0.12);
|
||
color: #AA5CC3;
|
||
border-left: 3px solid #AA5CC3;
|
||
}
|
||
|
||
[data-theme='jayfin'] .nav-link.active svg {
|
||
color: #AA5CC3;
|
||
}
|
||
|
||
/* Player Bar: tiefes Schwarz mit Jellyfin-Brand-Gradient als Oberkante */
|
||
[data-theme='jayfin'] .player-bar {
|
||
background: #050505;
|
||
border-top: 2px solid transparent;
|
||
border-image: linear-gradient(to right, #00A4DC, #AA5CC3) 1;
|
||
box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.6);
|
||
}
|
||
|
||
/* Progress fill: Gradient Cyan → Lila */
|
||
[data-theme='jayfin'] .progress-bar-fill {
|
||
background: linear-gradient(to right, #00A4DC 0%, #AA5CC3 100%);
|
||
box-shadow: 0 0 8px rgba(170, 92, 195, 0.5);
|
||
}
|
||
|
||
/* Cards */
|
||
[data-theme='jayfin'] .card {
|
||
background: #1e1e1e;
|
||
border: 1px solid #2a2a2a;
|
||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
|
||
}
|
||
|
||
/* Btn-primary: Jellyfin Lila */
|
||
[data-theme='jayfin'] .btn-primary,
|
||
[data-theme='jayfin'] .player-btn-primary,
|
||
[data-theme='jayfin'] .hero-play-btn {
|
||
background: #AA5CC3;
|
||
color: #ffffff;
|
||
border: none;
|
||
box-shadow: 0 2px 12px rgba(170, 92, 195, 0.35);
|
||
}
|
||
|
||
[data-theme='jayfin'] .btn-primary:hover,
|
||
[data-theme='jayfin'] .player-btn-primary:hover,
|
||
[data-theme='jayfin'] .hero-play-btn:hover {
|
||
background: #be70d8;
|
||
box-shadow: 0 4px 18px rgba(170, 92, 195, 0.5);
|
||
filter: none;
|
||
}
|
||
|
||
/* Album card hover play button */
|
||
[data-theme='jayfin'] .album-card-details-btn {
|
||
background: #AA5CC3;
|
||
color: #ffffff;
|
||
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5);
|
||
}
|
||
|
||
[data-theme='jayfin'] .album-card-details-btn:hover {
|
||
background: #be70d8;
|
||
}
|
||
|
||
/* Queue round buttons */
|
||
[data-theme='jayfin'] .queue-round-btn.active {
|
||
background: #AA5CC3;
|
||
color: #ffffff;
|
||
box-shadow: 0 0 10px rgba(170, 92, 195, 0.4);
|
||
}
|
||
|
||
/* Connection indicators: schwarz auf warmem Grau */
|
||
[data-theme='w98'] .connection-type,
|
||
[data-theme='w98'] .connection-server { color: #000000; }
|
||
|
||
/* ─── MS-DOS ─── */
|
||
@keyframes dos-blink {
|
||
0%, 49% { opacity: 1; }
|
||
50%, 100% { opacity: 0; }
|
||
}
|
||
|
||
[data-theme='dos'] {
|
||
color-scheme: dark;
|
||
font-family: 'Courier New', Courier, 'Lucida Console', monospace;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23AAAAAA%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* Pure ANSI color palette */
|
||
--ctp-crust: #000000;
|
||
--ctp-mantle: #000080;
|
||
--ctp-base: #0000AA;
|
||
--ctp-surface0: #000080;
|
||
--ctp-surface1: #0000AA;
|
||
--ctp-surface2: #0000CC;
|
||
--ctp-overlay0: #8888AA;
|
||
--ctp-overlay1: #BBBBCC;
|
||
--ctp-overlay2: #E8E8E8;
|
||
--ctp-text: #E8E8E8;
|
||
--ctp-subtext1: #BBBBCC;
|
||
--ctp-subtext0: #8888AA;
|
||
--ctp-mauve: #FF55FF;
|
||
--ctp-lavender: #FF55FF;
|
||
--ctp-pink: #FF55FF;
|
||
--ctp-flamingo: #FF5555;
|
||
--ctp-rosewater:#FFFFFF;
|
||
--ctp-green: #55FF55;
|
||
--ctp-teal: #55FFFF;
|
||
--ctp-sky: #55FFFF;
|
||
--ctp-blue: #5555FF;
|
||
--ctp-sapphire: #5555FF;
|
||
--ctp-yellow: #FFFF55;
|
||
--ctp-peach: #FF5555;
|
||
--ctp-maroon: #AA0000;
|
||
--ctp-red: #FF5555;
|
||
|
||
--bg-app: #0000AA;
|
||
--bg-sidebar: #000080;
|
||
--bg-card: #000080;
|
||
--bg-hover: rgba(170, 170, 170, 0.15);
|
||
--bg-player: #000000;
|
||
--bg-glass: rgba(0, 0, 128, 0.95);
|
||
--accent: #FFFF55;
|
||
--accent-dim: rgba(255, 255, 85, 0.15);
|
||
--accent-glow: rgba(255, 255, 85, 0.3);
|
||
--text-primary: #E8E8E8;
|
||
--text-secondary:#BBBBCC;
|
||
--text-muted: #8888AA;
|
||
--border: #AAAAAA;
|
||
--border-subtle: #4444AA;
|
||
--border-dropdown: #AAAAAA;
|
||
--shadow-dropdown: rgba(0, 0, 0, 0.95);
|
||
--positive: #55FF55;
|
||
--warning: #FFFF55;
|
||
--danger: #FF5555;
|
||
/* Square everything — no rounded corners in DOS */
|
||
--radius-sm: 0px;
|
||
--radius-md: 0px;
|
||
--radius-lg: 0px;
|
||
--radius-full: 0px;
|
||
}
|
||
|
||
/* Monospace override — html inherits to most elements; form controls need explicit override */
|
||
[data-theme='dos'] button,
|
||
[data-theme='dos'] input,
|
||
[data-theme='dos'] textarea,
|
||
[data-theme='dos'] select {
|
||
font-family: 'Courier New', Courier, 'Lucida Console', monospace;
|
||
}
|
||
|
||
/* Sidebar — dark navy with CRT scanlines, thick grey right border like a DOS panel edge */
|
||
[data-theme='dos'] .sidebar {
|
||
background-color: #000080;
|
||
background-image: repeating-linear-gradient(
|
||
0deg,
|
||
rgba(0, 0, 0, 0.20) 0px,
|
||
rgba(0, 0, 0, 0.20) 1px,
|
||
transparent 1px,
|
||
transparent 3px
|
||
);
|
||
border-right: 2px solid #AAAAAA;
|
||
}
|
||
|
||
/* Active nav — classic DOS inverted selection */
|
||
[data-theme='dos'] .nav-link.active {
|
||
background: #AAAAAA;
|
||
color: #000080;
|
||
border-left: none;
|
||
font-weight: 700;
|
||
}
|
||
|
||
[data-theme='dos'] .nav-link:hover:not(.active) {
|
||
background: rgba(170, 170, 170, 0.18);
|
||
color: #FFFF55;
|
||
}
|
||
|
||
/* Player bar — pure black, the C:\> command prompt */
|
||
[data-theme='dos'] .player-bar {
|
||
background-color: #000000;
|
||
background-image: repeating-linear-gradient(
|
||
0deg,
|
||
rgba(0, 0, 0, 0.20) 0px,
|
||
rgba(0, 0, 0, 0.20) 1px,
|
||
transparent 1px,
|
||
transparent 3px
|
||
);
|
||
border-top: 2px solid #AAAAAA;
|
||
box-shadow: none;
|
||
}
|
||
|
||
/* Track name — bright yellow with blinking block cursor */
|
||
[data-theme='dos'] .player-track-name {
|
||
color: #FFFF55;
|
||
text-shadow: none;
|
||
}
|
||
|
||
[data-theme='dos'] .player-track-name::after {
|
||
content: '\258B';
|
||
animation: dos-blink 1s step-end infinite;
|
||
margin-left: 3px;
|
||
font-size: 0.8em;
|
||
vertical-align: baseline;
|
||
}
|
||
|
||
/* Artist name — bright cyan (ANSI 11) */
|
||
[data-theme='dos'] .player-artist-name {
|
||
color: #55FFFF;
|
||
}
|
||
|
||
/* Content header — simple grey border, no ornate gradient */
|
||
[data-theme='dos'] .content-header {
|
||
border-bottom: 1px solid #AAAAAA;
|
||
}
|
||
|
||
/* Album/artist cards — flat navy panels with grey border */
|
||
[data-theme='dos'] .album-card,
|
||
[data-theme='dos'] .artist-card {
|
||
background: #000080;
|
||
border: 1px solid #AAAAAA;
|
||
box-shadow: none;
|
||
}
|
||
|
||
[data-theme='dos'] .album-card:hover,
|
||
[data-theme='dos'] .artist-card:hover {
|
||
background: #0000AA;
|
||
border-color: #FFFFFF;
|
||
box-shadow: none;
|
||
}
|
||
|
||
/* Track / queue row hover — inverted DOS selection */
|
||
[data-theme='dos'] .track-row:hover,
|
||
[data-theme='dos'] .queue-item:hover {
|
||
background: #AAAAAA !important;
|
||
color: #000080;
|
||
box-shadow: none;
|
||
}
|
||
|
||
/* Primary play button — flat grey, sharp, DOS dialog style */
|
||
[data-theme='dos'] .player-btn-primary {
|
||
background: #AAAAAA;
|
||
color: #000000;
|
||
border: 2px solid #FFFFFF;
|
||
box-shadow: none;
|
||
}
|
||
|
||
[data-theme='dos'] .player-btn-primary:hover {
|
||
background: #FFFFFF;
|
||
color: #000000;
|
||
box-shadow: none;
|
||
transform: none;
|
||
}
|
||
|
||
/* btn-primary — uppercase DOS dialog button */
|
||
[data-theme='dos'] .btn-primary {
|
||
background: #AAAAAA;
|
||
color: #000000;
|
||
border: 1px solid #FFFFFF;
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.06em;
|
||
box-shadow: none;
|
||
}
|
||
|
||
[data-theme='dos'] .btn-primary:hover {
|
||
background: #FFFFFF;
|
||
color: #000000;
|
||
box-shadow: none;
|
||
}
|
||
|
||
/* btn-surface */
|
||
[data-theme='dos'] .btn-surface,
|
||
[data-theme='dos'] .btn {
|
||
border: 1px solid #AAAAAA;
|
||
box-shadow: none;
|
||
}
|
||
|
||
/* Hero play button */
|
||
[data-theme='dos'] .hero-play-btn {
|
||
background: #AAAAAA;
|
||
color: #000000;
|
||
border: 2px solid #FFFFFF;
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.08em;
|
||
box-shadow: none;
|
||
transition: background var(--transition-fast), color var(--transition-fast);
|
||
}
|
||
|
||
[data-theme='dos'] .hero-play-btn:hover {
|
||
background: #FFFFFF;
|
||
color: #000000;
|
||
transform: none;
|
||
filter: none;
|
||
box-shadow: none;
|
||
}
|
||
|
||
/* Album card overlay play button */
|
||
[data-theme='dos'] .album-card-details-btn {
|
||
background: #AAAAAA;
|
||
color: #000000;
|
||
border: 2px solid #FFFFFF;
|
||
box-shadow: none;
|
||
}
|
||
|
||
[data-theme='dos'] .album-card-details-btn:hover {
|
||
background: #FFFFFF;
|
||
color: #000000;
|
||
}
|
||
|
||
/* Queue round buttons — square in DOS */
|
||
[data-theme='dos'] .queue-round-btn {
|
||
border: 1px solid #AAAAAA;
|
||
box-shadow: none;
|
||
}
|
||
|
||
[data-theme='dos'] .queue-round-btn.active {
|
||
background: #AAAAAA;
|
||
color: #000000;
|
||
border-color: #FFFFFF;
|
||
box-shadow: none;
|
||
}
|
||
|
||
/* Input fields */
|
||
[data-theme='dos'] input,
|
||
[data-theme='dos'] textarea {
|
||
background: #000080;
|
||
border: 1px solid #AAAAAA;
|
||
border-radius: 0;
|
||
}
|
||
|
||
[data-theme='dos'] input:focus,
|
||
[data-theme='dos'] textarea:focus {
|
||
border-color: #FFFF55;
|
||
outline: none;
|
||
box-shadow: none;
|
||
}
|
||
|
||
/* Scrollbar — wide 16px DOS style with sharp thumb */
|
||
[data-theme='dos'] ::-webkit-scrollbar {
|
||
width: 16px;
|
||
height: 16px;
|
||
}
|
||
|
||
[data-theme='dos'] ::-webkit-scrollbar-track {
|
||
background: #000080;
|
||
border-left: 1px solid #AAAAAA;
|
||
}
|
||
|
||
[data-theme='dos'] ::-webkit-scrollbar-thumb {
|
||
background: #AAAAAA;
|
||
border-radius: 0;
|
||
border: 1px solid #FFFFFF;
|
||
}
|
||
|
||
[data-theme='dos'] ::-webkit-scrollbar-thumb:hover {
|
||
background: #FFFFFF;
|
||
}
|
||
|
||
|
||
/* ─── Unix Shell ─── */
|
||
@keyframes unix-cursor-blink {
|
||
0%, 49% { opacity: 1; }
|
||
50%, 100% { opacity: 0; }
|
||
}
|
||
|
||
[data-theme='unix'] {
|
||
color-scheme: dark;
|
||
font-family: 'Courier New', Courier, 'Lucida Console', monospace;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%2322C55E%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* ANSI colors mapped to semantic palette */
|
||
--ctp-crust: #000000;
|
||
--ctp-mantle: #0a0a0a;
|
||
--ctp-base: #111111;
|
||
--ctp-surface0: #1a1a1a;
|
||
--ctp-surface1: #222222;
|
||
--ctp-surface2: #2e2e2e;
|
||
--ctp-overlay0: #666666;
|
||
--ctp-overlay1: #888888;
|
||
--ctp-overlay2: #AAAAAA;
|
||
--ctp-text: #C8C8C8;
|
||
--ctp-subtext1: #AAAAAA;
|
||
--ctp-subtext0: #888888;
|
||
--ctp-mauve: #C678DD;
|
||
--ctp-lavender: #5588FF;
|
||
--ctp-pink: #E06C75;
|
||
--ctp-flamingo: #FF6B6B;
|
||
--ctp-rosewater:#FFFFFF;
|
||
--ctp-green: #22C55E;
|
||
--ctp-teal: #55FFFF;
|
||
--ctp-sky: #55FFFF;
|
||
--ctp-blue: #5588FF;
|
||
--ctp-sapphire: #5588FF;
|
||
--ctp-yellow: #E5C07B;
|
||
--ctp-peach: #E06C75;
|
||
--ctp-maroon: #AA0000;
|
||
--ctp-red: #E06C75;
|
||
|
||
--bg-app: #000000;
|
||
--bg-sidebar: #0a0a0a;
|
||
--bg-card: #111111;
|
||
--bg-hover: #1a1a1a;
|
||
--bg-player: #000000;
|
||
--bg-glass: rgba(0, 0, 0, 0.92);
|
||
--accent: #22C55E;
|
||
--accent-dim: rgba(34, 197, 94, 0.10);
|
||
--accent-glow: rgba(34, 197, 94, 0.25);
|
||
--text-primary: #C8C8C8;
|
||
--text-secondary:#999999;
|
||
--text-muted: #666666;
|
||
--border: #222222;
|
||
--border-subtle: #1a1a1a;
|
||
--border-dropdown: #333333;
|
||
--shadow-dropdown: rgba(0, 0, 0, 0.95);
|
||
--positive: #22C55E;
|
||
--warning: #E5C07B;
|
||
--danger: #E06C75;
|
||
--radius-sm: 0px;
|
||
--radius-md: 0px;
|
||
--radius-lg: 0px;
|
||
--radius-full: 0px;
|
||
}
|
||
|
||
/* Monospace override — html inherits to most elements; form controls need explicit override */
|
||
[data-theme='unix'] button,
|
||
[data-theme='unix'] input,
|
||
[data-theme='unix'] textarea,
|
||
[data-theme='unix'] select {
|
||
font-family: 'Courier New', Courier, 'Lucida Console', monospace;
|
||
}
|
||
|
||
/* Sidebar — slightly off-black, thin separator */
|
||
[data-theme='unix'] .sidebar {
|
||
background: #0a0a0a;
|
||
border-right: 1px solid #222222;
|
||
}
|
||
|
||
/* Nav active — green left bar */
|
||
[data-theme='unix'] .nav-link.active {
|
||
background: rgba(34, 197, 94, 0.10);
|
||
border-left: 2px solid #22C55E;
|
||
color: #22C55E;
|
||
}
|
||
|
||
[data-theme='unix'] .nav-link:hover:not(.active) {
|
||
background: rgba(34, 197, 94, 0.05);
|
||
color: #C8C8C8;
|
||
}
|
||
|
||
/* Player bar — pure black, thin grey separator */
|
||
[data-theme='unix'] .player-bar {
|
||
background-color: #000000;
|
||
background-image: repeating-linear-gradient(
|
||
0deg,
|
||
rgba(0, 0, 0, 0.10) 0px,
|
||
rgba(0, 0, 0, 0.10) 1px,
|
||
transparent 1px,
|
||
transparent 2px
|
||
);
|
||
border-top: 1px solid #222222;
|
||
box-shadow: none;
|
||
}
|
||
|
||
/* Track name — white text, green $ prompt prefix, blinking _ cursor */
|
||
[data-theme='unix'] .player-track-name {
|
||
color: #FFFFFF;
|
||
text-shadow: none;
|
||
}
|
||
|
||
[data-theme='unix'] .player-track-name::before {
|
||
content: '$ ';
|
||
color: #22C55E;
|
||
font-weight: 700;
|
||
}
|
||
|
||
[data-theme='unix'] .player-track-name::after {
|
||
content: '_';
|
||
animation: unix-cursor-blink 1s step-end infinite;
|
||
color: #C8C8C8;
|
||
margin-left: 1px;
|
||
}
|
||
|
||
/* Artist name — ANSI bright blue (ls directory color) */
|
||
[data-theme='unix'] .player-artist-name {
|
||
color: #5588FF;
|
||
}
|
||
|
||
/* Content header — minimal grey rule */
|
||
[data-theme='unix'] .content-header {
|
||
border-bottom: 1px solid #1e1e1e;
|
||
}
|
||
|
||
/* Album/artist cards — dark panel, fine border */
|
||
[data-theme='unix'] .album-card,
|
||
[data-theme='unix'] .artist-card {
|
||
background: #111111;
|
||
border: 1px solid #1e1e1e;
|
||
box-shadow: none;
|
||
}
|
||
|
||
[data-theme='unix'] .album-card:hover,
|
||
[data-theme='unix'] .artist-card:hover {
|
||
background: #1a1a1a;
|
||
border-color: #22C55E;
|
||
box-shadow: none;
|
||
}
|
||
|
||
/* Track / queue row hover — green left accent */
|
||
[data-theme='unix'] .track-row:hover,
|
||
[data-theme='unix'] .queue-item:hover {
|
||
background: rgba(34, 197, 94, 0.06);
|
||
box-shadow: inset 2px 0 0 #22C55E;
|
||
}
|
||
|
||
/* Primary play button — solid green */
|
||
[data-theme='unix'] .player-btn-primary {
|
||
background: #22C55E;
|
||
color: #000000;
|
||
border: none;
|
||
box-shadow: none;
|
||
}
|
||
|
||
[data-theme='unix'] .player-btn-primary:hover {
|
||
background: #16A34A;
|
||
box-shadow: none;
|
||
transform: none;
|
||
}
|
||
|
||
/* btn-primary */
|
||
[data-theme='unix'] .btn-primary {
|
||
background: #22C55E;
|
||
color: #000000;
|
||
border: none;
|
||
box-shadow: none;
|
||
}
|
||
|
||
[data-theme='unix'] .btn-primary:hover {
|
||
background: #16A34A;
|
||
box-shadow: none;
|
||
}
|
||
|
||
/* Hero play button */
|
||
[data-theme='unix'] .hero-play-btn {
|
||
background: #22C55E;
|
||
color: #000000;
|
||
border: none;
|
||
text-transform: lowercase;
|
||
letter-spacing: 0.02em;
|
||
box-shadow: none;
|
||
transition: background var(--transition-fast), transform var(--transition-fast);
|
||
}
|
||
|
||
[data-theme='unix'] .hero-play-btn:hover {
|
||
background: #16A34A;
|
||
transform: scale(1.02);
|
||
filter: none;
|
||
box-shadow: none;
|
||
}
|
||
|
||
/* Album card overlay button */
|
||
[data-theme='unix'] .album-card-details-btn {
|
||
background: #22C55E;
|
||
color: #000000;
|
||
border: none;
|
||
box-shadow: none;
|
||
}
|
||
|
||
[data-theme='unix'] .album-card-details-btn:hover {
|
||
background: #16A34A;
|
||
}
|
||
|
||
/* Queue round buttons */
|
||
[data-theme='unix'] .queue-round-btn {
|
||
border: 1px solid #222222;
|
||
box-shadow: none;
|
||
}
|
||
|
||
[data-theme='unix'] .queue-round-btn.active {
|
||
background: #22C55E;
|
||
color: #000000;
|
||
border-color: #22C55E;
|
||
box-shadow: none;
|
||
}
|
||
|
||
/* Input fields */
|
||
[data-theme='unix'] input,
|
||
[data-theme='unix'] textarea {
|
||
background: #0a0a0a;
|
||
border: 1px solid #222222;
|
||
border-radius: 0;
|
||
}
|
||
|
||
[data-theme='unix'] input:focus,
|
||
[data-theme='unix'] textarea:focus {
|
||
border-color: #22C55E;
|
||
outline: none;
|
||
box-shadow: none;
|
||
}
|
||
|
||
/* Scrollbar — thin 6px, modern terminal style */
|
||
[data-theme='unix'] ::-webkit-scrollbar {
|
||
width: 6px;
|
||
height: 6px;
|
||
}
|
||
|
||
[data-theme='unix'] ::-webkit-scrollbar-track {
|
||
background: #0a0a0a;
|
||
}
|
||
|
||
[data-theme='unix'] ::-webkit-scrollbar-thumb {
|
||
background: #333333;
|
||
border-radius: 0;
|
||
}
|
||
|
||
[data-theme='unix'] ::-webkit-scrollbar-thumb:hover {
|
||
background: #22C55E;
|
||
}
|
||
|
||
/* Connection indicator — server name and Last.fm username */
|
||
[data-theme='unix'] .connection-type,
|
||
[data-theme='unix'] .connection-server { color: #888888; }
|
||
/* Connection indicators + Now Playing username */
|
||
[data-theme='spider-tech'] .connection-type,
|
||
[data-theme='spider-tech'] .connection-server { color: #9080a8; }
|
||
/* Connection indicators */
|
||
[data-theme='dos'] .connection-type,
|
||
[data-theme='dos'] .connection-server { color: #AAAAAA; }
|
||
/* Track row hover — all child text to navy so nothing drowns on grey */
|
||
[data-theme='dos'] .track-row:hover .track-title,
|
||
[data-theme='dos'] .track-row:hover .track-num,
|
||
[data-theme='dos'] .track-row:hover .track-artist,
|
||
[data-theme='dos'] .track-row:hover .track-duration,
|
||
[data-theme='dos'] .track-row:hover .track-codec,
|
||
[data-theme='dos'] .track-row:hover button,
|
||
[data-theme='dos'] .track-row.context-active .track-title,
|
||
[data-theme='dos'] .track-row.context-active .track-num,
|
||
[data-theme='dos'] .track-row.context-active .track-artist,
|
||
[data-theme='dos'] .track-row.context-active .track-duration,
|
||
[data-theme='dos'] .track-row.context-active .track-codec,
|
||
[data-theme='dos'] .track-row.context-active button { color: #000080 !important; background: transparent !important; }
|
||
|
||
/* ═══════════════════════════════════════════════════════════════════
|
||
HORDE — World of Warcraft, Durotar blood-red earth, forge-fire
|
||
═══════════════════════════════════════════════════════════════════ */
|
||
[data-theme='horde'] {
|
||
/* Catppuccin-compatible palette — dark blood-iron */
|
||
--ctp-base: #1a0500;
|
||
--ctp-mantle: #140300;
|
||
--ctp-crust: #0e0200;
|
||
--ctp-surface0: #2e0a02;
|
||
--ctp-surface1: #3e1104;
|
||
--ctp-surface2: #521806;
|
||
--ctp-overlay0: #8a5030;
|
||
--ctp-overlay1: #a06038;
|
||
--ctp-overlay2: #b87048;
|
||
--ctp-subtext0: #c88850;
|
||
--ctp-subtext1: #d89860;
|
||
--ctp-text: #e8d4b8;
|
||
--ctp-lavender: #cc4422;
|
||
--ctp-blue: #cc2200;
|
||
--ctp-sapphire: #aa1800;
|
||
--ctp-sky: #dd3300;
|
||
--ctp-teal: #cc5500;
|
||
--ctp-green: #887722;
|
||
--ctp-yellow: #ffd890;
|
||
--ctp-peach: #ff8844;
|
||
--ctp-maroon: #991100;
|
||
--ctp-red: #cc2200;
|
||
--ctp-mauve: #cc4422;
|
||
--ctp-pink: #dd5533;
|
||
--ctp-flamingo: #ee6644;
|
||
--ctp-rosewater: #ffaa66;
|
||
|
||
/* Semantic tokens */
|
||
--bg-app: #1a0500;
|
||
--bg-sidebar: #110300;
|
||
--bg-player: #120400;
|
||
--bg-card: #2e0a02;
|
||
--bg-card-hover: #3e1104;
|
||
--bg-input: #2e0a02;
|
||
--bg-overlay: rgba(26,5,0,0.92);
|
||
--bg-selection: rgba(204,34,0,0.25);
|
||
--border-subtle: rgba(140,60,20,0.30);
|
||
--border-default: rgba(180,80,30,0.35);
|
||
--border-strong: rgba(220,120,50,0.50);
|
||
--text-primary: #e8d4b8;
|
||
--text-secondary: #c09070;
|
||
--text-muted: #a07848;
|
||
--text-disabled: #5a3820;
|
||
--accent: #cc2200;
|
||
--accent-hover: #e02800;
|
||
--accent-glow: rgba(204,34,0,0.35);
|
||
--accent-subtle: rgba(204,34,0,0.15);
|
||
--danger: #ff4422;
|
||
--success: #887722;
|
||
--warning: #ff8844;
|
||
--nav-active-bg: rgba(204,34,0,0.22);
|
||
--nav-active-text: #ffd890;
|
||
--scrollbar-thumb: rgba(140,50,10,0.60);
|
||
--scrollbar-track: transparent;
|
||
--shadow-card: 0 2px 10px rgba(0,0,0,0.70);
|
||
--shadow-player: 0 -4px 20px rgba(150,30,0,0.25);
|
||
--radius-sm: 4px;
|
||
--radius-md: 8px;
|
||
--radius-lg: 12px;
|
||
--space-1: 4px; --space-2: 8px; --space-3: 12px;
|
||
--space-4: 16px; --space-5: 20px; --space-6: 24px;
|
||
}
|
||
|
||
/* Track name — blood-gold glow, as if lit by forge-fire */
|
||
[data-theme='horde'] .player-track-name,
|
||
[data-theme='horde'] .queue-track-title {
|
||
color: #ffd890;
|
||
text-shadow: 0 0 16px rgba(220,80,0,0.55), 0 0 4px rgba(220,80,0,0.25);
|
||
}
|
||
|
||
/* Sidebar — iron plate lines + subtle red glow on active */
|
||
[data-theme='horde'] .sidebar {
|
||
background-color: #110300;
|
||
background-image: repeating-linear-gradient(
|
||
180deg,
|
||
transparent 0px,
|
||
transparent 39px,
|
||
rgba(100,20,0,0.18) 39px,
|
||
rgba(100,20,0,0.18) 40px
|
||
);
|
||
border-right: 1px solid rgba(140,40,10,0.35);
|
||
}
|
||
|
||
/* Nav active — ember glow */
|
||
[data-theme='horde'] .sidebar-nav-item.active {
|
||
background: rgba(204,34,0,0.20);
|
||
border-left: 3px solid #cc2200;
|
||
box-shadow: inset 0 0 12px rgba(204,34,0,0.10);
|
||
}
|
||
|
||
/* Player bar — forge-fire glow from below */
|
||
[data-theme='horde'] .player-bar {
|
||
background-color: #120400;
|
||
background-image: linear-gradient(to bottom, rgba(80,10,0,0.35), transparent);
|
||
border-top: 1px solid rgba(180,60,20,0.40);
|
||
box-shadow: 0 -4px 24px rgba(150,30,0,0.30);
|
||
}
|
||
|
||
/* App-shell — safe single-pass radial, no repeating */
|
||
[data-theme='horde'] .app-shell {
|
||
background: radial-gradient(ellipse at 65% 110%, rgba(160,25,0,0.18) 0%, transparent 55%);
|
||
}
|
||
|
||
/* Cards — iron-tinted hover */
|
||
[data-theme='horde'] .album-card:hover,
|
||
[data-theme='horde'] .artist-card:hover {
|
||
box-shadow: 0 4px 18px rgba(180,40,0,0.30);
|
||
border-color: rgba(200,60,10,0.50);
|
||
}
|
||
|
||
/* Connection indicators */
|
||
[data-theme='horde'] .connection-type,
|
||
[data-theme='horde'] .connection-server { color: #a07848; }
|
||
|
||
|
||
/* ═══════════════════════════════════════════════════════════════════
|
||
ALLIANCE — World of Warcraft, Stormwind navy, cathedral stone & gold
|
||
═══════════════════════════════════════════════════════════════════ */
|
||
[data-theme='alliance'] {
|
||
/* Catppuccin-compatible palette — deep navy / cathedral stone */
|
||
--ctp-base: #06101e;
|
||
--ctp-mantle: #040c18;
|
||
--ctp-crust: #020810;
|
||
--ctp-surface0: #0c1e34;
|
||
--ctp-surface1: #122440;
|
||
--ctp-surface2: #1a2e50;
|
||
--ctp-overlay0: #506888;
|
||
--ctp-overlay1: #607898;
|
||
--ctp-overlay2: #7088a8;
|
||
--ctp-subtext0: #8098b8;
|
||
--ctp-subtext1: #90a8c8;
|
||
--ctp-text: #d8e8f8;
|
||
--ctp-lavender: #5588cc;
|
||
--ctp-blue: #3388cc;
|
||
--ctp-sapphire: #2266aa;
|
||
--ctp-sky: #44aadd;
|
||
--ctp-teal: #3399cc;
|
||
--ctp-green: #88bb44;
|
||
--ctp-yellow: #f0c840;
|
||
--ctp-peach: #dd9944;
|
||
--ctp-maroon: #aa3322;
|
||
--ctp-red: #cc4433;
|
||
--ctp-mauve: #7766cc;
|
||
--ctp-pink: #997acc;
|
||
--ctp-flamingo: #aa88cc;
|
||
--ctp-rosewater: #bbaacc;
|
||
|
||
/* Semantic tokens */
|
||
--bg-app: #06101e;
|
||
--bg-sidebar: #040c18;
|
||
--bg-player: #050e1a;
|
||
--bg-card: #0c1e34;
|
||
--bg-card-hover: #122440;
|
||
--bg-input: #0c1e34;
|
||
--bg-overlay: rgba(6,16,30,0.92);
|
||
--bg-selection: rgba(51,136,204,0.25);
|
||
--border-subtle: rgba(60,100,160,0.28);
|
||
--border-default: rgba(80,120,180,0.35);
|
||
--border-strong: rgba(120,160,210,0.50);
|
||
--text-primary: #d8e8f8;
|
||
--text-secondary: #8098b8;
|
||
--text-muted: #6880a0;
|
||
--text-disabled: #2a3e58;
|
||
--accent: #3388cc;
|
||
--accent-hover: #4499dd;
|
||
--accent-glow: rgba(51,136,204,0.35);
|
||
--accent-subtle: rgba(51,136,204,0.15);
|
||
--danger: #cc4433;
|
||
--success: #88bb44;
|
||
--warning: #dd9944;
|
||
--nav-active-bg: rgba(51,136,204,0.20);
|
||
--nav-active-text: #e8f4ff;
|
||
--scrollbar-thumb: rgba(60,110,180,0.55);
|
||
--scrollbar-track: transparent;
|
||
--shadow-card: 0 2px 10px rgba(0,0,0,0.60);
|
||
--shadow-player: 0 -4px 20px rgba(20,70,160,0.22);
|
||
--radius-sm: 4px;
|
||
--radius-md: 8px;
|
||
--radius-lg: 12px;
|
||
--space-1: 4px; --space-2: 8px; --space-3: 12px;
|
||
--space-4: 16px; --space-5: 20px; --space-6: 24px;
|
||
}
|
||
|
||
/* Track name — paladin holy-light glow */
|
||
[data-theme='alliance'] .player-track-name,
|
||
[data-theme='alliance'] .queue-track-title {
|
||
color: #e8f4ff;
|
||
text-shadow: 0 0 14px rgba(80,160,220,0.50), 0 0 4px rgba(80,160,220,0.20);
|
||
}
|
||
|
||
/* Sidebar — cathedral stone columns with gold right-border */
|
||
[data-theme='alliance'] .sidebar {
|
||
background-color: #040c18;
|
||
background-image: repeating-linear-gradient(
|
||
180deg,
|
||
transparent 0px,
|
||
transparent 47px,
|
||
rgba(60,100,180,0.14) 47px,
|
||
rgba(60,100,180,0.14) 48px
|
||
);
|
||
border-right: 2px solid rgba(200,170,50,0.30);
|
||
}
|
||
|
||
/* Nav active — royal blue with gold left accent */
|
||
[data-theme='alliance'] .sidebar-nav-item.active {
|
||
background: rgba(51,136,204,0.20);
|
||
border-left: 3px solid #f0c840;
|
||
box-shadow: inset 0 0 12px rgba(51,136,204,0.10);
|
||
}
|
||
|
||
/* Player bar — paladin aura glow */
|
||
[data-theme='alliance'] .player-bar {
|
||
background-color: #050e1a;
|
||
background-image: linear-gradient(to bottom, rgba(20,60,130,0.30), transparent);
|
||
border-top: 1px solid rgba(100,140,200,0.35);
|
||
box-shadow: 0 -4px 22px rgba(30,80,180,0.22);
|
||
}
|
||
|
||
/* App-shell — safe single-pass radial, no repeating */
|
||
[data-theme='alliance'] .app-shell {
|
||
background: radial-gradient(ellipse at 38% 110%, rgba(25,70,170,0.15) 0%, transparent 55%);
|
||
}
|
||
|
||
/* Cards — blue-glow hover */
|
||
[data-theme='alliance'] .album-card:hover,
|
||
[data-theme='alliance'] .artist-card:hover {
|
||
box-shadow: 0 4px 18px rgba(40,100,200,0.28);
|
||
border-color: rgba(80,140,210,0.50);
|
||
}
|
||
|
||
/* Connection indicators */
|
||
[data-theme='alliance'] .connection-type,
|
||
[data-theme='alliance'] .connection-server { color: #6880a0; }
|
||
|
||
/* ═══════════════════════════════════════════════════════════════════
|
||
W11 — Windows 11 Fluent Design, dark mode, Mica material
|
||
═══════════════════════════════════════════════════════════════════ */
|
||
[data-theme='w11'] {
|
||
/* Catppuccin-compatible palette — Fluent dark neutrals */
|
||
--ctp-base: #202020;
|
||
--ctp-mantle: #1c1c1c;
|
||
--ctp-crust: #181818;
|
||
--ctp-surface0: #2c2c2c;
|
||
--ctp-surface1: #363636;
|
||
--ctp-surface2: #404040;
|
||
--ctp-overlay0: #797979;
|
||
--ctp-overlay1: #8a8a8a;
|
||
--ctp-overlay2: #9a9a9a;
|
||
--ctp-subtext0: #ababab;
|
||
--ctp-subtext1: #bebebe;
|
||
--ctp-text: #f3f3f3;
|
||
--ctp-lavender: #6ccbf8;
|
||
--ctp-blue: #0078d4;
|
||
--ctp-sapphire: #0067c0;
|
||
--ctp-sky: #4cc2ff;
|
||
--ctp-teal: #00b7c3;
|
||
--ctp-green: #6ccb5f;
|
||
--ctp-yellow: #f9f1a5;
|
||
--ctp-peach: #f7630c;
|
||
--ctp-maroon: #e81123;
|
||
--ctp-red: #e81123;
|
||
--ctp-mauve: #8764b8;
|
||
--ctp-pink: #b146c2;
|
||
--ctp-flamingo: #e3008c;
|
||
--ctp-rosewater: #f5e1ff;
|
||
|
||
/* Semantic tokens */
|
||
--bg-app: #202020;
|
||
--bg-sidebar: #2b2b2b;
|
||
--bg-player: #1c1c1c;
|
||
--bg-card: #2c2c2c;
|
||
--bg-card-hover: #363636;
|
||
--bg-input: #2c2c2c;
|
||
--bg-overlay: rgba(32,32,32,0.92);
|
||
--bg-selection: rgba(0,120,212,0.25);
|
||
--border-subtle: rgba(255,255,255,0.06);
|
||
--border-default: rgba(255,255,255,0.10);
|
||
--border-strong: rgba(255,255,255,0.18);
|
||
--text-primary: #f3f3f3;
|
||
--text-secondary: #9a9a9a;
|
||
--text-muted: #797979;
|
||
--text-disabled: #4a4a4a;
|
||
--accent: #0078d4;
|
||
--accent-hover: #1086e0;
|
||
--accent-glow: rgba(0,120,212,0.30);
|
||
--accent-subtle: rgba(0,120,212,0.15);
|
||
--danger: #e81123;
|
||
--success: #6ccb5f;
|
||
--warning: #f7630c;
|
||
--nav-active-bg: rgba(0,120,212,0.18);
|
||
--nav-active-text: #f3f3f3;
|
||
--scrollbar-thumb: rgba(255,255,255,0.18);
|
||
--scrollbar-track: transparent;
|
||
--shadow-card: 0 2px 8px rgba(0,0,0,0.50);
|
||
--shadow-player: 0 -1px 0 rgba(255,255,255,0.06);
|
||
--radius-sm: 6px;
|
||
--radius-md: 8px;
|
||
--radius-lg: 12px;
|
||
--space-1: 4px; --space-2: 8px; --space-3: 12px;
|
||
--space-4: 16px; --space-5: 20px; --space-6: 24px;
|
||
}
|
||
|
||
/* Track name — clean white, no glow (Fluent is minimal) */
|
||
[data-theme='w11'] .player-track-name,
|
||
[data-theme='w11'] .queue-track-title {
|
||
color: #f3f3f3;
|
||
}
|
||
|
||
/* Sidebar — Mica-like: very slightly lighter than app bg, clean border */
|
||
[data-theme='w11'] .sidebar {
|
||
background-color: #2b2b2b;
|
||
border-right: 1px solid rgba(255,255,255,0.08);
|
||
}
|
||
|
||
/* Nav active — Fluent accent fill, rounded */
|
||
[data-theme='w11'] .sidebar-nav-item.active {
|
||
background: rgba(0,120,212,0.20);
|
||
border-left: 3px solid #0078d4;
|
||
}
|
||
|
||
/* Player bar — taskbar-inspired: very dark, hairline top border */
|
||
[data-theme='w11'] .player-bar {
|
||
background-color: #1c1c1c;
|
||
border-top: 1px solid rgba(255,255,255,0.08);
|
||
box-shadow: none;
|
||
}
|
||
|
||
/* App-shell — flat, no gradient (Fluent dark is clean/minimal) */
|
||
[data-theme='w11'] .app-shell {
|
||
background: none;
|
||
}
|
||
|
||
/* Cards — Fluent hover: slight elevation via border brightening */
|
||
[data-theme='w11'] .album-card:hover,
|
||
[data-theme='w11'] .artist-card:hover {
|
||
box-shadow: 0 4px 14px rgba(0,0,0,0.45);
|
||
border-color: rgba(255,255,255,0.16);
|
||
}
|
||
|
||
/* Connection indicators */
|
||
[data-theme='w11'] .connection-type,
|
||
[data-theme='w11'] .connection-server { color: #797979; }
|
||
|
||
/* ── Barb & Ken (Games) ─────────────────────────────────────── */
|
||
[data-theme='barb-and-ken'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23FF1B8D%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* Barbieland palette */
|
||
--ctp-crust: #07000b;
|
||
--ctp-mantle: #110009;
|
||
--ctp-base: #1a000f;
|
||
--ctp-surface0: #2e0019;
|
||
--ctp-surface1: #450026;
|
||
--ctp-surface2: #5c0032;
|
||
--ctp-overlay0: #8c1455;
|
||
--ctp-overlay1: #b82070;
|
||
--ctp-overlay2: #d93d8a;
|
||
--ctp-text: #ffe6f3;
|
||
--ctp-subtext1: #ffb8da;
|
||
--ctp-subtext0: #ff80be;
|
||
|
||
/* Barbie Pink spectrum */
|
||
--ctp-mauve: #FF1B8D;
|
||
--ctp-pink: #FF69B4;
|
||
--ctp-flamingo: #FF1493;
|
||
--ctp-rosewater:#FFD6EC;
|
||
--ctp-lavender: #FFB3D9;
|
||
--ctp-maroon: #c4005e;
|
||
--ctp-red: #FF4466;
|
||
|
||
/* Ken — powder blue as accent-2 */
|
||
--ctp-blue: #89CFF0;
|
||
--ctp-sapphire: #5BC8F5;
|
||
--ctp-sky: #AAE8FF;
|
||
--ctp-teal: #70d8f2;
|
||
|
||
--ctp-green: #a6e3a1;
|
||
--ctp-yellow: #FFE4A8;
|
||
--ctp-peach: #FFB8D0;
|
||
|
||
--bg-app: #1a000f;
|
||
--bg-sidebar: #110009;
|
||
--bg-card: #2e0019;
|
||
--bg-hover: rgba(255, 27, 141, 0.12);
|
||
--bg-player: #07000b;
|
||
--bg-glass: rgba(26, 0, 15, 0.88);
|
||
|
||
--accent: #FF1B8D;
|
||
--accent-dim: rgba(255, 27, 141, 0.15);
|
||
--accent-glow: rgba(255, 27, 141, 0.45);
|
||
--volume-accent: #89CFF0;
|
||
|
||
--text-primary: #ffe6f3;
|
||
--text-secondary:#ffb8da;
|
||
--text-muted: #7a3055;
|
||
--border: rgba(255, 27, 141, 0.28);
|
||
--border-subtle: rgba(255, 27, 141, 0.12);
|
||
--border-dropdown: rgba(255, 27, 141, 0.3);
|
||
--shadow-dropdown: rgba(7, 0, 11, 0.9);
|
||
|
||
--positive: #a6e3a1;
|
||
--warning: #FFE4A8;
|
||
--danger: #FF4466;
|
||
|
||
/* Bubbly, soft rounding — very Barbie */
|
||
--radius-sm: 10px;
|
||
--radius-md: 14px;
|
||
--radius-lg: 20px;
|
||
}
|
||
|
||
/* Polka-dot sidebar — Barbie's dreamhouse wallpaper */
|
||
[data-theme='barb-and-ken'] .sidebar {
|
||
background:
|
||
radial-gradient(circle, rgba(255, 27, 141, 0.18) 2px, transparent 2px),
|
||
radial-gradient(circle, rgba(137, 207, 240, 0.10) 2px, transparent 2px),
|
||
linear-gradient(180deg, #110009 0%, #1a000f 100%);
|
||
background-size: 22px 22px, 22px 22px, 100% 100%;
|
||
background-position: 0 0, 11px 11px, 0 0;
|
||
border-right: 1px solid rgba(255, 27, 141, 0.35);
|
||
}
|
||
|
||
/* Player bar — deep magenta gradient, hot pink top border */
|
||
[data-theme='barb-and-ken'] .player-bar {
|
||
background: linear-gradient(180deg, #1a000f 0%, #07000b 100%);
|
||
border-top: 2px solid #FF1B8D;
|
||
box-shadow: 0 -6px 24px rgba(255, 27, 141, 0.18);
|
||
}
|
||
|
||
/* Track name — glitter shimmer */
|
||
@keyframes barbie-shimmer {
|
||
0% { background-position: -200% center; }
|
||
100% { background-position: 200% center; }
|
||
}
|
||
|
||
[data-theme='barb-and-ken'] .player-track-name {
|
||
background: linear-gradient(
|
||
90deg,
|
||
#FF1B8D 0%,
|
||
#FF69B4 25%,
|
||
#ffffff 50%,
|
||
#FF69B4 75%,
|
||
#FF1B8D 100%
|
||
);
|
||
background-size: 200% auto;
|
||
-webkit-background-clip: text;
|
||
-webkit-text-fill-color: transparent;
|
||
background-clip: text;
|
||
animation: barbie-shimmer 4s linear infinite;
|
||
font-weight: 700;
|
||
}
|
||
|
||
/* Artist name — Ken blue */
|
||
[data-theme='barb-and-ken'] .player-artist-name {
|
||
color: #89CFF0;
|
||
}
|
||
|
||
/* Active nav — pink left border glow */
|
||
[data-theme='barb-and-ken'] .nav-link.active {
|
||
background: linear-gradient(90deg, rgba(255, 27, 141, 0.22) 0%, transparent 100%);
|
||
color: #FF69B4 !important;
|
||
border-left: 3px solid #FF1B8D;
|
||
text-shadow: 0 0 8px rgba(255, 27, 141, 0.4);
|
||
}
|
||
|
||
[data-theme='barb-and-ken'] .nav-link:hover:not(.active) {
|
||
background: rgba(255, 27, 141, 0.08);
|
||
}
|
||
|
||
/* Content header — subtle pink rule */
|
||
[data-theme='barb-and-ken'] .content-header {
|
||
border-bottom: 1px solid rgba(255, 27, 141, 0.2);
|
||
background: rgba(26, 0, 15, 0.6);
|
||
backdrop-filter: blur(12px);
|
||
}
|
||
|
||
/* Primary buttons — hot pink gradient */
|
||
[data-theme='barb-and-ken'] .btn-primary,
|
||
[data-theme='barb-and-ken'] .player-btn-primary,
|
||
[data-theme='barb-and-ken'] .hero-play-btn {
|
||
background: linear-gradient(135deg, #FF1B8D 0%, #FF69B4 100%);
|
||
box-shadow: 0 4px 16px rgba(255, 27, 141, 0.45);
|
||
color: #fff !important;
|
||
border: none;
|
||
}
|
||
|
||
[data-theme='barb-and-ken'] .btn-primary:hover,
|
||
[data-theme='barb-and-ken'] .player-btn-primary:hover,
|
||
[data-theme='barb-and-ken'] .hero-play-btn:hover {
|
||
background: linear-gradient(135deg, #e5007a 0%, #FF1B8D 100%);
|
||
box-shadow: 0 6px 22px rgba(255, 27, 141, 0.60);
|
||
}
|
||
|
||
/* Cards — pink border glow on hover */
|
||
[data-theme='barb-and-ken'] .album-card,
|
||
[data-theme='barb-and-ken'] .artist-card,
|
||
[data-theme='barb-and-ken'] .card,
|
||
[data-theme='barb-and-ken'] .settings-card {
|
||
border: 1px solid rgba(255, 27, 141, 0.18);
|
||
}
|
||
|
||
[data-theme='barb-and-ken'] .album-card:hover,
|
||
[data-theme='barb-and-ken'] .artist-card:hover {
|
||
border-color: rgba(255, 27, 141, 0.50);
|
||
box-shadow: 0 4px 20px rgba(255, 27, 141, 0.20);
|
||
}
|
||
|
||
/* Queue active item */
|
||
[data-theme='barb-and-ken'] .queue-item.active {
|
||
background: rgba(255, 27, 141, 0.08);
|
||
border-left: 3px solid #FF1B8D;
|
||
}
|
||
|
||
[data-theme='barb-and-ken'] .queue-item.active .queue-item-title {
|
||
color: #FF69B4;
|
||
}
|
||
|
||
[data-theme='barb-and-ken'] .queue-item.active .queue-item-artist,
|
||
[data-theme='barb-and-ken'] .queue-item.active .queue-item-duration {
|
||
color: #89CFF0;
|
||
}
|
||
|
||
/* Track rows */
|
||
[data-theme='barb-and-ken'] .track-row:hover,
|
||
[data-theme='barb-and-ken'] .queue-item:hover {
|
||
background: rgba(255, 27, 141, 0.07);
|
||
}
|
||
|
||
/* Album detail header cover button — Ken blue glow on hover */
|
||
[data-theme='barb-and-ken'] .album-detail-cover-btn:hover {
|
||
box-shadow: 0 0 24px rgba(137, 207, 240, 0.35);
|
||
}
|
||
|
||
/* Star (favorite) icon — gold kept, but override to hot pink */
|
||
[data-theme='barb-and-ken'] .color-star-active {
|
||
--color-star-active: #FF69B4;
|
||
}
|
||
|
||
/* Scrollbar — thin hot pink */
|
||
[data-theme='barb-and-ken'] ::-webkit-scrollbar { width: 5px; }
|
||
[data-theme='barb-and-ken'] ::-webkit-scrollbar-track { background: #07000b; }
|
||
[data-theme='barb-and-ken'] ::-webkit-scrollbar-thumb {
|
||
background: #FF1B8D;
|
||
border-radius: 3px;
|
||
}
|
||
[data-theme='barb-and-ken'] ::-webkit-scrollbar-thumb:hover {
|
||
background: #FF69B4;
|
||
}
|
||
|
||
/* Connection indicators */
|
||
[data-theme='barb-and-ken'] .connection-type,
|
||
[data-theme='barb-and-ken'] .connection-server { color: #7a3055; }
|
||
|
||
/* ── Toy Tale (Movies) ──────────────────────────────────────── */
|
||
[data-theme='toy-tale'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23FFD600%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* Warm toy-box palette */
|
||
--ctp-crust: #080603;
|
||
--ctp-mantle: #100d08;
|
||
--ctp-base: #1a1208;
|
||
--ctp-surface0: #2a1c10;
|
||
--ctp-surface1: #3a2818;
|
||
--ctp-surface2: #4a3422;
|
||
--ctp-overlay0: #7a5a35;
|
||
--ctp-overlay1: #9a7848;
|
||
--ctp-overlay2: #b89060;
|
||
--ctp-text: #f0e8d8;
|
||
--ctp-subtext1: #d8c8a8;
|
||
--ctp-subtext0: #c0a880;
|
||
|
||
/* Woody gold */
|
||
--ctp-mauve: #FFD600;
|
||
--ctp-yellow: #FFD600;
|
||
--ctp-peach: #FFA000;
|
||
--ctp-rosewater:#FFE0A0;
|
||
|
||
/* Buzz Lightyear purple + green */
|
||
--ctp-lavender: #9B72D6;
|
||
--ctp-blue: #7B4FD6;
|
||
--ctp-sapphire: #5c35a0;
|
||
--ctp-sky: #4FC3F7;
|
||
--ctp-teal: #4CAF50;
|
||
--ctp-green: #4CAF50;
|
||
|
||
--ctp-pink: #FF6B9D;
|
||
--ctp-flamingo: #FF4488;
|
||
--ctp-maroon: #b71c1c;
|
||
--ctp-red: #e53935;
|
||
|
||
--bg-app: #1a1208;
|
||
--bg-sidebar: #1e3a5f; /* Andy's sky-blue wallpaper */
|
||
--bg-card: #2a1c10;
|
||
--bg-hover: rgba(255, 214, 0, 0.10);
|
||
--bg-player: #0d0a06;
|
||
--bg-glass: rgba(26, 18, 8, 0.90);
|
||
|
||
--accent: #FFD600;
|
||
--accent-dim: rgba(255, 214, 0, 0.15);
|
||
--accent-glow: rgba(255, 214, 0, 0.40);
|
||
--volume-accent: #7B4FD6; /* Buzz purple */
|
||
|
||
--text-primary: #f0e8d8;
|
||
--text-secondary:#c8a878;
|
||
--text-muted: #6a5030;
|
||
--border: rgba(255, 214, 0, 0.22);
|
||
--border-subtle: rgba(255, 214, 0, 0.10);
|
||
--border-dropdown: rgba(255, 214, 0, 0.25);
|
||
--shadow-dropdown: rgba(8, 6, 3, 0.92);
|
||
|
||
--positive: #4CAF50;
|
||
--warning: #FFA000;
|
||
--danger: #e53935;
|
||
|
||
--radius-sm: 6px;
|
||
--radius-md: 10px;
|
||
--radius-lg: 14px;
|
||
}
|
||
|
||
/* Sidebar — Andy's iconic cloud wallpaper in sky blue */
|
||
[data-theme='toy-tale'] .sidebar {
|
||
background:
|
||
radial-gradient(ellipse 70px 42px at 18% 12%, rgba(255,255,255,0.14) 0%, transparent 100%),
|
||
radial-gradient(ellipse 45px 28px at 38% 18%, rgba(255,255,255,0.09) 0%, transparent 100%),
|
||
radial-gradient(ellipse 80px 50px at 72% 10%, rgba(255,255,255,0.12) 0%, transparent 100%),
|
||
radial-gradient(ellipse 55px 32px at 85% 20%, rgba(255,255,255,0.08) 0%, transparent 100%),
|
||
radial-gradient(ellipse 65px 40px at 12% 55%, rgba(255,255,255,0.10) 0%, transparent 100%),
|
||
radial-gradient(ellipse 48px 30px at 55% 68%, rgba(255,255,255,0.08) 0%, transparent 100%),
|
||
radial-gradient(ellipse 72px 44px at 80% 75%, rgba(255,255,255,0.11) 0%, transparent 100%),
|
||
linear-gradient(180deg, #1e3a5f 0%, #274d78 100%);
|
||
border-right: 1px solid rgba(255, 214, 0, 0.20);
|
||
}
|
||
|
||
/* Nav links need lighter text on blue sidebar */
|
||
[data-theme='toy-tale'] .nav-link {
|
||
color: rgba(255, 255, 255, 0.75);
|
||
}
|
||
|
||
[data-theme='toy-tale'] .nav-link:hover:not(.active) {
|
||
background: rgba(255, 255, 255, 0.10);
|
||
color: #fff;
|
||
}
|
||
|
||
[data-theme='toy-tale'] .nav-link.active {
|
||
background: rgba(255, 214, 0, 0.20);
|
||
border-left: 3px solid #FFD600;
|
||
color: #FFD600 !important;
|
||
text-shadow: 0 0 8px rgba(255, 214, 0, 0.4);
|
||
}
|
||
|
||
[data-theme='toy-tale'] .sidebar-logo,
|
||
[data-theme='toy-tale'] .sidebar-title {
|
||
color: #fff;
|
||
}
|
||
|
||
/* Player bar — dark toy-chest wood */
|
||
[data-theme='toy-tale'] .player-bar {
|
||
background: linear-gradient(180deg, #1a1208 0%, #0d0a06 100%);
|
||
border-top: 2px solid #FFD600;
|
||
box-shadow: 0 -6px 20px rgba(255, 214, 0, 0.10);
|
||
}
|
||
|
||
/* Track name — Woody sheriff star gold */
|
||
[data-theme='toy-tale'] .player-track-name {
|
||
color: #FFD600;
|
||
text-shadow: 0 0 10px rgba(255, 214, 0, 0.45);
|
||
font-weight: 700;
|
||
}
|
||
|
||
/* Artist name — warm cowboy tan */
|
||
[data-theme='toy-tale'] .player-artist-name {
|
||
color: #c8a060;
|
||
}
|
||
|
||
/* Content header */
|
||
[data-theme='toy-tale'] .content-header {
|
||
border-bottom: 1px solid rgba(255, 214, 0, 0.18);
|
||
}
|
||
|
||
/* Primary buttons — Woody yellow */
|
||
[data-theme='toy-tale'] .btn-primary,
|
||
[data-theme='toy-tale'] .player-btn-primary,
|
||
[data-theme='toy-tale'] .hero-play-btn {
|
||
background: linear-gradient(135deg, #FFD600 0%, #FFA000 100%);
|
||
color: #1a1208 !important;
|
||
font-weight: 700;
|
||
box-shadow: 0 4px 14px rgba(255, 214, 0, 0.35);
|
||
border: none;
|
||
}
|
||
|
||
[data-theme='toy-tale'] .btn-primary:hover,
|
||
[data-theme='toy-tale'] .player-btn-primary:hover,
|
||
[data-theme='toy-tale'] .hero-play-btn:hover {
|
||
background: linear-gradient(135deg, #ffe033 0%, #FFD600 100%);
|
||
box-shadow: 0 6px 20px rgba(255, 214, 0, 0.50);
|
||
}
|
||
|
||
/* Cards */
|
||
[data-theme='toy-tale'] .album-card,
|
||
[data-theme='toy-tale'] .artist-card,
|
||
[data-theme='toy-tale'] .card,
|
||
[data-theme='toy-tale'] .settings-card {
|
||
border: 1px solid rgba(255, 214, 0, 0.16);
|
||
}
|
||
|
||
[data-theme='toy-tale'] .album-card:hover,
|
||
[data-theme='toy-tale'] .artist-card:hover {
|
||
border-color: rgba(255, 214, 0, 0.42);
|
||
box-shadow: 0 4px 18px rgba(255, 214, 0, 0.14);
|
||
}
|
||
|
||
/* Track rows */
|
||
[data-theme='toy-tale'] .track-row:hover,
|
||
[data-theme='toy-tale'] .queue-item:hover {
|
||
background: rgba(255, 214, 0, 0.06);
|
||
}
|
||
|
||
/* Queue active item — Buzz purple accent */
|
||
[data-theme='toy-tale'] .queue-item.active {
|
||
background: rgba(123, 79, 214, 0.12);
|
||
border-left: 3px solid #7B4FD6;
|
||
}
|
||
|
||
[data-theme='toy-tale'] .queue-item.active .queue-item-title {
|
||
color: #FFD600;
|
||
}
|
||
|
||
[data-theme='toy-tale'] .queue-item.active .queue-item-artist,
|
||
[data-theme='toy-tale'] .queue-item.active .queue-item-duration {
|
||
color: #9B72D6;
|
||
}
|
||
|
||
/* Scrollbar — Woody brown */
|
||
[data-theme='toy-tale'] ::-webkit-scrollbar { width: 6px; }
|
||
[data-theme='toy-tale'] ::-webkit-scrollbar-track { background: #0d0a06; }
|
||
[data-theme='toy-tale'] ::-webkit-scrollbar-thumb {
|
||
background: #7a5a35;
|
||
border-radius: 3px;
|
||
}
|
||
[data-theme='toy-tale'] ::-webkit-scrollbar-thumb:hover {
|
||
background: #FFD600;
|
||
}
|
||
|
||
/* Connection indicators */
|
||
[data-theme='toy-tale'] .connection-type,
|
||
[data-theme='toy-tale'] .connection-server { color: #6a5030; }
|
||
|
||
/* ─── North Park — South Park ─── */
|
||
/* Construction paper flat aesthetic — paper-cream main, Colorado mountain-blue sidebar,
|
||
Kenny orange accent, South Park sky blue player accents. Light, no dark mode. */
|
||
[data-theme='north-park'] {
|
||
color-scheme: light;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23FF8C00%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* ── Palette — Kenny orange, South Park sky, Colorado Rockies ── */
|
||
--ctp-crust: #0D2040;
|
||
--ctp-mantle: #142D50;
|
||
--ctp-base: #F5F1E8; /* construction paper cream */
|
||
--ctp-surface0: #EDE9DE;
|
||
--ctp-surface1: #E5E0D2;
|
||
--ctp-surface2: #D8D2C0;
|
||
--ctp-overlay0: #8090A8;
|
||
--ctp-overlay1: #5A6A80;
|
||
--ctp-overlay2: #4A526A;
|
||
--ctp-text: #1A1A2E;
|
||
--ctp-subtext1: #3A3A5A;
|
||
--ctp-subtext0: #4A526A;
|
||
--ctp-mauve: #FF8C00; /* Kenny orange */
|
||
--ctp-lavender: #FFB030;
|
||
--ctp-pink: #FF6A00;
|
||
--ctp-flamingo: #FF5500;
|
||
--ctp-rosewater:#FFD080;
|
||
--ctp-green: #3D9A2A; /* Kyle's green hat */
|
||
--ctp-teal: #2080A0;
|
||
--ctp-sky: #87CEEB; /* South Park sky */
|
||
--ctp-blue: #1E4080;
|
||
--ctp-sapphire: #1B3D6E;
|
||
--ctp-yellow: #FFD700;
|
||
--ctp-peach: #FF8C00;
|
||
--ctp-maroon: #CC4400;
|
||
--ctp-red: #CC2200; /* Cartman red */
|
||
|
||
--bg-app: #F5F1E8; /* construction paper cream */
|
||
--bg-sidebar: #1B3D6E; /* Colorado Rockies night blue */
|
||
--bg-card: #FFFFFF;
|
||
--bg-hover: #EDE9DE;
|
||
--bg-player: #102A50; /* deeper mountain blue */
|
||
--bg-glass: rgba(245, 241, 232, 0.94);
|
||
--accent: #FF8C00; /* Kenny orange */
|
||
--accent-dim: rgba(255, 140, 0, 0.13);
|
||
--accent-glow: rgba(255, 140, 0, 0.30);
|
||
--text-primary: #1A1A2E;
|
||
--text-secondary:#4A526A;
|
||
--text-muted: #8090A8;
|
||
--border: rgba(27, 61, 110, 0.14);
|
||
--border-subtle: rgba(27, 61, 110, 0.08);
|
||
--border-dropdown: rgba(255, 140, 0, 0.28);
|
||
--shadow-dropdown: rgba(0, 20, 60, 0.18);
|
||
--positive: #3D9A2A;
|
||
--warning: #E8A000;
|
||
--danger: #CC2200;
|
||
--radius-sm: 3px;
|
||
--radius-md: 6px;
|
||
--radius-lg: 10px;
|
||
|
||
/* Logo: Kenny orange → South Park yellow */
|
||
--logo-color-start: #FF8C00;
|
||
--logo-color-end: #FFD700;
|
||
}
|
||
|
||
/* Sidebar — Colorado mountain blue, orange nav accents */
|
||
[data-theme='north-park'] .sidebar {
|
||
background: #1B3D6E;
|
||
border-right: none;
|
||
}
|
||
|
||
/* Nav links: default text light on dark sidebar */
|
||
[data-theme='north-park'] .nav-link { color: rgba(255, 255, 255, 0.72); }
|
||
|
||
[data-theme='north-park'] .nav-link.active {
|
||
background: rgba(255, 140, 0, 0.18);
|
||
border-left: 3px solid #FF8C00;
|
||
color: #FF8C00;
|
||
}
|
||
|
||
[data-theme='north-park'] .nav-link:hover:not(.active) {
|
||
background: rgba(255, 255, 255, 0.09);
|
||
border-left: 3px solid rgba(255, 140, 0, 0.45);
|
||
color: rgba(255, 255, 255, 0.95);
|
||
}
|
||
|
||
/* Player bar — deep mountain blue, Kenny orange top stripe */
|
||
[data-theme='north-park'] .player-bar {
|
||
background: #102A50;
|
||
border-top: 3px solid #FF8C00;
|
||
box-shadow: 0 -2px 20px rgba(0, 20, 60, 0.30);
|
||
}
|
||
|
||
/* Track name — Kenny orange */
|
||
[data-theme='north-park'] .player-track-name { color: #FF8C00; }
|
||
|
||
/* Artist name — South Park sky blue */
|
||
[data-theme='north-park'] .player-artist-name { color: #87CEEB; }
|
||
|
||
/* Content header — warm paper border */
|
||
[data-theme='north-park'] .content-header {
|
||
border-bottom: 1px solid rgba(27, 61, 110, 0.12);
|
||
}
|
||
|
||
/* Cards — clean white cutouts with paper shadow */
|
||
[data-theme='north-park'] .album-card,
|
||
[data-theme='north-park'] .artist-card {
|
||
background: #FFFFFF;
|
||
box-shadow: 0 1px 4px rgba(0, 20, 60, 0.08);
|
||
}
|
||
|
||
[data-theme='north-park'] .album-card:hover,
|
||
[data-theme='north-park'] .artist-card:hover {
|
||
box-shadow: 0 0 0 2px #FF8C00, 0 4px 16px rgba(0, 20, 60, 0.12);
|
||
}
|
||
|
||
/* Track rows (light main area) */
|
||
[data-theme='north-park'] .track-row:hover {
|
||
background: #EDE9DE;
|
||
box-shadow: inset 2px 0 0 #FF8C00;
|
||
}
|
||
|
||
/* Queue items (dark blue sidebar — keep bg dark, text stays white) */
|
||
[data-theme='north-park'] .queue-item:hover {
|
||
background: rgba(255, 255, 255, 0.09);
|
||
box-shadow: inset 2px 0 0 #FF8C00;
|
||
}
|
||
|
||
/* Flat primary button — orange, no gradient */
|
||
[data-theme='north-park'] .player-btn-primary {
|
||
background: #FF8C00;
|
||
color: #FFFFFF;
|
||
box-shadow: none;
|
||
border: none;
|
||
}
|
||
|
||
[data-theme='north-park'] .player-btn-primary:hover {
|
||
background: #E07800;
|
||
box-shadow: 0 0 14px rgba(255, 140, 0, 0.40);
|
||
}
|
||
|
||
[data-theme='north-park'] .btn-primary {
|
||
background: #FF8C00;
|
||
color: #FFFFFF;
|
||
border: none;
|
||
}
|
||
|
||
[data-theme='north-park'] .btn-primary:hover { background: #E07800; }
|
||
|
||
[data-theme='north-park'] .hero-play-btn {
|
||
background: #FF8C00;
|
||
color: #FFFFFF;
|
||
border: none;
|
||
box-shadow: 0 2px 14px rgba(255, 140, 0, 0.35);
|
||
}
|
||
|
||
[data-theme='north-park'] .hero-play-btn:hover {
|
||
background: #E07800;
|
||
box-shadow: 0 4px 22px rgba(255, 140, 0, 0.55);
|
||
transform: scale(1.02);
|
||
}
|
||
|
||
[data-theme='north-park'] .album-card-details-btn {
|
||
background: #FF8C00;
|
||
color: #FFFFFF;
|
||
border: none;
|
||
box-shadow: 0 2px 10px rgba(255, 140, 0, 0.30);
|
||
}
|
||
|
||
/* Badge — orange pill */
|
||
[data-theme='north-park'] .badge,
|
||
[data-theme='north-park'] .album-detail-badge {
|
||
background: #FF8C00;
|
||
color: #FFFFFF;
|
||
}
|
||
|
||
/* Settings tabs */
|
||
[data-theme='north-park'] .settings-tab:hover { background: rgba(255, 140, 0, 0.08); color: #FF8C00; }
|
||
[data-theme='north-park'] .settings-tab.active { background: rgba(255, 140, 0, 0.13); color: #FF8C00; border-color: #FF8C00; }
|
||
[data-theme='north-park'] .queue-tab-btn:hover { background: rgba(255, 255, 255, 0.10); color: rgba(255, 255, 255, 0.90); }
|
||
|
||
/* Misc interactive */
|
||
[data-theme='north-park'] .custom-select-trigger:hover { background: #EDE9DE; }
|
||
[data-theme='north-park'] .custom-select-option:hover { background: rgba(255, 140, 0, 0.10); }
|
||
[data-theme='north-park'] .artist-row:hover { background: rgba(255, 140, 0, 0.07); box-shadow: inset 3px 0 0 #FF8C00; }
|
||
[data-theme='north-park'] .playlist-row:hover { background: rgba(255, 140, 0, 0.07); box-shadow: inset 3px 0 0 #FF8C00; }
|
||
|
||
/* Connection indicators — muted on light bg */
|
||
[data-theme='north-park'] .connection-type,
|
||
[data-theme='north-park'] .connection-server { color: #7A8A9A; }
|
||
|
||
/* Queue panel — dark sidebar, light text overrides */
|
||
[data-theme='north-park'] .queue-panel { background: #1B3D6E; }
|
||
|
||
[data-theme='north-park'] .queue-item-title { color: rgba(255, 255, 255, 0.90); }
|
||
[data-theme='north-park'] .queue-item-artist,
|
||
[data-theme='north-park'] .queue-item-duration { color: rgba(255, 255, 255, 0.52); }
|
||
|
||
[data-theme='north-park'] .queue-item.active .queue-item-artist,
|
||
[data-theme='north-park'] .queue-item.active .queue-item-duration { color: rgba(255, 255, 255, 0.72); }
|
||
|
||
[data-theme='north-park'] .queue-divider span { color: rgba(255, 255, 255, 0.38) !important; }
|
||
|
||
[data-theme='north-park'] .queue-current-info h3 { color: rgba(255, 255, 255, 0.92); }
|
||
[data-theme='north-park'] .queue-current-sub { color: rgba(255, 255, 255, 0.55); }
|
||
[data-theme='north-park'] .queue-current-cover .fallback { color: rgba(255, 255, 255, 0.32); }
|
||
|
||
[data-theme='north-park'] .queue-tab-btn { color: rgba(255, 255, 255, 0.58); }
|
||
[data-theme='north-park'] .queue-tab-btn.active { color: #FF8C00; }
|
||
[data-theme='north-park'] .queue-round-btn.active { color: #FFFFFF; }
|
||
|
||
[data-theme='north-park'] .queue-action-btn { color: rgba(255, 255, 255, 0.60); }
|
||
[data-theme='north-park'] .queue-action-btn:hover:not(:disabled) { color: rgba(255, 255, 255, 0.92); }
|
||
|
||
/* Hero album meta (year, genre etc.) — needs high contrast on dark overlay */
|
||
[data-theme='north-park'] .album-detail-info { color: rgba(255, 255, 255, 0.80); }
|
||
|
||
/* Artist name in hero — soften the orange to a warm amber, less glaring */
|
||
[data-theme='north-park'] .album-detail-artist,
|
||
[data-theme='north-park'] .album-detail-artist-link { color: #FFAB40; }
|
||
[data-theme='north-park'] .album-detail-artist-link:hover { color: #FFD080; }
|
||
|
||
/* np-album-track (Now Playing page) */
|
||
[data-theme='north-park'] .np-album-track.active .np-album-track-title,
|
||
[data-theme='north-park'] .np-album-track.active .np-album-track-num { color: #FF8C00; }
|
||
|
||
/* Scrollbar — thin, orange thumb */
|
||
[data-theme='north-park'] ::-webkit-scrollbar { width: 5px; height: 5px; }
|
||
[data-theme='north-park'] ::-webkit-scrollbar-track { background: #EDE9DE; }
|
||
[data-theme='north-park'] ::-webkit-scrollbar-thumb { background: rgba(255, 140, 0, 0.35); border-radius: 3px; }
|
||
[data-theme='north-park'] ::-webkit-scrollbar-thumb:hover { background: #FF8C00; }
|
||
|
||
/* ─── Dark Side of the Moon (inspired) — Pink Floyd ─── */
|
||
/* Pure void-black + prism spectrum. No colour except the rainbow.
|
||
Accent: spectrum cyan. Spectrum gradient as player-bar top border.
|
||
Track name: white (the input light beam). Performance: no patterns, no animations. */
|
||
[data-theme='dark-side-of-the-moon'] {
|
||
color-scheme: dark;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%239B30FF%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* ── Palette — void black + prism spectrum ── */
|
||
--ctp-crust: #000000;
|
||
--ctp-mantle: #010101;
|
||
--ctp-base: #050505;
|
||
--ctp-surface0: #0A0A0A;
|
||
--ctp-surface1: #111111;
|
||
--ctp-surface2: #1A1A1A;
|
||
--ctp-overlay0: #333333;
|
||
--ctp-overlay1: #4A4A4A;
|
||
--ctp-overlay2: #686868;
|
||
--ctp-text: #F0F0F0;
|
||
--ctp-subtext1: #C8C8C8;
|
||
--ctp-subtext0: #A0A0A0;
|
||
--ctp-mauve: #9B30FF; /* spectrum violet — primary accent */
|
||
--ctp-lavender: #7B00FF; /* spectrum violet */
|
||
--ctp-pink: #FF2400; /* spectrum red */
|
||
--ctp-flamingo: #FF7700; /* spectrum orange */
|
||
--ctp-rosewater:#FFFFFF; /* the input light beam */
|
||
--ctp-green: #72FF00; /* spectrum green */
|
||
--ctp-teal: #00C8FF;
|
||
--ctp-sky: #9B30FF;
|
||
--ctp-blue: #0040FF; /* spectrum blue */
|
||
--ctp-sapphire: #0060DD;
|
||
--ctp-yellow: #FFE600; /* spectrum yellow */
|
||
--ctp-peach: #FF7700;
|
||
--ctp-maroon: #CC1800;
|
||
--ctp-red: #FF2400;
|
||
|
||
--bg-app: #050505;
|
||
--bg-sidebar: #020202;
|
||
--bg-card: #0D0D0D;
|
||
--bg-hover: #141414;
|
||
--bg-player: #010101;
|
||
--bg-glass: rgba(5, 5, 5, 0.96);
|
||
--accent: #9B30FF; /* spectrum violet */
|
||
--accent-dim: rgba(155, 48, 255, 0.10);
|
||
--accent-glow: rgba(155, 48, 255, 0.28);
|
||
--text-primary: #F0F0F0;
|
||
--text-secondary:#A0A0A0;
|
||
--text-muted: #555555;
|
||
--border: rgba(255, 255, 255, 0.07);
|
||
--border-subtle: rgba(255, 255, 255, 0.04);
|
||
--border-dropdown: rgba(155, 48, 255, 0.22);
|
||
--shadow-dropdown: rgba(0, 0, 0, 0.99);
|
||
--positive: #72FF00;
|
||
--warning: #FFE600;
|
||
--danger: #FF2400;
|
||
--radius-sm: 2px;
|
||
--radius-md: 4px;
|
||
--radius-lg: 6px;
|
||
|
||
/* Waveform — cyan played, dark unplayed */
|
||
--waveform-played: #9B30FF;
|
||
--waveform-buffered: rgba(255, 255, 255, 0.07);
|
||
--waveform-unplayed: rgba(255, 255, 255, 0.04);
|
||
|
||
/* Logo — orange → cyan (the spectrum itself) */
|
||
--logo-color-start: #FF7700;
|
||
--logo-color-end: #9B30FF;
|
||
}
|
||
|
||
/* Player bar — void black, spectrum rainbow top border via ::before */
|
||
[data-theme='dark-side-of-the-moon'] .player-bar {
|
||
background: #010101;
|
||
border-top: none;
|
||
position: relative;
|
||
box-shadow: 0 -1px 0 rgba(255, 255, 255, 0.04);
|
||
}
|
||
|
||
[data-theme='dark-side-of-the-moon'] .player-bar::before {
|
||
content: '';
|
||
position: absolute;
|
||
top: 0; left: 0; right: 0;
|
||
height: 2px;
|
||
background: linear-gradient(90deg,
|
||
#FF2400 0%,
|
||
#FF7700 17%,
|
||
#FFE600 33%,
|
||
#72FF00 50%,
|
||
#00C8FF 67%,
|
||
#0040FF 83%,
|
||
#7B00FF 100%
|
||
);
|
||
}
|
||
|
||
/* Track name — the white input light beam */
|
||
[data-theme='dark-side-of-the-moon'] .player-track-name {
|
||
color: #FFFFFF;
|
||
}
|
||
|
||
/* Artist name — neutral dim */
|
||
[data-theme='dark-side-of-the-moon'] .player-artist-name {
|
||
color: #888888;
|
||
}
|
||
|
||
/* Sidebar — pure void */
|
||
[data-theme='dark-side-of-the-moon'] .sidebar {
|
||
background: #020202;
|
||
border-right: 1px solid rgba(255, 255, 255, 0.04);
|
||
}
|
||
|
||
[data-theme='dark-side-of-the-moon'] .nav-link.active {
|
||
background: rgba(0, 229, 255, 0.08);
|
||
border-left: 3px solid #00E5FF;
|
||
color: #00E5FF;
|
||
}
|
||
|
||
[data-theme='dark-side-of-the-moon'] .nav-link:hover:not(.active) {
|
||
background: rgba(255, 255, 255, 0.04);
|
||
border-left: 3px solid rgba(0, 229, 255, 0.30);
|
||
color: #F0F0F0;
|
||
}
|
||
|
||
/* Cards */
|
||
[data-theme='dark-side-of-the-moon'] .album-card,
|
||
[data-theme='dark-side-of-the-moon'] .artist-card {
|
||
background: #0D0D0D;
|
||
}
|
||
|
||
[data-theme='dark-side-of-the-moon'] .album-card:hover,
|
||
[data-theme='dark-side-of-the-moon'] .artist-card:hover {
|
||
box-shadow: 0 0 0 1px rgba(0, 229, 255, 0.40), 0 4px 20px rgba(0, 229, 255, 0.08);
|
||
}
|
||
|
||
/* Track / queue rows */
|
||
[data-theme='dark-side-of-the-moon'] .track-row:hover,
|
||
[data-theme='dark-side-of-the-moon'] .queue-item:hover {
|
||
background: #141414;
|
||
box-shadow: inset 2px 0 0 #00E5FF;
|
||
}
|
||
|
||
/* Buttons — flat cyan, no gradient */
|
||
[data-theme='dark-side-of-the-moon'] .player-btn-primary {
|
||
background: #00E5FF;
|
||
color: #010101;
|
||
box-shadow: none;
|
||
border: none;
|
||
}
|
||
|
||
[data-theme='dark-side-of-the-moon'] .player-btn-primary:hover {
|
||
background: #33EEFF;
|
||
box-shadow: 0 0 16px rgba(0, 229, 255, 0.40);
|
||
}
|
||
|
||
[data-theme='dark-side-of-the-moon'] .btn-primary {
|
||
background: #00E5FF;
|
||
color: #010101;
|
||
border: none;
|
||
}
|
||
|
||
[data-theme='dark-side-of-the-moon'] .btn-primary:hover { background: #33EEFF; }
|
||
|
||
[data-theme='dark-side-of-the-moon'] .hero-play-btn {
|
||
background: #00E5FF;
|
||
color: #010101;
|
||
border: none;
|
||
box-shadow: 0 2px 16px rgba(0, 229, 255, 0.30);
|
||
}
|
||
|
||
[data-theme='dark-side-of-the-moon'] .hero-play-btn:hover {
|
||
background: #33EEFF;
|
||
box-shadow: 0 4px 26px rgba(0, 229, 255, 0.50);
|
||
transform: scale(1.02);
|
||
}
|
||
|
||
[data-theme='dark-side-of-the-moon'] .album-card-details-btn {
|
||
background: #00E5FF;
|
||
color: #010101;
|
||
border: none;
|
||
box-shadow: 0 2px 10px rgba(0, 229, 255, 0.25);
|
||
}
|
||
|
||
/* Badge */
|
||
[data-theme='dark-side-of-the-moon'] .badge,
|
||
[data-theme='dark-side-of-the-moon'] .album-detail-badge {
|
||
background: #00E5FF;
|
||
color: #010101;
|
||
}
|
||
|
||
/* Settings + queue tabs */
|
||
[data-theme='dark-side-of-the-moon'] .settings-tab:hover { background: rgba(155, 48, 255, 0.07); color: #9B30FF; }
|
||
[data-theme='dark-side-of-the-moon'] .settings-tab.active { background: rgba(155, 48, 255, 0.12); color: #9B30FF; border-color: #9B30FF; }
|
||
[data-theme='dark-side-of-the-moon'] .queue-tab-btn:hover { background: rgba(255, 255, 255, 0.05); }
|
||
[data-theme='dark-side-of-the-moon'] .queue-tab-btn.active { color: #9B30FF; }
|
||
[data-theme='dark-side-of-the-moon'] .queue-round-btn.active { color: #010101; }
|
||
|
||
/* Misc interactive */
|
||
[data-theme='dark-side-of-the-moon'] .custom-select-trigger:hover { background: #141414; }
|
||
[data-theme='dark-side-of-the-moon'] .custom-select-option:hover { background: rgba(155, 48, 255, 0.08); }
|
||
[data-theme='dark-side-of-the-moon'] .artist-row:hover { background: rgba(155, 48, 255, 0.05); box-shadow: inset 3px 0 0 #9B30FF; }
|
||
[data-theme='dark-side-of-the-moon'] .playlist-row:hover { background: rgba(155, 48, 255, 0.05); box-shadow: inset 3px 0 0 #9B30FF; }
|
||
[data-theme='dark-side-of-the-moon'] .artist-ext-link:hover { background: rgba(155, 48, 255, 0.07); border-color: #9B30FF; }
|
||
|
||
/* np-album-track */
|
||
[data-theme='dark-side-of-the-moon'] .np-album-track.active .np-album-track-title,
|
||
[data-theme='dark-side-of-the-moon'] .np-album-track.active .np-album-track-num { color: #9B30FF; }
|
||
|
||
/* Scrollbar — minimal, cyan thumb */
|
||
[data-theme='dark-side-of-the-moon'] ::-webkit-scrollbar { width: 4px; height: 4px; }
|
||
[data-theme='dark-side-of-the-moon'] ::-webkit-scrollbar-track { background: #020202; }
|
||
[data-theme='dark-side-of-the-moon'] ::-webkit-scrollbar-thumb { background: rgba(155, 48, 255, 0.25); border-radius: 2px; }
|
||
[data-theme='dark-side-of-the-moon'] ::-webkit-scrollbar-thumb:hover { background: #9B30FF; }
|
||
|
||
/* Connection indicators */
|
||
[data-theme='dark-side-of-the-moon'] .connection-type,
|
||
[data-theme='dark-side-of-the-moon'] .connection-server { color: #555555; }
|
||
|
||
/* ─── Powerslave (inspired) — Iron Maiden ─── */
|
||
/* Blazing Egyptian sun — warm sandstone main, Nile-sky deep-blue sidebar,
|
||
pharaoh gold accent, gold+blue duality. Light, no dark mode.
|
||
Sidebar: deep Nile blue with subtle hieroglyph grid. Player bar: navy + gold cornice. */
|
||
[data-theme='powerslave'] {
|
||
color-scheme: light;
|
||
--select-arrow: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23C8800A%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
|
||
|
||
/* ── Palette — sandstone, pharaoh gold, temple shadows ── */
|
||
--ctp-crust: #180E04;
|
||
--ctp-mantle: #2A1808;
|
||
--ctp-base: #F0DFB0; /* warm sandstone */
|
||
--ctp-surface0: #E8D49A;
|
||
--ctp-surface1: #DEC880;
|
||
--ctp-surface2: #D0B860;
|
||
--ctp-overlay0: #A07830;
|
||
--ctp-overlay1: #806020;
|
||
--ctp-overlay2: #604810;
|
||
--ctp-text: #2A1808; /* warm dark brown */
|
||
--ctp-subtext1: #4A2C10;
|
||
--ctp-subtext0: #6A4018;
|
||
--ctp-mauve: #C8800A; /* pharaoh gold */
|
||
--ctp-lavender: #D49020;
|
||
--ctp-pink: #B04000;
|
||
--ctp-flamingo: #CC4800;
|
||
--ctp-rosewater:#F8EDD0;
|
||
--ctp-green: #507820;
|
||
--ctp-teal: #207870; /* Egyptian turquoise */
|
||
--ctp-sky: #3080A0;
|
||
--ctp-blue: #1A5080;
|
||
--ctp-sapphire: #204870;
|
||
--ctp-yellow: #C8800A;
|
||
--ctp-peach: #C05010;
|
||
--ctp-maroon: #801808;
|
||
--ctp-red: #A82000;
|
||
|
||
--bg-app: #F0DFB0; /* sun-bleached sandstone */
|
||
--bg-sidebar: #0A2035; /* Nile sky — deep lapis blue */
|
||
--bg-card: #F8EDD0;
|
||
--bg-hover: #E8D49A;
|
||
--bg-player: #06101C; /* deep night Nile */
|
||
--bg-glass: rgba(240, 223, 176, 0.94);
|
||
--accent: #C8960C; /* pharaoh gold */
|
||
--accent-dim: rgba(200, 150, 12, 0.13);
|
||
--accent-glow: rgba(200, 150, 12, 0.30);
|
||
--text-primary: #2A1808;
|
||
--text-secondary:#6A4018;
|
||
--text-muted: #A07830;
|
||
--border: rgba(42, 24, 8, 0.14);
|
||
--border-subtle: rgba(42, 24, 8, 0.08);
|
||
--border-dropdown: rgba(200, 128, 10, 0.28);
|
||
--shadow-dropdown: rgba(24, 14, 4, 0.22);
|
||
--positive: #507820;
|
||
--warning: #C05010;
|
||
--danger: #A82000;
|
||
--radius-sm: 2px;
|
||
--radius-md: 4px;
|
||
--radius-lg: 6px;
|
||
|
||
--waveform-played: #2E7BB8; /* Nile azure — the sky */
|
||
--waveform-buffered: rgba(46, 123, 184, 0.20);
|
||
--waveform-unplayed: rgba(42, 24, 8, 0.10);
|
||
|
||
/* Logo — Nile blue → pharaoh gold */
|
||
--logo-color-start: #2E7BB8;
|
||
--logo-color-end: #C8960C;
|
||
}
|
||
|
||
/* Sidebar — Nile-sky deep blue, subtle hieroglyph grid */
|
||
[data-theme='powerslave'] .sidebar {
|
||
background: #0A2035;
|
||
border-right: none;
|
||
background-image:
|
||
repeating-linear-gradient(
|
||
0deg,
|
||
rgba(46, 123, 184, 0.08) 0px, transparent 1px, transparent 48px,
|
||
rgba(46, 123, 184, 0.08) 49px
|
||
),
|
||
repeating-linear-gradient(
|
||
90deg,
|
||
rgba(46, 123, 184, 0.05) 0px, transparent 1px, transparent 96px,
|
||
rgba(46, 123, 184, 0.05) 97px
|
||
);
|
||
}
|
||
|
||
[data-theme='powerslave'] .nav-link { color: rgba(200, 224, 248, 0.65); }
|
||
|
||
[data-theme='powerslave'] .nav-link.active {
|
||
background: linear-gradient(90deg, rgba(200, 150, 12, 0.22) 0%, transparent 100%);
|
||
border-left: 3px solid #C8960C;
|
||
color: #D49828;
|
||
}
|
||
|
||
[data-theme='powerslave'] .nav-link:hover:not(.active) {
|
||
background: rgba(46, 123, 184, 0.12);
|
||
border-left: 3px solid rgba(46, 123, 184, 0.50);
|
||
color: rgba(200, 224, 248, 0.92);
|
||
}
|
||
|
||
/* Player bar — deep Nile night, gold cornice */
|
||
[data-theme='powerslave'] .player-bar {
|
||
background: #06101C;
|
||
border-top: 2px solid #C8960C;
|
||
box-shadow: 0 -4px 24px rgba(46, 123, 184, 0.10), 0 -1px 0 rgba(200, 150, 12, 0.20);
|
||
}
|
||
|
||
/* Track name — warm gold glow */
|
||
[data-theme='powerslave'] .player-track-name {
|
||
color: #D49828;
|
||
text-shadow: 0 0 12px rgba(200, 150, 12, 0.40);
|
||
}
|
||
|
||
/* Artist name — Nile azure */
|
||
[data-theme='powerslave'] .player-artist-name { color: #6AAED8; }
|
||
|
||
/* Content header */
|
||
[data-theme='powerslave'] .content-header {
|
||
border-bottom: 1px solid rgba(42, 24, 8, 0.12);
|
||
}
|
||
|
||
/* Cards — parchment on sandstone */
|
||
[data-theme='powerslave'] .album-card,
|
||
[data-theme='powerslave'] .artist-card {
|
||
background: #F8EDD0;
|
||
box-shadow: 0 1px 4px rgba(42, 24, 8, 0.10);
|
||
}
|
||
|
||
[data-theme='powerslave'] .album-card:hover,
|
||
[data-theme='powerslave'] .artist-card:hover {
|
||
box-shadow: 0 0 0 2px #C8800A, 0 4px 16px rgba(42, 24, 8, 0.12);
|
||
}
|
||
|
||
/* Track / queue rows */
|
||
[data-theme='powerslave'] .track-row:hover {
|
||
background: #E8D49A;
|
||
box-shadow: inset 2px 0 0 #C8800A;
|
||
}
|
||
|
||
[data-theme='powerslave'] .queue-item:hover {
|
||
background: rgba(46, 123, 184, 0.12);
|
||
box-shadow: inset 2px 0 0 #2E7BB8;
|
||
}
|
||
|
||
/* Buttons — gold gradient */
|
||
[data-theme='powerslave'] .player-btn-primary {
|
||
background: linear-gradient(180deg, #D49020 0%, #C8800A 50%, #A06008 100%);
|
||
color: #180E04;
|
||
border: 1px solid #806006;
|
||
box-shadow: 0 0 12px rgba(200, 128, 10, 0.28);
|
||
}
|
||
|
||
[data-theme='powerslave'] .player-btn-primary:hover {
|
||
background: linear-gradient(180deg, #E0A028 0%, #D48818 50%, #B07010 100%);
|
||
box-shadow: 0 0 22px rgba(200, 128, 10, 0.48);
|
||
}
|
||
|
||
[data-theme='powerslave'] .btn-primary {
|
||
background: linear-gradient(180deg, #D49020 0%, #C8800A 50%, #A06008 100%);
|
||
color: #180E04;
|
||
border: 1px solid #806006;
|
||
}
|
||
|
||
[data-theme='powerslave'] .btn-primary:hover {
|
||
background: linear-gradient(180deg, #E0A028 0%, #D48818 50%, #B07010 100%);
|
||
}
|
||
|
||
[data-theme='powerslave'] .hero-play-btn {
|
||
background: linear-gradient(180deg, #D49020 0%, #C8800A 50%, #A06008 100%);
|
||
color: #180E04;
|
||
border: 1px solid #806006;
|
||
box-shadow: 0 2px 16px rgba(200, 128, 10, 0.28);
|
||
}
|
||
|
||
[data-theme='powerslave'] .hero-play-btn:hover {
|
||
background: linear-gradient(180deg, #E0A028 0%, #D48818 50%, #B07010 100%);
|
||
box-shadow: 0 4px 26px rgba(200, 128, 10, 0.48);
|
||
transform: scale(1.02);
|
||
}
|
||
|
||
[data-theme='powerslave'] .album-card-details-btn {
|
||
background: linear-gradient(180deg, #D49020 0%, #C8800A 50%, #A06008 100%);
|
||
color: #180E04;
|
||
border: 1px solid #806006;
|
||
}
|
||
|
||
/* Badge — gold pill */
|
||
[data-theme='powerslave'] .badge,
|
||
[data-theme='powerslave'] .album-detail-badge {
|
||
background: #C8800A;
|
||
color: #F8EDD0;
|
||
}
|
||
|
||
/* Settings + queue */
|
||
[data-theme='powerslave'] .settings-tab:hover { background: rgba(200, 150, 12, 0.08); color: #C8960C; }
|
||
[data-theme='powerslave'] .settings-tab.active { background: rgba(200, 150, 12, 0.14); color: #C8960C; border-color: #C8960C; }
|
||
[data-theme='powerslave'] .queue-tab-btn:hover { background: rgba(46, 123, 184, 0.12); color: rgba(200, 224, 248, 0.92); }
|
||
[data-theme='powerslave'] .queue-tab-btn.active { color: #C8960C; }
|
||
[data-theme='powerslave'] .queue-round-btn.active { color: #06101C; }
|
||
|
||
/* Queue panel text — Nile-blue sidebar */
|
||
[data-theme='powerslave'] .queue-panel { background: #0A2035; }
|
||
[data-theme='powerslave'] .queue-item-title { color: rgba(220, 235, 248, 0.90); }
|
||
[data-theme='powerslave'] .queue-item-artist,
|
||
[data-theme='powerslave'] .queue-item-duration { color: rgba(140, 190, 230, 0.55); }
|
||
[data-theme='powerslave'] .queue-item.active .queue-item-artist,
|
||
[data-theme='powerslave'] .queue-item.active .queue-item-duration { color: rgba(140, 190, 230, 0.75); }
|
||
[data-theme='powerslave'] .queue-divider span { color: rgba(140, 190, 230, 0.38) !important; }
|
||
[data-theme='powerslave'] .queue-current-info h3 { color: rgba(220, 235, 248, 0.92); }
|
||
[data-theme='powerslave'] .queue-current-sub { color: rgba(140, 190, 230, 0.58); }
|
||
[data-theme='powerslave'] .queue-current-cover .fallback { color: rgba(140, 190, 230, 0.30); }
|
||
[data-theme='powerslave'] .queue-action-btn { color: rgba(140, 190, 230, 0.65); }
|
||
[data-theme='powerslave'] .queue-action-btn:hover:not(:disabled) { color: rgba(220, 235, 248, 0.95); }
|
||
|
||
/* Misc interactive */
|
||
[data-theme='powerslave'] .custom-select-trigger:hover { background: #E8D49A; }
|
||
[data-theme='powerslave'] .custom-select-option:hover { background: rgba(200, 128, 10, 0.10); }
|
||
[data-theme='powerslave'] .artist-row:hover { background: rgba(200, 128, 10, 0.07); box-shadow: inset 3px 0 0 #C8800A; }
|
||
[data-theme='powerslave'] .playlist-row:hover { background: rgba(200, 128, 10, 0.07); box-shadow: inset 3px 0 0 #C8800A; }
|
||
[data-theme='powerslave'] .artist-ext-link:hover { background: rgba(200, 128, 10, 0.08); border-color: #C8800A; }
|
||
|
||
/* Connection indicators */
|
||
[data-theme='powerslave'] .connection-type,
|
||
[data-theme='powerslave'] .connection-server { color: rgba(140, 190, 230, 0.70); }
|
||
|
||
/* Album detail hero meta */
|
||
[data-theme='powerslave'] .album-detail-info { color: rgba(255, 255, 255, 0.80); }
|
||
[data-theme='powerslave'] .album-detail-artist,
|
||
[data-theme='powerslave'] .album-detail-artist-link { color: #D49828; }
|
||
[data-theme='powerslave'] .album-detail-artist-link:hover { color: #E8B040; }
|
||
|
||
/* np-album-track */
|
||
[data-theme='powerslave'] .np-album-track.active .np-album-track-title,
|
||
[data-theme='powerslave'] .np-album-track.active .np-album-track-num { color: #C8960C; }
|
||
|
||
/* Scrollbar — warm, gold thumb */
|
||
[data-theme='powerslave'] ::-webkit-scrollbar { width: 5px; height: 5px; }
|
||
[data-theme='powerslave'] ::-webkit-scrollbar-track { background: #E8D49A; }
|
||
[data-theme='powerslave'] ::-webkit-scrollbar-thumb { background: rgba(200, 128, 10, 0.35); border-radius: 3px; }
|
||
[data-theme='powerslave'] ::-webkit-scrollbar-thumb:hover { background: #C8800A; } |