.exam-page{background:linear-gradient(#f0f5ff 0%,#e8f0fe 50%,#f8fafc 100%);min-height:calc(100vh - 80px);padding:20px 24px;position:relative}.exam-page:before{content:"";pointer-events:none;background:linear-gradient(135deg,#0245ae0d 0%,#4a9eff14 100%);height:200px;position:absolute;top:0;left:0;right:0}.exam-info-item{text-align:center;background:#f1f5f9;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:116px;padding:16px 14px 14px;display:flex}.exam-info-value{letter-spacing:-.02em;color:#0f172a;font-size:29px;font-weight:700;line-height:1}.exam-info-label{color:#475569;justify-content:center;align-items:flex-start;min-height:2.5em;font-size:13px;font-weight:600;line-height:1.25;display:flex}.category-tag{--category-accent:#0245ae;--category-soft:#0245ae14;background:linear-gradient(135deg, var(--category-soft) 0%, #ffffffe6 100%);color:var(--category-accent);border:1px solid color-mix(in srgb, var(--category-accent) 18%, white);border-radius:20px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;display:flex}.category-tag i{color:currentColor;font-size:12px}.category-tag--grammar{--category-accent:#3b82f6;--category-soft:#3b82f61f}.category-tag--vocabulary{--category-accent:#8b5cf6;--category-soft:#8b5cf61f}.category-tag--comprehension{--category-accent:#10b981;--category-soft:#10b9811f}@keyframes spin{to{transform:rotate(360deg)}}.exam-container{z-index:1;max-width:920px;margin:0 auto;position:relative}.exam-resume-banner{color:#fff;background:linear-gradient(135deg,#10b981 0%,#059669 100%);border-radius:14px;align-items:center;gap:12px;margin-bottom:20px;padding:14px 24px;font-size:14px;font-weight:500;animation:.3s ease-out slideDown;display:flex}.exam-resume-banner i{font-size:16px}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.exam-header{background:linear-gradient(135deg,#fff 0%,#f8fafc 100%);border:1px solid #0000000a;border-radius:14px;justify-content:space-between;align-items:center;margin-bottom:14px;padding:14px 20px;display:flex;box-shadow:0 4px 14px #0000000d}.exam-timer{background:linear-gradient(135deg,#0245ae 0%,#4a9eff 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;align-items:center;gap:8px;font-size:22px;font-weight:700;display:flex}.exam-timer i{-webkit-text-fill-color:#0245ae;font-size:18px}.exam-progress{text-align:right}.exam-progress span{color:#64748b;margin-bottom:6px;font-size:13px;font-weight:500;display:block}.progress-bar{background:#e5e7eb;border-radius:4px;width:180px;height:8px;overflow:hidden;box-shadow:inset 0 1px 3px #0000000f}.question-nav{background:#fff;border:1px solid #0000000a;border-radius:12px;flex-wrap:wrap;gap:6px;margin-bottom:14px;padding:12px 14px;display:flex;box-shadow:0 3px 12px #0000000d}.question-nav-btn{color:#64748b;cursor:pointer;background:#fff;border:2px solid #e5e7eb;border-radius:8px;width:36px;height:36px;font-size:13px;font-weight:600;transition:all .2s}.question-nav-btn.active{color:#fff;background:#0245ae;border-color:#0245ae}.question-nav-btn.answered{color:#10b981;background:#10b98120;border-color:#10b981}.question-nav-btn.answered.active{color:#fff;background:#10b981}.question-card{background:#fff;border:1px solid #0000000a;border-radius:18px;margin-bottom:16px;padding:24px 28px;position:relative;overflow:hidden;box-shadow:0 8px 28px #00000012}.question-card:before{content:"";background:linear-gradient(90deg,#0245ae 0%,#4a9eff 50%,#8b5cf6 100%);height:3px;position:absolute;top:0;left:0;right:0}.question-meta{align-items:center;gap:12px;margin-bottom:16px;display:flex}.question-category{color:#fff;border-radius:20px;align-items:center;gap:6px;padding:6px 14px;font-size:12px;font-weight:600;display:flex;box-shadow:0 3px 10px #0000001f}.question-category i{font-size:12px}.question-number{color:#475569;background:#f1f5f9;border-radius:20px;padding:6px 12px;font-size:13px;font-weight:600}.question-difficulty{color:#fff;border-radius:20px;padding:6px 14px;font-size:13px;font-weight:600}.question-text{color:#1e293b;margin-bottom:20px;font-size:18px;font-weight:500;line-height:1.6}.answer-options{flex-direction:column;gap:10px;display:flex}.answer-option{cursor:pointer;text-align:left;background:#fafbfc;border:2px solid #e5e7eb;border-radius:12px;align-items:center;gap:14px;padding:14px 18px;transition:all .25s;display:flex}.answer-option:hover{background:linear-gradient(135deg,#f0f7ff 0%,#e8f4ff 100%);border-color:#0245ae;transform:translate(3px);box-shadow:0 3px 12px #0245ae1a}.answer-option.selected{background:linear-gradient(135deg,#e8f4ff 0%,#dbeafe 100%);border-color:#0245ae;box-shadow:0 3px 16px #0245ae1f}.option-letter{color:#64748b;background:#fff;border:2px solid #e5e7eb;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:14px;font-weight:700;transition:all .25s;display:flex}.answer-option:hover .option-letter{color:#0245ae;border-color:#0245ae}.answer-option.selected .option-letter{color:#fff;background:linear-gradient(135deg,#0245ae 0%,#4a9eff 100%);border-color:#0245ae;box-shadow:0 3px 10px #0245ae40}.option-text{color:#334155;font-size:15px;font-weight:500;line-height:1.5}.exam-nav-buttons{justify-content:space-between;gap:16px;display:flex}.nav-btn{cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-width:120px;padding:12px 22px;font-size:14px;font-weight:600;transition:all .3s;display:flex}.nav-btn.prev{color:#64748b;background:#f1f5f9;border:2px solid #e2e8f0}.nav-btn.prev:hover:not(:disabled){color:#475569;background:#e2e8f0;border-color:#cbd5e1;transform:translate(-4px);box-shadow:0 4px 12px #64748b33}.nav-btn.prev:disabled{opacity:.5;cursor:not-allowed}.nav-btn.next{color:#fff;background:linear-gradient(135deg,#0245ae 0%,#4a9eff 100%);border:none;margin-left:auto}.nav-btn.next:hover{background:linear-gradient(135deg,#0336a1 0%,#3a8fe8 100%);transform:translate(4px);box-shadow:0 8px 24px #0245ae66}.nav-btn.submit{color:#fff;background:linear-gradient(135deg,#10b981 0%,#059669 100%);border:none;margin-left:auto}.nav-btn.submit:hover{background:linear-gradient(135deg,#059669 0%,#047857 100%);transform:translateY(-2px);box-shadow:0 8px 24px #10b98166}.exam-error{color:#dc2626;text-align:center;background:#fef2f2;border:1px solid #fecaca;border-radius:12px;margin-top:20px;padding:16px}.exam-results{max-width:800px;margin:0 auto}.results-header{text-align:center;border-radius:24px;margin-bottom:32px;padding:48px}.results-header.passed{color:#fff;background:linear-gradient(135deg,#10b981 0%,#059669 100%)}.results-header.failed{color:#fff;background:linear-gradient(135deg,#f59e0b 0%,#d97706 100%)}.results-icon{background:#fff3;border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin:0 auto 20px;display:flex}.results-icon i{font-size:40px}.results-header h2{margin-bottom:8px;font-size:36px}.results-status{opacity:.9;font-size:18px}.score-card{justify-content:center;margin-bottom:32px;display:flex}.score-circle{border-radius:50%;justify-content:center;align-items:center;width:180px;height:180px;display:flex;box-shadow:0 10px 40px #0000001a}.score-inner{background:#fff;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:140px;height:140px;display:flex}.score-percentage{color:#1e293b;font-size:40px;font-weight:700}.score-fraction{color:#64748b;font-size:16px}.feedback-card{background:#fff;border-radius:16px;margin-bottom:32px;padding:24px;box-shadow:0 4px 12px #0000000d}.feedback-card h4{color:#0245ae;align-items:center;gap:8px;margin-bottom:12px;font-size:16px;display:flex}.feedback-card p{color:#475569;font-size:16px;line-height:1.7}.results-breakdown{background:#fff;border-radius:16px;margin-bottom:32px;padding:24px;box-shadow:0 4px 12px #0000000d}.results-breakdown h4{color:#1e293b;margin-bottom:20px;font-size:18px}.result-question{border:1px solid #e5e7eb;border-radius:12px;margin-bottom:16px;padding:20px}.result-question.correct{border-left:4px solid #10b981}.result-question.incorrect{border-left:4px solid #ef4444}.result-question-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.result-question-num{color:#64748b;font-weight:700}.result-badge{border-radius:20px;padding:4px 12px;font-size:13px;font-weight:600}.result-badge.correct{color:#059669;background:#d1fae5}.result-badge.incorrect{color:#dc2626;background:#fee2e2}.result-question-text{color:#1e293b;margin-bottom:16px;line-height:1.5}.result-answers{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.result-answer{border-radius:8px;padding:12px 16px;font-size:14px}.result-answer span{color:#64748b;margin-right:8px}.result-answer.correct-answer{background:#d1fae5}.result-answer.wrong-answer{background:#fee2e2}.result-explanation{color:#475569;background:#f8fafc;border-radius:8px;gap:12px;padding:16px;font-size:14px;line-height:1.6;display:flex}.result-explanation i{color:#f59e0b;flex-shrink:0}.expired-info{color:#92400e;background:#fef3c7;border:1px solid #f59e0b;border-radius:12px;align-items:flex-start;gap:12px;margin-bottom:24px;padding:16px 20px;display:flex}.expired-info i{color:#f59e0b;margin-top:2px;font-size:20px}.expired-info p{margin:0;font-size:14px;line-height:1.5}.results-actions{justify-content:center;gap:16px;display:flex}.results-btn{cursor:pointer;border:none;border-radius:12px;align-items:center;gap:10px;padding:16px 32px;font-size:16px;font-weight:600;text-decoration:none;transition:all .2s;display:flex}.results-btn.secondary{color:#475569;background:#f1f5f9}.results-btn.secondary:hover{background:#e2e8f0}.results-btn.primary{color:#fff;background:linear-gradient(135deg,#0245ae 0%,#4a9eff 100%)}.results-btn.primary:hover{box-shadow:0 8px 20px #0245ae4d}.section-labels{flex-wrap:wrap;gap:10px;margin-bottom:10px;display:flex}.section-label{background:#fff;border:1px solid #0000000a;border-left-width:4px;border-radius:10px;flex-direction:column;gap:1px;padding:8px 14px;transition:all .2s;display:flex;box-shadow:0 3px 10px #0000000d}.section-label:hover{transform:translateY(-2px);box-shadow:0 5px 14px #00000014}.section-label span{color:#1e293b;font-size:13px;font-weight:600}.section-label small{color:#64748b;font-size:11px;font-weight:500}.fill-in-blank-question{margin-top:16px}.sentence-text{color:#1e293b;background:#f8fafc;border-left:4px solid #0245ae;border-radius:12px;margin-bottom:28px;padding:24px;font-size:20px;line-height:1.8}.comprehension-question{margin-top:16px}.passage-box{background:#fefce8;border:1px solid #fef08a;border-radius:12px;margin-bottom:24px;overflow:hidden}.passage-header{color:#713f12;background:#facc15;align-items:center;gap:10px;padding:12px 20px;font-weight:600;display:flex}.passage-header i{font-size:16px}.passage-text{color:#44403c;margin:0;padding:24px;font-size:16px;line-height:1.8}.comprehension-q{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:24px}.comprehension-q .question-text{color:#1e293b;margin-bottom:20px;font-size:18px;font-weight:600}.section-breakdown{background:#fff;border-radius:16px;margin-bottom:32px;padding:24px;box-shadow:0 4px 12px #0000000d}.section-breakdown h4{color:#1e293b;text-align:center;margin-bottom:20px;font-size:18px}.breakdown-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.breakdown-item{border:1px solid #e5e7eb;border-radius:12px;overflow:hidden}.breakdown-header{color:#fff;align-items:center;gap:8px;padding:12px 16px;font-size:14px;font-weight:600;display:flex}.breakdown-header i{font-size:14px}.breakdown-score{text-align:center;color:#1e293b;padding:20px;font-size:28px;font-weight:700}@media (width<=768px){.exam-intro-card{padding:24px}.exam-info-grid{grid-template-columns:repeat(2,1fr)}.exam-header{text-align:center;flex-direction:column;gap:16px}.exam-progress{text-align:center}.progress-bar{width:100%}.question-card{padding:20px}.question-text{font-size:18px}.exam-nav-buttons{flex-direction:column}.nav-btn{justify-content:center}.nav-btn.next,.nav-btn.submit{margin-left:0}.results-actions{flex-direction:column}.results-btn{justify-content:center}.section-labels{flex-direction:column}.breakdown-grid{grid-template-columns:1fr}.sentence-text{padding:16px;font-size:18px}.passage-text{padding:16px;font-size:15px}}[data-theme=dark] .exam-page{background:var(--fxv-bg)}[data-theme=dark] .exam-page:before{display:none}[data-theme=dark] .exam-intro-card,[data-theme=dark] .exam-header,[data-theme=dark] .question-nav,[data-theme=dark] .question-card,[data-theme=dark] .feedback-card,[data-theme=dark] .results-breakdown,[data-theme=dark] .section-breakdown,[data-theme=dark] .comprehension-q,[data-theme=dark] .section-label,[data-theme=dark] .result-question,[data-theme=dark] .score-inner{background:linear-gradient(135deg, var(--fxv-surface) 0%, var(--fxv-surface-muted) 100%);border-color:var(--fxv-border);box-shadow:var(--fxv-shadow-sm)}[data-theme=dark] .exam-loading h3,[data-theme=dark] .exam-intro-card h2,[data-theme=dark] .question-text,[data-theme=dark] .results-breakdown h4,[data-theme=dark] .feedback-card h4,[data-theme=dark] .result-question-text,[data-theme=dark] .score-percentage,[data-theme=dark] .section-breakdown h4,[data-theme=dark] .breakdown-score,[data-theme=dark] .section-label span,[data-theme=dark] .sentence-text,[data-theme=dark] .comprehension-q .question-text{color:var(--fxv-text)}[data-theme=dark] .exam-intro-description,[data-theme=dark] .exam-loading p,[data-theme=dark] .exam-progress span,[data-theme=dark] .option-text,[data-theme=dark] .feedback-card p,[data-theme=dark] .result-question-num,[data-theme=dark] .result-answer span,[data-theme=dark] .result-explanation,[data-theme=dark] .score-fraction,[data-theme=dark] .section-label small,[data-theme=dark] .passage-text{color:var(--fxv-text-muted)}[data-theme=dark] .exam-info-item,[data-theme=dark] .question-number,[data-theme=dark] .sentence-text,[data-theme=dark] .result-explanation,[data-theme=dark] .results-btn.secondary,[data-theme=dark] .nav-btn.prev{background:var(--fxv-surface-soft);color:var(--fxv-text-muted);border-color:var(--fxv-border)}[data-theme=dark] .exam-info-item span,[data-theme=dark] .question-number,[data-theme=dark] .results-btn.secondary{color:var(--fxv-text)}[data-theme=dark] .exam-info-label{color:var(--fxv-text-muted)}[data-theme=dark] .category-tag{color:#e2e8f0;background:#ffffff0a;border-color:#94a3b829;box-shadow:inset 0 1px #ffffff05}[data-theme=dark] .category-tag i{color:var(--category-accent)}[data-theme=dark] .category-tag--grammar{border-color:#3b82f63d}[data-theme=dark] .category-tag--vocabulary{border-color:#8b5cf63d}[data-theme=dark] .category-tag--comprehension{border-color:#10b9813d}[data-theme=dark] .progress-bar{background:#ffffff14}[data-theme=dark] .question-nav-btn,[data-theme=dark] .option-letter{background:var(--fxv-surface);border-color:var(--fxv-border);color:var(--fxv-text-muted)}[data-theme=dark] .question-nav-btn.active{border-color:var(--fxv-accent);background:var(--fxv-accent);color:#fff}[data-theme=dark] .question-nav-btn.answered{color:#4ade80;background:#4ade801f;border-color:#4ade8066}[data-theme=dark] .answer-option{border-color:var(--fxv-border);background:#ffffff06}[data-theme=dark] .answer-option:hover{border-color:var(--fxv-accent-strong);box-shadow:none;background:#2563eb1a}[data-theme=dark] .answer-option.selected{border-color:var(--fxv-accent);box-shadow:none;background:#2563eb29}[data-theme=dark] .nav-btn.prev:hover:not(:disabled){color:var(--fxv-text);border-color:var(--fxv-border-strong);box-shadow:none;background:#ffffff14}[data-theme=dark] .exam-error{color:#fca5a5;background:#7f1d1d33;border-color:#f871713d}[data-theme=dark] .score-circle{box-shadow:var(--fxv-shadow-md)}[data-theme=dark] .result-badge.correct{color:#4ade80;background:#4ade8024}[data-theme=dark] .result-badge.incorrect{color:#f87171;background:#f8717124}[data-theme=dark] .result-answer.correct-answer{color:#d1fae5;background:#4ade801f}[data-theme=dark] .result-answer.wrong-answer{color:#fee2e2;background:#f871711f}[data-theme=dark] .expired-info{color:#fcd34d;background:#78350f3d;border-color:#f59e0b57}[data-theme=dark] .passage-box{background:#78350f2e;border-color:#facc1552}[data-theme=dark] .passage-header{color:#fde68a;background:#facc152e}[data-theme=dark] .breakdown-item{border-color:var(--fxv-border);background:#ffffff05}.speaking-exam-page{background:linear-gradient(135deg,#f8fafc 0%,#e2e8f0 100%);min-height:calc(100vh - 80px);padding:24px}.exam-intro{justify-content:center;align-items:center;min-height:60vh;display:flex}.exam-intro-card{text-align:center;background:#fff;border-radius:24px;width:100%;max-width:600px;padding:48px;box-shadow:0 20px 40px #0000001a}.exam-intro-card.speaking{max-width:700px}.exam-intro-icon{background:linear-gradient(135deg,#0245ae 0%,#4a9eff 100%);border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin:0 auto 24px;display:flex;box-shadow:0 10px 30px #0245ae4d}.exam-intro-icon i{color:#fff;font-size:32px}.exam-intro-card h2{color:#1e293b;margin-bottom:12px;font-size:28px}.exam-intro-description{color:#64748b;margin-bottom:32px;font-size:16px;line-height:1.6}.exam-info-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px;display:grid}.exam-info-item{background:#f1f5f9;border-radius:12px;flex-direction:column;align-items:center;gap:8px;padding:16px;display:flex}.exam-info-item i{color:#0245ae;font-size:24px}.exam-info-item span{color:#334155;font-size:14px;font-weight:600}.exam-categories{text-align:left;margin-bottom:24px}.exam-categories h4{color:#64748b;text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px;font-size:14px}.category-tags{flex-wrap:wrap;gap:8px;display:flex}.category-tag{color:#0245ae;background:linear-gradient(135deg,#0245ae10 0%,#4a9eff10 100%);border:1px solid #0245ae33;border-radius:20px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;display:flex}.category-tag i{font-size:12px}.exam-rules{text-align:left;background:#fffbeb;border:1px solid #fcd34d;border-radius:12px;margin-bottom:32px;padding:20px}.exam-rules h4{color:#92400e;align-items:center;gap:8px;margin-bottom:12px;font-size:14px;display:flex}.exam-rules ul{margin:0;padding-left:20px}.exam-rules li{color:#78716c;margin-bottom:8px;font-size:14px;line-height:1.5}.speaking-rules li strong{color:#dc2626}.start-exam-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#0245ae 0%,#4a9eff 100%);border:none;border-radius:12px;align-items:center;gap:12px;padding:16px 48px;font-size:18px;font-weight:600;transition:all .3s;display:inline-flex;box-shadow:0 10px 30px #0245ae4d}.start-exam-btn:hover{transform:translateY(-2px);box-shadow:0 15px 40px #0245ae66}.exam-loading{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:60vh;display:flex}.loading-spinner{border:4px solid #e5e7eb;border-top-color:#0245ae;border-radius:50%;width:60px;height:60px;margin-bottom:24px;animation:1s linear infinite spin}.loading-spinner.small{width:30px;height:30px;margin:0 auto 12px}.exam-loading h3{color:#1e293b;margin-bottom:8px;font-size:24px}.exam-loading p{color:#64748b;font-size:16px}.equipment-test-card{text-align:center;background:#fff;border-radius:24px;width:100%;max-width:500px;padding:48px;box-shadow:0 20px 40px #0000001a}.test-icon{border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin:0 auto 24px;display:flex;box-shadow:0 10px 30px #0003}.test-icon.mic{background:linear-gradient(135deg,#10b981 0%,#34d399 100%)}.test-icon.speaker{background:linear-gradient(135deg,#8b5cf6 0%,#a78bfa 100%)}.test-icon i{color:#fff;font-size:32px}.equipment-test-card h2{color:#1e293b;margin-bottom:12px;font-size:24px}.equipment-test-card>p{color:#64748b;margin-bottom:32px;font-size:15px;line-height:1.6}.permission-prompt,.permission-denied{border-radius:12px;margin-bottom:24px;padding:24px}.permission-prompt{background:#f0f9ff;border:1px solid #bae6fd}.permission-prompt .loading-spinner.small{width:30px;height:30px;margin:0 auto 12px}.permission-denied{background:#fef2f2;border:1px solid #fecaca}.permission-denied i{color:#dc2626;margin-bottom:12px;font-size:48px;display:block}.permission-denied p{color:#991b1b;margin-bottom:16px}.retry-btn{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:8px;padding:12px 24px;font-weight:600;transition:all .2s}.retry-btn:hover{background:#b91c1c}.mic-level-container{margin-bottom:24px}.mic-level-bar{background:#e5e7eb;border-radius:12px;height:24px;margin-bottom:8px;overflow:hidden}.mic-level-fill{background:linear-gradient(90deg,#10b981 0%,#34d399 50%,#fbbf24 100%);border-radius:12px;height:100%;transition:width .1s}.mic-level-label{color:#10b981;font-size:14px;font-weight:600}.test-instructions{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;margin-bottom:24px;padding:16px}.test-instructions p{color:#166534;margin:0;font-size:15px}.confirm-test-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#10b981 0%,#34d399 100%);border:none;border-radius:12px;align-items:center;gap:8px;padding:16px 32px;font-size:16px;font-weight:600;transition:all .3s;display:inline-flex}.confirm-test-btn.active:hover{transform:translateY(-2px);box-shadow:0 10px 30px #10b9814d}.confirm-test-btn.disabled{color:#9ca3af;cursor:not-allowed;background:#e5e7eb}.play-sound-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#8b5cf6 0%,#a78bfa 100%);border:none;border-radius:12px;align-items:center;gap:8px;margin-bottom:32px;padding:16px 32px;font-size:16px;font-weight:600;transition:all .3s;display:inline-flex}.play-sound-btn:hover{transform:translateY(-2px);box-shadow:0 10px 30px #8b5cf64d}.speaker-confirm{margin-bottom:24px}.speaker-confirm p{color:#64748b;margin-bottom:16px}.confirm-buttons{justify-content:center;gap:12px;display:flex}.confirm-yes,.confirm-no{cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:12px 24px;font-weight:600;transition:all .2s;display:inline-flex}.confirm-yes{color:#fff;background:#10b981;border:none}.confirm-yes:hover{background:#059669}.confirm-no{color:#64748b;background:#fff;border:1px solid #e5e7eb}.confirm-no:hover{background:#f1f5f9}.all-tests-passed{background:linear-gradient(135deg,#ecfdf5 0%,#d1fae5 100%);border:2px solid #10b981;border-radius:16px;margin-top:24px;padding:24px}.all-tests-passed i{color:#10b981;margin-bottom:12px;font-size:48px;display:block}.all-tests-passed p{color:#166534;margin-bottom:16px;font-size:18px;font-weight:600}.exam-task-container{max-width:800px;margin:0 auto}.task-header{background:#fff;border-radius:16px;justify-content:space-between;align-items:center;margin-bottom:24px;padding:16px 24px;display:flex;box-shadow:0 4px 12px #0000000d}.task-progress{flex:1}.task-progress span{color:#64748b;margin-bottom:8px;font-size:14px;display:block}.progress-bar{background:#e5e7eb;border-radius:4px;max-width:200px;height:8px;overflow:hidden}.progress-fill{background:linear-gradient(90deg,#0245ae 0%,#4a9eff 100%);border-radius:4px;height:100%;transition:width .3s}.task-type-badge{color:#0245ae;background:linear-gradient(135deg,#0245ae10 0%,#4a9eff10 100%);border-radius:20px;align-items:center;gap:8px;padding:10px 16px;font-size:14px;font-weight:600;display:flex}.task-main{background:#fff;border-radius:24px;padding:32px;box-shadow:0 20px 40px #0000001a}.prep-phase{text-align:center}.prep-timer{margin-bottom:24px}.timer-circle{border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:120px;height:120px;margin:0 auto;display:flex}.timer-circle.prep{background:linear-gradient(135deg,#fef3c7 0%,#fde68a 100%);border:4px solid #f59e0b}.timer-circle.recording{background:linear-gradient(135deg,#fee2e2 0%,#fecaca 100%);border:4px solid #ef4444;animation:1s infinite pulse-border}@keyframes pulse-border{0%,to{box-shadow:0 0 #ef444466}50%{box-shadow:0 0 0 10px #ef444400}}.timer-value{color:#1e293b;font-size:36px;font-weight:700}.timer-label{color:#64748b;text-transform:uppercase;letter-spacing:.5px;font-size:12px}.prep-instructions{background:#fef3c7;border-radius:8px;align-items:center;gap:8px;margin-bottom:24px;padding:12px 20px;display:inline-flex}.prep-instructions p{color:#92400e;margin:0;font-weight:500}.skip-prep-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#0245ae 0%,#4a9eff 100%);border:none;border-radius:10px;align-items:center;gap:8px;margin-top:24px;padding:14px 28px;font-size:15px;font-weight:600;transition:all .3s;display:inline-flex}.skip-prep-btn:hover{transform:translateY(-2px);box-shadow:0 10px 30px #0245ae4d}.recording-phase{text-align:center}.recording-indicator{background:#fef2f2;border-radius:20px;align-items:center;gap:10px;margin-bottom:16px;padding:10px 20px;display:inline-flex}.recording-dot{background:#ef4444;border-radius:50%;width:12px;height:12px}.recording-dot.pulse{animation:1s infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}.recording-indicator span{color:#dc2626;font-weight:600}.recording-timer{margin-bottom:24px}.recording-actions{justify-content:center;margin:20px 0;display:flex}.done-speaking-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#0245ae 0%,#4a9eff 100%);border:none;border-radius:12px;align-items:center;gap:10px;padding:14px 28px;font-size:15px;font-weight:600;transition:all .3s;display:flex;box-shadow:0 4px 14px #0245ae40}.done-speaking-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0245ae59}.done-speaking-btn i{font-size:14px}.recording-hint{color:#64748b;border-top:1px solid #e5e7eb;justify-content:center;align-items:center;gap:8px;margin-top:24px;padding-top:24px;font-size:14px;display:flex}.task-content{text-align:left;margin:24px 0}.task-instruction{color:#64748b;margin-bottom:20px;font-size:15px;font-style:italic}.read-aloud-text{background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-left:4px solid #0ea5e9;border-radius:16px;padding:24px}.read-aloud-text p{color:#0c4a6e;margin:0;font-size:20px;line-height:1.8}.task-image-container{border-radius:16px;overflow:hidden;box-shadow:0 8px 24px #0000001a}.task-image-container img{width:100%;height:auto;display:block}.scenario-box,.prompt-box{border-radius:12px;margin-bottom:16px;padding:20px}.scenario-box{background:#f0fdf4;border-left:4px solid #22c55e}.prompt-box{background:#fef3c7;border-left:4px solid #f59e0b}.scenario-box h4,.prompt-box h4{text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:12px}.scenario-box h4{color:#166534}.prompt-box h4{color:#92400e}.scenario-box p,.prompt-box p{margin:0;font-size:16px;line-height:1.6}.scenario-box p{color:#14532d}.prompt-box p{color:#78350f}.teaching-topic{background:linear-gradient(135deg,#faf5ff 0%,#f3e8ff 100%);border-left:4px solid #a855f7;border-radius:16px;margin-bottom:16px;padding:24px}.teaching-topic h4{text-transform:uppercase;letter-spacing:.5px;color:#7e22ce;margin-bottom:8px;font-size:12px}.teaching-topic p{color:#581c87;margin:0;font-size:18px;font-weight:500}.target-level{text-align:center}.level-badge{border-radius:20px;padding:8px 16px;font-size:13px;font-weight:600;display:inline-block}.level-badge.beginner{color:#166534;background:#dcfce7}.level-badge.intermediate{color:#92400e;background:#fef3c7}.level-badge.advanced{color:#991b1b;background:#fee2e2}.question-box{background:linear-gradient(135deg,#fef2f2 0%,#ffe4e6 100%);border-left:4px solid #f43f5e;border-radius:16px;padding:24px}.question-box p{color:#881337;margin:0;font-size:18px;line-height:1.6}.submitting-exam h3{margin-bottom:8px}.submitting-exam>p{color:#64748b;margin-bottom:24px}.submitting-progress{margin-top:16px}.progress-steps{justify-content:center;gap:32px;margin-bottom:24px;display:flex}.progress-steps .step{color:#cbd5e1;flex-direction:column;align-items:center;gap:8px;transition:all .3s;display:flex}.progress-steps .step i{background:#f1f5f9;border:2px solid #e2e8f0;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:24px;display:flex}.progress-steps .step span{font-size:13px;font-weight:500}.progress-steps .step.active{color:#0245ae}.progress-steps .step.active i{color:#fff;background:linear-gradient(135deg,#0245ae 0%,#4a9eff 100%);border-color:#0245ae;animation:1.5s infinite pulse-step}@keyframes pulse-step{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.time-estimate{color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-size:14px;display:flex}.time-estimate i{color:#f59e0b}.speaking-results{max-width:800px;margin:0 auto}.results-header{text-align:center;margin-bottom:32px}.result-badge{border-radius:30px;align-items:center;gap:8px;margin-bottom:16px;padding:12px 24px;font-size:18px;font-weight:700;display:inline-flex}.result-badge.passed{color:#fff;background:linear-gradient(135deg,#10b981 0%,#34d399 100%)}.result-badge.failed{color:#fff;background:linear-gradient(135deg,#ef4444 0%,#f87171 100%)}.results-header h2{color:#1e293b;margin:0;font-size:28px}.score-overview{text-align:center;background:#fff;border-radius:24px;margin-bottom:24px;padding:32px;box-shadow:0 8px 24px #0000000d}.overall-score{border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:140px;height:140px;margin:0 auto 16px;display:flex}.overall-score.excellent{background:linear-gradient(135deg,#dcfce7 0%,#bbf7d0 100%);border:4px solid #22c55e}.overall-score.good{background:linear-gradient(135deg,#dbeafe 0%,#bfdbfe 100%);border:4px solid #3b82f6}.overall-score.fair{background:linear-gradient(135deg,#fef3c7 0%,#fde68a 100%);border:4px solid #f59e0b}.overall-score.poor{background:linear-gradient(135deg,#fee2e2 0%,#fecaca 100%);border:4px solid #ef4444}.score-value{color:#1e293b;font-size:36px;font-weight:700}.score-label{color:#64748b;text-transform:uppercase;font-size:12px}.passing-note{color:#64748b;margin:0;font-size:15px}.section-scores{background:#fff;border-radius:24px;margin-bottom:24px;padding:32px;box-shadow:0 8px 24px #0000000d}.section-scores h3{color:#1e293b;margin-bottom:20px;font-size:18px}.score-grid{gap:16px;display:grid}.score-item{grid-template-columns:140px 1fr 60px;align-items:center;gap:16px;display:grid}.score-category{color:#334155;font-size:14px;font-weight:600}.score-bar-container{background:#e5e7eb;border-radius:6px;height:12px;overflow:hidden}.score-bar{border-radius:6px;height:100%;transition:width .5s}.score-bar.excellent{background:linear-gradient(90deg,#22c55e 0%,#4ade80 100%)}.score-bar.good{background:linear-gradient(90deg,#3b82f6 0%,#60a5fa 100%)}.score-bar.fair{background:linear-gradient(90deg,#f59e0b 0%,#fbbf24 100%)}.score-bar.poor{background:linear-gradient(90deg,#ef4444 0%,#f87171 100%)}.score-number{color:#64748b;text-align:right;font-size:14px;font-weight:600}.overall-feedback{background:#fff;border-radius:24px;margin-bottom:24px;padding:32px;box-shadow:0 8px 24px #0000000d}.overall-feedback h3{color:#1e293b;margin-bottom:12px;font-size:18px}.overall-feedback p{color:#64748b;margin:0;line-height:1.7}.task-scores-detail{background:#fff;border-radius:24px;margin-bottom:24px;padding:32px;box-shadow:0 8px 24px #0000000d}.task-scores-detail h3{color:#1e293b;margin-bottom:20px;font-size:18px}.task-score-card{background:#f8fafc;border-radius:12px;margin-bottom:12px;padding:16px}.task-score-card:last-child{margin-bottom:0}.task-score-header{align-items:center;gap:12px;margin-bottom:8px;display:flex}.task-number{color:#0245ae;font-size:14px;font-weight:700}.task-type{color:#64748b;font-size:13px}.task-percentage{border-radius:12px;margin-left:auto;padding:4px 12px;font-size:16px;font-weight:700}.task-percentage.excellent{color:#166534;background:#dcfce7}.task-percentage.good{color:#1e40af;background:#dbeafe}.task-percentage.fair{color:#92400e;background:#fef3c7}.task-percentage.poor{color:#991b1b;background:#fee2e2}.task-feedback{color:#64748b;margin:0;font-size:14px;line-height:1.6}.results-actions{text-align:center}.back-home-btn{color:#fff;background:linear-gradient(135deg,#0245ae 0%,#4a9eff 100%);border-radius:12px;align-items:center;gap:8px;padding:14px 28px;font-weight:600;text-decoration:none;transition:all .3s;display:inline-flex}.back-home-btn:hover{transform:translateY(-2px);box-shadow:0 10px 30px #0245ae4d}.exam-error{justify-content:center;align-items:center;min-height:60vh;display:flex}.error-card{text-align:center;background:#fff;border-radius:24px;width:100%;max-width:500px;padding:48px;box-shadow:0 20px 40px #0000001a}.error-icon{background:linear-gradient(135deg,#fee2e2 0%,#fecaca 100%);border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin:0 auto 24px;display:flex}.error-icon i{color:#dc2626;font-size:40px}.error-card h2{color:#1e293b;margin-bottom:12px;font-size:24px}.error-card p{color:#64748b;margin-bottom:24px;line-height:1.6}.error-actions{margin-top:24px}@media (width<=768px){.speaking-exam-page{padding:16px}.equipment-test-card,.task-main{padding:24px}.task-header{text-align:center;flex-direction:column;gap:16px}.progress-bar{max-width:100%}.score-item{grid-template-columns:100px 1fr 50px;gap:8px}.score-category{font-size:12px}.task-score-header{flex-wrap:wrap}.task-percentage{margin-left:0}.confirm-buttons{flex-direction:column}}[data-theme=dark] .speaking-exam-page{background:var(--fxv-bg)}[data-theme=dark] .exam-intro-card,[data-theme=dark] .equipment-test-card,[data-theme=dark] .task-header,[data-theme=dark] .task-main,[data-theme=dark] .score-overview,[data-theme=dark] .section-scores,[data-theme=dark] .overall-feedback,[data-theme=dark] .task-scores-detail,[data-theme=dark] .error-card{background:linear-gradient(135deg, var(--fxv-surface) 0%, var(--fxv-surface-muted) 100%);border:1px solid var(--fxv-border);box-shadow:var(--fxv-shadow-sm)}[data-theme=dark] .exam-intro-card h2,[data-theme=dark] .equipment-test-card h2,[data-theme=dark] .exam-loading h3,[data-theme=dark] .results-header h2,[data-theme=dark] .section-scores h3,[data-theme=dark] .overall-feedback h3,[data-theme=dark] .task-scores-detail h3,[data-theme=dark] .score-value,[data-theme=dark] .error-card h2,[data-theme=dark] .timer-value{color:var(--fxv-text)}[data-theme=dark] .exam-intro-description,[data-theme=dark] .exam-loading p,[data-theme=dark] .equipment-test-card>p,[data-theme=dark] .speaker-confirm p,[data-theme=dark] .task-progress span,[data-theme=dark] .timer-label,[data-theme=dark] .recording-hint,[data-theme=dark] .task-instruction,[data-theme=dark] .passing-note,[data-theme=dark] .score-number,[data-theme=dark] .overall-feedback p,[data-theme=dark] .task-type,[data-theme=dark] .task-feedback,[data-theme=dark] .error-card p{color:var(--fxv-text-muted)}[data-theme=dark] .exam-info-item,[data-theme=dark] .confirm-no,[data-theme=dark] .task-score-card,[data-theme=dark] .time-estimate{background:var(--fxv-surface-soft);border-color:var(--fxv-border);color:var(--fxv-text)}[data-theme=dark] .exam-info-item span,[data-theme=dark] .score-category{color:var(--fxv-text)}[data-theme=dark] .category-tag,[data-theme=dark] .task-type-badge{color:#93c5fd;background:#2563eb24;border:1px solid #7cb8ff38}[data-theme=dark] .exam-rules{background:#78350f38;border-color:#f59e0b57}[data-theme=dark] .exam-rules h4{color:#fbbf24}[data-theme=dark] .exam-rules li{color:#d6d3d1}[data-theme=dark] .loading-spinner{border-color:#ffffff14;border-top-color:var(--fxv-accent-strong)}[data-theme=dark] .permission-prompt{background:#0e749029;border-color:#38bdf842}[data-theme=dark] .permission-denied{background:#7f1d1d2e;border-color:#f8717142}[data-theme=dark] .permission-denied p{color:#fecaca}[data-theme=dark] .mic-level-bar,[data-theme=dark] .score-bar-container,[data-theme=dark] .progress-bar{background:#ffffff14}[data-theme=dark] .test-instructions{background:#14532d38;border-color:#4ade8047}[data-theme=dark] .test-instructions p,[data-theme=dark] .all-tests-passed p{color:#bbf7d0}[data-theme=dark] .confirm-no:hover{background:#ffffff14}[data-theme=dark] .all-tests-passed{background:#14532d38;border-color:#4ade8057}[data-theme=dark] .timer-circle.prep{background:#78350f38;border-color:#f59e0b}[data-theme=dark] .timer-circle.recording{background:#7f1d1d38;border-color:#ef4444}[data-theme=dark] .prep-instructions{background:#78350f38}[data-theme=dark] .prep-instructions p{color:#fcd34d}[data-theme=dark] .recording-indicator{background:#7f1d1d2e}[data-theme=dark] .recording-indicator span{color:#fca5a5}[data-theme=dark] .recording-hint{border-top-color:var(--fxv-border)}[data-theme=dark] .read-aloud-text{background:#082f494d}[data-theme=dark] .read-aloud-text p{color:#bae6fd}[data-theme=dark] .scenario-box{background:#14532d38}[data-theme=dark] .scenario-box h4{color:#86efac}[data-theme=dark] .scenario-box p{color:#dcfce7}[data-theme=dark] .prompt-box{background:#78350f38}[data-theme=dark] .prompt-box h4{color:#fcd34d}[data-theme=dark] .prompt-box p{color:#fef3c7}[data-theme=dark] .teaching-topic{background:#581c8738}[data-theme=dark] .teaching-topic h4{color:#d8b4fe}[data-theme=dark] .teaching-topic p{color:#f3e8ff}[data-theme=dark] .level-badge.beginner{color:#86efac;background:#14532d47}[data-theme=dark] .level-badge.intermediate{color:#fcd34d;background:#78350f47}[data-theme=dark] .level-badge.advanced{color:#fca5a5;background:#7f1d1d47}[data-theme=dark] .question-box{background:#88133738}[data-theme=dark] .question-box p{color:#fecdd3}[data-theme=dark] .progress-steps .step{color:var(--fxv-text-soft)}[data-theme=dark] .progress-steps .step i{background:var(--fxv-surface-soft);border-color:var(--fxv-border)}
