:root{--bg:#f5f7fb;--card:#fff;--text:#172033;--muted:#667085;--line:#e5e7eb;--primary:#3157d5;--primary2:#243ea8;--green:#0e9f6e;--red:#dc2626;--amber:#d97706;--shadow:0 10px 30px rgba(15,23,42,.07);--radius:18px}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:linear-gradient(180deg,#f8faff,#f5f7fb 280px);color:var(--text)}a{color:var(--primary);text-decoration:none}.topbar{height:72px;display:flex;align-items:center;gap:28px;padding:0 max(24px,calc((100vw - 1320px)/2));background:rgba(255,255,255,.94);backdrop-filter:blur(14px);position:sticky;top:0;z-index:30;border-bottom:1px solid rgba(229,231,235,.8)}.brand{display:flex;align-items:center;gap:10px;color:#111827;min-width:190px}.brand-mark{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#365be0,#182f8e);color:#fff;font-weight:800;box-shadow:0 8px 18px #3157d533}.brand b{display:block;font-size:15px}.brand small{display:block;color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.topbar nav{display:flex;gap:8px;flex:1}.topbar nav a{padding:9px 11px;border-radius:10px;color:#44506a;font-size:14px}.topbar nav a:hover{background:#eef2ff;color:#1f3fb4}.userbox{display:flex;align-items:center;gap:8px;font-size:13px}.role-pill,.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;background:#eef2f6;color:#475467;font-size:11px;font-weight:700}.badge.success{background:#dcfce7;color:#087a55}.badge.info{background:#e0e7ff;color:#2846b6}.badge.danger{background:#fee2e2;color:#b42318}.badge.warning{background:#fff3cd;color:#9a6700}.shell{max-width:1320px;margin:0 auto;padding:28px 24px 60px}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin:8px 0 24px}.page-head h1{margin:0 0 6px;font-size:30px;letter-spacing:-.03em}.page-head p{margin:0;color:var(--muted);max-width:780px}.actions{display:flex;gap:8px;flex-wrap:wrap}.btn{appearance:none;border:0;border-radius:11px;padding:10px 15px;background:var(--primary);color:#fff;font-weight:700;cursor:pointer;font-size:14px;box-shadow:0 6px 16px #3157d52d}.btn:hover{background:var(--primary2)}.btn-secondary{background:#111827}.btn-ghost{background:#fff;color:#344054;border:1px solid var(--line);box-shadow:none}.btn-danger{background:#b42318}.btn-sm{padding:7px 10px;font-size:12px}.link-btn{background:none;border:0;color:#667085;cursor:pointer}.inline{display:inline}.grid{display:grid;gap:18px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--card);border:1px solid #e9edf3;border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.card h2,.card h3{margin:0 0 12px}.card-sub{color:var(--muted);font-size:13px;margin-top:-6px;margin-bottom:14px}.metric{background:#fff;border:1px solid #e8ebf0;border-radius:16px;padding:18px;box-shadow:var(--shadow)}.metric span{font-size:12px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.metric strong{display:block;font-size:30px;line-height:1.2;margin:7px 0 3px;letter-spacing:-.03em}.metric small{color:var(--muted)}.metric.good{border-left:4px solid var(--green)}.metric.warn{border-left:4px solid var(--amber)}.metric.bad{border-left:4px solid var(--red)}table{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}th,td{padding:12px 13px;text-align:left;border-bottom:1px solid #edf0f3;vertical-align:middle}th{background:#f8fafc;color:#475467;font-size:11px;text-transform:uppercase;letter-spacing:.04em;position:sticky;top:0}tr:last-child td{border-bottom:0}.muted{color:var(--muted)}.small{font-size:12px}.flash{padding:12px 15px;border-radius:12px;margin-bottom:16px;font-weight:650}.flash.success{background:#dcfce7;color:#087a55}.flash.error{background:#fee2e2;color:#b42318}.flash.info{background:#e0e7ff;color:#2846b6}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:12px;color:#475467;font-weight:700}.field input,.field select,.field textarea{width:100%;border:1px solid #d7dce4;border-radius:10px;padding:10px 11px;background:#fff;color:#111827;font:inherit;outline:none}.field textarea{min-height:96px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:#6f86e7;box-shadow:0 0 0 3px #3157d514}.help{font-size:11px;color:#98a2b3}.stars{color:#f59e0b;white-space:nowrap}.star-off{color:#e5e7eb}.empty{padding:32px;text-align:center;color:#98a2b3;border:1px dashed #d8dee8;border-radius:14px}.bar-chart{display:flex;flex-direction:column;gap:11px}.bar-row{display:grid;grid-template-columns:minmax(130px,1.4fr) 3fr 60px;gap:10px;align-items:center}.bar-name{font-size:12px;overflow:hidden;text-overflow:ellipsis}.bar-track{height:10px;border-radius:999px;background:#eef1f5;overflow:hidden}.bar-track span{display:block;height:100%;background:linear-gradient(90deg,#4569de,#7d8ff0);border-radius:999px}.bar-row b{font-size:12px;text-align:right}.progress-wrap{margin:8px 0}.progress-label{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-bottom:5px}.progress{height:8px;background:#eef1f5;border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,#3157d5,#6c83e7)}.hero{border-radius:24px;background:radial-gradient(circle at 80% 10%,#4667da,#111c4e 62%);color:#fff;padding:32px;box-shadow:0 18px 45px #213b9f36;margin-bottom:22px}.hero h1{font-size:34px;margin:0 0 8px}.hero p{max-width:740px;color:#d8e0ff;margin:0}.hero .kicker{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:#bac8ff;font-weight:800}.assessment-card{display:flex;flex-direction:column;gap:12px}.assessment-meta{display:flex;gap:8px;flex-wrap:wrap}.assessment-card h3{margin:0}.question-shell{max-width:920px;margin:0 auto}.question-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.timer{font-variant-numeric:tabular-nums;font-weight:800;background:#111827;color:#fff;padding:9px 12px;border-radius:10px}.question-nav{display:flex;flex-wrap:wrap;gap:6px}.question-nav button{width:34px;height:34px;border-radius:9px;border:1px solid #dce1e8;background:#fff;cursor:pointer}.question-nav button.answered{background:#e0e7ff;border-color:#9baaea;color:#2340a4}.question-nav button.active{background:#3157d5;color:#fff}.answer-option{display:flex;gap:10px;padding:13px;border:1px solid #e1e5eb;border-radius:12px;margin:8px 0;cursor:pointer}.answer-option:hover{background:#f8faff;border-color:#bac6f3}.answer-option input{margin-top:2px}.question-prompt{font-size:18px;line-height:1.55;white-space:pre-wrap}.question-media{max-width:100%;max-height:420px;border-radius:12px;border:1px solid #e5e7eb;margin:12px 0}.save-state{font-size:12px;color:var(--green)}.heatmap{overflow:auto}.heatmap table{min-width:650px}.heat{font-weight:800;text-align:center;border-radius:7px}.heat[data-v="low"]{background:#fee2e2;color:#991b1b}.heat[data-v="mid"]{background:#fef3c7;color:#92400e}.heat[data-v="high"]{background:#dcfce7;color:#166534}.auth{max-width:460px;margin:60px auto}.auth .card{padding:28px}.auth h1{margin-top:0}.split{display:grid;grid-template-columns:1fr 1fr;gap:18px}.notice{padding:13px 14px;border:1px solid #c7d2fe;background:#eef2ff;border-radius:12px;color:#3449a7;font-size:13px}.danger-note{background:#fff1f2;border-color:#fecdd3;color:#9f1239}footer{max-width:1320px;margin:0 auto;padding:20px 24px 34px;color:#98a2b3;font-size:11px;display:flex;justify-content:space-between}.code{font-family:Consolas,monospace;background:#f1f5f9;padding:2px 5px;border-radius:5px}.section-title{display:flex;justify-content:space-between;align-items:center;margin:24px 0 12px}.section-title h2{margin:0;font-size:20px}.pill-list{display:flex;gap:8px;flex-wrap:wrap}.pill{background:#f3f4f6;padding:7px 10px;border-radius:999px;font-size:12px}.kpi-line{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid #eef1f4}.kpi-line:last-child{border-bottom:0}.report-question{padding:14px;border:1px solid #e5e7eb;border-radius:12px;margin:10px 0}.correct{color:#087a55}.wrong{color:#b42318}@media(max-width:980px){.topbar nav{display:none}.user-name{display:none}.grid-4,.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:1fr}}@media(max-width:680px){.topbar{height:64px;padding:0 14px}.brand{min-width:auto}.shell{padding:18px 12px 44px}.page-head{flex-direction:column}.page-head h1{font-size:25px}.grid-2,.grid-3,.grid-4,.form-grid{grid-template-columns:1fr}.hero{padding:24px 18px;border-radius:18px}.hero h1{font-size:27px}.card{padding:15px;border-radius:14px}.bar-row{grid-template-columns:1fr 2fr 50px}.question-prompt{font-size:16px}.auth{margin:24px auto}footer{padding:18px 14px 28px;flex-direction:column;gap:6px}}

/* Question answer editor v1.4.4 */
.answer-editor-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:10px}.answer-editor-head>div{min-width:0}.option-editor{display:flex;flex-direction:column;gap:9px}.option-editor-row{display:grid;grid-template-columns:42px minmax(0,1fr) 150px 36px;gap:10px;align-items:center;padding:10px;border:1px solid #e1e6ee;border-radius:13px;background:#fbfcfe;transition:.16s ease}.option-editor-row:hover{border-color:#c9d3ec;background:#fff}.option-editor-row.option-hidden{display:none}.option-letter{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:#eef2ff;color:#2946b2;font-weight:850;font-size:15px;border:1px solid #dce3ff}.field .option-editor-row .option-text{margin:0;background:#fff}.correct-switch,.correct-check{height:38px;display:inline-flex;align-items:center;justify-content:flex-start;gap:8px;padding:0 8px;border-radius:10px;font-size:12px!important;font-weight:750!important;color:#475467!important;cursor:pointer;user-select:none;white-space:nowrap}.correct-switch:hover,.correct-check:hover{background:#eef2ff}.correct-switch input,.correct-check input{position:absolute;opacity:0;pointer-events:none;width:1px!important;height:1px!important}.switch-ui{width:36px;height:20px;border-radius:999px;background:#d7dce5;position:relative;flex:0 0 auto;transition:.18s}.switch-ui span{position:absolute;width:16px;height:16px;border-radius:50%;background:#fff;left:2px;top:2px;box-shadow:0 1px 4px #0003;transition:.18s}.correct-switch input:checked+.switch-ui{background:#3157d5}.correct-switch input:checked+.switch-ui span{left:18px}.correct-switch input:focus-visible+.switch-ui,.correct-check input:focus-visible+.check-ui{outline:3px solid #aebcf5;outline-offset:2px}.check-ui{width:22px;height:22px;border:1.5px solid #cfd5df;border-radius:6px;display:grid;place-items:center;color:transparent;background:#fff;font-size:14px;line-height:1;transition:.16s}.correct-check input:checked+.check-ui{background:#3157d5;border-color:#3157d5;color:#fff}.option-remove{width:34px;height:34px;border:1px solid #e4e7ec;border-radius:9px;background:#fff;color:#98a2b3;display:grid;place-items:center;cursor:pointer;transition:.16s ease}.option-remove svg{width:17px;height:17px;fill:currentColor}.option-remove:hover:not(:disabled){background:#fff1f2;border-color:#fecdd3;color:#b42318;transform:translateY(-1px)}.option-remove:disabled{opacity:.32;cursor:not-allowed;background:#f8fafc}.option-remove:focus-visible{outline:3px solid #fda4af55;outline-offset:2px}.option-editor-row:has(.single-radio:checked),.option-editor-row:has(.multiple-check:checked){border-color:#aebcf5;background:#f8faff}.option-editor-row:has(.single-radio:checked) .option-letter,.option-editor-row:has(.multiple-check:checked) .option-letter{background:#3157d5;color:#fff;border-color:#3157d5}
@media(max-width:760px){.answer-editor-head{align-items:flex-start;flex-direction:column}.option-editor-row{grid-template-columns:38px minmax(0,1fr) 34px;padding:9px}.correct-switch,.correct-check{grid-column:2/3;justify-self:start;padding-left:0}.option-remove{grid-column:3;grid-row:1}.option-letter{width:34px;height:34px}.field .option-editor-row .option-text{grid-column:2/3}.answer-editor-head .btn{width:100%}}

/* Question editor v1.4.5 — workspace redesign */
.question-editor-v2{max-width:1280px;margin:0 auto}.qe-titlebar{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin:2px 0 22px}.qe-titlebar h1{font-size:30px;letter-spacing:-.035em;margin:5px 0 6px}.qe-titlebar p{margin:0;color:#667085;max-width:760px;line-height:1.5}.qe-back{font-size:12px;font-weight:750;color:#52616f;text-decoration:none}.qe-back:hover{color:#3157d5}.qe-title-actions{display:flex;gap:9px;flex:0 0 auto}.qe-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:22px;align-items:start}.qe-main{display:flex;flex-direction:column;gap:16px;min-width:0}.qe-sidebar{display:flex;flex-direction:column;gap:14px;position:sticky;top:88px}.qe-card{background:#fff;border:1px solid #e5e9f0;border-radius:18px;box-shadow:0 8px 28px rgba(15,23,42,.055);padding:20px}.qe-card-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}.qe-card-head h2{font-size:17px;margin:0 0 3px;letter-spacing:-.01em}.qe-card-head p{font-size:12px;color:#8a94a3;margin:0;line-height:1.45}.qe-card-head-actions{justify-content:space-between;gap:18px}.qe-head-left{display:flex;gap:12px;min-width:0}.qe-step{width:30px;height:30px;border-radius:9px;background:#eef2ff;color:#3157d5;display:grid;place-items:center;font-size:12px;font-weight:850;flex:0 0 auto}.qe-step-muted{background:#f4f5f7;color:#667085}.qe-prompt{width:100%;min-height:140px;border:0!important;background:#f8fafc!important;border-radius:13px!important;padding:16px!important;font-size:16px!important;line-height:1.55!important;resize:vertical;box-shadow:inset 0 0 0 1px #e4e8ef!important}.qe-prompt:focus{background:#fff!important;box-shadow:inset 0 0 0 1.5px #6d84e7,0 0 0 4px #3157d50e!important}.qe-add-option{height:36px;border:1px solid #d7ddea;background:#fff;border-radius:10px;color:#334155;font-weight:750;font-size:12px;padding:0 12px;display:inline-flex;align-items:center;gap:7px;cursor:pointer;white-space:nowrap;transition:.16s}.qe-add-option span{font-size:18px;color:#3157d5;line-height:1}.qe-add-option:hover{border-color:#b7c2e9;background:#f8faff;color:#2743a3}.question-editor-v2 .option-editor{display:flex;flex-direction:column;gap:8px}.question-editor-v2 .option-editor-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto 38px;gap:10px;align-items:center;padding:8px 9px;border:1px solid #e3e8ef;border-radius:13px;background:#fff;transition:border-color .16s,box-shadow .16s,background .16s}.question-editor-v2 .option-editor-row:hover{border-color:#cbd4e6;box-shadow:0 4px 14px rgba(15,23,42,.04)}.question-editor-v2 .option-editor-row:has(.single-radio:checked),.question-editor-v2 .option-editor-row:has(.multiple-check:checked){border-color:#9eade8;background:#f8faff;box-shadow:0 0 0 2px #3157d50a}.question-editor-v2 .option-letter{width:34px;height:34px;border-radius:9px;background:#f3f5f8;border:1px solid #e2e6ed;color:#475467;font-weight:850;font-size:14px;display:grid;place-items:center}.question-editor-v2 .option-editor-row:has(.single-radio:checked) .option-letter,.question-editor-v2 .option-editor-row:has(.multiple-check:checked) .option-letter{background:#3157d5;border-color:#3157d5;color:#fff}.question-editor-v2 .option-text{height:40px;border:0!important;background:transparent!important;padding:0 8px!important;font-size:14px;min-width:0;outline:none!important;box-shadow:none!important}.question-editor-v2 .option-text:focus{background:#fff!important;border-radius:8px!important;box-shadow:inset 0 0 0 1px #c7d1f1!important}.question-editor-v2 .correct-switch,.question-editor-v2 .correct-check{height:36px;border:1px solid #e2e6ed;background:#fff;padding:0 9px;border-radius:9px;color:#667085!important;font-size:11px!important;gap:7px}.question-editor-v2 .correct-switch:hover,.question-editor-v2 .correct-check:hover{border-color:#bbc6eb;background:#f8faff}.question-editor-v2 .correct-switch:has(input:checked),.question-editor-v2 .correct-check:has(input:checked){border-color:#a9b6ea;background:#eef2ff;color:#2743a3!important}.question-editor-v2 .switch-ui{width:32px;height:18px}.question-editor-v2 .switch-ui span{width:14px;height:14px}.question-editor-v2 .correct-switch input:checked+.switch-ui span{left:16px}.question-editor-v2 .check-ui{width:18px;height:18px;border-radius:5px;font-size:11px}.question-editor-v2 .option-remove{width:34px;height:34px;border:0;background:transparent;color:#a4acb9;border-radius:9px}.question-editor-v2 .option-remove:hover:not(:disabled){background:#fff0f1;color:#c43243;transform:none}.question-editor-v2 .option-remove:disabled{background:transparent;opacity:.22}.qe-special-input{position:relative}.qe-special-input input,.qe-special-card textarea,.qe-explanation-card textarea{width:100%;border:1px solid #dfe4ec;border-radius:12px;padding:13px;background:#fbfcfe;color:#111827;font:inherit;outline:none}.qe-special-input input{padding-right:150px}.qe-special-input span{position:absolute;right:13px;top:50%;transform:translateY(-50%);font-size:11px;color:#98a2b3}.qe-special-card textarea,.qe-explanation-card textarea{min-height:110px;resize:vertical}.qe-special-input input:focus,.qe-special-card textarea:focus,.qe-explanation-card textarea:focus{border-color:#899be5;background:#fff;box-shadow:0 0 0 3px #3157d512}.qe-settings-card{padding:18px}.qe-settings-title{display:flex;justify-content:space-between;align-items:center;padding-bottom:13px;margin-bottom:14px;border-bottom:1px solid #edf0f4}.qe-settings-title>div{display:flex;align-items:center;gap:8px}.qe-settings-title h2{font-size:15px;margin:0}.qe-settings-icon{width:28px;height:28px;border-radius:8px;background:#f1f4fa;color:#52616f;display:grid;place-items:center;font-size:13px}.qe-settings-hint{font-size:10px;color:#98a2b3}.qe-field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.qe-field:last-child{margin-bottom:0}.qe-field label{font-size:11px;font-weight:750;color:#667085}.qe-field input,.qe-field select{width:100%;height:40px;border:1px solid #dfe4ec;border-radius:10px;padding:0 10px;background:#fff;color:#101828;font:inherit;font-size:13px;outline:none}.qe-field input:focus,.qe-field select:focus{border-color:#899be5;box-shadow:0 0 0 3px #3157d510}.qe-field-row{display:grid;grid-template-columns:1fr 1.35fr;gap:10px}.qe-field-help{font-size:10px;color:#98a2b3}.qe-media-card{padding:18px}.qe-file-input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.qe-upload{border:1px dashed #cfd6e2;background:#fafbfc;border-radius:12px;padding:12px;display:flex;align-items:center;gap:10px;cursor:pointer;transition:.16s}.qe-upload:hover{border-color:#9face5;background:#f8faff}.qe-upload-icon{width:34px;height:34px;border-radius:9px;background:#eef2ff;color:#3157d5;display:grid;place-items:center;font-size:17px;font-weight:800}.qe-upload b{display:block;font-size:12px;color:#344054}.qe-upload small{display:block;font-size:10px;color:#98a2b3;margin-top:2px}.qe-upload-state{display:block;margin-top:8px;font-size:11px;color:#087a55}.qe-version-note{border:1px solid #dbe4ff;background:#f6f8ff;border-radius:14px;padding:13px 14px;display:flex;flex-direction:column;gap:3px}.qe-version-note b{font-size:11px;color:#3449a7}.qe-version-note span{font-size:10px;color:#7380aa;line-height:1.4}.qe-bottom-actions{margin-top:18px;background:#fff;border:1px solid #e5e9f0;border-radius:15px;padding:12px 14px;box-shadow:0 8px 26px rgba(15,23,42,.06);display:flex;align-items:center;justify-content:space-between;gap:14px}.qe-bottom-actions>div{display:flex;align-items:center;gap:9px;font-size:11px;color:#8a94a3}.qe-unsaved-dot{width:7px;height:7px;border-radius:50%;background:#f5a524}.qe-bottom-actions>div:last-child{gap:8px}.qe-bottom-actions .btn{min-width:120px;justify-content:center}
@media(max-width:1050px){.qe-layout{grid-template-columns:1fr}.qe-sidebar{position:static;display:grid;grid-template-columns:1.4fr 1fr;align-items:start}.qe-version-note{grid-column:1/-1}.qe-titlebar{align-items:flex-start}}
@media(max-width:720px){.qe-titlebar{flex-direction:column;margin-bottom:16px}.qe-titlebar h1{font-size:26px}.qe-title-actions{width:100%}.qe-title-actions .btn{flex:1;justify-content:center}.qe-sidebar{display:flex}.qe-card{padding:15px;border-radius:15px}.qe-card-head-actions{flex-direction:column}.qe-add-option{width:100%;justify-content:center}.question-editor-v2 .option-editor-row{grid-template-columns:34px minmax(0,1fr) 34px;padding:7px}.question-editor-v2 .option-letter{width:31px;height:31px}.question-editor-v2 .option-text{grid-column:2/3}.question-editor-v2 .correct-switch,.question-editor-v2 .correct-check{grid-column:2/3;grid-row:2;width:max-content}.question-editor-v2 .option-remove{grid-column:3;grid-row:1}.qe-field-row{grid-template-columns:1fr 1fr}.qe-bottom-actions{flex-direction:column;align-items:stretch}.qe-bottom-actions>div:first-child{display:none}.qe-bottom-actions>div:last-child{width:100%}.qe-bottom-actions .btn{flex:1}.qe-prompt{min-height:120px!important}}

/* ============================================================
   Global interface refresh v1.5.0
   ============================================================ */
:root{
  --bg:#f4f6fb;--card:#fff;--text:#162033;--muted:#6b7280;--line:#e6eaf0;
  --primary:#3157d5;--primary2:#203fb5;--primary-soft:#eef2ff;--green:#0b8f67;
  --red:#cf2b3b;--amber:#c87508;--shadow:0 8px 28px rgba(28,39,69,.06);
  --shadow-hover:0 16px 38px rgba(28,39,69,.10);--radius:18px
}
html{scroll-behavior:smooth}body{min-height:100vh;background:radial-gradient(circle at 50% -180px,#e8edff 0,transparent 520px),linear-gradient(180deg,#f9faff 0,#f4f6fb 360px)}
button,input,select,textarea{font-family:inherit}.shell{max-width:1380px;padding-top:30px}
.topbar{height:72px;padding:0;background:rgba(255,255,255,.92);border-bottom:1px solid rgba(225,230,239,.86);box-shadow:0 4px 18px rgba(26,38,69,.035)}
.topbar-inner{width:100%;max-width:1380px;height:100%;margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:26px}.brand{min-width:194px}.brand-mark{width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,#4166e2,#18369e);box-shadow:0 8px 20px rgba(49,87,213,.25)}.brand b{font-size:15px;letter-spacing:-.01em}.brand small{font-size:10px;letter-spacing:.12em;margin-top:1px}
.topbar nav{display:flex;align-items:center;gap:4px;flex:1}.topbar nav a{position:relative;display:flex;align-items:center;gap:7px;padding:9px 10px;border-radius:10px;color:#59647a;font-size:13px;font-weight:650;transition:.15s ease}.topbar nav a:hover{background:#f4f6fb;color:#233fa5}.topbar nav a.active{background:#eef2ff;color:#2846b6}.topbar nav a.active:after{content:"";position:absolute;left:12px;right:12px;bottom:-15px;height:2px;border-radius:3px;background:#3157d5}.nav-icon{width:16px;height:16px;display:grid;place-items:center;font-size:13px;opacity:.78}.nav-home:before{content:"⌂"}.nav-clipboard:before{content:"▣"}.nav-chart:before{content:"⌁"}.nav-bank:before{content:"◫"}.nav-users:before{content:"◉"}.nav-repeat:before{content:"↻"}.nav-settings:before{content:"⚙"}.topbar nav a.active .nav-icon{opacity:1}
.userbox{gap:7px}.user-profile{display:flex;align-items:center;gap:9px;color:#1e293b;padding:5px 6px;border-radius:11px;transition:.15s}.user-profile:hover{background:#f5f7fb}.user-avatar{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#eef2ff;color:#3157d5;font-size:11px;font-weight:850;border:1px solid #dde4ff}.user-meta{display:flex;flex-direction:column;line-height:1.2;max-width:150px}.user-meta b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-meta small{font-size:10px;color:#98a2b3;margin-top:3px}.icon-btn{border:0;background:transparent;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;color:#8a94a5;cursor:pointer;font-size:15px}.icon-btn:hover{background:#f2f4f7;color:#344054}.logout-btn{transform:rotate(-45deg)}.mobile-nav-toggle{display:none;border:0;background:transparent;width:40px;height:40px;border-radius:10px;padding:9px}.mobile-nav-toggle span{height:2px;background:#475467;display:block;margin:4px 0;border-radius:2px}
.page-head{margin:4px 0 22px}.page-head h1{font-size:29px;line-height:1.15}.page-head p{font-size:13px;line-height:1.6}.page-eyebrow{font-size:11px;color:#7b8799;text-transform:uppercase;letter-spacing:.09em;font-weight:800;margin-bottom:6px}.section-title{margin:28px 0 13px}.section-title h2{font-size:19px;letter-spacing:-.02em}.section-title .section-caption{font-size:12px;color:#8b95a5;margin-left:10px;font-weight:400}
.card{border-color:#e7ebf2;box-shadow:var(--shadow);transition:border-color .16s,box-shadow .16s,transform .16s}.card-soft{background:#fbfcfe}.card-hover:hover{border-color:#d7deeb;box-shadow:var(--shadow-hover);transform:translateY(-2px)}.card h3{font-size:16px;letter-spacing:-.01em}.card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}.card-header h3{margin:0}.card-header p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.45}.card-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#eef2ff;color:#3157d5;font-weight:850;flex:0 0 auto}.card-footer{border-top:1px solid #edf0f4;margin:15px -20px -20px;padding:13px 20px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fcfdff;border-radius:0 0 18px 18px}.card-link{font-size:12px;font-weight:750;display:inline-flex;align-items:center;gap:5px}.card-link:after{content:"→";transition:transform .15s}.card-link:hover:after{transform:translateX(2px)}
.hero{position:relative;overflow:hidden;padding:34px 36px;border-radius:23px;background:linear-gradient(125deg,#182a68 0,#264bc1 55%,#5672dd 100%);box-shadow:0 20px 46px rgba(36,69,177,.22)}.hero:before{content:"";position:absolute;width:300px;height:300px;border-radius:50%;right:-70px;top:-190px;border:55px solid rgba(255,255,255,.07)}.hero:after{content:"";position:absolute;width:170px;height:170px;border-radius:50%;right:150px;bottom:-145px;border:38px solid rgba(255,255,255,.055)}.hero>*{position:relative;z-index:1}.hero h1{font-size:34px;letter-spacing:-.035em}.hero p{font-size:14px;line-height:1.65;max-width:780px}.hero .kicker{font-size:10px;letter-spacing:.15em}.hero-actions{display:flex;gap:9px;margin-top:20px}.hero-actions .btn-ghost{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.22);color:#fff}.hero-actions .btn-ghost:hover{background:rgba(255,255,255,.2)}
.metric{position:relative;overflow:hidden;border-color:#e7ebf1;box-shadow:0 6px 20px rgba(24,34,60,.045);padding:17px 18px}.metric:after{content:"";position:absolute;width:64px;height:64px;border-radius:50%;right:-24px;top:-25px;background:#f4f6fc}.metric span{font-size:10px;letter-spacing:.065em}.metric strong{font-size:28px;margin:8px 0 2px}.metric small{font-size:11px}.metric.good{border-left:0;border-top:3px solid var(--green)}.metric.warn{border-left:0;border-top:3px solid var(--amber)}.metric.bad{border-left:0;border-top:3px solid var(--red)}
.btn{min-height:39px;border-radius:10px;padding:9px 14px;display:inline-flex;align-items:center;justify-content:center;gap:6px;box-shadow:0 5px 14px rgba(49,87,213,.18);transition:transform .12s,box-shadow .12s,background .12s}.btn:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(49,87,213,.22)}.btn:active{transform:translateY(0)}.btn-ghost{box-shadow:none;background:#fff}.btn-ghost:hover{background:#f8f9fc;border-color:#d5dbe6;color:#253b8f;box-shadow:none}.btn-secondary{background:#1d2939}.btn-danger{background:#c72f3e}.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.badge,.role-pill{padding:5px 8px;font-size:10px;letter-spacing:.01em}.badge.neutral{background:#f1f3f6}.status-dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:currentColor;opacity:.7}
.flash{display:flex;align-items:center;gap:10px;border:1px solid transparent;padding:12px 14px;font-size:13px;box-shadow:0 5px 18px rgba(25,40,70,.035)}.flash-dot{width:8px;height:8px;border-radius:50%;background:currentColor;flex:0 0 auto}.flash.success{border-color:#ccefe1}.flash.error{border-color:#f4cfd3}.flash.info{border-color:#d2dcff}.flash.warning{background:#fff7e6;color:#9a6203;border-color:#f6dfae}
.table-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:12px}.table-toolbar .field{max-width:360px;flex:1}.searchbox{position:relative}.searchbox:before{content:"⌕";position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#98a2b3;font-size:16px}.searchbox input{padding-left:34px!important}.table-summary{font-size:11px;color:#8c96a7}.table-wrap{background:#fff;border-color:#e4e8ef;border-radius:15px;box-shadow:0 5px 20px rgba(23,34,60,.035)}th,td{padding:12px 14px}th{background:#fafbfc;color:#667085;font-size:10px;letter-spacing:.055em;top:0;z-index:1}tbody tr{transition:background .12s}tbody tr:hover{background:#fafbff}td{color:#344054}.table-primary{font-weight:700;color:#1f2937}.table-secondary{font-size:11px;color:#8a94a4;margin-top:3px}.row-actions{display:flex;justify-content:flex-end;gap:6px}.table-link{font-size:12px;font-weight:750}.table-status-cell{white-space:nowrap}.table-empty td{text-align:center;padding:34px;color:#98a2b3}
.field{gap:6px}.field label{font-size:11px;color:#667085}.field input,.field select,.field textarea{border-color:#dfe4eb;border-radius:10px;background:#fff;padding:10px 11px;font-size:13px;transition:border-color .14s,box-shadow .14s,background .14s}.field input:hover,.field select:hover,.field textarea:hover{border-color:#cbd3df}.field input:focus,.field select:focus,.field textarea:focus{border-color:#8498e7;box-shadow:0 0 0 3px rgba(49,87,213,.085)}.form-section{padding:19px;border:1px solid #e7ebf2;border-radius:16px;background:#fff}.form-section+.form-section{margin-top:14px}.form-section-head{display:flex;align-items:center;gap:11px;margin-bottom:16px}.form-section-num{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:#eef2ff;color:#3157d5;font-weight:850;font-size:11px}.form-section-head h3{margin:0;font-size:15px}.form-section-head p{margin:3px 0 0;font-size:11px;color:#98a2b3}.form-actions{position:sticky;bottom:12px;z-index:8;margin-top:16px;padding:11px 12px;border:1px solid #e5e9f0;border-radius:14px;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);box-shadow:0 10px 30px rgba(25,36,62,.09);display:flex;justify-content:flex-end;gap:8px}
.pill-list{gap:7px}.pill{display:inline-flex;align-items:center;gap:6px;border:1px solid #e6e9ee;background:#f7f8fa;color:#475467;padding:7px 10px;transition:.12s}.pill:hover{background:#f1f4fa;border-color:#d7dde7}.pill:has(input:checked){background:#eef2ff;border-color:#cbd5ff;color:#2946b2}.pill input{accent-color:#3157d5}.choice-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.difficulty-box{border:1px solid #e5e9ef;border-radius:12px;padding:10px;background:#fafbfc}.difficulty-box label{display:block;color:#f59e0b;font-weight:800;font-size:13px;margin-bottom:6px}.difficulty-box input{height:38px;text-align:center;font-weight:750}
.entity-card{position:relative;display:flex;flex-direction:column;min-height:190px}.entity-card .entity-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.entity-card h3{margin:13px 0 6px;font-size:16px;line-height:1.35}.entity-card .entity-meta{font-size:12px;color:#7d8798;line-height:1.5}.entity-card .entity-stats{display:flex;gap:14px;margin-top:auto;padding-top:16px}.entity-stat{display:flex;flex-direction:column}.entity-stat b{font-size:15px}.entity-stat span{font-size:10px;color:#98a2b3;margin-top:2px}.entity-card .card-link{margin-top:14px}
.assessment-card{gap:0;min-height:220px}.assessment-card .assessment-meta{margin-bottom:12px}.assessment-card h3{font-size:16px;line-height:1.35}.assessment-card .assessment-discipline{font-size:12px;color:#667085;margin:6px 0 14px}.assessment-card .assessment-time{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:auto}.assessment-time-box{padding:9px 10px;border:1px solid #edf0f4;border-radius:10px;background:#fafbfc}.assessment-time-box span{font-size:9px;color:#98a2b3;text-transform:uppercase;letter-spacing:.05em;display:block}.assessment-time-box b{font-size:11px;color:#344054;display:block;margin-top:3px}.assessment-card .assessment-action{margin-top:13px;padding-top:13px;border-top:1px solid #edf0f4;display:flex;justify-content:space-between;align-items:center}
.filter-card{padding:14px 16px;margin-bottom:14px;display:flex;align-items:flex-end;justify-content:space-between;gap:14px}.filter-card .field{min-width:260px}.filter-card .filter-note{font-size:11px;color:#8d97a7;line-height:1.5;max-width:600px}.stats-strip{display:flex;gap:10px;flex-wrap:wrap}.mini-stat{border:1px solid #e7ebf1;border-radius:11px;background:#fff;padding:9px 12px;display:flex;align-items:center;gap:9px}.mini-stat b{font-size:15px}.mini-stat span{font-size:10px;color:#98a2b3}
.empty{position:relative;padding:44px 28px 34px;background:#fafbfc;border-color:#dce2ea;color:#8b95a5}.empty:before{content:"◇";display:grid;place-items:center;width:38px;height:38px;border-radius:12px;margin:0 auto 10px;background:#eef2ff;color:#6e83d9;font-size:18px}.notice{border-radius:13px;font-size:12px;line-height:1.5}.kpi-line{font-size:12px}.kpi-line span{color:#667085}.kpi-line b{color:#344054}.report-question{background:#fff;padding:16px;border-radius:14px;box-shadow:0 4px 16px rgba(24,34,60,.035)}.report-question p{line-height:1.5}.bar-row{grid-template-columns:minmax(130px,1.35fr) 3fr 58px}.bar-track{height:8px}.bar-track span{background:linear-gradient(90deg,#3157d5,#7b8ee8)}
.auth{max-width:470px;margin:70px auto}.auth .card{padding:30px;border-radius:20px;box-shadow:0 18px 46px rgba(27,40,76,.10)}.auth .card:before{content:"MD";width:44px;height:44px;border-radius:13px;background:linear-gradient(145deg,#4166e2,#18369e);color:white;display:grid;place-items:center;font-size:12px;font-weight:850;margin-bottom:18px;box-shadow:0 8px 18px rgba(49,87,213,.22)}.auth h1{font-size:25px;letter-spacing:-.025em;margin-bottom:8px}.auth .kpi-line{margin-top:18px!important;padding-top:14px;border-top:1px solid #eef1f4;border-bottom:0}.auth .kpi-line a{font-size:11px;font-weight:700}
.admin-card{min-height:100%}.admin-card .admin-title{display:flex;align-items:center;gap:10px;margin-bottom:16px}.admin-card .admin-title span{width:34px;height:34px;border-radius:10px;background:#eef2ff;color:#3157d5;display:grid;place-items:center;font-weight:850}.admin-card .admin-title h3{margin:0}.admin-card form .field+.field{margin-top:10px}.admin-overview{margin-bottom:18px}.admin-overview .metric{box-shadow:none}
.heatmap table{border-collapse:separate;border-spacing:3px}.heatmap th{position:static;background:transparent}.heatmap td{border:0;padding:7px}.heat{border-radius:8px}.question-shell{max-width:980px}.question-top{background:#fff;border:1px solid #e7ebf1;border-radius:15px;padding:13px 15px;box-shadow:0 5px 20px rgba(26,38,65,.04)}.timer{background:#1e293b;min-width:84px;text-align:center}.question-nav button{transition:.12s}.question-nav button:hover{border-color:#9eade8;background:#f5f7ff}.answer-option{transition:.12s;background:#fff}.answer-option:hover{transform:translateY(-1px);box-shadow:0 5px 15px rgba(30,42,70,.04)}
footer{max-width:1380px;border-top:1px solid #e9edf3;margin-top:12px}.mobile-only{display:none}
@media(max-width:1120px){.topbar-inner{gap:14px}.brand{min-width:176px}.topbar nav a{padding:9px 8px}.topbar nav a span:last-child{font-size:12px}.user-meta{display:none}.choice-grid{grid-template-columns:repeat(5,1fr)}}
@media(max-width:980px){.topbar nav{display:none;position:absolute;left:14px;right:14px;top:66px;background:#fff;border:1px solid #e4e8ef;border-radius:15px;padding:8px;box-shadow:0 18px 40px rgba(26,38,70,.14);flex-direction:column;align-items:stretch}.topbar nav.open{display:flex}.topbar nav a{padding:11px 12px}.topbar nav a.active:after{display:none}.mobile-nav-toggle{display:block;margin-left:auto}.topbar-inner>.userbox{margin-left:0}.grid-4,.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.choice-grid{grid-template-columns:repeat(5,minmax(70px,1fr))}.filter-card{align-items:stretch;flex-direction:column}.filter-card .field{width:100%;max-width:none}.table-toolbar{align-items:stretch;flex-direction:column}.table-toolbar .field{max-width:none}.entity-card{min-height:170px}}
@media(max-width:680px){.topbar-inner{padding:0 12px}.brand{min-width:auto}.brand>span:last-child{display:none}.user-avatar{width:32px;height:32px}.shell{padding-top:20px}.page-head{gap:14px}.page-head h1{font-size:24px}.page-head .actions{width:100%}.page-head .actions .btn{flex:1}.hero{padding:24px 19px}.hero h1{font-size:27px}.metric strong{font-size:25px}.grid-2,.grid-3,.grid-4,.form-grid{grid-template-columns:1fr}.choice-grid{grid-template-columns:repeat(2,1fr)}.card-footer{margin:14px -15px -15px;padding:12px 15px}.assessment-card .assessment-time{grid-template-columns:1fr}.form-actions{bottom:8px}.form-actions .btn{flex:1}.entity-card{min-height:auto}.table-wrap{border-radius:12px}.table-wrap table{min-width:680px}.mobile-card-table table{min-width:0}.mobile-card-table thead{display:none}.mobile-card-table,.mobile-card-table tbody,.mobile-card-table tr,.mobile-card-table td{display:block;width:100%}.mobile-card-table tr{padding:12px;border-bottom:1px solid #edf0f4}.mobile-card-table td{border:0;padding:4px 0}.mobile-card-table td[data-label]:before{content:attr(data-label);display:block;font-size:9px;color:#98a2b3;text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}.mobile-only{display:block}.auth{margin:28px auto}.auth .card{padding:24px 20px}.question-top{align-items:flex-start}.timer{position:sticky;top:76px;z-index:5}.bar-row{grid-template-columns:1fr 1.5fr 48px}}


/* v1.5.1 — clean text-first interface: decorative logos/emblems removed */
.brand{min-width:190px;gap:0}.brand b{display:block;font-size:14px;font-weight:800;letter-spacing:-.01em;white-space:nowrap}.brand-mark{display:none!important}
.brand-copy{display:flex;flex-direction:column;justify-content:center;min-width:0}.brand-copy b{font-size:16px!important;line-height:1.05}.brand-copy small{display:block;color:#7e8aa3;font-size:9px;letter-spacing:.07em;line-height:1.2;margin-top:4px;white-space:nowrap}
.nav-icon{display:none!important}
.auth .card:before{display:none!important;content:none!important}
.card-icon,.qe-settings-icon,.admin-card .admin-title>span{display:none!important}
.empty:before{display:none!important;content:none!important}
.admin-card .admin-title{gap:0}
.qe-settings-title>div{gap:0}
@media(max-width:680px){.brand{min-width:auto}.brand>b{font-size:13px}.brand>span:last-child{display:initial}}
@media(max-width:680px){.brand-copy b{font-size:14px!important}.brand-copy small{font-size:8px;letter-spacing:.04em;margin-top:3px}}

/* v1.5.2 — stable viewport geometry between pages */
html{
  overflow-y:auto;
  scrollbar-gutter:stable;
}
@supports not (scrollbar-gutter:stable){
  html{overflow-y:scroll}
}
body{overflow-x:hidden}

/* v1.5.4 — student management workspace */
.student-filter-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 16px;padding:5px;background:#eef1f6;border-radius:13px;width:max-content;max-width:100%}.student-filter-tab{display:flex;align-items:center;gap:8px;padding:8px 11px;border-radius:9px;color:#667085;font-size:11px;font-weight:750;transition:.14s}.student-filter-tab b{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#fff;color:#667085;display:grid;place-items:center;font-size:10px}.student-filter-tab:hover{background:#f8f9fc;color:#344054}.student-filter-tab.active{background:#fff;color:#2345b4;box-shadow:0 2px 8px rgba(28,42,78,.08)}.student-filter-tab.active b{background:#e9eeff;color:#2849bc}
.student-select-cell{width:38px!important;text-align:center!important;padding-left:12px!important;padding-right:6px!important}.student-select-cell input{width:15px;height:15px;accent-color:#3157d5}.student-cell{display:flex;align-items:center;gap:10px;color:inherit;min-width:240px}.student-cell:hover .table-primary{color:#3157d5}.student-cell>span:last-child{display:flex;flex-direction:column;min-width:0}.bulk-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 12px;padding:10px 12px;background:#fff;border:1px solid #e4e8ef;border-radius:12px}.bulk-check{display:flex;align-items:center;gap:7px;font-size:11px;color:#667085;font-weight:650;white-space:nowrap}.bulk-check input{accent-color:#3157d5}.bulk-controls{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:1}.bulk-controls select{height:34px;min-width:170px;border:1px solid #dce1e8;border-radius:9px;background:#fff;padding:0 30px 0 9px;color:#344054;font-size:11px;outline:none}.bulk-controls select:focus{border-color:#8296e4;box-shadow:0 0 0 3px rgba(49,87,213,.08)}#bulk-group{display:none}
.row-menu{position:relative}.row-menu summary{list-style:none;width:34px;height:32px;border:1px solid #e1e5eb;border-radius:9px;background:#fff;color:#667085;display:grid;place-items:center;cursor:pointer;font-weight:800;letter-spacing:1px}.row-menu summary::-webkit-details-marker{display:none}.row-menu summary:hover{background:#f7f8fb;color:#3157d5;border-color:#cfd6e5}.row-menu[open] summary{background:#eef2ff;border-color:#bdc9f2;color:#3157d5}.row-menu-pop{position:absolute;right:0;top:39px;width:210px;background:#fff;border:1px solid #e2e7ee;border-radius:12px;padding:6px;box-shadow:0 14px 38px rgba(23,34,60,.15);z-index:20}.row-menu-pop a{display:block;padding:9px 10px;border-radius:8px;font-size:11px;color:#475467;font-weight:650}.row-menu-pop a:hover{background:#f4f6fb;color:#3157d5}
.student-profile{max-width:1320px}.student-profile-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 22px;margin-bottom:12px}.student-profile-identity{display:flex;align-items:center;gap:15px;min-width:0}.student-profile-avatar{width:56px;height:56px;border-radius:17px;background:#eef2ff;color:#3157d5;display:grid;place-items:center;font-size:16px;font-weight:850;flex:0 0 auto}.student-profile-name{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.student-profile-name h1{font-size:23px;letter-spacing:-.025em;margin:0}.student-profile-identity p{margin:5px 0;color:#667085;font-size:12px}.student-profile-meta{display:flex;gap:14px;flex-wrap:wrap;color:#98a2b3;font-size:10px}.profile-tabs{display:flex;gap:4px;overflow:auto;margin:0 0 18px;padding:4px;background:#edf1f6;border-radius:12px;width:max-content;max-width:100%}.profile-tab{white-space:nowrap;padding:8px 12px;border-radius:8px;color:#667085;font-size:11px;font-weight:750}.profile-tab:hover{color:#3157d5}.profile-tab.active{background:#fff;color:#294bbb;box-shadow:0 2px 8px rgba(28,42,78,.08)}.profile-metrics{margin-bottom:18px}.compact-table{max-height:360px}.compact-table th,.compact-table td{padding:10px 11px}.progress-timeline{display:flex;flex-direction:column;position:relative}.progress-timeline-item{display:grid;grid-template-columns:18px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #edf0f4}.progress-timeline-item:last-child{border-bottom:0}.progress-timeline-dot{width:9px;height:9px;border-radius:50%;background:#3157d5;box-shadow:0 0 0 4px #edf1ff}.progress-timeline-item b{display:block;font-size:12px;color:#344054}.progress-timeline-item span{display:block;font-size:10px;color:#98a2b3;margin-top:2px}.progress-timeline-item strong{font-size:14px;color:#1d2939}.topic-progress-list{display:flex;flex-direction:column;gap:4px}.topic-progress-row{display:grid;grid-template-columns:minmax(180px,1.1fr) minmax(260px,2fr);gap:18px;align-items:center;padding:10px 0;border-bottom:1px solid #edf0f4}.topic-progress-row:last-child{border-bottom:0}.topic-progress-row>div:first-child b{display:block;font-size:12px}.topic-progress-row>div:first-child span{display:block;font-size:10px;color:#98a2b3;margin-top:3px}.topic-progress-row .progress-wrap{margin:0}.student-profile .notice{margin:0 0 18px}.student-profile .row-actions{white-space:nowrap}
@media(max-width:900px){.student-profile-head{align-items:flex-start;flex-direction:column}.student-profile-head>.actions{width:100%}.student-profile-head>.actions .btn{flex:1}.bulk-bar{align-items:stretch;flex-direction:column}.bulk-controls{justify-content:flex-start;flex-wrap:wrap}.bulk-controls select{flex:1;min-width:180px}.topic-progress-row{grid-template-columns:1fr}.student-filter-tabs{width:100%;overflow:auto;flex-wrap:nowrap}}
@media(max-width:680px){.student-filter-tabs{margin-left:0}.student-filter-tab{padding:8px 9px}.student-profile-head{padding:16px}.student-profile-avatar{width:46px;height:46px;border-radius:14px}.student-profile-name h1{font-size:19px}.student-profile-meta{flex-direction:column;gap:3px}.profile-tabs{width:100%}.bulk-controls{flex-direction:column;align-items:stretch}.bulk-controls select,.bulk-controls .btn{width:100%}.student-cell{min-width:210px}.row-menu-pop{position:fixed;right:14px;left:14px;top:auto;width:auto}}


/* v1.6 — academic workflow, notifications, readiness and resilient assessment UI */
html{scrollbar-gutter:stable}.nav-utility{font-size:12px;color:#667085;white-space:nowrap}.nav-utility:hover{color:var(--primary)}
.actions.wrap{flex-wrap:wrap}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff;box-shadow:var(--shadow)}.calendar-weekday{padding:10px 8px;background:#f8fafc;color:#667085;font-size:11px;font-weight:800;text-align:center;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line)}.calendar-day{min-height:132px;padding:9px;border-right:1px solid #edf0f3;border-bottom:1px solid #edf0f3;display:flex;flex-direction:column;gap:6px}.calendar-day:nth-child(7n){border-right:0}.calendar-day.outside{background:#fafbfc}.calendar-num{font-size:12px;font-weight:800;color:#475467}.calendar-event{display:block;padding:7px 8px;border-radius:9px;background:#eef2ff;color:#2846b6;font-size:11px;line-height:1.35}.calendar-event:hover{background:#e0e7ff}.calendar-event.special{background:#fff7ed;color:#9a4b09}
.notification-list{padding:0;overflow:hidden}.notification-item{display:flex;justify-content:space-between;gap:20px;padding:16px 18px;border-bottom:1px solid #edf0f3;color:var(--text)}.notification-item:last-child{border-bottom:0}.notification-item p{margin:5px 0 0;color:var(--muted);font-size:12px}.notification-item>span{color:#98a2b3;font-size:11px;white-space:nowrap}.notification-item.unread{background:#f6f8ff;border-left:3px solid var(--primary)}
.preview-question{margin-bottom:14px}.preview-question h3{font-size:16px;line-height:1.45}.qr-card{text-align:center}.qr-card img{max-width:210px;width:100%;height:auto;border:1px solid var(--line);border-radius:14px;background:#fff;padding:10px}.incident-pop{display:inline-block;position:relative}.incident-pop summary{cursor:pointer;list-style:none}.incident-pop summary::-webkit-details-marker{display:none}.incident-pop[open] form{display:flex}.incident-pop form{position:absolute;right:0;top:calc(100% + 7px);z-index:20;min-width:260px;padding:12px;background:#fff;border:1px solid var(--line);box-shadow:0 14px 35px rgba(15,23,42,.14);border-radius:12px;gap:7px;flex-direction:column}.incident-pop input,.incident-pop select{border:1px solid #d7dce4;border-radius:8px;padding:8px}.danger-link{color:#b42318!important}
.readiness .card{max-width:620px}.readiness-list{display:flex;flex-direction:column;gap:0;border:1px solid var(--line);border-radius:13px;overflow:hidden;margin:18px 0}.readiness-row{display:flex;justify-content:space-between;gap:16px;padding:12px 14px;border-bottom:1px solid #edf0f3}.readiness-row:last-child{border-bottom:0}.readiness-row span{color:#667085}.readiness-row b{color:#172033}.submission-receipt{text-align:left}.submission-receipt h1{margin-bottom:4px}.appeal-box{margin-top:10px;border-top:1px dashed #d8dee8;padding-top:9px}.appeal-box summary{cursor:pointer;color:var(--primary);font-weight:700;font-size:12px}.appeal-box textarea{width:100%;min-height:70px;margin-top:8px;border:1px solid #d7dce4;border-radius:10px;padding:9px;font:inherit}.appeal-state{margin-top:9px;font-size:11px;color:#9a6700;font-weight:700}
.note-list{display:flex;flex-direction:column;gap:8px}.note-row{padding:12px;border:1px solid var(--line);border-radius:11px;background:#fbfcfe}.note-row p{margin:5px 0 0;color:#475467}.tag-picker{display:flex;gap:7px;flex-wrap:wrap}.tag-toggle{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 10px;font-size:11px;cursor:pointer}.tag-toggle.active{background:#eef2ff;border-color:#b8c3f0;color:#2846b6;font-weight:800}
.readiness-overlay{position:fixed;inset:0;z-index:80;background:rgba(11,18,36,.74);backdrop-filter:blur(5px);display:none;align-items:center;justify-content:center;padding:20px}.readiness-overlay.active{display:flex}.readiness-overlay .pause-card{max-width:520px;width:100%;background:#fff;border-radius:20px;padding:26px;box-shadow:0 30px 70px rgba(0,0,0,.2);text-align:center}.pause-card h2{margin:0 0 8px}.pause-card p{color:#667085}.sync-state{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#667085;min-height:24px}.sync-state.pending{color:#9a6700}.sync-state.ok{color:#087a55}.sync-state.error{color:#b42318}
.mobile-attempt-bar{display:none}.quality-flag{font-size:11px;padding:4px 7px;background:#fff3cd;color:#9a6700;border-radius:999px;display:inline-flex;margin:2px}.workflow-step{padding:14px;border:1px solid var(--line);border-radius:13px;background:#fff}.workflow-step strong{display:block;margin-bottom:4px}.academic-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:7px}.academic-meta span{font-size:11px;color:#667085;background:#f3f5f8;padding:4px 7px;border-radius:999px}
@media(max-width:900px){.calendar-grid{overflow-x:auto;grid-template-columns:repeat(7,minmax(130px,1fr))}.calendar-day{min-height:110px}.notification-item{flex-direction:column;gap:6px}.notification-item>span{white-space:normal}.qr-card img{max-width:180px}}
@media(max-width:680px){.question-shell{padding-bottom:78px}.question-top{position:sticky;top:72px;z-index:12;background:#f8faff;padding:8px 0}.question-shell .card{padding:14px}.question-nav{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.question-nav button{flex:0 0 38px}.mobile-attempt-bar{display:grid;position:fixed;bottom:0;left:0;right:0;z-index:50;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;background:rgba(255,255,255,.97);border-top:1px solid var(--line);padding:9px 12px calc(9px + env(safe-area-inset-bottom));box-shadow:0 -8px 28px rgba(15,23,42,.08)}.mobile-attempt-bar button:last-child{justify-self:end}.mobile-attempt-bar .mobile-pos{font-size:12px;font-weight:800;color:#667085}.attempt-desktop-controls{display:none!important}}
.question-topic{max-width:100%;white-space:normal;line-height:1.35}.report-question-topic{margin:8px 0 4px;color:#667085;font-size:12px;line-height:1.45}.report-question-topic b{color:#3157d5}

/* v1.6.1 — discipline editor */
.auth .card:before{content:none!important;display:none!important}
.discipline-editor-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.75fr);gap:18px;align-items:start}.discipline-editor-side{display:flex;flex-direction:column;gap:14px;position:sticky;top:82px}.discipline-group-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px;max-height:390px;overflow:auto;padding:2px}.discipline-group-row{display:flex;align-items:center;gap:10px;border:1px solid #e5e9ef;border-radius:12px;padding:10px 11px;background:#fff;cursor:pointer;transition:.12s}.discipline-group-row:hover{border-color:#cbd5e1;background:#fafbff}.discipline-group-row:has(input:checked){background:#eef2ff;border-color:#bdc9f2}.discipline-group-row input{accent-color:#3157d5;flex:0 0 auto}.discipline-group-row span{min-width:0}.discipline-group-row b{display:block;font-size:12px;color:#344054}.discipline-group-row small{display:block;margin-top:3px;color:#8a94a4;font-size:10px;line-height:1.35}.discipline-group-row:has(input:disabled){opacity:.55;cursor:not-allowed}.section-title.compact{margin:19px 0 9px}.section-title.compact h3{font-size:14px}.editor-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px;padding-top:15px;border-top:1px solid #edf0f4}.danger-zone{border-color:#f3d5d8;background:#fffafb}.danger-zone h3{color:#a52331}.danger-zone .btn-danger{margin-top:8px}.discipline-editor-side .help{margin-top:9px;line-height:1.45}.discipline-editor-side form+.help{margin-top:9px}
@media(max-width:980px){.discipline-editor-layout{grid-template-columns:1fr}.discipline-editor-side{position:static}.discipline-group-list{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.discipline-group-list{grid-template-columns:1fr}.editor-actions{flex-direction:column-reverse}.editor-actions .btn{width:100%}}

/* v1.6.2 — group editor */
.group-editor-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.72fr);gap:18px;align-items:start}.group-editor-main{min-width:0}.group-editor-side{display:flex;flex-direction:column;gap:14px;position:sticky;top:82px}.group-discipline-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px;max-height:420px;overflow:auto;padding:2px}.group-discipline-row{display:flex;align-items:center;gap:10px;border:1px solid #e5e9ef;border-radius:12px;padding:10px 11px;background:#fff;cursor:pointer;transition:.12s;min-width:0}.group-discipline-row:hover{border-color:#cbd5e1;background:#fafbff}.group-discipline-row:has(input:checked){background:#eef2ff;border-color:#bdc9f2}.group-discipline-row:has(input:disabled){cursor:not-allowed;background:#f8fafc}.group-discipline-row input{accent-color:#3157d5;flex:0 0 auto}.group-discipline-row>span{min-width:0;flex:1}.group-discipline-row b{display:block;font-size:12px;color:#344054;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-discipline-row small{display:block;margin-top:3px;color:#8a94a4;font-size:10px;line-height:1.35}.group-student-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0 12px;border-bottom:1px solid #edf0f4;margin-bottom:12px}.group-student-toolbar .bulk-controls{flex:0 1 auto}.group-student-toolbar .bulk-controls select{min-width:240px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 13px;border:1px solid #e5e9ef;border-radius:12px;background:#fafbfc}.setting-row span{display:flex;flex-direction:column;gap:3px}.setting-row b{font-size:12px;color:#344054}.setting-row small{font-size:10px;color:#8a94a4;line-height:1.4}.setting-row input{width:18px;height:18px;accent-color:#3157d5}.group-editor-side .code{font-size:11px;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-editor-side .help{margin-top:9px;line-height:1.45}
@media(max-width:980px){.group-editor-layout{grid-template-columns:1fr}.group-editor-side{position:static}.group-discipline-list{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.group-discipline-list{grid-template-columns:1fr}.group-student-toolbar{align-items:stretch;flex-direction:column}.group-student-toolbar .bulk-controls{width:100%;flex-direction:column;align-items:stretch}.group-student-toolbar .bulk-controls select,.group-student-toolbar .btn{width:100%}}
/* v1.6.3 — teacher editor */
.pill-static{display:inline-flex;align-items:center;border:1px solid #e3e8f0;background:#f7f9fc;color:#526071;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:650;line-height:1.1}.teacher-discipline-row>.badge{margin-left:auto;flex:0 0 auto}.teacher-discipline-row small{padding-right:4px}

/* v1.6.7 — expandable question preview in question bank */
.question-bank-row.question-row-open{background:#f8faff}.question-bank-row.question-row-open td{border-bottom-color:#dbe3f4}.question-view-btn{appearance:none;border:1px solid #d8deea;background:#fff;color:#3f4c63;border-radius:8px;padding:7px 10px;font:inherit;font-size:11px;font-weight:750;cursor:pointer;white-space:nowrap;transition:.14s}.question-view-btn:hover{border-color:#b8c4e8;background:#f7f9ff;color:#3157d5}.question-view-btn[aria-expanded="true"]{background:#eef2ff;border-color:#b9c6ef;color:#294bbb}.question-detail-row[hidden]{display:none!important}.question-detail-row td{padding:0!important;background:#f6f8fc;border-bottom:1px solid #dfe5ef}.question-detail-row:hover{background:transparent}.question-preview-card{margin:12px 14px 16px;background:#fff;border:1px solid #dfe5ef;border-radius:16px;box-shadow:0 10px 28px rgba(24,37,70,.07);padding:20px}.question-preview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;padding-bottom:15px;border-bottom:1px solid #edf0f4}.question-preview-kicker{font-size:10px;text-transform:uppercase;letter-spacing:.075em;color:#8b95a5;font-weight:800;margin-bottom:6px}.question-preview-head h3{margin:0;font-size:17px;line-height:1.55;color:#1d2939;white-space:pre-wrap;max-width:900px}.question-preview-head-meta{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap;min-width:185px}.question-preview-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(240px,.75fr);gap:22px;padding:18px 0}.question-preview-section-title{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:#8c96a6;font-weight:800;margin-bottom:9px}.question-preview-options{display:flex;flex-direction:column;gap:7px}.question-preview-option{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:44px;border:1px solid #e4e8ef;border-radius:11px;padding:6px 10px 6px 6px;background:#fff}.question-preview-option.is-correct{border-color:#a9dfc9;background:#f3fbf7}.question-preview-letter{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;background:#f1f3f6;color:#475467;font-size:12px;font-weight:850}.question-preview-option.is-correct .question-preview-letter{background:#0e9f6e;color:#fff}.question-preview-option-text{font-size:13px;line-height:1.45;color:#344054;white-space:pre-wrap}.question-preview-correct{font-size:9px;letter-spacing:.045em;text-transform:uppercase;color:#087a55;background:#dcfce7;border-radius:999px;padding:4px 7px;font-weight:850}.question-preview-answer{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap;padding:13px 14px;border:1px solid #dfe5ef;border-radius:11px;background:#fafbfc}.question-preview-answer>span:first-child{font-size:11px;color:#667085;min-width:160px}.question-preview-answer>b{font-size:14px;color:#1d2939}.question-preview-tolerance{font-size:10px!important;color:#667085!important;background:#f0f2f5;border-radius:999px;padding:4px 7px}.question-preview-side{border-left:1px solid #edf0f4;padding-left:20px}.question-preview-stat{display:flex;justify-content:space-between;gap:15px;padding:8px 0;border-bottom:1px solid #f0f2f5}.question-preview-stat:last-child{border-bottom:0}.question-preview-stat span{font-size:10px;color:#8a94a4}.question-preview-stat b{font-size:11px;color:#344054;text-align:right;max-width:180px}.question-preview-media{margin-top:15px}.question-preview-media img{display:block;max-width:min(620px,100%);max-height:360px;object-fit:contain;border:1px solid #e5e9ef;border-radius:12px;background:#fafafa;padding:4px}.question-preview-explanation{border-top:1px solid #edf0f4;padding-top:15px}.question-preview-explanation>span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:#8c96a6;font-weight:800;margin-bottom:6px}.question-preview-explanation p{margin:0;color:#475467;font-size:12px;line-height:1.6;white-space:pre-wrap}.question-preview-explanation.is-empty p{color:#98a2b3;font-style:italic}.question-preview-footer{display:flex;justify-content:flex-end;padding-top:14px;margin-top:14px;border-top:1px solid #edf0f4}
@media(max-width:900px){.question-preview-grid{grid-template-columns:1fr}.question-preview-side{border-left:0;border-top:1px solid #edf0f4;padding:12px 0 0}.question-preview-head{flex-direction:column}.question-preview-head-meta{justify-content:flex-start;min-width:0}.question-preview-stat b{max-width:60%}}
@media(max-width:680px){.question-preview-card{margin:8px;padding:14px;border-radius:13px}.question-preview-option{grid-template-columns:31px minmax(0,1fr);padding:6px}.question-preview-correct{grid-column:2;margin-top:1px;width:max-content}.question-preview-head h3{font-size:15px}.row-actions{align-items:center}.question-view-btn{padding:6px 8px}.question-preview-footer .btn{width:100%;text-align:center}}
.question-preview-loading,.question-preview-error{margin:12px 14px 16px;border:1px solid #dfe5ef;border-radius:16px;background:#fff;padding:22px;display:flex;align-items:center;justify-content:center;gap:10px;color:#667085;font-size:12px}.question-preview-loading span{width:16px;height:16px;border-radius:50%;border:2px solid #d7def3;border-top-color:#3157d5;animation:questionPreviewSpin .75s linear infinite}.question-preview-error{color:#b42318;background:#fff7f7;border-color:#f5d2d2}@keyframes questionPreviewSpin{to{transform:rotate(360deg)}}
/* v1.6.8 — paired learning progress comparison */
.progress-compare-filter{display:grid;grid-template-columns:minmax(180px,1fr) minmax(150px,.75fr) minmax(240px,1.25fr) minmax(240px,1.25fr) auto;gap:12px;align-items:end;width:100%}.progress-compare-filter .field{min-width:0}.comparison-title{display:grid;grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr);gap:14px;align-items:center;margin:18px 0;padding:17px 20px;border:1px solid #e3e8f0;border-radius:16px;background:linear-gradient(135deg,#fbfcff,#f5f8ff)}.comparison-title>div{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px 10px}.comparison-title b{font-size:14px;color:#27324a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.comparison-title small{grid-column:2;color:#8a94a4;font-size:10px}.comparison-arrow{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#eaf0ff;color:#3157d5;font-size:19px;font-weight:900}.insight-list{display:flex;flex-direction:column;margin-top:12px}.insight-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:10px 0;border-bottom:1px solid #edf0f4}.insight-row:last-child{border-bottom:0}.insight-row span{font-size:12px;color:#475467}.insight-row b{font-size:12px;color:#263f9a;white-space:nowrap}
@media(max-width:1100px){.progress-compare-filter{grid-template-columns:1fr 1fr}.progress-compare-filter .btn{width:100%}.comparison-title{grid-template-columns:1fr 38px 1fr}}
@media(max-width:680px){.progress-compare-filter{grid-template-columns:1fr}.comparison-title{grid-template-columns:1fr}.comparison-arrow{transform:rotate(90deg);margin:auto}.comparison-title>div{grid-template-columns:auto minmax(0,1fr)}}
.student-gain-list{display:flex;flex-direction:column;margin-top:12px}.student-gain-row{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:12px 0;border-bottom:1px solid #edf0f4}.student-gain-row:last-child{border-bottom:0}.student-gain-row>div:first-child{display:flex;flex-direction:column;gap:3px}.student-gain-row b{font-size:12px}.student-gain-row span{font-size:10px;color:#8a94a4}.student-gain-values{display:grid;grid-template-columns:54px 18px 54px 78px;gap:7px;align-items:center;text-align:right}.student-gain-values span{font-size:12px;color:#344054;font-weight:700}.student-gain-values i{font-style:normal;color:#98a2b3;text-align:center}.student-gain-values strong{font-size:11px;color:#3157d5;white-space:nowrap}.before-after-mini{display:grid;grid-template-columns:1fr 28px 1fr auto;gap:10px;align-items:center;margin-top:12px;padding:14px;border:1px solid #e7ebf1;border-radius:13px;background:#fafbfc}.before-after-mini>div{display:flex;flex-direction:column;gap:4px}.before-after-mini span{font-size:10px;color:#8a94a4}.before-after-mini b{font-size:20px;color:#26324b}.before-after-mini i{font-style:normal;text-align:center;color:#98a2b3}.before-after-mini strong{font-size:12px;color:#3157d5;white-space:nowrap}
@media(max-width:680px){.student-gain-row{align-items:flex-start;flex-direction:column}.student-gain-values{width:100%;grid-template-columns:1fr 18px 1fr auto;text-align:left}.before-after-mini{grid-template-columns:1fr 22px 1fr}.before-after-mini strong{grid-column:1/-1}}
/* Preserve the no-logo interface decision from earlier releases. */
.auth .card:before{display:none!important;content:none!important}

/* v1.6.9 — full portable backups */

/* v1.7.0 — protected backup restoration and safe bootstrap */

/* v1.7.1 — unified sign-in / first registration */
.auth.auth-wide{max-width:620px;margin:48px auto}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:5px;border:1px solid #e2e7ef;background:#eef1f6;border-radius:14px;margin-bottom:12px}.auth-tab{display:flex;align-items:center;justify-content:center;min-height:42px;padding:9px 12px;border-radius:10px;color:#667085;font-size:13px;font-weight:800}.auth-tab:hover{color:#3157d5;background:#f8faff}.auth-tab.active{background:#fff;color:#243ea8;box-shadow:0 3px 10px rgba(20,35,72,.08)}.auth-card{padding:28px}.auth-panel-head{margin-bottom:20px}.auth-panel-head h1{margin:0 0 6px;font-size:26px;letter-spacing:-.025em}.auth-panel-head p{margin:0;color:#667085;font-size:13px;line-height:1.5}.auth-primary{width:100%;margin-top:18px;min-height:44px}.auth-links{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:17px;padding-top:15px;border-top:1px solid #edf0f4;font-size:12px}.registration-kinds{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:0 0 18px}.registration-kind{display:flex;flex-direction:column;gap:3px;padding:12px 13px;border:1px solid #dfe4ec;border-radius:12px;color:#475467;background:#fbfcfe;transition:.14s}.registration-kind:hover{border-color:#c2cdec;background:#f8faff}.registration-kind.active{border-color:#aebde9;background:#eef2ff;color:#2946b2;box-shadow:inset 0 0 0 1px rgba(49,87,213,.06)}.registration-kind b{font-size:12px}.registration-kind span{font-size:10px;color:#8a94a4;line-height:1.35}.registration-form{display:flex;flex-direction:column;gap:12px}.registration-form .auth-primary{margin-top:5px}.auth-note{margin-bottom:2px;line-height:1.5}.registration-form .code{font-size:10px;margin-right:4px}
@media(max-width:680px){.auth.auth-wide{margin:18px auto}.auth-card{padding:19px}.auth-tabs{grid-template-columns:1fr}.registration-kinds{grid-template-columns:1fr}.auth-links{align-items:flex-start;flex-direction:column}.auth-panel-head h1{font-size:23px}}

/* v1.7.2 admin security */
.recovery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}.recovery-code{display:block;padding:12px 14px;border:1px solid var(--line,#dfe3eb);border-radius:10px;background:#f7f9fc;font-size:16px;font-weight:700;letter-spacing:.08em;text-align:center}.security-status{display:flex;gap:8px;align-items:center;flex-wrap:wrap}@media(max-width:700px){.recovery-grid{grid-template-columns:1fr}}

/* v1.7.3 — floating student actions and password reset workflow */
.nav-count{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;margin-left:4px;border-radius:999px;background:#e9eeff;color:#2849bc;font-size:10px;font-weight:850;vertical-align:middle}
.row-menu-pop{position:fixed!important;right:auto!important;top:auto;width:224px;z-index:10000;visibility:hidden}
.row-menu-pop[data-positioned="1"]{visibility:visible}
.row-menu-pop form{margin:0}
.row-menu-action{display:block;width:100%;padding:9px 10px;border:0;border-radius:8px;background:transparent;text-align:left;font:inherit;font-size:11px;color:#475467;font-weight:650;cursor:pointer}
.row-menu-action:hover{background:#f4f6fb;color:#3157d5}.row-menu-action.danger{color:#b42318}.row-menu-action.danger:hover{background:#fff1f2;color:#9f1239}
.password-reset-notice{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px!important;background:#fff8e8;border-color:#f6d78b;color:#7a4a06}.password-reset-notice>div{display:flex;flex-direction:column;gap:3px}.password-reset-notice span{font-size:11px;color:#9a670b}
@media(max-width:680px){.row-menu-pop{width:calc(100vw - 28px)!important}.password-reset-notice{align-items:stretch;flex-direction:column}.password-reset-notice .btn{width:100%}}

/* v1.7.4 — refined teacher notes in student profile */
.student-workspace-pair{align-items:stretch}.teacher-note-composer{display:flex;flex-direction:column;min-height:100%}.teacher-note-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.teacher-note-head h3,.teacher-note-history-title h3{margin:0}.teacher-note-state{flex:0 0 auto;display:inline-flex;align-items:center;min-height:26px;padding:5px 9px;border-radius:999px;background:#f2f4f7;color:#667085;font-size:10px;font-weight:800;white-space:nowrap}.teacher-note-state.student-visible{background:#eef4ff;color:#3157d5}.teacher-note-form{display:flex;flex-direction:column;gap:12px;flex:1}.teacher-note-textarea-wrap{border:1px solid #dfe4ec;border-radius:13px;background:#fbfcfe;overflow:hidden;transition:.14s}.teacher-note-textarea-wrap:focus-within{background:#fff;border-color:#93a4e6;box-shadow:0 0 0 3px rgba(49,87,213,.08)}.teacher-note-textarea-wrap textarea{display:block;width:100%;min-height:118px;max-height:260px;padding:13px 14px 8px;border:0!important;background:transparent!important;box-shadow:none!important;resize:vertical;outline:none;font:inherit;font-size:13px;line-height:1.55;color:#1d2939}.teacher-note-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 10px;border-top:1px solid #edf0f4;background:rgba(248,250,252,.78);font-size:10px;color:#98a2b3}.teacher-note-tools button{border:0;background:transparent;color:#7b8494;font-size:10px;font-weight:700;padding:4px 5px;border-radius:6px;cursor:pointer}.teacher-note-tools button:hover{background:#eef1f6;color:#344054}.teacher-note-visibility{display:grid;grid-template-columns:1fr 1fr;gap:8px}.teacher-note-visibility-choice{position:relative;display:flex;align-items:flex-start;gap:9px;padding:10px 11px;border:1px solid #e3e7ed;border-radius:11px;background:#fff;cursor:pointer;transition:.13s}.teacher-note-visibility-choice:hover{border-color:#cfd6e5;background:#fafbfe}.teacher-note-visibility-choice:has(input:checked){border-color:#b7c4ef;background:#f4f7ff;box-shadow:inset 0 0 0 1px rgba(49,87,213,.04)}.teacher-note-visibility-choice input{margin-top:2px;accent-color:#3157d5;flex:0 0 auto}.teacher-note-visibility-choice span{min-width:0}.teacher-note-visibility-choice b{display:block;font-size:11px;color:#344054}.teacher-note-visibility-choice small{display:block;margin-top:3px;font-size:9.5px;line-height:1.4;color:#8a94a4}.teacher-note-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:auto;padding-top:2px}.teacher-note-footer>span{font-size:10px;color:#98a2b3;line-height:1.4}.teacher-note-footer .btn{flex:0 0 auto}.teacher-note-history-card{padding-bottom:16px}.teacher-note-history-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:13px}.teacher-note-history-title>span{display:inline-flex;min-height:26px;align-items:center;padding:4px 9px;border-radius:999px;background:#f2f4f7;color:#667085;font-size:10px;font-weight:800}.teacher-note-history-list{display:flex;flex-direction:column;gap:9px}.teacher-note-history-item{padding:13px 14px;border:1px solid #e7ebf0;border-radius:12px;background:#fbfcfe}.teacher-note-history-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px}.teacher-note-history-head>div{display:flex;align-items:baseline;gap:8px;min-width:0}.teacher-note-history-head b{font-size:11px;color:#344054}.teacher-note-history-head span{font-size:9.5px;color:#98a2b3;white-space:nowrap}.teacher-note-history-item p{margin:0;color:#475467;font-size:12px;line-height:1.55;white-space:pre-wrap}.teacher-note-history-item .badge{flex:0 0 auto}
@media(max-width:760px){.teacher-note-head,.teacher-note-history-title{flex-direction:column}.teacher-note-visibility{grid-template-columns:1fr}.teacher-note-footer{align-items:stretch;flex-direction:column}.teacher-note-footer .btn{width:100%}.teacher-note-history-head{align-items:flex-start;flex-direction:column;gap:6px}.teacher-note-history-head>div{flex-wrap:wrap}.teacher-note-history-item .badge{align-self:flex-start}}

/* v1.7.6 — explicit policy for repeating previously seen questions */
.repeat-policy-block{margin-top:16px;padding-top:15px;border-top:1px solid #edf0f4}.repeat-policy-head{display:flex;flex-direction:column;gap:3px;margin-bottom:10px}.repeat-policy-head b{font-size:12px;color:#344054}.repeat-policy-head span{font-size:10px;color:#8a94a4;line-height:1.45}.repeat-policy-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.repeat-policy-choice{display:flex;align-items:flex-start;gap:9px;min-width:0;padding:12px 13px;border:1px solid #e1e6ee;border-radius:12px;background:#fbfcfe;cursor:pointer;transition:.14s}.repeat-policy-choice:hover{background:#fff;border-color:#cbd4e7}.repeat-policy-choice:has(input:checked){border-color:#aebded;background:#f2f5ff;box-shadow:inset 0 0 0 1px rgba(49,87,213,.05)}.repeat-policy-choice:has(input:disabled){cursor:not-allowed;opacity:.68}.repeat-policy-choice input{margin-top:2px;accent-color:#3157d5;flex:0 0 auto}.repeat-policy-choice span{min-width:0}.repeat-policy-choice b{display:block;font-size:11px;line-height:1.35;color:#344054}.repeat-policy-choice small{display:block;margin-top:4px;color:#8a94a4;font-size:9.5px;line-height:1.45}@media(max-width:840px){.repeat-policy-grid{grid-template-columns:1fr}}

/* v1.7.7 — repeat-run and destructive assessment controls */

/* v1.7.8 — student retake states and mobile dashboard actions */
.student-retake-state{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #e4e8ef;border-radius:11px;background:#f8fafc}.student-retake-state b{font-size:11px;color:#344054}.student-retake-state span{font-size:10px;color:#7b8494;text-align:right;line-height:1.4}.student-retake-state.success{background:#effaf5;border-color:#bfe7d5}.student-retake-state.success b{color:#087a55}.student-retake-state.info{background:#f2f5ff;border-color:#cbd5f5}.student-retake-state.info b{color:#294bbb}.student-retake-state.warning{background:#fff8e8;border-color:#f1d89d}.student-retake-state.warning b{color:#8a5706}.student-retake-state.neutral{background:#f7f8fa;border-color:#e5e7eb}.result-retake-state{margin-bottom:18px;max-width:760px}.student-status-stack{display:grid;gap:8px;margin:-6px 0 18px}.student-status-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 14px;border:1px solid #e2e7ef;border-radius:12px;background:#fff;color:inherit;box-shadow:0 6px 18px rgba(25,38,70,.04)}.student-status-item b{font-size:11px}.student-status-item span{font-size:10px;color:#667085;text-align:right;line-height:1.4}.student-status-item.success{border-left:3px solid #0e9f6e}.student-status-item.warning{border-left:3px solid #d97706}.student-hero-actions .btn{min-width:0}
@media(max-width:680px){.student-hero{padding:24px 18px}.student-hero p{font-size:13px;line-height:1.55}.hero-actions.student-hero-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;width:100%;margin-top:18px}.hero-actions.student-hero-actions .btn{width:100%;min-height:46px;padding:10px 9px;display:flex;align-items:center;justify-content:center;text-align:center;white-space:normal;line-height:1.22;font-size:12px}.hero-actions.student-hero-actions .btn:last-child{grid-column:1/-1}.student-retake-state{flex-direction:column;gap:4px}.student-retake-state span{text-align:left}.student-status-item{align-items:flex-start;flex-direction:column;gap:4px;padding:11px 12px}.student-status-item span{text-align:left}.result-retake-state{max-width:none}.assessment-card .student-retake-state{margin-top:2px}}
@media(max-width:380px){.hero-actions.student-hero-actions{grid-template-columns:1fr}.hero-actions.student-hero-actions .btn:last-child{grid-column:auto}}

/* v1.7.9 — compact student mobile quick-actions menu */
.student-mobile-actions{display:none}
.student-mobile-actions summary{list-style:none}.student-mobile-actions summary::-webkit-details-marker{display:none}
@media(max-width:680px){
  .student-hero{position:relative;padding-top:25px}
  .hero-actions.student-hero-actions{display:none}
  .student-mobile-actions{display:block;position:absolute;right:16px;top:16px;z-index:6}
  .student-hero:has(.student-mobile-actions[open]){z-index:20;overflow:visible}
  .student-mobile-actions summary{width:46px;height:46px;border:1px solid rgba(255,255,255,.28);border-radius:13px;background:rgba(255,255,255,.13);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;backdrop-filter:blur(8px);-webkit-tap-highlight-color:transparent}
  .student-mobile-actions summary:focus-visible{outline:3px solid rgba(255,255,255,.38);outline-offset:2px}
  .student-mobile-actions summary span{display:block;width:20px;height:2px;border-radius:999px;background:#fff;transition:.15s}
  .student-mobile-actions[open] summary span:nth-child(1){transform:translateY(6px) rotate(45deg)}
  .student-mobile-actions[open] summary span:nth-child(2){opacity:0}
  .student-mobile-actions[open] summary span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  .student-mobile-actions-menu{position:absolute;right:0;top:54px;width:min(286px,calc(100vw - 52px));max-height:calc(100vh - 112px);overflow:auto;padding:7px;border:1px solid #e1e6ee;border-radius:14px;background:#fff;box-shadow:0 18px 42px rgba(13,28,72,.22);color:#172033;z-index:20}
  .student-mobile-actions-menu a{display:flex;flex-direction:column;gap:3px;padding:11px 12px;border-radius:10px;color:#253047}
  .student-mobile-actions-menu a+a{border-top:1px solid #f0f2f5}
  .student-mobile-actions-menu a:active{background:#f3f6ff}
  .student-mobile-actions-menu b{font-size:12px;line-height:1.3}
  .student-mobile-actions-menu small{font-size:9.5px;line-height:1.35;color:#8a94a4}
  .student-hero .kicker{padding-right:54px}
}

/* Keep the extra-attempt action usable when a card has both actions. */
.assessment-card .assessment-action{gap:8px;flex-wrap:wrap}

/* v1.8.1 — clear student row actions, without desktop overflow */
#students-table{min-width:0;table-layout:fixed}#students-table th:nth-child(1){width:48px}#students-table th:nth-child(2){width:37%}#students-table th:nth-child(3){width:17%}#students-table th:nth-child(4){width:13%}#students-table th:nth-child(5){width:338px}#students-table .student-cell{width:100%;min-width:0}#students-table .student-cell>span:last-child{overflow:hidden}#students-table .table-primary,#students-table .table-secondary{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#students-table .row-actions{min-width:0;align-items:center}.student-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;white-space:nowrap}.student-row-action{display:inline-flex;min-height:30px;align-items:center;justify-content:center;padding:0 8px;border:1px solid #d5def4;border-radius:9px;background:#f8faff;color:#405379;font:inherit;font-size:10px;font-weight:800;line-height:1;cursor:pointer;text-decoration:none;transition:background .16s ease,border-color .16s ease,color .16s ease}.student-row-action:hover{border-color:#aebfeb;background:#edf2ff;color:#3048bb}.student-row-action.danger{border-color:#f2d7dc;background:#fffafb;color:#bf3b4f}.student-row-action.danger:hover{border-color:#eab9c3;background:#fff0f2;color:#a92d41}@media(max-width:900px){#students-table th:nth-child(2){width:34%}#students-table th:nth-child(3){width:16%}#students-table th:nth-child(4){width:13%}#students-table th:nth-child(5){width:324px}}@media(max-width:680px){#students-table{min-width:760px;table-layout:auto}#students-table .student-cell{min-width:210px}.student-row-actions{gap:4px}.student-row-action{padding:0 7px}}

/* v1.8.0 — Aurora visual language */
:root{--bg:#f5f7ff;--card:rgba(255,255,255,.9);--text:#15213b;--muted:#68738a;--line:rgba(158,174,205,.26);--primary:#4058d7;--primary2:#2637a3;--green:#15956d;--red:#d94a5f;--amber:#d58b19;--shadow:0 16px 42px rgba(36,54,103,.09);--shadow-hover:0 22px 54px rgba(36,54,103,.15);--radius:22px}
html{scroll-behavior:smooth}body{min-height:100vh;overflow-x:hidden;background:radial-gradient(circle at -8% 15%,rgba(105,132,255,.19),transparent 29rem),radial-gradient(circle at 102% 4%,rgba(82,214,211,.15),transparent 27rem),linear-gradient(145deg,#f9fbff 0%,#f4f6ff 48%,#f8fbff 100%);color:var(--text);letter-spacing:.002em}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background-image:linear-gradient(rgba(70,92,178,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(70,92,178,.025) 1px,transparent 1px);background-size:32px 32px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.65),transparent 65%)}.topbar,.shell,footer{position:relative;z-index:1}
.topbar{height:78px;padding:0;background:rgba(250,252,255,.72);border-bottom:1px solid rgba(189,201,230,.56);box-shadow:0 7px 27px rgba(48,66,119,.045);backdrop-filter:blur(19px) saturate(150%)}.topbar-inner{max-width:1380px;gap:30px}.brand{min-width:214px;gap:11px;color:#182546}.brand-mark{position:relative;width:39px;height:39px;border:1px solid rgba(255,255,255,.5);border-radius:14px;background:linear-gradient(140deg,#6d8cff 0%,#4058d7 50%,#24358f 100%);box-shadow:0 10px 22px rgba(49,72,190,.28),inset 0 1px 0 rgba(255,255,255,.28);font-size:17px;font-weight:900;letter-spacing:-.08em;color:#fff;overflow:hidden}.brand-mark:after{content:"";position:absolute;width:34px;height:34px;left:-15px;bottom:-21px;border-radius:50%;background:rgba(255,255,255,.25)}.brand b{font-size:17px;letter-spacing:-.035em;line-height:1}.topbar nav{gap:4px}.topbar nav a{position:relative;padding:10px 12px;border-radius:11px;color:#59657d;font-size:13px;font-weight:700;transition:color .2s ease,background .2s ease,transform .2s ease}.topbar nav a:after{content:"";position:absolute;right:12px;bottom:5px;left:12px;height:2px;border-radius:99px;background:linear-gradient(90deg,#5b7af7,#52c5cb);transform:scaleX(0);transform-origin:center;transition:transform .2s ease}.topbar nav a:hover{background:rgba(236,240,255,.8);color:#334bc2;transform:translateY(-1px)}.topbar nav a.active{color:#2d46bc;background:rgba(229,235,255,.8)}.topbar nav a.active:after{transform:scaleX(1)}.nav-utility{padding:8px 10px!important;border-radius:10px;font-size:12px;font-weight:700}.user-profile{border:1px solid transparent;padding:4px 6px}.user-profile:hover{border-color:rgba(174,188,224,.55);background:rgba(255,255,255,.75);box-shadow:0 5px 16px rgba(34,50,94,.06)}.user-avatar{border-radius:12px;background:linear-gradient(145deg,#eef1ff,#dce7ff);border-color:#d5ddfc;color:#324dc5}.icon-btn{border:1px solid transparent}.icon-btn:hover{border-color:#e0e5f1;background:#fff;box-shadow:0 4px 12px rgba(28,42,81,.07)}.mobile-nav-toggle{border:1px solid rgba(180,193,224,.55);background:rgba(255,255,255,.7);box-shadow:0 5px 14px rgba(34,50,94,.06)}.mobile-nav-toggle span{background:#42516e;transition:transform .2s ease,opacity .2s ease}
.shell{max-width:1380px;padding:36px 24px 70px}.page-head{margin:4px 0 28px}.page-head h1{font-size:clamp(29px,3vw,38px);letter-spacing:-.047em;color:#142040}.page-head p{font-size:14px;line-height:1.65;color:#6c7890}.section-title{margin:31px 0 15px}.section-title h2{font-size:22px;letter-spacing:-.035em;color:#172546}.grid{gap:20px}.card{position:relative;border:1px solid rgba(210,219,239,.78);border-radius:var(--radius);background:linear-gradient(150deg,rgba(255,255,255,.96),rgba(248,250,255,.86));box-shadow:var(--shadow);padding:22px;backdrop-filter:blur(10px)}.card-soft{background:linear-gradient(145deg,rgba(250,252,255,.98),rgba(244,247,255,.86))}.card h2,.card h3{color:#1b2948;letter-spacing:-.02em}.card-hover{transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}.metric{position:relative;overflow:hidden;border:1px solid rgba(209,219,240,.78);border-radius:20px;background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(246,249,255,.89));box-shadow:0 12px 32px rgba(36,54,103,.075);padding:20px}.metric:after{content:"";position:absolute;width:118px;height:118px;border-radius:50%;right:-50px;top:-59px;background:radial-gradient(circle,rgba(108,137,255,.17),rgba(108,137,255,0) 68%)}.metric span,.metric strong,.metric small{position:relative;z-index:1}.metric span{font-size:10px;letter-spacing:.1em;color:#75829b}.metric strong{font-size:34px;color:#16254a}.metric.good{border-left:0;box-shadow:inset 3px 0 0 var(--green),0 12px 32px rgba(36,54,103,.075)}.metric.warn{border-left:0;box-shadow:inset 3px 0 0 var(--amber),0 12px 32px rgba(36,54,103,.075)}.metric.bad{border-left:0;box-shadow:inset 3px 0 0 var(--red),0 12px 32px rgba(36,54,103,.075)}
.btn{position:relative;isolation:isolate;border:1px solid transparent;border-radius:13px;background:linear-gradient(135deg,#4a65eb,#3448bd);box-shadow:0 10px 21px rgba(53,75,192,.22);font-size:13px;line-height:1.25;transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}.btn:before{content:"";position:absolute;z-index:-1;inset:1px;border-radius:11px;background:linear-gradient(120deg,rgba(255,255,255,.19),transparent 42%);opacity:.9}.btn:hover{background:linear-gradient(135deg,#586ff2,#3144b4);filter:saturate(1.07)}.btn:active{transform:translateY(1px);box-shadow:0 5px 13px rgba(53,75,192,.18)}.btn-secondary{background:linear-gradient(135deg,#27375d,#16213d);box-shadow:0 10px 20px rgba(21,33,61,.2)}.btn-ghost{border-color:rgba(194,205,235,.85);background:rgba(255,255,255,.72);color:#40516f;box-shadow:0 5px 15px rgba(40,57,103,.06)}.btn-ghost:hover{border-color:#aebdec;background:rgba(255,255,255,.96);color:#3148bc}.btn-danger{background:linear-gradient(135deg,#e5606e,#ba3248);box-shadow:0 9px 18px rgba(190,50,72,.18)}.card-link{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border-radius:10px;background:#eff3ff;color:#354cc2;font-size:12px;font-weight:800;transition:background .2s ease,transform .2s ease}.card-link:after{content:"→"}.card-link:hover{background:#e3eaff;transform:translateX(2px)}
.hero{position:relative;isolation:isolate;overflow:hidden;border:1px solid rgba(163,187,255,.35);border-radius:28px;background:radial-gradient(circle at 83% 8%,rgba(117,219,231,.66),transparent 23%),radial-gradient(circle at 18% 102%,rgba(122,143,255,.42),transparent 43%),linear-gradient(128deg,#111d58 0%,#293cb2 48%,#4f69dc 100%);box-shadow:0 24px 52px rgba(43,67,172,.25);padding:36px}.hero:before,.hero:after{content:"";position:absolute;z-index:-1;border-radius:50%;border:1px solid rgba(255,255,255,.12)}.hero:before{width:330px;height:330px;right:-94px;bottom:-225px;background:radial-gradient(circle,rgba(255,255,255,.18),rgba(255,255,255,.01) 62%)}.hero:after{width:210px;height:210px;right:20%;top:-150px}.hero h1{font-size:clamp(31px,4vw,43px);letter-spacing:-.055em;line-height:1.06}.hero p{max-width:690px;font-size:14px;line-height:1.65;color:rgba(239,244,255,.86)}.hero .kicker{color:#b9d1ff}.hero .btn-ghost{border-color:rgba(255,255,255,.24);background:rgba(255,255,255,.12);color:#fff;box-shadow:none;backdrop-filter:blur(8px)}.hero .btn-ghost:hover{border-color:rgba(255,255,255,.48);background:rgba(255,255,255,.2);color:#fff}.student-hero:has(.student-mobile-actions[open]){overflow:visible}.assessment-card{gap:14px;min-height:100%;background:linear-gradient(150deg,rgba(255,255,255,.98),rgba(245,248,255,.9))}.assessment-card h3{font-size:18px;line-height:1.35}.assessment-discipline{color:#64718b;font-size:12px;font-weight:700}.assessment-time{border-top:1px solid rgba(222,227,240,.84);padding-top:13px}.assessment-time-box{border-radius:12px;background:rgba(241,245,255,.67);padding:9px 10px}.assessment-time-box span{color:#8390a7}.assessment-action{margin-top:auto}.badge,.role-pill{border:1px solid rgba(0,0,0,.025);padding:5px 9px;box-shadow:inset 0 1px 0 rgba(255,255,255,.46)}.badge.info{background:#e7edff;color:#2e49bc}.badge.success{background:#e5f7ee;color:#0a815a}.badge.warning{background:#fff5db;color:#9b670a}.badge.danger{background:#ffebed;color:#b63a50}
.field input,.field select,.field textarea{border-color:#dce3f0;border-radius:12px;background:rgba(255,255,255,.85);padding:11px 12px;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.field input:hover,.field select:hover,.field textarea:hover{border-color:#c6d1e9}.field input:focus,.field select:focus,.field textarea:focus{border-color:#8295e8;background:#fff;box-shadow:0 0 0 4px rgba(73,99,223,.12)}.table-wrap{border-color:rgba(210,219,239,.78);border-radius:18px;background:rgba(255,255,255,.72);box-shadow:0 8px 25px rgba(36,54,103,.045)}th{background:rgba(244,247,255,.94);color:#6e7b94}tr{transition:background .16s ease}tbody tr:hover{background:rgba(238,243,255,.55)}.flash{display:flex;align-items:center;gap:9px;border:1px solid transparent;border-radius:15px;box-shadow:0 7px 18px rgba(33,51,99,.07)}.flash-dot{width:8px;height:8px;flex:0 0 auto;border-radius:50%;background:currentColor;box-shadow:0 0 0 4px currentColor;opacity:.72}.notice{border-radius:15px;background:linear-gradient(135deg,#eef2ff,#f7f9ff);border-color:#d4ddfb}.empty{border-radius:18px;background:rgba(255,255,255,.45);border-color:#cfd9ed}.progress{height:9px;background:#e9edf8}.progress span,.bar-track span{background:linear-gradient(90deg,#4b67e9,#58c6ce)}.bar-track{background:#e9edf7}.report-question{border-color:#dfe6f2;border-radius:16px;background:rgba(250,252,255,.8)}footer{max-width:1380px;padding:20px 24px 38px;color:#7d89a0}
/* v1.8.4 — mobile navigation is always opaque and on the top layer */
.topbar{z-index:1000!important;isolation:isolate}@media(max-width:980px){.topbar #main-nav{z-index:1001!important;background:#fff!important;opacity:1;backdrop-filter:none}}

/* v1.8.2 — one access period and aligned student card actions */
.assessment-card .assessment-time{grid-template-columns:minmax(0,1.65fr) minmax(120px,.8fr);margin-top:auto}.assessment-card .assessment-period b{white-space:nowrap;font-variant-numeric:tabular-nums}.assessment-card .assessment-action{display:flex;justify-content:flex-end;align-items:center;min-height:52px;margin-top:14px}.assessment-card .assessment-action:empty{display:none}.assessment-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;width:100%}.assessment-actions .btn{margin:0}.assessment-actions .btn:only-child{margin-left:auto}@media(max-width:680px){.assessment-card .assessment-time{grid-template-columns:1fr}.assessment-card .assessment-period b{white-space:normal}.assessment-card .assessment-action{align-items:stretch}.assessment-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.assessment-actions .btn{display:flex;width:100%;min-height:42px;align-items:center;justify-content:center;text-align:center}.assessment-actions .btn:only-child,.assessment-actions .btn:last-child:nth-child(odd){grid-column:1/-1;margin-left:0}}

/* v1.8.3 — keep the mobile navigation above page content */
.topbar{z-index:100}@media(max-width:980px){.topbar nav{z-index:101;background:rgba(253,254,255,.98)}}

@media(hover:hover){.card-hover:hover{border-color:#c2cef0;box-shadow:var(--shadow-hover);transform:translateY(-4px)}.metric:hover{box-shadow:0 18px 40px rgba(36,54,103,.13);transform:translateY(-2px)}.btn:hover{transform:translateY(-2px);box-shadow:0 14px 26px rgba(53,75,192,.28)}.btn-secondary:hover{box-shadow:0 14px 26px rgba(21,33,61,.27)}.btn-danger:hover{box-shadow:0 14px 24px rgba(190,50,72,.24)}}
@keyframes aurora-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes aurora-pulse{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-4px,0)}}@media(prefers-reduced-motion:no-preference){.shell>*{animation:aurora-rise .42s cubic-bezier(.2,.78,.28,1) both}.shell>*:nth-child(2){animation-delay:.045s}.shell>*:nth-child(3){animation-delay:.09s}.shell>*:nth-child(4){animation-delay:.135s}.brand-mark{animation:aurora-pulse 5s ease-in-out infinite}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media(max-width:980px){.topbar{height:70px}.topbar-inner{padding:0 16px}.topbar nav{top:60px;border-color:#d5dff2;border-radius:17px;background:rgba(255,255,255,.92);box-shadow:0 20px 48px rgba(25,43,99,.18);backdrop-filter:blur(18px)}.topbar nav a{padding:12px 13px}.topbar nav a:after{right:auto;bottom:8px;left:13px;width:28px}.brand{min-width:auto}.shell{padding-top:28px}}@media(max-width:680px){body:before{background-size:26px 26px}.topbar{height:66px}.topbar-inner{gap:12px;padding:0 12px}.brand-mark{width:36px;height:36px;border-radius:12px}.brand b{font-size:15px}.shell{padding:22px 13px 50px}.page-head{margin-bottom:22px}.page-head h1{font-size:28px}.card{border-radius:18px;padding:17px}.metric{border-radius:17px;padding:17px}.metric strong{font-size:30px}.hero{border-radius:23px;padding:25px 19px}.hero h1{font-size:31px}.section-title{margin-top:27px}.assessment-card h3{font-size:16px}.student-mobile-actions-menu{border-radius:16px;background:rgba(255,255,255,.96);box-shadow:0 22px 52px rgba(17,34,84,.25);backdrop-filter:blur(18px)}.student-mobile-actions-menu a{padding:12px}.table-wrap{border-radius:14px}.btn{border-radius:12px}footer{padding:18px 14px 30px}}

/* v1.8.5 — structured student registration */
.registration-name-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.registration-name-grid .field:last-child{grid-column:1/-1}.registration-name-grid input{min-width:0}.registration-name-help{margin-top:-4px;line-height:1.45}@media(max-width:480px){.registration-name-grid{grid-template-columns:1fr}.registration-name-grid .field:last-child{grid-column:auto}}

/* v1.9.0 — student disciplines and automatic study materials */
.student-discipline-card{display:flex;flex-direction:column;gap:13px;min-height:280px}.student-discipline-card h3{margin:0;font-size:20px;line-height:1.3}.student-discipline-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.student-discipline-count{font-size:10px;color:#68738a;font-weight:800;white-space:nowrap}.student-discipline-program{margin:0;color:#71809a;font-size:12px;line-height:1.45;min-height:35px}.student-discipline-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:auto;padding-top:15px;border-top:1px solid rgba(221,228,243,.8)}.student-discipline-stats div{display:flex;flex-direction:column;gap:3px}.student-discipline-stats b{font-size:20px;color:#1b2b55}.student-discipline-stats span{font-size:10px;color:#8390a7}.student-discipline-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:2px}.student-discipline-footer>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#78869e;font-size:10px}.student-material-notice{margin-bottom:22px}.student-material-list-wrap{display:flex;flex-direction:column;gap:10px}.student-material-topic{border:1px solid rgba(210,220,240,.86);border-radius:17px;background:rgba(255,255,255,.76);box-shadow:0 8px 24px rgba(36,54,103,.055);overflow:hidden}.student-material-topic summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;cursor:pointer;list-style:none}.student-material-topic summary::-webkit-details-marker{display:none}.student-material-topic summary>span{display:flex;flex-direction:column;gap:5px;min-width:0}.student-material-topic summary b{font-size:14px;color:#203158}.student-material-topic summary small{font-size:10px;color:#8793a8}.student-material-topic summary strong{flex:0 0 auto;color:#4058d7;font-size:11px}.student-material-topic[open] summary{background:linear-gradient(135deg,#f2f5ff,#fbfcff);border-bottom:1px solid rgba(210,220,240,.86)}.student-material-topic[open] summary strong:after{content:'  ↑'}.student-material-content{padding:16px 20px 18px}.student-material-list{display:grid;gap:9px;margin:0;padding-left:22px;color:#43516b;font-size:12px;line-height:1.55}.student-material-list li{padding-left:4px}.student-discipline-assessments{padding:10px 18px}.student-discipline-assessment{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid rgba(225,230,240,.86)}.student-discipline-assessment:last-child{border-bottom:0}.student-discipline-assessment>div{min-width:0}.student-discipline-assessment-title{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.student-discipline-assessment-title b{font-size:13px;color:#213158}.student-discipline-assessment>div>span{display:block;margin-top:5px;color:#8793a8;font-size:10px}.student-discipline-assessment .card-link{white-space:nowrap}
@media(max-width:680px){.student-discipline-card{min-height:0}.student-discipline-footer{align-items:flex-start;flex-direction:column}.student-discipline-footer .card-link{width:100%;justify-content:center}.student-material-topic summary{align-items:flex-start;padding:14px}.student-material-topic summary strong{padding-top:2px}.student-material-content{padding:14px 15px 16px}.student-discipline-assessments{padding:8px 14px}.student-discipline-assessment{align-items:flex-start;flex-direction:column;gap:10px}.student-discipline-assessment .card-link{width:100%;justify-content:center}}

/* v1.8.6 — align guest login action */
.topbar-inner>.btn.btn-ghost{margin-left:auto}

/* v1.9.2 — polished student topic materials */
.student-materials-section .section-title{margin-top:30px}.student-materials-section .section-title h2{font-size:clamp(1.8rem,3vw,2.2rem)}.student-material-list-wrap{gap:14px}.student-material-topic{border-color:#dce4f4;border-radius:20px;background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(248,250,255,.9));box-shadow:0 12px 32px rgba(36,54,103,.07);transition:border-color .18s,box-shadow .18s,transform .18s}.student-material-topic:hover{border-color:#b8c8f2;box-shadow:0 16px 38px rgba(36,54,103,.11);transform:translateY(-2px)}.student-material-topic summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:22px;padding:18px 20px}.student-material-topic summary>span{gap:7px}.student-material-topic summary b{font-size:15px;line-height:1.35;color:#172951}.student-material-topic summary small{font-size:11px;line-height:1.45}.student-material-topic summary strong{min-width:104px;padding:8px 12px;border:1px solid #cbd7f6;border-radius:999px;background:#fff;color:#3157d5;text-align:center;font-size:11px;font-weight:800;letter-spacing:.01em;box-shadow:0 4px 12px rgba(49,87,213,.08)}.student-material-topic summary strong:after{content:'  ↓';font-size:13px}.student-material-topic[open]{border-color:#aebff2;box-shadow:0 16px 38px rgba(36,54,103,.1)}.student-material-topic[open] summary{background:linear-gradient(135deg,#eef3ff,#fbfcff)}.student-material-topic[open] summary strong{background:#3157d5;border-color:#3157d5;color:#fff}.student-material-topic[open] summary strong:after{content:'  ↑'}.student-material-content{padding:18px 22px 21px;background:rgba(255,255,255,.72)}.student-material-list{gap:10px;padding-left:23px;color:#42516d;font-size:12px;line-height:1.6}.student-material-list li{padding-left:5px}.student-material-list li::marker{color:#5271df;font-size:11px}
@media(max-width:680px){.student-materials-section .section-title{align-items:flex-start;flex-direction:column;gap:4px}.student-materials-section .section-title h2{font-size:1.8rem}.student-material-topic summary{grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:15px}.student-material-topic summary b{font-size:13px}.student-material-topic summary small{font-size:10px}.student-material-topic summary strong{min-width:88px;padding:7px 8px}.student-material-content{padding:16px 17px 18px}}
