:root{--brand:#a81930;--accent:#97162b;--muted:#647180;color:#233344;background:#f7f8fa;font-family:"Segoe UI",system-ui,sans-serif}body{background:#f7f8fa}button{border-radius:7px;font-weight:600}button.secondary{background:#eef1f5;color:#334454}h1{font-size:1.85rem;font-weight:650;letter-spacing:-.035em}h2{font-weight:650;letter-spacing:-.015em}.panel{border-radius:10px;border-color:#e0e4ea;box-shadow:none;padding:1.4rem}input,select,textarea{border-color:#c7cfd8;border-radius:6px}.workspace{min-width:0;min-height:100vh}.has-nav .workspace{margin-left:104px}.global-nav{position:fixed;inset:0 auto 0 0;width:104px;display:flex;flex-direction:column;gap:0;flex-wrap:nowrap;background:#97162b;color:#fff;padding:20px 0;margin:0;z-index:12;border:0}.rail-brand{display:flex;align-items:center;flex-direction:column;gap:4px;margin-bottom:24px}.rail-brand b{font-size:2.1rem;font-weight:800;border:2px solid #ffffff88;border-radius:14px;width:46px;height:46px;line-height:40px;text-align:center}.rail-brand span{font-size:11px;letter-spacing:.035em}.global-nav button{border:0;border-radius:0;background:transparent;color:#fff;min-height:82px;padding:13px 4px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;font-size:11px;line-height:1.35;text-align:center}.global-nav button.active{background:#fff;color:#97162b;box-shadow:inset 4px 0 #d9a32d}.global-nav button:hover{filter:none;background:#ffffff1c}.global-nav button.active:hover{background:#fff}.rail-bottom{margin-top:auto;writing-mode:vertical-rl;align-self:center;opacity:.65;font-size:11px;letter-spacing:.12em}.topbar{min-height:94px;display:flex;align-items:center;gap:20px;background:#fff;color:#263645;padding:18px 32px;border-bottom:1px solid #e1e6ec}.topbar small{color:#647180}.breadcrumb{display:flex;gap:12px;align-items:center;flex:1;font-size:14px;min-width:140px}.breadcrumb>span:first-child{color:#97162b;font-weight:700}.crumb-divider{color:#b6c0c9}.profile{display:flex;gap:11px;align-items:center}.profile b{font-size:13px}.profile small{font-size:11px}.avatar{width:38px;height:38px;border-radius:50%;background:#fbe8ec;color:#97162b;display:grid;place-items:center;font-weight:700;font-size:13px;flex-shrink:0}.header-actions{gap:7px}.header-actions button{background:#f1f3f6;color:#3d4d5d;padding:.45rem .65rem;font-size:11px;border:1px solid #e2e6eb}.wrap{max-width:1600px;padding:32px;margin:auto}.page-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 28px}.page-intro h1{margin:7px 0 9px}.page-intro p{color:#637080;max-width:65ch;font-size:14px}.eyebrow{font-size:10px;font-weight:750;letter-spacing:.15em;color:#97162b}.date-pill{padding:8px 14px;border:1px solid #e2e7ed;border-radius:7px;font-size:12px;background:#fff;white-space:nowrap;color:#5a6979}.dashboard-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:28px;align-items:start}.dashboard-layout>section{min-width:0}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 18px}.section-heading h2{margin:0;font-size:1.2rem}.badge{border-radius:5px;background:#eef2f6;color:#4a5c6f;font-size:11px;padding:.3rem .6rem}.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,255px),1fr));gap:22px}.course-card{border:1px solid #dfe5eb;border-radius:10px;overflow:hidden;background:#fff;box-shadow:0 3px 6px #1b354005;min-width:0}.course-cover{height:130px;position:relative;display:flex;align-items:flex-start;justify-content:space-between;padding:18px;color:#fff;overflow:hidden}.course-cover>span:first-child{font-size:12px;background:#0002;border:1px solid #ffffff33;border-radius:5px;padding:4px 9px;z-index:1}.cover-mark{position:absolute;right:18px;bottom:4px;opacity:.17;transform:rotate(-12deg)}.cover-mark svg{width:105px;height:105px}.course-color-0{background:#237c92}.course-color-1{background:#6c54a3}.course-color-2{background:#a35e2c}.course-color-3{background:#397a62}.course-color-4{background:#4c6b9f}.course-content{padding:20px}.course-content>small{font-size:10px}.course-content h2{font-size:1.08rem;color:#3d596f;margin:8px 0 5px;line-height:1.45;overflow-wrap:anywhere}.course-content p{font-size:12px;color:#5f6e7e}.course-content button{background:transparent;color:#97162b;border:1px solid #e4d4d8;font-size:12px;width:100%}.course-counts{display:flex;gap:14px;border-top:1px solid #edf0f3;padding-top:14px;margin-top:17px;color:#637183;font-size:11px}.dashboard-aside .panel h2{font-size:1.05rem;margin-bottom:15px}.dashboard-aside .panel p{font-size:13px}.dashboard-aside button.secondary{font-size:12px;margin-top:14px}.todo-number{font-size:2.3rem;line-height:1.2;color:#97162b;font-weight:600}.task-list{list-style:none;padding:0;margin:0}.task-list li{display:flex;align-items:flex-start;gap:12px;padding:14px 0;border-top:1px solid #edf0f3}.task-date{font-size:10px;white-space:nowrap;padding:4px 6px;border-radius:4px;background:#f1f3f6;color:#526170}.text-button{border:0;background:none;color:#2d586e;padding:0;font-size:12px;text-align:left;line-height:1.5}.task-list small{font-size:10px;margin-top:3px}.empty-state{padding:38px}.empty-state p{max-width:58ch;color:#637080}.course-tabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid #d9e1e8;margin-bottom:22px}.course-tabs button{border:0;border-radius:0;background:transparent;color:#5b6979;padding:12px 18px;font-size:13px;border-bottom:3px solid transparent}.course-tabs button.active{color:#97162b;border-color:#97162b;font-weight:700}.lesson.active{background:#fff;color:#97162b;border-color:#97162b;box-shadow:inset 3px 0 #97162b}.lecture{background:#f7f8fa;padding:24px;line-height:1.85}.collection-item{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:22px 0;border-top:1px solid #e5eaf0}.collection-item p{color:#5d6d7e;font-size:14px}.collection-item>button{flex-shrink:0;font-size:12px}.calendar-table{table-layout:fixed;min-width:640px}.calendar-table th{text-align:center}.calendar-table td{height:112px;border:1px solid #e5e9ee;padding:8px;overflow-wrap:anywhere}.calendar-table .is-today{background:#fff7f8}.calendar-day{font-size:12px;display:inline-grid;place-items:center;width:25px;height:25px;margin-bottom:5px}.is-today .calendar-day{background:#a81930;color:#fff;border-radius:50%}.calendar-event{display:block;width:100%;text-align:left;background:#e8f1f5;color:#285870;font-size:10px;font-weight:600;padding:5px;margin:3px 0;border-left:3px solid #237c92;border-radius:3px;overflow-wrap:anywhere}.calendar-event small{font-size:9px;color:#5e7482}.admin-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:25px 0}.admin-metrics strong{font-size:28px;color:#97162b}.admin-overview>p{max-width:80ch;color:#617080}.stat{color:#97162b}.auth .hero{background:#97162b;color:#fff}footer{font-size:11px;margin-top:20px}
@media(max-width:1180px){.dashboard-layout{grid-template-columns:minmax(0,1fr) 240px;gap:20px}.topbar{flex-wrap:wrap;gap:12px;padding:17px 24px}.header-actions{margin-left:auto}.wrap{padding:24px}.profile{margin-left:auto}.breadcrumb{flex-basis:40%}}
@media(max-width:900px){.dashboard-layout{grid-template-columns:1fr}.dashboard-aside{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.dashboard-aside .panel{margin:0}.page-intro{align-items:flex-start}.date-pill{display:none}.topbar .header-actions{flex-basis:100%;margin-left:49px}.profile b{max-width:200px;display:block;overflow-wrap:anywhere}}
@media(max-width:760px){.has-nav .workspace{margin-left:0}.global-nav{inset:auto 0 0;width:100%;height:78px;flex-direction:row;align-items:stretch;padding:0;border-top:1px solid #a52e40}.global-nav .rail-brand,.global-nav .rail-bottom{display:none}.global-nav button{flex:1;min-width:0;min-height:76px;font-size:9px;padding:9px 3px;gap:5px}.global-nav button.active{box-shadow:inset 0 3px #d9a32d}.global-nav svg{width:22px;height:22px}.workspace{padding-bottom:82px}.topbar{padding:14px 16px}.breadcrumb{flex:1;min-width:0;font-size:12px}.profile{margin:0;max-width:100%}.profile b{max-width:170px;font-size:11px}.profile small{font-size:9px}.avatar{width:32px;height:32px}.topbar .header-actions{margin:0;flex-basis:100%;gap:6px}.header-actions button{font-size:10px;padding:7px 9px}.wrap{padding:20px 14px}.page-intro{margin-bottom:22px;gap:12px;flex-wrap:wrap}.page-intro h1{font-size:1.45rem}.page-intro p{font-size:12px}.dashboard-aside{grid-template-columns:1fr;gap:14px}.course-grid{gap:18px}.course-cover{height:118px}.course-tabs button{flex:1;padding:10px 8px;font-size:12px}.collection-item{align-items:flex-start;flex-direction:column;gap:12px}.panel{padding:18px}.empty-state{padding:25px}.page-intro .actions button{font-size:11px;padding:8px 10px}.calendar-table td{height:95px}.admin-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}}
@media print{.global-nav,.topbar,.course-tabs{display:none!important}.has-nav .workspace{margin:0}.workspace{padding-bottom:0}.calendar-table{min-width:0}}

/* Phase two: course communication, due dates, attachments and review. */
.post-row{display:flex;gap:20px;justify-content:space-between;align-items:center;padding:24px 0;border-top:1px solid var(--line,#e1e5eb)}
.post-row h3{margin:8px 0}.post-row p{max-width:720px;color:#526070}.post-flags{display:flex;gap:6px;flex-wrap:wrap}
.thread-topic .pre{padding:20px 0;font-size:1.05rem;line-height:1.8}
.reply-row{padding:22px 0;border-bottom:1px solid #e1e5eb}.reply-row .actions button{font-size:.8rem;padding:6px 10px}.reply-form{padding-top:24px}
.post-editor textarea{min-height:240px}.badge-warning{background:#fff0d8!important;color:#894e00!important}
.deadline-strip{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:14px 16px;background:#f7f9fb;border:1px solid #e1e5eb;border-radius:8px;margin:14px 0;font-size:.86rem}
.file-chip{display:flex;gap:12px;align-items:center;justify-content:space-between;background:#f3f7fb;border:1px solid #dce5ef;border-radius:8px;padding:12px 14px;margin:12px 0;overflow-wrap:anywhere}.file-chip small{display:block;color:#617085}.file-chip button{flex-shrink:0}
.attachment-field{padding:12px 0}input[type=file]{max-width:100%;padding:12px;background:#fafbfd}
.schedule-fields{border:1px solid #dce3eb;border-radius:8px;margin:22px 0;padding:16px}.schedule-fields legend{font-weight:700;padding:0 8px}.schedule-fields .grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.review-layout{display:grid;grid-template-columns:285px minmax(0,1fr);gap:22px;align-items:start}.review-queue{padding:10px;max-height:760px;overflow:auto}.review-item{display:flex;flex-direction:column;gap:5px;text-align:left;background:#fff;color:#273345;border:1px solid transparent;border-radius:6px;width:100%;padding:16px;margin:0 0 7px}.review-item.active{border-color:#97162b;background:#fcf0f2;color:#8a1226}.review-item:hover{background:#f4f6f9;color:#273345}.review-item small{color:#647187}.review-item strong{font-size:.94rem}.review-item span{font-size:.85rem}.submission-paper{padding:24px;background:#fafbfd;border:1px solid #e1e5eb;border-radius:8px;min-height:150px;line-height:1.8}.review-detail{min-width:0}.review-detail form{border-top:1px solid #e1e5eb;margin-top:26px;padding-top:24px}.review-count{font-size:2.3rem;font-weight:750;color:#97162b;text-align:center}.review-count small{display:block;font-size:.8rem;font-weight:400;color:#647187}
.calendar-deadline{background:#fff1db!important;color:#895300!important;border-left-color:#cc8100!important}
.course-tabs{flex-wrap:wrap}.course-tabs button{white-space:nowrap}
.recent-announcement{padding:12px 0;border-bottom:1px solid #e1e5eb}.recent-announcement small{display:block;color:#657285}
@media(max-width:760px){.review-layout{grid-template-columns:minmax(0,1fr)}.review-queue{display:flex;gap:8px;max-height:180px;overflow:auto}.review-item{min-width:220px;max-width:260px;margin:0}.post-row{align-items:flex-start;flex-direction:column;gap:10px}.deadline-strip{align-items:flex-start;flex-direction:column;gap:8px}.file-chip{align-items:flex-start;flex-direction:column}.schedule-fields .grid{grid-template-columns:minmax(0,1fr)}.schedule-fields{padding:12px;min-width:0}.global-nav button{min-width:0}.global-nav button span{font-size:.6rem}}

/* Stage three: inbox, notifications, rubrics and learning paths. */
.global-nav{overflow-y:auto}.global-nav button{position:relative;flex-shrink:0}.rail-brand{flex-shrink:0}.global-nav .more-trigger{display:none}.nav-count{position:absolute;top:8px;right:10px;min-width:19px;height:19px;border-radius:12px;background:#fff;color:#97162b;padding:1px 5px;font-size:10px;line-height:17px;border:1px solid #d8a4ad}.mobile-more[hidden]{display:none!important}.mobile-more{display:none}
.inbox-toolbar{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:18px;align-items:end}.inbox-toolbar label{margin:0}.inbox-toolbar form{display:flex;align-items:end;gap:8px}.inbox-toolbar form label{flex:1;min-width:0}.inbox-toolbar form button{margin:0;height:43px}
.inbox-layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:22px;align-items:stretch}.inbox-list{padding:8px;max-height:760px;overflow:auto}.conversation-item{display:block;text-align:left;width:100%;padding:18px 14px;background:#fff;color:#344458;border:1px solid transparent;border-bottom:1px solid #e5e9ee;border-radius:5px;font-weight:400}.conversation-item:hover{background:#f5f7fa;color:#344458}.conversation-item.active{background:#fdf0f2;border-color:#c76a79}.conversation-item strong{font-size:.9rem}.conversation-item b{display:block;font-size:.85rem;margin:9px 0 5px}.conversation-item small{font-size:.7rem;color:#67798c}.conversation-preview{display:block;color:#6b7a8a;font-size:.8rem;line-height:1.5;margin-bottom:8px;overflow-wrap:anywhere}.unread-dot{display:inline-block;width:9px;height:9px;flex-shrink:0;border-radius:50%;background:#b1233d}.conversation-item.unread{border-left:3px solid #a81930}
.message-thread{min-width:0;display:flex;flex-direction:column;min-height:540px}.message-thread-heading{padding:0 0 18px;border-bottom:1px solid #e1e7ed}.message-thread-heading h2{margin:8px 0}.message-thread-heading p{color:#68788a;font-size:.85rem;margin:0}.message-stream{display:flex;flex-direction:column;gap:16px;padding:24px 0;max-height:540px;overflow:auto;scroll-behavior:smooth}.message-bubble{background:#f1f4f8;border:1px solid #e1e8ef;padding:16px 18px;border-radius:2px 14px 14px 14px;max-width:88%;align-self:flex-start;overflow-wrap:anywhere}.message-bubble.mine{background:#fceef1;border-color:#efdae0;border-radius:14px 2px 14px 14px;align-self:flex-end}.message-bubble strong{font-size:.8rem}.message-bubble p{line-height:1.7;margin:9px 0;font-size:.94rem}.message-bubble small{font-size:.7rem;color:#6a788b}.message-reply{border-top:1px solid #e1e7ed;padding-top:20px;margin-top:auto}.message-reply textarea{min-height:100px}.message-empty{margin:auto;max-width:420px;text-align:center}.empty-symbol{font-size:3.8rem;color:#bfa1aa}.mobile-inbox-back{display:none}
.notification-item{display:flex;align-items:center;gap:18px;text-align:left;width:100%;padding:21px 12px;border:0;border-bottom:1px solid #e3e8ee;background:#fff;color:#334658;border-radius:0;font-weight:400}.notification-item:hover{background:#f5f7fa;color:#334658}.notification-item.unread{background:#fcf5f6}.notification-item>span:nth-child(2){flex:1;min-width:0}.notification-item strong{font-size:.94rem;line-height:1.5}.notification-item small{font-size:.75rem;color:#6d7c8b;margin-top:6px}.notice-symbol{width:40px;height:40px;border-radius:50%;background:#f5e8eb;color:#97162b;display:grid;place-items:center;font-weight:700;flex-shrink:0}
.rubric-editor,.path-settings,.rubric-grading{border:1px solid #dce3eb;padding:20px;border-radius:8px;margin:24px 0;min-width:0}.rubric-editor legend,.path-settings legend,.rubric-grading legend{font-weight:700;padding:0 8px}.criterion-row{display:grid;grid-template-columns:minmax(0,1fr) 140px;gap:12px;margin:16px 0;padding:18px;background:#f7f9fb;border-radius:7px;border:1px solid #e1e7ee}.criterion-row label{margin:0;min-width:0}.criterion-row>label:nth-child(3){grid-column:1/-1}.criterion-row>button{grid-column:1/-1;justify-self:start;font-size:.75rem}.rubric-editor output{font-weight:700;color:#24745a}.rubric-editor output.invalid-total{color:#b33d33}.rubric-summary{border:1px solid #e1e7ee;border-radius:8px;padding:18px;margin:18px 0}.rubric-summary table{min-width:420px}.rubric-summary td{vertical-align:top}.rubric-summary small{display:block;max-width:44ch;margin-top:7px;color:#697b8d;white-space:pre-wrap}.rubric-score-row{display:grid;grid-template-columns:minmax(0,1.5fr) 110px minmax(0,1fr);gap:18px;border-bottom:1px solid #e0e7ee;padding:18px 0;align-items:start}.rubric-score-row label{margin:0;font-size:.85rem}.rubric-score-row p{font-size:.85rem;color:#637589;white-space:pre-wrap}.rubric-grade-total{display:block;font-size:1.2rem;font-weight:700;color:#97162b;padding:18px 0 0}
progress{accent-color:#237c76;vertical-align:middle;max-width:100%}.course-progress{width:100%;height:13px;margin:15px 0 20px}.card-progress{margin-top:15px}.card-progress progress{width:100%;height:8px}.card-progress small{font-size:.72rem;color:#657688;margin-top:6px}.lesson-status{border-bottom:1px solid #e2e7ed;padding:4px 0 18px;margin-bottom:18px}.lesson-status p{font-size:.85rem;color:#617387}.badge-complete{background:#e6f4ec;color:#25714c}.progress-lesson{display:flex;gap:20px;align-items:center;padding:24px 0;border-top:1px solid #e3e8ed}.progress-lesson>div:nth-child(2){flex:1;min-width:0}.progress-lesson h3{margin:0 0 9px}.progress-lesson p{font-size:.85rem;color:#617387}.progress-step{height:40px;width:40px;flex-shrink:0;border-radius:50%;border:1px solid #ced8e2;background:#f5f7f9;display:grid;place-items:center;font-weight:700;color:#718294}.progress-step.done{background:#e6f4ec;color:#267653;border-color:#b7dcc9}
@media(max-width:1050px){.inbox-toolbar{grid-template-columns:1fr 1fr}.inbox-toolbar form{grid-column:1/-1}.inbox-layout{grid-template-columns:270px minmax(0,1fr)}}
@media(max-width:760px){.global-nav{overflow:visible}.global-nav .desktop-only{display:none}.global-nav .more-trigger{display:flex}.global-nav button{min-height:76px;flex:1}.nav-count{top:3px;right:12px}.mobile-more{display:flex;position:fixed;bottom:90px;left:14px;right:14px;padding:12px;background:#fff;border:1px solid #dce4ed;box-shadow:0 10px 35px #24364530;border-radius:12px;z-index:25;gap:4px;flex-direction:column}.mobile-more button{display:flex;align-items:center;gap:15px;text-align:left;background:#fff;color:#344658;padding:15px;border:0;font-size:.95rem}.mobile-more button:hover{background:#f6f0f2}.mobile-more svg{width:23px;height:23px;color:#97162b}.inbox-toolbar{grid-template-columns:minmax(0,1fr);gap:14px}.inbox-toolbar form{grid-column:auto}.inbox-layout{grid-template-columns:minmax(0,1fr)}.inbox-list{max-height:430px}.message-thread{min-height:420px}.inbox-layout.has-thread .inbox-list{display:none}.mobile-inbox-back{display:block;align-self:flex-start;margin-bottom:20px}.message-bubble{max-width:94%;padding:14px}.message-stream{max-height:480px}.rubric-score-row{grid-template-columns:minmax(0,1fr);gap:12px}.criterion-row{grid-template-columns:minmax(0,1fr);padding:13px}.criterion-row>label:nth-child(3),.criterion-row>button{grid-column:auto}.rubric-editor,.path-settings,.rubric-grading{padding:12px}.progress-lesson{flex-wrap:wrap;gap:13px}.progress-lesson>button{margin-left:53px}.notification-item{gap:12px;padding:18px 5px}.notice-symbol{width:31px;height:31px}.notification-item strong{font-size:.85rem}}

.rubric-score-row textarea{min-height:70px;height:70px}@media(max-width:760px){.inbox-toolbar.thread-open{display:none}}

/* Stage four: independent courses, module outline and reusable question banks. */
.curriculum-course-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:22px}.curriculum-course{margin:0;min-width:0}.curriculum-course h2{margin:12px 0}.curriculum-course h3{font-size:1rem;margin-top:24px}.curriculum-course>small{color:#657589;line-height:1.6}.curriculum-course form{border-top:1px solid #e2e8ef;padding-top:18px;margin-top:18px}.section-assignment{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #e7ebf0;padding:16px 0}.section-assignment small{display:block;color:#687a8d;font-size:.75rem;margin-top:5px}.section-assignment .actions{gap:5px}.section-assignment button{font-size:.72rem;padding:7px 10px}.teacher-list,.module-lesson-choices{border:1px solid #dce4ed;border-radius:8px;padding:16px;margin:20px 0}.teacher-list legend,.module-lesson-choices legend{font-weight:650;padding:0 7px}.teacher-list .check,.module-lesson-choices .check{padding:8px;margin:0;border-bottom:1px solid #edf0f4}
.module-outline{border:1px solid #dce4ed;background:#fff;border-radius:8px;overflow:hidden;margin-bottom:15px}.module-outline summary{background:#f3f6f9;padding:14px;font-weight:700;cursor:pointer;color:#304a5e}.module-outline summary small{display:block;margin-top:5px;font-size:.68rem;color:#697b8e;font-weight:400}.module-outline .lesson{border:0;border-top:1px solid #e4eaf0;border-radius:0;margin:0;box-shadow:none;text-align:left}.module-outline .lesson.active{background:#fff0f3;border-left:3px solid #a81930;color:#97162b}.module-description,.module-prerequisite{padding:0 12px;font-size:.75rem;color:#687b8d;white-space:pre-wrap}.module-prerequisite{color:#916024}.module-tools{display:flex;flex-wrap:wrap;gap:5px;padding:10px;border-top:1px solid #e1e7ed}.module-tools button{font-size:.64rem;padding:6px 7px}.unassigned-lessons>h3{font-size:.9rem;color:#65788b}.bank-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:20px}.bank-toolbar>form{grid-column:1/-1;display:grid;grid-template-columns:minmax(180px,1fr) 180px 140px auto;gap:14px;align-items:end}.bank-toolbar label{margin:0;min-width:0}.bank-toolbar button{height:43px}.bank-import{padding:20px;background:#f7f9fb;border:1px dashed #d4dfe9;border-radius:8px;margin:24px 0}.bank-import small{display:block;color:#6d7f90;margin:10px 0;font-size:.75rem}.bank-question{border:1px solid #e0e7ef;border-radius:8px;padding:18px;margin:14px 0}.bank-question summary{cursor:pointer;display:flex;gap:12px;align-items:start;flex-direction:column}.bank-question summary strong{font-size:.95rem;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.bank-question ol{line-height:1.8;color:#536a7e}.bank-pagination{display:flex;align-items:center;justify-content:center;gap:16px;padding:20px 0 0}.bank-pagination small{color:#6a7d8f}.quiz-bank-picker select{margin-bottom:18px}.bank-pick-row{display:flex;gap:13px;align-items:start;padding:15px;border:1px solid #e1e8ef;border-radius:7px;margin:10px 0}.bank-pick-row input{width:auto;margin-top:6px;flex-shrink:0}.bank-pick-row strong{display:block;font-size:.85rem;line-height:1.6;margin-top:8px;font-weight:500}.bank-pick-row>span{min-width:0;overflow-wrap:anywhere}
@media(min-width:761px){.global-nav button{min-height:70px;padding:9px 4px;gap:7px}}
@media(max-width:900px){.bank-toolbar>form{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.bank-toolbar>form>label:first-child{grid-column:1/-1}.bank-toolbar>form>button{grid-column:1/-1}}
@media(max-width:760px){.bank-toolbar{grid-template-columns:minmax(0,1fr);gap:14px}.bank-toolbar>form{grid-column:auto}.curriculum-course-grid{grid-template-columns:minmax(0,1fr)}.section-assignment{align-items:flex-start;flex-direction:column}.module-outline{margin-bottom:12px}.bank-pagination{gap:10px;flex-wrap:wrap}.bank-import{padding:13px}.bank-question{padding:13px}}

/* Daily workflows. */
.workflow-filters{display:flex;gap:16px;align-items:end;flex-wrap:wrap}.workflow-filters label:first-child{flex:1;min-width:180px}.workflow-result{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0;border-bottom:1px solid var(--border,#d8e0e5)}.workflow-result:last-child{border-bottom:0}.workflow-result h3{margin:8px 0}.workflow-result p{margin:8px 0;overflow-wrap:anywhere}.workflow-result>div:first-child{min-width:0}.workflow-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px;margin:24px 0}.workflow-stats>div{background:#f2f6f8;border:1px solid #dce5ea;padding:16px;border-radius:6px}.workflow-stats b{display:block;font-size:28px;color:#164a66}.workflow-stats small{display:block;margin-top:5px}.history-revision .submission-paper{margin-bottom:20px}.history-criterion{padding:12px;border-bottom:1px solid #dce5ea}.mobile-more{max-height:70vh;overflow-y:auto}
@media(max-width:720px){.workflow-result{align-items:stretch;flex-direction:column;gap:12px}.workflow-result .actions{justify-content:flex-start}.workflow-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.workflow-filters{display:block}.workflow-filters button{width:100%}}

@media(min-width:761px){.global-nav{overflow-y:auto;overscroll-behavior:contain}.global-nav>*{flex-shrink:0}.global-nav .rail-bottom{writing-mode:horizontal-tb;text-align:center;letter-spacing:.04em;padding:24px 6px 8px}.global-nav button{min-height:70px;padding:10px 4px}}

.request-progress{padding:12px 16px;background:#edf4fa;border:1px solid #b8ccde;color:#214a68;border-radius:6px;margin-bottom:16px}#syncNotice{margin-bottom:16px;padding:16px}#syncNotice p{margin-top:0}

.admin-record{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;border-bottom:1px solid #e2e6ed}.admin-record h3{margin:0 0 .3rem}.admin-record small{overflow-wrap:anywhere}.admin-record button{flex-shrink:0}.archive-counts>div{display:flex;justify-content:space-between;padding:.6rem 0;border-bottom:1px solid #e2e6ed}.archive-counts dd{font-weight:700}.danger{background:#a61b35;color:#fff;border:1px solid #a61b35}.danger:hover{background:#811329}@media(max-width:640px){.admin-record{align-items:flex-start;flex-direction:column}.admin-record button{width:100%}}

/* Versioned grading policy: readable on mobile and in print. */
.grading-guide{border:1px solid #d9dee6;border-radius:10px;padding:14px 16px;margin:14px 0;background:#f8fafc;color:#253246}.grading-guide p{margin:8px 0;line-height:1.65}.grading-bands{display:flex;flex-wrap:wrap;gap:8px}.grading-bands span{border:1px solid #cbd5e1;border-radius:6px;padding:7px 10px;background:white}.grade-conversion{margin-top:12px}.grade-conversion summary{cursor:pointer;font-weight:600}.grade-conversion form{display:grid;gap:10px;max-width:550px}.grade-conversion output{display:block;line-height:1.7;overflow-wrap:anywhere}@media(max-width:640px){.grading-guide .row{align-items:flex-start;flex-direction:column}.grading-bands{gap:5px}.grading-bands span{flex:1 0 72px}}@media print{.grading-guide{background:white;break-inside:avoid}.grading-guide .grade-conversion{display:none}}

/* Excel question import */
.template-download{display:inline-flex;align-items:center;padding:11px 15px;border-radius:7px;background:#e9eef3;color:#253246;text-decoration:none;font-weight:600;white-space:nowrap}.excel-upload{margin:20px 0;padding:16px;border:1px solid #cbd5e1;border-radius:9px;background:#f8fafc}.excel-upload input[type=file]{max-width:100%}.excel-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:12px;margin:18px 0}.excel-summary div{padding:12px;background:#f1f5f9;border-radius:7px}.excel-summary b,.excel-summary small{display:block}.excel-summary b{font-size:24px;color:#97162b}.excel-errors{border-left:4px solid #b91c1c;padding:0 14px}.excel-question{border-top:1px solid #dbe2ea;padding:12px 0}.excel-question summary{cursor:pointer;overflow-wrap:anywhere}.excel-question summary small{display:block;color:#64748b}.excel-import-actions{margin-top:20px;flex-wrap:wrap}.excel-preview-status{padding:12px;background:#f1f5f9;border-radius:7px}.excel-import [role=alert]{overflow-wrap:anywhere}@media(max-width:640px){.excel-import{padding:16px}.template-download{white-space:normal}.excel-import-actions>button{width:100%}}

/* Dedicated login and registration views. */
.auth-page{min-height:100dvh;display:grid;grid-template-columns:minmax(320px,.95fr) minmax(400px,1.05fr);background:#fff}
.auth-brand{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:clamp(2rem,6vw,6rem);color:#fff;background:radial-gradient(ellipse at 0 100%,#c23d59 0,transparent 65%),linear-gradient(145deg,#741329,#a91634);position:relative;overflow:hidden}
.auth-mark{width:74px;height:74px;display:grid;place-items:center;border:2px solid #ffffff70;border-radius:20px;font-size:3rem;font-weight:800;line-height:1}
.auth-brand-name{font-size:1.15rem;font-weight:750;letter-spacing:.04em;margin:1rem 0 3rem}.auth-brand h2{font-size:clamp(2rem,3.5vw,3.4rem);font-weight:750;line-height:1.15;letter-spacing:-.04em}.auth-brand>p:not(.auth-brand-name){max-width:340px;color:#fffdf3d9;font-size:1.05rem}.auth-brand-note{margin-top:4rem;font-size:.8rem;color:#ffffffb8}
.auth-card{width:100%;max-width:540px;margin:auto;padding:clamp(1.5rem,4vw,3.5rem);min-width:0}.auth-card-brand{font-weight:800;color:#97162b;font-size:1.15rem;margin-bottom:2.5rem}.auth-form h1{font-size:2rem;letter-spacing:-.035em;margin-bottom:.6rem}.auth-description{color:#637282;margin-bottom:1.8rem}.auth-form label{margin-top:1rem;font-size:.9rem}.auth-form input,.auth-form select{min-height:48px;border-color:#cdd5dd;border-radius:7px;margin-top:.4rem}.auth-form .auth-submit{width:100%;margin-top:1.6rem;min-height:49px;background:#97162b;border-radius:7px;font-size:1rem}.auth-password{display:flex;align-items:center;position:relative}.auth-password input{padding-right:6.1rem}.auth-password-toggle{position:absolute;right:.35rem;top:.8rem;background:transparent;color:#6b2633;padding:.5rem;font-size:.76rem;border-radius:5px}.auth-card .auth-link{background:transparent;color:#8d1830;padding:.1rem;font-size:.85rem;text-decoration:underline;text-underline-offset:3px;font-weight:600;border-radius:2px}.auth-card .auth-help{display:block;margin:1rem auto 0}.auth-switch{text-align:center;border-top:1px solid #e8e9ed;margin-top:1.8rem;padding-top:1.5rem;font-size:.85rem;color:#637282}.auth-footer{text-align:center;font-size:.72rem;color:#7c8792;margin-top:2.5rem}
@media(max-width:760px){.auth-page{grid-template-columns:1fr;grid-template-rows:auto 1fr;min-height:100dvh;background:#f8f9fb}.auth-brand{padding:1.4rem 1.5rem;flex-direction:row;align-items:center;justify-content:flex-start;gap:.8rem}.auth-mark{width:42px;height:42px;border-radius:12px;font-size:1.7rem}.auth-brand-name{margin:0;font-size:1.15rem}.auth-brand h2,.auth-brand>p:not(.auth-brand-name),.auth-brand-note{display:none}.auth-card{align-self:start;margin:0 auto;padding:2rem 1.4rem;max-width:480px}.auth-card-brand{display:none}.auth-form h1{font-size:1.8rem}.auth-form .auth-submit{margin-top:1.3rem}.auth-footer{margin-top:1.8rem}}
/* Deliberate confirmation for permanent trash removal. */
.purge-ack{display:flex;align-items:flex-start;gap:.75rem;margin:1rem 0;line-height:1.6}
.purge-ack input[type=checkbox]{width:1.2rem;min-width:1.2rem;height:1.2rem;margin-top:.25rem}
.admin-removal li{overflow-wrap:anywhere;margin:.5rem 0}
