/* ============================================================ GLOBAL TOKENS — Light theme (existing pages) ============================================================ */ :root { /* Brand */ --primary-color: #6366f1; --primary-hover: #4f46e5; --secondary-color:#475569; /* Surfaces */ --background-color: #f8fafc; --surface-color: #ffffff; --surface-2-color: #f1f5f9; /* Text */ --text-primary: #1e293b; --text-secondary: #64748b; --text-muted: #94a3b8; /* Borders */ --border-color: #e2e8f0; /* Feedback */ --success-color: #10b981; --error-color: #ef4444; --warning-color: #f59e0b; /* Typography */ --font-sans: 'Inter', system-ui, -apple-system, sans-serif; /* Radii */ --radius-sm: 6px; --radius-md: 10px; --radius-lg: 16px; --radius-xl: 22px; --radius-full: 9999px; /* Shadows */ --shadow-sm: 0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.06); --shadow-md: 0 4px 12px rgba(0,0,0,0.10); --shadow-lg: 0 10px 30px rgba(0,0,0,0.12); } /* ============================================================ DARK THEME TOKENS — applied via [data-theme="dark"] Used by: Signup, Login, and all auth/landing pages ============================================================ */ [data-theme="dark"] { color-scheme: dark; /* Backgrounds */ --background-color: #080808; --surface-color: #111111; --surface-2-color: #181818; /* Text */ --text-primary: #f0f0f0; --text-secondary: #888888; --text-muted: #555555; /* Borders */ --border-color: rgba(255, 255, 255, 0.07); --border-color-glow: rgba(99, 102, 241, 0.4); /* Brand accents */ --accent-1: #6366f1; /* indigo */ --accent-2: #a855f7; /* violet */ --accent-3: #06b6d4; /* cyan */ --accent-success: #10b981; --accent-error: #f87171; /* Glow helpers */ --glow-sm: 0 0 12px rgba(99, 102, 241, 0.45); --glow-md: 0 0 30px rgba(99, 102, 241, 0.35); --glow-lg: 0 0 60px rgba(99, 102, 241, 0.25); /* Map existing token names to dark values (used by Auth.css, etc.) */ --primary-color: #6366f1; --primary-hover: #4f46e5; --background-color: #080808; --surface-color: #111111; --surface-2-color: #181818; --text-primary: #f0f0f0; --text-secondary: #888888; --text-muted: #555555; --border-color: rgba(255, 255, 255, 0.07); --success-color: #10b981; --error-color: #f87171; /* Shadows (deeper on dark) */ --shadow-sm: 0 1px 3px rgba(0,0,0,0.4); --shadow-md: 0 4px 16px rgba(0,0,0,0.5); --shadow-lg: 0 16px 48px rgba(0,0,0,0.6); } /* ============================================================ BASE RESET & GLOBAL STYLES ============================================================ */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html { scroll-behavior: smooth; } @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; } } /* Screen-reader-only utility */ .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } /* Global focus-visible ring */ :focus-visible { outline: 2px solid var(--accent-1, #6366f1); outline-offset: 2px; } input:focus-visible, textarea:focus-visible, select:focus-visible { outline: none; } body { font-family: var(--font-sans); background-color: var(--background-color); color: var(--text-primary); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; line-height: 1.5; transition: background-color 0.3s, color 0.3s; } a { text-decoration: none; color: inherit; } button { cursor: pointer; font-family: inherit; border: none; background: none; } img, svg { display: block; max-width: 100%; } h1, h2, h3, h4, h5, h6 { font-weight: 600; line-height: 1.2; } input, textarea, select { font-family: inherit; } /* ============================================================ SHARED UTILITY CLASSES (used across multiple pages) ============================================================ */ /* Primary button — dark-theme aware */ .btn-primary-dark { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; padding: 0.85rem 2rem; border-radius: var(--radius-md); font-size: 1rem; font-weight: 700; color: #fff; background: linear-gradient(135deg, var(--accent-1, #6366f1), var(--accent-2, #a855f7)); border: none; cursor: pointer; transition: transform 0.2s, box-shadow 0.2s, opacity 0.2s; position: relative; overflow: hidden; } .btn-primary-dark:hover { transform: translateY(-2px); box-shadow: var(--glow-sm, 0 0 12px rgba(99,102,241,0.45)); } .btn-primary-dark:disabled { opacity: 0.6; cursor: not-allowed; transform: none; } /* Shared dark-page full-screen wrapper */ .dark-page { min-height: 100vh; background-color: var(--background-color); color: var(--text-primary); font-family: var(--font-sans); overflow-x: hidden; } /* Shared gradient orbs (reused in home + auth pages) */ .page-orb { position: absolute; border-radius: 50%; filter: blur(90px); pointer-events: none; }