/* ============================================================ WM 2026 Tippspiel — Stadium Elite Design System ============================================================ */ /* --- Dark Mode (Standard) --- */ :root { --bg-deep: #0A0E1A; --bg-mid: #0F1628; --surface-low: #111827; --surface-mid: #151D30; --surface-high: #1C2640; --border-subtle: rgba(255,255,255,0.07); --primary: #4BB7F8; --primary-dim: rgba(75,183,248,0.12); --gold: #FEAE32; --gold-glow: rgba(254,174,50,0.4); --cyan: #69DAFF; --text-primary: #F0F4FF; --text-secondary: rgba(240,244,255,0.55); --text-muted: rgba(240,244,255,0.3); --success: #34D399; --error: #F87171; --radius-sm: 8px; --radius-md: 14px; --radius-lg: 20px; --radius-xl: 28px; --shadow-card: 0 10px 25px rgba(0,0,0,0.25); --card-shine: rgba(255,255,255,0.04); --scrollbar-bg: var(--surface-high); } /* --- Light Mode --- */ [data-theme="light"] { --bg-deep: #F0F4FA; --bg-mid: #E8EEF7; --surface-low: #FFFFFF; --surface-mid: #FFFFFF; --surface-high: #DDE5F0; --border-subtle: rgba(0,0,0,0.08); --primary: #1A8FE3; --primary-dim: rgba(26,143,227,0.10); --gold: #D4880A; --gold-glow: rgba(212,136,10,0.3); --cyan: #0080C6; --text-primary: #0D1526; --text-secondary: rgba(13,21,38,0.6); --text-muted: rgba(13,21,38,0.35); --success: #1AAB72; --error: #D93025; --shadow-card: 0 4px 16px rgba(0,0,0,0.10); --card-shine: rgba(255,255,255,0.7); --scrollbar-bg: var(--surface-high); } *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html, body, #root { height: 100%; background: var(--bg-deep); color: var(--text-primary); font-family: 'Inter', sans-serif; font-size: 15px; -webkit-font-smoothing: antialiased; } /* Scrollbar */ ::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: var(--scrollbar-bg); border-radius: 3px; } /* Utility */ .font-display { font-family: 'Plus Jakarta Sans', sans-serif; } .text-primary { color: var(--primary); } .text-gold { color: var(--gold); } .text-muted { color: var(--text-secondary); } /* Glass Card */ .card { background: var(--surface-mid); border-radius: var(--radius-md); border: 1px solid var(--border-subtle); box-shadow: var(--shadow-card), inset 0 1px 0 var(--border-subtle); position: relative; overflow: hidden; } .card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, var(--card-shine) 0%, transparent 100%); pointer-events: none; } /* Button primary */ button.btn-primary { background: linear-gradient(135deg, var(--primary) 0%, #2196f3 100%); color: #fff; border: none; border-radius: var(--radius-sm); padding: 10px 20px; font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: 14px; cursor: pointer; transition: opacity 0.15s, transform 0.1s; box-shadow: 0 4px 15px rgba(75,183,248,0.3); } button.btn-primary:hover { opacity: 0.9; } button.btn-primary:active { transform: scale(0.97); } button.btn-primary:disabled { opacity: 0.4; cursor: not-allowed; } /* Button ghost */ button.btn-ghost { background: transparent; color: var(--text-secondary); border: 1px solid rgba(255,255,255,0.1); border-radius: var(--radius-sm); padding: 8px 16px; font-size: 13px; cursor: pointer; transition: all 0.15s; } button.btn-ghost:hover { border-color: var(--primary); color: var(--primary); }