:root{--bg:#eef3f8;--panel:#fff;--ink:#17243a;--muted:#52627a;--line:#ced9e6;--lavender:#7557db;--lavender-dark:#593dbd;--lavender-soft:#eeeaff;--mint:#31c493;--mint-dark:#0f6f56;--mint-soft:#e6f8f1;--peach:#ef935a;--peach-soft:#fff0e7;--rose:#de5c75;--rose-soft:#fdecef;--sky:#458ed0;--sky-soft:#e9f4ff;--surface-subtle:#f7f9fc;--shadow:0 10px 28px #1c2d4614;--shadow-soft:0 3px 12px #1c2d4612}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);min-height:100%;margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.45}button,input,textarea,select{font:inherit}a{color:inherit;text-decoration:none}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.58}.skip-link{background:var(--ink);color:#fff;z-index:300;border-radius:0 0 8px;padding:10px 14px;font-weight:800;transition:transform .14s;position:fixed;top:0;left:0;transform:translateY(-120%)}.skip-link:focus{transform:translateY(0)}.app-shell{grid-template-columns:280px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line);background:#fff;flex-direction:column;height:100vh;padding:24px;display:flex;position:sticky;top:0;box-shadow:6px 0 24px #1c2d460d}.sidebar-logout{border:1px solid var(--line);color:var(--text-soft);cursor:pointer;font:inherit;background:0 0;border-radius:6px;align-items:center;gap:10px;margin:auto 0 0;padding:11px 12px;font-weight:700;display:flex}.sidebar-logout:hover{color:#be123c;background:#fff1f2;border-color:#fecdd3}.auth-loading{background:var(--page);color:var(--text-soft);justify-content:center;align-items:center;gap:12px;min-height:100vh;display:flex}.teacher-account-header{margin-bottom:18px}.teacher-account-details dt{align-items:center;gap:8px;display:flex}.account-security-note{align-items:flex-start;gap:14px;margin-top:18px;display:flex}.account-security-note h2,.account-security-note p{margin:0}.account-security-note p{color:var(--text-soft);margin-top:5px}.sidebar-area{margin-top:10px}.sidebar-identity{background:var(--surface-subtle);border:1px solid var(--line);border-radius:8px;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:10px;margin-top:18px;padding:10px;display:grid}.sidebar-identity>span{background:var(--lavender-soft);color:var(--lavender-dark);border:1px solid #c9bbf7;border-radius:7px;justify-content:center;align-items:center;width:40px;height:40px;font-size:13px;font-weight:850;display:flex}.sidebar-identity>div{gap:2px;min-width:0;display:grid}.sidebar-identity strong,.sidebar-identity small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sidebar-identity strong{font-size:13px}.sidebar-identity small{color:var(--muted);font-size:11px}.brand{align-items:center;gap:12px;font-size:20px;font-weight:800;display:flex}.brand-mark{background:linear-gradient(135deg, var(--lavender) 0%, var(--sky) 54%, var(--mint) 100%);color:#fff;border-radius:8px;place-items:center;width:42px;height:42px;display:grid;box-shadow:0 7px 16px #593dbd38}.nav{gap:8px;margin-top:34px;display:grid}.nav a{color:var(--muted);border-radius:8px;align-items:center;gap:10px;padding:12px 14px;transition:background .15s,box-shadow .15s,color .15s,transform .15s;display:flex;position:relative}.nav a:hover{color:var(--ink);background:var(--surface-subtle)}.nav a.active{background:var(--lavender-soft);box-shadow:inset 4px 0 0 var(--lavender);color:var(--lavender-dark);font-weight:800;transform:translate(2px)}.main{min-width:0;padding:clamp(18px,2.2vw,30px)}.route-transition{animation:.22s cubic-bezier(.22,1,.36,1) both route-content-enter}@keyframes route-content-enter{0%{filter:blur(2px);opacity:.35;transform:translateY(6px)}to{filter:blur();opacity:1;transform:translateY(0)}}.topbar,.panel,.card,.question-card{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow-soft);border-radius:8px}.topbar{border-top:4px solid var(--sky);justify-content:space-between;align-items:center;max-width:1540px;min-height:78px;margin:0 auto 18px;padding:18px 22px;display:flex}.module-content{gap:18px;max-width:1540px;margin:0 auto;display:grid}.module-description,.topbar-description{color:var(--muted);font-size:14px;font-weight:600}.topbar-description{max-width:760px;margin:7px 0 0}.eyebrow{color:var(--muted);margin:0 0 4px;font-size:13px;font-weight:600}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;font-size:28px;line-height:1.15}h2{font-size:20px}.grid{gap:16px;display:grid}.teacher-dashboard{width:100%;max-width:1540px;margin-inline:auto}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.student-name-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.stats{grid-template-columns:repeat(4,minmax(0,1fr))}.two-col{grid-template-columns:minmax(0,1.4fr) minmax(320px,.8fr)}.card,.panel{padding:18px}.stat-value{margin-bottom:4px;font-size:30px;font-weight:800}.stat-label{color:var(--muted);font-size:14px}.btn{color:#fff;background:var(--lavender);cursor:pointer;border:0;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:11px 14px;font-weight:700;transition:background .15s,box-shadow .15s,transform .15s;display:inline-flex;box-shadow:0 5px 12px #593dbd2e}.btn:hover:not(:disabled){background:var(--lavender-dark);transform:translateY(-1px);box-shadow:0 8px 16px #593dbd3d}.btn:focus-visible,.icon-btn:focus-visible,.nav a:focus-visible,button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #7557db47}.btn.secondary{background:var(--mint);color:#0b493b;box-shadow:0 5px 12px #0f6f5629}.btn.secondary:hover:not(:disabled){background:#25ae80;box-shadow:0 8px 16px #0f6f5638}.btn.soft{color:#245f91;background:var(--sky-soft);box-shadow:none}.btn.soft:hover:not(:disabled){color:#194c77;background:#d7ebff}.list{gap:10px;display:grid}.list-row{border:1px solid var(--line);background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:14px;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.list-row:hover{border-color:#9fbad3;transform:translateY(-1px);box-shadow:0 5px 14px #1c2d4614}.selected-row{border-color:var(--lavender);background:var(--lavender-soft);box-shadow:inset 4px 0 0 var(--lavender)}.row-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.icon-btn{border:1px solid var(--line);width:36px;height:36px;color:var(--ink);cursor:pointer;background:#fff;border-radius:8px;place-items:center;transition:background .15s,border-color .15s,color .15s,transform .15s;display:inline-grid}.icon-btn:hover{background:var(--sky-soft);color:#245f91;border-color:#9fc7e9;transform:translateY(-1px)}.icon-btn.success{color:#047857;background:#ecfdf5;border-color:#a7f3d0}.icon-btn.danger{color:#be123c;background:#fff1f2;border-color:#fecdd3}.compact-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:18px;display:grid}.stat-card{border:1px solid var(--line);box-shadow:var(--shadow);color:var(--muted);background:#fff;border-radius:8px;gap:7px;min-height:116px;padding:18px;display:grid}.stats-grid .stat-card:nth-child(4n+1),.stats>.card:nth-child(4n+1){border-top:4px solid var(--lavender)}.stats-grid .stat-card:nth-child(4n+2),.stats>.card:nth-child(4n+2){border-top:4px solid var(--mint)}.stats-grid .stat-card:nth-child(4n+3),.stats>.card:nth-child(4n+3){border-top:4px solid var(--sky)}.stats-grid .stat-card:nth-child(4n+4),.stats>.card:nth-child(4n+4){border-top:4px solid var(--peach)}.stat-card strong{color:var(--ink);font-size:30px}.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.quick-action{background:var(--surface-subtle);border:1px solid var(--line);color:var(--ink);border-radius:8px;align-items:center;gap:8px;min-height:54px;padding:10px;font-size:14px;font-weight:800;text-decoration:none;transition:background .15s,border-color .15s,color .15s,transform .15s;display:flex}.quick-action svg{flex:none}.workspace-section{margin-top:18px}.quick-action:hover{background:var(--sky-soft);color:#245f91;border-color:#a7cbea;transform:translateY(-1px)}.builder-layout{grid-template-columns:220px minmax(0,1fr) 220px;align-items:start;gap:16px;display:grid}.builder-side{position:sticky;top:18px}.builder-main{min-width:0}.test-library-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.test-library-stats article{border:1px solid var(--line);box-shadow:var(--shadow-soft);background:#fff;border-radius:8px;grid-template-columns:40px 1fr;align-items:center;min-height:86px;padding:15px;display:grid}.test-library-stats article>svg{background:var(--lavender-soft);color:var(--lavender-dark);border-radius:8px;grid-row:1/3;width:34px;height:34px;padding:7px}.test-library-stats article:nth-child(2)>svg{background:var(--peach-soft);color:#a94d19}.test-library-stats article:nth-child(3)>svg{background:var(--mint-soft);color:var(--mint-dark)}.test-library-stats article:nth-child(4)>svg{background:var(--sky-soft);color:#245f91}.test-library-stats strong{color:var(--ink);font-size:24px;line-height:1}.test-library-stats span{color:var(--muted);font-size:12px;font-weight:700}.test-library-toolbar{border:1px solid var(--line);box-shadow:var(--shadow-soft);background:#fff;border-radius:8px;grid-template-columns:minmax(240px,1fr) auto auto;align-items:center;gap:12px;padding:12px;display:grid}.test-search-field{background:var(--surface-subtle);color:var(--muted);border:1px solid #bdcada;border-radius:8px;align-items:center;gap:9px;min-height:44px;padding:0 12px;display:flex}.test-search-field:focus-within{border-color:var(--lavender);box-shadow:0 0 0 3px #7557db2b}.test-search-field input{color:var(--ink);background:0 0;border:0;outline:0;width:100%;min-width:0}.segmented-control{background:#e7edf4;border-radius:8px;align-items:center;gap:3px;padding:4px;display:inline-flex}.segmented-control button{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;min-height:34px;padding:7px 11px;font-weight:700;display:inline-flex}.segmented-control button.active{color:var(--lavender-dark);background:#fff;box-shadow:0 2px 8px #1c2d461f}.library-status-line{color:var(--muted);justify-content:space-between;gap:16px;font-size:13px;font-weight:700;display:flex}.test-library-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;display:grid}.test-library-card{border:1px solid var(--line);box-shadow:var(--shadow-soft);background:#fff;border-radius:8px;flex-direction:column;gap:16px;min-height:258px;padding:18px;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.test-library-card:hover{box-shadow:var(--shadow);border-color:#a6bbd1;transform:translateY(-2px)}.test-card-heading,.test-card-actions,.teacher-dialog-header,.builder-organizer-heading,.builder-preview-toolbar,.builder-review-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.test-status{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:5px;padding:5px 9px;font-size:12px;font-weight:800;display:inline-flex}.test-status.draft{background:var(--peach-soft);color:#914416;border-color:#f6c4a5}.test-status.published{background:var(--mint-soft);color:var(--mint-dark);border-color:#9adfc7}.test-status.archived{color:#5b6879;background:#edf1f5;border-color:#d3dce6}.test-card-date{color:var(--muted);font-size:12px;font-weight:600}.test-card-copy{min-height:68px}.test-card-copy h2{overflow-wrap:anywhere;margin-bottom:6px;font-size:18px;line-height:1.25}.test-card-copy p{color:var(--muted);margin-bottom:0;font-size:13px;line-height:1.45}.test-card-metadata{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.test-card-metadata span{color:var(--muted);align-items:center;gap:6px;font-size:12px;font-weight:700;display:flex}.test-card-actions{border-top:1px solid var(--line);margin-top:auto;padding-top:14px}.test-library-empty{color:var(--muted);text-align:center;background:#fff;border:1px dashed #aebfd1;border-radius:8px;flex-direction:column;grid-column:1/-1;align-items:center;min-height:280px;padding:36px;display:flex}.test-library-empty h2{color:var(--ink);margin:12px 0 6px}.teacher-dialog-backdrop{overscroll-behavior:contain;z-index:100;background:#17243a8c;justify-content:center;align-items:center;padding:20px;animation:.16s ease-out dialog-backdrop-in;display:flex;position:fixed;inset:0;overflow-y:auto}.teacher-dialog{border:1px solid var(--line);overscroll-behavior:contain;scrollbar-gutter:stable;background:#fff;border-radius:8px;width:min(640px,100%);max-height:calc(100dvh - 40px);padding:22px;animation:.21s cubic-bezier(.22,1,.36,1) dialog-panel-in;overflow:auto;box-shadow:0 24px 64px #17243a40}.teacher-dialog-header{border-bottom:1px solid var(--line);margin-bottom:18px;padding-bottom:14px}.teacher-dialog-header h2{margin-bottom:0}.teacher-dialog-actions{justify-content:flex-end;gap:10px;display:flex}.assignment-current-list{border-top:1px solid var(--line);gap:8px;margin-top:20px;padding-top:16px;display:grid}.assignment-current-list>div{background:var(--surface-subtle);border:1px solid var(--line);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:9px 10px;font-size:13px;font-weight:700;display:flex}.builder-flow-header{border:1px solid var(--line);box-shadow:var(--shadow-soft);z-index:20;background:#fffffff5;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;padding:10px;display:flex;position:sticky;top:10px}.builder-stepper{flex:auto;grid-template-columns:repeat(4,minmax(120px,1fr));gap:6px;display:grid}.builder-stepper button{color:var(--muted);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;grid-template-columns:30px 1fr auto;align-items:center;gap:8px;min-height:48px;padding:7px 9px;display:grid}.builder-stepper button>span{background:#e9eef4;border-radius:7px;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex}.builder-stepper button.active{background:var(--lavender-soft);color:var(--lavender-dark);border-color:#c9bcf4}.builder-stepper button.active>span{background:var(--lavender);color:#fff}.builder-stepper button.complete>span{background:var(--mint-soft);color:var(--mint-dark)}.builder-stepper button small{background:var(--peach-soft);color:#914416;border-radius:999px;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 6px;font-size:11px;font-weight:900;display:inline-flex}.builder-save-indicator{border-left:1px solid var(--line);color:var(--muted);flex:none;align-items:center;gap:8px;min-width:138px;padding:5px 8px 5px 14px;display:flex}.builder-save-indicator div{gap:2px;display:grid}.builder-save-indicator strong{color:var(--ink);font-size:12px}.builder-save-indicator span{font-size:11px}.builder-save-indicator.saved{color:var(--mint-dark)}.builder-save-indicator.error{color:#b4233c}.builder-step-0{grid-template-columns:minmax(0,900px);justify-content:center}.builder-step-0 .builder-section-sidebar,.builder-step-0 .builder-section-editor,.builder-step-0 .builder-organizer,.builder-step-1 .builder-test-info{display:none}.builder-section-editor,.builder-question-card{scroll-margin-top:94px}.section-tab-heading,.builder-question-label{align-items:flex-start;gap:6px;min-width:0;display:flex}.section-tab-select{min-width:0}.drag-handle{color:#8290a2;cursor:grab;background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:2px;display:inline-flex}.drag-handle:active{cursor:grabbing}.builder-question-card{border-left:4px solid var(--peach);margin-top:14px}.builder-question-card.complete{border-left-color:var(--mint)}.builder-question-card.has-issues{border-left-color:var(--peach)}.builder-question-label .eyebrow{color:var(--ink);margin-bottom:2px;font-weight:800}.builder-question-label small{color:#a34d1c;font-size:11px;font-weight:700;display:block}.builder-question-label small.complete-label{color:var(--mint-dark);align-items:center;gap:4px;display:flex}.builder-organizer-heading h2,.builder-preview-toolbar h2,.builder-review-heading h2{margin-bottom:0}.question-outline-list{gap:7px;max-height:430px;margin-top:14px;display:grid;overflow:auto}.question-outline-list button{background:var(--surface-subtle);border:1px solid var(--line);color:var(--ink);cursor:pointer;text-align:left;border-radius:8px;grid-template-columns:28px 1fr 18px;align-items:center;gap:8px;padding:9px;display:grid}.question-outline-list button>span{border:1px solid var(--line);background:#fff;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;font-size:12px;font-weight:900;display:inline-flex}.question-outline-list button div{min-width:0}.question-outline-list button strong,.question-outline-list button small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.question-outline-list button strong{font-size:12px}.question-outline-list button small{color:var(--muted);margin-top:3px;font-size:10px}.question-outline-list button.has-issues>svg{color:#b4561c}.question-outline-list button.complete>svg{color:var(--mint-dark)}.builder-organizer-summary{border-top:1px solid var(--line);gap:6px;margin-top:14px;padding-top:14px;display:grid}.builder-organizer-summary span{color:var(--muted);font-size:12px;font-weight:700}.builder-rules-layout{align-items:start}.builder-review-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:16px;display:grid}.builder-preview-toolbar{border-bottom:1px solid var(--line);margin-bottom:16px;padding-bottom:12px}.builder-preview-shell{background:#dfe7ef;border:1px solid #c2cfdd;border-radius:8px;max-height:720px;padding:18px;overflow:auto}.builder-preview-document{background:var(--bg);border-radius:8px;width:min(100%,860px);margin:0 auto;padding:16px;transition:width .18s;box-shadow:0 12px 30px #17243a26}.builder-preview-shell.mobile .builder-preview-document{width:min(390px,100%)}.builder-preview-document .question-card{box-shadow:none;margin-top:14px}.builder-review-sidebar{position:sticky;top:92px}.builder-review-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:16px;display:grid}.builder-review-summary div{background:var(--surface-subtle);border:1px solid var(--line);border-radius:8px;gap:3px;padding:10px;display:grid}.builder-review-summary strong{font-size:20px}.builder-review-summary span{color:var(--muted);font-size:11px;font-weight:700}.validation-checklist,.incomplete-question-list{border-top:1px solid var(--line);gap:7px;margin-top:16px;padding-top:16px;display:grid}.validation-checklist button,.incomplete-question-list button{color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:7px;align-items:center;gap:8px;width:100%;padding:7px;display:flex}.validation-checklist button.complete svg{color:var(--mint-dark)}.validation-checklist button.pending{background:var(--peach-soft);color:#8f4217}.incomplete-question-list button{border:1px solid var(--line);align-items:flex-start;display:grid}.incomplete-question-list button span{font-size:12px;font-weight:800}.incomplete-question-list button small{color:#9b491b;font-size:10px}.builder-publish-button{width:100%;margin-top:18px}.builder-review-sidebar>.btn.soft{width:100%;margin-top:9px}.builder-command-bar{border:1px solid var(--line);z-index:25;background:#fffffff7;border-radius:8px;grid-template-columns:auto minmax(180px,1fr) auto;align-items:center;gap:12px;padding:10px;display:grid;position:sticky;bottom:10px;box-shadow:0 10px 30px #17243a24}.builder-command-message{color:var(--muted);justify-content:center;align-items:center;gap:10px;min-width:0;font-size:12px;display:flex}.builder-command-message>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.builder-command-actions{gap:8px;display:flex}.section-tab{border:1px solid var(--line);color:var(--ink);text-align:left;background:#fff;border-radius:8px;gap:8px;padding:8px;display:grid}.section-tab.active{border-color:var(--lavender);background:var(--lavender-soft);box-shadow:inset 4px 0 0 var(--lavender)}.section-tab-select{color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;gap:3px;width:100%;padding:0;display:grid}.section-tab span{color:var(--muted);font-size:12px}.check-row{background:var(--surface-subtle);border:1px solid var(--line);color:var(--ink);border-radius:8px;align-items:center;gap:10px;min-height:46px;padding:10px 12px;font-weight:700;display:flex}.check-row:has(input:checked){background:var(--mint-soft);border-color:#85d9bd}.check-row:has(input:disabled){border-color:var(--line);color:#7b8798;cursor:not-allowed;background:#f1f5f9}.check-row input{accent-color:var(--mint)}.rule-block{border-top:1px solid var(--line);gap:10px;margin-top:16px;padding-top:16px;display:grid}.rule-block:first-of-type{border-top:0;margin-top:12px;padding-top:0}.compact-list{max-height:330px;overflow:auto}.mini-btn{min-height:34px;padding:8px 10px}.upload-strip{background:var(--lavender-soft);color:var(--muted);cursor:pointer;border:1px dashed #a895ea;border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;padding:13px;display:flex}.upload-strip.compact{align-self:end;min-height:45px}.upload-strip span{color:var(--ink);font-weight:700}.question-head{justify-content:space-between;gap:12px;display:flex}.question-image-preview{border:1px solid var(--line);object-fit:contain;border-radius:8px;width:100%;max-height:280px}.builder-question-card>.question-image-preview{background:#f8fafc;max-height:200px}.main:has(.builder-command-bar) .module-content{padding-bottom:96px}.timer-pill{background:#ffffffc7;border:1px solid #ffffffe6;border-radius:999px;margin-top:8px;padding:7px 12px;font-weight:900;display:inline-flex}.section-title-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.answer-row{grid-template-columns:44px 1fr;gap:8px;display:grid}.answer-row.with-delete{grid-template-columns:44px 1fr 36px}.answer-row input{color:var(--ink);background:#fff;border:1px solid #bdcada;border-radius:8px;min-width:0;padding:12px;transition:border-color .15s,box-shadow .15s}.preview-question{gap:10px;margin-top:14px;display:grid}.muted-option{color:var(--muted);background:#f8fafc}.square-dot{border:3px solid var(--lavender);border-radius:4px;width:16px;height:16px}.progress-shell{background:#d9e3ed;border-radius:999px;height:10px;margin-top:14px;overflow:hidden}.progress-shell span{border-radius:inherit;background:linear-gradient(90deg, var(--lavender), var(--mint));height:100%;display:block}.preview-input{background:#fff;border:1px solid #bdcada;border-radius:8px;width:100%;padding:12px}.student-test{background:var(--bg);min-height:100vh;padding:24px;animation:.22s cubic-bezier(.22,1,.36,1) student-surface-in}.student-paper{width:min(900px,100%);margin:0 auto}.student-option{border:1px solid var(--line);color:var(--ink);cursor:pointer;text-align:left;background:#fff;border-radius:8px;align-items:center;gap:12px;width:100%;min-height:58px;padding:13px 14px;transition:background .16s,border-color .16s,box-shadow .16s;display:flex}.student-option:hover{background:#fbfdff;border-color:#cbd5e1}.student-option:focus-visible,.question-number:focus-visible,.review-flag-button:focus-visible{outline-offset:2px;outline:3px solid #a78bfa57}.student-option.selected{background:#f5f3ff;border-color:#8b5cf6;box-shadow:inset 4px 0 #8b5cf6}.student-choice-control{color:#fff;border:2px solid #a8b5c5;flex:0 0 22px;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.student-choice-control.checkbox{border-radius:5px}.student-choice-control.radio{border-radius:50%}.student-option.selected .student-choice-control{background:#8b5cf6;border-color:#8b5cf6}.student-option-label{overflow-wrap:anywhere;flex:auto;min-width:0;line-height:1.35}.student-option-selected-label{color:#6d28d9;flex:none;align-items:center;gap:4px;font-size:12px;font-weight:800;display:inline-flex}.student-test .question-image-preview{aspect-ratio:5/3;object-fit:cover;justify-self:center;width:min(100%,720px);max-height:none}.student-nav{justify-content:space-between;gap:12px;margin-top:16px;display:flex}.student-answer-progress span{transition:width .22s}.save-indicator{color:#047857;white-space:nowrap;background:#ecfdf5d6;border:1px solid #10b98138;border-radius:999px;align-items:center;gap:6px;padding:6px 9px;font-size:12px;font-weight:800;display:inline-flex}.save-indicator.saving{color:#1d4ed8;background:#eff6ffe6;border-color:#3b82f633}.timer-pill.warning{color:#9a3412;background:#fff7ed;border-color:#fdba74}.timer-pill.critical{color:#be123c;background:#fff1f2;border-color:#fda4af}.question-navigator{border:1px solid var(--line);background:#fff;border-radius:8px;margin-top:14px;padding:14px 16px}.question-navigator-heading,.student-question-toolbar,.student-review-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.question-navigator-heading>div{gap:2px;display:grid}.question-navigator-heading small{color:var(--muted)}.question-navigator-heading>span{color:var(--muted);white-space:nowrap;font-size:13px;font-weight:800}.question-section-groups{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-top:14px;display:grid}.question-number-section{min-width:0}.question-number-section+.question-number-section{border-left:1px solid var(--line);padding-left:12px}.question-section-label{color:#475569;min-height:31px;font-size:12px;font-weight:800;line-height:1.3;display:block}.question-number-grid{grid-template-columns:repeat(auto-fill,44px);gap:8px;margin-top:7px;display:grid}.question-number{color:#475569;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:7px;justify-content:center;align-items:center;width:44px;height:44px;padding:0;font-size:15px;font-weight:900;transition:background .15s,border-color .15s,box-shadow .15s,color .15s,transform .15s;display:inline-flex;position:relative}.question-number:hover:not(:disabled){border-color:#94a3b8;transform:translateY(-1px);box-shadow:0 5px 12px #0f172a17}.question-number.answered{color:#166534;background:#ecfdf5;border-color:#86efac}.question-number.flagged:not(.current){color:#92400e;background:#fffbeb;border-color:#f59e0b;box-shadow:inset 0 -3px #fbbf24}.question-number.current{color:#fff;background:#8b5cf6;border-color:#8b5cf6;transform:translateY(-1px);box-shadow:0 0 0 4px #8b5cf638}.question-number-flag{color:#b45309;fill:#fef3c7;position:absolute;top:3px;right:3px}.question-number-check{color:#15803d;position:absolute;bottom:3px;right:3px}.question-number.current .question-number-check{color:#fff}.question-number.current .question-number-flag{color:#fef3c7;fill:#f59e0b}.question-status-legend{color:var(--muted);border-top:1px solid #edf2f7;flex-wrap:wrap;gap:8px 16px;margin-top:14px;padding-top:10px;font-size:11px;display:flex}.question-status-legend span{align-items:center;gap:6px;display:inline-flex}.legend-dot{background:#f8fafc;border:1px solid #cbd5e1;border-radius:50%;width:9px;height:9px;display:inline-block}.legend-dot.answered{background:#86efac;border-color:#4ade80}.legend-dot.current{background:#c4b5fd;border-color:#8b5cf6}.legend-dot.flagged{background:#fde68a;border-color:#f59e0b}.student-question-card{will-change:opacity, transform;margin-top:14px}.student-question-card.question-transition-forward{animation:.22s cubic-bezier(.22,1,.36,1) question-forward-in}.student-question-card.question-transition-backward{animation:.22s cubic-bezier(.22,1,.36,1) question-backward-in}.student-question-card.question-transition-jump{animation:.19s ease-out question-jump-in}.student-question-toolbar .eyebrow{margin:0}.review-flag-button{color:#64748b;cursor:pointer;background:#fff;border:1px solid #dbe3ec;border-radius:7px;flex:none;align-items:center;gap:6px;min-height:36px;padding:7px 10px;font-size:12px;font-weight:800;display:inline-flex}.review-flag-button.active{color:#92400e;background:#fffbeb;border-color:#fbbf24}.student-question-prompt{font-size:16px;line-height:1.45}.selection-guidance{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe;border-radius:7px;align-items:center;gap:7px;width:fit-content;padding:9px 11px;font-size:13px;font-weight:800;display:flex}.selection-guidance.complete{color:#047857;background:#ecfdf5;border-color:#a7f3d0}.student-review-page{border:1px solid var(--line);border-top:5px solid var(--lavender);background:#fff;border-radius:8px;padding:clamp(18px,4vw,32px);animation:.22s cubic-bezier(.22,1,.36,1) portal-view-in}.student-review-heading h1{margin-bottom:8px}.student-review-heading p:last-child{color:var(--muted);margin-bottom:0}.student-review-overview{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:22px;display:grid}.review-stat{border:1px solid var(--line);border-radius:8px;align-items:center;gap:10px;min-height:64px;padding:12px;display:flex}.review-stat strong{font-size:20px}.review-stat.answered{color:#047857;background:#ecfdf5}.review-stat.pending{color:#9a3412;background:#fff7ed}.review-stat.flagged{color:#92400e;background:#fffbeb}.student-dialog-backdrop{z-index:100;background:#0f172a7a;justify-content:center;align-items:center;padding:18px;animation:.16s ease-out dialog-backdrop-in;display:flex;position:fixed;inset:0}.student-submit-dialog{background:#fff;border-radius:8px;width:min(520px,100%);max-height:calc(100vh - 36px);padding:28px;animation:.21s cubic-bezier(.22,1,.36,1) dialog-panel-in;position:relative;overflow-y:auto;box-shadow:0 24px 70px #0f172a3d}.submit-dialog-close{position:absolute;top:14px;right:14px}.submit-dialog-icon{color:#7e22ce;background:#f3e8ff;border-radius:8px;justify-content:center;align-items:center;width:46px;height:46px;margin-bottom:14px;display:inline-flex}.student-submit-dialog h2{margin-bottom:8px}.student-submit-dialog>p:not(.eyebrow){color:var(--muted)}.submit-dialog-summary{border-block:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));margin:20px 0;padding:14px 0;display:grid}.submit-dialog-summary>div{text-align:center;gap:3px;display:grid}.submit-dialog-summary>div+div{border-left:1px solid var(--line)}.submit-dialog-summary strong{font-size:22px}.submit-dialog-summary span{color:var(--muted);font-size:12px}.submit-dialog-notice{border:1px solid;border-radius:7px;align-items:center;gap:8px;margin-top:9px;padding:10px 11px;font-size:13px;font-weight:700;display:flex}.submit-dialog-notice.warning{color:#9a3412;background:#fff7ed;border-color:#fed7aa}.submit-dialog-notice.flagged{color:#92400e;background:#fffbeb;border-color:#fde68a}.submit-dialog-actions{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.btn:disabled{cursor:not-allowed;opacity:.48}@media (max-width:560px){.student-nav{flex-direction:column}.student-nav .btn,.review-flag-button,.submit-dialog-actions .btn{width:100%}.student-question-toolbar,.student-review-heading{flex-direction:column;align-items:stretch}.student-option-selected-label{display:none}.question-navigator{padding:12px}.question-navigator-heading small{display:none}.question-number-grid{gap:7px}.question-section-groups{grid-template-columns:1fr}.question-number-section+.question-number-section{border-left:0;border-top:1px solid var(--line);padding-top:11px;padding-left:0}.question-section-label{min-height:0}.student-review-overview{gap:7px}.review-stat{flex-direction:column;align-items:flex-start;gap:5px;padding:10px}.review-stat span{font-size:12px}.student-submit-dialog{padding:24px 20px 20px}.submit-dialog-actions{flex-direction:column-reverse}}@media (max-width:1100px){.builder-layout{grid-template-columns:1fr}.builder-side{position:static}}.badge{background:var(--mint-soft);color:var(--mint-dark);white-space:nowrap;border:1px solid #9adfc7;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700}.hero-preview{color:#1f2937;background:linear-gradient(110deg,#a78bfad6,#6ee7b7a8),radial-gradient(circle at 80% 20%,#fdba74b3,#0000 28%),#dbeafe;border-radius:8px;align-items:end;min-height:210px;padding:24px;display:flex}.question-card{border-top:5px solid var(--peach);padding:18px}.option{border:1px solid var(--line);background:var(--surface-subtle);border-radius:8px;align-items:center;gap:10px;padding:12px;display:flex}.dot{border:4px solid var(--lavender);border-radius:50%;width:16px;height:16px}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.auth-page{place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{border:1px solid var(--line);width:min(980px,100%);box-shadow:var(--shadow);background:#fff;border-radius:8px;grid-template-columns:1fr 420px;display:grid;overflow:hidden}.auth-art{background:linear-gradient(135deg,#93c5fdc7,#fdba7480),#f7fbff;padding:34px}.auth-form{padding:34px}.auth-intro{margin-top:80px}.auth-intro>p:last-child{color:#475569;max-width:520px;margin-top:18px}.auth-dimensions{margin-top:34px}.auth-dimension{border-left:3px solid var(--lavender);padding:4px 0 4px 12px}.auth-dimension:nth-child(2){border-left-color:var(--mint-dark)}.auth-dimension p{margin-bottom:0}.auth-form-title{margin-top:18px}.auth-form-copy{color:var(--muted)}.auth-secondary-link{margin-top:16px}.demo-box{border-top:1px solid var(--line);gap:10px;margin-top:18px;padding-top:18px;display:grid}.field{gap:7px;margin-bottom:14px;display:grid}.field label{color:var(--muted);font-size:13px;font-weight:800}.field input,.field textarea,.field select{color:var(--ink);background:#fff;border:1px solid #bdcada;border-radius:8px;outline:none;padding:12px;transition:border-color .15s,box-shadow .15s}.field input:hover,.field textarea:hover,.field select:hover,.answer-row input:hover,.preview-input:hover{border-color:#93a8be}.field input:focus,.field textarea:focus,.field select:focus,.answer-row input:focus,.preview-input:focus{border-color:var(--lavender);outline:none;box-shadow:0 0 0 3px #7557db2b}.field input::placeholder,.field textarea::placeholder,.answer-row input::placeholder,.preview-input::placeholder{color:#7a899c}.option-field input{width:100%;min-width:0}.icon-choice{border:1px solid var(--line);width:44px;min-width:44px;color:var(--muted);cursor:pointer;background:#fff;border-radius:8px;font-weight:800}.icon-choice.selected{background:var(--mint-soft);color:var(--mint-dark);border-color:var(--mint)}.dims{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}@media (max-width:920px){.app-shell{grid-template-columns:minmax(0,1fr);overflow-x:hidden}.sidebar{z-index:80;width:100%;min-width:0;height:auto;padding:13px 18px 10px;position:sticky;top:0;overflow:hidden;box-shadow:0 5px 18px #1c2d4614}.sidebar-logout{width:fit-content;margin:8px 0 0}.sidebar .brand{font-size:17px}.sidebar .brand-mark{width:36px;height:36px}.sidebar-area{display:none}.sidebar-identity{max-width:360px;margin-top:10px}.nav{scrollbar-width:thin;gap:6px;width:100%;margin-top:11px;padding-bottom:3px;display:flex;overflow-x:auto}.nav a{white-space:nowrap;flex:none;min-height:40px;padding:9px 12px}.nav a.active{box-shadow:inset 0 -3px 0 var(--lavender);transform:none}.stats,.two-col,.auth-card{grid-template-columns:1fr}}@media (min-width:921px) and (max-width:1300px){.test-library-toolbar{grid-template-columns:minmax(260px,1fr) auto}.test-library-toolbar-actions{grid-column:1/-1;justify-content:flex-end}.builder-command-message>span:last-child{display:none}}@media (max-width:560px){.main{padding:12px}.sidebar{padding:10px 12px 8px}.topbar,.list-row{flex-direction:column;align-items:flex-start}.dims,.form-grid{grid-template-columns:1fr}.topbar{min-height:0;padding:15px 16px}.topbar h1{font-size:23px}.topbar-description{font-size:13px}}.form-message{color:var(--muted);margin:14px 0 0;font-weight:600}.student-access-card{grid-template-columns:minmax(320px,.9fr) minmax(420px,1.1fr);width:min(1120px,100%)}.student-assignment-list{border-top:1px solid var(--line);gap:10px;margin-top:22px;padding-top:18px;display:grid}.student-assignment{border:1px solid var(--line);border-left:4px solid var(--sky);background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;padding:13px;display:flex}.student-assignment p,.student-assignment small{color:var(--muted);margin:4px 0 0;display:block}.student-assignment .btn{flex:none}.student-portal{background:#f5f8fb;grid-template-columns:248px minmax(0,1fr);min-height:100vh;animation:.24s cubic-bezier(.22,1,.36,1) student-surface-in;display:grid}.student-portal-sidebar{border-right:1px solid var(--line);background:#fff;flex-direction:column;height:100vh;padding:24px 18px;display:flex;position:sticky;top:0}.student-sidebar-identity{border:1px solid var(--line);background:#f8fafc;border-radius:8px;align-items:center;gap:10px;margin-top:28px;padding:11px;display:flex}.student-sidebar-identity>div,.student-topbar-identity>div{gap:2px;min-width:0;display:grid}.student-sidebar-identity strong,.student-topbar-identity strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.student-sidebar-identity small,.student-topbar-identity small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.student-avatar{color:#6d28d9;background:#ede9fe;border:1px solid #c4b5fd;border-radius:8px;flex:0 0 42px;justify-content:center;align-items:center;width:42px;height:42px;font-size:13px;font-weight:900;display:inline-flex}.student-avatar.compact{flex-basis:38px;width:38px;height:38px}.student-avatar.large{flex-basis:76px;width:76px;height:76px;font-size:22px}.student-portal-nav{gap:5px;margin-top:26px;display:grid}.student-nav-label{color:#94a3b8;text-transform:uppercase;padding:0 10px 5px;font-size:10px;font-weight:900}.student-nav-label.future{margin-top:17px}.student-portal-nav button{color:#526173;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:7px;align-items:center;gap:10px;width:100%;min-height:42px;padding:9px 11px;font-size:14px;font-weight:700;transition:background .17s,color .17s,transform .17s;display:flex;position:relative}.student-portal-nav button:before{content:"";background:#8b5cf6;border-radius:0 3px 3px 0;width:3px;height:22px;transition:transform .19s cubic-bezier(.22,1,.36,1);position:absolute;left:-18px;transform:scaleY(0)}.student-portal-nav button:hover:not(:disabled){color:var(--ink);background:#f8fafc}.student-portal-nav button.active{color:#6d28d9;background:#f3e8ff;transform:translate(2px)}.student-portal-nav button.active:before{transform:scaleY(1)}.student-portal-nav button:disabled{color:#94a3b8;cursor:default}.student-portal-nav button small{background:#f1f5f9;border-radius:999px;margin-left:auto;padding:3px 6px;font-size:9px}.student-logout-button{border:1px solid var(--line);color:#526173;cursor:pointer;background:#fff;border-radius:7px;align-items:center;gap:9px;min-height:42px;margin-top:auto;padding:9px 11px;font-weight:700;display:flex}.student-logout-button:hover{color:#be123c;background:#fff1f2;border-color:#fecdd3}.student-portal-content{min-width:0;padding:26px clamp(20px,4vw,52px) 48px}.student-portal-topbar,.student-portal-view,.portal-message{max-width:1180px;margin-inline:auto}.student-portal-topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:64px;padding-bottom:18px;display:flex}.student-portal-topbar h1{font-size:25px}.student-topbar-identity{align-items:center;gap:9px;max-width:260px;display:none}.student-topbar-actions{align-items:center;gap:8px;display:flex}.student-mobile-logout{display:none}.portal-message{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:7px;align-items:center;gap:8px;margin-top:18px;padding:10px 12px;font-size:13px;font-weight:700;display:flex}.student-portal-view{will-change:opacity, transform;margin-top:24px;animation:.22s cubic-bezier(.22,1,.36,1) portal-view-in}.student-welcome-band{background:linear-gradient(105deg,#ede9fe 0%,#e0f2fe 52%,#d1fae5 100%);border-left:5px solid #8b5cf6;border-radius:8px;justify-content:space-between;align-items:center;min-height:142px;padding:24px 28px;display:flex}.student-welcome-band h2{margin-bottom:7px;font-size:25px}.student-welcome-band p:last-child{color:#526173;margin-bottom:0}.student-welcome-band>span{white-space:nowrap;background:#ffffffbd;border:1px solid #ffffffeb;border-radius:999px;align-items:center;gap:7px;padding:8px 11px;font-size:12px;font-weight:800;display:inline-flex}.student-summary-strip{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:16px;display:grid}.student-summary-strip.grades{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:0}.student-summary-strip>div{align-items:center;gap:11px;min-height:82px;padding:14px 17px;display:flex}.student-summary-strip>div+div{border-left:1px solid var(--line)}.student-summary-strip>div>span:last-child{gap:2px;display:grid}.student-summary-strip strong{font-size:21px}.student-summary-strip small{color:var(--muted);font-size:11px}.summary-icon{border-radius:7px;flex:0 0 40px;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.summary-icon.lavender{color:#7e22ce;background:#f3e8ff}.summary-icon.peach{color:#c2410c;background:#fff7ed}.summary-icon.mint{color:#047857;background:#ecfdf5}.summary-icon.sky{color:#1d4ed8;background:#eff6ff}.student-dashboard-grid{grid-template-columns:minmax(0,1.55fr) minmax(260px,.65fr);gap:28px;margin-top:30px;display:grid}.student-portal-section,.student-progress-section{min-width:0}.student-progress-section{border-left:1px solid var(--line);padding-left:28px}.student-section-heading,.student-view-intro{justify-content:space-between;align-items:center;gap:14px;display:flex}.student-section-heading h2,.student-view-intro h2,.student-progress-section h2{margin-bottom:0}.student-section-heading>button{color:#6d28d9;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;font-size:12px;font-weight:800;display:inline-flex}.student-view-intro{margin-bottom:22px}.student-view-intro p:last-child{color:var(--muted);margin:6px 0 0}.portal-assignment-list,.portal-grade-list{gap:10px;margin-top:16px;display:grid}.portal-assignment{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:14px;min-height:92px;padding:14px;animation:.24s cubic-bezier(.22,1,.36,1) backwards portal-item-in;display:grid}.portal-assignment:nth-child(2),.portal-grade-row:nth-child(2){animation-delay:35ms}.portal-assignment:nth-child(3),.portal-grade-row:nth-child(3){animation-delay:70ms}.portal-assignment:nth-child(4),.portal-grade-row:nth-child(4){animation-delay:.105s}.portal-assignment-icon,.portal-grade-icon{border-radius:7px;justify-content:center;align-items:center;width:42px;height:42px;display:inline-flex}.portal-assignment-icon.available,.portal-grade-icon.ready{color:#047857;background:#ecfdf5}.portal-assignment-icon.in-progress,.portal-grade-icon.pending{color:#c2410c;background:#fff7ed}.portal-assignment-icon.completed{color:#1d4ed8;background:#eff6ff}.portal-assignment-icon.upcoming,.portal-assignment-icon.closed{color:#64748b;background:#f1f5f9}.portal-assignment-main{gap:6px;min-width:0;display:grid}.portal-assignment-title{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.portal-assignment-title strong{overflow-wrap:anywhere}.portal-assignment-main>p{color:var(--muted);margin:0;font-size:12px}.portal-assignment-meta{color:#64748b;flex-wrap:wrap;gap:8px 14px;font-size:11px;display:flex}.portal-assignment-meta span{align-items:center;gap:5px;display:inline-flex}.portal-status{white-space:nowrap;border-radius:999px;padding:4px 7px;font-size:10px;font-weight:900}.portal-status.available{color:#166534;background:#dcfce7}.portal-status.in-progress{color:#9a3412;background:#ffedd5}.portal-status.completed{color:#1d4ed8;background:#dbeafe}.portal-status.upcoming,.portal-status.closed{color:#64748b;background:#f1f5f9}.portal-assignment-action{min-width:112px}.portal-empty{color:var(--muted);text-align:center;border:1px dashed #cbd5e1;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:7px;min-height:160px;padding:24px;display:flex}.portal-empty strong{color:var(--ink)}.portal-empty p{margin:0}.student-progress-ring{background:conic-gradient(#8b5cf6 var(--progress), #e2e8f0 0);border-radius:50%;justify-content:center;align-items:center;width:154px;height:154px;margin:24px auto;display:flex;position:relative}.student-progress-ring:after{content:"";background:#f5f8fb;border-radius:50%;position:absolute;inset:13px}.student-progress-ring>span{text-align:center;z-index:1;gap:2px;display:grid;position:relative}.student-progress-ring strong{font-size:27px}.student-progress-ring small{color:var(--muted);font-size:11px}.student-progress-details{gap:10px;display:grid}.student-progress-details span{color:#526173;align-items:center;gap:8px;font-size:12px;display:flex}.grades-section{margin-top:28px}.portal-grade-row{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:13px;min-height:76px;padding:12px 14px;animation:.24s cubic-bezier(.22,1,.36,1) backwards portal-item-in;display:grid}.portal-grade-summary{gap:5px;min-width:0;display:grid}.portal-grade-actions{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.portal-grade-actions .btn{white-space:nowrap;word-break:normal;overflow-wrap:normal;min-height:40px}.portal-grade-actions .btn svg{flex-shrink:0}.portal-grade-row small{color:var(--muted)}.portal-grade-value{color:#047857;font-size:19px;font-weight:900}.portal-grade-value.pending{color:#9a3412;font-size:12px}.student-profile-header{border-bottom:1px solid var(--line);background:#fff;grid-template-columns:76px minmax(0,1fr) auto;align-items:center;gap:18px;padding:24px 0;display:grid}.student-profile-header h2,.student-profile-header p{margin-bottom:4px}.student-profile-header p:last-child{color:var(--muted)}.student-profile-details{grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.student-profile-details>div{border-bottom:1px solid var(--line);gap:7px;padding:20px 8px;display:grid}.student-profile-details>div:nth-child(odd){padding-right:24px}.student-profile-details>div:nth-child(2n){border-left:1px solid var(--line);padding-left:24px}.student-profile-details dt{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:800}.student-profile-details dd{margin:0;font-weight:800}.student-mobile-nav{display:none}@keyframes student-surface-in{0%{opacity:0}to{opacity:1}}@keyframes portal-view-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes portal-item-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes question-forward-in{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}@keyframes question-backward-in{0%{opacity:0;transform:translate(-18px)}to{opacity:1;transform:translate(0)}}@keyframes question-jump-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes dialog-backdrop-in{0%{background:#0f172a00}to{background:#0f172a7a}}@keyframes dialog-panel-in{0%{opacity:0;transform:scale(.97)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}@media (max-width:1040px){.student-portal{grid-template-columns:218px minmax(0,1fr)}.student-dashboard-grid{grid-template-columns:1fr}.student-progress-section{border-left:0;border-top:1px solid var(--line);padding-top:24px;padding-left:0}.student-progress-ring{margin-left:0}}@media (max-width:780px){.student-portal{display:block}.student-portal-sidebar{display:none}.student-topbar-identity{display:flex}.student-portal-content{padding:18px 16px 96px}.student-portal-topbar{min-height:58px}.student-mobile-logout{border:1px solid var(--line);color:#64748b;cursor:pointer;background:#fff;border-radius:7px;justify-content:center;align-items:center;width:38px;height:38px;display:inline-flex}.student-summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.student-summary-strip.grades{grid-template-columns:repeat(3,minmax(0,1fr))}.student-summary-strip>div:nth-child(3){border-left:0;border-top:1px solid var(--line)}.student-summary-strip>div:nth-child(4){border-top:1px solid var(--line)}.student-summary-strip.grades>div:nth-child(3){border-left:1px solid var(--line);border-top:0}.student-mobile-nav{border-top:1px solid var(--line);padding:7px 8px max(7px, env(safe-area-inset-bottom));z-index:50;background:#fffffff5;grid-template-columns:repeat(4,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0}.student-mobile-nav button{color:#64748b;background:0 0;border:0;border-radius:7px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:50px;font-size:10px;font-weight:800;transition:background .17s,color .17s,transform .17s;display:flex}.student-mobile-nav button.active{color:#6d28d9;background:#f3e8ff;transform:translateY(-2px)}}@media (max-width:560px){.student-topbar-identity>div{display:none}.student-welcome-band{flex-direction:column;align-items:flex-start;gap:18px;padding:21px}.student-summary-strip>div{flex-direction:column;align-items:flex-start;min-height:105px;padding:13px}.student-summary-strip.grades>div{min-height:96px}.student-view-intro,.student-section-heading{align-items:flex-start}.portal-assignment{grid-template-columns:42px minmax(0,1fr);align-items:start}.portal-assignment-action{grid-column:1/-1;width:100%}.portal-grade-row{grid-template-columns:42px minmax(0,1fr)}.portal-grade-actions{grid-column:1/-1;align-items:stretch}.portal-grade-actions .btn{width:100%}.student-profile-header{grid-template-columns:76px minmax(0,1fr)}.student-profile-header .portal-status{grid-column:1/-1;width:fit-content}.student-profile-details{grid-template-columns:1fr}.student-profile-details>div:nth-child(odd),.student-profile-details>div:nth-child(2n){border-left:0;padding-inline:4px}}.empty-state{color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:130px;padding:22px;display:flex}.empty-state p{margin:0}.student-test-header{min-height:178px}.test-header-image{aspect-ratio:4;border:1px solid var(--line);object-fit:cover;border-radius:8px;width:100%;display:block}.builder-header-image{margin-top:12px}.student-header-image{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.student-header-image+.student-test-header{border-top-left-radius:0;border-top-right-radius:0}.test-meta-line{flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;display:flex}.test-meta-line .timer-pill{align-items:center;gap:6px;margin:0}.submission-receipt{border:1px solid var(--line);border-top:6px solid var(--mint);background:#fff;border-radius:8px;padding:clamp(20px,4vw,38px);animation:.24s cubic-bezier(.22,1,.36,1) portal-view-in}.receipt-icon{color:#059669;margin-bottom:12px}.receipt-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:22px 0;display:grid}.receipt-metrics>div{border:1px solid var(--line);background:#f8fafc;border-radius:8px;gap:6px;padding:14px;display:grid}.receipt-metrics span,.receipt-question p{color:var(--muted);font-size:13px}.result-callout{border:1px solid;border-radius:8px;margin:14px 0;padding:13px 15px;font-weight:800}.result-callout.passed{color:#047857;background:#ecfdf5;border-color:#a7f3d0}.result-callout.needs-work{color:#9a3412;background:#fff7ed;border-color:#fed7aa}.receipt-review{border-top:1px solid var(--line);gap:10px;margin:24px 0;padding-top:22px;display:grid}.receipt-question{border:1px solid var(--line);background:#fbfdff;border-radius:8px;gap:8px;padding:14px;display:grid}.receipt-question strong,.receipt-question p{margin:0;display:block}.answer-state{border-radius:999px;width:fit-content;padding:5px 9px;font-size:12px;font-weight:800;display:inline-flex}.answer-state.correct{color:#166534;background:#dcfce7}.answer-state.incorrect{color:#be123c;background:#ffe4e6}.student-review-list{gap:9px;margin-top:20px;display:grid}.student-review-row{border:1px solid var(--line);color:var(--ink);cursor:pointer;text-align:left;background:#fff;border-radius:8px;grid-template-columns:34px minmax(0,1fr) 22px;align-items:center;gap:12px;min-height:64px;padding:10px 13px;display:grid}.student-review-row>span{background:#eef6ff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-weight:800;display:flex}.student-review-row div{gap:4px;min-width:0;display:grid}.student-review-row strong,.student-review-row small{overflow-wrap:anywhere}.student-review-row small{color:var(--muted)}.student-review-row.answered{border-left:4px solid var(--mint)}.student-review-row.answered>svg{color:#059669}.student-review-row.missing{border-left:4px solid var(--peach)}.student-review-row.missing>svg{color:#c2410c}.student-review-row.flagged{background:#fffbeb;border-left:4px solid #f59e0b}.student-review-row.flagged>svg{color:#b45309}.result-filters{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:18px}.result-list{margin-top:4px}.result-row{align-items:stretch;min-height:126px}.result-main{gap:5px;min-width:0;display:grid}.result-main p{margin:0}.result-title-line{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.status-pill{border-radius:999px;padding:5px 8px;font-size:11px;font-weight:800}.status-pill.pending{color:#9a3412;background:#fff7ed}.status-pill.ready{color:#047857;background:#ecfdf5}.status-pill.official{color:#1d4ed8;background:#eff6ff}.result-flags{flex-wrap:wrap;gap:6px;margin-top:5px;display:flex}.result-flags span{color:var(--muted);background:#f1f5f9;border-radius:6px;padding:4px 7px;font-size:11px}.result-actions{flex-direction:column;flex:none;justify-content:space-between;align-items:flex-end;gap:10px;display:flex}.score-badge{color:var(--ink);text-align:right;font-size:23px;font-weight:900}.score-badge small{color:var(--muted);font-size:11px;font-weight:700;display:block}.score-badge.pending-score{color:#9a5a16;font-size:14px;line-height:1.2}.result-empty{border:1px dashed var(--line)}.review-toolbar{flex-wrap:wrap;justify-content:flex-end;gap:9px;margin-bottom:14px;display:flex}.review-toolbar .btn:first-child{margin-right:auto}.review-summary{grid-template-columns:minmax(0,1fr) auto;gap:18px;display:grid}.review-student{align-items:center;gap:14px;display:flex}.review-avatar{color:#0369a1;background:#e0f2fe;border-radius:8px;flex:0 0 48px;justify-content:center;align-items:center;height:48px;display:flex}.review-student h2,.review-student p{margin-bottom:3px}.review-score{flex-direction:column;justify-content:center;align-items:flex-end;display:flex}.review-score span{color:#047857;font-size:32px;font-weight:900}.review-score small,.review-metadata{color:var(--muted);font-size:12px}.review-metadata{border-top:1px solid var(--line);flex-wrap:wrap;grid-column:1/-1;gap:8px 18px;padding-top:13px;display:flex}.review-question-list{gap:14px;margin-top:14px;display:grid}.review-question{border-left:5px solid #bfdbfe}.review-question-head h3{overflow-wrap:anywhere;margin-bottom:0;font-size:17px}.review-answer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0 12px;display:grid}.answer-box{border:1px solid var(--line);border-radius:8px;gap:7px;min-height:78px;padding:13px;display:grid}.answer-box span{color:var(--muted);font-size:12px;font-weight:700}.student-answer{background:#f8fafc}.correct-answer{background:#ecfdf5;border-color:#a7f3d0}.manual-answer{background:#fff7ed;border-color:#fed7aa}.grade-editor{border-top:1px solid var(--line);grid-template-columns:180px minmax(0,1fr);align-items:end;gap:12px;margin-top:16px;padding-top:16px;display:grid}.grade-editor .field{margin-bottom:0}.grade-points>div{align-items:center;gap:8px;display:flex}.grade-points input{width:88px;min-width:0}.grade-points span{color:var(--muted);font-size:12px}.overall-feedback{margin-top:14px}.review-save-row,.success-message{align-items:center;gap:8px;display:flex}.review-save-row{justify-content:space-between}.success-message{color:#047857;margin:0}@media (max-width:920px){.student-access-card,.result-filters,.review-summary,.review-answer-grid,.grade-editor{grid-template-columns:1fr}.review-metadata{grid-column:auto}.review-score{align-items:flex-start}}@media (max-width:560px){.student-test,.auth-page{padding:12px}.auth-art,.auth-form{padding:20px}.receipt-metrics{grid-template-columns:1fr}.student-assignment,.result-row,.review-save-row{flex-direction:column;align-items:stretch}.student-assignment .btn,.result-actions .btn,.review-save-row .btn{width:100%}.result-actions{align-items:stretch;width:100%}.score-badge{text-align:left}.review-toolbar{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.review-toolbar .btn:first-child{grid-column:1/-1;margin:0}}@media (max-width:1100px){.builder-review-layout{grid-template-columns:1fr}.builder-review-sidebar{position:static}}@media (max-width:780px){.test-library-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.test-library-toolbar{grid-template-columns:1fr}.segmented-control{max-width:100%;overflow-x:auto}.test-new-button{width:100%}.builder-flow-header{flex-direction:column;align-items:stretch;position:static}.builder-stepper{grid-template-columns:repeat(4,minmax(0,1fr))}.builder-stepper button{text-align:center;grid-template-columns:1fr;justify-items:center;gap:4px;min-width:0;padding:7px 4px;position:relative}.builder-stepper button strong{text-overflow:ellipsis;width:100%;font-size:11px;overflow:hidden}.builder-stepper button small{position:absolute;top:3px;right:3px}.builder-save-indicator{border-left:0;border-top:1px solid var(--line);justify-content:center;padding:9px 6px 0}.builder-command-bar{grid-template-columns:1fr;position:static}.builder-command-message{order:-1;justify-content:flex-start}.builder-command-actions{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.builder-command-actions .btn{min-width:0;padding-left:8px;padding-right:8px}}@media (max-width:560px){.test-library-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.test-library-grid{grid-template-columns:1fr}.library-status-line,.test-card-heading,.test-card-actions,.teacher-dialog-actions{flex-direction:column;align-items:stretch}.test-card-actions .btn,.teacher-dialog-actions .btn{width:100%}.teacher-dialog{padding:17px}.builder-question-card .question-head{flex-direction:column;align-items:stretch}.builder-question-card .row-actions{justify-content:flex-start}.builder-preview-panel,.builder-review-sidebar{padding:12px}.builder-preview-shell{padding:6px}.builder-preview-document{padding:8px}.builder-command-actions{grid-template-columns:1fr}}@media print{.sidebar,.topbar,.review-toolbar,.review-save-row .btn{display:none!important}.app-shell{display:block}.main{padding:0}}.btn{min-height:42px}.field input,.field select{min-height:44px}.field textarea{resize:vertical;line-height:1.5}.check-row input[type=checkbox]{flex:0 0 18px;width:18px;height:18px}.form-actions{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.inline-status{background:var(--surface-subtle);border-left:3px solid var(--sky);color:var(--muted);min-height:40px;margin:14px 0 0;padding:10px 12px;font-size:13px;font-weight:650}.spaced-action,.rule-grid-offset,.rule-field-offset{margin-top:12px}h1,h2,h3,h4,p,strong,small,label,button,a{overflow-wrap:anywhere}@media (max-width:780px){.icon-btn{width:42px;height:42px}.section-title-row{align-items:flex-start}}@media (max-width:560px){.card,.panel{padding:15px}.form-actions{grid-template-columns:1fr;display:grid}.form-actions .btn{width:100%}.auth-intro{margin-top:38px}.section-title-row{flex-direction:column;align-items:stretch}}@media (prefers-reduced-motion:reduce){.route-transition,.student-portal,.student-portal-view,.student-test,.student-question-card,.student-review-page,.student-dialog-backdrop,.student-submit-dialog,.teacher-dialog-backdrop,.teacher-dialog,.submission-receipt,.portal-assignment,.portal-grade-row{animation:none!important}.student-portal-nav button,.student-portal-nav button:before,.student-mobile-nav button,.student-option,.question-number,.student-answer-progress span{transition:none!important}}.rubric-editor{background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;margin-top:14px;padding:14px}.rubric-editor-heading,.rubric-criterion-heading,.results-view-toolbar,.student-import-toolbar,.audit-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.rubric-editor-heading h3,.rubric-grading h4{margin:2px 0 0}.rubric-total{border:1px solid;border-radius:6px;flex:none;padding:6px 9px;font-size:12px;font-weight:900}.rubric-total.ready{color:#047857;background:#ecfdf5;border-color:#86efac}.rubric-total.pending{color:#9a3412;background:#fff7ed;border-color:#fdba74}.rubric-empty{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding-top:12px;display:flex}.rubric-empty p,.helper-text,.analytics-heading p,.teacher-dialog-header p{color:var(--muted);margin:0;font-size:12px}.rubric-criteria-list{border-top:1px solid var(--line);gap:16px;margin:12px 0;padding-top:12px;display:grid}.rubric-criterion+.rubric-criterion{border-top:1px solid var(--line);padding-top:16px}.rubric-criterion-heading .field{flex:auto;margin:0}.rubric-level-list{gap:7px;margin:10px 0;display:grid}.rubric-level-row{grid-template-columns:minmax(120px,.7fr) 88px minmax(180px,1.4fr) 38px;gap:7px;display:grid}.rubric-level-row input{min-width:0}.question-bank-tools,.results-export-actions,.test-library-toolbar-actions{flex-wrap:wrap;gap:8px;display:flex}.question-bank-tools{margin:14px 0 8px}.question-bank-tools label,.student-import-toolbar label{cursor:pointer}.rubric-grading{background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;gap:14px;margin-top:16px;padding:14px;display:grid}.rubric-grading-criterion{gap:8px;display:grid}.rubric-level-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.rubric-level-options button{color:var(--ink);cursor:pointer;text-align:left;background:#fff;border:1px solid #bdcada;border-radius:8px;align-items:flex-start;gap:6px;min-height:104px;padding:11px;display:grid;position:relative}.rubric-level-options button:hover,.rubric-level-options button.selected{border-color:var(--lavender);box-shadow:0 0 0 2px #7557db1f}.rubric-level-options button.selected{background:var(--lavender-soft)}.rubric-level-options button>span{justify-content:space-between;gap:8px;width:100%;padding-right:22px;font-weight:900;display:flex}.rubric-level-options small,.rubric-level-options p{color:var(--muted);margin:0;font-size:11px}.rubric-level-options svg{color:var(--mint-dark);position:absolute;top:9px;right:9px}.results-view-toolbar{border:1px solid var(--line);box-shadow:var(--shadow-soft);background:#fff;border-radius:8px;margin-bottom:16px;padding:10px 12px}.question-analytics-panel{overflow:hidden}.analytics-heading{align-items:end}.analytics-test-filter{flex:0 330px;margin:0}.question-analysis-list{border-top:1px solid var(--line);gap:0;margin-top:16px;display:grid}.question-analysis-row{grid-template-columns:minmax(0,1fr) 100px;gap:14px 18px;padding:18px 0;display:grid}.question-analysis-row+.question-analysis-row{border-top:1px solid var(--line)}.question-analysis-title,.question-analysis-metrics{flex-wrap:wrap;align-items:center;gap:7px 12px;display:flex}.question-analysis-title small{color:var(--muted)}.question-analysis-copy h3{overflow-wrap:anywhere;margin:9px 0;font-size:15px}.analysis-level{border-radius:6px;padding:5px 8px;font-size:11px;font-weight:900}.analysis-level.strong,.analysis-score.strong{color:#047857;background:#ecfdf5}.analysis-level.medium,.analysis-score.medium{color:#9a3412;background:#fff7ed}.analysis-level.difficult,.analysis-score.difficult{color:#be123c;background:#fff1f2}.analysis-level.pending,.analysis-score.pending{color:var(--muted);background:#eef2f6}.question-analysis-metrics span{color:var(--muted);font-size:12px}.question-analysis-metrics strong{color:var(--ink)}.analysis-score{border-radius:8px;flex-direction:column;justify-content:center;align-items:center;min-height:78px;padding:10px;display:flex}.analysis-score strong{font-size:24px}.analysis-score span{font-size:11px;font-weight:800}.option-distribution{grid-column:1/-1;gap:8px;display:grid}.option-distribution>div{grid-template-columns:minmax(170px,.8fr) minmax(150px,1.2fr);align-items:center;gap:10px;display:grid}.option-distribution span{justify-content:space-between;gap:10px;min-width:0;font-size:12px;display:flex}.option-distribution span strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.option-distribution span small{color:var(--muted);flex:none}.option-distribution>div>div{background:#e7edf4;border-radius:5px;height:9px;overflow:hidden}.option-distribution i{background:linear-gradient(90deg, var(--lavender), var(--mint-dark));height:100%;display:block}.student-import-toolbar{border:1px solid var(--line);border-left:5px solid var(--sky);box-shadow:var(--shadow-soft);background:#fff;border-radius:8px;margin-bottom:16px;padding:14px 16px}.student-import-toolbar>div:first-child{gap:3px;display:grid}.student-import-toolbar>div:first-child span{color:var(--muted);font-size:12px}.student-import-toolbar>div:last-child,.student-row-status{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.accommodation-badge{color:#0369a1;background:#e0f2fe;border-radius:6px;align-items:center;gap:4px;padding:5px 7px;font-size:11px;font-weight:900;display:inline-flex}.accommodation-dialog{width:min(720px,100%)}.accommodation-options{margin-bottom:14px}.input-suffix{align-items:center;gap:8px;display:flex}.input-suffix input{min-width:0}.input-suffix span{color:var(--muted);font-weight:900}.student-large-text{font-size:18px}.student-large-text .student-question-prompt{font-size:21px;line-height:1.45}.student-large-text .student-option,.student-large-text .preview-input{font-size:18px}.student-reduced-motion,.student-reduced-motion *,.student-reduced-motion :before,.student-reduced-motion :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.student-rubric-summary{background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;gap:8px;margin-top:12px;padding:12px;display:grid}.student-rubric-summary>span{color:#075985;align-items:center;gap:7px;font-weight:900;display:flex}.student-rubric-summary p{gap:3px;margin:0;display:grid}.student-rubric-summary small{color:var(--muted)}.audit-dialog{width:min(760px,100%)}.audit-list{max-height:62vh;display:grid;overflow:auto}.audit-row{justify-content:flex-start;padding:12px 2px}.audit-row+.audit-row{border-top:1px solid var(--line)}.audit-icon{background:var(--lavender-soft);color:var(--lavender-dark);border-radius:8px;flex:0 0 38px;justify-content:center;align-items:center;height:38px;display:flex}.audit-row div{gap:3px;min-width:0;display:grid}.audit-row p,.audit-row small{color:var(--muted);margin:0;font-size:12px}@media screen{@supports (content-visibility:auto){.builder-question-card,.portal-assignment,.portal-grade-row,.question-analysis-row,.receipt-question,.result-row,.review-question,.student-review-row,.test-library-card{contain-intrinsic-size:auto 180px;content-visibility:auto}.builder-question-card,.review-question{contain-intrinsic-size:auto 620px}}}@media (max-width:920px){.rubric-level-options{grid-template-columns:1fr}.results-view-toolbar,.student-import-toolbar{flex-direction:column;align-items:stretch}.results-export-actions .btn,.student-import-toolbar>div:last-child .btn{flex:180px}}@media (max-width:680px){.rubric-editor-heading,.rubric-empty,.rubric-criterion-heading{flex-direction:column;align-items:stretch}.rubric-level-row{grid-template-columns:minmax(0,1fr) 80px 38px}.rubric-level-row input:nth-child(3){grid-area:2/1/auto/-1}.question-analysis-row{grid-template-columns:minmax(0,1fr) 84px}.option-distribution>div{grid-template-columns:1fr}.analytics-heading{flex-direction:column;align-items:stretch}.analytics-test-filter{flex-basis:auto;width:100%}.results-export-actions,.student-import-toolbar>div:last-child,.test-library-toolbar-actions{grid-template-columns:1fr;width:100%;display:grid}.results-export-actions .btn,.student-import-toolbar>div:last-child .btn,.test-library-toolbar-actions .btn{width:100%}}@media print{.results-view-toolbar,.result-filters,.results-export-actions,.question-analytics-panel select,.question-analytics-panel label{display:none!important}.question-analysis-row,.review-question{break-inside:avoid}}.form-section-heading{border-top:1px solid var(--line);gap:2px;margin-top:18px;padding-top:16px;display:grid}.form-section-heading span{color:var(--muted);font-size:12px}.phone-input{grid-template-columns:auto minmax(0,1fr);align-items:stretch;display:grid}.phone-input span{color:#244f78;background:#edf6ff;border:1px solid #aebfd2;border-right:0;border-radius:8px 0 0 8px;align-items:center;padding:0 11px;font-size:14px;font-weight:800;display:flex}.field .phone-input input{border-radius:0 8px 8px 0;width:100%;min-width:0}.legacy-name-note{color:#5d4a20;background:#fff8e7;border-left:3px solid #e7a52b;margin:10px 0 14px;padding:9px 11px;font-size:13px;line-height:1.45}@media (max-width:760px){.student-name-grid{grid-template-columns:1fr}}.delivery-badge{color:#5c6b7d;background:#f2f5f8;border:1px solid #d8e0e8;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:700}.delivery-badge.ready{color:#08785a;background:#e7fbf2;border-color:#9ce5c8}.share-access-button{color:#08785a;background:#e9fbf5;border-color:#8de0c2}.access-dialog{width:min(760px,100%);max-height:calc(100dvh - 32px);overflow-y:auto}.access-channel-tabs{border:1px solid var(--line);background:#edf2f7;border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-bottom:18px;padding:4px;display:grid}.access-channel-tabs button{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;gap:7px;min-height:42px;padding:8px 10px;font-size:13px;font-weight:700;display:flex}.access-channel-tabs button.active{color:var(--ink);background:#fff;border-color:#c6d4e2;box-shadow:0 2px 7px #17243a14}.access-mode-note,.access-security-note{border-left:4px solid var(--sky);color:#315778;background:#eef8ff;align-items:center;gap:8px;margin:0 0 16px;padding:11px 13px;font-size:13px;display:flex}.access-security-note{border-left-color:var(--mint);color:#17654f;background:#edfbf5}.access-qr-preview{border:1px solid #d8cdf8;border-left:4px solid var(--lavender);background:#f4f1ff;grid-template-columns:132px minmax(0,1fr);align-items:center;gap:18px;margin:0 0 16px;padding:14px;display:grid}.access-qr-preview svg{background:#fff;border:1px solid #d5dce7;width:132px;height:132px}.access-qr-preview>div{gap:4px;min-width:0;display:grid}.access-qr-preview .eyebrow,.access-qr-preview p{margin:0}.access-qr-preview strong{color:var(--ink);overflow-wrap:anywhere;font-size:17px}.access-qr-preview span{color:#5635a7;font-size:13px;font-weight:750}.access-qr-preview>div>p:last-child{color:var(--muted);font-size:12px;line-height:1.45}.access-pin-row{grid-template-columns:minmax(0,1fr) 42px;align-items:end;gap:8px;display:grid}.access-pin-row .icon-btn{width:42px;height:42px;margin-bottom:1px}.access-ready-heading{border-left:5px solid var(--mint);color:#08785a;background:#e8fbf3;align-items:center;gap:10px;margin-bottom:18px;padding:12px 14px;display:flex}.access-ready-heading div{gap:2px;display:grid}.access-ready-heading span{color:#3f6d60;font-size:12px}.access-sheet{border:1px solid #cbd8e5;border-left:6px solid var(--lavender);grid-template-columns:minmax(0,1fr) 190px;align-items:center;gap:18px;margin-bottom:16px;padding:20px;display:grid}.access-sheet-brand{color:var(--ink);grid-column:1/-1;align-items:center;gap:9px;display:flex}.access-sheet-brand div{gap:1px;display:grid}.access-sheet-brand span,.access-sheet-details p,.access-qr span,.access-sheet-url{color:var(--muted);font-size:11px}.access-sheet-details h3{margin:0 0 4px;font-size:21px}.access-sheet-details p{margin:0 0 18px}.access-sheet-details dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.access-sheet-details dl div{background:#f3f6fa;border:1px solid #dce4ec;padding:10px}.access-sheet-details dt{color:var(--muted);text-transform:uppercase;font-size:10px}.access-sheet-details dd{margin:3px 0 0;font-size:18px;font-weight:800}.access-qr{flex-direction:column;align-items:center;gap:5px;display:flex}.access-qr svg{border:1px solid #d8e0e8;width:176px;height:176px}.access-sheet-url{overflow-wrap:anywhere;grid-column:1/-1;margin:0}.access-delivery-actions{gap:8px;margin-bottom:14px;display:grid}.btn.whatsapp{background:#128c68;justify-content:center}.btn.whatsapp:hover{background:#08785a}@media (max-width:620px){.access-channel-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.access-channel-tabs button{white-space:nowrap;gap:4px;padding:6px 3px;font-size:12px}.access-qr-preview{grid-template-columns:120px minmax(0,1fr);gap:12px;padding:12px}.access-qr-preview svg{width:120px;height:120px}.access-qr-preview strong{font-size:15px}.access-sheet{grid-template-columns:1fr;padding:15px}.access-sheet-brand,.access-sheet-url{grid-column:1}.access-sheet-details dl{grid-template-columns:1fr 1fr}}@media print{body.access-print-mode{background:#fff!important}body.access-print-mode *{visibility:hidden!important}body.access-print-mode .access-sheet,body.access-print-mode .access-sheet *{visibility:visible!important}body.access-print-mode .access-sheet{border:1px solid #8b98a8;border-left:6px solid #7357df;width:calc(100% - 36mm);max-width:174mm;margin:0;position:fixed;top:18mm;left:18mm}}.question-feedback-editor{border-top:1px solid var(--border);gap:14px;margin-top:20px;padding-top:18px;display:grid}.practice-rule{grid-column:1/-1}.practice-workspace{width:min(100%,880px);padding-bottom:40px}.practice-workspace h1{overflow-wrap:anywhere;font-size:25px;line-height:1.3}.practice-workspace h2{font-size:19px;line-height:1.5}.practice-heading{border-bottom:2px solid #b2dacd;justify-content:space-between;align-items:flex-start;gap:20px;padding:24px 0;display:flex}.practice-heading>div{min-width:0}.practice-heading .btn{flex-shrink:0}.practice-overview{background:#e9f5f0;border-radius:6px;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:20px 0;padding:22px 18px;display:grid}.practice-overview>div{gap:7px;display:grid}.practice-overview span{color:#335a50;font-size:13px}.practice-overview strong{color:#153d33;font-size:25px;line-height:1.2}.practice-next-step{margin:18px 0 24px}.practice-next-step p,.practice-toolbar,.practice-notice,.practice-answer>span,.practice-feedback>span{align-items:center;gap:8px;display:flex}.practice-next-step p{color:#655119}.practice-next-step .practice-complete{color:#126650}.practice-toolbar{flex-wrap:wrap;justify-content:space-between;margin:20px 0}.practice-question-nav{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.practice-question-nav button{color:#314251;background:#fff;border:1px solid #9aaac0;border-radius:6px;flex:0 0 44px;width:44px;height:44px;font-weight:700;position:relative}.practice-question-nav button.answered{color:#12664d;background:#e2f4eb;border-color:#4c9f82}.practice-question-nav button>svg{position:absolute;bottom:3px;right:3px}.practice-question-nav button.current{color:#422275;background:#ded4fa;border:2px solid #7043be}.practice-question-nav button:focus-visible,.practice-filters button:focus-visible,.practice-review-item summary:focus-visible{outline-offset:3px;outline:3px solid #7043be}.practice-notice{color:#65470e;background:#fff3d4;border-left:3px solid #ba860e;border-radius:4px;align-items:flex-start;margin:16px 0;padding:14px}.practice-notice svg,.practice-review-item summary>svg{flex-shrink:0}.practice-active-question{background:#fff;border-top:3px solid #54a88d;border-radius:6px;padding:22px}.practice-active-question>h2{overflow-wrap:anywhere;margin:10px 0 18px}.practice-options{gap:10px;display:grid}.practice-filters{border-bottom:1px solid #c7d2df;flex-wrap:wrap;gap:4px;margin:0 0 20px;padding:4px;display:flex}.practice-filters button{color:#48566a;background:0 0;border:0;border-bottom:3px solid #0000;min-height:44px;padding:11px 12px;font-weight:600}.practice-filters button[aria-pressed=true]{color:#492481;background:#eee6ff;border-color:#7946c5;border-radius:4px 4px 0 0}.practice-review-list{gap:12px;display:grid}.practice-review-item{background:#fff;border:1px solid #cbd5e0;border-left-width:4px;border-radius:6px;overflow:hidden}.practice-review-item.incorrect{border-left-color:#c65363}.practice-review-item.correct{border-left-color:#2b9272}.practice-review-item.pending{border-left-color:#b78920}.practice-review-item summary{cursor:pointer;align-items:center;gap:12px;padding:16px;list-style:none;display:flex}.practice-review-item summary::-webkit-details-marker{display:none}.practice-item-number{color:#344359;background:#edf0f5;border-radius:6px;flex:0 0 36px;place-items:center;width:36px;height:36px;font-weight:750;display:grid}.incorrect .practice-item-number{color:#962e42;background:#fce4e8}.correct .practice-item-number{color:#0b654b;background:#def4e9}.pending .practice-item-number{color:#735219;background:#fff0c9}.practice-item-title{overflow-wrap:anywhere;flex:1;min-width:0;font-weight:650;line-height:1.5}.practice-item-title small{color:#526178;margin-top:4px;font-size:12px;font-weight:500;display:block}.practice-review-item.incorrect summary>svg{color:#aa364b}.practice-review-item.correct summary>svg{color:#157558}.practice-review-item.pending summary>svg{color:#90661a}.practice-item-body{padding:0 20px 20px}.practice-answer,.practice-feedback{background:#f3f6f9;border-left:2px solid #bac5d5;margin:12px 0;padding:12px 14px}.practice-answer.correct{background:#e8f7ef;border-color:#3b9b79}.practice-feedback{background:#f0ebfb;border-color:#9472c3}.practice-answer>span,.practice-feedback>span{color:#354154;font-size:12px;font-weight:700}.practice-answer p,.practice-feedback p,.practice-teacher-answer>p{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:7px;line-height:1.65}.practice-empty{text-align:center;color:#526178;padding:30px 16px}.practice-history{border-top:1px solid #bfcddd;margin-top:24px;padding:16px 0}.practice-history>summary{cursor:pointer;min-height:32px;font-weight:650}.practice-history>div{border-bottom:1px solid #e0e5ec;justify-content:space-between;gap:20px;padding:12px 0;display:flex}.practice-teacher-section{border-top:2px solid #93c9b8;margin-top:32px;padding-top:24px}.practice-teacher-answer{border-bottom:1px solid #d0d9e3;padding:20px 0}.practice-teacher-answer h3{font-size:16px;line-height:1.5}.practice-teacher-answer .grade-editor{margin-top:16px}.practice-history form>.btn{margin-top:18px}@media (max-width:600px){.practice-heading{flex-direction:column;gap:12px;padding-top:10px}.practice-workspace h1{font-size:22px}.practice-overview{gap:12px;padding:16px 12px}.practice-overview strong{font-size:21px}.practice-overview span{font-size:12px}.practice-filters button{flex:45%;padding:10px 5px}.practice-next-step .btn{white-space:normal;text-align:left;width:100%}.practice-active-question{padding:16px 12px}.practice-review-item summary{gap:10px;padding:12px}.practice-item-body{padding:0 12px 14px}.practice-history>div{font-size:13px}}
