Spaces:
Sleeping
Sleeping
Download frontend/src/components/InterviewerAvatar/styles.css from chowdary1/ai-interviewer-version-2: direct link, hf CLI and curl.
- Browser
- Download file 57.7 kB
-
https://huggingface.co/spaces/chowdary1/ai-interviewer-version-2/resolve/main/frontend/src/components/InterviewerAvatar/styles.css
- Command line
-
hf download hf://spaces/chowdary1/ai-interviewer-version-2/frontend/src/components/InterviewerAvatar/styles.css
-
curl -L -o styles.css https://huggingface.co/spaces/chowdary1/ai-interviewer-version-2/resolve/main/frontend/src/components/InterviewerAvatar/styles.css
57.7 kB
| /** | |
| * Interviewer Avatar Styles - CINEMATIC FULLSCREEN v11 (EXAM-GRADE) | |
| * | |
| * TRUE FULLSCREEN ARCHITECTURE: | |
| * ✅ position: fixed with inset: 0 | |
| * ✅ 100vw x 100vh viewport units | |
| * ✅ Browser Fullscreen API support | |
| * ✅ ESC key exits browser fullscreen (browser controlled) | |
| * ✅ No parent container constraints | |
| * ✅ NUCLEAR: Body lock when fullscreen active | |
| * ✅ Clean UI in browser fullscreen (no shadows/dust) | |
| */ | |
| /* =========================================== | |
| 🔥 NUCLEAR: GLOBAL BODY LOCK WHEN FULLSCREEN | |
| This MUST come first to override everything | |
| =========================================== */ | |
| body.interview-fullscreen-active { | |
| overflow: hidden ; | |
| position: fixed ; | |
| width: 100vw ; | |
| height: 100vh ; | |
| top: 0 ; | |
| left: 0 ; | |
| margin: 0 ; | |
| padding: 0 ; | |
| } | |
| body.interview-fullscreen-active>#root { | |
| overflow: hidden ; | |
| position: fixed ; | |
| width: 100vw ; | |
| height: 100vh ; | |
| top: 0 ; | |
| left: 0 ; | |
| } | |
| /* Hide ALL siblings when interview is active */ | |
| body.interview-fullscreen-active>#root>*:not(.live-interview-container) { | |
| display: none ; | |
| visibility: hidden ; | |
| opacity: 0 ; | |
| } | |
| /* =========================================== | |
| 🎯 BROWSER FULLSCREEN MODE - CLEAN UI | |
| Removes any shadows/dust when in TRUE fullscreen | |
| =========================================== */ | |
| :fullscreen .live-interview-container, | |
| :-webkit-full-screen .live-interview-container, | |
| :-moz-full-screen .live-interview-container, | |
| :-ms-fullscreen .live-interview-container { | |
| box-shadow: none ; | |
| backdrop-filter: none ; | |
| } | |
| :fullscreen .fullscreen-controls-bar, | |
| :-webkit-full-screen .fullscreen-controls-bar { | |
| background: transparent ; | |
| backdrop-filter: none ; | |
| box-shadow: none ; | |
| filter: none ; | |
| } | |
| :fullscreen .avatar-panel-header, | |
| :-webkit-full-screen .avatar-panel-header { | |
| background: transparent ; | |
| box-shadow: none ; | |
| backdrop-filter: none ; | |
| filter: none ; | |
| } | |
| /* =========================================== | |
| THEME TOKENS - LIGHT MODE (DEFAULT) | |
| =========================================== */ | |
| :root { | |
| --bg-primary: #f0eef8; | |
| --bg-secondary: #ffffff; | |
| --bg-surface: #e4e0f2; | |
| --bg-panel: #ffffff; | |
| --bg-panel-header: rgba(11, 46, 51, 0.02); | |
| --bg-input: #e0f0f2; | |
| --bg-canvas: linear-gradient(180deg, #e4e0f2 0%, #ffffff 100%); | |
| --text-primary: #191970; | |
| --text-secondary: #2b2b8a; | |
| --text-muted: #00cccc; | |
| --border-color: #c4b8de; | |
| --border-active: #d000d0; | |
| --accent-primary: #d000d0; | |
| --accent-hover: #191970; | |
| --accent-secondary: #00cccc; | |
| --shadow-soft: 0 8px 24px rgba(11, 46, 51, 0.06); | |
| --shadow-card: 0 4px 16px rgba(11, 46, 51, 0.04); | |
| --shadow-glow: none; | |
| --success: #16a34a; | |
| --success-bg: rgba(34, 197, 94, 0.1); | |
| --success-border: rgba(34, 197, 94, 0.25); | |
| --error: #dc2626; | |
| --error-bg: rgba(239, 68, 68, 0.08); | |
| --error-border: rgba(239, 68, 68, 0.2); | |
| --badge-bg: rgba(79, 124, 130, 0.1); | |
| --badge-border: rgba(79, 124, 130, 0.25); | |
| --badge-text: #d000d0; | |
| --media-btn-color: #ec4899; | |
| --media-btn-off: #ef4444; | |
| } | |
| /* =========================================== | |
| THEME TOKENS - DARK MODE | |
| =========================================== */ | |
| [data-theme="dark"] { | |
| --bg-primary: #0b1020; | |
| --bg-secondary: #111827; | |
| --bg-surface: rgba(255, 255, 255, 0.03); | |
| --bg-panel: #0a0a14; | |
| --bg-panel-header: rgba(255, 255, 255, 0.02); | |
| --bg-input: rgba(255, 255, 255, 0.05); | |
| --bg-canvas: linear-gradient(180deg, #0a0a18 0%, #050510 100%); | |
| --text-primary: #e5e7eb; | |
| --text-secondary: #9ca3af; | |
| --text-muted: #6b7280; | |
| --border-color: rgba(255, 255, 255, 0.08); | |
| --border-active: #8b5cf6; | |
| --accent-primary: #8b5cf6; | |
| --accent-hover: #7c3aed; | |
| --accent-secondary: #a78bfa; | |
| --shadow-soft: 0 8px 32px rgba(0, 0, 0, 0.4); | |
| --shadow-card: 0 4px 24px rgba(0, 0, 0, 0.3); | |
| --shadow-glow: 0 0 30px rgba(139, 92, 246, 0.15); | |
| --success: #22c55e; | |
| --success-bg: rgba(34, 197, 94, 0.15); | |
| --success-border: rgba(34, 197, 94, 0.35); | |
| --error: #f87171; | |
| --error-bg: rgba(185, 28, 28, 0.15); | |
| --error-border: rgba(239, 68, 68, 0.25); | |
| --badge-bg: rgba(139, 92, 246, 0.15); | |
| --badge-border: rgba(139, 92, 246, 0.3); | |
| --badge-text: #a78bfa; | |
| --media-btn-color: #ec4899; | |
| --media-btn-off: #ef4444; | |
| } | |
| /* =========================================== | |
| 🎬 CINEMATIC FULLSCREEN MODE | |
| TRUE viewport-filling layout - NUCLEAR SPECIFICITY | |
| =========================================== */ | |
| /* BASE CONTAINER - NUCLEAR FIXED TO VIEWPORT */ | |
| div.live-interview-container, | |
| .live-interview-container, | |
| body .live-interview-container, | |
| #root .live-interview-container, | |
| body #root .live-interview-container { | |
| position: fixed ; | |
| top: 0 ; | |
| left: 0 ; | |
| right: 0 ; | |
| bottom: 0 ; | |
| width: 100vw ; | |
| min-width: 100vw ; | |
| max-width: 100vw ; | |
| height: 100vh ; | |
| height: 100dvh ; | |
| min-height: 100vh ; | |
| max-height: 100vh ; | |
| overflow: hidden ; | |
| display: flex ; | |
| flex-direction: column ; | |
| padding: 0 ; | |
| margin: 0 ; | |
| z-index: 99999 ; | |
| background: #f0eef8 ; | |
| box-sizing: border-box ; | |
| transform: none ; | |
| inset: 0 ; | |
| } | |
| [data-theme="dark"] .live-interview-container, | |
| [data-theme="dark"] div.live-interview-container, | |
| body[data-theme="dark"] .live-interview-container { | |
| background: #0a0a14 ; | |
| } | |
| /* Kill pseudo-elements */ | |
| .live-interview-container::before, | |
| .live-interview-container::after, | |
| div.live-interview-container::before, | |
| div.live-interview-container::after { | |
| display: none ; | |
| content: none ; | |
| } | |
| /* =========================================== | |
| FULLSCREEN MODE - NO NAVBAR, MAXIMUM SPACE | |
| =========================================== */ | |
| .live-interview-container.fullscreen-mode .navbar { | |
| display: none ; | |
| } | |
| .live-interview-container.fullscreen-mode .interview-main { | |
| height: 100vh ; | |
| height: 100dvh ; | |
| } | |
| /* =========================================== | |
| WINDOWED MODE - WITH NAVBAR | |
| =========================================== */ | |
| .live-interview-container.windowed-mode .navbar { | |
| display: flex ; | |
| height: 52px ; | |
| min-height: 52px ; | |
| flex-shrink: 0 ; | |
| } | |
| .live-interview-container.windowed-mode .interview-main { | |
| height: calc(100vh - 52px) ; | |
| height: calc(100dvh - 52px) ; | |
| } | |
| /* =========================================== | |
| FULLSCREEN CONTROLS BAR (TOP) - FLOATING OVERLAY | |
| =========================================== */ | |
| .fullscreen-controls-bar { | |
| position: fixed ; | |
| top: 0 ; | |
| left: 0 ; | |
| right: 0 ; | |
| height: 48px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| padding: 0 20px; | |
| background: transparent ; | |
| z-index: 10000 ; | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| pointer-events: none; | |
| /* NO BLUR OR SHADOW - CLEAN TOP */ | |
| backdrop-filter: none ; | |
| box-shadow: none ; | |
| filter: none ; | |
| } | |
| .fullscreen-controls-bar>* { | |
| pointer-events: auto; | |
| } | |
| .live-interview-container:hover .fullscreen-controls-bar, | |
| .fullscreen-controls-bar:hover { | |
| opacity: 1; | |
| } | |
| .fc-left, | |
| .fc-center, | |
| .fc-right { | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| } | |
| .fc-logo { | |
| font-size: 1rem; | |
| font-weight: 700; | |
| color: white; | |
| text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| } | |
| .fc-logo-img { | |
| width: 28px; | |
| height: 28px; | |
| border-radius: 6px; | |
| object-fit: cover; | |
| } | |
| .fc-progress { | |
| font-size: 0.85rem; | |
| font-weight: 600; | |
| color: white; | |
| background: rgba(255, 255, 255, 0.2); | |
| padding: 6px 14px; | |
| border-radius: 20px; | |
| backdrop-filter: blur(8px); | |
| } | |
| .fc-btn { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 36px; | |
| height: 36px; | |
| border-radius: 8px; | |
| border: none; | |
| background: rgba(255, 255, 255, 0.15); | |
| color: white; | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| backdrop-filter: blur(8px); | |
| } | |
| .fc-btn:hover { | |
| background: rgba(255, 255, 255, 0.25); | |
| transform: scale(1.05); | |
| } | |
| .fc-btn.exit-btn { | |
| width: auto; | |
| padding: 0 16px; | |
| font-size: 0.85rem; | |
| font-weight: 600; | |
| background: rgba(239, 68, 68, 0.8); | |
| } | |
| .fc-btn.exit-btn:hover { | |
| background: rgba(239, 68, 68, 1); | |
| } | |
| /* =========================================== | |
| INTERVIEW MAIN AREA - EDGE TO EDGE | |
| =========================================== */ | |
| .interview-main, | |
| div.interview-main, | |
| .live-interview-container .interview-main { | |
| flex: 1 1 auto ; | |
| display: flex ; | |
| flex-direction: column ; | |
| min-height: 0 ; | |
| width: 100% ; | |
| min-width: 100% ; | |
| max-width: 100% ; | |
| height: 100% ; | |
| padding: 0 ; | |
| margin: 0 ; | |
| overflow: hidden ; | |
| position: relative ; | |
| box-sizing: border-box ; | |
| } | |
| /* Fullscreen mode - full viewport, controls bar floats over */ | |
| .fullscreen-mode .interview-main { | |
| height: 100vh ; | |
| height: 100dvh ; | |
| } | |
| /* Windowed mode - account for navbar */ | |
| .windowed-mode .interview-main { | |
| height: calc(100vh - 52px) ; | |
| height: calc(100dvh - 52px) ; | |
| } | |
| /* =========================================== | |
| 🎬 INTERVIEW CONTENT - CINEMATIC HORIZONTAL SPLIT | |
| Avatar 65-70% | Chat 30-35% | |
| NO MAX-WIDTH, EDGE TO EDGE | |
| =========================================== */ | |
| .interview-content, | |
| div.interview-content, | |
| .interview-main .interview-content { | |
| display: flex ; | |
| flex-direction: row ; | |
| width: 100vw ; | |
| min-width: 100vw ; | |
| max-width: 100vw ; | |
| height: 100% ; | |
| min-height: 0 ; | |
| overflow: hidden ; | |
| background: #e8eef5 ; | |
| margin: 0 ; | |
| padding: 0 ; | |
| box-sizing: border-box ; | |
| } | |
| [data-theme="dark"] .interview-content, | |
| [data-theme="dark"] div.interview-content { | |
| background: #0a0a14 ; | |
| } | |
| .interview-content.no-avatar { | |
| justify-content: center ; | |
| } | |
| .interview-content.no-avatar .chat-panel { | |
| max-width: 800px; | |
| flex: 0 1 800px ; | |
| border-left: none ; | |
| border-right: none ; | |
| } | |
| /* =========================================== | |
| 🎭 AVATAR PANEL - LEFT SIDE (65-70%) | |
| CINEMATIC, WIDE, EDGE TO EDGE | |
| =========================================== */ | |
| .avatar-panel, | |
| div.avatar-panel, | |
| .interview-content .avatar-panel { | |
| flex: 1 1 68% ; | |
| width: 68% ; | |
| min-width: 60% ; | |
| max-width: 70% ; | |
| display: flex ; | |
| flex-direction: column ; | |
| min-height: 0 ; | |
| height: 100% ; | |
| border-radius: 0 ; | |
| margin: 0 ; | |
| padding: 0 ; | |
| overflow: hidden ; | |
| background: linear-gradient(180deg, #dce8f5 0%, #c8d8e8 100%) ; | |
| border: none ; | |
| position: relative ; | |
| box-sizing: border-box ; | |
| } | |
| [data-theme="dark"] .avatar-panel, | |
| [data-theme="dark"] div.avatar-panel { | |
| background: radial-gradient(ellipse 150% 120% at 50% 30%, #1a1a35 0%, #0d0d1a 60%, #050508 100%) ; | |
| } | |
| /* Avatar wrapper - FILLS THE ENTIRE PANEL */ | |
| .avatar-wrapper { | |
| position: absolute ; | |
| top: 0 ; | |
| left: 0 ; | |
| right: 0 ; | |
| bottom: 0 ; | |
| display: flex ; | |
| align-items: center ; | |
| justify-content: center ; | |
| overflow: hidden ; | |
| } | |
| /* Avatar Panel Header - Floating overlay */ | |
| .avatar-panel-header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| padding: 12px 20px; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| z-index: 10; | |
| pointer-events: none; | |
| background: linear-gradient(180deg, rgba(255, 255, 255, 0.85) 0%, transparent 100%); | |
| } | |
| /* Fullscreen mode: push avatar-panel-header below the fixed controls bar (48px) */ | |
| .fullscreen-mode .avatar-panel-header { | |
| top: 48px; | |
| } | |
| [data-theme="dark"] .avatar-panel-header { | |
| background: linear-gradient(180deg, rgba(0, 0, 0, 0.7) 0%, transparent 100%); | |
| } | |
| /* CLEAN HEADER IN BROWSER FULLSCREEN - Remove all dust/blur */ | |
| :fullscreen .avatar-panel-header, | |
| :-webkit-full-screen .avatar-panel-header, | |
| :-moz-full-screen .avatar-panel-header { | |
| background: transparent ; | |
| backdrop-filter: none ; | |
| box-shadow: none ; | |
| filter: none ; | |
| } | |
| :fullscreen .fullscreen-controls-bar, | |
| :-webkit-full-screen .fullscreen-controls-bar { | |
| background: transparent ; | |
| backdrop-filter: none ; | |
| box-shadow: none ; | |
| } | |
| /* Also clean persona-badge and question-progress in fullscreen */ | |
| :fullscreen .persona-badge, | |
| :-webkit-full-screen .persona-badge { | |
| backdrop-filter: none ; | |
| box-shadow: none ; | |
| } | |
| :fullscreen .question-progress, | |
| :-webkit-full-screen .question-progress { | |
| backdrop-filter: none ; | |
| } | |
| .avatar-panel-header>* { | |
| pointer-events: auto; | |
| } | |
| .avatar-panel-header .header-left { | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| } | |
| .avatar-panel-header .header-title { | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| font-size: 0.9rem; | |
| font-weight: 600; | |
| color: var(--text-primary); | |
| } | |
| .avatar-panel-header .header-title svg { | |
| color: var(--text-secondary); | |
| } | |
| .persona-badge { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 4px; | |
| padding: 5px 12px; | |
| border-radius: 16px; | |
| font-size: 0.75rem; | |
| font-weight: 600; | |
| background: var(--badge-bg); | |
| border: 1px solid var(--badge-border); | |
| color: var(--badge-text); | |
| backdrop-filter: blur(8px); | |
| } | |
| [data-theme="dark"] .persona-badge { | |
| background: rgba(139, 92, 246, 0.2); | |
| border-color: rgba(139, 92, 246, 0.4); | |
| box-shadow: 0 2px 12px rgba(139, 92, 246, 0.2); | |
| } | |
| .avatar-panel-header .header-center { | |
| display: flex; | |
| align-items: center; | |
| gap: 16px; | |
| } | |
| .question-progress { | |
| font-size: 0.8rem; | |
| font-weight: 600; | |
| color: var(--text-secondary); | |
| background: rgba(255, 255, 255, 0.8); | |
| padding: 4px 12px; | |
| border-radius: 12px; | |
| backdrop-filter: blur(8px); | |
| } | |
| [data-theme="dark"] .question-progress { | |
| background: rgba(20, 20, 40, 0.8); | |
| color: var(--text-primary); | |
| } | |
| .progress-bar-mini { | |
| width: 100px; | |
| height: 4px; | |
| border-radius: 2px; | |
| overflow: hidden; | |
| background: var(--bg-input); | |
| } | |
| .progress-bar-mini .fill { | |
| height: 100%; | |
| background: var(--accent-primary); | |
| border-radius: 2px; | |
| transition: width 0.3s ease; | |
| } | |
| [data-theme="dark"] .progress-bar-mini .fill { | |
| background: linear-gradient(90deg, #8b5cf6, #a78bfa); | |
| } | |
| .avatar-panel-header .header-controls { | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| } | |
| /* Question Source Badge */ | |
| .source-badge { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 28px; | |
| height: 28px; | |
| border-radius: 8px; | |
| font-size: 12px; | |
| font-weight: 700; | |
| cursor: help; | |
| transition: all 0.2s ease; | |
| } | |
| .source-badge.source-database { | |
| background: linear-gradient(135deg, #10b981, #059669); | |
| color: white; | |
| border: 1px solid rgba(16, 185, 129, 0.3); | |
| } | |
| .source-badge.source-api { | |
| background: linear-gradient(135deg, #d000d0, #d000d0); | |
| color: white; | |
| border: 1px solid rgba(79, 124, 130, 0.3); | |
| } | |
| .source-badge.source-rag { | |
| background: linear-gradient(135deg, #f59e0b, #d97706); | |
| color: white; | |
| border: 1px solid rgba(245, 158, 11, 0.3); | |
| } | |
| .source-badge.source-fallback { | |
| background: linear-gradient(135deg, #6b7280, #4b5563); | |
| color: white; | |
| border: 1px solid rgba(107, 114, 128, 0.3); | |
| } | |
| .source-badge:hover { | |
| transform: scale(1.1); | |
| box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); | |
| } | |
| [data-theme="dark"] .source-badge.source-database { | |
| background: linear-gradient(135deg, #059669, #047857); | |
| border-color: rgba(16, 185, 129, 0.4); | |
| } | |
| [data-theme="dark"] .source-badge.source-api { | |
| background: linear-gradient(135deg, #2563eb, #1d4ed8); | |
| border-color: rgba(59, 130, 246, 0.4); | |
| } | |
| [data-theme="dark"] .source-badge.source-rag { | |
| background: linear-gradient(135deg, #d97706, #b45309); | |
| border-color: rgba(245, 158, 11, 0.4); | |
| } | |
| [data-theme="dark"] .source-badge.source-fallback { | |
| background: linear-gradient(135deg, #4b5563, #374151); | |
| border-color: rgba(107, 114, 128, 0.4); | |
| } | |
| .header-icon-btn { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 36px; | |
| height: 36px; | |
| border-radius: 10px; | |
| border: 1px solid rgba(0, 0, 0, 0.1); | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| background: rgba(255, 255, 255, 0.8); | |
| color: #2b2b8a; | |
| backdrop-filter: blur(8px); | |
| } | |
| [data-theme="dark"] .header-icon-btn { | |
| background: rgba(255, 255, 255, 0.1); | |
| border-color: rgba(255, 255, 255, 0.15); | |
| color: #e5e7eb; | |
| } | |
| .header-icon-btn:hover { | |
| background: rgba(79, 124, 130, 0.15); | |
| border-color: #d000d0; | |
| color: #d000d0; | |
| transform: scale(1.05); | |
| } | |
| .header-icon-btn.active { | |
| background: rgba(79, 124, 130, 0.2); | |
| border-color: #d000d0; | |
| color: #d000d0; | |
| } | |
| [data-theme="dark"] .header-icon-btn:hover, | |
| [data-theme="dark"] .header-icon-btn.active { | |
| background: rgba(139, 92, 246, 0.25); | |
| border-color: #8b5cf6; | |
| color: #a78bfa; | |
| box-shadow: 0 0 15px rgba(139, 92, 246, 0.3); | |
| } | |
| /* =========================================== | |
| 🖼️ AVATAR CANVAS - FILLS ENTIRE PANEL | |
| NO MAX-WIDTH, NO MAX-HEIGHT, NO CONSTRAINTS | |
| =========================================== */ | |
| .avatar-canvas-layer { | |
| position: absolute ; | |
| inset: 0 ; | |
| width: 100% ; | |
| height: 100% ; | |
| display: block ; | |
| overflow: hidden ; | |
| background: transparent ; | |
| } | |
| .avatar-canvas-layer canvas { | |
| display: block ; | |
| width: 100% ; | |
| height: 100% ; | |
| position: absolute ; | |
| inset: 0 ; | |
| z-index: 1; | |
| object-fit: contain; | |
| } | |
| .avatar-canvas-layer>div { | |
| width: 100% ; | |
| height: 100% ; | |
| position: absolute ; | |
| inset: 0 ; | |
| } | |
| /* Avatar UI Overlay */ | |
| .avatar-ui-overlay { | |
| position: absolute; | |
| inset: 0; | |
| z-index: 2; | |
| pointer-events: none; | |
| } | |
| /* Tracking Status */ | |
| .tracking-status { | |
| position: absolute; | |
| bottom: 20px; | |
| left: 20px; | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 8px; | |
| padding: 8px 14px; | |
| border-radius: 20px; | |
| font-size: 0.8rem; | |
| font-weight: 500; | |
| pointer-events: auto; | |
| backdrop-filter: blur(8px); | |
| transition: all 0.3s ease; | |
| background: rgba(34, 197, 94, 0.15); | |
| border: 1px solid rgba(34, 197, 94, 0.3); | |
| color: #16a34a; | |
| } | |
| [data-theme="dark"] .tracking-status { | |
| background: rgba(34, 197, 94, 0.2); | |
| color: #22c55e; | |
| } | |
| .tracking-status.active { | |
| background: rgba(34, 197, 94, 0.15); | |
| border-color: rgba(34, 197, 94, 0.3); | |
| } | |
| [data-theme="dark"] .tracking-status.active { | |
| box-shadow: 0 0 15px rgba(34, 197, 94, 0.2); | |
| } | |
| .tracking-status .status-dot { | |
| width: 8px; | |
| height: 8px; | |
| background: currentColor; | |
| border-radius: 50%; | |
| animation: pulse-dot 2s ease-in-out infinite; | |
| } | |
| @keyframes pulse-dot { | |
| 0%, | |
| 100% { | |
| opacity: 1; | |
| transform: scale(1); | |
| } | |
| 50% { | |
| opacity: 0.5; | |
| transform: scale(0.8); | |
| } | |
| } | |
| /* =========================================== | |
| CHAT PANEL - RIGHT SIDE - 32% WIDTH (WIDER) | |
| Professional interview panel, full height | |
| =========================================== */ | |
| .chat-panel, | |
| div.chat-panel, | |
| .interview-content .chat-panel { | |
| flex: 1 1 32% ; | |
| width: 32% ; | |
| min-width: 30% ; | |
| max-width: 40% ; | |
| display: flex ; | |
| flex-direction: column ; | |
| height: 100% ; | |
| min-height: 0 ; | |
| margin: 0 ; | |
| padding: 0 ; | |
| border-radius: 0 ; | |
| overflow: hidden ; | |
| box-sizing: border-box ; | |
| background: #ffffff ; | |
| box-shadow: none ; | |
| border-left: 1px solid #c4b8de ; | |
| } | |
| /* Fullscreen mode chat panel - add top padding to clear the fixed controls bar */ | |
| .fullscreen-mode .chat-panel { | |
| height: 100% ; | |
| max-height: 100% ; | |
| padding-top: 48px ; | |
| } | |
| /* Windowed mode chat panel - inherits from parent */ | |
| .windowed-mode .chat-panel { | |
| height: 100% ; | |
| max-height: 100% ; | |
| } | |
| [data-theme="dark"] .chat-panel, | |
| [data-theme="dark"] div.chat-panel { | |
| background: #111827 ; | |
| border-left: 1px solid rgba(139, 92, 246, 0.2) ; | |
| } | |
| /* Chat Header - NEVER SHRINK */ | |
| .chat-header { | |
| padding: 14px 20px; | |
| flex: 0 0 auto ; | |
| flex-shrink: 0 ; | |
| background: #ffffff; | |
| border-bottom: 1px solid #c4b8de; | |
| /* FIX: Add flex layout for source badge and round indicator */ | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| justify-content: flex-start; | |
| } | |
| [data-theme="dark"] .chat-header { | |
| background: #1f2937; | |
| border-bottom-color: rgba(139, 92, 246, 0.15); | |
| } | |
| .chat-header .question-label { | |
| font-size: 0.9rem; | |
| font-weight: 600; | |
| color: var(--text-primary); | |
| } | |
| /* Question Progress Badge in chat header */ | |
| .question-progress-badge { | |
| margin-left: auto; | |
| font-size: 0.8rem; | |
| font-weight: 600; | |
| color: #191970; | |
| background: rgba(25, 25, 112, 0.08); | |
| padding: 4px 12px; | |
| border-radius: 20px; | |
| white-space: nowrap; | |
| letter-spacing: 0.02em; | |
| } | |
| [data-theme="dark"] .question-progress-badge { | |
| color: #a5b4fc; | |
| background: rgba(139, 92, 246, 0.15); | |
| } | |
| /* Chat Messages - SCROLLABLE MIDDLE SECTION - MUST FLEX GROW */ | |
| .chat-messages { | |
| flex: 1 1 0 ; | |
| min-height: 0 ; | |
| max-height: none ; | |
| overflow-y: auto ; | |
| overflow-x: hidden ; | |
| padding: 20px; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 16px; | |
| background: #f0eef8; | |
| } | |
| [data-theme="dark"] .chat-messages { | |
| background: #0f172a; | |
| } | |
| .chat-messages::-webkit-scrollbar { | |
| width: 4px; | |
| } | |
| .chat-messages::-webkit-scrollbar-track { | |
| background: transparent; | |
| } | |
| .chat-messages::-webkit-scrollbar-thumb { | |
| background: var(--border-color); | |
| border-radius: 2px; | |
| } | |
| [data-theme="dark"] .chat-messages::-webkit-scrollbar-thumb { | |
| background: rgba(139, 92, 246, 0.3); | |
| } | |
| /* Message Bubbles */ | |
| .chat-message { | |
| display: flex; | |
| gap: 12px; | |
| align-items: flex-start; | |
| max-width: 95%; | |
| } | |
| .chat-message.interviewer { | |
| align-self: flex-start; | |
| } | |
| .chat-message.user { | |
| align-self: flex-end; | |
| flex-direction: row-reverse; | |
| } | |
| .message-avatar { | |
| flex-shrink: 0; | |
| } | |
| .avatar-icon { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 36px; | |
| height: 36px; | |
| border-radius: 50%; | |
| font-size: 1rem; | |
| color: white; | |
| } | |
| .avatar-icon.interviewer { | |
| background: linear-gradient(135deg, #00cccc, #d000d0); | |
| box-shadow: 0 3px 12px rgba(147, 177, 181, 0.3); | |
| } | |
| .avatar-icon.user { | |
| background: linear-gradient(135deg, #22c55e, #10b981); | |
| } | |
| .message-content { | |
| flex: 1; | |
| min-width: 0; | |
| } | |
| .message-header { | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| margin-bottom: 6px; | |
| } | |
| .sender-name { | |
| font-size: 0.85rem; | |
| font-weight: 600; | |
| color: var(--text-primary); | |
| } | |
| .question-badge { | |
| font-size: 0.65rem; | |
| padding: 2px 6px; | |
| background: #00cccc; | |
| color: white; | |
| border-radius: 6px; | |
| font-weight: 600; | |
| } | |
| .message-bubble { | |
| padding: 12px 16px; | |
| border-radius: 12px; | |
| font-size: 0.9rem; | |
| line-height: 1.5; | |
| } | |
| .chat-message.interviewer .message-bubble { | |
| background: var(--bg-secondary); | |
| border: 1px solid var(--border-color); | |
| color: var(--text-primary); | |
| border-radius: 4px 12px 12px 12px; | |
| } | |
| .chat-message.user .message-bubble { | |
| background: linear-gradient(135deg, var(--accent-primary), var(--accent-hover)); | |
| color: white; | |
| border-radius: 12px 4px 12px 12px; | |
| } | |
| [data-theme="dark"] .chat-message.user .message-bubble { | |
| box-shadow: 0 4px 15px rgba(139, 92, 246, 0.25); | |
| } | |
| .system-badge { | |
| display: inline-block; | |
| padding: 6px 12px; | |
| border-radius: 16px; | |
| font-size: 0.75rem; | |
| text-align: center; | |
| background: var(--bg-surface); | |
| border: 1px solid var(--border-color); | |
| color: var(--text-muted); | |
| } | |
| /* Chat Input Area - ALWAYS VISIBLE AT BOTTOM */ | |
| .chat-input-area { | |
| flex: 0 0 auto ; | |
| flex-shrink: 0 ; | |
| padding: 16px 20px 24px; | |
| background: linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, #ffffff 100%); | |
| border-top: 1px solid rgba(147, 177, 181, 0.1); | |
| position: sticky ; | |
| bottom: 0 ; | |
| z-index: 10 ; | |
| margin-top: auto ; | |
| backdrop-filter: blur(12px); | |
| } | |
| [data-theme="dark"] .chat-input-area { | |
| background: linear-gradient(180deg, rgba(31, 41, 55, 0.95) 0%, #1f2937 100%); | |
| border-top-color: rgba(139, 92, 246, 0.2); | |
| } | |
| /* Voice Status Indicator */ | |
| .voice-status-indicator { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 8px; | |
| padding: 10px 16px; | |
| margin-bottom: 12px; | |
| border-radius: 20px; | |
| font-size: 0.85rem; | |
| font-weight: 500; | |
| animation: pulse-glow 2s ease-in-out infinite; | |
| } | |
| .voice-status-indicator.listening { | |
| background: linear-gradient(135deg, rgba(147, 177, 181, 0.15), rgba(168, 85, 247, 0.1)); | |
| color: #00cccc; | |
| border: 1px solid rgba(147, 177, 181, 0.3); | |
| } | |
| @keyframes pulse-glow { | |
| 0%, 100% { box-shadow: 0 0 8px rgba(147, 177, 181, 0.2); } | |
| 50% { box-shadow: 0 0 16px rgba(147, 177, 181, 0.4); } | |
| } | |
| /* =========================================== | |
| CODING QUESTION AREA STYLES | |
| =========================================== */ | |
| .coding-question-area { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 16px; | |
| padding: 16px; | |
| background: var(--card-bg, #ffffff); | |
| border-radius: 12px; | |
| border: 1px solid var(--border-color, #c4b8de); | |
| } | |
| [data-theme="dark"] .coding-question-area { | |
| background: #1f2937; | |
| border-color: #374151; | |
| } | |
| .coding-header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| padding-bottom: 12px; | |
| border-bottom: 1px solid var(--border-color, #c4b8de); | |
| } | |
| .coding-header-left { | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| } | |
| .coding-title { | |
| font-weight: 600; | |
| font-size: 1rem; | |
| color: var(--text-primary); | |
| } | |
| .coding-difficulty { | |
| padding: 4px 10px; | |
| border-radius: 12px; | |
| font-size: 0.75rem; | |
| font-weight: 600; | |
| text-transform: uppercase; | |
| } | |
| .coding-difficulty.easy { | |
| background: #dcfce7; | |
| color: #166534; | |
| } | |
| .coding-difficulty.medium { | |
| background: #fef3c7; | |
| color: #92400e; | |
| } | |
| .coding-difficulty.hard { | |
| background: #fee2e2; | |
| color: #991b1b; | |
| } | |
| .coding-difficulty.expert { | |
| background: #fae8ff; | |
| color: #86198f; | |
| } | |
| [data-theme="dark"] .coding-difficulty.easy { | |
| background: rgba(34, 197, 94, 0.2); | |
| color: #86efac; | |
| } | |
| [data-theme="dark"] .coding-difficulty.medium { | |
| background: rgba(245, 158, 11, 0.2); | |
| color: #fcd34d; | |
| } | |
| [data-theme="dark"] .coding-difficulty.hard { | |
| background: rgba(239, 68, 68, 0.2); | |
| color: #fca5a5; | |
| } | |
| [data-theme="dark"] .coding-difficulty.expert { | |
| background: rgba(168, 85, 247, 0.2); | |
| color: #e9d5ff; | |
| } | |
| .coding-function { | |
| font-family: 'JetBrains Mono', 'Fira Code', monospace; | |
| font-size: 0.9rem; | |
| color: var(--accent-color, #00cccc); | |
| background: rgba(147, 177, 181, 0.1); | |
| padding: 4px 10px; | |
| border-radius: 6px; | |
| } | |
| .test-cases-preview { | |
| background: var(--card-bg-secondary, #f0eef8); | |
| border-radius: 8px; | |
| padding: 12px; | |
| border: 1px solid var(--border-color, #c4b8de); | |
| } | |
| [data-theme="dark"] .test-cases-preview { | |
| background: #111827; | |
| border-color: #374151; | |
| } | |
| .test-cases-preview h4 { | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| font-size: 0.85rem; | |
| font-weight: 600; | |
| color: var(--text-secondary); | |
| margin-bottom: 10px; | |
| } | |
| .test-case-item { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| padding: 8px 0; | |
| border-bottom: 1px solid var(--border-color, #c4b8de); | |
| font-size: 0.85rem; | |
| } | |
| .test-case-item:last-child { | |
| border-bottom: none; | |
| } | |
| .test-label { | |
| color: var(--text-secondary); | |
| min-width: 70px; | |
| } | |
| .test-case-item code { | |
| font-family: 'JetBrains Mono', 'Fira Code', monospace; | |
| background: rgba(147, 177, 181, 0.1); | |
| padding: 2px 8px; | |
| border-radius: 4px; | |
| color: var(--accent-color, #00cccc); | |
| } | |
| .test-desc { | |
| color: var(--text-muted); | |
| font-style: italic; | |
| margin-left: auto; | |
| } | |
| .test-results { | |
| background: var(--card-bg-secondary, #f0eef8); | |
| border-radius: 8px; | |
| padding: 16px; | |
| border: 1px solid var(--border-color, #c4b8de); | |
| } | |
| [data-theme="dark"] .test-results { | |
| background: #111827; | |
| border-color: #374151; | |
| } | |
| .test-results h4 { | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| font-size: 0.9rem; | |
| font-weight: 600; | |
| margin-bottom: 12px; | |
| } | |
| .test-results h4 .text-green { | |
| color: #22c55e; | |
| } | |
| .test-results h4 .text-yellow { | |
| color: #f59e0b; | |
| } | |
| .test-results-list { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 8px; | |
| } | |
| .test-result-item { | |
| display: grid; | |
| grid-template-columns: 24px 1fr 1fr 1fr; | |
| gap: 12px; | |
| padding: 10px; | |
| border-radius: 6px; | |
| font-size: 0.85rem; | |
| font-family: 'JetBrains Mono', 'Fira Code', monospace; | |
| } | |
| .test-result-item.passed { | |
| background: rgba(34, 197, 94, 0.1); | |
| border: 1px solid rgba(34, 197, 94, 0.3); | |
| } | |
| .test-result-item.failed { | |
| background: rgba(239, 68, 68, 0.1); | |
| border: 1px solid rgba(239, 68, 68, 0.3); | |
| } | |
| .result-icon { | |
| font-size: 1rem; | |
| } | |
| .result-input, | |
| .result-expected, | |
| .result-actual { | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| white-space: nowrap; | |
| } | |
| .coding-submit-area { | |
| display: flex; | |
| gap: 12px; | |
| justify-content: flex-end; | |
| padding-top: 12px; | |
| border-top: 1px solid var(--border-color, #c4b8de); | |
| } | |
| .btn-submit-code { | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| padding: 12px 24px; | |
| background: linear-gradient(135deg, #00cccc 0%, #7c3aed 100%); | |
| color: white; | |
| border: none; | |
| border-radius: 8px; | |
| font-weight: 600; | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| } | |
| .btn-submit-code:hover:not(:disabled) { | |
| background: linear-gradient(135deg, #7c3aed 0%, #6d28d9 100%); | |
| transform: translateY(-1px); | |
| box-shadow: 0 4px 12px rgba(147, 177, 181, 0.4); | |
| } | |
| .btn-submit-code:disabled { | |
| opacity: 0.5; | |
| cursor: not-allowed; | |
| } | |
| .btn-skip { | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| padding: 12px 20px; | |
| background: transparent; | |
| color: var(--text-secondary); | |
| border: 1px solid var(--border-color, #c4b8de); | |
| border-radius: 8px; | |
| font-weight: 500; | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| } | |
| .btn-skip:hover:not(:disabled) { | |
| background: var(--card-bg-secondary, #f0eef8); | |
| color: var(--text-primary); | |
| } | |
| .btn-skip:disabled { | |
| opacity: 0.5; | |
| cursor: not-allowed; | |
| } | |
| /* Spin animation for loading */ | |
| .spin { | |
| animation: spin 1s linear infinite; | |
| } | |
| @keyframes spin { | |
| from { transform: rotate(0deg); } | |
| to { transform: rotate(360deg); } | |
| } | |
| /* =========================================== | |
| END CODING QUESTION STYLES | |
| =========================================== */ | |
| .input-container { | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| padding: 14px 18px; | |
| border-radius: 16px; | |
| transition: all 0.25s ease; | |
| background: linear-gradient(135deg, #f0eef8, #e4e0f2); | |
| border: 2px solid #c4b8de; | |
| box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); | |
| } | |
| .input-container:focus-within { | |
| border-color: #00cccc; | |
| box-shadow: 0 0 0 4px rgba(147, 177, 181, 0.15), 0 4px 12px rgba(147, 177, 181, 0.1); | |
| background: #ffffff; | |
| } | |
| [data-theme="dark"] .input-container { | |
| background: linear-gradient(135deg, #1f2937, #111827); | |
| border-color: rgba(139, 92, 246, 0.3); | |
| box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2); | |
| } | |
| [data-theme="dark"] .input-container:focus-within { | |
| border-color: #8b5cf6; | |
| box-shadow: 0 0 0 4px rgba(139, 92, 246, 0.25), 0 0 20px rgba(139, 92, 246, 0.2); | |
| background: #1f2937; | |
| } | |
| .chat-input { | |
| flex: 1; | |
| border: none; | |
| background: transparent; | |
| font-size: 1rem; | |
| resize: none; | |
| min-height: 28px; | |
| max-height: 120px; | |
| outline: none; | |
| color: var(--text-primary); | |
| line-height: 1.6; | |
| font-family: inherit; | |
| } | |
| .chat-input::placeholder { | |
| color: var(--text-muted); | |
| font-style: italic; | |
| } | |
| .input-actions-inline { | |
| display: flex; | |
| gap: 8px; | |
| } | |
| .input-icon-btn { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 36px; | |
| height: 36px; | |
| border-radius: 10px; | |
| background: transparent; | |
| border: none; | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| color: var(--text-muted); | |
| } | |
| .input-icon-btn:hover { | |
| background: var(--bg-surface); | |
| color: var(--text-secondary); | |
| } | |
| /* Media Control Buttons - Premium Circular Design */ | |
| .media-controls { | |
| display: flex; | |
| justify-content: center; | |
| gap: 16px; | |
| margin-top: 16px; | |
| padding-top: 12px; | |
| } | |
| .media-btn { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 50px; | |
| height: 50px; | |
| border-radius: 50%; | |
| border: 2px solid rgba(147, 177, 181, 0.3); | |
| background: linear-gradient(135deg, rgba(147, 177, 181, 0.1), rgba(168, 85, 247, 0.05)); | |
| cursor: pointer; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| color: #00cccc; | |
| position: relative; | |
| } | |
| .media-btn:hover:not(:disabled) { | |
| background: linear-gradient(135deg, rgba(147, 177, 181, 0.2), rgba(168, 85, 247, 0.15)); | |
| transform: scale(1.08); | |
| box-shadow: 0 4px 20px rgba(147, 177, 181, 0.3); | |
| border-color: #00cccc; | |
| } | |
| .media-btn.active { | |
| background: linear-gradient(135deg, #00cccc, #7c3aed); | |
| color: white; | |
| border-color: transparent; | |
| box-shadow: 0 4px 20px rgba(147, 177, 181, 0.5); | |
| } | |
| .media-btn.active:hover:not(:disabled) { | |
| background: linear-gradient(135deg, #7c3aed, #6d28d9); | |
| box-shadow: 0 6px 25px rgba(147, 177, 181, 0.6); | |
| } | |
| .media-btn.active.recording { | |
| background: linear-gradient(135deg, #ef4444, #dc2626); | |
| border-color: transparent; | |
| animation: recording-pulse 1.5s ease-in-out infinite; | |
| } | |
| @keyframes recording-pulse { | |
| 0%, 100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.4); } | |
| 50% { box-shadow: 0 0 0 12px rgba(239, 68, 68, 0); } | |
| } | |
| .media-btn.off { | |
| border-color: rgba(100, 116, 139, 0.3); | |
| color: #7272a8; | |
| background: rgba(100, 116, 139, 0.05); | |
| } | |
| .media-btn.off:hover:not(:disabled) { | |
| background: rgba(100, 116, 139, 0.1); | |
| border-color: #7272a8; | |
| } | |
| .media-btn:disabled { | |
| opacity: 0.5; | |
| cursor: not-allowed; | |
| } | |
| [data-theme="dark"] .media-btn { | |
| border-color: rgba(139, 92, 246, 0.4); | |
| background: linear-gradient(135deg, rgba(139, 92, 246, 0.15), rgba(168, 85, 247, 0.08)); | |
| } | |
| [data-theme="dark"] .media-btn:hover:not(:disabled) { | |
| box-shadow: 0 0 25px rgba(139, 92, 246, 0.4); | |
| } | |
| [data-theme="dark"] .media-btn.active { | |
| box-shadow: 0 0 30px rgba(139, 92, 246, 0.6); | |
| } | |
| [data-theme="dark"] .media-btn.off { | |
| border-color: rgba(148, 163, 184, 0.3); | |
| color: #94a3b8; | |
| } | |
| /* =========================================== | |
| ERROR BANNER | |
| =========================================== */ | |
| .error-banner { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| padding: 12px 16px; | |
| margin: 12px; | |
| border-radius: 10px; | |
| font-size: 0.85rem; | |
| background: var(--error-bg); | |
| border: 1px solid var(--error-border); | |
| color: var(--error); | |
| } | |
| .error-banner button { | |
| margin-left: auto; | |
| background: none; | |
| border: none; | |
| font-size: 1.2rem; | |
| cursor: pointer; | |
| color: inherit; | |
| opacity: 0.7; | |
| } | |
| .error-banner button:hover { | |
| opacity: 1; | |
| } | |
| /* =========================================== | |
| VOICE INPUT INDICATOR - NEVER SHRINK | |
| =========================================== */ | |
| .voice-input-indicator { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| padding: 8px 12px; | |
| border-radius: 10px; | |
| margin-bottom: 12px; | |
| background: var(--bg-surface); | |
| flex: 0 0 auto ; | |
| flex-shrink: 0 ; | |
| } | |
| .voice-input-indicator.recording { | |
| background: var(--success-bg); | |
| border: 1px solid var(--success-border); | |
| } | |
| .voice-waves { | |
| display: flex; | |
| align-items: center; | |
| gap: 3px; | |
| height: 20px; | |
| } | |
| .voice-wave-bar { | |
| width: 3px; | |
| height: 6px; | |
| border-radius: 2px; | |
| background: var(--accent-primary); | |
| animation: wave 0.5s ease-in-out infinite alternate; | |
| } | |
| .recording .voice-wave-bar { | |
| background: var(--success); | |
| } | |
| .voice-wave-bar:nth-child(1) { | |
| animation-delay: 0s; | |
| } | |
| .voice-wave-bar:nth-child(2) { | |
| animation-delay: 0.1s; | |
| } | |
| .voice-wave-bar:nth-child(3) { | |
| animation-delay: 0.2s; | |
| } | |
| .voice-wave-bar:nth-child(4) { | |
| animation-delay: 0.3s; | |
| } | |
| .voice-wave-bar:nth-child(5) { | |
| animation-delay: 0.4s; | |
| } | |
| @keyframes wave { | |
| 0% { | |
| height: 6px; | |
| } | |
| 100% { | |
| height: 20px; | |
| } | |
| } | |
| .voice-transcript { | |
| flex: 1; | |
| font-size: 0.85rem; | |
| color: var(--text-primary); | |
| } | |
| .voice-transcript.placeholder { | |
| color: var(--text-muted); | |
| font-style: italic; | |
| } | |
| /* =========================================== | |
| FEEDBACK TOAST - FIXED POSITION OVERLAY | |
| Fixed positioning ensures it won't be clipped by overflow:hidden | |
| =========================================== */ | |
| .feedback-toast { | |
| position: fixed ; | |
| bottom: 180px; | |
| right: 20px; | |
| width: 320px; | |
| max-width: calc(100vw - 40px); | |
| padding: 16px 20px; | |
| border-radius: 12px; | |
| border: 1px solid var(--border-color); | |
| background: var(--bg-surface); | |
| box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15), | |
| 0 4px 16px rgba(0, 0, 0, 0.1); | |
| z-index: 9999 ; | |
| animation: slideInFeedback 0.3s ease-out; | |
| backdrop-filter: blur(12px); | |
| } | |
| @keyframes slideInFeedback { | |
| from { | |
| opacity: 0; | |
| transform: translateX(20px) translateY(10px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateX(0) translateY(0); | |
| } | |
| } | |
| .feedback-toast.good { | |
| background: var(--success-bg); | |
| border-color: var(--success-border); | |
| box-shadow: 0 8px 32px rgba(34, 197, 94, 0.2), | |
| 0 4px 16px rgba(34, 197, 94, 0.1); | |
| } | |
| .feedback-toast.ok { | |
| background: rgba(245, 158, 11, 0.15); | |
| border-color: rgba(245, 158, 11, 0.4); | |
| box-shadow: 0 8px 32px rgba(245, 158, 11, 0.2), | |
| 0 4px 16px rgba(245, 158, 11, 0.1); | |
| } | |
| .feedback-toast.needs-work { | |
| background: var(--error-bg); | |
| border-color: var(--error-border); | |
| box-shadow: 0 8px 32px rgba(239, 68, 68, 0.2), | |
| 0 4px 16px rgba(239, 68, 68, 0.1); | |
| } | |
| /* Loading state for feedback toast */ | |
| .feedback-toast.loading { | |
| background: var(--bg-surface); | |
| border-color: var(--primary-color, #00cccc); | |
| box-shadow: 0 8px 32px rgba(147, 177, 181, 0.2), | |
| 0 4px 16px rgba(147, 177, 181, 0.1); | |
| } | |
| .feedback-toast.loading .feedback-header { | |
| color: var(--primary-color, #00cccc); | |
| } | |
| /* Spinning animation for loader */ | |
| .feedback-toast .spinning { | |
| animation: spin 1s linear infinite; | |
| } | |
| @keyframes spin { | |
| from { transform: rotate(0deg); } | |
| to { transform: rotate(360deg); } | |
| } | |
| [data-theme="dark"] .feedback-toast.loading { | |
| background: rgba(139, 92, 246, 0.15); | |
| border-color: rgba(139, 92, 246, 0.5); | |
| } | |
| [data-theme="dark"] .feedback-toast { | |
| background: rgba(31, 41, 55, 0.95); | |
| border-color: rgba(139, 92, 246, 0.3); | |
| box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4), | |
| 0 4px 16px rgba(139, 92, 246, 0.15); | |
| } | |
| [data-theme="dark"] .feedback-toast.good { | |
| background: rgba(34, 197, 94, 0.15); | |
| border-color: rgba(34, 197, 94, 0.4); | |
| } | |
| [data-theme="dark"] .feedback-toast.ok { | |
| background: rgba(245, 158, 11, 0.15); | |
| border-color: rgba(245, 158, 11, 0.4); | |
| } | |
| [data-theme="dark"] .feedback-toast.needs-work { | |
| background: rgba(239, 68, 68, 0.15); | |
| border-color: rgba(239, 68, 68, 0.4); | |
| } | |
| .feedback-header { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| margin-bottom: 10px; | |
| font-weight: 600; | |
| font-size: 0.95rem; | |
| } | |
| .feedback-header svg { | |
| flex-shrink: 0; | |
| } | |
| .feedback-header button { | |
| margin-left: auto; | |
| background: none; | |
| border: none; | |
| font-size: 1.4rem; | |
| cursor: pointer; | |
| color: var(--text-muted); | |
| opacity: 0.7; | |
| transition: opacity 0.2s ease; | |
| line-height: 1; | |
| padding: 4px; | |
| } | |
| .feedback-header button:hover { | |
| opacity: 1; | |
| } | |
| .feedback-toast p { | |
| margin: 0; | |
| font-size: 0.9rem; | |
| line-height: 1.5; | |
| color: var(--text-primary); | |
| } | |
| .feedback-score { | |
| margin-top: 12px; | |
| padding-top: 10px; | |
| border-top: 1px solid var(--border-color); | |
| font-size: 0.85rem; | |
| font-weight: 700; | |
| color: var(--text-secondary); | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| } | |
| .feedback-toast.good .feedback-score { | |
| color: var(--success); | |
| } | |
| .feedback-toast.ok .feedback-score { | |
| color: #f59e0b; | |
| } | |
| .feedback-toast.needs-work .feedback-score { | |
| color: var(--error); | |
| } | |
| /* Mobile adjustments for feedback toast */ | |
| @media (max-width: 768px) { | |
| .feedback-toast { | |
| bottom: 220px; | |
| right: 10px; | |
| left: 10px; | |
| width: auto; | |
| max-width: none; | |
| } | |
| } | |
| /* Fullscreen mode - ensure toast is visible */ | |
| :fullscreen .feedback-toast, | |
| :-webkit-full-screen .feedback-toast, | |
| :-ms-fullscreen .feedback-toast { | |
| position: fixed ; | |
| z-index: 99999 ; | |
| } | |
| /* =========================================== | |
| 2D FALLBACK | |
| =========================================== */ | |
| .interviewer-fallback { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| width: 100%; | |
| height: 100%; | |
| padding: 24px; | |
| background: var(--bg-canvas); | |
| } | |
| .fallback-avatar { | |
| width: 120px; | |
| height: 150px; | |
| } | |
| .fallback-avatar .avatar-head { | |
| width: 80px; | |
| height: 80px; | |
| background: linear-gradient(135deg, #d8d0c8, #c8c0b8); | |
| border-radius: 50%; | |
| margin: 0 auto; | |
| position: relative; | |
| } | |
| .fallback-avatar .eyes { | |
| display: flex; | |
| gap: 20px; | |
| justify-content: center; | |
| padding-top: 25px; | |
| } | |
| .fallback-avatar .eye { | |
| width: 10px; | |
| height: 10px; | |
| background: #0a0508; | |
| border-radius: 50%; | |
| } | |
| .fallback-avatar .mouth { | |
| width: 22px; | |
| height: 6px; | |
| background: #a08080; | |
| border-radius: 0 0 11px 11px; | |
| margin: 14px auto 0; | |
| } | |
| .interviewer-label { | |
| margin-top: 16px; | |
| font-size: 0.9rem; | |
| color: var(--text-secondary); | |
| } | |
| /* =========================================== | |
| AVATAR STATUS BAR (Hidden) | |
| =========================================== */ | |
| .avatar-status { | |
| display: none; | |
| } | |
| /* =========================================== | |
| RESPONSIVE - FULLSCREEN EDGE-TO-EDGE | |
| =========================================== */ | |
| /* Large desktop - maximum horizontal spread */ | |
| @media (min-width: 1440px) { | |
| .avatar-panel, | |
| .fullscreen-mode .avatar-panel { | |
| flex: 1 1 70% ; | |
| width: 70% ; | |
| max-width: 70% ; | |
| } | |
| .chat-panel, | |
| .fullscreen-mode .chat-panel { | |
| flex: 1 1 30% ; | |
| width: 30% ; | |
| max-width: 30% ; | |
| } | |
| } | |
| /* Tablet landscape */ | |
| @media (max-width: 1024px) { | |
| .interview-content, | |
| .fullscreen-mode .interview-content, | |
| .windowed-mode .interview-content { | |
| flex-direction: row ; | |
| width: 100vw ; | |
| } | |
| .avatar-panel, | |
| .fullscreen-mode .avatar-panel, | |
| .windowed-mode .avatar-panel { | |
| flex: 1 1 58% ; | |
| width: 58% ; | |
| min-width: 50% ; | |
| max-width: 65% ; | |
| } | |
| .chat-panel, | |
| .fullscreen-mode .chat-panel, | |
| .windowed-mode .chat-panel { | |
| flex: 1 1 42% ; | |
| width: 42% ; | |
| min-width: 35% ; | |
| max-width: 50% ; | |
| } | |
| } | |
| /* Mobile/tablet portrait - stack vertically */ | |
| @media (max-width: 768px) { | |
| .interview-content, | |
| .fullscreen-mode .interview-content, | |
| .windowed-mode .interview-content { | |
| flex-direction: column ; | |
| width: 100vw ; | |
| } | |
| .avatar-panel, | |
| .fullscreen-mode .avatar-panel, | |
| .windowed-mode .avatar-panel { | |
| flex: 0 0 50% ; | |
| width: 100vw ; | |
| min-width: 100vw ; | |
| max-width: 100vw ; | |
| height: 50vh ; | |
| border-right: none ; | |
| border-bottom: 1px solid var(--border-color) ; | |
| } | |
| .chat-panel, | |
| .fullscreen-mode .chat-panel, | |
| .windowed-mode .chat-panel { | |
| flex: 0 0 50% ; | |
| width: 100vw ; | |
| min-width: 100vw ; | |
| max-width: 100vw ; | |
| height: 50vh ; | |
| border-left: none ; | |
| } | |
| .avatar-panel-header { | |
| padding: 10px 12px; | |
| top: 0; | |
| } | |
| .chat-messages { | |
| padding: 12px; | |
| } | |
| .media-controls { | |
| position: sticky; | |
| bottom: 0; | |
| padding: 12px 0; | |
| } | |
| /* On mobile, fullscreen controls bar moves to bottom, so undo the top offset */ | |
| .fullscreen-mode .avatar-panel-header { | |
| top: 0; | |
| } | |
| .fullscreen-mode .chat-panel { | |
| padding-top: 0 ; | |
| } | |
| /* Fullscreen controls on mobile */ | |
| .fullscreen-controls-bar { | |
| top: auto ; | |
| bottom: 0 ; | |
| padding: 8px 12px ; | |
| } | |
| } | |
| /* Small mobile */ | |
| @media (max-width: 480px) { | |
| .avatar-panel, | |
| .fullscreen-mode .avatar-panel, | |
| .windowed-mode .avatar-panel { | |
| flex: 0 0 45% ; | |
| height: 45vh ; | |
| width: 100vw ; | |
| } | |
| .chat-panel, | |
| .fullscreen-mode .chat-panel, | |
| .windowed-mode .chat-panel { | |
| flex: 0 0 55% ; | |
| height: 55vh ; | |
| width: 100vw ; | |
| } | |
| .avatar-panel-header .header-center { | |
| display: none; | |
| } | |
| .tracking-status { | |
| font-size: 0.7rem; | |
| padding: 6px 10px; | |
| } | |
| } | |
| /* =========================================== | |
| AVATAR CONTAINER - FOR STANDALONE AVATAR | |
| =========================================== */ | |
| .avatar-container { | |
| position: absolute ; | |
| top: 0 ; | |
| left: 0 ; | |
| right: 0 ; | |
| bottom: 0 ; | |
| width: 100% ; | |
| height: 100% ; | |
| overflow: hidden ; | |
| background: #0d0d1a; | |
| } | |
| /* Dark theme */ | |
| .avatar-container.dark { | |
| background: #0d0d1a ; | |
| } | |
| /* Light theme */ | |
| .avatar-container.light { | |
| background: #f0f4f8 ; | |
| } | |
| .avatar-container canvas { | |
| position: absolute ; | |
| top: 0 ; | |
| left: 0 ; | |
| width: 100% ; | |
| height: 100% ; | |
| display: block ; | |
| } | |
| .avatar-status { | |
| position: absolute; | |
| top: 20px; | |
| right: 20px; | |
| z-index: 10; | |
| display: flex; | |
| gap: 8px; | |
| } | |
| .status-indicator { | |
| padding: 6px 12px; | |
| border-radius: 16px; | |
| font-size: 0.75rem; | |
| font-weight: 600; | |
| backdrop-filter: blur(8px); | |
| } | |
| /* Dark mode indicators */ | |
| .avatar-container.dark .status-indicator.speaking { | |
| background: rgba(34, 197, 94, 0.2); | |
| border: 1px solid rgba(34, 197, 94, 0.4); | |
| color: #22c55e; | |
| } | |
| .avatar-container.dark .status-indicator.listening { | |
| background: rgba(79, 124, 130, 0.2); | |
| border: 1px solid rgba(79, 124, 130, 0.4); | |
| color: #d000d0; | |
| } | |
| /* Light mode indicators */ | |
| .avatar-container.light .status-indicator.speaking { | |
| background: rgba(34, 197, 94, 0.15); | |
| border: 1px solid rgba(34, 197, 94, 0.5); | |
| color: #16a34a; | |
| } | |
| .avatar-container.light .status-indicator.listening { | |
| background: rgba(79, 124, 130, 0.15); | |
| border: 1px solid rgba(79, 124, 130, 0.5); | |
| color: #d000d0; | |
| } | |
| /* =========================================== | |
| EYE CONTACT STATUS INDICATORS | |
| =========================================== */ | |
| /* Eye Contact - Active (webcam tracking working) */ | |
| .avatar-container.dark .status-indicator.eye-contact.active { | |
| background: rgba(147, 177, 181, 0.25); | |
| border: 1px solid rgba(147, 177, 181, 0.5); | |
| color: #00cccc; | |
| animation: eye-pulse 2s ease-in-out infinite; | |
| } | |
| .avatar-container.light .status-indicator.eye-contact.active { | |
| background: rgba(147, 177, 181, 0.15); | |
| border: 1px solid rgba(147, 177, 181, 0.5); | |
| color: #7c3aed; | |
| animation: eye-pulse 2s ease-in-out infinite; | |
| } | |
| /* Eye Contact - Fallback (using animation, webcam not available) */ | |
| .avatar-container.dark .status-indicator.eye-contact.fallback { | |
| background: rgba(245, 158, 11, 0.2); | |
| border: 1px solid rgba(245, 158, 11, 0.4); | |
| color: #fbbf24; | |
| } | |
| .avatar-container.light .status-indicator.eye-contact.fallback { | |
| background: rgba(245, 158, 11, 0.15); | |
| border: 1px solid rgba(245, 158, 11, 0.5); | |
| color: #d97706; | |
| } | |
| /* Eye Contact - Initializing (starting up) */ | |
| .avatar-container.dark .status-indicator.eye-contact.initializing { | |
| background: rgba(156, 163, 175, 0.2); | |
| border: 1px solid rgba(156, 163, 175, 0.4); | |
| color: #9ca3af; | |
| animation: blink-fade 1s ease-in-out infinite; | |
| } | |
| .avatar-container.light .status-indicator.eye-contact.initializing { | |
| background: rgba(107, 114, 128, 0.15); | |
| border: 1px solid rgba(107, 114, 128, 0.4); | |
| color: #6b7280; | |
| animation: blink-fade 1s ease-in-out infinite; | |
| } | |
| @keyframes eye-pulse { | |
| 0%, | |
| 100% { | |
| box-shadow: 0 0 0 0 rgba(147, 177, 181, 0.4); | |
| } | |
| 50% { | |
| box-shadow: 0 0 8px 2px rgba(147, 177, 181, 0.3); | |
| } | |
| } | |
| @keyframes blink-fade { | |
| 0%, | |
| 100% { | |
| opacity: 1; | |
| } | |
| 50% { | |
| opacity: 0.5; | |
| } | |
| } | |
| /* Loading overlay - dark */ | |
| .avatar-loading-overlay { | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| bottom: 0; | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 16px; | |
| background: rgba(13, 13, 26, 0.9); | |
| color: #00cccc; | |
| z-index: 20; | |
| } | |
| .avatar-loading-overlay.light { | |
| background: rgba(240, 244, 248, 0.95); | |
| color: #d000d0; | |
| } | |
| .loading-spinner { | |
| width: 40px; | |
| height: 40px; | |
| border: 3px solid rgba(147, 177, 181, 0.3); | |
| border-top-color: #00cccc; | |
| border-radius: 50%; | |
| animation: spin 1s linear infinite; | |
| } | |
| .avatar-loading-overlay.light .loading-spinner { | |
| border-color: rgba(79, 124, 130, 0.3); | |
| border-top-color: #d000d0; | |
| } | |
| @keyframes spin { | |
| to { | |
| transform: rotate(360deg); | |
| } | |
| } | |
| .avatar-error { | |
| position: absolute; | |
| top: 50%; | |
| left: 50%; | |
| transform: translate(-50%, -50%); | |
| padding: 16px 24px; | |
| background: rgba(239, 68, 68, 0.15); | |
| border: 1px solid rgba(239, 68, 68, 0.3); | |
| border-radius: 12px; | |
| color: #f87171; | |
| } | |
| .avatar-container.light .avatar-error { | |
| background: rgba(239, 68, 68, 0.1); | |
| border-color: rgba(220, 38, 38, 0.3); | |
| color: #dc2626; | |
| } | |
| .avatar-disabled { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| } | |
| .avatar-disabled.dark { | |
| background: #0d0d1a; | |
| } | |
| .avatar-disabled.light { | |
| background: #f0f4f8; | |
| } | |
| .avatar-placeholder { | |
| color: #6b7280; | |
| font-size: 1rem; | |
| } | |
| .avatar-container.light .avatar-placeholder { | |
| color: #9ca3af; | |
| } | |
| /* =========================================== | |
| RECORDING INDICATOR CONTAINER (Strict/High-Pressure) - NEVER SHRINK | |
| =========================================== */ | |
| .recording-indicator-container { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| gap: 0.5rem; | |
| padding: 0.75rem 1rem; | |
| background: rgba(239, 68, 68, 0.08); | |
| border: 1px solid rgba(239, 68, 68, 0.2); | |
| border-radius: 12px; | |
| margin-bottom: 1rem; | |
| flex: 0 0 auto ; | |
| flex-shrink: 0 ; | |
| } | |
| [data-theme="dark"] .recording-indicator-container { | |
| background: rgba(239, 68, 68, 0.12); | |
| border-color: rgba(239, 68, 68, 0.25); | |
| } | |
| .recording-note { | |
| font-size: 0.75rem; | |
| color: #ef4444; | |
| font-weight: 500; | |
| letter-spacing: 0.02em; | |
| } | |
| [data-theme="dark"] .recording-note { | |
| color: #f87171; | |
| } | |
| /* =========================================== | |
| ANALYTICS STATS BAR (Strict/High-Pressure) - NEVER SHRINK | |
| =========================================== */ | |
| .analytics-stats-bar { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-around; | |
| padding: 10px 16px; | |
| gap: 12px; | |
| background: linear-gradient(135deg, rgba(147, 177, 181, 0.08), rgba(79, 124, 130, 0.08)); | |
| border-bottom: 1px solid rgba(147, 177, 181, 0.15); | |
| flex: 0 0 auto ; | |
| flex-shrink: 0 ; | |
| } | |
| [data-theme="dark"] .analytics-stats-bar { | |
| background: linear-gradient(135deg, rgba(139, 92, 246, 0.12), rgba(59, 130, 246, 0.08)); | |
| border-color: rgba(139, 92, 246, 0.25); | |
| } | |
| .analytics-stats-bar .stat-item { | |
| display: flex; | |
| align-items: center; | |
| gap: 6px; | |
| padding: 6px 12px; | |
| background: rgba(255, 255, 255, 0.5); | |
| border-radius: 8px; | |
| border: 1px solid rgba(0, 0, 0, 0.05); | |
| font-size: 0.75rem; | |
| transition: all 0.2s ease; | |
| } | |
| [data-theme="dark"] .analytics-stats-bar .stat-item { | |
| background: rgba(0, 0, 0, 0.2); | |
| border-color: rgba(255, 255, 255, 0.08); | |
| } | |
| .analytics-stats-bar .stat-item svg { | |
| color: var(--text-muted); | |
| flex-shrink: 0; | |
| } | |
| .analytics-stats-bar .stat-label { | |
| color: var(--text-secondary); | |
| font-weight: 500; | |
| } | |
| .analytics-stats-bar .stat-value { | |
| font-weight: 700; | |
| font-family: 'SF Mono', 'Consolas', monospace; | |
| } | |
| .analytics-stats-bar .stat-value.good { | |
| color: #22c55e; | |
| } | |
| .analytics-stats-bar .stat-value.fair { | |
| color: #fbbf24; | |
| } | |
| .analytics-stats-bar .stat-value.poor { | |
| color: #ef4444; | |
| } | |
| .analytics-stats-bar .stat-item.warning { | |
| background: rgba(251, 191, 36, 0.1); | |
| border-color: rgba(251, 191, 36, 0.3); | |
| } | |
| .analytics-stats-bar .stat-item.warning svg { | |
| color: #fbbf24; | |
| } | |
| .analytics-stats-bar .stat-item.warning .stat-value { | |
| color: #f59e0b; | |
| } | |
| /* =========================================== | |
| RESPONSIVE DESIGN | |
| =========================================== */ | |
| @media (max-width: 1024px) { | |
| .chat-panel { | |
| flex: 0 0 45% ; | |
| } | |
| .avatar-panel { | |
| flex: 1 1 55% ; | |
| } | |
| } | |
| @media (max-width: 768px) { | |
| .interview-content { | |
| flex-direction: column ; | |
| } | |
| .avatar-panel { | |
| flex: 0 0 45% ; | |
| height: 45% ; | |
| border-right: none ; | |
| border-bottom: 1px solid #c4b8de ; | |
| } | |
| [data-theme="dark"] .avatar-panel { | |
| border-bottom-color: rgba(139, 92, 246, 0.2) ; | |
| } | |
| .chat-panel { | |
| flex: 1 1 55% ; | |
| height: 55% ; | |
| border-left: none ; | |
| } | |
| .avatar-panel-header { | |
| padding: 8px 12px; | |
| } | |
| .avatar-panel-header .header-center { | |
| display: none; | |
| } | |
| } | |
| @media (max-width: 480px) { | |
| .live-interview-container .navbar { | |
| height: 48px ; | |
| min-height: 48px ; | |
| max-height: 48px ; | |
| padding: 0 12px ; | |
| } | |
| .interview-main { | |
| height: calc(100vh - 48px) ; | |
| height: calc(100dvh - 48px) ; | |
| } | |
| .avatar-panel { | |
| flex: 0 0 40% ; | |
| height: 40% ; | |
| } | |
| .chat-panel { | |
| flex: 1 1 60% ; | |
| height: 60% ; | |
| } | |
| .chat-input-area { | |
| padding: 12px 16px; | |
| } | |
| .input-container { | |
| padding: 10px 14px; | |
| } | |
| .media-btn { | |
| width: 42px; | |
| height: 42px; | |
| } | |
| .chat-messages { | |
| padding: 16px; | |
| } | |
| } | |
| /* =========================================== | |
| COMPLETING CARD - Interview Complete State | |
| =========================================== */ | |
| .completing-card { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| padding: 48px 24px; | |
| text-align: center; | |
| background: var(--bg-surface); | |
| border-radius: 16px; | |
| margin: 20px; | |
| border: 1px solid var(--border-color); | |
| } | |
| .completing-card h3 { | |
| font-size: 1.5rem; | |
| font-weight: 700; | |
| margin: 20px 0 8px; | |
| color: var(--text-primary); | |
| } | |
| .completing-card p { | |
| font-size: 1rem; | |
| color: var(--text-secondary); | |
| margin: 0 0 24px; | |
| } | |
| .completing-card svg { | |
| color: var(--accent-primary); | |
| } | |
| [data-theme="dark"] .completing-card svg { | |
| color: #a78bfa; | |
| } |