/* CSS Variables for Theme System */
:root {
    --bg-primary: #ffffff;
    --bg-secondary: #f7f9fb;
    --bg-surface: #f7f9fb;
    --bg-surface-variant: #e0e3e5;
    --bg-surface-container: #eceef0;
    --bg-surface-container-high: #e6e8ea;
    --bg-surface-container-low: #f2f4f6;
    --bg-surface-container-lowest: #ffffff;
    
    --text-primary: #191c1e;
    --text-secondary: #434656;
    --text-surface: #191c1e;
    --text-surface-variant: #434656;
    --text-outline: #737688;
    --text-outline-variant: #c3c5d9;
    
    --color-primary: #003ec7;
    --color-primary-container: #0052ff;
    --color-on-primary: #ffffff;
    --color-on-primary-container: #dfe3ff;
    --color-primary-fixed: #dde1ff;
    --color-on-primary-fixed: #001452;
    
    --color-secondary: #4d9bd6d2;
    --color-secondary-container: #d5e3fc;
    --color-on-secondary: #ffffff;
    --color-on-secondary-container: #57657a;
    
    --color-tertiary: #005569;
    --color-tertiary-container: #006f89;
    --color-on-tertiary: #ffffff;
    --color-on-tertiary-container: #bcecff;
    
    --glass-bg: rgba(255, 255, 255, 0.7);
    --glass-border: rgba(195, 197, 217, 0.15);
    --glass-shadow: rgba(0, 0, 0, 0.05);
    
    --transition-duration: 0.3s;
}

/* Dark Mode Variables */
body.dark-mode {
    --bg-primary: #0f0f0f;
    --bg-secondary: #1a1a1a;
    --bg-surface: #1a1a1a;
    --bg-surface-variant: #2a2a2a;
    --bg-surface-container: #252525;
    --bg-surface-container-high: #303030;
    --bg-surface-container-low: #1f1f1f;
    --bg-surface-container-lowest: #0a0a0a;
    
    --text-primary: #ffffff;
    --text-secondary: #b0b0b0;
    --text-surface: #ffffff;
    --text-surface-variant: #b0b0b0;
    --text-outline: #808080;
    --text-outline-variant: #404040;
    
    /* Map Tailwind Variables */
    --color-background: #0f0f0f;
    --color-on-background: #ffffff;
    --color-surface: #1a1a1a;
    --color-on-surface: #ffffff;
    --color-surface-variant: #2a2a2a;
    --color-on-surface-variant: #b0b0b0;
    --color-outline: #808080;
    --color-outline-variant: #404040;
    --color-surface-container-lowest: #0a0a0a;
    --color-surface-container-low: #1f1f1f;
    --color-surface-container: #252525;
    --color-surface-container-high: #303030;
    
    --color-primary: #4d8dff;
    --color-primary-container: #003d99;
    --color-on-primary: #ffffff;
    --color-on-primary-container: #e6f0ff;
    --color-primary-fixed: #e6f0ff;
    --color-on-primary-fixed: #002660;
    
    --color-secondary: #a0a0a0;
    --color-secondary-container: #2a2a2a;
    --color-on-secondary: #ffffff;
    --color-on-secondary-container: #a0a0a0;
    
    --color-tertiary: #4dd0e1;
    --color-tertiary-container: #004d5e;
    --color-on-tertiary: #ffffff;
    --color-on-tertiary-container: #b3e5f5;
    
    --glass-bg: rgba(26, 26, 26, 0.8);
    --glass-border: rgba(255, 255, 255, 0.1);
    --glass-shadow: rgba(0, 0, 0, 0.3);
}

/* Apply CSS Variables to Existing Classes */
body {
    background-color: var(--bg-primary);
    color: var(--text-primary);
    transition: background-color var(--transition-duration) ease, color var(--transition-duration) ease;
}

.bg-background { background-color: var(--bg-primary); }
.bg-surface { background-color: var(--bg-surface); }
.bg-surface-container-low { background-color: var(--bg-surface-container-low); }
.bg-surface-container-lowest { background-color: var(--bg-surface-container-lowest); }
.bg-surface-container-high { background-color: var(--bg-surface-container-high); }

.text-on-background { color: var(--text-primary); }
.text-on-surface { color: var(--text-surface); }
.text-on-surface-variant { color: var(--text-surface-variant); }
.text-primary { color: var(--color-primary); }
.text-tertiary { color: var(--color-tertiary); }

.border-outline-variant { border-color: var(--text-outline-variant); }

/* Dark Mode Specific Styles */
body.dark-mode .glass-card {
    background: var(--glass-bg);
    border-color: var(--glass-border);
    box-shadow: 0 4px 20px var(--glass-shadow);
}

body.dark-mode .navbar-glass-scrolled {
    background: rgba(26, 26, 26, 0.95) !important;
    border: 1px solid rgba(77, 141, 255, 0.2) !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4), 0 2px 8px rgba(0, 0, 0, 0.2) !important;
}

body.dark-mode .gradient-text {
    background-image: linear-gradient(90deg, var(--color-primary), var(--color-primary-container), var(--color-tertiary));
}

body.dark-mode .mobile-menu-panel {
    background: rgba(26, 26, 26, 0.95);
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
}

body.dark-mode .mobile-menu-item:hover,
body.dark-mode .mobile-menu-item:focus {
    background-color: rgba(77, 141, 255, 0.1);
    color: var(--color-primary);
}

body.dark-mode .mobile-menu-item-active {
    background-color: rgba(77, 141, 255, 0.2) !important;
    color: var(--color-primary) !important;
}

/* Comprehensive Dark Mode Coverage */
body.dark-mode {
    background-color: var(--bg-primary) !important;
}

/* Hero Section Dark Mode */
body.dark-mode header#home {
    background-image: linear-gradient(rgba(15, 15, 15, 0.85), rgba(26, 26, 26, 0.9)), url('static/images/nita/nita_1.png') !important;
}

body.dark-mode header#home h1 {
    color: #ffffff !important;
    text-shadow: 0 5px 15px rgba(0, 0, 0, 0.5) !important;
}

body.dark-mode header#home p {
    color: #e0e0e0 !important;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3) !important;
}

/* All Sections Dark Mode */
body.dark-mode section {
    background-color: var(--bg-surface) !important;
}

body.dark-mode .bg-gradient-to-br {
    background: linear-gradient(135deg, var(--bg-surface-container-low), var(--bg-surface-container)) !important;
}

/* Cards and Containers Dark Mode */
body.dark-mode .glass-card {
    background: var(--glass-bg) !important;
    border-color: var(--glass-border) !important;
    color: var(--text-primary) !important;
}

body.dark-mode .bg-surface-container-lowest {
    background-color: var(--bg-surface-container-lowest) !important;
}

body.dark-mode .bg-surface-container-low {
    background-color: var(--bg-surface-container-low) !important;
}

body.dark-mode .bg-surface-container-high {
    background-color: var(--bg-surface-container-high) !important;
}

/* Text Colors Dark Mode */
body.dark-mode .text-black {
    color: var(--text-primary) !important;
}

body.dark-mode .text-on-surface {
    color: var(--text-surface) !important;
}

body.dark-mode .text-on-surface-variant {
    color: var(--text-surface-variant) !important;
}

body.dark-mode .text-on-background {
    color: var(--text-primary) !important;
}

/* Buttons Dark Mode */
body.dark-mode button {
    background-color: var(--bg-surface-container) !important;
    color: var(--text-primary) !important;
    border-color: var(--glass-border) !important;
}

body.dark-mode .bg-gradient-to-r {
    background: linear-gradient(90deg, var(--color-primary), var(--color-primary-container)) !important;
}

/* Links Dark Mode */
body.dark-mode a {
    color: var(--color-primary) !important;
}

body.dark-mode a:hover {
    color: var(--color-primary-container) !important;
}

/* Form Elements Dark Mode */
body.dark-mode input,
body.dark-mode textarea,
body.dark-mode select {
    background-color: var(--bg-surface-container-low) !important;
    color: var(--text-primary) !important;
    border-color: var(--text-outline-variant) !important;
}

/* Badges and Pills Dark Mode */
body.dark-mode .rounded-full {
    background-color: var(--bg-surface-container) !important;
    color: var(--text-primary) !important;
    border-color: var(--glass-border) !important;
}

/* Icons Dark Mode */
body.dark-mode .material-symbols-outlined {
    color: var(--text-primary) !important;
}

body.dark-mode .text-primary .material-symbols-outlined {
    color: var(--color-primary) !important;
}

/* Equal-height keynote speaker cards */
.speakers-card-grid {
    grid-auto-rows: minmax(0, 1fr);
}

.speakers-card-grid > div {
    height: 100%;
}

/* Hover Effects Dark Mode */
body.dark-mode .card-hover:hover {
    background-color: var(--bg-surface-container-high) !important;
    border-color: var(--color-primary) !important;
    box-shadow: 0 20px 40px -5px rgba(77, 141, 255, 0.1) !important;
}

/* Animations and Decorative Elements Dark Mode */
body.dark-mode .animate-blob {
    background: linear-gradient(135deg, var(--color-primary), var(--color-tertiary)) !important;
    opacity: 0.3 !important;
}

/* Footer Dark Mode */
body.dark-mode footer {
    background-color: var(--bg-surface) !important;
    color: var(--text-primary) !important;
}

/* Specific Section Fixes */
body.dark-mode .bg-primary\/10 {
    background-color: rgba(77, 141, 255, 0.1) !important;
}

body.dark-mode .bg-tertiary\/10 {
    background-color: rgba(77, 208, 225, 0.1) !important;
}

body.dark-mode .bg-primary\/20 {
    background-color: rgba(77, 141, 255, 0.2) !important;
}

body.dark-mode .border-primary\/20 {
    border-color: rgba(77, 141, 255, 0.2) !important;
}

body.dark-mode .border-white\/60 {
    border-color: var(--glass-border) !important;
}

body.dark-mode .from-white\/90 {
    background-color: var(--glass-bg) !important;
}

body.dark-mode .to-surface-container-highest\/80 {
    background-color: var(--bg-surface-container-low) !important;
}

/* Override specific hardcoded styles */

body.dark-mode .bg-white {
    background-color: var(--bg-surface-container-lowest) !important;
}

body.dark-mode .text-gray-600,
body.dark-mode .text-gray-700,
body.dark-mode .text-gray-800 {
    color: var(--text-surface-variant) !important;
}

/* Dark mode toggle button styles */
#dark-mode-toggle {
    transition: all var(--transition-duration) ease;
}

#dark-mode-toggle:hover {
    transform: scale(1.05);
    box-shadow: 0 4px 12px var(--glass-shadow);
}

body.dark-mode #dark-mode-toggle {
    background: rgba(77, 141, 255, 0.1);
    border-color: rgba(77, 141, 255, 0.3);
    color: var(--color-primary);
}

body.dark-mode #dark-mode-toggle:hover {
    background: rgba(77, 141, 255, 0.2);
    box-shadow: 0 4px 12px rgba(77, 141, 255, 0.3);
}

* {
    transition: background-color var(--transition-duration) ease,
                color var(--transition-duration) ease,
                border-color var(--transition-duration) ease,
                box-shadow var(--transition-duration) ease !important;
}

/* Respect user's motion preferences */
@media (prefers-reduced-motion: reduce) {
    * {
        transition: none !important;
    }
}


/* Support for mobile menu in other pages */
body.dark-mode #mobile-menu {
    background: rgba(26, 26, 26, 0.95) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
}
