Spaces:
Sleeping
Sleeping
Download frontend/src/styles/theme.css from chowdary1/ai-interviewer-version-2: direct link, hf CLI and curl.
- Browser
- Download file 356 kB
-
https://huggingface.co/spaces/chowdary1/ai-interviewer-version-2/resolve/main/frontend/src/styles/theme.css
- Command line
-
hf download hf://spaces/chowdary1/ai-interviewer-version-2/frontend/src/styles/theme.css
-
curl -L -o theme.css https://huggingface.co/spaces/chowdary1/ai-interviewer-version-2/resolve/main/frontend/src/styles/theme.css
356 kB
| /** | |
| * AI Interviewer Pro Max - Premium Theme System | |
| * Modern AI SaaS Design with Dark/Light Mode | |
| */ | |
| /* =========================================== | |
| GOOGLE FONTS - Inter & Poppins | |
| =========================================== */ | |
| @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Poppins:wght@400;500;600;700&display=swap'); | |
| /* =========================================== | |
| CSS VARIABLES - LIGHT MODE (Default) | |
| Palette: #FF00FF · #00FFFF · #CCFF00 · #191970 | |
| =========================================== */ | |
| :root, | |
| [data-theme="light"] { | |
| /* Background Colors - Neon Frost */ | |
| --bg-primary: #f0eef8; | |
| --bg-secondary: #e4e0f2; | |
| --bg-tertiary: #d6d0ea; | |
| --bg-card: #f4f2fa; | |
| --bg-card-hover: #eae5f6; | |
| --bg-glass: rgba(210, 200, 240, 0.55); | |
| /* Text Colors - Midnight Blue anchor */ | |
| --text-primary: #191970; | |
| --text-secondary: #2b2b8a; | |
| --text-muted: #7272a8; | |
| --text-inverse: #ffffff; | |
| /* Primary - Magenta */ | |
| --primary: #d000d0; | |
| --primary-dark: #a500a5; | |
| --primary-light: #f050f0; | |
| --primary-gradient: linear-gradient(135deg, #FF00FF 0%, #00FFFF 100%); | |
| --primary-glow: rgba(255, 0, 255, 0.25); | |
| /* Accent - Cyan & Lime */ | |
| --accent-primary: #d000d0; | |
| --accent-secondary: #00cccc; | |
| --accent: #00cccc; | |
| --accent-light: #66ffff; | |
| --accent-gradient: linear-gradient(135deg, #00FFFF 0%, #CCFF00 100%); | |
| /* Status Colors */ | |
| --success: #10b981; | |
| --success-bg: rgba(16, 185, 129, 0.12); | |
| --warning: #f59e0b; | |
| --warning-bg: rgba(245, 158, 11, 0.12); | |
| --danger: #ef4444; | |
| --danger-bg: rgba(239, 68, 68, 0.12); | |
| --info: #00b8b8; | |
| --info-bg: rgba(0, 255, 255, 0.10); | |
| /* Borders - Purple-tinted */ | |
| --border-color: #c4b8de; | |
| --border-light: #d8d0ec; | |
| --border-primary: rgba(208, 0, 208, 0.18); | |
| --border-secondary: rgba(0, 204, 204, 0.25); | |
| --border-accent: rgba(255, 0, 255, 0.30); | |
| /* Shadows - Midnight-tinted */ | |
| --shadow-sm: 0 1px 2px rgba(25, 25, 112, 0.06); | |
| --shadow-md: 0 4px 6px -1px rgba(25, 25, 112, 0.10), 0 2px 4px -2px rgba(25, 25, 112, 0.05); | |
| --shadow-lg: 0 10px 15px -3px rgba(25, 25, 112, 0.10), 0 4px 6px -4px rgba(25, 25, 112, 0.05); | |
| --shadow-xl: 0 20px 25px -5px rgba(25, 25, 112, 0.12), 0 8px 10px -6px rgba(25, 25, 112, 0.05); | |
| --shadow-glow: 0 0 20px rgba(255, 0, 255, 0.18); | |
| --shadow-card: 0 4px 20px rgba(25, 25, 112, 0.07); | |
| /* Glass Effect - Frosted Neon */ | |
| --glass-bg: rgba(240, 238, 248, 0.72); | |
| --glass-border: rgba(210, 200, 240, 0.45); | |
| --glass-blur: blur(12px); | |
| /* Navbar */ | |
| --navbar-bg: rgba(240, 238, 248, 0.90); | |
| --navbar-border: rgba(208, 0, 208, 0.08); | |
| /* Stats */ | |
| --stat-bg: rgba(208, 0, 208, 0.10); | |
| --stat-rating-bg: rgba(204, 255, 0, 0.18); | |
| --text-accent: #d000d0; | |
| /* Robot bg */ | |
| --robot-opacity: 0.6; | |
| --robot-glow: rgba(255, 0, 255, 0.06); | |
| --bg-overlay-color: rgba(240, 238, 248, 0.5); | |
| } | |
| /* =========================================== | |
| CSS VARIABLES - DARK MODE | |
| =========================================== */ | |
| [data-theme="dark"] { | |
| /* Background Colors */ | |
| --bg-primary: #0b1120; | |
| --bg-secondary: #0f172a; | |
| --bg-tertiary: #1e293b; | |
| --bg-card: #111827; | |
| --bg-card-hover: #1e293b; | |
| --bg-glass: rgba(17, 24, 39, 0.8); | |
| /* Text Colors */ | |
| --text-primary: #f1f5f9; | |
| --text-secondary: #94a3b8; | |
| --text-muted: #64748b; | |
| --text-inverse: #0f172a; | |
| /* Primary - Premium Blue */ | |
| --primary: #5b8aff; | |
| --primary-dark: #4f7cff; | |
| --primary-light: #7da5ff; | |
| --primary-gradient: linear-gradient(90deg, #5b8aff 0%, #38bdf8 100%); | |
| --primary-glow: rgba(91, 138, 255, 0.4); | |
| /* Accent - Cyan Glow */ | |
| --accent: #22d3ee; | |
| --accent-light: #67e8f9; | |
| --accent-gradient: linear-gradient(135deg, #22d3ee 0%, #818cf8 100%); | |
| /* Status Colors */ | |
| --success: #34d399; | |
| --success-bg: rgba(52, 211, 153, 0.15); | |
| --warning: #fbbf24; | |
| --warning-bg: rgba(251, 191, 36, 0.15); | |
| --danger: #f87171; | |
| --danger-bg: rgba(248, 113, 113, 0.15); | |
| --info: #60a5fa; | |
| --info-bg: rgba(96, 165, 250, 0.15); | |
| /* Borders */ | |
| --border-color: #1e293b; | |
| --border-light: #334155; | |
| /* Shadows */ | |
| --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3); | |
| --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.4); | |
| --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.5); | |
| --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.6); | |
| --shadow-glow: 0 0 30px rgba(129, 140, 248, 0.25); | |
| --shadow-card: 0 4px 20px rgba(0, 0, 0, 0.3); | |
| /* Glass Effect */ | |
| --glass-bg: rgba(17, 24, 39, 0.7); | |
| --glass-border: rgba(255, 255, 255, 0.08); | |
| --glass-blur: blur(16px); | |
| /* Navbar */ | |
| --navbar-bg: rgba(11, 17, 32, 0.9); | |
| --navbar-border: rgba(255, 255, 255, 0.05); | |
| } | |
| /* =========================================== | |
| TYPOGRAPHY & SPACING | |
| =========================================== */ | |
| :root { | |
| /* Font Families */ | |
| --font-primary: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; | |
| --font-display: 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif; | |
| /* Font Sizes */ | |
| --text-xs: 0.75rem; | |
| --text-sm: 0.875rem; | |
| --text-base: 1rem; | |
| --text-lg: 1.125rem; | |
| --text-xl: 1.25rem; | |
| --text-2xl: 1.5rem; | |
| --text-3xl: 2rem; | |
| --text-4xl: 2.5rem; | |
| --text-5xl: 3rem; | |
| /* Font Weights */ | |
| --font-normal: 400; | |
| --font-medium: 500; | |
| --font-semibold: 600; | |
| --font-bold: 700; | |
| --font-extrabold: 800; | |
| /* Line Heights */ | |
| --leading-tight: 1.25; | |
| --leading-normal: 1.5; | |
| --leading-relaxed: 1.625; | |
| /* Spacing */ | |
| --space-1: 0.25rem; | |
| --space-2: 0.5rem; | |
| --space-3: 0.75rem; | |
| --space-4: 1rem; | |
| --space-5: 1.25rem; | |
| --space-6: 1.5rem; | |
| --space-8: 2rem; | |
| --space-10: 2.5rem; | |
| --space-12: 3rem; | |
| --space-16: 4rem; | |
| --space-20: 5rem; | |
| /* Border Radius */ | |
| --radius-sm: 0.375rem; | |
| --radius-md: 0.5rem; | |
| --radius-lg: 0.75rem; | |
| --radius-xl: 1rem; | |
| --radius-2xl: 1.25rem; | |
| --radius-3xl: 1.5rem; | |
| --radius-full: 9999px; | |
| /* Transitions */ | |
| --transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1); | |
| --transition-base: 250ms cubic-bezier(0.4, 0, 0.2, 1); | |
| --transition-slow: 350ms cubic-bezier(0.4, 0, 0.2, 1); | |
| --transition-bounce: 500ms cubic-bezier(0.68, -0.55, 0.265, 1.55); | |
| } | |
| /* =========================================== | |
| RESET & BASE STYLES | |
| =========================================== */ | |
| *, | |
| *::before, | |
| *::after { | |
| box-sizing: border-box; | |
| margin: 0; | |
| padding: 0; | |
| } | |
| html { | |
| font-size: 16px; | |
| scroll-behavior: smooth; | |
| -webkit-font-smoothing: antialiased; | |
| -moz-osx-font-smoothing: grayscale; | |
| } | |
| body { | |
| font-family: var(--font-primary); | |
| font-size: var(--text-base); | |
| line-height: var(--leading-normal); | |
| color: var(--text-primary); | |
| background: var(--bg-primary); | |
| min-height: 100vh; | |
| transition: background-color var(--transition-base), color var(--transition-base); | |
| } | |
| /* Dark mode body gradient */ | |
| [data-theme="dark"] body { | |
| background: linear-gradient(180deg, var(--bg-primary) 0%, var(--bg-secondary) 100%); | |
| } | |
| a { | |
| color: var(--primary); | |
| text-decoration: none; | |
| transition: color var(--transition-fast); | |
| } | |
| a:hover { | |
| color: var(--primary-light); | |
| } | |
| button { | |
| font-family: inherit; | |
| cursor: pointer; | |
| border: none; | |
| background: none; | |
| transition: all var(--transition-base); | |
| } | |
| button:disabled { | |
| cursor: not-allowed; | |
| opacity: 0.6; | |
| } | |
| input, | |
| textarea, | |
| select { | |
| font-family: inherit; | |
| font-size: inherit; | |
| color: var(--text-primary); | |
| background: var(--bg-primary); | |
| border: 1px solid var(--border-color); | |
| transition: all var(--transition-fast); | |
| } | |
| ::selection { | |
| background: var(--primary); | |
| color: white; | |
| } | |
| /* =========================================== | |
| BUTTONS | |
| =========================================== */ | |
| .btn { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: var(--space-2); | |
| padding: var(--space-3) var(--space-6); | |
| font-weight: var(--font-semibold); | |
| font-size: var(--text-sm); | |
| border-radius: var(--radius-xl); | |
| transition: all var(--transition-base); | |
| white-space: nowrap; | |
| } | |
| .btn-primary { | |
| background: var(--primary-gradient); | |
| color: white; | |
| box-shadow: var(--shadow-md), 0 0 20px var(--primary-glow); | |
| } | |
| .btn-primary:hover:not(:disabled) { | |
| transform: translateY(-2px); | |
| box-shadow: var(--shadow-lg), 0 0 30px var(--primary-glow); | |
| } | |
| .btn-primary:active:not(:disabled) { | |
| transform: translateY(0); | |
| } | |
| .btn-secondary { | |
| background: var(--bg-tertiary); | |
| color: var(--text-primary); | |
| border: 1px solid var(--border-color); | |
| } | |
| .btn-secondary:hover:not(:disabled) { | |
| background: var(--bg-card-hover); | |
| border-color: var(--primary); | |
| } | |
| .btn-ghost { | |
| background: transparent; | |
| color: var(--text-secondary); | |
| } | |
| .btn-ghost:hover:not(:disabled) { | |
| background: var(--bg-tertiary); | |
| color: var(--text-primary); | |
| } | |
| .btn-danger { | |
| background: var(--danger); | |
| color: white; | |
| } | |
| .btn-danger:hover:not(:disabled) { | |
| background: #dc2626; | |
| transform: translateY(-2px); | |
| } | |
| .btn-lg { | |
| height: 48px; | |
| padding: 0 var(--space-6); | |
| font-size: var(--text-base); | |
| border-radius: 12px; | |
| } | |
| .btn-sm { | |
| padding: var(--space-2) var(--space-4); | |
| font-size: var(--text-xs); | |
| border-radius: var(--radius-lg); | |
| } | |
| .btn-icon { | |
| width: 40px; | |
| height: 40px; | |
| padding: 0; | |
| border-radius: var(--radius-lg); | |
| } | |
| /* =========================================== | |
| FORM ELEMENTS | |
| =========================================== */ | |
| .form-group { | |
| margin-bottom: var(--space-6); | |
| } | |
| .form-group label { | |
| display: block; | |
| margin-bottom: var(--space-2); | |
| font-weight: var(--font-medium); | |
| font-size: var(--text-sm); | |
| color: var(--text-secondary); | |
| } | |
| .form-input, | |
| .form-group input, | |
| .form-group select, | |
| .form-group textarea { | |
| width: 100%; | |
| padding: var(--space-3) var(--space-4); | |
| font-size: var(--text-base); | |
| background: var(--bg-card); | |
| border: 2px solid var(--border-color); | |
| border-radius: var(--radius-xl); | |
| outline: none; | |
| transition: all var(--transition-fast); | |
| } | |
| .form-input:focus, | |
| .form-group input:focus, | |
| .form-group select:focus, | |
| .form-group textarea:focus { | |
| border-color: var(--primary); | |
| box-shadow: 0 0 0 4px var(--primary-glow); | |
| } | |
| .form-input::placeholder { | |
| color: var(--text-muted); | |
| } | |
| .form-hint { | |
| display: block; | |
| margin-top: var(--space-2); | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| } | |
| /* =========================================== | |
| CARDS | |
| =========================================== */ | |
| .card { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| padding: var(--space-6); | |
| box-shadow: var(--shadow-card); | |
| transition: all var(--transition-base); | |
| } | |
| .card:hover { | |
| box-shadow: var(--shadow-lg); | |
| } | |
| .card-glass { | |
| background: var(--glass-bg); | |
| backdrop-filter: var(--glass-blur); | |
| -webkit-backdrop-filter: var(--glass-blur); | |
| border: 1px solid var(--glass-border); | |
| } | |
| [data-theme="dark"] .card-glass { | |
| box-shadow: var(--shadow-glow); | |
| } | |
| /* =========================================== | |
| NAVBAR - Premium Sticky Navigation | |
| =========================================== */ | |
| .navbar { | |
| position: sticky; | |
| top: 0; | |
| z-index: 100; | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| padding: var(--space-3) var(--space-8); | |
| background: rgba(216, 239, 243, 0.82); | |
| backdrop-filter: blur(18px) saturate(140%); | |
| -webkit-backdrop-filter: blur(18px) saturate(140%); | |
| border-bottom: 1px solid rgba(79, 124, 130, 0.12); | |
| transition: all 0.3s ease; | |
| } | |
| /* Winter Chill teal text on the icy navbar (light mode) */ | |
| .navbar .nav-link { | |
| color: rgba(11, 46, 51, 0.75); | |
| } | |
| .navbar .nav-link:hover { | |
| color: #191970; | |
| background: rgba(79, 124, 130, 0.08); | |
| } | |
| .navbar .nav-link.active { | |
| color: #3d6268; | |
| background: rgba(79, 124, 130, 0.12); | |
| } | |
| .navbar .theme-toggle { | |
| background: rgba(79, 124, 130, 0.08); | |
| color: rgba(11, 46, 51, 0.75); | |
| } | |
| .navbar .user-name { | |
| color: #191970; | |
| } | |
| .navbar .chevron { | |
| color: rgba(11, 46, 51, 0.6); | |
| } | |
| .navbar .user-button { | |
| background: rgba(79, 124, 130, 0.08); | |
| border-color: rgba(79, 124, 130, 0.2); | |
| } | |
| /* Dark mode: keep original dark navbar */ | |
| [data-theme="dark"] .navbar { | |
| background: rgba(15, 23, 42, 0.75); | |
| border-bottom: 1px solid rgba(255, 255, 255, 0.08); | |
| } | |
| [data-theme="dark"] .navbar .nav-link { | |
| color: rgba(203, 213, 225, 0.85); | |
| } | |
| [data-theme="dark"] .navbar .nav-link:hover { | |
| color: #f1f5f9; | |
| background: rgba(255, 255, 255, 0.08); | |
| } | |
| [data-theme="dark"] .navbar .nav-link.active { | |
| color: #60a5fa; | |
| background: rgba(59, 130, 246, 0.15); | |
| } | |
| [data-theme="dark"] .navbar .theme-toggle { | |
| background: rgba(255, 255, 255, 0.08); | |
| color: rgba(203, 213, 225, 0.85); | |
| } | |
| [data-theme="dark"] .navbar .user-name { | |
| color: #f1f5f9; | |
| } | |
| [data-theme="dark"] .navbar .chevron { | |
| color: rgba(203, 213, 225, 0.85); | |
| } | |
| [data-theme="dark"] .navbar .user-button { | |
| background: linear-gradient(135deg, rgba(59, 130, 246, 0.15) 0%, rgba(139, 92, 246, 0.1) 100%); | |
| border-color: rgba(99, 102, 241, 0.3); | |
| } | |
| .navbar-brand { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-3); | |
| cursor: pointer; | |
| transition: all 0.3s ease; | |
| } | |
| .navbar-brand:hover { | |
| transform: scale(1.02); | |
| } | |
| .navbar-brand .logo-icon { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 40px; | |
| height: 40px; | |
| border-radius: 12px; | |
| overflow: hidden; | |
| box-shadow: 0 4px 15px rgba(236, 72, 153, 0.35); | |
| transition: all 0.3s ease; | |
| } | |
| .navbar-brand:hover .logo-icon { | |
| box-shadow: 0 6px 20px rgba(236, 72, 153, 0.5); | |
| transform: rotate(-5deg); | |
| } | |
| .navbar-brand .logo-sparkle { | |
| color: white; | |
| filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.2)); | |
| } | |
| .logo-img { | |
| width: 100%; | |
| height: 100%; | |
| object-fit: cover; | |
| display: block; | |
| } | |
| .navbar-brand .brand-text { | |
| font-family: var(--font-display); | |
| font-weight: 800; | |
| font-size: 1.25rem; | |
| background: linear-gradient(135deg, #ec4899 0%, #f43f5e 50%, #ef4444 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| letter-spacing: -0.02em; | |
| } | |
| .navbar-menu { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-1); | |
| } | |
| .nav-link { | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| padding: 10px 18px; | |
| font-weight: 600; | |
| font-size: 0.9rem; | |
| color: #7272a8; | |
| border-radius: 12px; | |
| transition: all 0.25s ease; | |
| position: relative; | |
| } | |
| .nav-link span { | |
| position: relative; | |
| } | |
| .nav-link:hover { | |
| color: #191970; | |
| background: rgba(0, 0, 0, 0.04); | |
| } | |
| [data-theme="dark"] .nav-link { | |
| color: #94a3b8; | |
| } | |
| [data-theme="dark"] .nav-link:hover { | |
| color: #f1f5f9; | |
| background: rgba(255, 255, 255, 0.06); | |
| } | |
| .nav-link.active { | |
| color: #d000d0; | |
| background: rgba(79, 124, 130, 0.08); | |
| } | |
| .nav-link.active::after { | |
| content: ''; | |
| position: absolute; | |
| bottom: 6px; | |
| left: 50%; | |
| transform: translateX(-50%); | |
| width: 20px; | |
| height: 3px; | |
| background: linear-gradient(90deg, #d000d0, #00cccc); | |
| border-radius: 2px; | |
| } | |
| [data-theme="dark"] .nav-link.active { | |
| color: #60a5fa; | |
| background: rgba(59, 130, 246, 0.12); | |
| } | |
| .nav-link svg { | |
| transition: transform 0.2s ease; | |
| } | |
| .nav-link:hover svg { | |
| transform: scale(1.1); | |
| } | |
| /* Theme Toggle Button */ | |
| .theme-toggle { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 44px; | |
| height: 44px; | |
| border-radius: 12px; | |
| background: rgba(0, 0, 0, 0.04); | |
| color: #7272a8; | |
| transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275); | |
| margin-left: var(--space-2); | |
| margin-right: var(--space-2); | |
| border: 1px solid transparent; | |
| } | |
| [data-theme="dark"] .theme-toggle { | |
| background: rgba(255, 255, 255, 0.06); | |
| color: #94a3b8; | |
| } | |
| .theme-toggle:hover { | |
| background: rgba(79, 124, 130, 0.1); | |
| color: #d000d0; | |
| border-color: rgba(79, 124, 130, 0.2); | |
| transform: rotate(15deg) scale(1.05); | |
| } | |
| [data-theme="dark"] .theme-toggle:hover { | |
| background: rgba(251, 191, 36, 0.15); | |
| color: #fbbf24; | |
| border-color: rgba(251, 191, 36, 0.3); | |
| box-shadow: 0 0 20px rgba(251, 191, 36, 0.2); | |
| } | |
| .theme-icon { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| transition: transform 0.3s ease; | |
| } | |
| .theme-toggle:hover .theme-icon { | |
| transform: scale(1.1); | |
| } | |
| /* User Menu */ | |
| .user-menu { | |
| position: relative; | |
| } | |
| .user-button { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| padding: 6px 14px 6px 6px; | |
| border-radius: 50px; | |
| background: linear-gradient(135deg, rgba(79, 124, 130, 0.1) 0%, rgba(147, 177, 181, 0.08) 100%); | |
| border: 1.5px solid rgba(79, 124, 130, 0.2); | |
| transition: all 0.3s ease; | |
| } | |
| [data-theme="dark"] .user-button { | |
| background: linear-gradient(135deg, rgba(59, 130, 246, 0.15) 0%, rgba(139, 92, 246, 0.1) 100%); | |
| border-color: rgba(99, 102, 241, 0.3); | |
| } | |
| .user-button:hover { | |
| border-color: rgba(79, 124, 130, 0.5); | |
| box-shadow: 0 4px 20px rgba(79, 124, 130, 0.2); | |
| transform: translateY(-1px); | |
| } | |
| [data-theme="dark"] .user-button:hover { | |
| box-shadow: 0 4px 25px rgba(99, 102, 241, 0.3); | |
| } | |
| .user-avatar { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 36px; | |
| height: 36px; | |
| background: linear-gradient(135deg, #d000d0 0%, #00cccc 100%); | |
| border-radius: 50%; | |
| font-weight: 700; | |
| font-size: 0.95rem; | |
| color: white; | |
| text-transform: uppercase; | |
| box-shadow: 0 2px 8px rgba(79, 124, 130, 0.3); | |
| } | |
| .user-name { | |
| font-weight: 600; | |
| font-size: 0.9rem; | |
| color: #191970; | |
| max-width: 120px; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| white-space: nowrap; | |
| } | |
| [data-theme="dark"] .user-name { | |
| color: #f1f5f9; | |
| } | |
| .chevron { | |
| color: #7272a8; | |
| transition: transform 0.3s ease; | |
| } | |
| .chevron.open { | |
| transform: rotate(180deg); | |
| } | |
| [data-theme="dark"] .chevron { | |
| color: #94a3b8; | |
| } | |
| .menu-backdrop { | |
| position: fixed; | |
| inset: 0; | |
| z-index: 9; | |
| } | |
| .dropdown-menu { | |
| position: absolute; | |
| top: calc(100% + 8px); | |
| right: 0; | |
| min-width: 220px; | |
| background: rgba(255, 255, 255, 0.98); | |
| backdrop-filter: blur(20px); | |
| border: 1px solid rgba(0, 0, 0, 0.08); | |
| border-radius: 16px; | |
| box-shadow: | |
| 0 10px 40px rgba(0, 0, 0, 0.12), | |
| 0 2px 10px rgba(0, 0, 0, 0.08); | |
| z-index: 10; | |
| overflow: hidden; | |
| animation: slideDown 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275); | |
| } | |
| [data-theme="dark"] .dropdown-menu { | |
| background: rgba(30, 41, 59, 0.98); | |
| border-color: rgba(255, 255, 255, 0.1); | |
| box-shadow: | |
| 0 10px 50px rgba(0, 0, 0, 0.4), | |
| 0 0 0 1px rgba(255, 255, 255, 0.05); | |
| } | |
| @keyframes slideDown { | |
| from { | |
| opacity: 0; | |
| transform: translateY(-10px) scale(0.95); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0) scale(1); | |
| } | |
| } | |
| .dropdown-header { | |
| padding: var(--space-4); | |
| background: linear-gradient(135deg, rgba(79, 124, 130, 0.08) 0%, rgba(147, 177, 181, 0.05) 100%); | |
| border-bottom: 1px solid rgba(0, 0, 0, 0.06); | |
| } | |
| [data-theme="dark"] .dropdown-header { | |
| background: linear-gradient(135deg, rgba(59, 130, 246, 0.12) 0%, rgba(139, 92, 246, 0.08) 100%); | |
| border-bottom-color: rgba(255, 255, 255, 0.08); | |
| } | |
| .dropdown-header strong { | |
| display: block; | |
| font-size: 0.95rem; | |
| font-weight: 700; | |
| color: #191970; | |
| } | |
| [data-theme="dark"] .dropdown-header strong { | |
| color: #f1f5f9; | |
| } | |
| .dropdown-header small { | |
| font-size: var(--text-xs); | |
| color: #7272a8; | |
| } | |
| [data-theme="dark"] .dropdown-header small { | |
| color: #94a3b8; | |
| } | |
| .dropdown-menu hr { | |
| border: none; | |
| border-top: 1px solid var(--border-color); | |
| margin: 0; | |
| } | |
| .dropdown-menu button { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| width: 100%; | |
| padding: var(--space-3) var(--space-4); | |
| font-size: var(--text-sm); | |
| color: var(--text-primary); | |
| text-align: left; | |
| transition: all var(--transition-fast); | |
| } | |
| .dropdown-menu button:hover { | |
| background: var(--bg-tertiary); | |
| color: var(--primary); | |
| } | |
| .dropdown-menu .logout-button { | |
| color: var(--danger); | |
| } | |
| .dropdown-menu .logout-button:hover { | |
| background: var(--danger-bg); | |
| color: var(--danger); | |
| } | |
| /* =========================================== | |
| MOBILE NAVIGATION STYLES | |
| =========================================== */ | |
| /* Mobile Menu Button (Hamburger) */ | |
| .mobile-menu-btn { | |
| display: none; | |
| align-items: center; | |
| justify-content: center; | |
| width: 44px; | |
| height: 44px; | |
| border-radius: 12px; | |
| background: transparent; | |
| color: var(--text-secondary); | |
| transition: all 0.3s ease; | |
| z-index: 101; | |
| } | |
| .mobile-menu-btn:hover { | |
| background: var(--bg-tertiary); | |
| color: var(--text-primary); | |
| } | |
| [data-theme="dark"] .mobile-menu-btn:hover { | |
| background: rgba(255, 255, 255, 0.1); | |
| } | |
| /* Mobile Menu Backdrop */ | |
| .mobile-menu-backdrop { | |
| display: none; | |
| position: fixed; | |
| inset: 0; | |
| background: rgba(0, 0, 0, 0.5); | |
| z-index: 99; | |
| animation: fadeIn 0.3s ease; | |
| } | |
| @keyframes fadeIn { | |
| from { | |
| opacity: 0; | |
| } | |
| to { | |
| opacity: 1; | |
| } | |
| } | |
| /* Mobile Menu Drawer */ | |
| .mobile-menu { | |
| display: none; | |
| position: fixed; | |
| top: 0; | |
| right: -100%; | |
| width: 85%; | |
| max-width: 320px; | |
| height: 100vh; | |
| background: var(--bg-primary); | |
| box-shadow: -10px 0 40px rgba(0, 0, 0, 0.15); | |
| z-index: 100; | |
| flex-direction: column; | |
| transition: right 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| overflow-y: auto; | |
| } | |
| [data-theme="dark"] .mobile-menu { | |
| background: var(--bg-secondary); | |
| box-shadow: -10px 0 40px rgba(0, 0, 0, 0.4); | |
| } | |
| .mobile-menu.open { | |
| right: 0; | |
| } | |
| /* Mobile Menu Header */ | |
| .mobile-menu-header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| padding: 20px; | |
| border-bottom: 1px solid var(--border-color); | |
| background: linear-gradient(135deg, rgba(79, 124, 130, 0.08) 0%, rgba(147, 177, 181, 0.05) 100%); | |
| } | |
| [data-theme="dark"] .mobile-menu-header { | |
| background: linear-gradient(135deg, rgba(99, 102, 241, 0.15) 0%, rgba(139, 92, 246, 0.1) 100%); | |
| } | |
| .mobile-user-info { | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| } | |
| .mobile-user-info .user-avatar { | |
| width: 44px; | |
| height: 44px; | |
| font-size: 1.1rem; | |
| } | |
| .mobile-user-info div { | |
| display: flex; | |
| flex-direction: column; | |
| } | |
| .mobile-user-info strong { | |
| font-size: 0.95rem; | |
| color: var(--text-primary); | |
| } | |
| .mobile-user-info small { | |
| font-size: 0.75rem; | |
| color: var(--text-muted); | |
| } | |
| .theme-toggle-mobile { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 40px; | |
| height: 40px; | |
| border-radius: 10px; | |
| background: var(--bg-tertiary); | |
| color: var(--text-secondary); | |
| transition: all 0.3s ease; | |
| } | |
| .theme-toggle-mobile:hover { | |
| background: var(--primary); | |
| color: white; | |
| } | |
| /* Mobile Menu Links */ | |
| .mobile-menu-links { | |
| flex: 1; | |
| padding: 16px; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 8px; | |
| } | |
| .mobile-nav-link { | |
| display: flex; | |
| align-items: center; | |
| gap: 14px; | |
| padding: 16px 18px; | |
| border-radius: 14px; | |
| font-size: 1rem; | |
| font-weight: 600; | |
| color: var(--text-secondary); | |
| background: transparent; | |
| transition: all 0.25s ease; | |
| text-align: left; | |
| width: 100%; | |
| } | |
| .mobile-nav-link:hover { | |
| background: var(--bg-tertiary); | |
| color: var(--text-primary); | |
| transform: translateX(4px); | |
| } | |
| .mobile-nav-link.active { | |
| background: linear-gradient(135deg, rgba(79, 124, 130, 0.15) 0%, rgba(147, 177, 181, 0.1) 100%); | |
| color: var(--primary); | |
| } | |
| .mobile-nav-link.active svg { | |
| color: var(--primary); | |
| } | |
| .mobile-nav-link svg { | |
| flex-shrink: 0; | |
| color: var(--text-muted); | |
| transition: color 0.25s ease; | |
| } | |
| .mobile-nav-link:hover svg { | |
| color: var(--primary); | |
| } | |
| /* Mobile Menu Footer */ | |
| .mobile-menu-footer { | |
| padding: 16px 20px; | |
| border-top: 1px solid var(--border-color); | |
| } | |
| .mobile-logout-btn { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 10px; | |
| width: 100%; | |
| padding: 14px; | |
| border-radius: 12px; | |
| font-size: 0.95rem; | |
| font-weight: 600; | |
| color: var(--danger); | |
| background: var(--danger-bg); | |
| transition: all 0.3s ease; | |
| } | |
| .mobile-logout-btn:hover { | |
| background: var(--danger); | |
| color: white; | |
| } | |
| /* =========================================== | |
| MOBILE RESPONSIVE BREAKPOINTS | |
| =========================================== */ | |
| @media (max-width: 768px) { | |
| /* Show mobile menu button, hide desktop menu */ | |
| .mobile-menu-btn { | |
| display: flex; | |
| } | |
| .desktop-menu { | |
| display: none ; | |
| } | |
| .mobile-menu { | |
| display: flex; | |
| } | |
| .mobile-menu-backdrop { | |
| display: block; | |
| } | |
| /* Navbar adjustments for mobile */ | |
| .navbar { | |
| padding: 10px 16px; | |
| } | |
| .navbar-brand .brand-text { | |
| font-size: 1.1rem; | |
| } | |
| .navbar-brand .logo-icon { | |
| width: 36px; | |
| height: 36px; | |
| } | |
| .navbar-brand .logo-icon svg { | |
| width: 20px; | |
| height: 20px; | |
| } | |
| } | |
| @media (max-width: 480px) { | |
| .navbar { | |
| padding: 8px 12px; | |
| } | |
| .navbar-brand .brand-text { | |
| font-size: 1rem; | |
| } | |
| .mobile-menu { | |
| width: 100%; | |
| max-width: 100%; | |
| } | |
| .mobile-nav-link { | |
| padding: 14px 16px; | |
| font-size: 0.95rem; | |
| } | |
| } | |
| /* =========================================== | |
| LOGIN / SIGNUP PAGE | |
| =========================================== */ | |
| .login-container { | |
| min-height: 100vh; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| padding: var(--space-6); | |
| background: linear-gradient(135deg, #f0eef8 0%, #e4e0f2 50%, #c4b8de 100%); | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| [data-theme="dark"] .login-container { | |
| background: linear-gradient(135deg, #0a0a18 0%, #0d0d20 50%, #121228 100%); | |
| } | |
| /* Premium Animated Background */ | |
| .login-container::before { | |
| content: ''; | |
| position: absolute; | |
| inset: 0; | |
| background: | |
| radial-gradient(ellipse at 20% 30%, rgba(79, 124, 130, 0.12) 0%, transparent 50%), | |
| radial-gradient(ellipse at 80% 70%, rgba(147, 177, 181, 0.1) 0%, transparent 50%), | |
| radial-gradient(ellipse at 50% 100%, rgba(184, 227, 233, 0.08) 0%, transparent 40%); | |
| animation: loginBgPulse 20s ease-in-out infinite; | |
| z-index: 0; | |
| } | |
| [data-theme="dark"] .login-container::before { | |
| background: | |
| radial-gradient(ellipse at 20% 30%, rgba(99, 102, 241, 0.2) 0%, transparent 50%), | |
| radial-gradient(ellipse at 80% 70%, rgba(139, 92, 246, 0.15) 0%, transparent 50%), | |
| radial-gradient(ellipse at 50% 100%, rgba(168, 85, 247, 0.12) 0%, transparent 40%); | |
| } | |
| @keyframes loginBgPulse { | |
| 0%, | |
| 100% { | |
| transform: scale(1) rotate(0deg); | |
| opacity: 1; | |
| } | |
| 50% { | |
| transform: scale(1.05) rotate(1deg); | |
| opacity: 0.9; | |
| } | |
| } | |
| .login-card { | |
| position: relative; | |
| z-index: 1; | |
| width: 100%; | |
| max-width: 440px; | |
| background: rgba(255, 255, 255, 0.85); | |
| backdrop-filter: blur(20px); | |
| -webkit-backdrop-filter: blur(20px); | |
| border: 1px solid rgba(147, 177, 181, 0.15); | |
| border-radius: 28px; | |
| padding: 48px 40px; | |
| box-shadow: | |
| 0 8px 40px rgba(0, 0, 0, 0.08), | |
| 0 0 0 1px rgba(147, 177, 181, 0.08); | |
| } | |
| [data-theme="dark"] .login-card { | |
| background: rgba(15, 30, 55, 0.85); | |
| border-color: rgba(139, 92, 246, 0.25); | |
| box-shadow: | |
| 0 8px 40px rgba(0, 0, 0, 0.4), | |
| 0 0 60px rgba(139, 92, 246, 0.1), | |
| 0 0 0 1px rgba(139, 92, 246, 0.15); | |
| } | |
| .login-header { | |
| text-align: center; | |
| margin-bottom: var(--space-8); | |
| } | |
| .login-logo { | |
| font-size: 3.5rem; | |
| margin-bottom: var(--space-4); | |
| filter: drop-shadow(0 0 30px rgba(147, 177, 181, 0.4)); | |
| animation: loginLogoFloat 4s ease-in-out infinite; | |
| } | |
| @keyframes loginLogoFloat { | |
| 0%, | |
| 100% { | |
| transform: translateY(0) scale(1); | |
| } | |
| 50% { | |
| transform: translateY(-8px) scale(1.05); | |
| } | |
| } | |
| .login-header h1 { | |
| font-family: var(--font-display); | |
| font-size: 1.85rem; | |
| font-weight: 800; | |
| background: linear-gradient(135deg, #d000d0 0%, #00cccc 50%, #b366ff 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| margin-bottom: var(--space-2); | |
| letter-spacing: -0.02em; | |
| } | |
| .login-header p { | |
| color: #7272a8; | |
| font-size: 0.95rem; | |
| line-height: 1.6; | |
| } | |
| [data-theme="dark"] .login-header p { | |
| color: #94a3b8; | |
| } | |
| .login-tabs { | |
| display: flex; | |
| gap: 8px; | |
| margin-bottom: var(--space-6); | |
| padding: 8px; | |
| background: rgba(147, 177, 181, 0.06); | |
| border: 1px solid rgba(147, 177, 181, 0.1); | |
| border-radius: 16px; | |
| } | |
| [data-theme="dark"] .login-tabs { | |
| background: rgba(139, 92, 246, 0.1); | |
| border-color: rgba(139, 92, 246, 0.15); | |
| } | |
| .login-tabs .tab { | |
| flex: 1; | |
| padding: 14px 20px; | |
| font-weight: 600; | |
| font-size: 0.95rem; | |
| color: #7272a8; | |
| border-radius: 12px; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| background: transparent; | |
| border: none; | |
| cursor: pointer; | |
| } | |
| [data-theme="dark"] .login-tabs .tab { | |
| color: #94a3b8; | |
| } | |
| .login-tabs .tab:hover:not(.active) { | |
| color: #191970; | |
| background: rgba(147, 177, 181, 0.08); | |
| } | |
| [data-theme="dark"] .login-tabs .tab:hover:not(.active) { | |
| color: #f1f5f9; | |
| background: rgba(139, 92, 246, 0.12); | |
| } | |
| .login-tabs .tab.active { | |
| background: linear-gradient(135deg, #d000d0 0%, #00cccc 100%); | |
| color: #ffffff; | |
| box-shadow: 0 4px 20px rgba(79, 124, 130, 0.35); | |
| } | |
| .login-form .form-group { | |
| margin-bottom: 20px; | |
| } | |
| .login-form .form-group label { | |
| display: flex; | |
| align-items: center; | |
| font-size: 0.9rem; | |
| font-weight: 600; | |
| color: #191970; | |
| margin-bottom: 8px; | |
| } | |
| [data-theme="dark"] .login-form .form-group label { | |
| color: #e2e8f0; | |
| } | |
| .login-form .form-group input { | |
| width: 100%; | |
| padding: 16px 18px; | |
| font-size: 1rem; | |
| background: rgba(255, 255, 255, 0.8); | |
| border: 1px solid rgba(0, 0, 0, 0.1); | |
| border-radius: 14px; | |
| color: #191970; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| [data-theme="dark"] .login-form .form-group input { | |
| background: rgba(255, 255, 255, 0.08); | |
| border-color: rgba(255, 255, 255, 0.12); | |
| color: #f1f5f9; | |
| } | |
| .login-form .form-group input:focus { | |
| outline: none; | |
| border-color: rgba(147, 177, 181, 0.5); | |
| box-shadow: | |
| 0 0 0 4px rgba(147, 177, 181, 0.1), | |
| 0 4px 20px rgba(0, 0, 0, 0.06); | |
| } | |
| [data-theme="dark"] .login-form .form-group input:focus { | |
| border-color: rgba(139, 92, 246, 0.6); | |
| box-shadow: | |
| 0 0 0 4px rgba(139, 92, 246, 0.15), | |
| 0 4px 20px rgba(0, 0, 0, 0.3); | |
| } | |
| .login-form .form-group input::placeholder { | |
| color: #00cccc; | |
| } | |
| /* Password input wrapper with toggle button */ | |
| .password-input-wrapper { | |
| position: relative; | |
| display: flex; | |
| align-items: center; | |
| } | |
| .password-input-wrapper input { | |
| width: 100%; | |
| padding-right: 48px ; | |
| } | |
| .password-toggle-btn { | |
| position: absolute; | |
| right: 12px; | |
| top: 50%; | |
| transform: translateY(-50%); | |
| background: transparent; | |
| border: none; | |
| padding: 6px; | |
| cursor: pointer; | |
| color: #7272a8; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| border-radius: 6px; | |
| transition: all 0.2s ease; | |
| } | |
| .password-toggle-btn:hover { | |
| color: #00cccc; | |
| background: rgba(147, 177, 181, 0.1); | |
| } | |
| [data-theme="dark"] .password-toggle-btn { | |
| color: #94a3b8; | |
| } | |
| [data-theme="dark"] .password-toggle-btn:hover { | |
| color: #a78bfa; | |
| background: rgba(139, 92, 246, 0.15); | |
| } | |
| .login-form .form-hint { | |
| display: block; | |
| margin-top: 8px; | |
| font-size: 0.8rem; | |
| color: #7272a8; | |
| } | |
| [data-theme="dark"] .login-form .form-hint { | |
| color: #94a3b8; | |
| } | |
| .login-form .submit-button { | |
| width: 100%; | |
| padding: 18px 24px; | |
| font-size: 1.05rem; | |
| font-weight: 700; | |
| margin-top: var(--space-4); | |
| background: linear-gradient(135deg, #d000d0 0%, #00cccc 50%, #b366ff 100%); | |
| border: none; | |
| border-radius: 16px; | |
| color: #ffffff; | |
| cursor: pointer; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| box-shadow: 0 8px 30px rgba(79, 124, 130, 0.35); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 10px; | |
| } | |
| .login-form .submit-button:hover:not(:disabled) { | |
| transform: translateY(-3px); | |
| box-shadow: | |
| 0 15px 40px rgba(79, 124, 130, 0.45), | |
| 0 0 50px rgba(147, 177, 181, 0.2); | |
| } | |
| .login-form .submit-button:active:not(:disabled) { | |
| transform: translateY(-1px); | |
| } | |
| .login-form .submit-button:disabled { | |
| opacity: 0.7; | |
| cursor: not-allowed; | |
| } | |
| .login-footer { | |
| text-align: center; | |
| margin-top: var(--space-6); | |
| font-size: 0.95rem; | |
| color: #7272a8; | |
| } | |
| [data-theme="dark"] .login-footer { | |
| color: #94a3b8; | |
| } | |
| .link-button { | |
| color: #d000d0; | |
| font-weight: 700; | |
| background: none; | |
| border: none; | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| } | |
| .link-button:hover { | |
| color: #00cccc; | |
| text-decoration: underline; | |
| } | |
| .login-security { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: var(--space-2); | |
| margin-top: var(--space-6); | |
| padding-top: var(--space-6); | |
| border-top: 1px solid rgba(147, 177, 181, 0.15); | |
| font-size: 0.85rem; | |
| color: #7272a8; | |
| } | |
| [data-theme="dark"] .login-security { | |
| border-top-color: rgba(139, 92, 246, 0.2); | |
| color: #94a3b8; | |
| } | |
| .login-security svg { | |
| color: #00cccc; | |
| } | |
| .lock-icon { | |
| font-size: var(--text-sm); | |
| } | |
| /* Error & Success Messages - Premium Style */ | |
| .error-message { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| padding: 14px 18px; | |
| background: linear-gradient(135deg, rgba(239, 68, 68, 0.1), rgba(220, 38, 38, 0.08)); | |
| border: 1px solid rgba(239, 68, 68, 0.2); | |
| color: #dc2626; | |
| border-radius: 14px; | |
| font-size: 0.9rem; | |
| font-weight: 500; | |
| margin-bottom: var(--space-4); | |
| animation: shake 0.3s ease-in-out; | |
| } | |
| [data-theme="dark"] .error-message { | |
| background: linear-gradient(135deg, rgba(239, 68, 68, 0.15), rgba(220, 38, 38, 0.1)); | |
| border-color: rgba(239, 68, 68, 0.3); | |
| color: #f87171; | |
| } | |
| @keyframes shake { | |
| 0%, | |
| 100% { | |
| transform: translateX(0); | |
| } | |
| 25% { | |
| transform: translateX(-5px); | |
| } | |
| 75% { | |
| transform: translateX(5px); | |
| } | |
| } | |
| .success-message { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| padding: 14px 18px; | |
| background: linear-gradient(135deg, rgba(16, 185, 129, 0.1), rgba(5, 150, 105, 0.08)); | |
| border: 1px solid rgba(16, 185, 129, 0.2); | |
| color: #059669; | |
| border-radius: 14px; | |
| font-size: 0.9rem; | |
| font-weight: 500; | |
| margin-bottom: var(--space-4); | |
| } | |
| [data-theme="dark"] .success-message { | |
| background: linear-gradient(135deg, rgba(16, 185, 129, 0.15), rgba(5, 150, 105, 0.1)); | |
| border-color: rgba(16, 185, 129, 0.3); | |
| color: #34d399; | |
| } | |
| /* Spinner */ | |
| .spinner-small { | |
| display: inline-block; | |
| width: 16px; | |
| height: 16px; | |
| border: 2px solid transparent; | |
| border-top-color: currentColor; | |
| border-radius: 50%; | |
| animation: spin 0.8s linear infinite; | |
| } | |
| @keyframes spin { | |
| to { | |
| transform: rotate(360deg); | |
| } | |
| } | |
| /* =========================================== | |
| DASHBOARD PAGE | |
| =========================================== */ | |
| .dashboard-container { | |
| min-height: 100vh; | |
| background: var(--bg-secondary); | |
| } | |
| [data-theme="dark"] .dashboard-container { | |
| background: linear-gradient(180deg, var(--bg-primary) 0%, var(--bg-secondary) 100%); | |
| } | |
| .dashboard-main { | |
| max-width: 1280px; | |
| margin: 0 auto; | |
| padding: var(--space-8); | |
| } | |
| .welcome-section { | |
| margin-bottom: var(--space-10); | |
| } | |
| .welcome-section h1 { | |
| font-family: var(--font-display); | |
| font-size: var(--text-4xl); | |
| font-weight: var(--font-bold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-2); | |
| } | |
| .welcome-section p { | |
| font-size: var(--text-lg); | |
| color: var(--text-secondary); | |
| } | |
| /* Quick Actions Grid */ | |
| .quick-actions { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); | |
| gap: var(--space-6); | |
| margin-bottom: var(--space-12); | |
| } | |
| .action-card { | |
| position: relative; | |
| padding: var(--space-8); | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| text-align: left; | |
| overflow: hidden; | |
| transition: all var(--transition-base); | |
| } | |
| .action-card::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 3px; | |
| background: var(--primary-gradient); | |
| opacity: 0; | |
| transition: opacity var(--transition-fast); | |
| } | |
| .action-card:hover { | |
| transform: translateY(-4px); | |
| box-shadow: var(--shadow-lg); | |
| border-color: var(--primary); | |
| } | |
| .action-card:hover::before { | |
| opacity: 1; | |
| } | |
| .action-card.primary { | |
| background: var(--primary-gradient); | |
| border: none; | |
| color: white; | |
| } | |
| .action-card.primary::before { | |
| display: none; | |
| } | |
| .action-card.primary:hover { | |
| box-shadow: var(--shadow-xl), 0 0 40px var(--primary-glow); | |
| } | |
| .action-card .icon { | |
| font-size: 2.5rem; | |
| margin-bottom: var(--space-4); | |
| display: block; | |
| } | |
| .action-card h3 { | |
| font-family: var(--font-display); | |
| font-size: var(--text-xl); | |
| font-weight: var(--font-semibold); | |
| margin-bottom: var(--space-2); | |
| } | |
| .action-card p { | |
| font-size: var(--text-sm); | |
| opacity: 0.8; | |
| line-height: var(--leading-relaxed); | |
| } | |
| /* Stats Section */ | |
| .stats-section { | |
| margin-bottom: var(--space-12); | |
| } | |
| .stats-section h2, | |
| .recent-section h2 { | |
| font-family: var(--font-display); | |
| font-size: var(--text-2xl); | |
| font-weight: var(--font-semibold); | |
| margin-bottom: var(--space-6); | |
| color: var(--text-primary); | |
| } | |
| .stats-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); | |
| gap: var(--space-4); | |
| } | |
| .stat-card { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-xl); | |
| padding: var(--space-6); | |
| text-align: center; | |
| transition: all var(--transition-base); | |
| } | |
| .stat-card:hover { | |
| border-color: var(--primary); | |
| box-shadow: 0 0 20px var(--primary-glow); | |
| } | |
| .stat-value { | |
| display: block; | |
| font-family: var(--font-display); | |
| font-size: var(--text-3xl); | |
| font-weight: var(--font-bold); | |
| background: var(--primary-gradient); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| margin-bottom: var(--space-1); | |
| } | |
| .stat-label { | |
| font-size: var(--text-sm); | |
| color: var(--text-muted); | |
| font-weight: var(--font-medium); | |
| } | |
| /* Recent Interviews */ | |
| .recent-section { | |
| margin-bottom: var(--space-8); | |
| } | |
| .recent-list { | |
| display: flex; | |
| flex-direction: column; | |
| gap: var(--space-3); | |
| } | |
| .recent-item { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| padding: var(--space-4) var(--space-6); | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-xl); | |
| cursor: pointer; | |
| transition: all var(--transition-fast); | |
| } | |
| .recent-item:hover { | |
| border-color: var(--primary); | |
| background: var(--bg-card-hover); | |
| transform: translateX(4px); | |
| } | |
| .recent-info strong { | |
| display: block; | |
| font-size: var(--text-base); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-1); | |
| } | |
| .recent-score { | |
| font-weight: var(--font-bold); | |
| color: var(--primary); | |
| font-size: var(--text-lg); | |
| } | |
| /* Empty State */ | |
| .empty-state { | |
| text-align: center; | |
| padding: var(--space-16); | |
| background: var(--bg-card); | |
| border: 2px dashed var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| } | |
| .empty-icon { | |
| font-size: 4rem; | |
| margin-bottom: var(--space-4); | |
| opacity: 0.8; | |
| } | |
| .empty-state p { | |
| color: var(--text-muted); | |
| font-size: var(--text-lg); | |
| margin-bottom: var(--space-6); | |
| } | |
| /* Muted Text */ | |
| .muted-text { | |
| color: var(--text-muted); | |
| font-size: var(--text-sm); | |
| } | |
| /* Error & Success Banners */ | |
| .error-banner, | |
| .success-banner { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| padding: var(--space-4) var(--space-6); | |
| border-radius: var(--radius-xl); | |
| margin-bottom: var(--space-6); | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-medium); | |
| } | |
| .error-banner { | |
| background: var(--danger-bg); | |
| color: var(--danger); | |
| border: 1px solid var(--danger); | |
| } | |
| .success-banner { | |
| background: var(--success-bg); | |
| color: var(--success); | |
| border: 1px solid var(--success); | |
| } | |
| .error-banner button, | |
| .success-banner button { | |
| font-size: var(--text-lg); | |
| color: inherit; | |
| opacity: 0.7; | |
| } | |
| .error-banner button:hover, | |
| .success-banner button:hover { | |
| opacity: 1; | |
| } | |
| /* =========================================== | |
| LOADING STATE | |
| =========================================== */ | |
| .loading-container { | |
| min-height: 100vh; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| background: var(--bg-secondary); | |
| } | |
| .loading-content { | |
| text-align: center; | |
| } | |
| .spinner { | |
| width: 48px; | |
| height: 48px; | |
| border: 3px solid var(--border-color); | |
| border-top-color: var(--primary); | |
| border-radius: 50%; | |
| animation: spin 1s linear infinite; | |
| margin: 0 auto var(--space-4); | |
| } | |
| .loading-text { | |
| color: var(--text-muted); | |
| font-size: var(--text-sm); | |
| } | |
| /* Error State (Connection Error) */ | |
| .error-content { | |
| max-width: 400px; | |
| padding: var(--space-8); | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| box-shadow: var(--shadow-lg); | |
| } | |
| .error-icon { | |
| font-size: 4rem; | |
| margin-bottom: var(--space-4); | |
| } | |
| .error-title { | |
| font-family: var(--font-display); | |
| font-size: var(--text-2xl); | |
| font-weight: var(--font-bold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-2); | |
| } | |
| .error-text { | |
| color: var(--text-secondary); | |
| font-size: var(--text-base); | |
| margin-bottom: var(--space-6); | |
| line-height: var(--leading-relaxed); | |
| } | |
| .retry-button, | |
| .login-button { | |
| display: inline-block; | |
| padding: var(--space-3) var(--space-6); | |
| font-weight: var(--font-semibold); | |
| border-radius: var(--radius-xl); | |
| margin: var(--space-2); | |
| transition: all var(--transition-fast); | |
| } | |
| .retry-button { | |
| background: var(--primary-gradient); | |
| color: white; | |
| } | |
| .retry-button:hover { | |
| transform: translateY(-2px); | |
| box-shadow: var(--shadow-lg); | |
| } | |
| .login-button { | |
| background: var(--bg-tertiary); | |
| color: var(--text-primary); | |
| border: 1px solid var(--border-color); | |
| } | |
| .login-button:hover { | |
| background: var(--bg-secondary); | |
| border-color: var(--primary); | |
| } | |
| /* =========================================== | |
| RESUMES PAGE - PREMIUM COSMIC THEME | |
| =========================================== */ | |
| .resumes-container { | |
| min-height: 100vh; | |
| background: linear-gradient(135deg, #f0eef8 0%, #e4e0f2 35%, #d6d0ea 65%, #f0eef8 100%); | |
| position: relative; | |
| } | |
| [data-theme="dark"] .resumes-container { | |
| background: linear-gradient(180deg, #0a1628 0%, #0d1f3c 50%, #0a1628 100%); | |
| } | |
| .resumes-container::before { | |
| content: ''; | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| bottom: 0; | |
| background: | |
| radial-gradient(ellipse 80% 50% at 20% 40%, rgba(79, 124, 130, 0.12) 0%, transparent 50%), | |
| radial-gradient(ellipse 60% 40% at 80% 20%, rgba(184, 227, 233, 0.2) 0%, transparent 50%), | |
| radial-gradient(ellipse 50% 30% at 70% 80%, rgba(147, 177, 181, 0.1) 0%, transparent 50%); | |
| pointer-events: none; | |
| z-index: 0; | |
| } | |
| [data-theme="dark"] .resumes-container::before { | |
| background: | |
| radial-gradient(ellipse 80% 50% at 20% 40%, rgba(139, 92, 246, 0.15) 0%, transparent 50%), | |
| radial-gradient(ellipse 60% 40% at 80% 20%, rgba(59, 130, 246, 0.12) 0%, transparent 50%), | |
| radial-gradient(ellipse 50% 30% at 70% 80%, rgba(167, 139, 250, 0.1) 0%, transparent 50%); | |
| } | |
| .resumes-main { | |
| max-width: 1400px; | |
| margin: 0 auto; | |
| padding: 2rem 2rem 4rem; | |
| position: relative; | |
| z-index: 1; | |
| } | |
| /* Premium Page Header */ | |
| .resumes-container .page-header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| margin-bottom: 2.5rem; | |
| flex-wrap: wrap; | |
| gap: 1.5rem; | |
| padding: 2rem 2.5rem; | |
| background: rgba(255, 255, 255, 0.9); | |
| border-radius: 24px; | |
| border: 1px solid rgba(147, 177, 181, 0.15); | |
| box-shadow: | |
| 0 8px 32px rgba(147, 177, 181, 0.08), | |
| 0 0 0 1px rgba(255, 255, 255, 0.5) inset; | |
| backdrop-filter: blur(20px); | |
| } | |
| [data-theme="dark"] .resumes-container .page-header { | |
| background: rgba(15, 25, 50, 0.85); | |
| border: 1px solid rgba(139, 92, 246, 0.3); | |
| box-shadow: | |
| 0 8px 32px rgba(0, 0, 0, 0.3), | |
| 0 0 40px rgba(139, 92, 246, 0.15), | |
| 0 0 0 1px rgba(139, 92, 246, 0.2) inset; | |
| } | |
| .resumes-container .header-content h1 { | |
| font-family: var(--font-display); | |
| font-size: 2.25rem; | |
| font-weight: 800; | |
| background: linear-gradient(135deg, #191970 0%, #2b2b8a 50%, #d000d0 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| margin-bottom: 0.5rem; | |
| letter-spacing: -0.03em; | |
| } | |
| [data-theme="dark"] .resumes-container .header-content h1 { | |
| background: linear-gradient(135deg, #fff 0%, #e0e7ff 50%, #a78bfa 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| text-shadow: 0 0 40px rgba(167, 139, 250, 0.4); | |
| } | |
| .resumes-container .header-content p { | |
| color: #7272a8; | |
| font-size: 1.1rem; | |
| font-weight: 500; | |
| } | |
| [data-theme="dark"] .resumes-container .header-content p { | |
| color: rgba(199, 210, 254, 0.8); | |
| } | |
| /* Premium Tab Navigation */ | |
| .resumes-container .tab-navigation { | |
| display: flex; | |
| gap: 0.75rem; | |
| padding: 0.75rem; | |
| background: rgba(255, 255, 255, 0.9); | |
| border: 1px solid rgba(147, 177, 181, 0.15); | |
| border-radius: 20px; | |
| margin-bottom: 2.5rem; | |
| box-shadow: | |
| 0 8px 32px rgba(147, 177, 181, 0.08), | |
| 0 0 0 1px rgba(255, 255, 255, 0.5) inset; | |
| backdrop-filter: blur(20px); | |
| } | |
| [data-theme="dark"] .resumes-container .tab-navigation { | |
| background: rgba(15, 25, 50, 0.85); | |
| border: 1px solid rgba(139, 92, 246, 0.3); | |
| box-shadow: | |
| 0 8px 32px rgba(0, 0, 0, 0.3), | |
| 0 0 40px rgba(139, 92, 246, 0.1), | |
| 0 0 0 1px rgba(139, 92, 246, 0.2) inset; | |
| } | |
| .resumes-container .tab-button { | |
| flex: 1; | |
| padding: 1rem 2rem; | |
| font-weight: 700; | |
| font-size: 1rem; | |
| color: #2b2b8a; | |
| border-radius: 14px; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 0.75rem; | |
| border: none; | |
| background: transparent; | |
| cursor: pointer; | |
| } | |
| [data-theme="dark"] .resumes-container .tab-button { | |
| color: rgba(199, 210, 254, 0.7); | |
| } | |
| .resumes-container .tab-button:hover:not(.active):not(:disabled) { | |
| color: #d000d0; | |
| background: rgba(147, 177, 181, 0.1); | |
| transform: translateY(-2px); | |
| } | |
| [data-theme="dark"] .resumes-container .tab-button:hover:not(.active):not(:disabled) { | |
| color: #a78bfa; | |
| background: rgba(139, 92, 246, 0.15); | |
| } | |
| .resumes-container .tab-button.active { | |
| background: linear-gradient(135deg, #d000d0 0%, #00cccc 50%, #b366ff 100%); | |
| color: white; | |
| box-shadow: | |
| 0 8px 24px rgba(147, 177, 181, 0.4), | |
| 0 0 0 1px rgba(255, 255, 255, 0.2) inset, | |
| 0 0 20px rgba(147, 177, 181, 0.3); | |
| transform: scale(1.02); | |
| } | |
| [data-theme="dark"] .resumes-container .tab-button.active { | |
| box-shadow: | |
| 0 8px 32px rgba(139, 92, 246, 0.5), | |
| 0 0 0 1px rgba(255, 255, 255, 0.1) inset, | |
| 0 0 40px rgba(139, 92, 246, 0.4); | |
| } | |
| .resumes-container .tab-button:disabled { | |
| opacity: 0.5; | |
| cursor: not-allowed; | |
| } | |
| /* Premium Resumes Grid */ | |
| .resumes-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(380px, 1fr)); | |
| gap: 2rem; | |
| } | |
| /* Premium Cards - Upload & List Sections */ | |
| .upload-section, | |
| .list-section { | |
| background: rgba(255, 255, 255, 0.95); | |
| border: 1px solid rgba(147, 177, 181, 0.15); | |
| border-radius: 24px; | |
| padding: 2.5rem; | |
| box-shadow: | |
| 0 8px 32px rgba(147, 177, 181, 0.08), | |
| 0 0 0 1px rgba(255, 255, 255, 0.5) inset; | |
| backdrop-filter: blur(20px); | |
| transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| [data-theme="dark"] .upload-section, | |
| [data-theme="dark"] .list-section { | |
| background: rgba(15, 25, 50, 0.85); | |
| border: 1px solid rgba(139, 92, 246, 0.3); | |
| box-shadow: | |
| 0 8px 32px rgba(0, 0, 0, 0.3), | |
| 0 0 40px rgba(139, 92, 246, 0.15), | |
| 0 0 0 1px rgba(139, 92, 246, 0.2) inset; | |
| } | |
| .upload-section:hover, | |
| .list-section:hover { | |
| transform: translateY(-4px); | |
| box-shadow: | |
| 0 16px 48px rgba(147, 177, 181, 0.15), | |
| 0 0 0 1px rgba(147, 177, 181, 0.3), | |
| 0 0 30px rgba(147, 177, 181, 0.1); | |
| } | |
| [data-theme="dark"] .upload-section:hover, | |
| [data-theme="dark"] .list-section:hover { | |
| box-shadow: | |
| 0 16px 48px rgba(0, 0, 0, 0.4), | |
| 0 0 60px rgba(139, 92, 246, 0.25), | |
| 0 0 0 1px rgba(139, 92, 246, 0.4) inset; | |
| } | |
| .upload-section h2, | |
| .list-section h2 { | |
| font-family: var(--font-display); | |
| font-size: 1.5rem; | |
| font-weight: 800; | |
| margin-bottom: 1.75rem; | |
| background: linear-gradient(135deg, #191970 0%, #2b2b8a 50%, #d000d0 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| display: flex; | |
| align-items: center; | |
| gap: 0.75rem; | |
| } | |
| [data-theme="dark"] .upload-section h2, | |
| [data-theme="dark"] .list-section h2 { | |
| background: linear-gradient(135deg, #fff 0%, #e0e7ff 50%, #a78bfa 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| } | |
| /* Premium ATS Tab Content */ | |
| .ats-tab-content { | |
| background: rgba(255, 255, 255, 0.95); | |
| border: 1px solid rgba(147, 177, 181, 0.15); | |
| border-radius: 24px; | |
| padding: 2.5rem; | |
| box-shadow: | |
| 0 8px 32px rgba(147, 177, 181, 0.08), | |
| 0 0 0 1px rgba(255, 255, 255, 0.5) inset; | |
| backdrop-filter: blur(20px); | |
| } | |
| [data-theme="dark"] .ats-tab-content { | |
| background: rgba(15, 25, 50, 0.85); | |
| border: 1px solid rgba(139, 92, 246, 0.3); | |
| box-shadow: | |
| 0 8px 32px rgba(0, 0, 0, 0.3), | |
| 0 0 40px rgba(139, 92, 246, 0.15), | |
| 0 0 0 1px rgba(139, 92, 246, 0.2) inset; | |
| } | |
| .ats-resume-selector { | |
| margin-bottom: 2rem; | |
| } | |
| .ats-resume-selector label { | |
| display: block; | |
| margin-bottom: 0.75rem; | |
| font-weight: 600; | |
| color: #2b2b8a; | |
| font-size: 1rem; | |
| } | |
| [data-theme="dark"] .ats-resume-selector label { | |
| color: rgba(199, 210, 254, 0.9); | |
| } | |
| .ats-resume-selector select { | |
| width: 100%; | |
| max-width: 450px; | |
| padding: 1rem 1.25rem; | |
| border: 2px solid rgba(147, 177, 181, 0.2); | |
| border-radius: 14px; | |
| background: rgba(255, 255, 255, 0.9); | |
| color: #191970; | |
| font-size: 1rem; | |
| font-weight: 500; | |
| transition: all 0.3s ease; | |
| cursor: pointer; | |
| } | |
| [data-theme="dark"] .ats-resume-selector select { | |
| background: rgba(15, 25, 50, 0.9); | |
| border: 2px solid rgba(139, 92, 246, 0.3); | |
| color: #f1f5f9; | |
| } | |
| .ats-resume-selector select:focus { | |
| border-color: #00cccc; | |
| box-shadow: 0 0 0 4px rgba(147, 177, 181, 0.2); | |
| outline: none; | |
| } | |
| [data-theme="dark"] .ats-resume-selector select:focus { | |
| box-shadow: 0 0 0 4px rgba(139, 92, 246, 0.3); | |
| } | |
| /* Premium Help Section */ | |
| .help-section { | |
| background: rgba(255, 255, 255, 0.95); | |
| border: 1px solid rgba(147, 177, 181, 0.15); | |
| border-radius: 24px; | |
| padding: 2rem 2.5rem; | |
| margin-top: 2.5rem; | |
| box-shadow: | |
| 0 8px 32px rgba(147, 177, 181, 0.08), | |
| 0 0 0 1px rgba(255, 255, 255, 0.5) inset; | |
| backdrop-filter: blur(20px); | |
| } | |
| [data-theme="dark"] .help-section { | |
| background: rgba(15, 25, 50, 0.85); | |
| border: 1px solid rgba(139, 92, 246, 0.3); | |
| box-shadow: | |
| 0 8px 32px rgba(0, 0, 0, 0.3), | |
| 0 0 40px rgba(139, 92, 246, 0.15), | |
| 0 0 0 1px rgba(139, 92, 246, 0.2) inset; | |
| } | |
| .help-section h3 { | |
| font-family: var(--font-display); | |
| font-size: 1.25rem; | |
| font-weight: 700; | |
| margin-bottom: 1.25rem; | |
| background: linear-gradient(135deg, #191970 0%, #d000d0 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| display: flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| } | |
| [data-theme="dark"] .help-section h3 { | |
| background: linear-gradient(135deg, #fff 0%, #a78bfa 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| } | |
| .help-section ul { | |
| list-style: none; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.75rem; | |
| } | |
| .help-section li { | |
| padding-left: 2rem; | |
| position: relative; | |
| color: #2b2b8a; | |
| font-size: 0.95rem; | |
| line-height: 1.7; | |
| font-weight: 500; | |
| } | |
| [data-theme="dark"] .help-section li { | |
| color: rgba(199, 210, 254, 0.85); | |
| } | |
| .help-section li::before { | |
| content: '✦'; | |
| position: absolute; | |
| left: 0.25rem; | |
| color: #00cccc; | |
| font-weight: bold; | |
| font-size: 0.85rem; | |
| } | |
| /* Mobile Responsive - Resumes Page */ | |
| @media (max-width: 900px) { | |
| .resumes-main { | |
| padding: 1.5rem 1.25rem 3rem; | |
| } | |
| .resumes-grid { | |
| grid-template-columns: 1fr; | |
| gap: 1.5rem; | |
| } | |
| .resumes-container .page-header { | |
| padding: 1.5rem; | |
| flex-direction: column; | |
| align-items: flex-start; | |
| } | |
| .resumes-container .header-content h1 { | |
| font-size: 1.75rem; | |
| } | |
| .resumes-container .tab-navigation { | |
| flex-direction: column; | |
| padding: 0.5rem; | |
| } | |
| .resumes-container .tab-button { | |
| padding: 0.875rem 1.5rem; | |
| } | |
| .upload-section, | |
| .list-section, | |
| .ats-tab-content { | |
| padding: 1.5rem; | |
| border-radius: 18px; | |
| } | |
| } | |
| @media (max-width: 600px) { | |
| .resumes-main { | |
| padding: 1rem 1rem 2.5rem; | |
| } | |
| .resumes-container .page-header { | |
| padding: 1.25rem; | |
| border-radius: 18px; | |
| } | |
| .resumes-container .header-content h1 { | |
| font-size: 1.5rem; | |
| } | |
| .resumes-container .header-content p { | |
| font-size: 0.95rem; | |
| } | |
| .resumes-container .tab-navigation { | |
| border-radius: 16px; | |
| margin-bottom: 1.5rem; | |
| } | |
| .resumes-container .tab-button { | |
| font-size: 0.9rem; | |
| padding: 0.75rem 1rem; | |
| } | |
| .upload-section h2, | |
| .list-section h2 { | |
| font-size: 1.25rem; | |
| } | |
| .help-section { | |
| padding: 1.5rem; | |
| margin-top: 1.5rem; | |
| } | |
| } | |
| /* =========================================== | |
| INTERVIEW PAGE - PREMIUM COSMIC THEME | |
| =========================================== */ | |
| .interview-container { | |
| min-height: 100vh; | |
| background: linear-gradient(135deg, #f0eef8 0%, #e4e0f2 50%, #d6d0ea 100%); | |
| position: relative; | |
| } | |
| [data-theme="dark"] .interview-container { | |
| background: linear-gradient(180deg, #0a1628 0%, #0d1f3c 50%, #0a1628 100%); | |
| } | |
| .interview-container::before { | |
| content: ''; | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| bottom: 0; | |
| background: | |
| radial-gradient(ellipse 80% 50% at 20% 40%, rgba(147, 177, 181, 0.1) 0%, transparent 50%), | |
| radial-gradient(ellipse 60% 40% at 80% 20%, rgba(79, 124, 130, 0.08) 0%, transparent 50%), | |
| radial-gradient(ellipse 50% 30% at 70% 80%, rgba(147, 177, 181, 0.06) 0%, transparent 50%); | |
| pointer-events: none; | |
| z-index: 0; | |
| } | |
| [data-theme="dark"] .interview-container::before { | |
| background: | |
| radial-gradient(ellipse 80% 50% at 20% 40%, rgba(139, 92, 246, 0.15) 0%, transparent 50%), | |
| radial-gradient(ellipse 60% 40% at 80% 20%, rgba(59, 130, 246, 0.12) 0%, transparent 50%), | |
| radial-gradient(ellipse 50% 30% at 70% 80%, rgba(167, 139, 250, 0.1) 0%, transparent 50%); | |
| } | |
| .interview-main { | |
| max-width: 1200px; | |
| margin: 0 auto; | |
| padding: 2rem 2rem 4rem; | |
| position: relative; | |
| z-index: 1; | |
| } | |
| /* Premium Config Panel */ | |
| .config-panel { | |
| background: rgba(255, 255, 255, 0.95); | |
| border: 1px solid rgba(147, 177, 181, 0.15); | |
| border-radius: 28px; | |
| padding: 3rem; | |
| text-align: center; | |
| box-shadow: | |
| 0 8px 32px rgba(147, 177, 181, 0.1), | |
| 0 0 0 1px rgba(255, 255, 255, 0.5) inset; | |
| backdrop-filter: blur(20px); | |
| transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| [data-theme="dark"] .config-panel { | |
| background: rgba(15, 25, 50, 0.85); | |
| border: 1px solid rgba(139, 92, 246, 0.3); | |
| box-shadow: | |
| 0 8px 32px rgba(0, 0, 0, 0.3), | |
| 0 0 50px rgba(139, 92, 246, 0.15), | |
| 0 0 0 1px rgba(139, 92, 246, 0.2) inset; | |
| } | |
| .config-panel:hover { | |
| transform: translateY(-4px); | |
| box-shadow: | |
| 0 16px 48px rgba(147, 177, 181, 0.15), | |
| 0 0 0 1px rgba(147, 177, 181, 0.3), | |
| 0 0 30px rgba(147, 177, 181, 0.1); | |
| } | |
| [data-theme="dark"] .config-panel:hover { | |
| box-shadow: | |
| 0 16px 48px rgba(0, 0, 0, 0.4), | |
| 0 0 70px rgba(139, 92, 246, 0.25), | |
| 0 0 0 1px rgba(139, 92, 246, 0.4) inset; | |
| } | |
| .config-panel h2 { | |
| font-family: var(--font-display); | |
| font-size: 2rem; | |
| font-weight: 800; | |
| margin-bottom: 2.5rem; | |
| background: linear-gradient(135deg, #191970 0%, #2b2b8a 50%, #d000d0 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| } | |
| [data-theme="dark"] .config-panel h2 { | |
| background: linear-gradient(135deg, #fff 0%, #e0e7ff 50%, #a78bfa 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| text-shadow: 0 0 40px rgba(167, 139, 250, 0.4); | |
| } | |
| .config-options { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); | |
| gap: 1.75rem; | |
| margin-bottom: 2.5rem; | |
| text-align: left; | |
| } | |
| .config-group { | |
| text-align: left; | |
| } | |
| .config-group label { | |
| display: block; | |
| margin-bottom: 0.75rem; | |
| font-weight: 600; | |
| font-size: 0.95rem; | |
| color: #2b2b8a; | |
| } | |
| [data-theme="dark"] .config-group label { | |
| color: rgba(199, 210, 254, 0.9); | |
| } | |
| .config-group select { | |
| width: 100%; | |
| padding: 1rem 1.25rem; | |
| border: 2px solid rgba(147, 177, 181, 0.2); | |
| border-radius: 14px; | |
| background: rgba(255, 255, 255, 0.9); | |
| color: #191970; | |
| font-size: 1rem; | |
| font-weight: 500; | |
| transition: all 0.3s ease; | |
| cursor: pointer; | |
| } | |
| [data-theme="dark"] .config-group select { | |
| background: rgba(15, 25, 50, 0.9); | |
| border: 2px solid rgba(139, 92, 246, 0.3); | |
| color: #f1f5f9; | |
| } | |
| .config-group select:focus { | |
| border-color: #00cccc; | |
| box-shadow: 0 0 0 4px rgba(147, 177, 181, 0.2); | |
| outline: none; | |
| } | |
| [data-theme="dark"] .config-group select:focus { | |
| box-shadow: 0 0 0 4px rgba(139, 92, 246, 0.3); | |
| } | |
| /* Premium Interview Panel */ | |
| .interview-panel { | |
| display: grid; | |
| grid-template-columns: 320px 1fr; | |
| gap: 2rem; | |
| } | |
| @media (max-width: 900px) { | |
| .interview-panel { | |
| grid-template-columns: 1fr; | |
| gap: 1.5rem; | |
| } | |
| } | |
| /* Premium Avatar Section */ | |
| .avatar-section { | |
| background: rgba(255, 255, 255, 0.95); | |
| border: 1px solid rgba(147, 177, 181, 0.15); | |
| border-radius: 28px; | |
| padding: 2rem; | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| min-height: 360px; | |
| box-shadow: | |
| 0 8px 32px rgba(147, 177, 181, 0.1), | |
| 0 0 0 1px rgba(255, 255, 255, 0.5) inset; | |
| backdrop-filter: blur(20px); | |
| } | |
| [data-theme="dark"] .avatar-section { | |
| background: rgba(15, 25, 50, 0.85); | |
| border: 1px solid rgba(139, 92, 246, 0.3); | |
| box-shadow: | |
| 0 8px 32px rgba(0, 0, 0, 0.3), | |
| 0 0 50px rgba(139, 92, 246, 0.2), | |
| 0 0 0 1px rgba(139, 92, 246, 0.2) inset; | |
| } | |
| .avatar-fallback { | |
| text-align: center; | |
| } | |
| .avatar-icon { | |
| font-size: 5rem; | |
| margin-bottom: 1.25rem; | |
| filter: drop-shadow(0 0 25px rgba(147, 177, 181, 0.4)); | |
| animation: avatarFloat 3s ease-in-out infinite; | |
| } | |
| [data-theme="dark"] .avatar-icon { | |
| filter: drop-shadow(0 0 35px rgba(167, 139, 250, 0.6)); | |
| } | |
| .avatar-icon.speaking { | |
| animation: pulse 1s infinite, avatarFloat 3s ease-in-out infinite; | |
| } | |
| @keyframes avatarFloat { | |
| 0%, | |
| 100% { | |
| transform: translateY(0); | |
| } | |
| 50% { | |
| transform: translateY(-8px); | |
| } | |
| } | |
| @keyframes pulse { | |
| 0%, | |
| 100% { | |
| transform: scale(1); | |
| } | |
| 50% { | |
| transform: scale(1.08); | |
| } | |
| } | |
| .avatar-label { | |
| color: #7272a8; | |
| font-size: 0.95rem; | |
| font-weight: 500; | |
| } | |
| [data-theme="dark"] .avatar-label { | |
| color: rgba(199, 210, 254, 0.7); | |
| } | |
| /* Premium Q&A Section */ | |
| .qa-section { | |
| background: rgba(255, 255, 255, 0.95); | |
| border: 1px solid rgba(147, 177, 181, 0.15); | |
| border-radius: 28px; | |
| padding: 2.5rem; | |
| box-shadow: | |
| 0 8px 32px rgba(147, 177, 181, 0.1), | |
| 0 0 0 1px rgba(255, 255, 255, 0.5) inset; | |
| backdrop-filter: blur(20px); | |
| } | |
| [data-theme="dark"] .qa-section { | |
| background: rgba(15, 25, 50, 0.85); | |
| border: 1px solid rgba(139, 92, 246, 0.3); | |
| box-shadow: | |
| 0 8px 32px rgba(0, 0, 0, 0.3), | |
| 0 0 50px rgba(139, 92, 246, 0.15), | |
| 0 0 0 1px rgba(139, 92, 246, 0.2) inset; | |
| } | |
| /* Premium Progress Bar */ | |
| .progress-bar { | |
| height: 8px; | |
| background: rgba(147, 177, 181, 0.15); | |
| border-radius: 100px; | |
| margin-bottom: 0.75rem; | |
| overflow: hidden; | |
| } | |
| [data-theme="dark"] .progress-bar { | |
| background: rgba(139, 92, 246, 0.2); | |
| } | |
| .progress-fill { | |
| height: 100%; | |
| background: linear-gradient(90deg, #d000d0 0%, #00cccc 50%, #b366ff 100%); | |
| border-radius: 100px; | |
| transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1); | |
| box-shadow: 0 0 12px rgba(147, 177, 181, 0.5); | |
| } | |
| .progress-text { | |
| font-size: 0.9rem; | |
| color: #7272a8; | |
| margin-bottom: 1.25rem; | |
| font-weight: 500; | |
| } | |
| [data-theme="dark"] .progress-text { | |
| color: rgba(199, 210, 254, 0.7); | |
| } | |
| /* Premium Timer */ | |
| .timer { | |
| font-family: var(--font-display); | |
| font-size: 2.5rem; | |
| font-weight: 800; | |
| text-align: center; | |
| margin-bottom: 1.25rem; | |
| background: linear-gradient(135deg, #191970 0%, #d000d0 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| } | |
| [data-theme="dark"] .timer { | |
| background: linear-gradient(135deg, #fff 0%, #a78bfa 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| text-shadow: 0 0 30px rgba(167, 139, 250, 0.3); | |
| } | |
| .timer.warning { | |
| background: linear-gradient(135deg, #ef4444 0%, #f97316 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| animation: blink 1s infinite; | |
| } | |
| @keyframes blink { | |
| 0%, | |
| 100% { | |
| opacity: 1; | |
| } | |
| 50% { | |
| opacity: 0.5; | |
| } | |
| } | |
| /* Premium Question Box */ | |
| .question-box { | |
| background: rgba(147, 177, 181, 0.05); | |
| border: 1px solid rgba(147, 177, 181, 0.15); | |
| border-radius: 20px; | |
| padding: 2rem; | |
| margin-bottom: 2rem; | |
| } | |
| [data-theme="dark"] .question-box { | |
| background: rgba(139, 92, 246, 0.1); | |
| border: 1px solid rgba(139, 92, 246, 0.25); | |
| } | |
| .question-type { | |
| display: inline-block; | |
| padding: 0.4rem 1rem; | |
| background: linear-gradient(135deg, #d000d0 0%, #00cccc 50%, #b366ff 100%); | |
| color: white; | |
| font-size: 0.75rem; | |
| font-weight: 700; | |
| border-radius: 100px; | |
| text-transform: uppercase; | |
| letter-spacing: 0.5px; | |
| margin-bottom: 1rem; | |
| box-shadow: 0 4px 12px rgba(147, 177, 181, 0.3); | |
| } | |
| [data-theme="dark"] .question-type { | |
| box-shadow: 0 4px 16px rgba(139, 92, 246, 0.4); | |
| } | |
| .question-text { | |
| font-size: 1.25rem; | |
| font-weight: 600; | |
| color: #191970; | |
| line-height: 1.7; | |
| } | |
| [data-theme="dark"] .question-text { | |
| color: #f1f5f9; | |
| } | |
| /* Premium Answer Input */ | |
| .answer-input { | |
| width: 100%; | |
| min-height: 180px; | |
| padding: 1.5rem; | |
| border: 2px solid rgba(147, 177, 181, 0.2); | |
| border-radius: 18px; | |
| background: rgba(255, 255, 255, 0.9); | |
| color: #191970; | |
| resize: vertical; | |
| margin-bottom: 2rem; | |
| font-size: 1.05rem; | |
| line-height: 1.7; | |
| font-weight: 500; | |
| transition: all 0.3s ease; | |
| } | |
| [data-theme="dark"] .answer-input { | |
| background: rgba(15, 25, 50, 0.9); | |
| border: 2px solid rgba(139, 92, 246, 0.3); | |
| color: #f1f5f9; | |
| } | |
| .answer-input:focus { | |
| border-color: #00cccc; | |
| box-shadow: 0 0 0 4px rgba(147, 177, 181, 0.2); | |
| outline: none; | |
| } | |
| [data-theme="dark"] .answer-input:focus { | |
| box-shadow: 0 0 0 4px rgba(139, 92, 246, 0.3); | |
| } | |
| .answer-input::placeholder { | |
| color: #00cccc; | |
| } | |
| [data-theme="dark"] .answer-input::placeholder { | |
| color: rgba(148, 163, 184, 0.6); | |
| } | |
| /* Premium Interview Actions */ | |
| .interview-actions { | |
| display: flex; | |
| justify-content: space-between; | |
| gap: 1.25rem; | |
| flex-wrap: wrap; | |
| } | |
| .interview-actions button { | |
| flex: 1; | |
| min-width: 160px; | |
| padding: 1rem 2rem; | |
| border-radius: 14px; | |
| font-weight: 700; | |
| font-size: 1rem; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| cursor: pointer; | |
| border: none; | |
| } | |
| .interview-actions button:not(:disabled):hover { | |
| transform: translateY(-3px); | |
| } | |
| /* Mobile Responsive - Interview Page */ | |
| @media (max-width: 900px) { | |
| .interview-main { | |
| padding: 1.5rem 1.25rem 3rem; | |
| } | |
| .config-panel { | |
| padding: 2rem 1.5rem; | |
| border-radius: 24px; | |
| } | |
| .config-panel h2 { | |
| font-size: 1.6rem; | |
| } | |
| .config-options { | |
| grid-template-columns: 1fr; | |
| gap: 1.25rem; | |
| } | |
| } | |
| @media (max-width: 600px) { | |
| .interview-main { | |
| padding: 1rem 1rem 2.5rem; | |
| } | |
| .config-panel { | |
| padding: 1.5rem 1.25rem; | |
| border-radius: 20px; | |
| } | |
| .config-panel h2 { | |
| font-size: 1.35rem; | |
| margin-bottom: 1.75rem; | |
| } | |
| .avatar-section { | |
| min-height: 280px; | |
| padding: 1.5rem; | |
| border-radius: 22px; | |
| } | |
| .avatar-icon { | |
| font-size: 4rem; | |
| } | |
| .qa-section { | |
| padding: 1.5rem; | |
| border-radius: 22px; | |
| } | |
| .timer { | |
| font-size: 2rem; | |
| } | |
| .question-box { | |
| padding: 1.5rem; | |
| border-radius: 16px; | |
| } | |
| .question-text { | |
| font-size: 1.1rem; | |
| } | |
| .answer-input { | |
| min-height: 140px; | |
| padding: 1.25rem; | |
| border-radius: 14px; | |
| } | |
| .interview-actions { | |
| flex-direction: column; | |
| } | |
| .interview-actions button { | |
| min-width: 100%; | |
| } | |
| } | |
| /* =========================================== | |
| REPORT PAGE - PREMIUM COSMIC THEME | |
| =========================================== */ | |
| .report-container { | |
| min-height: 100vh; | |
| background: linear-gradient(135deg, #f0eef8 0%, #e4e0f2 35%, #d6d0ea 65%, #f0eef8 100%); | |
| position: relative; | |
| } | |
| [data-theme="dark"] .report-container { | |
| background: linear-gradient(180deg, #0a1628 0%, #0d1f3c 50%, #0a1628 100%); | |
| } | |
| .report-container::before { | |
| content: ''; | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| bottom: 0; | |
| background: | |
| radial-gradient(ellipse 80% 50% at 20% 40%, rgba(79, 124, 130, 0.12) 0%, transparent 50%), | |
| radial-gradient(ellipse 60% 40% at 80% 20%, rgba(184, 227, 233, 0.2) 0%, transparent 50%), | |
| radial-gradient(ellipse 50% 30% at 70% 80%, rgba(147, 177, 181, 0.1) 0%, transparent 50%); | |
| pointer-events: none; | |
| z-index: 0; | |
| } | |
| [data-theme="dark"] .report-container::before { | |
| background: | |
| radial-gradient(ellipse 80% 50% at 20% 40%, rgba(139, 92, 246, 0.15) 0%, transparent 50%), | |
| radial-gradient(ellipse 60% 40% at 80% 20%, rgba(59, 130, 246, 0.12) 0%, transparent 50%), | |
| radial-gradient(ellipse 50% 30% at 70% 80%, rgba(167, 139, 250, 0.1) 0%, transparent 50%); | |
| } | |
| .report-main { | |
| max-width: 1000px; | |
| margin: 0 auto; | |
| padding: 2rem 2rem 4rem; | |
| position: relative; | |
| z-index: 1; | |
| } | |
| .report-header { | |
| text-align: center; | |
| margin-bottom: 3rem; | |
| padding: 2.5rem; | |
| background: rgba(255, 255, 255, 0.95); | |
| border: 1px solid rgba(147, 177, 181, 0.15); | |
| border-radius: 28px; | |
| box-shadow: | |
| 0 8px 32px rgba(147, 177, 181, 0.08), | |
| 0 0 0 1px rgba(255, 255, 255, 0.5) inset; | |
| backdrop-filter: blur(20px); | |
| } | |
| [data-theme="dark"] .report-header { | |
| background: rgba(15, 25, 50, 0.85); | |
| border: 1px solid rgba(139, 92, 246, 0.3); | |
| box-shadow: | |
| 0 8px 32px rgba(0, 0, 0, 0.3), | |
| 0 0 50px rgba(139, 92, 246, 0.15), | |
| 0 0 0 1px rgba(139, 92, 246, 0.2) inset; | |
| } | |
| .report-header h1 { | |
| font-family: var(--font-display); | |
| font-size: 2.5rem; | |
| font-weight: 800; | |
| margin-bottom: 0.75rem; | |
| background: linear-gradient(135deg, #191970 0%, #2b2b8a 50%, #d000d0 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| } | |
| [data-theme="dark"] .report-header h1 { | |
| background: linear-gradient(135deg, #fff 0%, #e0e7ff 50%, #a78bfa 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| text-shadow: 0 0 40px rgba(167, 139, 250, 0.4); | |
| } | |
| .report-summary { | |
| color: #7272a8; | |
| font-size: 1.15rem; | |
| font-weight: 500; | |
| } | |
| [data-theme="dark"] .report-summary { | |
| color: rgba(199, 210, 254, 0.8); | |
| } | |
| /* Premium Score Card */ | |
| .score-card { | |
| display: flex; | |
| align-items: center; | |
| gap: 2.5rem; | |
| background: rgba(255, 255, 255, 0.95); | |
| border: 1px solid rgba(147, 177, 181, 0.15); | |
| border-radius: 28px; | |
| padding: 2.5rem; | |
| margin-bottom: 2.5rem; | |
| box-shadow: | |
| 0 8px 32px rgba(147, 177, 181, 0.08), | |
| 0 0 0 1px rgba(255, 255, 255, 0.5) inset; | |
| backdrop-filter: blur(20px); | |
| } | |
| [data-theme="dark"] .score-card { | |
| background: rgba(15, 25, 50, 0.85); | |
| border: 1px solid rgba(139, 92, 246, 0.3); | |
| box-shadow: | |
| 0 8px 32px rgba(0, 0, 0, 0.3), | |
| 0 0 50px rgba(139, 92, 246, 0.2), | |
| 0 0 0 1px rgba(139, 92, 246, 0.2) inset; | |
| } | |
| .grade-circle { | |
| width: 160px; | |
| height: 160px; | |
| border-radius: 50%; | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| background: rgba(147, 177, 181, 0.1); | |
| flex-shrink: 0; | |
| position: relative; | |
| } | |
| .grade-circle::before { | |
| content: ''; | |
| position: absolute; | |
| inset: -3px; | |
| border-radius: 50%; | |
| background: linear-gradient(135deg, #d000d0 0%, #00cccc 50%, #b366ff 100%); | |
| z-index: -1; | |
| opacity: 0.3; | |
| } | |
| .grade-circle.grade-a { | |
| background: linear-gradient(135deg, #10b981 0%, #059669 100%); | |
| color: white; | |
| box-shadow: | |
| 0 0 40px rgba(16, 185, 129, 0.4), | |
| 0 0 0 3px rgba(16, 185, 129, 0.3); | |
| } | |
| .grade-circle.grade-a::before { | |
| background: linear-gradient(135deg, #10b981 0%, #059669 100%); | |
| opacity: 0.5; | |
| } | |
| .grade-circle.grade-b { | |
| background: linear-gradient(135deg, #d000d0 0%, #00cccc 100%); | |
| color: white; | |
| box-shadow: | |
| 0 0 40px rgba(147, 177, 181, 0.4), | |
| 0 0 0 3px rgba(147, 177, 181, 0.3); | |
| } | |
| .grade-circle.grade-c { | |
| background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%); | |
| color: white; | |
| box-shadow: | |
| 0 0 40px rgba(245, 158, 11, 0.4), | |
| 0 0 0 3px rgba(245, 158, 11, 0.3); | |
| } | |
| .grade-circle.grade-c::before { | |
| background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%); | |
| opacity: 0.5; | |
| } | |
| .grade-circle .grade { | |
| font-family: var(--font-display); | |
| font-size: 2.5rem; | |
| font-weight: 900; | |
| letter-spacing: -0.02em; | |
| } | |
| .grade-circle .score { | |
| font-size: 1rem; | |
| font-weight: 600; | |
| opacity: 0.9; | |
| } | |
| .score-details { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.75rem; | |
| } | |
| .status { | |
| font-family: var(--font-display); | |
| font-weight: 800; | |
| font-size: 1.5rem; | |
| } | |
| .status.pass { | |
| color: #10b981; | |
| } | |
| [data-theme="dark"] .status.pass { | |
| color: #34d399; | |
| text-shadow: 0 0 20px rgba(52, 211, 153, 0.4); | |
| } | |
| .status.fail { | |
| color: #ef4444; | |
| } | |
| [data-theme="dark"] .status.fail { | |
| color: #f87171; | |
| text-shadow: 0 0 20px rgba(248, 113, 113, 0.4); | |
| } | |
| .recommendation { | |
| color: #7272a8; | |
| font-size: 1.05rem; | |
| line-height: 1.7; | |
| font-weight: 500; | |
| } | |
| [data-theme="dark"] .recommendation { | |
| color: rgba(199, 210, 254, 0.8); | |
| } | |
| /* Premium Report Sections */ | |
| .breakdown-section, | |
| .insights-section, | |
| .next-steps-section { | |
| background: rgba(255, 255, 255, 0.95); | |
| border: 1px solid rgba(147, 177, 181, 0.15); | |
| border-radius: 24px; | |
| padding: 2.5rem; | |
| margin-bottom: 2rem; | |
| box-shadow: | |
| 0 8px 32px rgba(147, 177, 181, 0.08), | |
| 0 0 0 1px rgba(255, 255, 255, 0.5) inset; | |
| backdrop-filter: blur(20px); | |
| transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| [data-theme="dark"] .breakdown-section, | |
| [data-theme="dark"] .insights-section, | |
| [data-theme="dark"] .next-steps-section { | |
| background: rgba(15, 25, 50, 0.85); | |
| border: 1px solid rgba(139, 92, 246, 0.3); | |
| box-shadow: | |
| 0 8px 32px rgba(0, 0, 0, 0.3), | |
| 0 0 50px rgba(139, 92, 246, 0.15), | |
| 0 0 0 1px rgba(139, 92, 246, 0.2) inset; | |
| } | |
| .breakdown-section:hover, | |
| .insights-section:hover, | |
| .next-steps-section:hover { | |
| transform: translateY(-4px); | |
| box-shadow: | |
| 0 16px 48px rgba(147, 177, 181, 0.15), | |
| 0 0 0 1px rgba(147, 177, 181, 0.3); | |
| } | |
| [data-theme="dark"] .breakdown-section:hover, | |
| [data-theme="dark"] .insights-section:hover, | |
| [data-theme="dark"] .next-steps-section:hover { | |
| box-shadow: | |
| 0 16px 48px rgba(0, 0, 0, 0.4), | |
| 0 0 70px rgba(139, 92, 246, 0.25), | |
| 0 0 0 1px rgba(139, 92, 246, 0.4) inset; | |
| } | |
| .breakdown-section h2, | |
| .insights-section h2, | |
| .next-steps-section h2 { | |
| font-family: var(--font-display); | |
| font-size: 1.5rem; | |
| font-weight: 800; | |
| margin-bottom: 1.75rem; | |
| background: linear-gradient(135deg, #191970 0%, #2b2b8a 50%, #d000d0 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| } | |
| [data-theme="dark"] .breakdown-section h2, | |
| [data-theme="dark"] .insights-section h2, | |
| [data-theme="dark"] .next-steps-section h2 { | |
| background: linear-gradient(135deg, #fff 0%, #e0e7ff 50%, #a78bfa 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| } | |
| .breakdown-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); | |
| gap: 1.5rem; | |
| } | |
| .breakdown-card { | |
| padding: 1.5rem; | |
| background: rgba(147, 177, 181, 0.05); | |
| border: 1px solid rgba(147, 177, 181, 0.1); | |
| border-radius: 16px; | |
| } | |
| [data-theme="dark"] .breakdown-card { | |
| background: rgba(139, 92, 246, 0.08); | |
| border: 1px solid rgba(139, 92, 246, 0.2); | |
| } | |
| .breakdown-card h3 { | |
| font-size: 1rem; | |
| font-weight: 700; | |
| color: #191970; | |
| margin-bottom: 1rem; | |
| } | |
| [data-theme="dark"] .breakdown-card h3 { | |
| color: #f1f5f9; | |
| } | |
| .score-bar { | |
| height: 10px; | |
| background: rgba(147, 177, 181, 0.15); | |
| border-radius: 100px; | |
| overflow: hidden; | |
| } | |
| [data-theme="dark"] .score-bar { | |
| background: rgba(139, 92, 246, 0.2); | |
| } | |
| .score-bar-fill { | |
| height: 100%; | |
| background: linear-gradient(90deg, #d000d0 0%, #00cccc 50%, #b366ff 100%); | |
| border-radius: 100px; | |
| transition: width 1s ease-out; | |
| box-shadow: 0 0 12px rgba(147, 177, 181, 0.5); | |
| } | |
| /* Mobile Responsive - Report Page */ | |
| @media (max-width: 900px) { | |
| .report-main { | |
| padding: 1.5rem 1.25rem 3rem; | |
| } | |
| .report-header { | |
| padding: 2rem; | |
| border-radius: 24px; | |
| } | |
| .report-header h1 { | |
| font-size: 2rem; | |
| } | |
| .score-card { | |
| flex-direction: column; | |
| text-align: center; | |
| gap: 2rem; | |
| padding: 2rem; | |
| } | |
| .score-details { | |
| align-items: center; | |
| } | |
| } | |
| @media (max-width: 600px) { | |
| .report-main { | |
| padding: 1rem 1rem 2.5rem; | |
| } | |
| .report-header { | |
| padding: 1.5rem; | |
| border-radius: 20px; | |
| margin-bottom: 2rem; | |
| } | |
| .report-header h1 { | |
| font-size: 1.6rem; | |
| } | |
| .report-summary { | |
| font-size: 1rem; | |
| } | |
| .score-card { | |
| padding: 1.5rem; | |
| border-radius: 22px; | |
| } | |
| .grade-circle { | |
| width: 130px; | |
| height: 130px; | |
| } | |
| .grade-circle .grade { | |
| font-size: 2rem; | |
| } | |
| .status { | |
| font-size: 1.25rem; | |
| } | |
| .breakdown-section, | |
| .insights-section, | |
| .next-steps-section { | |
| padding: 1.5rem; | |
| border-radius: 20px; | |
| } | |
| .breakdown-grid { | |
| grid-template-columns: 1fr; | |
| gap: 1rem; | |
| } | |
| } | |
| .score-bar-fill { | |
| height: 100%; | |
| background: linear-gradient(90deg, #d000d0 0%, #00cccc 50%, #b366ff 100%); | |
| border-radius: 100px; | |
| transition: width 1s ease-out; | |
| box-shadow: 0 0 12px rgba(147, 177, 181, 0.5); | |
| } | |
| /* =========================================== | |
| ANALYTICS DASHBOARD - PREMIUM COSMIC THEME | |
| =========================================== */ | |
| .analytics-container { | |
| min-height: 100vh; | |
| background: linear-gradient(135deg, #f0eef8 0%, #e4e0f2 35%, #d6d0ea 65%, #f0eef8 100%); | |
| position: relative; | |
| } | |
| [data-theme="dark"] .analytics-container { | |
| background: linear-gradient(180deg, #0a1628 0%, #0d1f3c 50%, #0a1628 100%); | |
| } | |
| .analytics-container::before { | |
| content: ''; | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| bottom: 0; | |
| background: | |
| radial-gradient(ellipse 80% 50% at 20% 40%, rgba(79, 124, 130, 0.12) 0%, transparent 50%), | |
| radial-gradient(ellipse 60% 40% at 80% 20%, rgba(184, 227, 233, 0.2) 0%, transparent 50%), | |
| radial-gradient(ellipse 50% 30% at 70% 80%, rgba(147, 177, 181, 0.1) 0%, transparent 50%); | |
| pointer-events: none; | |
| z-index: 0; | |
| } | |
| [data-theme="dark"] .analytics-container::before { | |
| background: | |
| radial-gradient(ellipse 80% 50% at 20% 40%, rgba(139, 92, 246, 0.15) 0%, transparent 50%), | |
| radial-gradient(ellipse 60% 40% at 80% 20%, rgba(59, 130, 246, 0.12) 0%, transparent 50%), | |
| radial-gradient(ellipse 50% 30% at 70% 80%, rgba(167, 139, 250, 0.1) 0%, transparent 50%); | |
| } | |
| .analytics-main { | |
| max-width: 1400px; | |
| margin: 0 auto; | |
| padding: 2rem 2rem 4rem; | |
| position: relative; | |
| z-index: 1; | |
| } | |
| /* =========================================== | |
| CAREER ROADMAP - PREMIUM COSMIC THEME | |
| =========================================== */ | |
| .roadmap-container { | |
| min-height: 100vh; | |
| background: linear-gradient(135deg, #f0eef8 0%, #e4e0f2 35%, #d6d0ea 65%, #f0eef8 100%); | |
| position: relative; | |
| } | |
| [data-theme="dark"] .roadmap-container { | |
| background: linear-gradient(180deg, #0a1628 0%, #0d1f3c 50%, #0a1628 100%); | |
| } | |
| .roadmap-container::before { | |
| content: ''; | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| bottom: 0; | |
| background: | |
| radial-gradient(ellipse 80% 50% at 20% 40%, rgba(79, 124, 130, 0.12) 0%, transparent 50%), | |
| radial-gradient(ellipse 60% 40% at 80% 20%, rgba(184, 227, 233, 0.2) 0%, transparent 50%), | |
| radial-gradient(ellipse 50% 30% at 70% 80%, rgba(147, 177, 181, 0.1) 0%, transparent 50%); | |
| pointer-events: none; | |
| z-index: 0; | |
| } | |
| [data-theme="dark"] .roadmap-container::before { | |
| background: | |
| radial-gradient(ellipse 80% 50% at 20% 40%, rgba(139, 92, 246, 0.15) 0%, transparent 50%), | |
| radial-gradient(ellipse 60% 40% at 80% 20%, rgba(59, 130, 246, 0.12) 0%, transparent 50%), | |
| radial-gradient(ellipse 50% 30% at 70% 80%, rgba(167, 139, 250, 0.1) 0%, transparent 50%); | |
| } | |
| .roadmap-main { | |
| max-width: 1100px; | |
| margin: 0 auto; | |
| padding: 2rem 2rem 4rem; | |
| position: relative; | |
| z-index: 1; | |
| } | |
| /* Premium Timeline Steps */ | |
| .timeline { | |
| position: relative; | |
| padding-left: 3.5rem; | |
| } | |
| .timeline::before { | |
| content: ''; | |
| position: absolute; | |
| left: 16px; | |
| top: 0; | |
| bottom: 0; | |
| width: 3px; | |
| background: linear-gradient(180deg, #d000d0 0%, #00cccc 50%, #b366ff 100%); | |
| border-radius: 2px; | |
| box-shadow: 0 0 15px rgba(147, 177, 181, 0.4); | |
| } | |
| .timeline-item { | |
| position: relative; | |
| padding-bottom: 2.5rem; | |
| } | |
| .timeline-item::before { | |
| content: ''; | |
| position: absolute; | |
| left: -2.5rem; | |
| top: 0; | |
| width: 14px; | |
| height: 14px; | |
| border-radius: 50%; | |
| background: linear-gradient(135deg, #d000d0 0%, #00cccc 100%); | |
| box-shadow: | |
| 0 0 15px rgba(147, 177, 181, 0.6), | |
| 0 0 0 4px rgba(147, 177, 181, 0.2); | |
| } | |
| .timeline-card { | |
| background: rgba(255, 255, 255, 0.95); | |
| border: 1px solid rgba(147, 177, 181, 0.15); | |
| border-radius: 20px; | |
| padding: 2rem; | |
| box-shadow: | |
| 0 8px 32px rgba(147, 177, 181, 0.08), | |
| 0 0 0 1px rgba(255, 255, 255, 0.5) inset; | |
| backdrop-filter: blur(20px); | |
| transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| [data-theme="dark"] .timeline-card { | |
| background: rgba(15, 25, 50, 0.85); | |
| border: 1px solid rgba(139, 92, 246, 0.3); | |
| box-shadow: | |
| 0 8px 32px rgba(0, 0, 0, 0.3), | |
| 0 0 40px rgba(139, 92, 246, 0.15), | |
| 0 0 0 1px rgba(139, 92, 246, 0.2) inset; | |
| } | |
| .timeline-card:hover { | |
| transform: translateY(-4px) translateX(8px); | |
| border-color: rgba(147, 177, 181, 0.4); | |
| box-shadow: | |
| 0 16px 48px rgba(147, 177, 181, 0.15), | |
| 0 0 0 1px rgba(147, 177, 181, 0.3), | |
| 0 0 30px rgba(147, 177, 181, 0.1); | |
| } | |
| [data-theme="dark"] .timeline-card:hover { | |
| box-shadow: | |
| 0 16px 48px rgba(0, 0, 0, 0.4), | |
| 0 0 60px rgba(139, 92, 246, 0.25), | |
| 0 0 0 1px rgba(139, 92, 246, 0.4) inset; | |
| } | |
| /* =========================================== | |
| COMPONENTS - Resume Upload - PREMIUM COSMIC | |
| =========================================== */ | |
| .upload-zone { | |
| border: 2px dashed rgba(147, 177, 181, 0.3); | |
| border-radius: 20px; | |
| padding: 3rem 2rem; | |
| text-align: center; | |
| cursor: pointer; | |
| transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); | |
| background: rgba(147, 177, 181, 0.05); | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| [data-theme="dark"] .upload-zone { | |
| background: rgba(139, 92, 246, 0.1); | |
| border-color: rgba(139, 92, 246, 0.4); | |
| } | |
| .upload-zone::before { | |
| content: ''; | |
| position: absolute; | |
| inset: 0; | |
| background: linear-gradient(135deg, rgba(79, 124, 130, 0.05) 0%, rgba(147, 177, 181, 0.08) 50%, rgba(184, 227, 233, 0.05) 100%); | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| pointer-events: none; | |
| } | |
| .upload-zone:hover::before, | |
| .upload-zone.dragging::before { | |
| opacity: 1; | |
| } | |
| .upload-zone:hover, | |
| .upload-zone.dragging { | |
| border-color: #00cccc; | |
| background: rgba(147, 177, 181, 0.1); | |
| transform: translateY(-4px); | |
| box-shadow: | |
| 0 12px 32px rgba(147, 177, 181, 0.2), | |
| 0 0 0 4px rgba(147, 177, 181, 0.1); | |
| } | |
| [data-theme="dark"] .upload-zone:hover, | |
| [data-theme="dark"] .upload-zone.dragging { | |
| background: rgba(139, 92, 246, 0.15); | |
| box-shadow: | |
| 0 12px 32px rgba(0, 0, 0, 0.3), | |
| 0 0 40px rgba(139, 92, 246, 0.3), | |
| 0 0 0 4px rgba(139, 92, 246, 0.2); | |
| } | |
| .upload-zone .upload-icon { | |
| font-size: 3.5rem; | |
| margin-bottom: 1.25rem; | |
| filter: drop-shadow(0 4px 12px rgba(147, 177, 181, 0.3)); | |
| transition: transform 0.3s ease; | |
| } | |
| .upload-zone:hover .upload-icon { | |
| transform: scale(1.1) translateY(-4px); | |
| } | |
| .upload-zone p { | |
| color: #2b2b8a; | |
| font-size: 1.1rem; | |
| font-weight: 600; | |
| margin-bottom: 0.5rem; | |
| position: relative; | |
| z-index: 1; | |
| } | |
| [data-theme="dark"] .upload-zone p { | |
| color: rgba(199, 210, 254, 0.9); | |
| } | |
| .upload-zone small { | |
| color: #7272a8; | |
| font-size: 0.9rem; | |
| font-weight: 500; | |
| position: relative; | |
| z-index: 1; | |
| } | |
| [data-theme="dark"] .upload-zone small { | |
| color: rgba(148, 163, 184, 0.7); | |
| } | |
| /* Premium Resume List */ | |
| .resume-list { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.875rem; | |
| } | |
| .resume-item { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| padding: 1.25rem 1.5rem; | |
| background: rgba(255, 255, 255, 0.9); | |
| border: 1px solid rgba(147, 177, 181, 0.15); | |
| border-radius: 16px; | |
| cursor: pointer; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| box-shadow: 0 4px 16px rgba(147, 177, 181, 0.05); | |
| } | |
| [data-theme="dark"] .resume-item { | |
| background: rgba(15, 25, 50, 0.8); | |
| border: 1px solid rgba(139, 92, 246, 0.25); | |
| box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2); | |
| } | |
| .resume-item:hover { | |
| border-color: #00cccc; | |
| transform: translateY(-2px) translateX(4px); | |
| box-shadow: | |
| 0 8px 24px rgba(147, 177, 181, 0.15), | |
| 0 0 0 1px rgba(147, 177, 181, 0.2); | |
| } | |
| [data-theme="dark"] .resume-item:hover { | |
| box-shadow: | |
| 0 8px 24px rgba(0, 0, 0, 0.3), | |
| 0 0 30px rgba(139, 92, 246, 0.2), | |
| 0 0 0 1px rgba(139, 92, 246, 0.3) inset; | |
| } | |
| .resume-item.selected { | |
| background: linear-gradient(135deg, rgba(79, 124, 130, 0.1) 0%, rgba(147, 177, 181, 0.15) 100%); | |
| border-color: #00cccc; | |
| box-shadow: | |
| 0 8px 24px rgba(147, 177, 181, 0.2), | |
| 0 0 0 2px rgba(147, 177, 181, 0.3); | |
| } | |
| [data-theme="dark"] .resume-item.selected { | |
| background: linear-gradient(135deg, rgba(99, 102, 241, 0.15) 0%, rgba(139, 92, 246, 0.2) 100%); | |
| box-shadow: | |
| 0 8px 24px rgba(0, 0, 0, 0.3), | |
| 0 0 40px rgba(139, 92, 246, 0.3), | |
| 0 0 0 2px rgba(139, 92, 246, 0.4); | |
| } | |
| .resume-item.selected { | |
| border-color: var(--primary); | |
| background: var(--primary-glow); | |
| } | |
| .resume-item .resume-icon { | |
| font-size: 1.5rem; | |
| margin-right: var(--space-3); | |
| } | |
| .resume-item .resume-info { | |
| flex: 1; | |
| } | |
| .resume-item .resume-name { | |
| font-weight: var(--font-medium); | |
| color: var(--text-primary); | |
| font-size: var(--text-sm); | |
| } | |
| .resume-item .resume-date { | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| } | |
| .resume-item .delete-btn { | |
| padding: var(--space-2); | |
| color: var(--text-muted); | |
| border-radius: var(--radius-md); | |
| } | |
| .resume-item .delete-btn:hover { | |
| background: var(--danger-bg); | |
| color: var(--danger); | |
| } | |
| /* =========================================== | |
| RESPONSIVE DESIGN | |
| =========================================== */ | |
| @media (max-width: 1024px) { | |
| .dashboard-main, | |
| .resumes-main, | |
| .interview-main, | |
| .report-main, | |
| .analytics-main, | |
| .roadmap-main { | |
| padding: var(--space-6); | |
| } | |
| } | |
| @media (max-width: 768px) { | |
| .navbar { | |
| padding: var(--space-3) var(--space-4); | |
| } | |
| .navbar-menu { | |
| gap: var(--space-1); | |
| } | |
| .nav-link { | |
| padding: var(--space-2); | |
| font-size: var(--text-xs); | |
| } | |
| .user-name { | |
| display: none; | |
| } | |
| .welcome-section h1 { | |
| font-size: var(--text-2xl); | |
| } | |
| .quick-actions { | |
| grid-template-columns: 1fr; | |
| } | |
| .stats-grid { | |
| grid-template-columns: repeat(2, 1fr); | |
| } | |
| .score-card { | |
| flex-direction: column; | |
| text-align: center; | |
| } | |
| .resumes-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .page-header { | |
| flex-direction: column; | |
| align-items: flex-start; | |
| } | |
| } | |
| @media (max-width: 480px) { | |
| .login-card { | |
| padding: var(--space-6); | |
| } | |
| .login-header h1 { | |
| font-size: var(--text-2xl); | |
| } | |
| .stats-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .action-card { | |
| padding: var(--space-6); | |
| } | |
| } | |
| /* =========================================== | |
| RESUME UPLOAD COMPONENT | |
| =========================================== */ | |
| .resume-upload { | |
| width: 100%; | |
| } | |
| .upload-dropzone { | |
| border: 2px dashed var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| padding: var(--space-12) var(--space-6); | |
| text-align: center; | |
| cursor: pointer; | |
| transition: all var(--transition-base); | |
| background: var(--bg-secondary); | |
| } | |
| .upload-dropzone:hover, | |
| .upload-dropzone.dragging { | |
| border-color: var(--primary); | |
| background: var(--primary-glow); | |
| } | |
| .upload-dropzone.disabled { | |
| opacity: 0.5; | |
| cursor: not-allowed; | |
| } | |
| .upload-dropzone .upload-icon { | |
| font-size: 3.5rem; | |
| margin-bottom: var(--space-4); | |
| filter: drop-shadow(0 0 10px var(--primary-glow)); | |
| } | |
| .upload-dropzone .upload-text { | |
| color: var(--text-primary); | |
| font-size: var(--text-base); | |
| margin-bottom: var(--space-2); | |
| } | |
| .upload-dropzone .upload-text strong { | |
| color: var(--primary); | |
| } | |
| .upload-dropzone .upload-hint { | |
| color: var(--text-muted); | |
| font-size: var(--text-sm); | |
| } | |
| .selected-file { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-4); | |
| padding: var(--space-4); | |
| background: var(--bg-card); | |
| border-radius: var(--radius-xl); | |
| } | |
| .selected-file .file-icon { | |
| font-size: 2rem; | |
| } | |
| .selected-file .file-info { | |
| flex: 1; | |
| text-align: left; | |
| } | |
| .selected-file .file-name { | |
| font-weight: var(--font-medium); | |
| color: var(--text-primary); | |
| font-size: var(--text-sm); | |
| word-break: break-all; | |
| } | |
| .selected-file .file-size { | |
| color: var(--text-muted); | |
| font-size: var(--text-xs); | |
| } | |
| .selected-file .clear-button { | |
| width: 32px; | |
| height: 32px; | |
| border-radius: var(--radius-md); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| color: var(--text-muted); | |
| font-size: var(--text-lg); | |
| transition: all var(--transition-fast); | |
| } | |
| .selected-file .clear-button:hover { | |
| background: var(--danger-bg); | |
| color: var(--danger); | |
| } | |
| .upload-error { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| margin-top: var(--space-4); | |
| padding: var(--space-3) var(--space-4); | |
| background: var(--danger-bg); | |
| color: var(--danger); | |
| border-radius: var(--radius-lg); | |
| font-size: var(--text-sm); | |
| } | |
| .upload-button { | |
| width: 100%; | |
| margin-top: var(--space-4); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: var(--space-2); | |
| padding: var(--space-4); | |
| } | |
| /* =========================================== | |
| LIVE INTERVIEW PAGE | |
| FIXED: Proper height constraints to prevent stretching | |
| =========================================== */ | |
| .live-interview-container { | |
| height: 100vh; | |
| max-height: 100vh; | |
| min-height: 100vh; | |
| overflow: hidden; | |
| background: var(--bg-secondary); | |
| display: flex; | |
| flex-direction: column; | |
| } | |
| [data-theme="dark"] .live-interview-container { | |
| background: linear-gradient(180deg, var(--bg-primary) 0%, var(--bg-secondary) 100%); | |
| } | |
| .live-interview-main { | |
| max-width: 1200px; | |
| margin: 0 auto; | |
| padding: var(--space-8); | |
| } | |
| .interview-grid { | |
| display: grid; | |
| grid-template-columns: 320px 1fr; | |
| gap: var(--space-6); | |
| } | |
| @media (max-width: 900px) { | |
| .interview-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| } | |
| /* Chat Messages */ | |
| .chat-container { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| padding: var(--space-6); | |
| min-height: 500px; | |
| display: flex; | |
| flex-direction: column; | |
| } | |
| .chat-messages { | |
| flex: 1; | |
| overflow-y: auto; | |
| margin-bottom: var(--space-4); | |
| display: flex; | |
| flex-direction: column; | |
| gap: var(--space-4); | |
| } | |
| .chat-message { | |
| max-width: 85%; | |
| padding: var(--space-4); | |
| border-radius: var(--radius-xl); | |
| animation: fadeIn 0.3s ease-out; | |
| } | |
| @keyframes fadeIn { | |
| from { | |
| opacity: 0; | |
| transform: translateY(10px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| .chat-message.interviewer { | |
| align-self: flex-start; | |
| background: var(--bg-secondary); | |
| border: 1px solid var(--border-color); | |
| border-bottom-left-radius: var(--radius-sm); | |
| } | |
| .chat-message.user { | |
| align-self: flex-end; | |
| background: var(--primary-gradient); | |
| color: white; | |
| border-bottom-right-radius: var(--radius-sm); | |
| } | |
| .chat-message .sender { | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-semibold); | |
| text-transform: uppercase; | |
| letter-spacing: 0.5px; | |
| margin-bottom: var(--space-2); | |
| opacity: 0.8; | |
| } | |
| .chat-message .content { | |
| font-size: var(--text-base); | |
| line-height: var(--leading-relaxed); | |
| } | |
| /* Chat Input */ | |
| .chat-input-area { | |
| display: flex; | |
| gap: var(--space-3); | |
| } | |
| .chat-input { | |
| flex: 1; | |
| padding: var(--space-4); | |
| border: 2px solid var(--border-color); | |
| border-radius: var(--radius-xl); | |
| background: var(--bg-primary); | |
| color: var(--text-primary); | |
| font-size: var(--text-base); | |
| resize: none; | |
| min-height: 60px; | |
| } | |
| .chat-input:focus { | |
| border-color: var(--primary); | |
| box-shadow: 0 0 0 4px var(--primary-glow); | |
| outline: none; | |
| } | |
| /* =========================================== | |
| ANALYTICS DASHBOARD STYLES | |
| =========================================== */ | |
| .chart-card { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| padding: var(--space-6); | |
| } | |
| .chart-card h3 { | |
| font-family: var(--font-display); | |
| font-size: var(--text-lg); | |
| font-weight: var(--font-semibold); | |
| margin-bottom: var(--space-6); | |
| color: var(--text-primary); | |
| } | |
| .analytics-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); | |
| gap: var(--space-6); | |
| } | |
| /* =========================================== | |
| INTERVIEW READINESS PAGE | |
| =========================================== */ | |
| .readiness-container { | |
| min-height: 100vh; | |
| background: var(--bg-secondary); | |
| } | |
| [data-theme="dark"] .readiness-container { | |
| background: linear-gradient(180deg, var(--bg-primary) 0%, var(--bg-secondary) 100%); | |
| } | |
| .readiness-main { | |
| max-width: 1000px; | |
| margin: 0 auto; | |
| padding: var(--space-8); | |
| } | |
| /* Domain Breadcrumb */ | |
| .domain-breadcrumb { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| margin-bottom: var(--space-6); | |
| padding: var(--space-3) var(--space-4); | |
| background: rgba(147, 177, 181, 0.05); | |
| border: 1px solid rgba(147, 177, 181, 0.15); | |
| border-radius: var(--radius-xl); | |
| } | |
| [data-theme="dark"] .domain-breadcrumb { | |
| background: rgba(139, 92, 246, 0.1); | |
| border-color: rgba(139, 92, 246, 0.25); | |
| } | |
| .back-btn-small { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| padding: var(--space-2) var(--space-3); | |
| background: transparent; | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-lg); | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-medium); | |
| color: var(--text-secondary); | |
| cursor: pointer; | |
| transition: all var(--transition-fast); | |
| } | |
| .back-btn-small:hover { | |
| background: var(--bg-secondary); | |
| border-color: var(--primary); | |
| color: var(--primary); | |
| } | |
| .domain-badge-inline { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| padding: var(--space-2) var(--space-4); | |
| background: linear-gradient(135deg, rgba(147, 177, 181, 0.15), rgba(79, 124, 130, 0.1)); | |
| border-radius: var(--radius-full); | |
| font-weight: var(--font-semibold); | |
| } | |
| .domain-badge-icon { | |
| font-size: 1.1rem; | |
| } | |
| .domain-badge-label { | |
| font-size: var(--text-sm); | |
| color: #7c3aed; | |
| } | |
| [data-theme="dark"] .domain-badge-label { | |
| color: #a78bfa; | |
| } | |
| .domain-badge-separator { | |
| color: var(--text-muted); | |
| font-size: var(--text-sm); | |
| } | |
| .domain-badge-role { | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-bold); | |
| color: var(--primary); | |
| background: rgba(147, 177, 181, 0.1); | |
| padding: var(--space-1) var(--space-2); | |
| border-radius: var(--radius-md); | |
| } | |
| [data-theme="dark"] .domain-badge-role { | |
| color: #c4b5fd; | |
| background: rgba(139, 92, 246, 0.2); | |
| } | |
| .step-indicator { | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| gap: var(--space-4); | |
| margin-bottom: var(--space-10); | |
| padding: var(--space-4) var(--space-6); | |
| background: var(--bg-card); | |
| border-radius: var(--radius-xl); | |
| box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06); | |
| border: 1px solid var(--border-color); | |
| } | |
| [data-theme="dark"] .step-indicator { | |
| background: rgba(30, 41, 59, 0.6); | |
| box-shadow: 0 4px 24px rgba(0, 0, 0, 0.2); | |
| border-color: rgba(255, 255, 255, 0.08); | |
| } | |
| .step { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| padding: var(--space-2) var(--space-5); | |
| border-radius: var(--radius-full); | |
| background: var(--bg-tertiary); | |
| color: var(--text-muted); | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-medium); | |
| transition: all 0.3s ease; | |
| border: 1px solid transparent; | |
| } | |
| .step.active { | |
| background: var(--primary-gradient); | |
| color: white; | |
| box-shadow: 0 4px 16px var(--primary-glow); | |
| border-color: var(--primary); | |
| } | |
| .step.active .step-number { | |
| background: rgba(255, 255, 255, 0.25); | |
| } | |
| .step.completed { | |
| background: var(--success-bg); | |
| color: var(--success); | |
| border-color: var(--success); | |
| } | |
| .step.completed .step-number { | |
| background: var(--success); | |
| color: white; | |
| } | |
| .step-number { | |
| width: 24px; | |
| height: 24px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| border-radius: 50%; | |
| background: rgba(0, 0, 0, 0.1); | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-bold); | |
| transition: all 0.3s ease; | |
| flex-shrink: 0; | |
| } | |
| [data-theme="dark"] .step-number { | |
| background: rgba(255, 255, 255, 0.15); | |
| } | |
| .step-label { | |
| white-space: nowrap; | |
| } | |
| .step-arrow { | |
| color: var(--text-muted); | |
| transition: all 0.3s ease; | |
| flex-shrink: 0; | |
| opacity: 0.6; | |
| } | |
| /* =========================================== | |
| SCROLLBAR STYLING | |
| =========================================== */ | |
| ::-webkit-scrollbar { | |
| width: 8px; | |
| height: 8px; | |
| } | |
| ::-webkit-scrollbar-track { | |
| background: var(--bg-tertiary); | |
| border-radius: 4px; | |
| } | |
| ::-webkit-scrollbar-thumb { | |
| background: var(--border-color); | |
| border-radius: 4px; | |
| } | |
| ::-webkit-scrollbar-thumb:hover { | |
| background: var(--text-muted); | |
| } | |
| [data-theme="dark"] ::-webkit-scrollbar-track { | |
| background: var(--bg-secondary); | |
| } | |
| [data-theme="dark"] ::-webkit-scrollbar-thumb { | |
| background: var(--bg-tertiary); | |
| } | |
| /* =========================================== | |
| FOCUS STATES FOR ACCESSIBILITY | |
| =========================================== */ | |
| button:focus-visible, | |
| a:focus-visible, | |
| input:focus-visible, | |
| textarea:focus-visible, | |
| select:focus-visible { | |
| outline: 2px solid var(--primary); | |
| outline-offset: 2px; | |
| } | |
| /* =========================================== | |
| PRINT STYLES | |
| =========================================== */ | |
| @media print { | |
| .navbar, | |
| .theme-toggle, | |
| .user-menu { | |
| display: none ; | |
| } | |
| body { | |
| background: white; | |
| color: black; | |
| } | |
| } | |
| /* =========================================== | |
| INTERVIEW REPORT PAGE - Premium Design | |
| =========================================== */ | |
| .report-container { | |
| min-height: 100vh; | |
| background: linear-gradient(135deg, #f0eef8 0%, #e4e0f2 35%, #d6d0ea 65%, #f0eef8 100%); | |
| } | |
| [data-theme="dark"] .report-container { | |
| background: linear-gradient(180deg, var(--bg-primary) 0%, var(--bg-secondary) 100%); | |
| } | |
| .report-main { | |
| max-width: 960px; | |
| margin: 0 auto; | |
| padding: var(--space-8); | |
| } | |
| .report-main.loading, | |
| .report-main.error { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| min-height: 60vh; | |
| } | |
| .error-panel { | |
| text-align: center; | |
| padding: var(--space-10); | |
| background: var(--bg-card); | |
| border-radius: var(--radius-2xl); | |
| border: 1px solid var(--border-color); | |
| } | |
| .error-panel h2 { | |
| font-size: var(--text-2xl); | |
| margin-bottom: var(--space-4); | |
| color: var(--text-primary); | |
| } | |
| .error-panel p { | |
| color: var(--text-muted); | |
| margin-bottom: var(--space-6); | |
| } | |
| /* Report Header */ | |
| .report-header { | |
| text-align: center; | |
| margin-bottom: var(--space-10); | |
| } | |
| .report-title h1 { | |
| font-family: var(--font-display); | |
| font-size: var(--text-3xl); | |
| font-weight: var(--font-bold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-2); | |
| } | |
| .report-role { | |
| font-size: var(--text-lg); | |
| color: var(--primary); | |
| font-weight: var(--font-semibold); | |
| margin-bottom: var(--space-1); | |
| } | |
| .report-date { | |
| font-size: var(--text-sm); | |
| color: var(--text-muted); | |
| } | |
| /* Readiness Hero Section */ | |
| .readiness-hero { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| padding: var(--space-10); | |
| margin-bottom: var(--space-8); | |
| text-align: center; | |
| } | |
| [data-theme="dark"] .readiness-hero { | |
| background: var(--glass-bg); | |
| backdrop-filter: var(--glass-blur); | |
| box-shadow: var(--shadow-glow); | |
| } | |
| .readiness-score-container { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: var(--space-8); | |
| margin-bottom: var(--space-8); | |
| flex-wrap: wrap; | |
| } | |
| .readiness-score-circle { | |
| width: 160px; | |
| height: 160px; | |
| border-radius: 50%; | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| background: var(--bg-tertiary); | |
| box-shadow: var(--shadow-lg); | |
| } | |
| .readiness-score-circle.score-excellent { | |
| background: linear-gradient(135deg, #10b981 0%, #059669 100%); | |
| color: white; | |
| box-shadow: 0 0 40px rgba(16, 185, 129, 0.4); | |
| } | |
| .readiness-score-circle.score-good { | |
| background: var(--primary-gradient); | |
| color: white; | |
| box-shadow: 0 0 40px var(--primary-glow); | |
| } | |
| .readiness-score-circle.score-average { | |
| background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%); | |
| color: white; | |
| box-shadow: 0 0 40px rgba(245, 158, 11, 0.4); | |
| } | |
| .readiness-score-circle.score-poor { | |
| background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%); | |
| color: white; | |
| box-shadow: 0 0 40px rgba(239, 68, 68, 0.4); | |
| } | |
| .readiness-score-circle .score-value { | |
| font-family: var(--font-display); | |
| font-size: var(--text-4xl); | |
| font-weight: var(--font-extrabold); | |
| line-height: 1; | |
| } | |
| .readiness-score-circle .score-label { | |
| font-size: var(--text-base); | |
| opacity: 0.8; | |
| margin-top: var(--space-1); | |
| } | |
| .readiness-grade { | |
| text-align: left; | |
| } | |
| .grade-badge { | |
| display: inline-block; | |
| padding: var(--space-2) var(--space-4); | |
| font-family: var(--font-display); | |
| font-size: var(--text-2xl); | |
| font-weight: var(--font-bold); | |
| border-radius: var(--radius-lg); | |
| margin-bottom: var(--space-2); | |
| } | |
| .grade-badge.grade-excellent { | |
| background: var(--success-bg); | |
| color: var(--success); | |
| } | |
| .grade-badge.grade-good { | |
| background: var(--info-bg); | |
| color: var(--info); | |
| } | |
| .grade-badge.grade-average { | |
| background: var(--warning-bg); | |
| color: var(--warning); | |
| } | |
| .grade-badge.grade-poor { | |
| background: var(--danger-bg); | |
| color: var(--danger); | |
| } | |
| .readiness-level { | |
| font-size: var(--text-base); | |
| color: var(--text-secondary); | |
| font-weight: var(--font-medium); | |
| } | |
| /* Score Breakdown */ | |
| .score-breakdown { | |
| margin-top: var(--space-8); | |
| padding-top: var(--space-8); | |
| border-top: 1px solid var(--border-color); | |
| text-align: left; | |
| } | |
| .score-breakdown h3 { | |
| font-size: var(--text-lg); | |
| font-weight: var(--font-semibold); | |
| margin-bottom: var(--space-6); | |
| color: var(--text-primary); | |
| } | |
| .breakdown-bars { | |
| display: flex; | |
| flex-direction: column; | |
| gap: var(--space-4); | |
| } | |
| .breakdown-item { | |
| display: flex; | |
| flex-direction: column; | |
| gap: var(--space-2); | |
| } | |
| .breakdown-label { | |
| display: flex; | |
| justify-content: space-between; | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-medium); | |
| color: var(--text-primary); | |
| } | |
| .breakdown-bar { | |
| height: 8px; | |
| background: var(--bg-tertiary); | |
| border-radius: var(--radius-full); | |
| overflow: hidden; | |
| } | |
| .breakdown-fill { | |
| height: 100%; | |
| background: var(--primary-gradient); | |
| border-radius: var(--radius-full); | |
| transition: width 1s ease-out; | |
| } | |
| .score-explanation { | |
| margin-top: var(--space-6); | |
| color: var(--text-secondary); | |
| font-size: var(--text-base); | |
| line-height: var(--leading-relaxed); | |
| text-align: center; | |
| } | |
| /* Report Sections */ | |
| .report-section { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| padding: var(--space-8); | |
| margin-bottom: var(--space-6); | |
| } | |
| .report-section h2 { | |
| font-family: var(--font-display); | |
| font-size: var(--text-xl); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-6); | |
| } | |
| .report-section h3 { | |
| font-size: var(--text-lg); | |
| font-weight: var(--font-medium); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-4); | |
| } | |
| /* Executive Summary */ | |
| .executive-summary p { | |
| color: var(--text-secondary); | |
| line-height: var(--leading-relaxed); | |
| font-size: var(--text-base); | |
| } | |
| .recommendation { | |
| margin-top: var(--space-4); | |
| padding: var(--space-4); | |
| background: var(--info-bg); | |
| border-radius: var(--radius-lg); | |
| color: var(--info); | |
| font-size: var(--text-sm); | |
| } | |
| /* Strengths & Weaknesses Grid */ | |
| .strengths-weaknesses-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); | |
| gap: var(--space-6); | |
| margin-bottom: var(--space-6); | |
| } | |
| .insight-list { | |
| list-style: none; | |
| display: flex; | |
| flex-direction: column; | |
| gap: var(--space-4); | |
| } | |
| .insight-item { | |
| padding: var(--space-4); | |
| border-radius: var(--radius-xl); | |
| background: var(--bg-secondary); | |
| border-left: 4px solid var(--border-color); | |
| } | |
| .insight-item.strength { | |
| border-left-color: var(--success); | |
| } | |
| .insight-item.weakness { | |
| border-left-color: var(--warning); | |
| } | |
| .insight-area { | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-2); | |
| } | |
| .insight-description { | |
| color: var(--text-secondary); | |
| font-size: var(--text-sm); | |
| line-height: var(--leading-relaxed); | |
| } | |
| .insight-evidence, | |
| .insight-suggestion { | |
| margin-top: var(--space-2); | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| font-style: italic; | |
| } | |
| /* Category Grid */ | |
| .category-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); | |
| gap: var(--space-4); | |
| } | |
| .category-card { | |
| text-align: center; | |
| padding: var(--space-4); | |
| background: var(--bg-secondary); | |
| border-radius: var(--radius-xl); | |
| transition: all var(--transition-base); | |
| } | |
| .category-card:hover { | |
| transform: translateY(-2px); | |
| box-shadow: var(--shadow-md); | |
| } | |
| .category-score { | |
| margin-bottom: var(--space-2); | |
| } | |
| .score-circle-sm { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 48px; | |
| height: 48px; | |
| border-radius: 50%; | |
| font-weight: var(--font-bold); | |
| font-size: var(--text-lg); | |
| } | |
| .score-circle-sm.good { | |
| background: var(--success-bg); | |
| color: var(--success); | |
| } | |
| .score-circle-sm.average { | |
| background: var(--warning-bg); | |
| color: var(--warning); | |
| } | |
| .score-circle-sm.poor { | |
| background: var(--danger-bg); | |
| color: var(--danger); | |
| } | |
| .category-label { | |
| font-size: var(--text-sm); | |
| color: var(--text-secondary); | |
| font-weight: var(--font-medium); | |
| } | |
| /* Behavioral Section */ | |
| .behavioral-summary { | |
| color: var(--text-secondary); | |
| line-height: var(--leading-relaxed); | |
| margin-bottom: var(--space-4); | |
| } | |
| .behavioral-metrics { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: var(--space-3); | |
| margin-bottom: var(--space-4); | |
| } | |
| .metric-badge { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| padding: var(--space-2) var(--space-4); | |
| background: var(--bg-secondary); | |
| border-radius: var(--radius-full); | |
| font-size: var(--text-sm); | |
| } | |
| .metric-label { | |
| color: var(--text-muted); | |
| } | |
| .metric-value { | |
| color: var(--primary); | |
| font-weight: var(--font-semibold); | |
| } | |
| .metric-value.capitalize { | |
| text-transform: capitalize; | |
| } | |
| .behavioral-disclaimer { | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| font-style: italic; | |
| } | |
| /* =========================================== | |
| CONFIDENCE GRAPH SECTION (Strict/Final Boss modes) | |
| =========================================== */ | |
| .confidence-section { | |
| background: linear-gradient(135deg, var(--bg-card), var(--bg-secondary)); | |
| border: 2px solid var(--border-color); | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .confidence-section::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 4px; | |
| background: linear-gradient(90deg, #EF4444, #F97316, #EAB308, #22C55E, #10B981); | |
| } | |
| [data-theme="dark"] .confidence-section { | |
| background: linear-gradient(135deg, var(--bg-card), rgba(30, 41, 59, 0.8)); | |
| border-color: rgba(99, 102, 241, 0.3); | |
| } | |
| .confidence-mode-badge { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-3); | |
| margin-bottom: var(--space-4); | |
| padding: var(--space-3) var(--space-4); | |
| background: var(--bg-secondary); | |
| border-radius: var(--radius-lg); | |
| border: 1px solid var(--border-color); | |
| } | |
| .mode-indicator { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| padding: var(--space-2) var(--space-3); | |
| border-radius: var(--radius-full); | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-bold); | |
| } | |
| .mode-indicator.strict { | |
| background: linear-gradient(135deg, #F59E0B20, #D9770620); | |
| color: #F59E0B; | |
| border: 1px solid #F59E0B40; | |
| } | |
| .mode-indicator.final_boss { | |
| background: linear-gradient(135deg, #EF444420, #DC262620); | |
| color: #EF4444; | |
| border: 1px solid #EF444440; | |
| animation: finalBossPulse 2s ease-in-out infinite; | |
| } | |
| @keyframes finalBossPulse { | |
| 0%, 100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.4); } | |
| 50% { box-shadow: 0 0 10px 4px rgba(239, 68, 68, 0.2); } | |
| } | |
| .mode-description { | |
| font-size: var(--text-sm); | |
| color: var(--text-secondary); | |
| } | |
| .confidence-section .section-description { | |
| color: var(--text-secondary); | |
| line-height: var(--leading-relaxed); | |
| margin-bottom: var(--space-4); | |
| padding: var(--space-3); | |
| background: rgba(79, 124, 130, 0.05); | |
| border-radius: var(--radius-md); | |
| border-left: 3px solid var(--primary); | |
| } | |
| .confidence-section .section-description strong { | |
| color: var(--primary); | |
| } | |
| .confidence-legend { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: var(--space-3); | |
| margin-top: var(--space-4); | |
| padding: var(--space-4); | |
| background: var(--bg-secondary); | |
| border-radius: var(--radius-lg); | |
| } | |
| .legend-item { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| font-size: var(--text-xs); | |
| color: var(--text-secondary); | |
| } | |
| .legend-color { | |
| width: 12px; | |
| height: 12px; | |
| border-radius: var(--radius-sm); | |
| flex-shrink: 0; | |
| } | |
| /* Dark mode enhancements */ | |
| [data-theme="dark"] .confidence-mode-badge { | |
| background: rgba(30, 41, 59, 0.6); | |
| border-color: rgba(99, 102, 241, 0.2); | |
| } | |
| [data-theme="dark"] .confidence-legend { | |
| background: rgba(30, 41, 59, 0.6); | |
| } | |
| [data-theme="dark"] .mode-indicator.strict { | |
| background: linear-gradient(135deg, #F59E0B30, #D9770630); | |
| } | |
| [data-theme="dark"] .mode-indicator.final_boss { | |
| background: linear-gradient(135deg, #EF444430, #DC262630); | |
| } | |
| /* Responsive */ | |
| @media (max-width: 768px) { | |
| .confidence-mode-badge { | |
| flex-direction: column; | |
| align-items: flex-start; | |
| gap: var(--space-2); | |
| } | |
| .confidence-legend { | |
| flex-direction: column; | |
| gap: var(--space-2); | |
| } | |
| } | |
| /* Improvements Section */ | |
| .improvement-areas { | |
| margin-bottom: var(--space-6); | |
| } | |
| .improvement-card { | |
| padding: var(--space-4); | |
| background: var(--bg-secondary); | |
| border-radius: var(--radius-xl); | |
| margin-bottom: var(--space-3); | |
| border-left: 4px solid var(--border-color); | |
| } | |
| .improvement-card.priority-high { | |
| border-left-color: var(--danger); | |
| } | |
| .improvement-card.priority-medium { | |
| border-left-color: var(--warning); | |
| } | |
| .improvement-card.priority-low { | |
| border-left-color: var(--success); | |
| } | |
| .improvement-header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| margin-bottom: var(--space-2); | |
| } | |
| .improvement-title { | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| } | |
| .priority-badge { | |
| padding: var(--space-1) var(--space-2); | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-semibold); | |
| text-transform: uppercase; | |
| border-radius: var(--radius-sm); | |
| } | |
| .priority-badge.high { | |
| background: var(--danger-bg); | |
| color: var(--danger); | |
| } | |
| .priority-badge.medium { | |
| background: var(--warning-bg); | |
| color: var(--warning); | |
| } | |
| .priority-badge.low { | |
| background: var(--success-bg); | |
| color: var(--success); | |
| } | |
| .improvement-action { | |
| color: var(--text-secondary); | |
| font-size: var(--text-sm); | |
| } | |
| .improvement-list h3 { | |
| margin-bottom: var(--space-3); | |
| } | |
| .improvement-list ul { | |
| list-style: none; | |
| display: flex; | |
| flex-direction: column; | |
| gap: var(--space-2); | |
| } | |
| .improvement-list li { | |
| padding: var(--space-3) var(--space-4); | |
| background: var(--bg-secondary); | |
| border-radius: var(--radius-lg); | |
| color: var(--text-secondary); | |
| font-size: var(--text-sm); | |
| position: relative; | |
| padding-left: var(--space-8); | |
| } | |
| .improvement-list li::before { | |
| content: '→'; | |
| position: absolute; | |
| left: var(--space-3); | |
| color: var(--primary); | |
| font-weight: bold; | |
| } | |
| /* Report Disclaimer */ | |
| .report-disclaimer { | |
| text-align: center; | |
| padding: var(--space-4); | |
| color: var(--text-muted); | |
| font-size: var(--text-sm); | |
| font-style: italic; | |
| } | |
| /* Report Actions */ | |
| .report-actions { | |
| display: flex; | |
| justify-content: center; | |
| gap: var(--space-3); | |
| margin-top: var(--space-8); | |
| flex-wrap: wrap; | |
| } | |
| .report-actions .btn-secondary, | |
| .report-actions .btn-primary { | |
| min-height: 48px; | |
| padding: var(--space-3) var(--space-5); | |
| font-size: var(--text-sm); | |
| border-radius: var(--radius-xl); | |
| transition: all var(--transition-base); | |
| } | |
| .report-actions .btn-secondary:hover:not(:disabled) { | |
| transform: translateY(-2px); | |
| box-shadow: var(--shadow-md); | |
| } | |
| .report-actions .btn-primary:hover:not(:disabled) { | |
| transform: translateY(-2px); | |
| box-shadow: var(--shadow-lg), 0 0 20px var(--primary-glow); | |
| } | |
| @media (max-width: 640px) { | |
| .report-actions { | |
| flex-direction: column; | |
| gap: var(--space-2); | |
| } | |
| .report-actions .btn-secondary, | |
| .report-actions .btn-primary { | |
| width: 100%; | |
| } | |
| } | |
| /* =========================================== | |
| VIDEO DOWNLOAD SECTION - Report Page | |
| =========================================== */ | |
| .video-download-section { | |
| margin-top: 2rem; | |
| margin-bottom: 2rem; | |
| } | |
| .video-download-card { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 1.5rem; | |
| padding: 1.5rem 2rem; | |
| background: rgba(147, 177, 181, 0.08); | |
| border: 1px solid rgba(147, 177, 181, 0.2); | |
| border-radius: 16px; | |
| backdrop-filter: blur(8px); | |
| transition: all 0.3s ease; | |
| } | |
| [data-theme="dark"] .video-download-card { | |
| background: rgba(139, 92, 246, 0.12); | |
| border: 1px solid rgba(139, 92, 246, 0.3); | |
| } | |
| .video-download-card:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 8px 24px rgba(147, 177, 181, 0.15); | |
| } | |
| [data-theme="dark"] .video-download-card:hover { | |
| box-shadow: 0 8px 32px rgba(139, 92, 246, 0.25); | |
| } | |
| .video-info { | |
| display: flex; | |
| align-items: center; | |
| gap: 1rem; | |
| } | |
| .video-info svg { | |
| color: #00cccc; | |
| flex-shrink: 0; | |
| } | |
| [data-theme="dark"] .video-info svg { | |
| color: #a78bfa; | |
| } | |
| .video-info h3 { | |
| margin: 0 0 0.25rem 0; | |
| font-size: 1.1rem; | |
| font-weight: 600; | |
| color: #191970; | |
| } | |
| [data-theme="dark"] .video-info h3 { | |
| color: #f1f5f9; | |
| } | |
| .video-info p { | |
| margin: 0; | |
| font-size: 0.875rem; | |
| color: #7272a8; | |
| } | |
| [data-theme="dark"] .video-info p { | |
| color: #94a3b8; | |
| } | |
| .btn-download-video { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| padding: 0.875rem 1.5rem; | |
| background: linear-gradient(135deg, #d000d0 0%, #00cccc 50%, #b366ff 100%); | |
| color: white; | |
| border: none; | |
| border-radius: 12px; | |
| font-weight: 600; | |
| font-size: 0.95rem; | |
| cursor: pointer; | |
| transition: all 0.3s ease; | |
| white-space: nowrap; | |
| } | |
| .btn-download-video:hover:not(:disabled) { | |
| transform: translateY(-2px); | |
| box-shadow: 0 8px 20px rgba(147, 177, 181, 0.4); | |
| } | |
| .btn-download-video:disabled { | |
| opacity: 0.6; | |
| cursor: not-allowed; | |
| } | |
| @media (max-width: 640px) { | |
| .video-download-card { | |
| flex-direction: column; | |
| text-align: center; | |
| padding: 1.5rem; | |
| } | |
| .video-info { | |
| flex-direction: column; | |
| } | |
| .btn-download-video { | |
| width: 100%; | |
| justify-content: center; | |
| } | |
| } | |
| /* Video Status States */ | |
| .video-status { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| } | |
| .video-status.loading { | |
| color: #00cccc; | |
| } | |
| .video-status.available { | |
| color: #22c55e; | |
| font-weight: 500; | |
| } | |
| .video-status.unavailable { | |
| color: #00cccc; | |
| } | |
| [data-theme="dark"] .video-status.unavailable { | |
| color: #6b7280; | |
| } | |
| /* Video Actions Container */ | |
| .video-actions { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.75rem; | |
| } | |
| /* Delete Video Button */ | |
| .btn-delete-video { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 42px; | |
| height: 42px; | |
| background: rgba(239, 68, 68, 0.1); | |
| border: 1px solid rgba(239, 68, 68, 0.2); | |
| border-radius: 10px; | |
| font-size: 1rem; | |
| cursor: pointer; | |
| transition: all 0.3s ease; | |
| } | |
| .btn-delete-video:hover { | |
| background: rgba(239, 68, 68, 0.2); | |
| border-color: rgba(239, 68, 68, 0.4); | |
| transform: scale(1.05); | |
| } | |
| /* Video Error Message */ | |
| .video-error { | |
| margin-top: 0.75rem; | |
| padding: 0.75rem 1rem; | |
| background: rgba(239, 68, 68, 0.1); | |
| border: 1px solid rgba(239, 68, 68, 0.2); | |
| border-radius: 8px; | |
| color: #dc2626; | |
| font-size: 0.875rem; | |
| } | |
| [data-theme="dark"] .video-error { | |
| background: rgba(185, 28, 28, 0.15); | |
| border-color: rgba(239, 68, 68, 0.3); | |
| color: #f87171; | |
| } | |
| /* Spin Animation */ | |
| .spin { | |
| animation: spin 1s linear infinite; | |
| } | |
| @keyframes spin { | |
| from { | |
| transform: rotate(0deg); | |
| } | |
| to { | |
| transform: rotate(360deg); | |
| } | |
| } | |
| /* =========================================== | |
| 🔥 FINAL BOSS HERO CTA - BATTLE PLAN DOWNLOAD | |
| Command Center Premium Download Section | |
| =========================================== */ | |
| .final-boss-hero-cta { | |
| position: relative; | |
| margin-bottom: var(--space-8); | |
| padding: 2.5rem 2rem; | |
| background: linear-gradient(135deg, | |
| rgba(0, 240, 255, 0.08) 0%, | |
| rgba(184, 227, 233, 0.12) 50%, | |
| rgba(251, 191, 36, 0.08) 100% | |
| ); | |
| border: 2px solid transparent; | |
| border-radius: 24px; | |
| overflow: hidden; | |
| text-align: center; | |
| } | |
| [data-theme="dark"] .final-boss-hero-cta { | |
| background: linear-gradient(135deg, | |
| rgba(0, 240, 255, 0.12) 0%, | |
| rgba(168, 85, 247, 0.18) 50%, | |
| rgba(251, 191, 36, 0.1) 100% | |
| ); | |
| border: 2px solid rgba(0, 240, 255, 0.3); | |
| box-shadow: | |
| 0 0 30px rgba(0, 240, 255, 0.15), | |
| 0 0 60px rgba(168, 85, 247, 0.1), | |
| inset 0 0 60px rgba(0, 240, 255, 0.03); | |
| } | |
| /* Animated glow background */ | |
| .final-boss-cta-glow { | |
| position: absolute; | |
| top: -50%; | |
| left: -50%; | |
| right: -50%; | |
| bottom: -50%; | |
| background: conic-gradient( | |
| from 0deg, | |
| transparent 0deg, | |
| rgba(0, 240, 255, 0.15) 60deg, | |
| transparent 120deg, | |
| rgba(184, 227, 233, 0.15) 180deg, | |
| transparent 240deg, | |
| rgba(251, 191, 36, 0.15) 300deg, | |
| transparent 360deg | |
| ); | |
| animation: rotate-glow 8s linear infinite; | |
| opacity: 0; | |
| pointer-events: none; | |
| } | |
| [data-theme="dark"] .final-boss-cta-glow { | |
| opacity: 1; | |
| } | |
| @keyframes rotate-glow { | |
| from { transform: rotate(0deg); } | |
| to { transform: rotate(360deg); } | |
| } | |
| .final-boss-cta-content { | |
| position: relative; | |
| z-index: 2; | |
| } | |
| .final-boss-cta-badge { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| padding: 0.5rem 1rem; | |
| background: linear-gradient(135deg, rgba(0, 240, 255, 0.2), rgba(184, 227, 233, 0.2)); | |
| border: 1px solid rgba(0, 240, 255, 0.4); | |
| border-radius: 50px; | |
| font-size: 0.75rem; | |
| font-weight: 700; | |
| letter-spacing: 0.1em; | |
| color: #00f0ff; | |
| text-transform: uppercase; | |
| margin-bottom: 1rem; | |
| } | |
| [data-theme="light"] .final-boss-cta-badge { | |
| background: linear-gradient(135deg, rgba(79, 124, 130, 0.15), rgba(184, 227, 233, 0.15)); | |
| border-color: rgba(79, 124, 130, 0.3); | |
| color: #d000d0; | |
| } | |
| .final-boss-cta-badge svg { | |
| width: 16px; | |
| height: 16px; | |
| } | |
| .final-boss-cta-title { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 0.75rem; | |
| font-family: var(--font-display); | |
| font-size: 1.75rem; | |
| font-weight: 800; | |
| margin: 0 0 0.75rem 0; | |
| background: linear-gradient(135deg, #00f0ff 0%, #b366ff 50%, #fbbf24 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| } | |
| [data-theme="light"] .final-boss-cta-title { | |
| background: linear-gradient(135deg, #d000d0 0%, #00cccc 50%, #ec4899 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| } | |
| .final-boss-cta-title .zap-icon { | |
| width: 24px; | |
| height: 24px; | |
| color: #fbbf24; | |
| animation: pulse-zap 2s ease-in-out infinite; | |
| } | |
| [data-theme="light"] .final-boss-cta-title .zap-icon { | |
| color: #f59e0b; | |
| } | |
| @keyframes pulse-zap { | |
| 0%, 100% { opacity: 1; transform: scale(1); } | |
| 50% { opacity: 0.6; transform: scale(1.1); } | |
| } | |
| .final-boss-cta-description { | |
| max-width: 600px; | |
| margin: 0 auto 1.25rem auto; | |
| font-size: 1rem; | |
| line-height: 1.6; | |
| color: var(--text-secondary); | |
| } | |
| .final-boss-cta-description strong { | |
| color: #00f0ff; | |
| font-weight: 600; | |
| } | |
| [data-theme="light"] .final-boss-cta-description strong { | |
| color: #d000d0; | |
| } | |
| .final-boss-cta-features { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 1.5rem; | |
| margin-bottom: 1.5rem; | |
| flex-wrap: wrap; | |
| } | |
| .cta-feature { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| padding: 0.5rem 1rem; | |
| background: rgba(0, 240, 255, 0.08); | |
| border: 1px solid rgba(0, 240, 255, 0.2); | |
| border-radius: 8px; | |
| font-size: 0.875rem; | |
| font-weight: 500; | |
| color: var(--text-primary); | |
| } | |
| [data-theme="light"] .cta-feature { | |
| background: rgba(79, 124, 130, 0.08); | |
| border-color: rgba(79, 124, 130, 0.2); | |
| } | |
| .cta-feature svg { | |
| width: 16px; | |
| height: 16px; | |
| color: #00f0ff; | |
| } | |
| [data-theme="light"] .cta-feature svg { | |
| color: #d000d0; | |
| } | |
| /* Final Boss Download Button - Command Center Style */ | |
| .final-boss-download-btn { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 0.75rem; | |
| padding: 1rem 2.5rem; | |
| min-width: 320px; | |
| background: linear-gradient(135deg, #00f0ff 0%, #b366ff 50%, #fbbf24 100%); | |
| background-size: 200% 200%; | |
| border: none; | |
| border-radius: 16px; | |
| font-family: var(--font-display); | |
| font-size: 1.1rem; | |
| font-weight: 700; | |
| color: #0a0a0f; | |
| cursor: pointer; | |
| transition: all 0.4s ease; | |
| box-shadow: | |
| 0 8px 32px rgba(0, 240, 255, 0.3), | |
| 0 4px 16px rgba(184, 227, 233, 0.2); | |
| animation: gradient-shift 4s ease infinite; | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| @keyframes gradient-shift { | |
| 0%, 100% { background-position: 0% 50%; } | |
| 50% { background-position: 100% 50%; } | |
| } | |
| .final-boss-download-btn::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: -100%; | |
| width: 100%; | |
| height: 100%; | |
| background: linear-gradient( | |
| 90deg, | |
| transparent 0%, | |
| rgba(255, 255, 255, 0.3) 50%, | |
| transparent 100% | |
| ); | |
| transition: left 0.5s ease; | |
| } | |
| .final-boss-download-btn:hover::before { | |
| left: 100%; | |
| } | |
| .final-boss-download-btn:hover:not(:disabled) { | |
| transform: translateY(-3px) scale(1.02); | |
| box-shadow: | |
| 0 12px 48px rgba(0, 240, 255, 0.4), | |
| 0 8px 24px rgba(184, 227, 233, 0.3), | |
| 0 0 0 3px rgba(0, 240, 255, 0.2); | |
| } | |
| .final-boss-download-btn:disabled { | |
| opacity: 0.7; | |
| cursor: not-allowed; | |
| animation: none; | |
| } | |
| .final-boss-download-btn svg { | |
| width: 22px; | |
| height: 22px; | |
| } | |
| .final-boss-download-btn .btn-badge { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| padding: 0.25rem 0.5rem; | |
| background: rgba(0, 0, 0, 0.2); | |
| border-radius: 6px; | |
| font-size: 0.7rem; | |
| font-weight: 800; | |
| letter-spacing: 0.05em; | |
| } | |
| .final-boss-cta-subtitle { | |
| margin: 1rem 0 0 0; | |
| font-size: 0.875rem; | |
| color: var(--text-muted); | |
| } | |
| /* Final Boss Error State */ | |
| .final-boss-error { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 0.5rem; | |
| padding: 0.75rem 1rem; | |
| margin-bottom: 1rem; | |
| background: rgba(255, 51, 102, 0.1); | |
| border: 1px solid rgba(255, 51, 102, 0.3); | |
| border-radius: 8px; | |
| color: #ff3366; | |
| font-size: 0.875rem; | |
| } | |
| [data-theme="light"] .final-boss-error { | |
| background: rgba(220, 38, 38, 0.1); | |
| border-color: rgba(220, 38, 38, 0.3); | |
| color: #dc2626; | |
| } | |
| /* Mobile Responsive */ | |
| @media (max-width: 640px) { | |
| .final-boss-hero-cta { | |
| padding: 1.5rem 1rem; | |
| border-radius: 16px; | |
| } | |
| .final-boss-cta-title { | |
| font-size: 1.25rem; | |
| flex-wrap: wrap; | |
| } | |
| .final-boss-cta-title .zap-icon { | |
| width: 20px; | |
| height: 20px; | |
| } | |
| .final-boss-cta-description { | |
| font-size: 0.9rem; | |
| } | |
| .final-boss-cta-features { | |
| gap: 0.75rem; | |
| } | |
| .cta-feature { | |
| padding: 0.375rem 0.75rem; | |
| font-size: 0.8rem; | |
| } | |
| .final-boss-download-btn { | |
| min-width: 100%; | |
| padding: 0.875rem 1.5rem; | |
| font-size: 1rem; | |
| } | |
| } | |
| /* =========================================== | |
| CAREER ROADMAP PAGE | |
| =========================================== */ | |
| .roadmap-container { | |
| min-height: 100vh; | |
| background: linear-gradient(135deg, #f0eef8 0%, #e4e0f2 35%, #d6d0ea 65%, #f0eef8 100%); | |
| } | |
| [data-theme="dark"] .roadmap-container { | |
| background: linear-gradient(180deg, var(--bg-primary) 0%, var(--bg-secondary) 100%); | |
| } | |
| .roadmap-main { | |
| max-width: 900px; | |
| margin: 0 auto; | |
| padding: var(--space-8); | |
| } | |
| .roadmap-header { | |
| text-align: center; | |
| margin-bottom: var(--space-10); | |
| } | |
| .roadmap-header h1 { | |
| font-family: var(--font-display); | |
| font-size: var(--text-3xl); | |
| font-weight: var(--font-bold); | |
| margin-bottom: var(--space-2); | |
| color: var(--text-primary); | |
| } | |
| .roadmap-header p { | |
| color: var(--text-secondary); | |
| font-size: var(--text-lg); | |
| } | |
| /* Timeline */ | |
| .roadmap-timeline { | |
| position: relative; | |
| padding-left: var(--space-12); | |
| } | |
| .roadmap-timeline::before { | |
| content: ''; | |
| position: absolute; | |
| left: 20px; | |
| top: 0; | |
| bottom: 0; | |
| width: 3px; | |
| background: var(--primary-gradient); | |
| border-radius: var(--radius-full); | |
| } | |
| .timeline-step { | |
| position: relative; | |
| margin-bottom: var(--space-8); | |
| } | |
| .timeline-step::before { | |
| content: ''; | |
| position: absolute; | |
| left: calc(-1 * var(--space-12) + 12px); | |
| top: 0; | |
| width: 18px; | |
| height: 18px; | |
| border-radius: 50%; | |
| background: var(--primary); | |
| border: 3px solid var(--bg-secondary); | |
| box-shadow: 0 0 15px var(--primary-glow); | |
| } | |
| .step-card { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-xl); | |
| padding: var(--space-6); | |
| transition: all var(--transition-base); | |
| } | |
| .step-card:hover { | |
| border-color: var(--primary); | |
| box-shadow: var(--shadow-lg); | |
| transform: translateX(4px); | |
| } | |
| .step-header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| margin-bottom: var(--space-3); | |
| flex-wrap: wrap; | |
| gap: var(--space-2); | |
| } | |
| .step-title { | |
| font-family: var(--font-display); | |
| font-size: var(--text-lg); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| } | |
| .step-duration { | |
| font-size: var(--text-sm); | |
| color: var(--text-muted); | |
| background: var(--bg-secondary); | |
| padding: var(--space-1) var(--space-3); | |
| border-radius: var(--radius-full); | |
| } | |
| .step-description { | |
| color: var(--text-secondary); | |
| font-size: var(--text-base); | |
| line-height: var(--leading-relaxed); | |
| margin-bottom: var(--space-4); | |
| } | |
| .step-actions { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: var(--space-2); | |
| } | |
| .action-chip { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: var(--space-1); | |
| padding: var(--space-2) var(--space-3); | |
| background: var(--primary-glow); | |
| color: var(--primary); | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-medium); | |
| border-radius: var(--radius-full); | |
| } | |
| /* Responsive */ | |
| @media (max-width: 768px) { | |
| .readiness-score-container { | |
| flex-direction: column; | |
| text-align: center; | |
| } | |
| .readiness-grade { | |
| text-align: center; | |
| } | |
| .strengths-weaknesses-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .roadmap-timeline { | |
| padding-left: var(--space-8); | |
| } | |
| .roadmap-timeline::before { | |
| left: 12px; | |
| } | |
| .timeline-step::before { | |
| left: calc(-1 * var(--space-8) + 6px); | |
| width: 14px; | |
| height: 14px; | |
| } | |
| } | |
| /* =========================================== | |
| INTERVIEW READINESS PAGE - Premium | |
| =========================================== */ | |
| .readiness-container { | |
| min-height: 100vh; | |
| background: linear-gradient(135deg, #f0eef8 0%, #e4e0f2 35%, #d6d0ea 65%, #f0eef8 100%); | |
| position: relative; | |
| } | |
| [data-theme="dark"] .readiness-container { | |
| background: linear-gradient(180deg, var(--bg-primary) 0%, var(--bg-secondary) 100%); | |
| } | |
| .readiness-container::before { | |
| content: ''; | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| bottom: 0; | |
| background: | |
| radial-gradient(ellipse 80% 50% at 20% 40%, rgba(79, 124, 130, 0.12) 0%, transparent 50%), | |
| radial-gradient(ellipse 60% 40% at 80% 20%, rgba(184, 227, 233, 0.2) 0%, transparent 50%), | |
| radial-gradient(ellipse 50% 30% at 70% 80%, rgba(147, 177, 181, 0.1) 0%, transparent 50%); | |
| pointer-events: none; | |
| z-index: 0; | |
| } | |
| [data-theme="dark"] .readiness-container::before { | |
| background: | |
| radial-gradient(ellipse 80% 50% at 20% 40%, rgba(139, 92, 246, 0.15) 0%, transparent 50%), | |
| radial-gradient(ellipse 60% 40% at 80% 20%, rgba(59, 130, 246, 0.12) 0%, transparent 50%), | |
| radial-gradient(ellipse 50% 30% at 70% 80%, rgba(167, 139, 250, 0.1) 0%, transparent 50%); | |
| } | |
| .readiness-main { | |
| max-width: 1200px; | |
| margin: 0 auto; | |
| padding: var(--space-8); | |
| position: relative; | |
| z-index: 1; | |
| } | |
| /* Premium Page Header */ | |
| .page-header-premium { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-6); | |
| margin-bottom: var(--space-8); | |
| } | |
| .page-header-premium .header-icon { | |
| width: 64px; | |
| height: 64px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| background: var(--primary-gradient); | |
| color: white; | |
| border-radius: var(--radius-xl); | |
| box-shadow: 0 0 30px var(--primary-glow); | |
| } | |
| .page-header-premium h1 { | |
| font-family: var(--font-display); | |
| font-size: var(--text-3xl); | |
| font-weight: var(--font-bold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-1); | |
| } | |
| .page-header-premium p { | |
| color: var(--text-secondary); | |
| font-size: var(--text-base); | |
| } | |
| /* Step Indicator - Use consolidated styles from above */ | |
| /* Readiness Grid */ | |
| .readiness-grid { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| gap: var(--space-8); | |
| } | |
| @media (max-width: 1024px) { | |
| .readiness-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| } | |
| /* Config Panel */ | |
| .config-panel { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| padding: var(--space-8); | |
| } | |
| .panel-header { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-3); | |
| margin-bottom: var(--space-8); | |
| color: var(--text-primary); | |
| } | |
| .panel-header h2 { | |
| font-family: var(--font-display); | |
| font-size: var(--text-xl); | |
| font-weight: var(--font-semibold); | |
| } | |
| .config-section { | |
| margin-bottom: var(--space-6); | |
| } | |
| .section-header { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| margin-bottom: var(--space-3); | |
| color: var(--text-primary); | |
| } | |
| .section-header h3 { | |
| font-size: var(--text-base); | |
| font-weight: var(--font-medium); | |
| } | |
| .loading-inline { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-3); | |
| padding: var(--space-4); | |
| color: var(--text-muted); | |
| } | |
| .spin { | |
| animation: spin 1s linear infinite; | |
| } | |
| .no-resumes-card { | |
| text-align: center; | |
| padding: var(--space-8); | |
| background: var(--bg-secondary); | |
| border-radius: var(--radius-xl); | |
| border: 2px dashed var(--border-color); | |
| } | |
| .no-resumes-card p { | |
| color: var(--text-muted); | |
| margin: var(--space-4) 0; | |
| } | |
| .form-select { | |
| width: 100%; | |
| padding: var(--space-3) var(--space-4); | |
| background: var(--bg-primary); | |
| border: 2px solid var(--border-color); | |
| border-radius: var(--radius-xl); | |
| color: var(--text-primary); | |
| font-size: var(--text-base); | |
| transition: all var(--transition-fast); | |
| } | |
| .form-select:focus { | |
| border-color: var(--primary); | |
| box-shadow: 0 0 0 4px var(--primary-glow); | |
| outline: none; | |
| } | |
| .role-chips { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: var(--space-2); | |
| margin-top: var(--space-3); | |
| } | |
| .chip { | |
| padding: var(--space-2) var(--space-3); | |
| background: var(--bg-tertiary); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-full); | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-medium); | |
| color: var(--text-secondary); | |
| cursor: pointer; | |
| transition: all var(--transition-fast); | |
| } | |
| .chip:hover { | |
| border-color: var(--primary); | |
| color: var(--primary); | |
| } | |
| .chip.active { | |
| background: var(--primary-glow); | |
| border-color: var(--primary); | |
| color: var(--primary); | |
| } | |
| .config-row { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| gap: var(--space-4); | |
| margin-bottom: var(--space-6); | |
| } | |
| .config-field label { | |
| display: block; | |
| margin-bottom: var(--space-2); | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-medium); | |
| color: var(--text-secondary); | |
| } | |
| /* Slider */ | |
| .slider-header { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| margin-bottom: var(--space-2); | |
| } | |
| .slider-value { | |
| font-weight: var(--font-bold); | |
| color: var(--primary); | |
| font-size: var(--text-lg); | |
| } | |
| .range-slider { | |
| width: 100%; | |
| height: 8px; | |
| border-radius: var(--radius-full); | |
| background: var(--bg-tertiary); | |
| appearance: none; | |
| cursor: pointer; | |
| } | |
| .range-slider::-webkit-slider-thumb { | |
| appearance: none; | |
| width: 20px; | |
| height: 20px; | |
| border-radius: 50%; | |
| background: var(--primary); | |
| box-shadow: 0 0 10px var(--primary-glow); | |
| cursor: pointer; | |
| transition: transform var(--transition-fast); | |
| } | |
| .range-slider::-webkit-slider-thumb:hover { | |
| transform: scale(1.2); | |
| } | |
| .slider-labels { | |
| display: flex; | |
| justify-content: space-between; | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| margin-top: var(--space-1); | |
| } | |
| /* Generate Button - styles defined in Interview Readiness section */ | |
| /* Preview Panel */ | |
| .preview-panel { | |
| min-height: 400px; | |
| } | |
| .generating-state { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| text-align: center; | |
| padding: var(--space-12); | |
| min-height: 400px; | |
| } | |
| .generating-animation { | |
| margin-bottom: var(--space-6); | |
| } | |
| .sparkle-icon { | |
| color: var(--primary); | |
| animation: pulse 1.5s ease-in-out infinite; | |
| } | |
| .generating-state h3 { | |
| font-family: var(--font-display); | |
| font-size: var(--text-xl); | |
| font-weight: var(--font-semibold); | |
| margin-bottom: var(--space-2); | |
| color: var(--text-primary); | |
| } | |
| .generating-state p { | |
| color: var(--text-muted); | |
| margin-bottom: var(--space-6); | |
| } | |
| .generating-state .progress-bar { | |
| width: 200px; | |
| height: 4px; | |
| background: var(--bg-tertiary); | |
| border-radius: var(--radius-full); | |
| overflow: hidden; | |
| } | |
| .generating-state .progress-fill.generating { | |
| width: 30%; | |
| animation: loading 1.5s ease-in-out infinite; | |
| } | |
| @keyframes loading { | |
| 0% { | |
| transform: translateX(-100%); | |
| width: 30%; | |
| } | |
| 50% { | |
| width: 50%; | |
| } | |
| 100% { | |
| transform: translateX(400%); | |
| width: 30%; | |
| } | |
| } | |
| .no-plan { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| text-align: center; | |
| padding: var(--space-12); | |
| min-height: 400px; | |
| } | |
| .no-plan-icon { | |
| margin-bottom: var(--space-6); | |
| color: var(--text-muted); | |
| opacity: 0.5; | |
| } | |
| .no-plan h3 { | |
| font-family: var(--font-display); | |
| font-size: var(--text-xl); | |
| font-weight: var(--font-semibold); | |
| margin-bottom: var(--space-2); | |
| color: var(--text-primary); | |
| } | |
| .no-plan p { | |
| color: var(--text-muted); | |
| margin-bottom: var(--space-6); | |
| max-width: 300px; | |
| } | |
| .feature-list { | |
| list-style: none; | |
| text-align: left; | |
| } | |
| .feature-list li { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| padding: var(--space-2) 0; | |
| color: var(--text-secondary); | |
| font-size: var(--text-sm); | |
| } | |
| .feature-list li svg { | |
| color: var(--success); | |
| flex-shrink: 0; | |
| } | |
| /* =========================================== | |
| LIVE INTERVIEW PAGE - Premium | |
| FIXED: Prevent page stretching with proper height constraints | |
| =========================================== */ | |
| .live-interview-container { | |
| height: 100vh; | |
| max-height: 100vh; | |
| min-height: 100vh; | |
| overflow: hidden; | |
| background: var(--bg-secondary); | |
| display: flex; | |
| flex-direction: column; | |
| } | |
| [data-theme="dark"] .live-interview-container { | |
| background: linear-gradient(180deg, var(--bg-primary) 0%, var(--bg-secondary) 100%); | |
| } | |
| .interview-loading { | |
| flex: 1; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| } | |
| .loading-card, | |
| .error-card { | |
| text-align: center; | |
| padding: var(--space-12); | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| max-width: 400px; | |
| } | |
| .loading-card svg, | |
| .error-card svg { | |
| color: var(--primary); | |
| margin-bottom: var(--space-4); | |
| } | |
| .error-card svg { | |
| color: var(--danger); | |
| } | |
| .loading-card h2, | |
| .error-card h2 { | |
| font-family: var(--font-display); | |
| font-size: var(--text-xl); | |
| margin-bottom: var(--space-2); | |
| color: var(--text-primary); | |
| } | |
| .loading-card p, | |
| .error-card p { | |
| color: var(--text-muted); | |
| margin-bottom: var(--space-6); | |
| } | |
| .interview-main { | |
| flex: 1; | |
| display: flex; | |
| flex-direction: column; | |
| width: 100%; | |
| height: 100%; | |
| min-height: 0; | |
| overflow: hidden; | |
| box-sizing: border-box; | |
| position: relative; | |
| /* Proper padding for visual breathing room */ | |
| padding: 12px 16px; | |
| } | |
| /* Interview Header */ | |
| .interview-header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: var(--space-4); | |
| padding: var(--space-4) var(--space-6); | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-xl); | |
| margin-bottom: var(--space-4); | |
| flex-wrap: wrap; | |
| } | |
| .header-left { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-3); | |
| } | |
| .header-left h2 { | |
| font-family: var(--font-display); | |
| font-size: var(--text-lg); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| } | |
| .persona-badge { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| padding: var(--space-1) var(--space-3); | |
| border-radius: var(--radius-full); | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-medium); | |
| } | |
| .persona-badge.persona-neutral { | |
| background: var(--info-bg); | |
| color: var(--info); | |
| } | |
| .persona-badge.persona-strict { | |
| background: var(--danger-bg); | |
| color: var(--danger); | |
| } | |
| .persona-badge.persona-friendly { | |
| background: var(--success-bg); | |
| color: var(--success); | |
| } | |
| .persona-badge.persona-stress { | |
| background: var(--warning-bg); | |
| color: var(--warning); | |
| } | |
| .header-progress { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-4); | |
| } | |
| .header-progress .progress-text { | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-medium); | |
| color: var(--text-primary); | |
| } | |
| .header-progress .progress-separator { | |
| color: var(--text-muted); | |
| margin: 0 var(--space-1); | |
| } | |
| .header-progress .progress-bar { | |
| width: 120px; | |
| height: 6px; | |
| background: var(--bg-tertiary); | |
| border-radius: var(--radius-full); | |
| overflow: hidden; | |
| } | |
| .header-progress .progress-fill { | |
| height: 100%; | |
| background: var(--primary-gradient); | |
| border-radius: var(--radius-full); | |
| transition: width var(--transition-base); | |
| } | |
| .header-controls { | |
| display: flex; | |
| gap: var(--space-2); | |
| } | |
| .btn-danger { | |
| color: var(--danger); | |
| } | |
| .btn-danger:hover { | |
| background: var(--danger-bg); | |
| } | |
| /* Paused Overlay */ | |
| .paused-overlay { | |
| position: fixed; | |
| inset: 0; | |
| background: rgba(0, 0, 0, 0.6); | |
| backdrop-filter: blur(8px); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| z-index: 100; | |
| } | |
| .paused-card { | |
| text-align: center; | |
| padding: var(--space-12); | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| max-width: 400px; | |
| } | |
| .paused-card svg { | |
| color: var(--warning); | |
| margin-bottom: var(--space-4); | |
| } | |
| .paused-card h3 { | |
| font-family: var(--font-display); | |
| font-size: var(--text-xl); | |
| margin-bottom: var(--space-2); | |
| color: var(--text-primary); | |
| } | |
| .paused-card p { | |
| color: var(--text-muted); | |
| margin-bottom: var(--space-6); | |
| } | |
| /* Interview Content - MOVED TO InterviewerAvatar/styles.css for 80/20 vertical layout */ | |
| /* .interview-content styles are now in InterviewerAvatar/styles.css */ | |
| /* Avatar Panel - MOVED TO InterviewerAvatar/styles.css */ | |
| /* .avatar-panel styles are now in InterviewerAvatar/styles.css */ | |
| .avatar-status { | |
| margin-top: var(--space-4); | |
| } | |
| .avatar-status .status { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| padding: var(--space-2) var(--space-4); | |
| border-radius: var(--radius-full); | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-medium); | |
| } | |
| .avatar-status .status.speaking { | |
| background: var(--primary-glow); | |
| color: var(--primary); | |
| animation: pulse 1s infinite; | |
| } | |
| .avatar-status .status.listening { | |
| background: var(--success-bg); | |
| color: var(--success); | |
| } | |
| .avatar-status .status.idle { | |
| background: var(--bg-tertiary); | |
| color: var(--text-muted); | |
| } | |
| /* Chat Panel */ | |
| .chat-panel { | |
| display: flex; | |
| flex-direction: column; | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| overflow: hidden; | |
| } | |
| .chat-messages { | |
| flex: 1; | |
| overflow-y: auto; | |
| padding: var(--space-6); | |
| display: flex; | |
| flex-direction: column; | |
| gap: var(--space-4); | |
| min-height: 400px; | |
| max-height: 500px; | |
| } | |
| /* Chat Messages */ | |
| .chat-message { | |
| display: flex; | |
| gap: var(--space-3); | |
| animation: fadeIn 0.3s ease-out; | |
| } | |
| .chat-message.user { | |
| flex-direction: row-reverse; | |
| } | |
| .chat-message.system { | |
| justify-content: center; | |
| } | |
| .system-badge { | |
| padding: var(--space-2) var(--space-4); | |
| background: var(--bg-tertiary); | |
| border-radius: var(--radius-full); | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| } | |
| .message-avatar { | |
| flex-shrink: 0; | |
| } | |
| .avatar-icon { | |
| width: 40px; | |
| height: 40px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| border-radius: 50%; | |
| font-size: var(--text-lg); | |
| } | |
| .avatar-icon.interviewer { | |
| background: var(--primary-glow); | |
| } | |
| .avatar-icon.user { | |
| background: var(--bg-tertiary); | |
| } | |
| .message-content { | |
| max-width: 70%; | |
| } | |
| .message-header { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| margin-bottom: var(--space-1); | |
| } | |
| .sender-name { | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-muted); | |
| text-transform: uppercase; | |
| letter-spacing: 0.5px; | |
| } | |
| .question-badge { | |
| padding: var(--space-1) var(--space-2); | |
| background: var(--primary-gradient); | |
| color: white; | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-bold); | |
| border-radius: var(--radius-sm); | |
| } | |
| .message-bubble { | |
| padding: var(--space-4); | |
| border-radius: var(--radius-xl); | |
| font-size: var(--text-base); | |
| line-height: var(--leading-relaxed); | |
| } | |
| .chat-message.interviewer .message-bubble { | |
| background: var(--bg-secondary); | |
| border: 1px solid var(--border-color); | |
| border-bottom-left-radius: var(--radius-sm); | |
| color: var(--text-primary); | |
| } | |
| .chat-message.user .message-bubble { | |
| background: var(--primary-gradient); | |
| color: white; | |
| border-bottom-right-radius: var(--radius-sm); | |
| } | |
| .chat-message.user .message-header { | |
| justify-content: flex-end; | |
| } | |
| /* Feedback Toast */ | |
| .feedback-toast { | |
| position: absolute; | |
| bottom: var(--space-20); | |
| right: var(--space-6); | |
| width: 300px; | |
| padding: var(--space-4); | |
| border-radius: var(--radius-xl); | |
| box-shadow: var(--shadow-xl); | |
| animation: slideIn 0.3s ease-out; | |
| z-index: 10; | |
| } | |
| @keyframes slideIn { | |
| from { | |
| transform: translateX(100%); | |
| opacity: 0; | |
| } | |
| to { | |
| transform: translateX(0); | |
| opacity: 1; | |
| } | |
| } | |
| .feedback-toast.good { | |
| background: var(--success-bg); | |
| border: 1px solid var(--success); | |
| } | |
| .feedback-toast.ok { | |
| background: var(--warning-bg); | |
| border: 1px solid var(--warning); | |
| } | |
| .feedback-toast.needs-work { | |
| background: var(--danger-bg); | |
| border: 1px solid var(--danger); | |
| } | |
| .feedback-toast .feedback-header { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| margin-bottom: var(--space-2); | |
| font-weight: var(--font-semibold); | |
| } | |
| .feedback-toast.good .feedback-header { | |
| color: var(--success); | |
| } | |
| .feedback-toast.ok .feedback-header { | |
| color: var(--warning); | |
| } | |
| .feedback-toast.needs-work .feedback-header { | |
| color: var(--danger); | |
| } | |
| .feedback-toast .feedback-header button { | |
| margin-left: auto; | |
| font-size: var(--text-lg); | |
| opacity: 0.7; | |
| } | |
| .feedback-toast p { | |
| font-size: var(--text-sm); | |
| color: var(--text-secondary); | |
| margin-bottom: var(--space-2); | |
| } | |
| .feedback-toast .feedback-score { | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-medium); | |
| color: var(--text-muted); | |
| } | |
| /* Chat Input Area */ | |
| .chat-input-area { | |
| padding: var(--space-4) var(--space-6); | |
| border-top: 1px solid var(--border-color); | |
| background: var(--bg-card); | |
| } | |
| .chat-input-area form { | |
| display: flex; | |
| flex-direction: column; | |
| gap: var(--space-3); | |
| } | |
| .chat-input-area .chat-input { | |
| width: 100%; | |
| padding: var(--space-4); | |
| border: 2px solid var(--border-color); | |
| border-radius: var(--radius-xl); | |
| background: var(--bg-primary); | |
| color: var(--text-primary); | |
| font-size: var(--text-base); | |
| resize: none; | |
| transition: all var(--transition-fast); | |
| } | |
| .chat-input-area .chat-input:focus { | |
| border-color: var(--primary); | |
| box-shadow: 0 0 0 4px var(--primary-glow); | |
| outline: none; | |
| } | |
| .input-actions { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| } | |
| .input-hint { | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| } | |
| .action-buttons { | |
| display: flex; | |
| gap: var(--space-2); | |
| } | |
| /* Input Container - Inline input with send button */ | |
| .input-container { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| background: var(--bg-primary); | |
| border: 2px solid var(--border-color); | |
| border-radius: var(--radius-xl); | |
| padding: var(--space-1); | |
| transition: all var(--transition-fast); | |
| } | |
| .input-container:focus-within { | |
| border-color: var(--primary); | |
| box-shadow: 0 0 0 4px var(--primary-glow); | |
| } | |
| .input-container .chat-input { | |
| flex: 1; | |
| border: none ; | |
| background: transparent ; | |
| padding: var(--space-3) ; | |
| box-shadow: none ; | |
| } | |
| .input-container .chat-input:focus { | |
| border: none ; | |
| box-shadow: none ; | |
| } | |
| /* Input Actions Inline (Send button container) */ | |
| .input-actions-inline { | |
| display: flex; | |
| align-items: center; | |
| padding-right: var(--space-2); | |
| } | |
| /* SEND BUTTON - Premium Styling */ | |
| .send-btn { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 44px; | |
| height: 44px; | |
| border: none; | |
| border-radius: var(--radius-lg); | |
| background: linear-gradient(135deg, #d000d0 0%, #d000d0 100%); | |
| color: #ffffff; | |
| cursor: pointer; | |
| transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); | |
| box-shadow: 0 2px 8px rgba(79, 124, 130, 0.35); | |
| } | |
| .send-btn:hover:not(:disabled) { | |
| background: linear-gradient(135deg, #d000d0 0%, #191970 100%); | |
| transform: scale(1.05); | |
| box-shadow: 0 4px 12px rgba(79, 124, 130, 0.45); | |
| } | |
| .send-btn:active:not(:disabled) { | |
| transform: scale(0.98); | |
| } | |
| .send-btn:disabled { | |
| background: var(--bg-tertiary); | |
| color: var(--text-muted); | |
| cursor: not-allowed; | |
| box-shadow: none; | |
| } | |
| .send-btn.active { | |
| background: linear-gradient(135deg, #10b981 0%, #059669 100%); | |
| box-shadow: 0 2px 8px rgba(16, 185, 129, 0.35); | |
| } | |
| .send-btn.active:hover:not(:disabled) { | |
| background: linear-gradient(135deg, #059669 0%, #047857 100%); | |
| box-shadow: 0 4px 12px rgba(16, 185, 129, 0.45); | |
| } | |
| .send-btn .spin { | |
| animation: spin 1s linear infinite; | |
| } | |
| /* Recording dot for mic button */ | |
| .recording-dot { | |
| position: absolute; | |
| top: 4px; | |
| right: 4px; | |
| width: 8px; | |
| height: 8px; | |
| background: #ef4444; | |
| border-radius: 50%; | |
| animation: pulse-dot 1s ease-in-out infinite; | |
| } | |
| @keyframes pulse-dot { | |
| 0%, | |
| 100% { | |
| opacity: 1; | |
| transform: scale(1); | |
| } | |
| 50% { | |
| opacity: 0.5; | |
| transform: scale(0.8); | |
| } | |
| } | |
| .media-btn { | |
| position: relative; | |
| } | |
| .media-btn.recording { | |
| background: rgba(239, 68, 68, 0.2); | |
| border-color: #ef4444; | |
| color: #ef4444; | |
| } | |
| /* Completing Card - Enhanced Glassmorphism */ | |
| .completing-card { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| text-align: center; | |
| padding: var(--space-12) var(--space-8); | |
| margin: var(--space-6); | |
| background: rgba(255, 255, 255, 0.8); | |
| backdrop-filter: blur(20px); | |
| -webkit-backdrop-filter: blur(20px); | |
| border-radius: 24px; | |
| border: 1px solid rgba(0, 0, 0, 0.05); | |
| box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08); | |
| } | |
| [data-theme="dark"] .completing-card { | |
| background: rgba(30, 41, 59, 0.8); | |
| border: 1px solid rgba(255, 255, 255, 0.1); | |
| box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); | |
| } | |
| .completing-card svg { | |
| color: var(--success); | |
| margin-bottom: var(--space-4); | |
| animation: sparkle-spin 2s ease-in-out infinite; | |
| filter: drop-shadow(0 0 12px rgba(34, 197, 94, 0.4)); | |
| } | |
| @keyframes sparkle-spin { | |
| 0%, | |
| 100% { | |
| transform: scale(1) rotate(0deg); | |
| opacity: 1; | |
| } | |
| 50% { | |
| transform: scale(1.1) rotate(10deg); | |
| opacity: 0.9; | |
| } | |
| } | |
| .completing-card h3 { | |
| font-family: var(--font-display); | |
| font-size: var(--text-2xl); | |
| font-weight: var(--font-bold); | |
| margin-bottom: var(--space-2); | |
| color: var(--text-primary); | |
| background: linear-gradient(135deg, #d000d0, #00cccc, #b366ff); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| } | |
| .completing-card p { | |
| color: var(--text-secondary); | |
| margin-bottom: var(--space-6); | |
| font-size: 1.05rem; | |
| } | |
| .completing-card .btn-primary { | |
| padding: 14px 32px; | |
| font-size: 1rem; | |
| font-weight: 600; | |
| border-radius: 14px; | |
| background: linear-gradient(135deg, #d000d0, #00cccc); | |
| box-shadow: 0 4px 16px rgba(79, 124, 130, 0.35); | |
| transition: all 0.3s ease; | |
| } | |
| .completing-card .btn-primary:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 6px 24px rgba(79, 124, 130, 0.45); | |
| } | |
| /* Analytics Dashboard */ | |
| .analytics-container { | |
| min-height: 100vh; | |
| background: linear-gradient(135deg, #f0eef8 0%, #e4e0f2 35%, #d6d0ea 65%, #f0eef8 100%); | |
| } | |
| [data-theme="dark"] .analytics-container { | |
| background: linear-gradient(180deg, var(--bg-primary) 0%, var(--bg-secondary) 100%); | |
| } | |
| .analytics-main { | |
| max-width: 1280px; | |
| margin: 0 auto; | |
| padding: var(--space-8); | |
| } | |
| .analytics-header { | |
| margin-bottom: var(--space-8); | |
| } | |
| .analytics-header h1 { | |
| font-family: var(--font-display); | |
| font-size: var(--text-3xl); | |
| font-weight: var(--font-bold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-2); | |
| } | |
| .analytics-header p { | |
| color: var(--text-secondary); | |
| } | |
| .analytics-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); | |
| gap: var(--space-6); | |
| margin-bottom: var(--space-8); | |
| } | |
| .analytics-card { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| padding: var(--space-6); | |
| } | |
| .analytics-card h3 { | |
| font-family: var(--font-display); | |
| font-size: var(--text-lg); | |
| font-weight: var(--font-semibold); | |
| margin-bottom: var(--space-4); | |
| color: var(--text-primary); | |
| } | |
| /* Extended Analytics Styles */ | |
| .analytics-loading { | |
| flex: 1; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| min-height: 60vh; | |
| } | |
| .analytics-header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: var(--space-4); | |
| flex-wrap: wrap; | |
| margin-bottom: var(--space-8); | |
| } | |
| .analytics-header .header-content { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-4); | |
| } | |
| .analytics-header .header-icon { | |
| width: 56px; | |
| height: 56px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| background: var(--primary-gradient); | |
| color: white; | |
| border-radius: var(--radius-xl); | |
| box-shadow: 0 0 20px var(--primary-glow); | |
| } | |
| .analytics-header h1 { | |
| font-family: var(--font-display); | |
| font-size: var(--text-2xl); | |
| font-weight: var(--font-bold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-1); | |
| } | |
| .analytics-header p { | |
| color: var(--text-secondary); | |
| font-size: var(--text-sm); | |
| } | |
| .analytics-stats { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); | |
| gap: var(--space-4); | |
| } | |
| .stat-icon-wrapper { | |
| width: 48px; | |
| height: 48px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| background: var(--bg-tertiary); | |
| border-radius: var(--radius-xl); | |
| color: var(--text-secondary); | |
| } | |
| .stat-icon-wrapper.success { | |
| background: var(--success-bg); | |
| color: var(--success); | |
| } | |
| .stat-icon-wrapper.warning { | |
| background: var(--warning-bg); | |
| color: var(--warning); | |
| } | |
| .stat-icon-wrapper.primary { | |
| background: var(--primary-glow); | |
| color: var(--primary); | |
| } | |
| .stat-icon-wrapper.trend-up { | |
| background: var(--success-bg); | |
| color: var(--success); | |
| } | |
| .stat-icon-wrapper.trend-down { | |
| background: var(--danger-bg); | |
| color: var(--danger); | |
| } | |
| .stat-sub { | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| } | |
| .gradient-text { | |
| background: var(--primary-gradient); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| } | |
| /* Analytics Sections */ | |
| .analytics-section { | |
| margin-bottom: var(--space-8); | |
| } | |
| .analytics-section .section-header { | |
| display: flex; | |
| align-items: flex-start; | |
| gap: var(--space-3); | |
| margin-bottom: var(--space-6); | |
| color: var(--primary); | |
| } | |
| .analytics-section .section-header h2 { | |
| font-family: var(--font-display); | |
| font-size: var(--text-xl); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-1); | |
| } | |
| .analytics-section .section-header p { | |
| font-size: var(--text-sm); | |
| color: var(--text-muted); | |
| } | |
| .chart-card { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| padding: var(--space-6); | |
| } | |
| .chart-empty { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| padding: var(--space-12); | |
| text-align: center; | |
| color: var(--text-muted); | |
| } | |
| .chart-empty svg { | |
| opacity: 0.3; | |
| margin-bottom: var(--space-4); | |
| } | |
| /* Progress Chart */ | |
| .progress-chart { | |
| padding: var(--space-4) 0; | |
| } | |
| .chart-bars { | |
| display: flex; | |
| align-items: flex-end; | |
| justify-content: space-around; | |
| height: 200px; | |
| padding: var(--space-4); | |
| gap: var(--space-2); | |
| } | |
| .chart-bar-container { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| flex: 1; | |
| max-width: 60px; | |
| } | |
| .chart-bar { | |
| width: 100%; | |
| background: var(--primary-gradient); | |
| border-radius: var(--radius-lg) var(--radius-lg) 0 0; | |
| transition: height var(--transition-base); | |
| display: flex; | |
| align-items: flex-start; | |
| justify-content: center; | |
| padding-top: var(--space-2); | |
| min-height: 20px; | |
| } | |
| .chart-bar.no-data { | |
| background: var(--bg-tertiary); | |
| } | |
| .bar-value { | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-bold); | |
| color: white; | |
| } | |
| .bar-label { | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| margin-top: var(--space-2); | |
| text-align: center; | |
| } | |
| .improvement-badge { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| padding: var(--space-3) var(--space-4); | |
| border-radius: var(--radius-full); | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-medium); | |
| margin-top: var(--space-4); | |
| } | |
| .improvement-badge.up { | |
| background: var(--success-bg); | |
| color: var(--success); | |
| } | |
| .improvement-badge.down { | |
| background: var(--warning-bg); | |
| color: var(--warning); | |
| } | |
| /* Skills Grid */ | |
| .skills-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); | |
| gap: var(--space-6); | |
| } | |
| .skill-card { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| padding: var(--space-6); | |
| } | |
| .skill-section-header { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| margin-bottom: var(--space-4); | |
| } | |
| .skill-section-header h4 { | |
| font-size: var(--text-base); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| } | |
| .text-success { | |
| color: var(--success); | |
| } | |
| .text-warning { | |
| color: var(--warning); | |
| } | |
| .skill-bars { | |
| display: flex; | |
| flex-direction: column; | |
| gap: var(--space-4); | |
| } | |
| .skill-bar-item { | |
| display: flex; | |
| flex-direction: column; | |
| gap: var(--space-2); | |
| } | |
| .skill-info { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| } | |
| .skill-name { | |
| font-size: var(--text-sm); | |
| color: var(--text-primary); | |
| } | |
| .skill-score { | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-semibold); | |
| } | |
| .skill-score.score-excellent { | |
| color: var(--success); | |
| } | |
| .skill-score.score-good { | |
| color: var(--primary); | |
| } | |
| .skill-score.score-fair { | |
| color: var(--warning); | |
| } | |
| .skill-score.score-needs-work { | |
| color: var(--danger); | |
| } | |
| .skill-bar { | |
| height: 8px; | |
| background: var(--bg-tertiary); | |
| border-radius: var(--radius-full); | |
| overflow: hidden; | |
| } | |
| .skill-bar-fill { | |
| height: 100%; | |
| border-radius: var(--radius-full); | |
| transition: width var(--transition-base); | |
| } | |
| .skill-bar-fill.score-excellent { | |
| background: var(--success); | |
| } | |
| .skill-bar-fill.score-good { | |
| background: var(--primary); | |
| } | |
| .skill-bar-fill.score-fair { | |
| background: var(--warning); | |
| } | |
| .skill-bar-fill.score-needs-work { | |
| background: var(--danger); | |
| } | |
| /* Question Types */ | |
| .question-type-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); | |
| gap: var(--space-4); | |
| } | |
| .question-type-card { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-4); | |
| padding: var(--space-4); | |
| background: var(--bg-secondary); | |
| border-radius: var(--radius-xl); | |
| transition: all var(--transition-fast); | |
| } | |
| .question-type-card:hover { | |
| transform: translateY(-2px); | |
| box-shadow: var(--shadow-md); | |
| } | |
| .type-icon { | |
| width: 48px; | |
| height: 48px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| background: var(--primary-glow); | |
| color: var(--primary); | |
| border-radius: var(--radius-xl); | |
| } | |
| .type-info { | |
| display: flex; | |
| flex-direction: column; | |
| } | |
| .type-label { | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-medium); | |
| color: var(--text-primary); | |
| } | |
| .type-score { | |
| font-size: var(--text-lg); | |
| font-weight: var(--font-bold); | |
| } | |
| .type-count { | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| } | |
| /* Recent Interviews */ | |
| .empty-state-card { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| text-align: center; | |
| padding: var(--space-12); | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| } | |
| .empty-state-card svg { | |
| color: var(--text-muted); | |
| opacity: 0.3; | |
| margin-bottom: var(--space-4); | |
| } | |
| .empty-state-card h3 { | |
| font-family: var(--font-display); | |
| font-size: var(--text-lg); | |
| font-weight: var(--font-semibold); | |
| margin-bottom: var(--space-2); | |
| color: var(--text-primary); | |
| } | |
| .empty-state-card p { | |
| color: var(--text-muted); | |
| margin-bottom: var(--space-6); | |
| } | |
| .recent-interviews-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); | |
| gap: var(--space-4); | |
| } | |
| .recent-interview-card { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-xl); | |
| padding: var(--space-5); | |
| cursor: pointer; | |
| transition: all var(--transition-fast); | |
| } | |
| .recent-interview-card:hover { | |
| border-color: var(--primary); | |
| transform: translateY(-2px); | |
| box-shadow: var(--shadow-md); | |
| } | |
| .recent-interview-card .interview-header { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: flex-start; | |
| margin-bottom: var(--space-3); | |
| } | |
| .interview-role { | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| } | |
| .interview-date { | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| } | |
| .interview-meta { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: var(--space-2); | |
| margin-bottom: var(--space-3); | |
| } | |
| .meta-badge { | |
| padding: var(--space-1) var(--space-2); | |
| background: var(--bg-tertiary); | |
| border-radius: var(--radius-sm); | |
| font-size: var(--text-xs); | |
| color: var(--text-secondary); | |
| } | |
| .score-badge { | |
| display: inline-flex; | |
| padding: var(--space-1) var(--space-3); | |
| border-radius: var(--radius-full); | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-bold); | |
| } | |
| .score-badge.score-excellent { | |
| background: var(--success-bg); | |
| color: var(--success); | |
| } | |
| .score-badge.score-good { | |
| background: var(--primary-glow); | |
| color: var(--primary); | |
| } | |
| .score-badge.score-fair { | |
| background: var(--warning-bg); | |
| color: var(--warning); | |
| } | |
| .score-badge.score-needs-work { | |
| background: var(--danger-bg); | |
| color: var(--danger); | |
| } | |
| .score-badge.pending { | |
| background: var(--bg-tertiary); | |
| color: var(--text-muted); | |
| } | |
| /* Disclaimer */ | |
| .disclaimer-section { | |
| padding: var(--space-6); | |
| background: var(--bg-tertiary); | |
| border-radius: var(--radius-xl); | |
| margin-bottom: var(--space-8); | |
| } | |
| .disclaimer-section p { | |
| font-size: var(--text-sm); | |
| color: var(--text-muted); | |
| text-align: center; | |
| } | |
| /* CTA Section */ | |
| .cta-section { | |
| display: flex; | |
| justify-content: center; | |
| padding: var(--space-8); | |
| } | |
| /* =========================================== | |
| CAREER ROADMAP PAGE - Premium | |
| =========================================== */ | |
| .roadmap-container { | |
| min-height: 100vh; | |
| background: linear-gradient(135deg, #f0eef8 0%, #e4e0f2 35%, #d6d0ea 65%, #f0eef8 100%); | |
| } | |
| [data-theme="dark"] .roadmap-container { | |
| background: linear-gradient(180deg, var(--bg-primary) 0%, var(--bg-secondary) 100%); | |
| } | |
| .roadmap-loading { | |
| flex: 1; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| min-height: 60vh; | |
| } | |
| .roadmap-main { | |
| max-width: 900px; | |
| margin: 0 auto; | |
| padding: var(--space-8); | |
| } | |
| .roadmap-header { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-6); | |
| margin-bottom: var(--space-8); | |
| } | |
| .roadmap-header .header-icon { | |
| width: 72px; | |
| height: 72px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| background: var(--primary-gradient); | |
| color: white; | |
| border-radius: var(--radius-2xl); | |
| box-shadow: 0 0 30px var(--primary-glow); | |
| } | |
| .roadmap-header .header-content h1 { | |
| font-family: var(--font-display); | |
| font-size: var(--text-3xl); | |
| font-weight: var(--font-bold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-2); | |
| } | |
| .roadmap-role { | |
| color: var(--text-secondary); | |
| font-size: var(--text-lg); | |
| margin-bottom: var(--space-2); | |
| } | |
| .duration-badge { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| padding: var(--space-2) var(--space-3); | |
| background: var(--primary-glow); | |
| color: var(--primary); | |
| border-radius: var(--radius-full); | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-medium); | |
| } | |
| /* Roadmap Cards */ | |
| .roadmap-card { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| padding: var(--space-8); | |
| margin-bottom: var(--space-6); | |
| } | |
| [data-theme="dark"] .roadmap-card { | |
| background: var(--glass-bg); | |
| backdrop-filter: var(--glass-blur); | |
| } | |
| .roadmap-card .card-header { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-3); | |
| margin-bottom: var(--space-6); | |
| color: var(--primary); | |
| } | |
| .roadmap-card .card-header h2 { | |
| font-family: var(--font-display); | |
| font-size: var(--text-xl); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| } | |
| /* Summary Card */ | |
| .summary-card .summary-text { | |
| color: var(--text-secondary); | |
| line-height: var(--leading-relaxed); | |
| margin-bottom: var(--space-6); | |
| } | |
| .key-actions h3 { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| font-size: var(--text-base); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-4); | |
| } | |
| .action-list { | |
| list-style: none; | |
| counter-reset: action; | |
| } | |
| .action-list li { | |
| display: flex; | |
| align-items: flex-start; | |
| gap: var(--space-3); | |
| padding: var(--space-3) 0; | |
| border-bottom: 1px solid var(--border-color); | |
| } | |
| .action-list li:last-child { | |
| border-bottom: none; | |
| } | |
| .action-number { | |
| width: 28px; | |
| height: 28px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| background: var(--primary-gradient); | |
| color: white; | |
| border-radius: 50%; | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-bold); | |
| flex-shrink: 0; | |
| } | |
| .action-text { | |
| color: var(--text-primary); | |
| line-height: var(--leading-relaxed); | |
| } | |
| /* Phases Timeline */ | |
| .phases-timeline { | |
| position: relative; | |
| padding-left: var(--space-8); | |
| } | |
| .phases-timeline::before { | |
| content: ''; | |
| position: absolute; | |
| left: 15px; | |
| top: 0; | |
| bottom: 0; | |
| width: 2px; | |
| background: linear-gradient(180deg, var(--primary) 0%, var(--accent) 100%); | |
| } | |
| .phase-item { | |
| position: relative; | |
| padding-bottom: var(--space-8); | |
| } | |
| .phase-item:last-child { | |
| padding-bottom: 0; | |
| } | |
| .phase-marker { | |
| position: absolute; | |
| left: calc(-1 * var(--space-8) + 4px); | |
| width: 24px; | |
| height: 24px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| background: var(--primary); | |
| border-radius: 50%; | |
| z-index: 1; | |
| } | |
| .phase-number { | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-bold); | |
| color: white; | |
| } | |
| .phase-content { | |
| background: var(--bg-secondary); | |
| border-radius: var(--radius-xl); | |
| padding: var(--space-5); | |
| } | |
| .phase-header { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| margin-bottom: var(--space-3); | |
| } | |
| .phase-header h3 { | |
| font-family: var(--font-display); | |
| font-size: var(--text-lg); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| } | |
| .phase-weeks { | |
| font-size: var(--text-sm); | |
| color: var(--primary); | |
| font-weight: var(--font-medium); | |
| } | |
| .phase-focus { | |
| list-style: none; | |
| } | |
| .phase-focus li { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| padding: var(--space-2) 0; | |
| color: var(--text-secondary); | |
| font-size: var(--text-sm); | |
| } | |
| .phase-focus li svg { | |
| color: var(--primary); | |
| flex-shrink: 0; | |
| } | |
| /* Gaps Grid */ | |
| .gaps-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); | |
| gap: var(--space-4); | |
| } | |
| .gap-card { | |
| background: var(--bg-secondary); | |
| border-radius: var(--radius-xl); | |
| padding: var(--space-4); | |
| } | |
| .gap-header { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| margin-bottom: var(--space-3); | |
| } | |
| .gap-skill { | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| } | |
| .priority-badge { | |
| padding: var(--space-1) var(--space-2); | |
| border-radius: var(--radius-sm); | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-medium); | |
| text-transform: capitalize; | |
| } | |
| .priority-badge.priority-high { | |
| background: var(--danger-bg); | |
| color: var(--danger); | |
| } | |
| .priority-badge.priority-medium { | |
| background: var(--warning-bg); | |
| color: var(--warning); | |
| } | |
| .priority-badge.priority-low { | |
| background: var(--success-bg); | |
| color: var(--success); | |
| } | |
| .gap-levels { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| color: var(--text-muted); | |
| font-size: var(--text-sm); | |
| } | |
| .gap-levels .level.current { | |
| color: var(--danger); | |
| } | |
| .gap-levels .level.target { | |
| color: var(--success); | |
| } | |
| /* Learning Timeline */ | |
| .learning-timeline { | |
| display: flex; | |
| flex-direction: column; | |
| gap: var(--space-4); | |
| } | |
| .learning-item { | |
| display: flex; | |
| gap: var(--space-4); | |
| } | |
| .learning-order { | |
| width: 40px; | |
| height: 40px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| background: var(--primary-gradient); | |
| color: white; | |
| border-radius: 50%; | |
| font-weight: var(--font-bold); | |
| flex-shrink: 0; | |
| } | |
| .learning-content { | |
| flex: 1; | |
| background: var(--bg-secondary); | |
| border-radius: var(--radius-xl); | |
| padding: var(--space-5); | |
| } | |
| .learning-content h3 { | |
| font-family: var(--font-display); | |
| font-size: var(--text-base); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-2); | |
| } | |
| .learning-content p { | |
| color: var(--text-secondary); | |
| font-size: var(--text-sm); | |
| margin-bottom: var(--space-3); | |
| } | |
| .learning-meta { | |
| display: flex; | |
| gap: var(--space-4); | |
| margin-bottom: var(--space-3); | |
| } | |
| .learning-meta .duration { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-1); | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| } | |
| .resources { | |
| padding-top: var(--space-3); | |
| border-top: 1px solid var(--border-color); | |
| } | |
| .resources strong { | |
| font-size: var(--text-sm); | |
| color: var(--text-primary); | |
| } | |
| .resources ul { | |
| margin-top: var(--space-2); | |
| padding-left: var(--space-4); | |
| } | |
| .resources li { | |
| font-size: var(--text-sm); | |
| color: var(--text-secondary); | |
| padding: var(--space-1) 0; | |
| } | |
| /* Projects Grid */ | |
| .projects-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); | |
| gap: var(--space-4); | |
| } | |
| .project-card { | |
| background: var(--bg-secondary); | |
| border-radius: var(--radius-xl); | |
| padding: var(--space-5); | |
| } | |
| .project-card h3 { | |
| font-family: var(--font-display); | |
| font-size: var(--text-base); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-2); | |
| } | |
| .project-card p { | |
| color: var(--text-secondary); | |
| font-size: var(--text-sm); | |
| margin-bottom: var(--space-3); | |
| } | |
| .project-meta { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-3); | |
| margin-bottom: var(--space-3); | |
| } | |
| .difficulty-badge { | |
| padding: var(--space-1) var(--space-2); | |
| border-radius: var(--radius-sm); | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-medium); | |
| text-transform: capitalize; | |
| } | |
| .difficulty-badge.difficulty-easy { | |
| background: var(--success-bg); | |
| color: var(--success); | |
| } | |
| .difficulty-badge.difficulty-medium { | |
| background: var(--warning-bg); | |
| color: var(--warning); | |
| } | |
| .difficulty-badge.difficulty-hard { | |
| background: var(--danger-bg); | |
| color: var(--danger); | |
| } | |
| .project-meta .duration { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-1); | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| } | |
| .skill-tags { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: var(--space-2); | |
| } | |
| .skill-tag { | |
| padding: var(--space-1) var(--space-2); | |
| background: var(--primary-glow); | |
| color: var(--primary); | |
| border-radius: var(--radius-sm); | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-medium); | |
| } | |
| /* Practice Blocks */ | |
| .practice-block { | |
| padding: var(--space-5); | |
| background: var(--bg-secondary); | |
| border-radius: var(--radius-xl); | |
| margin-bottom: var(--space-4); | |
| } | |
| .practice-block:last-child { | |
| margin-bottom: 0; | |
| } | |
| .practice-block h3 { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| font-size: var(--text-base); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-3); | |
| } | |
| .practice-block p { | |
| color: var(--text-secondary); | |
| line-height: var(--leading-relaxed); | |
| } | |
| .practice-list { | |
| list-style: none; | |
| } | |
| .practice-list li { | |
| display: flex; | |
| align-items: flex-start; | |
| gap: var(--space-2); | |
| padding: var(--space-2) 0; | |
| color: var(--text-secondary); | |
| font-size: var(--text-sm); | |
| } | |
| .practice-list li svg { | |
| color: var(--primary); | |
| flex-shrink: 0; | |
| margin-top: 2px; | |
| } | |
| .practice-block.tips { | |
| background: var(--primary-glow); | |
| } | |
| .practice-block.tips li svg { | |
| color: var(--accent); | |
| } | |
| /* Metrics List */ | |
| .metrics-list { | |
| list-style: none; | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); | |
| gap: var(--space-3); | |
| } | |
| .metrics-list li { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-3); | |
| padding: var(--space-3); | |
| background: var(--bg-secondary); | |
| border-radius: var(--radius-lg); | |
| } | |
| .metrics-list li svg { | |
| color: var(--success); | |
| flex-shrink: 0; | |
| } | |
| .metrics-list li span { | |
| color: var(--text-primary); | |
| font-size: var(--text-sm); | |
| } | |
| /* Milestones Timeline */ | |
| .milestones-timeline { | |
| position: relative; | |
| padding-left: var(--space-8); | |
| } | |
| .milestones-timeline::before { | |
| content: ''; | |
| position: absolute; | |
| left: 15px; | |
| top: 0; | |
| bottom: 0; | |
| width: 2px; | |
| background: var(--accent-gradient); | |
| } | |
| .milestone-item { | |
| position: relative; | |
| padding-bottom: var(--space-6); | |
| } | |
| .milestone-item:last-child { | |
| padding-bottom: 0; | |
| } | |
| .milestone-marker { | |
| position: absolute; | |
| left: calc(-1 * var(--space-8) + 4px); | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| gap: var(--space-1); | |
| } | |
| .milestone-marker svg { | |
| color: var(--accent); | |
| } | |
| .milestone-marker span { | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| white-space: nowrap; | |
| } | |
| .milestone-content { | |
| background: var(--bg-secondary); | |
| border-radius: var(--radius-xl); | |
| padding: var(--space-5); | |
| margin-left: var(--space-4); | |
| } | |
| .milestone-content h4 { | |
| font-family: var(--font-display); | |
| font-size: var(--text-base); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-3); | |
| } | |
| .deliverables { | |
| list-style: none; | |
| } | |
| .deliverables li { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| padding: var(--space-1) 0; | |
| color: var(--text-secondary); | |
| font-size: var(--text-sm); | |
| } | |
| .deliverables li svg { | |
| color: var(--success); | |
| flex-shrink: 0; | |
| } | |
| /* Roadmap Disclaimer */ | |
| .roadmap-disclaimer { | |
| padding: var(--space-4); | |
| background: var(--bg-tertiary); | |
| border-radius: var(--radius-xl); | |
| margin-bottom: var(--space-6); | |
| } | |
| .roadmap-disclaimer p { | |
| font-size: var(--text-sm); | |
| color: var(--text-muted); | |
| text-align: center; | |
| } | |
| /* Roadmap Actions */ | |
| .roadmap-actions { | |
| display: flex; | |
| justify-content: center; | |
| gap: var(--space-4); | |
| padding: var(--space-8); | |
| } | |
| @media (max-width: 768px) { | |
| .roadmap-header { | |
| flex-direction: column; | |
| text-align: center; | |
| } | |
| .phases-timeline, | |
| .milestones-timeline { | |
| padding-left: var(--space-6); | |
| } | |
| .phases-timeline::before, | |
| .milestones-timeline::before { | |
| left: 11px; | |
| } | |
| .phase-marker { | |
| left: calc(-1 * var(--space-6) + 4px); | |
| width: 20px; | |
| height: 20px; | |
| } | |
| .roadmap-actions { | |
| flex-direction: column; | |
| } | |
| } | |
| /* =========================================== | |
| ENHANCED INTERVIEW VOICE INPUT STYLES | |
| =========================================== */ | |
| .input-row { | |
| display: flex; | |
| gap: 0.75rem; | |
| align-items: flex-start; | |
| } | |
| .voice-btn { | |
| flex-shrink: 0; | |
| width: 48px; | |
| height: 48px; | |
| border-radius: 12px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| background: var(--bg-tertiary); | |
| border: 1px solid var(--border-color); | |
| color: var(--text-secondary); | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| } | |
| .voice-btn:hover:not(:disabled) { | |
| background: var(--bg-card-hover); | |
| border-color: var(--primary); | |
| color: var(--primary); | |
| } | |
| .voice-btn.recording { | |
| background: rgba(34, 197, 94, 0.15); | |
| border-color: #22c55e; | |
| color: #22c55e; | |
| animation: pulse-ring 1.5s cubic-bezier(0.4, 0, 0.6, 1) infinite; | |
| } | |
| @keyframes pulse-ring { | |
| 0%, | |
| 100% { | |
| box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.4); | |
| } | |
| 50% { | |
| box-shadow: 0 0 0 8px rgba(34, 197, 94, 0); | |
| } | |
| } | |
| .voice-btn:disabled { | |
| opacity: 0.5; | |
| cursor: not-allowed; | |
| } | |
| .media-controls { | |
| display: flex; | |
| gap: 0.5rem; | |
| margin-right: 0.5rem; | |
| } | |
| .media-controls .btn-icon.active { | |
| color: var(--success); | |
| } | |
| /* Chat input adjustments for voice */ | |
| .chat-input-area .chat-input { | |
| flex: 1; | |
| } | |
| /* Interviewer speaking pulse */ | |
| .status.speaking::before { | |
| content: ''; | |
| display: inline-block; | |
| width: 8px; | |
| height: 8px; | |
| background: #22c55e; | |
| border-radius: 50%; | |
| margin-right: 8px; | |
| animation: pulse 1s ease-in-out infinite; | |
| } | |
| .status.listening::before { | |
| content: ''; | |
| display: inline-block; | |
| width: 8px; | |
| height: 8px; | |
| background: #d000d0; | |
| border-radius: 50%; | |
| margin-right: 8px; | |
| animation: pulse 1.5s ease-in-out infinite; | |
| } | |
| /* No avatar layout */ | |
| .interview-content.no-avatar .chat-panel { | |
| max-width: 900px; | |
| margin: 0 auto; | |
| } | |
| /* =========================================== | |
| SECTION: UI POLISH & CONSISTENCY ENFORCEMENT | |
| Professional, Final-Product Quality | |
| =========================================== */ | |
| /* =========================================== | |
| BUTTON STANDARDIZATION | |
| All buttons must have consistent appearance | |
| =========================================== */ | |
| /* Standard button heights */ | |
| .btn { | |
| min-height: 44px; | |
| line-height: 1.2; | |
| } | |
| .btn-sm { | |
| min-height: 36px; | |
| } | |
| .btn-lg { | |
| min-height: 52px; | |
| } | |
| .btn-icon { | |
| min-height: 44px; | |
| min-width: 44px; | |
| } | |
| .btn-icon.btn-sm { | |
| min-height: 36px; | |
| min-width: 36px; | |
| width: 36px; | |
| height: 36px; | |
| } | |
| /* Success button */ | |
| .btn-success { | |
| background: var(--success); | |
| color: white; | |
| box-shadow: 0 2px 8px rgba(16, 185, 129, 0.3); | |
| } | |
| .btn-success:hover:not(:disabled) { | |
| background: #059669; | |
| transform: translateY(-1px); | |
| box-shadow: 0 4px 12px rgba(16, 185, 129, 0.4); | |
| } | |
| /* Warning button */ | |
| .btn-warning { | |
| background: var(--warning); | |
| color: #1a1a1a; | |
| box-shadow: 0 2px 8px rgba(245, 158, 11, 0.3); | |
| } | |
| .btn-warning:hover:not(:disabled) { | |
| background: #d97706; | |
| transform: translateY(-1px); | |
| } | |
| /* Outline buttons */ | |
| .btn-outline { | |
| background: transparent; | |
| border: 2px solid var(--border-color); | |
| color: var(--text-primary); | |
| } | |
| .btn-outline:hover:not(:disabled) { | |
| border-color: var(--primary); | |
| color: var(--primary); | |
| background: var(--primary-glow); | |
| } | |
| .btn-outline-primary { | |
| background: transparent; | |
| border: 2px solid var(--primary); | |
| color: var(--primary); | |
| } | |
| .btn-outline-primary:hover:not(:disabled) { | |
| background: var(--primary); | |
| color: white; | |
| } | |
| .btn-outline-danger { | |
| background: transparent; | |
| border: 2px solid var(--danger); | |
| color: var(--danger); | |
| } | |
| .btn-outline-danger:hover:not(:disabled) { | |
| background: var(--danger); | |
| color: white; | |
| } | |
| /* Button focus states for accessibility */ | |
| .btn:focus-visible { | |
| outline: 2px solid var(--primary); | |
| outline-offset: 2px; | |
| } | |
| /* Button loading state */ | |
| .btn.loading { | |
| position: relative; | |
| color: transparent ; | |
| pointer-events: none; | |
| } | |
| .btn.loading::after { | |
| content: ''; | |
| position: absolute; | |
| width: 18px; | |
| height: 18px; | |
| border: 2px solid currentColor; | |
| border-right-color: transparent; | |
| border-radius: 50%; | |
| animation: spin 0.75s linear infinite; | |
| } | |
| .btn-primary.loading::after, | |
| .btn-success.loading::after, | |
| .btn-danger.loading::after { | |
| border-color: rgba(255, 255, 255, 0.3); | |
| border-right-color: white; | |
| } | |
| /* =========================================== | |
| ALERT SYSTEM | |
| Consistent alerts across the app | |
| =========================================== */ | |
| .alert { | |
| display: flex; | |
| align-items: flex-start; | |
| gap: var(--space-3); | |
| padding: var(--space-4); | |
| border-radius: var(--radius-xl); | |
| margin-bottom: var(--space-4); | |
| font-size: var(--text-sm); | |
| line-height: var(--leading-relaxed); | |
| } | |
| .alert-icon { | |
| flex-shrink: 0; | |
| margin-top: 1px; | |
| } | |
| .alert-content { | |
| flex: 1; | |
| min-width: 0; | |
| } | |
| .alert-title { | |
| font-weight: var(--font-semibold); | |
| margin-bottom: var(--space-1); | |
| } | |
| .alert-close { | |
| flex-shrink: 0; | |
| padding: var(--space-1); | |
| border-radius: var(--radius-md); | |
| opacity: 0.7; | |
| transition: opacity var(--transition-fast); | |
| } | |
| .alert-close:hover { | |
| opacity: 1; | |
| } | |
| /* Alert variants */ | |
| .alert-info { | |
| background: var(--info-bg); | |
| border: 1px solid rgba(79, 124, 130, 0.3); | |
| color: var(--info); | |
| } | |
| .alert-success { | |
| background: var(--success-bg); | |
| border: 1px solid rgba(16, 185, 129, 0.3); | |
| color: var(--success); | |
| } | |
| .alert-warning { | |
| background: var(--warning-bg); | |
| border: 1px solid rgba(245, 158, 11, 0.3); | |
| color: var(--warning); | |
| } | |
| .alert-error { | |
| background: var(--danger-bg); | |
| border: 1px solid rgba(239, 68, 68, 0.3); | |
| color: var(--danger); | |
| } | |
| /* Dark mode alert adjustments */ | |
| [data-theme="dark"] .alert-info { | |
| border-color: rgba(96, 165, 250, 0.25); | |
| } | |
| [data-theme="dark"] .alert-success { | |
| border-color: rgba(52, 211, 153, 0.25); | |
| } | |
| [data-theme="dark"] .alert-warning { | |
| border-color: rgba(251, 191, 36, 0.25); | |
| } | |
| [data-theme="dark"] .alert-error { | |
| border-color: rgba(248, 113, 113, 0.25); | |
| } | |
| /* =========================================== | |
| EMPTY STATES | |
| When no content available | |
| =========================================== */ | |
| .empty-state { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| padding: var(--space-12) var(--space-6); | |
| text-align: center; | |
| } | |
| .empty-state-icon { | |
| font-size: 4rem; | |
| margin-bottom: var(--space-4); | |
| opacity: 0.6; | |
| } | |
| .empty-state-title { | |
| font-family: var(--font-display); | |
| font-size: var(--text-xl); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-2); | |
| } | |
| .empty-state-description { | |
| font-size: var(--text-base); | |
| color: var(--text-muted); | |
| max-width: 400px; | |
| margin-bottom: var(--space-6); | |
| line-height: var(--leading-relaxed); | |
| } | |
| .empty-state-action { | |
| display: flex; | |
| gap: var(--space-3); | |
| flex-wrap: wrap; | |
| justify-content: center; | |
| } | |
| /* =========================================== | |
| ERROR STATES - Enhanced | |
| =========================================== */ | |
| .error-page { | |
| min-height: 100vh; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| padding: var(--space-6); | |
| background: var(--bg-secondary); | |
| } | |
| .error-card { | |
| max-width: 480px; | |
| width: 100%; | |
| text-align: center; | |
| padding: var(--space-10); | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| box-shadow: var(--shadow-xl); | |
| } | |
| .error-illustration { | |
| font-size: 5rem; | |
| margin-bottom: var(--space-6); | |
| filter: grayscale(0.3); | |
| } | |
| .error-code { | |
| font-family: var(--font-display); | |
| font-size: var(--text-5xl); | |
| font-weight: var(--font-extrabold); | |
| background: var(--primary-gradient); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| margin-bottom: var(--space-2); | |
| } | |
| .error-heading { | |
| font-family: var(--font-display); | |
| font-size: var(--text-2xl); | |
| font-weight: var(--font-bold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-3); | |
| } | |
| .error-message { | |
| font-size: var(--text-base); | |
| color: var(--text-secondary); | |
| line-height: var(--leading-relaxed); | |
| margin-bottom: var(--space-8); | |
| } | |
| .error-actions { | |
| display: flex; | |
| gap: var(--space-3); | |
| justify-content: center; | |
| flex-wrap: wrap; | |
| } | |
| /* Inline error message */ | |
| .field-error { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-1); | |
| margin-top: var(--space-2); | |
| font-size: var(--text-xs); | |
| color: var(--danger); | |
| } | |
| .field-error svg { | |
| flex-shrink: 0; | |
| width: 14px; | |
| height: 14px; | |
| } | |
| /* =========================================== | |
| BADGES & TAGS | |
| =========================================== */ | |
| .badge { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: var(--space-1); | |
| padding: var(--space-1) var(--space-2); | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-semibold); | |
| border-radius: var(--radius-md); | |
| white-space: nowrap; | |
| } | |
| .badge-primary { | |
| background: var(--primary-glow); | |
| color: var(--primary); | |
| } | |
| .badge-success { | |
| background: var(--success-bg); | |
| color: var(--success); | |
| } | |
| .badge-warning { | |
| background: var(--warning-bg); | |
| color: var(--warning); | |
| } | |
| .badge-danger { | |
| background: var(--danger-bg); | |
| color: var(--danger); | |
| } | |
| .badge-info { | |
| background: var(--info-bg); | |
| color: var(--info); | |
| } | |
| .badge-neutral { | |
| background: var(--bg-tertiary); | |
| color: var(--text-muted); | |
| } | |
| /* Larger badge */ | |
| .badge-lg { | |
| padding: var(--space-2) var(--space-3); | |
| font-size: var(--text-sm); | |
| border-radius: var(--radius-lg); | |
| } | |
| /* =========================================== | |
| TOOLTIPS | |
| =========================================== */ | |
| [data-tooltip] { | |
| position: relative; | |
| } | |
| [data-tooltip]::before { | |
| content: attr(data-tooltip); | |
| position: absolute; | |
| bottom: calc(100% + 8px); | |
| left: 50%; | |
| transform: translateX(-50%) scale(0.9); | |
| padding: var(--space-2) var(--space-3); | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-medium); | |
| color: white; | |
| background: var(--text-primary); | |
| border-radius: var(--radius-md); | |
| white-space: nowrap; | |
| opacity: 0; | |
| visibility: hidden; | |
| transition: all var(--transition-fast); | |
| z-index: 1000; | |
| pointer-events: none; | |
| } | |
| [data-tooltip]::after { | |
| content: ''; | |
| position: absolute; | |
| bottom: calc(100% + 4px); | |
| left: 50%; | |
| transform: translateX(-50%); | |
| border: 4px solid transparent; | |
| border-top-color: var(--text-primary); | |
| opacity: 0; | |
| visibility: hidden; | |
| transition: all var(--transition-fast); | |
| } | |
| [data-tooltip]:hover::before, | |
| [data-tooltip]:hover::after { | |
| opacity: 1; | |
| visibility: visible; | |
| transform: translateX(-50%) scale(1); | |
| } | |
| /* =========================================== | |
| PROGRESS BARS | |
| =========================================== */ | |
| .progress { | |
| height: 8px; | |
| background: var(--bg-tertiary); | |
| border-radius: var(--radius-full); | |
| overflow: hidden; | |
| } | |
| .progress-bar { | |
| height: 100%; | |
| background: var(--primary-gradient); | |
| border-radius: var(--radius-full); | |
| transition: width var(--transition-slow); | |
| } | |
| .progress-bar.success { | |
| background: var(--success); | |
| } | |
| .progress-bar.warning { | |
| background: var(--warning); | |
| } | |
| .progress-bar.danger { | |
| background: var(--danger); | |
| } | |
| /* Large progress */ | |
| .progress-lg { | |
| height: 12px; | |
| } | |
| /* Progress with label */ | |
| .progress-labeled { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-3); | |
| } | |
| .progress-labeled .progress { | |
| flex: 1; | |
| } | |
| .progress-label { | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-medium); | |
| color: var(--text-secondary); | |
| min-width: 48px; | |
| text-align: right; | |
| } | |
| /* =========================================== | |
| SKELETON LOADING | |
| =========================================== */ | |
| .skeleton { | |
| background: linear-gradient(90deg, | |
| var(--bg-tertiary) 0%, | |
| var(--bg-card-hover) 50%, | |
| var(--bg-tertiary) 100%); | |
| background-size: 200% 100%; | |
| animation: skeleton-shimmer 1.5s infinite; | |
| border-radius: var(--radius-md); | |
| } | |
| @keyframes skeleton-shimmer { | |
| 0% { | |
| background-position: 200% 0; | |
| } | |
| 100% { | |
| background-position: -200% 0; | |
| } | |
| } | |
| .skeleton-text { | |
| height: 1em; | |
| margin-bottom: var(--space-2); | |
| } | |
| .skeleton-text:last-child { | |
| width: 70%; | |
| } | |
| .skeleton-avatar { | |
| width: 48px; | |
| height: 48px; | |
| border-radius: var(--radius-full); | |
| } | |
| .skeleton-card { | |
| height: 200px; | |
| border-radius: var(--radius-xl); | |
| } | |
| /* =========================================== | |
| DIVIDERS | |
| =========================================== */ | |
| .divider { | |
| border: none; | |
| height: 1px; | |
| background: var(--border-color); | |
| margin: var(--space-6) 0; | |
| } | |
| .divider-text { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-4); | |
| color: var(--text-muted); | |
| font-size: var(--text-sm); | |
| } | |
| .divider-text::before, | |
| .divider-text::after { | |
| content: ''; | |
| flex: 1; | |
| height: 1px; | |
| background: var(--border-color); | |
| } | |
| /* =========================================== | |
| AVATAR COMPONENT | |
| =========================================== */ | |
| .avatar { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| background: var(--primary-glow); | |
| border-radius: var(--radius-full); | |
| font-weight: var(--font-semibold); | |
| color: var(--primary); | |
| overflow: hidden; | |
| } | |
| .avatar img { | |
| width: 100%; | |
| height: 100%; | |
| object-fit: cover; | |
| } | |
| .avatar-sm { | |
| width: 32px; | |
| height: 32px; | |
| font-size: var(--text-xs); | |
| } | |
| .avatar-md { | |
| width: 40px; | |
| height: 40px; | |
| font-size: var(--text-sm); | |
| } | |
| .avatar-lg { | |
| width: 56px; | |
| height: 56px; | |
| font-size: var(--text-lg); | |
| } | |
| .avatar-xl { | |
| width: 80px; | |
| height: 80px; | |
| font-size: var(--text-2xl); | |
| } | |
| /* Avatar group */ | |
| .avatar-group { | |
| display: flex; | |
| } | |
| .avatar-group .avatar { | |
| border: 2px solid var(--bg-card); | |
| margin-left: -8px; | |
| } | |
| .avatar-group .avatar:first-child { | |
| margin-left: 0; | |
| } | |
| /* =========================================== | |
| MODAL IMPROVEMENTS | |
| =========================================== */ | |
| .modal-overlay { | |
| position: fixed; | |
| inset: 0; | |
| background: rgba(0, 0, 0, 0.6); | |
| backdrop-filter: blur(4px); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| z-index: 1000; | |
| padding: var(--space-4); | |
| animation: fadeIn 0.2s ease-out; | |
| } | |
| @keyframes fadeIn { | |
| from { | |
| opacity: 0; | |
| } | |
| to { | |
| opacity: 1; | |
| } | |
| } | |
| .modal { | |
| width: 100%; | |
| max-width: 520px; | |
| max-height: 90vh; | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| box-shadow: var(--shadow-xl); | |
| overflow: hidden; | |
| animation: modalSlideIn 0.3s ease-out; | |
| } | |
| @keyframes modalSlideIn { | |
| from { | |
| opacity: 0; | |
| transform: scale(0.95) translateY(-20px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: scale(1) translateY(0); | |
| } | |
| } | |
| .modal-header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| padding: var(--space-5) var(--space-6); | |
| border-bottom: 1px solid var(--border-color); | |
| } | |
| .modal-title { | |
| font-family: var(--font-display); | |
| font-size: var(--text-lg); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| } | |
| .modal-close { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 32px; | |
| height: 32px; | |
| border-radius: var(--radius-md); | |
| color: var(--text-muted); | |
| transition: all var(--transition-fast); | |
| } | |
| .modal-close:hover { | |
| background: var(--bg-tertiary); | |
| color: var(--text-primary); | |
| } | |
| .modal-body { | |
| padding: var(--space-6); | |
| overflow-y: auto; | |
| max-height: calc(90vh - 140px); | |
| } | |
| .modal-footer { | |
| display: flex; | |
| justify-content: flex-end; | |
| gap: var(--space-3); | |
| padding: var(--space-4) var(--space-6); | |
| border-top: 1px solid var(--border-color); | |
| background: var(--bg-secondary); | |
| } | |
| /* =========================================== | |
| TABLES | |
| =========================================== */ | |
| .table-container { | |
| overflow-x: auto; | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-xl); | |
| } | |
| .table { | |
| width: 100%; | |
| border-collapse: collapse; | |
| font-size: var(--text-sm); | |
| } | |
| .table th { | |
| padding: var(--space-4); | |
| text-align: left; | |
| font-weight: var(--font-semibold); | |
| color: var(--text-secondary); | |
| background: var(--bg-tertiary); | |
| border-bottom: 1px solid var(--border-color); | |
| white-space: nowrap; | |
| } | |
| .table td { | |
| padding: var(--space-4); | |
| border-bottom: 1px solid var(--border-color); | |
| color: var(--text-primary); | |
| } | |
| .table tr:last-child td { | |
| border-bottom: none; | |
| } | |
| .table tr:hover td { | |
| background: var(--bg-card-hover); | |
| } | |
| /* =========================================== | |
| SPACING UTILITIES | |
| =========================================== */ | |
| .mt-0 { | |
| margin-top: 0; | |
| } | |
| .mt-1 { | |
| margin-top: var(--space-1); | |
| } | |
| .mt-2 { | |
| margin-top: var(--space-2); | |
| } | |
| .mt-3 { | |
| margin-top: var(--space-3); | |
| } | |
| .mt-4 { | |
| margin-top: var(--space-4); | |
| } | |
| .mt-6 { | |
| margin-top: var(--space-6); | |
| } | |
| .mt-8 { | |
| margin-top: var(--space-8); | |
| } | |
| .mb-0 { | |
| margin-bottom: 0; | |
| } | |
| .mb-1 { | |
| margin-bottom: var(--space-1); | |
| } | |
| .mb-2 { | |
| margin-bottom: var(--space-2); | |
| } | |
| .mb-3 { | |
| margin-bottom: var(--space-3); | |
| } | |
| .mb-4 { | |
| margin-bottom: var(--space-4); | |
| } | |
| .mb-6 { | |
| margin-bottom: var(--space-6); | |
| } | |
| .mb-8 { | |
| margin-bottom: var(--space-8); | |
| } | |
| .p-0 { | |
| padding: 0; | |
| } | |
| .p-2 { | |
| padding: var(--space-2); | |
| } | |
| .p-4 { | |
| padding: var(--space-4); | |
| } | |
| .p-6 { | |
| padding: var(--space-6); | |
| } | |
| .gap-2 { | |
| gap: var(--space-2); | |
| } | |
| .gap-3 { | |
| gap: var(--space-3); | |
| } | |
| .gap-4 { | |
| gap: var(--space-4); | |
| } | |
| /* =========================================== | |
| TEXT UTILITIES | |
| =========================================== */ | |
| .text-center { | |
| text-align: center; | |
| } | |
| .text-left { | |
| text-align: left; | |
| } | |
| .text-right { | |
| text-align: right; | |
| } | |
| .text-primary { | |
| color: var(--text-primary); | |
| } | |
| .text-secondary { | |
| color: var(--text-secondary); | |
| } | |
| .text-muted { | |
| color: var(--text-muted); | |
| } | |
| .text-success { | |
| color: var(--success); | |
| } | |
| .text-warning { | |
| color: var(--warning); | |
| } | |
| .text-danger { | |
| color: var(--danger); | |
| } | |
| .font-medium { | |
| font-weight: var(--font-medium); | |
| } | |
| .font-semibold { | |
| font-weight: var(--font-semibold); | |
| } | |
| .font-bold { | |
| font-weight: var(--font-bold); | |
| } | |
| .truncate { | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| white-space: nowrap; | |
| } | |
| /* =========================================== | |
| FLEX UTILITIES | |
| =========================================== */ | |
| .flex { | |
| display: flex; | |
| } | |
| .flex-col { | |
| flex-direction: column; | |
| } | |
| .flex-wrap { | |
| flex-wrap: wrap; | |
| } | |
| .items-center { | |
| align-items: center; | |
| } | |
| .items-start { | |
| align-items: flex-start; | |
| } | |
| .items-end { | |
| align-items: flex-end; | |
| } | |
| .justify-center { | |
| justify-content: center; | |
| } | |
| .justify-between { | |
| justify-content: space-between; | |
| } | |
| .justify-end { | |
| justify-content: flex-end; | |
| } | |
| .flex-1 { | |
| flex: 1; | |
| } | |
| /* =========================================== | |
| RESPONSIVE VISIBILITY | |
| =========================================== */ | |
| @media (max-width: 768px) { | |
| .hide-mobile { | |
| display: none ; | |
| } | |
| } | |
| @media (min-width: 769px) { | |
| .hide-desktop { | |
| display: none ; | |
| } | |
| } | |
| /* =========================================== | |
| ANIMATION UTILITIES | |
| =========================================== */ | |
| .animate-pulse { | |
| animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; | |
| } | |
| @keyframes pulse { | |
| 0%, | |
| 100% { | |
| opacity: 1; | |
| } | |
| 50% { | |
| opacity: 0.5; | |
| } | |
| } | |
| .animate-bounce { | |
| animation: bounce 1s infinite; | |
| } | |
| @keyframes bounce { | |
| 0%, | |
| 100% { | |
| transform: translateY(-5%); | |
| animation-timing-function: cubic-bezier(0.8, 0, 1, 1); | |
| } | |
| 50% { | |
| transform: translateY(0); | |
| animation-timing-function: cubic-bezier(0, 0, 0.2, 1); | |
| } | |
| } | |
| .animate-fade-in { | |
| animation: fadeIn 0.3s ease-out; | |
| } | |
| /* =========================================== | |
| FOCUS RING | |
| Accessibility improvement | |
| =========================================== */ | |
| .focus-ring:focus-visible { | |
| outline: 2px solid var(--primary); | |
| outline-offset: 2px; | |
| } | |
| /* =========================================== | |
| SCROLL CONTAINER | |
| =========================================== */ | |
| .scroll-container { | |
| overflow-y: auto; | |
| scrollbar-width: thin; | |
| scrollbar-color: var(--border-color) transparent; | |
| } | |
| .scroll-container::-webkit-scrollbar { | |
| width: 6px; | |
| } | |
| .scroll-container::-webkit-scrollbar-track { | |
| background: transparent; | |
| } | |
| .scroll-container::-webkit-scrollbar-thumb { | |
| background: var(--border-color); | |
| border-radius: 3px; | |
| } | |
| .scroll-container::-webkit-scrollbar-thumb:hover { | |
| background: var(--text-muted); | |
| } | |
| /* =========================================== | |
| PRINT STYLES | |
| =========================================== */ | |
| @media print { | |
| .no-print { | |
| display: none ; | |
| } | |
| body { | |
| background: white; | |
| color: black; | |
| } | |
| .card { | |
| box-shadow: none; | |
| border: 1px solid #ddd; | |
| } | |
| } | |
| /* =========================================== | |
| ERROR BOUNDARY - CRITICAL FALLBACK UI | |
| Prevents blank page on runtime errors | |
| =========================================== */ | |
| .error-boundary-container { | |
| min-height: 100vh; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| padding: var(--space-6); | |
| background: var(--bg-secondary); | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| /* Subtle animated background for error page */ | |
| .error-boundary-container::before { | |
| content: ''; | |
| position: absolute; | |
| top: -50%; | |
| left: -50%; | |
| width: 200%; | |
| height: 200%; | |
| background: | |
| radial-gradient(circle at 20% 30%, rgba(239, 68, 68, 0.1) 0%, transparent 40%), | |
| radial-gradient(circle at 80% 70%, rgba(79, 124, 130, 0.1) 0%, transparent 40%); | |
| z-index: 0; | |
| } | |
| .error-boundary-content { | |
| position: relative; | |
| z-index: 1; | |
| max-width: 480px; | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-3xl); | |
| padding: var(--space-12); | |
| text-align: center; | |
| box-shadow: var(--shadow-xl); | |
| } | |
| [data-theme="dark"] .error-boundary-content { | |
| box-shadow: var(--shadow-xl), 0 0 40px rgba(239, 68, 68, 0.1); | |
| } | |
| .error-boundary-icon { | |
| font-size: 4rem; | |
| margin-bottom: var(--space-6); | |
| filter: drop-shadow(0 0 20px rgba(239, 68, 68, 0.3)); | |
| } | |
| .error-boundary-title { | |
| font-family: var(--font-display); | |
| font-size: var(--text-3xl); | |
| font-weight: var(--font-bold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-4); | |
| } | |
| .error-boundary-message { | |
| color: var(--text-secondary); | |
| font-size: var(--text-base); | |
| line-height: var(--leading-relaxed); | |
| margin-bottom: var(--space-8); | |
| } | |
| .error-boundary-details { | |
| text-align: left; | |
| background: var(--bg-tertiary); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-lg); | |
| padding: var(--space-4); | |
| margin-bottom: var(--space-6); | |
| max-height: 200px; | |
| overflow-y: auto; | |
| } | |
| .error-boundary-details summary { | |
| cursor: pointer; | |
| font-weight: var(--font-medium); | |
| color: var(--text-secondary); | |
| margin-bottom: var(--space-2); | |
| } | |
| .error-boundary-details pre { | |
| font-size: var(--text-xs); | |
| color: var(--danger); | |
| white-space: pre-wrap; | |
| word-break: break-word; | |
| margin: var(--space-2) 0 0; | |
| } | |
| .error-boundary-actions { | |
| display: flex; | |
| flex-direction: column; | |
| gap: var(--space-3); | |
| margin-bottom: var(--space-6); | |
| } | |
| .error-boundary-btn { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: var(--space-2); | |
| padding: var(--space-4) var(--space-6); | |
| font-weight: var(--font-semibold); | |
| font-size: var(--text-base); | |
| border-radius: var(--radius-xl); | |
| transition: all var(--transition-base); | |
| width: 100%; | |
| min-height: 48px; | |
| } | |
| .error-boundary-btn.primary { | |
| background: var(--primary-gradient); | |
| color: white; | |
| box-shadow: var(--shadow-md); | |
| } | |
| .error-boundary-btn.primary:hover { | |
| transform: translateY(-2px); | |
| box-shadow: var(--shadow-lg), 0 0 20px var(--primary-glow); | |
| } | |
| .error-boundary-btn.secondary { | |
| background: var(--bg-tertiary); | |
| color: var(--text-primary); | |
| border: 1px solid var(--border-color); | |
| } | |
| .error-boundary-btn.secondary:hover { | |
| border-color: var(--primary); | |
| background: var(--bg-card-hover); | |
| } | |
| .error-boundary-btn.ghost { | |
| background: transparent; | |
| color: var(--text-muted); | |
| } | |
| .error-boundary-btn.ghost:hover { | |
| color: var(--text-primary); | |
| background: var(--bg-tertiary); | |
| } | |
| .error-boundary-hint { | |
| font-size: var(--text-sm); | |
| color: var(--text-muted); | |
| line-height: var(--leading-relaxed); | |
| } | |
| /* =========================================== | |
| BUTTON POLISH - STANDARDIZED HEIGHTS | |
| =========================================== */ | |
| /* Standardize all button heights */ | |
| .btn { | |
| min-height: 40px; | |
| line-height: 1.2; | |
| } | |
| .btn-lg { | |
| min-height: 48px; | |
| } | |
| .btn-sm { | |
| min-height: 32px; | |
| } | |
| /* Ensure icon buttons are properly centered */ | |
| .btn-icon { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| min-height: 40px; | |
| min-width: 40px; | |
| } | |
| .btn-icon svg { | |
| flex-shrink: 0; | |
| } | |
| /* Button text alignment fix */ | |
| .btn span { | |
| display: inline-flex; | |
| align-items: center; | |
| } | |
| /* =========================================== | |
| CARD SPACING POLISH | |
| =========================================== */ | |
| /* Consistent card padding */ | |
| .card { | |
| padding: var(--space-6); | |
| } | |
| .card-lg { | |
| padding: var(--space-8); | |
| } | |
| .card-sm { | |
| padding: var(--space-4); | |
| } | |
| /* Card header alignment */ | |
| .card h2, | |
| .card h3 { | |
| margin-bottom: var(--space-4); | |
| } | |
| .card h2:first-child, | |
| .card h3:first-child { | |
| margin-top: 0; | |
| } | |
| /* =========================================== | |
| FORM INPUT POLISH | |
| =========================================== */ | |
| /* Consistent input heights */ | |
| .form-input, | |
| .form-group input, | |
| .form-group select, | |
| .form-group textarea { | |
| min-height: 44px; | |
| display: flex; | |
| align-items: center; | |
| } | |
| .form-group textarea { | |
| min-height: 100px; | |
| resize: vertical; | |
| } | |
| /* Label text alignment */ | |
| .form-group label { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| } | |
| /* =========================================== | |
| DARK MODE FIXES | |
| =========================================== */ | |
| /* Fix washed-out text in dark mode */ | |
| [data-theme="dark"] .text-muted, | |
| [data-theme="dark"] .muted-text { | |
| color: var(--text-muted); | |
| opacity: 0.9; | |
| } | |
| /* Fix invisible borders */ | |
| [data-theme="dark"] .card, | |
| [data-theme="dark"] .stat-card, | |
| [data-theme="dark"] .action-card, | |
| [data-theme="dark"] .recent-item { | |
| border-color: var(--border-light); | |
| } | |
| /* Fix harsh contrast */ | |
| [data-theme="dark"] .dropdown-menu { | |
| background: var(--bg-card); | |
| border-color: var(--border-light); | |
| box-shadow: var(--shadow-xl); | |
| } | |
| /* Ensure proper hierarchy in dark mode */ | |
| [data-theme="dark"] .empty-state { | |
| border-color: var(--border-color); | |
| background: var(--bg-card); | |
| } | |
| [data-theme="dark"] .question-box { | |
| background: rgba(30, 41, 59, 0.5); | |
| border-color: var(--border-light); | |
| } | |
| /* =========================================== | |
| LIGHT MODE POLISH | |
| =========================================== */ | |
| [data-theme="light"] .card, | |
| [data-theme="light"] .stat-card, | |
| [data-theme="light"] .action-card { | |
| box-shadow: var(--shadow-card); | |
| } | |
| [data-theme="light"] .dropdown-menu { | |
| box-shadow: var(--shadow-xl); | |
| } | |
| /* =========================================== | |
| LIGHT MODE BUTTONS - Dark Charcoal Theme | |
| =========================================== */ | |
| /* Primary Button - Winter Chill Deep Teal */ | |
| :root:not([data-theme="dark"]) .btn-primary, | |
| [data-theme="light"] .btn-primary { | |
| background: linear-gradient(135deg, #191970 0%, #2b2b8a 50%, #d000d0 100%); | |
| color: #ffffff; | |
| border: 2px solid rgba(184, 227, 233, 0.2); | |
| box-shadow: | |
| 0 8px 25px rgba(11, 46, 51, 0.25), | |
| 0 4px 10px rgba(11, 46, 51, 0.15), | |
| inset 0 1px 0 rgba(255, 255, 255, 0.1); | |
| text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); | |
| } | |
| :root:not([data-theme="dark"]) .btn-primary:hover:not(:disabled), | |
| [data-theme="light"] .btn-primary:hover:not(:disabled) { | |
| background: linear-gradient(135deg, #072024 0%, #191970 50%, #3d6268 100%); | |
| box-shadow: | |
| 0 12px 35px rgba(11, 46, 51, 0.3), | |
| 0 6px 15px rgba(11, 46, 51, 0.2), | |
| inset 0 1px 0 rgba(255, 255, 255, 0.15); | |
| transform: translateY(-2px); | |
| } | |
| :root:not([data-theme="dark"]) .btn-primary:active:not(:disabled), | |
| [data-theme="light"] .btn-primary:active:not(:disabled) { | |
| transform: translateY(0); | |
| box-shadow: | |
| 0 4px 15px rgba(11, 46, 51, 0.2), | |
| inset 0 2px 4px rgba(0, 0, 0, 0.1); | |
| } | |
| /* Secondary Button - Teal Outline */ | |
| :root:not([data-theme="dark"]) .btn-secondary, | |
| [data-theme="light"] .btn-secondary { | |
| background: linear-gradient(135deg, #d000d0 0%, #7272a8 100%); | |
| color: #ffffff; | |
| border: 2px solid rgba(184, 227, 233, 0.25); | |
| box-shadow: | |
| 0 4px 15px rgba(79, 124, 130, 0.2), | |
| inset 0 1px 0 rgba(255, 255, 255, 0.1); | |
| } | |
| :root:not([data-theme="dark"]) .btn-secondary:hover:not(:disabled), | |
| [data-theme="light"] .btn-secondary:hover:not(:disabled) { | |
| background: linear-gradient(135deg, #3d6268 0%, #d000d0 100%); | |
| border-color: rgba(184, 227, 233, 0.35); | |
| box-shadow: | |
| 0 8px 25px rgba(79, 124, 130, 0.25), | |
| inset 0 1px 0 rgba(255, 255, 255, 0.15); | |
| } | |
| /* Ghost Button - Subtle Teal */ | |
| :root:not([data-theme="dark"]) .btn-ghost, | |
| [data-theme="light"] .btn-ghost { | |
| background: rgba(79, 124, 130, 0.08); | |
| color: #2b2b8a; | |
| border: 1px solid rgba(79, 124, 130, 0.2); | |
| } | |
| :root:not([data-theme="dark"]) .btn-ghost:hover:not(:disabled), | |
| [data-theme="light"] .btn-ghost:hover:not(:disabled) { | |
| background: rgba(79, 124, 130, 0.15); | |
| color: #191970; | |
| border-color: rgba(79, 124, 130, 0.3); | |
| } | |
| /* Light Mode Action Cards - Deep Teal Primary */ | |
| :root:not([data-theme="dark"]) .action-card.primary, | |
| [data-theme="light"] .action-card.primary { | |
| background: linear-gradient(135deg, #191970 0%, #2b2b8a 50%, #d000d0 100%); | |
| border: 2px solid rgba(184, 227, 233, 0.2); | |
| color: #ffffff; | |
| box-shadow: | |
| 0 10px 30px rgba(11, 46, 51, 0.2), | |
| inset 0 1px 0 rgba(255, 255, 255, 0.1); | |
| } | |
| :root:not([data-theme="dark"]) .action-card.primary:hover, | |
| [data-theme="light"] .action-card.primary:hover { | |
| background: linear-gradient(135deg, #072024 0%, #191970 50%, #3d6268 100%); | |
| box-shadow: | |
| 0 15px 40px rgba(11, 46, 51, 0.25), | |
| inset 0 1px 0 rgba(255, 255, 255, 0.15); | |
| } | |
| :root:not([data-theme="dark"]) .action-card.primary h3, | |
| [data-theme="light"] .action-card.primary h3, | |
| :root:not([data-theme="dark"]) .action-card.primary p, | |
| [data-theme="light"] .action-card.primary p { | |
| color: #ffffff; | |
| } | |
| /* Light Mode File/Resume Cards with buttons */ | |
| :root:not([data-theme="dark"]) .resume-actions .btn, | |
| [data-theme="light"] .resume-actions .btn, | |
| :root:not([data-theme="dark"]) .file-actions .btn, | |
| [data-theme="light"] .file-actions .btn { | |
| background: linear-gradient(135deg, #191970 0%, #d000d0 100%); | |
| color: #ffffff; | |
| border: 1px solid rgba(184, 227, 233, 0.2); | |
| } | |
| :root:not([data-theme="dark"]) .resume-actions .btn:hover, | |
| [data-theme="light"] .resume-actions .btn:hover, | |
| :root:not([data-theme="dark"]) .file-actions .btn:hover, | |
| [data-theme="light"] .file-actions .btn:hover { | |
| background: linear-gradient(135deg, #072024 0%, #3d6268 100%); | |
| } | |
| /* Light Mode Section Headers with buttons */ | |
| :root:not([data-theme="dark"]) .section-header-row .btn, | |
| [data-theme="light"] .section-header-row .btn { | |
| background: linear-gradient(135deg, #191970 0%, #d000d0 100%); | |
| color: #ffffff; | |
| border: 1px solid rgba(184, 227, 233, 0.2); | |
| } | |
| /* Light Mode Modal/Dialog buttons */ | |
| :root:not([data-theme="dark"]) .modal-actions .btn-primary, | |
| [data-theme="light"] .modal-actions .btn-primary, | |
| :root:not([data-theme="dark"]) .dialog-actions .btn-primary, | |
| [data-theme="light"] .dialog-actions .btn-primary { | |
| background: linear-gradient(135deg, #191970 0%, #2b2b8a 50%, #d000d0 100%); | |
| color: #ffffff; | |
| } | |
| /* Light Mode Upload/Action Buttons */ | |
| :root:not([data-theme="dark"]) .upload-btn, | |
| [data-theme="light"] .upload-btn, | |
| :root:not([data-theme="dark"]) .action-btn, | |
| [data-theme="light"] .action-btn { | |
| background: linear-gradient(135deg, #191970 0%, #d000d0 100%); | |
| color: #ffffff; | |
| border: 2px solid rgba(184, 227, 233, 0.2); | |
| box-shadow: 0 6px 20px rgba(11, 46, 51, 0.2); | |
| } | |
| :root:not([data-theme="dark"]) .upload-btn:hover, | |
| [data-theme="light"] .upload-btn:hover, | |
| :root:not([data-theme="dark"]) .action-btn:hover, | |
| [data-theme="light"] .action-btn:hover { | |
| background: linear-gradient(135deg, #072024 0%, #3d6268 100%); | |
| box-shadow: 0 10px 30px rgba(11, 46, 51, 0.25); | |
| } | |
| /* Light Mode Navigation/Tab Buttons */ | |
| :root:not([data-theme="dark"]) .nav-tab.active, | |
| [data-theme="light"] .nav-tab.active, | |
| :root:not([data-theme="dark"]) .tab-btn.active, | |
| [data-theme="light"] .tab-btn.active { | |
| background: linear-gradient(135deg, #191970 0%, #d000d0 100%); | |
| color: #ffffff; | |
| border-color: rgba(184, 227, 233, 0.2); | |
| } | |
| /* Light Mode Start/Submit Buttons (large CTA style) */ | |
| :root:not([data-theme="dark"]) .start-btn, | |
| [data-theme="light"] .start-btn, | |
| :root:not([data-theme="dark"]) .submit-btn, | |
| [data-theme="light"] .submit-btn, | |
| :root:not([data-theme="dark"]) .cta-btn, | |
| [data-theme="light"] .cta-btn { | |
| background: linear-gradient(135deg, #191970 0%, #2b2b8a 50%, #d000d0 100%); | |
| color: #ffffff; | |
| border: 2px solid rgba(184, 227, 233, 0.2); | |
| box-shadow: | |
| 0 10px 30px rgba(11, 46, 51, 0.25), | |
| inset 0 1px 0 rgba(255, 255, 255, 0.1); | |
| } | |
| :root:not([data-theme="dark"]) .start-btn:hover, | |
| [data-theme="light"] .start-btn:hover, | |
| :root:not([data-theme="dark"]) .submit-btn:hover, | |
| [data-theme="light"] .submit-btn:hover, | |
| :root:not([data-theme="dark"]) .cta-btn:hover, | |
| [data-theme="light"] .cta-btn:hover { | |
| background: linear-gradient(135deg, #072024 0%, #191970 50%, #3d6268 100%); | |
| box-shadow: | |
| 0 15px 40px rgba(11, 46, 51, 0.3), | |
| inset 0 1px 0 rgba(255, 255, 255, 0.15); | |
| } | |
| /* =========================================== | |
| HOVER STATE CONSISTENCY | |
| =========================================== */ | |
| /* Standardize hover transitions */ | |
| .card:hover, | |
| .stat-card:hover, | |
| .action-card:hover, | |
| .recent-item:hover, | |
| .btn:hover { | |
| transition: all var(--transition-base); | |
| } | |
| /* Consistent hover scale */ | |
| .action-card:hover, | |
| .stat-card:hover { | |
| transform: translateY(-4px); | |
| } | |
| /* =========================================== | |
| LOADING STATES POLISH | |
| =========================================== */ | |
| .loading-container { | |
| background: var(--bg-secondary); | |
| } | |
| [data-theme="dark"] .loading-container { | |
| background: linear-gradient(180deg, var(--bg-primary) 0%, var(--bg-secondary) 100%); | |
| } | |
| .loading-content { | |
| padding: var(--space-8); | |
| background: var(--bg-card); | |
| border-radius: var(--radius-2xl); | |
| box-shadow: var(--shadow-lg); | |
| } | |
| [data-theme="dark"] .loading-content { | |
| box-shadow: var(--shadow-lg), var(--shadow-glow); | |
| } | |
| /* =========================================== | |
| INTERVIEW UI POLISH | |
| =========================================== */ | |
| /* Chat message alignment */ | |
| .chat-message { | |
| display: flex; | |
| gap: var(--space-3); | |
| margin-bottom: var(--space-4); | |
| } | |
| .chat-message .message-avatar { | |
| flex-shrink: 0; | |
| width: 40px; | |
| height: 40px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| } | |
| .chat-message .message-content { | |
| flex: 1; | |
| min-width: 0; | |
| } | |
| .chat-message .message-bubble { | |
| padding: var(--space-4); | |
| border-radius: var(--radius-xl); | |
| line-height: var(--leading-relaxed); | |
| } | |
| /* Interviewer message styling */ | |
| .chat-message.interviewer .message-bubble { | |
| background: var(--bg-tertiary); | |
| border: 1px solid var(--border-color); | |
| } | |
| /* User message styling */ | |
| .chat-message.user .message-bubble { | |
| background: var(--primary-gradient); | |
| color: white; | |
| } | |
| /* =========================================== | |
| RESPONSIVE POLISH | |
| =========================================== */ | |
| @media (max-width: 640px) { | |
| /* Mobile padding consistency */ | |
| .dashboard-main, | |
| .resumes-main, | |
| .interview-main { | |
| padding: var(--space-4); | |
| } | |
| /* Mobile card padding */ | |
| .card, | |
| .stat-card, | |
| .action-card { | |
| padding: var(--space-4); | |
| } | |
| /* Mobile button full width */ | |
| .quick-actions .action-card { | |
| width: 100%; | |
| } | |
| /* Reduce mobile font sizes slightly */ | |
| .welcome-section h1 { | |
| font-size: var(--text-2xl); | |
| } | |
| } | |
| @media (max-width: 480px) { | |
| /* Extra small screens */ | |
| .error-boundary-content { | |
| padding: var(--space-6); | |
| margin: var(--space-4); | |
| } | |
| .error-boundary-title { | |
| font-size: var(--text-2xl); | |
| } | |
| .error-boundary-icon { | |
| font-size: 3rem; | |
| } | |
| } | |
| /* =========================================== | |
| ANIMATION POLISH | |
| =========================================== */ | |
| /* Smooth fade in for cards */ | |
| .card, | |
| .stat-card, | |
| .action-card { | |
| animation: fadeIn 0.3s ease-out; | |
| } | |
| @keyframes fadeIn { | |
| from { | |
| opacity: 0; | |
| transform: translateY(10px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| /* =========================================== | |
| ACCESSIBILITY IMPROVEMENTS | |
| =========================================== */ | |
| /* Focus visible states */ | |
| .btn:focus-visible, | |
| .nav-link:focus-visible, | |
| .form-input:focus-visible, | |
| .form-group input:focus-visible, | |
| .form-group select:focus-visible { | |
| outline: 2px solid var(--primary); | |
| outline-offset: 2px; | |
| } | |
| /* Skip to content link (if added later) */ | |
| .skip-link { | |
| position: absolute; | |
| left: -9999px; | |
| top: 0; | |
| padding: var(--space-2) var(--space-4); | |
| background: var(--primary); | |
| color: white; | |
| z-index: 1000; | |
| } | |
| .skip-link:focus { | |
| left: 0; | |
| } | |
| /* =========================================== | |
| USER PROFILE PAGE - PREMIUM COSMIC THEME | |
| =========================================== */ | |
| .profile-container { | |
| min-height: 100vh; | |
| background: linear-gradient(135deg, #f0eef8 0%, #e4e0f2 35%, #d6d0ea 65%, #f0eef8 100%); | |
| position: relative; | |
| } | |
| [data-theme="dark"] .profile-container { | |
| background: linear-gradient(180deg, #0a1628 0%, #0d1f3c 50%, #0a1628 100%); | |
| } | |
| .profile-container::before { | |
| content: ''; | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| bottom: 0; | |
| background: | |
| radial-gradient(ellipse 80% 50% at 20% 40%, rgba(79, 124, 130, 0.12) 0%, transparent 50%), | |
| radial-gradient(ellipse 60% 40% at 80% 20%, rgba(184, 227, 233, 0.2) 0%, transparent 50%), | |
| radial-gradient(ellipse 50% 30% at 70% 80%, rgba(147, 177, 181, 0.1) 0%, transparent 50%); | |
| pointer-events: none; | |
| z-index: 0; | |
| } | |
| [data-theme="dark"] .profile-container::before { | |
| background: | |
| radial-gradient(ellipse 80% 50% at 20% 40%, rgba(139, 92, 246, 0.15) 0%, transparent 50%), | |
| radial-gradient(ellipse 60% 40% at 80% 20%, rgba(59, 130, 246, 0.12) 0%, transparent 50%), | |
| radial-gradient(ellipse 50% 30% at 70% 80%, rgba(167, 139, 250, 0.1) 0%, transparent 50%); | |
| } | |
| .profile-main { | |
| display: flex; | |
| max-width: 1300px; | |
| margin: 0 auto; | |
| padding: 2rem 2rem 4rem; | |
| gap: 2rem; | |
| position: relative; | |
| z-index: 1; | |
| } | |
| /* Premium Profile Sidebar */ | |
| .profile-sidebar { | |
| width: 300px; | |
| flex-shrink: 0; | |
| background: rgba(255, 255, 255, 0.95); | |
| border: 1px solid rgba(147, 177, 181, 0.15); | |
| border-radius: 28px; | |
| padding: 2rem; | |
| height: fit-content; | |
| position: sticky; | |
| top: 100px; | |
| box-shadow: | |
| 0 8px 32px rgba(147, 177, 181, 0.08), | |
| 0 0 0 1px rgba(255, 255, 255, 0.5) inset; | |
| backdrop-filter: blur(20px); | |
| } | |
| [data-theme="dark"] .profile-sidebar { | |
| background: rgba(15, 25, 50, 0.85); | |
| border: 1px solid rgba(139, 92, 246, 0.3); | |
| box-shadow: | |
| 0 8px 32px rgba(0, 0, 0, 0.3), | |
| 0 0 50px rgba(139, 92, 246, 0.15), | |
| 0 0 0 1px rgba(139, 92, 246, 0.2) inset; | |
| } | |
| .sidebar-header { | |
| text-align: center; | |
| padding-bottom: 1.75rem; | |
| border-bottom: 1px solid rgba(147, 177, 181, 0.15); | |
| margin-bottom: 1.25rem; | |
| } | |
| [data-theme="dark"] .sidebar-header { | |
| border-bottom: 1px solid rgba(139, 92, 246, 0.25); | |
| } | |
| .user-avatar-large { | |
| width: 90px; | |
| height: 90px; | |
| background: linear-gradient(135deg, #d000d0 0%, #00cccc 50%, #b366ff 100%); | |
| border-radius: 50%; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| font-size: 2.25rem; | |
| font-weight: 800; | |
| color: white; | |
| margin: 0 auto 1rem; | |
| box-shadow: | |
| 0 8px 24px rgba(147, 177, 181, 0.3), | |
| 0 0 0 4px rgba(147, 177, 181, 0.1); | |
| } | |
| [data-theme="dark"] .user-avatar-large { | |
| box-shadow: | |
| 0 8px 32px rgba(139, 92, 246, 0.4), | |
| 0 0 40px rgba(139, 92, 246, 0.3), | |
| 0 0 0 4px rgba(139, 92, 246, 0.2); | |
| } | |
| .user-name { | |
| font-size: 1.25rem; | |
| font-weight: 700; | |
| color: #191970; | |
| margin-bottom: 0.25rem; | |
| } | |
| [data-theme="dark"] .user-name { | |
| color: #f1f5f9; | |
| } | |
| .user-email { | |
| font-size: 0.9rem; | |
| color: #7272a8; | |
| } | |
| [data-theme="dark"] .user-email { | |
| color: rgba(148, 163, 184, 0.8); | |
| } | |
| .profile-sidebar .sidebar-nav { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.5rem; | |
| } | |
| .profile-sidebar .nav-item { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.875rem; | |
| width: 100%; | |
| padding: 1rem 1.25rem; | |
| border-radius: 14px; | |
| font-size: 0.95rem; | |
| font-weight: 600; | |
| color: #2b2b8a; | |
| text-align: left; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| background: transparent; | |
| border: none; | |
| cursor: pointer; | |
| } | |
| [data-theme="dark"] .profile-sidebar .nav-item { | |
| color: rgba(199, 210, 254, 0.8); | |
| } | |
| .profile-sidebar .nav-item:hover { | |
| background: rgba(147, 177, 181, 0.1); | |
| color: #d000d0; | |
| transform: translateX(4px); | |
| } | |
| [data-theme="dark"] .profile-sidebar .nav-item:hover { | |
| background: rgba(139, 92, 246, 0.15); | |
| color: #a78bfa; | |
| } | |
| .profile-sidebar .nav-item.active { | |
| background: linear-gradient(135deg, rgba(79, 124, 130, 0.15) 0%, rgba(147, 177, 181, 0.2) 100%); | |
| color: #7c3aed; | |
| box-shadow: 0 0 0 1px rgba(147, 177, 181, 0.3); | |
| } | |
| [data-theme="dark"] .profile-sidebar .nav-item.active { | |
| background: linear-gradient(135deg, rgba(99, 102, 241, 0.2) 0%, rgba(139, 92, 246, 0.25) 100%); | |
| color: #a78bfa; | |
| box-shadow: 0 0 20px rgba(139, 92, 246, 0.2), 0 0 0 1px rgba(139, 92, 246, 0.4); | |
| } | |
| .profile-sidebar .nav-arrow { | |
| margin-left: auto; | |
| opacity: 0; | |
| transition: all 0.3s ease; | |
| } | |
| .profile-sidebar .nav-item:hover .nav-arrow, | |
| .profile-sidebar .nav-item.active .nav-arrow { | |
| opacity: 1; | |
| transform: translateX(4px); | |
| } | |
| .sidebar-footer { | |
| margin-top: 1.75rem; | |
| padding-top: 1.25rem; | |
| border-top: 1px solid rgba(147, 177, 181, 0.15); | |
| } | |
| [data-theme="dark"] .sidebar-footer { | |
| border-top: 1px solid rgba(139, 92, 246, 0.25); | |
| } | |
| .member-badge { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| font-size: 0.8rem; | |
| color: #7272a8; | |
| font-weight: 500; | |
| } | |
| [data-theme="dark"] .member-badge { | |
| color: rgba(148, 163, 184, 0.7); | |
| } | |
| .member-badge svg { | |
| color: #00cccc; | |
| } | |
| /* Premium Profile Content */ | |
| .profile-content { | |
| flex: 1; | |
| min-width: 0; | |
| } | |
| .profile-section { | |
| background: rgba(255, 255, 255, 0.95); | |
| border: 1px solid rgba(147, 177, 181, 0.15); | |
| border-radius: 24px; | |
| padding: 2.5rem; | |
| margin-bottom: 1.75rem; | |
| box-shadow: | |
| 0 8px 32px rgba(147, 177, 181, 0.08), | |
| 0 0 0 1px rgba(255, 255, 255, 0.5) inset; | |
| backdrop-filter: blur(20px); | |
| transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| [data-theme="dark"] .profile-section { | |
| background: rgba(15, 25, 50, 0.85); | |
| border: 1px solid rgba(139, 92, 246, 0.3); | |
| box-shadow: | |
| 0 8px 32px rgba(0, 0, 0, 0.3), | |
| 0 0 50px rgba(139, 92, 246, 0.15), | |
| 0 0 0 1px rgba(139, 92, 246, 0.2) inset; | |
| } | |
| .profile-section:hover { | |
| transform: translateY(-4px); | |
| box-shadow: | |
| 0 16px 48px rgba(147, 177, 181, 0.12), | |
| 0 0 0 1px rgba(147, 177, 181, 0.2); | |
| } | |
| [data-theme="dark"] .profile-section:hover { | |
| box-shadow: | |
| 0 16px 48px rgba(0, 0, 0, 0.4), | |
| 0 0 60px rgba(139, 92, 246, 0.2), | |
| 0 0 0 1px rgba(139, 92, 246, 0.4) inset; | |
| } | |
| .section-header-row { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| margin-bottom: 1.75rem; | |
| } | |
| .section-title { | |
| font-size: 1.5rem; | |
| font-weight: 800; | |
| background: linear-gradient(135deg, #191970 0%, #2b2b8a 50%, #d000d0 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| } | |
| [data-theme="dark"] .section-title { | |
| background: linear-gradient(135deg, #fff 0%, #e0e7ff 50%, #a78bfa 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| } | |
| .section-header-row .section-title { | |
| margin-bottom: 0; | |
| } | |
| /* Premium Overview Grid */ | |
| .overview-grid { | |
| display: grid; | |
| grid-template-columns: repeat(2, 1fr); | |
| gap: 1.5rem; | |
| } | |
| .info-card, | |
| .stats-card { | |
| background: rgba(147, 177, 181, 0.05); | |
| border: 1px solid rgba(147, 177, 181, 0.1); | |
| border-radius: 18px; | |
| padding: 1.5rem; | |
| } | |
| [data-theme="dark"] .info-card, | |
| [data-theme="dark"] .stats-card { | |
| background: rgba(139, 92, 246, 0.08); | |
| border: 1px solid rgba(139, 92, 246, 0.2); | |
| } | |
| .info-card h4, | |
| .stats-card h4 { | |
| font-size: 0.85rem; | |
| font-weight: 700; | |
| color: #d000d0; | |
| margin-bottom: 1.25rem; | |
| text-transform: uppercase; | |
| letter-spacing: 0.08em; | |
| } | |
| [data-theme="dark"] .info-card h4, | |
| [data-theme="dark"] .stats-card h4 { | |
| color: #a78bfa; | |
| } | |
| .info-row { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.875rem; | |
| padding: 0.875rem 0; | |
| border-bottom: 1px solid rgba(147, 177, 181, 0.1); | |
| } | |
| [data-theme="dark"] .info-row { | |
| border-bottom: 1px solid rgba(139, 92, 246, 0.15); | |
| } | |
| .info-row:last-child { | |
| border-bottom: none; | |
| } | |
| .info-row svg { | |
| color: #00cccc; | |
| } | |
| .info-label { | |
| font-size: 0.9rem; | |
| color: #7272a8; | |
| flex: 1; | |
| font-weight: 500; | |
| } | |
| [data-theme="dark"] .info-label { | |
| color: rgba(148, 163, 184, 0.8); | |
| } | |
| .info-value { | |
| font-weight: 600; | |
| color: #191970; | |
| } | |
| [data-theme="dark"] .info-value { | |
| color: #f1f5f9; | |
| } | |
| /* Premium Resume List in Profile */ | |
| .profile-section .resume-list { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 1rem; | |
| } | |
| .resume-card { | |
| display: flex; | |
| align-items: center; | |
| gap: 1.25rem; | |
| padding: 1.25rem 1.5rem; | |
| background: rgba(147, 177, 181, 0.05); | |
| border: 1px solid rgba(147, 177, 181, 0.1); | |
| border-radius: 16px; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| [data-theme="dark"] .resume-card { | |
| background: rgba(139, 92, 246, 0.08); | |
| border: 1px solid rgba(139, 92, 246, 0.2); | |
| } | |
| .resume-card:hover { | |
| background: rgba(147, 177, 181, 0.1); | |
| border-color: rgba(147, 177, 181, 0.3); | |
| transform: translateX(4px); | |
| } | |
| [data-theme="dark"] .resume-card:hover { | |
| background: rgba(139, 92, 246, 0.12); | |
| box-shadow: 0 4px 20px rgba(139, 92, 246, 0.15); | |
| } | |
| .resume-icon { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 52px; | |
| height: 52px; | |
| background: linear-gradient(135deg, rgba(79, 124, 130, 0.15) 0%, rgba(147, 177, 181, 0.2) 100%); | |
| border-radius: 14px; | |
| color: #00cccc; | |
| } | |
| [data-theme="dark"] .resume-icon { | |
| background: linear-gradient(135deg, rgba(99, 102, 241, 0.2) 0%, rgba(139, 92, 246, 0.25) 100%); | |
| color: #a78bfa; | |
| } | |
| .resume-info { | |
| flex: 1; | |
| min-width: 0; | |
| } | |
| .resume-name { | |
| font-weight: 700; | |
| color: #191970; | |
| white-space: nowrap; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| } | |
| [data-theme="dark"] .resume-name { | |
| color: #f1f5f9; | |
| } | |
| .resume-meta { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.875rem; | |
| margin-top: 0.375rem; | |
| } | |
| .meta-item { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.375rem; | |
| font-size: 0.8rem; | |
| color: #7272a8; | |
| font-weight: 500; | |
| } | |
| [data-theme="dark"] .meta-item { | |
| color: rgba(148, 163, 184, 0.7); | |
| } | |
| .resume-actions { | |
| display: flex; | |
| gap: 0.5rem; | |
| } | |
| /* Premium Interview List in Profile */ | |
| .interview-list { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 1rem; | |
| } | |
| .interview-card { | |
| padding: 1.5rem; | |
| background: rgba(147, 177, 181, 0.05); | |
| border: 1px solid rgba(147, 177, 181, 0.1); | |
| border-radius: 18px; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| [data-theme="dark"] .interview-card { | |
| background: rgba(139, 92, 246, 0.08); | |
| border: 1px solid rgba(139, 92, 246, 0.2); | |
| } | |
| .interview-card:hover { | |
| background: rgba(147, 177, 181, 0.1); | |
| border-color: rgba(147, 177, 181, 0.3); | |
| transform: translateY(-2px); | |
| } | |
| [data-theme="dark"] .interview-card:hover { | |
| background: rgba(139, 92, 246, 0.12); | |
| box-shadow: 0 8px 24px rgba(139, 92, 246, 0.15); | |
| } | |
| .interview-header { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: flex-start; | |
| margin-bottom: 0.875rem; | |
| } | |
| .interview-title h4 { | |
| font-weight: 700; | |
| color: #191970; | |
| } | |
| [data-theme="dark"] .interview-title h4 { | |
| color: #f1f5f9; | |
| } | |
| .interview-date { | |
| font-size: 0.8rem; | |
| color: #7272a8; | |
| font-weight: 500; | |
| } | |
| [data-theme="dark"] .interview-date { | |
| color: rgba(148, 163, 184, 0.7); | |
| } | |
| .interview-score { | |
| text-align: right; | |
| } | |
| .score-value { | |
| display: block; | |
| font-size: 1.75rem; | |
| font-weight: 800; | |
| } | |
| .score-label { | |
| display: block; | |
| font-size: 0.8rem; | |
| font-weight: 600; | |
| } | |
| .score-pending { | |
| font-size: 0.9rem; | |
| color: #7272a8; | |
| font-weight: 500; | |
| } | |
| [data-theme="dark"] .score-pending { | |
| color: rgba(148, 163, 184, 0.7); | |
| } | |
| .interview-details { | |
| margin-bottom: 0.875rem; | |
| } | |
| .detail-row { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 1rem; | |
| } | |
| .detail-item { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.375rem; | |
| font-size: 0.8rem; | |
| color: #7272a8; | |
| font-weight: 500; | |
| } | |
| [data-theme="dark"] .detail-item { | |
| color: rgba(148, 163, 184, 0.7); | |
| } | |
| .interview-summary { | |
| display: flex; | |
| gap: 2rem; | |
| padding: 1.25rem 0; | |
| border-top: 1px solid rgba(147, 177, 181, 0.1); | |
| border-bottom: 1px solid rgba(147, 177, 181, 0.1); | |
| margin-bottom: 1.25rem; | |
| } | |
| [data-theme="dark"] .interview-summary { | |
| border-color: rgba(139, 92, 246, 0.2); | |
| } | |
| .summary-section h5 { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.375rem; | |
| font-size: 0.75rem; | |
| font-weight: 700; | |
| color: #d000d0; | |
| margin-bottom: 0.625rem; | |
| text-transform: uppercase; | |
| letter-spacing: 0.05em; | |
| } | |
| [data-theme="dark"] .summary-section h5 { | |
| color: #a78bfa; | |
| } | |
| .tags { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 0.375rem; | |
| } | |
| .tag { | |
| padding: 2px 8px; | |
| font-size: var(--text-xs); | |
| border-radius: var(--radius-sm); | |
| } | |
| .tag.success { | |
| background: rgba(16, 185, 129, 0.15); | |
| color: #10b981; | |
| } | |
| .tag.warning { | |
| background: rgba(245, 158, 11, 0.15); | |
| color: #f59e0b; | |
| } | |
| .interview-actions { | |
| display: flex; | |
| gap: var(--space-2); | |
| } | |
| /* Analytics Section */ | |
| .analytics-overview { | |
| width: 100%; | |
| } | |
| .analytics-grid { | |
| display: grid; | |
| grid-template-columns: repeat(4, 1fr); | |
| gap: var(--space-4); | |
| margin-bottom: var(--space-6); | |
| } | |
| .analytics-card { | |
| background: var(--bg-secondary); | |
| border-radius: var(--radius-xl); | |
| padding: var(--space-5); | |
| text-align: center; | |
| } | |
| .analytics-card.highlight { | |
| background: var(--primary-glow); | |
| } | |
| .analytics-value { | |
| font-size: var(--text-2xl); | |
| font-weight: var(--font-bold); | |
| color: var(--text-primary); | |
| } | |
| .analytics-label { | |
| font-size: var(--text-sm); | |
| color: var(--text-muted); | |
| margin-top: var(--space-1); | |
| } | |
| .trend { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: var(--space-1); | |
| margin-top: var(--space-2); | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-medium); | |
| } | |
| .trend.improving { | |
| color: #10b981; | |
| } | |
| .trend.declining { | |
| color: #ef4444; | |
| } | |
| .skills-preview { | |
| background: var(--bg-secondary); | |
| border-radius: var(--radius-xl); | |
| padding: var(--space-5); | |
| } | |
| .skills-preview h4 { | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-secondary); | |
| margin-bottom: var(--space-4); | |
| } | |
| .skill-bars { | |
| display: flex; | |
| flex-direction: column; | |
| gap: var(--space-3); | |
| } | |
| .skill-bar-item { | |
| width: 100%; | |
| } | |
| .skill-header { | |
| display: flex; | |
| justify-content: space-between; | |
| font-size: var(--text-sm); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-1); | |
| } | |
| .skill-bar { | |
| height: 6px; | |
| background: var(--bg-tertiary); | |
| border-radius: var(--radius-full); | |
| overflow: hidden; | |
| } | |
| .skill-fill { | |
| height: 100%; | |
| border-radius: var(--radius-full); | |
| transition: width 0.5s ease; | |
| } | |
| /* Status Badges */ | |
| .status-badge { | |
| padding: 2px 8px; | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-medium); | |
| border-radius: var(--radius-full); | |
| } | |
| .status-badge.success { | |
| background: rgba(16, 185, 129, 0.15); | |
| color: #10b981; | |
| } | |
| .status-badge.pending { | |
| background: rgba(245, 158, 11, 0.15); | |
| color: #f59e0b; | |
| } | |
| .status-badge.info { | |
| background: rgba(79, 124, 130, 0.15); | |
| color: #d000d0; | |
| } | |
| /* Empty & Loading States in Profile */ | |
| .empty-state-card, | |
| .loading-state { | |
| text-align: center; | |
| padding: var(--space-12) var(--space-6); | |
| color: var(--text-muted); | |
| } | |
| .empty-state-card svg, | |
| .loading-state svg { | |
| margin-bottom: var(--space-4); | |
| opacity: 0.5; | |
| } | |
| .empty-state-card h3 { | |
| font-size: var(--text-lg); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-2); | |
| } | |
| .empty-state-card p { | |
| margin-bottom: var(--space-6); | |
| } | |
| /* Profile Responsive - Premium Cosmic */ | |
| @media (max-width: 1024px) { | |
| .profile-main { | |
| flex-direction: column; | |
| padding: 1.5rem; | |
| gap: 1.5rem; | |
| } | |
| .profile-sidebar { | |
| width: 100%; | |
| position: static; | |
| border-radius: 22px; | |
| } | |
| .profile-sidebar .sidebar-nav { | |
| flex-direction: row; | |
| overflow-x: auto; | |
| gap: 0.5rem; | |
| padding-bottom: 0.5rem; | |
| } | |
| .profile-sidebar .nav-item { | |
| flex-shrink: 0; | |
| padding: 0.875rem 1rem; | |
| font-size: 0.9rem; | |
| } | |
| .overview-grid { | |
| grid-template-columns: 1fr; | |
| gap: 1rem; | |
| } | |
| .analytics-grid { | |
| grid-template-columns: repeat(2, 1fr); | |
| gap: 1rem; | |
| } | |
| .profile-section { | |
| padding: 1.75rem; | |
| border-radius: 20px; | |
| } | |
| } | |
| @media (max-width: 600px) { | |
| .profile-main { | |
| padding: 1rem; | |
| gap: 1rem; | |
| } | |
| .profile-sidebar { | |
| padding: 1.25rem; | |
| border-radius: 18px; | |
| } | |
| .sidebar-header { | |
| padding-bottom: 1.25rem; | |
| } | |
| .user-avatar-large { | |
| width: 70px; | |
| height: 70px; | |
| font-size: 1.75rem; | |
| } | |
| .user-name { | |
| font-size: 1.1rem; | |
| } | |
| .profile-section { | |
| padding: 1.25rem; | |
| border-radius: 18px; | |
| } | |
| .section-title { | |
| font-size: 1.25rem; | |
| } | |
| .resume-card, | |
| .interview-card { | |
| flex-direction: column; | |
| align-items: flex-start; | |
| padding: 1rem; | |
| border-radius: 14px; | |
| } | |
| .resume-actions, | |
| .interview-actions { | |
| width: 100%; | |
| margin-top: 0.75rem; | |
| } | |
| .interview-summary { | |
| flex-direction: column; | |
| gap: 1rem; | |
| } | |
| .analytics-grid { | |
| grid-template-columns: 1fr; | |
| gap: 0.875rem; | |
| } | |
| .info-card, | |
| .stats-card { | |
| padding: 1.25rem; | |
| border-radius: 14px; | |
| } | |
| } | |
| /* =========================================== | |
| LIVE INTERVIEW PAGE STYLES | |
| Uses theme tokens for proper light/dark mode | |
| REDESIGNED: Full-screen immersive experience | |
| =========================================== */ | |
| .live-interview-container { | |
| height: 100vh; | |
| max-height: 100vh; | |
| min-height: 100vh; | |
| overflow: hidden; | |
| display: flex; | |
| flex-direction: column; | |
| box-sizing: border-box; | |
| position: relative; | |
| /* Premium gradient background */ | |
| background: linear-gradient(135deg, #f0f4f8 0%, #c4b8de 50%, #e4e0f2 100%); | |
| } | |
| [data-theme="dark"] .live-interview-container { | |
| background: linear-gradient(135deg, #0a0a1a 0%, #0f172a 50%, #0a0a1a 100%); | |
| } | |
| /* Animated background decorations */ | |
| .live-interview-container::before { | |
| content: ''; | |
| position: absolute; | |
| top: -50%; | |
| left: -50%; | |
| width: 200%; | |
| height: 200%; | |
| background: | |
| radial-gradient(circle at 20% 30%, rgba(255, 0, 255, 0.08) 0%, transparent 40%), | |
| radial-gradient(circle at 80% 70%, rgba(0, 255, 255, 0.06) 0%, transparent 40%), | |
| radial-gradient(circle at 50% 50%, rgba(255, 0, 255, 0.04) 0%, transparent 50%); | |
| animation: slow-drift 30s ease-in-out infinite; | |
| pointer-events: none; | |
| z-index: 0; | |
| } | |
| [data-theme="dark"] .live-interview-container::before { | |
| background: | |
| radial-gradient(circle at 20% 30%, rgba(99, 102, 241, 0.15) 0%, transparent 40%), | |
| radial-gradient(circle at 80% 70%, rgba(139, 92, 246, 0.12) 0%, transparent 40%), | |
| radial-gradient(circle at 50% 50%, rgba(59, 130, 246, 0.08) 0%, transparent 50%); | |
| } | |
| @keyframes slow-drift { | |
| 0%, | |
| 100% { | |
| transform: translate(0, 0) rotate(0deg); | |
| } | |
| 25% { | |
| transform: translate(2%, 1%) rotate(1deg); | |
| } | |
| 50% { | |
| transform: translate(0, 2%) rotate(0deg); | |
| } | |
| 75% { | |
| transform: translate(-2%, 1%) rotate(-1deg); | |
| } | |
| } | |
| /* Floating orbs decoration */ | |
| .live-interview-container::after { | |
| content: ''; | |
| position: absolute; | |
| top: 10%; | |
| right: 5%; | |
| width: 300px; | |
| height: 300px; | |
| background: radial-gradient(circle, rgba(0, 255, 255, 0.1) 0%, transparent 70%); | |
| border-radius: 50%; | |
| filter: blur(40px); | |
| animation: float-orb 20s ease-in-out infinite; | |
| pointer-events: none; | |
| z-index: 0; | |
| } | |
| [data-theme="dark"] .live-interview-container::after { | |
| background: radial-gradient(circle, rgba(139, 92, 246, 0.2) 0%, transparent 70%); | |
| } | |
| @keyframes float-orb { | |
| 0%, | |
| 100% { | |
| transform: translate(0, 0) scale(1); | |
| opacity: 0.5; | |
| } | |
| 50% { | |
| transform: translate(-30px, 20px) scale(1.1); | |
| opacity: 0.8; | |
| } | |
| } | |
| .interview-main { | |
| display: flex; | |
| flex-direction: column; | |
| flex: 1; | |
| width: 100%; | |
| height: 100%; | |
| min-height: 0; | |
| overflow: hidden; | |
| box-sizing: border-box; | |
| position: relative; | |
| z-index: 1; | |
| /* Proper padding for visual breathing room */ | |
| padding: 12px 16px; | |
| } | |
| [data-theme="dark"] .interview-main { | |
| background: transparent; | |
| } | |
| /* Interview Header */ | |
| .interview-header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| padding: 0.75rem 1.25rem; | |
| background: var(--bg-card); | |
| border-bottom: 1px solid var(--border-color); | |
| flex-shrink: 0; | |
| } | |
| .interview-header .header-left { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-3); | |
| } | |
| .interview-header .header-left h2 { | |
| font-size: var(--text-lg); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| margin: 0; | |
| } | |
| .interview-header .header-progress { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: flex-end; | |
| gap: 0.25rem; | |
| min-width: 180px; | |
| } | |
| .interview-header .progress-text { | |
| font-size: var(--text-sm); | |
| color: var(--text-secondary); | |
| } | |
| .interview-header .progress-separator { | |
| color: var(--text-muted); | |
| margin: 0 0.25rem; | |
| } | |
| .interview-header .progress-bar { | |
| width: 100%; | |
| height: 4px; | |
| background: var(--bg-tertiary); | |
| border-radius: var(--radius-full); | |
| overflow: hidden; | |
| } | |
| .interview-header .progress-fill { | |
| height: 100%; | |
| background: var(--primary-gradient); | |
| border-radius: var(--radius-full); | |
| transition: width 0.3s ease; | |
| } | |
| .interview-header .header-controls { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| } | |
| .interview-header .media-controls { | |
| display: flex; | |
| gap: var(--space-1); | |
| margin-right: var(--space-2); | |
| padding-right: var(--space-2); | |
| border-right: 1px solid var(--border-color); | |
| } | |
| .interview-header .btn-icon { | |
| width: 36px; | |
| height: 36px; | |
| padding: 0; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| background: var(--bg-tertiary); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-md); | |
| color: var(--text-secondary); | |
| cursor: pointer; | |
| transition: all var(--transition-fast); | |
| } | |
| .interview-header .btn-icon:hover { | |
| background: var(--bg-card-hover); | |
| color: var(--text-primary); | |
| border-color: var(--text-muted); | |
| } | |
| .interview-header .btn-icon.active { | |
| color: var(--primary); | |
| border-color: var(--primary); | |
| background: var(--primary-glow); | |
| } | |
| .interview-header .btn-icon.btn-danger:hover { | |
| background: var(--danger-bg); | |
| color: var(--danger); | |
| border-color: var(--danger); | |
| } | |
| /* Error Banner */ | |
| .error-banner { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-3); | |
| padding: 0.75rem 1.25rem; | |
| background: var(--danger-bg); | |
| color: var(--danger); | |
| border-bottom: 1px solid rgba(239, 68, 68, 0.2); | |
| } | |
| .error-banner svg { | |
| flex-shrink: 0; | |
| } | |
| .error-banner span { | |
| flex: 1; | |
| } | |
| .error-banner button { | |
| background: none; | |
| border: none; | |
| font-size: 1.25rem; | |
| color: var(--danger); | |
| cursor: pointer; | |
| line-height: 1; | |
| opacity: 0.7; | |
| } | |
| .error-banner button:hover { | |
| opacity: 1; | |
| } | |
| /* Paused Overlay */ | |
| .paused-overlay { | |
| position: fixed; | |
| inset: 0; | |
| background: rgba(0, 0, 0, 0.8); | |
| backdrop-filter: blur(8px); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| z-index: 100; | |
| } | |
| .paused-card { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| padding: var(--space-10); | |
| text-align: center; | |
| max-width: 400px; | |
| box-shadow: var(--shadow-xl); | |
| } | |
| .paused-card svg { | |
| color: var(--warning); | |
| margin-bottom: var(--space-4); | |
| } | |
| .paused-card h3 { | |
| font-size: var(--text-2xl); | |
| font-weight: var(--font-bold); | |
| color: var(--text-primary); | |
| margin: 0 0 var(--space-2) 0; | |
| } | |
| .paused-card p { | |
| color: var(--text-muted); | |
| margin: 0 0 var(--space-6) 0; | |
| } | |
| /* Completed Overlay */ | |
| .completed-overlay { | |
| position: fixed; | |
| inset: 0; | |
| background: rgba(0, 0, 0, 0.8); | |
| backdrop-filter: blur(8px); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| z-index: 100; | |
| } | |
| .completed-card { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| padding: var(--space-10); | |
| text-align: center; | |
| max-width: 480px; | |
| box-shadow: var(--shadow-xl); | |
| } | |
| .completed-card svg { | |
| color: var(--success); | |
| margin-bottom: var(--space-4); | |
| } | |
| .completed-card h3 { | |
| font-size: var(--text-2xl); | |
| font-weight: var(--font-bold); | |
| color: var(--text-primary); | |
| margin: 0 0 var(--space-2) 0; | |
| } | |
| .completed-card p { | |
| color: var(--text-muted); | |
| margin: 0 0 var(--space-6) 0; | |
| } | |
| /* Chat Message Styles */ | |
| .chat-message { | |
| display: flex; | |
| gap: var(--space-3); | |
| padding: var(--space-2) 0; | |
| } | |
| .chat-message.user { | |
| flex-direction: row-reverse; | |
| } | |
| .chat-message.system { | |
| justify-content: center; | |
| padding: var(--space-1) 0; | |
| } | |
| .message-avatar { | |
| flex-shrink: 0; | |
| } | |
| .avatar-icon { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 36px; | |
| height: 36px; | |
| border-radius: var(--radius-full); | |
| font-size: 1rem; | |
| background: var(--bg-tertiary); | |
| } | |
| .avatar-icon.interviewer { | |
| background: var(--primary-glow); | |
| } | |
| .avatar-icon.user { | |
| background: var(--success-bg); | |
| } | |
| .message-content { | |
| flex: 1; | |
| min-width: 0; | |
| max-width: 80%; | |
| } | |
| .chat-message.user .message-content { | |
| text-align: right; | |
| } | |
| .message-header { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| margin-bottom: 0.25rem; | |
| } | |
| .chat-message.user .message-header { | |
| flex-direction: row-reverse; | |
| } | |
| .sender-name { | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-medium); | |
| color: var(--text-muted); | |
| text-transform: uppercase; | |
| letter-spacing: 0.05em; | |
| } | |
| .question-badge { | |
| font-size: 0.65rem; | |
| font-weight: var(--font-bold); | |
| padding: 2px 6px; | |
| border-radius: var(--radius-sm); | |
| background: var(--primary-glow); | |
| color: var(--primary); | |
| } | |
| .message-bubble { | |
| display: inline-block; | |
| padding: var(--space-3) var(--space-4); | |
| border-radius: var(--radius-xl); | |
| font-size: var(--text-sm); | |
| line-height: 1.6; | |
| color: var(--text-primary); | |
| background: var(--bg-tertiary); | |
| text-align: left; | |
| } | |
| .chat-message.interviewer .message-bubble { | |
| background: var(--bg-tertiary); | |
| border-bottom-left-radius: var(--radius-sm); | |
| } | |
| .chat-message.user .message-bubble { | |
| background: var(--primary); | |
| color: white; | |
| border-bottom-right-radius: var(--radius-sm); | |
| } | |
| .system-badge { | |
| display: inline-block; | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| background: var(--bg-tertiary); | |
| padding: 0.25rem 0.75rem; | |
| border-radius: var(--radius-full); | |
| } | |
| /* Feedback Toast */ | |
| .feedback-toast { | |
| margin: var(--space-2) var(--space-4); | |
| padding: var(--space-3); | |
| border-radius: var(--radius-lg); | |
| background: var(--bg-tertiary); | |
| border: 1px solid var(--border-color); | |
| } | |
| .feedback-toast.good { | |
| background: var(--success-bg); | |
| border-color: var(--success); | |
| } | |
| .feedback-toast.ok { | |
| background: var(--warning-bg); | |
| border-color: var(--warning); | |
| } | |
| .feedback-toast.needs-work { | |
| background: var(--danger-bg); | |
| border-color: var(--danger); | |
| } | |
| .feedback-header { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| font-weight: var(--font-medium); | |
| } | |
| .feedback-header button { | |
| margin-left: auto; | |
| background: none; | |
| border: none; | |
| font-size: 1rem; | |
| cursor: pointer; | |
| opacity: 0.7; | |
| } | |
| .feedback-header button:hover { | |
| opacity: 1; | |
| } | |
| .feedback-toast p { | |
| margin: var(--space-2) 0 0 0; | |
| font-size: var(--text-sm); | |
| color: var(--text-secondary); | |
| } | |
| .feedback-score { | |
| margin-top: var(--space-2); | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| } | |
| /* Action Buttons in Input */ | |
| .action-buttons { | |
| display: flex; | |
| gap: var(--space-2); | |
| } | |
| /* Spin animation for loaders */ | |
| @keyframes spin { | |
| from { | |
| transform: rotate(0deg); | |
| } | |
| to { | |
| transform: rotate(360deg); | |
| } | |
| } | |
| .spin { | |
| animation: spin 1s linear infinite; | |
| } | |
| /* Interview responsive */ | |
| @media (max-width: 768px) { | |
| .interview-header { | |
| flex-wrap: wrap; | |
| gap: var(--space-2); | |
| padding: 0.5rem 0.75rem; | |
| } | |
| .interview-header .header-progress { | |
| order: 3; | |
| width: 100%; | |
| min-width: 0; | |
| } | |
| .interview-header .progress-bar { | |
| width: 100%; | |
| } | |
| } | |
| /* =========================================== | |
| DASHBOARD PAGE STYLES - PRODUCTION | |
| =========================================== */ | |
| .dashboard-container { | |
| min-height: 100vh; | |
| background: var(--bg-secondary); | |
| } | |
| .dashboard-main { | |
| max-width: 1200px; | |
| margin: 0 auto; | |
| padding: var(--space-8); | |
| } | |
| /* Welcome Section */ | |
| .welcome-section { | |
| margin-bottom: var(--space-8); | |
| } | |
| .welcome-section h1 { | |
| display: flex; | |
| align-items: center; | |
| font-size: var(--text-3xl); | |
| font-weight: var(--font-bold); | |
| color: var(--text-primary); | |
| margin: 0 0 var(--space-2) 0; | |
| } | |
| .welcome-section p { | |
| font-size: var(--text-lg); | |
| color: var(--text-muted); | |
| margin: 0; | |
| } | |
| /* Quick Actions - ALL BUTTONS BLUE PRIMARY */ | |
| .quick-actions { | |
| display: grid; | |
| grid-template-columns: repeat(3, 1fr); | |
| gap: var(--space-6); | |
| margin-bottom: var(--space-10); | |
| } | |
| .action-card { | |
| position: relative; | |
| display: flex; | |
| flex-direction: column; | |
| align-items: flex-start; | |
| padding: var(--space-6); | |
| background: var(--primary-gradient); | |
| border: none; | |
| border-radius: var(--radius-2xl); | |
| cursor: pointer; | |
| text-align: left; | |
| transition: all var(--transition-normal); | |
| box-shadow: var(--shadow-md); | |
| min-height: 160px; | |
| } | |
| .action-card:hover { | |
| transform: translateY(-4px); | |
| box-shadow: var(--shadow-xl), 0 0 30px var(--primary-glow); | |
| } | |
| .action-card .icon { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 56px; | |
| height: 56px; | |
| background: rgba(255, 255, 255, 0.2); | |
| border-radius: var(--radius-xl); | |
| color: white; | |
| margin-bottom: var(--space-4); | |
| } | |
| .action-card h3 { | |
| font-size: var(--text-lg); | |
| font-weight: var(--font-semibold); | |
| color: white; | |
| margin: 0 0 var(--space-2) 0; | |
| } | |
| .action-card p { | |
| font-size: var(--text-sm); | |
| color: rgba(255, 255, 255, 0.85); | |
| margin: 0; | |
| line-height: 1.5; | |
| } | |
| .action-card .action-arrow { | |
| position: absolute; | |
| right: var(--space-6); | |
| top: 50%; | |
| transform: translateY(-50%); | |
| color: rgba(255, 255, 255, 0.6); | |
| transition: all var(--transition-fast); | |
| } | |
| .action-card:hover .action-arrow { | |
| color: white; | |
| transform: translateY(-50%) translateX(4px); | |
| } | |
| /* Stats Section */ | |
| .stats-section { | |
| margin-bottom: var(--space-10); | |
| } | |
| .stats-section h2 { | |
| font-size: var(--text-xl); | |
| font-weight: var(--font-bold); | |
| color: var(--text-primary); | |
| margin: 0 0 var(--space-4) 0; | |
| } | |
| .stats-grid { | |
| display: grid; | |
| grid-template-columns: repeat(4, 1fr); | |
| gap: var(--space-4); | |
| } | |
| .stat-card { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| padding: var(--space-5); | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-xl); | |
| text-align: center; | |
| } | |
| .stat-value { | |
| font-size: var(--text-2xl); | |
| font-weight: var(--font-bold); | |
| color: var(--text-primary); | |
| } | |
| .stat-label { | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| text-transform: uppercase; | |
| letter-spacing: 0.05em; | |
| margin-top: var(--space-1); | |
| } | |
| /* Recent Section */ | |
| .recent-section h2 { | |
| font-size: var(--text-xl); | |
| font-weight: var(--font-bold); | |
| color: var(--text-primary); | |
| margin: 0 0 var(--space-4) 0; | |
| } | |
| .recent-list { | |
| display: flex; | |
| flex-direction: column; | |
| gap: var(--space-3); | |
| } | |
| .recent-item { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| padding: var(--space-4); | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-lg); | |
| cursor: pointer; | |
| transition: all var(--transition-fast); | |
| } | |
| .recent-item:hover { | |
| background: var(--bg-card-hover); | |
| border-color: var(--primary); | |
| } | |
| .recent-info strong { | |
| display: block; | |
| color: var(--text-primary); | |
| font-weight: var(--font-semibold); | |
| margin-bottom: var(--space-1); | |
| } | |
| .recent-score { | |
| display: flex; | |
| align-items: center; | |
| font-weight: var(--font-semibold); | |
| color: var(--primary); | |
| } | |
| .empty-state { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| padding: var(--space-10); | |
| background: var(--bg-card); | |
| border: 1px dashed var(--border-color); | |
| border-radius: var(--radius-xl); | |
| text-align: center; | |
| } | |
| .empty-icon { | |
| font-size: 3rem; | |
| margin-bottom: var(--space-4); | |
| } | |
| .empty-state p { | |
| color: var(--text-muted); | |
| margin: 0 0 var(--space-4) 0; | |
| } | |
| .muted-text { | |
| display: flex; | |
| align-items: center; | |
| font-size: var(--text-sm); | |
| color: var(--text-muted); | |
| } | |
| /* Dashboard Responsive */ | |
| @media (max-width: 1024px) { | |
| .quick-actions { | |
| grid-template-columns: 1fr; | |
| } | |
| .stats-grid { | |
| grid-template-columns: repeat(2, 1fr); | |
| } | |
| } | |
| @media (max-width: 640px) { | |
| .dashboard-main { | |
| padding: var(--space-4); | |
| } | |
| .stats-grid { | |
| grid-template-columns: 1fr 1fr; | |
| } | |
| } | |
| /* =========================================== | |
| INTERVIEW READINESS PAGE - TWO CARD LAYOUT | |
| =========================================== */ | |
| .readiness-container { | |
| min-height: 100vh; | |
| background: var(--bg-secondary); | |
| overflow-x: hidden; | |
| } | |
| .readiness-main { | |
| max-width: 1200px; | |
| margin: 0 auto; | |
| padding: var(--space-6); | |
| padding-bottom: var(--space-10); | |
| } | |
| /* Page Header Premium */ | |
| .page-header-premium { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-4); | |
| margin-bottom: var(--space-6); | |
| } | |
| .page-header-premium .header-icon { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 64px; | |
| height: 64px; | |
| background: var(--primary-gradient); | |
| border-radius: var(--radius-xl); | |
| color: white; | |
| } | |
| .page-header-premium h1 { | |
| font-size: var(--text-2xl); | |
| font-weight: var(--font-bold); | |
| color: var(--text-primary); | |
| margin: 0; | |
| } | |
| .page-header-premium p { | |
| color: var(--text-muted); | |
| margin: 0; | |
| } | |
| /* Step Indicator - Use consolidated styles from line ~4059 */ | |
| /* Two Card Grid Layout */ | |
| .readiness-grid { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| gap: var(--space-6); | |
| align-items: stretch; | |
| } | |
| /* Config Panel - LEFT CARD */ | |
| .config-panel.card { | |
| display: flex; | |
| flex-direction: column; | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| padding: var(--space-6); | |
| height: 100%; | |
| min-height: 600px; | |
| } | |
| .panel-header { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-3); | |
| margin-bottom: var(--space-6); | |
| padding-bottom: var(--space-4); | |
| border-bottom: 1px solid var(--border-color); | |
| } | |
| .panel-header h2 { | |
| font-size: var(--text-lg); | |
| font-weight: var(--font-bold); | |
| color: var(--text-primary); | |
| margin: 0; | |
| } | |
| .panel-header svg { | |
| color: var(--primary); | |
| } | |
| /* Config Sections */ | |
| .config-section { | |
| margin-bottom: var(--space-5); | |
| } | |
| .section-header { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| margin-bottom: var(--space-3); | |
| } | |
| .section-header h3 { | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| margin: 0; | |
| } | |
| .section-header svg { | |
| color: var(--text-muted); | |
| } | |
| /* Config Row (two fields side by side) */ | |
| .config-row { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| gap: var(--space-4); | |
| margin-bottom: var(--space-5); | |
| } | |
| .config-field label { | |
| display: block; | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-medium); | |
| color: var(--text-muted); | |
| text-transform: uppercase; | |
| letter-spacing: 0.05em; | |
| margin-bottom: var(--space-2); | |
| } | |
| /* Form Elements */ | |
| .form-select, | |
| .form-input { | |
| width: 100%; | |
| padding: var(--space-3); | |
| background: var(--bg-tertiary); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-lg); | |
| color: var(--text-primary); | |
| font-size: var(--text-sm); | |
| transition: all var(--transition-fast); | |
| } | |
| .form-select:focus, | |
| .form-input:focus { | |
| outline: none; | |
| border-color: var(--primary); | |
| box-shadow: 0 0 0 3px var(--primary-glow); | |
| } | |
| /* Role Chips */ | |
| .role-chips { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: var(--space-2); | |
| margin-top: var(--space-2); | |
| } | |
| .chip { | |
| padding: var(--space-1) var(--space-3); | |
| font-size: var(--text-xs); | |
| background: var(--bg-tertiary); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-full); | |
| color: var(--text-secondary); | |
| cursor: pointer; | |
| transition: all var(--transition-fast); | |
| } | |
| .chip:hover, | |
| .chip.active { | |
| background: var(--primary-glow); | |
| border-color: var(--primary); | |
| color: var(--primary); | |
| } | |
| /* Slider */ | |
| .slider-header { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| margin-bottom: var(--space-2); | |
| } | |
| .slider-header label { | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-medium); | |
| color: var(--text-muted); | |
| text-transform: uppercase; | |
| letter-spacing: 0.05em; | |
| } | |
| .slider-value { | |
| font-size: var(--text-lg); | |
| font-weight: var(--font-bold); | |
| color: var(--primary); | |
| } | |
| .range-slider { | |
| width: 100%; | |
| height: 6px; | |
| appearance: none; | |
| background: var(--bg-tertiary); | |
| border-radius: var(--radius-full); | |
| outline: none; | |
| } | |
| .range-slider::-webkit-slider-thumb { | |
| appearance: none; | |
| width: 20px; | |
| height: 20px; | |
| background: var(--primary); | |
| border-radius: var(--radius-full); | |
| cursor: pointer; | |
| box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2); | |
| } | |
| .slider-labels { | |
| display: flex; | |
| justify-content: space-between; | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| margin-top: var(--space-1); | |
| } | |
| /* Generate/Regenerate Plan Button - Premium Violet Gradient */ | |
| .generate-btn { | |
| width: 100%; | |
| margin-top: auto; | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 0.6rem; | |
| padding: 1rem 1.5rem; | |
| font-size: var(--text-base); | |
| font-weight: var(--font-semibold); | |
| color: #ffffff; | |
| background: linear-gradient(135deg, #00cccc 0%, #7c3aed 50%, #6d28d9 100%); | |
| border: none; | |
| border-radius: var(--radius-lg); | |
| cursor: pointer; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| box-shadow: | |
| 0 4px 14px rgba(147, 177, 181, 0.35), | |
| 0 2px 6px rgba(0, 0, 0, 0.1); | |
| min-height: 52px; | |
| } | |
| .generate-btn:hover:not(:disabled) { | |
| background: linear-gradient(135deg, #7c3aed 0%, #6d28d9 50%, #5b21b6 100%); | |
| transform: translateY(-2px); | |
| box-shadow: | |
| 0 8px 24px rgba(147, 177, 181, 0.45), | |
| 0 4px 12px rgba(0, 0, 0, 0.15); | |
| } | |
| .generate-btn:active:not(:disabled) { | |
| transform: translateY(0); | |
| } | |
| .generate-btn:disabled { | |
| background: linear-gradient(135deg, #9ca3af 0%, #6b7280 100%); | |
| cursor: not-allowed; | |
| box-shadow: none; | |
| transform: none; | |
| opacity: 0.7; | |
| } | |
| .generate-btn svg { | |
| flex-shrink: 0; | |
| } | |
| .generate-btn .spin { | |
| animation: spin 1s linear infinite; | |
| } | |
| /* No Resumes Card */ | |
| .no-resumes-card { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| padding: var(--space-6); | |
| background: var(--bg-tertiary); | |
| border: 1px dashed var(--border-color); | |
| border-radius: var(--radius-lg); | |
| text-align: center; | |
| } | |
| .no-resumes-card svg { | |
| color: var(--text-muted); | |
| margin-bottom: var(--space-3); | |
| } | |
| .no-resumes-card p { | |
| color: var(--text-muted); | |
| margin: 0 0 var(--space-3) 0; | |
| } | |
| /* Preview Panel - RIGHT CARD */ | |
| .preview-panel { | |
| display: flex; | |
| flex-direction: column; | |
| height: 100%; | |
| min-height: 600px; | |
| } | |
| .preview-panel .card, | |
| .preview-panel .plan-preview, | |
| .preview-panel .generating-state, | |
| .preview-panel .no-plan { | |
| flex: 1; | |
| display: flex; | |
| flex-direction: column; | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| padding: var(--space-6); | |
| overflow: visible; | |
| height: 100%; | |
| } | |
| /* No Plan State */ | |
| .no-plan { | |
| align-items: center; | |
| justify-content: center; | |
| text-align: center; | |
| } | |
| .no-plan-icon { | |
| color: var(--text-muted); | |
| margin-bottom: var(--space-4); | |
| opacity: 0.5; | |
| } | |
| .no-plan h3 { | |
| font-size: var(--text-lg); | |
| font-weight: var(--font-bold); | |
| color: var(--text-primary); | |
| margin: 0 0 var(--space-2) 0; | |
| } | |
| .no-plan p { | |
| color: var(--text-muted); | |
| margin: 0 0 var(--space-4) 0; | |
| max-width: 300px; | |
| } | |
| .feature-list { | |
| list-style: none; | |
| padding: 0; | |
| margin: 0; | |
| text-align: left; | |
| } | |
| .feature-list li { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| padding: var(--space-2) 0; | |
| font-size: var(--text-sm); | |
| color: var(--text-secondary); | |
| } | |
| .feature-list svg { | |
| color: var(--success); | |
| } | |
| /* Generating State */ | |
| .generating-state { | |
| align-items: center; | |
| justify-content: center; | |
| text-align: center; | |
| } | |
| .generating-animation { | |
| margin-bottom: var(--space-4); | |
| } | |
| .sparkle-icon { | |
| color: var(--primary); | |
| animation: sparkle-pulse 1.5s ease-in-out infinite; | |
| } | |
| @keyframes sparkle-pulse { | |
| 0%, | |
| 100% { | |
| opacity: 1; | |
| transform: scale(1); | |
| } | |
| 50% { | |
| opacity: 0.7; | |
| transform: scale(1.1); | |
| } | |
| } | |
| /* Plan Preview Styles */ | |
| .plan-preview { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| padding: var(--space-6); | |
| overflow: hidden; | |
| height: auto; | |
| max-width: 100%; | |
| box-sizing: border-box; | |
| } | |
| .plan-header { | |
| margin-bottom: var(--space-4); | |
| padding-bottom: var(--space-4); | |
| border-bottom: 1px solid var(--border-color); | |
| } | |
| .plan-title { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-3); | |
| margin-bottom: var(--space-2); | |
| } | |
| .plan-title h3 { | |
| font-size: var(--text-lg); | |
| font-weight: var(--font-bold); | |
| color: var(--text-primary); | |
| margin: 0; | |
| } | |
| .difficulty-badge { | |
| padding: var(--space-1) var(--space-2); | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-semibold); | |
| text-transform: uppercase; | |
| border-radius: var(--radius-sm); | |
| } | |
| .difficulty-easy { | |
| background: var(--success-bg); | |
| color: var(--success); | |
| } | |
| .difficulty-medium { | |
| background: var(--warning-bg); | |
| color: var(--warning); | |
| } | |
| .difficulty-hard { | |
| background: var(--danger-bg); | |
| color: var(--danger); | |
| } | |
| .difficulty-expert { | |
| background: rgba(147, 177, 181, 0.15); | |
| color: var(--accent); | |
| } | |
| .plan-role { | |
| font-size: var(--text-sm); | |
| color: var(--text-muted); | |
| margin: 0; | |
| } | |
| .mock-badge { | |
| display: inline-block; | |
| padding: var(--space-1) var(--space-2); | |
| font-size: var(--text-xs); | |
| background: var(--info-bg); | |
| color: var(--info); | |
| border-radius: var(--radius-sm); | |
| margin-top: var(--space-2); | |
| } | |
| /* Plan Stats */ | |
| .plan-stats { | |
| display: grid; | |
| grid-template-columns: repeat(3, 1fr); | |
| gap: var(--space-4); | |
| margin-bottom: var(--space-5); | |
| } | |
| .stat-item { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| padding: var(--space-3); | |
| background: var(--bg-tertiary); | |
| border-radius: var(--radius-lg); | |
| text-align: center; | |
| } | |
| .stat-icon { | |
| font-size: 1.25rem; | |
| margin-bottom: var(--space-1); | |
| } | |
| .stat-item .stat-value { | |
| font-size: var(--text-lg); | |
| font-weight: var(--font-bold); | |
| color: var(--text-primary); | |
| } | |
| .stat-item .stat-label { | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| } | |
| /* Plan Sections */ | |
| .plan-section { | |
| margin-bottom: var(--space-5); | |
| } | |
| .plan-section h4 { | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| margin: 0 0 var(--space-3) 0; | |
| } | |
| .breakdown-grid { | |
| display: grid; | |
| grid-template-columns: repeat(2, 1fr); | |
| gap: var(--space-3); | |
| max-width: 100%; | |
| } | |
| .breakdown-item { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| padding: var(--space-2); | |
| background: var(--bg-tertiary); | |
| border-radius: var(--radius-md); | |
| overflow: hidden; | |
| } | |
| .category-icon { | |
| font-size: 1.25rem; | |
| } | |
| .category-info { | |
| display: flex; | |
| flex-direction: column; | |
| min-width: 0; | |
| overflow: hidden; | |
| } | |
| .category-name { | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-medium); | |
| color: var(--text-primary); | |
| white-space: nowrap; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| } | |
| .category-count { | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| } | |
| /* Focus Areas */ | |
| .focus-areas { | |
| display: flex; | |
| flex-direction: column; | |
| gap: var(--space-2); | |
| } | |
| .focus-item { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| padding: var(--space-2) var(--space-3); | |
| border-radius: var(--radius-md); | |
| font-size: var(--text-sm); | |
| } | |
| .focus-item.strength { | |
| background: var(--success-bg); | |
| color: var(--success); | |
| } | |
| .focus-item.weakness { | |
| background: var(--warning-bg); | |
| color: var(--warning); | |
| } | |
| /* Skills List */ | |
| .skills-list { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: var(--space-2); | |
| max-width: 100%; | |
| overflow: hidden; | |
| } | |
| .skill-tag { | |
| padding: var(--space-1) var(--space-3); | |
| font-size: var(--text-xs); | |
| background: var(--bg-tertiary); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-full); | |
| color: var(--text-secondary); | |
| white-space: nowrap; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| max-width: 150px; | |
| } | |
| .skill-tag.more { | |
| background: var(--primary-glow); | |
| border-color: var(--primary); | |
| color: var(--primary); | |
| } | |
| /* Plan Summary */ | |
| .plan-summary { | |
| padding: var(--space-3); | |
| background: var(--bg-tertiary); | |
| border-radius: var(--radius-lg); | |
| margin-bottom: var(--space-5); | |
| } | |
| .plan-summary p { | |
| font-size: var(--text-sm); | |
| color: var(--text-secondary); | |
| margin: 0; | |
| line-height: 1.6; | |
| } | |
| /* Plan Actions - Premium Button Container */ | |
| .plan-actions { | |
| display: flex; | |
| gap: var(--space-3); | |
| margin-top: auto; | |
| padding-top: var(--space-4); | |
| border-top: 1px solid var(--border-color); | |
| } | |
| /* Start Interview Button - Premium Green Gradient */ | |
| .plan-actions .start-button, | |
| .plan-actions .btn-primary { | |
| flex: 1; | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 0.5rem; | |
| padding: 1rem 1.5rem; | |
| font-size: var(--text-base); | |
| font-weight: var(--font-semibold); | |
| color: #ffffff; | |
| background: linear-gradient(135deg, #10b981 0%, #059669 50%, #047857 100%); | |
| border: none; | |
| border-radius: var(--radius-lg); | |
| cursor: pointer; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| box-shadow: | |
| 0 4px 14px rgba(16, 185, 129, 0.35), | |
| 0 2px 6px rgba(0, 0, 0, 0.1); | |
| text-decoration: none; | |
| min-height: 52px; | |
| } | |
| .plan-actions .start-button:hover, | |
| .plan-actions .btn-primary:hover { | |
| background: linear-gradient(135deg, #059669 0%, #047857 50%, #065f46 100%); | |
| transform: translateY(-2px); | |
| box-shadow: | |
| 0 8px 24px rgba(16, 185, 129, 0.45), | |
| 0 4px 12px rgba(0, 0, 0, 0.15); | |
| } | |
| .plan-actions .start-button:active, | |
| .plan-actions .btn-primary:active { | |
| transform: translateY(0); | |
| } | |
| .plan-actions .start-button:disabled { | |
| background: linear-gradient(135deg, #9ca3af 0%, #6b7280 100%); | |
| cursor: not-allowed; | |
| box-shadow: none; | |
| transform: none; | |
| } | |
| /* Generate New Plan Button - Outline Violet Style */ | |
| .plan-actions .btn-secondary { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 0.5rem; | |
| padding: 1rem 1.5rem; | |
| font-size: var(--text-base); | |
| font-weight: var(--font-semibold); | |
| color: var(--primary); | |
| background: transparent; | |
| border: 2px solid var(--primary); | |
| border-radius: var(--radius-lg); | |
| cursor: pointer; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| min-height: 52px; | |
| white-space: nowrap; | |
| } | |
| .plan-actions .btn-secondary:hover { | |
| background: rgba(147, 177, 181, 0.1); | |
| border-color: var(--primary); | |
| transform: translateY(-2px); | |
| box-shadow: 0 4px 12px rgba(147, 177, 181, 0.25); | |
| } | |
| .plan-actions .btn-secondary:active { | |
| transform: translateY(0); | |
| } | |
| /* Dark mode adjustments */ | |
| [data-theme="dark"] .plan-actions .btn-secondary { | |
| color: #a78bfa; | |
| border-color: #a78bfa; | |
| } | |
| [data-theme="dark"] .plan-actions .btn-secondary:hover { | |
| background: rgba(167, 139, 250, 0.15); | |
| } | |
| .plan-used-notice { | |
| margin-top: var(--space-3); | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| text-align: center; | |
| } | |
| /* Interview Readiness Responsive */ | |
| @media (max-width: 1024px) { | |
| .readiness-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .config-panel.card { | |
| order: 1; | |
| } | |
| .preview-panel { | |
| order: 2; | |
| } | |
| } | |
| /* =========================================== | |
| PERSONALITY SELECTOR STYLES - CLEAN UI | |
| =========================================== */ | |
| .personality-selector { | |
| margin-bottom: var(--space-4); | |
| } | |
| .personality-title { | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| margin: 0 0 var(--space-1) 0; | |
| } | |
| .personality-subtitle { | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| margin: 0 0 var(--space-3) 0; | |
| } | |
| .personality-options { | |
| display: grid; | |
| grid-template-columns: repeat(2, 1fr); | |
| gap: var(--space-3); | |
| } | |
| .personality-option { | |
| display: flex; | |
| align-items: flex-start; | |
| gap: var(--space-3); | |
| padding: var(--space-3); | |
| background: var(--bg-tertiary); | |
| border: 2px solid var(--border-color); | |
| border-radius: var(--radius-lg); | |
| cursor: pointer; | |
| transition: all var(--transition-fast); | |
| } | |
| .personality-option:hover:not(.disabled) { | |
| border-color: var(--text-muted); | |
| } | |
| .personality-option.selected { | |
| border-color: var(--primary); | |
| background: var(--primary-glow); | |
| } | |
| .personality-option.disabled { | |
| opacity: 0.6; | |
| cursor: not-allowed; | |
| } | |
| .personality-icon { | |
| font-size: 1.5rem; | |
| flex-shrink: 0; | |
| } | |
| .personality-info { | |
| flex: 1; | |
| min-width: 0; | |
| } | |
| .personality-name { | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| margin: 0 0 var(--space-1) 0; | |
| } | |
| .personality-desc { | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| margin: 0 0 var(--space-2) 0; | |
| line-height: 1.4; | |
| } | |
| .personality-tags { | |
| display: flex; | |
| gap: var(--space-2); | |
| flex-wrap: wrap; | |
| } | |
| .intensity-tag, | |
| .pressure-tag { | |
| padding: 2px 6px; | |
| font-size: 0.65rem; | |
| text-transform: uppercase; | |
| border-radius: var(--radius-sm); | |
| background: var(--bg-card); | |
| color: var(--text-muted); | |
| } | |
| .selected-check { | |
| color: var(--primary); | |
| font-weight: var(--font-bold); | |
| font-size: var(--text-lg); | |
| } | |
| /* Company Mode Selector */ | |
| .company-mode-selector { | |
| display: grid; | |
| grid-template-columns: repeat(2, 1fr); | |
| gap: var(--space-3); | |
| } | |
| .company-mode-option { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-3); | |
| padding: var(--space-3); | |
| background: var(--bg-tertiary); | |
| border: 2px solid var(--border-color); | |
| border-radius: var(--radius-lg); | |
| cursor: pointer; | |
| transition: all var(--transition-fast); | |
| } | |
| .company-mode-option:hover:not(.disabled) { | |
| border-color: var(--text-muted); | |
| } | |
| .company-mode-option.selected { | |
| border-color: var(--primary); | |
| background: var(--primary-glow); | |
| } | |
| /* Loading States */ | |
| .loading-inline { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| padding: var(--space-4); | |
| color: var(--text-muted); | |
| } | |
| .spinner-small { | |
| width: 16px; | |
| height: 16px; | |
| border: 2px solid var(--border-color); | |
| border-top-color: var(--primary); | |
| border-radius: 50%; | |
| animation: spin 0.8s linear infinite; | |
| } | |
| /* =========================================== | |
| PREMIUM RESUME UPLOAD COMPONENT | |
| =========================================== */ | |
| .resume-upload-premium { | |
| display: flex; | |
| flex-direction: column; | |
| gap: var(--space-4); | |
| } | |
| .upload-dropzone-premium { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| min-height: 180px; | |
| padding: var(--space-8); | |
| background: var(--bg-tertiary); | |
| border: 2px dashed var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| cursor: pointer; | |
| transition: all var(--transition-base); | |
| } | |
| .upload-dropzone-premium:hover:not(.disabled):not(.uploading) { | |
| border-color: var(--primary); | |
| background: var(--primary-glow); | |
| } | |
| .upload-dropzone-premium.dragging { | |
| border-color: var(--primary); | |
| background: var(--primary-glow); | |
| border-style: solid; | |
| transform: scale(1.02); | |
| box-shadow: 0 0 30px var(--primary-glow); | |
| } | |
| .upload-dropzone-premium.has-file { | |
| cursor: default; | |
| border-style: solid; | |
| border-color: var(--success); | |
| background: var(--success-bg); | |
| } | |
| .upload-dropzone-premium.disabled { | |
| opacity: 0.5; | |
| cursor: not-allowed; | |
| } | |
| .upload-dropzone-premium.uploading { | |
| opacity: 0.8; | |
| cursor: wait; | |
| } | |
| .dropzone-content { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| text-align: center; | |
| gap: var(--space-3); | |
| } | |
| .upload-icon-wrapper { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 64px; | |
| height: 64px; | |
| background: var(--primary-gradient); | |
| border-radius: var(--radius-xl); | |
| color: white; | |
| box-shadow: 0 4px 15px var(--primary-glow); | |
| transition: transform var(--transition-base); | |
| } | |
| .upload-dropzone-premium:hover:not(.disabled) .upload-icon-wrapper { | |
| transform: scale(1.1); | |
| } | |
| .upload-title { | |
| font-size: var(--text-base); | |
| color: var(--text-primary); | |
| margin: 0; | |
| } | |
| .upload-title strong { | |
| color: var(--primary); | |
| } | |
| .upload-subtitle { | |
| font-size: var(--text-sm); | |
| color: var(--text-muted); | |
| margin: 0; | |
| } | |
| .selected-file-premium { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-4); | |
| width: 100%; | |
| padding: var(--space-2); | |
| } | |
| .file-icon-wrapper { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 48px; | |
| height: 48px; | |
| background: var(--success); | |
| border-radius: var(--radius-lg); | |
| color: white; | |
| flex-shrink: 0; | |
| } | |
| .file-details { | |
| flex: 1; | |
| min-width: 0; | |
| text-align: left; | |
| } | |
| .file-details .file-name { | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| margin: 0 0 var(--space-1) 0; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| white-space: nowrap; | |
| } | |
| .file-details .file-size { | |
| font-size: var(--text-sm); | |
| color: var(--text-muted); | |
| margin: 0; | |
| } | |
| .remove-file-btn { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 36px; | |
| height: 36px; | |
| background: var(--danger-bg); | |
| border-radius: var(--radius-lg); | |
| color: var(--danger); | |
| flex-shrink: 0; | |
| transition: all var(--transition-fast); | |
| } | |
| .remove-file-btn:hover:not(:disabled) { | |
| background: var(--danger); | |
| color: white; | |
| } | |
| .upload-message { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| padding: var(--space-3) var(--space-4); | |
| border-radius: var(--radius-lg); | |
| font-size: var(--text-sm); | |
| } | |
| .upload-message.error { | |
| background: var(--danger-bg); | |
| color: var(--danger); | |
| } | |
| .upload-message.success { | |
| background: var(--success-bg); | |
| color: var(--success); | |
| } | |
| .upload-btn-premium { | |
| width: 100%; | |
| } | |
| .upload-btn-premium .spin { | |
| animation: spin 1s linear infinite; | |
| } | |
| /* =========================================== | |
| MOBILE RESPONSIVE FIXES | |
| =========================================== */ | |
| /* Global Mobile Container Fix */ | |
| @media (max-width: 768px) { | |
| body { | |
| overflow-x: hidden; | |
| } | |
| .dashboard-main, | |
| .resumes-main, | |
| .analytics-main, | |
| .profile-main, | |
| .interview-prep-main, | |
| .report-main { | |
| padding: var(--space-4); | |
| padding-top: var(--space-6); | |
| } | |
| /* Navbar Mobile */ | |
| .navbar { | |
| padding: var(--space-3) var(--space-4); | |
| } | |
| .navbar-menu { | |
| gap: var(--space-1); | |
| } | |
| .nav-link { | |
| padding: var(--space-2); | |
| font-size: var(--text-xs); | |
| } | |
| .user-name { | |
| display: none; | |
| } | |
| .navbar-brand .brand-text { | |
| font-size: var(--text-sm); | |
| } | |
| /* Page Headers */ | |
| .page-header { | |
| flex-direction: column; | |
| align-items: flex-start; | |
| gap: var(--space-4); | |
| } | |
| .page-header h1 { | |
| font-size: var(--text-2xl); | |
| } | |
| .page-header button { | |
| width: 100%; | |
| } | |
| /* Welcome Section */ | |
| .welcome-section h1 { | |
| font-size: var(--text-2xl); | |
| } | |
| .welcome-section p { | |
| font-size: var(--text-sm); | |
| } | |
| /* Quick Actions */ | |
| .quick-actions { | |
| grid-template-columns: 1fr; | |
| } | |
| .action-card { | |
| padding: var(--space-4); | |
| } | |
| /* Stats Grid */ | |
| .stats-section .stats-grid, | |
| .stats-grid { | |
| grid-template-columns: repeat(2, 1fr); | |
| gap: var(--space-3); | |
| } | |
| .stat-card { | |
| padding: var(--space-3); | |
| } | |
| .stat-value { | |
| font-size: var(--text-xl); | |
| } | |
| /* Resume Grid */ | |
| .resumes-grid { | |
| grid-template-columns: 1fr; | |
| gap: var(--space-4); | |
| } | |
| /* Analytics Cards */ | |
| .analytics-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .analytics-card, | |
| .chart-card { | |
| padding: var(--space-4); | |
| } | |
| /* Tab Navigation */ | |
| .tab-navigation { | |
| flex-wrap: wrap; | |
| } | |
| .tab-button { | |
| flex: 1 1 45%; | |
| font-size: var(--text-xs); | |
| padding: var(--space-2) var(--space-3); | |
| } | |
| /* Interview Config Cards */ | |
| .readiness-grid, | |
| .config-layout { | |
| grid-template-columns: 1fr; | |
| } | |
| .config-card, | |
| .plan-card { | |
| padding: var(--space-4); | |
| } | |
| /* Form Elements */ | |
| .form-group { | |
| margin-bottom: var(--space-4); | |
| } | |
| .form-group select, | |
| .form-group input, | |
| .form-group textarea { | |
| font-size: 16px; | |
| /* Prevents zoom on iOS */ | |
| } | |
| /* Buttons Full Width */ | |
| .btn-lg { | |
| width: 100%; | |
| } | |
| /* Profile Page */ | |
| .profile-header { | |
| flex-direction: column; | |
| text-align: center; | |
| } | |
| .profile-tabs { | |
| overflow-x: auto; | |
| -webkit-overflow-scrolling: touch; | |
| } | |
| .profile-tabs::-webkit-scrollbar { | |
| display: none; | |
| } | |
| /* Report Page */ | |
| .report-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .report-card { | |
| padding: var(--space-4); | |
| } | |
| /* Recent List */ | |
| .recent-item { | |
| flex-direction: column; | |
| align-items: flex-start; | |
| gap: var(--space-2); | |
| } | |
| .recent-score { | |
| align-self: flex-end; | |
| } | |
| /* Modals */ | |
| .modal-content, | |
| .permission-modal-content { | |
| width: 95%; | |
| max-height: 90vh; | |
| margin: var(--space-4); | |
| } | |
| /* Interview Live Screen */ | |
| .interview-live-container { | |
| padding: var(--space-4); | |
| } | |
| .interview-main-content { | |
| flex-direction: column; | |
| } | |
| .avatar-section { | |
| height: 200px; | |
| } | |
| .question-section { | |
| padding: var(--space-4); | |
| } | |
| /* ATS Analyzer */ | |
| .ats-form { | |
| padding: var(--space-4); | |
| } | |
| .role-suggestions { | |
| flex-wrap: wrap; | |
| } | |
| .suggestion-chip { | |
| font-size: var(--text-xs); | |
| padding: var(--space-2) var(--space-3); | |
| } | |
| /* Upload Dropzone */ | |
| .upload-dropzone-premium { | |
| min-height: 150px; | |
| padding: var(--space-6); | |
| } | |
| .upload-icon-wrapper { | |
| width: 48px; | |
| height: 48px; | |
| } | |
| /* Plan Stats */ | |
| .plan-stats { | |
| grid-template-columns: repeat(2, 1fr); | |
| } | |
| /* Help Section */ | |
| .help-section ul { | |
| padding-left: var(--space-4); | |
| } | |
| .help-section li { | |
| font-size: var(--text-sm); | |
| margin-bottom: var(--space-2); | |
| } | |
| } | |
| /* Extra Small Devices */ | |
| @media (max-width: 480px) { | |
| .stats-section .stats-grid, | |
| .stats-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .plan-stats { | |
| grid-template-columns: 1fr; | |
| } | |
| .personality-selector { | |
| grid-template-columns: 1fr; | |
| } | |
| .login-card { | |
| padding: var(--space-6); | |
| } | |
| .login-header h1 { | |
| font-size: var(--text-2xl); | |
| } | |
| .company-mode-selector { | |
| grid-template-columns: 1fr; | |
| } | |
| } | |
| /* ATS Empty State */ | |
| .ats-empty-state { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| padding: var(--space-10); | |
| background: var(--bg-tertiary); | |
| border: 2px dashed var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| text-align: center; | |
| margin-top: var(--space-6); | |
| } | |
| .ats-empty-state .empty-icon { | |
| font-size: 3rem; | |
| margin-bottom: var(--space-4); | |
| opacity: 0.5; | |
| } | |
| .ats-empty-state p { | |
| font-size: var(--text-lg); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| margin: 0 0 var(--space-2) 0; | |
| } | |
| .ats-empty-state .muted-text { | |
| font-size: var(--text-sm); | |
| color: var(--text-muted); | |
| } | |
| /* =========================================== | |
| ROUND TRANSITION ANIMATION | |
| Big Company Interview Style - Premium Popup | |
| Works for ALL rounds (Interview Start + Round Changes) | |
| FINAL BOSS LEVEL ANIMATIONS 🎯 | |
| Full-Page Popup Style with Premium Effects | |
| =========================================== */ | |
| .round-transition-overlay { | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| bottom: 0; | |
| background: linear-gradient(135deg, rgba(0, 0, 0, 0.98) 0%, rgba(10, 10, 30, 0.99) 100%); | |
| backdrop-filter: blur(40px); | |
| z-index: 999999 ; /* Must be higher than live-interview-container (99999) */ | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| animation: roundOverlayEntrance 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards; | |
| overflow: hidden; | |
| } | |
| /* Animated particle stars background */ | |
| .round-transition-overlay::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| bottom: 0; | |
| background-image: | |
| radial-gradient(2px 2px at 20px 30px, rgba(255, 255, 255, 0.3), transparent), | |
| radial-gradient(2px 2px at 40px 70px, rgba(255, 0, 255, 0.4), transparent), | |
| radial-gradient(2px 2px at 50px 160px, rgba(255, 255, 255, 0.2), transparent), | |
| radial-gradient(2px 2px at 90px 40px, rgba(0, 255, 255, 0.4), transparent), | |
| radial-gradient(2px 2px at 130px 80px, rgba(255, 255, 255, 0.3), transparent), | |
| radial-gradient(3px 3px at 160px 120px, rgba(255, 0, 255, 0.5), transparent), | |
| radial-gradient(2px 2px at 200px 50px, rgba(255, 255, 255, 0.2), transparent), | |
| radial-gradient(2px 2px at 250px 90px, rgba(0, 255, 255, 0.3), transparent), | |
| radial-gradient(2px 2px at 300px 130px, rgba(255, 255, 255, 0.4), transparent); | |
| background-size: 350px 200px; | |
| animation: starsTwinkle 4s ease-in-out infinite; | |
| pointer-events: none; | |
| opacity: 0.8; | |
| } | |
| /* Large animated glow orb */ | |
| .round-transition-overlay::after { | |
| content: ''; | |
| position: absolute; | |
| top: 50%; | |
| left: 50%; | |
| width: 800px; | |
| height: 800px; | |
| background: radial-gradient(circle, rgba(255, 0, 255, 0.2) 0%, rgba(0, 255, 255, 0.1) 30%, transparent 70%); | |
| transform: translate(-50%, -50%); | |
| animation: glowPulse 2.5s ease-in-out infinite; | |
| pointer-events: none; | |
| } | |
| @keyframes starsTwinkle { | |
| 0%, 100% { | |
| opacity: 0.6; | |
| transform: translateY(0); | |
| } | |
| 50% { | |
| opacity: 1; | |
| transform: translateY(-10px); | |
| } | |
| } | |
| @keyframes roundOverlayEntrance { | |
| 0% { | |
| opacity: 0; | |
| transform: scale(1.1); | |
| } | |
| 100% { | |
| opacity: 1; | |
| transform: scale(1); | |
| } | |
| } | |
| @keyframes glowPulse { | |
| 0%, 100% { | |
| transform: translate(-50%, -50%) scale(1); | |
| opacity: 0.5; | |
| } | |
| 50% { | |
| transform: translate(-50%, -50%) scale(1.2); | |
| opacity: 0.8; | |
| } | |
| } | |
| .round-transition-content { | |
| text-align: center; | |
| color: white; | |
| padding: var(--space-12) var(--space-10); | |
| max-width: 560px; | |
| min-width: 400px; | |
| animation: popupCardEntrance 0.7s cubic-bezier(0.16, 1, 0.3, 1) forwards; | |
| position: relative; | |
| z-index: 1; | |
| /* Glassmorphism popup card */ | |
| background: linear-gradient( | |
| 145deg, | |
| rgba(30, 30, 60, 0.9) 0%, | |
| rgba(20, 20, 45, 0.95) 100% | |
| ); | |
| border-radius: 32px; | |
| border: 1px solid rgba(255, 255, 255, 0.1); | |
| box-shadow: | |
| 0 0 0 1px rgba(255, 0, 255, 0.2), | |
| 0 25px 80px -20px rgba(0, 0, 0, 0.8), | |
| 0 10px 40px -10px rgba(255, 0, 255, 0.3), | |
| inset 0 1px 0 rgba(255, 255, 255, 0.1); | |
| backdrop-filter: blur(20px); | |
| } | |
| /* Shimmer effect on popup card */ | |
| .round-transition-content::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: -100%; | |
| width: 100%; | |
| height: 100%; | |
| background: linear-gradient( | |
| 90deg, | |
| transparent 0%, | |
| rgba(255, 255, 255, 0.05) 50%, | |
| transparent 100% | |
| ); | |
| border-radius: 32px; | |
| animation: shimmerSweep 2s ease-in-out 0.5s infinite; | |
| pointer-events: none; | |
| } | |
| @keyframes shimmerSweep { | |
| 0% { | |
| left: -100%; | |
| } | |
| 100% { | |
| left: 100%; | |
| } | |
| } | |
| /* Dramatic popup entrance animation */ | |
| @keyframes popupCardEntrance { | |
| 0% { | |
| opacity: 0; | |
| transform: scale(0.7) translateY(60px); | |
| filter: blur(10px); | |
| } | |
| 50% { | |
| opacity: 1; | |
| filter: blur(0px); | |
| } | |
| 100% { | |
| opacity: 1; | |
| transform: scale(1) translateY(0); | |
| filter: blur(0px); | |
| } | |
| } | |
| /* Dedicated keyframes for round transition to avoid conflicts */ | |
| @keyframes roundTransitionFadeIn { | |
| 0% { | |
| opacity: 0; | |
| } | |
| 100% { | |
| opacity: 1; | |
| } | |
| } | |
| @keyframes roundTransitionScaleIn { | |
| 0% { | |
| opacity: 0; | |
| transform: scale(0.8); | |
| } | |
| 100% { | |
| opacity: 1; | |
| transform: scale(1); | |
| } | |
| } | |
| /* Interview Start Variant - Green accent with glow */ | |
| .round-transition-content.interview-start { | |
| border-color: rgba(16, 185, 129, 0.3); | |
| box-shadow: | |
| 0 0 0 1px rgba(16, 185, 129, 0.3), | |
| 0 25px 80px -20px rgba(0, 0, 0, 0.8), | |
| 0 10px 40px -10px rgba(16, 185, 129, 0.4), | |
| inset 0 1px 0 rgba(255, 255, 255, 0.1); | |
| } | |
| /* Interview Start Variant - Green accent */ | |
| .round-transition-content.interview-start .round-transition-to { | |
| background: linear-gradient(90deg, #10b981 0%, #34d399 50%, #a7f3d0 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| } | |
| /* Round Change Variant - Purple/Indigo glow */ | |
| .round-transition-content.round-change { | |
| border-color: rgba(79, 124, 130, 0.3); | |
| box-shadow: | |
| 0 0 0 1px rgba(79, 124, 130, 0.3), | |
| 0 25px 80px -20px rgba(0, 0, 0, 0.8), | |
| 0 10px 40px -10px rgba(79, 124, 130, 0.4), | |
| 0 0 100px -20px rgba(147, 177, 181, 0.3), | |
| inset 0 1px 0 rgba(255, 255, 255, 0.1); | |
| animation: popupCardEntrance 0.7s cubic-bezier(0.16, 1, 0.3, 1) forwards, | |
| popupPulse 2s ease-in-out 0.8s infinite; | |
| } | |
| @keyframes popupPulse { | |
| 0%, 100% { | |
| box-shadow: | |
| 0 0 0 1px rgba(79, 124, 130, 0.3), | |
| 0 25px 80px -20px rgba(0, 0, 0, 0.8), | |
| 0 10px 40px -10px rgba(79, 124, 130, 0.4), | |
| 0 0 100px -20px rgba(147, 177, 181, 0.3), | |
| inset 0 1px 0 rgba(255, 255, 255, 0.1); | |
| } | |
| 50% { | |
| box-shadow: | |
| 0 0 0 2px rgba(79, 124, 130, 0.5), | |
| 0 25px 80px -20px rgba(0, 0, 0, 0.8), | |
| 0 10px 60px -10px rgba(79, 124, 130, 0.6), | |
| 0 0 120px -10px rgba(147, 177, 181, 0.5), | |
| inset 0 1px 0 rgba(255, 255, 255, 0.15); | |
| } | |
| } | |
| /* Round Change Variant - Dynamic accent */ | |
| .round-transition-content.round-change .round-transition-to { | |
| background: linear-gradient(90deg, #d000d0 0%, #7272a8 50%, #b366ff 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| } | |
| .round-transition-icon { | |
| width: 130px; | |
| height: 130px; | |
| margin: 0 auto var(--space-8); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| font-size: 4.5rem; | |
| border-radius: 50%; | |
| border: 3px solid currentColor; | |
| background: rgba(255, 255, 255, 0.05); | |
| animation: roundIconEntrance 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards, | |
| iconPulse 2s ease-in-out 0.8s infinite; | |
| box-shadow: | |
| 0 0 60px rgba(79, 124, 130, 0.3), | |
| inset 0 0 30px rgba(79, 124, 130, 0.1); | |
| opacity: 0; | |
| transform: scale(0.5) rotate(-10deg); | |
| } | |
| @keyframes roundIconEntrance { | |
| 0% { | |
| opacity: 0; | |
| transform: scale(0.5) rotate(-10deg); | |
| } | |
| 100% { | |
| opacity: 1; | |
| transform: scale(1) rotate(0deg); | |
| } | |
| } | |
| @keyframes iconPulse { | |
| 0%, | |
| 100% { | |
| transform: scale(1); | |
| box-shadow: 0 0 40px rgba(79, 124, 130, 0.3); | |
| } | |
| 50% { | |
| transform: scale(1.05); | |
| box-shadow: 0 0 80px rgba(79, 124, 130, 0.5); | |
| } | |
| } | |
| .round-transition-to { | |
| font-size: var(--text-3xl); | |
| font-weight: var(--font-bold); | |
| font-family: var(--font-display); | |
| margin-bottom: var(--space-3); | |
| text-transform: uppercase; | |
| letter-spacing: 0.1em; | |
| animation: roundTextSlideUp 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) 0.2s both; | |
| } | |
| /* Round Name - Large display for round changes */ | |
| .round-transition-name { | |
| font-size: var(--text-5xl); | |
| font-weight: var(--font-extrabold); | |
| font-family: var(--font-display); | |
| margin-bottom: var(--space-4); | |
| animation: roundTextSlideUp 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) 0.35s both; | |
| text-shadow: 0 4px 30px currentColor; | |
| } | |
| @keyframes roundTextSlideUp { | |
| 0% { | |
| opacity: 0; | |
| transform: translateY(30px) scale(0.9); | |
| } | |
| 100% { | |
| opacity: 1; | |
| transform: translateY(0) scale(1); | |
| } | |
| } | |
| .round-transition-description { | |
| font-size: var(--text-lg); | |
| color: rgba(255, 255, 255, 0.7); | |
| margin-bottom: var(--space-6); | |
| animation: roundTextSlideUp 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) 0.5s both; | |
| } | |
| /* Previous Round Completed Badge */ | |
| .round-transition-from { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: var(--space-3); | |
| padding: var(--space-3) var(--space-5); | |
| background: rgba(16, 185, 129, 0.15); | |
| border: 1px solid rgba(16, 185, 129, 0.3); | |
| border-radius: var(--radius-full); | |
| margin-bottom: var(--space-6); | |
| animation: roundBadgeSlideIn 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) 0.6s both; | |
| } | |
| @keyframes roundBadgeSlideIn { | |
| 0% { | |
| opacity: 0; | |
| transform: translateY(-20px) scale(0.8); | |
| } | |
| 100% { | |
| opacity: 1; | |
| transform: translateY(0) scale(1); | |
| } | |
| } | |
| .round-transition-from .from-icon { | |
| font-size: 1.25rem; | |
| } | |
| .round-transition-from .from-text { | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-semibold); | |
| color: #34d399; | |
| } | |
| /* Round Progress Dots - Enhanced with icons */ | |
| .round-transition-progress { | |
| display: flex; | |
| justify-content: center; | |
| gap: var(--space-4); | |
| margin-top: var(--space-8); | |
| padding-top: var(--space-6); | |
| border-top: 1px solid rgba(255, 255, 255, 0.1); | |
| animation: roundProgressFadeIn 0.6s ease-out 0.7s both; | |
| } | |
| @keyframes roundProgressFadeIn { | |
| 0% { | |
| opacity: 0; | |
| transform: translateY(20px); | |
| } | |
| 100% { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| .round-dot { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| gap: var(--space-2); | |
| padding: var(--space-2); | |
| border-radius: var(--radius-lg); | |
| background: rgba(255, 255, 255, 0.05); | |
| border: 2px solid rgba(255, 255, 255, 0.1); | |
| transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); | |
| min-width: 60px; | |
| } | |
| .round-dot .dot-icon { | |
| font-size: 1.5rem; | |
| opacity: 0.5; | |
| transition: all 0.3s ease; | |
| } | |
| .round-dot .dot-label { | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-semibold); | |
| color: rgba(255, 255, 255, 0.5); | |
| text-transform: uppercase; | |
| letter-spacing: 0.05em; | |
| transition: all 0.3s ease; | |
| } | |
| .round-dot.completed { | |
| background: rgba(16, 185, 129, 0.15); | |
| border-color: #10b981; | |
| } | |
| .round-dot.completed .dot-icon { | |
| opacity: 1; | |
| } | |
| .round-dot.completed .dot-label { | |
| color: #34d399; | |
| } | |
| .round-dot.current { | |
| background: rgba(99, 102, 241, 0.25); | |
| border-width: 2px; | |
| border-style: solid; | |
| transform: scale(1.2); | |
| box-shadow: 0 0 30px rgba(99, 102, 241, 0.5), 0 0 60px rgba(99, 102, 241, 0.2); | |
| animation: currentDotPulse 1.5s ease-in-out infinite; | |
| position: relative; | |
| } | |
| .round-dot.current::after { | |
| content: '→'; | |
| position: absolute; | |
| top: -18px; | |
| left: 50%; | |
| transform: translateX(-50%); | |
| font-size: 0.85rem; | |
| color: #a5b4fc; | |
| animation: bounce 1s ease-in-out infinite; | |
| } | |
| .round-dot.current .dot-icon { | |
| opacity: 1; | |
| font-size: 1.8rem; | |
| animation: bounce 1s ease-in-out infinite; | |
| } | |
| .round-dot.current .dot-label { | |
| color: #ffffff; | |
| font-weight: var(--font-bold); | |
| text-shadow: 0 0 10px rgba(99, 102, 241, 0.6); | |
| } | |
| @keyframes currentDotPulse { | |
| 0%, | |
| 100% { | |
| box-shadow: 0 0 20px rgba(79, 124, 130, 0.3); | |
| } | |
| 50% { | |
| box-shadow: 0 0 40px rgba(79, 124, 130, 0.6); | |
| } | |
| } | |
| @keyframes scaleIn { | |
| from { | |
| opacity: 0; | |
| transform: scale(0.8); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: scale(1); | |
| } | |
| } | |
| @keyframes bounce { | |
| 0%, | |
| 100% { | |
| transform: translateY(0); | |
| } | |
| 50% { | |
| transform: translateY(-5px); | |
| } | |
| } | |
| /* Mobile Responsive */ | |
| @media (max-width: 600px) { | |
| .round-transition-content { | |
| padding: var(--space-8) var(--space-6); | |
| min-width: auto; | |
| max-width: calc(100vw - 40px); | |
| margin: 0 20px; | |
| border-radius: 24px; | |
| } | |
| .round-transition-icon { | |
| width: 100px; | |
| height: 100px; | |
| font-size: 3.5rem; | |
| margin-bottom: var(--space-6); | |
| } | |
| .round-transition-to { | |
| font-size: var(--text-xl); | |
| } | |
| .round-transition-name { | |
| font-size: var(--text-3xl); | |
| } | |
| .round-transition-progress { | |
| flex-wrap: wrap; | |
| gap: var(--space-2); | |
| } | |
| .round-dot { | |
| min-width: 50px; | |
| padding: var(--space-1); | |
| } | |
| .round-dot .dot-icon { | |
| font-size: 1.2rem; | |
| } | |
| .round-dot .dot-label { | |
| font-size: 0.65rem; | |
| } | |
| /* Reduce particle animation on mobile for performance */ | |
| .round-transition-overlay::before { | |
| animation: none; | |
| opacity: 0.4; | |
| } | |
| } | |
| /* Round Indicator Badge (in chat header) */ | |
| .round-indicator { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| padding: var(--space-2) var(--space-4); | |
| background: var(--bg-tertiary); | |
| border-radius: var(--radius-full); | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-medium); | |
| color: var(--text-primary); | |
| border: 1px solid var(--border-color); | |
| } | |
| .round-indicator-icon { | |
| font-size: 1.1rem; | |
| } | |
| .round-indicator-name { | |
| color: var(--primary); | |
| font-weight: var(--font-semibold); | |
| } | |
| /* Interview Starting Animation - Premium Popup Style */ | |
| .interview-starting-overlay { | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| bottom: 0; | |
| background: linear-gradient(135deg, rgba(0, 0, 0, 0.98) 0%, rgba(10, 10, 30, 0.99) 100%); | |
| z-index: 999999 ; /* Must be higher than live-interview-container (99999) */ | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| animation: roundOverlayEntrance 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards; | |
| backdrop-filter: blur(40px); | |
| } | |
| /* Particle background for interview starting */ | |
| .interview-starting-overlay::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| bottom: 0; | |
| background-image: | |
| radial-gradient(2px 2px at 20px 30px, rgba(255, 255, 255, 0.3), transparent), | |
| radial-gradient(2px 2px at 40px 70px, rgba(16, 185, 129, 0.4), transparent), | |
| radial-gradient(2px 2px at 50px 160px, rgba(255, 255, 255, 0.2), transparent), | |
| radial-gradient(2px 2px at 90px 40px, rgba(52, 211, 153, 0.4), transparent), | |
| radial-gradient(2px 2px at 130px 80px, rgba(255, 255, 255, 0.3), transparent); | |
| background-size: 350px 200px; | |
| animation: starsTwinkle 4s ease-in-out infinite; | |
| pointer-events: none; | |
| opacity: 0.6; | |
| } | |
| .interview-starting-content { | |
| text-align: center; | |
| color: white; | |
| padding: var(--space-12) var(--space-10); | |
| max-width: 500px; | |
| min-width: 380px; | |
| position: relative; | |
| z-index: 1; | |
| /* Glassmorphism popup card */ | |
| background: linear-gradient( | |
| 145deg, | |
| rgba(30, 40, 50, 0.9) 0%, | |
| rgba(20, 30, 40, 0.95) 100% | |
| ); | |
| border-radius: 32px; | |
| border: 1px solid rgba(16, 185, 129, 0.2); | |
| box-shadow: | |
| 0 0 0 1px rgba(16, 185, 129, 0.2), | |
| 0 25px 80px -20px rgba(0, 0, 0, 0.8), | |
| 0 10px 40px -10px rgba(16, 185, 129, 0.3), | |
| inset 0 1px 0 rgba(255, 255, 255, 0.1); | |
| backdrop-filter: blur(20px); | |
| animation: popupCardEntrance 0.7s cubic-bezier(0.16, 1, 0.3, 1) forwards; | |
| } | |
| .interview-starting-icon { | |
| font-size: 4.5rem; | |
| margin-bottom: var(--space-6); | |
| animation: pulse 1.2s ease-in-out infinite; | |
| } | |
| .interview-starting-title { | |
| font-size: var(--text-3xl); | |
| font-weight: var(--font-bold); | |
| font-family: var(--font-display); | |
| margin-bottom: var(--space-3); | |
| background: linear-gradient(90deg, #10b981 0%, #34d399 50%, #a7f3d0 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| } | |
| .interview-starting-subtitle { | |
| font-size: var(--text-lg); | |
| color: rgba(255, 255, 255, 0.7); | |
| margin-bottom: var(--space-8); | |
| } | |
| .interview-starting-loader { | |
| width: 200px; | |
| height: 4px; | |
| background: rgba(255, 255, 255, 0.1); | |
| border-radius: var(--radius-full); | |
| overflow: hidden; | |
| margin: 0 auto; | |
| } | |
| .interview-starting-loader::after { | |
| content: ''; | |
| display: block; | |
| width: 40%; | |
| height: 100%; | |
| background: var(--primary-gradient); | |
| border-radius: var(--radius-full); | |
| animation: loading 1.5s ease-in-out infinite; | |
| } | |
| @keyframes loading { | |
| 0% { | |
| transform: translateX(-100%); | |
| } | |
| 100% { | |
| transform: translateX(350%); | |
| } | |
| } | |
| /* =========================================== | |
| ROUND CONFIGURATION UI (Interview Readiness) | |
| =========================================== */ | |
| .badge-total { | |
| margin-left: auto; | |
| padding: var(--space-1) var(--space-4); | |
| background: var(--primary-gradient); | |
| color: white; | |
| border-radius: var(--radius-full); | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-bold); | |
| transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); | |
| box-shadow: 0 2px 10px var(--primary-glow); | |
| } | |
| .badge-total.updated { | |
| animation: badgePop 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); | |
| } | |
| @keyframes badgePop { | |
| 0% { transform: scale(1); } | |
| 50% { transform: scale(1.2); box-shadow: 0 4px 20px var(--primary-glow); } | |
| 100% { transform: scale(1); } | |
| } | |
| .round-config-grid { | |
| display: grid; | |
| grid-template-columns: repeat(2, 1fr); | |
| gap: var(--space-3); | |
| margin-top: var(--space-4); | |
| } | |
| @media (max-width: 500px) { | |
| .round-config-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| } | |
| .round-config-item { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| padding: var(--space-3) var(--space-4); | |
| background: var(--bg-secondary); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-lg); | |
| transition: all 0.2s ease; | |
| gap: var(--space-3); | |
| } | |
| .round-config-item:hover { | |
| border-color: var(--primary); | |
| background: rgba(79, 124, 130, 0.08); | |
| } | |
| .round-label { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| font-weight: var(--font-medium); | |
| color: var(--text-primary); | |
| flex: 1; | |
| min-width: 0; | |
| overflow: hidden; | |
| } | |
| .round-label > span:nth-child(2) { | |
| white-space: nowrap; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| } | |
| .round-icon { | |
| font-size: 1.25rem; | |
| flex-shrink: 0; | |
| } | |
| .round-controls { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| flex-shrink: 0; | |
| } | |
| .round-btn { | |
| width: 28px; | |
| height: 28px; | |
| min-width: 28px; | |
| min-height: 28px; | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| border: 2px solid var(--border-color); | |
| border-radius: 8px; | |
| background: rgba(51, 65, 85, 0.8); | |
| color: #c4b8de; | |
| font-size: 1.1rem; | |
| font-weight: 700; | |
| line-height: 1; | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| padding: 0; | |
| -webkit-appearance: none; | |
| appearance: none; | |
| flex-shrink: 0; | |
| } | |
| .round-btn:hover:not(:disabled) { | |
| background: var(--primary); | |
| color: white; | |
| border-color: var(--primary); | |
| } | |
| .round-btn:active:not(:disabled) { | |
| opacity: 0.8; | |
| } | |
| .round-btn:disabled { | |
| opacity: 0.4; | |
| cursor: not-allowed; | |
| } | |
| .round-count { | |
| min-width: 24px; | |
| text-align: center; | |
| font-size: 1rem; | |
| font-weight: var(--font-bold); | |
| color: var(--primary); | |
| } | |
| /* Count change animation */ | |
| .round-count.changed { | |
| animation: countPop 0.35s cubic-bezier(0.34, 1.56, 0.64, 1); | |
| } | |
| @keyframes countPop { | |
| 0% { transform: scale(1); } | |
| 40% { transform: scale(1.3); color: var(--success); } | |
| 100% { transform: scale(1); } | |
| } | |
| .duration-estimate { | |
| margin-top: var(--space-4); | |
| padding: var(--space-3); | |
| background: var(--info-bg); | |
| border-radius: var(--radius-lg); | |
| text-align: center; | |
| color: var(--info); | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-medium); | |
| transition: all 0.3s ease; | |
| } | |
| [data-theme="dark"] .round-config-item { | |
| background: rgba(30, 41, 59, 0.6); | |
| border-color: rgba(255, 255, 255, 0.1); | |
| } | |
| [data-theme="dark"] .round-config-item:hover { | |
| background: rgba(99, 102, 241, 0.12); | |
| border-color: var(--primary); | |
| } | |
| [data-theme="dark"] .round-btn { | |
| background: rgba(51, 65, 85, 0.8); | |
| border-color: rgba(255, 255, 255, 0.15); | |
| color: #e2e8f0; | |
| } | |
| [data-theme="dark"] .round-btn:hover:not(:disabled) { | |
| background: var(--primary); | |
| border-color: var(--primary); | |
| color: white; | |
| } | |
| /* =========================================== | |
| USER PROFILE PAGE - Premium Layout | |
| Modern dashboard-style profile with sidebar | |
| =========================================== */ | |
| /* Profile Container - Full Page Layout */ | |
| .profile-container { | |
| min-height: 100vh; | |
| background: linear-gradient(135deg, #f0eef8 0%, #e4e0f2 35%, #d6d0ea 65%, #f0eef8 100%); | |
| } | |
| /* Profile Main Layout */ | |
| .profile-main { | |
| display: grid; | |
| grid-template-columns: 280px 1fr; | |
| gap: var(--space-6); | |
| max-width: 1400px; | |
| margin: 0 auto; | |
| padding: var(--space-6); | |
| min-height: calc(100vh - 80px); | |
| } | |
| @media (max-width: 992px) { | |
| .profile-main { | |
| grid-template-columns: 1fr; | |
| padding: var(--space-4); | |
| } | |
| } | |
| /* Profile Sidebar */ | |
| .profile-sidebar { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| padding: var(--space-6); | |
| box-shadow: var(--shadow-card); | |
| height: fit-content; | |
| position: sticky; | |
| top: 100px; | |
| } | |
| @media (max-width: 992px) { | |
| .profile-sidebar { | |
| position: static; | |
| display: grid; | |
| grid-template-columns: auto 1fr; | |
| gap: var(--space-4); | |
| align-items: center; | |
| } | |
| .sidebar-header { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-3); | |
| } | |
| .sidebar-nav { | |
| display: flex; | |
| gap: var(--space-2); | |
| overflow-x: auto; | |
| } | |
| .sidebar-footer { | |
| display: none; | |
| } | |
| } | |
| .sidebar-header { | |
| text-align: center; | |
| padding-bottom: var(--space-6); | |
| margin-bottom: var(--space-4); | |
| border-bottom: 1px solid var(--border-color); | |
| } | |
| .user-avatar-large { | |
| width: 80px; | |
| height: 80px; | |
| margin: 0 auto var(--space-4); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| background: var(--primary-gradient); | |
| border-radius: 50%; | |
| font-size: var(--text-3xl); | |
| font-weight: var(--font-bold); | |
| color: white; | |
| box-shadow: 0 4px 20px var(--primary-glow); | |
| } | |
| .sidebar-header .user-name { | |
| font-family: var(--font-display); | |
| font-size: var(--text-xl); | |
| font-weight: var(--font-bold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-1); | |
| max-width: 100%; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| } | |
| .sidebar-header .user-email { | |
| font-size: var(--text-sm); | |
| color: var(--text-muted); | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| } | |
| /* Sidebar Navigation */ | |
| .sidebar-nav { | |
| display: flex; | |
| flex-direction: column; | |
| gap: var(--space-1); | |
| } | |
| .nav-item { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-3); | |
| padding: var(--space-3) var(--space-4); | |
| border-radius: var(--radius-xl); | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-medium); | |
| color: var(--text-secondary); | |
| transition: all var(--transition-fast); | |
| cursor: pointer; | |
| background: transparent; | |
| border: none; | |
| width: 100%; | |
| text-align: left; | |
| } | |
| .nav-item:hover { | |
| background: var(--bg-tertiary); | |
| color: var(--text-primary); | |
| } | |
| .nav-item.active { | |
| background: var(--primary-glow); | |
| color: var(--primary); | |
| } | |
| .nav-item .nav-arrow { | |
| margin-left: auto; | |
| opacity: 0; | |
| transition: opacity var(--transition-fast); | |
| } | |
| .nav-item:hover .nav-arrow, | |
| .nav-item.active .nav-arrow { | |
| opacity: 1; | |
| } | |
| /* Sidebar Footer */ | |
| .sidebar-footer { | |
| margin-top: var(--space-6); | |
| padding-top: var(--space-4); | |
| border-top: 1px solid var(--border-color); | |
| } | |
| .member-badge { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: var(--space-2); | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| } | |
| /* Profile Content Area */ | |
| .profile-content { | |
| display: flex; | |
| flex-direction: column; | |
| gap: var(--space-6); | |
| } | |
| /* Profile Sections */ | |
| .profile-section { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| padding: var(--space-6); | |
| box-shadow: var(--shadow-card); | |
| } | |
| .section-title { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-3); | |
| font-family: var(--font-display); | |
| font-size: var(--text-xl); | |
| font-weight: var(--font-bold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-6); | |
| } | |
| .section-title svg { | |
| color: var(--primary); | |
| } | |
| .section-header-row { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| margin-bottom: var(--space-6); | |
| flex-wrap: wrap; | |
| gap: var(--space-3); | |
| } | |
| .section-header-row .section-title { | |
| margin-bottom: 0; | |
| } | |
| /* Overview Grid */ | |
| .overview-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); | |
| gap: var(--space-6); | |
| } | |
| /* Info Card */ | |
| .info-card { | |
| background: var(--bg-tertiary); | |
| border-radius: var(--radius-xl); | |
| padding: var(--space-5); | |
| } | |
| .info-card h4 { | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-muted); | |
| margin-bottom: var(--space-4); | |
| text-transform: uppercase; | |
| letter-spacing: 0.05em; | |
| } | |
| .info-row { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-3); | |
| padding: var(--space-3) 0; | |
| border-bottom: 1px solid var(--border-color); | |
| } | |
| .info-row:last-child { | |
| border-bottom: none; | |
| } | |
| .info-row svg { | |
| color: var(--text-muted); | |
| flex-shrink: 0; | |
| } | |
| .info-label { | |
| font-size: var(--text-sm); | |
| color: var(--text-muted); | |
| min-width: 60px; | |
| } | |
| .info-value { | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-medium); | |
| color: var(--text-primary); | |
| margin-left: auto; | |
| } | |
| /* Stats Card */ | |
| .stats-card { | |
| background: var(--bg-tertiary); | |
| border-radius: var(--radius-xl); | |
| padding: var(--space-5); | |
| } | |
| .stats-card h4 { | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-muted); | |
| margin-bottom: var(--space-4); | |
| text-transform: uppercase; | |
| letter-spacing: 0.05em; | |
| } | |
| .stats-grid { | |
| display: grid; | |
| grid-template-columns: repeat(2, 1fr); | |
| gap: var(--space-4); | |
| } | |
| .stat-item { | |
| text-align: center; | |
| padding: var(--space-4); | |
| background: var(--bg-card); | |
| border-radius: var(--radius-lg); | |
| border: 1px solid var(--border-color); | |
| } | |
| .stat-number { | |
| display: block; | |
| font-family: var(--font-display); | |
| font-size: var(--text-2xl); | |
| font-weight: var(--font-bold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-1); | |
| } | |
| .stat-label { | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| text-transform: uppercase; | |
| letter-spacing: 0.05em; | |
| } | |
| /* Loading State */ | |
| .loading-state { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| padding: var(--space-12); | |
| color: var(--text-muted); | |
| gap: var(--space-4); | |
| } | |
| .loading-state .spin { | |
| animation: spin 1s linear infinite; | |
| } | |
| /* Empty State Card */ | |
| .empty-state-card { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| padding: var(--space-12); | |
| text-align: center; | |
| background: var(--bg-tertiary); | |
| border-radius: var(--radius-xl); | |
| border: 2px dashed var(--border-color); | |
| } | |
| .empty-state-card svg { | |
| color: var(--text-muted); | |
| margin-bottom: var(--space-4); | |
| opacity: 0.5; | |
| } | |
| .empty-state-card h3 { | |
| font-size: var(--text-lg); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-2); | |
| } | |
| .empty-state-card p { | |
| font-size: var(--text-sm); | |
| color: var(--text-muted); | |
| margin-bottom: var(--space-6); | |
| max-width: 300px; | |
| } | |
| /* Resume List */ | |
| .resume-list { | |
| display: flex; | |
| flex-direction: column; | |
| gap: var(--space-4); | |
| } | |
| .resume-card { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-4); | |
| padding: var(--space-4); | |
| background: var(--bg-tertiary); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-xl); | |
| transition: all var(--transition-fast); | |
| } | |
| .resume-card:hover { | |
| border-color: var(--primary); | |
| box-shadow: 0 0 0 3px var(--primary-glow); | |
| } | |
| .resume-icon { | |
| width: 48px; | |
| height: 48px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| background: var(--primary-glow); | |
| border-radius: var(--radius-lg); | |
| color: var(--primary); | |
| flex-shrink: 0; | |
| } | |
| .resume-info { | |
| flex: 1; | |
| min-width: 0; | |
| } | |
| .resume-name { | |
| font-size: var(--text-base); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-1); | |
| white-space: nowrap; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| } | |
| .resume-meta { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-3); | |
| flex-wrap: wrap; | |
| } | |
| .meta-item { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-1); | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| } | |
| .status-badge { | |
| padding: var(--space-1) var(--space-2); | |
| border-radius: var(--radius-sm); | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-medium); | |
| text-transform: capitalize; | |
| } | |
| .status-badge.success { | |
| background: var(--success-bg); | |
| color: var(--success); | |
| } | |
| .status-badge.pending { | |
| background: var(--warning-bg); | |
| color: var(--warning); | |
| } | |
| .status-badge.info { | |
| background: var(--info-bg); | |
| color: var(--info); | |
| } | |
| .resume-actions { | |
| display: flex; | |
| gap: var(--space-2); | |
| flex-shrink: 0; | |
| } | |
| /* Interview List */ | |
| .interview-list { | |
| display: flex; | |
| flex-direction: column; | |
| gap: var(--space-4); | |
| } | |
| .interview-card { | |
| padding: var(--space-5); | |
| background: var(--bg-tertiary); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-xl); | |
| transition: all var(--transition-fast); | |
| } | |
| .interview-card:hover { | |
| border-color: var(--primary); | |
| } | |
| .interview-header { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: flex-start; | |
| margin-bottom: var(--space-4); | |
| gap: var(--space-3); | |
| } | |
| .interview-title h4 { | |
| font-size: var(--text-base); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-1); | |
| } | |
| .interview-date { | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| } | |
| .interview-score { | |
| text-align: right; | |
| flex-shrink: 0; | |
| } | |
| .interview-score .score-value { | |
| display: block; | |
| font-family: var(--font-display); | |
| font-size: var(--text-2xl); | |
| font-weight: var(--font-bold); | |
| } | |
| .interview-score .score-label { | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| } | |
| .interview-score .score-pending { | |
| font-size: var(--text-sm); | |
| color: var(--text-muted); | |
| font-style: italic; | |
| } | |
| .interview-details { | |
| margin-bottom: var(--space-4); | |
| } | |
| .detail-row { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: var(--space-3); | |
| } | |
| .detail-item { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-1); | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| } | |
| .detail-item svg { | |
| color: var(--text-muted); | |
| } | |
| .interview-summary { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); | |
| gap: var(--space-4); | |
| padding: var(--space-4); | |
| background: var(--bg-card); | |
| border-radius: var(--radius-lg); | |
| margin-bottom: var(--space-4); | |
| } | |
| .summary-section h5 { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-secondary); | |
| margin-bottom: var(--space-2); | |
| text-transform: uppercase; | |
| } | |
| .tags { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: var(--space-1); | |
| } | |
| .tag { | |
| padding: var(--space-1) var(--space-2); | |
| border-radius: var(--radius-sm); | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-medium); | |
| } | |
| .tag.success { | |
| background: var(--success-bg); | |
| color: var(--success); | |
| } | |
| .tag.warning { | |
| background: var(--warning-bg); | |
| color: var(--warning); | |
| } | |
| .interview-actions { | |
| display: flex; | |
| gap: var(--space-2); | |
| flex-wrap: wrap; | |
| } | |
| /* Analytics Overview */ | |
| .analytics-overview { | |
| padding: var(--space-2) 0; | |
| } | |
| .analytics-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); | |
| gap: var(--space-4); | |
| } | |
| .analytics-card { | |
| padding: var(--space-5); | |
| background: var(--bg-tertiary); | |
| border-radius: var(--radius-xl); | |
| text-align: center; | |
| border: 1px solid var(--border-color); | |
| transition: all var(--transition-fast); | |
| } | |
| .analytics-card:hover { | |
| transform: translateY(-2px); | |
| box-shadow: var(--shadow-md); | |
| } | |
| .analytics-card.highlight { | |
| background: var(--primary-glow); | |
| border-color: var(--primary); | |
| } | |
| .analytics-value { | |
| font-family: var(--font-display); | |
| font-size: var(--text-3xl); | |
| font-weight: var(--font-bold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-1); | |
| } | |
| .analytics-label { | |
| font-size: var(--text-sm); | |
| color: var(--text-muted); | |
| } | |
| .trend { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: var(--space-1); | |
| margin-top: var(--space-2); | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-medium); | |
| } | |
| .trend.improving { | |
| color: var(--success); | |
| } | |
| .trend.declining { | |
| color: var(--danger); | |
| } | |
| /* Error Banner */ | |
| .error-banner { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-3); | |
| padding: var(--space-3) var(--space-4); | |
| background: var(--danger-bg); | |
| border: 1px solid rgba(239, 68, 68, 0.3); | |
| border-radius: var(--radius-lg); | |
| color: var(--danger); | |
| font-size: var(--text-sm); | |
| } | |
| .error-banner button { | |
| margin-left: auto; | |
| padding: var(--space-1) var(--space-2); | |
| background: transparent; | |
| border: none; | |
| color: var(--danger); | |
| font-size: var(--text-lg); | |
| cursor: pointer; | |
| opacity: 0.7; | |
| } | |
| .error-banner button:hover { | |
| opacity: 1; | |
| } | |
| /* Dark Mode Profile Enhancements */ | |
| [data-theme="dark"] .profile-sidebar { | |
| background: var(--glass-bg); | |
| border-color: var(--glass-border); | |
| box-shadow: var(--shadow-glow); | |
| } | |
| [data-theme="dark"] .profile-section { | |
| background: var(--glass-bg); | |
| border-color: var(--glass-border); | |
| } | |
| [data-theme="dark"] .info-card, | |
| [data-theme="dark"] .stats-card, | |
| [data-theme="dark"] .resume-card, | |
| [data-theme="dark"] .interview-card, | |
| [data-theme="dark"] .analytics-card { | |
| background: rgba(255, 255, 255, 0.03); | |
| } | |
| [data-theme="dark"] .stat-item { | |
| background: var(--bg-secondary); | |
| border-color: var(--glass-border); | |
| } | |
| [data-theme="dark"] .user-avatar-large { | |
| box-shadow: 0 4px 30px var(--primary-glow); | |
| } | |
| [data-theme="dark"] .empty-state-card { | |
| background: rgba(255, 255, 255, 0.02); | |
| border-color: var(--glass-border); | |
| } | |
| /* =========================================== | |
| ATS ANALYZER STYLES - ENTERPRISE REPORT FORMAT | |
| Structured, scannable, professional layout | |
| =========================================== */ | |
| /* ATS Analyzer Container */ | |
| .ats-analyzer { | |
| display: flex; | |
| flex-direction: column; | |
| gap: var(--space-6); | |
| } | |
| /* ATS Premium Header Section */ | |
| .ats-header-section { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-4); | |
| padding: var(--space-6); | |
| background: linear-gradient(135deg, var(--primary-glow), rgba(34, 211, 238, 0.1)); | |
| border-radius: var(--radius-2xl); | |
| border: 1px solid var(--border-color); | |
| } | |
| .ats-header-icon { | |
| width: 64px; | |
| height: 64px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| background: var(--primary-gradient); | |
| border-radius: var(--radius-xl); | |
| font-size: 1.75rem; | |
| box-shadow: 0 4px 20px var(--primary-glow); | |
| } | |
| .ats-header-content { | |
| flex: 1; | |
| } | |
| .ats-header-title { | |
| font-family: var(--font-display); | |
| font-size: var(--text-2xl); | |
| font-weight: var(--font-bold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-1); | |
| } | |
| .ats-header-description { | |
| font-size: var(--text-sm); | |
| color: var(--text-secondary); | |
| margin: 0; | |
| } | |
| /* ATS Form Card */ | |
| .ats-form-card { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| padding: var(--space-6); | |
| box-shadow: var(--shadow-card); | |
| } | |
| .ats-form-header { | |
| margin-bottom: var(--space-6); | |
| } | |
| .form-step-badge { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| padding: var(--space-2) var(--space-4); | |
| background: var(--primary-glow); | |
| border-radius: var(--radius-full); | |
| } | |
| .form-step-badge .step-number { | |
| width: 24px; | |
| height: 24px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| background: var(--primary); | |
| color: white; | |
| border-radius: 50%; | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-bold); | |
| } | |
| .form-step-badge .step-label { | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-semibold); | |
| color: var(--primary); | |
| } | |
| /* ATS Form Groups */ | |
| .ats-form-group { | |
| margin-bottom: var(--space-5); | |
| } | |
| .ats-label { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-2); | |
| } | |
| .ats-label .label-icon { | |
| font-size: 1rem; | |
| } | |
| .ats-input, | |
| .ats-textarea { | |
| width: 100%; | |
| padding: var(--space-3) var(--space-4); | |
| font-size: var(--text-base); | |
| background: var(--bg-secondary); | |
| border: 2px solid var(--border-color); | |
| border-radius: var(--radius-xl); | |
| color: var(--text-primary); | |
| transition: all var(--transition-fast); | |
| } | |
| .ats-input:focus, | |
| .ats-textarea:focus { | |
| outline: none; | |
| border-color: var(--primary); | |
| box-shadow: 0 0 0 4px var(--primary-glow); | |
| } | |
| .ats-input::placeholder, | |
| .ats-textarea::placeholder { | |
| color: var(--text-muted); | |
| } | |
| .ats-textarea { | |
| resize: vertical; | |
| min-height: 120px; | |
| } | |
| .ats-form-hint { | |
| margin-top: var(--space-2); | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| } | |
| /* Role Suggestions */ | |
| .ats-role-suggestions { | |
| margin-top: var(--space-3); | |
| } | |
| .suggestions-label { | |
| display: block; | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| margin-bottom: var(--space-2); | |
| } | |
| .suggestions-grid { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: var(--space-2); | |
| } | |
| .ats-suggestion-chip { | |
| padding: var(--space-2) var(--space-3); | |
| background: var(--bg-tertiary); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-full); | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-medium); | |
| color: var(--text-secondary); | |
| cursor: pointer; | |
| transition: all var(--transition-fast); | |
| } | |
| .ats-suggestion-chip:hover:not(:disabled) { | |
| background: var(--primary-glow); | |
| border-color: var(--primary); | |
| color: var(--primary); | |
| transform: translateY(-1px); | |
| } | |
| .ats-suggestion-chip.active { | |
| background: var(--primary); | |
| border-color: var(--primary); | |
| color: white; | |
| } | |
| .ats-suggestion-chip:disabled { | |
| opacity: 0.5; | |
| cursor: not-allowed; | |
| } | |
| /* Advanced Options Toggle */ | |
| .ats-toggle-advanced { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| padding: var(--space-3) 0; | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-medium); | |
| color: var(--text-muted); | |
| background: none; | |
| border: none; | |
| cursor: pointer; | |
| transition: color var(--transition-fast); | |
| margin-bottom: var(--space-4); | |
| } | |
| .ats-toggle-advanced:hover { | |
| color: var(--primary); | |
| } | |
| .ats-toggle-advanced .toggle-icon { | |
| font-size: 0.75rem; | |
| } | |
| /* Advanced Options Panel */ | |
| .ats-advanced-panel { | |
| padding: var(--space-4); | |
| background: var(--bg-tertiary); | |
| border-radius: var(--radius-xl); | |
| margin-bottom: var(--space-4); | |
| border: 1px dashed var(--border-color); | |
| } | |
| /* Error Message */ | |
| .ats-error-message { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| padding: var(--space-3) var(--space-4); | |
| background: var(--danger-bg); | |
| border: 1px solid rgba(239, 68, 68, 0.3); | |
| border-radius: var(--radius-lg); | |
| color: var(--danger); | |
| font-size: var(--text-sm); | |
| margin-bottom: var(--space-4); | |
| } | |
| .ats-error-message .error-icon { | |
| font-size: 1rem; | |
| } | |
| /* Analyze Button - Premium CTA */ | |
| .ats-analyze-button { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: var(--space-3); | |
| width: 100%; | |
| padding: var(--space-4) var(--space-6); | |
| background: var(--primary-gradient); | |
| color: white; | |
| border: none; | |
| border-radius: var(--radius-xl); | |
| font-size: var(--text-base); | |
| font-weight: var(--font-semibold); | |
| cursor: pointer; | |
| transition: all var(--transition-base); | |
| box-shadow: 0 4px 15px var(--primary-glow); | |
| } | |
| .ats-analyze-button:hover:not(:disabled) { | |
| transform: translateY(-2px); | |
| box-shadow: 0 8px 25px var(--primary-glow); | |
| } | |
| .ats-analyze-button:active:not(:disabled) { | |
| transform: translateY(0); | |
| } | |
| .ats-analyze-button:disabled { | |
| opacity: 0.6; | |
| cursor: not-allowed; | |
| transform: none; | |
| } | |
| .ats-analyze-button .button-icon { | |
| font-size: 1.25rem; | |
| } | |
| .ats-analyze-button .button-spinner { | |
| width: 20px; | |
| height: 20px; | |
| border: 2px solid rgba(255, 255, 255, 0.3); | |
| border-top-color: white; | |
| border-radius: 50%; | |
| animation: spin 0.75s linear infinite; | |
| } | |
| /* No Resume Hint */ | |
| .ats-no-resume-hint { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: var(--space-2); | |
| margin-top: var(--space-4); | |
| padding: var(--space-3); | |
| background: var(--warning-bg); | |
| border-radius: var(--radius-lg); | |
| font-size: var(--text-sm); | |
| color: var(--warning); | |
| } | |
| /* Results Section */ | |
| .ats-results-section { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| overflow: hidden; | |
| box-shadow: var(--shadow-lg); | |
| } | |
| .results-header { | |
| padding: var(--space-4) var(--space-6); | |
| background: linear-gradient(135deg, rgba(16, 185, 129, 0.1), rgba(52, 211, 153, 0.05)); | |
| border-bottom: 1px solid var(--border-color); | |
| } | |
| .results-badge { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| padding: var(--space-2) var(--space-3); | |
| background: var(--success-bg); | |
| border-radius: var(--radius-full); | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-medium); | |
| color: var(--success); | |
| } | |
| .results-badge .badge-icon { | |
| font-size: 1rem; | |
| } | |
| /* Empty State Card */ | |
| .ats-empty-state-card { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| text-align: center; | |
| padding: var(--space-12) var(--space-6); | |
| background: var(--bg-card); | |
| border: 2px dashed var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| } | |
| .empty-state-illustration { | |
| position: relative; | |
| width: 100px; | |
| height: 100px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| margin-bottom: var(--space-6); | |
| } | |
| .empty-state-illustration .illustration-icon { | |
| font-size: 3rem; | |
| filter: grayscale(50%); | |
| opacity: 0.7; | |
| } | |
| .illustration-lines { | |
| position: absolute; | |
| bottom: -10px; | |
| left: 50%; | |
| transform: translateX(-50%); | |
| display: flex; | |
| gap: 4px; | |
| } | |
| .illustration-lines span { | |
| width: 30px; | |
| height: 4px; | |
| background: var(--border-color); | |
| border-radius: 2px; | |
| } | |
| .illustration-lines span:nth-child(2) { | |
| width: 20px; | |
| } | |
| .illustration-lines span:nth-child(3) { | |
| width: 25px; | |
| } | |
| .ats-empty-state-card h3 { | |
| font-family: var(--font-display); | |
| font-size: var(--text-xl); | |
| font-weight: var(--font-bold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-2); | |
| } | |
| .ats-empty-state-card>p { | |
| font-size: var(--text-sm); | |
| color: var(--text-muted); | |
| max-width: 350px; | |
| margin-bottom: var(--space-6); | |
| } | |
| .feature-highlights { | |
| list-style: none; | |
| padding: 0; | |
| margin: 0; | |
| display: flex; | |
| flex-direction: column; | |
| gap: var(--space-2); | |
| } | |
| .feature-highlights li { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| font-size: var(--text-sm); | |
| color: var(--text-secondary); | |
| } | |
| .feature-highlights .feature-icon { | |
| color: var(--success); | |
| font-weight: var(--font-bold); | |
| } | |
| /* Dark Mode ATS Enhancements */ | |
| [data-theme="dark"] .ats-header-section { | |
| background: linear-gradient(135deg, rgba(91, 138, 255, 0.15), rgba(34, 211, 238, 0.08)); | |
| border-color: var(--glass-border); | |
| } | |
| [data-theme="dark"] .ats-form-card, | |
| [data-theme="dark"] .ats-results-section, | |
| [data-theme="dark"] .ats-empty-state-card { | |
| background: var(--glass-bg); | |
| border-color: var(--glass-border); | |
| } | |
| [data-theme="dark"] .ats-input, | |
| [data-theme="dark"] .ats-textarea { | |
| background: var(--bg-tertiary); | |
| border-color: var(--bg-tertiary); | |
| } | |
| [data-theme="dark"] .ats-advanced-panel { | |
| background: rgba(255, 255, 255, 0.02); | |
| border-color: var(--glass-border); | |
| } | |
| [data-theme="dark"] .ats-analyze-button { | |
| box-shadow: 0 4px 20px var(--primary-glow); | |
| } | |
| [data-theme="dark"] .ats-analyze-button:hover:not(:disabled) { | |
| box-shadow: 0 8px 30px var(--primary-glow); | |
| } | |
| .ats-form h3 { | |
| font-family: var(--font-display); | |
| font-size: var(--text-xl); | |
| font-weight: var(--font-bold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-2); | |
| } | |
| .ats-form .form-description { | |
| color: var(--text-muted); | |
| font-size: var(--text-sm); | |
| margin-bottom: var(--space-6); | |
| } | |
| .role-suggestions { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: var(--space-2); | |
| margin-top: var(--space-3); | |
| } | |
| .suggestion-chip { | |
| padding: var(--space-2) var(--space-3); | |
| background: var(--bg-tertiary); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-full); | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-medium); | |
| color: var(--text-secondary); | |
| transition: all var(--transition-fast); | |
| } | |
| .suggestion-chip:hover:not(:disabled) { | |
| background: var(--primary-glow); | |
| border-color: var(--primary); | |
| color: var(--primary); | |
| } | |
| .toggle-advanced { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| padding: var(--space-2) 0; | |
| font-size: var(--text-sm); | |
| color: var(--text-muted); | |
| margin-bottom: var(--space-4); | |
| } | |
| .toggle-advanced:hover { | |
| color: var(--primary); | |
| } | |
| .ats-form-error { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| padding: var(--space-3); | |
| background: var(--danger-bg); | |
| border: 1px solid rgba(239, 68, 68, 0.3); | |
| border-radius: var(--radius-lg); | |
| color: var(--danger); | |
| font-size: var(--text-sm); | |
| margin-bottom: var(--space-4); | |
| } | |
| .no-resume-hint { | |
| text-align: center; | |
| color: var(--text-muted); | |
| font-size: var(--text-sm); | |
| margin-top: var(--space-3); | |
| } | |
| /* ATS Results Container */ | |
| .ats-results-container { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| overflow: hidden; | |
| box-shadow: var(--shadow-lg); | |
| } | |
| /* ATS Result Component */ | |
| .ats-result { | |
| padding: var(--space-6); | |
| } | |
| .ats-result.loading, | |
| .ats-result.error { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| min-height: 300px; | |
| } | |
| .ats-loading { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| gap: var(--space-4); | |
| color: var(--text-muted); | |
| } | |
| .ats-loading .spinner { | |
| width: 48px; | |
| height: 48px; | |
| border: 3px solid var(--border-color); | |
| border-top-color: var(--primary); | |
| border-radius: 50%; | |
| animation: spin 1s linear infinite; | |
| } | |
| .ats-loading .loading-hint { | |
| font-size: var(--text-xs); | |
| opacity: 0.7; | |
| } | |
| .ats-error { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| gap: var(--space-3); | |
| color: var(--danger); | |
| } | |
| .ats-error .error-icon { | |
| font-size: 2.5rem; | |
| } | |
| /* ATS Header with Score */ | |
| .ats-header { | |
| display: flex; | |
| justify-content: center; | |
| padding-bottom: var(--space-6); | |
| margin-bottom: var(--space-6); | |
| border-bottom: 1px solid var(--border-color); | |
| } | |
| .ats-score-container { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-6); | |
| } | |
| .ats-score-circle { | |
| position: relative; | |
| width: 120px; | |
| height: 120px; | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| border-radius: 50%; | |
| background: var(--bg-tertiary); | |
| box-shadow: var(--shadow-lg); | |
| } | |
| .ats-score-circle::before { | |
| content: ''; | |
| position: absolute; | |
| inset: 6px; | |
| border-radius: 50%; | |
| background: var(--bg-card); | |
| } | |
| .ats-score-circle .score-value { | |
| position: relative; | |
| z-index: 1; | |
| font-family: var(--font-display); | |
| font-size: var(--text-4xl); | |
| font-weight: var(--font-extrabold); | |
| } | |
| .ats-score-circle .score-label { | |
| position: relative; | |
| z-index: 1; | |
| font-size: var(--text-xs); | |
| color: var(--text-muted); | |
| font-weight: var(--font-medium); | |
| } | |
| /* Score color variants */ | |
| .ats-score-circle.excellent { | |
| background: linear-gradient(135deg, #10b981, #059669); | |
| } | |
| .ats-score-circle.excellent .score-value { | |
| color: var(--success); | |
| } | |
| .ats-score-circle.good { | |
| background: linear-gradient(135deg, #d000d0, #d000d0); | |
| } | |
| .ats-score-circle.good .score-value { | |
| color: var(--info); | |
| } | |
| .ats-score-circle.moderate { | |
| background: linear-gradient(135deg, #f59e0b, #d97706); | |
| } | |
| .ats-score-circle.moderate .score-value { | |
| color: var(--warning); | |
| } | |
| .ats-score-circle.poor { | |
| background: linear-gradient(135deg, #ef4444, #dc2626); | |
| } | |
| .ats-score-circle.poor .score-value { | |
| color: var(--danger); | |
| } | |
| .ats-score-info { | |
| text-align: left; | |
| } | |
| .ats-score-info h3 { | |
| font-family: var(--font-display); | |
| font-size: var(--text-2xl); | |
| font-weight: var(--font-bold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-1); | |
| } | |
| .ats-score-info .target-role { | |
| color: var(--text-secondary); | |
| font-size: var(--text-sm); | |
| } | |
| .mock-badge { | |
| display: inline-block; | |
| margin-top: var(--space-2); | |
| padding: var(--space-1) var(--space-2); | |
| background: var(--warning-bg); | |
| color: var(--warning); | |
| border-radius: var(--radius-sm); | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-medium); | |
| } | |
| /* ATS Summary */ | |
| .ats-summary { | |
| padding: var(--space-4); | |
| background: var(--bg-tertiary); | |
| border-radius: var(--radius-xl); | |
| margin-bottom: var(--space-6); | |
| } | |
| .ats-summary p { | |
| color: var(--text-secondary); | |
| font-size: var(--text-sm); | |
| line-height: var(--leading-relaxed); | |
| } | |
| /* ATS Sections */ | |
| .ats-section { | |
| margin-bottom: var(--space-6); | |
| padding-bottom: var(--space-6); | |
| border-bottom: 1px solid var(--border-light); | |
| } | |
| .ats-section:last-child { | |
| margin-bottom: 0; | |
| padding-bottom: 0; | |
| border-bottom: none; | |
| } | |
| .ats-section h4 { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| font-family: var(--font-display); | |
| font-size: var(--text-base); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-4); | |
| } | |
| /* Score Breakdown Bars */ | |
| .score-breakdown { | |
| display: flex; | |
| flex-direction: column; | |
| gap: var(--space-3); | |
| } | |
| .breakdown-item { | |
| display: grid; | |
| grid-template-columns: 140px 1fr 50px; | |
| align-items: center; | |
| gap: var(--space-3); | |
| } | |
| .breakdown-label { | |
| font-size: var(--text-sm); | |
| color: var(--text-secondary); | |
| font-weight: var(--font-medium); | |
| text-transform: capitalize; | |
| } | |
| .breakdown-bar-container { | |
| height: 8px; | |
| background: var(--bg-tertiary); | |
| border-radius: var(--radius-full); | |
| overflow: hidden; | |
| } | |
| .breakdown-bar { | |
| height: 100%; | |
| border-radius: var(--radius-full); | |
| transition: width 0.5s ease-out; | |
| } | |
| .breakdown-bar.excellent { | |
| background: linear-gradient(90deg, #10b981, #34d399); | |
| } | |
| .breakdown-bar.good { | |
| background: linear-gradient(90deg, #d000d0, #60a5fa); | |
| } | |
| .breakdown-bar.moderate { | |
| background: linear-gradient(90deg, #f59e0b, #fbbf24); | |
| } | |
| .breakdown-bar.poor { | |
| background: linear-gradient(90deg, #ef4444, #f87171); | |
| } | |
| .breakdown-value { | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| text-align: right; | |
| } | |
| /* Skills List */ | |
| .skills-list { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: var(--space-2); | |
| } | |
| .skill-tag { | |
| padding: var(--space-2) var(--space-3); | |
| background: var(--primary-glow); | |
| color: var(--primary); | |
| border-radius: var(--radius-full); | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-medium); | |
| transition: all var(--transition-fast); | |
| } | |
| .skill-tag:hover { | |
| transform: translateY(-1px); | |
| box-shadow: var(--shadow-sm); | |
| } | |
| .skill-tag.technical { | |
| background: rgba(79, 124, 130, 0.15); | |
| color: #d000d0; | |
| } | |
| .skill-tag.soft { | |
| background: rgba(236, 72, 153, 0.15); | |
| color: #ec4899; | |
| } | |
| .skill-tag.tool { | |
| background: rgba(14, 165, 233, 0.15); | |
| color: #0ea5e9; | |
| } | |
| /* Keywords Section - Two Column Layout */ | |
| .ats-keywords-section { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| gap: var(--space-6); | |
| margin-bottom: var(--space-6); | |
| } | |
| .keywords-column h4 { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-3); | |
| } | |
| .keywords-list { | |
| list-style: none; | |
| padding: 0; | |
| margin: 0; | |
| } | |
| .keywords-list li { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| padding: var(--space-2) var(--space-3); | |
| margin-bottom: var(--space-2); | |
| background: var(--bg-tertiary); | |
| border-radius: var(--radius-lg); | |
| font-size: var(--text-sm); | |
| color: var(--text-secondary); | |
| } | |
| .keywords-list li::before { | |
| content: '•'; | |
| font-size: 1.2em; | |
| } | |
| .keywords-list.matched li::before { | |
| color: var(--success); | |
| } | |
| .keywords-list.missing li::before { | |
| color: var(--danger); | |
| } | |
| .keywords-list.matched li { | |
| border-left: 3px solid var(--success); | |
| } | |
| .keywords-list.missing li { | |
| border-left: 3px solid var(--danger); | |
| } | |
| /* Insights Lists (Strengths/Weaknesses) */ | |
| .insights-list { | |
| list-style: none; | |
| padding: 0; | |
| margin: 0; | |
| } | |
| .insights-list li { | |
| display: flex; | |
| flex-direction: column; | |
| gap: var(--space-1); | |
| padding: var(--space-4); | |
| margin-bottom: var(--space-3); | |
| background: var(--bg-tertiary); | |
| border-radius: var(--radius-xl); | |
| border-left: 4px solid var(--border-color); | |
| } | |
| .insights-list li:last-child { | |
| margin-bottom: 0; | |
| } | |
| .insights-list li strong { | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| } | |
| .insights-list li span { | |
| font-size: var(--text-sm); | |
| color: var(--text-secondary); | |
| line-height: var(--leading-relaxed); | |
| } | |
| .insights-list.strengths li { | |
| border-left-color: var(--success); | |
| } | |
| .insights-list.weaknesses li { | |
| border-left-color: var(--warning); | |
| } | |
| .insights-list li .suggestion { | |
| display: block; | |
| margin-top: var(--space-2); | |
| padding-top: var(--space-2); | |
| border-top: 1px dashed var(--border-color); | |
| font-size: var(--text-xs); | |
| color: var(--primary); | |
| font-style: normal; | |
| } | |
| /* Recommendations */ | |
| .recommendations-list { | |
| display: flex; | |
| flex-direction: column; | |
| gap: var(--space-4); | |
| } | |
| .recommendation-item { | |
| padding: var(--space-4); | |
| background: var(--bg-tertiary); | |
| border-radius: var(--radius-xl); | |
| border: 1px solid var(--border-light); | |
| } | |
| .rec-header { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| margin-bottom: var(--space-2); | |
| } | |
| .rec-area { | |
| font-weight: var(--font-semibold); | |
| font-size: var(--text-sm); | |
| color: var(--text-primary); | |
| } | |
| .impact-badge { | |
| padding: var(--space-1) var(--space-2); | |
| border-radius: var(--radius-sm); | |
| font-size: var(--text-xs); | |
| font-weight: var(--font-medium); | |
| text-transform: capitalize; | |
| } | |
| .impact-badge.impact-high { | |
| background: var(--danger-bg); | |
| color: var(--danger); | |
| } | |
| .impact-badge.impact-medium { | |
| background: var(--warning-bg); | |
| color: var(--warning); | |
| } | |
| .impact-badge.impact-low { | |
| background: var(--success-bg); | |
| color: var(--success); | |
| } | |
| .rec-suggestion { | |
| font-size: var(--text-sm); | |
| color: var(--text-secondary); | |
| line-height: var(--leading-relaxed); | |
| margin: 0; | |
| } | |
| /* ATS Empty State */ | |
| .ats-empty-state { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| padding: var(--space-12); | |
| text-align: center; | |
| color: var(--text-muted); | |
| } | |
| .ats-empty-state .empty-icon { | |
| font-size: 3rem; | |
| margin-bottom: var(--space-4); | |
| opacity: 0.5; | |
| } | |
| .ats-empty-state p { | |
| font-size: var(--text-base); | |
| font-weight: var(--font-medium); | |
| color: var(--text-secondary); | |
| margin-bottom: var(--space-2); | |
| } | |
| .ats-empty-state .muted-text { | |
| font-size: var(--text-sm); | |
| } | |
| /* Spinner for buttons */ | |
| .spinner-small { | |
| display: inline-block; | |
| width: 16px; | |
| height: 16px; | |
| border: 2px solid rgba(255, 255, 255, 0.3); | |
| border-top-color: white; | |
| border-radius: 50%; | |
| animation: spin 0.75s linear infinite; | |
| } | |
| /* Responsive ATS */ | |
| @media (max-width: 768px) { | |
| .ats-score-container { | |
| flex-direction: column; | |
| text-align: center; | |
| } | |
| .ats-score-info { | |
| text-align: center; | |
| } | |
| .ats-keywords-section { | |
| grid-template-columns: 1fr; | |
| } | |
| .breakdown-item { | |
| grid-template-columns: 100px 1fr 40px; | |
| } | |
| } | |
| /* Dark mode ATS enhancements */ | |
| [data-theme="dark"] .ats-form, | |
| [data-theme="dark"] .ats-results-container { | |
| background: var(--glass-bg); | |
| border-color: var(--glass-border); | |
| box-shadow: var(--shadow-glow); | |
| } | |
| [data-theme="dark"] .ats-score-circle { | |
| box-shadow: var(--shadow-lg), 0 0 30px var(--primary-glow); | |
| } | |
| [data-theme="dark"] .keywords-list li, | |
| [data-theme="dark"] .insights-list li, | |
| [data-theme="dark"] .recommendation-item { | |
| background: rgba(255, 255, 255, 0.03); | |
| } | |
| [data-theme="dark"] .skill-tag:hover { | |
| box-shadow: 0 0 10px var(--primary-glow); | |
| } | |
| /* =========================================== | |
| INSTRUCTION MODAL (Pre-Interview Disclaimer) | |
| =========================================== */ | |
| .instruction-modal-overlay { | |
| position: fixed; | |
| inset: 0; | |
| background: rgba(0, 0, 0, 0.7); | |
| backdrop-filter: blur(4px); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| z-index: 1000; | |
| animation: fadeIn 0.2s ease-out; | |
| } | |
| .instruction-modal { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-2xl); | |
| padding: var(--space-8); | |
| max-width: 450px; | |
| width: 90%; | |
| text-align: center; | |
| box-shadow: var(--shadow-2xl); | |
| animation: slideUp 0.25s ease-out; | |
| } | |
| .instruction-modal-icon { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 80px; | |
| height: 80px; | |
| margin: 0 auto var(--space-4); | |
| background: linear-gradient(135deg, rgba(245, 158, 11, 0.15), rgba(239, 68, 68, 0.1)); | |
| border-radius: var(--radius-full); | |
| color: #f59e0b; | |
| } | |
| .instruction-modal-title { | |
| font-size: var(--text-xl); | |
| font-weight: var(--font-bold); | |
| color: var(--text-primary); | |
| margin-bottom: var(--space-4); | |
| } | |
| .instruction-modal-content { | |
| margin-bottom: var(--space-6); | |
| } | |
| .instruction-modal-content p { | |
| font-size: var(--text-sm); | |
| color: var(--text-secondary); | |
| line-height: 1.6; | |
| margin-bottom: var(--space-3); | |
| } | |
| .instruction-modal-content strong { | |
| color: var(--text-primary); | |
| } | |
| .instruction-list { | |
| list-style: none; | |
| padding: 0; | |
| margin: var(--space-4) 0; | |
| text-align: left; | |
| } | |
| .instruction-list li { | |
| font-size: var(--text-sm); | |
| padding: var(--space-2) var(--space-3); | |
| margin-bottom: var(--space-1); | |
| border-radius: var(--radius-md); | |
| } | |
| .instruction-list li:nth-child(1), | |
| .instruction-list li:nth-child(2) { | |
| background: rgba(16, 185, 129, 0.1); | |
| color: #10b981; | |
| } | |
| .instruction-list li:nth-child(3), | |
| .instruction-list li:nth-child(4) { | |
| background: rgba(239, 68, 68, 0.1); | |
| color: #ef4444; | |
| } | |
| .instruction-modal-btn { | |
| width: 100%; | |
| padding: var(--space-4) ; | |
| } | |
| /* =========================================== | |
| ROUND TRANSITION BANNER (Subtle, Non-blocking) | |
| =========================================== */ | |
| .round-banner { | |
| position: fixed; | |
| top: 80px; | |
| left: 50%; | |
| transform: translateX(-50%); | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-color); | |
| border-radius: var(--radius-xl); | |
| padding: var(--space-3) var(--space-6); | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-3); | |
| box-shadow: var(--shadow-lg); | |
| z-index: 100; | |
| animation: roundBannerSlide 0.25s ease-out; | |
| } | |
| .round-banner.exiting { | |
| animation: roundBannerSlideOut 0.2s ease-in forwards; | |
| } | |
| .round-banner-icon { | |
| font-size: 1.25rem; | |
| } | |
| .round-banner-text { | |
| font-size: var(--text-sm); | |
| font-weight: var(--font-semibold); | |
| color: var(--text-primary); | |
| } | |
| .round-banner-text span { | |
| color: var(--primary); | |
| } | |
| @keyframes roundBannerSlide { | |
| from { | |
| opacity: 0; | |
| transform: translateX(-50%) translateY(-20px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateX(-50%) translateY(0); | |
| } | |
| } | |
| @keyframes roundBannerSlideOut { | |
| from { | |
| opacity: 1; | |
| transform: translateX(-50%) translateY(0); | |
| } | |
| to { | |
| opacity: 0; | |
| transform: translateX(-50%) translateY(-20px); | |
| } | |
| } | |
| @keyframes fadeIn { | |
| from { | |
| opacity: 0; | |
| } | |
| to { | |
| opacity: 1; | |
| } | |
| } | |
| @keyframes slideUp { | |
| from { | |
| opacity: 0; | |
| transform: translateY(20px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| /* Dark mode enhancements */ | |
| [data-theme="dark"] .instruction-modal { | |
| background: var(--glass-bg); | |
| border-color: var(--glass-border); | |
| box-shadow: var(--shadow-glow); | |
| } | |
| [data-theme="dark"] .round-banner { | |
| background: var(--glass-bg); | |
| border-color: var(--glass-border); | |
| box-shadow: var(--shadow-glow); | |
| } | |
| /* =========================================== | |
| ANALYTICS DASHBOARD - MOBILE RESPONSIVE | |
| =========================================== */ | |
| @media (max-width: 768px) { | |
| .analytics-main { | |
| padding: var(--space-4); | |
| padding-top: var(--space-6); | |
| } | |
| .analytics-header { | |
| flex-direction: column; | |
| align-items: flex-start; | |
| gap: var(--space-4); | |
| } | |
| .analytics-header .header-content { | |
| flex-direction: row; | |
| align-items: center; | |
| width: 100%; | |
| } | |
| .analytics-header .header-icon { | |
| width: 48px; | |
| height: 48px; | |
| min-width: 48px; | |
| } | |
| .analytics-header .header-icon svg { | |
| width: 24px; | |
| height: 24px; | |
| } | |
| .analytics-header h1 { | |
| font-size: var(--text-xl); | |
| } | |
| .analytics-header p { | |
| font-size: var(--text-xs); | |
| } | |
| .analytics-header .header-actions { | |
| width: 100%; | |
| } | |
| .analytics-header .header-actions .form-select { | |
| width: 100%; | |
| } | |
| /* Stats Grid - 2 columns on tablet, 1 on small mobile */ | |
| .analytics-stats, | |
| .stats-grid.analytics-stats { | |
| display: grid; | |
| grid-template-columns: repeat(2, 1fr); | |
| gap: var(--space-3); | |
| } | |
| .stat-card { | |
| padding: var(--space-4); | |
| text-align: left; | |
| } | |
| .stat-card .stat-icon-wrapper { | |
| width: 40px; | |
| height: 40px; | |
| margin-bottom: var(--space-2); | |
| } | |
| .stat-card .stat-icon-wrapper svg { | |
| width: 20px; | |
| height: 20px; | |
| } | |
| .stat-card .stat-value { | |
| font-size: var(--text-xl); | |
| } | |
| .stat-card .stat-label { | |
| font-size: var(--text-xs); | |
| } | |
| .stat-card .stat-sub { | |
| font-size: 10px; | |
| } | |
| /* Chart Section */ | |
| .analytics-section .section-header { | |
| flex-direction: row; | |
| align-items: flex-start; | |
| } | |
| .analytics-section .section-header h2 { | |
| font-size: var(--text-lg); | |
| } | |
| .chart-card { | |
| padding: var(--space-4); | |
| } | |
| .chart-bars { | |
| height: 160px; | |
| padding: var(--space-2); | |
| gap: var(--space-1); | |
| overflow-x: auto; | |
| } | |
| .chart-bar-container { | |
| min-width: 40px; | |
| max-width: 50px; | |
| } | |
| .bar-label { | |
| font-size: 9px; | |
| white-space: nowrap; | |
| } | |
| .bar-value { | |
| font-size: 9px; | |
| } | |
| .improvement-badge { | |
| font-size: var(--text-xs); | |
| padding: var(--space-2) var(--space-3); | |
| text-align: center; | |
| justify-content: center; | |
| width: 100%; | |
| } | |
| /* Skills Grid */ | |
| .skills-grid { | |
| grid-template-columns: 1fr; | |
| gap: var(--space-4); | |
| } | |
| .skill-card { | |
| padding: var(--space-4); | |
| } | |
| .skill-bar-item { | |
| padding: var(--space-2) 0; | |
| } | |
| .skill-name { | |
| font-size: var(--text-sm); | |
| } | |
| .skill-score { | |
| font-size: var(--text-sm); | |
| } | |
| /* Question Types Grid */ | |
| .question-type-grid { | |
| grid-template-columns: repeat(2, 1fr); | |
| gap: var(--space-3); | |
| } | |
| .question-type-card { | |
| padding: var(--space-3); | |
| flex-direction: column; | |
| text-align: center; | |
| } | |
| .question-type-card .type-icon { | |
| width: 40px; | |
| height: 40px; | |
| margin-bottom: var(--space-2); | |
| } | |
| .question-type-card .type-icon svg { | |
| width: 20px; | |
| height: 20px; | |
| } | |
| .question-type-card .type-label { | |
| font-size: var(--text-xs); | |
| } | |
| .question-type-card .type-score { | |
| font-size: var(--text-base); | |
| } | |
| .question-type-card .type-count { | |
| font-size: 10px; | |
| } | |
| } | |
| @media (max-width: 480px) { | |
| .analytics-main { | |
| padding: var(--space-3); | |
| padding-top: var(--space-4); | |
| } | |
| .analytics-header { | |
| gap: var(--space-3); | |
| margin-bottom: var(--space-4); | |
| } | |
| .analytics-header .header-icon { | |
| width: 42px; | |
| height: 42px; | |
| min-width: 42px; | |
| } | |
| .analytics-header h1 { | |
| font-size: var(--text-lg); | |
| } | |
| /* Stats Grid - Single column on very small screens */ | |
| .analytics-stats, | |
| .stats-grid.analytics-stats { | |
| grid-template-columns: 1fr 1fr; | |
| gap: var(--space-2); | |
| } | |
| .stat-card { | |
| padding: var(--space-3); | |
| } | |
| .stat-card .stat-icon-wrapper { | |
| width: 36px; | |
| height: 36px; | |
| } | |
| .stat-card .stat-icon-wrapper svg { | |
| width: 18px; | |
| height: 18px; | |
| } | |
| .stat-card .stat-value { | |
| font-size: var(--text-lg); | |
| } | |
| .stat-card .stat-label { | |
| font-size: 10px; | |
| line-height: 1.2; | |
| } | |
| /* Chart adjustments */ | |
| .chart-bars { | |
| height: 140px; | |
| } | |
| .chart-bar-container { | |
| min-width: 32px; | |
| } | |
| /* Question Types - 2 columns maintained */ | |
| .question-type-grid { | |
| grid-template-columns: repeat(2, 1fr); | |
| gap: var(--space-2); | |
| } | |
| .question-type-card { | |
| padding: var(--space-2); | |
| } | |
| .question-type-card .type-icon { | |
| width: 36px; | |
| height: 36px; | |
| } | |
| /* Section spacing */ | |
| .analytics-section { | |
| margin-bottom: var(--space-6); | |
| } | |
| .analytics-section .section-header { | |
| margin-bottom: var(--space-4); | |
| } | |
| .analytics-section .section-header h2 { | |
| font-size: var(--text-base); | |
| } | |
| .analytics-section .section-header p { | |
| font-size: var(--text-xs); | |
| } | |
| } | |
| /* =========================================== | |
| UNIFIED PREMIUM THEME - COSMIC DESIGN | |
| Applies Dashboard's "Final Boss" design to all pages | |
| =========================================== */ | |
| /* =========================================== | |
| PREMIUM THEME VARIABLES | |
| =========================================== */ | |
| :root { | |
| /* Premium Glassmorphism */ | |
| --premium-card-bg: rgba(255, 255, 255, 0.85); | |
| --premium-card-border: rgba(147, 177, 181, 0.15); | |
| --premium-card-shadow: | |
| 0 8px 32px rgba(0, 0, 0, 0.06), | |
| 0 0 0 1px rgba(147, 177, 181, 0.08); | |
| --premium-card-glow: rgba(147, 177, 181, 0.1); | |
| /* Premium Gradients */ | |
| --premium-gradient-primary: linear-gradient(135deg, #d000d0 0%, #00cccc 50%, #b366ff 100%); | |
| --premium-gradient-secondary: linear-gradient(135deg, #d000d0 0%, #d000d0 100%); | |
| --premium-gradient-accent: linear-gradient(135deg, #ec4899 0%, #00cccc 100%); | |
| /* Premium Text */ | |
| --premium-text-primary: #191970; | |
| --premium-text-secondary: #191970; | |
| --premium-text-muted: #7272a8; | |
| --premium-text-accent: #d000d0; | |
| /* Premium Borders */ | |
| --premium-border-glow: rgba(147, 177, 181, 0.3); | |
| --premium-border-subtle: rgba(0, 0, 0, 0.08); | |
| /* Premium Animations */ | |
| --premium-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| [data-theme="dark"] { | |
| --premium-card-bg: rgba(15, 30, 55, 0.85); | |
| --premium-card-border: rgba(139, 92, 246, 0.25); | |
| --premium-card-shadow: | |
| 0 8px 32px rgba(0, 0, 0, 0.3), | |
| 0 0 0 1px rgba(139, 92, 246, 0.15); | |
| --premium-card-glow: rgba(139, 92, 246, 0.2); | |
| --premium-text-primary: #f8fafc; | |
| --premium-text-secondary: #e2e8f0; | |
| --premium-text-muted: #94a3b8; | |
| --premium-text-accent: #a78bfa; | |
| --premium-border-glow: rgba(139, 92, 246, 0.4); | |
| --premium-border-subtle: rgba(255, 255, 255, 0.1); | |
| } | |
| /* =========================================== | |
| PREMIUM PAGE CONTAINER | |
| =========================================== */ | |
| .premium-page { | |
| min-height: 100vh; | |
| background: linear-gradient(135deg, #f0eef8 0%, #e4e0f2 50%, #c4b8de 100%); | |
| position: relative; | |
| overflow-x: hidden; | |
| } | |
| [data-theme="dark"] .premium-page { | |
| background: linear-gradient(135deg, #0a0a18 0%, #0d0d20 50%, #121228 100%); | |
| } | |
| /* Cosmic Background Effect */ | |
| .premium-page::before { | |
| content: ''; | |
| position: fixed; | |
| inset: 0; | |
| background: | |
| radial-gradient(ellipse at 20% 30%, rgba(79, 124, 130, 0.08) 0%, transparent 50%), | |
| radial-gradient(ellipse at 80% 70%, rgba(147, 177, 181, 0.06) 0%, transparent 50%); | |
| pointer-events: none; | |
| z-index: 0; | |
| } | |
| [data-theme="dark"] .premium-page::before { | |
| background: | |
| radial-gradient(ellipse at 20% 30%, rgba(99, 102, 241, 0.15) 0%, transparent 50%), | |
| radial-gradient(ellipse at 80% 70%, rgba(139, 92, 246, 0.1) 0%, transparent 50%); | |
| } | |
| /* =========================================== | |
| PREMIUM CARDS | |
| =========================================== */ | |
| .premium-card { | |
| background: var(--premium-card-bg); | |
| backdrop-filter: blur(20px); | |
| -webkit-backdrop-filter: blur(20px); | |
| border: 1px solid var(--premium-card-border); | |
| border-radius: 24px; | |
| padding: 32px; | |
| box-shadow: var(--premium-card-shadow); | |
| transition: var(--premium-transition); | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .premium-card::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 120px; | |
| background: var(--premium-gradient-primary); | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.08) 0%, transparent 100%); | |
| -webkit-mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.08) 0%, transparent 100%); | |
| pointer-events: none; | |
| } | |
| .premium-card:hover { | |
| transform: translateY(-4px); | |
| border-color: var(--premium-border-glow); | |
| box-shadow: | |
| 0 20px 50px rgba(0, 0, 0, 0.1), | |
| 0 0 0 1px var(--premium-border-glow), | |
| 0 0 40px var(--premium-card-glow); | |
| } | |
| .premium-card:hover::before { | |
| opacity: 1; | |
| } | |
| [data-theme="dark"] .premium-card:hover { | |
| box-shadow: | |
| 0 20px 50px rgba(0, 0, 0, 0.4), | |
| 0 0 0 1px var(--premium-border-glow), | |
| 0 0 50px var(--premium-card-glow); | |
| } | |
| /* =========================================== | |
| PREMIUM SECTION HEADERS | |
| =========================================== */ | |
| .premium-header { | |
| text-align: center; | |
| margin-bottom: 48px; | |
| position: relative; | |
| z-index: 1; | |
| } | |
| .premium-badge { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 8px; | |
| padding: 10px 20px; | |
| background: linear-gradient(135deg, rgba(147, 177, 181, 0.1), rgba(79, 124, 130, 0.08)); | |
| border: 1px solid rgba(147, 177, 181, 0.2); | |
| border-radius: 30px; | |
| font-size: 0.85rem; | |
| font-weight: 600; | |
| color: #7c3aed; | |
| margin-bottom: 16px; | |
| box-shadow: 0 4px 20px rgba(147, 177, 181, 0.1); | |
| } | |
| [data-theme="dark"] .premium-badge { | |
| background: linear-gradient(135deg, rgba(139, 92, 246, 0.2), rgba(99, 102, 241, 0.15)); | |
| border-color: rgba(139, 92, 246, 0.3); | |
| color: #a78bfa; | |
| box-shadow: 0 4px 30px rgba(139, 92, 246, 0.15); | |
| } | |
| .premium-title { | |
| font-size: 2.75rem; | |
| font-weight: 800; | |
| color: var(--premium-text-primary); | |
| margin: 0 0 16px; | |
| letter-spacing: -0.02em; | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 16px; | |
| } | |
| .premium-title svg { | |
| color: #00cccc; | |
| } | |
| [data-theme="dark"] .premium-title svg { | |
| color: #a78bfa; | |
| } | |
| .premium-subtitle { | |
| font-size: 1.15rem; | |
| color: var(--premium-text-muted); | |
| max-width: 600px; | |
| margin: 0 auto; | |
| line-height: 1.7; | |
| } | |
| /* =========================================== | |
| PREMIUM BUTTONS | |
| =========================================== */ | |
| .premium-btn { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 12px; | |
| padding: 18px 40px; | |
| font-size: 1.1rem; | |
| font-weight: 700; | |
| border: none; | |
| border-radius: 16px; | |
| cursor: pointer; | |
| transition: var(--premium-transition); | |
| text-decoration: none; | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .premium-btn-primary { | |
| background: var(--premium-gradient-primary); | |
| color: #ffffff; | |
| box-shadow: | |
| 0 8px 25px rgba(79, 124, 130, 0.35), | |
| 0 0 0 1px rgba(255, 255, 255, 0.1) inset; | |
| } | |
| .premium-btn-primary:hover { | |
| transform: translateY(-3px) scale(1.02); | |
| box-shadow: | |
| 0 15px 40px rgba(79, 124, 130, 0.45), | |
| 0 0 50px rgba(147, 177, 181, 0.25); | |
| } | |
| .premium-btn-primary:active { | |
| transform: translateY(-1px) scale(0.99); | |
| } | |
| .premium-btn-secondary { | |
| background: var(--premium-card-bg); | |
| color: var(--premium-text-primary); | |
| border: 1px solid var(--premium-border-subtle); | |
| box-shadow: 0 4px 15px rgba(0, 0, 0, 0.06); | |
| } | |
| .premium-btn-secondary:hover { | |
| border-color: var(--premium-border-glow); | |
| box-shadow: | |
| 0 10px 30px rgba(0, 0, 0, 0.1), | |
| 0 0 30px var(--premium-card-glow); | |
| transform: translateY(-2px); | |
| } | |
| [data-theme="dark"] .premium-btn-secondary { | |
| box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3); | |
| } | |
| [data-theme="dark"] .premium-btn-secondary:hover { | |
| box-shadow: | |
| 0 10px 30px rgba(0, 0, 0, 0.4), | |
| 0 0 40px var(--premium-card-glow); | |
| } | |
| /* Large CTA Button */ | |
| .premium-btn-cta { | |
| padding: 24px 60px; | |
| font-size: 1.25rem; | |
| border-radius: 20px; | |
| background: var(--premium-gradient-primary); | |
| color: #ffffff; | |
| box-shadow: | |
| 0 12px 35px rgba(79, 124, 130, 0.4), | |
| 0 0 0 1px rgba(255, 255, 255, 0.15) inset; | |
| animation: premium-pulse 3s ease-in-out infinite; | |
| } | |
| @keyframes premium-pulse { | |
| 0%, | |
| 100% { | |
| box-shadow: | |
| 0 12px 35px rgba(79, 124, 130, 0.4), | |
| 0 0 0 1px rgba(255, 255, 255, 0.15) inset; | |
| } | |
| 50% { | |
| box-shadow: | |
| 0 15px 45px rgba(79, 124, 130, 0.5), | |
| 0 0 60px rgba(147, 177, 181, 0.25), | |
| 0 0 0 1px rgba(255, 255, 255, 0.15) inset; | |
| } | |
| } | |
| .premium-btn-cta:hover { | |
| animation: none; | |
| transform: translateY(-4px) scale(1.03); | |
| box-shadow: | |
| 0 20px 50px rgba(79, 124, 130, 0.5), | |
| 0 0 70px rgba(147, 177, 181, 0.3), | |
| 0 0 0 1px rgba(255, 255, 255, 0.2) inset; | |
| } | |
| /* =========================================== | |
| PREMIUM STAT CARDS | |
| =========================================== */ | |
| .premium-stats-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); | |
| gap: 24px; | |
| margin-bottom: 40px; | |
| } | |
| .premium-stat-card { | |
| background: var(--premium-card-bg); | |
| backdrop-filter: blur(20px); | |
| -webkit-backdrop-filter: blur(20px); | |
| border: 1px solid var(--premium-card-border); | |
| border-radius: 20px; | |
| padding: 28px; | |
| text-align: center; | |
| transition: var(--premium-transition); | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .premium-stat-card::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 4px; | |
| background: var(--premium-gradient-primary); | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| } | |
| .premium-stat-card:hover { | |
| transform: translateY(-4px); | |
| border-color: var(--premium-border-glow); | |
| box-shadow: 0 15px 40px var(--premium-card-glow); | |
| } | |
| .premium-stat-card:hover::before { | |
| opacity: 1; | |
| } | |
| .premium-stat-icon { | |
| width: 56px; | |
| height: 56px; | |
| border-radius: 16px; | |
| background: linear-gradient(135deg, rgba(147, 177, 181, 0.15), rgba(79, 124, 130, 0.1)); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| margin: 0 auto 16px; | |
| color: #7c3aed; | |
| transition: var(--premium-transition); | |
| } | |
| [data-theme="dark"] .premium-stat-icon { | |
| background: linear-gradient(135deg, rgba(139, 92, 246, 0.25), rgba(99, 102, 241, 0.15)); | |
| color: #a78bfa; | |
| } | |
| .premium-stat-card:hover .premium-stat-icon { | |
| transform: scale(1.1); | |
| box-shadow: 0 0 30px rgba(147, 177, 181, 0.3); | |
| } | |
| .premium-stat-value { | |
| font-size: 2.25rem; | |
| font-weight: 800; | |
| color: var(--premium-text-primary); | |
| margin-bottom: 4px; | |
| letter-spacing: -0.02em; | |
| } | |
| .premium-stat-label { | |
| font-size: 0.9rem; | |
| color: var(--premium-text-muted); | |
| font-weight: 500; | |
| } | |
| /* =========================================== | |
| PREMIUM FORM ELEMENTS | |
| =========================================== */ | |
| .premium-input { | |
| width: 100%; | |
| padding: 16px 20px; | |
| font-size: 1rem; | |
| background: var(--premium-card-bg); | |
| border: 1px solid var(--premium-border-subtle); | |
| border-radius: 14px; | |
| color: var(--premium-text-primary); | |
| transition: var(--premium-transition); | |
| } | |
| .premium-input:focus { | |
| outline: none; | |
| border-color: var(--premium-border-glow); | |
| box-shadow: | |
| 0 0 0 4px rgba(147, 177, 181, 0.1), | |
| 0 8px 25px rgba(0, 0, 0, 0.06); | |
| } | |
| [data-theme="dark"] .premium-input:focus { | |
| box-shadow: | |
| 0 0 0 4px rgba(139, 92, 246, 0.15), | |
| 0 8px 25px rgba(0, 0, 0, 0.3); | |
| } | |
| .premium-input::placeholder { | |
| color: var(--premium-text-muted); | |
| } | |
| /* Input with icon */ | |
| .premium-input-group { | |
| position: relative; | |
| } | |
| .premium-input-group .premium-input { | |
| padding-left: 50px; | |
| } | |
| .premium-input-icon { | |
| position: absolute; | |
| left: 18px; | |
| top: 50%; | |
| transform: translateY(-50%); | |
| color: var(--premium-text-muted); | |
| pointer-events: none; | |
| } | |
| .premium-input-group:focus-within .premium-input-icon { | |
| color: #00cccc; | |
| } | |
| /* =========================================== | |
| PREMIUM SECTION | |
| =========================================== */ | |
| .premium-section { | |
| background: var(--premium-card-bg); | |
| backdrop-filter: blur(20px); | |
| -webkit-backdrop-filter: blur(20px); | |
| border: 1px solid var(--premium-card-border); | |
| border-radius: 28px; | |
| padding: 36px; | |
| margin-bottom: 32px; | |
| box-shadow: var(--premium-card-shadow); | |
| transition: var(--premium-transition); | |
| } | |
| .premium-section:hover { | |
| border-color: var(--premium-border-glow); | |
| box-shadow: | |
| 0 15px 45px rgba(0, 0, 0, 0.08), | |
| 0 0 40px var(--premium-card-glow); | |
| } | |
| [data-theme="dark"] .premium-section:hover { | |
| box-shadow: | |
| 0 15px 45px rgba(0, 0, 0, 0.4), | |
| 0 0 50px var(--premium-card-glow); | |
| } | |
| .premium-section-title { | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| font-size: 1.35rem; | |
| font-weight: 700; | |
| color: var(--premium-text-primary); | |
| margin-bottom: 24px; | |
| } | |
| .premium-section-title svg { | |
| color: #00cccc; | |
| } | |
| [data-theme="dark"] .premium-section-title svg { | |
| color: #a78bfa; | |
| } | |
| /* =========================================== | |
| PREMIUM TAB NAVIGATION | |
| =========================================== */ | |
| .premium-tabs { | |
| display: flex; | |
| gap: 8px; | |
| padding: 8px; | |
| background: var(--premium-card-bg); | |
| border: 1px solid var(--premium-border-subtle); | |
| border-radius: 16px; | |
| margin-bottom: 32px; | |
| } | |
| .premium-tab { | |
| flex: 1; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 8px; | |
| padding: 14px 24px; | |
| font-size: 0.95rem; | |
| font-weight: 600; | |
| color: var(--premium-text-muted); | |
| background: transparent; | |
| border: none; | |
| border-radius: 12px; | |
| cursor: pointer; | |
| transition: var(--premium-transition); | |
| } | |
| .premium-tab:hover:not(.active) { | |
| color: var(--premium-text-primary); | |
| background: rgba(147, 177, 181, 0.06); | |
| } | |
| .premium-tab.active { | |
| color: #ffffff; | |
| background: var(--premium-gradient-primary); | |
| box-shadow: 0 4px 15px rgba(79, 124, 130, 0.3); | |
| } | |
| /* =========================================== | |
| PREMIUM BACK BUTTON | |
| =========================================== */ | |
| .premium-back-btn { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 8px; | |
| padding: 12px 20px; | |
| background: var(--premium-card-bg); | |
| border: 1px solid var(--premium-border-subtle); | |
| border-radius: 14px; | |
| font-size: 0.95rem; | |
| font-weight: 600; | |
| color: var(--premium-text-secondary); | |
| cursor: pointer; | |
| transition: var(--premium-transition); | |
| margin-bottom: 24px; | |
| } | |
| .premium-back-btn:hover { | |
| border-color: var(--premium-border-glow); | |
| color: var(--premium-text-primary); | |
| transform: translateX(-4px); | |
| box-shadow: 0 8px 25px var(--premium-card-glow); | |
| } | |
| /* =========================================== | |
| PREMIUM ALERT / NOTIFICATION BANNERS | |
| =========================================== */ | |
| .premium-alert { | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| padding: 16px 24px; | |
| border-radius: 16px; | |
| font-weight: 500; | |
| margin-bottom: 24px; | |
| backdrop-filter: blur(10px); | |
| } | |
| .premium-alert-success { | |
| background: linear-gradient(135deg, rgba(16, 185, 129, 0.1), rgba(5, 150, 105, 0.08)); | |
| border: 1px solid rgba(16, 185, 129, 0.2); | |
| color: #059669; | |
| } | |
| [data-theme="dark"] .premium-alert-success { | |
| background: linear-gradient(135deg, rgba(16, 185, 129, 0.15), rgba(5, 150, 105, 0.1)); | |
| border-color: rgba(16, 185, 129, 0.3); | |
| color: #34d399; | |
| } | |
| .premium-alert-error { | |
| background: linear-gradient(135deg, rgba(239, 68, 68, 0.1), rgba(220, 38, 38, 0.08)); | |
| border: 1px solid rgba(239, 68, 68, 0.2); | |
| color: #dc2626; | |
| } | |
| [data-theme="dark"] .premium-alert-error { | |
| background: linear-gradient(135deg, rgba(239, 68, 68, 0.15), rgba(220, 38, 38, 0.1)); | |
| border-color: rgba(239, 68, 68, 0.3); | |
| color: #f87171; | |
| } | |
| .premium-alert-warning { | |
| background: linear-gradient(135deg, rgba(245, 158, 11, 0.1), rgba(217, 119, 6, 0.08)); | |
| border: 1px solid rgba(245, 158, 11, 0.2); | |
| color: #d97706; | |
| } | |
| [data-theme="dark"] .premium-alert-warning { | |
| background: linear-gradient(135deg, rgba(245, 158, 11, 0.15), rgba(217, 119, 6, 0.1)); | |
| border-color: rgba(245, 158, 11, 0.3); | |
| color: #fbbf24; | |
| } | |
| /* =========================================== | |
| PREMIUM LOADING STATE | |
| =========================================== */ | |
| .premium-loading { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| min-height: 60vh; | |
| gap: 24px; | |
| } | |
| .premium-loading-spinner { | |
| width: 64px; | |
| height: 64px; | |
| border: 4px solid var(--premium-border-subtle); | |
| border-top-color: #00cccc; | |
| border-radius: 50%; | |
| animation: premium-spin 1s linear infinite; | |
| } | |
| @keyframes premium-spin { | |
| to { | |
| transform: rotate(360deg); | |
| } | |
| } | |
| .premium-loading-text { | |
| font-size: 1.1rem; | |
| font-weight: 600; | |
| color: var(--premium-text-muted); | |
| } | |
| /* =========================================== | |
| PREMIUM EMPTY STATE | |
| =========================================== */ | |
| .premium-empty-state { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| padding: 60px 40px; | |
| text-align: center; | |
| background: var(--premium-card-bg); | |
| border: 1px dashed var(--premium-border-subtle); | |
| border-radius: 24px; | |
| } | |
| .premium-empty-icon { | |
| width: 80px; | |
| height: 80px; | |
| border-radius: 24px; | |
| background: linear-gradient(135deg, rgba(147, 177, 181, 0.1), rgba(79, 124, 130, 0.08)); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| margin-bottom: 24px; | |
| color: #00cccc; | |
| } | |
| [data-theme="dark"] .premium-empty-icon { | |
| background: linear-gradient(135deg, rgba(139, 92, 246, 0.2), rgba(99, 102, 241, 0.15)); | |
| color: #a78bfa; | |
| } | |
| .premium-empty-title { | |
| font-size: 1.35rem; | |
| font-weight: 700; | |
| color: var(--premium-text-primary); | |
| margin-bottom: 8px; | |
| } | |
| .premium-empty-description { | |
| font-size: 1rem; | |
| color: var(--premium-text-muted); | |
| max-width: 400px; | |
| margin-bottom: 24px; | |
| } | |
| /* =========================================== | |
| PREMIUM LIST ITEMS | |
| =========================================== */ | |
| .premium-list-item { | |
| display: flex; | |
| align-items: center; | |
| gap: 16px; | |
| padding: 20px 24px; | |
| background: var(--premium-card-bg); | |
| border: 1px solid var(--premium-border-subtle); | |
| border-radius: 16px; | |
| cursor: pointer; | |
| transition: var(--premium-transition); | |
| margin-bottom: 12px; | |
| } | |
| .premium-list-item:hover { | |
| border-color: var(--premium-border-glow); | |
| transform: translateX(4px); | |
| box-shadow: 0 8px 25px var(--premium-card-glow); | |
| } | |
| .premium-list-item.active { | |
| border-color: #00cccc; | |
| background: linear-gradient(135deg, rgba(147, 177, 181, 0.08), rgba(79, 124, 130, 0.04)); | |
| box-shadow: 0 0 30px rgba(147, 177, 181, 0.15); | |
| } | |
| [data-theme="dark"] .premium-list-item.active { | |
| background: linear-gradient(135deg, rgba(139, 92, 246, 0.15), rgba(99, 102, 241, 0.08)); | |
| } | |
| .premium-list-icon { | |
| width: 48px; | |
| height: 48px; | |
| border-radius: 14px; | |
| background: linear-gradient(135deg, rgba(147, 177, 181, 0.12), rgba(79, 124, 130, 0.08)); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| color: #7c3aed; | |
| flex-shrink: 0; | |
| } | |
| [data-theme="dark"] .premium-list-icon { | |
| background: linear-gradient(135deg, rgba(139, 92, 246, 0.2), rgba(99, 102, 241, 0.12)); | |
| color: #a78bfa; | |
| } | |
| /* =========================================== | |
| PREMIUM GRID LAYOUTS | |
| =========================================== */ | |
| .premium-grid-2 { | |
| display: grid; | |
| grid-template-columns: repeat(2, 1fr); | |
| gap: 24px; | |
| } | |
| .premium-grid-3 { | |
| display: grid; | |
| grid-template-columns: repeat(3, 1fr); | |
| gap: 24px; | |
| } | |
| .premium-grid-auto { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); | |
| gap: 24px; | |
| } | |
| /* =========================================== | |
| PREMIUM ANIMATIONS | |
| =========================================== */ | |
| @keyframes premium-fadeInUp { | |
| from { | |
| opacity: 0; | |
| transform: translateY(20px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| @keyframes premium-fadeIn { | |
| from { | |
| opacity: 0; | |
| } | |
| to { | |
| opacity: 1; | |
| } | |
| } | |
| @keyframes premium-scaleIn { | |
| from { | |
| opacity: 0; | |
| transform: scale(0.95); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: scale(1); | |
| } | |
| } | |
| .premium-animate-in { | |
| animation: premium-fadeInUp 0.5s ease forwards; | |
| } | |
| .premium-animate-stagger>* { | |
| opacity: 0; | |
| animation: premium-fadeInUp 0.4s ease forwards; | |
| } | |
| .premium-animate-stagger>*:nth-child(1) { | |
| animation-delay: 0.1s; | |
| } | |
| .premium-animate-stagger>*:nth-child(2) { | |
| animation-delay: 0.2s; | |
| } | |
| .premium-animate-stagger>*:nth-child(3) { | |
| animation-delay: 0.3s; | |
| } | |
| .premium-animate-stagger>*:nth-child(4) { | |
| animation-delay: 0.4s; | |
| } | |
| .premium-animate-stagger>*:nth-child(5) { | |
| animation-delay: 0.5s; | |
| } | |
| .premium-animate-stagger>*:nth-child(6) { | |
| animation-delay: 0.6s; | |
| } | |
| /* =========================================== | |
| PREMIUM SIDEBAR | |
| =========================================== */ | |
| .premium-sidebar { | |
| background: var(--premium-card-bg); | |
| backdrop-filter: blur(20px); | |
| border: 1px solid var(--premium-card-border); | |
| border-radius: 24px; | |
| padding: 28px; | |
| position: sticky; | |
| top: 100px; | |
| } | |
| .premium-sidebar-header { | |
| text-align: center; | |
| padding-bottom: 24px; | |
| border-bottom: 1px solid var(--premium-border-subtle); | |
| margin-bottom: 24px; | |
| } | |
| .premium-sidebar-avatar { | |
| width: 80px; | |
| height: 80px; | |
| border-radius: 50%; | |
| background: var(--premium-gradient-primary); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| font-size: 2rem; | |
| font-weight: 700; | |
| color: #ffffff; | |
| margin: 0 auto 16px; | |
| box-shadow: 0 8px 30px rgba(79, 124, 130, 0.3); | |
| } | |
| .premium-sidebar-name { | |
| font-size: 1.2rem; | |
| font-weight: 700; | |
| color: var(--premium-text-primary); | |
| margin-bottom: 4px; | |
| } | |
| .premium-sidebar-email { | |
| font-size: 0.9rem; | |
| color: var(--premium-text-muted); | |
| } | |
| .premium-sidebar-nav { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 8px; | |
| } | |
| .premium-sidebar-link { | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| padding: 14px 18px; | |
| font-size: 0.95rem; | |
| font-weight: 600; | |
| color: var(--premium-text-secondary); | |
| background: transparent; | |
| border: none; | |
| border-radius: 14px; | |
| cursor: pointer; | |
| transition: var(--premium-transition); | |
| text-align: left; | |
| width: 100%; | |
| } | |
| .premium-sidebar-link:hover { | |
| background: rgba(147, 177, 181, 0.08); | |
| color: var(--premium-text-primary); | |
| } | |
| .premium-sidebar-link.active { | |
| background: var(--premium-gradient-primary); | |
| color: #ffffff; | |
| box-shadow: 0 4px 20px rgba(79, 124, 130, 0.3); | |
| } | |
| /* =========================================== | |
| PREMIUM RESPONSIVE BREAKPOINTS | |
| =========================================== */ | |
| @media (max-width: 1024px) { | |
| .premium-grid-3 { | |
| grid-template-columns: repeat(2, 1fr); | |
| } | |
| } | |
| @media (max-width: 768px) { | |
| .premium-title { | |
| font-size: 2rem; | |
| } | |
| .premium-subtitle { | |
| font-size: 1rem; | |
| } | |
| .premium-card, | |
| .premium-section { | |
| padding: 24px; | |
| border-radius: 20px; | |
| } | |
| .premium-grid-2, | |
| .premium-grid-3 { | |
| grid-template-columns: 1fr; | |
| } | |
| .premium-stats-grid { | |
| grid-template-columns: repeat(2, 1fr); | |
| gap: 16px; | |
| } | |
| .premium-stat-card { | |
| padding: 20px; | |
| } | |
| .premium-stat-value { | |
| font-size: 1.75rem; | |
| } | |
| .premium-btn-cta { | |
| padding: 18px 40px; | |
| font-size: 1.1rem; | |
| } | |
| .premium-tabs { | |
| flex-direction: column; | |
| } | |
| .premium-sidebar { | |
| position: static; | |
| margin-bottom: 24px; | |
| } | |
| } | |
| @media (max-width: 480px) { | |
| .premium-header { | |
| margin-bottom: 32px; | |
| } | |
| .premium-title { | |
| font-size: 1.75rem; | |
| flex-direction: column; | |
| gap: 8px; | |
| } | |
| .premium-badge { | |
| padding: 8px 16px; | |
| font-size: 0.8rem; | |
| } | |
| .premium-card, | |
| .premium-section { | |
| padding: 20px; | |
| border-radius: 16px; | |
| } | |
| .premium-stats-grid { | |
| gap: 12px; | |
| } | |
| .premium-stat-card { | |
| padding: 16px; | |
| } | |
| .premium-stat-icon { | |
| width: 44px; | |
| height: 44px; | |
| } | |
| .premium-stat-value { | |
| font-size: 1.5rem; | |
| } | |
| .premium-stat-label { | |
| font-size: 0.8rem; | |
| } | |
| .premium-btn { | |
| padding: 14px 28px; | |
| font-size: 1rem; | |
| } | |
| .premium-btn-cta { | |
| padding: 16px 32px; | |
| font-size: 1rem; | |
| width: 100%; | |
| } | |
| } | |
| /* =========================================== | |
| INTERVIEW MODE SELECTOR - PREMIUM GLASSMORPHISM | |
| Modern SaaS-style mode selection cards | |
| =========================================== */ | |
| /* Mode Cards - Base Styles */ | |
| .mode-card { | |
| cursor: pointer; | |
| border-radius: 20px; | |
| padding: 24px; | |
| transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1); | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| /* Light Mode */ | |
| .mode-card { | |
| background: linear-gradient(145deg, rgba(255, 255, 255, 0.95), rgba(248, 250, 252, 0.9)); | |
| border: 1.5px solid rgba(203, 213, 225, 0.5); | |
| box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06), inset 0 1px 0 rgba(255,255,255,0.9); | |
| } | |
| .mode-card:hover:not(.locked):not(.disabled) { | |
| transform: translateY(-4px) scale(1.02); | |
| box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12), inset 0 1px 0 rgba(255,255,255,0.9); | |
| } | |
| .mode-card.selected { | |
| border-width: 2px; | |
| box-shadow: 0 8px 32px var(--mode-color, rgba(79, 124, 130, 0.3)), 0 4px 16px rgba(0, 0, 0, 0.1); | |
| } | |
| /* Dark Mode - Mode Cards */ | |
| [data-theme="dark"] .mode-card, | |
| .dark .mode-card, | |
| html[data-theme="dark"] .mode-card { | |
| background: linear-gradient(145deg, rgba(30, 41, 59, 0.9), rgba(15, 23, 42, 0.85)) ; | |
| border-color: rgba(148, 163, 184, 0.15) ; | |
| box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255,255,255,0.05) ; | |
| backdrop-filter: blur(20px); | |
| -webkit-backdrop-filter: blur(20px); | |
| } | |
| [data-theme="dark"] .mode-card:hover:not(.locked):not(.disabled), | |
| .dark .mode-card:hover:not(.locked):not(.disabled) { | |
| background: linear-gradient(145deg, rgba(51, 65, 85, 0.95), rgba(30, 41, 59, 0.9)) ; | |
| box-shadow: 0 16px 48px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255,255,255,0.08) ; | |
| transform: translateY(-6px) scale(1.02); | |
| } | |
| [data-theme="dark"] .mode-card.selected, | |
| .dark .mode-card.selected { | |
| background: linear-gradient(145deg, rgba(30, 41, 59, 0.95), rgba(15, 23, 42, 0.9)) ; | |
| box-shadow: 0 8px 40px var(--mode-color, rgba(79, 124, 130, 0.35)), | |
| 0 4px 20px rgba(0, 0, 0, 0.3), | |
| inset 0 1px 0 rgba(255,255,255,0.1) ; | |
| } | |
| /* Mode Names - Clear Typography */ | |
| .mode-name { | |
| font-weight: 700 ; | |
| font-size: 1.15rem; | |
| letter-spacing: -0.01em; | |
| } | |
| [data-theme="dark"] .mode-name, | |
| .dark .mode-name, | |
| [data-theme="dark"] .mode-content h3, | |
| .dark .mode-content h3 { | |
| color: #e8f4f6 ; | |
| } | |
| /* Mode Descriptions */ | |
| [data-theme="dark"] .mode-description, | |
| .dark .mode-description, | |
| [data-theme="dark"] .mode-content p, | |
| .dark .mode-content p { | |
| color: #93B1B5 ; | |
| } | |
| /* Mode Icons (Emojis) - CLEAR & VISIBLE */ | |
| .mode-icon { | |
| font-size: 3.5rem ; | |
| filter: none ; | |
| text-shadow: none ; | |
| transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| .mode-card:hover:not(.locked):not(.disabled) .mode-icon { | |
| transform: scale(1.1); | |
| } | |
| .mode-card.selected .mode-icon { | |
| animation: emojiPop 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); | |
| } | |
| @keyframes emojiPop { | |
| 0% { transform: scale(1); } | |
| 50% { transform: scale(1.15); } | |
| 100% { transform: scale(1.05); } | |
| } | |
| /* Tier Badges - Modern Style */ | |
| .mode-tier-badge { | |
| font-weight: 700 ; | |
| text-transform: uppercase; | |
| letter-spacing: 0.5px; | |
| border-radius: 12px ; | |
| } | |
| [data-theme="dark"] .mode-tier-badge, | |
| .dark .mode-tier-badge { | |
| filter: none ; | |
| } | |
| /* Mode Header & Title */ | |
| [data-theme="dark"] .mode-selector-header h3, | |
| .dark .mode-selector-header h3 { | |
| color: #e8f4f6 ; | |
| } | |
| [data-theme="dark"] .mode-selector-header p, | |
| .dark .mode-selector-header p { | |
| color: #93B1B5 ; | |
| } | |
| /* Personality Subselector (Final Boss) */ | |
| [data-theme="dark"] .personality-subselector, | |
| .dark .personality-subselector { | |
| background: linear-gradient(135deg, rgba(239, 68, 68, 0.12), rgba(239, 68, 68, 0.06)) ; | |
| border-color: rgba(239, 68, 68, 0.35) ; | |
| border-radius: 16px; | |
| } | |
| [data-theme="dark"] .subselector-trigger, | |
| .dark .subselector-trigger { | |
| background: rgba(30, 41, 59, 0.95) ; | |
| } | |
| [data-theme="dark"] .subselector-dropdown, | |
| .dark .subselector-dropdown { | |
| background: rgba(30, 41, 59, 0.98) ; | |
| backdrop-filter: blur(20px); | |
| } | |
| [data-theme="dark"] .dropdown-option:hover, | |
| .dark .dropdown-option:hover { | |
| background: rgba(239, 68, 68, 0.15) ; | |
| } | |
| [data-theme="dark"] .persona-name, | |
| .dark .persona-name { | |
| color: #d4eaee ; | |
| } | |
| [data-theme="dark"] .persona-desc, | |
| .dark .persona-desc { | |
| color: #93B1B5 ; | |
| } | |
| /* Persona Icons - Clear visibility */ | |
| .persona-icon { | |
| font-size: 2rem ; | |
| filter: none ; | |
| } | |
| /* Feature Tags - Clean Design */ | |
| .feature-tag { | |
| font-weight: 600 ; | |
| transition: transform 0.2s ease, box-shadow 0.2s ease; | |
| } | |
| .mode-card:hover .feature-tag { | |
| transform: translateY(-1px); | |
| } | |
| [data-theme="dark"] .feature-tag, | |
| .dark .feature-tag { | |
| filter: none ; | |
| } |