chowdary1's picture
V2 Full Sync: 4-mode architecture, compiler, RAG, neon theme, round detection fix, camera toggle
7fff83a
Raw History Blame Contribute Delete
356 kB
/**
* AI Interviewer Pro Max - Premium Theme System
* Modern AI SaaS Design with Dark/Light Mode
*/
/* ===========================================
GOOGLE FONTS - Inter & Poppins
=========================================== */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Poppins:wght@400;500;600;700&display=swap');
/* ===========================================
CSS VARIABLES - LIGHT MODE (Default)
Palette: #FF00FF · #00FFFF · #CCFF00 · #191970
=========================================== */
:root,
[data-theme="light"] {
/* Background Colors - Neon Frost */
--bg-primary: #f0eef8;
--bg-secondary: #e4e0f2;
--bg-tertiary: #d6d0ea;
--bg-card: #f4f2fa;
--bg-card-hover: #eae5f6;
--bg-glass: rgba(210, 200, 240, 0.55);
/* Text Colors - Midnight Blue anchor */
--text-primary: #191970;
--text-secondary: #2b2b8a;
--text-muted: #7272a8;
--text-inverse: #ffffff;
/* Primary - Magenta */
--primary: #d000d0;
--primary-dark: #a500a5;
--primary-light: #f050f0;
--primary-gradient: linear-gradient(135deg, #FF00FF 0%, #00FFFF 100%);
--primary-glow: rgba(255, 0, 255, 0.25);
/* Accent - Cyan & Lime */
--accent-primary: #d000d0;
--accent-secondary: #00cccc;
--accent: #00cccc;
--accent-light: #66ffff;
--accent-gradient: linear-gradient(135deg, #00FFFF 0%, #CCFF00 100%);
/* Status Colors */
--success: #10b981;
--success-bg: rgba(16, 185, 129, 0.12);
--warning: #f59e0b;
--warning-bg: rgba(245, 158, 11, 0.12);
--danger: #ef4444;
--danger-bg: rgba(239, 68, 68, 0.12);
--info: #00b8b8;
--info-bg: rgba(0, 255, 255, 0.10);
/* Borders - Purple-tinted */
--border-color: #c4b8de;
--border-light: #d8d0ec;
--border-primary: rgba(208, 0, 208, 0.18);
--border-secondary: rgba(0, 204, 204, 0.25);
--border-accent: rgba(255, 0, 255, 0.30);
/* Shadows - Midnight-tinted */
--shadow-sm: 0 1px 2px rgba(25, 25, 112, 0.06);
--shadow-md: 0 4px 6px -1px rgba(25, 25, 112, 0.10), 0 2px 4px -2px rgba(25, 25, 112, 0.05);
--shadow-lg: 0 10px 15px -3px rgba(25, 25, 112, 0.10), 0 4px 6px -4px rgba(25, 25, 112, 0.05);
--shadow-xl: 0 20px 25px -5px rgba(25, 25, 112, 0.12), 0 8px 10px -6px rgba(25, 25, 112, 0.05);
--shadow-glow: 0 0 20px rgba(255, 0, 255, 0.18);
--shadow-card: 0 4px 20px rgba(25, 25, 112, 0.07);
/* Glass Effect - Frosted Neon */
--glass-bg: rgba(240, 238, 248, 0.72);
--glass-border: rgba(210, 200, 240, 0.45);
--glass-blur: blur(12px);
/* Navbar */
--navbar-bg: rgba(240, 238, 248, 0.90);
--navbar-border: rgba(208, 0, 208, 0.08);
/* Stats */
--stat-bg: rgba(208, 0, 208, 0.10);
--stat-rating-bg: rgba(204, 255, 0, 0.18);
--text-accent: #d000d0;
/* Robot bg */
--robot-opacity: 0.6;
--robot-glow: rgba(255, 0, 255, 0.06);
--bg-overlay-color: rgba(240, 238, 248, 0.5);
}
/* ===========================================
CSS VARIABLES - DARK MODE
=========================================== */
[data-theme="dark"] {
/* Background Colors */
--bg-primary: #0b1120;
--bg-secondary: #0f172a;
--bg-tertiary: #1e293b;
--bg-card: #111827;
--bg-card-hover: #1e293b;
--bg-glass: rgba(17, 24, 39, 0.8);
/* Text Colors */
--text-primary: #f1f5f9;
--text-secondary: #94a3b8;
--text-muted: #64748b;
--text-inverse: #0f172a;
/* Primary - Premium Blue */
--primary: #5b8aff;
--primary-dark: #4f7cff;
--primary-light: #7da5ff;
--primary-gradient: linear-gradient(90deg, #5b8aff 0%, #38bdf8 100%);
--primary-glow: rgba(91, 138, 255, 0.4);
/* Accent - Cyan Glow */
--accent: #22d3ee;
--accent-light: #67e8f9;
--accent-gradient: linear-gradient(135deg, #22d3ee 0%, #818cf8 100%);
/* Status Colors */
--success: #34d399;
--success-bg: rgba(52, 211, 153, 0.15);
--warning: #fbbf24;
--warning-bg: rgba(251, 191, 36, 0.15);
--danger: #f87171;
--danger-bg: rgba(248, 113, 113, 0.15);
--info: #60a5fa;
--info-bg: rgba(96, 165, 250, 0.15);
/* Borders */
--border-color: #1e293b;
--border-light: #334155;
/* Shadows */
--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.4);
--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.5);
--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.6);
--shadow-glow: 0 0 30px rgba(129, 140, 248, 0.25);
--shadow-card: 0 4px 20px rgba(0, 0, 0, 0.3);
/* Glass Effect */
--glass-bg: rgba(17, 24, 39, 0.7);
--glass-border: rgba(255, 255, 255, 0.08);
--glass-blur: blur(16px);
/* Navbar */
--navbar-bg: rgba(11, 17, 32, 0.9);
--navbar-border: rgba(255, 255, 255, 0.05);
}
/* ===========================================
TYPOGRAPHY & SPACING
=========================================== */
:root {
/* Font Families */
--font-primary: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
--font-display: 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
/* Font Sizes */
--text-xs: 0.75rem;
--text-sm: 0.875rem;
--text-base: 1rem;
--text-lg: 1.125rem;
--text-xl: 1.25rem;
--text-2xl: 1.5rem;
--text-3xl: 2rem;
--text-4xl: 2.5rem;
--text-5xl: 3rem;
/* Font Weights */
--font-normal: 400;
--font-medium: 500;
--font-semibold: 600;
--font-bold: 700;
--font-extrabold: 800;
/* Line Heights */
--leading-tight: 1.25;
--leading-normal: 1.5;
--leading-relaxed: 1.625;
/* Spacing */
--space-1: 0.25rem;
--space-2: 0.5rem;
--space-3: 0.75rem;
--space-4: 1rem;
--space-5: 1.25rem;
--space-6: 1.5rem;
--space-8: 2rem;
--space-10: 2.5rem;
--space-12: 3rem;
--space-16: 4rem;
--space-20: 5rem;
/* Border Radius */
--radius-sm: 0.375rem;
--radius-md: 0.5rem;
--radius-lg: 0.75rem;
--radius-xl: 1rem;
--radius-2xl: 1.25rem;
--radius-3xl: 1.5rem;
--radius-full: 9999px;
/* Transitions */
--transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
--transition-base: 250ms cubic-bezier(0.4, 0, 0.2, 1);
--transition-slow: 350ms cubic-bezier(0.4, 0, 0.2, 1);
--transition-bounce: 500ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
}
/* ===========================================
RESET & BASE STYLES
=========================================== */
*,
*::before,
*::after {
box-sizing: border-box;
margin: 0;
padding: 0;
}
html {
font-size: 16px;
scroll-behavior: smooth;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
body {
font-family: var(--font-primary);
font-size: var(--text-base);
line-height: var(--leading-normal);
color: var(--text-primary);
background: var(--bg-primary);
min-height: 100vh;
transition: background-color var(--transition-base), color var(--transition-base);
}
/* Dark mode body gradient */
[data-theme="dark"] body {
background: linear-gradient(180deg, var(--bg-primary) 0%, var(--bg-secondary) 100%);
}
a {
color: var(--primary);
text-decoration: none;
transition: color var(--transition-fast);
}
a:hover {
color: var(--primary-light);
}
button {
font-family: inherit;
cursor: pointer;
border: none;
background: none;
transition: all var(--transition-base);
}
button:disabled {
cursor: not-allowed;
opacity: 0.6;
}
input,
textarea,
select {
font-family: inherit;
font-size: inherit;
color: var(--text-primary);
background: var(--bg-primary);
border: 1px solid var(--border-color);
transition: all var(--transition-fast);
}
::selection {
background: var(--primary);
color: white;
}
/* ===========================================
BUTTONS
=========================================== */
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: var(--space-2);
padding: var(--space-3) var(--space-6);
font-weight: var(--font-semibold);
font-size: var(--text-sm);
border-radius: var(--radius-xl);
transition: all var(--transition-base);
white-space: nowrap;
}
.btn-primary {
background: var(--primary-gradient);
color: white;
box-shadow: var(--shadow-md), 0 0 20px var(--primary-glow);
}
.btn-primary:hover:not(:disabled) {
transform: translateY(-2px);
box-shadow: var(--shadow-lg), 0 0 30px var(--primary-glow);
}
.btn-primary:active:not(:disabled) {
transform: translateY(0);
}
.btn-secondary {
background: var(--bg-tertiary);
color: var(--text-primary);
border: 1px solid var(--border-color);
}
.btn-secondary:hover:not(:disabled) {
background: var(--bg-card-hover);
border-color: var(--primary);
}
.btn-ghost {
background: transparent;
color: var(--text-secondary);
}
.btn-ghost:hover:not(:disabled) {
background: var(--bg-tertiary);
color: var(--text-primary);
}
.btn-danger {
background: var(--danger);
color: white;
}
.btn-danger:hover:not(:disabled) {
background: #dc2626;
transform: translateY(-2px);
}
.btn-lg {
height: 48px;
padding: 0 var(--space-6);
font-size: var(--text-base);
border-radius: 12px;
}
.btn-sm {
padding: var(--space-2) var(--space-4);
font-size: var(--text-xs);
border-radius: var(--radius-lg);
}
.btn-icon {
width: 40px;
height: 40px;
padding: 0;
border-radius: var(--radius-lg);
}
/* ===========================================
FORM ELEMENTS
=========================================== */
.form-group {
margin-bottom: var(--space-6);
}
.form-group label {
display: block;
margin-bottom: var(--space-2);
font-weight: var(--font-medium);
font-size: var(--text-sm);
color: var(--text-secondary);
}
.form-input,
.form-group input,
.form-group select,
.form-group textarea {
width: 100%;
padding: var(--space-3) var(--space-4);
font-size: var(--text-base);
background: var(--bg-card);
border: 2px solid var(--border-color);
border-radius: var(--radius-xl);
outline: none;
transition: all var(--transition-fast);
}
.form-input:focus,
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
border-color: var(--primary);
box-shadow: 0 0 0 4px var(--primary-glow);
}
.form-input::placeholder {
color: var(--text-muted);
}
.form-hint {
display: block;
margin-top: var(--space-2);
font-size: var(--text-xs);
color: var(--text-muted);
}
/* ===========================================
CARDS
=========================================== */
.card {
background: var(--bg-card);
border: 1px solid var(--border-color);
border-radius: var(--radius-2xl);
padding: var(--space-6);
box-shadow: var(--shadow-card);
transition: all var(--transition-base);
}
.card:hover {
box-shadow: var(--shadow-lg);
}
.card-glass {
background: var(--glass-bg);
backdrop-filter: var(--glass-blur);
-webkit-backdrop-filter: var(--glass-blur);
border: 1px solid var(--glass-border);
}
[data-theme="dark"] .card-glass {
box-shadow: var(--shadow-glow);
}
/* ===========================================
NAVBAR - Premium Sticky Navigation
=========================================== */
.navbar {
position: sticky;
top: 0;
z-index: 100;
display: flex;
align-items: center;
justify-content: space-between;
padding: var(--space-3) var(--space-8);
background: rgba(216, 239, 243, 0.82);
backdrop-filter: blur(18px) saturate(140%);
-webkit-backdrop-filter: blur(18px) saturate(140%);
border-bottom: 1px solid rgba(79, 124, 130, 0.12);
transition: all 0.3s ease;
}
/* Winter Chill teal text on the icy navbar (light mode) */
.navbar .nav-link {
color: rgba(11, 46, 51, 0.75);
}
.navbar .nav-link:hover {
color: #191970;
background: rgba(79, 124, 130, 0.08);
}
.navbar .nav-link.active {
color: #3d6268;
background: rgba(79, 124, 130, 0.12);
}
.navbar .theme-toggle {
background: rgba(79, 124, 130, 0.08);
color: rgba(11, 46, 51, 0.75);
}
.navbar .user-name {
color: #191970;
}
.navbar .chevron {
color: rgba(11, 46, 51, 0.6);
}
.navbar .user-button {
background: rgba(79, 124, 130, 0.08);
border-color: rgba(79, 124, 130, 0.2);
}
/* Dark mode: keep original dark navbar */
[data-theme="dark"] .navbar {
background: rgba(15, 23, 42, 0.75);
border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
[data-theme="dark"] .navbar .nav-link {
color: rgba(203, 213, 225, 0.85);
}
[data-theme="dark"] .navbar .nav-link:hover {
color: #f1f5f9;
background: rgba(255, 255, 255, 0.08);
}
[data-theme="dark"] .navbar .nav-link.active {
color: #60a5fa;
background: rgba(59, 130, 246, 0.15);
}
[data-theme="dark"] .navbar .theme-toggle {
background: rgba(255, 255, 255, 0.08);
color: rgba(203, 213, 225, 0.85);
}
[data-theme="dark"] .navbar .user-name {
color: #f1f5f9;
}
[data-theme="dark"] .navbar .chevron {
color: rgba(203, 213, 225, 0.85);
}
[data-theme="dark"] .navbar .user-button {
background: linear-gradient(135deg, rgba(59, 130, 246, 0.15) 0%, rgba(139, 92, 246, 0.1) 100%);
border-color: rgba(99, 102, 241, 0.3);
}
.navbar-brand {
display: flex;
align-items: center;
gap: var(--space-3);
cursor: pointer;
transition: all 0.3s ease;
}
.navbar-brand:hover {
transform: scale(1.02);
}
.navbar-brand .logo-icon {
display: flex;
align-items: center;
justify-content: center;
width: 40px;
height: 40px;
border-radius: 12px;
overflow: hidden;
box-shadow: 0 4px 15px rgba(236, 72, 153, 0.35);
transition: all 0.3s ease;
}
.navbar-brand:hover .logo-icon {
box-shadow: 0 6px 20px rgba(236, 72, 153, 0.5);
transform: rotate(-5deg);
}
.navbar-brand .logo-sparkle {
color: white;
filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.2));
}
.logo-img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
.navbar-brand .brand-text {
font-family: var(--font-display);
font-weight: 800;
font-size: 1.25rem;
background: linear-gradient(135deg, #ec4899 0%, #f43f5e 50%, #ef4444 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
letter-spacing: -0.02em;
}
.navbar-menu {
display: flex;
align-items: center;
gap: var(--space-1);
}
.nav-link {
display: flex;
align-items: center;
gap: 8px;
padding: 10px 18px;
font-weight: 600;
font-size: 0.9rem;
color: #7272a8;
border-radius: 12px;
transition: all 0.25s ease;
position: relative;
}
.nav-link span {
position: relative;
}
.nav-link:hover {
color: #191970;
background: rgba(0, 0, 0, 0.04);
}
[data-theme="dark"] .nav-link {
color: #94a3b8;
}
[data-theme="dark"] .nav-link:hover {
color: #f1f5f9;
background: rgba(255, 255, 255, 0.06);
}
.nav-link.active {
color: #d000d0;
background: rgba(79, 124, 130, 0.08);
}
.nav-link.active::after {
content: '';
position: absolute;
bottom: 6px;
left: 50%;
transform: translateX(-50%);
width: 20px;
height: 3px;
background: linear-gradient(90deg, #d000d0, #00cccc);
border-radius: 2px;
}
[data-theme="dark"] .nav-link.active {
color: #60a5fa;
background: rgba(59, 130, 246, 0.12);
}
.nav-link svg {
transition: transform 0.2s ease;
}
.nav-link:hover svg {
transform: scale(1.1);
}
/* Theme Toggle Button */
.theme-toggle {
display: flex;
align-items: center;
justify-content: center;
width: 44px;
height: 44px;
border-radius: 12px;
background: rgba(0, 0, 0, 0.04);
color: #7272a8;
transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
margin-left: var(--space-2);
margin-right: var(--space-2);
border: 1px solid transparent;
}
[data-theme="dark"] .theme-toggle {
background: rgba(255, 255, 255, 0.06);
color: #94a3b8;
}
.theme-toggle:hover {
background: rgba(79, 124, 130, 0.1);
color: #d000d0;
border-color: rgba(79, 124, 130, 0.2);
transform: rotate(15deg) scale(1.05);
}
[data-theme="dark"] .theme-toggle:hover {
background: rgba(251, 191, 36, 0.15);
color: #fbbf24;
border-color: rgba(251, 191, 36, 0.3);
box-shadow: 0 0 20px rgba(251, 191, 36, 0.2);
}
.theme-icon {
display: flex;
align-items: center;
justify-content: center;
transition: transform 0.3s ease;
}
.theme-toggle:hover .theme-icon {
transform: scale(1.1);
}
/* User Menu */
.user-menu {
position: relative;
}
.user-button {
display: flex;
align-items: center;
gap: 10px;
padding: 6px 14px 6px 6px;
border-radius: 50px;
background: linear-gradient(135deg, rgba(79, 124, 130, 0.1) 0%, rgba(147, 177, 181, 0.08) 100%);
border: 1.5px solid rgba(79, 124, 130, 0.2);
transition: all 0.3s ease;
}
[data-theme="dark"] .user-button {
background: linear-gradient(135deg, rgba(59, 130, 246, 0.15) 0%, rgba(139, 92, 246, 0.1) 100%);
border-color: rgba(99, 102, 241, 0.3);
}
.user-button:hover {
border-color: rgba(79, 124, 130, 0.5);
box-shadow: 0 4px 20px rgba(79, 124, 130, 0.2);
transform: translateY(-1px);
}
[data-theme="dark"] .user-button:hover {
box-shadow: 0 4px 25px rgba(99, 102, 241, 0.3);
}
.user-avatar {
display: flex;
align-items: center;
justify-content: center;
width: 36px;
height: 36px;
background: linear-gradient(135deg, #d000d0 0%, #00cccc 100%);
border-radius: 50%;
font-weight: 700;
font-size: 0.95rem;
color: white;
text-transform: uppercase;
box-shadow: 0 2px 8px rgba(79, 124, 130, 0.3);
}
.user-name {
font-weight: 600;
font-size: 0.9rem;
color: #191970;
max-width: 120px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
[data-theme="dark"] .user-name {
color: #f1f5f9;
}
.chevron {
color: #7272a8;
transition: transform 0.3s ease;
}
.chevron.open {
transform: rotate(180deg);
}
[data-theme="dark"] .chevron {
color: #94a3b8;
}
.menu-backdrop {
position: fixed;
inset: 0;
z-index: 9;
}
.dropdown-menu {
position: absolute;
top: calc(100% + 8px);
right: 0;
min-width: 220px;
background: rgba(255, 255, 255, 0.98);
backdrop-filter: blur(20px);
border: 1px solid rgba(0, 0, 0, 0.08);
border-radius: 16px;
box-shadow:
0 10px 40px rgba(0, 0, 0, 0.12),
0 2px 10px rgba(0, 0, 0, 0.08);
z-index: 10;
overflow: hidden;
animation: slideDown 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
[data-theme="dark"] .dropdown-menu {
background: rgba(30, 41, 59, 0.98);
border-color: rgba(255, 255, 255, 0.1);
box-shadow:
0 10px 50px rgba(0, 0, 0, 0.4),
0 0 0 1px rgba(255, 255, 255, 0.05);
}
@keyframes slideDown {
from {
opacity: 0;
transform: translateY(-10px) scale(0.95);
}
to {
opacity: 1;
transform: translateY(0) scale(1);
}
}
.dropdown-header {
padding: var(--space-4);
background: linear-gradient(135deg, rgba(79, 124, 130, 0.08) 0%, rgba(147, 177, 181, 0.05) 100%);
border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
[data-theme="dark"] .dropdown-header {
background: linear-gradient(135deg, rgba(59, 130, 246, 0.12) 0%, rgba(139, 92, 246, 0.08) 100%);
border-bottom-color: rgba(255, 255, 255, 0.08);
}
.dropdown-header strong {
display: block;
font-size: 0.95rem;
font-weight: 700;
color: #191970;
}
[data-theme="dark"] .dropdown-header strong {
color: #f1f5f9;
}
.dropdown-header small {
font-size: var(--text-xs);
color: #7272a8;
}
[data-theme="dark"] .dropdown-header small {
color: #94a3b8;
}
.dropdown-menu hr {
border: none;
border-top: 1px solid var(--border-color);
margin: 0;
}
.dropdown-menu button {
display: flex;
align-items: center;
gap: var(--space-2);
width: 100%;
padding: var(--space-3) var(--space-4);
font-size: var(--text-sm);
color: var(--text-primary);
text-align: left;
transition: all var(--transition-fast);
}
.dropdown-menu button:hover {
background: var(--bg-tertiary);
color: var(--primary);
}
.dropdown-menu .logout-button {
color: var(--danger);
}
.dropdown-menu .logout-button:hover {
background: var(--danger-bg);
color: var(--danger);
}
/* ===========================================
MOBILE NAVIGATION STYLES
=========================================== */
/* Mobile Menu Button (Hamburger) */
.mobile-menu-btn {
display: none;
align-items: center;
justify-content: center;
width: 44px;
height: 44px;
border-radius: 12px;
background: transparent;
color: var(--text-secondary);
transition: all 0.3s ease;
z-index: 101;
}
.mobile-menu-btn:hover {
background: var(--bg-tertiary);
color: var(--text-primary);
}
[data-theme="dark"] .mobile-menu-btn:hover {
background: rgba(255, 255, 255, 0.1);
}
/* Mobile Menu Backdrop */
.mobile-menu-backdrop {
display: none;
position: fixed;
inset: 0;
background: rgba(0, 0, 0, 0.5);
z-index: 99;
animation: fadeIn 0.3s ease;
}
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
/* Mobile Menu Drawer */
.mobile-menu {
display: none;
position: fixed;
top: 0;
right: -100%;
width: 85%;
max-width: 320px;
height: 100vh;
background: var(--bg-primary);
box-shadow: -10px 0 40px rgba(0, 0, 0, 0.15);
z-index: 100;
flex-direction: column;
transition: right 0.3s cubic-bezier(0.4, 0, 0.2, 1);
overflow-y: auto;
}
[data-theme="dark"] .mobile-menu {
background: var(--bg-secondary);
box-shadow: -10px 0 40px rgba(0, 0, 0, 0.4);
}
.mobile-menu.open {
right: 0;
}
/* Mobile Menu Header */
.mobile-menu-header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 20px;
border-bottom: 1px solid var(--border-color);
background: linear-gradient(135deg, rgba(79, 124, 130, 0.08) 0%, rgba(147, 177, 181, 0.05) 100%);
}
[data-theme="dark"] .mobile-menu-header {
background: linear-gradient(135deg, rgba(99, 102, 241, 0.15) 0%, rgba(139, 92, 246, 0.1) 100%);
}
.mobile-user-info {
display: flex;
align-items: center;
gap: 12px;
}
.mobile-user-info .user-avatar {
width: 44px;
height: 44px;
font-size: 1.1rem;
}
.mobile-user-info div {
display: flex;
flex-direction: column;
}
.mobile-user-info strong {
font-size: 0.95rem;
color: var(--text-primary);
}
.mobile-user-info small {
font-size: 0.75rem;
color: var(--text-muted);
}
.theme-toggle-mobile {
display: flex;
align-items: center;
justify-content: center;
width: 40px;
height: 40px;
border-radius: 10px;
background: var(--bg-tertiary);
color: var(--text-secondary);
transition: all 0.3s ease;
}
.theme-toggle-mobile:hover {
background: var(--primary);
color: white;
}
/* Mobile Menu Links */
.mobile-menu-links {
flex: 1;
padding: 16px;
display: flex;
flex-direction: column;
gap: 8px;
}
.mobile-nav-link {
display: flex;
align-items: center;
gap: 14px;
padding: 16px 18px;
border-radius: 14px;
font-size: 1rem;
font-weight: 600;
color: var(--text-secondary);
background: transparent;
transition: all 0.25s ease;
text-align: left;
width: 100%;
}
.mobile-nav-link:hover {
background: var(--bg-tertiary);
color: var(--text-primary);
transform: translateX(4px);
}
.mobile-nav-link.active {
background: linear-gradient(135deg, rgba(79, 124, 130, 0.15) 0%, rgba(147, 177, 181, 0.1) 100%);
color: var(--primary);
}
.mobile-nav-link.active svg {
color: var(--primary);
}
.mobile-nav-link svg {
flex-shrink: 0;
color: var(--text-muted);
transition: color 0.25s ease;
}
.mobile-nav-link:hover svg {
color: var(--primary);
}
/* Mobile Menu Footer */
.mobile-menu-footer {
padding: 16px 20px;
border-top: 1px solid var(--border-color);
}
.mobile-logout-btn {
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
width: 100%;
padding: 14px;
border-radius: 12px;
font-size: 0.95rem;
font-weight: 600;
color: var(--danger);
background: var(--danger-bg);
transition: all 0.3s ease;
}
.mobile-logout-btn:hover {
background: var(--danger);
color: white;
}
/* ===========================================
MOBILE RESPONSIVE BREAKPOINTS
=========================================== */
@media (max-width: 768px) {
/* Show mobile menu button, hide desktop menu */
.mobile-menu-btn {
display: flex;
}
.desktop-menu {
display: none !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;
}