@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=Noto+Sans+SC:wght@300;400;500;700&family=JetBrains+Mono:wght@400;500;600&display=swap');

[data-theme="dark"] {
    --bg-primary: #060b1a;
    --bg-secondary: #0a1128;
    --bg-tertiary: #0d1540;
    --bg-card: rgba(255, 255, 255, 0.035);
    --bg-card-solid: #0e1530;
    --bg-input: rgba(255, 255, 255, 0.06);
    --bg-input-focus: rgba(0, 212, 255, 0.04);
    --bg-hover: rgba(0, 212, 255, 0.04);
    --bg-selected: rgba(0, 212, 255, 0.06);

    --accent: #00d4ff;
    --accent-rgb: 0, 212, 255;
    --accent-secondary: #7b2cbf;
    --accent-secondary-rgb: 123, 44, 191;
    --accent-green: #43e97b;
    --accent-green-rgb: 67, 233, 123;
    --accent-gold: #f0c040;
    --accent-gold-rgb: 240, 192, 64;
    --accent-pink: #f093fb;
    --accent-red: #f5576c;
    --accent-red-rgb: 245, 87, 108;

    --text-bright: #ffffff;
    --text-primary: rgba(255, 255, 255, 0.85);
    --text-secondary: rgba(255, 255, 255, 0.55);
    --text-dim: rgba(255, 255, 255, 0.28);
    --text-placeholder: rgba(255, 255, 255, 0.3);

    --border-subtle: rgba(255, 255, 255, 0.06);
    --border-glow: rgba(0, 212, 255, 0.12);
    --border-input: rgba(255, 255, 255, 0.1);
    --border-input-focus: rgba(0, 212, 255, 0.4);
    --border-card: rgba(255, 255, 255, 0.06);
    --border-divider: rgba(255, 255, 255, 0.08);

    --shadow-card: 0 4px 20px rgba(0, 0, 0, 0.3);
    --shadow-card-hover: 0 12px 40px rgba(0, 0, 0, 0.3), 0 0 30px rgba(0, 212, 255, 0.06);
    --shadow-glow: 0 0 20px rgba(0, 212, 255, 0.15);
    --shadow-input-focus: 0 0 0 3px rgba(0, 212, 255, 0.1), 0 0 20px rgba(0, 212, 255, 0.05);
    --shadow-btn: 0 8px 30px rgba(0, 212, 255, 0.25), 0 4px 15px rgba(123, 44, 191, 0.2);

    --logo-gradient: linear-gradient(135deg, #00d4ff 0%, #7b2cbf 100%);
    --btn-gradient: linear-gradient(135deg, #00d4ff 0%, #7b2cbf 100%);
    --btn-gradient-hover: linear-gradient(135deg, #7b2cbf 0%, #00d4ff 100%);
    --header-gradient: linear-gradient(90deg, #060b1a 0%, #0a1128 50%, #0d1540 100%);
    --sidebar-gradient: linear-gradient(180deg, #060b1a 0%, #0a1128 100%);
    --header-bottom-line: linear-gradient(90deg, transparent, rgba(0, 212, 255, 0.25), rgba(123, 44, 191, 0.15), transparent);
    --sidebar-right-line: linear-gradient(180deg, rgba(0, 212, 255, 0.2), transparent 30%, transparent 70%, rgba(123, 44, 191, 0.15));
    --tab-header-gradient: linear-gradient(90deg, #080d1f, #0a1128);

    --scrollbar-thumb: rgba(0, 212, 255, 0.12);
    --scrollbar-thumb-hover: rgba(0, 212, 255, 0.25);
    --scrollbar-track: rgba(255, 255, 255, 0.02);

    --close-btn-bg: rgba(255, 255, 255, 0.06);
    --close-btn-border: rgba(255, 255, 255, 0.08);
    --close-btn-line: rgba(255, 255, 255, 0.4);
    --close-btn-hover-bg: rgba(239, 68, 68, 0.2);
    --close-btn-hover-border: rgba(239, 68, 68, 0.5);
    --close-btn-hover-line: #ff2d55;
    --close-btn-hover-shadow: 0 0 12px rgba(239, 68, 68, 0.25);
    --close-btn-selected-bg: rgba(0, 212, 255, 0.08);
    --close-btn-selected-border: rgba(0, 212, 255, 0.2);
    --close-btn-selected-line: rgba(0, 212, 255, 0.6);

    --dot-bg: #ff4757;
    --dot-border: #0a1128;
    --user-panel-gradient: linear-gradient(160deg, #111836 0%, #0d1333 100%);

    --particle-color: 0, 212, 255;

    --theme-switcher-bg: rgba(255, 255, 255, 0.04);
    --theme-switcher-border: rgba(255, 255, 255, 0.08);
    --theme-switcher-color: rgba(255, 255, 255, 0.5);
    --theme-switcher-hover-bg: rgba(0, 212, 255, 0.1);
    --theme-switcher-hover-border: rgba(0, 212, 255, 0.3);
    --theme-switcher-hover-color: #00d4ff;
}

[data-theme="light"] {
    --bg-primary: #f0f4fa;
    --bg-secondary: #ffffff;
    --bg-tertiary: #e8eef6;
    --bg-card: #ffffff;
    --bg-card-solid: #ffffff;
    --bg-input: #f1f5f9;
    --bg-input-focus: rgba(0, 150, 230, 0.04);
    --bg-hover: rgba(0, 150, 230, 0.04);
    --bg-selected: rgba(0, 150, 230, 0.06);

    --accent: #0096e6;
    --accent-rgb: 0, 150, 230;
    --accent-secondary: #7c3aed;
    --accent-secondary-rgb: 124, 58, 237;
    --accent-green: #059669;
    --accent-green-rgb: 5, 150, 105;
    --accent-gold: #d97706;
    --accent-gold-rgb: 217, 119, 6;
    --accent-pink: #a855f7;
    --accent-red: #dc2626;
    --accent-red-rgb: 220, 38, 38;

    --text-bright: #0f172a;
    --text-primary: #1a2332;
    --text-secondary: #5a6a7e;
    --text-dim: #94a3b8;
    --text-placeholder: #94a3b8;

    --border-subtle: rgba(0, 160, 230, 0.08);
    --border-glow: rgba(0, 150, 230, 0.15);
    --border-input: #e2e8f0;
    --border-input-focus: rgba(0, 150, 230, 0.4);
    --border-card: rgba(0, 160, 230, 0.1);
    --border-divider: rgba(0, 160, 230, 0.08);

    --shadow-card: 0 1px 3px rgba(0, 0, 0, 0.04), 0 4px 12px rgba(0, 80, 160, 0.06);
    --shadow-card-hover: 0 8px 30px rgba(0, 80, 160, 0.1), 0 2px 8px rgba(0, 0, 0, 0.06);
    --shadow-glow: 0 0 20px rgba(0, 150, 230, 0.08);
    --shadow-input-focus: 0 0 0 3px rgba(0, 150, 230, 0.08), 0 0 16px rgba(0, 150, 230, 0.04);
    --shadow-btn: 0 4px 16px rgba(0, 150, 230, 0.2), 0 2px 6px rgba(124, 58, 237, 0.1);

    --logo-gradient: linear-gradient(135deg, #0096e6 0%, #7c3aed 100%);
    --btn-gradient: linear-gradient(135deg, #0096e6 0%, #7c3aed 100%);
    --btn-gradient-hover: linear-gradient(135deg, #7c3aed 0%, #0096e6 100%);
    --header-gradient: linear-gradient(90deg, #ffffff 0%, #f8fafc 50%, #f0f4fa 100%);
    --sidebar-gradient: linear-gradient(180deg, #f8fafc 0%, #f0f4fa 100%);
    --header-bottom-line: linear-gradient(90deg, transparent, rgba(0, 150, 230, 0.2), rgba(124, 58, 237, 0.1), transparent);
    --sidebar-right-line: linear-gradient(180deg, rgba(0, 150, 230, 0.15), transparent 30%, transparent 70%, rgba(124, 58, 237, 0.08));
    --tab-header-gradient: linear-gradient(90deg, #ffffff, #f8fafc);

    --scrollbar-thumb: rgba(0, 150, 230, 0.15);
    --scrollbar-thumb-hover: rgba(0, 150, 230, 0.3);
    --scrollbar-track: rgba(0, 0, 0, 0.02);

    --close-btn-bg: rgba(0, 0, 0, 0.04);
    --close-btn-border: rgba(0, 0, 0, 0.06);
    --close-btn-line: rgba(0, 0, 0, 0.3);
    --close-btn-hover-bg: rgba(220, 38, 38, 0.1);
    --close-btn-hover-border: rgba(220, 38, 38, 0.35);
    --close-btn-hover-line: #dc2626;
    --close-btn-hover-shadow: 0 0 10px rgba(220, 38, 38, 0.15);
    --close-btn-selected-bg: rgba(0, 150, 230, 0.08);
    --close-btn-selected-border: rgba(0, 150, 230, 0.2);
    --close-btn-selected-line: rgba(0, 150, 230, 0.7);

    --dot-bg: #dc2626;
    --dot-border: #ffffff;
    --user-panel-gradient: linear-gradient(160deg, #ffffff 0%, #f8fafc 100%);

    --particle-color: 0, 150, 230;

    --theme-switcher-bg: rgba(0, 0, 0, 0.03);
    --theme-switcher-border: rgba(0, 0, 0, 0.06);
    --theme-switcher-color: #5a6a7e;
    --theme-switcher-hover-bg: rgba(0, 150, 230, 0.08);
    --theme-switcher-hover-border: rgba(0, 150, 230, 0.25);
    --theme-switcher-hover-color: #0096e6;
}

[data-theme="silver"] {
    --bg-primary: #e2e8f0;
    --bg-secondary: #edf0f7;
    --bg-tertiary: #d5dbe6;
    --bg-card: #f5f7fb;
    --bg-card-solid: #f0f2f8;
    --bg-input: #dde3ee;
    --bg-input-focus: rgba(59, 130, 246, 0.05);
    --bg-hover: rgba(59, 130, 246, 0.05);
    --bg-selected: rgba(59, 130, 246, 0.07);

    --accent: #3b82f6;
    --accent-rgb: 59, 130, 246;
    --accent-secondary: #6366f1;
    --accent-secondary-rgb: 99, 102, 241;
    --accent-green: #0d9488;
    --accent-green-rgb: 13, 148, 136;
    --accent-gold: #ca8a04;
    --accent-gold-rgb: 202, 138, 4;
    --accent-pink: #9333ea;
    --accent-red: #be123c;
    --accent-red-rgb: 190, 18, 60;

    --text-bright: #0f172a;
    --text-primary: #1e293b;
    --text-secondary: #64748b;
    --text-dim: #94a3b8;
    --text-placeholder: #94a3b8;

    --border-subtle: #cbd5e1;
    --border-glow: rgba(59, 130, 246, 0.18);
    --border-input: #c7ced9;
    --border-input-focus: rgba(59, 130, 246, 0.45);
    --border-card: #c7ced9;
    --border-divider: #cbd5e1;

    --shadow-card: 0 1px 3px rgba(0, 0, 0, 0.06), 0 4px 12px rgba(59, 130, 246, 0.06);
    --shadow-card-hover: 0 8px 30px rgba(59, 130, 246, 0.1), 0 2px 8px rgba(0, 0, 0, 0.08);
    --shadow-glow: 0 0 20px rgba(59, 130, 246, 0.1);
    --shadow-input-focus: 0 0 0 3px rgba(59, 130, 246, 0.1), 0 0 16px rgba(59, 130, 246, 0.05);
    --shadow-btn: 0 4px 16px rgba(59, 130, 246, 0.2), 0 2px 6px rgba(99, 102, 241, 0.1);

    --logo-gradient: linear-gradient(135deg, #3b82f6 0%, #6366f1 100%);
    --btn-gradient: linear-gradient(135deg, #3b82f6 0%, #6366f1 100%);
    --btn-gradient-hover: linear-gradient(135deg, #6366f1 0%, #3b82f6 100%);
    --header-gradient: linear-gradient(90deg, #e8ecf4 0%, #edf0f7 50%, #e2e8f0 100%);
    --sidebar-gradient: linear-gradient(180deg, #e8ecf4 0%, #dde3ee 100%);
    --header-bottom-line: linear-gradient(90deg, transparent, rgba(59, 130, 246, 0.2), rgba(99, 102, 241, 0.12), transparent);
    --sidebar-right-line: linear-gradient(180deg, rgba(59, 130, 246, 0.18), transparent 30%, transparent 70%, rgba(99, 102, 241, 0.1));
    --tab-header-gradient: linear-gradient(90deg, #e8ecf4, #edf0f7);

    --scrollbar-thumb: rgba(59, 130, 246, 0.18);
    --scrollbar-thumb-hover: rgba(59, 130, 246, 0.32);
    --scrollbar-track: rgba(0, 0, 0, 0.04);

    --close-btn-bg: rgba(0, 0, 0, 0.05);
    --close-btn-border: rgba(0, 0, 0, 0.08);
    --close-btn-line: rgba(0, 0, 0, 0.35);
    --close-btn-hover-bg: rgba(190, 18, 60, 0.1);
    --close-btn-hover-border: rgba(190, 18, 60, 0.35);
    --close-btn-hover-line: #be123c;
    --close-btn-hover-shadow: 0 0 10px rgba(190, 18, 60, 0.15);
    --close-btn-selected-bg: rgba(59, 130, 246, 0.08);
    --close-btn-selected-border: rgba(59, 130, 246, 0.22);
    --close-btn-selected-line: rgba(59, 130, 246, 0.7);

    --dot-bg: #be123c;
    --dot-border: #edf0f7;
    --user-panel-gradient: linear-gradient(160deg, #f5f7fb 0%, #edf0f7 100%);

    --particle-color: 59, 130, 246;

    --theme-switcher-bg: rgba(0, 0, 0, 0.04);
    --theme-switcher-border: #cbd5e1;
    --theme-switcher-color: #64748b;
    --theme-switcher-hover-bg: rgba(59, 130, 246, 0.08);
    --theme-switcher-hover-border: rgba(59, 130, 246, 0.25);
    --theme-switcher-hover-color: #3b82f6;
}

[data-theme="bright"] {
    --bg-primary: #ffffff;
    --bg-secondary: #f8fafc;
    --bg-tertiary: #f1f5f9;
    --bg-card: #ffffff;
    --bg-card-solid: #ffffff;
    --bg-input: #f1f5f9;
    --bg-input-focus: rgba(0, 102, 255, 0.04);
    --bg-hover: rgba(0, 102, 255, 0.05);
    --bg-selected: rgba(0, 102, 255, 0.08);

    --accent: #0066ff;
    --accent-rgb: 0, 102, 255;
    --accent-secondary: #5856d6;
    --accent-secondary-rgb: 88, 86, 214;
    --accent-green: #10b981;
    --accent-green-rgb: 16, 185, 129;
    --accent-gold: #f59e0b;
    --accent-gold-rgb: 245, 158, 11;
    --accent-pink: #ec4899;
    --accent-red: #ef4444;
    --accent-red-rgb: 239, 68, 68;

    --text-bright: #0f172a;
    --text-primary: #1e293b;
    --text-secondary: #475569;
    --text-dim: #94a3b8;
    --text-placeholder: #94a3b8;

    --border-subtle: #e2e8f0;
    --border-glow: rgba(0, 102, 255, 0.18);
    --border-input: #e2e8f0;
    --border-input-focus: rgba(0, 102, 255, 0.45);
    --border-card: #e2e8f0;
    --border-divider: #e2e8f0;

    --shadow-card: 0 1px 2px rgba(0, 0, 0, 0.04), 0 2px 8px rgba(0, 0, 0, 0.04);
    --shadow-card-hover: 0 4px 16px rgba(0, 0, 0, 0.08), 0 0 0 1px rgba(0, 102, 255, 0.08);
    --shadow-glow: 0 0 20px rgba(0, 102, 255, 0.1);
    --shadow-input-focus: 0 0 0 3px rgba(0, 102, 255, 0.1);
    --shadow-btn: 0 4px 16px rgba(0, 102, 255, 0.2), 0 2px 6px rgba(88, 86, 214, 0.1);

    --logo-gradient: linear-gradient(135deg, #0066ff 0%, #5856d6 100%);
    --btn-gradient: linear-gradient(135deg, #0066ff 0%, #5856d6 100%);
    --btn-gradient-hover: linear-gradient(135deg, #5856d6 0%, #0066ff 100%);
    --header-gradient: #ffffff;
    --sidebar-gradient: #f8fafc;
    --header-bottom-line: linear-gradient(90deg, transparent, rgba(0, 102, 255, 0.15), rgba(88, 86, 214, 0.08), transparent);
    --sidebar-right-line: #e2e8f0;
    --tab-header-gradient: linear-gradient(90deg, #ffffff, #f8fafc);

    --scrollbar-thumb: #cbd5e1;
    --scrollbar-thumb-hover: #94a3b8;
    --scrollbar-track: transparent;

    --close-btn-bg: rgba(0, 0, 0, 0.04);
    --close-btn-border: rgba(0, 0, 0, 0.08);
    --close-btn-line: rgba(0, 0, 0, 0.3);
    --close-btn-hover-bg: rgba(239, 68, 68, 0.1);
    --close-btn-hover-border: rgba(239, 68, 68, 0.35);
    --close-btn-hover-line: #ef4444;
    --close-btn-hover-shadow: 0 0 10px rgba(239, 68, 68, 0.12);
    --close-btn-selected-bg: rgba(0, 102, 255, 0.08);
    --close-btn-selected-border: rgba(0, 102, 255, 0.2);
    --close-btn-selected-line: rgba(0, 102, 255, 0.7);

    --dot-bg: #ef4444;
    --dot-border: #ffffff;
    --user-panel-gradient: linear-gradient(160deg, #ffffff 0%, #f8fafc 100%);

    --particle-color: 0, 102, 255;

    --theme-switcher-bg: rgba(0, 0, 0, 0.03);
    --theme-switcher-border: #e2e8f0;
    --theme-switcher-color: #475569;
    --theme-switcher-hover-bg: rgba(0, 102, 255, 0.08);
    --theme-switcher-hover-border: rgba(0, 102, 255, 0.25);
    --theme-switcher-hover-color: #0066ff;
}

html {
    transition: background-color 0.4s ease;
}

.theme-switch-btn {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--theme-switcher-bg);
    border: 1px solid var(--theme-switcher-border);
    color: var(--theme-switcher-color);
    cursor: pointer;
    transition: all 0.3s ease;
    flex-shrink: 0;
}

.theme-switch-btn:hover {
    background: var(--theme-switcher-hover-bg);
    border-color: var(--theme-switcher-hover-border);
    color: var(--theme-switcher-hover-color);
    box-shadow: var(--shadow-glow);
}

.theme-switch-btn svg {
    width: 16px;
    height: 16px;
    transition: transform 0.4s ease;
}

.theme-switch-btn:hover svg {
    transform: rotate(30deg);
}

[data-theme="light"] .theme-switch-btn:hover svg {
    transform: rotate(-30deg);
}

[data-theme="silver"] .theme-switch-btn:hover svg {
    transform: rotate(30deg);
}
