@import"https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800;900&family=Quicksand:wght@400;500;600;700&display=swap";*,*:before,*:after{box-sizing:border-box}:root{--font-display: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-body: "Quicksand", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-primary: var(--font-body);line-height:1.5;font-weight:400;color-scheme:light;color:#0f172a;background-color:#f8fafc}body{margin:0;font-family:var(--font-primary);font-size:16px}#root{min-height:100vh;width:100%}h1,h2,h3,h4,h5,h6,button,.font-display,.score,.points{font-family:var(--font-display)}p,span,li,label,input,select,textarea,.font-body{font-family:var(--font-body)}:root{color:#1f2937;background:#f5f0ff;--font-primary: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;font-family:var(--font-primary)}.workspacePageWrap{max-width:1200px;width:100%;margin-left:auto;margin-right:auto;padding-left:24px;padding-right:24px;box-sizing:border-box}.nav summary.active{background:#dcc8ff;font-weight:600}.headerLeft{display:flex;align-items:center;gap:18px}.admin-content{overflow:visible;scroll-snap-type:none}.admin-content .content-panel{min-width:0;width:100%}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:16px;flex-wrap:wrap}.page-header h2,.page-header h3{margin:0}.page-header p{margin:4px 0 0}.field{display:flex;flex-direction:column;gap:6px}.field-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}input,select,textarea{border:1px solid #cbd5f5;border-radius:8px;padding:10px 12px;font-size:14px;background:#fff}button,.button-primary,.button-secondary{min-height:40px;border-radius:10px;padding:9px 14px;font-size:14px;font-weight:600;line-height:1.2}button{border:none;background:#7c3aed;color:#fff;cursor:pointer}.button-primary{background:#7c3aed;color:#fff;border:1px solid #6d28d9;box-shadow:0 4px 10px #7c3aed40}.button-primary:hover{background:#6d28d9}.button-secondary{background:#fff;color:#0f172a;border:1px solid #d7dce5;box-shadow:0 1px 2px #0f172a0a;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.button-secondary:hover{background:#f8fafc}button:disabled,.button-primary:disabled,.button-secondary:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.metricsRow{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:24px;width:100%;box-sizing:border-box;margin-top:24px;margin-bottom:24px;align-items:stretch}.kpiRow{display:grid;grid-template-columns:repeat(5,minmax(180px,1fr));gap:20px;width:100%;margin:20px 0}.kpiRow .metricCard{height:auto;min-height:140px}.kpiRow>.card,.splitRow>.card{margin-top:0}.dashboardKpiRow{align-items:stretch}.dashboardKpiRow>.card+.card{margin-top:0!important}.filterBar{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:20px}.filterBar>*{min-width:0}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.tab{background:#f3e8ff;color:#5b21b6;padding:8px 14px;border-radius:999px;border:none;cursor:pointer;font-weight:600}.statusPill{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;background:#ede9fe;color:#5b21b6}.statusPill.neutral{background:#e2e8f0;color:#334155}.statusPill.danger{background:#fee2e2;color:#b91c1c}.statusPill.success{background:#dcfce7;color:#166534}.listStack{display:flex;flex-direction:column;gap:12px}.listItem{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;border:1px solid #efe7ff;background:#fff}.listItem strong{display:block}.listMeta{color:#64748b;font-size:13px}.splitRow{display:grid;grid-template-columns:2fr 1fr;gap:20px}.splitRow>*{min-width:0}.metricCard,.tableCard{min-width:0}.tableCard{overflow:hidden}.tableScroll{overflow-x:auto;width:100%}.tableScroll table{min-width:600px;width:100%;border-collapse:collapse}.toolbar{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap;align-items:center}.toolbar-right{margin-left:auto;display:flex;gap:12px;flex-wrap:wrap}.empty-action{margin-top:12px}.user-card-mobile{display:none}.user-card-list{display:grid;gap:10px}.user-card-item{border:1px solid #e5e7eb;border-radius:12px;padding:12px;background:#fff;display:grid;gap:8px}.user-class-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.user-class-chip{border:1px solid #e5e7eb;border-radius:12px;background:#fff;color:#0f172a;padding:10px 12px;display:grid;gap:4px;text-align:left}.user-class-chip span{font-size:12px;color:#64748b}.user-class-chip.active{border-color:#a78bfa;background:#f5f3ff}.tableCard .listStack{width:100%;align-items:stretch}.assessment-active-admin-card{display:grid!important;width:100%!important;max-width:none!important;box-sizing:border-box;align-items:stretch;justify-content:stretch}.assessment-active-admin-card .toolbar{margin-bottom:0}.dashboardKpiRow{gap:16px;grid-auto-rows:1fr}.dashboardHeroCard{display:grid;gap:18px;padding-top:18px}.dashboardHeroTop{display:flex;justify-content:space-between;align-items:start;gap:16px;flex-wrap:wrap}.dashboardHeroTop h3{margin:4px 0 8px}.dashboardHeroTop p{margin:0;max-width:760px;color:#475467}.dashboardKpiRow.dashboardCompactKpiRow .metricCard{height:auto;min-height:136px}.dashboardHeroActions{display:flex;gap:10px;flex-wrap:wrap}.dashboardHeroActions .secondary{min-height:40px;border-radius:10px}.dashboardKpiRow .metricCard{height:168px;min-height:168px;width:100%}.metricCard.metricGradient{border:0;color:#fff;box-shadow:0 12px 20px #0f172a33}.metricCard.metricGradient .metricTitle,.metricCard.metricGradient .metricSub{color:#ffffffe0}.metricCard.metricGradient .metricTitle{opacity:1;letter-spacing:.06em;font-size:12px}.metricCard.metricGradient .metricValue{color:#fff}.metricCard.metricGradient.blue{background:linear-gradient(135deg,#2d81ff,#2f5cdf)}.metricCard.metricGradient.purple{background:linear-gradient(135deg,#a855f7,#7e22ce)}.metricCard.metricGradient.green{background:linear-gradient(135deg,#22c55e,#16a34a)}.metricCard.metricGradient.orange{background:linear-gradient(135deg,#f59e0b,#d97706)}.metricCard.metricGradient.pink{background:linear-gradient(135deg,#ff2c7d,#e6005c)}.metricTopRow{display:flex;justify-content:space-between;gap:8px}.metricIcon{font-size:18px;opacity:.9}.metricSub{margin-top:8px;font-size:14px;font-weight:500}.dashboardSplitRow{align-items:start}.pipelineCard,.attentionCard{padding-top:18px}.dashboardWorkflowList{margin-top:14px}.dashboardWorkflowItem{display:flex;justify-content:space-between;align-items:center;gap:16px;border:1px solid #e9e7f6;border-radius:16px;background:#fff;padding:16px}.dashboardWorkflowAside{display:flex;flex-direction:column;align-items:flex-end;gap:6px;text-align:right;flex-shrink:0}.dashboardWorkflowValue{font-size:28px;font-weight:700;color:#111827;line-height:1}.dashboardWorkloadGrid{margin-top:14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.dashboardWorkloadItem{border:1px solid #e9e7f6;border-radius:16px;background:#fff;padding:16px;display:grid;grid-template-columns:auto 1fr;column-gap:10px;row-gap:6px}.dashboardWorkloadItem strong,.dashboardWorkloadItem .listMeta{grid-column:1 / -1}.workloadIcon{width:44px;height:44px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;font-size:18px}.workloadValue{margin-left:auto;align-self:center;font-size:42px;font-weight:700;line-height:1;color:#111827}.workloadIcon.blue{background:#dbeafe}.workloadIcon.green{background:#dcfce7}.workloadIcon.amber{background:#fef3c7}.workloadIcon.purple{background:#f3e8ff}.attentionCard{border-left:3px solid #f59e0b;background:linear-gradient(180deg,#fff7e9,#fff 48%)}.dashboardAlertItem{display:grid;grid-template-columns:28px 1fr;gap:12px;border:1px solid #f4e4bf;background:#fffdee;border-radius:14px;padding:14px}.alertDot{width:24px;height:24px;border-radius:999px;background:#f59e0b;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:700}.alertLink{margin-top:8px;color:#a16207;font-weight:600;font-size:14px;border:0;background:transparent;padding:0;min-height:auto;cursor:pointer}.dashboardTableCard{padding:0}.dashboardTableHeader{padding:20px;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.dashboardTableHeader h3{margin:4px 0 0}.dashboardTableActions{display:flex;gap:8px;align-items:center}.dashboardTableActions .secondary{min-height:40px;border-radius:10px;padding:9px 14px;border:1px solid #d7dce5;background:#fff;color:#111827}.dashboardTableCard .table th{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#4b5563;background:#f8fafc}.dashboardRecentGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.dashboardRecentColumn{padding:20px}.dashboardRecentColumn+.dashboardRecentColumn{border-left:1px solid #e5e7eb}.dashboardRecentItem{align-items:center;justify-content:space-between;gap:12px}.attendanceDetailedTable thead th{background:#f8fafc;color:#475467}.attendanceDetailedTable tbody tr:nth-child(2n){background:#fcfdff}.attendanceDetailedTable tbody tr:hover{background:#f4f8ff}.attendanceDetailedActionCol{text-align:right;width:110px}@media(max-width:900px){.dashboardWorkflowItem,.dashboardRecentItem{flex-direction:column;align-items:flex-start}.dashboardWorkflowAside{align-items:flex-start;text-align:left}.dashboardRecentGrid{grid-template-columns:1fr}.dashboardRecentColumn+.dashboardRecentColumn{border-left:0;border-top:1px solid #e5e7eb}.dashboardHeroActions{width:100%}.dashboardHeroActions .secondary{flex:1 1 180px}.dashboardTableHeader{align-items:flex-start}}.attendanceViewBtn{min-width:76px}.attendanceClassName,.attendanceLearnerName{font-weight:600;color:#111827}.attendanceTeacherName{color:#334155}.attendanceLearnerMeta{margin-top:2px;font-size:12px;color:#667085}.userMgmtKpiRow{grid-auto-rows:1fr;align-items:stretch}.userMgmtKpiRow .metricCard{height:168px;min-height:168px;width:100%}.userMgmtKpiRow>.card+.card{margin-top:0!important}.userMgmtPanelCard{padding-top:18px}.userMgmtTableCard{padding:0}.userMgmtTableCard .toolbar{padding:0 20px}.userMgmtTableCard .toolbar:last-of-type{padding-bottom:20px}.userMgmtTableCard .user-card-list,.userMgmtTableCard .tableScroll{padding:0 20px 20px}.unifiedKpiRow{gap:16px;grid-auto-rows:1fr;align-items:stretch}.unifiedKpiRow .metricCard{height:168px;min-height:168px;width:100%;border:0;color:#fff;box-shadow:0 12px 20px #0f172a33}.unifiedKpiRow .metricCard .metricTitle{color:#ffffffe0;opacity:1}.unifiedKpiRow .metricCard .metricValue{color:#fff}.unifiedKpiRow>.card+.card{margin-top:0!important}.unifiedKpiRow .metricCard:nth-child(5n+1){background:linear-gradient(135deg,#2d81ff,#2f5cdf)}.unifiedKpiRow .metricCard:nth-child(5n+2){background:linear-gradient(135deg,#a855f7,#7e22ce)}.unifiedKpiRow .metricCard:nth-child(5n+3){background:linear-gradient(135deg,#22c55e,#16a34a)}.unifiedKpiRow .metricCard:nth-child(5n+4){background:linear-gradient(135deg,#f59e0b,#d97706)}.unifiedKpiRow .metricCard:nth-child(5n+5){background:linear-gradient(135deg,#ff2c7d,#e6005c)}.libraryKpiRow{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:1fr;align-items:stretch}.libraryKpiRow .metricCard{height:168px;min-height:168px;width:100%}.libraryKpiRow>.card+.card{margin-top:0!important}@media(max-width:1200px){.metricsRow{grid-template-columns:repeat(2,minmax(220px,1fr))}.kpiRow{grid-template-columns:repeat(2,minmax(180px,1fr))}.dashboardKpiRow,.userMgmtKpiRow{grid-template-columns:repeat(5,minmax(0,1fr))}.splitRow{grid-template-columns:1fr}}@media(max-width:700px){.metricsRow,.kpiRow,.dashboardWorkloadGrid,.dashboardKpiRow.dashboardCompactKpiRow{grid-template-columns:1fr}.workloadValue{font-size:34px}.dashboardTableActions{width:100%}.dashboardTableActions .secondary{flex:1}.dashboardHeroTop h3{font-size:1.35rem}.dashboardWorkflowItem,.dashboardWorkloadItem,.dashboardAlertItem,.dashboardRecentColumn{padding:14px}.user-table-desktop{display:none}.user-card-mobile{display:grid}}@media(max-width:520px){.dashboardHeroActions .secondary,.dashboardTableActions .secondary{width:100%;flex-basis:100%}.dashboardWorkflowValue,.workloadValue{font-size:28px}}:root{--font-primary: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;font-family:var(--font-primary)}.app-shell{min-height:100vh;background:#f5f0ff}.menu-panel{position:fixed;top:0;left:0;bottom:0;width:240px;background:#f1e9ff;padding:24px 18px;border-right:1px solid #e6ddff;transform:translate(-100%);transition:transform .2s ease;z-index:30;display:flex;flex-direction:column}.nav a,.nav summary{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;color:#1f2937;cursor:pointer;text-decoration:none}.nav a:hover{background-color:#7c3aed0d}.nav a.active{background:#dcc8ff;font-weight:600}.nav-with-badge{justify-content:space-between}.nav-with-badge .badge{margin-left:auto}.badge{background:#ef4444;color:#fff;font-size:11px;padding:2px 6px;border-radius:999px}.headerInner{display:grid;grid-template-columns:56px minmax(0,1fr);align-items:center;gap:18px}.menu-button{width:56px;min-width:56px;max-width:56px;height:56px;border-radius:16px;border:1px solid rgba(255,255,255,.25);background:#ffffff14;color:#f59e0b;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;box-sizing:border-box;place-self:start}.menu-icon{display:block;line-height:1;font-size:22px}.topbar-title{font-size:18px;font-weight:600;color:#fff}.content{padding:24px 0 48px;display:flex;overflow-x:hidden;overflow-y:auto;scroll-snap-type:none;scroll-behavior:auto;gap:24px;touch-action:pan-y;-webkit-overflow-scrolling:touch}.content-panel{min-width:100%;width:100%;display:block;scroll-snap-align:start}.teacherPageWrap{max-width:1200px;width:100%;margin-left:auto;margin-right:auto;padding-left:24px;padding-right:24px;box-sizing:border-box}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.card{background:#fff;border-radius:16px;padding:20px;border:1px solid #efe7ff;box-shadow:0 12px 24px #1f293714}.label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#64748b}input,select,textarea{border:1px solid #cbd5f5;border-radius:8px;padding:10px 12px;font-size:14px;width:100%;box-sizing:border-box}button{border:none;border-radius:8px;padding:10px 16px;background:#7c3aed;color:#fff;cursor:pointer;font-weight:600}button.secondary{background:#e2e8f0;color:#0f172a}.metricCard{height:170px;padding:22px 24px;border-radius:18px;background:#fff;display:flex;flex-direction:column;justify-content:space-between;box-sizing:border-box;border:1px solid #efe7ff;box-shadow:0 4px 12px #1f29370d}.workspace{display:grid;grid-template-columns:1fr;gap:20px}.workspace-header{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.workspace-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;grid-column:1 / -1}.workspace-tabs{grid-column:1 / -1;display:flex;gap:8px;flex-wrap:wrap}.tab{background:#f3e8ff;color:#5b21b6;padding:8px 14px;border-radius:999px;border:none;cursor:pointer}.tab.active{background:#7c3aed;color:#fff}.side-nav a{padding:8px 10px;border-radius:10px;text-decoration:none;color:inherit}.side-nav a.active{background:#ede9fe;font-weight:600}@media(max-width:700px){.metricsRow{grid-template-columns:1fr}}:root{--admin-shell-bg: #f4f7fb;--admin-surface: #ffffff;--admin-surface-muted: #f8fafc;--admin-border: #e2e8f0;--admin-border-strong: #d4dce7;--admin-text: #0f172a;--admin-text-muted: #64748b;--admin-sidebar-width: 240px;--admin-gutter: 24px;--admin-card-padding: 24px}.app-shell{background:linear-gradient(180deg,#f8fbff 0%,var(--admin-shell-bg) 220px)}.menu-panel{width:var(--admin-sidebar-width);background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none;padding:24px 18px;border-right:1px solid var(--admin-border);box-shadow:none;overflow-y:auto}.nav{gap:10px}.nav a,.nav summary{gap:10px;min-height:0;padding:10px 12px;border-radius:12px;color:var(--admin-text);font-weight:700;transition:background-color .18s ease,color .18s ease}.nav a:hover,.nav summary:hover{background:transparent}.nav a.active,.nav summary.active{color:var(--admin-text);background:var(--admin-surface-muted);border:none}.nav-group{border-radius:12px;background:#f8fafc;padding:6px 4px;border:none}.nav-submenu{padding:4px 16px 8px}.nav-submenu a{min-height:0;padding:6px 10px;font-weight:500;font-size:14px}.topbar{background:#082c8c;padding:16px 0;border-bottom:none;z-index:10;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 6px 18px #082c8c47}.headerInner{grid-template-columns:56px minmax(0,1fr);gap:18px}.menu-button{border:1px solid rgba(255,255,255,.25);background:#ffffff14;color:#f59e0b}.dashboard-brand-university{color:#fff}.dashboard-brand-centre{color:#f39b25}.content{padding:24px 0 48px;flex:1;width:100%;display:flex;justify-content:stretch;box-sizing:border-box;overflow-x:hidden}.pageContainer,.teacherPageWrap{max-width:none;width:100%;padding-left:var(--admin-gutter);padding-right:var(--admin-gutter)}.adminPageWrap{max-width:none;width:100%;box-sizing:border-box}.adminPageWrap>*{min-width:0;width:100%}.admin-content .content-panel{padding-left:var(--admin-gutter);padding-right:var(--admin-gutter);box-sizing:border-box}.adminPageWrap>div{display:grid;gap:24px;width:100%;box-sizing:border-box;padding-left:0;padding-right:0}.dashboardPage{width:100%}.page-header{align-items:flex-start;gap:16px 20px;margin-bottom:0}.page-header h2,.page-header h3{margin:0;color:var(--admin-text);line-height:1.15}.page-header p{margin:8px 0 0;max-width:72ch;color:var(--admin-text-muted)}.label{color:var(--admin-text-muted);font-weight:700}.card{border-radius:20px;padding:var(--admin-card-padding);border:1px solid rgba(226,232,240,.92);box-shadow:0 10px 24px #0f172a0f}.adminPageWrap>div>.card+.card,.adminPageWrap>div>.kpiRow+.card,.adminPageWrap>div>.splitRow+.card,.adminPageWrap>div>.tableCard+.card{margin-top:0}.field{gap:8px;margin-bottom:0}.field-row{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}.field-row>*{min-width:0}input,select,textarea{width:100%;min-height:46px;border:1px solid var(--admin-border-strong);border-radius:12px;padding:11px 14px;line-height:1.35;background:#fff;color:var(--admin-text);box-shadow:inset 0 1px 2px #0f172a08}select[multiple]{min-height:132px;padding-top:10px;padding-bottom:10px}textarea{min-height:120px;resize:vertical}input:focus,select:focus,textarea:focus{outline:none;border-color:#818cf8;box-shadow:0 0 0 4px #6366f11f}button,.button-primary,.button-secondary,.secondary{min-height:44px;border-radius:12px;padding:10px 16px;font-size:14px;font-weight:600;line-height:1.2}.button-secondary,.secondary,button.secondary{color:var(--admin-text);border:1px solid var(--admin-border-strong);background:#fff;box-shadow:0 1px 2px #0f172a0a}.button-secondary:hover,.secondary:hover,button.secondary:hover{background:#f8fafc}.table{table-layout:auto}.table th,.table td{padding:14px 12px;vertical-align:top}.table th{color:#475467;font-size:12px;text-transform:uppercase;letter-spacing:.06em;background:#f8fafc}.tableScroll{width:100%;border:1px solid var(--admin-border);border-radius:16px;background:#fff}.tableScroll table{min-width:720px}.toolbar{gap:12px;margin-bottom:0}.toolbar>input,.toolbar>select,.toolbar>.field{flex:1 1 220px;min-width:0}.toolbar-right{margin-left:auto}.metricsRow,.kpiRow{gap:18px;margin:0}.splitRow{gap:18px}.metricCard{border-radius:18px;box-shadow:0 10px 22px #0f172a14}.dashboardTableHeader{padding:22px 24px;border-bottom:1px solid var(--admin-border)}.dashboardTableActions{flex-wrap:wrap}.dashboardTableCard .table td,.dashboardTableCard .table th{padding:14px 20px}.user-card-list{gap:14px}.user-card-item{border:1px solid var(--admin-border);border-radius:16px;padding:16px;gap:10px}.user-class-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.user-class-chip{border:1px solid var(--admin-border);border-radius:16px;color:var(--admin-text);padding:14px}.userMgmtTableCard .toolbar{padding-left:24px;padding-right:24px}.userMgmtTableCard .toolbar:last-of-type{padding-bottom:24px}.userMgmtTableCard .user-card-list{padding:0 24px 24px}.userMgmtTableCard .tableScroll{width:auto;margin:0 24px 24px}@media(max-width:1200px){:root{--admin-gutter: 24px}.kpiRow,.metricsRow{grid-template-columns:repeat(2,minmax(220px,1fr))}.splitRow{grid-template-columns:1fr}}@media(max-width:700px){:root{--admin-gutter: 16px;--admin-card-padding: 18px}.menu-panel{width:min(86vw,300px);padding:24px 18px}.topbar{padding:12px 0}.headerInner{grid-template-columns:48px minmax(0,1fr) 48px}.headerTitles{display:flex;justify-content:center;text-align:center;grid-column:2}.dashboard-brand-inline{justify-content:center}.menu-button{width:48px;min-width:48px;max-width:48px;height:48px;border-radius:14px}.dashboard-brand-mark{width:40px;height:40px}.dashboard-brand-university{font-size:.95rem}.dashboard-brand-centre{font-size:.62rem}.content{padding:16px 0 32px}.admin-content .content-panel{padding-left:var(--admin-gutter);padding-right:var(--admin-gutter)}.adminPageWrap>div{gap:18px;padding-right:0}.kpiRow,.metricsRow{grid-template-columns:1fr}.toolbar>*{width:100%;flex-basis:100%}.page-header{gap:12px}.dashboardTableHeader,.userMgmtTableCard .toolbar,.userMgmtTableCard .user-card-list{padding-left:18px;padding-right:18px}.userMgmtTableCard .toolbar:last-of-type{padding-bottom:18px}.userMgmtTableCard .tableScroll{margin:0 18px 18px}.table th,.table td{padding:12px 10px}}.calendar-admin-header-row{display:flex;align-items:flex-start;gap:12px}.calendar-admin-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.calendar-admin-nav{display:flex;align-items:center;gap:10px}.calendar-admin-nav button{width:36px;height:36px;border-radius:10px}.calendar-admin-grid-card{overflow-x:auto}.calendar-admin-grid{min-width:980px;display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));border:1px solid #e5e7eb;border-radius:14px;overflow:hidden}.calendar-admin-weekday{background:#f8fafc;border-right:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;padding:10px;font-size:.86rem;font-weight:700}.calendar-admin-weekday:nth-child(7n){border-right:none}.calendar-admin-cell{min-height:140px;border-right:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;padding:8px;background:#fff}.calendar-admin-cell:nth-child(7n){border-right:none}.calendar-admin-cell.muted{background:#f9fafb}.calendar-admin-day{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;border-radius:999px;font-size:.82rem;font-weight:700;margin-bottom:8px}.calendar-admin-day.today{background:#0b4a6f;color:#fff}.calendar-admin-events{display:flex;flex-direction:column;gap:6px}.calendar-admin-event{background:#eef2f7;border-radius:10px;padding:6px 8px;display:flex;flex-direction:column;gap:4px}.calendar-admin-event-title{font-size:.8rem;font-weight:600;line-height:1.3}.calendar-admin-event-meta{font-size:.73rem;color:#475467;line-height:1.3}.calendar-admin-event-time{font-size:.75rem;color:#334155}.calendar-admin-event a{font-size:.75rem;color:#0b4a6f;font-weight:700;text-decoration:none}@media(max-width:768px){.calendar-admin-header-row{flex-direction:column;align-items:flex-start}}.oj-login-shell{min-height:100dvh;background:#fff;display:flex;align-items:center;justify-content:center;padding:clamp(10px,1.4vw,18px);overflow-x:hidden}.oj-login-card{width:min(460px,100%);min-height:auto;max-height:calc(100dvh - 24px);display:flex;flex-direction:column;gap:0;align-items:stretch}@media(min-width:981px){.oj-login-copy h1{font-size:clamp(1.55rem,1.8vw,1.95rem)}.oj-login-copy p{font-size:.92rem;line-height:1.45}.oj-field{height:48px}.oj-submit{height:52px;font-size:clamp(1rem,1.3vw,1.15rem)}}.oj-login-content{width:100%;display:flex;align-items:center;justify-content:center;padding:0}.oj-form{width:min(460px,100%);display:flex;flex-direction:column;gap:10px;background:#fff;border-radius:16px;border:1px solid #d9e0ea;box-shadow:0 14px 32px #0b244224;padding:clamp(18px,1.8vw,22px)}.oj-login-copy{display:flex;flex-direction:column;gap:6px;margin-bottom:2px}.oj-login-copy h1{margin:0;color:#0f172a;font-size:clamp(1.5rem,1.9vw,2rem);line-height:1.1}.oj-login-copy p{margin:0;color:#475569;font-size:.93rem;line-height:1.5}.oj-login-kicker{color:#0b4b96;font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.oj-field{height:clamp(46px,4.8vw,52px);border-radius:12px;border:1px solid #d4dbe5;background:#f7f9fc;display:flex;align-items:center;padding:0 12px;gap:10px}.oj-icon{opacity:.7;font-size:clamp(14px,2vw,18px)}.oj-field input{flex:1;border:none;background:transparent;font-size:clamp(15px,1.3vw,18px);color:#30435d;outline:none;min-width:0}.oj-eye{border:none;background:transparent;cursor:pointer;font-size:clamp(14px,1.8vw,18px)}.oj-submit{margin-top:4px;height:clamp(50px,5vw,58px);border:none;border-radius:12px;background:#0b4b96;color:#fff;font-size:clamp(1rem,1.5vw,1.2rem);font-weight:600;cursor:pointer}.oj-submit:disabled{opacity:.65}.oj-login-message{margin:0;color:#b91c1c;text-align:center;font-size:14px;font-weight:600}@media(max-width:980px){.oj-login-shell{background:#fff;padding:16px;min-height:100dvh;overflow:hidden;overscroll-behavior:none}.oj-login-card{min-height:unset;max-height:none;width:100%;gap:0}.oj-form{width:min(460px,100%)}}@media(max-width:560px){.oj-login-shell{padding:14px}.oj-login-card{gap:0}.oj-form{padding:18px}}:root{color:var(--color-text-primary);background:var(--color-bg-page);font-family:var(--font-primary)}a{color:inherit;text-decoration:none}body{margin:0}.workspace-container{width:100%;margin-inline:auto;max-width:none;padding-inline:24px;box-sizing:border-box}@media(max-width:768px){.workspace-container{padding-inline:16px}}.workspace-container>*{max-width:100%}.workspace-container .card,.workspace-container table{width:100%}.workspace-container .studentTableScroll{width:100%;overflow-x:auto}.pageContainer{max-width:1200px;margin:0 auto;padding:0 24px;box-sizing:border-box;width:100%}@media(max-width:768px){.pageContainer{padding:0 16px}}.app-shell{min-height:100vh;background:var(--color-bg-page)}.menu-backdrop{position:fixed;inset:0;background:#0f172a59;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:20}.menu-backdrop.show{opacity:1;pointer-events:auto}.menu-panel{position:fixed;top:0;left:0;bottom:0;width:240px;background:#fff;padding:24px 18px;border-right:1px solid var(--color-border-light);transform:translate(-100%);transition:transform .2s ease;z-index:30;display:flex;flex-direction:column}.menu-panel.open{transform:translate(0)}.nav{display:flex;flex-direction:column;gap:10px}.nav a,.nav summary{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;color:#1f2937;cursor:pointer}.nav a.active{background:var(--color-bg-highlight);font-weight:700}.nav-group{border-radius:12px;background:#f6f2ff;padding:6px 4px}.nav-group summary{list-style:none}.nav-group summary::-webkit-details-marker{display:none}.nav-submenu{display:flex;flex-direction:column;gap:8px;padding:4px 16px 8px}.nav-submenu a{padding:6px 10px;font-size:14px}.nav-with-badge{justify-content:space-between;align-items:center}.nav-with-badge .badge{margin-left:auto;flex:0 0 auto}.nav-icon{font-size:18px}.badge{background:#ef4444;color:#fff;font-size:18px;font-weight:800;width:40px;height:40px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;line-height:1}.main-area{display:flex;flex-direction:column;min-height:100vh}.topbar{background:#082c8c;padding:16px 0;border-bottom:none;position:sticky;top:0;z-index:10;box-shadow:0 6px 18px #082c8c47}.headerInner{display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:18px}.headerTitles{min-width:0;overflow:hidden}.dashboard-brand-university{white-space:nowrap}.dashboard-brand-inline{display:flex;align-items:center;gap:12px}.dashboard-brand-mark{width:46px;height:46px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.dashboard-brand-star{color:#f5c542;font-size:2rem;line-height:1;text-shadow:0 4px 12px rgba(245,197,66,.35)}.dashboard-brand-text{display:flex;flex-direction:column;line-height:1.02}.dashboard-brand-university{color:#fff;font-size:1rem;font-weight:800}.dashboard-brand-centre{color:#f39b25;font-size:.6rem;font-weight:700}.headerActions{display:inline-flex;align-items:center;gap:8px}.headerActionBtn{width:40px;height:40px;border-radius:12px;border:1px solid rgba(255,255,255,.35);background:#ffffff1f;color:#fff;display:inline-flex;align-items:center;justify-content:center;position:relative;padding:0}.headerActionBtn.notify{margin-left:2px}.headerNotifyBadge{position:absolute;top:-5px;right:-5px;min-width:20px;height:20px;border-radius:999px;background:#ef4444;color:#fff;font-size:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;padding:0 5px}@media(max-width:640px){.topbar{padding:12px 0}.headerInner{grid-template-columns:44px minmax(0,1fr) auto;gap:10px}.headerTitles{display:flex;justify-content:center;text-align:center}.dashboard-brand-inline{gap:8px;justify-content:center}.dashboard-brand-mark{width:34px;height:34px}.dashboard-brand-university{font-size:.86rem;line-height:1}.dashboard-brand-centre{font-size:.52rem}.headerActions{gap:6px}.headerActionBtn{width:34px;height:34px;border-radius:10px;font-size:14px}}.assessment-detail-title{font-size:14px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#334155}.assessment-detail-table th{white-space:nowrap;background:#f8fafc}.assessment-detail-table td{vertical-align:top}.assessment-warning{margin-top:14px;padding:12px;border-radius:10px;border:1px solid #fed7aa;background:#fff7ed;color:#9a3412;font-weight:500}.assessment-active-list{display:grid;gap:14px}.assessment-active-card{border:1px solid #e5e7eb;border-radius:14px;padding:16px;background:#fff}.assessment-active-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.assessment-chip{background:#f3f4f6;color:#374151;border:1px solid #e5e7eb;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.assessment-actions{display:flex;gap:8px;align-items:center}.assessment-actions-menu-wrap{position:relative}.assessment-actions-menu{position:absolute;right:0;top:calc(100% + 6px);min-width:210px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 12px 28px #0f172a24;z-index:8;padding:6px;display:grid;gap:4px}.assessment-actions-menu .menu-action{text-align:left;border:0;background:#f8fafc;padding:9px 10px;border-radius:8px;cursor:pointer;font-size:13px;font-weight:700}.assessment-actions-menu .menu-action:hover{filter:brightness(.96)}.assessment-actions-menu .menu-action-black{color:#111827}.assessment-actions-menu .menu-action-green{color:#15803d}.assessment-actions-menu .menu-action-blue{color:#2563eb}.assessment-active-title{margin:10px 0 6px;font-size:1.8rem;line-height:1.15}.assessment-active-dates{display:flex;gap:14px;flex-wrap:wrap;color:#6b7280;font-size:13px;padding-bottom:12px;border-bottom:1px solid #e5e7eb}.assessment-active-grid{margin-top:12px;display:grid;grid-template-columns:1fr 1.25fr;gap:16px}.assessment-active-meta{display:grid;gap:8px}.assessment-active-meta>div{display:flex;justify-content:space-between;gap:8px;border-bottom:1px dashed #eef2f7;padding-bottom:4px}.assessment-active-meta strong{color:#334155;font-size:13px}.assessment-active-meta span{color:#111827;font-weight:600;font-size:13px}.assessment-active-stats{display:grid;grid-template-columns:repeat(5,minmax(80px,1fr));gap:10px}.stat-pill{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center}.stat-pill b{width:44px;height:44px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:14px}.stat-pill small{color:#4b5563;font-size:12px;line-height:1.2}.stat-pill.magenta b{background:#cc3da8}.stat-pill.orange b{background:#d97706}.stat-pill.gray b{background:#6b7280}.stat-pill.purple b{background:#7c3aed}.stat-pill.green b{background:#16a34a}@media(max-width:980px){.assessment-active-grid{grid-template-columns:1fr}.assessment-active-stats{grid-template-columns:repeat(3,minmax(80px,1fr))}}.students-mobile-list{display:none}.student-mobile-card{border:1px solid #e5e7eb;border-radius:12px;padding:12px;background:#fff;display:grid;gap:10px}.student-mobile-name{font-weight:700;color:#111827}.student-mobile-id{font-size:12px;color:#6b7280}@media(max-width:640px){.assessment-active-title{font-size:1.3rem}.assessment-active-stats{grid-template-columns:repeat(2,minmax(80px,1fr))}.students-table-wrap{display:none}.students-mobile-list{display:grid;gap:10px}}.menu-button{width:56px;min-width:56px;max-width:56px;height:56px;border-radius:16px;border:1px solid rgba(255,255,255,.25);background:#ffffff14;color:#f59e0b;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;box-sizing:border-box;place-self:start}.menu-icon{display:block;line-height:1;font-size:22px;transform:translateY(.5px)}.topbar-title{font-size:18px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-subtitle{color:#ffffffc7;font-size:12px}.content{flex:1;width:100%;display:flex;justify-content:stretch;padding:24px 0 48px;box-sizing:border-box;overflow-x:hidden}@media(max-width:768px){.content{padding:16px 0 32px}}.content-panel{display:block;width:100%}.teacherPageWrap{width:100%;display:contents}@media(max-width:768px){.page-header{flex-direction:column;align-items:flex-start;gap:16px}.page-header button{width:100%}}.card{background:#fff;border-radius:16px;padding:20px;border:1px solid #e5e7eb;box-shadow:0 6px 18px #0f172a0f}.card+.card{margin-top:16px}.classSetupRoot{background:#f3f4f6;border-radius:16px;padding:18px}@media(min-width:1024px){.classSetupRoot{width:100%;max-width:none;margin:0;flex:1;overflow-x:hidden}.classSetupGrid{width:100%;display:grid;grid-template-columns:320px minmax(0,1fr);gap:24px;align-items:start;overflow-x:hidden}.classSetupNav{position:sticky;top:96px;align-self:start;overflow:hidden;max-height:none;overscroll-behavior:none;touch-action:none}.classSetupNav,.classSetupNavList{overflow-x:hidden}.classSetupMain{width:100%;max-width:none;justify-self:stretch;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.classSetupCard{width:100%;max-width:none}}.classSetupHeader{display:flex;align-items:center;justify-content:space-between}.classSetupBrand{display:flex;gap:12px;align-items:center}.classSetupLogo{width:36px;height:36px;border-radius:10px;background:#ede9fe;border:1px solid #e5e7eb}.classSetupTitle{font-size:24px;font-weight:900}.classSetupDivider{height:2px;background:#3b82f6;margin-top:12px;border-radius:999px}.classSetupGrid{display:grid;grid-template-columns:270px 1fr;gap:16px;margin-top:16px}.classSetupNav{padding:18px}.classSetupNavList{margin-top:10px;display:flex;flex-direction:column;gap:8px}.classSetupNavList a{padding:10px 12px;border-radius:12px;border:1px solid transparent;background:#fff}.classSetupNavList a.active{background:#ede9fe;border-color:#c4b5fd;font-weight:800;color:#5b21b6}.classSetupMain{min-width:0}.classSetupCard{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:24px;box-shadow:0 10px 20px #0f172a0f}.classSetupPageHeader h1,.classSetupPageTopRow h1{margin:0}.classSetupPageHeader{margin-bottom:12px}.classSetupPageTopRow{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.classSetupPrimaryBtn{display:inline-flex;gap:8px;align-items:center}.classSetupInfoBanner{background:#dbeafe;border:1px solid #bfdbfe;color:#1e3a8a;padding:12px 14px;border-radius:12px;display:flex;gap:10px;align-items:flex-start;margin-bottom:12px}.classSetupInfoIcon{width:20px;height:20px;border-radius:999px;display:grid;place-items:center;background:#93c5fd;color:#0b245f;font-weight:900;flex:0 0 auto}.classSetupSearchRow{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}.classSetupSearchWrap{display:flex;align-items:center;gap:8px;flex:1;min-width:260px}.classSetupSearchIcon{position:absolute;opacity:0}.classSetupSearchInput{flex:1}.classSetupIconBtn{width:40px;height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center}.classSetupFilterBtn{height:40px}.classSetupResults{color:#64748b;font-size:13px;margin-bottom:12px}.classSetupClassRow{display:grid;grid-template-columns:56px 1fr auto;gap:14px;align-items:start;padding:18px}.classSetupClassIcon{width:56px;height:56px;border-radius:14px;background:#f3e8ff;border:1px solid #e5e7eb}.classSetupClassName{font-weight:900;font-size:16px}.classSetupMeta{color:#64748b;font-size:13px}.classSetupMetaSep{margin:0 8px;opacity:.7}.classSetupClassActions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:flex-end}.classSetupActionBtn{height:40px;font-size:14px;padding:10px 14px}.classSetupDetailsTop{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.classSetupSmallBtn{height:36px;padding:8px 12px;font-size:14px}.classSetupCardHeader{display:flex;align-items:center;justify-content:space-between;gap:12px}.classSetupHr{height:1px;background:#e5e7eb;margin:14px 0}.classSetupInfoGrid{display:grid;grid-template-columns:1fr;gap:10px}.classSetupInfoRow{display:grid;grid-template-columns:220px 1fr;gap:16px}.classSetupInfoLabel{color:#64748b;font-size:13px}.classSetupInfoValue{font-weight:600;min-width:0}.classSetupInstitutionTop{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.classSetupInstitutionName{font-weight:900;font-size:22px}.classSetupBadges{display:flex;gap:14px}.classSetupBadge{text-align:center}.classSetupBadgeCircle{width:56px;height:56px;border-radius:999px;background:#a7f3d0;display:grid;place-items:center;font-weight:900;color:#064e3b}.classSetupBadgeCircleAlt{background:#bfdbfe;color:#1e3a8a}.classSetupBadgeLabel{margin-top:6px;font-size:12px;color:#2563eb;font-weight:800}.classSetupTableWrap{width:100%;overflow-x:auto}.classSetupPill{display:inline-flex;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800}.classSetupPillGreen{background:#dcfce7;color:#166534}@media(max-width:900px){.classSetupGrid{grid-template-columns:1fr}.classSetupInfoRow{grid-template-columns:1fr;gap:6px}.classSetupClassRow{grid-template-columns:56px 1fr}.classSetupClassActions{justify-content:flex-start}}.label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#6b7280}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}input,select,textarea{border:1px solid #d7dce5;border-radius:10px;padding:12px 14px;font-size:14px;font-family:var(--font-primary)}button{border:none;border-radius:10px;padding:12px 18px;background-color:var(--color-speaking-blue);color:#fff;cursor:pointer;font-weight:700}button.secondary{background:#eef2ff;color:#1f2a44}.table{width:100%;border-collapse:collapse}.table th,.table td{border-bottom:1px solid #e2e8f0;padding:10px 8px;text-align:left}.metricsRow{display:grid;grid-template-columns:repeat(4,minmax(240px,1fr));gap:24px;width:100%;box-sizing:border-box;margin-top:24px;margin-bottom:24px;align-items:stretch}.metricCard{height:170px}.metricCard,.studentTableCard{min-width:0}.metricCard{height:170px;padding:22px 24px;border-radius:18px;background:#fff;display:flex;flex-direction:column;justify-content:space-between;box-sizing:border-box}.metricTitle{font-size:13px;letter-spacing:.12em;text-transform:uppercase;opacity:.7}.metricValue{font-size:42px;font-weight:600;line-height:1}.studentTableCard{overflow:hidden}.studentTableSection{margin-top:0}.studentTableScroll{overflow-x:auto;width:100%}.studentTableScroll table{min-width:600px;width:100%;border-collapse:collapse}@media(max-width:1200px){.metricsRow{grid-template-columns:repeat(2,minmax(220px,1fr))}}@media(max-width:700px){.metricsRow{grid-template-columns:1fr;gap:16px;margin-top:16px;margin-bottom:16px}.metricCard{height:auto;min-height:140px;padding:16px}.metricValue{font-size:32px}}@media(max-width:768px){.toolbar{flex-direction:column;align-items:stretch}.toolbar>*{width:100%}.toolbar>div{display:flex;flex:1}}.book-frame{border:1px solid #e2e8f0;border-radius:12px;min-height:620px;background:#fff;padding:12px}.library{display:flex;flex-direction:column;gap:20px}.course-card{display:flex;flex-direction:column;gap:16px}.course-info{display:flex;align-items:center;gap:16px}.course-logo{width:56px;height:56px;border-radius:14px;background:#1d4ed8;color:#fff;display:grid;place-items:center;font-weight:700}.course-title{font-weight:600}.course-level{font-size:13px;color:#475569}.course-dates{font-size:12px;color:#94a3b8}.course-divider{height:1px;background:#e5e7eb}.course-toggle{display:flex;align-items:center;gap:16px}.toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer}.toggle input{display:none}.toggle-track{width:44px;height:22px;background:#e5e7eb;border-radius:999px;position:relative}.toggle-track:after{content:"";width:18px;height:18px;background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;transition:transform .2s ease}.toggle input:checked+.toggle-track{background:#7c3aed}.toggle input:checked+.toggle-track:after{transform:translate(22px)}.toggle-label{font-size:13px;color:#475569}.tile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.tile-link{background:#fff;border-radius:16px;padding:18px;border:1px solid #efe7ff;min-height:140px;display:flex;align-items:flex-end}.tile{display:flex;flex-direction:column;gap:12px}.tile-icon{width:64px;height:64px;border-radius:18px;background:#f3e8ff;display:grid;place-items:center;font-size:28px}.tile-label{font-weight:600}.book-cover-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,240px));gap:16px;justify-content:center}.book-cover-grid--compact{grid-template-columns:repeat(auto-fit,minmax(150px,190px));gap:12px}.book-cover-grid--compact .book-cover-art{padding:10px}.book-cover-grid--compact .book-cover-title{margin-top:10px;font-size:15px}.book-cover-grid--compact .book-cover-subtitle{font-size:10px}.book-cover-grid--compact .book-cover-level{width:28px;height:28px;font-size:16px}.book-cover-grid--compact .book-cover-meta{padding:10px}.book-cover-grid--compact .book-cover-brand-mark{width:18px;height:18px}.book-cover-grid--compact .book-cover-brand-university{font-size:10px}.book-cover-grid--compact .book-cover-brand-centre{font-size:8px}@media(max-width:900px){.book-cover-grid{grid-template-columns:repeat(2,minmax(150px,1fr));gap:12px}.book-cover-card{border-radius:14px}.book-cover-art{padding:10px}.book-cover-title{font-size:16px}.book-cover-subtitle{font-size:11px}.book-cover-level{width:30px;height:30px;font-size:16px;border-radius:8px}.book-cover-meta{padding:10px}}@media(max-width:560px){.book-cover-grid,.book-cover-grid--compact{grid-template-columns:1fr;gap:10px}.book-cover-link{width:100%}.book-cover-art{aspect-ratio:16 / 10}.book-cover-title{font-size:18px}.book-cover-subtitle{font-size:12px}.book-cover-brand-mark{width:18px;height:18px}.book-cover-brand-university{font-size:10px}.book-cover-brand-centre{font-size:8px}}.book-cover-link{text-decoration:none;color:inherit}.book-cover-card{border-radius:18px;overflow:hidden;border:1px solid #dbe3ef;background:#fff;box-shadow:0 14px 28px #0f172a1f;transition:transform .2s ease,box-shadow .2s ease}.book-cover-link:hover .book-cover-card{transform:translateY(-4px);box-shadow:0 18px 34px #0f172a29}.book-cover-card--locked{opacity:.7;filter:grayscale(.15)}.book-cover-art{position:relative;aspect-ratio:3 / 4;background:linear-gradient(160deg,#1e3a8a,#2563eb 48%,#93c5fd);padding:12px;color:#fff;display:flex;flex-direction:column;justify-content:flex-start;isolation:isolate}.book-cover-art:before{content:"";position:absolute;inset:16% 10% 22%;border-radius:14px;background:linear-gradient(145deg,#ffffff59,#ffffff14);border:1px solid rgba(255,255,255,.42);z-index:-1}.book-cover-art:after{content:"";position:absolute;width:68%;height:42%;left:16%;top:32%;border-radius:10px;background:linear-gradient(135deg,#ffffff4d,#ffffff0d);z-index:-1}.book-cover-ribbon{align-self:flex-end;background:#1d4ed8;color:#fff;font-size:11px;font-weight:800;letter-spacing:.04em;padding:8px 10px;border-radius:10px;max-width:160px;text-align:center}.book-cover-brand{display:flex;align-items:center;gap:8px;text-align:left;padding:8px}.book-cover-brand-mark{width:22px;height:22px;object-fit:contain;flex:0 0 auto}.book-cover-brand-text{display:flex;flex-direction:column;line-height:1.02}.book-cover-brand-university{color:#fff;font-size:11px;font-weight:800}.book-cover-brand-centre{color:#f39b25;font-size:9px;font-weight:700}.book-cover-title{margin-top:14px;font-size:19px;line-height:1.12;font-weight:900;letter-spacing:.01em;text-shadow:0 2px 8px rgba(0,0,0,.24)}.book-cover-subtitle{margin-top:4px;font-size:12px;font-weight:600;color:#ffffffeb}.book-cover-level{margin-top:auto;align-self:flex-end;width:38px;height:38px;border-radius:11px;background:#ffffffeb;color:#1d4ed8;font-size:21px;font-weight:900;display:grid;place-items:center;box-shadow:0 8px 18px #0f172a33}.book-cover-publisher{margin-top:12px;font-size:12px;color:#ffffffeb;font-weight:600}.book-cover-meta{padding:12px 14px;display:flex;flex-direction:column;gap:4px}.book-cover-status{font-size:12px;color:#64748b;font-weight:700}.book-cover-open{font-size:14px;color:#0f172a;font-weight:700}.workspace{display:flex;flex-direction:column;gap:24px;width:100%}.workspace.with-sidebar{display:grid;grid-template-columns:240px 1fr;align-items:start}.workspace-header{width:100%;display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.workspace.with-sidebar .workspace-header{grid-column:2 / -1}.workspace-actions{display:flex;gap:10px}.breadcrumb{color:#6b7280;font-size:13px}.workspace-controls{width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.workspace.with-sidebar .workspace-controls{grid-column:2 / -1}.workspace-tabs{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.workspace-tabs .tab{min-width:132px;height:52px;border-radius:18px;border:none;background:#2e86d8;color:#fff;font-weight:800;font-size:1.05rem;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;flex:0 0 auto}.workspace-tabs .tab.active{background:linear-gradient(135deg,#8b3cf6,#6d35dd);color:#fff}@media(max-width:768px){.workspace-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.workspace-tabs .tab{width:100%;min-width:0;height:44px;border-radius:14px;font-size:.95rem}}.workspace.with-sidebar .workspace-tabs{grid-column:2 / -1}.workspace>.card:not(.side-nav),.workspace>.empty-state{width:100%}.workspace.with-sidebar>.card:not(.side-nav),.workspace.with-sidebar>.empty-state{grid-column:2 / -1}.side-nav{display:flex;flex-direction:column;gap:8px;height:fit-content}.workspace.with-sidebar .side-nav{grid-column:1 / 2;grid-row:1 / span 10}@media(max-width:900px){.side-nav{padding-bottom:8px;margin-bottom:16px;border-bottom:1px solid #e5e7eb;scrollbar-width:none;-ms-overflow-style:none}.side-nav::-webkit-scrollbar{display:none}.side-nav a{white-space:nowrap;background:#fff;border:1px solid #e2e8f0}.side-nav a.active{background:#ede9fe;border-color:#7c3aed}}.empty-state{background:#f3e8ff;color:#5b21b6;padding:8px 14px;border-radius:999px;border:none;cursor:pointer}.tab.active{background:linear-gradient(135deg,#8b3cf6,#6d35dd);color:#fff}.side-nav a{padding:8px 10px;border-radius:10px;text-decoration:none;color:inherit;font-weight:500}.side-nav a.active{background:#ede9fe;font-weight:600;color:#5b21b6}.empty-state{text-align:center;padding:32px}.empty-illustration{font-size:40px;margin-bottom:8px}.table-responsive{width:100%}@media(max-width:768px){.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive table{min-width:600px}}.modal-backdrop{position:fixed;inset:0;background:#0f172a99;display:flex;align-items:center;justify-content:center;z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:#fff;border-radius:16px;padding:24px;width:100%;max-width:400px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;animation:modalSlide .2s ease-out}.preview-modal{width:min(900px,90vw);max-width:900px;max-height:85vh;display:flex;flex-direction:column;padding:0}@media(min-width:1024px){.preview-modal{max-height:75vh}}@media(max-width:640px){.preview-modal{width:95vw}}.preview-header,.preview-footer{padding:20px 24px}.preview-header{border-bottom:1px solid #e2e8f0}.preview-footer{border-top:1px solid #e2e8f0}.preview-content{flex:1;overflow:hidden;padding:16px 24px}.preview-body{height:100%;overflow-y:auto;padding-right:8px;max-height:none}@media(max-width:640px){.modal{width:calc(100% - 32px);margin:16px}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-title{font-size:18px;font-weight:600}.close-button{background:none;border:none;font-size:20px;cursor:pointer;color:#64748b;padding:4px}.modal-options{display:flex;flex-direction:column;gap:12px}.option-button{display:flex;align-items:center;gap:12px;width:100%;padding:16px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;cursor:pointer;transition:all .2s;text-align:left}.option-button:hover{border-color:#7c3aed;background:#f5f3ff}.option-icon{width:40px;height:40px;border-radius:10px;background:#f3e8ff;color:#7c3aed;display:grid;place-items:center;font-size:20px}.option-content{display:flex;flex-direction:column;gap:2px}.option-title{font-weight:700;font-size:16px;color:#0f172a}.option-desc{font-size:13px;color:#475569}.builderStepPill{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;background:#f3e8ff;color:#5b21b6;font-weight:800;font-size:12px;white-space:nowrap}@media(max-width:900px){.builderTwoPanel{grid-template-columns:1fr!important}}.linkBtn{background:none;border:none;padding:0;color:#2563eb;font-weight:700;cursor:pointer}.linkBtn:hover{text-decoration:underline}.assignStudentsPage{display:flex;flex-direction:column;gap:16px}.assignStudentsTopbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.assignStudentsTitle{font-size:18px;font-weight:900;color:#0f172a}.assignStudentsSubtitle{margin-top:2px;font-size:13px;color:#64748b;font-weight:600}.assignStudentsBody{display:grid;grid-template-columns:1fr;gap:16px;align-items:start}.assignStudentsPanelHeader{display:flex;align-items:center;justify-content:space-between;gap:12px}.assignStudentsClassesList{margin-top:12px;display:flex;flex-direction:column;gap:10px}.assignStudentsClassRow{display:flex;gap:10px;align-items:center;font-weight:700}.assignStudentsClassesFooter{margin-top:14px}.assignStudentsStudentsHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid #e5e7eb}.assignStudentsStudentsScroll{margin-top:14px}.assignStudentsStudentList{display:flex;flex-direction:column;gap:12px}.assignStudentsStudentCard{border:1px solid #e5e7eb;border-radius:14px;padding:14px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px}.assignStudentsStudentTopRow{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.assignStudentsStudentId{font-weight:900;color:#0f172a}.assignStudentsStudentName{font-weight:800;color:#1f2937}.assignStudentsStudentBadge{margin-top:6px;display:inline-flex;padding:4px 10px;border-radius:999px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;font-size:12px;font-weight:800}.assignStudentsFooter{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding-bottom:8px}@media(min-width:1024px){.assignStudentsBody{grid-template-columns:300px minmax(0,1fr);gap:24px}.assignStudentsClasses{position:sticky;top:120px;align-self:start}.assignStudentsStudents{min-width:0}.assignStudentsStudentsScroll{max-height:calc(100dvh - 320px);overflow-y:auto;padding-right:8px;padding-bottom:24px;overscroll-behavior:contain}}@keyframes modalSlide{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.tri-dots-loader{display:flex;align-items:center;justify-content:center;gap:16px}.tri-dots-loader--fullscreen{position:fixed;inset:0;z-index:9999;background:#ffffffdb}.tri-dot{width:20px;height:20px;border-radius:999px;animation:tri-dot-bounce 1s infinite ease-in-out}.tri-dot--green{background:#22c55e;animation-delay:0s}.tri-dot--orange{background:#f59e0b;animation-delay:.16s}.tri-dot--purple{background:#a855f7;animation-delay:.32s}@keyframes tri-dot-bounce{0%,80%,to{transform:scale(.8);opacity:.55}40%{transform:scale(1.25);opacity:1}}.teacherAssignmentsPage,.teacherAssignmentCreatePage{display:flex;flex-direction:column;gap:18px}.teacherAssignmentsHero,.teacherAssignmentCreateHero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.95fr);gap:18px;padding:24px;border-radius:24px}.teacherAssignmentsHero{background:linear-gradient(135deg,#1e3a8a,#2563eb 48%,#3b82f6);box-shadow:0 18px 40px #0f172a29}.teacherAssignmentCreateHero{border:1px solid #dbe3f0;background:#fff;box-shadow:0 12px 28px #0f172a0f}.teacherAssignmentsHeroContent{color:#fff}.teacherAssignmentCreateHeroContent{color:#0f172a}.teacherAssignmentsEyebrow{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#ffffffd1}.teacherAssignmentCreateEyebrow{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#64748b}.teacherAssignmentsTitle{margin:8px 0 0;font-size:30px;line-height:1.12;color:#fff}.teacherAssignmentCreateTitle{margin:8px 0 0;font-size:30px;line-height:1.12;color:#0f172a}.teacherAssignmentsSubtitle{max-width:620px;margin:10px 0 0;font-size:14px;line-height:1.7;color:#dbeafe}.teacherAssignmentCreateSubtitle{max-width:620px;margin:10px 0 0;font-size:14px;line-height:1.7;color:#64748b}.teacherAssignmentsWeekTag{display:inline-flex;align-items:center;width:fit-content;margin-top:16px;padding:8px 12px;border-radius:999px;background:#ffffff29;color:#fff;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.teacherAssignmentCreateHero .teacherAssignmentsWeekTag{background:#eff6ff;color:#1d4ed8}.teacherAssignmentsStats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.teacherAssignmentsStatCard{display:grid;gap:10px;padding:18px 16px;border-radius:18px}.teacherAssignmentsHero .teacherAssignmentsStatCard{border:1px solid rgba(255,255,255,.18);background:#0f172a24;color:#fff}.teacherAssignmentCreateHero .teacherAssignmentsStatCard{border:1px solid #e2e8f0;background:#f8fafc;color:#0f172a}.teacherAssignmentsStatCard strong{font-size:22px}.teacherAssignmentsStatLabel{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.teacherAssignmentsHero .teacherAssignmentsStatLabel{color:#ffffffd1}.teacherAssignmentCreateHero .teacherAssignmentsStatLabel{color:#64748b}.teacherAssignmentsToolbarCard,.teacherAssignmentContextCard,.teacherAssignmentStatusCard,.teacherAssignmentFormCard,.teacherAssignmentsListCard{padding:20px 22px;border-radius:22px;border:1px solid #dbe3f0;background:#fff;box-shadow:0 12px 28px #0f172a0f}.teacherAssignmentsToolbarCard,.teacherAssignmentContextCard,.teacherAssignmentStatusCard,.teacherAssignmentFormCard,.teacherAssignmentsListCard,.teacherAssignmentForm,.teacherAssignmentsList{display:grid;gap:16px}.teacherAssignmentContextRow,.teacherAssignmentsToolbarRow,.teacherAssignmentFormActions,.teacherAssignmentCardHeader,.teacherAssignmentMetaRow,.teacherAssignmentCardActions{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.teacherAssignmentsFilterLabel{color:#64748b;line-height:1.6;margin:0}.teacherAssignmentsList{gap:14px}.teacherAssignmentCard{display:grid;gap:14px;padding:20px;border-radius:22px;border:1px solid #dbe3f0;background:linear-gradient(180deg,#fff,#f8fbff)}.teacherAssignmentCardTitle{margin:8px 0 0;color:#0f172a;font-size:1.25rem}.teacherAssignmentInstructions{margin:0;color:#475569;line-height:1.65;white-space:pre-wrap}.teacherAssignmentMetaGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.teacherAssignmentMetaBlock{display:grid;gap:6px;padding:14px 16px;border-radius:18px;background:#eff6ff}.teacherAssignmentMetaBlock strong{color:#0f172a}.teacherAssignmentMetaBlock span{color:#64748b;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.teacherAssignmentStatusCard.is-error{border-color:#fecaca;background:#fff7f7;color:#b42318}.teacherAssignmentStatusCard.is-success{border-color:#bbf7d0;background:#f0fdf4;color:#15803d}.teacherAssignmentActionBtn{min-width:140px}.teacherAssignmentDangerBtn{background:#fee2e2;color:#b42318}.teacherAssignmentDraftBtn{background:#eef2ff;color:#1f2a44}.teacherAssignmentFormNote{margin:0;color:#64748b;line-height:1.6}.teacherAssignmentEmptyActions{display:flex;justify-content:center;margin-top:14px}@media(max-width:960px){.teacherAssignmentsHero,.teacherAssignmentCreateHero{grid-template-columns:1fr}}@media(max-width:640px){.teacherAssignmentsHero,.teacherAssignmentCreateHero,.teacherAssignmentsToolbarCard,.teacherAssignmentContextCard,.teacherAssignmentStatusCard,.teacherAssignmentFormCard,.teacherAssignmentsListCard,.teacherAssignmentCard{padding:18px 16px;border-radius:20px}.teacherAssignmentsTitle,.teacherAssignmentCreateTitle{font-size:24px}.teacherAssignmentsStats{grid-template-columns:1fr}.teacherAssignmentActionBtn{width:100%}.teacherAssignmentEmptyActions{justify-content:stretch}}.teacher-calendar{display:flex;flex-direction:column;gap:16px}.teacher-calendar-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.teacher-calendar-nav{display:flex;align-items:center;gap:8px}.teacher-calendar-nav button{width:38px;height:38px;border-radius:10px;border:1px solid #d7dce5;background:#fff;color:#0f172a;padding:0}.teacher-calendar-grid-card{overflow-x:auto}.teacher-calendar-grid{min-width:980px;display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));border:1px solid #e5e7eb;border-radius:14px;overflow:hidden}.teacher-calendar-weekday{background:#f8fafc;border-right:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;padding:10px;font-size:.86rem;font-weight:700}.teacher-calendar-weekday:nth-child(7n){border-right:none}.teacher-calendar-cell{min-height:140px;border-right:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;padding:8px;background:#fff}.teacher-calendar-cell:nth-child(7n){border-right:none}.teacher-calendar-cell.muted{background:#f9fafb}.teacher-calendar-day{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;border-radius:999px;font-size:.82rem;font-weight:700;margin-bottom:8px}.teacher-calendar-day.today{background:#0b4a6f;color:#fff}.teacher-calendar-events{display:flex;flex-direction:column;gap:6px}.teacher-calendar-event{background:#eef2f7;border-radius:10px;padding:6px 8px;display:flex;flex-direction:column;gap:4px}.teacher-calendar-event-title{font-size:.8rem;font-weight:600;line-height:1.3}.teacher-calendar-event-time{font-size:.75rem;color:#334155}.teacher-calendar-event-link{font-size:.75rem;color:#0b4a6f;font-weight:700;text-decoration:none}.teacher-calendar-event-link:hover{text-decoration:underline}.teacher-calendar-permission-card{margin-top:12px;padding:18px;border:1px solid #fecdd3;border-radius:16px;background:#fff1f2}.teacher-calendar-permission-card h3{margin:0 0 8px;color:#be123c}.teacher-calendar-permission-card p{margin:0;color:#881337;line-height:1.6}.teacherAttendancePage{width:100%;max-width:1160px;margin:0 auto;padding:8px 2px 28px;box-sizing:border-box;display:flex;flex-direction:column;gap:16px}.teacherAttendanceHero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.95fr);gap:18px;padding:24px;border-radius:24px;background:linear-gradient(135deg,#111827,#334155 45%,#60a5fa);box-shadow:0 18px 40px #0f172a29}.teacherAttendanceHeroContent{color:#fff}.teacherAttendanceEyebrow{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#ffffffd1}.teacherAttendanceTitle{margin:8px 0 0;font-size:30px;line-height:1.12;color:#fff}.teacherAttendanceSubtitle{max-width:620px;margin:10px 0 0;font-size:14px;line-height:1.7;color:#dbeafe}.teacherAttendanceStats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.teacherAttendanceStatCard{display:grid;gap:10px;padding:18px 16px;border-radius:18px;border:1px solid rgba(255,255,255,.18);background:#ffffff1a;color:#fff}.teacherAttendanceStatLabel,.teacherAttendanceMetaLabel{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.teacherAttendanceStatLabel{color:#ffffffd1}.teacherAttendanceStatCard strong{font-size:22px}.teacherAttendanceTopBar{display:flex;align-items:center;gap:12px}.teacherAttendanceBackBtn{width:40px;height:40px;border-radius:12px;border:1px solid #dbe3ef;background:#fff;color:#0f172a;padding:0}.teacherAttendanceClassCode{color:#64748b;font-size:.92rem;font-weight:700}.teacherAttendanceConfigCard,.teacherAttendanceListCard{padding:20px 22px;border-radius:22px;border:1px solid #dbe3f0;background:#fff;box-shadow:0 12px 28px #0f172a0f}.teacherAttendanceConfigCard,.teacherAttendanceListCard{display:grid;gap:16px}.teacherAttendanceMetaLabel{color:#64748b}.teacherAttendanceClassRow{display:flex;align-items:center;gap:12px}.teacherAttendanceClassIcon{width:40px;height:40px;border-radius:12px;background:#eff6ff;display:inline-flex;align-items:center;justify-content:center;color:#1d4ed8}.teacherAttendanceClassName{margin-top:4px;font-weight:800;color:#0f172a}.teacherAttendanceSchedule{font-size:.84rem;color:#64748b}.teacherAttendanceDatePill{border:1px solid #dbe3ef;border-radius:14px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px}.teacherAttendanceDatePill input{border:none;padding:0;margin:0;background:transparent;font-weight:700;color:#0f172a}.teacherAttendanceClassField{margin-bottom:0}.teacherAttendanceListHead{display:flex;align-items:center;justify-content:space-between;gap:12px}.teacherAttendanceStudentsLeft{display:flex;align-items:center;gap:8px;font-weight:700}.teacherAttendanceCount{border-radius:999px;background:#eef2ff;color:#3730a3;padding:2px 8px;font-size:.75rem}.teacherAttendanceSelectAll{display:inline-flex;align-items:center;gap:8px;color:#334155;font-size:.92rem}.teacherAttendanceList{border:1px solid #e5e7eb;border-radius:18px;overflow:hidden}.teacherAttendanceHeaderRow,.teacherAttendanceRow{display:grid;grid-template-columns:auto minmax(0,1fr) repeat(3,minmax(120px,auto));align-items:center;gap:12px}.teacherAttendanceHeaderRow{padding:12px 16px;border-bottom:1px solid #eef2f7;background:#f8fafc;color:#475467;font-size:.78rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.teacherAttendanceHeaderSpacer{width:34px}.teacherAttendanceHeaderStudent{min-width:0}.teacherAttendanceHeaderStatus{text-align:center}.teacherAttendanceRow{padding:14px 16px;border-bottom:1px solid #eef2f7;background:#fff}.teacherAttendanceRowMessage{display:block}.teacherAttendanceRow:last-child{border-bottom:none}.teacherAttendanceNum{width:34px;height:34px;border-radius:12px;background:#f1f5f9;display:inline-flex;align-items:center;justify-content:center;font-weight:700;color:#0f172a}.teacherAttendanceName{font-weight:700;color:#111827;font-size:.95rem}.teacherAttendanceId{margin-top:2px;font-size:.8rem;color:#64748b}.teacherAttendanceMark{min-height:48px;border-radius:14px;border:1px solid #dbe3ef;background:#fff;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:.84rem;font-weight:700;color:#334155;padding:10px 12px}.teacherAttendanceMarkIcon{font-size:1rem;line-height:1}.teacherAttendanceMarkPresent.checked{border-color:#16a34a;background:#f0fdf4;color:#166534}.teacherAttendanceMarkPresent.unchecked{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.teacherAttendanceMarkLate.checked{border-color:#f59e0b;background:#fff7ed;color:#b45309}.teacherAttendanceMarkLate.unchecked{color:#64748b}.teacherAttendanceActions{display:flex;justify-content:flex-end}.teacherAttendanceSaveBtn{min-width:180px;border:none;border-radius:14px;padding:12px 18px;background:#111827;color:#fff;font-weight:800}.teacherAttendanceMessage{margin:0;font-weight:700}.teacherAttendanceMessage.error{color:#b42318}.teacherAttendanceMessage.success{color:#027a48}@media(max-width:1024px){.teacherAttendancePage{max-width:860px;padding:0 2px 24px}.teacherAttendanceHero{grid-template-columns:1fr}}@media(max-width:768px){.teacherAttendancePage{max-width:760px;padding:0 2px 24px}.teacherAttendanceStats,.teacherAttendanceHeaderRow,.teacherAttendanceRow{grid-template-columns:1fr}.teacherAttendanceListHead,.teacherAttendanceDatePill{display:grid}.teacherAttendanceHeaderRow{display:none}.teacherAttendanceMark{width:100%}}.teacherDashboardShell{display:flex;flex-direction:column;gap:24px;padding:16px 0;font-family:Inter,sans-serif}.teacherHeroBanner{position:relative;display:flex;justify-content:space-between;align-items:center;gap:32px;overflow:hidden;min-height:188px;padding:18px 28px;border-radius:24px;background:linear-gradient(to right,#1e3a8a,#3b82f6);box-shadow:0 18px 40px #1e3a8a3d}.teacherHeroContent{position:relative;z-index:1;max-width:560px}.teacherHeroHeadingRow{display:flex;align-items:center;gap:10px}.teacherHeroHeading{margin:0;font-size:24px;font-weight:600;line-height:1.25;color:#fff}.teacherHeroAlertDot{width:12px;height:12px;flex:0 0 12px;border-radius:999px;background:#ef4444;box-shadow:0 0 0 4px #ef44442e}.teacherHeroSubtext{margin:6px 0 0;font-size:14px;line-height:1.6;color:#cbd5f5}.teacherHeroActions{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}.teacherHeroButton{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:999px;padding:10px 18px;font-size:14px;font-weight:700;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.teacherHeroButton:hover{transform:translateY(-1px)}.teacherHeroButton:focus-visible,.teacherCalendarNav button:focus-visible,.teacherUpcomingMeta a:focus-visible{outline:2px solid #1d4ed8;outline-offset:2px}.teacherHeroButtonOutline{background:#e0e7ff;color:#1e40af;box-shadow:0 10px 24px #0e1e5e2e}.teacherHeroButtonSolid{background:#f97316;color:#fff;box-shadow:0 12px 24px #f9731647}.teacherHeroButtonIcon{font-size:14px;line-height:1}.teacherHeroHelper{margin:12px 0 0;font-size:13px;line-height:1.5;color:#ffffffe0}.teacherHeroDecor{position:relative;flex:0 0 180px;align-self:stretch;min-height:140px}.teacherHeroGlow{position:absolute;border-radius:999px;background:radial-gradient(circle,#fff6,#ffffff1a 45%,#fff0 72%);opacity:.55}.teacherHeroGlowLarge{right:-20px;top:12px;width:240px;height:240px}.teacherHeroGlowMedium{right:72px;bottom:-36px;width:160px;height:160px}.teacherHeroGlowSmall{right:28px;top:136px;width:90px;height:90px}.teacherDashboardSections{display:grid;grid-template-columns:1fr;gap:24px}.teacherDashboardPanel{display:grid;gap:18px;padding:22px;border:1px solid #dbe3f0;border-radius:24px;background:#fff;box-shadow:0 10px 24px #0f172a0f}.teacherPanelHeader{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.teacherPanelEyebrow{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#2563eb}.teacherPanelTitle{margin:6px 0 0;font-size:24px;line-height:1.2;color:#0f172a}.teacherPanelDescription{margin:8px 0 0;font-size:14px;line-height:1.6;color:#64748b}.teacherPanelState{padding:14px 16px;border-radius:16px;background:#f8fafc;color:#475569;font-size:14px}.teacherPanelStateError{background:#fff1f2;color:#be123c}.teacherUpcomingTitle{margin:0;color:#0f172a}.teacherCalendarNav{display:inline-flex;align-items:center;gap:10px;padding:8px 10px;border-radius:999px;background:#f8fafc;color:#0f172a;font-size:13px;font-weight:700}.teacherCalendarNav button{width:32px;height:32px;border:1px solid #d6dfec;border-radius:999px;background:#fff;color:#0f172a;cursor:pointer}.teacherDashboardCalendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));overflow:hidden;border:1px solid #e2e8f0;border-radius:18px;background:#f8fafc}.teacherDashboardWeekday{padding:10px 8px;text-align:center;font-size:12px;font-weight:700;color:#334155;background:#eff6ff;border-bottom:1px solid #dbe5f0}.teacherDashboardDay{min-height:72px;padding:8px;border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;background:#fff}.teacherDashboardDay:nth-child(7n){border-right:none}.teacherDashboardDay.is-muted{background:#f8fafc}.teacherDashboardDayNumber{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;font-size:12px;font-weight:700;color:#0f172a}.teacherDashboardDayNumber.is-today{background:#1d4ed8;color:#fff}.teacherDashboardDayEvents{display:flex;flex-direction:column;gap:6px;margin-top:10px}.teacherDashboardEventCard{display:flex;flex-direction:column;gap:4px;padding:6px 8px;border-radius:10px;background:#eef2f7}.teacherDashboardEventTitle{font-size:.74rem;font-weight:600;line-height:1.25;color:#0f172a}.teacherDashboardEventTime{font-size:.72rem;color:#334155}.teacherDashboardEventLink{font-size:.72rem;font-weight:700;color:#0b4a6f;text-decoration:none}.teacherDashboardEventLink:hover{text-decoration:underline}.teacherUpcomingList{display:grid;gap:12px}.teacherUpcomingCard{display:flex;justify-content:space-between;gap:18px;padding:16px 18px;border-radius:18px;border:1px solid #e2e8f0;background:#f8fafc}.teacherUpcomingCard h4{margin:0;font-size:16px;color:#0f172a}.teacherUpcomingCard p{margin:6px 0 0;font-size:13px;color:#64748b}.teacherUpcomingMeta{display:flex;flex-direction:column;align-items:flex-end;gap:6px;font-size:13px;color:#334155}.teacherUpcomingMeta a{color:#1d4ed8;font-weight:700}@media(max-width:900px){.teacherHeroBanner{flex-direction:column;align-items:flex-start}.teacherHeroDecor{width:100%;min-height:80px}.teacherPanelHeader,.teacherUpcomingCard{flex-direction:column}.teacherUpcomingMeta{align-items:flex-start}}@media(max-width:768px){.teacherDashboardShell{gap:18px;padding:10px 0 18px}.teacherHeroBanner{min-height:150px;padding:16px 18px;gap:18px;border-radius:20px}.teacherHeroHeading{font-size:20px}.teacherHeroActions{width:100%}.teacherHeroButton{flex:1 1 160px}.teacherDashboardPanel{padding:16px;border-radius:20px}.teacherDashboardCalendar{overflow-x:auto}}.teacher-settings-page{gap:20px}.teacher-settings-hero{width:100%;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.9fr);gap:20px;padding:28px;background:linear-gradient(135deg,#f8fbff,#eef4ff 48%,#f7f0ff);border:1px solid #dbe7ff}.teacher-settings-hero-copy h1{margin:6px 0 10px}.teacher-settings-hero-copy p{margin:0;max-width:68ch;color:#475569}.teacher-settings-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.teacher-settings-summary-card{border-radius:18px;border:1px solid rgba(191,219,254,.95);background:#ffffffe0;padding:18px 16px;display:grid;gap:8px}.teacher-settings-summary-card span{color:#64748b;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.teacher-settings-summary-card strong{color:#0f172a;font-size:24px;font-weight:900}.teacher-settings-grid{display:grid;gap:20px}.teacher-settings-card{display:grid;gap:18px}.teacher-settings-card-head{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start}.teacher-settings-card-head h3{margin:4px 0 6px}.teacher-settings-card-head p{margin:0;color:#64748b}.teacher-settings-icon{width:48px;height:48px;border-radius:16px;display:inline-flex;align-items:center;justify-content:center;background:#eef2ff;color:#4338ca;font-size:20px}.teacher-settings-section-body{display:grid;gap:14px}.teacher-settings-field{gap:10px}.teacher-settings-field small{color:#64748b;font-size:12px;font-weight:600}.teacher-settings-toggle{display:flex;justify-content:space-between;align-items:center;gap:16px;border:1px solid #e2e8f0;border-radius:16px;padding:16px 18px;background:#fff}.teacher-settings-toggle strong{display:block;color:#0f172a;font-size:15px}.teacher-settings-toggle div div{margin-top:6px;color:#64748b;font-size:13px;font-weight:600}.teacher-settings-toggle input{width:22px;height:22px;min-height:22px;accent-color:#4f46e5;box-shadow:none;flex-shrink:0}.teacher-settings-input-with-suffix{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}.teacher-settings-input-with-suffix span{color:#475569;font-weight:700}.teacher-settings-status{font-weight:700}.teacher-settings-status.success{color:#166534;border-color:#bbf7d0;background:#f0fdf4}.teacher-settings-status.error{color:#b42318;border-color:#fecaca;background:#fff1f2}.teacher-settings-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.teacher-settings-footer p{margin:0;color:#64748b;font-weight:600}@media(max-width:960px){.teacher-settings-hero{grid-template-columns:1fr}}@media(max-width:768px){.teacher-settings-hero{padding:20px}.teacher-settings-summary,.teacher-settings-card-head{grid-template-columns:1fr}.teacher-settings-toggle{align-items:flex-start}.teacher-settings-footer{align-items:stretch}.teacher-settings-footer button{width:100%}}@media(max-width:560px){.teacher-settings-page{gap:16px}.teacher-settings-hero{padding:16px;gap:16px}.teacher-settings-hero-copy h1{font-size:1.65rem}.teacher-settings-summary-card{padding:14px}.teacher-settings-summary-card strong{font-size:20px}.teacher-settings-toggle{flex-direction:column;align-items:flex-start;padding:14px}.teacher-settings-input-with-suffix{grid-template-columns:1fr;gap:6px}.teacher-settings-card,.teacher-settings-status{gap:14px}}.teacher-notify-page{display:flex;flex-direction:column;gap:18px}.teacher-notify-title{margin:0;font-size:2rem;font-weight:900}.teacher-notify-subtitle{margin:8px 0 0;color:#475569;max-width:760px}.teacher-notify-shell{border:1px solid #dbe7f3;padding:18px}.teacher-notify-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:18px;min-height:420px}.teacher-notify-list{border-right:1px solid #d7dce5;padding-right:14px;display:flex;flex-direction:column;gap:10px;max-height:460px;overflow-y:auto}.teacher-notify-item{border:1px solid #dbe3ef;background:#f8fafc;border-radius:14px;padding:12px 14px;text-align:left;display:flex;gap:10px;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}.teacher-notify-item.active{background:#eef4ff;border-color:#bfd3ff;box-shadow:0 10px 24px #2563eb14}.teacher-notify-icon{width:26px;height:26px;border-radius:999px;border:2px solid #2563eb;display:inline-flex;align-items:center;justify-content:center;font-size:13px;flex:0 0 auto;color:#2563eb;background:#eff6ff}.teacher-notify-item-title{font-weight:700;color:#111827;line-height:1.35}.teacher-notify-item-time{margin-top:4px;color:#4b5563;font-size:.85rem}.teacher-notify-detail{padding:6px 0 6px 4px}.teacher-notify-placeholder{color:#475569;margin-top:6px}.teacher-notify-detail-card{border:1px solid #dbe7f3;border-radius:18px;padding:20px;background:linear-gradient(180deg,#fbfdff,#fff);min-height:100%}.teacher-notify-detail-title{font-size:1.1rem;font-weight:800;color:#111827}.teacher-notify-meta{margin-top:8px;color:#64748b;font-size:.9rem}@media(max-width:900px){.teacher-notify-layout{grid-template-columns:1fr;min-height:0}.teacher-notify-list{border-right:none;border-bottom:1px solid #d7dce5;padding-right:0;padding-bottom:12px;max-height:260px}.teacher-notify-detail{padding-left:0}}@media(max-width:640px){.teacher-notify-title{font-size:1.65rem}.teacher-notify-shell{padding:14px}.teacher-notify-item{padding:10px 12px}.teacher-notify-detail-card{padding:16px}}.teacher-help-page{display:flex;flex-direction:column;gap:18px}.teacher-help-hero{border:1px solid #dbe7f3;background:linear-gradient(180deg,#f8fffe,#fff 60%);display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.9fr);gap:18px;align-items:stretch}.teacher-help-hero h1{margin:8px 0 6px}.teacher-help-hero p{margin:0;color:#475569}.teacher-help-summary{display:grid;gap:12px}.teacher-help-summary-card{border:1px solid #d9e6f8;border-radius:16px;background:#ffffffeb;padding:14px 16px}.teacher-help-summary-card span{display:block;color:#64748b;font-size:.85rem;margin-bottom:6px}.teacher-help-summary-card strong{color:#0f172a;font-size:1rem}.teacher-help-grid{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:16px}.teacher-help-card{border:1px solid #e2e8f0;display:flex;flex-direction:column;gap:14px}.teacher-help-card-head{display:flex;align-items:flex-start;gap:12px}.teacher-help-card-icon{width:42px;height:42px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;background:#eef4ff;border:1px solid #d6e4ff;font-size:1.15rem;flex:0 0 auto}.teacher-help-card h2{margin:4px 0 0;font-size:1.2rem}.teacher-help-card ol,.teacher-help-card ul{margin:0;padding-left:18px;color:#1f2937;display:grid;gap:6px}.teacher-help-card--full{grid-column:1 / -1}.teacher-help-checklist{margin-top:12px;border:1px dashed #c7d2fe;background:#f8faff;border-radius:10px;padding:10px 12px}.teacher-help-checklist-list{margin:0;padding-left:18px;display:grid;gap:8px}@media(max-width:900px){.teacher-help-hero,.teacher-help-grid{grid-template-columns:1fr}.teacher-help-card--full{grid-column:auto}}@media(max-width:640px){.teacher-help-page{gap:16px}.teacher-help-hero{gap:14px}.teacher-help-hero h1{font-size:1.65rem}.teacher-help-card{gap:12px}.teacher-help-card-head{flex-direction:column;gap:10px}.teacher-help-summary-card,.teacher-help-checklist{padding:12px 14px}}.teacherCoursesPage{display:flex;flex-direction:column;gap:20px;padding:16px 0 24px}.teacherCoursesHero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.95fr);gap:18px;padding:24px;border-radius:24px;background:linear-gradient(135deg,#1e3a8a,#2563eb 48%,#3b82f6);box-shadow:0 18px 40px #2563eb2e}.teacherCoursesHeroCopy{color:#fff}.teacherCoursesEyebrow{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#ffffffd1}.teacherCoursesTitle{margin:8px 0 0;font-size:26px;line-height:1.15;color:#fff}.teacherCoursesSubtitle{max-width:620px;margin:10px 0 0;font-size:13px;line-height:1.6;color:#dbeafe}.teacherCoursesStats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.teacherCoursesStatCard{display:grid;gap:10px;align-content:space-between;padding:18px 16px;border-radius:18px;border:1px solid rgba(255,255,255,.2);background:#0f172a24;color:#fff}.teacherCoursesStatLabel{font-size:12px;font-weight:700;color:#ffffffd1}.teacherCoursesStatCard strong{font-size:20px;line-height:1.2}.teacherCoursesIntroCard h2{margin:6px 0 0;color:#0f172a;font-size:1.35rem}.teacherCoursesIntroCard p{margin:10px 0 0;color:#64748b;font-size:.95rem;line-height:1.6}.teacherCoursesGrid{display:grid;grid-template-columns:1fr;gap:12px}.teacherCourseCard{display:grid;grid-template-columns:minmax(220px,360px) minmax(0,1fr) auto;align-items:center;gap:28px;width:100%;padding:18px;border:1px solid #cfd4dc;border-radius:26px;background:#fff;text-align:left;cursor:pointer;font:inherit}.teacherCourseThumbnail{position:relative;min-height:170px;border-radius:24px;overflow:hidden;background-color:#6d5bdd}.teacherCourseThumbnail:before,.teacherCourseThumbnail:after{content:"";position:absolute;inset:0}.teacherCourseThumbnail:before{background:linear-gradient(30deg,rgba(255,255,255,.12) 12%,transparent 12.5%,transparent 87%,rgba(255,255,255,.12) 87.5%,rgba(255,255,255,.12)),linear-gradient(150deg,rgba(255,255,255,.1) 12%,transparent 12.5%,transparent 87%,rgba(255,255,255,.1) 87.5%,rgba(255,255,255,.1)),linear-gradient(90deg,rgba(255,255,255,.05) 2%,transparent 2.5%,transparent 97%,rgba(255,255,255,.05) 97.5%,rgba(255,255,255,.05));background-size:60px 104px;background-position:0 0,30px 52px,0 0;opacity:.9}.teacherCourseThumbnail:after{background:linear-gradient(135deg,#ffffff1f,#fff0)}.teacherCourseCard--violet .teacherCourseThumbnail{background:linear-gradient(135deg,#7063ea,#6151d6)}.teacherCourseCard--aqua .teacherCourseThumbnail{background:linear-gradient(135deg,#7fdde0,#6fcfd6)}.teacherCourseCard--coral .teacherCourseThumbnail{background:linear-gradient(135deg,#f8a48f,#ef8d78)}.teacherCourseCard--gold .teacherCourseThumbnail{background:linear-gradient(135deg,#f6d37b,#e8bf56)}.teacherCourseCard--rose .teacherCourseThumbnail{background:linear-gradient(135deg,#ef7ba7,#df5f8f)}.teacherCourseMain{display:grid;gap:20px;min-width:0}.teacherCourseSemesterPill{display:inline-flex;align-items:center;justify-content:center;width:fit-content;min-width:165px;padding:12px 22px;border-radius:999px;background:#0b2b6f;color:#fff;font-size:14px;font-weight:700}.teacherCourseMain h3{margin:0;font-size:clamp(1.35rem,1.65vw,1.7rem);line-height:1.25;color:#202020}.teacherCourseMeta{margin:0;color:#5b6472;font-size:.9rem;font-weight:600}.teacherCourseMenuChip{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:18px;background:#d4d4d4;color:#fff;font-size:26px;line-height:1}@media(min-width:961px){.teacherCourseCard:hover{border-color:#b9c2ce}}@media(max-width:960px){.teacherCoursesHero{grid-template-columns:1fr}}@media(max-width:640px){.teacherCoursesPage{gap:16px;padding:10px 0 18px}.teacherCoursesHero,.teacherCoursesIntroCard,.teacherCourseCard{padding:18px 16px;border-radius:20px}.teacherCoursesTitle{font-size:24px}.teacherCoursesStats{grid-template-columns:1fr}.teacherCourseCard{grid-template-columns:1fr;gap:18px;padding:16px}.teacherCourseThumbnail{min-height:150px}.teacherCourseMain{gap:14px}.teacherCourseMain h3{font-size:1.35rem}.teacherCourseMenuChip{justify-self:end;width:46px;height:46px;border-radius:16px;font-size:22px}}.courseWorkspaceFlowPage{display:flex;flex-direction:column;gap:20px;padding:16px 0 24px}.courseWorkspaceHero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.95fr);gap:18px;padding:24px;border-radius:24px;background:linear-gradient(135deg,#0f172a,#1d4ed8 55%,#2563eb);box-shadow:0 18px 40px #1d4ed82e}.courseWorkspaceHeroCopy{color:#fff}.courseWorkspaceBackBtn{display:inline-flex;align-items:center;gap:8px;padding:0;border:0;background:transparent;color:#dbeafe;cursor:pointer;font:inherit;font-weight:700}.courseWorkspaceEyebrow{margin-top:12px;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#ffffffd1}.courseWorkspaceTitle{margin:8px 0 0;font-size:26px;line-height:1.15;color:#fff}.courseWorkspaceSubtitle{max-width:620px;margin:10px 0 0;font-size:13px;line-height:1.6;color:#dbeafe}.courseWorkspaceStats{display:grid;grid-template-columns:1fr;gap:12px}.courseWorkspaceStatCard{display:grid;gap:10px;padding:18px 16px;border-radius:18px;border:1px solid rgba(255,255,255,.2);background:#0f172a24;color:#fff}.courseWorkspaceStatLabel{font-size:12px;font-weight:700;color:#ffffffd1}.courseWorkspaceStatCard strong{font-size:20px;line-height:1.2}.courseWorkspaceIntroCard h2{margin:6px 0 0;color:#0f172a;font-size:1.35rem}.courseWorkspaceIntroCard p{margin:10px 0 0;color:#64748b;font-size:.95rem;line-height:1.6}.courseWorkspaceUnitGrid,.courseWorkspaceChoiceGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.courseWorkspaceUnitCard,.courseWorkspaceChoiceCard{display:grid;gap:12px;width:100%;padding:20px;border:1px solid #dbe2ea;border-radius:22px;background:#fff;text-align:left;cursor:pointer;font:inherit;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.courseWorkspaceUnitCard:hover,.courseWorkspaceChoiceCard:hover{border-color:#b6c2d4;box-shadow:0 14px 28px #0f172a14;transform:translateY(-1px)}.courseWorkspaceUnitEyebrow{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#2563eb}.courseWorkspaceUnitCard strong{font-size:1.3rem;color:#0f172a}.courseWorkspaceUnitMeta,.courseWorkspaceChoiceCard p{color:#64748b;line-height:1.55}.courseWorkspaceChoiceCard{grid-template-columns:auto minmax(0,1fr);align-items:start}.courseWorkspaceChoiceIcon{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:16px;background:#eff6ff;font-size:26px}.courseWorkspaceChoiceCard h3{margin:0;color:#0f172a;font-size:1.25rem}.courseWorkspaceChoiceCard p{margin:8px 0 0}.courseWorkspaceChoiceCta{grid-column:1 / -1;color:#1d4ed8;font-weight:700}@media(max-width:960px){.courseWorkspaceHero{grid-template-columns:1fr}}@media(max-width:640px){.courseWorkspaceFlowPage{gap:16px;padding:10px 0 18px}.courseWorkspaceHero,.courseWorkspaceIntroCard,.courseWorkspaceUnitCard,.courseWorkspaceChoiceCard{padding:18px 16px;border-radius:20px}.courseWorkspaceTitle{font-size:24px}}.teacherResourcesPage{display:flex;flex-direction:column;gap:18px}.teacherResourcesHero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.95fr);gap:18px;padding:24px;border-radius:24px;background:linear-gradient(135deg,#1e3a8a,#2563eb 48%,#3b82f6);box-shadow:0 18px 40px #0f172a29}.teacherResourcesHeroContent{color:#fff}.teacherResourcesBackBtn{display:inline-flex;align-items:center;justify-content:center;margin-bottom:16px;border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:8px 14px;background:#ffffff1f;color:#fff;font-weight:700;cursor:pointer}.teacherResourcesEyebrow{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#ffffffd1}.teacherResourcesTitle{margin:8px 0 0;font-size:30px;line-height:1.12;color:#fff}.teacherResourcesSubtitle{max-width:620px;margin:10px 0 0;font-size:14px;line-height:1.7;color:#dbeafe}.teacherResourcesStats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.teacherResourcesStatCard{display:grid;gap:10px;padding:18px 16px;border-radius:18px;border:1px solid rgba(255,255,255,.18);background:#0f172a24;color:#fff}.teacherResourcesStatLabel,.teacherResourcesMetaLabel{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.teacherResourcesStatLabel{color:#ffffffd1}.teacherResourcesStatCard strong{font-size:22px}.teacherResourcesToolbar,.teacherResourcesStateCard,.teacherResourcesEditorCard{padding:20px 22px;border-radius:22px;border:1px solid #dbe3f0;background:#fff;box-shadow:0 12px 28px #0f172a0f}.teacherResourcesToolbar,.teacherResourcesEditorCard,.teacherResourcesStateCard,.teacherResourcesForm{display:grid;gap:16px}.teacherResourcesMetaLabel{color:#64748b}.teacherResourcesSectionTitle{margin:6px 0 0;color:#0f172a}.teacherResourcesToolbarCopy,.teacherResourcesCategoryCopy{margin:8px 0 0;color:#64748b;line-height:1.65}.teacherResourcesUnitList{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.teacherResourcesUnitPill{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:12px;font-weight:700}.teacherResourcesWeekField{margin-bottom:0;min-width:190px}.teacherResourcesWeekTabs,.teacherResourcesCategoryTabs{display:flex;flex-wrap:wrap;gap:8px}.teacherResourcesWeekTab,.teacherResourcesCategoryTab,.teacherResourcesAddBtn,.teacherResourceRemoveBtn,.teacherResourcesSaveBtn{border:none;border-radius:14px;padding:11px 16px;font-weight:800;cursor:pointer}.teacherResourcesWeekTab,.teacherResourcesCategoryTab{background:#eef2ff;color:#334155}.teacherResourcesWeekTab.is-active,.teacherResourcesCategoryTab.is-active{background:#1d4ed8;color:#fff}.teacherResourcesWeekDot{display:inline-block;width:8px;height:8px;margin-left:6px;border-radius:999px;background:currentColor}.teacherResourcesCategoryHeader{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.teacherResourcesAddBtn,.teacherResourceRemoveBtn{background:#eff6ff;color:#1d4ed8}.teacherResourcesList{display:grid;gap:14px}.teacherResourceCard{display:grid;gap:14px;padding:18px;border-radius:20px;border:1px solid #dbe3f0;background:linear-gradient(180deg,#fff,#f8fbff)}.teacherResourceInputs{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.teacherResourceModeField{display:grid;gap:8px}.teacherResourceModeSelector{display:flex;flex-wrap:wrap;gap:8px}.teacherResourceModeBadge{display:inline-flex;align-items:center;border-radius:999px;padding:10px 14px;background:#f3e8ff;color:#7c3aed;font-weight:800}.teacherResourceModeBtn{border:1px solid #dbe3f0;border-radius:999px;padding:10px 14px;background:#fff;color:#334155;font-weight:800;cursor:pointer}.teacherResourceModeBtn.is-active{background:#1d4ed8;border-color:#1d4ed8;color:#fff}.teacherResourceModeBtn--offline{border-color:#c084fc;color:#7c3aed}.teacherResourceModeBtn--offline.is-active{background:#7c3aed;border-color:#7c3aed;color:#fff}.teacherResourceActions{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.teacherResourcePlayBtn{border:none;border-radius:999px;padding:10px 16px;background:#1d4ed8;color:#fff;font-weight:800;cursor:pointer}.teacherResourcePlayBtn.is-disabled{background:#cbd5e1;color:#64748b;cursor:not-allowed}.teacherResourceUploadHint{margin-top:-2px;color:#64748b;font-size:12px;line-height:1.6}.teacherResourceDialogOverlay{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:20px}.teacherResourceDialogBackdrop{position:absolute;inset:0;background:#0f172aad}.teacherResourceDialog{position:relative;width:min(900px,100%);max-height:calc(100vh - 40px);overflow:auto;border-radius:24px;background:#fff;box-shadow:0 24px 64px #0f172a47;padding:20px;display:grid;gap:16px}.teacherResourceDialog.is-compact{width:min(720px,100%)}.teacherResourceDialogHeader{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.teacherResourceDialogTitle{margin:6px 0 0;color:#0f172a}.teacherResourceDialogClose{width:40px;height:40px;border:none;border-radius:999px;background:#e2e8f0;color:#0f172a;font-size:24px;line-height:1;cursor:pointer}.teacherResourceDialogBody{display:grid;gap:14px}.teacherResourceViewerToolbar,.teacherResourceViewerGroup{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.teacherResourceViewerToolbar{justify-content:space-between}.teacherResourceViewerBtn{border:1px solid #dbe3f0;border-radius:999px;padding:9px 14px;background:#fff;color:#0f172a;font-weight:700;cursor:pointer;text-decoration:none}.teacherResourceViewerBtn.is-link{display:inline-flex;align-items:center}.teacherResourceViewerValue{font-weight:800;color:#475569}.teacherResourceErrorDialog{width:min(520px,100%)}.teacherResourceErrorMessage{padding:16px 18px;border-radius:18px;border:1px solid #fecdd3;background:#fff1f2;color:#b42318;font-weight:600;line-height:1.6}.teacherResourceSuccessDialog{width:min(520px,100%)}.teacherResourceSuccessMessage{padding:16px 18px;border-radius:18px;border:1px solid #a7f3d0;background:#ecfdf5;color:#027a48;font-weight:600;line-height:1.6}.teacherUploadProgressCard{display:grid;gap:12px}.teacherUploadProgressText{color:#0f172a;font-weight:700}.teacherUploadProgressBar{width:100%;height:12px;overflow:hidden;border-radius:999px;background:#e2e8f0}.teacherUploadProgressFill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#1d4ed8,#60a5fa);transition:width .2s ease}.teacherResourceFrame,.teacherResourceMedia,.teacherResourcePdfFrame{width:100%;min-height:420px;border:none;border-radius:18px}.teacherResourceFrame,.teacherResourceMedia{background:#000}.teacherResourcePdfFrame{background:#f8fafc}.teacherResourceAudio{width:100%}.teacherResourceMeta{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.teacherResourcesCourseValue{font-weight:700;color:#0f172a}.teacherResourcesToolbarActions{display:flex;justify-content:flex-end;gap:12px}.teacherResourcesSaveBtn{min-width:180px}.teacherResourcesSaveDraftBtn{background:#111827;color:#fff}.teacherResourcesSubmitBtn{background:#1d4ed8;color:#fff}.teacherResourcesStatusLine{color:#475569;font-size:14px}.teacherResourcesStateCard.is-error{color:#b42318;border-color:#fecdd3;background:#fff1f2}.teacherResourcesStateCard.is-success{color:#027a48;border-color:#a7f3d0;background:#ecfdf5}@media(max-width:980px){.teacherResourcesHero{grid-template-columns:1fr}}@media(max-width:640px){.teacherResourcesHero,.teacherResourcesToolbar,.teacherResourcesStateCard,.teacherResourcesEditorCard,.teacherResourceCard{padding:18px 16px;border-radius:20px}.teacherResourcesTitle{font-size:24px}.teacherResourcesStats{grid-template-columns:1fr}.teacherResourcesCategoryHeader,.teacherResourceActions,.teacherResourceMeta{display:grid}.teacherResourceDialog{padding:18px 16px;border-radius:20px}.teacherResourceFrame,.teacherResourceMedia,.teacherResourcePdfFrame{min-height:220px}}.progressPage{display:flex;flex-direction:column;gap:20px}.progressHeader{margin-top:16px}.progressBreadcrumb{font-size:13px;color:#64748b;font-weight:700}.progressTitle{margin-top:6px;font-size:30px;font-weight:900;color:#0f172a}.progressHeaderDivider{height:1px;background:#e5e7eb;margin-top:16px}.progressFilterBar{display:flex;gap:14px;flex-wrap:wrap;align-items:center;padding:16px}.progressControl{height:44px;border-radius:12px;border:1px solid #e5e7eb;background:#fff;padding:0 12px;font-weight:700;color:#0f172a;flex:1;min-width:200px}.progressGoBtn{height:44px;border-radius:12px;padding-inline:16px;flex:0 0 auto}@media(max-width:900px){.progressControl{min-width:240px}}@media(max-width:640px){.progressHeader{margin-top:8px}.progressTitle{font-size:24px}.progressFilterBar{flex-direction:column;align-items:stretch;padding:12px;gap:10px}.progressControl,.progressGoBtn{width:100%;min-width:0;height:42px;font-size:.95rem}}.progressActionRow{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.progressSectionTitle{font-size:16px;font-weight:900;color:#0f172a}.progressActionButtons{display:flex;gap:12px;flex-wrap:wrap}.progressCourseCards{display:flex;flex-direction:column;gap:16px}.progressCourseCard{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:20px;box-shadow:0 4px 14px #0f172a0d}.progressDetailView .progressCourseCard{padding:0;overflow:hidden}.progressDetailView .progressCourseCardTop{background:#eaf2ff;padding:20px}.progressDetailView .progressCourseCard .progressStatsGrid{padding:18px 20px 20px;margin-top:0}.progressCourseCardTop{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.progressCourseMetaLeft{display:flex;align-items:center;gap:12px}.progressCourseAvatar{width:44px;height:44px;border-radius:16px;background:#dbeafe;border:1px solid #bfdbfe}.progressCourseName{font-size:18px;font-weight:900;color:#0f172a}.progressCourseMetaLine{margin-top:4px;font-size:13px;font-weight:700;color:#64748b}.progressStatsGrid{margin-top:16px;display:grid;grid-template-columns:1fr;gap:12px}@media(min-width:760px){.progressStatsGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.progressStatsGrid{grid-template-columns:repeat(4,minmax(0,1fr))}}.progressStatBox{border:1px solid #e5e7eb;border-radius:16px;padding:16px;background:#fff}.progressStatLabel{font-size:12px;font-weight:800;color:#64748b}.progressStatValue{margin-top:8px;font-size:22px;font-weight:900;color:#0f172a}.progressStatHelper{margin-top:6px;font-size:12px;color:#64748b;font-weight:600}.progressDetailView{display:flex;flex-direction:column;gap:16px}.progressBackBtn{align-self:flex-start}.progressDetailHeader{display:flex;flex-direction:column;gap:4px}.progressDetailCourse{font-size:18px;font-weight:900;color:#0f172a}.progressDetailClass{font-size:14px;font-weight:800;color:#475569}.progressTabs{display:flex;gap:18px;flex-wrap:wrap;border-bottom:1px solid #e5e7eb;padding-bottom:0}.progressTab{border:none;border-radius:0;padding:10px 0 12px;background:transparent;color:#334155;font-weight:800;cursor:pointer;border-bottom:2px solid transparent}.progressTab.active{color:#1d4ed8;border-bottom-color:#2563eb}.progressTabCount{margin-left:8px;background:#111827;color:#fff;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:900}.progressTab:not(.active) .progressTabCount{background:#f1f5f9;color:#334155}.progressInnerActionRow{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.progressInnerControls{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.progressStudentGrid{display:grid;grid-template-columns:1fr;gap:16px}@media(min-width:1024px){.progressStudentGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}.progressStudentCard{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:0;overflow:hidden;box-shadow:0 4px 14px #0f172a0d}.progressStudentTop{padding:18px 20px 14px;border-bottom:1px solid #eef2f7}.progressStudentIdentity{display:flex;align-items:center;gap:10px}.progressStudentAvatar{width:36px;height:36px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#eaf2ff}.progressStudentAssessmentSelect{margin:14px 20px 0;width:calc(100% - 40px);min-width:0;background:#f8fafc;border-color:#e8edf3}.progressStudentCard .progressStatsGrid{padding:14px 20px 20px;margin-top:0}.progressStudentTop{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.progressStudentName{font-size:16px;font-weight:900;color:#0f172a}.progressStudentSub{margin-top:4px;font-size:13px;font-weight:700;color:#64748b}.progressEmpty{color:#64748b;font-weight:700}.progressWorkGrid{display:grid;grid-template-columns:1fr;gap:16px}.progressWorkCard{background:#fff;border:1px solid #e5e7eb;border-radius:20px;padding:20px;box-shadow:0 10px 22px #0f172a0f}.progressWorkTop{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.progressWorkTitle{font-size:16px;font-weight:900;color:#0f172a}.progressWorkSub{margin-top:4px;font-size:13px;font-weight:700;color:#64748b}.progressWorkStatPanel{margin-top:16px;border:1px solid #e5e7eb;border-radius:16px;padding:16px;background:#f8fafc}.progressWorkScore{font-size:22px;font-weight:900;color:#0f172a}.progressWorkScoreLabel{margin-top:6px;font-size:12px;font-weight:800;color:#64748b}.progressSubmissionIntro{margin-bottom:0}.progressSubmissionsFilterCard,.progressSubmissionsList{display:grid;gap:16px}.progressSubmissionCard{display:grid;gap:14px}.progressSubmissionHeader{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.progressSubmissionTitle{margin:6px 0 8px}.progressSubmissionMeta{margin:0;color:#475569}.progressSubmissionPills{display:flex;gap:10px;flex-wrap:wrap}.progressSubmissionNote{margin:0;color:#334155;white-space:pre-wrap}.progressSubmissionFooter{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center}.progressSubmissionActions{margin:0}@media(max-width:768px){.progressSubmissionActions{width:100%}.progressSubmissionActions .secondary,.progressSubmissionActions button{flex:1 1 180px}}@media(max-width:560px){.progressSubmissionTitle{font-size:1.05rem}.progressSubmissionPills,.progressSubmissionFooter{flex-direction:column;align-items:stretch}.progressSubmissionActions{display:grid;gap:10px}.progressSubmissionActions .secondary,.progressSubmissionActions button{width:100%}}
