/** * Gooner Training Academy - Unified Color System * Central color palette for visual consistency across all pages */ :root { /* ===== PRIMARY BRAND COLORS ===== */ --color-primary: #00d4ff; /* Neon Cyan - Main brand color */ --color-primary-dark: #00a3cc; /* Darker cyan */ --color-primary-light: #33ddff; /* Lighter cyan */ --color-secondary: #9b59b6; /* Purple - Secondary accent */ --color-secondary-dark: #8e44ad; /* Darker purple */ --color-secondary-light: #c29bd6; /* Lighter purple */ /* ===== ACCENT COLORS ===== */ --color-accent-pink: #ff006e; /* Hot pink */ --color-accent-red: #e74c3c; /* Red for warnings/danger */ --color-accent-red-dark: #c0392b; /* Darker red */ --color-accent-green: #00ff88; /* Success green */ --color-accent-blue: #3498db; /* Info blue */ --color-accent-gold: #ffd700; /* Gold accent */ /* Semantic aliases for common uses */ --color-warning: #f39c12; /* Orange-gold warning color */ --color-success: var(--color-accent-green); /* Success state */ --color-success-light: var(--bg-secondary-overlay-20); /* Light success (theme-aware) */ --color-error: var(--color-accent-red); /* Error state */ --color-info: var(--color-accent-blue); /* Info state */ --color-danger: var(--color-accent-red); /* Danger/critical (uses accent red) */ --color-gold: var(--color-accent-gold); /* Gold (alias) */ --color-orange: var(--color-warning); /* Orange (uses warning color) */ --color-pink: var(--color-accent-pink); /* Deep pink (alias) */ --color-purple: var(--color-secondary); /* Purple (uses theme secondary) */ --color-accent: var(--color-primary); /* Blue accent (uses theme primary) */ /* ===== BACKGROUND COLORS ===== */ --bg-primary: #0a0a0a; /* Nearly black */ --bg-secondary: #1a1a1a; /* Dark gray */ --bg-tertiary: #2d1b3d; /* Dark purple tint */ --bg-card: #1e1e2e; /* Card background */ --bg-black: var(--bg-primary); /* Pure black (uses bg-primary) */ /* Background overlays with opacity */ --bg-overlay-light: rgba(0, 0, 0, 0.7); --bg-overlay-medium: rgba(0, 0, 0, 0.8); --bg-overlay-heavy: rgba(0, 0, 0, 0.9); --bg-overlay-glass: rgba(0, 0, 0, 0.5); /* Colored overlays */ --bg-primary-overlay-10: rgba(0, 212, 255, 0.1); --bg-primary-overlay-20: rgba(0, 212, 255, 0.2); --bg-secondary-overlay-10: rgba(155, 89, 182, 0.1); --bg-secondary-overlay-20: rgba(155, 89, 182, 0.2); --bg-secondary-overlay-30: rgba(155, 89, 182, 0.3); --bg-secondary-overlay-90: var(--bg-overlay-heavy); /* Dark overlay (uses overlay-heavy) */ /* ===== TEXT COLORS ===== */ --text-primary: #ffffff; /* Pure white */ --text-secondary: #e8e8e8; /* Light gray */ --text-muted: #bdc3c7; /* Muted gray */ --text-dim: #7f8c8d; /* Dim gray */ --text-white: #fff; /* Pure white (alias) */ --text-dark: #2c3e50; /* Dark text for light backgrounds */ /* ===== BORDER COLORS ===== */ --border-primary: var(--color-primary); --border-secondary: var(--color-secondary); --border-subtle: rgba(255, 255, 255, 0.1); --border-medium: rgba(255, 255, 255, 0.2); --border-strong: rgba(255, 255, 255, 0.3); /* ===== GRADIENTS ===== */ --gradient-primary: linear-gradient(135deg, var(--bg-secondary), var(--bg-tertiary)); --gradient-accent: linear-gradient(135deg, var(--color-primary), var(--color-secondary)); --gradient-red: linear-gradient(135deg, var(--color-accent-red), var(--color-accent-red-dark)); --gradient-dark: linear-gradient(135deg, #2c3e50, #34495e); /* Page background gradient */ --color-background-gradient: linear-gradient(135deg, #0f0f23 0%, #1a1a3a 50%, #0f0f23 100%); /* ===== SHADOWS ===== */ --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.2); --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.3); --shadow-lg: 0 4px 15px rgba(0, 0, 0, 0.4); --shadow-xl: 0 6px 20px rgba(0, 0, 0, 0.5); /* Glow shadows */ --shadow-glow-primary: 0 0 15px rgba(0, 212, 255, 0.4); --shadow-glow-secondary: 0 0 20px rgba(155, 89, 182, 0.5); --shadow-glow-red: 0 4px 15px rgba(231, 76, 60, 0.3); /* ===== SEMANTIC COLORS ===== */ /* Buttons */ --btn-primary-bg: var(--bg-primary-overlay-20); --btn-primary-border: var(--color-primary); --btn-primary-text: var(--text-primary); --btn-primary-hover-bg: var(--bg-primary-overlay-20); --btn-primary-hover-border: var(--color-primary-light); --btn-secondary-bg: rgba(255, 255, 255, 0.1); --btn-secondary-border: rgba(255, 255, 255, 0.2); --btn-secondary-text: var(--text-primary); --btn-secondary-hover-bg: rgba(255, 255, 255, 0.15); --btn-secondary-hover-border: rgba(255, 255, 255, 0.3); --btn-danger-bg: rgba(231, 76, 60, 0.3); --btn-danger-border: var(--color-accent-red); --btn-danger-text: var(--text-primary); --btn-danger-hover-bg: rgba(231, 76, 60, 0.4); --btn-danger-hover-border: #ec7063; /* Headers */ --header-bg: var(--bg-overlay-heavy); --header-border: var(--border-primary); --header-title-color: var(--color-primary); --header-subtitle-color: var(--text-secondary); /* Cards */ --card-bg: rgba(20, 20, 20, 0.95); --card-border: var(--border-secondary); --card-hover-border: var(--color-primary); --card-shadow: var(--shadow-lg); /* Status colors */ --status-success: var(--color-accent-green); --status-warning: #f39c12; --status-error: var(--color-accent-red); --status-info: var(--color-accent-blue); /* ===== SPACING & SIZING ===== */ --border-radius-sm: 5px; --border-radius-md: 10px; --border-radius-lg: 15px; --border-radius-xl: 20px; --spacing-xs: 0.25rem; --spacing-sm: 0.5rem; --spacing-md: 1rem; --spacing-lg: 1.5rem; --spacing-xl: 2rem; /* ===== TRANSITIONS ===== */ --transition-fast: 0.15s ease; --transition-normal: 0.3s ease; --transition-slow: 0.5s ease; } /* ===== THEME SELECTOR UI STYLES ===== */ .theme-selector { display: flex; align-items: center; gap: 0.5rem; } .theme-selector label { color: var(--text-secondary); font-size: 0.9rem; white-space: nowrap; } .theme-select { background: var(--btn-secondary-bg); border: 1px solid var(--btn-secondary-border); color: var(--text-primary); padding: 0.4rem 0.8rem; border-radius: var(--border-radius-sm); cursor: pointer; font-size: 0.9rem; transition: all var(--transition-fast); } .theme-select:hover { background: var(--btn-secondary-hover-bg); border-color: var(--btn-secondary-hover-border); } .theme-select:focus { outline: none; border-color: var(--color-primary); box-shadow: var(--shadow-glow-primary); } /* Theme toggle buttons (compact version) */ .theme-toggle { display: flex; align-items: center; gap: 0.3rem; background: var(--btn-secondary-bg); border: 1px solid var(--btn-secondary-border); border-radius: var(--border-radius-sm); padding: 0.2rem 0.4rem; } .theme-btn { background: transparent; border: none; color: var(--text-primary); cursor: pointer; padding: 0.2rem 0.4rem; font-size: 0.8rem; transition: all var(--transition-fast); } .theme-btn:hover { color: var(--color-primary); transform: scale(1.1); } .theme-label { font-size: 1.2rem; padding: 0 0.2rem; user-select: none; } /* Dark mode variant (reserved for future light mode support) */ /* ===== THEME VARIANTS ===== */ /* Electric Violet Theme */ [data-theme="electric-violet"] { --color-primary: #8386f5; --color-primary-dark: #3d43b4; --color-primary-light: #a5a8f7; --color-secondary: #1afe49; --color-secondary-dark: #083e12; --color-secondary-light: #4ffe75; --bg-primary: #041348; --bg-secondary: #041348; --bg-tertiary: #083e12; --header-title-color: #8386f5; --header-border: #8386f5; --border-primary: #8386f5; --btn-primary-border: #8386f5; --shadow-glow-primary: 0 0 15px rgba(131, 134, 245, 0.4); --shadow-glow-secondary: 0 0 20px rgba(26, 254, 73, 0.5); --bg-primary-overlay-10: rgba(131, 134, 245, 0.1); --bg-primary-overlay-20: rgba(131, 134, 245, 0.2); --bg-secondary-overlay-10: rgba(26, 254, 73, 0.1); --bg-secondary-overlay-20: rgba(26, 254, 73, 0.2); --color-success: #1afe49; --status-success: #1afe49; --color-background-gradient: linear-gradient(135deg, #041348 0%, #083e12 50%, #041348 100%); } /* Magenta Dream Theme */ [data-theme="magenta-dream"] { --color-primary: #f887ff; --color-primary-dark: #de004e; --color-primary-light: #faa8ff; --color-secondary: #de004e; --color-secondary-dark: #860029; --color-secondary-light: #ff3378; --bg-primary: #29132e; --bg-secondary: #321450; --bg-tertiary: #29132e; --header-title-color: #f887ff; --header-border: #f887ff; --border-primary: #f887ff; --btn-primary-border: #f887ff; --shadow-glow-primary: 0 0 15px rgba(248, 135, 255, 0.4); --shadow-glow-secondary: 0 0 20px rgba(222, 0, 78, 0.5); --bg-primary-overlay-10: rgba(248, 135, 255, 0.1); --bg-primary-overlay-20: rgba(248, 135, 255, 0.2); --bg-secondary-overlay-10: rgba(222, 0, 78, 0.1); --bg-secondary-overlay-20: rgba(222, 0, 78, 0.2); --color-error: #860029; --color-accent-red: #860029; --status-error: #860029; --color-background-gradient: linear-gradient(135deg, #29132e 0%, #321450 50%, #29132e 100%); } /* Hot Pink Fury Theme */ [data-theme="hot-pink-fury"] { --color-primary: #ff124f; --color-primary-dark: #ff00a0; --color-primary-light: #ff4575; --color-secondary: #7a04eb; --color-secondary-dark: #120458; --color-secondary-light: #a136ff; --bg-primary: #120458; --bg-secondary: #120458; --bg-tertiary: #7a04eb; --header-title-color: #ff124f; --header-border: #ff124f; --border-primary: #ff124f; --btn-primary-border: #ff124f; --shadow-glow-primary: 0 0 15px rgba(255, 18, 79, 0.4); --shadow-glow-secondary: 0 0 20px rgba(122, 4, 235, 0.5); --bg-primary-overlay-10: rgba(255, 18, 79, 0.1); --bg-primary-overlay-20: rgba(255, 18, 79, 0.2); --bg-secondary-overlay-10: rgba(122, 4, 235, 0.1); --bg-secondary-overlay-20: rgba(122, 4, 235, 0.2); --bg-secondary-overlay-30: rgba(122, 4, 235, 0.3); --color-accent-pink: #fe75fe; --color-background-gradient: linear-gradient(135deg, #120458 0%, #7a04eb 50%, #120458 100%); } /* Purple Neon Dream Theme */ [data-theme="purple-neon-dream"] { --color-primary: #fe00fe; --color-primary-dark: #7700a6; --color-primary-light: #ff4dff; --color-secondary: #defe47; --color-secondary-dark: #00b3fe; --color-secondary-light: #f4ff85; --bg-primary: #0016ee; --bg-secondary: #7700a6; --bg-tertiary: #0016ee; --header-title-color: #fe00fe; --header-border: #fe00fe; --border-primary: #fe00fe; --btn-primary-border: #fe00fe; --shadow-glow-primary: 0 0 15px rgba(254, 0, 254, 0.4); --shadow-glow-secondary: 0 0 20px rgba(222, 254, 71, 0.5); --bg-primary-overlay-10: rgba(254, 0, 254, 0.1); --bg-primary-overlay-20: rgba(254, 0, 254, 0.2); --bg-secondary-overlay-10: rgba(222, 254, 71, 0.1); --bg-secondary-overlay-20: rgba(222, 254, 71, 0.2); --color-accent-blue: #00b3fe; --color-background-gradient: linear-gradient(135deg, #0016ee 0%, #7700a6 50%, #0016ee 100%); } /* Crimson Passion Theme */ [data-theme="crimson-passion"] { --color-primary: #ff2a6d; --color-primary-dark: #f70e0e; --color-primary-light: #ff5c8a; --color-secondary: #aa477e; --color-secondary-dark: #005678; --color-secondary-light: #c96b9d; --bg-primary: #01012b; --bg-secondary: #005678; --bg-tertiary: #aa477e; --header-title-color: #ff2a6d; --header-border: #ff2a6d; --border-primary: #ff2a6d; --btn-primary-border: #ff2a6d; --shadow-glow-primary: 0 0 15px rgba(255, 42, 109, 0.4); --shadow-glow-secondary: 0 0 20px rgba(170, 71, 126, 0.5); --bg-primary-overlay-10: rgba(255, 42, 109, 0.1); --bg-primary-overlay-20: rgba(255, 42, 109, 0.2); --bg-secondary-overlay-10: rgba(170, 71, 126, 0.1); --bg-secondary-overlay-20: rgba(170, 71, 126, 0.2); --color-accent-red: #f70e0e; --color-background-gradient: linear-gradient(135deg, #01012b 0%, #005678 50%, #01012b 100%); } /* Golden Ember Theme */ [data-theme="golden-ember"] { --color-primary: #fdd870; --color-primary-dark: #d0902f; --color-primary-light: #fff69f; --color-secondary: #a15501; --color-secondary-dark: #351409; --color-secondary-light: #c97503; --bg-primary: #351409; --bg-secondary: #351409; --bg-tertiary: #a15501; --header-title-color: #fdd870; --header-border: #fdd870; --border-primary: #fdd870; --btn-primary-border: #fdd870; --shadow-glow-primary: 0 0 15px rgba(253, 216, 112, 0.4); --shadow-glow-secondary: 0 0 20px rgba(161, 85, 1, 0.5); --bg-primary-overlay-10: rgba(253, 216, 112, 0.1); --bg-primary-overlay-20: rgba(253, 216, 112, 0.2); --bg-secondary-overlay-10: rgba(161, 85, 1, 0.1); --bg-secondary-overlay-20: rgba(161, 85, 1, 0.2); --color-accent-gold: #fff69f; --color-warning: #d0902f; --color-background-gradient: linear-gradient(135deg, #351409 0%, #a15501 50%, #351409 100%); } /* Aqua Mist Theme */ [data-theme="aqua-mist"] { --color-primary: #85ebd9; --color-primary-dark: #3d898d; --color-primary-light: #a8f0e2; --color-secondary: #e2dddf; --color-secondary-dark: #b0acb0; --color-secondary-light: #f0ebed; --bg-primary: #2f404d; --bg-secondary: #3d898d; --bg-tertiary: #2f404d; --header-title-color: #85ebd9; --header-border: #85ebd9; --border-primary: #85ebd9; --btn-primary-border: #85ebd9; --shadow-glow-primary: 0 0 15px rgba(133, 235, 217, 0.4); --shadow-glow-secondary: 0 0 20px rgba(61, 137, 141, 0.5); --bg-primary-overlay-10: rgba(133, 235, 217, 0.1); --bg-primary-overlay-20: rgba(133, 235, 217, 0.2); --bg-secondary-overlay-10: rgba(226, 221, 223, 0.1); --bg-secondary-overlay-20: rgba(226, 221, 223, 0.2); --text-muted: #b0acb0; --color-background-gradient: linear-gradient(135deg, #2f404d 0%, #3d898d 50%, #2f404d 100%); } /* Coral Blaze Theme */ [data-theme="coral-blaze"] { --color-primary: #ff184c; --color-primary-dark: #003062; --color-primary-light: #ff577d; --color-secondary: #0a9cf5; --color-secondary-dark: #003062; --color-secondary-light: #5cb8f7; --bg-primary: #003062; --bg-secondary: #003062; --bg-tertiary: #0a9cf5; --header-title-color: #ff184c; --header-border: #ff184c; --border-primary: #ff184c; --btn-primary-border: #ff184c; --shadow-glow-primary: 0 0 15px rgba(255, 24, 76, 0.4); --shadow-glow-secondary: 0 0 20px rgba(10, 156, 245, 0.5); --bg-primary-overlay-10: rgba(255, 24, 76, 0.1); --bg-primary-overlay-20: rgba(255, 24, 76, 0.2); --bg-secondary-overlay-10: rgba(10, 156, 245, 0.1); --bg-secondary-overlay-20: rgba(10, 156, 245, 0.2); --color-accent-pink: #ffccdc; --color-accent-blue: #0a9cf5; --color-background-gradient: linear-gradient(135deg, #003062 0%, #0a9cf5 50%, #003062 100%); }