:root{color:#172033;font-synthesis:none;text-rendering:optimizelegibility;background:#f4f6f9;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select{font:inherit}.page{width:min(1380px,100% - 32px);margin:0 auto;padding:42px 0 96px}.auth-page{place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{background:#fff;border:1px solid #e1e5eb;border-radius:20px;width:min(480px,100%);padding:34px;box-shadow:0 22px 70px #212b3617}.topbar{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px;display:flex}.account{align-items:center;gap:14px;font-weight:650;display:flex}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:#53627a;margin:0 0 8px;font-size:12px;font-weight:800}h1{letter-spacing:-.04em;margin:0;font-size:clamp(34px,5vw,52px);line-height:1}h2{letter-spacing:-.02em;margin:0 0 16px;font-size:24px}.lede{color:#5a6678;max-width:700px;margin:18px 0 22px;line-height:1.65}.lede.compact{margin-top:0}.panel{background:#fff;border:1px solid #e1e5eb;border-radius:18px;padding:28px;box-shadow:0 18px 50px #212b360d}.stack{gap:16px;display:grid}.stack label,.file-field{gap:7px;font-size:14px;font-weight:650;display:grid}input,select{color:#172033;background:#fbfcfd;border:1px solid #ccd3dd;border-radius:9px;width:100%;padding:12px 13px}.two-col{grid-template-columns:1fr 1fr;gap:12px;display:grid}button{color:#fff;cursor:pointer;background:#172033;border:0;border-radius:10px;padding:13px 18px;font-weight:750}button:disabled{opacity:.45;cursor:not-allowed}button.secondary{color:#28354a;background:#fff;border:1px solid #d6dce5;padding:9px 13px}.tabs{gap:6px;margin-bottom:18px;display:flex}.tab{color:#667286;background:0 0;padding:10px 14px}.tab.active{color:#fff;background:#172033}.admin-grid{grid-template-columns:minmax(320px,420px) 1fr;align-items:start;gap:20px;display:grid}.section-heading{justify-content:space-between;align-items:start;gap:20px;margin-bottom:16px;display:flex}.section-heading span{color:#758095;font-size:13px}.user-list{display:grid}.user-row{border-top:1px solid #edf0f4;grid-template-columns:minmax(200px,1fr) auto auto;align-items:center;gap:18px;padding:14px 0;display:grid}.user-row:first-child{border-top:0}.muted{color:#7a8494;font-size:13px;font-weight:400}.role-tags{flex-wrap:wrap;gap:6px;display:flex}.role-tags span{text-transform:uppercase;letter-spacing:.05em;background:#edf1f5;border-radius:999px;padding:6px 8px;font-size:11px;font-weight:800}.upload-form{align-items:end;gap:16px;display:flex}.file-field{flex:1}.filename{color:#677286;font-size:14px}.message{border-radius:12px;margin-top:16px;padding:14px 16px;line-height:1.5}.message.success{background:#edf8f0;border:1px solid #cde8d3}.message.error{background:#fff1f0;border:1px solid #f0cfcb}.preview-heading{border-bottom:1px solid #e7eaf0;justify-content:space-between;align-items:baseline;margin-top:34px;display:flex}.preview-heading h2{margin-bottom:12px}.preview-heading span{color:#6d7788;font-size:14px}.questions{gap:16px;padding-top:18px;display:grid}.question-card{border:1px solid #e2e6ec;border-radius:14px;padding:20px}.question-number{color:#778295;letter-spacing:.07em;text-transform:uppercase;font-size:12px;font-weight:800}.question-card h3{margin:8px 0 16px;font-size:17px;line-height:1.45}.options{gap:8px;display:grid}.option{background:#f7f8fa;border-radius:9px;grid-template-columns:28px 1fr auto;align-items:center;gap:6px;padding:10px 12px;display:grid}.option.correct{background:#edf8f0}.answer-badge{text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:800}@media (width<=850px){.admin-grid{grid-template-columns:1fr}.user-row{grid-template-columns:1fr auto}.role-tags{grid-column:1}}@media (width<=700px){.topbar,.upload-form{flex-direction:column}.upload-form{align-items:stretch}.panel,.auth-card{padding:20px}.two-col{grid-template-columns:1fr}.account{flex-direction:column;align-items:flex-end}.user-row{grid-template-columns:1fr}.role-tags{grid-column:auto}}.row-actions{justify-content:flex-end;gap:8px;display:flex}.row-actions button{white-space:nowrap}@media (width<=850px){.row-actions{grid-column:1/-1;justify-content:flex-start}}textarea{color:#172033;width:100%;font:inherit;resize:vertical;background:#fbfcfd;border:1px solid #ccd3dd;border-radius:9px;padding:12px 13px}.course-admin-grid{grid-template-columns:280px 280px minmax(0,1fr);align-items:start;gap:20px;display:grid}.create-course{position:sticky;top:20px}.course-directory{padding-bottom:18px}.course-list{gap:8px;display:grid}.course-list-item{text-align:left;color:#172033;background:#f7f8fa;border:1px solid #0000;width:100%;padding:13px 14px;display:block}.course-list-item.selected{background:#eef2f7;border-color:#cfd7e2}.course-list-item div{gap:3px;display:grid}.course-list-item div span{color:#5d6879;font-size:13px}.course-list-item small{color:#7a8494;margin-top:7px;display:block}.course-detail-panel{min-height:360px}.status{text-transform:uppercase;letter-spacing:.06em;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:800;display:inline-flex}.status.active{background:#edf8f0}.status.in-progress{color:#735b18;background:#fff5d9}.status.completed{color:#244f86;background:#eaf2ff}.status.inactive{color:#6d7788;background:#f2f3f5}.course-settings{border-bottom:1px solid #e7eaf0;gap:12px;padding-bottom:22px;display:grid}.course-settings label{gap:7px;font-size:14px;font-weight:650;display:grid}.check{grid-template-columns:auto 1fr!important;align-items:center!important;gap:9px!important;display:flex!important}.check input{width:auto}.course-settings .secondary{justify-self:start}.roster-section{padding-top:22px}.roster-heading{justify-content:space-between;align-items:center;gap:14px;display:flex}.roster-heading h3{margin:0}.inline-add{gap:8px;min-width:min(100%,370px);display:flex}.inline-add select{min-width:0}.inline-add button{padding:10px 13px}.compact-list{border-top:1px solid #edf0f4;margin-top:12px;display:grid}.compact-list>div{border-bottom:1px solid #edf0f4;justify-content:space-between;align-items:center;gap:12px;padding:11px 0;display:flex}.compact-list small{color:#7a8494;margin-left:6px}.text-button{color:#39465a;background:0 0;padding:6px 8px}.text-button.danger{color:#9b3c35}.page-section-heading{margin:12px 0 18px}.my-course-layout{grid-template-columns:340px minmax(0,1fr);align-items:start;gap:20px;display:grid}.course-card-grid{gap:12px;display:grid}.course-card{text-align:left;color:#172033;background:#fff;border:1px solid #e1e5eb;padding:20px;box-shadow:0 12px 36px #212b360a}.course-card.selected{border-color:#9cabbf;box-shadow:0 18px 44px #212b3614}.course-card strong{margin:5px 0 7px;font-size:18px;display:block}.course-card p{color:#697487;margin:0;font-weight:400;line-height:1.45}.course-code{letter-spacing:.08em;text-transform:uppercase;color:#65738a;font-size:11px;font-weight:850}.selected-course{min-width:0}.exam-tool{border-top:1px solid #e7eaf0;margin-top:24px;padding-top:24px}.exam-tool h3{margin:0}.student-placeholder{border-top:1px solid #e7eaf0;margin-top:24px;padding-top:22px}.empty-state{text-align:center;padding:34px 12px}.empty-state h3{margin:0 0 7px}.empty-state p{color:#788294;margin:0;line-height:1.5}@media (width<=1100px){.course-admin-grid{grid-template-columns:320px 1fr}.course-detail-panel{grid-column:1/-1}.create-course{position:static}}@media (width<=800px){.course-admin-grid,.my-course-layout{grid-template-columns:1fr}.roster-heading{flex-direction:column;align-items:stretch}.inline-add{width:100%;min-width:0}}@media (width<=560px){.inline-add{flex-direction:column}.compact-list>div{flex-direction:column;align-items:flex-start}}.exam-workspace{border-top:1px solid #e7eaf0;margin-top:28px;padding-top:26px}.exam-list{gap:10px;margin-top:14px;display:grid}.exam-row{background:#fbfcfd;border:1px solid #e2e6ec;border-radius:12px;justify-content:space-between;align-items:center;gap:18px;padding:14px 16px;display:flex}.exam-title-line{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.exam-row small{color:#7a8494;margin-top:5px;display:block}.exam-status{text-transform:uppercase;letter-spacing:.06em;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:850;display:inline-flex}.exam-status.draft{color:#735b18;background:#fff5d9}.exam-status.published{color:#25613a;background:#edf8f0}.exam-status.archived{color:#5f6875;background:#eef0f3}.button-link{white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;padding:9px 13px;font-weight:750;text-decoration:none;display:inline-flex}.button-link.secondary{color:#28354a;background:#fff;border:1px solid #d6dce5}.student-exam-state{text-align:right;justify-items:end;gap:5px;display:grid}.upload-form.vertical{align-items:stretch;display:grid}.draft-actions{flex-wrap:wrap;align-items:center;gap:14px;margin-top:14px;display:flex}.exam-review{border-top:2px solid #e0e5ec;margin-top:24px;padding-top:24px}.exam-review .questions{max-height:900px;padding-right:4px;overflow:auto}.exam-review .section-heading{z-index:1;background:#fff;padding:4px 0 12px;position:sticky;top:0}.exam-review .section-heading h3{margin:0 0 5px}.exam-review .section-heading p{margin-bottom:0}@media (width<=760px){.exam-row{flex-direction:column;align-items:flex-start}.exam-row .row-actions{justify-content:flex-start}.student-exam-state{text-align:left;justify-items:start}}.attempt-shell{gap:22px;display:grid}.attempt-header{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.attempt-header h3{margin:0 0 8px;font-size:28px}.question-navigator{background:#f6f8fa;border:1px solid #e2e6ec;border-radius:14px;grid-template-columns:repeat(10,minmax(34px,1fr));gap:7px;padding:14px;display:grid}.question-navigator button{color:#566276;background:#fff;border:1px solid #d9dfe7;border-radius:8px;padding:9px 4px;font-size:12px}.question-navigator button.answered{color:#255f39;background:#edf8f0;border-color:#bee0c7}.question-navigator button.current{outline-offset:1px;outline:2px solid #172033}.taking-question{border:1px solid #dfe4eb;border-radius:16px;padding:26px}.taking-question h2{margin:10px 0 22px;font-size:23px;line-height:1.4}.taking-options{gap:10px;display:grid}.taking-option{cursor:pointer;background:#fbfcfd;border:1px solid #dfe4eb;border-radius:11px;grid-template-columns:auto 28px 1fr;align-items:center;gap:8px;padding:14px 15px;display:grid}.taking-option:hover{border-color:#aeb9c8}.taking-option.selected{background:#edf3f9;border-color:#8296af}.taking-option input{width:auto;margin:0}.save-state{text-align:right;color:#667286;margin-top:12px;font-size:13px}.attempt-actions{grid-template-columns:auto 1fr auto;align-items:center;gap:12px;display:grid}.attempt-submit{justify-content:center;align-items:center;gap:13px;display:flex}.result-card{text-align:center;padding:18px 8px}.result-card h2{font-size:30px}.score-display{justify-content:center;align-items:baseline;gap:8px;margin:28px 0 20px;display:flex}.score-display strong{letter-spacing:-.06em;font-size:72px}.score-display span{color:#697487;font-size:24px}.result-metrics{grid-template-columns:repeat(3,1fr);gap:12px;max-width:560px;margin:0 auto 28px;display:grid}.result-metrics div{background:#f6f8fa;border-radius:12px;gap:4px;padding:16px;display:grid}.result-metrics strong{font-size:24px}.result-metrics span{color:#697487;text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:800}.results-list{border-top:1px solid #e6eaf0;display:grid}.result-row{border-bottom:1px solid #e9edf2;grid-template-columns:minmax(180px,1.4fr) 120px 90px minmax(160px,1fr);align-items:center;gap:14px;padding:13px 0;display:grid}.result-row>div{gap:3px;display:grid}.result-row small{color:#7a8494}.attempt-status{text-transform:uppercase;letter-spacing:.05em;background:#eef0f3;border-radius:999px;justify-self:start;padding:5px 8px;font-size:10px;font-weight:850}.attempt-status.graded{color:#25613a;background:#edf8f0}.attempt-status.in_progress{color:#735b18;background:#fff5d9}.student-exam-state button{padding:9px 12px}@media (width<=760px){.attempt-header{flex-direction:column}.question-navigator{grid-template-columns:repeat(5,1fr)}.attempt-actions{grid-template-columns:1fr 1fr}.attempt-submit{flex-direction:column;grid-area:1/1/auto/-1}.result-row{grid-template-columns:1fr 1fr}.result-row>small{grid-column:1/-1}.score-display strong{font-size:58px}}@media (width<=460px){.question-navigator{grid-template-columns:repeat(4,1fr)}.taking-question{padding:18px}.taking-option{grid-template-columns:auto 24px 1fr}.result-metrics{grid-template-columns:1fr}}.answer-review-heading{text-align:left;border-top:1px solid #e1e5eb;justify-content:space-between;align-items:flex-end;gap:18px;margin-top:34px;padding-top:28px;display:flex}.answer-review-heading h3{margin:0;font-size:24px}.answer-review{text-align:left;gap:16px;margin-top:18px;display:grid}.review-question{background:#fff;border:1px solid #dfe4eb;border-radius:15px;padding:20px}.review-question-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.review-question h3{margin:8px 0 16px;font-size:17px;line-height:1.5}.review-outcome{text-transform:uppercase;letter-spacing:.06em;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:850}.review-outcome.correct{color:#25613a;background:#edf8f0}.review-outcome.incorrect{color:#8a3d36;background:#fff1f0}.review-options{gap:8px;display:grid}.review-option{background:#f7f8fa;border:1px solid #0000;border-radius:9px;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:7px;padding:11px 12px;display:grid}.review-option.correct{background:#edf8f0;border-color:#c6e2cd}.review-option.selected-wrong{background:#fff1f0;border-color:#efcfcb}.review-badges{flex-wrap:wrap;justify-content:flex-end;gap:5px;display:flex}.review-badges span{text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;border-radius:999px;padding:4px 7px;font-size:9px;font-weight:850}.your-answer{color:#43536a;background:#e8edf4}.correct-answer{color:#205833;background:#cfe9d5}.review-summary{color:#586579;margin:12px 0 0;font-size:13px;line-height:1.5}.result-footer{justify-content:center;margin-top:28px;display:flex}@media (width<=620px){.answer-review-heading{flex-direction:column;align-items:flex-start}.review-option{grid-template-columns:26px 1fr}.review-badges{grid-column:1/-1;justify-content:flex-start}.review-question-heading{align-items:flex-start}}.class-picker{border:1px solid #dce2ea;border-radius:10px;padding:12px 13px}.class-picker legend{padding:0 5px;font-size:13px;font-weight:750}.class-picker label{align-items:center;gap:7px;font-weight:600;display:flex}.class-picker input,.teacher-class-editor input{width:auto}.class-tags{flex-wrap:wrap;gap:5px;margin-top:7px;display:flex}.class-tags span{color:#47576e;background:#eef2f7;border-radius:999px;padding:4px 7px;font-size:10px;font-weight:800}.class-tags .unassigned{color:#8a3d36;background:#fff1f0}.user-row-classes{grid-template-columns:minmax(190px,1fr) auto minmax(150px,220px) auto}.inline-class-editor select{padding:8px 9px;font-size:12px}.teacher-class-editor{gap:7px;display:grid}.teacher-class-editor>div{flex-wrap:wrap;gap:5px;display:flex}.teacher-class-editor label{border:1px solid #d8dee7;border-radius:7px;align-items:center;gap:3px;padding:5px 6px;font-size:11px;display:flex}.compact-button{font-size:11px;padding:7px 9px!important}.class-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.class-card .section-heading h2{margin:0}.class-rosters{border-top:1px solid #edf0f4;grid-template-columns:1fr 1fr;gap:22px;padding-top:16px;display:grid}.class-rosters h3{margin:0 0 9px;font-size:14px}.class-rosters ul{gap:7px;margin:0;padding:0;list-style:none;display:grid}.class-rosters li{font-size:13px}.class-rosters small{color:#7a8494}.result-row-with-action{grid-template-columns:minmax(170px,1.3fr) 110px 90px minmax(150px,1fr) auto}.teacher-submission .answer-review{max-height:1100px;padding-right:4px;overflow:auto}.teacher-metrics{max-width:520px;margin:10px 0 24px}.teacher-submission .review-badges .your-answer:after{content:""}@media (width<=950px){.user-row-classes{grid-template-columns:1fr auto}.inline-class-editor,.user-row-classes .row-actions{grid-column:1/-1}.class-grid{grid-template-columns:1fr}.result-row-with-action{grid-template-columns:1fr 1fr}.result-row-with-action>small,.result-row-with-action>div:last-child{grid-column:1/-1}.class-rosters{grid-template-columns:1fr}}.topbar{background:#fff;border:1px solid #e1e5eb;border-radius:18px;align-items:center;padding:14px 18px;box-shadow:0 12px 36px #212b360d}.topbar-brand{align-items:center;gap:20px;min-width:0;display:flex}.school-logo{border-radius:8px;flex:none;width:clamp(220px,29vw,320px);max-width:42vw;height:auto;display:block}.topbar-title{min-width:0}.topbar-title .eyebrow{margin-bottom:6px}.topbar-title h1{font-size:clamp(28px,3vw,40px)}@media (width<=700px){.topbar-brand{flex-direction:column;align-items:flex-start;gap:12px;width:100%}.school-logo{width:min(320px,100%);max-width:100%}.account{justify-content:space-between;width:100%;flex-direction:row!important;align-items:flex-start!important}}.toast-region{z-index:1200;pointer-events:none;gap:10px;width:min(390px,100vw - 32px);display:grid;position:fixed;top:22px;right:22px}.toast{pointer-events:auto;background:#fff;border:1px solid #dfe4eb;border-radius:14px;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:11px;padding:13px 14px;animation:.18s ease-out toast-enter;display:grid;box-shadow:0 18px 55px #17203329}.toast-success{border-left:4px solid #3c8a57}.toast-error{border-left:4px solid #b84a43}.toast-info{border-left:4px solid #526f99}.toast-icon{color:#44536a;background:#eef2f7;border-radius:999px;place-items:center;width:28px;height:28px;font-size:14px;font-weight:900;display:grid}.toast-success .toast-icon{color:#2d6e43;background:#e9f6ed}.toast-error .toast-icon{color:#9b3c35;background:#fff0ef}.toast-info .toast-icon{color:#46658f;background:#edf2f9}.toast-message{color:#263349;font-size:13px;font-weight:650;line-height:1.4}.toast-close{color:#7a8494;background:0 0;border:0;border-radius:7px;padding:3px 6px;font-size:22px;line-height:1}.toast-close:hover{color:#354258;background:#f1f3f6}@keyframes toast-enter{0%{opacity:0;transform:translateY(-8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-backdrop{z-index:1100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0d16267a;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal-card{background:#fff;border:1px solid #dfe4eb;border-radius:18px;grid-template-columns:auto minmax(0,1fr);gap:16px;width:min(480px,100%);padding:25px;animation:.16s ease-out modal-enter;display:grid;box-shadow:0 28px 90px #0b132247}.modal-symbol{color:#405d86;background:#edf2f9;border-radius:999px;place-items:center;width:40px;height:40px;font-size:18px;font-weight:900;display:grid}.modal-symbol.destructive{color:#a43f38;background:#fff0ef}.modal-copy h2{margin:1px 0 9px;font-size:21px}.modal-message{color:#647084;margin:0;font-size:14px;line-height:1.55}.modal-message p{margin:0}.modal-actions{grid-column:1/-1;justify-content:flex-end;gap:9px;margin-top:5px;display:flex}.danger-button{background:#a43f38}.danger-button:hover{background:#8f342f}.input-modal{display:block}.input-modal .modal-copy{gap:11px;display:grid}.modal-input-label{gap:7px;margin-top:4px;font-size:13px;font-weight:750;display:grid}.input-modal .modal-actions{margin-top:20px}@keyframes modal-enter{0%{opacity:0;transform:translateY(7px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=600px){.toast-region{top:12px;right:16px}.modal-backdrop{padding:14px}.modal-card{padding:20px}.modal-actions{flex-direction:column-reverse}.modal-actions button{width:100%}}
