:root {
    --gcp-blue: #4285f4;
    --gcp-red: #ea4335;
    --gcp-yellow: #fbbc04;
    --gcp-green: #34a853;
}

/* Aura Theme */
[data-theme="aura"] {
    --bs-body-bg: #15141b;
    --bs-body-color: #edecee;
    --bs-primary: #a277ff;
    --bs-primary-rgb: 162, 119, 255;
    --bs-card-bg: #201c2c;
    --bs-border-color: #352f44;
    --bs-table-bg: #15141b;
    --bs-table-striped-bg: #201c2c;
    --bs-table-hover-bg: #2a2438;
    --bs-table-color: #edecee;
}

/* ── Dark Themes ── */

/* Catppuccin Mocha */
[data-theme="catppuccin"] {
    --bs-body-bg: #1e1e2e;
    --bs-body-color: #cdd6f4;
    --bs-primary: #89b4fa;
    --bs-primary-rgb: 137, 180, 250;
    --bs-card-bg: #181825;
    --bs-border-color: #313244;
    --bs-table-bg: #1e1e2e;
    --bs-table-striped-bg: #181825;
    --bs-table-hover-bg: #313244;
    --bs-table-color: #cdd6f4;
}

/* Dracula Theme */
[data-theme="dracula"] {
    --bs-body-bg: #282a36;
    --bs-body-color: #f8f8f2;
    --bs-primary: #bd93f9;
    --bs-primary-rgb: 189, 147, 249;
    --bs-card-bg: #44475a;
    --bs-border-color: #6272a4;
    --bs-table-bg: #282a36;
    --bs-table-striped-bg: #44475a;
    --bs-table-hover-bg: #6272a4;
    --bs-table-color: #f8f8f2;
}

/* GitHub Dark */
[data-theme="github-dark"] {
    --bs-body-bg: #0d1117;
    --bs-body-color: #c9d1d9;
    --bs-primary: #58a6ff;
    --bs-primary-rgb: 88, 166, 255;
    --bs-card-bg: #161b22;
    --bs-border-color: #30363d;
    --bs-table-bg: #0d1117;
    --bs-table-striped-bg: #161b22;
    --bs-table-hover-bg: #30363d;
    --bs-table-color: #c9d1d9;
}

/* Gruvbox Dark — morhetz/gruvbox */
[data-theme="gruvbox"] {
    --bs-body-bg: #282828;
    --bs-body-color: #ebdbb2;
    --bs-primary: #fabd2f;
    --bs-primary-rgb: 250, 189, 47;
    --bs-card-bg: #3c3836;
    --bs-border-color: #665c54;
    --bs-table-bg: #282828;
    --bs-table-striped-bg: #3c3836;
    --bs-table-hover-bg: #504945;
    --bs-table-color: #ebdbb2;
}

/* Nord Theme */
[data-theme="nord"] {
    --bs-body-bg: #2e3440;
    --bs-body-color: #d8dee9;
    --bs-primary: #88c0d0;
    --bs-primary-rgb: 136, 192, 208;
    --bs-card-bg: #3b4252;
    --bs-border-color: #4c566a;
    --bs-table-bg: #2e3440;
    --bs-table-striped-bg: #3b4252;
    --bs-table-hover-bg: #434c5e;
    --bs-table-color: #d8dee9;
}

/* Rose Pine */
[data-theme="rosepine"] {
    --bs-body-bg: #191724;
    --bs-body-color: #e0def4;
    --bs-primary: #ebbcba;
    --bs-primary-rgb: 235, 188, 186;
    --bs-card-bg: #1f1d2e;
    --bs-border-color: #403d52;
    --bs-table-bg: #191724;
    --bs-table-striped-bg: #1f1d2e;
    --bs-table-hover-bg: #403d52;
    --bs-table-color: #e0def4;
}

/* Solarized Dark — ethanschoonover/solarized */
[data-theme="solarized"] {
    --bs-body-bg: #002b36;
    --bs-body-color: #839496;
    --bs-primary: #268bd2;
    --bs-primary-rgb: 38, 139, 210;
    --bs-card-bg: #073642;
    --bs-border-color: #586e75;
    --bs-table-bg: #002b36;
    --bs-table-striped-bg: #073642;
    --bs-table-hover-bg: #586e75;
    --bs-table-color: #839496;
}

/* Tokyo Night */
[data-theme="tokyonight"] {
    --bs-body-bg: #1a1b26;
    --bs-body-color: #a9b1d6;
    --bs-primary: #7aa2f7;
    --bs-primary-rgb: 122, 162, 247;
    --bs-card-bg: #24283b;
    --bs-border-color: #414868;
    --bs-table-bg: #1a1b26;
    --bs-table-striped-bg: #24283b;
    --bs-table-hover-bg: #414868;
    --bs-table-color: #a9b1d6;
}

/* ── Light Themes ── */

/* Catppuccin Latte */
[data-theme="catppuccin-latte"] {
    --bs-body-bg: #eff1f5;
    --bs-body-color: #4c4f69;
    --bs-primary: #1e66f5;
    --bs-primary-rgb: 30, 102, 245;
    --bs-card-bg: #e6e9ef;
    --bs-border-color: #ccd0da;
    --bs-table-bg: #eff1f5;
    --bs-table-striped-bg: #e6e9ef;
    --bs-table-hover-bg: #dce0e8;
    --bs-table-color: #4c4f69;
}

/* Everforest Light */
[data-theme="everforest-light"] {
    --bs-body-bg: #fdf6e3;
    --bs-body-color: #5c6a72;
    --bs-primary: #8da101;
    --bs-primary-rgb: 141, 161, 1;
    --bs-card-bg: #f3efda;
    --bs-border-color: #e0dcc7;
    --bs-table-bg: #fdf6e3;
    --bs-table-striped-bg: #f3efda;
    --bs-table-hover-bg: #eae5d0;
    --bs-table-color: #5c6a72;
}

/* GitHub Light */
[data-theme="github-light"] {
    --bs-body-bg: #ffffff;
    --bs-body-color: #24292f;
    --bs-primary: #0969da;
    --bs-primary-rgb: 9, 105, 218;
    --bs-card-bg: #f6f8fa;
    --bs-border-color: #d0d7de;
    --bs-table-bg: #ffffff;
    --bs-table-striped-bg: #f6f8fa;
    --bs-table-hover-bg: #eaeef2;
    --bs-table-color: #24292f;
}

/* Atom One Light */
[data-theme="one-light"] {
    --bs-body-bg: #fafafa;
    --bs-body-color: #383a42;
    --bs-primary: #4078f2;
    --bs-primary-rgb: 64, 120, 242;
    --bs-card-bg: #f0f0f0;
    --bs-border-color: #d3d3d8;
    --bs-table-bg: #fafafa;
    --bs-table-striped-bg: #f0f0f0;
    --bs-table-hover-bg: #e5e5e6;
    --bs-table-color: #383a42;
}

/* Papercolor */
[data-theme="papercolor"] {
    --bs-body-bg: #eeeeee;
    --bs-body-color: #4d4d4c;
    --bs-primary: #008700;
    --bs-primary-rgb: 0, 135, 0;
    --bs-card-bg: #e4e4e4;
    --bs-border-color: #d7d7d7;
    --bs-table-bg: #eeeeee;
    --bs-table-striped-bg: #e4e4e4;
    --bs-table-hover-bg: #d7d7d7;
    --bs-table-color: #4d4d4c;
}

/* Quiet Light */
[data-theme="quiet-light"] {
    --bs-body-bg: #f5f5f5;
    --bs-body-color: #333333;
    --bs-primary: #7a3e9d;
    --bs-primary-rgb: 122, 62, 157;
    --bs-card-bg: #eaeaea;
    --bs-border-color: #d4d4d4;
    --bs-table-bg: #f5f5f5;
    --bs-table-striped-bg: #eaeaea;
    --bs-table-hover-bg: #e0e0e0;
    --bs-table-color: #333333;
}

/* Rose Pine Dawn */
[data-theme="rosepine-dawn"] {
    --bs-body-bg: #faf4ed;
    --bs-body-color: #575279;
    --bs-primary: #d7827e;
    --bs-primary-rgb: 215, 130, 126;
    --bs-card-bg: #f2e9e1;
    --bs-border-color: #dfdad9;
    --bs-table-bg: #faf4ed;
    --bs-table-striped-bg: #f2e9e1;
    --bs-table-hover-bg: #ebdfd5;
    --bs-table-color: #575279;
}

/* Solarized Light */
[data-theme="solarized-light"] {
    --bs-body-bg: #fdf6e3;
    --bs-body-color: #657b83;
    --bs-primary: #b58900;
    --bs-primary-rgb: 181, 137, 0;
    --bs-card-bg: #eee8d5;
    --bs-border-color: #ccc3a1;
    --bs-table-bg: #fdf6e3;
    --bs-table-striped-bg: #eee8d5;
    --bs-table-hover-bg: #e2d8c3;
    --bs-table-color: #657b83;
}

/* ── Special Themes ── */

/* GCP Material Design 3 */
[data-theme="gcp-m3"] {
    --bs-body-bg: #f8f9fa;
    --bs-body-color: #1f1f1f;
    --bs-primary: #0b57d0; /* Google Blue */
    --bs-primary-rgb: 11, 87, 208;
    --bs-card-bg: #ffffff;
    --bs-border-color: #dee2e6;
    --bs-border-radius: 24px;
    --bs-font-sans-serif: 'Google Sans', 'Inter', sans-serif;
}
[data-theme="gcp-m3"] .card {
    border: none;
    box-shadow: 0 1px 3px 0 rgba(60,64,67,.3), 0 4px 8px 3px rgba(60,64,67,.15);
}
[data-theme="gcp-m3"] .navbar {
    background-color: #ffffff !important;
    color: #1f1f1f !important;
    box-shadow: inset 0 -1px 0 0 #dadce0;
}
[data-theme="gcp-m3"] .navbar-brand, [data-theme="gcp-m3"] .nav-link {
    color: #444746 !important;
}
[data-theme="gcp-m3"] .nav-link:hover {
    background-color: #f1f3f4;
    border-radius: 100px;
}
[data-theme="gcp-m3"] .btn-primary {
    border-radius: 100px;
    padding: 0.6rem 1.5rem;
    font-weight: 500;
}
[data-theme="gcp-m3"] .theme-btn {
    border-color: #dadce0;
    color: #444746;
}
[data-theme="gcp-m3"] .theme-btn:hover {
    background-color: #f1f3f4;
}

/* ── Base Styles ── */

.theme-btn {
    border: 1px solid rgba(255,255,255,0.5);
    color: #fff;
}

body {
    font-family: 'Inter', sans-serif;
    background-color: var(--bs-body-bg);
    color: var(--bs-body-color);
    transition: background-color 0.25s ease, color 0.25s ease;
}

.navbar {
    backdrop-filter: blur(10px);
    background-color: rgba(var(--bs-primary-rgb), 0.85) !important;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}

.card {
    background-color: var(--bs-card-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius, 12px);
}

.btn-primary {
    background-color: var(--bs-primary);
    border: none;
    color: #fff;
}

.dropdown-menu {
    max-height: 400px;
    overflow-y: auto;
}

.ts-control {
    background-color: var(--bs-body-bg) !important;
    color: var(--bs-body-color) !important;
    border-color: var(--bs-border-color) !important;
}
.ts-dropdown {
    background-color: var(--bs-card-bg) !important;
    color: var(--bs-body-color) !important;
    border-color: var(--bs-border-color) !important;
}
.ts-dropdown .active {
    background-color: var(--bs-primary) !important;
    color: #fff !important;
}

/* Table striping consistency */
.table {
    --bs-table-bg: transparent;
    color: var(--bs-body-color);
}

/* Cyberpunk Neon Theme */
[data-theme="cyberpunk"] {
    --bs-body-bg: #03000a;
    --bs-body-color: #00ffcc;
    --bs-primary: #ff007f;
    --bs-primary-rgb: 255, 0, 127;
    --bs-card-bg: #0d0119;
    --bs-border-color: #ff007f;
    --bs-table-bg: #03000a;
    --bs-table-striped-bg: #0d0119;
    --bs-table-hover-bg: #1e003a;
    --bs-table-color: #00ffcc;
    
    /* Specific overrides */
    --bs-link-color: #ff007f;
    --bs-link-hover-color: #00ffcc;
    --price-od: #ff007f;
    --price-cud1: #00ffcc;
    --price-cud3: #00f0ff;
}

[data-theme="cyberpunk"] .text-muted {
    color: #8b7ca0 !important;
}

[data-theme="cyberpunk"] .glass-card {
    background: rgba(13, 1, 25, 0.75) !important;
    border: 1px solid rgba(255, 0, 127, 0.4) !important;
    box-shadow: 0 0 15px rgba(255, 0, 127, 0.25), 0 0 2px rgba(255, 0, 127, 0.5) !important;
}

[data-theme="cyberpunk"] .glass-card-hover:hover {
    border-color: #00ffcc !important;
    box-shadow: 0 0 25px rgba(0, 255, 204, 0.4), 0 0 5px rgba(0, 255, 204, 0.6) !important;
}

[data-theme="cyberpunk"] .navbar-glass {
    background: rgba(3, 0, 10, 0.85) !important;
    border-bottom: 2px solid #ff007f !important;
    box-shadow: 0 0 15px rgba(255, 0, 127, 0.3) !important;
}

[data-theme="cyberpunk"] .text-gradient {
    background: linear-gradient(45deg, #ff007f, #00f0ff, #00ffcc) !important;
    -webkit-background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    background-clip: text !important;
    color: transparent !important;
}

[data-theme="cyberpunk"] .btn-primary {
    background: #ff007f !important;
    border-color: #ff007f !important;
    box-shadow: 0 0 10px rgba(255, 0, 127, 0.5) !important;
    color: #fff !important;
}

[data-theme="cyberpunk"] .btn-primary:hover {
    background: #ff3399 !important;
    box-shadow: 0 0 15px rgba(255, 0, 127, 0.8) !important;
}

[data-theme="cyberpunk"] .btn-outline-primary {
    border-color: #00ffcc !important;
    color: #00ffcc !important;
}

[data-theme="cyberpunk"] .btn-outline-primary:hover {
    background: #00ffcc !important;
    color: #03000a !important;
    box-shadow: 0 0 15px rgba(0, 255, 204, 0.6) !important;
}

[data-theme="cyberpunk"] input, 
[data-theme="cyberpunk"] select, 
[data-theme="cyberpunk"] .ts-control {
    border-color: #ff007f !important;
    box-shadow: inset 0 0 5px rgba(255, 0, 127, 0.2) !important;
}

[data-theme="cyberpunk"] input:focus, 
[data-theme="cyberpunk"] select:focus, 
[data-theme="cyberpunk"] .ts-control:focus {
    border-color: #00ffcc !important;
    box-shadow: 0 0 10px rgba(0, 255, 204, 0.5) !important;
}
