/** * 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 !important; } .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 !important; } .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 !important; } 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 !important; background: transparent !important; padding: var(--space-3) !important; box-shadow: none !important; } .input-container .chat-input:focus { border: none !important; box-shadow: none !important; } /* 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 !important; 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 !important; } } @media (min-width: 769px) { .hide-desktop { display: none !important; } } /* =========================================== 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 !important; } 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 !important; /* 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 !important; /* 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) !important; } /* =========================================== 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)) !important; border-color: rgba(148, 163, 184, 0.15) !important; box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255,255,255,0.05) !important; 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)) !important; box-shadow: 0 16px 48px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255,255,255,0.08) !important; 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)) !important; 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) !important; } /* Mode Names - Clear Typography */ .mode-name { font-weight: 700 !important; 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 !important; } /* Mode Descriptions */ [data-theme="dark"] .mode-description, .dark .mode-description, [data-theme="dark"] .mode-content p, .dark .mode-content p { color: #93B1B5 !important; } /* Mode Icons (Emojis) - CLEAR & VISIBLE */ .mode-icon { font-size: 3.5rem !important; filter: none !important; text-shadow: none !important; 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 !important; text-transform: uppercase; letter-spacing: 0.5px; border-radius: 12px !important; } [data-theme="dark"] .mode-tier-badge, .dark .mode-tier-badge { filter: none !important; } /* Mode Header & Title */ [data-theme="dark"] .mode-selector-header h3, .dark .mode-selector-header h3 { color: #e8f4f6 !important; } [data-theme="dark"] .mode-selector-header p, .dark .mode-selector-header p { color: #93B1B5 !important; } /* 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)) !important; border-color: rgba(239, 68, 68, 0.35) !important; border-radius: 16px; } [data-theme="dark"] .subselector-trigger, .dark .subselector-trigger { background: rgba(30, 41, 59, 0.95) !important; } [data-theme="dark"] .subselector-dropdown, .dark .subselector-dropdown { background: rgba(30, 41, 59, 0.98) !important; backdrop-filter: blur(20px); } [data-theme="dark"] .dropdown-option:hover, .dark .dropdown-option:hover { background: rgba(239, 68, 68, 0.15) !important; } [data-theme="dark"] .persona-name, .dark .persona-name { color: #d4eaee !important; } [data-theme="dark"] .persona-desc, .dark .persona-desc { color: #93B1B5 !important; } /* Persona Icons - Clear visibility */ .persona-icon { font-size: 2rem !important; filter: none !important; } /* Feature Tags - Clean Design */ .feature-tag { font-weight: 600 !important; 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 !important; }