/* Base & Global Variables */
:root {
    /* Shared Accents (Constant across themes) */
    --primary-blue: #1877f2;
    --accent-cyan: #00bcd4;
    --status-online: #45bd62;
    --primary-gradient: linear-gradient(135deg, #00d4ff, #7c3aed);
    --accent-purple: #7c3aed;
    --accent-pink: #ec4899;
    --accent-teal: #14b8a6;
    --warning: #f59e0b;
    --danger: #ef4444;
    --glow-cyan: 0 0 15px rgba(0, 212, 255, 0.4);
    --white: #ffffff;

    /* Default Theme Variables (Dark Mode) */
    --bg-main: #18191a;
    --bg-card: #242526;
    --bg-input: rgba(255, 255, 255, 0.08);
    --bg-overlay: rgba(0, 212, 255, 0.12);
    --bg-hover: rgba(255, 255, 255, 0.05);
    --text-main: #e4e6eb;
    --text-color: #e4e6eb;
    --text-secondary: #b0b3b8;
    --text-muted: #8a8d91;
    --border-color: rgba(255, 255, 255, 0.1);
    --grid-color: rgba(255, 255, 255, 0.02);
    --glass-bg: rgba(24, 25, 26, 0.8);
    --glass-border: rgba(255, 255, 255, 0.1);
    --glass-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37);
    --card-bg: var(--bg-card);

    /* Compatibility Mappings */
    --dark-bg: var(--bg-main);
    --bg-dark: var(--bg-main);
}

/* Light Theme Overrides */
.light-theme {
    --bg-main: #ffffff;
    --bg-card: #f8f9fa;
    --bg-input: #f0f2f5;
    --bg-overlay: rgba(0, 212, 255, 0.05);
    --bg-hover: rgba(0, 0, 0, 0.05);
    --text-main: #000000;
    --text-color: #000000;
    --text-secondary: #4b4f56;
    --text-muted: #8a8d91;
    --border-color: #dddfe2;
    --grid-color: rgba(0, 0, 0, 0.05);
    --glass-bg: rgba(255, 255, 255, 0.8);
    --glass-border: rgba(0, 0, 0, 0.1);
    --glass-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.15);
    --white: #000000;
}

/* Explicit dark theme class for manual selection */
.dark-theme {
    /* inherits from :root defaults */
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    background-color: var(--bg-main);
    color: var(--text-color);
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    line-height: 1.6;
    overflow-x: hidden;
}

a {
    text-decoration: none;
    color: inherit;
    transition: 0.3s;
}

img {
    max-width: 100%;
    height: auto;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: var(--bg-main);
}

::-webkit-scrollbar-thumb {
    background: var(--bg-card);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--accent-purple);
}

/* Global Animations */
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

.fade-in {
    animation: fadeIn 0.5s ease forwards;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

@keyframes pulse-glow {
    0%, 100% { filter: drop-shadow(0 0 5px rgba(0, 212, 255, 0.3)); }
    50% { filter: drop-shadow(0 0 15px rgba(0, 212, 255, 0.6)); }
}

@keyframes badge-pulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.1); }
}