:root {
    --primary: #e60000;
    --primary-soft: rgba(230, 0, 0, 0.05);
    --bg-page: #f8fafc;
    --bg-card: #ffffff;
    --text-main: #1e293b;
    --text-dim: #64748b;
    --glass-border: rgba(0, 0, 0, 0.05);
    --shadow-sm: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    --shadow-md: 0 10px 15px -3px rgba(0, 0, 0, 0.08);
    --navbar-bg: rgba(255, 255, 255, 0.9);
    --gold: #d97706;
    --silver: #64748b;
    --bronze: #b45309;
}

/* Global Dark Mode Variables */
[data-theme="dark"] {
    --bg-page: #0f172a;
    --bg-card: #1e293b;
    --text-main: #f8fafc;
    --text-dim: #94a3b8;
    --glass-border: rgba(255, 255, 255, 0.1);
    --shadow-sm: 0 4px 6px -1px rgba(0, 0, 0, 0.3);
    --shadow-md: 0 10px 15px -3px rgba(0, 0, 0, 0.5);
    --navbar-bg: rgba(15, 23, 42, 0.9);
    --primary-soft: rgba(230, 0, 0, 0.15);
}

body {
    transition: background-color 0.3s, color 0.3s;
}

/* Dark Mode Sliding Switch */
.theme-switch-wrapper {
    display: flex;
    align-items: center;
    gap: 10px;
}
.theme-switch {
    display: inline-block;
    height: 28px;
    position: relative;
    width: 54px;
}
.theme-switch input {
    display: none;
}
.slider {
    background-color: #e2e8f0;
    bottom: 0;
    cursor: pointer;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    transition: .4s;
    border-radius: 34px;
    display: flex;
    align-items: center;
    padding: 0 5px;
    justify-content: space-between;
    font-size: 12px;
    border: 1px solid var(--glass-border);
}
.slider:before {
    background-color: white;
    bottom: 3px;
    content: "";
    height: 20px;
    left: 4px;
    position: absolute;
    transition: .4s;
    width: 20px;
    border-radius: 50%;
    z-index: 2;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
input:checked + .slider {
    background-color: #1e293b;
}
input:checked + .slider:before {
    transform: translateX(24px);
    background-color: #f8fafc;
}
.slider .icon {
    z-index: 1;
}

/* Page Components Overrides */
[data-theme="dark"] .bg-gold { background: rgba(245, 158, 11, 0.2); color: #fcd34d; border: 1px solid rgba(245, 158, 11, 0.3); }
[data-theme="dark"] .bg-silver { background: rgba(148, 163, 184, 0.2); color: #e2e8f0; border: 1px solid rgba(148, 163, 184, 0.3); }
[data-theme="dark"] .bg-bronze { background: rgba(180, 83, 9, 0.2); color: #fdba74; border: 1px solid rgba(180, 83, 9, 0.3); }
[data-theme="dark"] .bg-normal { background: var(--bg-card); color: var(--text-dim); }

[data-theme="dark"] .section-title { color: var(--text-main); }
[data-theme="dark"] .m-stat-val { color: var(--text-main); }
[data-theme="dark"] .m-match-name { color: var(--text-main); }
[data-theme="dark"] .profile-name { color: var(--text-main); }
[data-theme="dark"] .btn-edit { background: var(--primary); color: white; }

/* index.php Overrides */
[data-theme="dark"] .hero {
    background: radial-gradient(circle at top right, rgba(230, 0, 0, 0.1), transparent), 
                radial-gradient(circle at bottom left, rgba(30, 41, 59, 1), transparent);
}
[data-theme="dark"] .mobile-hero { background: var(--bg-card) !important; }
[data-theme="dark"] .mobile-tournaments-section { background: var(--bg-page) !important; }
[data-theme="dark"] .mobile-podium { background: var(--bg-card) !important; }
[data-theme="dark"] .footer { background: var(--bg-card); border-top: 1px solid var(--glass-border); }

/* mobile menu */
[data-theme="dark"] .bottom-nav { background: var(--bg-page); border-top: 1px solid var(--glass-border); }
[data-theme="dark"] .nav-item { color: var(--text-dim); }
[data-theme="dark"] .nav-item.active { color: var(--primary); }

/* generic fixes */
[data-theme="dark"] table th { background: var(--bg-card); color: var(--text-dim); }
[data-theme="dark"] .card { background: var(--bg-card); border-color: var(--glass-border); }

/* --- Global Components Overrides --- */
[data-theme="dark"] .container { background: var(--bg-card); border-color: var(--glass-border); }
[data-theme="dark"] .header-title, [data-theme="dark"] h1, [data-theme="dark"] h2, [data-theme="dark"] h3, [data-theme="dark"] h4 { color: var(--text-main); }
[data-theme="dark"] .tabs { background: var(--bg-page); border: 1px solid var(--glass-border); }
[data-theme="dark"] .tab-item.active { background: var(--bg-card); color: var(--text-main) !important; }
[data-theme="dark"] .tourney-item { background: var(--bg-card); border-color: var(--glass-border); color: var(--text-main); }
[data-theme="dark"] .tourney-logo { background: var(--bg-page); border-color: var(--glass-border); }
[data-theme="dark"] .tourney-title, [data-theme="dark"] .tourney-title a, [data-theme="dark"] .tourney-loc { color: var(--text-main); }
[data-theme="dark"] .news-item { background: var(--bg-card); border-color: var(--glass-border); }
[data-theme="dark"] .news-title { color: var(--text-main); }
[data-theme="dark"] .news-content, [data-theme="dark"] .news-date { color: var(--text-dim); }
[data-theme="dark"] .rank-card { background: var(--bg-card); border-color: var(--glass-border); }
[data-theme="dark"] .cat-filter { background: var(--bg-page); }
[data-theme="dark"] .player-name { color: var(--text-main); }
[data-theme="dark"] .row-player:hover { background: var(--primary-soft); }
[data-theme="dark"] table th { background: var(--bg-page); color: var(--text-dim); border-bottom-color: var(--glass-border); }
[data-theme="dark"] table td { border-top-color: var(--glass-border); border-bottom-color: var(--glass-border); }

[data-theme="dark"] .calendar-wrapper { background: var(--bg-card); border-color: var(--glass-border); }
[data-theme="dark"] .calendar-grid th { background: var(--bg-page); border-bottom-color: var(--glass-border); }
[data-theme="dark"] .calendar-grid td { border-color: var(--glass-border); }
[data-theme="dark"] .calendar-grid td:hover { background: var(--primary-soft); }
[data-theme="dark"] .today { background: rgba(217, 119, 6, 0.1) !important; }
[data-theme="dark"] .other-month { background: rgba(15, 23, 42, 0.5); }
[data-theme="dark"] .nav-btn { background: var(--bg-card); border: 1px solid var(--glass-border); color: var(--text-main); }
[data-theme="dark"] .current-month-year { color: var(--text-main); }

[data-theme="dark"] .m-event-card, [data-theme="dark"] .m-rank-item, [data-theme="dark"] .m-achieve-card { background: var(--bg-card); border-color: var(--glass-border); }
[data-theme="dark"] .m-event-title, [data-theme="dark"] .m-rank-name { color: var(--text-main); }
[data-theme="dark"] .m-tourney-card div { color: var(--text-main) !important; }

[data-theme="dark"] .info-box { background: var(--bg-page); border: 1px solid var(--glass-border); color: var(--text-main); }
[data-theme="dark"] .content-side, [data-theme="dark"] .profile-side { background: var(--bg-card); border-color: var(--glass-border); }
[data-theme="dark"] .contact-info { background: var(--bg-page); border-color: var(--glass-border); }
[data-theme="dark"] .m-stat-card { background: var(--bg-page); border-color: var(--glass-border); }
[data-theme="dark"] .table-responsive { border-color: var(--glass-border); }
[data-theme="dark"] .btn-detail { background-color: var(--primary); color: white; }
[data-theme="dark"] .btn-detail:hover { background-color: #ff3333; }

