.tcf-exam{max-width:1040px;margin:20px auto 60px}.tcf-exam-head{display:flex;justify-content:space-between;gap:20px;align-items:center}.tcf-exam-head h1{margin:3px 0 12px;font-size:clamp(24px,4vw,38px)}.tcf-exam-head small,.tcf-muted{color:#6b778c}.tcf-timer{font-size:20px;font-weight:900;background:#fff;border:1px solid #e7ebf2;border-radius:12px;padding:10px 14px;white-space:nowrap}.tcf-exam-layout{display:grid;grid-template-columns:155px minmax(0,1fr);gap:20px}.tcf-question-nav{display:flex;flex-direction:column;gap:8px;position:sticky;top:18px;align-self:start}.tcf-question-nav button{border:1px solid #dfe4ec;background:#fff;border-radius:10px;padding:10px 12px;text-align:left;font-weight:700;color:#667085}.tcf-question-nav button.active{background:var(--tcf-primary,#0094EB);color:#fff;border-color:var(--tcf-primary,#0094EB)}.tcf-question-nav button.done:not(.active){border-color:#72c69c;color:var(--tcf-tertiary,#157721)}.tcf-question-nav button:disabled{opacity:.55}.tcf-progress{height:6px;background:#e7ebf2;border-radius:99px;overflow:hidden;margin:10px 0 24px}.tcf-progress i{display:block;height:100%;width:5%;background:var(--tcf-primary,#0094EB);transition:.25s}.tcf-q{background:#fff;border:1px solid #e7ebf2;border-radius:20px;padding:clamp(18px,4vw,34px)}.tcf-qno{font-weight:800;color:var(--tcf-primary,#0094EB);margin-bottom:14px}.tcf-passage,.tcf-audio{background:#f6f8fc;border-radius:14px;padding:18px;margin-bottom:22px;line-height:1.65}.tcf-audio small{display:block;margin-top:10px;color:#6b778c}.tcf-q h2{font-size:21px;line-height:1.45}.tcf-answers{display:grid;gap:10px;margin:18px 0}.tcf-answers label{display:block}.tcf-answers input{position:absolute;opacity:0}.tcf-answers span{display:block;border:1px solid #dfe4ec;padding:14px;border-radius:12px;cursor:pointer}.tcf-answers input:checked+span{border-color:var(--tcf-primary,#0094EB);background:#eef3ff}.tcf-writing textarea{width:100%;border:1px solid #dfe4ec;border-radius:14px;padding:16px;font:inherit;resize:vertical}.tcf-wordcount{text-align:right;color:#6b778c;margin:8px 0 16px}.tcf-recorder{border:1px dashed #b8c3d6;border-radius:16px;padding:22px;display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:20px 0}.tcf-playback{width:100%}.tcf-result{text-align:center;background:#fff;border:1px solid #e7ebf2;border-radius:20px;padding:40px 20px}.tcf-score{font-size:54px;font-weight:950;color:var(--tcf-primary,#0094EB)}.tcf-score span{display:block;font-size:15px;color:#667085;text-transform:uppercase;letter-spacing:.08em}.tcf-review{text-align:left;margin:24px auto;max-width:720px}.tcf-review-item{border:1px solid #e1e7f0;border-radius:14px;padding:18px;margin:12px 0}.tcf-review-item .wrong{color:#a43b3b}.tcf-review-item .correct{color:var(--tcf-tertiary,#157721)}.tcf-all-correct{padding:16px;background:#eefaf5;border-radius:12px}.tcf-profile-card{max-width:850px;margin:30px auto;background:#fff;border:1px solid #e7ebf2;border-radius:20px;padding:28px}.tcf-profile-head{display:flex;align-items:center;gap:18px;margin-bottom:24px}.tcf-profile-head img{width:82px;height:82px;border-radius:50%;object-fit:cover}.tcf-profile-head h1{margin:0}.tcf-profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px}.tcf-profile-grid label{font-weight:700}.tcf-profile-grid input{width:100%;margin-top:6px;padding:12px;border:1px solid #dfe4ec;border-radius:10px}.tcf-profile-grid .wide{grid-column:1/-1}.tcf-profile-ok{background:#eefaf5;padding:12px;border-radius:10px;margin-bottom:18px}@media(max-width:760px){.tcf-exam-layout{grid-template-columns:1fr}.tcf-question-nav{position:static;flex-direction:row;overflow-x:auto;padding-bottom:4px}.tcf-question-nav button{min-width:108px;text-align:center}.tcf-exam-head{align-items:flex-start}.tcf-timer{font-size:16px}.tcf-q{border-radius:16px}.tcf-exam{margin-top:8px}.tcf-profile-grid{grid-template-columns:1fr}}

/* V0.5 — Dashboard candidat & Exam Session */
.tcf05-dashboard,.tcf05-session,.tcf05-summary{max-width:1120px;margin:32px auto;padding:0 18px}.tcf05-dash-head{background:linear-gradient(135deg,var(--tcf-primary,#0094EB),#087bc0);color:#fff;border-radius:22px;padding:30px;margin-bottom:22px}.tcf05-dash-head small,.tcf05-summary>small{font-weight:800;letter-spacing:1.5px}.tcf05-dash-head h1{margin:6px 0 8px;color:#fff}.tcf05-exam-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.tcf05-exam-card{background:#fff;border:1px solid #e1e7ef;border-radius:18px;padding:20px;box-shadow:0 8px 28px rgba(20,33,61,.05)}.tcf05-exam-card.active{border-color:var(--tcf-primary,#0094EB)}.tcf05-exam-card.completed{border-color:var(--tcf-tertiary,#157721)}.tcf05-exam-top{display:flex;justify-content:space-between;gap:12px;font-size:12px;font-weight:800;color:#667085}.tcf05-exam-card h2{margin:12px 0}.tcf05-mini-progress{height:8px;background:#eef2f6;border-radius:10px;overflow:hidden}.tcf05-mini-progress i{display:block;height:100%;background:var(--tcf-tertiary,#157721)}.tcf05-skills{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:15px 0;font-size:13px}.tcf05-skills span{color:#98a2b3}.tcf05-skills .done{color:var(--tcf-tertiary,#157721);font-weight:700}.tcf05-skills .current{color:var(--tcf-primary,#0094EB);font-weight:800}.tcf05-empty{max-width:760px;margin:30px auto;padding:25px;background:#fff;border:1px solid #e1e7ef;border-radius:18px}.tcf05-stagebar{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 0}.tcf05-stagebar span{padding:10px;border-radius:10px;background:#eef2f6;text-align:center;font-size:12px;font-weight:700}.tcf05-stagebar .done{background:#eaf6ec;color:#157721}.tcf05-stagebar .current{background:#e9f6ff;color:#0077bd;border:1px solid #0094EB}.tcf05-question-wrap{background:#fff;border:1px solid #e1e7ef;border-radius:18px;padding:24px;margin-top:18px}.tcf05-question audio{width:100%;margin:12px 0}.tcf05-writing{width:100%;border:1px solid #d0d5dd;border-radius:12px;padding:14px;font:inherit}.tcf05-actions{display:flex;align-items:center;gap:14px;margin-top:16px;flex-wrap:wrap}.tcf05-save-state{font-size:12px;color:#667085}.tcf05-oral-box{padding:18px;background:#f7f9fc;border-radius:14px}.tcf05-record-status{display:block;margin-top:10px}.tcf05-result-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.tcf05-result-grid>div{padding:16px;border:1px solid #e1e7ef;border-radius:14px}.tcf05-result-grid strong,.tcf05-result-grid span{display:block}.tcf05-result-grid span{color:#667085;margin-top:5px}.tcf05-summary{background:#fff;border:1px solid #e1e7ef;border-radius:20px;padding:28px}.tcf05-summary .tcf-btn{display:inline-block;margin:8px 8px 0 0}@media(max-width:720px){.tcf05-exam-grid,.tcf05-result-grid{grid-template-columns:1fr}.tcf05-stagebar{display:flex;overflow-x:auto}.tcf05-stagebar span{min-width:145px}.tcf05-skills{grid-template-columns:1fr}.tcf05-question-wrap{padding:16px}.tcf05-dash-head{padding:22px}}

.tcf053-auth-card{max-width:560px;margin:48px auto;padding:32px;background:#fff;border:1px solid #e5e7eb;border-radius:20px;box-shadow:0 12px 35px rgba(15,23,42,.08)}.tcf053-auth-card h1{margin:.3rem 0}.tcf053-auth-card form{display:grid;gap:16px;margin-top:24px}.tcf053-auth-card label{display:grid;gap:7px;font-weight:700}.tcf053-auth-card input[type=text],.tcf053-auth-card input[type=email],.tcf053-auth-card input[type=password],.tcf053-auth-card input:not([type]){padding:13px 14px;border:1px solid #cbd5e1;border-radius:10px;font:inherit}.tcf053-two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.tcf053-check{display:flex!important;grid-template-columns:auto 1fr;align-items:center;font-weight:500!important}.tcf053-auth-links{text-align:center;margin-top:20px}.tcf053-auth-error{background:#fff1f2;color:#9f1239;padding:12px;border-radius:10px}.tcf053-auth-ok{background:#f0fdf4;color:#166534;padding:12px;border-radius:10px}.tcf053-auth-required{max-width:700px;margin:40px auto;padding:30px;text-align:center;background:#fff;border:1px solid #e5e7eb;border-radius:18px}.tcf053-auth-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:20px}@media(max-width:640px){.tcf053-auth-card{margin:20px 12px;padding:22px}.tcf053-two{grid-template-columns:1fr}}
