.admin-page{max-width:1200px;margin:0 auto;padding:24px 16px 48px}.admin-login{background:#fff;border:1px solid #e5e7eb;border-radius:12px;max-width:420px;margin:80px auto;padding:28px;box-shadow:0 8px 30px #0000000f}.admin-login h1{margin:0 0 8px;font-size:1.4rem}.admin-login p{color:#64748b;margin-bottom:16px}.admin-login label{margin-bottom:12px;font-weight:600;display:block}.admin-login input{border:1px solid #cbd5e1;border-radius:8px;width:100%;margin-top:6px;padding:10px 12px;display:block}.admin-back{color:#334155;margin-top:14px;display:inline-block}.admin-top{flex-wrap:wrap;justify-content:space-between;gap:12px;margin-bottom:18px;display:flex}.admin-eyebrow{letter-spacing:.06em;color:#64748b;margin:0;font-size:.75rem;font-weight:700}.admin-top h1{margin:4px 0 0;font-size:1.5rem}.admin-top-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-alert{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-bottom:12px;padding:10px 12px}.admin-stats{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px;display:grid}.admin-stats>div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:14px}.admin-stats strong{color:#0f172a;font-size:1.5rem;display:block}.admin-stats span{color:#64748b;font-size:.9rem}.admin-search{border:1px solid #cbd5e1;border-radius:8px;width:100%;margin-bottom:12px;padding:10px 12px}.admin-table-wrap{background:#fff;border:1px solid #e2e8f0;border-radius:10px;overflow:auto}.admin-table{border-collapse:collapse;width:100%;font-size:.9rem}.admin-table th,.admin-table td{text-align:left;vertical-align:top;border-bottom:1px solid #eef2f7;padding:10px 12px}.admin-table th{white-space:nowrap;background:#f8fafc;font-weight:700}.admin-empty{text-align:center;color:#94a3b8;padding:28px!important}.admin-badge{border-radius:999px;padding:2px 8px;font-size:.75rem;font-weight:700;display:inline-block}.admin-badge.completed{color:#166534;background:#dcfce7}.admin-badge.started{color:#9a3412;background:#ffedd5}.admin-del{color:#b91c1c;cursor:pointer;background:0 0;border:none;font-weight:600}@media (width<=800px){.admin-stats{grid-template-columns:1fr}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--navy:#1e3a5f;--navy-dark:#152a45;--navy-light:#2d4a6f;--orange:#e8751a;--orange-hover:#d4650f;--orange-light:#fff4eb;--cream:#f5f0e6;--cream-dark:#ebe4d6;--blue-soft:#eef4fa;--blue-border:#c5d9ed;--text:#1e3a5f;--text-muted:#5a7189;--white:#fff;--border:#dde5ee;--success:#059669;--danger:#dc2626;--radius:16px;--radius-sm:10px;--shadow:0 4px 24px #1e3a5f14;--shadow-lg:0 8px 40px #1e3a5f1f}body{color:var(--text);-webkit-font-smoothing:antialiased;background:#f8fafc;font-family:Inter,Noto Sans,Segoe UI,system-ui,sans-serif;line-height:1.6}.app-shell{flex-direction:column;min-height:100vh;display:flex}.site-header{border-bottom:1px solid var(--border);background:var(--white);z-index:100;justify-content:space-between;align-items:center;padding:16px 32px;display:flex;position:sticky;top:0}.brand{color:var(--navy);align-items:center;gap:12px;text-decoration:none;display:flex}.brand-icon{background:var(--navy);width:44px;height:44px;color:var(--white);border-radius:50%;justify-content:center;align-items:center;display:flex}.brand-icon svg{width:24px;height:24px}.brand-text{flex-direction:column;line-height:1.2;display:flex}.brand-text strong{letter-spacing:.06em;font-size:.95rem}.brand-text small{letter-spacing:.12em;color:var(--text-muted);font-size:.65rem;font-weight:600}.header-link{border:2px solid var(--orange);color:var(--orange);border-radius:8px;padding:10px 20px;font-size:.9rem;font-weight:600;text-decoration:none;transition:all .2s}.header-link:hover{background:var(--orange-light)}.site-main{flex:1}.site-footer{text-align:center;color:var(--text-muted);border-top:1px solid var(--border);padding:16px 32px;font-size:.85rem}.intro-layout{grid-template-columns:1fr minmax(0,400px);align-items:start;gap:48px;max-width:1200px;margin:0 auto;padding:48px 32px 64px;display:grid}.intro-hero h1{color:var(--navy);text-align:left;margin-bottom:16px;font-size:2.25rem;font-weight:800;line-height:1.25}.eyebrow{letter-spacing:.14em;color:var(--orange);margin-bottom:12px;font-size:.75rem;font-weight:700}.lead{color:var(--text-muted);max-width:560px;margin-bottom:24px;font-size:1.05rem}.notice-box{background:var(--orange-light);border-left:4px solid var(--orange);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--navy);margin-bottom:28px;padding:14px 18px;font-size:.95rem}.instructions-box{background:var(--blue-soft);border:1px solid var(--blue-border);border-radius:var(--radius);margin-bottom:28px;padding:24px 28px}.instructions-box h3{letter-spacing:.12em;color:var(--navy);margin-bottom:16px;font-size:.8rem}.instructions-box ul{list-style:none}.instructions-box li{color:var(--text);border-bottom:1px solid #c5d9ed80;align-items:flex-start;gap:10px;padding:8px 0;font-size:.95rem;display:flex}.instructions-box li:last-child{border-bottom:none}.instructions-box .ico{flex-shrink:0;font-size:1.1rem}.instructions-foot{color:var(--navy);margin-top:16px;font-size:.95rem;font-weight:600}.hero-skills{flex-wrap:wrap;gap:10px;display:flex}.skill-pill{background:var(--white);border:1.5px solid var(--border);color:var(--navy);border-radius:999px;padding:8px 16px;font-size:.85rem;font-weight:600}.intro-form-card{background:var(--cream);border-radius:var(--radius);box-shadow:var(--shadow-lg);min-width:0;max-width:100%;padding:32px 28px;position:sticky;top:88px;overflow:hidden}.intro-form-card h2{color:var(--navy);text-align:left;margin-bottom:8px;font-size:1.35rem;font-weight:700}.form-sub{color:var(--text-muted);margin-bottom:24px;font-size:.9rem}.form-stack{flex-direction:column;gap:16px;width:100%;min-width:0;margin-bottom:20px;display:flex}.form-stack label{color:var(--navy);flex-direction:column;gap:6px;min-width:0;font-size:.85rem;font-weight:600;display:flex}.form-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;width:100%;min-width:0;display:grid}.form-row label{min-width:0}.form-stack input,.form-stack select{box-sizing:border-box;border:1px solid var(--cream-dark);border-radius:var(--radius-sm);background:var(--white);width:100%;max-width:100%;color:var(--text);padding:12px 14px;font-size:1rem;transition:border-color .2s,box-shadow .2s}.form-stack input:focus,.form-stack select:focus{border-color:var(--orange);outline:none;box-shadow:0 0 0 3px #e8751a26}.form-actions-secondary{flex-direction:column;gap:10px;margin-top:16px;display:flex}.form-alert{color:#b91c1c;border-radius:var(--radius-sm);background:#fef2f2;border:1px solid #fecaca;margin-bottom:16px;padding:12px 14px;font-size:.9rem;font-weight:600;line-height:1.5}.field-error input,.field-error select{border-color:var(--danger)!important;box-shadow:0 0 0 3px #dc26261a!important}.field-msg{color:var(--danger);margin-top:2px;font-size:.8rem;font-weight:600}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;padding:14px 28px;font-family:inherit;font-size:1rem;font-weight:700;transition:all .2s}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.cta{background:var(--orange);width:100%;color:var(--white);box-shadow:0 4px 16px #e8751a59}.btn.cta:hover:not(:disabled){background:var(--orange-hover);transform:translateY(-1px);box-shadow:0 6px 24px #e8751a66}.btn.primary{background:var(--navy);color:var(--white);box-shadow:0 2px 12px #1e3a5f40}.btn.primary:hover:not(:disabled){background:var(--navy-dark);transform:translateY(-1px)}.btn.secondary{background:var(--white);color:var(--navy);border:2px solid var(--navy)}.btn.secondary:hover{background:var(--blue-soft)}.btn.ghost{color:var(--text-muted);border:1px solid var(--border);background:0 0}.btn.danger{background:var(--danger);color:var(--white)}.btn-group{flex-wrap:wrap;justify-content:flex-end;gap:12px;margin-top:28px;display:flex}.page{max-width:900px;margin:0 auto;padding:32px 24px 64px}.exam-progress{justify-content:space-between;gap:8px;margin-bottom:32px;padding:0 8px;display:flex}.exam-step{opacity:.4;flex-direction:column;flex:1;align-items:center;gap:8px;transition:opacity .2s;display:flex}.exam-step.active,.exam-step.done{opacity:1}.step-dot{background:var(--border);width:36px;height:36px;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;font-size:.9rem;font-weight:700;display:flex}.exam-step.active .step-dot{background:var(--orange);color:var(--white);box-shadow:0 0 0 4px #e8751a33}.exam-step.done .step-dot{background:var(--navy);color:var(--white)}.step-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);text-align:center;font-size:.7rem;font-weight:600}.exam-step.active .step-label{color:var(--orange)}.card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:36px 32px}.card h2{color:var(--navy);margin-bottom:8px;font-size:1.4rem;font-weight:700}.subtitle{text-align:center;color:var(--text-muted);margin-bottom:24px}.section-header{border-bottom:2px solid var(--blue-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;padding-bottom:16px;display:flex}.progress-bar{background:var(--blue-soft);border-radius:3px;flex:1;min-width:120px;height:6px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--orange), #f59e0b);border-radius:3px;height:100%;transition:width .3s}.timer{font-variant-numeric:tabular-nums;color:var(--orange);text-align:center;min-width:72px;font-size:1.5rem;font-weight:800}.questions{flex-direction:column;gap:16px;display:flex}.question-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:#fafbfc;padding:20px;transition:border-color .2s}.question-card:hover{border-color:var(--blue-border)}.q-label{color:var(--navy);margin-bottom:12px;font-weight:600;line-height:1.5}.options{flex-direction:column;gap:8px;display:flex}.option{border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:var(--white);align-items:center;gap:10px;padding:12px 16px;transition:all .15s;display:flex}.option:hover,.option.selected{border-color:var(--orange);background:var(--orange-light)}.option input[type=radio]{accent-color:var(--orange);width:18px;height:18px}.text-input{border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--white);width:100%;padding:12px 14px;font-size:1rem}.text-input:focus{border-color:var(--orange);outline:none;box-shadow:0 0 0 3px #e8751a1f}.reading-passage{background:var(--blue-soft);border-radius:var(--radius-sm);border:1px solid var(--blue-border);margin-bottom:28px;padding:24px}.reading-passage h3{color:var(--navy);margin-bottom:12px}.passage-text{white-space:pre-line;color:var(--text);line-height:1.85}.writing-prompt{background:var(--orange-light);border-radius:var(--radius-sm);border-left:4px solid var(--orange);margin-bottom:20px;padding:20px}.writing-area{border:1.5px solid var(--border);border-radius:var(--radius-sm);resize:vertical;width:100%;min-height:200px;padding:16px;font-family:inherit;font-size:1rem;line-height:1.8}.writing-area:focus{border-color:var(--orange);outline:none;box-shadow:0 0 0 3px #e8751a1f}.word-count{color:var(--danger);font-weight:700}.word-count.good{color:var(--success)}.speaking-content{text-align:center}.speaking-flow-steps{color:var(--text-muted);flex-wrap:wrap;gap:10px 18px;margin:0 0 18px;padding:0;font-size:.9rem;list-style:none;display:flex}.speaking-status{text-align:center;color:var(--navy);margin:8px 0 16px;font-weight:600}.speaking-controls{flex-direction:column;align-items:center;gap:8px;margin-bottom:12px;display:flex}.mic-caption{color:var(--text-muted);font-size:.9rem}.speaking-replay{border:1px solid var(--border);background:#f7fafc;border-radius:8px;width:100%;max-width:480px;margin:12px auto;padding:12px 14px}.speaking-replay-label{color:var(--navy);margin-bottom:8px;font-size:.9rem;font-weight:600}.speaking-submit{width:100%;max-width:360px;margin:20px auto 0;padding:12px 20px;font-size:1.05rem;display:block}.speaking-submit:disabled{opacity:.45;cursor:not-allowed}.timer.low{color:#b91c1c}.ban-do-nang-luc .eso-brand{text-align:center;letter-spacing:.08em;color:var(--navy);margin-bottom:6px;font-size:.8rem;font-weight:700}.bd-section{border-top:1px solid var(--border);margin:28px 0;padding-top:8px}.bd-section h2{color:var(--navy);margin-bottom:14px;font-size:1.2rem}.bd-note{color:var(--text-muted);margin-bottom:12px;font-size:.9rem;line-height:1.55}.bd-overview-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}@media (width<=700px){.bd-overview-grid{grid-template-columns:1fr}}.bd-overview-cell{border:1px solid var(--border);background:#f8fafc;border-radius:10px;padding:16px}.bd-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:8px;font-size:.8rem;font-weight:700}.bd-overview-cell ul{margin:0;padding-left:18px}.bd-overview-cell p{margin:0;line-height:1.55}.bd-legend{color:var(--text-muted);flex-wrap:wrap;gap:8px 14px;margin-bottom:16px;font-size:.8rem;display:flex}.bd-skill-row{border:1px solid var(--border);background:#fff;border-radius:10px;margin-bottom:12px;padding:14px 16px}.bd-skill-head{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:8px;display:flex}.bd-skill-score{color:var(--navy);font-weight:700}.bd-skill-pct{color:var(--text-muted);font-size:.9rem}.bd-skill-level{color:var(--navy);background:#e8eef5;border-radius:999px;margin-left:auto;padding:3px 10px;font-size:.75rem;font-weight:700}.bd-skill-level.lv-can-cung-co{color:#991b1b;background:#fee2e2}.bd-skill-level.lv-nen-tang{color:#9a3412;background:#ffedd5}.bd-skill-level.lv-kha{color:#854d0e;background:#fef9c3}.bd-skill-level.lv-tot{color:#166534;background:#dcfce7}.bd-skill-comment{color:var(--text);margin-bottom:10px;font-size:.95rem;line-height:1.6}.bd-conclusion-list{margin-bottom:16px;padding-left:22px;line-height:1.7}.bd-conclusion-list li{margin-bottom:8px}@media print{.exam-top,.exam-tabs,.exam-segment,.btn-group,.ExamProgress,.progress-bar{display:none!important}}.speaking-set-label{color:var(--text-muted);margin:0 0 8px;font-size:.9rem}.speaking-mic-required{color:var(--navy);margin-bottom:16px;font-size:.95rem;font-weight:600}.speaking-question{color:var(--navy);margin-bottom:12px;font-size:1.3rem;font-weight:700;line-height:1.4}.hint{color:var(--text-muted);margin-bottom:20px;font-size:.95rem}.cue-card{background:var(--cream);border:2px solid var(--cream-dark);border-radius:var(--radius);text-align:left;margin-bottom:20px;padding:24px}.cue-card h3{color:var(--navy);margin-bottom:12px}.cue-card pre{white-space:pre-wrap;color:var(--text);font-family:inherit;line-height:1.8}.mic-btn{border:4px solid var(--white);background:var(--navy);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:96px;height:96px;margin:20px auto;transition:all .2s;display:inline-flex;box-shadow:0 8px 32px #1e3a5f4d}.mic-btn:hover{background:var(--navy-light);transform:scale(1.05)}.mic-btn svg{fill:#fff;width:44px;height:44px}.mic-btn.recording{background:var(--danger);animation:1.2s infinite mic-pulse}@keyframes mic-pulse{0%{box-shadow:0 0 #dc262680}70%{box-shadow:0 0 0 20px #dc262600}to{box-shadow:0 0 #dc262600}}.mic-recording-group{flex-direction:column;align-items:center;display:flex}.mic-error{color:#b91c1c;border-radius:var(--radius-sm);text-align:left;background:#fef2f2;border:1px solid #fecaca;margin-bottom:16px;padding:14px 16px;font-weight:500;line-height:1.5}.mic-error p{margin-bottom:12px}.mic-devices-hint{color:#7f1d1d;margin:-4px 0 12px;font-size:.9rem;font-weight:600}.mic-error-actions{margin-bottom:12px}.mic-help{color:#7f1d1d;margin:0;padding-left:20px;font-size:.9rem;font-weight:500}.mic-help li{margin-bottom:4px}.listening-indicator{color:var(--danger);font-weight:700;animation:1s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.transcript-area{border:1.5px solid var(--border);border-radius:var(--radius-sm);resize:vertical;width:100%;min-height:90px;margin-top:16px;padding:14px;font-size:.95rem}.transcript-readonly{border:1px dashed var(--border);border-radius:var(--radius-sm);text-align:left;background:#f8fafc;width:100%;margin-top:16px;padding:12px 14px}.transcript-readonly-label{letter-spacing:.04em;text-transform:uppercase;color:var(--muted,#64748b);margin-bottom:6px;font-size:.75rem;font-weight:700;display:block}.transcript-readonly p{color:var(--navy,#1e3a5f);white-space:pre-wrap;margin:0;font-size:.95rem;line-height:1.5}.result-page .card{max-width:960px;margin:0 auto}.result-page h1{text-align:center;color:var(--navy);letter-spacing:.02em;font-size:1.75rem}.student-info-box{background:var(--cream);border-radius:var(--radius-sm);grid-template-columns:1fr 1fr;gap:10px 24px;margin:24px 0;padding:24px;display:grid}.info-row span{color:var(--text-muted)}.overall-score{text-align:center;background:linear-gradient(135deg, var(--navy) 0%, var(--navy-light) 100%);border-radius:var(--radius);color:var(--white);margin-bottom:32px;padding:32px}.big-band{color:var(--white);font-size:5rem;font-weight:800;line-height:1}.band-label{letter-spacing:.14em;text-transform:uppercase;opacity:.85;margin:8px 0;font-size:.8rem}.cefr-badge{background:var(--orange);border-radius:999px;margin-top:8px;padding:8px 24px;font-size:1.1rem;font-weight:800;display:inline-block}.level-label{opacity:.9;margin-top:8px;font-size:.95rem}.skill-scores{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px;display:grid}.skill-card{border:1px solid var(--border);border-radius:var(--radius-sm);text-align:center;background:var(--white);padding:20px 16px;transition:box-shadow .2s,border-color .2s}.skill-card:hover{border-color:var(--orange);box-shadow:var(--shadow)}.skill-name{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:8px;font-size:.75rem;font-weight:700}.skill-band{color:var(--navy);font-size:2rem;font-weight:800}.skill-bar{background:var(--blue-soft);border-radius:3px;height:6px;margin:10px 0;overflow:hidden}.skill-fill{background:linear-gradient(90deg, var(--orange), #f59e0b);border-radius:3px;height:100%}.skill-detail{color:var(--text-muted);font-size:.8rem}.profile-section h2{color:var(--navy);border-bottom:2px solid var(--blue-soft);margin-bottom:20px;padding-bottom:12px;font-size:1.25rem}.profile-block{border-radius:var(--radius-sm);border-left:4px solid var(--orange);background:#fafbfc;margin-bottom:20px;padding:18px}.profile-block h3{color:var(--navy);margin-bottom:10px;font-size:1rem}.profile-block ul{padding-left:20px}.profile-block li{color:var(--text);margin-bottom:6px}.writing-rubric-box{background:var(--cream);border-radius:var(--radius);border:1px solid var(--cream-dark);margin-bottom:32px;padding:24px}.writing-rubric-box h2{color:var(--navy);margin-bottom:8px;font-size:1.2rem}.writing-rubric-note{color:var(--text-muted);margin-bottom:20px;font-size:.9rem}.rubric-grid{flex-direction:column;gap:14px;display:flex}.rubric-row{background:var(--white);border-radius:var(--radius-sm);border:1px solid var(--border);padding:14px 16px}.rubric-title{color:var(--navy);margin-bottom:6px;font-weight:700}.rubric-score{color:var(--orange);margin-right:10px;font-weight:800;display:inline-block}.rubric-level{color:var(--text-muted);font-size:.85rem;font-weight:600;display:inline-block}.rubric-bar{background:var(--blue-soft);border-radius:3px;height:6px;margin-top:10px;overflow:hidden}.rubric-fill{background:linear-gradient(90deg, var(--orange), #f59e0b);border-radius:3px;height:100%}.form-grid{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px;display:grid}.exam-page{max-width:1100px;margin:0 auto;padding:24px 24px 48px}.exam-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.exam-eyebrow{letter-spacing:.14em;color:var(--text-muted);margin-bottom:4px;font-size:.7rem;font-weight:700}.exam-title{color:var(--navy);letter-spacing:.02em;text-align:left;font-size:1.5rem;font-weight:800}.title-accent-wrap{display:inline-block}.title-accent{display:inline-block;position:relative}.title-accent:after{content:"";background:var(--orange);border-radius:2px;height:3px;margin-top:2px;display:block}.exam-top-right{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.autosave-badge{color:#15803d;align-items:center;gap:6px;font-size:.85rem;font-weight:600;display:flex}.exam-timer{font-variant-numeric:tabular-nums;color:var(--navy);background:var(--blue-soft);border-radius:8px;padding:8px 16px;font-size:1.25rem;font-weight:800}.exam-timer.low{color:#b45309;background:#fff7ed}.exam-timer.critical{color:#b91c1c;background:#fef2f2;animation:1s ease-in-out infinite timer-pulse}@keyframes timer-pulse{0%,to{opacity:1}50%{opacity:.7}}.autosave-float{color:#15803d;box-shadow:var(--shadow);z-index:200;background:#fff;border:1px solid #bbf7d0;border-radius:8px;align-items:center;gap:8px;padding:8px 14px;font-size:.85rem;font-weight:600;display:flex;position:fixed;top:80px;right:24px}.autosave-dot{background:#22c55e;border-radius:50%;width:8px;height:8px;display:inline-block}.exam-tabs{border:1px solid var(--border);border-radius:var(--radius-sm);grid-template-columns:repeat(4,1fr);gap:0;margin-bottom:24px;display:grid;overflow:hidden}.exam-segment-bar{grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:16px;display:grid}.exam-segment{background:#e2e8f0;border-radius:2px;height:4px;transition:background .25s}.exam-segment.filled{background:var(--orange)}.exam-skill-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px 32px}.speaking-skill-card .speaking-content{padding:8px 0}.exam-content-serif,.reading-passage,.reading-passage h3,.passage-text,.note-text{font-family:Georgia,Times New Roman,Times,serif}.listening-questions-panel h3,.questions-sub{font-family:Inter,Noto Sans,Segoe UI,sans-serif}.listening-footer,.grade-btn,.score-label,.panel-desc,.panel-status,.audio-error,.exam-tab,.btn{letter-spacing:normal;font-family:Inter,Noto Sans,Segoe UI,sans-serif}.exam-tab{background:var(--white);color:var(--text-muted);cursor:pointer;border:none;border-right:1px solid var(--border);padding:14px 12px;font-family:inherit;font-size:.95rem;font-weight:600;transition:all .2s}.exam-tab:last-child{border-right:none}.exam-tab.active{background:var(--navy);color:var(--white)}.exam-tab:disabled{opacity:.45;cursor:not-allowed}.listening-layout{grid-template-columns:340px 1fr;align-items:start;gap:20px;display:grid}.listening-audio-panel{background:linear-gradient(160deg, var(--navy) 0%, var(--navy-light) 100%);color:var(--white);border-radius:var(--radius);min-height:320px;padding:28px 24px}.panel-tag{letter-spacing:.1em;color:var(--orange);margin-bottom:12px;font-size:.75rem;font-weight:700}.listening-audio-panel h2{color:var(--white);margin-bottom:12px;font-size:1.5rem;font-weight:700;line-height:1.3}.panel-desc{opacity:.9;margin-bottom:28px;font-size:.9rem;line-height:1.6}.play-btn{width:72px;height:72px;color:var(--navy);cursor:pointer;background:#fffffff2;border:none;border-radius:16px;justify-content:center;align-items:center;margin-bottom:16px;transition:transform .2s,box-shadow .2s;display:flex;box-shadow:0 4px 20px #0003}.play-btn svg{width:36px;height:36px;margin-left:4px}.play-btn:hover{transform:scale(1.05)}.play-btn.playing{background:var(--orange);color:var(--white)}.panel-status{opacity:.85;font-size:.85rem}.listening-audio-player{border-radius:8px;width:100%;margin-top:12px}.audio-error{color:#fecaca;background:#dc262626;border-radius:6px;margin-top:10px;padding:8px 10px;font-size:.85rem}.competitor-listening{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);max-width:900px;box-shadow:var(--shadow);margin:0 auto;padding:28px 32px 32px}.q-progress{color:var(--text-muted);margin-bottom:12px;font-size:.95rem;font-weight:600}.listening-red-title{letter-spacing:.04em;color:#c62828!important;margin-bottom:12px!important;font-family:Inter,Noto Sans,sans-serif!important;font-size:1.35rem!important;font-weight:800!important}.listening-instructions{color:#c62828;margin-bottom:20px;font-size:.95rem;line-height:1.65}.listening-instructions p{margin-bottom:8px}.listening-main-audio{border-radius:8px;width:100%;margin-bottom:24px}.audio-error-inline{color:#b91c1c;margin-bottom:12px;font-size:.9rem}.notes-overview{border:1px solid var(--border);border-radius:var(--radius-sm);background:#fafbfc;margin-bottom:28px;padding:20px 24px}.notes-heading{color:#e8751a!important;margin-bottom:6px!important;font-family:Inter,Noto Sans,sans-serif!important;font-size:1.1rem!important;font-weight:700!important}.notes-title{color:#2e7d32;margin-bottom:16px;font-size:1.15rem;font-weight:700}.notes-block{margin-bottom:16px}.notes-section-label{color:var(--navy);margin-bottom:6px;font-weight:700}.notes-block ul{color:var(--text);padding-left:22px;line-height:1.85}.notes-block li{margin-bottom:4px}.single-question-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--white);margin-bottom:20px;padding:24px}.single-q-hint{color:var(--text-muted);margin-bottom:14px;font-size:.95rem}.single-q-prompt{color:var(--navy);margin-bottom:20px;font-size:1.1rem;font-weight:600;line-height:1.6}.mcq-list{flex-direction:column;gap:10px;display:flex}.mcq-option{border:1.5px solid var(--border);cursor:pointer;border-radius:8px;align-items:center;gap:12px;padding:12px 16px;font-size:1rem;transition:all .15s;display:flex}.mcq-option:hover{background:#f1f8f4;border-color:#81c784}.mcq-option.selected{background:#e8f5e9;border-color:#43a047;font-weight:600}.mcq-option input{accent-color:#43a047;width:18px;height:18px}.listening-bottom-nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.nav-prev-next{gap:10px;display:flex}.nav-btn{background:var(--white)!important;color:var(--text)!important;border:1.5px solid var(--border)!important;box-shadow:none!important;padding:10px 18px!important;font-weight:600!important}.nav-btn:hover:not(:disabled){border-color:var(--navy)!important;background:var(--blue-soft)!important}.nav-btn:disabled{opacity:.4;cursor:not-allowed}.question-jump{border:1.5px solid var(--border);background:var(--white);border-radius:8px;min-width:140px;padding:10px 14px;font-family:inherit;font-size:.95rem}.listening-grade-row{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-top:16px;display:flex}.reading-passage-block{border:1px solid var(--border);border-radius:var(--radius-sm);background:#fafbfc;margin-bottom:24px;padding:20px 24px}.passage-para{color:var(--text);white-space:pre-wrap;margin-bottom:14px;line-height:1.85}.reading-task-instr{color:var(--text);margin-bottom:12px;font-size:.95rem;line-height:1.6}.reading-q-list{color:var(--text);margin-bottom:8px;padding-left:28px;line-height:1.85}.reading-q-list li{margin-bottom:6px}.reading-tfng-legend{color:var(--text-muted);margin:0 0 12px;padding:0;font-size:.9rem;list-style:none}.reading-tfng-legend li{margin-bottom:4px}.summary-text{color:var(--text);margin-bottom:14px;line-height:1.85}.summary-options-ref{color:var(--text);font-size:.95rem;line-height:1.8}.competitor-writing{width:100%;max-width:960px}.competitor-writing .writing-instruction{color:var(--text);margin:0 0 10px;font-size:1rem;line-height:1.65}.competitor-writing .writing-topic{width:100%;color:var(--text);margin:0 0 20px;font-size:1.05rem;font-weight:700;line-height:1.5;display:block}.competitor-writing .writing-answer-label{color:#8a939c;margin-bottom:6px;font-size:.85rem;font-weight:500;display:block}.competitor-writing .writing-tinymce-wrap{width:100%;min-height:360px;margin-bottom:10px}.competitor-writing .writing-tinymce-wrap .tox-tinymce{border-color:#cfd6dd!important;border-radius:4px!important;width:100%!important}.competitor-writing .writing-tinymce-wrap textarea{box-sizing:border-box;width:100%;min-height:300px}.competitor-writing textarea.writing-editor-area.fallback{box-sizing:border-box;border:1px solid #cfd6dd;border-radius:4px;width:100%;min-height:300px;margin-bottom:0;padding:16px;font-family:inherit;font-size:1rem;line-height:1.7;display:block}.competitor-writing .writing-editor-footer{color:#555;background:#fafbfc;border:1px solid #cfd6dd;border-top:none;justify-content:flex-end;margin-bottom:10px;padding:8px 14px;font-size:.8rem;display:flex}.competitor-writing .autosave-line{color:#666;margin:0 0 18px;font-size:.85rem}.competitor-writing .btn.submit-green{color:#fff;background:#2ea44f;border:1px solid #2a9a48;padding:8px 22px;font-weight:600}.competitor-writing .btn.submit-green:hover{background:#279643}.listening-questions-panel{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px 32px}.listening-questions-panel h3{color:var(--navy);margin-bottom:6px;font-size:1.35rem;font-weight:700}.questions-sub{color:var(--text-muted);border-bottom:1px solid var(--border);margin-bottom:24px;padding-bottom:16px;font-size:.95rem}.notes-list{flex-direction:column;gap:14px;display:flex}.note-line{color:var(--text);flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:1rem;line-height:1.8;display:flex}.note-num{color:var(--navy);min-width:24px;font-weight:700}.note-text{flex:1;min-width:200px}.inline-gap{border:none;border-bottom:2px solid var(--navy);min-width:100px;max-width:180px;color:var(--navy);background:#eef4fa;border-radius:4px 4px 0 0;padding:4px 8px;font-family:inherit;font-size:1rem;font-weight:600;display:inline-block}.inline-gap:focus{border-bottom-color:var(--orange);background:var(--orange-light);outline:none}.matching-options{flex-flow:wrap;gap:8px}.matching-options .option{justify-content:center;min-width:56px;padding:10px 14px}.listening-footer{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:28px;padding-top:20px;display:flex}.grade-btn{background:var(--orange)!important;color:var(--white)!important;border:none!important;border-radius:8px!important;padding:12px 28px!important;font-weight:700!important;box-shadow:0 4px 16px #e8751a4d!important}.score-label{color:var(--text-muted);font-size:.95rem;font-weight:600}.exam-nav-arrows{justify-content:space-between;margin-top:32px;padding:0 8px;display:flex}.nav-arrow{border:2px solid var(--border);background:var(--white);cursor:pointer;width:48px;height:48px;color:var(--navy);border-radius:50%;justify-content:center;align-items:center;font-size:1.25rem;transition:all .2s;display:flex}.nav-arrow.next{background:var(--orange);border-color:var(--orange);color:var(--white);box-shadow:0 4px 16px #e8751a59}.nav-arrow:hover{transform:scale(1.05)}@media print{.site-header,.site-footer,.btn-group,.exam-progress{display:none!important}.overall-score{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:var(--navy)!important}}@media (width<=960px){.intro-layout{grid-template-columns:1fr;padding:32px 20px}.intro-form-card{position:static}.skill-scores{grid-template-columns:1fr 1fr}.listening-layout{grid-template-columns:1fr}}@media (width<=600px){.site-header{flex-wrap:wrap;gap:12px;padding:12px 16px}.intro-hero h1{font-size:1.65rem}.form-row{grid-template-columns:1fr}.exam-progress{overflow-x:auto}.step-label{font-size:.6rem}.skill-scores,.student-info-box{grid-template-columns:1fr}.card{padding:24px 18px}.form-grid{grid-template-columns:1fr}}
