/* Final test page (pages/test.html, js/final-test.js). */
.xt-main{max-width:1180px;margin:0 auto;padding:34px 24px 20px}
.xt-app{display:grid;gap:16px}
.xt-loading,.xt-muted{color:#8fa2b8;font-size:14px}
.xt-hero .lesson-title{margin:6px 0 10px}
.xt-hero .lesson-summary{max-width:780px}
.xt-card{background:#111b2d;border:1px solid #2b3d54;border-radius:16px;padding:20px 22px;min-width:0}
.xt-h{font-family:Manrope,sans-serif;font-size:17px;margin:0 0 12px;display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.xt-h small{font-size:12px;color:#8fa2b8;font-weight:600}
.xt-banner{margin:0;background:#2a2116;border:1px solid #6b5230;color:#ffd7a8;border-radius:12px;padding:12px 16px;font-size:14px}
.xt-intro-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);gap:16px;align-items:start}
.xt-choice{border:0;margin:0 0 16px;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.xt-choice legend{font-weight:700;font-size:14px;margin-bottom:10px;padding:0}
.xt-choice label{position:relative;flex:1 1 140px}
.xt-choice input{position:absolute;opacity:0;pointer-events:none}
.xt-choice span{display:flex;flex-direction:column;align-items:center;gap:2px;border:1px solid #31435b;border-radius:12px;padding:14px 10px;cursor:pointer;font-size:12.5px;color:#9aadc2;text-align:center}
.xt-choice span b{font-family:Manrope,sans-serif;font-size:26px;color:#e7edf5}
.xt-choice-sm span{flex-direction:row;justify-content:center;padding:10px;font-size:14px;color:#e7edf5}
.xt-choice input:checked+span{border-color:#2e796b;background:#193c3b;color:#7df1c7}
.xt-choice input:checked+span b{color:#7df1c7}
.xt-choice input:focus-visible+span{outline:2px solid #48e0b0;outline-offset:2px}
.xt-rules{margin:0 0 18px;padding-left:18px;color:#b5c3d4;font-size:13.5px;line-height:1.7}
.xt-big{font-size:16px;padding:14px 28px}
.xt-modules{list-style:none;margin:0;padding:0;display:grid;gap:2px;max-height:520px;overflow:auto}
.xt-modules li{display:flex;justify-content:space-between;gap:10px;padding:7px 4px;border-bottom:1px solid #1d2c42;font-size:13px;color:#c7d3e2}
.xt-modules small{color:#7f94ad}
.xt-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.xt-resume p{margin:0;font-size:15px}
.xt-sm{padding:6px 12px;font-size:12px}
.xt-table-wrap{overflow-x:auto}
.xt-table{width:100%;border-collapse:collapse;font-size:13.5px}
.xt-table td{padding:9px 8px;border-bottom:1px solid #1d2c42;color:#d3dce8}
.xt-table .num{text-align:right;white-space:nowrap}
.xt-table tr.weak td{background:rgba(239,95,107,.06)}
.xt-table a{color:#7df1c7;font-weight:600;white-space:nowrap}
.xt-badge{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.4px;padding:4px 10px;border-radius:999px}
.xt-badge.ok{background:#193c3b;color:#7df1c7}
.xt-badge.no{background:#3a1a20;color:#ff8e98}

/* Taking the test */
.xt-bar{position:sticky;top:76px;z-index:5;display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:#0f1828;border:1px solid #2b3d54;border-radius:14px;padding:10px 14px;box-shadow:0 10px 24px rgba(0,0,0,.25)}
.xt-bar-l{flex:1;min-width:0;display:flex;flex-direction:column}
.xt-bar-l strong{font-family:Manrope,sans-serif;font-size:16px}
.xt-bar-l span{font-size:12px;color:#8fa2b8}
.xt-timer{display:flex;flex-direction:column;align-items:flex-end}
.xt-timer span{font-size:11px;color:#8fa2b8}
.xt-timer b{font-family:Manrope,sans-serif;font-size:22px;font-variant-numeric:tabular-nums}
.xt-timer b.low{color:#ff8e98}
.xt-progress{height:5px;border-radius:3px;background:#1c2b42;overflow:hidden;margin-top:-8px}
.xt-progress i{display:block;height:100%;background:linear-gradient(90deg,#48e0b0,#45a9d9)}
.xt-test{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}
.xt-mod{margin:0 0 8px;font-size:12px;font-weight:700;letter-spacing:.4px;color:#7df1c7;text-transform:uppercase}
.xt-q fieldset{border:0;margin:0;padding:0;min-width:0}
.xt-qtext{font-family:Manrope,sans-serif;font-size:20px;font-weight:700;line-height:1.45;margin-bottom:16px;padding:0;color:#e7edf5}
.xt-opts{display:grid;gap:10px}
.xt-opt{display:flex;align-items:flex-start;gap:12px;border:1px solid #31435b;border-radius:12px;padding:13px 14px;cursor:pointer;font-size:15px;line-height:1.5;color:#d3dce8;transition:border-color .15s,background .15s}
.xt-opt:hover{border-color:#2e796b}
.xt-opt input{position:absolute;opacity:0;pointer-events:none}
.xt-opt:focus-within{outline:2px solid #48e0b0;outline-offset:2px}
.xt-letter{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;border:1px solid #31435b;font-weight:800;font-size:13px;color:#9aadc2}
.xt-opt.sel{border-color:#2e796b;background:#193c3b;color:#e7edf5}
.xt-opt.sel .xt-letter{background:#48e0b0;border-color:#48e0b0;color:#0b1220}
.xt-nav{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.xt-nav [data-act="next"]{margin-left:auto}
.xt-markbtn.on{border-color:#6b5230;color:#ffbf78}
.xt-keys{margin:12px 0 0;font-size:11.5px;color:#7f94ad}
.xt-palette{position:sticky;top:160px;max-height:calc(100vh - 180px);overflow:auto}
.xt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:6px}
.xt-cell{display:inline-grid;place-items:center;height:34px;border-radius:8px;border:1px solid #31435b;background:#0f1828;color:#9aadc2;font-size:12px;font-weight:700;cursor:pointer;padding:0}
.xt-cell.ans{background:#193c3b;border-color:#2e796b;color:#7df1c7}
.xt-cell.mark{background:#2a2116;border-color:#a8762f;color:#ffbf78}
.xt-cell.seen{border-color:#7a3d44;color:#ff8e98}
.xt-cell.cur{outline:2px solid #45a9d9;outline-offset:1px}
.xt-cell:focus-visible{outline:2px solid #48e0b0;outline-offset:2px}
.xt-legend{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:6px;font-size:12px;color:#9aadc2}
.xt-legend li{display:flex;align-items:center;gap:8px}
.xt-legend i{width:16px;height:16px;border-radius:4px;cursor:default}

/* Confirm dialog */
.xt-modal{position:fixed;inset:0;z-index:90;background:rgba(4,9,18,.6);display:grid;place-items:center;padding:16px}
.xt-dialog{width:min(480px,100%);background:#111b2d;border:1px solid #2b3d54;border-radius:16px;padding:22px;box-shadow:0 30px 70px #000a}
.xt-dialog h2{font-family:Manrope,sans-serif;font-size:20px;margin:0 0 8px}
.xt-dialog p{margin:0;color:#c7d3e2;line-height:1.6}

/* Results */
.xt-result{display:grid;grid-template-columns:auto minmax(0,1fr);gap:28px;align-items:center}
.xt-result.ok{border-color:#2e796b}
.xt-ring{--c:#48e0b0;width:170px;height:170px;border-radius:50%;display:grid;place-items:center;align-content:center;background:radial-gradient(closest-side,#111b2d 78%,transparent 79% 100%),conic-gradient(var(--c) calc(var(--p) * 1%),#26384e 0)}
.xt-result.no .xt-ring{--c:#ff8e98}
.xt-ring b{font-family:Manrope,sans-serif;font-size:32px}
.xt-ring small{font-size:12px;color:#8fa2b8}
.xt-result-h{font-family:Manrope,sans-serif;font-size:24px;margin:10px 0 6px}
.xt-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin:14px 0 0}
.xt-stats div{border:1px solid #26384e;border-radius:10px;padding:10px 12px}
.xt-stats dt{font-size:11.5px;color:#8fa2b8}
.xt-stats dd{margin:2px 0 0;font-family:Manrope,sans-serif;font-size:18px;font-weight:700;overflow-wrap:anywhere}
.xt-barcell{white-space:nowrap;width:180px}
.xt-mbar{display:inline-block;width:100px;height:7px;border-radius:4px;background:#1c2b42;margin-right:8px;vertical-align:middle;overflow:hidden}
.xt-mbar i{display:block;height:100%;background:#45a9d9}
.xt-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.xt-chip{border:1px solid #31435b;background:#0f1828;color:#9aadc2;border-radius:999px;padding:6px 14px;font-size:12.5px;cursor:pointer}
.xt-chip.on{background:#193c3b;border-color:#2e796b;color:#7df1c7;font-weight:700}
.xt-review{margin:0;padding-left:28px;display:grid;gap:12px}
.xt-review li{border-left:3px solid #7a3d44;padding:8px 12px;background:#0f1828;border-radius:0 10px 10px 0;font-size:14px;line-height:1.55;color:#c7d3e2}
.xt-review li.ok{border-left-color:#2e796b}
.xt-review p{margin:4px 0}
.xt-rq{font-weight:700;color:#e7edf5}
.xt-rq small{font-weight:500;color:#7f94ad;margin-left:6px}
.xt-tag{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;padding:1px 7px;border-radius:5px;margin-right:6px}
.xt-tag.ok{background:#193c3b;color:#7df1c7}
.xt-tag.no{background:#3a1a20;color:#ff8e98}
.xt-review li.ok .xt-tag.ok{background:#193c3b}
.xt-why{color:#9aadc2;font-size:13px}

/* Certificate */
.xt-certform{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}
.xt-field{display:flex;flex-direction:column;gap:6px;flex:1 1 280px;font-size:13px;color:#9aadc2}
.xt-field input{background:#0c1625;border:1px solid #304158;border-radius:10px;color:#fff;padding:12px 14px;font-size:16px;outline-color:#48e0b0}
.xt-err{flex-basis:100%;margin:0;font-size:13px;color:#ff8e98;min-height:18px}
.xt-err.ok{color:#7df1c7}
.xt-canvas{width:100%;height:auto;display:block;border-radius:8px;box-shadow:0 18px 40px rgba(0,0,0,.35)}
.xt-verify.ok{border-color:#2e796b}
.xt-verify.no{border-color:#7a3d44}
.xt-fine{margin-top:20px}

@media(max-width:900px){
 .xt-intro-grid,.xt-test{grid-template-columns:minmax(0,1fr)}
 .xt-palette{position:static;max-height:none}
 .xt-result{grid-template-columns:minmax(0,1fr);justify-items:center;text-align:center}
 .xt-result .xt-actions{justify-content:center}
}
@media(max-width:680px){
 .xt-main{padding:22px 14px 10px}
 .xt-card{padding:16px}
 .xt-bar{top:66px;gap:10px}
 .xt-qtext{font-size:17px}
 .xt-opt{font-size:14px;padding:11px 12px}
 .xt-nav [data-act="next"]{margin-left:0}
 .xt-nav .btn{flex:1 1 45%}
 .xt-barcell{width:auto}
 .xt-mbar{width:60px}
}

/* Light theme */
html[data-theme="light"] :is(.xt-card,.xt-dialog){background:#ffffff;border-color:#d5dde8}
html[data-theme="light"] .xt-bar{background:#ffffff;border-color:#d5dde8;box-shadow:0 10px 24px rgba(19,35,58,.08)}
html[data-theme="light"] :is(.xt-qtext,.xt-rq,.xt-choice span b,.xt-choice-sm span,.xt-stats dd,.xt-opt.sel){color:#0f1b2d}
html[data-theme="light"] :is(.xt-opt,.xt-table td,.xt-modules li,.xt-rules,.xt-review li,.xt-dialog p){color:#13233a}
html[data-theme="light"] :is(.xt-opt,.xt-choice span,.xt-letter,.xt-chip,.xt-cell,.xt-stats div){border-color:#c5d0de}
html[data-theme="light"] :is(.xt-cell,.xt-chip,.xt-review li){background:#f8fafc}
html[data-theme="light"] :is(.xt-table td,.xt-modules li){border-color:#e6ebf2}
html[data-theme="light"] :is(.xt-opt.sel,.xt-choice input:checked+span,.xt-cell.ans,.xt-chip.on,.xt-badge.ok,.xt-tag.ok){background:#d9f5ec;border-color:#8fd9bd;color:#0b6b50}
html[data-theme="light"] .xt-choice input:checked+span b{color:#0b6b50}
html[data-theme="light"] .xt-opt.sel .xt-letter{background:#0b7d5e;border-color:#0b7d5e;color:#ffffff}
html[data-theme="light"] .xt-cell.mark{background:#fff4e5;border-color:#f3cf9c;color:#8a4a10}
html[data-theme="light"] .xt-cell.seen{border-color:#f0b4ba;color:#b3262f}
html[data-theme="light"] :is(.xt-badge.no,.xt-tag.no){background:#fde7ea;color:#b3262f}
html[data-theme="light"] .xt-mod{color:#0b7d5e}
html[data-theme="light"] .xt-table a{color:#0b7d5e}
html[data-theme="light"] .xt-timer b.low{color:#b3262f}
html[data-theme="light"] .xt-ring{background:radial-gradient(closest-side,#ffffff 78%,transparent 79% 100%),conic-gradient(var(--c) calc(var(--p) * 1%),#e1e7f0 0)}
html[data-theme="light"] .xt-result.ok .xt-ring{--c:#0b9d74}
html[data-theme="light"] .xt-result.no .xt-ring{--c:#d24452}
html[data-theme="light"] :is(.xt-progress,.xt-mbar){background:#e1e7f0}
html[data-theme="light"] .xt-banner{background:#fff4e5;border-color:#f3cf9c;color:#8a4a10}
html[data-theme="light"] .xt-field input{background:#ffffff;border-color:#c5d0de;color:#13233a}
html[data-theme="light"] .xt-markbtn.on{border-color:#f3cf9c;color:#8a4a10}
html[data-theme="light"] .xt-modal{background:rgba(15,27,45,.35)}

/* Candidate details on the start form */
.xt-details{border:0;margin:0 0 18px;padding:0 0 16px;display:grid;gap:8px;border-bottom:1px solid #26384e}
.xt-details legend{font-weight:700;font-size:14px;margin-bottom:10px;padding:0}
.xt-hint{font-size:12px;color:#8fa2b8;margin-top:-2px}
.xt-pledge{display:flex;align-items:flex-start;gap:10px;font-size:13.5px;color:#c7d3e2;cursor:pointer;margin-top:6px;line-height:1.5}
.xt-pledge input{accent-color:#48e0b0;width:17px;height:17px;flex:none;margin-top:2px}
[data-starterr]{margin:0 0 10px}
.xt-certbox .xt-certform{margin-top:14px}
html[data-theme="light"] .xt-details{border-color:#e6ebf2}
html[data-theme="light"] .xt-hint{color:#5a6b80}
html[data-theme="light"] .xt-pledge{color:#13233a}
