:root{
  --navy:#0d1e37;
  --navy-soft:#17345d;
  --blue:#17345d;
  --blue2:#274a80;
  --sky:#f2e4a9;
  --accent:#d2ac34;
  --accent-strong:#b98e16;
  --accent-soft:#f7efd0;
  --red:#d95b4a;
  --green:#7f9941;
  --yellow:#d2ac34;
  --ink:#1a2741;
  --muted:#6d665d;
  --line:#d9d0c4;
  --surface:#fffdfa;
  --surface-2:#f3eee7;
  --soft:#f7f2ea;
  --white:#ffffff;
  --shadow-lg:0 28px 64px rgba(28,24,17,.10);
  --shadow-card:0 12px 30px rgba(28,24,17,.05);
}

/* Student live grade summary ------------------------------------------------ */
.student-learning-center .slc-live-grades { margin-top: var(--ds-space-6, 24px); }
.student-learning-center .slc-heading-outside > div > div > small {
  display: block;
  margin-top: 4px;
  color: var(--ds-text-muted, #64748b);
  font-size: var(--ds-font-size-sm, .875rem);
  line-height: 1.45;
}
.student-learning-center .slc-live-grade-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ds-space-4, 16px);
}
.student-learning-center .slc-live-grade-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--ds-space-3, 12px);
  padding: var(--ds-space-5, 20px);
}
.student-learning-center .slc-live-grade-card > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.student-learning-center .slc-live-grade-card h3 {
  min-height: 2.8em;
  margin: 0;
  color: var(--ds-navy-900, #0b2447);
  font-size: 1rem;
  line-height: 1.4;
}
.student-learning-center .slc-live-grade-total {
  display: flex;
  align-items: baseline;
  gap: 6px;
  flex-wrap: wrap;
}
.student-learning-center .slc-live-grade-total strong {
  color: var(--ds-primary-700, #075985);
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  line-height: 1;
}
.student-learning-center .slc-live-grade-total span { color: var(--ds-text-muted, #64748b); font-size: .78rem; }
.student-learning-center .slc-live-grade-total b { margin-left: auto; color: var(--ds-success-700, #15803d); }
.student-learning-center .slc-live-grade-progress { height: 8px; overflow: hidden; border-radius: 999px; background: #e7eef7; }
.student-learning-center .slc-live-grade-progress > span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #0b67c2, #22a35a); }
.student-learning-center .slc-live-grade-components {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.student-learning-center .slc-live-grade-components > span {
  min-width: 0;
  padding: 9px 8px;
  border: 1px solid #dce7f3;
  border-radius: 12px;
  background: #f8fbff;
  text-align: center;
}
.student-learning-center .slc-live-grade-components small,
.student-learning-center .slc-live-grade-components b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.student-learning-center .slc-live-grade-components small { color: var(--ds-text-muted, #64748b); font-size: .72rem; }
.student-learning-center .slc-live-grade-components b { margin-top: 2px; color: var(--ds-navy-900, #0b2447); font-size: .82rem; }
.student-learning-center .slc-live-grade-card > .btn { min-height: 48px; margin-top: auto; }

@media (max-width: 980px) {
  .student-learning-center .slc-live-grade-grid { grid-template-columns: 1fr; }
  .student-learning-center .slc-live-grade-card h3 { min-height: 0; }
}
@media (max-width: 600px) {
  .student-learning-center .slc-live-grades { margin-top: 16px; }
  .student-learning-center .slc-heading-outside > div > div > small { display: none; }
  .student-learning-center .slc-live-grade-card { padding: 16px; }
  .student-learning-center .slc-live-grade-components {
    grid-template-columns: repeat(3, minmax(88px, 1fr));
    overflow-x: auto;
    padding-bottom: 2px;
  }
}

/* Interactive HTML, rich lesson links, and extended quiz types */
.interactive-card{margin-bottom:18px;overflow:hidden}
.interactive-frame{display:block;width:100%;min-height:240px;border:1px solid var(--line);border-radius:16px;background:#fff}
.lesson-media-embed{width:min(680px,100%);margin-top:14px;aspect-ratio:16/9;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#101820}
.lesson-media-embed iframe{display:block;width:100%;height:100%;border:0}
.classwork-icon.link{background:#8b5cf6}
.quiz-builder-layout{display:grid;grid-template-columns:minmax(340px,.9fr) minmax(420px,1.1fr);gap:18px;align-items:start}
.matching-builder-row,.matching-answer-row{display:grid;grid-template-columns:auto minmax(120px,1fr) auto minmax(120px,1fr);gap:10px;align-items:center;margin:10px 0}
.matching-answer-row{grid-template-columns:minmax(180px,1fr) minmax(180px,1fr);padding:12px;border:1px solid var(--line);border-radius:14px;background:#fbfdff}
.question-summary-card,.quiz-answer-review{margin:12px 0;padding:16px;border:1px solid var(--line);border-radius:16px;background:#fff}
.quiz-answer-review.correct{border-left:5px solid #2d9e72}
.quiz-answer-review.wrong{border-left:5px solid #d65a4a}
.quiz-answer-review.manual{border-left:5px solid #d39b2a}
.quiz-answer-review.unanswered{border-left:5px solid #8793a2;background:#f5f7f9}.result-unanswered{background:#e1e6ec!important;color:#465568!important}
.quiz-result-scoreboard{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.quiz-result-metric{display:grid;align-content:start;gap:5px;min-height:128px;padding:16px;border:1px solid #d8e3ee;border-top:5px solid #3979b9;border-radius:16px;background:#fff;box-shadow:0 7px 18px rgba(28,55,87,.06)}.quiz-result-metric>span{color:#5d6e82;font-size:11px;font-weight:850}.quiz-result-metric>strong{color:#173a61;font-size:clamp(19px,2vw,27px);line-height:1.2}.quiz-result-metric>small{margin-top:auto;color:#6e7c8d;font-size:10px;line-height:1.45}.quiz-result-metric.metric-score{border-top-color:#7450b9;background:#f8f5ff}.quiz-result-metric.metric-percent{border-top-color:#2779c4;background:#f3f8ff}.quiz-result-metric.metric-answer{border-top-color:#1d9860;background:#f3fcf7}.quiz-result-metric.metric-rank{border-top-color:#e09318;background:#fffaf0}.quiz-result-metric.metric-percentile{border-top-color:#cf5a82;background:#fff5f8}.quiz-result-metric.metric-answer>strong{display:flex;gap:6px;flex-wrap:wrap;font-size:12px}.quiz-result-metric.metric-answer i{padding:5px 8px;border-radius:999px;font-style:normal}.quiz-result-metric.metric-answer i.correct{background:#dff7e9;color:#126b42}.quiz-result-metric.metric-answer i.wrong{background:#ffe4e1;color:#a33429}.quiz-result-metric.metric-answer i.skip{background:#e8edf2;color:#4f6072}.quiz-result-table-wrap{max-height:70vh;border:1px solid #d9e3ed;border-radius:14px}.quiz-result-table{min-width:720px}.quiz-result-table thead th{position:sticky;top:0;z-index:2;background:#173e69;color:#fff}.quiz-result-table td{vertical-align:top}.quiz-result-table tr.row-correct td:first-child{border-left:5px solid #1d9860}.quiz-result-table tr.row-wrong td:first-child{border-left:5px solid #d35246}.quiz-result-table tr.row-unanswered td:first-child{border-left:5px solid #8793a2}.quiz-result-table tr.row-pending td:first-child{border-left:5px solid #d99017}.result-status{display:inline-flex;justify-content:center;min-width:72px;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:900}.result-status.correct{background:#dff7e9;color:#126b42}.result-status.wrong{background:#ffe4e1;color:#a33429}.result-status.unanswered{background:#e8edf2;color:#4f6072}.result-status.pending{background:#fff0ce;color:#8b5800}.quiz-result-detail{display:grid;gap:4px;max-width:430px}.quiz-result-detail>b{color:#17633f}.quiz-result-detail>small{color:#68798a}@media(max-width:1100px){.quiz-result-scoreboard{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.quiz-result-scoreboard{grid-template-columns:repeat(2,minmax(0,1fr))}.quiz-result-metric{min-height:112px;padding:13px}}@media(max-width:430px){.quiz-result-scoreboard{grid-template-columns:1fr}.quiz-result-metric{min-height:0}}
.matching-review-list>div{display:grid;grid-template-columns:minmax(150px,1fr) minmax(130px,1fr) minmax(130px,1fr) auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}
.essay-response{margin:12px 0;padding:16px;border-radius:14px;background:#f7f9fc;white-space:normal}
.manual-grade-grid{display:grid;grid-template-columns:180px 1fr;gap:14px;align-items:start;margin-top:12px}
.manual-grade-grid label{display:grid;gap:7px;font-weight:700}
.word-limit-exceeded{color:#b3261e!important;font-weight:700}
@media(max-width:900px){.quiz-builder-layout{grid-template-columns:1fr}.matching-review-list>div{grid-template-columns:1fr}.manual-grade-grid{grid-template-columns:1fr}}

/* Student-first visual layer: Campus Pulse */
body.student-page{--student-ink:#17213d;--student-muted:#68728b;--student-purple:#635bff;--student-mint:#20b486;--student-peach:#ff9b71;background:linear-gradient(135deg,#f5f6ff 0%,#f8fbff 52%,#fff8f3 100%)}
body.student-page .layout{border:0;border-radius:30px;background:#f8f9ff;box-shadow:0 24px 70px rgba(48,54,101,.12)}
body.student-page .sidebar{background:linear-gradient(180deg,#171c3c 0%,#22285a 60%,#30306e 100%);border-right:0}
body.student-page .nav-link.active{background:rgba(255,255,255,.13);box-shadow:inset 4px 0 0 #a9a4ff}
body.student-page .nav-link.active .nav-icon{color:#b9b5ff}
body.student-page main{background:transparent}
body.student-page .hero{min-height:210px;padding:34px 38px;border-radius:24px;background:linear-gradient(120deg,#292d69 0%,#5a55bb 58%,#7b77e6 100%);box-shadow:0 16px 36px rgba(61,61,145,.20);overflow:hidden}
body.student-page .hero::before{background:radial-gradient(circle,rgba(255,255,255,.16),transparent 68%);opacity:.8}
body.student-page .hero-inner h1{font-size:clamp(28px,3vw,42px);letter-spacing:-.8px}
body.student-page .hero-inner p{font-size:16px;color:#e7e8ff}
body.student-page .card{border:1px solid #e9ebf5;border-radius:20px;background:rgba(255,255,255,.92);box-shadow:0 8px 24px rgba(44,51,100,.055)}
body.student-page .card:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(44,51,100,.10)}
body.student-page .card.stat{border:0;box-shadow:none;background:#fff;padding:18px 20px}
body.student-page .card.stat .ico{border-radius:14px;background:#eeedff;color:var(--student-purple)}
body.student-page .student-priority-alerts{border:1px solid #e5e3ff!important;border-left:5px solid var(--student-purple)!important;background:linear-gradient(135deg,#fff 0%,#f8f7ff 100%)}
body.student-page .student-priority-alerts h3{color:var(--student-ink);font-size:21px}
body.student-page .student-priority-alerts .section-kicker{color:var(--student-purple)}
body.student-page .notification-priority-list{display:grid;gap:8px}
body.student-page .notification-priority-item{display:flex;align-items:center;gap:12px;padding:13px 15px;border:1px solid #ecebfa;border-radius:14px;background:#fff;color:var(--student-ink);transition:.18s ease}
body.student-page .notification-priority-item:hover{border-color:#b9b4ff;background:#f8f7ff;transform:translateX(3px)}
body.student-page .notification-priority-item>.material-symbols-outlined:first-child{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:#eeedff;color:var(--student-purple)}
body.student-page .notification-priority-item span:nth-child(2){flex:1;min-width:0}
body.student-page .notification-priority-item b,body.student-page .notification-priority-item small{display:block}
body.student-page .notification-priority-item small{margin-top:2px;color:var(--student-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.student-page .notification-pending-summary{display:flex;align-items:center;gap:10px;margin:0 12px 10px;padding:11px 12px;border:1px solid #ffd9c9;border-radius:12px;background:#fff5ef;color:#9d4c2d}
body.student-page .notification-pending-summary span:nth-child(2){flex:1}body.student-page .notification-pending-summary b,body.student-page .notification-pending-summary small{display:block}body.student-page .notification-pending-summary small{color:#b86c4c}
body.student-page .btn.primary{background:var(--student-purple);border-color:var(--student-purple);box-shadow:0 6px 14px rgba(99,91,255,.18)}
body.student-page .badge.yellow{background:#fff0e8;color:#c75d30}
body.student-page .badge.green{background:#e5faf2;color:#12835e}
body.student-page .progress{background:#ececff}
body.student-page .progress span{background:linear-gradient(90deg,var(--student-purple),#9a94ff)}
@media(max-width:700px){body.student-page .hero{padding:26px 22px;min-height:180px;border-radius:20px}body.student-page .hero-inner h1{font-size:28px}.notification-priority-item{padding:11px 12px}}

/* Teacher command center: calm workspace, clear next actions */
body.teacher-page{background:linear-gradient(135deg,#f3f7ff 0%,#f7f9fc 55%,#f8f5ff 100%);--teacher-ink:#17233f;--teacher-blue:#2463eb;--teacher-purple:#7357e8}
body.teacher-page .layout{border:0;border-radius:28px;background:#f7f9fd;box-shadow:0 22px 70px rgba(28,55,100,.12)}
body.teacher-page .sidebar{background:linear-gradient(180deg,#101d3b 0%,#172d55 62%,#1b3765 100%)}
body.teacher-page .nav-link.active{background:rgba(90,145,255,.16);box-shadow:inset 4px 0 0 #78a5ff}
body.teacher-page .nav-link.active .nav-icon{color:#8bb4ff}
body.teacher-page .hero{min-height:190px;padding:32px 38px;border-radius:22px;background:linear-gradient(120deg,#1b4078 0%,#245b9d 58%,#3977be 100%);box-shadow:0 15px 34px rgba(29,82,145,.18)}
body.teacher-page .hero::before{background:radial-gradient(circle,rgba(113,188,255,.24),transparent 65%)}
body.teacher-page .hero-inner h1{font-size:clamp(28px,3vw,40px);letter-spacing:-.7px}
body.teacher-page .hero-inner p{font-size:16px;color:#dceaff}
body.teacher-page main{background:transparent}
body.teacher-page .card{border:1px solid #e3e9f3;border-radius:18px;background:rgba(255,255,255,.94);box-shadow:0 7px 22px rgba(38,65,105,.055)}
body.teacher-page .card:hover{transform:translateY(-2px);box-shadow:0 13px 28px rgba(38,65,105,.09)}
body.teacher-page .card.stat{border:0;box-shadow:none;padding:18px 20px;background:#fff}
body.teacher-page .card.stat .ico{border-radius:13px;background:#edf3ff;color:var(--teacher-blue)}
body.teacher-page .card.stat b{font-size:26px;color:var(--teacher-ink)}
body.teacher-page .card.stat span.muted{font-size:13px;color:#71809a}
body.teacher-page .section-kicker{color:var(--teacher-blue)}
body.teacher-page .btn.primary{background:var(--teacher-blue);border-color:var(--teacher-blue);box-shadow:0 6px 14px rgba(36,99,235,.18)}
body.teacher-page .teacher-course-overview{border-color:#dfe7f2}
body.teacher-page .teacher-course-overview-head h3{color:var(--teacher-ink)}
body.teacher-page .teacher-course-metrics>div{background:#f3f7ff;border-color:#e1eafa;border-radius:12px}
body.teacher-page .teacher-course-metrics b{color:var(--teacher-blue)}
body.teacher-page .table-panel-title-rich{border-bottom-color:#e8edf5}
body.teacher-page table th{background:#f1f5fb;color:#48617f}
body.teacher-page .workspace-row:hover{background:#f7faff}
@media(max-width:700px){body.teacher-page .hero{padding:25px 22px;min-height:170px;border-radius:18px}body.teacher-page .hero-inner h1{font-size:28px}}
@media(max-width:620px){.matching-builder-row,.matching-answer-row{grid-template-columns:1fr}.matching-builder-row>span{display:none}}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Kanit","Sarabun","Noto Sans Thai",Arial,sans-serif;
  font-size:15px;
  line-height:1.55;
  color:var(--ink);
  background:
    radial-gradient(circle at top left, rgba(255,255,255,.82), rgba(255,255,255,0) 34%),
    radial-gradient(circle at top right, rgba(255,248,231,.92), rgba(255,248,231,0) 28%),
    linear-gradient(180deg, #f4efe7 0%, #ece5da 100%);
  letter-spacing:-0.2px;
  min-height:100vh;
}

/* 2026 Operations Desk refinement: unified brand, clearer actions, accessible motion. */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:3px solid #f1bf2c;
  outline-offset:3px;
  border-radius:8px;
}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.sidebar-compact-toggle{margin-left:auto;width:36px;height:36px;border:1px solid rgba(255,255,255,.2);border-radius:11px;background:rgba(255,255,255,.08);color:#fff;cursor:pointer}
.sidebar.is-compact{width:82px;padding-inline:12px}
.sidebar.is-compact .brand{justify-content:center}
.sidebar.is-compact .brand-mark,.sidebar.is-compact .brand-copy,.sidebar.is-compact .sidebar-logos,.sidebar.is-compact .user-profile-box,.sidebar.is-compact .nav-group,.sidebar.is-compact .nav-parent-label,.sidebar.is-compact .nav-label,.sidebar.is-compact .nav-parent-chevron,.sidebar.is-compact .nav-submenu{display:none!important}
.sidebar.is-compact .sidebar-compact-toggle{margin:0}
.sidebar.is-compact .nav-link{justify-content:center;padding-inline:8px}
.sidebar.is-compact .nav-icon{flex:none}
.sidebar .user-info small,.sidebar .profile-link{font-size:12px;line-height:1.55}
.mobile-header-actions{display:flex;align-items:center;gap:8px}

body.student-page{--student-purple:#21598f;--student-mint:#16856a;--student-peach:#d97745;background:linear-gradient(135deg,#f3f7fb 0%,#f8fafc 52%,#fffaf0 100%)}
body.student-page .layout{background:#f5f8fc;box-shadow:0 24px 70px rgba(13,30,55,.12)}
body.student-page .sidebar{background:linear-gradient(180deg,#0a1730 0%,#102b4d 62%,#173b61 100%)}

/* Phase 2B-1: role-first application shell. */
.nav-legacy-menu,.nav-legacy-mobile{display:none!important}
.nav-simplified{display:flex;flex-direction:column;gap:5px;padding-top:16px}
.nav-simplified .nav-group{margin:14px 12px 5px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.56);font-weight:800}
.nav-simplified .nav-link{min-height:44px;border-radius:12px}
.nav-more{margin:2px 0;color:#fff}
.nav-more summary{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 12px;border-radius:12px;cursor:pointer;list-style:none;font-weight:700}
.nav-more summary::-webkit-details-marker{display:none}
.nav-more summary>.material-symbols-outlined:last-child{margin-left:auto;font-size:18px;transition:transform .2s ease}
.nav-more[open] summary>.material-symbols-outlined:last-child{transform:rotate(180deg)}
.nav-more>div{display:grid;gap:3px;margin:3px 0 5px 48px;padding-left:10px;border-left:1px solid rgba(255,255,255,.18)}
.nav-more a{padding:8px 6px;color:rgba(255,255,255,.78);font-size:12px;text-decoration:none}
.nav-more a:hover{color:#fff}
.nav-mobile-simplified{display:none}
/* Course workspace is intentionally deferred to Phase 2B-2. Keep its established
   contextual tool menu available until that phase changes it deliberately. */
body.course-context .nav-simplified{display:none}
body.course-context .nav-legacy-menu{display:flex!important}

/* Phase 2B-2: a course is a focused workspace, not another application menu. */
body.course-context .course-context-nav{display:none}
.course-workspace-tabs{display:flex;align-items:center;gap:6px;overflow-x:auto;padding:8px 2px 13px;margin-bottom:12px;scrollbar-width:thin}.course-workspace-tabs .classroom-tab{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.course-workspace-tabs .material-symbols-outlined{font-size:17px}.course-workspace-tabs .course-tab-secondary{margin-left:auto}.course-workspace-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 18px}.course-workspace-actions .btn{display:inline-flex;align-items:center;gap:5px;min-height:40px}.course-workspace-actions .material-symbols-outlined{font-size:18px}.course-anchor-target{display:block;position:relative;top:-16px;visibility:hidden}
.student-workspace-next{margin:0 0 14px;padding:18px;border:1px solid #d9e5f4;border-radius:18px;background:linear-gradient(125deg,#f7fbff,#fff)}.student-workspace-next h2{margin:3px 0;font-size:20px}.student-workspace-next p{margin:0;color:#64748b}.student-workspace-next-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.student-workspace-deadlines{display:grid;gap:7px;margin-top:14px}.student-workspace-deadlines>a{display:grid;grid-template-columns:28px 1fr 24px;align-items:center;gap:8px;padding:10px;border-radius:12px;background:#fff;color:#1e293b;text-decoration:none}.student-workspace-deadlines>a>.material-symbols-outlined:first-child{color:#2563eb}.student-workspace-deadlines b,.student-workspace-deadlines small{display:block}.student-workspace-deadlines small{color:#64748b;font-size:11px}
.course-list-workspace{margin:0 0 18px}.course-workspace-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.course-workspace-card{padding:18px;border:1px solid #dce5f0;border-top:4px solid var(--workspace-course-color,#2563eb);border-radius:18px;background:linear-gradient(135deg,#fff,var(--workspace-course-soft,#f4f8ff));box-shadow:0 8px 24px rgba(23,52,93,.06)}.course-workspace-card-head,.course-workspace-card-actions,.course-workspace-card-stats{display:flex;align-items:center;justify-content:space-between;gap:8px}.course-workspace-card h3{min-height:45px;margin:13px 0 4px;font-size:16px;line-height:1.4}.course-workspace-card p{min-height:20px;margin:0;color:#64748b;font-size:12px}.course-workspace-code{font-size:12px;font-weight:900;color:var(--workspace-course-color,#2563eb)}.course-workspace-card-stats{justify-content:flex-start;flex-wrap:wrap;margin:15px 0}.course-workspace-card-stats span{padding:5px 7px;border-radius:8px;background:rgba(255,255,255,.78);font-size:10px;color:#536276}.course-workspace-card-stats b{color:#17345d}.course-workspace-card-actions{justify-content:flex-start;flex-wrap:wrap}.course-list-advanced{padding:0;overflow:hidden}.course-list-advanced>summary{display:flex;align-items:center;gap:10px;padding:16px 18px;cursor:pointer;list-style:none}.course-list-advanced>summary::-webkit-details-marker{display:none}.course-list-advanced>summary>.material-symbols-outlined{color:#2563eb}.course-list-advanced>summary>span:nth-child(2){display:grid}.course-list-advanced>summary small{color:#64748b;font-size:11px}.course-list-advanced>summary .badge{margin-left:auto}.course-list-advanced-body{padding:0 16px 16px;border-top:1px solid #e2e8f0}
@media (max-width:900px){.course-workspace-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.course-workspace-tabs .course-tab-secondary{margin-left:0}}
@media (max-width:700px){.course-workspace-tabs{margin-inline:-2px;padding-bottom:10px}.course-workspace-tabs .classroom-tab{min-height:40px;padding-inline:11px}.course-workspace-tabs .course-tab-secondary{display:none}.course-workspace-actions{display:grid;grid-template-columns:1fr 1fr}.course-workspace-actions .btn{justify-content:center;padding-inline:8px;font-size:11px}.student-workspace-next{padding:14px}.student-workspace-next-actions{display:grid;grid-template-columns:1fr 1fr}.student-workspace-next-actions .btn{justify-content:center}.course-workspace-card-grid{grid-template-columns:1fr}.course-workspace-card h3{min-height:0}.course-list-advanced-body{padding-inline:9px}.course-list-advanced>summary{padding:14px}.course-list-advanced>summary small{display:none}}

/* Dashboards use one prominent work queue followed by supporting insight. */
.dashboard-command-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}
.dashboard-command-card{display:flex;align-items:flex-start;gap:12px;min-height:104px;padding:16px;border:1px solid #dce5f0;border-radius:18px;background:#fff;color:#172033;text-decoration:none;box-shadow:0 8px 24px rgba(23,52,93,.06);transition:transform .18s ease,box-shadow .18s ease}
.dashboard-command-card:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(23,52,93,.12)}
.dashboard-command-card .material-symbols-outlined{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:12px;background:#edf4ff;color:#2563eb}
.dashboard-command-card b,.dashboard-command-card small{display:block}.dashboard-command-card small{margin-top:3px;color:#64748b;line-height:1.45}
.dashboard-command-card strong{display:block;margin-top:5px;font-size:23px;line-height:1;color:#17345d}
.dashboard-section-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:28px 0 12px}.dashboard-section-heading h2{margin:0;font-size:20px}.dashboard-section-heading p{margin:3px 0 0;color:#64748b;font-size:12px}
.dashboard-health-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0}.dashboard-health-item{padding:13px 15px;border:1px solid #dce5f0;border-radius:15px;background:rgba(255,255,255,.86)}.dashboard-health-item b,.dashboard-health-item small{display:block}.dashboard-health-item small{margin-top:3px;color:#64748b;font-size:11px}.dashboard-health-item .material-symbols-outlined{float:right;color:#168457}.dashboard-health-item.is-action .material-symbols-outlined{color:#b7791f}
.dashboard-course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.dashboard-course-card{padding:17px;border:1px solid #dce5f0;border-radius:18px;background:#fff}.dashboard-course-card h3{margin:5px 0;font-size:16px}.dashboard-course-card small{color:#64748b}.dashboard-course-card .dashboard-course-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.dashboard-course-card .dashboard-course-actions a{font-size:11px;font-weight:800;color:#1d4ed8;text-decoration:none}
@media (max-width:900px){.dashboard-command-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-health-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.nav-mobile-simplified{display:grid!important}body.course-context .nav-mobile-simplified{display:none!important}body.course-context .nav-legacy-mobile{display:grid!important}.dashboard-command-grid{grid-template-columns:1fr;gap:9px}.dashboard-command-card{min-height:78px;padding:13px}.dashboard-health-strip{grid-template-columns:1fr 1fr;gap:8px}.dashboard-health-item{padding:11px}.dashboard-course-grid{grid-template-columns:1fr}.dashboard-section-heading{align-items:start;flex-direction:column;margin-top:22px}.dashboard-section-heading .btn{width:100%;justify-content:center}.student-route-hero{margin-bottom:12px}}
body.student-page .nav-link.active{box-shadow:inset 4px 0 0 var(--accent);background:rgba(255,255,255,.12)}
body.student-page .nav-link.active .nav-icon{color:var(--accent)}
body.student-page .hero{background:linear-gradient(120deg,#0c2441 0%,#173f68 62%,#245d8b 100%);box-shadow:0 16px 36px rgba(15,48,82,.2)}
body.student-page .hero-inner p{color:#d9e9f6}
body.student-page .card{border-color:#dfe7ef;box-shadow:0 8px 24px rgba(20,48,78,.055)}
body.student-page .student-priority-alerts{border-color:#d7e4ee!important;border-left-color:#2b73ad!important;background:linear-gradient(135deg,#fff 0%,#f3f8fc 100%)}
body.student-page .notification-priority-item{border-color:#dfe8ef}
body.student-page .notification-priority-item:hover{border-color:#82acd0;background:#f2f8fd}
body.student-page .notification-priority-item>.material-symbols-outlined:first-child{background:#e4f0f8;color:#1c639a}
body.student-page .btn.primary{background:#1e5f95;border-color:#1e5f95;box-shadow:0 6px 14px rgba(30,95,149,.2)}
body.student-page .progress{background:#deebf5}
body.student-page .progress span{background:linear-gradient(90deg,#1e5f95,#d2ac34)}

.student-route-hero .logistics-strip{min-width:320px}
.route-stop{width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.24);border-radius:50%;background:rgba(255,255,255,.1);color:#b8cce0}
.route-stop.is-done{background:#d2ac34;color:#0d1e37;border-color:#f0ce66}
.route-line{width:30px;height:2px;background:rgba(255,255,255,.25)}
.student-onboarding{display:grid;grid-template-columns:minmax(240px,.65fr) minmax(0,1.35fr);gap:34px;padding:30px;margin-bottom:18px;border:1px solid #d9e4ed;border-radius:22px;background:linear-gradient(120deg,#fff 0%,#f7fafc 70%,#fff9e8 100%);box-shadow:0 12px 34px rgba(13,30,55,.08)}
.student-onboarding h2{margin:5px 0 8px;font-size:clamp(24px,3vw,34px);color:#102b4d}
.student-onboarding p{margin:0;color:#607086}
.onboarding-route{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.onboarding-route li{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:14px;padding:14px 16px;border:1px solid #dfe7ef;border-radius:14px;background:#fff}
.onboarding-route li>span{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#edf2f6;color:#66788c;font-weight:900}
.onboarding-route li.is-current{border-color:#d6b247;box-shadow:inset 4px 0 #d2ac34}
.onboarding-route li.is-current>span{background:#d2ac34;color:#0d1e37}
.onboarding-route b,.onboarding-route small{display:block}.onboarding-route small{margin-top:2px;color:#68788b}
.student-week-agenda{margin-bottom:18px}
.week-agenda-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.week-agenda-list>a{display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:12px;padding:13px;border:1px solid #dfe7ef;border-radius:14px;background:#fbfdff;color:#182c45;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.week-agenda-list>a:hover{transform:translateY(-2px);border-color:#87abc8;box-shadow:0 8px 20px rgba(20,60,95,.08)}
.week-agenda-list time{display:grid;place-items:center;padding:7px;border-radius:11px;background:#102b4d;color:#fff;text-align:center}.week-agenda-list time b{font-size:19px;line-height:1}.week-agenda-list time small{color:#f1cf66;text-transform:uppercase}.week-agenda-list>a>span:nth-child(2) b,.week-agenda-list>a>span:nth-child(2) small{display:block}.week-agenda-list>a>span:nth-child(2) small{margin-top:3px;color:#6c7b8c}.guided-empty{display:flex;align-items:center;gap:12px;grid-column:1/-1;padding:16px;border-radius:14px;background:#f2f7f5;color:#315f50}.guided-empty b,.guided-empty small{display:block}.guided-empty small{color:#668176}

.command-palette{width:min(620px,calc(100vw - 28px));max-height:min(720px,80vh);padding:0;border:1px solid #d8e1ea;border-radius:20px;background:#fff;box-shadow:0 32px 90px rgba(5,20,40,.28);overflow:hidden}
.command-palette::backdrop{background:rgba(4,17,34,.58);backdrop-filter:blur(5px)}
.command-palette-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid #e2e8ef}
.command-palette-head input{width:100%;margin:0;padding:5px 0;border:0;outline:0;background:transparent;font-size:17px;color:#142942}
.command-palette-head kbd{padding:4px 7px;border:1px solid #d7dee6;border-radius:7px;background:#f5f7f9;color:#697789;font-size:11px}
.command-palette-body{padding:12px;overflow:auto}
.command-palette-label{margin:2px 8px 8px;color:#718094;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.command-results{display:grid;gap:5px}.command-results>a{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:12px;padding:11px 12px;border-radius:12px;color:#172c45}.command-results>a:hover,.command-results>a:focus-visible{background:#eef5fa}.command-results>a>.material-symbols-outlined{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:#e4edf4;color:#1d5b8d}.command-results b,.command-results small{display:block}.command-results small{margin-top:2px;color:#6c7b8c}.command-empty{padding:24px;text-align:center;color:#66778b}

@media(max-width:900px){
  .sidebar.is-compact{width:280px;padding:22px 16px}
  .sidebar.is-compact .brand-mark,.sidebar.is-compact .brand-copy,.sidebar.is-compact .sidebar-logos,.sidebar.is-compact .user-profile-box,.sidebar.is-compact .nav-group,.sidebar.is-compact .nav-parent-label,.sidebar.is-compact .nav-label,.sidebar.is-compact .nav-parent-chevron{display:initial!important}
  .sidebar.is-compact .nav-submenu:not([hidden]){display:flex!important}
  .nav-mobile{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));overflow:visible;padding-inline:8px}
  .nav-mobile .nav-link,.nav-mobile .nav-demo{min-width:0;padding:7px 4px;font-size:11px}
  .nav-mobile .nav-label{max-width:100%;overflow:hidden;text-overflow:ellipsis}
  .main{padding-bottom:118px}
  .content{padding-bottom:118px!important}
  .student-onboarding{grid-template-columns:1fr;gap:20px;padding:22px}
  .week-agenda-list{grid-template-columns:1fr}
}
@media(max-width:600px){
  .student-route-hero .logistics-strip{min-width:0}
  .route-line{width:20px}
  .onboarding-route li{grid-template-columns:38px 1fr}.onboarding-route li .btn{grid-column:2;justify-self:start}
  .mobile-action-bar{display:grid!important;grid-template-columns:minmax(0,1fr) auto}.mobile-action-bar .term-select,.mobile-action-bar .btn-create{min-width:0;width:auto}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
body.modal-open{overflow:hidden}
a{text-decoration:none;color:var(--navy-soft)}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit}
.material-symbols-outlined{
  font-variation-settings:"FILL" 0,"wght" 500,"GRAD" 0,"opsz" 24;
  font-size:20px;
  line-height:1;
}

.page-shell{padding:16px}
.auth-main{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:36px 28px;
}
.auth-content{
  width:min(1280px,100%);
  display:flex;
  flex-direction:column;
  gap:20px;
}
.layout{
  display:flex;
  min-height:calc(100vh - 32px);
  max-width:1580px;
  margin:0 auto;
  background:var(--surface-2);
  border:1px solid rgba(185,166,126,.30);
  border-radius:26px;
  overflow:hidden;
  box-shadow:var(--shadow-lg);
}

.sidebar{
  width:286px;
  padding:22px 16px;
  background:linear-gradient(180deg, #0a1730 0%, #102342 56%, #14294d 100%);
  color:#fff;
  position:relative;
  overflow:auto;
}
.sidebar::before{
  content:"";
  position:absolute;
  inset:auto -20% 12% auto;
  width:240px;
  height:240px;
  background:radial-gradient(circle, rgba(210,172,52,.18) 0%, rgba(210,172,52,0) 70%);
}
.sidebar::after{
  content:"";
  position:absolute;
  inset:26% auto auto -28%;
  width:220px;
  height:220px;
  border:1px solid rgba(210,172,52,.10);
  border-radius:50%;
}
.brand,
.sidebar-logos,
.user-profile-box,
.nav{position:relative;z-index:1}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:16px;
  padding-bottom:14px;
  border-bottom:1px solid rgba(210,172,52,.35);
}
.brand-mark{
  width:48px;
  height:48px;
  border-radius:50%;
  background:rgba(210,172,52,.06);
  display:grid;
  place-items:center;
  box-shadow:inset 0 0 0 1px rgba(210,172,52,.52);
}
.brand-mark img{
  width:30px;
  height:30px;
  object-fit:contain;
  background:transparent;
  border-radius:50%;
  padding:0;
}
.brand-kicker{
  display:block;
  font-size:11px;
  letter-spacing:1px;
  text-transform:uppercase;
  color:rgba(210,172,52,.92);
}
.brand-title{
  font-size:24px;
  font-weight:800;
  line-height:1.02;
  color:#fff;
}
.sidebar-logos{
  display:flex;
  justify-content:flex-start;
  gap:8px;
  margin-bottom:18px;
}
.sidebar-logos img{
  width:42px;
  height:42px;
  padding:4px;
  object-fit:contain;
  background:#fff;
  border-radius:50%;
  box-shadow:0 8px 16px rgba(0,0,0,.16);
}
.user-profile-box{
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px;
  margin-bottom:20px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(210,172,52,.18);
  border-radius:18px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03);
}
.user-avatar{
  width:46px;
  height:46px;
  border-radius:14px;
  background:var(--accent);
  color:var(--navy);
  display:grid;
  place-items:center;
  font-size:20px;
  font-weight:900;
  flex:none;
  overflow:hidden;
}
.user-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.profile-preview{display:flex;align-items:center;gap:12px;padding:2px 0 14px;margin-bottom:18px;border-bottom:1px solid var(--line,#e5e7eb)}
.profile-preview-avatar{width:56px;height:56px;border-radius:14px;display:grid;place-items:center;overflow:hidden;background:linear-gradient(145deg,#dff0ff,#a9d2ff);color:#1d4f98;flex:none}
.profile-preview-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.profile-preview-avatar .material-symbols-outlined{font-size:32px}
.profile-preview h3{margin:0 0 4px}
.profile-preview p{margin:0}
.live-scanned-roster{margin-top:16px}.live-scanned-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.live-scanned-student{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid #dbe5f0;border-radius:14px;background:#f8fbff}.live-scanned-avatar{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;overflow:hidden;background:#dff0ff;color:#1d4f98;flex:none}.live-scanned-avatar img{width:100%;height:100%;object-fit:cover}.live-scanned-avatar .material-symbols-outlined{font-size:32px}.live-scanned-student b,.live-scanned-student small{display:block}.live-scanned-student small{margin-top:3px;color:#64748b;font-size:12px}
.live-sound-toggle{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;color:#36506d;font-size:13px;font-weight:700}.live-sound-toggle input{accent-color:#1d73d5}
.notification-toast{position:fixed;right:22px;bottom:22px;z-index:50;display:flex;align-items:flex-start;gap:10px;max-width:360px;padding:13px 16px;border:1px solid #f2d98b;border-radius:14px;background:#fffdf2;color:#30445c;box-shadow:0 12px 30px rgba(35,55,80,.18);text-decoration:none}.notification-toast>.material-symbols-outlined{color:#d19400}.notification-toast b,.notification-toast small{display:block}.notification-toast small{margin-top:3px;color:#64748b}
.notification-bell-link{position:relative;text-decoration:none}.notification-count{position:absolute;right:-4px;top:-5px;min-width:18px;height:18px;padding:0 4px;border-radius:10px;background:#d93025;color:#fff;font-size:11px;line-height:18px;text-align:center;font-weight:800}
.notification-popover{position:fixed;right:24px;top:76px;z-index:60;width:min(380px,calc(100vw - 28px));max-height:70vh;overflow:auto;padding:14px;border:1px solid #e6d59b;border-radius:16px;background:#fffdf7;box-shadow:0 18px 45px rgba(35,55,80,.22)}.notification-popover-head{display:flex;justify-content:space-between;align-items:center;padding:2px 2px 10px;border-bottom:1px solid #efe5c5}.notification-popover-head a{font-size:12px;color:#1d73d5}.notification-popover-item{padding:11px 2px;border-bottom:1px solid #f0ead8}.notification-popover-item:last-child{border-bottom:0}.notification-popover-item b,.notification-popover-item small,.notification-popover-item p{display:block}.notification-popover-item small{margin-top:3px;color:#8a7a54;font-size:11px}.notification-popover-item p{margin:5px 0;color:#536273;font-size:13px}.notification-popover-item>a{font-size:12px;font-weight:700;color:#1d73d5}.notification-empty{padding:18px 2px;margin:0}
.notification-summary{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 22px;margin-bottom:14px;border-radius:18px;background:linear-gradient(135deg,#eef6ff,#fff9e9);border:1px solid #dce7f5}.notification-summary h2{margin:4px 0 2px}.notification-summary p{margin:0;color:#64748b}.notification-total{padding:8px 12px;border-radius:999px;background:#1d4f98;color:#fff;font-weight:800;white-space:nowrap}.notification-list{display:grid;gap:12px}.notification-card{display:flex;gap:14px;padding:17px;border:1px solid #e4eaf2;border-left:5px solid #4f8edc;border-radius:16px;background:#fff;box-shadow:0 5px 16px rgba(28,55,87,.06)}.notification-card.type-assignment{border-left-color:#f39b36}.notification-card.type-quiz{border-left-color:#8c6bd8}.notification-card.type-announcement{border-left-color:#2ca878}.notification-card-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#e8f2ff;color:#1d73d5;flex:none}.type-assignment .notification-card-icon{background:#fff0dc;color:#c87513}.type-quiz .notification-card-icon{background:#f0eaff;color:#7553ba}.type-announcement .notification-card-icon{background:#e3f8ef;color:#18845a}.notification-card-body{flex:1;min-width:0}.notification-card-top{display:flex;justify-content:space-between;gap:12px;align-items:center}.notification-type{font-size:12px;font-weight:800;color:#1d73d5}.type-assignment .notification-type{color:#c87513}.type-quiz .notification-type{color:#7553ba}.type-announcement .notification-type{color:#18845a}.notification-card time{font-size:12px;color:#8491a1}.notification-card h3{margin:6px 0 4px;font-size:16px;color:#18324e}.notification-card p{margin:0 0 12px;color:#5d6d7e}.notification-open{display:inline-flex;align-items:center;gap:5px}.notification-open .material-symbols-outlined{font-size:17px}.notification-empty-page{text-align:center;padding:45px 20px}.notification-empty-page>.material-symbols-outlined{font-size:42px;color:#b6c2d0}.notification-empty-page p{color:#64748b}
.notification-table-wrap{overflow-x:auto;border:1px solid #dfe7f1;border-radius:16px;background:#fff;box-shadow:0 5px 16px rgba(28,55,87,.06)}.notification-table{width:100%;border-collapse:collapse;min-width:680px}.notification-table th{padding:12px 14px;text-align:left;background:#eef5ff;color:#315779;font-size:12px}.notification-table td{padding:11px 14px;border-top:1px solid #edf1f6;vertical-align:middle;color:#263f5b}.notification-table tbody tr:hover{background:#fbfdff}.notification-type-dot{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;color:#317bc4}.notification-type-dot .material-symbols-outlined{font-size:19px}.row-assignment td:first-child{color:#c87916}.row-quiz td:first-child{color:#7553ba}.row-announcement td:first-child{color:#18845a}.notification-table td:nth-child(2){width:52%}.notification-table td:nth-child(2) b,.notification-table td:nth-child(2) small{display:block}.notification-table td:nth-child(2) small{margin-top:3px;color:#718096}.notification-date{white-space:nowrap;color:#718096!important;font-size:12px}.notification-table-open{display:inline-block;padding:6px 10px;border-radius:8px;background:#1d73d5;color:#fff;text-decoration:none;font-size:12px;font-weight:800;white-space:nowrap}.notification-table-empty{text-align:center!important;padding:35px!important;color:#718096!important}
.focus-student-portrait img{width:100%;height:100%;object-fit:cover;display:block}.focus-attendance-confirmed{display:flex;align-items:center;gap:5px;color:#17834b;font-weight:800}.focus-attendance-confirmed .material-symbols-outlined{font-size:18px}.live-attendance-label{display:block;color:#17834b;font-size:13px;margin-top:3px}
.user-info b{
  display:block;
  font-size:14px;
  line-height:1.3;
  margin-bottom:4px;
}
.profile-link{
  color:#fff;
  text-decoration:none;
  border-bottom:1px dashed rgba(255,255,255,.38);
}
.profile-link:hover{
  color:#fff;
  border-bottom-color:rgba(255,255,255,.72);
}
.user-info small{
  display:block;
  color:rgba(255,255,255,.66);
  font-size:11px;
  line-height:1.45;
}

.nav{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.nav-mobile{display:none}
.nav-group{
  display:block;
  padding:2px 10px;
  margin-top:4px;
  font-size:11px;
  font-weight:700;
  letter-spacing:1px;
  text-transform:uppercase;
  color:rgba(210,172,52,.72);
}
.nav-link,
.nav-demo{
  display:flex;
  align-items:center;
  gap:10px;
  padding:9px 12px;
  border-radius:12px;
  color:rgba(255,255,255,.80);
  font-size:13px;
  font-weight:600;
  border:1px solid transparent;
  transition:transform .2s ease, background-color .2s ease, border-color .2s ease, color .2s ease, box-shadow .2s ease;
}
.nav-link:hover,
.nav-demo:hover,
.nav-demo.active{
  color:#fff;
  background:rgba(255,255,255,.04);
  border-color:rgba(210,172,52,.18);
}
.nav-link.active,
.nav-demo.active{
  color:#fff;
  background:#17345d;
  border-color:rgba(210,172,52,.42);
  box-shadow:inset 4px 0 0 var(--accent);
}
.nav-icon{
  width:36px;
  height:36px;
  border-radius:12px;
  background:rgba(210,172,52,.08);
  color:var(--accent);
  display:grid;
  place-items:center;
  flex:none;
}
.nav-link.active .nav-icon,
.nav-demo.active .nav-icon{
  background:rgba(210,172,52,.12);
  color:var(--accent);
}
.nav-label{flex:1}
.nav-parent{
  padding-right:12px;
}
.nav-parent-label{
  flex:1;
}
.nav-parent-chevron{
  font-size:16px;
  color:rgba(210,172,52,.86);
  transition:transform .2s ease;
}
.nav-section{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.nav-submenu{
  position:relative;
  margin:0 0 4px 46px;
  padding:2px 0 2px 14px;
  display:none;
  flex-direction:column;
  gap:4px;
}
.nav-section.open .nav-submenu{
  display:flex;
}
.nav-section:not(.open) .nav-parent-chevron{
  transform:rotate(-90deg);
}
.nav-section.open .nav-parent-chevron{
  transform:rotate(0deg);
}
.nav-submenu::before{
  content:"";
  position:absolute;
  left:0;
  top:2px;
  bottom:2px;
  width:1px;
  background:rgba(210,172,52,.22);
}
.nav-sublink{
  position:relative;
  display:block;
  padding:7px 10px 7px 14px;
  border-radius:10px;
  color:rgba(255,255,255,.72);
  font-size:12px;
  font-weight:600;
  transition:background-color .2s ease, color .2s ease, transform .2s ease;
}
.nav-sublink::before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:8px;
  height:8px;
  border-radius:50%;
  background:rgba(210,172,52,.38);
  transform:translate(-50%, -50%);
}
.nav-sublink:hover{
  color:#fff;
  background:rgba(255,255,255,.04);
  transform:translateX(2px);
}
.nav-sublink.active{
  color:#fff;
  background:rgba(23,52,93,.84);
}
.nav-sublink.active::before{
  background:var(--accent);
}
.nav-sublink-muted{
  color:rgba(255,255,255,.42);
  cursor:default;
}
.nav-sublink-muted::before{
  background:rgba(255,255,255,.16);
}
.nav-sublink-muted:hover{
  color:rgba(255,255,255,.42);
  background:transparent;
  transform:none;
}
.nav-badge{
  min-width:24px;
  height:24px;
  padding:0 7px;
  border-radius:999px;
  background:var(--accent);
  color:var(--navy);
  display:grid;
  place-items:center;
  font-size:12px;
  font-weight:800;
}
.nav-link-logout{margin-top:18px}
.field-help{display:block;margin:5px 0 7px;color:#64748b;font-size:12px;line-height:1.55}
.course-teacher-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.course-person{display:inline-flex;align-items:center;gap:6px;margin-right:8px;font-weight:700}.course-person-avatar{display:inline-grid;place-items:center;width:28px;height:28px;overflow:hidden;border-radius:50%;background:#dbeafe;color:#1d4f98;font-size:12px;font-weight:800}.course-person-avatar img{width:100%;height:100%;object-fit:cover}
.excel-row-editing{outline:2px solid #7c3aed;outline-offset:-2px;background:#faf5ff}.assignment-grading-table input:focus,.assignment-grading-table select:focus{outline:2px solid #7c3aed;outline-offset:1px}
.bulk-grade-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0;padding:12px 14px;border:1px solid #ddd6fe;border-radius:12px;background:#faf5ff}.bulk-grade-tools input,.bulk-grade-tools select{min-height:38px}.bulk-grade-tools b{color:#5b21b6}
.required-mark{color:#c2410c;font-weight:800}
.form-field-error{display:block;margin-top:5px;color:#b91c1c;font-size:12px;font-weight:700}
.field-has-error input,.field-has-error select,.field-has-error textarea{border-color:#dc2626;background:#fffafa}

.main{
  flex:1;
  min-width:0;
  background:linear-gradient(180deg, #f5f1ea 0%, #eee8de 100%);
  padding:18px;
  display:flex;
  flex-direction:column;
  gap:16px;
}
.topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:0 0 14px;
  background:transparent;
  border:0;
  border-bottom:1px solid rgba(210,172,52,.26);
  border-radius:0;
  box-shadow:none;
}
.topbar-left h2{
  margin:0 0 6px;
  font-size:20px;
  font-weight:800;
  color:var(--navy);
}
.topbar-left p{
  margin:0;
  color:var(--muted);
  font-size:12px;
}
.topbar-right{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:12px;
}
.icon-button{
  position:relative;
  width:40px;
  height:40px;
  border:1px solid rgba(210,172,52,.38);
  border-radius:50%;
  background:var(--surface);
  color:var(--navy);
  display:grid;
  place-items:center;
  box-shadow:0 6px 16px rgba(28,24,17,.05);
  cursor:pointer;
}
.icon-button:hover{
  transform:translateY(-1px);
  border-color:var(--accent);
}
.status-dot{
  position:absolute;
  top:8px;
  right:8px;
  width:10px;
  height:10px;
  border-radius:50%;
  background:var(--accent);
  border:2px solid var(--surface);
}
.term-select{
  width:auto;
  min-width:160px;
  border:1px solid rgba(210,172,52,.55);
  border-radius:12px;
  background:var(--surface);
  padding:10px 12px;
  font-size:13px;
  font-weight:700;
  color:var(--navy);
  box-shadow:0 6px 16px rgba(28,24,17,.04);
}
.btn-create{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:10px 16px;
  border:1px solid var(--accent-strong);
  border-radius:12px;
  background:linear-gradient(135deg, #dfbb42 0%, #c8970b 100%);
  color:var(--navy);
  font-weight:800;
  font-size:13px;
  cursor:pointer;
  box-shadow:0 10px 22px rgba(185,142,22,.24);
}
.btn-create:hover{
  transform:translateY(-1px);
  color:var(--navy);
  box-shadow:0 10px 22px rgba(185,142,22,.22);
}
.content{display:flex;flex-direction:column;gap:16px}

.desktop-only{display:block}
.mobile-only,
.mobile-header,
.mobile-action-bar{display:none}

.grid{display:grid;gap:16px}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.grid-5{grid-template-columns:repeat(5,minmax(0,1fr))}

.card{
  background:var(--surface);
  border:1px solid rgba(208,198,183,.95);
  border-radius:16px;
  padding:18px;
  box-shadow:var(--shadow-card);
  transition:transform .2s ease, box-shadow .2s ease;
}
.card:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 34px rgba(28,24,17,.08);
}
.card h2,
.card h3{
  margin-top:0;
  line-height:1.25;
  color:var(--navy);
}
.card h2{
  font-size:18px;
  font-weight:800;
}
.card h3{
  font-size:16px;
  font-weight:800;
}
.stat{display:flex;align-items:center;gap:16px}
.stat .ico{
  width:56px;
  height:56px;
  border-radius:20px;
  background:linear-gradient(135deg, #faf3dd 0%, #fdf8ee 100%);
  color:var(--navy);
  display:grid;
  place-items:center;
  font-size:26px;
  box-shadow:inset 0 0 0 1px rgba(210,172,52,.22);
}
.stat b{font-size:28px;font-weight:900}
.muted{color:var(--muted)}
.badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border-radius:999px;
  padding:4px 9px;
  background:var(--accent-soft);
  color:var(--accent-strong);
  font-weight:800;
  font-size:11px;
}
.badge.red{background:#fbe8e5;color:var(--red)}
.badge.green{background:#eef4de;color:var(--green)}
.badge.yellow{background:var(--accent-soft);color:var(--accent-strong)}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:10px 15px;
  border-radius:11px;
  border:1px solid rgba(23,52,93,.14);
  background:#fffdf8;
  color:var(--navy);
  font-weight:800;
  font-size:13px;
  cursor:pointer;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease, color .2s ease, background-color .2s ease;
}
.btn:hover{
  transform:translateY(-1px);
  border-color:rgba(23,52,93,.28);
  box-shadow:0 10px 20px rgba(28,24,17,.08);
}
.btn:active{transform:translateY(0)}
.btn.primary{
  border-color:rgba(15,30,55,.92);
  background:linear-gradient(135deg, #12284a 0%, #21477c 100%);
  color:#fff;
  box-shadow:0 10px 22px rgba(18,40,74,.22);
}
.btn.primary:hover{color:#fff}
.btn.secondary-strong{
  border-color:rgba(23,52,93,.18);
  background:#edf4ff;
  color:#17345d;
}
.btn.secondary-strong:hover{
  color:#17345d;
  border-color:rgba(23,52,93,.32);
  background:#e2ecfb;
}
.btn.accent-soft{
  border-color:rgba(210,172,52,.38);
  background:#fff3cf;
  color:#8b6500;
}
.btn.accent-soft:hover{
  color:#7a5700;
  border-color:rgba(210,172,52,.52);
  background:#ffedb4;
}
.btn.edit-soft{
  border-color:rgba(23,52,93,.20);
  background:#eef4ff;
  color:#17345d;
}
.btn.edit-soft:hover{
  color:#17345d;
  border-color:rgba(23,52,93,.34);
  background:#e2edff;
}
.btn.danger{
  border-color:transparent;
  background:var(--red);
  color:#fff;
}
.btn.danger-soft{
  border-color:rgba(217,91,74,.24);
  background:#fff0ec;
  color:#b13f34;
}
.btn.danger-soft:hover{
  color:#982e23;
  border-color:rgba(217,91,74,.42);
  box-shadow:0 10px 22px rgba(217,91,74,.12);
}
.btn.full{width:100%}
.btn-outline-white{
  background:rgba(255,255,255,.04);
  border-color:rgba(210,172,52,.68);
  color:var(--accent-soft);
}
.btn-outline-white:hover{
  color:#fff;
  background:rgba(255,255,255,.10);
}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}
.compact-actions{margin:10px 0 0}
.inline-form{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
}
.inline-form .btn,
.compact-actions .btn{
  padding:10px 14px;
  font-size:13px;
}
.inline-form select{
  min-width:150px;
}
.pagination-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:14px;
}

.table-wrap{
  overflow:auto;
  border:1px solid rgba(23,52,93,.20);
  border-radius:10px;
  background:var(--surface);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9);
}
table{
  width:100%;
  border-collapse:collapse;
  background:var(--surface);
  border:1px solid #d5dce7;
}
th,td{
  padding:10px 12px;
  border:1px solid #d5dce7;
  text-align:left;
  vertical-align:top;
  line-height:1.4;
}
th{
  background:#edf2f8;
  color:rgba(13,30,55,.86);
  font-size:11px;
  font-weight:800;
  letter-spacing:.04em;
  border-bottom:2px solid rgba(23,52,93,.72);
}
td{
  font-size:12.5px;
  font-weight:500;
  color:var(--ink);
}
tbody tr:nth-child(even){background:#fffaf0}
tbody tr:hover{background:#f8f1e2}
.table-wrap thead th{
  position:sticky;
  top:0;
  z-index:3;
}
.excel-table-wrap{
  max-height:72vh;
  border-color:rgba(23,52,93,.34);
  box-shadow:0 8px 24px rgba(13,30,55,.07);
}
.excel-table{
  min-width:1180px;
}
.excel-table th{
  background:linear-gradient(180deg,#244b7f,#17345d);
  color:#fff;
  border-color:#46678f;
  letter-spacing:.02em;
}
.excel-table td:first-child,
.excel-table th:first-child{
  width:48px;
  text-align:center;
}
.excel-table td{
  vertical-align:middle;
}
.excel-row-actions{
  display:flex;
  gap:5px;
  flex-wrap:nowrap;
}
.course-excel-card{
  padding:18px;
}
.course-table-filter select{
  min-width:280px;
}
.table-wrap td b,
.table-wrap td strong{
  font-size:12.5px;
  font-weight:800;
}
.table-wrap td small{
  display:inline-block;
  font-size:11px;
  line-height:1.35;
}
.table-wrap .badge{
  padding:5px 10px;
  font-size:11px;
  font-weight:800;
}
.table-wrap .btn{
  padding:8px 12px;
  border-radius:10px;
  font-size:12px;
}
.table-wrap input,
.table-wrap select,
.table-wrap textarea{
  min-height:40px;
  padding:10px 12px;
  font-size:12.5px;
  border-radius:12px;
}
.table-wrap a:not(.btn){
  font-size:12.5px;
  font-weight:700;
}
.progress{height:8px;background:#ece5d8;border-radius:99px;overflow:hidden}
.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--navy-soft))}

form .field{margin-bottom:14px}
.field > div[id^="id_resources"],
.field > div[id^="id_instructors"]{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:8px;
  max-height:260px;
  overflow:auto;
  padding:12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fbf8f1;
}
.field > div[id^="id_resources"] > div label,
.field > div[id^="id_instructors"] > div label{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0;
  padding:8px 10px;
  border:1px solid rgba(217,208,196,.75);
  border-radius:9px;
  background:#fff;
  cursor:pointer;
}
.field > div[id^="id_resources"] input,
.field > div[id^="id_instructors"] input{
  flex:none;
  margin:0;
  accent-color:var(--green);
}
label{
  display:block;
  margin:0 0 7px;
  font-size:12px;
  font-weight:800;
  color:var(--navy);
}
input,select,textarea{
  width:100%;
  border:1px solid rgba(217,208,196,.96);
  background:var(--surface);
  border-radius:13px;
  padding:11px 13px;
  font-size:13px;
  font-weight:500;
  color:var(--ink);
  transition:border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
input:focus,select:focus,textarea:focus{
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 4px rgba(210,172,52,.12);
}
input[type=checkbox],input[type=radio]{width:auto}
.inline-readonly{
  width:100%;
  min-height:46px;
  display:flex;
  align-items:center;
  padding:11px 14px;
  border:1px solid rgba(217,208,196,.96);
  border-radius:12px;
  background:#fcfaf4;
  color:var(--ink);
  font-size:13px;
  font-weight:700;
}
.form-errors{
  background:#fdf0ee;
  color:#a7372c;
  border:1px solid #f4c7c1;
  padding:12px;
  border-radius:16px;
  margin-bottom:16px;
}

.messages{position:fixed;right:20px;top:24px;z-index:50}
.message{
  background:var(--surface);
  border-left:5px solid var(--accent);
  box-shadow:0 18px 34px rgba(28,24,17,.15);
  padding:12px 16px;
  border-radius:14px;
  margin-bottom:10px;
}
.file-chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{font-size:12px;font-weight:900;color:#fff;border-radius:8px;padding:6px 8px}
.pdf{background:#e53935}
.docx{background:#2563eb}
.pptx{background:#f97316}
.xlsx{background:#16a34a}
.jpg,.png{background:#0891b2}
.zip{background:#ca8a04}
.other{background:#64748b}

.hero{
  position:relative;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  padding:20px 22px;
  border-radius:18px;
  overflow:hidden;
  background:linear-gradient(125deg, #10223e 0%, #163259 44%, #1b3e69 100%);
  border:1px solid rgba(210,172,52,.34);
  color:#fff;
  box-shadow:0 18px 40px rgba(10,18,33,.22);
}
.hero::before{
  content:"";
  position:absolute;
  right:-12%;
  bottom:-32%;
  width:360px;
  height:360px;
  background:radial-gradient(circle, rgba(210,172,52,.20) 0%, rgba(210,172,52,0) 70%);
}
.hero::after{
  content:"";
  position:absolute;
  top:-28%;
  right:24%;
  width:420px;
  height:420px;
  border:1px solid rgba(210,172,52,.12);
  border-radius:50%;
}
.hero-inner,
.logistics-strip{position:relative;z-index:1}
.hero-eyebrow{
  display:block;
  margin-bottom:8px;
  color:var(--accent-soft);
  font-size:11px;
  font-weight:700;
  letter-spacing:1.5px;
  text-transform:uppercase;
}
.hero-inner h1{
  margin:0 0 10px;
  font-size:24px;
  line-height:1.15;
  font-weight:800;
}
.hero-inner p{
  margin:0;
  max-width:760px;
  color:rgba(255,255,255,.84);
  font-size:13px;
}
.logistics-strip{
  display:flex;
  align-items:center;
  gap:10px;
  padding:9px 12px;
  border-radius:12px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(210,172,52,.42);
  font-weight:700;
  font-size:12px;
  backdrop-filter:blur(10px);
}
.transport{
  width:30px;
  height:30px;
  border-radius:10px;
  background:rgba(210,172,52,.12);
  display:grid;
  place-items:center;
}
.hero-cta{
  color:var(--accent-soft);
  border-color:rgba(210,172,52,.62);
  background:rgba(255,255,255,.04);
}
.hero-cta:hover{
  color:#fff;
  background:rgba(255,255,255,.10);
}
.hero-compact{
  padding:16px 18px;
  min-height:0;
}
.hero-admin{
  background:linear-gradient(125deg, #102342 0%, #183561 48%, #20467a 100%);
}
.admin-nav-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:14px;
}
.admin-nav-card{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:10px;
  min-height:132px;
  padding:16px;
  border-radius:18px;
  border:1px solid rgba(23,52,93,.12);
  background:#fffdf9;
  color:var(--navy);
  box-shadow:0 12px 28px rgba(28,24,17,.06);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease, background-color .2s ease;
}
.admin-nav-card:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 34px rgba(23,52,93,.10);
}
.admin-nav-card.tone-users{
  background:linear-gradient(180deg, #ffffff 0%, #eef5ff 100%);
  border-color:rgba(31,86,173,.18);
}
.admin-nav-card.tone-teachers{
  background:linear-gradient(180deg, #ffffff 0%, #eef8f0 100%);
  border-color:rgba(63,140,86,.18);
}
.admin-nav-card.tone-students{
  background:linear-gradient(180deg, #ffffff 0%, #fff8e8 100%);
  border-color:rgba(210,172,52,.22);
}
.admin-nav-card.tone-semesters{
  background:linear-gradient(180deg, #ffffff 0%, #f3f0ff 100%);
  border-color:rgba(109,84,193,.18);
}
.admin-nav-card.tone-courses{
  background:linear-gradient(180deg, #ffffff 0%, #eef8fb 100%);
  border-color:rgba(44,133,166,.18);
}
.admin-nav-card.tone-audit{
  background:linear-gradient(180deg, #ffffff 0%, #fff0ec 100%);
  border-color:rgba(184,69,57,.18);
}
.admin-nav-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.admin-nav-icon,
.admin-nav-open{
  width:40px;
  height:40px;
  border-radius:12px;
  display:grid;
  place-items:center;
  flex:none;
}
.admin-nav-icon{
  background:rgba(255,255,255,.88);
  border:1px solid rgba(23,52,93,.08);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
}
.admin-nav-card.tone-users .admin-nav-icon{color:#1d4f98}
.admin-nav-card.tone-teachers .admin-nav-icon{color:#2c7a46}
.admin-nav-card.tone-students .admin-nav-icon{color:#9f7800}
.admin-nav-card.tone-semesters .admin-nav-icon{color:#6b4fbf}
.admin-nav-card.tone-courses .admin-nav-icon{color:#167493}
.admin-nav-card.tone-audit .admin-nav-icon{color:#b84539}
.admin-nav-open{
  width:32px;
  height:32px;
  color:rgba(13,30,55,.56);
  background:rgba(255,255,255,.68);
}
.admin-nav-value{
  font-size:30px;
  font-weight:900;
  line-height:1;
  letter-spacing:-1px;
}
.admin-nav-copy{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.admin-nav-copy b{
  font-size:13px;
  line-height:1.3;
}
.admin-nav-copy small{
  color:var(--muted);
  font-size:11.5px;
  line-height:1.55;
}
.admin-secondary-grid{
  align-items:start;
}
.admin-status-card{
  background:linear-gradient(180deg, #fffdfa 0%, #fdf6e9 100%);
  border-color:rgba(210,172,52,.22);
}
.admin-quick-card{
  background:linear-gradient(180deg, #ffffff 0%, #f5f9ff 100%);
  border-color:rgba(23,52,93,.14);
}
.admin-status-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.admin-status-chip{
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px;
  border-radius:14px;
  border:1px solid rgba(23,52,93,.10);
  background:rgba(255,255,255,.84);
  color:var(--navy);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.admin-status-chip:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 22px rgba(23,52,93,.08);
}
.admin-status-chip.is-amber{border-color:rgba(210,172,52,.28);background:#fff8e7}
.admin-status-chip.is-blue{border-color:rgba(31,86,173,.18);background:#eef4ff}
.admin-status-chip.is-red{border-color:rgba(184,69,57,.20);background:#fff1ed}
.admin-status-chip.is-green{border-color:rgba(63,140,86,.18);background:#eef8f0}
.admin-status-icon{
  width:34px;
  height:34px;
  border-radius:10px;
  background:rgba(255,255,255,.86);
  display:grid;
  place-items:center;
  flex:none;
}
.admin-status-chip.is-amber .admin-status-icon{color:#a57400}
.admin-status-chip.is-blue .admin-status-icon{color:#1d4f98}
.admin-status-chip.is-red .admin-status-icon{color:#b84539}
.admin-status-chip.is-green .admin-status-icon{color:#2c7a46}
.admin-status-chip b{
  display:block;
  font-size:18px;
  line-height:1.05;
}
.admin-status-chip small{
  display:block;
  color:var(--muted);
  font-size:11px;
  line-height:1.45;
}
.admin-metric-pills{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}
.admin-metric-pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:8px 10px;
  border-radius:999px;
  border:1px solid rgba(23,52,93,.10);
  background:#fff;
  color:var(--navy);
  font-size:11.5px;
  font-weight:700;
}
.admin-metric-pill:hover{
  border-color:rgba(23,52,93,.22);
}
.admin-metric-pill.static{
  background:#f8f5ef;
  color:var(--muted);
}
.admin-metric-pill .material-symbols-outlined{
  font-size:16px;
}
.admin-quick-links{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.admin-quick-link{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:52px;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid rgba(23,52,93,.10);
  background:#fff;
  color:var(--navy);
  font-size:12px;
  font-weight:800;
  line-height:1.45;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease, background-color .2s ease;
}
.admin-quick-link:hover{
  transform:translateY(-1px);
  border-color:rgba(23,52,93,.24);
  box-shadow:0 10px 22px rgba(23,52,93,.08);
}
.admin-quick-link.primary{
  background:linear-gradient(135deg, #17345d 0%, #21477c 100%);
  border-color:#17345d;
  color:#fff;
}
.admin-role-pills{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}
.admin-role-pill{
  display:flex;
  align-items:center;
  gap:8px;
  padding:7px 10px;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(23,52,93,.10);
}
.admin-role-pill b{
  font-size:12px;
  line-height:1;
}
.admin-role-pill small{
  color:var(--muted);
  font-size:11px;
  line-height:1.4;
}
.admin-activity-card{
  background:linear-gradient(180deg, #ffffff 0%, #fafcff 100%);
  border-color:rgba(23,52,93,.14);
}
.admin-activity-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.admin-activity-item{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:12px;
  align-items:start;
  padding:12px 0;
  border-bottom:1px solid rgba(23,52,93,.08);
}
.admin-activity-item:last-child{
  border-bottom:0;
  padding-bottom:0;
}
.admin-activity-marker{
  width:30px;
  height:30px;
  border-radius:50%;
  background:#edf4ff;
  color:#17345d;
  display:grid;
  place-items:center;
}
.admin-activity-marker .material-symbols-outlined{
  font-size:16px;
}
.admin-activity-content b{
  display:block;
  margin-bottom:3px;
  font-size:12.5px;
}
.admin-activity-content p,
.admin-activity-content small{
  margin:0;
  color:var(--muted);
  font-size:11.5px;
  line-height:1.55;
}
.admin-activity-time{
  color:var(--muted);
  font-size:11px;
  white-space:nowrap;
}
.admin-activity-sep{
  margin:0 4px;
}
.admin-empty-state{
  display:flex;
  align-items:center;
  gap:12px;
  padding:10px 0 4px;
}
.admin-empty-state .material-symbols-outlined{
  width:34px;
  height:34px;
  border-radius:10px;
  background:#eef4ff;
  color:var(--navy);
  display:grid;
  place-items:center;
}
.admin-empty-state b{
  display:block;
  margin-bottom:2px;
  font-size:13px;
  color:var(--navy);
}
.quiz-choice{display:block;border:1px solid var(--line);border-radius:16px;padding:14px;margin:10px 0;background:#fbfdff}
.quiz-choice:hover{border-color:var(--accent)}
.quiz-reading-workspace,.secure-exam-shell{--quiz-reading-ink:#172b45}.quiz-reading-workspace .quiz-question-card,.secure-exam-shell .quiz-question-card{padding:clamp(24px,3.5vw,40px);border:2px solid #d5e0ec;background:#fff;box-shadow:0 10px 28px rgba(23,52,93,.08)}.quiz-reading-workspace .quiz-question-card h3,.secure-exam-shell .quiz-question-card h2{max-width:1000px;margin:0;color:var(--quiz-reading-ink);font-size:clamp(27px,2.7vw,34px);font-weight:850;line-height:1.65;letter-spacing:0}.quiz-reading-workspace .quiz-choice,.secure-exam-shell .quiz-choice{display:flex;align-items:flex-start;gap:15px;min-height:72px;padding:19px 21px;margin:14px 0;border:2px solid #d8e2ed;border-radius:15px;background:#fbfdff;color:#1d3048;font-size:clamp(21px,1.9vw,24px);font-weight:650;line-height:1.7;cursor:pointer}.quiz-reading-workspace .quiz-choice:hover,.secure-exam-shell .quiz-choice:hover{border-color:#3478ba;background:#f0f7ff}.quiz-reading-workspace .quiz-choice:has(input:checked),.secure-exam-shell .quiz-choice:has(input:checked){border-color:#2168ad;background:#e9f4ff;box-shadow:inset 5px 0 #2168ad}.quiz-reading-workspace .quiz-choice input,.secure-exam-shell .quiz-choice input{flex:0 0 auto;width:26px;height:26px;margin:6px 0 0;accent-color:#2168ad}.quiz-reading-workspace textarea,.quiz-reading-workspace input[type=text],.secure-exam-shell textarea,.secure-exam-shell input[type=text],.secure-exam-shell select{font-size:21px;line-height:1.7}.quiz-reading-workspace .matching-answer-row,.secure-exam-shell .matching-answer-row{font-size:21px;line-height:1.65}.secure-exam-progress{position:sticky;top:8px;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:17px}.secure-exam-shell #questionTimer{font-variant-numeric:tabular-nums}.secure-exam-shell form>.btn.full,.quiz-reading-workspace form>.btn.full{min-height:62px;font-size:20px}.secure-exam-shell button:disabled{cursor:wait;opacity:.72}
@media(max-width:640px){.quiz-reading-workspace .quiz-question-card,.secure-exam-shell .quiz-question-card{padding:21px 17px}.quiz-reading-workspace .workspace-title-line,.secure-exam-shell .workspace-title-line{align-items:flex-start}.quiz-reading-workspace .quiz-question-card h3,.secure-exam-shell .quiz-question-card h2{font-size:24px;line-height:1.65}.quiz-reading-workspace .quiz-choice,.secure-exam-shell .quiz-choice{padding:17px 15px;font-size:20px;line-height:1.65}.secure-exam-progress{top:4px;padding:14px;font-size:16px}.secure-exam-shell .alert.danger{font-size:16px;line-height:1.7}}
.correct{border-color:#22c55e;background:#f0fdf4}
.wrong{border-color:#ef4444;background:#fef2f2}
.timer{font-weight:900;color:var(--accent-strong);font-size:20px}
.rank-medal{
  width:76px;
  height:76px;
  border-radius:50%;
  background:linear-gradient(135deg,#ebcb67,#c89d22);
  display:grid;
  place-items:center;
  color:var(--navy);
  font-size:30px;
  font-weight:900;
  box-shadow:0 8px 20px rgba(200,157,34,.3);
}

.login-grid{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(360px,420px);
  gap:24px;
  align-items:stretch;
}
.login-banner{
  position:relative;
  min-height:540px;
  padding:42px;
  border-radius:30px;
  overflow:hidden;
  display:flex;
  align-items:flex-end;
  background:url("../img/login_banner.png") center/cover no-repeat;
  box-shadow:0 24px 50px rgba(7,24,63,.22);
}
.login-banner::after{
  content:"";
  position:absolute;
  inset:auto -8% -20% auto;
  width:260px;
  height:260px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:50%;
}
.login-banner-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(7,24,63,.18) 0%, rgba(7,24,63,.28) 24%, rgba(7,24,63,.9) 100%),
    linear-gradient(90deg, rgba(7,24,63,.95) 0%, rgba(7,24,63,.42) 62%, rgba(7,24,63,.14) 100%);
}
.login-banner-content{
  position:relative;
  z-index:1;
  max-width:520px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.login-kicker{
  display:inline-flex;
  align-items:center;
  padding:8px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.14);
  color:#fff;
  font-size:13px;
  font-weight:700;
  backdrop-filter:blur(8px);
}
.login-banner-content h1{
  margin:20px 0 14px;
  font-size:48px;
  line-height:1.15;
  font-weight:800;
  color:#fff;
  text-shadow:0 10px 24px rgba(0,0,0,.18);
}
.login-banner-accent{
  width:52px;
  height:5px;
  border-radius:999px;
  background:var(--red);
  margin-bottom:18px;
}
.login-banner-content p{
  margin:0 0 18px;
  color:rgba(255,255,255,.86);
  font-size:17px;
  line-height:1.65;
}
.login-course-meta{
  display:flex;
  flex-direction:column;
  gap:4px;
  margin-bottom:28px;
}
.login-course-meta span{
  color:rgba(255,255,255,.74);
  font-size:15px;
}

.login-form-box{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:18px;
  padding:32px;
}
.login-form-box form{display:flex;flex-direction:column}
.login-logos{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:18px;
}
.login-logos img{
  height:60px;
  width:auto;
  object-fit:contain;
}
.login-form-box h2{
  margin:0;
  font-size:24px;
  font-weight:800;
  color:var(--navy);
}
.login-subtitle{
  margin:0;
  color:var(--muted);
  font-size:13px;
  line-height:1.75;
}
.social-login-stack{display:grid;gap:10px}
.social-login-stack form{display:block}
.social-login-btn{
  width:100%;
  min-height:50px;
  justify-content:center;
  gap:12px;
  border:1px solid #d8e0ea;
  background:#fff;
  color:#162033;
  font-weight:700;
}
.social-login-btn:hover{background:#f8fafc}
.social-login-mark{display:inline-grid;place-items:center;flex:0 0 auto}
.google-mark{
  width:28px;
  height:28px;
  border-radius:50%;
  border:1px solid #e4ebf3;
  color:#4285f4;
  font-size:15px;
  font-weight:900;
}
.line-login-btn{border-color:#06c755;color:#087a38}
.line-login-btn:hover{background:#f0fff6}
.line-mark{
  width:36px;
  height:24px;
  border-radius:6px;
  background:#06c755;
  color:#fff;
  font-size:9px;
  font-weight:900;
}
.login-divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px}
.login-divider::before,.login-divider::after{content:"";height:1px;flex:1;background:#e4e9f0}
.settings-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}
.settings-page-head h1{margin:4px 0 6px;color:var(--navy)}
.social-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.social-provider-card{position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:280px;padding:26px;border:1px solid #dfe6ef;box-shadow:0 14px 34px rgba(15,39,73,.08)}
.social-provider-card::after{content:"";position:absolute;right:-52px;bottom:-70px;width:180px;height:180px;border-radius:50%;background:rgba(66,133,244,.06);pointer-events:none}
.social-provider-card.line::after{background:rgba(6,199,85,.07)}
.social-provider-head{position:relative;z-index:1;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:15px;margin-bottom:28px}
.social-provider-title h2{margin:2px 0 0;color:#102a4e;font-size:20px;line-height:1.25}
.provider-kicker{color:#7a8798;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.social-provider-logo{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:#fff;border:1px solid #e1e7ef;box-shadow:0 8px 20px rgba(31,55,86,.1)}
.social-provider-logo svg{display:block;width:34px;height:34px}
.social-provider-card.line .social-provider-logo{background:#effdf4;border-color:#bdeccc}
.social-provider-card.line .social-provider-logo svg{width:38px;height:38px}
.status-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#f1f3f6;color:#647184;font-size:11px;font-weight:700;white-space:nowrap}
.status-dot{width:7px;height:7px;border-radius:50%;background:#9aa4b2;box-shadow:0 0 0 3px rgba(154,164,178,.14)}
.status-badge.is-active{background:#eafbf1;color:#087a38}
.status-badge.is-active .status-dot{background:#06c755;box-shadow:0 0 0 3px rgba(6,199,85,.15)}
.social-provider-card form{display:grid;gap:14px}
.social-provider-card .field{margin:0}
.provider-description{position:relative;z-index:1;min-height:48px;margin:0 0 24px;color:#637083;font-size:14px;line-height:1.7}
.provider-connect{position:relative;z-index:1;margin-top:auto;min-height:52px;justify-content:space-between;padding:0 18px;border:0;color:#fff;font-weight:800;box-shadow:none}
.provider-connect .material-symbols-outlined{font-size:20px;transition:transform .18s ease}
.provider-connect:hover .material-symbols-outlined{transform:translateX(3px)}
.google-connect{background:#1a73e8}
.google-connect:hover{background:#155fc0}
.line-connect{background:#06c755}
.line-connect:hover{background:#05a847}
.provider-connected-note{position:relative;z-index:1;display:flex;align-items:center;gap:10px;min-height:60px;margin-bottom:20px;padding:14px;border-radius:14px;background:#f1faf5;color:#167343;font-size:13px;line-height:1.55}
.provider-connected-note .material-symbols-outlined{color:#06a94a}
.provider-disconnect{position:relative;z-index:1;justify-content:center;gap:8px;margin-top:auto;color:#7a3340;background:#fff;border-color:#e6cbd0}
.provider-disconnect:hover{background:#fff5f6;border-color:#d8aab2}
.checkbox-field{display:flex;align-items:center;gap:8px}
.checkbox-field input{width:auto}
.callback-box{display:grid;gap:6px;padding:14px;border-radius:12px;background:#f7f9fc;border:1px solid #e4e9f0}
.callback-box code{overflow-wrap:anywhere;color:#2457a6;font-size:12px}
.callback-box small{color:var(--muted)}
.social-login-policy{margin-top:20px;padding:22px}
.social-login-policy h2{margin-top:0}
.social-login-policy li{margin:8px 0;color:var(--muted)}
@media (max-width:1050px){.social-settings-grid{grid-template-columns:1fr}.settings-page-head{flex-direction:column}.social-provider-card{min-height:250px}}
@media (max-width:560px){.social-provider-card{padding:20px}.social-provider-head{grid-template-columns:auto 1fr}.status-badge{grid-column:1/-1;width:max-content}.social-provider-title h2{font-size:18px}}
@media (prefers-reduced-motion:reduce){.provider-connect .material-symbols-outlined,.social-account-choice{transition:none!important}}
.social-signup-shell{min-height:100vh;display:grid;place-items:center;padding:28px 16px}
.social-signup-card{width:min(100%,560px);padding:32px}
.social-signup-card h1{margin:6px 0 8px;color:var(--navy)}
.social-signup-card>p{margin:0 0 16px;color:var(--muted)}
.social-signup-card form{display:grid;gap:14px;margin-top:22px}
.social-signup-card .field{margin:0}
.social-signup-icon{width:54px;height:54px;margin-bottom:14px;border-radius:16px;display:grid;place-items:center;background:#eef4ff;color:#4285f4;font-weight:900}
.social-signup-note{padding:14px;border-radius:12px;background:#fff8e8;border:1px solid #f4d58b;color:#75530b;font-size:13px;line-height:1.65}
.social-account-choice-grid{display:grid;gap:12px;margin:22px 0 14px}
.social-account-choice{display:grid;gap:5px;padding:18px;border:1px solid #d8e0ea;border-radius:14px;color:var(--navy);text-decoration:none;background:#fff}
.social-account-choice:hover{border-color:#4285f4;background:#f6f9ff;transform:translateY(-1px)}
.social-account-choice span{color:var(--muted);font-size:13px;line-height:1.6}
.btn-google{
  justify-content:center;
  gap:12px;
  padding:14px 18px;
}
.google-mark{
  width:32px;
  height:32px;
  border-radius:50%;
  border:1px solid #e4ebf3;
  background:#fff;
  display:grid;
  place-items:center;
  color:#ea4335;
  font-weight:900;
}
.login-btn{
  min-height:56px;
  margin-top:4px;
  border-radius:16px;
  font-size:15px;
}
.login-footer{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin:18px 0 0;
  color:var(--muted);
  font-size:13px;
}
.login-footer .material-symbols-outlined{
  color:#98a2b3;
  font-size:18px;
}
.login-register-link{
  margin-top:12px;
  text-align:center;
  font-size:13px;
  font-weight:700;
}
.filter-card{
  padding:20px;
}
.filter-stack{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
}
.filter-card label{
  margin-bottom:6px;
  font-size:12px;
  font-weight:700;
  color:rgba(13,30,55,.82);
}
.filter-card input,
.filter-card select{
  min-height:46px;
  padding:11px 14px;
  font-size:13px;
  border-radius:12px;
}
.filter-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.filter-actions .btn{
  padding:11px 16px;
  font-size:13px;
}
.section-kicker{
  display:inline-flex;
  align-items:center;
  margin-bottom:8px;
  color:var(--accent-strong);
  font-size:10px;
  font-weight:800;
  letter-spacing:1.4px;
  text-transform:uppercase;
}
.table-panel-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:14px;
}
.table-panel-title-rich{
  align-items:flex-start;
}
.table-panel-copy p{
  margin:6px 0 0;
  font-size:12.5px;
  line-height:1.6;
}
.table-panel-title h3{
  margin-bottom:0;
  font-size:14px;
}
.semester-overview-grid{align-items:stretch}
.flow-guide-card,
.semester-summary-card{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.flow-guide-card{
  background:linear-gradient(180deg, #fffdfa 0%, #fbf3e3 100%);
  border-color:rgba(210,172,52,.26);
  box-shadow:0 14px 28px rgba(185,142,22,.08);
}
.semester-summary-card{
  background:linear-gradient(180deg, #ffffff 0%, #f4f9ff 100%);
  border-color:rgba(23,52,93,.16);
  box-shadow:0 14px 28px rgba(23,52,93,.06);
}
.semester-table-card{
  border-color:rgba(23,52,93,.14);
}
.semester-table-card .table-panel-title{
  padding-bottom:12px;
  border-bottom:1px solid rgba(23,52,93,.08);
}
.flow-guide-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}
.flow-steps{
  display:grid;
  gap:10px;
}
.flow-step{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:12px;
  border:1px solid rgba(210,172,52,.24);
  border-left:4px solid rgba(210,172,52,.52);
  border-radius:16px;
  background:rgba(255,255,255,.82);
}
.flow-step-index{
  width:28px;
  height:28px;
  border-radius:50%;
  background:linear-gradient(135deg, #0f2342 0%, #1a4377 100%);
  color:#fff;
  display:grid;
  place-items:center;
  font-size:12px;
  font-weight:800;
  flex:none;
  box-shadow:0 6px 14px rgba(15,35,66,.18);
}
.flow-step b{
  display:block;
  margin-bottom:3px;
  font-size:12.5px;
  color:var(--navy);
}
.flow-step p{
  margin:0;
  font-size:11.5px;
  color:var(--muted);
  line-height:1.55;
}
.summary-badges{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.summary-note{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:10px 12px;
  border-radius:16px;
  background:#fff5df;
  border:1px solid rgba(210,172,52,.28);
}
.summary-note .material-symbols-outlined{
  color:var(--accent-strong);
  font-size:18px;
  margin-top:1px;
}
.summary-note p{
  margin:0;
  font-size:12px;
  line-height:1.6;
  color:var(--muted);
}
.summary-note-warning{
  margin-top:12px;
  background:#fff0eb;
  border-color:rgba(217,91,74,.24);
}
.summary-note-warning .material-symbols-outlined{
  color:#c34a3e;
}
.table-actions{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
}
.table-actions .btn{
  min-width:auto;
  font-weight:800;
}
.table-actions .material-symbols-outlined{
  font-size:17px;
}
.modal-layer{
  position:fixed;
  inset:0;
  z-index:70;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(10,23,48,.46);
  opacity:0;
  pointer-events:none;
  transition:opacity .18s ease;
  backdrop-filter:blur(4px);
}
.modal-layer.is-open{
  opacity:1;
  pointer-events:auto;
}
.modal-panel{
  width:min(540px, calc(100vw - 32px));
  max-height:calc(100vh - 40px);
  overflow:auto;
  background:var(--surface);
  border:1px solid rgba(217,208,196,.96);
  border-radius:22px;
  box-shadow:0 24px 60px rgba(9,17,31,.22);
}
.modal-panel-wide{
  width:min(720px, calc(100vw - 32px));
}
.modal-header,
.modal-footer{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  padding:22px 22px 0;
}
.modal-header h3{
  margin:0;
  font-size:18px;
  color:var(--navy);
}
.modal-header p{
  margin:6px 0 0;
  color:var(--muted);
  font-size:12.5px;
  line-height:1.6;
}
.modal-body{
  padding:18px 22px 10px;
}
.modal-footer{
  align-items:center;
  padding:0 22px 22px;
}
.modal-form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px 16px;
}
.modal-form-grid .field:last-child{
  grid-column:1 / -1;
}
.modal-close{
  width:40px;
  height:40px;
  border:1px solid rgba(217,208,196,.96);
  border-radius:50%;
  background:var(--surface);
  color:var(--navy);
  display:grid;
  place-items:center;
  cursor:pointer;
}
.modal-close:hover{
  border-color:rgba(210,172,52,.55);
  background:#fff9ed;
}
.modal-errors{
  margin-bottom:16px;
}
.delete-check-card{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:16px;
  border-radius:18px;
  background:#fff8ef;
  border:1px solid rgba(210,172,52,.22);
}
.delete-check-card .material-symbols-outlined{
  color:#c34a3e;
}
.delete-check-card b{
  display:block;
  margin-bottom:4px;
  color:var(--navy);
  font-size:14px;
}

.features-strip{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;
  padding:12px;
}
.feature-item{
  display:flex;
  align-items:flex-start;
  gap:16px;
  padding:18px;
}
.feature-item + .feature-item{border-left:1px solid #edf2f7}
.feature-icon{
  width:54px;
  height:54px;
  border-radius:18px;
  background:linear-gradient(135deg, #edf4ff 0%, #f8fbff 100%);
  color:var(--blue);
  display:grid;
  place-items:center;
  flex:none;
  box-shadow:inset 0 0 0 1px rgba(13,79,170,.08);
}
.feature-icon .material-symbols-outlined{font-size:28px}
.feature-item b{
  display:block;
  font-size:15px;
  margin-bottom:4px;
}
.feature-item span{
  display:block;
  color:var(--muted);
  font-size:13px;
  line-height:1.6;
}

/* --- Landing Page Styles --- */
.landing-nav{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:20px 50px;
  background:var(--surface);
  border-bottom:1px solid var(--line);
  position:sticky;
  top:0;
  z-index:100;
}
.landing-logo{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:900;
  font-size:24px;
  color:var(--ink);
}
.landing-logo img{height:40px}
.landing-links{display:flex;gap:30px;font-weight:700}
.landing-links a{color:var(--ink)}
.landing-links a:hover{color:var(--red)}
.landing-actions{display:flex;gap:15px;align-items:center}
.btn-landing-primary{
  background:var(--accent);
  color:var(--navy);
  padding:12px 24px;
  border-radius:12px;
  font-weight:800;
}
.btn-landing-primary:hover{background:var(--accent-strong);color:var(--navy)}
.btn-landing-outline{
  border:1px solid var(--line);
  color:var(--ink);
  padding:10px 24px;
  border-radius:12px;
  font-weight:800;
}
.btn-landing-outline:hover{border-color:var(--blue);color:var(--blue)}

.landing-hero{
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:40px;
  padding:80px 50px;
  background:#fff;
  overflow:hidden;
  position:relative;
}
.landing-hero-content h1{
  font-size:56px;
  font-weight:900;
  line-height:1.1;
  margin-bottom:20px;
  color:var(--ink);
}
.landing-hero-content p{
  font-size:18px;
  color:var(--muted);
  margin-bottom:40px;
  line-height:1.6;
}
.landing-hero-image{position:relative;text-align:center}
.landing-hero-image img{max-width:100%;position:relative;z-index:2}
.hero-shape-1{
  position:absolute;
  top:-20px;
  right:20px;
  font-size:40px;
  color:var(--red);
  z-index:1;
}
.hero-shape-2{
  position:absolute;
  bottom:20px;
  left:0;
  width:300px;
  height:300px;
  border:4px solid var(--red);
  border-radius:40% 60% 70% 30% / 40% 50% 60% 50%;
  opacity:.3;
  z-index:0;
}
.hero-shape-3{
  position:absolute;
  top:10%;
  left:10%;
  font-size:30px;
  color:var(--yellow);
}

.landing-trusted{
  text-align:center;
  padding:50px;
  background:var(--soft);
}
.landing-trusted p{
  font-weight:800;
  color:var(--muted);
  margin-bottom:30px;
}
.trusted-logos{
  display:flex;
  justify-content:center;
  gap:50px;
  flex-wrap:wrap;
  font-size:24px;
  font-weight:900;
  color:var(--blue);
}
.trusted-logos span{display:flex;align-items:center;gap:10px}

.landing-categories{padding:80px 50px;background:#fff}
.cat-header{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  margin-bottom:40px;
}
.cat-header h2{font-size:40px;font-weight:900;margin:0}
.cat-header p{
  color:var(--muted);
  max-width:500px;
  margin-top:15px;
}
.cat-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
  gap:20px;
}
.cat-card{
  background:var(--soft);
  border-radius:16px;
  padding:30px 20px;
  text-align:center;
  font-weight:800;
  transition:transform .3s ease;
}
.cat-card:hover{
  transform:translateY(-5px);
  box-shadow:0 10px 30px rgba(0,0,0,.05);
}
.cat-icon{font-size:50px;margin-bottom:15px}

.landing-about{
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:60px;
  padding:80px 50px;
  background:#fff;
}
.about-image{position:relative;text-align:center}
.about-image-bg{
  position:absolute;
  top:10%;
  left:10%;
  right:10%;
  bottom:0;
  background:var(--line);
  border-radius:50% 50% 0 0;
  z-index:0;
}
.about-image img{position:relative;z-index:2;max-width:90%}
.about-content h2{
  font-size:40px;
  font-weight:900;
  margin-bottom:20px;
}
.about-content p{
  color:var(--muted);
  margin-bottom:30px;
  line-height:1.6;
}
.about-features{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  margin-bottom:40px;
}
.about-feature{font-weight:800}
.about-feature span{color:var(--red);margin-right:10px}
.about-feature p{
  font-size:14px;
  font-weight:400;
  color:var(--muted);
  margin:5px 0 0 25px;
}

.course-hero{
  align-items:flex-start;
}
.course-metric-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:14px;
  margin:18px 0;
}
.mini-stat-card{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:16px 18px;
  border-radius:18px;
  border:1px solid rgba(23,52,93,.12);
  background:linear-gradient(180deg, #fffdf9 0%, #f7f8fb 100%);
  color:var(--navy);
  box-shadow:0 12px 24px rgba(23,52,93,.05);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
a.mini-stat-card:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 32px rgba(23,52,93,.08);
  border-color:rgba(210,172,52,.32);
}
.mini-stat-card strong{
  font-size:28px;
  line-height:1;
  font-weight:900;
}
.mini-stat-card span{
  font-size:13px;
  font-weight:800;
}
.mini-stat-card small{
  font-size:11.5px;
  color:var(--muted);
  line-height:1.5;
}
.static-card{
  cursor:default;
}
.course-top-grid,
.course-bottom-grid{
  align-items:start;
}
.course-panel{
  border-color:rgba(23,52,93,.12);
}
.workflow-list,
.workspace-list,
.group-board{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.workflow-step,
.workspace-row,
.group-board-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  padding:14px 16px;
  border-radius:16px;
  border:1px solid rgba(23,52,93,.10);
  background:#fffdfa;
}
.workflow-step{
  flex-direction:column;
  gap:6px;
  background:rgba(255,255,255,.72);
}
.workflow-step b,
.workspace-main b,
.group-board-row b{
  font-size:13.5px;
  line-height:1.45;
}
.workflow-step small,
.workspace-main small,
.group-board-row small,
.workspace-main p{
  margin:0;
  font-size:12px;
  line-height:1.6;
}
.workspace-main,
.workspace-side{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.workspace-main{
  min-width:0;
  flex:1;
}
.workspace-title-line{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.workspace-actions,
.row-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.workspace-link{
  color:inherit;
  transition:transform .2s ease, border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.workspace-link:hover{
  transform:translateY(-1px);
  border-color:rgba(210,172,52,.28);
  box-shadow:0 14px 24px rgba(23,52,93,.06);
  background:#fff;
}
.compact-list .workspace-row{
  padding:13px 15px;
}
.empty-state{
  padding:20px;
  border:1px dashed rgba(23,52,93,.16);
  border-radius:16px;
  color:var(--muted);
  font-size:12.5px;
  text-align:center;
  background:#fffcf6;
}
.stack-links{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.stack-links a{
  word-break:break-word;
}
.assignment-metric-grid{
  margin-top:16px;
}
.attendance-session-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}.attendance-session-summary>div{display:grid;gap:4px;padding:15px 17px;border:1px solid #d9e5f4;border-radius:16px;background:linear-gradient(125deg,#f7fbff,#fff)}.attendance-session-summary b{font-size:17px}.attendance-session-summary small{color:var(--muted)}.attendance-session-filter{padding:0}.attendance-session-filter>summary,.attendance-history-filter>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 20px;cursor:pointer;list-style:none}.attendance-session-filter>summary::-webkit-details-marker,.attendance-history-filter>summary::-webkit-details-marker{display:none}.attendance-session-filter summary>span,.attendance-history-filter summary>span{display:flex;align-items:center;gap:8px}.attendance-session-filter summary small,.attendance-history-filter summary small{color:var(--muted)}.attendance-session-filter-body,.attendance-history-filter-body{padding:0 20px 20px;border-top:1px solid var(--line)}.attendance-howto{margin:14px 0;padding:0;border:1px solid var(--line);border-radius:16px;background:#fff}.attendance-howto>summary{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;cursor:pointer;font-weight:800;list-style:none}.attendance-howto>summary::-webkit-details-marker{display:none}.attendance-howto-steps{display:flex;align-items:center;gap:12px;padding:0 18px 16px}.attendance-qr-panel{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:16px}.attendance-qr-panel img{width:150px;height:150px}.attendance-code{display:flex;align-items:center;gap:10px}.attendance-code span{color:var(--muted)}.attendance-code b{padding:5px 10px;border-radius:8px;background:#0f2e5f;color:#fff;letter-spacing:.16em}.attendance-confirm-card{max-width:620px;margin-inline:auto}.attendance-history-filter{padding:0}.attendance-history-mobile-list,.student-attendance-mobile-list{display:none}.attendance-history-card .table-panel-title{margin-bottom:10px}
@media(max-width:700px){.attendance-session-summary{grid-template-columns:1fr}.attendance-session-create .btn.primary{width:100%;justify-content:center}.attendance-session-filter>summary,.attendance-history-filter>summary{align-items:flex-start;flex-direction:column}.attendance-session-filter-body,.attendance-history-filter-body{padding-inline:14px}.attendance-howto-steps{display:grid;grid-template-columns:1fr;gap:8px}.attendance-howto-steps>i{display:none}.attendance-qr-panel{padding:16px;align-items:flex-start}.attendance-qr-panel img{width:132px;height:132px}.attendance-code{font-size:13px}.live-checkin-form{display:grid;grid-template-columns:1fr 1fr;gap:8px}.live-checkin-form label{font-size:12px}.live-checkin-form .btn{grid-column:1/-1;justify-content:center}.attendance-history-mobile-list,.student-attendance-mobile-list{display:grid;gap:9px}.attendance-history-mobile-list article,.student-attendance-mobile-list article{display:grid;grid-template-columns:1fr auto;gap:6px;padding:13px;border:1px solid var(--line);border-radius:13px;background:#fff}.attendance-history-mobile-list article div,.student-attendance-mobile-list article div{display:grid;gap:2px}.attendance-history-mobile-list article span:not(.badge),.student-attendance-mobile-list article span:not(.badge),.attendance-history-mobile-list article small,.student-attendance-mobile-list article small{color:var(--muted);font-size:12px}.attendance-history-mobile-list article small,.student-attendance-mobile-list article small{grid-column:1/-1}.attendance-history-card .table-wrap,#student-attendance-detail .table-wrap{display:none}.attendance-confirm-card{margin-inline:0}.student-checkin-zone{margin-top:0}.student-live-card{grid-template-columns:42px 1fr}.student-live-action{grid-column:1/-1}.student-live-action form{display:grid;grid-template-columns:1fr}.student-live-action input,.student-checkin-button{min-height:48px}.student-checkin-button{justify-content:center}}
.assignment-form-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:0 0 18px;padding:22px;border:1px solid #d9e5f4;border-radius:20px;background:linear-gradient(125deg,#f7fbff,#fff)}.assignment-form-hero h1{margin:3px 0;font-size:28px}.assignment-form-hero p{margin:0;color:var(--muted)}.assignment-quick-form{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px;align-items:start}.assignment-form-main{display:grid;gap:14px}.assignment-form-heading{display:flex;align-items:flex-start;gap:11px;margin-bottom:16px}.assignment-form-heading h2,.assignment-form-heading h3{margin:0}.assignment-form-heading p{margin:3px 0 0;color:var(--muted);font-size:13px}.assignment-step{flex:0 0 28px;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#1d4ed8;color:#fff;font-weight:800}.assignment-essential-card{padding:22px}.assignment-advanced-card{padding:0}.assignment-advanced-card>summary,.assignment-filter-card>summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 20px;list-style:none}.assignment-advanced-card>summary::-webkit-details-marker,.assignment-filter-card>summary::-webkit-details-marker{display:none}.assignment-advanced-card>summary span:first-child{display:flex;align-items:center;gap:8px}.assignment-advanced-card>summary small,.assignment-filter-card>summary small{color:var(--muted);text-align:right}.assignment-advanced-body,.assignment-filter-body{padding:0 20px 20px;border-top:1px solid var(--line)}.assignment-advanced-body .field:first-child{margin-top:16px}.assignment-form-actions{position:sticky;top:18px;display:grid;gap:10px;padding:20px}.assignment-form-actions h2{margin:0}.assignment-form-actions p{margin:0 0 5px;color:var(--muted);font-size:13px}.assignment-form-actions .btn{justify-content:center}.assignment-submit-form{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.assignment-status-card{align-self:start}.assignment-status-empty{display:flex;align-items:center;gap:8px;font-weight:700;color:#475569}.assignment-status-empty .material-symbols-outlined{color:#d97706}.assignment-student-hero{display:flex;align-items:center;justify-content:space-between;gap:16px}.assignment-filter-card{margin-bottom:14px}.assignment-filter-card .filter-stack{margin-top:16px}.assignment-grading-table tbody tr:has(.badge.red){background:#fffaf5}.assignment-grading-table tbody tr:has(.badge.yellow){background:#fffdf2}
@media(max-width:900px){.assignment-quick-form{grid-template-columns:1fr}.assignment-form-actions{position:static;display:flex;flex-wrap:wrap}.assignment-form-actions .section-kicker,.assignment-form-actions h2,.assignment-form-actions p{width:100%}.assignment-form-actions .btn{flex:1}.assignment-student-hero{align-items:flex-start}.assignment-advanced-card>summary,.assignment-filter-card>summary{align-items:flex-start;flex-direction:column}.assignment-advanced-card>summary small,.assignment-filter-card>summary small{text-align:left}}
@media(max-width:640px){.assignment-form-hero{padding:17px;flex-direction:column}.assignment-form-hero h1{font-size:23px}.assignment-essential-card{padding:16px}.assignment-student-hero .btn{width:100%;justify-content:center}.assignment-filter-body,.assignment-advanced-body{padding-inline:14px}.assignment-grading-table{font-size:12px}.bulk-grade-tools{display:grid;grid-template-columns:1fr}.bulk-grade-tools .btn{justify-content:center}}
.assignment-grading-table td{
  min-width:90px;
}
.assignment-grading-table th:nth-child(5),
.assignment-grading-table td:nth-child(5){
  min-width:180px;
}
.assignment-grading-table th:nth-child(7),
.assignment-grading-table td:nth-child(7){
  min-width:180px;
}
.table-note-input{
  min-width:170px;
}
.classroom-course-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:18px;
}
.classroom-course-card{
  overflow:hidden;
  border-radius:24px;
  border:1px solid rgba(23,52,93,.12);
  background:#fff;
  box-shadow:0 18px 36px rgba(23,52,93,.08);
}
.classroom-course-card-link{
  display:block;
  color:inherit;
}
.classroom-course-banner{
  min-height:138px;
  padding:20px 22px;
  color:#fff;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  gap:6px;
}
.classroom-course-card.theme-a .classroom-course-banner{background:linear-gradient(135deg,#0f9b8e 0%,#18b0a1 100%)}
.classroom-course-card.theme-b .classroom-course-banner{background:linear-gradient(135deg,#ff8a63 0%,#ff9d6c 100%)}
.classroom-course-card.theme-c .classroom-course-banner{background:linear-gradient(135deg,#1b73d1 0%,#4d8cff 100%)}
.classroom-course-card.theme-d .classroom-course-banner{background:linear-gradient(135deg,#22416f 0%,#315993 100%)}
.classroom-course-banner small{
  font-size:11px;
  font-weight:700;
  opacity:.92;
}
.classroom-course-banner h3{
  margin:0;
  font-size:28px;
  line-height:1;
}
.classroom-course-banner p{
  margin:0;
  font-size:14px;
  line-height:1.45;
  color:rgba(255,255,255,.94);
}
.classroom-course-body{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:16px 18px 14px;
}
.classroom-course-pills{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.classroom-course-teachers{
  margin:0;
  font-size:12.5px;
  line-height:1.6;
  color:var(--ink);
}
.classroom-course-footer{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  padding:0 18px 18px;
}
.classroom-banner-card{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);
  gap:18px;
  padding:24px 26px;
  border-radius:28px;
  background:linear-gradient(135deg,#17345d 0%,#28548e 46%,#2f67ab 100%);
  box-shadow:0 26px 44px rgba(23,52,93,.18);
  color:#fff;
}
.classroom-banner-copy h1{
  margin-bottom:8px;
  color:#fff;
}
.classroom-banner-copy p{
  margin:0;
  color:rgba(255,255,255,.86);
  font-size:14px;
}
.classroom-banner-side{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:space-between;
  gap:14px;
}
.classroom-chip-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.classroom-chip{
  padding:14px;
  border-radius:18px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14);
}
.classroom-chip strong{
  display:block;
  font-size:26px;
  line-height:1;
  font-weight:900;
}
.classroom-chip span{
  font-size:12px;
  font-weight:700;
  color:rgba(255,255,255,.84);
}
.classroom-tabbar{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin:18px 0;
  padding:8px;
  border-radius:18px;
  background:#fff;
  border:1px solid rgba(23,52,93,.10);
  box-shadow:0 12px 24px rgba(23,52,93,.05);
}
.classroom-tab{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:90px;
  padding:10px 16px;
  border-radius:12px;
  color:rgba(13,30,55,.72);
  font-size:13px;
  font-weight:800;
}
.classroom-tab:hover{
  color:var(--navy);
  background:#f4f7fb;
}
.classroom-tab.active{
  color:#fff;
  background:linear-gradient(135deg,#17345d 0%,#28548e 100%);
  box-shadow:0 12px 22px rgba(23,52,93,.18);
}
.classroom-layout{
  display:grid;
  grid-template-columns:minmax(260px,320px) minmax(0,1fr);
  gap:18px;
  align-items:start;
}
.classroom-side-stack,
.classroom-feed-stack,
.classwork-section-stack{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.classroom-side-card,
.classroom-toolbar-card,
.classwork-section-card{
  border-color:rgba(23,52,93,.12);
}
.classroom-info-list{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.classroom-info-list div{
  padding:12px 14px;
  border-radius:16px;
  background:#fffdfa;
  border:1px solid rgba(23,52,93,.08);
}
.classroom-info-list b{
  display:block;
  margin-bottom:4px;
  font-size:13px;
}
.classroom-info-list small{
  display:block;
  font-size:11.5px;
  line-height:1.55;
  color:var(--muted);
}
.classroom-feed-card{
  border-color:rgba(23,52,93,.12);
}
.classroom-feed-card.tone-announcement{background:linear-gradient(180deg,#fffdfa 0%,#fff7e8 100%)}
.classroom-feed-card.tone-assignment{background:linear-gradient(180deg,#ffffff 0%,#f4f9ff 100%)}
.classroom-feed-card.tone-quiz{background:linear-gradient(180deg,#ffffff 0%,#f1fbf7 100%)}
.classroom-feed-card.tone-lesson{background:linear-gradient(180deg,#ffffff 0%,#f7f5ff 100%)}
.classroom-feed-header,
.classroom-feed-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.classroom-feed-body{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin:12px 0 0;
}
.classroom-feed-body h3{
  margin:0;
  font-size:18px;
}
.classroom-feed-body p{
  margin:0;
  font-size:13px;
  line-height:1.7;
  color:rgba(13,30,55,.84);
}
.classroom-post-summary{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;white-space:pre-line;max-height:5.1em}
.classroom-feed-card.is-post-expanded .classroom-post-summary{display:block;max-height:none;overflow:visible}
.classroom-post-more{align-self:flex-start;display:inline-flex;align-items:center;gap:3px;padding:5px 0;border:0;background:transparent;color:#6b21a8;font:inherit;font-weight:800;cursor:pointer}.classroom-post-more[hidden]{display:none}.classroom-post-more:hover{text-decoration:underline}.classroom-post-more:focus-visible{outline:3px solid rgba(126,34,206,.25);outline-offset:3px;border-radius:4px}.classroom-post-more .material-symbols-outlined{font-size:19px}
.feed-label{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  background:#17345d;
  color:#fff;
  font-size:11px;
  font-weight:800;
}
.classwork-item-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.classwork-item-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  padding:13px 14px;
  border-radius:16px;
  border:1px solid rgba(23,52,93,.08);
  background:#fffdfa;
}
.classwork-item-main{
  display:flex;
  align-items:flex-start;
  gap:12px;
  min-width:0;
  flex:1;
}
.classwork-item-main p{
  margin:4px 0 0;
  font-size:12px;
  line-height:1.55;
  color:var(--muted);
}
.classwork-icon{
  width:34px;
  height:34px;
  border-radius:12px;
  display:grid;
  place-items:center;
  font-size:12px;
  font-weight:900;
  color:#fff;
  flex:none;
}
.classwork-icon.resource{background:#d6614c}
.classwork-icon.assignment{background:#2c6fd4}
.classwork-icon.quiz{background:#2d9e72}
.attendance-bulk-bar{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:14px;
}
.attendance-student{
  display:flex;
  align-items:flex-start;
  gap:12px;
}
.attendance-avatar{
  width:54px;
  height:54px;
  border-radius:18px;
  background:linear-gradient(135deg,#ffd469,#f4a83a);
  box-shadow:0 10px 24px rgba(11,41,84,.14);
  display:grid;
  place-items:center;
  overflow:hidden;
  flex:none;
}
.attendance-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.attendance-avatar span{
  color:var(--navy);
  font-size:22px;
  font-weight:900;
}
.attendance-student-copy{
  min-width:0;
}
.attendance-bulk-bar select{
  flex:1 1 220px;
}

/* Compact spreadsheet-style attendance matrix */
.attendance-matrix-card{
  padding:0;
  overflow:hidden;
}
.attendance-matrix-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:18px 20px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(135deg,#fffdfa,#fff8e8);
}
.attendance-matrix-toolbar h3{
  margin:2px 0 8px;
}
.attendance-matrix-legend,
.matrix-save-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
}
.attendance-matrix-legend span{
  display:inline-flex;
  align-items:center;
  gap:5px;
  color:var(--muted);
  font-size:11.5px;
  font-weight:700;
}
.legend-box{
  width:17px;
  height:17px;
  display:inline-block;
  border:2px solid #87929f;
  border-radius:4px;
  background:#fff;
}
.legend-box.present{
  border-color:var(--green);
  background:var(--green);
  box-shadow:inset 0 0 0 3px #fff;
}
.legend-pill,
.matrix-status-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:30px;
  min-height:24px;
  padding:3px 6px;
  border-radius:7px;
  font-size:10px;
  font-style:normal;
  font-weight:900;
  line-height:1;
}
.legend-pill.present,
.matrix-status-select.status-present{background:#e7f4df;color:#315f20;border-color:#9cbc83}
.legend-pill.late,
.matrix-status-select.status-late,
.matrix-status-badge.late{background:#fff1c2;color:#8b6300;border-color:#e4c45b}
.legend-pill.leave,
.matrix-status-select.status-leave,
.matrix-status-badge.leave{background:#e8f0ff;color:#2357a5;border-color:#9db9e9}
.legend-pill.absent,
.matrix-status-select.status-absent{background:#fbe8e5;color:#a33a2e;border-color:#e5a39a}
.legend-pill.online,
.matrix-status-select.status-online,
.matrix-status-badge.online{background:#e7f7ee;color:#18734a;border-color:#9bd3b6}
.matrix-status-select.status-pending_leave,
.matrix-status-badge.pending_leave{background:#fff0df;color:#a45b13;border-color:#e7b77f}
.matrix-status-badge.missing{background:#f1eee8;color:#817a70}
.matrix-save-actions{
  justify-content:flex-end;
}
.matrix-save-state{
  color:var(--muted);
  font-size:11.5px;
  font-weight:700;
}
.matrix-save-state.dirty{
  color:#a45b13;
}
.attendance-matrix-wrap{
  max-height:calc(100vh - 310px);
  min-height:280px;
  border:0;
  border-radius:0;
  box-shadow:none;
}
.attendance-matrix{
  width:max-content;
  min-width:100%;
  table-layout:fixed;
}
.attendance-matrix th,
.attendance-matrix td{
  height:49px;
  padding:6px;
  text-align:center;
  vertical-align:middle;
  border-right:1px solid rgba(217,208,196,.72);
  white-space:nowrap;
}
.attendance-matrix thead th{
  position:sticky;
  top:0;
  z-index:4;
  height:68px;
  background:#f6f0e5;
}
.attendance-matrix .matrix-sticky{
  position:sticky;
  z-index:2;
  text-align:left;
  background:#fffdfa;
}
.attendance-matrix tbody tr:nth-child(even) .matrix-sticky{
  background:#fffaf0;
}
.attendance-matrix tbody tr:hover .matrix-sticky{
  background:#f8f1e2;
}
.attendance-matrix thead .matrix-sticky{
  z-index:6;
  background:#f6f0e5;
}
.attendance-matrix .matrix-order{
  left:0;
  width:48px;
  min-width:48px;
  max-width:48px;
  text-align:center;
}
.attendance-matrix .matrix-student-id{
  left:48px;
  width:158px;
  min-width:158px;
  max-width:158px;
}
.attendance-matrix .matrix-student-name{
  left:206px;
  width:250px;
  min-width:250px;
  max-width:250px;
  overflow:hidden;
  text-overflow:ellipsis;
  box-shadow:5px 0 9px rgba(13,30,55,.06);
}
.attendance-matrix .matrix-student-name a{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
}
.attendance-matrix .matrix-session-head,
.attendance-matrix .matrix-status-cell{
  width:74px;
  min-width:74px;
  max-width:74px;
}
.matrix-session-head > a{
  display:block;
  color:var(--navy);
  font-size:15px !important;
  font-weight:900 !important;
  line-height:1.1;
}
.matrix-session-head > small{
  display:block !important;
  margin:3px 0 1px;
  color:var(--muted);
  font-size:9.5px !important;
  font-weight:600;
}
.table-wrap .matrix-column-status{
  width:60px;
  height:22px;
  min-height:22px;
  margin:0;
  padding:1px 3px;
  border:1px solid #c7bda9;
  border-radius:6px;
  background:#fffdfa;
  color:var(--muted);
  font-size:9px;
  font-weight:700;
  cursor:pointer;
}
.table-wrap .matrix-status-select{
  width:62px;
  height:32px;
  min-height:32px;
  margin:0;
  padding:3px 15px 3px 5px;
  border-width:1px;
  border-style:solid;
  border-radius:7px;
  font-size:10px;
  font-weight:900;
  line-height:1;
  cursor:pointer;
  transition:box-shadow .12s ease,transform .12s ease;
}
.table-wrap .matrix-status-select:hover{
  transform:translateY(-1px);
  box-shadow:0 4px 10px rgba(13,30,55,.10);
}
.table-wrap .matrix-status-select:focus-visible,
.table-wrap .matrix-column-status:focus-visible{
  outline:3px solid rgba(39,74,128,.25);
  outline-offset:2px;
}
.attendance-matrix .matrix-total{
  position:sticky;
  right:0;
  z-index:3;
  width:76px;
  min-width:76px;
  max-width:76px;
  background:#f7efd0;
  box-shadow:-5px 0 9px rgba(13,30,55,.07);
}
.attendance-matrix thead .matrix-total{
  z-index:6;
  background:#eadba4;
}
.attendance-matrix .matrix-total strong{
  display:inline;
  color:var(--navy);
  font-size:16px;
}
.attendance-matrix .matrix-total small{
  margin-left:2px;
  color:var(--muted);
}
.matrix-help{
  margin:0;
  padding:11px 20px 14px;
  border-top:1px solid var(--line);
  background:#fffdfa;
  font-size:11.5px;
}
.empty-state-card{
  padding:42px 24px;
  text-align:center;
}
.empty-state-card > .material-symbols-outlined{
  display:block;
  margin-bottom:8px;
  color:var(--accent-strong);
  font-size:48px;
}
.empty-state-card h3,
.empty-state-card p{
  margin:6px 0 14px;
}

@media(max-width:900px){
  .attendance-matrix-toolbar{
    align-items:flex-start;
    flex-direction:column;
  }
  .matrix-save-actions{
    width:100%;
    justify-content:flex-start;
  }
  .attendance-matrix-wrap{
    max-height:65vh;
  }
  .attendance-matrix .matrix-student-id{
    width:130px;
    min-width:130px;
    max-width:130px;
  }
  .attendance-matrix .matrix-student-name{
    left:178px;
    width:190px;
    min-width:190px;
    max-width:190px;
  }
}

@media(max-width:900px){
  .classroom-banner-card,
  .classroom-layout{
    grid-template-columns:1fr;
  }
  .classroom-chip-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .classroom-course-footer,
  .workspace-row,
  .group-board-row,
  .classwork-item-row{
    flex-direction:column;
    align-items:stretch;
  }
  .classwork-item-main{
    width:100%;
  }
  .workspace-actions,
  .row-actions{
    justify-content:flex-start;
  }
}

@media(max-width:1200px){
  .grid-5{grid-template-columns:repeat(3,minmax(0,1fr))}
  .grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .login-grid{grid-template-columns:minmax(0,1.2fr) minmax(320px,400px)}
  .features-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .feature-item:nth-child(3),
  .feature-item:nth-child(4){border-top:1px solid #edf2f7}
  .feature-item:nth-child(3){border-left:0}
}

@media(max-width:1024px){
  .page-shell{padding:18px}
  .auth-main{padding:24px 18px}
  .layout{min-height:calc(100vh - 36px)}
  .sidebar{width:280px}
  .main{padding:18px}
  .topbar{padding:20px}
  .login-grid{grid-template-columns:1fr}
  .login-banner{min-height:420px}
}

@media(max-width:900px){
  .page-shell{padding:0}
  .auth-main{
    align-items:flex-start;
    padding:16px;
  }
  .layout{
    min-height:100vh;
    border-radius:0;
    border:0;
    box-shadow:none;
    overflow:visible !important;
  }
  .sidebar{
    position:fixed;
    left:-280px;
    top:0;
    bottom:0;
    width:280px;
    height:100vh;
    background:linear-gradient(180deg, #0a1730 0%, #102342 56%, #14294d 100%);
    color:#fff;
    z-index:150;
    transition:left 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow:10px 0 30px rgba(0,0,0,0.25);
    display:block !important;
    overflow-y:auto;
  }
  .sidebar.active{
    left:0;
  }
  .sidebar::before,
  .sidebar::after{display:none}
  .sidebar .brand,
  .sidebar-logos,
  .user-profile-box,
  .nav-group{
    display:flex;
  }
  .sidebar .brand{
    border-bottom:1px solid rgba(210,172,52,.35);
    margin-bottom:16px;
    padding-bottom:14px;
  }
  .sidebar-logos{
    justify-content:flex-start;
    gap:8px;
    margin-bottom:18px;
  }
  .user-profile-box{
    margin-bottom:20px;
    background:rgba(255,255,255,.04);
    border:1px solid rgba(210,172,52,.18);
  }
  .nav-group{
    display:block;
    margin-top:4px;
  }
  .nav-desktop{
    display:flex !important;
    flex-direction:column;
    gap:6px;
  }
  .sidebar-overlay{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,0.45);
    backdrop-filter:blur(2px);
    z-index:140;
    display:none;
  }
  .sidebar-overlay.active{
    display:block;
  }
  .nav-mobile{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    height:auto;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom));
    background:rgba(255,252,247,.98);
    color:var(--ink);
    border-top:1px solid rgba(210,172,52,.24);
    z-index:40;
    box-shadow:0 -14px 32px rgba(15,23,42,.08);
    display:flex;
    flex-direction:row;
    gap:6px;
    overflow-x:auto;
  }
  .nav-mobile .nav-link,
  .nav-mobile .nav-demo{
    position:relative;
    min-width:78px;
    padding:8px 10px;
    flex-direction:column;
    justify-content:center;
    gap:6px;
    font-size:11px;
    color:var(--muted);
    text-align:center;
    white-space:nowrap;
  }
  .nav-mobile .nav-icon{
    width:32px;
    height:32px;
    border-radius:12px;
    background:#f8f1df;
    color:var(--navy);
  }
  .nav-mobile .nav-link:hover,
  .nav-mobile .nav-link.active,
  .nav-mobile .nav-demo:hover,
  .nav-mobile .nav-demo.active{
    color:var(--navy);
    background:#f3ecde;
    border-color:transparent;
  }
  .nav-mobile .nav-link.active .nav-icon,
  .nav-mobile .nav-demo.active .nav-icon{
    background:var(--navy);
    color:var(--accent);
  }
  .nav-mobile .nav-badge{
    position:absolute;
    top:4px;
    right:14px;
    min-width:20px;
    height:20px;
    font-size:11px;
    padding:0 5px;
  }
  .nav-mobile .nav-label{flex:none}

  .main{
    padding:16px 16px 92px;
    gap:16px;
  }
  .desktop-only{display:none !important}
  .mobile-only{display:flex !important}
  .mobile-header{
    display:flex;
    width:100vw;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:12px 16px;
    background:rgba(255, 252, 247, 0.96) !important;
    backdrop-filter:blur(12px);
    border:0;
    border-bottom:1px solid rgba(210,172,52,.12);
    border-radius:0 0 20px 20px;
    box-shadow:0 4px 20px rgba(0,0,0,0.04);
    position:sticky;
    left:16px;
    top:0;
    z-index:100;
    margin:-16px -16px 14px !important;
  }
  .mobile-header-brand{
    display:flex;
    align-items:center;
    gap:12px;
    font-weight:800;
  }
  .mobile-header-brand img{
    width:34px;
    height:34px;
    border-radius:50%;
    background:#fff;
  }
  .mobile-brand-copy{
    display:flex;
    flex-direction:column;
    line-height:1.04;
  }
  .mobile-brand-copy span:last-child{
    font-size:13px;
    color:var(--muted);
    font-weight:600;
  }
  .mobile-action-bar{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
  }
  .mobile-action-bar .term-select{
    flex:1 1 180px;
    min-width:0;
  }
  .mobile-action-bar .btn-create{
    flex:1 1 150px;
  }
  .content{
    gap:16px;
    padding:10px 10px 96px !important;
  }
  .card{
    padding:14px 12px !important;
    border-radius:14px !important;
  }
  .table-wrap{
    overflow-x:auto !important;
    display:block;
    width:100%;
    -webkit-overflow-scrolling:touch;
  }
  .table-wrap table{
    min-width:680px !important;
  }
  .excel-table-wrap{
    overflow-x:auto !important;
    display:block;
    width:100%;
    -webkit-overflow-scrolling:touch;
  }
  .excel-table-wrap table{
    min-width:1200px !important;
  }
  .hero{
    padding:24px;
    flex-direction:column;
    align-items:flex-start;
  }
  .hero-inner h1{font-size:25px}
  .logistics-strip{width:100%;flex-wrap:wrap}

  .grid-2,
  .grid-3,
  .grid-5{grid-template-columns:1fr}
  .grid-4{
    grid-template-columns:repeat(2,1fr) !important;
    gap:10px !important;
  }
  .card.stat{
    padding:12px 10px !important;
    gap:10px !important;
  }
  .card.stat b{
    font-size:20px !important;
  }
  .card.stat span.muted{
    font-size:11px !important;
  }
  .card.stat .ico{
    width:42px !important;
    height:42px !important;
    border-radius:12px !important;
    font-size:18px !important;
  }
  .admin-nav-grid,
  .admin-status-grid,
  .admin-quick-links{
    grid-template-columns:1fr;
  }
  .admin-activity-item{
    grid-template-columns:auto 1fr;
  }
  .admin-activity-time{
    grid-column:2;
    white-space:normal;
  }
  .flow-guide-header,
  .table-panel-title,
  .modal-header,
  .modal-footer{
    flex-direction:column;
    align-items:stretch;
  }
  .modal-form-grid{grid-template-columns:1fr}
  .actions{flex-direction:column}
  .inline-form{align-items:stretch}
  .pagination-bar{
    flex-direction:column;
    align-items:stretch;
  }

  .login-banner{
    min-height:290px;
    padding:26px;
    border-radius:24px;
  }
  .login-banner-content{max-width:100%}
  .login-banner-content h1{font-size:30px}
  .login-banner-content p{font-size:14px}
  .login-course-meta span{font-size:13px}
  .login-form-box{padding:24px}
  .login-logos{
    justify-content:space-between;
    gap:10px;
  }
  .login-logos img{height:48px}
  .features-strip{grid-template-columns:1fr;padding:8px}
  .feature-item + .feature-item{
    border-left:0;
    border-top:1px solid #edf2f7;
  }

  .landing-nav{padding:15px 20px}
  .landing-links{display:none}
  .landing-hero,
  .landing-about{grid-template-columns:1fr;padding:40px 20px}
  .landing-hero-content h1{font-size:40px}
  .landing-categories{padding:40px 20px}
  .cat-header{
    flex-direction:column;
    align-items:flex-start;
    gap:20px;
  }
}

@media(max-width:640px){
  .topbar-left h2{font-size:20px}
  .card{padding:18px}
  .auth-main{padding:12px}
  .login-banner-content h1{font-size:26px}
  .login-subtitle{font-size:13px}
  .stat b{font-size:26px}
  .table-actions .btn{
    width:100%;
    justify-content:center;
  }
  .admin-nav-card{
    min-height:0;
    padding:14px;
  }
  .admin-nav-value{
    font-size:26px;
  }
  .admin-metric-pills,
  .admin-role-pills{
    flex-direction:column;
  }
  .admin-metric-pill,
  .admin-role-pill{
    width:100%;
    justify-content:flex-start;
  }
  .modal-layer{padding:12px}
  .modal-panel,
  .modal-panel-wide{
    width:calc(100vw - 24px);
  }
}

.context-lock{display:flex;gap:10px;align-items:center;justify-content:space-between;border:1px solid #d8e2f0;background:#f7fbff;border-radius:10px;padding:12px 14px;margin-bottom:16px;color:#0b3f97}.context-lock span{color:#42526e}.danger-zone{border-color:#fecdd3;background:#fffafa}.danger-zone h3{color:#b91c1c}.workspace-actions .btn.danger,.btn.danger{background:#d91f2a;color:#fff;border-color:#d91f2a}.classwork-item-row .workspace-actions{display:flex;gap:8px;flex-wrap:wrap}.group-board-row.workspace-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:10px;background:#fff}.group-board-row .workspace-actions{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:700px){.group-board-row.workspace-row{display:block}.group-board-row .workspace-actions{margin-top:10px}.context-lock{display:block}.context-lock b{display:block;margin-bottom:4px}}

/* Modal UI Additions */
.modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(8, 23, 46, 0.62);
  z-index: 1000;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(3px);
}
.modal-overlay.active {
  display: flex;
}
.modal-content {
  background: var(--surface);
  border-radius: 16px;
  padding: 24px;
  width: 90%;
  max-width: 500px;
  box-shadow: var(--shadow-lg);
  position: relative;
  max-height: 90vh;
  overflow-y: auto;
  border:1px solid rgba(210,172,52,.68);
  border-top:5px solid var(--accent);
}
.modal-content.modal-lg {
  max-width: 920px;
}
.modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
  border-bottom: 1px solid var(--line);
  padding-bottom: 12px;
}
.modal-header h2 {
  margin: 0;
  font-size: 20px;
  color: var(--navy);
}
.modal-close {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--muted);
  display: flex;
  padding: 4px;
}
.modal-close:hover {
  color: var(--red);
}
.modal-footer {
  margin-top: 24px;
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}
.remote-edit-body > .hero{
  margin:0 0 14px;
  padding:18px;
}
.remote-edit-body > .card{
  margin:0;
  box-shadow:none;
  border-color:var(--line);
}
.delete-record-label{
  margin:12px 0;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#f7f2ea;
  color:var(--navy);
  font-weight:800;
}
.delete-warning-box{
  display:flex;
  align-items:flex-start;
  gap:9px;
  padding:11px 13px;
  border:1px solid #efb2aa;
  border-radius:10px;
  background:#fff1ef;
  color:#9c3024;
  font-size:12px;
}

/* Button Colors */
.btn-warning {
  background: var(--accent);
  color: var(--navy);
  border-color: var(--accent-strong);
}
.btn-warning:hover {
  background: var(--accent-strong);
  border-color: var(--accent-strong);
  color: var(--navy);
}
.btn-danger {
  background: var(--red);
  color: white;
  border-color: var(--red);
}
.btn-danger:hover {
  background: #bd4336;
  border-color: #bd4336;
  color: white;
}
.btn-success {
  background: var(--green);
  color: white;
  border-color: var(--green);
}
.btn-success:hover {
  background: #667e31;
  border-color: #667e31;
  color: white;
}

.classroom-view-tools {
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin:-4px 0 14px;
}

.course-collapse-header {
  align-items:center;
  gap:12px;
}

.course-collapse-toggle {
  margin-left:auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  min-width:78px;
  min-height:34px;
  padding:6px 10px;
  border:1px solid #d8e2f0;
  border-radius:999px;
  background:#fff;
  color:#17345d;
  font-size:12px;
  font-weight:800;
  cursor:pointer;
  box-shadow:0 6px 14px rgba(13,30,55,.06);
}

.course-collapse-toggle:hover {
  background:#eaf2ff;
  color:#0b57d0;
}

.course-collapse-toggle .material-symbols-outlined {
  font-size:18px;
}

.course-collapse-body[hidden] {
  display:none !important;
}

.is-course-collapsed {
  padding-bottom:14px;
}

.classwork-file-row {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px;
}

.file-pill {
  display:inline-flex;
  align-items:center;
  gap:6px;
  max-width:100%;
  padding:7px 10px;
  border:1px solid #d8e2f0;
  border-radius:999px;
  background:#f7fbff;
  color:#17345d;
  font-size:12px;
  font-weight:800;
}

.file-pill:hover {
  background:#eaf2ff;
  color:#0b57d0;
}

.file-pill .material-symbols-outlined {
  font-size:16px;
  flex:none;
}

.file-pill small {
  color:var(--muted);
  font-weight:800;
}

@media(max-width: 700px) {
  .classroom-view-tools {
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  .classroom-view-tools .btn,
  .course-collapse-toggle {
    width:100%;
  }

  .course-collapse-header {
    display:grid !important;
    grid-template-columns:1fr;
  }

  .course-collapse-toggle {
    margin-left:0;
  }
}

/* Classroom-style course workspace refinements. Existing LMS actions remain intact. */
.classroom-banner-card,
.classroom-tabbar,
.classroom-layout,
.classwork-section-stack,
.student-grade-layout,
.private-score-card,
.student-private-score-card,
.student-grade-summary-card {
  letter-spacing:0;
}

.classroom-banner-card {
  position:relative;
  overflow:hidden;
  border-radius:18px;
  border:1px solid #d8e2f0;
  background:
    linear-gradient(115deg, rgba(13,30,55,.96) 0%, rgba(23,52,93,.92) 55%, rgba(210,172,52,.86) 100%);
  box-shadow:0 18px 48px rgba(13,30,55,.14);
}

.classroom-banner-card::after {
  content:"";
  position:absolute;
  right:28px;
  bottom:-26px;
  width:220px;
  height:140px;
  border:1px solid rgba(255,255,255,.35);
  border-radius:22px;
  transform:rotate(-8deg);
  background:rgba(255,255,255,.08);
}

.classroom-banner-copy,
.classroom-banner-side {
  position:relative;
  z-index:1;
}

.classroom-banner-copy h1 {
  max-width:920px;
  font-size:clamp(28px, 4vw, 44px);
  line-height:1.18;
}

.course-teacher-summary {
  color:rgba(255,255,255,.88) !important;
}

.classroom-tabbar {
  position:sticky;
  top:0;
  z-index:20;
  gap:6px;
  padding:8px;
  margin:18px 0;
  border:1px solid #d8e2f0;
  border-radius:16px;
  background:rgba(255,255,255,.94);
  box-shadow:0 10px 28px rgba(13,30,55,.08);
  backdrop-filter:blur(12px);
}

.classroom-tab {
  position:relative;
  min-height:42px;
  border-radius:12px;
}

.classroom-tab.active {
  background:#eaf2ff;
  color:#0b57d0;
  box-shadow:inset 0 -3px 0 #0b57d0;
}

.classroom-tab-dot {
  width:8px;
  height:8px;
  margin-left:6px;
  border-radius:50%;
  background:#0b57d0;
  box-shadow:0 0 0 3px rgba(11,87,208,.12);
}

.classroom-layout {
  grid-template-columns:minmax(220px, 300px) minmax(0, 1fr);
  align-items:start;
}

.classroom-feed-stack {
  gap:14px;
}

.classroom-announce-card {
  display:grid;
  grid-template-columns:52px minmax(0, 1fr) auto;
  align-items:center;
  gap:14px;
  border:1px solid #d8e2f0;
  border-radius:16px;
  background:#fff;
  box-shadow:0 8px 24px rgba(13,30,55,.06);
}

.classroom-announce-card.student-score-alert {
  color:var(--ink);
}

.announce-avatar {
  width:52px;
  height:52px;
  border-radius:50%;
  display:grid;
  place-items:center;
  color:#0b57d0;
  background:#dff3ff;
}

.announce-copy h3,
.private-score-item h3 {
  margin:0 0 4px;
}

.announce-copy p,
.private-score-item p {
  margin:0;
  color:var(--muted);
}

.classroom-feed-card {
  border:1px solid #d8e2f0;
  border-radius:16px;
  box-shadow:0 8px 24px rgba(13,30,55,.06);
}

.classroom-feed-card.tone-score {
  background:linear-gradient(180deg,#fffefa 0%,#fff6d8 100%);
}

.private-score-card {
  border:1px solid #d8e2f0;
  border-radius:16px;
  background:#fff;
}

.grade-command-center{display:flex;justify-content:space-between;gap:28px;align-items:flex-end;padding:26px 28px;margin-bottom:16px;border-radius:18px;background:linear-gradient(115deg,#21113f 0%,#542084 62%,#7132a8 100%);color:#fff;box-shadow:0 18px 42px rgba(56,20,92,.18)}
.grade-command-copy{max-width:720px}.grade-command-copy .section-kicker{color:#e9d5ff}.grade-command-copy h2{margin:6px 0 8px;font-size:clamp(22px,2vw,32px);color:#fff}.grade-command-copy p{margin:0;color:#eee5f8;line-height:1.65}
.grade-command-steps{display:flex;gap:8px;flex-wrap:wrap}.grade-command-steps span{display:flex;align-items:center;gap:7px;padding:9px 12px;border:1px solid rgba(255,255,255,.25);border-radius:999px;font-size:13px;white-space:nowrap}.grade-command-steps b{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#fff;color:#542084}.grade-command-steps .done{background:rgba(255,255,255,.13)}
.assessment-link-card{margin-bottom:16px;border-top:4px solid #7e22ce}.assessment-link-form{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:14px;align-items:end}.assessment-link-form>label span{display:block;font-weight:700;margin-bottom:6px}.assessment-link-form input,.assessment-link-form select{width:100%}.assessment-quiz-picker{grid-column:1/-1}.assessment-quiz-picker>b{display:block;margin-bottom:9px}.assessment-quiz-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.assessment-quiz-option{display:flex;align-items:center;gap:11px;padding:12px 14px;border:1px solid #ddd6e8;border-radius:12px;background:#fbf9fd;cursor:pointer}.assessment-quiz-option:has(input:checked){border-color:#7e22ce;background:#f6edff;box-shadow:inset 3px 0 #7e22ce}.assessment-quiz-option input{width:18px;height:18px;accent-color:#7e22ce}.assessment-quiz-option span{min-width:0;display:flex;flex-direction:column}.assessment-quiz-option strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assessment-quiz-option small{color:#667085}.assessment-quiz-option em{margin-left:auto;font-size:11px;color:#9a3412;background:#ffedd5;padding:4px 7px;border-radius:999px}.assessment-set-strip{display:flex;gap:8px;overflow-x:auto;margin-top:18px;padding-top:15px;border-top:1px solid #eee8f3}.assessment-set-chip{min-width:190px;padding:10px 13px;border:1px solid #ddd6e8;border-radius:12px;color:#30243d;text-decoration:none}.assessment-set-chip small{display:block;margin-top:3px;color:#667085}.assessment-set-chip.active{border-color:#7e22ce;background:#f6edff}.grade-filter-card{position:sticky;top:8px;z-index:5;box-shadow:0 8px 24px rgba(30,20,45,.08)}
@media(max-width:900px){.grade-command-center{align-items:flex-start;flex-direction:column}.assessment-link-form{grid-template-columns:1fr 1fr}.assessment-quiz-grid{grid-template-columns:1fr}.assessment-link-form .btn{width:100%}}
@media(max-width:620px){.grade-command-center{padding:20px}.assessment-link-form{grid-template-columns:1fr}.grade-command-steps{display:grid;width:100%}.grade-command-steps span{white-space:normal}}
.grade-source-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:16px;margin-bottom:16px}.grade-source-card{display:flex;gap:18px;align-items:flex-start;border-width:2px}.grade-source-card.automatic{border-color:#86efac;background:#f0fdf4}.grade-source-card.excel{border-color:#bfdbfe;background:#eff6ff}.grade-source-icon{display:grid;place-items:center;flex:0 0 54px;height:54px;border-radius:16px;background:#fff;font-size:30px;color:#166534}.grade-source-card.excel .grade-source-icon{color:#1d4ed8}.grade-source-card h3{font-size:21px;margin:4px 0 6px}.grade-source-card p{font-size:15px;line-height:1.55;margin:0 0 14px}.grade-source-content{flex:1;min-width:0}.score-import-form{display:grid;grid-template-columns:1.5fr .7fr;gap:12px}.score-import-form label>span{display:block;margin-bottom:6px;font-size:14px;font-weight:800}.score-import-form input{width:100%;min-height:46px;font-size:16px}.score-file-field{grid-column:1/-1}.score-import-form .inline-check{grid-column:1/-1;font-size:15px;font-weight:700}.score-import-form .inline-check input{width:20px;min-height:20px}.score-import-actions{grid-column:1/-1;display:flex;gap:10px;flex-wrap:wrap}.score-import-actions .btn{min-height:46px;font-size:15px;padding:11px 18px}.assessment-advanced{padding:0;margin-bottom:16px}.assessment-advanced>summary{display:flex;align-items:center;gap:12px;padding:18px 20px;cursor:pointer;list-style:none;font-size:16px}.assessment-advanced>summary::-webkit-details-marker{display:none}.assessment-advanced>summary>span:nth-child(2){flex:1}.assessment-advanced>summary b,.assessment-advanced>summary small{display:block}.assessment-advanced>summary small{margin-top:3px;color:#667085}.assessment-advanced[open]>summary{border-bottom:1px solid #e7e1eb}.assessment-advanced[open]>summary>.material-symbols-outlined:last-child{transform:rotate(180deg)}.assessment-advanced-body{padding:20px}
body.course-context .grade-filter-card label,body.course-context .private-score-card label{font-size:14px;font-weight:800}body.course-context .grade-filter-card input,body.course-context .grade-filter-card select,body.course-context .private-score-card input{min-height:46px;font-size:16px}body.course-context .grade-filter-card .btn,body.course-context .private-score-card .btn{min-height:46px;padding:11px 18px;font-size:15px}body.course-context .private-score-table th{font-size:13px}body.course-context .private-score-table td{font-size:14px}
@media(max-width:980px){.grade-source-grid{grid-template-columns:1fr}}
@media(max-width:620px){.grade-source-card{flex-direction:column}.score-import-form{grid-template-columns:1fr}.score-import-form>*{grid-column:1!important}.score-import-actions .btn{width:100%}}

/* Teacher course quick readability pass: navy/gold actions and calm data rows. */
body.teacher-page.course-context table tbody tr:nth-child(odd){background:#fff}
body.teacher-page.course-context table tbody tr:nth-child(even){background:#f6f8fb}
body.teacher-page.course-context table tbody tr:hover{background:#eef3f8}
body.teacher-page.course-context table td{min-height:58px;padding-top:14px;padding-bottom:14px;vertical-align:middle}
body.teacher-page.course-context table th{padding-top:13px;padding-bottom:13px;font-size:13px}
body.teacher-page.course-context .btn{min-height:42px;padding:9px 15px;border-color:var(--accent-strong);background:var(--accent-soft);color:var(--navy);font-size:14px;font-weight:800;box-shadow:none}
body.teacher-page.course-context .btn:hover{border-color:var(--accent);background:var(--accent);color:var(--navy)}
body.teacher-page.course-context .btn.primary{border-color:var(--navy-soft);background:var(--navy-soft);color:#fff;box-shadow:0 6px 14px rgba(13,30,55,.16)}
body.teacher-page.course-context .btn.primary:hover{border-color:var(--navy);background:var(--navy)}
body.teacher-page.course-context .btn.btn-warning{border-color:var(--accent-strong);background:var(--accent-soft);color:var(--navy)}
body.teacher-page.course-context .btn.danger,
body.teacher-page.course-context .btn.btn-danger{border-color:#b42318;background:#fff;color:#b42318}
body.teacher-page.course-context .btn.danger:hover,
body.teacher-page.course-context .btn.btn-danger:hover{background:#b42318;color:#fff}
.score-entry-table{min-width:1370px;border-collapse:separate;border-spacing:0}.score-entry-table th:nth-child(1){min-width:150px}.score-entry-table th:nth-child(2){min-width:230px}.score-entry-table th:nth-child(3){min-width:110px}.score-entry-table th:nth-child(4){min-width:240px}.score-entry-table th:nth-child(5){min-width:245px}.score-entry-table th:nth-child(6){min-width:210px}.score-entry-table th:nth-child(7){min-width:220px}.score-entry-table input{width:100%;min-height:46px;padding:10px 12px;font-size:15px}.score-entry-table input:focus{outline:3px solid rgba(13,30,55,.16);border-color:var(--navy-soft)}.score-row-summary{font-size:12px;line-height:1.65;color:#536174}.score-save-bar{position:sticky;bottom:10px;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:14px;padding:13px 15px;border:1px solid #d5b344;border-radius:14px;background:rgba(255,253,250,.96);box-shadow:0 12px 30px rgba(13,30,55,.16);backdrop-filter:blur(10px)}.score-save-bar>div{display:grid}.score-save-bar small{color:#6d665d}.private-score-form.has-unsaved-scores .score-save-bar{border-color:var(--accent-strong);background:#fff9df}.private-score-form.has-unsaved-scores [data-dirty-count]{color:#7a5200}

.gradebook-overview{display:grid;grid-template-columns:minmax(280px,1.2fr) minmax(420px,1fr);gap:18px;align-items:stretch;margin-bottom:16px}.gradebook-title{display:flex;align-items:center;gap:15px;padding:20px 22px;border-radius:18px;background:#17345d;color:#fff;box-shadow:0 10px 24px rgba(23,52,93,.16)}.gradebook-title>.material-symbols-outlined{font-size:38px;color:#ffd36a}.gradebook-title h2{margin:2px 0 3px;font-size:23px}.gradebook-title p{margin:0;color:#dbe7f4;font-size:13px}.gradebook-title .section-kicker{color:#ffd36a}.gradebook-stats{display:grid;grid-template-columns:repeat(4,1fr);overflow:hidden;border:1px solid #dce4ee;border-radius:18px;background:#fff}.gradebook-stats>div{display:flex;flex-direction:column;justify-content:center;padding:16px;border-left:1px solid #e7edf4}.gradebook-stats>div:first-child{border-left:0}.gradebook-stats strong{font-size:26px;line-height:1;color:#17345d;font-variant-numeric:tabular-nums}.gradebook-stats span{margin-top:7px;font-size:11px;color:#66758a}.gradebook-stats .warn strong{color:#a16207}.gradebook-stats .alert strong{color:#b42318}.gradebook-export{border-color:#1f7a4d!important;color:#12633d!important;background:#effaf4!important}.gradebook-export .material-symbols-outlined,.grade-filter-card .btn .material-symbols-outlined{font-size:19px}.private-score-table-wrap{max-height:68vh;overflow:auto}.score-entry-table thead th{position:sticky;top:0;z-index:3;background:#eaf1f8;color:#17345d;box-shadow:inset 0 -1px #c9d5e3}.score-entry-table tbody tr:nth-child(even) td{background:#f8fafc}.score-entry-table tbody tr:hover td{background:#eef6ff}.score-entry-table .score-sticky{position:sticky;z-index:2}.score-entry-table th.score-sticky{z-index:5}.score-sticky-code{left:0}.score-sticky-name{left:150px;box-shadow:5px 0 10px rgba(23,52,93,.06)}.score-entry-table tbody .score-sticky{background:#fff}.score-entry-table tbody tr:nth-child(even) .score-sticky{background:#f8fafc}.score-entry-table tbody tr:hover .score-sticky{background:#eef6ff}.score-row-has-issue td:first-child{box-shadow:inset 4px 0 #e09a24}.grade-group-chip{display:inline-flex;padding:5px 9px;border-radius:7px;background:#e7eff8;color:#17345d;font-weight:850;font-size:12px}.score-issue-list{display:flex;flex-wrap:wrap;gap:5px}.score-issue{display:inline-flex;padding:4px 7px;border-radius:6px;background:#fff1d9;color:#8a4b08;font-size:11px;font-weight:800}.score-ok{display:inline-flex;align-items:center;gap:3px;color:#167048;font-size:12px;font-weight:800}.score-ok .material-symbols-outlined{font-size:17px}.private-score-card{overflow:visible}
@media(max-width:980px){.gradebook-overview{grid-template-columns:1fr}.gradebook-stats{min-height:90px}}
@media(max-width:620px){.gradebook-stats{grid-template-columns:repeat(2,1fr)}.gradebook-stats>div:nth-child(3){border-left:0;border-top:1px solid #e7edf4}.gradebook-stats>div:nth-child(4){border-top:1px solid #e7edf4}.gradebook-title{align-items:flex-start}.score-sticky-name{left:130px}.score-entry-table th:nth-child(1){min-width:130px}}

/* Spreadsheet gradebook */
.gradebook-workbench{--ink:#18324a;--line:#d8e2eb;--mint:#e7f6ef;--green:#13734b;--sheet:#f6f9fb}.gradebook-command{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:14px;padding:24px 26px;border-radius:18px;background:linear-gradient(110deg,#153a58,#1c5971);color:#fff;box-shadow:0 12px 30px rgba(21,58,88,.18)}.gradebook-command h1{margin:3px 0;font-size:27px}.gradebook-command p{margin:0;color:#dcecf3}.gradebook-filterbar{display:flex;align-items:flex-end;gap:12px;padding:14px 16px;margin-bottom:14px;border:1px solid var(--line,#d8e2eb);border-radius:14px;background:#fff}.gradebook-filterbar label{display:grid;gap:5px;color:#526577;font-size:12px;font-weight:800}.gradebook-filterbar select,.gradebook-filterbar input{min-width:190px;margin:0}.grade-search{grid-template-columns:1fr auto!important;align-items:end}.grade-search input{grid-column:1}.grade-search button{grid-column:2;grid-row:2}.gradebook-summary{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:14px;border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}.gradebook-summary>div{display:grid;gap:3px;padding:15px 18px;border-left:1px solid var(--line)}.gradebook-summary>div:first-child{border-left:0}.gradebook-summary span,.gradebook-summary small{color:#718092;font-size:11px}.gradebook-summary strong{font-size:24px;color:var(--ink);font-variant-numeric:tabular-nums}.gradebook-summary .summary-warning{background:#fff7e6}.gradebook-summary .summary-warning strong{color:#a85b00}.gradebook-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line)}.gradebook-tabs button{padding:12px 18px;border:0;border-bottom:3px solid transparent;background:transparent;color:#5a6c7d;font:inherit;font-weight:800;cursor:pointer}.gradebook-tabs button.active{border-bottom-color:#16865b;color:#116b49}.grade-sheet-form,.grade-config-card{border:1px solid var(--line);border-top:0;background:#fff}.grade-sheet-toolbar,.config-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px 16px}.grade-sheet-toolbar div{display:grid}.grade-sheet-toolbar span{font-size:12px;color:#718092}.grade-sheet-scroll{max-height:66vh;overflow:auto;border-top:1px solid var(--line)}.grade-sheet{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;font-size:13px}.grade-sheet th{position:sticky;top:0;z-index:3;min-width:92px;padding:10px 9px;border-right:1px solid #cbd8e2;border-bottom:1px solid #bfcfdb;background:#e7eef4;color:var(--ink);text-align:center}.grade-sheet td{height:43px;padding:5px 8px;border-right:1px solid #dde6ed;border-bottom:1px solid #e1e8ee;background:#fff;white-space:nowrap}.grade-sheet tbody tr:nth-child(even) td{background:#f8fafc}.grade-sheet tbody tr:hover td{background:#edf7f2}.grade-sheet .freeze-col{position:sticky;z-index:2}.grade-sheet th.freeze-col{z-index:5}.rank-col{left:0;min-width:46px!important;width:46px;text-align:center}.code-col{left:46px;min-width:130px!important}.name-col{left:176px;min-width:220px!important;box-shadow:6px 0 10px rgba(28,53,74,.08)}.grade-sheet tbody .freeze-col{background:#fff}.grade-sheet tbody tr:nth-child(even) .freeze-col{background:#f8fafc}.score-head{min-width:132px!important}.score-head small{display:block;margin-top:4px;color:#758696;font-size:10px;font-weight:500}.score-head.published{background:#d9f0e5;color:#0e6744}.score-cell{padding:3px!important}.score-cell input{width:100%;min-width:100px;height:34px;margin:0;border:1px solid transparent;border-radius:4px;background:transparent;text-align:right;font:700 14px/1 Kanit,sans-serif;font-variant-numeric:tabular-nums}.score-cell input:hover,.score-cell input:focus{border-color:#4b9b79;background:#fff;outline:2px solid rgba(32,142,94,.13)}.score-cell input.edited{background:#fff8d8}.total-head,.total-cell{background:#e9f2fb!important}.total-cell{font-size:15px;font-weight:900;color:#164d76;text-align:right}.grade-letter{display:inline-grid;place-items:center;min-width:38px;height:30px;padding:0 7px;border-radius:8px;background:#e8eef4;color:#27445e;font-weight:900}.grade-A{background:#d7f2e5;color:#087046}.grade-F{background:#fde5e2;color:#a52b21}.rank-note{display:block;color:#738293;font-size:10px}.mobile-save{display:none}.grade-config-card{padding:8px 18px 20px}.config-heading h2{margin:0}.config-heading p{margin:3px 0;color:#6e7e8e}.item-config-grid{display:grid;gap:8px}.item-config-row{display:grid;grid-template-columns:38px minmax(220px,1fr) 150px 190px;align-items:end;gap:12px;padding:10px;border:1px solid var(--line);border-radius:10px}.item-order{display:grid;place-items:center;width:32px;height:32px;border-radius:7px;background:#edf3f7;font-weight:900}.item-config-row label{display:grid;gap:4px;color:#617182;font-size:11px;font-weight:800}.item-config-row input{margin:0}.publish-switch{display:flex!important;align-items:center;gap:9px;height:42px;font-size:13px!important}.publish-switch input{width:18px;height:18px;min-height:0}.new-grade-item{display:grid;grid-template-columns:180px 1fr 220px 140px;align-items:center;gap:10px;margin-top:16px;padding:14px;background:#eef7f3;border-radius:10px}.new-grade-item input,.new-grade-item select{margin:0}.grade-band-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.grade-band-grid label{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:8px;padding:10px;border:1px solid var(--line);border-radius:10px}.grade-band-grid input{min-width:65px;margin:0;text-align:center}.student-grade-hero{margin-bottom:14px;padding:25px 28px;border-radius:18px;background:linear-gradient(120deg,#164461,#187456);color:#fff}.student-grade-hero h1{margin:4px 0}.student-grade-hero p{margin:0;max-width:760px;color:#dff1e9}.student-grade-list{display:grid;gap:16px}.student-course-grade{overflow:hidden;border:1px solid #dbe4eb;border-radius:18px;background:#fff;box-shadow:0 7px 22px rgba(24,50,74,.07)}.student-course-grade>header{display:flex;justify-content:space-between;gap:20px;padding:20px 22px;background:#f1f6f8;border-bottom:1px solid #dbe4eb}.student-course-grade h2{margin:3px 0}.student-course-grade header p{margin:0;color:#6e7f8d}.course-code{font-weight:900;color:#12734d}.forecast-grade{display:grid;min-width:150px;text-align:right}.forecast-grade small,.forecast-grade span{color:#687a89}.forecast-grade strong{font-size:38px;line-height:1;color:#0c754c}.student-score-metrics{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid #e2e9ee}.student-score-metrics>div{display:grid;gap:5px;padding:16px 20px;border-left:1px solid #e2e9ee}.student-score-metrics>div:first-child{border-left:0}.student-score-metrics span{font-size:11px;color:#71818f}.student-score-metrics strong{font-size:23px;color:#183b55}.student-score-metrics strong small{font-size:12px;color:#748492}.published-score-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:16px 20px}.published-score-list>div{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:9px;background:#f4f7f9}.published-score-list small{display:block;color:#788793}.grade-detail{border-top:1px solid #e3e9ee;padding:12px 20px}.grade-detail summary{cursor:pointer;font-weight:800;color:#31546d}.grade-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding-top:12px}.grade-detail-grid>div{padding:10px;background:#f6f8fa;border-radius:8px}.grade-detail-grid p{margin:4px 0 0}.empty-cell{text-align:center;color:#788896;padding:24px!important}
@media(max-width:900px){.gradebook-summary,.student-score-metrics{grid-template-columns:repeat(2,1fr)}.gradebook-summary>div:nth-child(3),.student-score-metrics>div:nth-child(3){border-left:0;border-top:1px solid var(--line)}.item-config-row{grid-template-columns:35px 1fr 130px}.publish-switch{grid-column:2/4}.grade-band-grid{grid-template-columns:repeat(2,1fr)}.new-grade-item{grid-template-columns:1fr 1fr}.published-score-list{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.gradebook-command{align-items:flex-start;flex-direction:column}.gradebook-filterbar{align-items:stretch;flex-direction:column}.gradebook-filterbar select,.gradebook-filterbar input{width:100%;min-width:0}.gradebook-summary{grid-template-columns:1fr 1fr}.gradebook-tabs{overflow-x:auto}.gradebook-tabs button{white-space:nowrap}.grade-sheet-toolbar button{display:none}.mobile-save{display:block;position:sticky;bottom:8px;padding:10px}.mobile-save button{width:100%}.name-col{left:176px;min-width:170px!important}.item-config-row{grid-template-columns:30px 1fr}.item-config-row>label:nth-of-type(2){grid-column:2}.publish-switch{grid-column:2}.grade-band-grid,.new-grade-item,.published-score-list,.grade-detail-grid{grid-template-columns:1fr}.student-course-grade>header{flex-direction:column}.forecast-grade{text-align:left}.student-score-metrics{grid-template-columns:1fr 1fr}}

/* Bright online-sheet direction, based on the instructor's reference */
.gradebook-command{position:relative;justify-content:flex-start;align-items:center;overflow:hidden;min-height:126px;padding:20px 30px;background:#237a48;border:3px solid #176238;border-radius:10px;box-shadow:0 8px 0 #d8e7d3;color:#fff}.gradebook-command:after{content:"";position:absolute;right:-48px;top:-92px;width:180px;height:220px;background:#ffe61b;transform:rotate(-22deg);box-shadow:-8px 0 15px rgba(0,0,0,.16)}.gradebook-command-copy{position:relative;z-index:1;flex:1}.gradebook-command-copy h1{margin:0;font-size:clamp(30px,4vw,48px);line-height:1.05;font-weight:900;text-shadow:0 3px 0 rgba(0,0,0,.16)}.gradebook-command-copy .section-kicker{color:#fff4a6}.sheet-file-mark{position:relative;z-index:1;display:grid;place-items:center;width:78px;height:92px;border:5px solid #fff;border-radius:12px;color:#fff;background:rgba(255,255,255,.08)}.sheet-file-mark .material-symbols-outlined{font-size:52px}.gradebook-command .gradebook-export{position:relative;z-index:2;margin-right:22px;background:#fff!important;border:3px solid #174f31!important;color:#185d38!important;font-weight:900}.grade-sheet-form{border:2px solid #36533e}.grade-sheet-toolbar{background:#fffbd4;border-bottom:2px solid #354d3b}.grade-sheet-scroll{border-top:0}.grade-sheet-color{font-size:13px}.grade-sheet-color th,.grade-sheet-color td{border-right:1px solid #4f604f;border-bottom:1px solid #596959}.grade-sheet-color th{height:66px;color:#172519;text-shadow:none}.grade-sheet-color .identity-head,.grade-sheet-color .group-head{background:#fff318!important}.grade-sheet-color td.identity-cell,.grade-sheet-color td.group-cell{background:#fff0a1!important}.grade-sheet-color th.score-midterm,.grade-sheet-color td.score-midterm{background:#79aa63!important}.grade-sheet-color th.score-final,.grade-sheet-color td.score-final{background:#f1c8a8!important}.grade-sheet-color th.score-group,.grade-sheet-color td.score-group{background:#ffd971!important}.grade-sheet-color th.score-individual,.grade-sheet-color td.score-individual{background:#ffe697!important}.grade-sheet-color th.score-attendance,.grade-sheet-color td.score-attendance{background:#aed17c!important}.grade-sheet-color th.score-bonus,.grade-sheet-color td.score-bonus{background:#ffc867!important}.grade-sheet-color th.score-other,.grade-sheet-color td.score-other{background:#d8d2f2!important}.grade-sheet-color .total-head,.grade-sheet-color .total-cell{background:#78bd79!important}.grade-sheet-color .grade-head,.grade-sheet-color .grade-result{background:#78a9df!important;text-align:center}.grade-sheet-color .rank-head,.grade-sheet-color .rank-result{background:#ef38d7!important;text-align:center}.grade-sheet-color th.score-head.published{box-shadow:inset 0 5px #116a3d}.grade-sheet-color th.score-head small{color:#263727;font-weight:700}.grade-sheet-color tbody tr:hover td{filter:brightness(.96)}.grade-sheet-color .score-cell{padding:4px!important}.grade-sheet-color .score-cell input{height:36px;border:1px solid rgba(39,67,42,.35);background:rgba(255,255,255,.56);color:#142617;text-align:center;font-size:15px;font-weight:900}.grade-sheet-color .score-cell input:focus{background:#fff;outline:3px solid #176e42;border-color:#176e42}.grade-sheet-color .grade-letter{background:#fff;border:1px solid rgba(0,0,0,.2);color:#18324a}.grade-sheet-color .rank-note{color:#39113a}.grade-sheet-color .grade-group-chip{background:rgba(255,255,255,.64);border:1px solid #95863f;color:#3f3a19}.gradebook-tabs{background:#edf7e9;border:2px solid #36533e;border-bottom:0}.gradebook-tabs button.active{background:#237a48;border-bottom-color:#ffe619;color:#fff}.gradebook-summary{border:2px solid #36533e;border-radius:8px}.gradebook-summary>div:nth-child(1){background:#fff49a}.gradebook-summary>div:nth-child(2){background:#b9dd9b}.gradebook-summary>div:nth-child(3){background:#9bc2e8}.gradebook-summary>div:nth-child(4){background:#f4b3e9}.gradebook-summary span,.gradebook-summary small{color:#384438}.gradebook-filterbar{border:2px solid #36533e;border-radius:8px;background:#f4faef}
@media(max-width:620px){.gradebook-command{min-height:0;padding:18px}.gradebook-command:after{right:-100px}.sheet-file-mark{width:58px;height:68px}.sheet-file-mark .material-symbols-outlined{font-size:38px}.gradebook-command-copy h1{font-size:27px}.gradebook-command .gradebook-export{margin-right:0}.grade-sheet-color th{height:58px}}

/* Focused score-entry workflow */
.score-entry-page{--score-green:#20a94b;--score-ink:#10233f;--score-muted:#718096;--score-line:#dfe6ef;color:var(--score-ink)}.score-entry-title{display:flex;align-items:center;gap:14px;margin-bottom:18px}.score-title-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:10px;background:#f2f7f4;color:#10233f}.score-title-icon .material-symbols-outlined{font-size:31px}.score-entry-title h1{margin:0;font-size:28px}.score-entry-title p{display:flex;align-items:center;gap:10px;margin:4px 0 0;color:#5c6e84;font-size:13px}.score-entry-title p span{width:1px;height:15px;background:#cbd5e1}.score-title-actions{display:flex;gap:10px;margin-left:auto}.score-title-actions .btn{min-height:44px}.score-stat-row{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:16px}.score-stat-row>div{display:flex;align-items:center;gap:12px;min-height:96px;padding:14px;border:1px solid var(--score-line);border-radius:12px;background:#fff;box-shadow:0 2px 8px rgba(15,35,62,.03)}.score-stat-row i{display:grid;place-items:center;flex:0 0 44px;height:44px;border-radius:50%;font-style:normal}.stat-green{background:#def7e8;color:#159449}.stat-purple{background:#f1e5ff;color:#8147d5}.stat-blue{background:#e1efff;color:#2879dc}.stat-coral{background:#ffe5e1;color:#dc604f}.stat-gold{background:#fff2cf;color:#c48a06}.stat-gray{background:#eef2f6;color:#758399}.score-stat-row span{display:grid;min-width:0;color:#66768a;font-size:11px}.score-stat-row strong{overflow:hidden;margin-top:3px;color:#10233f;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.score-stat-row small{margin-top:2px;color:#8390a0;font-size:10px}.score-steps{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:16px;border:1px solid var(--score-line);border-radius:12px;background:#fff;overflow:hidden}.score-steps>div{position:relative;display:flex;align-items:center;justify-content:center;gap:12px;padding:14px}.score-steps>div:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:3px;background:#dfe5eb}.score-steps>div.done:after,.score-steps>div.active:after{background:var(--score-green)}.score-steps b{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#aeb5bd;color:#fff}.score-steps .done b,.score-steps .active b{background:var(--score-green)}.score-steps span{display:grid}.score-steps small{color:#7b8999}.score-mode-tabs{display:flex;gap:4px;margin-bottom:0;border-bottom:1px solid var(--score-line)}.score-mode-tabs button{padding:11px 16px;border:0;border-bottom:3px solid transparent;background:transparent;color:#66768a;font:700 13px Kanit,sans-serif;cursor:pointer}.score-mode-tabs button.active{border-color:var(--score-green);color:#13823b}.score-entry-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:14px;padding-top:14px}.score-entry-main,.score-tips,.summary-sheet-card{border:1px solid var(--score-line);border-radius:12px;background:#fff;box-shadow:0 3px 12px rgba(17,35,61,.04)}.score-entry-filters{display:flex;align-items:end;gap:12px;padding:14px;border-bottom:1px solid var(--score-line)}.score-entry-filters label{display:grid;gap:5px;min-width:190px;color:#4e6075;font-size:11px;font-weight:700}.score-entry-filters .filter-grow{flex:1}.score-entry-filters select,.score-entry-filters input{width:100%;margin:0;background:#fff}.score-completion{display:flex;align-items:center;gap:16px;padding:9px 14px;border-bottom:1px solid var(--score-line);background:#fbfcfe;color:#6f7f90;font-size:11px}.score-completion>div:first-child{display:flex;align-items:center;gap:6px;white-space:nowrap}.score-completion .material-symbols-outlined{font-size:16px;color:#e2a323}.completion-track{flex:1;height:5px;border-radius:5px;background:#e8edf2;overflow:hidden}.completion-track span{display:block;height:100%;border-radius:5px;background:var(--score-green)}.score-entry-table-wrap{max-height:59vh;overflow:auto}.score-entry-focus{width:100%;border-collapse:separate;border-spacing:0;font-size:12px}.score-entry-focus th{position:sticky;top:0;z-index:2;padding:11px 10px;border-right:1px solid var(--score-line);border-bottom:1px solid #cfd9e5;background:#f6f8fb;color:#30435b;text-align:left;white-space:nowrap}.score-entry-focus th small{display:block;color:#748398;font-weight:400}.score-entry-focus td{padding:6px 10px;border-right:1px solid #e5ebf1;border-bottom:1px solid #e5ebf1;white-space:nowrap}.score-entry-focus tbody tr:hover td{background:#f8fbf9}.focus-score-input,.focus-note-input{height:36px;margin:0;border:1px solid #d6dee8;border-radius:8px;background:#fff}.focus-score-input{width:140px;text-align:center;font-weight:800}.focus-note-input{width:100%;min-width:230px}.focus-score-input:focus,.focus-note-input:focus{border-color:var(--score-green);outline:3px solid rgba(32,169,75,.12)}.entry-status{min-width:130px;color:#7b8795;text-align:center}.status-ready{display:inline-flex;align-items:center;gap:3px;color:#14863e;font-weight:700}.status-ready .material-symbols-outlined{font-size:17px}.score-bottom-save{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-top:1px solid var(--score-line);color:#7a8797;font-size:11px}.score-tips{align-self:start;padding:18px;position:sticky;top:12px}.score-tips h3{display:flex;align-items:center;gap:7px;margin:0 0 18px}.score-tips h3 .material-symbols-outlined{color:#e4a817}.score-tips section{margin-bottom:18px}.score-tips section b{font-size:12px}.score-tips ul{display:grid;gap:7px;margin:9px 0 0;padding-left:18px;color:#53657a;font-size:11px}.score-tips .btn{width:100%}.summary-sheet-card{margin-top:14px;padding:14px}.summary-sheet-card .grade-sheet th{background:#f2f5f8}.summary-sheet-card .grade-sheet th small{display:block}.score-entry-page .grade-config-card{margin-top:14px;border:1px solid var(--score-line);border-radius:12px}.score-entry-page .btn.primary{background:var(--score-green);border-color:var(--score-green)}
@media(max-width:1180px){.score-stat-row{grid-template-columns:repeat(3,1fr)}.score-entry-layout{grid-template-columns:1fr}.score-tips{position:static}.score-tips section{display:inline-block;width:48%;vertical-align:top}}
@media(max-width:720px){.score-entry-title{align-items:flex-start;flex-wrap:wrap}.score-title-actions{width:100%;margin-left:0}.score-title-actions .btn{flex:1}.score-stat-row{grid-template-columns:repeat(2,1fr)}.score-steps{grid-template-columns:1fr}.score-steps>div{justify-content:flex-start}.score-entry-filters{align-items:stretch;flex-direction:column}.score-entry-filters label{min-width:0}.score-mode-tabs{overflow-x:auto}.score-mode-tabs button{white-space:nowrap}.score-entry-layout{display:block}.score-tips{margin-top:12px}.score-tips section{display:block;width:auto}.score-bottom-save{align-items:stretch;flex-direction:column}.score-bottom-save .btn{width:100%}}

/* Grade-cut dashboard */
.grade-cut-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 4px}.grade-cut-header>div{display:flex;align-items:center;gap:12px}.grade-cut-header>div:first-child>.material-symbols-outlined{display:grid;place-items:center;width:45px;height:45px;border-radius:9px;background:#f1f6f3;font-size:28px}.grade-cut-header h2{margin:0;font-size:23px}.grade-cut-header p{margin:3px 0;color:#65768a;font-size:12px}.grade-cut-header form{margin:0}.grade-cut-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:14px}.grade-cut-stats>div{display:flex;align-items:center;gap:12px;min-height:82px;padding:13px;border:1px solid var(--score-line);border-radius:11px;background:#fff}.grade-cut-stats i{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;font-style:normal}.grade-cut-stats span{display:grid;color:#6c7b8d;font-size:11px}.grade-cut-stats strong{margin-top:4px;color:#10233f;font-size:17px}.grade-cut-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(350px,.95fr);gap:14px}.grade-roster-card,.grade-policy-card,.grade-distribution-card,.grade-check-card{border:1px solid var(--score-line);border-radius:12px;background:#fff;box-shadow:0 3px 12px rgba(17,35,61,.04)}.grade-roster-tools,.side-card-title{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--score-line)}.grade-roster-tools h3,.side-card-title h3,.grade-distribution-card h3,.grade-check-card h3{margin:0;font-size:15px}.grade-roster-tools small,.side-card-title p{margin:2px 0 0;color:#7a8899;font-size:10px}.grade-cut-table-wrap{max-height:67vh;overflow:auto}.grade-cut-table{width:100%;border-collapse:separate;border-spacing:0;font-size:11px}.grade-cut-table th{position:sticky;top:0;z-index:1;padding:9px;border-right:1px solid #e1e7ee;border-bottom:1px solid #d4dde7;background:#f6f8fb;text-align:left;white-space:nowrap}.grade-cut-table th small{display:block;font-weight:400}.grade-cut-table td{padding:8px 9px;border-right:1px solid #e7ecf2;border-bottom:1px solid #e7ecf2;white-space:nowrap}.grade-cut-table tbody tr:hover td{background:#f8fbf9}.cut-grade,.cut-pass,.cut-fail{display:inline-grid;place-items:center;min-width:38px;padding:4px 8px;border-radius:7px;font-weight:800}.cut-grade{background:#e9f1ff;color:#2562ac}.cut-grade-A{background:#dff5e7;color:#168545}.cut-grade-C,.cut-grade-D{background:#fff1ce;color:#a66c00}.cut-grade-F{background:#ffe5e3;color:#c23d35}.cut-pass{background:#e4f7e9;color:#16863f}.cut-fail{background:#ffe6e4;color:#c33a32}.grade-cut-side{display:grid;align-content:start;grid-template-columns:1fr 1fr;gap:12px}.grade-policy-card{grid-column:1/-1;overflow:hidden}.grade-policy-card table{width:100%;border-collapse:collapse;font-size:11px}.grade-policy-card th,.grade-policy-card td{padding:6px 10px;border-bottom:1px solid #e4e9ef;text-align:left}.grade-policy-card th{background:#f5f7fa;color:#607186}.grade-policy-card input{width:82px;height:29px;margin:0;padding:4px;text-align:center}.grade-distribution-card,.grade-check-card{padding:14px}.grade-distribution-card h3{display:flex;justify-content:space-between}.grade-distribution-card h3 small{color:#7a8999;font-weight:400}.distribution-total{display:flex;align-items:baseline;justify-content:center;gap:4px;margin:12px 0}.distribution-total strong{font-size:28px}.distribution-list{display:grid;gap:7px}.distribution-row{display:grid;grid-template-columns:24px 1fr 42px 38px;align-items:center;gap:6px;font-size:10px}.distribution-bar{height:7px;border-radius:5px;background:#e9edf2;overflow:hidden}.distribution-bar i{display:block;height:100%;border-radius:5px;background:#4993ed}.grade-dist-A .distribution-bar i{background:#25a852}.grade-dist-C .distribution-bar i,.grade-dist-D .distribution-bar i{background:#f2b73e}.grade-dist-F .distribution-bar i{background:#ee6259}.distribution-row small{text-align:right;color:#7a8999}.grade-check-card{display:grid;align-content:start;gap:8px}.grade-check-card>div{display:flex;align-items:center;gap:8px;padding:9px;border-bottom:1px solid #e8edf2;font-size:10px}.grade-check-card>div>span:nth-child(2){display:flex;justify-content:space-between;flex:1}.check-warn .material-symbols-outlined{color:#df9d18}.check-ok .material-symbols-outlined,.ready-publish .material-symbols-outlined{color:#1a9b48}.check-info .material-symbols-outlined{color:#3886df}.ready-publish{border:1px solid #bfe7ca!important;border-radius:8px;background:#effaf2}.ready-publish span:nth-child(2){display:grid!important}.ready-publish small{color:#64806d}
@media(max-width:1150px){.grade-cut-stats{grid-template-columns:repeat(3,1fr)}.grade-cut-layout{grid-template-columns:1fr}.grade-cut-side{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.grade-cut-header{align-items:flex-start;flex-direction:column}.grade-cut-header>div:last-child{width:100%;flex-wrap:wrap}.grade-cut-header>div:last-child .btn{flex:1}.grade-cut-stats{grid-template-columns:1fr 1fr}.grade-cut-side{grid-template-columns:1fr}.grade-policy-card{grid-column:auto}.grade-cut-table-wrap{max-height:55vh}}

/* Student score analytics inside the course grade tab */
.score-save-actions{display:flex;align-items:center;gap:8px}.score-save-actions .material-symbols-outlined{font-size:17px}@media(max-width:650px){.score-save-actions{width:100%;flex-direction:column}.score-save-actions .btn{width:100%}}
.assessment-manage-panel{margin-top:16px;padding:14px;border:1px solid #cfe0d6;border-radius:12px;background:#f8fcf9}.assessment-manage-panel>.table-panel-title{padding:0 0 12px}.assessment-edit-row{display:grid;grid-template-columns:minmax(220px,1.5fr) 160px 130px auto;align-items:end;gap:10px}.assessment-edit-row label{display:grid;gap:4px;color:#5f7081;font-size:10px;font-weight:800}.assessment-edit-row input,.assessment-edit-row select{margin:0}.assessment-edit-row .inline-check{display:flex;align-items:center;height:42px}.assessment-manage-actions{display:flex;gap:8px;grid-column:1/-1}.assessment-delete-form{display:flex;justify-content:flex-end;margin-top:-38px}.assessment-delete-form .material-symbols-outlined{font-size:17px}@media(max-width:850px){.assessment-edit-row{grid-template-columns:1fr 1fr}.assessment-edit-row .inline-check{grid-column:1/-1}.assessment-delete-form{justify-content:flex-start;margin-top:10px}}@media(max-width:520px){.assessment-edit-row{grid-template-columns:1fr}.assessment-edit-row .inline-check,.assessment-manage-actions{grid-column:auto}}
.student-ranking-card{grid-column:1/-1;overflow:hidden;padding:0!important}.student-ranking-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid #e1e8ef;background:#f8fbf9}.student-ranking-head h3{margin:2px 0;font-size:20px;color:#17324d}.student-ranking-head p{margin:0;color:#6e7e8e;font-size:11px}.student-forecast-grade{display:grid;min-width:125px;text-align:right}.student-forecast-grade small,.student-forecast-grade span{color:#687a89}.student-forecast-grade strong{color:#128547;font-size:36px;line-height:1}.student-ranking-grid{display:grid;grid-template-columns:1.2fr repeat(3,1fr);border-bottom:1px solid #e3e9ef}.student-ranking-grid>div{display:grid;align-content:center;gap:5px;min-height:88px;padding:14px 18px;border-right:1px solid #e3e9ef;border-bottom:1px solid #e3e9ef}.student-ranking-grid>div:nth-child(4n){border-right:0}.student-ranking-grid span{color:#6c7d8d;font-size:11px}.student-ranking-grid strong{color:#183b55;font-size:22px;font-variant-numeric:tabular-nums}.student-ranking-grid strong small{margin-left:4px;color:#728291;font-size:11px}.student-ranking-grid .ranking-primary{background:#eef8f2}.student-ranking-grid .ranking-primary strong{color:#087a3f;font-size:28px}.student-ranking-privacy{display:flex;align-items:center;gap:6px;margin:0;padding:10px 18px;color:#647688;font-size:10px}.student-ranking-privacy .material-symbols-outlined{font-size:16px;color:#18854a}@media(max-width:900px){.student-ranking-grid{grid-template-columns:repeat(2,1fr)}.student-ranking-grid>div:nth-child(2n){border-right:0}.student-ranking-grid>div:nth-child(4n-1){border-right:1px solid #e3e9ef}}@media(max-width:560px){.student-ranking-head{align-items:flex-start;flex-direction:column}.student-forecast-grade{text-align:left}.student-ranking-grid{grid-template-columns:1fr}.student-ranking-grid>div{border-right:0!important}}
.assessment-group-report{margin-bottom:16px;border-top:5px solid #2b6da8}.group-report-total{display:grid;justify-items:end;min-width:110px}.group-report-total strong{color:#17345d;font-size:32px;line-height:1;font-variant-numeric:tabular-nums}.group-report-total span{margin-top:5px;color:#68778a;font-size:11px;font-weight:800}.group-report-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:16px 0}.group-report-kpis>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid #dce5ef;border-radius:12px;background:#f7faff}.group-report-kpis span{color:#607086;font-size:12px;font-weight:750}.group-report-kpis strong{color:#17345d;font-size:22px;font-variant-numeric:tabular-nums}.group-report-kpis .needs-data{border-color:#efd8ae;background:#fff9ed}.group-report-kpis .needs-data strong{color:#9a5c08}.group-comparison-bars{display:grid;gap:7px;margin:6px 0 18px}.group-comparison-row{display:grid;grid-template-columns:minmax(90px,150px) minmax(180px,1fr) 72px 80px;align-items:center;gap:11px;padding:8px 10px;border-radius:10px;color:#20364f;text-decoration:none}.group-comparison-row:hover{background:#f3f7fb}.group-score-track{height:13px;overflow:hidden;border-radius:3px;background:#e6edf4}.group-score-track i{display:block;height:100%;background:#2b6da8}.group-comparison-row>strong{text-align:right;font-variant-numeric:tabular-nums}.group-comparison-row>small{color:#6a7889;text-align:right}.group-report-table{min-width:940px}.group-report-table th,.group-report-table td{text-align:right}.group-report-table th:first-child,.group-report-table td:first-child{text-align:left}.group-report-table .btn{min-height:34px;padding:6px 9px;font-size:11px}.completion-meter{display:inline-block;width:54px;height:6px;margin-right:7px;overflow:hidden;border-radius:3px;background:#e4eaf0;vertical-align:middle}.completion-meter i{display:block;height:100%;background:#2a8a5d}.group-sort-button{display:inline-flex;align-items:center;justify-content:flex-end;gap:3px;width:100%;padding:0;border:0;background:none;color:inherit;font:inherit;font-weight:inherit;cursor:pointer}.group-report-table th:first-child .group-sort-button{justify-content:flex-start}.group-sort-button .material-symbols-outlined{font-size:15px}.group-sort-button:focus-visible{outline:2px solid #3279ba;outline-offset:3px;border-radius:3px}
@media(max-width:760px){.group-report-kpis{grid-template-columns:repeat(2,1fr)}.group-comparison-row{grid-template-columns:90px 1fr 58px}.group-comparison-row>small{display:none}.group-report-total{justify-items:start}.assessment-group-report .table-panel-title{align-items:flex-start}}
@media(max-width:700px){.score-save-bar{align-items:stretch;flex-direction:column;bottom:6px}.score-save-bar .btn{width:100%}}

.private-score-settings {
  display:grid;
  grid-template-columns:minmax(180px, 1fr) 130px;
  gap:10px 12px;
  align-items:end;
  min-width:min(520px, 100%);
}

.private-score-settings label {
  display:grid;
  gap:6px;
  margin:0;
  color:var(--ink);
  font-weight:700;
}

.private-score-settings .inline-check {
  grid-template-columns:auto 1fr;
  align-items:center;
  min-height:42px;
  padding:8px 10px;
  border:1px solid #d8e2f0;
  border-radius:12px;
  background:#f7fbff;
}

.private-score-table-wrap table {
  min-width:880px;
}

.private-score-table input {
  width:100%;
  min-height:38px;
}
.linked-score-input{display:grid;gap:6px}.score-source{display:flex;align-items:center;gap:4px;font-size:11px;line-height:1.35}.score-source .material-symbols-outlined{font-size:15px}.score-source.quiz{color:#047857;font-weight:700}.score-source.manual{color:#6b21a8;font-weight:700}.score-source.pending{color:#9a6700}

.form-footer-actions {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
  justify-content:space-between;
  margin-top:14px;
}

.student-grade-layout {
  display:grid;
  grid-template-columns:minmax(0, 1.2fr) minmax(280px, .8fr);
  gap:18px;
}

.private-score-list {
  display:grid;
  gap:12px;
}

.private-score-item {
  display:flex;
  gap:16px;
  align-items:center;
  justify-content:space-between;
  padding:16px;
  border:1px solid #d8e2f0;
  border-radius:16px;
  background:#f8fbff;
}

.private-score-item strong {
  min-width:112px;
  text-align:right;
  font-size:34px;
  line-height:1;
  color:#0b57d0;
}

.private-score-item strong small {
  display:block;
  margin-top:4px;
  font-size:13px;
  color:var(--muted);
}

@media(max-width: 900px) {
  .classroom-announce-card,
  .student-grade-layout {
    grid-template-columns:1fr;
  }

  .announce-avatar {
    display:none;
  }

  .private-score-settings {
    grid-template-columns:1fr;
  }

  .private-score-item {
    align-items:flex-start;
  }
}

.course-join-share-card {
  display:grid;
  grid-template-columns:minmax(0, 1fr) 220px;
  gap:24px;
  align-items:center;
  margin:18px 0;
  background:linear-gradient(135deg,#f5f9ff 0%,#eef7ff 100%);
}

.course-join-share-copy h3,
.join-course-confirm h2,
.join-course-confirm h3 {
  margin:6px 0;
}

.course-join-code {
  display:inline-block;
  margin:10px 0;
  padding:10px 18px;
  border:2px dashed #0b57d0;
  border-radius:14px;
  background:#fff;
  color:#0b57d0;
  font-size:36px;
  font-weight:900;
  letter-spacing:.24em;
  line-height:1.1;
}

.course-join-qr {
  display:grid;
  justify-items:center;
  gap:8px;
}

.course-join-qr img {
  width:200px;
  height:200px;
  padding:8px;
  border:1px solid #d8e2f0;
  border-radius:16px;
  background:#fff;
}

.join-course-layout {
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(300px, .8fr);
  gap:18px;
}

.join-code-form,
.join-confirm-form {
  display:grid;
  gap:12px;
}

.join-code-input {
  width:min(100%, 340px);
  min-height:62px;
  text-align:center;
  text-transform:uppercase;
  font-size:30px;
  font-weight:900;
  letter-spacing:.22em;
}

.join-code-input.compact {
  width:150px;
  min-height:44px;
  font-size:21px;
}

.dashboard-join-form {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  justify-content:flex-end;
}

.join-scan-help {
  display:grid;
  align-content:center;
  justify-items:center;
  text-align:center;
}

.join-scan-help > .material-symbols-outlined {
  font-size:72px;
  color:#0b57d0;
}

@media(max-width: 900px) {
  .course-join-share-card,
  .join-course-layout {
    grid-template-columns:1fr;
  }

  .course-join-qr {
    justify-self:start;
  }

  .dashboard-join-form {
    justify-content:flex-start;
  }
}

/* Classroom-inspired course workspace */
.course-context-nav {
  display:none;
}

.course-table-code {
  display:inline-flex;
  align-items:center;
  gap:9px;
}

.course-table-code > span {
  width:30px;
  height:30px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--row-course-soft);
  color:var(--row-course-color);
  font-weight:800;
}

body.course-context {
  background:#fff;
  color:#202124;
}

body.course-context .page-shell {
  padding:0;
}

body.course-context .layout {
  min-height:100vh;
  max-width:none;
  margin:0;
  border:0;
  border-radius:0;
  background:#fff;
  box-shadow:none;
}

body.course-context .sidebar {
  position:sticky;
  top:0;
  width:282px;
  height:100vh;
  padding:14px 12px;
  border-right:1px solid rgba(60,64,67,.12);
  background:#fff;
  color:#3c4043;
  backdrop-filter:blur(18px);
}

body.course-context .sidebar::before,
body.course-context .sidebar::after,
body.course-context .sidebar-logos,
body.course-context .user-profile-box {
  display:none;
}

body.course-context .brand {
  min-height:52px;
  margin:0 4px 14px;
  padding:8px 8px 14px;
  border-bottom:1px solid rgba(60,64,67,.12);
}

body.course-context .brand-mark {
  width:38px;
  height:38px;
  border-radius:8px;
  background:#fff;
  box-shadow:0 1px 3px rgba(60,64,67,.18);
}

body.course-context .brand-mark img {
  width:28px;
  height:28px;
}

body.course-context .brand-kicker {
  display:none;
}

body.course-context .brand-title {
  color:#5f6368;
  font-size:21px;
  font-weight:500;
}

body.course-context .nav-desktop > .nav-group,
body.course-context .nav-desktop > .nav-section {
  display:none;
}

body.course-context .course-context-nav {
  display:flex;
  flex-direction:column;
  gap:3px;
  min-height:0;
  height:calc(100vh - 80px);
}

.course-simple-link,
.course-context-heading {
  display:flex;
  align-items:center;
  gap:14px;
  min-height:44px;
  padding:8px 14px;
  border-radius:0 24px 24px 0;
  color:#3c4043;
  font-size:13px;
  font-weight:500;
}

.course-simple-link:hover {
  background:rgba(60,64,67,.08);
  color:#202124;
}

.course-context-heading {
  margin-top:12px;
  padding-top:13px;
  border-top:1px solid rgba(60,64,67,.12);
  font-weight:600;
}

.course-context-list {
  display:flex;
  flex-direction:column;
  gap:2px;
  min-height:0;
  flex:1 1 auto;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:2px 4px 18px 0;
  scrollbar-width:thin;
  scrollbar-color:rgba(95,99,104,.35) transparent;
}

.course-context-list::-webkit-scrollbar { width:6px; }
.course-context-list::-webkit-scrollbar-thumb {
  border-radius:999px;
  background:rgba(95,99,104,.35);
}

.course-context-link {
  display:flex;
  align-items:center;
  gap:10px;
  min-height:60px;
  padding:8px 10px;
  border-radius:0 28px 28px 0;
  color:#3c4043;
  transition:background-color .16s ease;
}

.course-context-link:hover {
  background:rgba(60,64,67,.07);
  color:#202124;
}

.course-context-link.active {
  background:var(--nav-course-soft);
  color:var(--nav-course-color);
}

.course-context-avatar {
  width:32px;
  height:32px;
  border-radius:50%;
  display:grid;
  place-items:center;
  flex:none;
  background:var(--nav-course-color);
  color:#fff;
  font-size:13px;
  font-weight:700;
}

.course-context-copy {
  display:block;
  min-width:0;
  line-height:1.25;
}

.course-context-copy b,
.course-context-copy small {
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.course-context-copy b {
  font-size:12px;
  letter-spacing:.01em;
}

.course-context-copy small {
  margin-top:2px;
  color:#5f6368;
  font-size:11px;
  line-height:1.35;
}

.course-context-empty {
  padding:10px 14px;
  color:#80868b;
  font-size:12px;
}

body.course-context .main {
  padding:0;
  gap:0;
  background:#fff;
}

body.course-context .topbar {
  position:sticky;
  top:0;
  z-index:35;
  min-height:64px;
  padding:9px 24px;
  border-bottom:1px solid rgba(60,64,67,.14);
  background:#fff;
  box-shadow:none;
  backdrop-filter:blur(18px);
}

body.course-context .topbar-left h2 {
  margin:0;
  color:#3c4043;
  font-size:17px;
  font-weight:500;
}

body.course-context .topbar-left p,
body.course-context .topbar-right .term-select,
body.course-context .topbar-right .btn-create {
  display:none;
}

body.course-context .topbar .icon-button {
  border:0;
  background:transparent;
  box-shadow:none;
}

.course-breadcrumb {
  display:flex;
  align-items:center;
  gap:7px;
  min-width:0;
}

.course-breadcrumb a {
  color:#5f6368;
  font-size:20px;
}

.course-breadcrumb .material-symbols-outlined {
  color:#9aa0a6;
  font-size:18px;
}

.course-breadcrumb strong {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-weight:500;
}

body.course-context .content {
  display:block;
  min-width:0;
  padding:22px 28px 56px;
  background:#fff;
}

body.course-context .card {
  border-color:rgba(60,64,67,.13);
  background:#fff;
  box-shadow:0 1px 3px rgba(60,64,67,.08);
  backdrop-filter:none;
}

body.course-context .card:hover {
  transform:none;
  box-shadow:0 2px 6px rgba(60,64,67,.11);
}

body.course-context .classroom-banner-card {
  max-width:1120px;
  margin:0 auto;
  padding:22px 26px;
  border:1px solid var(--course-border);
  border-left:7px solid var(--course-color);
  border-radius:16px;
  background:#fff;
  box-shadow:0 3px 12px rgba(60,64,67,.08);
  color:#202124;
}

body.course-context .classroom-banner-card::before,
body.course-context .classroom-banner-card::after {
  display:none;
}

body.course-context .classroom-banner-copy h1 {
  margin:3px 0 7px;
  color:#202124;
  font-size:clamp(24px,3vw,34px);
}

body.course-context .classroom-banner-copy p,
body.course-context .course-teacher-summary {
  color:#5f6368 !important;
}

body.course-context .classroom-banner-card .hero-eyebrow {
  color:var(--course-color);
}

body.course-context .classroom-chip {
  padding:11px 12px;
  border:1px solid var(--course-border);
  border-radius:12px;
  background:#fff;
  box-shadow:none;
}

body.course-context .classroom-chip strong {
  color:var(--course-color);
  font-size:22px;
}

body.course-context .classroom-chip span {
  color:#5f6368;
  font-weight:500;
}

body.course-context .btn.primary,
body.course-context .feed-label {
  border-color:var(--course-color);
  background:var(--course-color);
  color:#fff;
}

body.course-context .classroom-tabbar {
  position:sticky;
  top:64px;
  z-index:30;
  justify-content:center;
  gap:22px;
  margin:18px -28px 22px;
  padding:0 28px;
  border-width:1px 0;
  border-color:rgba(60,64,67,.13);
  border-radius:0;
  background:#fff;
  box-shadow:none;
  backdrop-filter:blur(18px);
}

body.course-context .course-workspace-tabs .course-tab-secondary {
  display:inline-flex;
  margin-left:0;
}

body.course-context .classroom-tab {
  min-height:50px;
  padding:12px 8px 10px;
  border-radius:0;
  color:#5f6368;
  font-weight:600;
}

body.course-context .classroom-tab:hover {
  background:var(--course-soft);
  color:var(--course-color);
}

body.course-context .classroom-tab.active {
  background:transparent;
  color:var(--course-color);
  box-shadow:inset 0 -3px 0 var(--course-color);
}

body.course-context .classroom-view-tools,
body.course-context .classroom-course-page,
body.course-context .course-join-share-card {
  width:100%;
  max-width:1120px;
  margin-left:auto;
  margin-right:auto;
}

body.course-context .classroom-view-tools {
  margin-bottom:16px;
}

body.course-context .course-join-share-card {
  border-color:var(--course-border);
  background:#fff;
}

body.course-context .course-join-code {
  border-color:var(--course-color);
  color:var(--course-color);
}

body.course-context .classroom-layout {
  grid-template-columns:minmax(300px,340px) minmax(0,1fr);
  gap:22px;
}

body.course-context .group-board-row.workspace-row {
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:14px;
  padding:14px;
}

body.course-context .group-board-row .workspace-main {
  min-width:0;
  width:100%;
}

body.course-context .group-board-row .workspace-main > b {
  display:block;
  margin-bottom:6px;
  font-size:14px;
  line-height:1.35;
}

body.course-context .group-board-row .workspace-main > small {
  display:block;
  margin-top:5px;
  color:#5f6368;
  font-size:11px;
  line-height:1.5;
  overflow-wrap:anywhere;
}

body.course-context .group-board-row .workspace-actions {
  display:flex;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:8px;
}

body.course-context .group-board-row .workspace-actions .btn {
  min-width:62px;
  padding:8px 12px;
  text-align:center;
}

body.course-context .classroom-side-card,
body.course-context .classroom-feed-card,
body.course-context .classroom-announce-card {
  border-color:rgba(60,64,67,.13);
  border-radius:12px;
  background:#fff;
  box-shadow:0 1px 3px rgba(60,64,67,.08);
}

body.course-context .classroom-feed-card.tone-announcement,
body.course-context .classroom-feed-card.tone-assignment,
body.course-context .classroom-feed-card.tone-quiz,
body.course-context .classroom-feed-card.tone-lesson {
  background:#fff;
}

body.course-context .announce-avatar {
  background:var(--course-soft);
  color:var(--course-color);
}

.classwork-classroom-layout {
  max-width:760px;
  margin:0 auto;
}

.classwork-topic-nav {
  position:sticky;
  top:132px;
  display:flex;
  flex-direction:column;
  gap:2px;
  max-height:calc(100vh - 150px);
  overflow:auto;
}

.classwork-topic-nav a {
  padding:10px 12px;
  border-radius:0 22px 22px 0;
  color:#5f6368;
  font-size:12px;
  font-weight:500;
}

.classwork-topic-nav a:hover,
.classwork-topic-nav a.active {
  background:var(--course-soft);
  color:var(--course-color);
}

.classwork-classroom-main {
  min-width:0;
}

body.course-context .classroom-toolbar-card {
  position:sticky;
  z-index:10;
  top:0;
  display:flex;
  align-items:center;
  min-height:70px;
  margin-bottom:18px;
  padding:10px 0 16px;
  border:0;
  border-bottom:1px solid rgba(60,64,67,.16);
  border-radius:0;
  background:rgba(255,255,255,.96);
  box-shadow:none;
  backdrop-filter:none;
}

body.course-context .classroom-toolbar-card .table-panel-title {
  width:100%;
  margin:0;
  align-items:center;
  justify-content:space-between;
}

.classwork-topic-picker { display:flex; align-items:center; gap:8px; margin-left:auto; color:#1967d2; }
.classwork-topic-picker select { width:170px; min-height:38px; padding:7px 28px 7px 8px; border:0; border-bottom:2px solid transparent; border-radius:0; color:#1967d2; font-weight:600; background:transparent; }
.classwork-topic-picker select:focus { border-bottom-color:#1967d2; outline:0; }

/* Classroom-style unified create menu */
.classroom-create-dropdown {
  position:relative;
  flex:0 0 auto;
}

.classroom-create-dropdown .dropdown-toggle-btn {
  min-width:100px;
  border-radius:22px;
  padding:9px 17px;
  box-shadow:0 2px 5px rgba(60,64,67,.24);
}

.classroom-create-menu {
  display:none;
  position:absolute;
  z-index:20;
  top:calc(100% + 8px);
  left:0;
  right:auto;
  width:246px;
  padding:8px 0;
  border:1px solid #dadce0;
  border-radius:10px;
  background:#fff;
  box-shadow:0 4px 14px rgba(60,64,67,.22);
}

.classroom-create-menu.is-open { display:block; }

.classroom-create-item {
  display:flex;
  align-items:center;
  gap:12px;
  padding:10px 14px;
  color:#202124;
  text-decoration:none;
}

.classroom-create-item:hover { background:#f1f3f4; }
.classroom-create-item b { display:block; font-size:14px; font-weight:600; }
.classroom-create-item small { display:block; margin-top:2px; color:#5f6368; font-size:11px; }
.cmi-icon { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; flex:0 0 34px; }
.classroom-create-divider { height:1px; margin:6px 0; background:#e8eaed; }

@media(max-width:700px) {
  .classroom-create-menu { position:fixed; top:auto; right:16px; width:min(280px,calc(100vw - 32px)); }
}

body.course-context .classwork-section-stack {
  gap:0;
}

body.course-context .classwork-section-card {
  padding:11px 0 0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  backdrop-filter:none;
}

body.course-context .classwork-section-card:hover {
  box-shadow:none;
}

body.course-context .classwork-section-card > .table-panel-title {
  min-height:58px;
  margin-bottom:0;
  padding:0 12px 0 16px;
  border-bottom:1px solid var(--course-border);
}

body.course-context .classwork-section-card .section-kicker,
body.course-context .classwork-section-card .table-panel-copy h3 {
  color:var(--course-color);
}

body.course-context .classwork-section-card .table-panel-copy h3 { margin:0; font-size:16px; font-weight:600; }
body.course-context .classwork-section-card .table-panel-copy p { margin:3px 0 0; color:#5f6368; font-size:12px; }
.classwork-topic-actions { position:relative; flex:0 0 auto; }
.classwork-topic-actions summary { display:grid; width:36px; height:36px; place-items:center; border-radius:50%; color:#5f6368; cursor:pointer; list-style:none; }
.classwork-topic-actions summary::-webkit-details-marker { display:none; }
.classwork-topic-actions summary:hover { background:#f1f3f4; }
.classwork-topic-actions-menu { position:absolute; z-index:12; top:40px; right:0; width:210px; padding:6px 0; border:1px solid #dadce0; border-radius:8px; background:#fff; box-shadow:0 3px 12px rgba(60,64,67,.22); }
.classwork-topic-actions-menu a, .classwork-topic-actions-menu button { display:block; width:100%; padding:9px 14px; border:0; color:#202124; font:inherit; font-size:12px; text-align:left; text-decoration:none; background:#fff; cursor:pointer; }
.classwork-topic-actions-menu a:hover, .classwork-topic-actions-menu button:hover { background:#f1f3f4; }
.classwork-topic-actions-menu button:last-child { color:#c5221f; }

body.course-context .classwork-item-list {
  gap:0;
}

body.course-context .classwork-item-row {
  min-height:66px;
  padding:13px 16px;
  border:0;
  border-bottom:1px solid rgba(60,64,67,.14);
  border-radius:0;
  background:#fff;
}

body.course-context .classwork-item-row:hover {
  background:var(--course-soft);
}

body.course-context .classwork-icon {
  width:40px;
  height:40px;
  border-radius:50%;
}

body.course-context .classwork-item-row .btn {
  min-height:32px;
  padding:6px 9px;
  border-radius:8px;
  font-size:11px;
}

body.course-context .filter-card,
body.course-context .private-score-card,
body.course-context .student-private-score-card,
body.course-context .student-grade-summary-card {
  border-radius:12px;
}

body.course-context .hero {
  border:1px solid rgba(60,64,67,.14);
  border-left:6px solid var(--course-color);
  background:#fff;
  color:#202124;
  box-shadow:0 1px 3px rgba(60,64,67,.08);
}

body.course-context .hero::before,
body.course-context .hero::after {
  display:none;
}

body.course-context .hero-inner h1,
body.course-context .hero-inner h2,
body.course-context .hero-inner h3 {
  color:#202124;
}

body.course-context .hero-inner p {
  color:#5f6368;
}

body.course-context .hero-eyebrow {
  color:var(--course-color);
}

body.course-context .table-wrap,
body.course-context table,
body.course-context tbody tr,
body.course-context tbody tr:nth-child(even),
body.course-context .filter-card,
body.course-context .resource-reader-card,
body.course-context .resource-document-reader,
body.course-context .resource-workbook-reader,
body.course-context .resource-slide-card,
body.course-context .resource-sheet-block {
  background:#fff;
}

body.course-context .table-wrap thead th {
  background:#fff;
  border-bottom-color:rgba(60,64,67,.2);
  color:#3c4043;
}

body.course-context tbody tr:hover {
  background:#f8fafd;
}

body.course-context input,
body.course-context select,
body.course-context textarea,
body.course-context .btn:not(.primary):not(.danger):not(.btn-danger) {
  background:#fff;
}

body.course-context .resource-reader-card {
  border-radius:12px;
  padding:0;
  overflow:hidden;
}

body.course-context .resource-pdf-frame {
  height:calc(100vh - 190px);
  min-height:680px;
  border:0;
  border-radius:0;
  background:#fff;
}

@media(max-width: 1100px) {
  body.course-context .sidebar {
    width:230px;
  }

  .classwork-classroom-layout {
    grid-template-columns:160px minmax(0,1fr);
    gap:20px;
  }
}

@media(max-width: 900px) {
  body.course-context .sidebar {
    position:fixed;
    left:-280px;
    top:0;
    bottom:0;
    width:280px;
    height:100vh;
    padding:0;
    background:linear-gradient(180deg, #0a1730 0%, #102342 56%, #14294d 100%);
    border-right:1px solid rgba(255,255,255,0.08);
    display:block !important;
    overflow-y:auto;
  }
  body.course-context .sidebar.active {
    left:0;
  }
  body.course-context .sidebar-logos,
  body.course-context .user-profile-box {
    display:flex !important;
  }

  body.course-context .content {
    padding:14px 14px 100px;
  }

  body.course-context .classroom-tabbar {
    position: sticky !important;
    top: 58px !important;
    z-index: 90 !important;
    background: rgba(255, 252, 247, 0.96) !important;
    backdrop-filter: blur(12px) !important;
    justify-content: flex-start;
    margin: -10px -10px 18px !important;
    padding: 10px 14px !important;
    overflow-x: auto;
    flex-wrap: nowrap;
    border-bottom: 1px solid rgba(210,172,52,.12) !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.02) !important;
  }

  body.course-context .classroom-tab {
    min-width:max-content;
  }

  body.course-context .classroom-banner-card,
  body.course-context .classroom-layout,
  .classwork-classroom-layout {
    grid-template-columns:1fr;
  }

  .classwork-topic-nav {
    position:static;
    flex-direction:row;
    max-height:none;
    padding-bottom:6px;
    overflow-x:auto;
  }

  .classwork-topic-nav a {
    min-width:max-content;
    border-radius:18px;
  }
}

/* In-course file reader and student analytics */
.resource-reader-card{min-height:360px;padding:18px;overflow:hidden}
.resource-pdf-frame{display:block;width:100%;height:78vh;min-height:620px;border:1px solid var(--line);border-radius:14px;background:#f4f6f9}
.resource-image-reader{text-align:center;padding:18px;background:#f5f7fa;border-radius:14px}.resource-image-reader img{max-width:100%;max-height:78vh;object-fit:contain}
.resource-media-reader{display:block;width:min(100%,960px);max-height:76vh;margin:auto;border-radius:14px;background:#101318}.resource-audio-reader{display:block;width:min(100%,720px);margin:50px auto}
.resource-text-reader{min-height:420px;margin:0;padding:22px;overflow:auto;border-radius:14px;background:#f8fafc;white-space:pre-wrap;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;line-height:1.75}
.resource-document-reader{max-width:900px;min-height:720px;margin:auto;padding:56px 64px;border:1px solid #dce2ea;border-radius:8px;background:#fff;box-shadow:0 12px 32px rgba(31,45,61,.08);font-size:16px;line-height:1.85}.resource-document-reader p{margin:0 0 14px}
.resource-slide-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px}.resource-slide-card{position:relative;min-height:240px;padding:42px 28px 28px;border:1px solid #dce2ea;border-radius:14px;background:linear-gradient(145deg,#fff,#f7f9fc);box-shadow:0 8px 22px rgba(31,45,61,.06)}.resource-slide-card>span{position:absolute;top:14px;right:16px;color:var(--muted);font-size:12px}.resource-slide-card h3{font-size:22px}.resource-slide-card p{margin:9px 0}
.resource-sheet-block{margin-bottom:24px}.resource-sheet-block table td{min-width:120px;white-space:pre-wrap}.resource-unsupported-state .material-symbols-outlined{font-size:52px;color:var(--muted)}
.student-course-dashboard{display:grid;gap:18px;margin-bottom:22px}.student-overview-head{display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(135deg,var(--course-soft,#edf5ff),#fff)}.student-overview-head h2{margin:4px 0}.student-group-chips{display:flex;gap:8px;flex-wrap:wrap}.student-overview-score{display:grid;min-width:150px;text-align:center}.student-overview-score strong{font-size:42px;color:var(--course-color,var(--accent))}.student-overview-score span{color:var(--muted)}
.student-course-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.student-metric-card{position:relative;display:grid;gap:4px;padding:18px;border:1px solid var(--line);border-radius:18px;background:#fff;overflow:hidden}.student-metric-card>.material-symbols-outlined{position:absolute;right:14px;top:14px;padding:8px;border-radius:12px;background:var(--course-soft,#edf5ff);color:var(--course-color,var(--accent))}.student-metric-card strong{font-size:30px;color:#1f2937}.student-metric-card b{font-size:15px}.student-metric-card small{color:var(--muted)}.metric-progress{height:6px;margin-top:10px;border-radius:999px;background:#e8edf3;overflow:hidden}.metric-progress i{display:block;height:100%;max-width:100%;border-radius:inherit;background:var(--course-color,var(--accent))}
.student-insight-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.student-insight{display:flex;gap:12px;padding:14px;border-radius:14px;border:1px solid var(--line);background:#f8fafc}.student-insight p{margin:4px 0 0;color:var(--muted);font-size:13px}.student-insight.good{border-color:#b9e2cd;background:#f0fbf5}.student-insight.good>.material-symbols-outlined{color:#18794e}.student-insight.warning{border-color:#f1d18a;background:#fff8e6}.student-insight.warning>.material-symbols-outlined{color:#9a6700}
.student-status-summary{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 16px}.student-status-summary span{padding:8px 12px;border-radius:999px;background:#f2f5f9;color:var(--muted)}.student-status-summary b{color:#1f2937}.student-course-table .table-subtext{display:block;margin-top:4px;color:var(--muted)}
@media(max-width:980px){.student-course-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.resource-document-reader{padding:36px 30px}.resource-pdf-frame{min-height:520px}}
@media(max-width:600px){.student-overview-head{align-items:flex-start;flex-direction:column}.student-overview-score{text-align:left}.student-course-metrics{grid-template-columns:1fr}.resource-document-reader{padding:24px 18px}.resource-slide-grid{grid-template-columns:1fr}.resource-pdf-frame{min-height:440px}}

.quiz-bank-import-card{margin-bottom:18px;padding:0;overflow:hidden}.quiz-bank-import-card>summary{display:flex;align-items:center;gap:12px;padding:18px 20px;cursor:pointer;list-style:none;background:linear-gradient(135deg,var(--course-soft,#eef5ff),#fff)}.quiz-bank-import-card>summary::-webkit-details-marker{display:none}.quiz-bank-import-card>summary>span:nth-child(2){display:grid;flex:1;gap:3px}.quiz-bank-import-card>summary small{font-weight:400;color:var(--muted)}.quiz-bank-import-card[open]>summary{border-bottom:1px solid var(--line)}.quiz-bank-import-form{padding:20px}.quiz-bank-notice{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px;padding:14px;border:1px solid #b8d5f5;border-radius:14px;background:#f2f8ff}.quiz-bank-notice p{margin:0}.code-source-input{min-height:270px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px;line-height:1.55;tab-size:2}.danger-check{margin:10px 0 18px;color:#8a3b12}.quiz-result-dashboard{margin-top:18px}.quiz-result-metrics{margin-bottom:18px}

/* Shared import / add controls for record-management tables */
.table-data-tools{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 16px;padding:14px 16px;border:1px solid #c8d8ee;border-radius:16px;background:linear-gradient(135deg,#f3f8ff,#fff);box-shadow:0 7px 20px rgba(31,78,121,.06)}
.table-data-tools-copy{display:flex;align-items:center;gap:12px;min-width:220px}.table-data-tools-copy>.material-symbols-outlined{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#dbeafe;color:#1d4f91}.table-data-tools-copy>div{display:grid;gap:2px}.table-data-tools-copy small{color:var(--muted)}
.table-data-tools-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.table-data-tools-actions .btn{display:inline-flex;align-items:center;gap:6px}.table-data-tools-actions .material-symbols-outlined{font-size:19px}
.table-import-modal .modal-header p{margin:4px 0 0}.import-instruction{display:flex;gap:10px;align-items:flex-start;margin-bottom:16px;padding:13px 14px;border:1px solid #b8d5f5;border-radius:12px;background:#f2f8ff;color:#244b76}.import-instruction p{margin:0}.table-import-modal input[type="file"]{width:100%;padding:12px;border:1px dashed #9ab4d5;border-radius:12px;background:#fafcff}
.error-text{display:block;margin-top:5px;color:#b42318}.field-error input,.field-error select{border-color:#d92d20}
@media(max-width:760px){.table-data-tools{align-items:stretch;flex-direction:column}.table-data-tools-actions{justify-content:flex-start}.table-data-tools-actions .btn{flex:1;justify-content:center;min-width:140px}}

/* One filtering and pagination pattern shared by all list tables */
.filter-card .filter-stack{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));align-items:end}.filter-card .filter-actions{align-self:end}.table-filter-standard{margin-bottom:16px}
.pagination-standard{padding-top:14px;border-top:1px solid var(--line)}.pagination-summary{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.pagination-summary>.material-symbols-outlined{font-size:20px;color:var(--accent)}.pagination-pages{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}.page-button{display:grid;place-items:center;min-width:34px;height:34px;padding:0 9px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--text);font-size:13px;font-weight:700}.page-button:hover{border-color:var(--accent);background:#f1f6ff;color:var(--accent)}.page-button.active{border-color:var(--accent);background:var(--accent);color:#fff}.page-ellipsis{padding:0 4px;color:var(--muted)}
@media(max-width:700px){.filter-card .filter-stack{grid-template-columns:1fr}.pagination-pages{justify-content:flex-start}}

/* Friendly character-based attendance experience */
.attendance-summary-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.attendance-summary-heading h2{margin:3px 0;font-size:22px}.attendance-summary-heading p{margin:0;color:var(--muted);font-size:12px}.attendance-summary-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;background:#eef4ff;color:#2563eb;font-size:25px}.attendance-course-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:14px}.attendance-course-card{padding:16px;border:1px solid #e0e7f0;border-radius:18px;background:linear-gradient(145deg,#fff,#f8fbff)}.attendance-course-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.attendance-course-head b{font-size:11px;color:#2563eb}.attendance-course-head h3{margin:3px 0 0;font-size:14px;line-height:1.45}.attendance-ring{display:grid;place-items:center;flex:none;width:72px;height:72px;border-radius:50%;background:conic-gradient(#2563eb var(--attendance-percent),#e8eef7 0);position:relative}.attendance-ring:after{content:'';position:absolute;inset:7px;border-radius:50%;background:#fff}.attendance-ring strong,.attendance-ring small{position:relative;z-index:1}.attendance-ring strong{font-size:16px;line-height:1}.attendance-ring small{font-size:8px;color:#64748b}.attendance-ring.good{background:conic-gradient(#16a34a var(--attendance-percent),#e6f4ea 0)}.attendance-ring.warn{background:conic-gradient(#d97706 var(--attendance-percent),#fff0d9 0)}.attendance-ring.bad{background:conic-gradient(#dc2626 var(--attendance-percent),#fee2e2 0)}.attendance-course-bar{height:7px;margin:14px 0;border-radius:999px;background:#edf1f6;overflow:hidden}.attendance-course-bar i{display:block;height:100%;border-radius:inherit;background:#2563eb}.attendance-count-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.attendance-count-grid span{display:grid;justify-items:center;padding:7px 3px;border-radius:10px}.attendance-count-grid b{font-size:15px}.attendance-count-grid small{font-size:9px}.attendance-count-grid .present{background:#e9f8ef;color:#15803d}.attendance-count-grid .late{background:#fff3df;color:#b45309}.attendance-count-grid .leave{background:#eaf2ff;color:#2563eb}.attendance-count-grid .absent{background:#ffebeb;color:#b91c1c}.attendance-course-foot{display:flex;justify-content:space-between;gap:8px;margin-top:12px;color:#64748b;font-size:10px}.attendance-course-foot span{font-weight:800;color:#2563eb}
.attendance-game-hero{align-items:center;background:linear-gradient(135deg,#dcecff 0%,#f7fbff 54%,#fff2cf 100%);color:#17345d}
.attendance-game-hero .hero-inner h1{color:#17345d}.attendance-game-hero .hero-inner p{color:#47617f}
.attendance-hero-stats{display:flex;gap:10px;flex-wrap:wrap}.attendance-hero-stats span{display:grid;min-width:96px;padding:12px 16px;border:1px solid rgba(31,78,121,.12);border-radius:18px;background:rgba(255,255,255,.76);color:#47617f;text-align:center}.attendance-hero-stats strong{font-size:27px;line-height:1;color:#17345d}
.live-checkin-control{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:16px;border:1px solid #d9e2ee;background:linear-gradient(135deg,#f8fafc,#fff)}
.live-checkin-control.is-open{border-color:#8bd3aa;background:linear-gradient(135deg,#eafbf2,#fff)}
.live-checkin-control-copy{display:flex;align-items:center;gap:14px}.live-checkin-control-copy h3{margin:0 0 4px}.live-checkin-control-copy p{margin:0;color:var(--muted)}
.live-indicator{display:inline-flex;align-items:center;gap:7px;min-width:max-content;padding:8px 11px;border-radius:999px;background:#eef2f6;color:#526173;font-size:12px;font-weight:800}.live-indicator i,.live-checkin-pill i{width:9px;height:9px;border-radius:50%;background:#8b98a7}.is-open .live-indicator{background:#daf5e5;color:#087a42}.is-open .live-indicator i,.live-checkin-pill i{background:#17a45b;box-shadow:0 0 0 5px rgba(23,164,91,.12);animation:checkinPulse 1.7s infinite}
.live-checkin-form{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}.live-checkin-form label{margin:0;font-size:12px;font-weight:800}.live-checkin-form select{width:auto;min-width:110px}.live-checkin-form .material-symbols-outlined{font-size:19px}
@keyframes checkinPulse{50%{box-shadow:0 0 0 9px rgba(23,164,91,0)}}
.attendance-card-board{padding:0;overflow:hidden}.attendance-board-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:20px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,#f6faff,#fff9ea)}.attendance-board-toolbar h2{margin:3px 0}.attendance-board-toolbar p{margin:0;color:var(--muted)}
.attendance-board-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.attendance-board-actions select{width:auto;min-width:175px}.attendance-all-present{border-color:#22a861!important;background:#e9fbf1!important;color:#087a42!important}
.attendance-character-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(225px,1fr));gap:18px;padding:22px;background:#f5f8fc}
.attendance-character-card{position:relative;display:flex;align-items:center;flex-direction:column;min-width:0;padding:20px 16px 16px;border:2px solid #d8e1ed;border-radius:24px;background:#fff;box-shadow:0 10px 28px rgba(31,63,104,.08);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.attendance-character-card:hover{transform:translateY(-3px);box-shadow:0 15px 34px rgba(31,63,104,.14)}
.attendance-character-card.status-present{border-color:#60cb91}.attendance-character-card.status-late{border-color:#ff9c50}.attendance-character-card.status-leave{border-color:#eac64f}.attendance-character-card.status-absent{border-color:#ef7777}.attendance-character-card.status-unmarked{border-style:dashed}
.character-select{position:absolute;left:13px;top:13px;display:grid;cursor:pointer}.character-select input{position:absolute;opacity:0}.character-select .material-symbols-outlined{color:#9aa7b5}.character-select:has(input:checked) .material-symbols-outlined{color:#2d70ce;font-variation-settings:'FILL' 1}.character-select:has(input:checked) .material-symbols-outlined{font-size:0}.character-select:has(input:checked) .material-symbols-outlined::after{content:'check_box';font-family:'Material Symbols Outlined';font-size:24px}
.character-status-bubble{position:absolute;right:12px;top:12px;padding:6px 9px;border-radius:999px;background:#eef2f6;color:#617082;font-size:10px;font-weight:900}.status-present .character-status-bubble{background:#dcf7e8;color:#087a42}.status-absent .character-status-bubble{background:#ffe3e3;color:#b42328}.status-leave .character-status-bubble{background:#fff5c9;color:#836900}.status-late .character-status-bubble{background:#ffead8;color:#a8470a}
.character-portrait,.student-live-avatar{display:grid;place-items:center;overflow:hidden;background:linear-gradient(145deg,#dff0ff,#a9d2ff)}.character-portrait{width:116px;height:116px;margin:8px 0 12px;border:5px solid #fff;border-radius:36px;box-shadow:0 10px 25px rgba(36,77,126,.18)}.character-portrait img,.student-live-avatar img{width:100%;height:100%;object-fit:cover}.character-portrait>span{font-size:67px;filter:drop-shadow(0 6px 5px rgba(28,55,87,.12))}.tone-violet{background:linear-gradient(145deg,#eee4ff,#c8aaff)}.tone-mint{background:linear-gradient(145deg,#dff9ee,#9ee2c5)}.tone-orange{background:linear-gradient(145deg,#fff0d8,#ffc479)}.tone-rose{background:linear-gradient(145deg,#ffe7ed,#ffafc4)}.tone-yellow{background:linear-gradient(145deg,#fff8ce,#f7d86c)}.tone-indigo{background:linear-gradient(145deg,#e3e9ff,#aebdff)}.tone-teal{background:linear-gradient(145deg,#dff9f9,#91dcdc)}
.character-identity{min-height:68px;text-align:center}.character-identity small{color:#617082;font-weight:800}.character-identity h3{margin:3px 0 1px;overflow:hidden;text-overflow:ellipsis;font-size:18px;white-space:nowrap}.character-identity span{color:var(--muted);font-size:11px}
.character-status-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;width:100%;margin-top:12px}.status-btn{min-height:38px;padding:7px 5px;border:0;border-radius:10px;color:#fff;font:inherit;font-size:12px;font-weight:900;cursor:pointer;opacity:.82;transition:transform .15s ease,opacity .15s ease}.status-btn:hover,.status-btn.active{transform:translateY(-2px);opacity:1;box-shadow:0 6px 14px rgba(20,40,70,.16)}.status-btn.present{background:#20b463}.status-btn.absent{background:#e84f52}.status-btn.leave{background:#d5a900}.status-btn.late{background:#f47b20}
.character-leave-note{width:100%;margin-top:10px;padding:7px 9px;border-radius:9px;background:#fff8d8;color:#7e6700;font-size:11px}.character-remark{width:100%;margin-top:10px!important;padding:9px 10px!important;font-size:11px!important}.character-profile-link{margin-top:8px;color:#55708e;font-size:10.5px;font-weight:700}
.attendance-board-save{display:flex;justify-content:flex-end;padding:0 22px 18px;background:#f5f8fc}.attendance-board-save .material-symbols-outlined{font-size:18px}

.student-checkin-zone{margin:0 0 18px;padding:20px;border:1px solid #9bdcb8;border-radius:24px;background:linear-gradient(135deg,#edfff5,#f7fbff 55%,#fff7dc);box-shadow:0 13px 34px rgba(21,121,72,.09)}
.student-checkin-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:15px}.student-checkin-heading h2{margin:2px 0 4px;color:#154f36}.student-checkin-heading p{margin:0;color:#547266}.live-checkin-pill{display:inline-flex;align-items:center;gap:9px;min-width:max-content;padding:9px 13px;border-radius:999px;background:#dff8e9;color:#087a42;font-size:12px;font-weight:900}
.student-checkin-grid{display:grid;gap:12px}.student-live-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:15px;border:1px solid rgba(34,168,97,.2);border-radius:18px;background:rgba(255,255,255,.9)}.student-live-card.is-complete{border-color:#7fcca1;background:#f1fff7}.student-live-avatar{width:74px;height:74px;border-radius:23px;box-shadow:0 8px 20px rgba(31,78,121,.14)}.student-live-avatar>span{font-size:46px}.student-live-course{color:#16834c;font-size:11px;font-weight:900;text-transform:uppercase}.student-live-copy h3{margin:3px 0;font-size:17px}.student-live-copy p,.student-live-copy small{margin:0;color:var(--muted)}
.student-checkin-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:48px;padding:11px 17px;border:0;border-radius:15px;background:linear-gradient(135deg,#20b463,#087a42);box-shadow:0 9px 19px rgba(8,122,66,.24);color:#fff;font:inherit;font-weight:900;cursor:pointer}.student-checkin-button:hover{transform:translateY(-2px);box-shadow:0 12px 23px rgba(8,122,66,.3)}.checkin-success,.checkin-blocked{display:inline-flex;align-items:center;gap:7px;padding:10px 13px;border-radius:13px;font-size:12px;font-weight:900}.checkin-success{background:#dcf7e8;color:#087a42}.checkin-blocked{background:#fff0d8;color:#984613}
@media(max-width:900px){.live-checkin-control,.attendance-board-toolbar,.student-checkin-heading{align-items:stretch;flex-direction:column}.live-checkin-form,.attendance-board-actions{justify-content:flex-start}.student-live-card{grid-template-columns:auto 1fr}.student-live-action{grid-column:1/-1}.student-checkin-button{width:100%}}
@media(max-width:600px){.attendance-character-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px}.attendance-character-card{padding:16px 9px 12px;border-radius:18px}.character-portrait{width:82px;height:82px;border-radius:26px}.character-portrait>span{font-size:49px}.character-identity h3{font-size:14px}.character-status-buttons{grid-template-columns:repeat(2,1fr)}.status-btn{min-height:34px}.character-remark,.character-profile-link{display:none}.student-live-card{grid-template-columns:1fr;text-align:center}.student-live-avatar{margin:auto}.attendance-hero-stats{width:100%}.attendance-hero-stats span{flex:1}.live-checkin-form select,.live-checkin-form .btn{width:100%}}

/* Sequential attendance: one student at a time */
.attendance-focus-hero{border-left:6px solid #2563eb!important;background:#fff!important;color:#172033!important}.attendance-focus-hero .hero-inner h1{color:#172033!important}.attendance-focus-hero .hero-inner p{color:#5e6b7c!important}
.teacher-course-overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}.teacher-course-overview-card{padding:18px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#fff,#f7fbff)}.teacher-course-overview-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.teacher-course-overview-head h3{margin:3px 0;font-size:17px}.teacher-course-overview-head small{color:var(--muted)}.teacher-course-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:17px 0 12px}.teacher-course-metrics div{padding:10px 5px;border-radius:12px;background:#f0f5fb;text-align:center}.teacher-course-metrics b,.teacher-course-metrics small{display:block}.teacher-course-metrics b{font-size:19px;color:#1d4ed8}.teacher-course-metrics small{font-size:10px;color:var(--muted)}.teacher-course-overview-actions{display:flex;gap:9px;flex-wrap:wrap;padding-top:12px;border-top:1px solid var(--line)}.teacher-course-overview-actions a{font-size:12px;font-weight:800;color:#2563eb}@media(max-width:600px){.teacher-course-metrics{grid-template-columns:repeat(2,1fr)}.teacher-course-overview-head{flex-direction:column}}
.focus-student-portrait{position:relative;isolation:isolate;width:220px!important;height:180px!important;margin:8px 0 12px!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;overflow:visible!important}.focus-student-portrait .focus-scene{position:absolute;inset:0;z-index:0;display:block;background-image:url('../images/attendance-character-sheet.png');background-repeat:no-repeat;background-size:300% 200%;background-position:center;background-color:transparent;filter:drop-shadow(0 8px 8px rgba(28,55,87,.16))}.focus-student-portrait.scene-0 .focus-scene{background-position:0 0}.focus-student-portrait.scene-1 .focus-scene{background-position:50% 0}.focus-student-portrait.scene-2 .focus-scene{background-position:100% 0}.focus-student-portrait.scene-3 .focus-scene{background-position:0 100%}.focus-student-portrait.scene-4 .focus-scene{background-position:50% 100%}.focus-student-portrait.scene-5 .focus-scene{background-position:100% 100%}.focus-student-portrait .student-face-overlay{position:absolute;z-index:2;left:50%;top:42%;width:58px!important;height:58px!important;transform:translate(-50%,-50%);object-fit:cover;border:4px solid #fff!important;border-radius:50%!important;box-shadow:0 4px 10px rgba(36,77,126,.25)}.focus-student-portrait .focus-face-fallback{display:grid;place-items:center;font-size:37px;background:#fff4dc}.focus-character-caption{display:inline-flex!important;align-items:center;gap:5px;margin:6px 0 0!important;padding:5px 10px;border-radius:999px;background:#eef6ff;color:#2563eb!important;font-size:12px!important;font-weight:800}.focus-student-portrait:after{content:'';position:absolute;left:35px;bottom:-8px;z-index:-1;width:150px;height:22px;border-radius:50%;background:rgba(37,99,235,.18);transform:rotate(-8deg)}
.attendance-howto{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:14px;margin-bottom:16px;padding:14px 18px;border:1px solid #dbe3ee;border-radius:16px;background:#f8fafc}.attendance-howto>div{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center}.attendance-howto>div>span{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#172033;color:#fff;font-size:13px;font-weight:900}.attendance-howto b{font-size:13px}.attendance-howto small{color:#64748b}.attendance-howto>i{color:#94a3b8;font-size:20px}
.attendance-focus-layout{display:grid;grid-template-columns:255px minmax(0,1fr);align-items:start;gap:16px;margin-bottom:16px}.attendance-status-guide{position:sticky;top:16px;padding:18px}.attendance-status-guide h3{margin:3px 0 14px}.status-guide-item{display:flex;align-items:center;gap:11px;margin-top:9px;padding:11px;border:1px solid #e3e8ef;border-radius:12px;background:#fff}.status-guide-item>.material-symbols-outlined{font-size:26px}.status-guide-item div{display:grid}.status-guide-item small{color:#64748b;font-size:10.5px}.status-guide-item.present>.material-symbols-outlined{color:#15803d}.status-guide-item.late>.material-symbols-outlined{color:#b45309}.status-guide-item.leave>.material-symbols-outlined{color:#2563eb}.status-guide-item.absent>.material-symbols-outlined{color:#b91c1c}.status-guide-item.unmarked>.material-symbols-outlined{color:#64748b}.keyboard-help{margin:14px 0 0;padding:10px;border-radius:10px;background:#f1f5f9;color:#526173;font-size:11px;line-height:1.6}
.attendance-focus-stage{min-height:650px;padding:22px}.focus-progress-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px}.focus-progress-head>div{display:grid}.focus-progress-head>div>b{font-size:18px}.focus-progress-head>span{color:#64748b;font-size:12px;font-weight:800}.focus-progress-track{height:9px;margin:11px 0 20px;border-radius:999px;background:#e8edf4;overflow:hidden}.focus-progress-track i{display:block;height:100%;max-width:100%;border-radius:inherit;background:#2563eb;transition:width .3s ease}
.focus-student-card{position:relative;display:grid;justify-items:center;max-width:760px;margin:0 auto;padding:12px 34px 24px;text-align:center}.focus-student-status{position:absolute;right:0;top:0;display:grid;justify-items:end}.focus-student-status span{color:#64748b;font-size:10px}.focus-student-status b{padding:7px 11px;border-radius:999px;background:#eef2f7;color:#526173;font-size:12px}.focus-student-card.status-present .focus-student-status b{background:#dcfce7;color:#166534}.focus-student-card.status-late .focus-student-status b{background:#ffedd5;color:#9a3412}.focus-student-card.status-leave .focus-student-status b{background:#dbeafe;color:#1d4ed8}.focus-student-card.status-absent .focus-student-status b{background:#fee2e2;color:#991b1b}
.focus-student-portrait{display:grid;place-items:center;width:240px;height:240px;margin:5px 0 16px;border:7px solid #fff;border-radius:54px;overflow:hidden;box-shadow:0 16px 36px rgba(30,55,90,.18)}.focus-student-portrait img{width:100%;height:100%;object-fit:cover}.focus-student-portrait>span{font-size:142px;filter:drop-shadow(0 8px 7px rgba(28,55,87,.12))}.focus-student-identity{min-height:104px}.focus-student-id{display:inline-flex;padding:6px 11px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:12px;font-weight:900}.focus-student-identity h2{margin:7px 0 2px;font-size:30px;line-height:1.2;color:#172033}.focus-student-identity p{margin:0;color:#64748b}.focus-leave-alert{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:9px;padding:8px 12px;border-radius:10px;background:#dbeafe;color:#1d4ed8;font-size:12px;font-weight:800}
.focus-attendance-form{width:100%;margin-top:12px}.focus-attendance-form>label{display:block;margin-bottom:6px;text-align:left;color:#475569;font-size:11px;font-weight:800}.focus-attendance-form>input{width:100%;margin-bottom:12px}.focus-status-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.focus-status-button{display:grid;justify-items:center;gap:2px;min-height:105px;padding:12px 8px;border:2px solid transparent;border-radius:16px;background:#fff;font:inherit;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.focus-status-button:hover{transform:translateY(-3px);box-shadow:0 10px 22px rgba(31,50,80,.15)}.focus-status-button>.material-symbols-outlined{font-size:32px}.focus-status-button b{font-size:15px}.focus-status-button small{font-size:9.5px}.focus-status-button.present{border-color:#15803d;color:#166534;background:#f0fdf4}.focus-status-button.late{border-color:#b45309;color:#9a3412;background:#fff7ed}.focus-status-button.leave{border-color:#2563eb;color:#1d4ed8;background:#eff6ff}.focus-status-button.absent{border-color:#b91c1c;color:#991b1b;background:#fef2f2}.focus-student-navigation{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:15px}.focus-student-navigation .btn{display:inline-flex;align-items:center;gap:5px}.focus-student-navigation .material-symbols-outlined{font-size:18px}.attendance-finished-state{display:grid;justify-items:center;max-width:560px;margin:75px auto 0;text-align:center}.attendance-finished-state>.material-symbols-outlined{font-size:82px;color:#15803d}.attendance-finished-state h2{margin:8px 0}.attendance-finished-state p{color:#64748b}.attendance-finished-state .actions{justify-content:center}
.attendance-roster-review{padding:0;overflow:hidden}.attendance-roster-review>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;cursor:pointer;list-style:none;background:#fff}.attendance-roster-review>summary::-webkit-details-marker{display:none}.attendance-roster-review>summary h3{margin:2px 0}.attendance-roster-review>summary p{margin:0;color:#64748b}.attendance-roster-review[open]>summary{border-bottom:1px solid #e2e8f0}.attendance-roster-review[open]>summary>.material-symbols-outlined{transform:rotate(180deg)}.attendance-roster-body{padding:18px}.attendance-search-form{display:grid;grid-template-columns:2fr 1fr 150px auto;align-items:end;gap:10px;margin-bottom:14px}.attendance-search-form label{display:block;margin-bottom:5px;font-size:11px;font-weight:800}.attendance-search-form .filter-actions{display:flex;gap:7px}.attendance-status-label{display:inline-flex;padding:6px 9px;border-radius:999px;font-size:11px;font-weight:900}.attendance-status-label.present{background:#dcfce7;color:#166534}.attendance-status-label.late{background:#ffedd5;color:#9a3412}.attendance-status-label.leave{background:#dbeafe;color:#1d4ed8}.attendance-status-label.absent{background:#fee2e2;color:#991b1b}.attendance-status-label.unmarked{background:#e2e8f0;color:#475569}

/* Clear, column-specific filtering for attendance sessions */
.attendance-session-help{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.attendance-session-help>div{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center;padding:13px 15px;border:1px solid #dbe3ee;border-radius:14px;background:#fff}.attendance-session-help .material-symbols-outlined{grid-row:1/3;display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#eff6ff;color:#2563eb}.attendance-session-help b{font-size:12px}.attendance-session-help small{color:#64748b;font-size:10px}.attendance-session-filter-card{margin-bottom:14px}.attendance-session-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));align-items:end;gap:11px}.attendance-session-filter-grid label{display:block;margin-bottom:5px;font-size:11px;font-weight:800}.attendance-session-filter-grid .attendance-wide-search{grid-column:span 2}.attendance-session-filter-grid .filter-actions{display:flex;gap:7px}.attendance-session-filter-grid .btn{display:inline-flex;align-items:center;gap:5px}.attendance-session-filter-grid .material-symbols-outlined{font-size:18px}
.attendance-result-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:11px 20px;border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;background:#f8fafc}.attendance-result-legend span{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800}.attendance-result-legend i{width:10px;height:10px;border-radius:3px}.attendance-result-legend .present i{background:#15803d}.attendance-result-legend .late i{background:#b45309}.attendance-result-legend .leave i{background:#2563eb}.attendance-result-legend .absent i{background:#b91c1c}.attendance-result-legend small{color:#64748b}.attendance-session-list-card{padding:0;overflow:hidden}.attendance-session-list-card>.table-panel-title{padding:18px 20px}.attendance-session-table td{vertical-align:middle}.attendance-session-table td>small{display:block;margin-top:4px;color:#64748b}.attendance-session-table th:nth-child(1){min-width:125px}.attendance-session-table th:nth-child(2){min-width:115px}.attendance-session-table th:nth-child(3){min-width:180px}.attendance-session-table th:nth-child(4){min-width:150px}.attendance-session-table th:nth-child(5){min-width:210px}.attendance-session-table th:nth-child(6){min-width:260px}.attendance-progress-label{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border-radius:999px;font-size:10.5px;font-weight:900}.attendance-progress-label.open{background:#dcfce7;color:#166534}.attendance-progress-label.open i{width:8px;height:8px;border-radius:50%;background:#16a34a;animation:checkinPulse 1.7s infinite}.attendance-progress-label.not-started{background:#e2e8f0;color:#475569}.attendance-progress-label.in-progress{background:#ffedd5;color:#9a3412}.attendance-progress-label.completed{background:#dbeafe;color:#1d4ed8}.attendance-result-chips{display:grid;grid-template-columns:repeat(2,1fr);gap:5px}.attendance-result-chips span{padding:5px 7px;border-radius:8px;font-size:10px;font-weight:900;text-align:center}.attendance-result-chips .present{background:#dcfce7;color:#166534}.attendance-result-chips .late{background:#ffedd5;color:#9a3412}.attendance-result-chips .leave{background:#dbeafe;color:#1d4ed8}.attendance-result-chips .absent{background:#fee2e2;color:#991b1b}.attendance-row-actions{display:flex;gap:6px;flex-wrap:wrap}.attendance-row-actions .btn{display:inline-flex;align-items:center;gap:4px;min-height:34px;padding:7px 9px}.attendance-row-actions .material-symbols-outlined{font-size:17px}
@media(max-width:1050px){.attendance-focus-layout{grid-template-columns:1fr}.attendance-status-guide{position:static;display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.attendance-status-guide>h3,.attendance-status-guide>.section-kicker,.attendance-status-guide>.keyboard-help{grid-column:1/-1}.status-guide-item{margin:0;padding:8px}.attendance-session-filter-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}}
@media(max-width:760px){.attendance-howto{grid-template-columns:1fr}.attendance-howto>i{display:none}.attendance-status-guide{grid-template-columns:1fr 1fr}.focus-status-actions{grid-template-columns:1fr 1fr}.attendance-search-form{grid-template-columns:1fr}.attendance-session-help{grid-template-columns:1fr}.attendance-session-filter-grid{grid-template-columns:1fr}.attendance-session-filter-grid .attendance-wide-search{grid-column:auto}.attendance-session-filter-grid .filter-actions{flex-wrap:wrap}.attendance-session-table-wrap{overflow:visible}.attendance-session-table,.attendance-session-table tbody,.attendance-session-table tr,.attendance-session-table td{display:block;width:100%}.attendance-session-table thead{display:none}.attendance-session-table tr{margin:12px;border:1px solid #dbe3ee;border-radius:14px;overflow:hidden;width:calc(100% - 24px)}.attendance-session-table td{display:grid;grid-template-columns:110px 1fr;gap:8px;padding:10px 12px}.attendance-session-table td::before{font-size:10px;font-weight:900;color:#64748b}.attendance-session-table td:nth-child(1)::before{content:'วันที่'}.attendance-session-table td:nth-child(2)::before{content:'กลุ่ม / คาบ'}.attendance-session-table td:nth-child(3)::before{content:'หัวข้อ'}.attendance-session-table td:nth-child(4)::before{content:'ความคืบหน้า'}.attendance-session-table td:nth-child(5)::before{content:'สรุปสถานะ'}.attendance-session-table td:nth-child(6)::before{content:'จัดการ'}.attendance-row-actions{display:grid;grid-template-columns:1fr 1fr}.attendance-row-actions .btn.primary{grid-column:1/-1;justify-content:center}}
@media(max-width:520px){.attendance-focus-stage{min-height:0;padding:14px}.focus-student-card{padding:8px 0 16px}.focus-student-status{position:static;justify-items:center;margin-bottom:8px}.focus-student-portrait{width:185px;height:185px;border-radius:42px}.focus-student-portrait>span{font-size:108px}.focus-student-identity h2{font-size:23px}.focus-status-actions{gap:7px}.focus-status-button{min-height:94px}.attendance-status-guide{grid-template-columns:1fr}.focus-student-navigation .btn{padding:7px;font-size:10px}.attendance-howto{padding:12px}}
.focus-student-portrait{display:grid!important;place-items:center!important;width:240px!important;height:240px!important;margin:5px 0 16px!important;border:7px solid #fff!important;border-radius:54px!important;overflow:hidden!important;box-shadow:0 16px 36px rgba(30,55,90,.18)!important;background:linear-gradient(145deg,#dff9f9,#91dcdc)!important}.focus-student-portrait>span{font-size:142px!important;filter:drop-shadow(0 8px 7px rgba(28,55,87,.12))}.focus-character-caption{display:inline-flex!important;align-items:center;gap:5px;margin:6px 0 0!important;padding:5px 10px;border-radius:999px;background:#eef6ff;color:#2563eb!important;font-size:12px!important;font-weight:800}
.focus-student-portrait.sheet-transport .focus-scene{background-image:url('../images/attendance-character-sheet-transport.png')}.focus-student-portrait.sheet-transport.scene-6 .focus-scene{background-position:0 0}.focus-student-portrait.sheet-transport.scene-7 .focus-scene{background-position:50% 0}.focus-student-portrait.sheet-transport.scene-8 .focus-scene{background-position:100% 0}.focus-student-portrait.sheet-transport.scene-9 .focus-scene{background-position:0 100%}.focus-student-portrait.sheet-transport.scene-10 .focus-scene{background-position:50% 100%}.focus-student-portrait.sheet-transport.scene-11 .focus-scene{background-position:100% 100%}
.focus-student-portrait .focus-scene{inset:auto 10px 8px auto!important;width:82px;height:82px;border:0;border-radius:50%;background:linear-gradient(145deg,#fff8d7,#ffd8e8)!important;display:grid!important;place-items:center;font-size:52px;line-height:1;filter:drop-shadow(0 7px 7px rgba(28,55,87,.18));transform:rotate(7deg);z-index:0}.focus-student-portrait.sheet-transport .focus-scene{background:linear-gradient(145deg,#e4f4ff,#dff8e8)!important;background-image:none!important}.focus-student-portrait .student-face-overlay{left:42%!important;top:40%!important;width:72px!important;height:72px!important}.focus-student-portrait .focus-face-fallback{font-size:42px!important}
.lms-ux-pass-anchor{display:none}

/* Quiz creation studio: a short assessment route instead of one long generic form. */
.quiz-create-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:18px;padding:22px 26px;border:1px solid #c9d9ec;border-radius:20px;background:linear-gradient(110deg,#f3f8ff 0%,#fff 58%,#fff8dc 100%);box-shadow:0 12px 30px rgba(27,64,110,.07)}
.quiz-create-hero h1{margin:3px 0 5px;color:#132f52;font-size:28px}.quiz-create-hero p{margin:0;color:#607087}.quiz-course-ticket{display:grid;min-width:260px;padding:13px 16px;border-left:4px solid #d2ac34;border-radius:12px;background:#fff;box-shadow:0 7px 18px rgba(34,62,94,.08)}.quiz-course-ticket span{color:#1f5da8;font-size:12px;font-weight:900}.quiz-course-ticket b{margin-top:3px;color:#26384d;font-size:13px}
.quiz-create-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;align-items:start;gap:18px}.quiz-create-main{display:grid;gap:16px}.quiz-step-card{position:relative;display:grid;grid-template-columns:48px 1fr;column-gap:15px;padding:21px 22px;border:1px solid #dce5ef;border-radius:20px;background:#fff;box-shadow:0 8px 22px rgba(29,57,90,.05)}.quiz-step-number{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:#183b66;color:#fff;font-size:17px;font-weight:950;box-shadow:0 7px 14px rgba(24,59,102,.2)}.quiz-step-heading{padding-top:1px}.quiz-step-heading>span{color:#1f68b5;font-size:10px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.quiz-step-heading h2{margin:2px 0 3px;color:#18304e;font-size:19px}.quiz-step-heading p{margin:0;color:#6a788b;font-size:12px}.quiz-step-fields{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:19px}.quiz-span-2{grid-column:1/-1}.quiz-step-card .field{margin:0}.quiz-step-card input,.quiz-step-card select,.quiz-advanced-body input,.quiz-advanced-body select,.quiz-advanced-body textarea{background:#fbfcfe;border-color:#d7e1ec}.quiz-step-card input:focus,.quiz-step-card select:focus{background:#fff;border-color:#2f72bd;box-shadow:0 0 0 4px rgba(47,114,189,.1)}
.quiz-mode-choice{grid-column:1/-1;margin-top:18px}.quiz-toggle-row,.quiz-inline-options>label,.quiz-publish-row>label{display:flex;align-items:flex-start;gap:11px;margin:0;padding:14px;border:1px solid #d8e2ee;border-radius:14px;background:#f8fbff;cursor:pointer}.quiz-toggle-row input,.quiz-inline-options input,.quiz-publish-row input{flex:none;width:19px;height:19px;margin-top:1px;accent-color:#1f68b5}.quiz-toggle-row span,.quiz-inline-options span,.quiz-publish-row span{display:grid;gap:2px}.quiz-toggle-row b,.quiz-inline-options b,.quiz-publish-row b{color:#213a59;font-size:13px}.quiz-toggle-row small,.quiz-inline-options small,.quiz-publish-row small{color:#6d7b8d;font-size:11px;line-height:1.45}.quiz-inline-options{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:13px}.quiz-secure-fields[hidden],.quiz-bank-picker[hidden]{display:none!important}
.quiz-bank-picker{grid-column:1/-1;margin-top:13px;padding:15px;border:1px solid #bdd4ee;border-radius:15px;background:#f6faff}.quiz-bank-picker.has-error{border-color:#dc6b62;background:#fff7f6}.quiz-bank-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px}.quiz-bank-picker-head>div{display:grid}.quiz-bank-picker-head small{color:#6d7b8d;font-size:10px}.quiz-bank-picker-head a{color:#1f68b5;font-size:11px;font-weight:900}.quiz-bank-picker ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:0;padding:0;list-style:none}.quiz-bank-picker li label{display:flex;align-items:center;gap:9px;margin:0;padding:12px;border:1px solid #d8e2ee;border-radius:12px;background:#fff;font-size:12px;cursor:pointer}.quiz-bank-picker li label:has(input:checked){border-color:#2f72bd;background:#eaf4ff;color:#164b87}.quiz-bank-picker input{width:18px;height:18px;accent-color:#1f68b5}.quiz-empty-bank{display:grid;justify-items:center;gap:7px;padding:18px;text-align:center}.quiz-empty-bank>.material-symbols-outlined{font-size:38px;color:#7791af}.quiz-empty-bank p{margin:0;color:#607087}
.quiz-advanced-card{border:1px solid #dce5ef;border-radius:18px;background:#fff;overflow:hidden}.quiz-advanced-card>summary{display:flex;align-items:center;gap:11px;padding:17px 20px;cursor:pointer;list-style:none}.quiz-advanced-card>summary::-webkit-details-marker{display:none}.quiz-advanced-card>summary>span:nth-child(2){display:grid;flex:1}.quiz-advanced-card>summary small{color:#788598;font-size:10px}.quiz-advanced-card>summary>span:last-child{transition:transform .2s}.quiz-advanced-card[open]>summary>span:last-child{transform:rotate(180deg)}.quiz-advanced-body{display:grid;gap:14px;padding:18px 20px;border-top:1px solid #e4eaf1;background:#fbfcfe}.quiz-advanced-body .field{margin:0}.quiz-advanced-body textarea{min-height:130px}
.quiz-create-summary{position:sticky;top:18px;padding:20px;border:1px solid #d7e1ec;border-radius:20px;background:#fff;box-shadow:0 14px 30px rgba(24,50,82,.09)}.quiz-route{display:flex;align-items:center;margin-bottom:18px}.quiz-route span{display:grid;place-items:center;width:29px;height:29px;border:2px solid #b9c8d9;border-radius:50%;background:#fff;color:#64758a;font-size:11px;font-weight:900}.quiz-route span.is-active{border-color:#1f68b5;background:#1f68b5;color:#fff}.quiz-route i{flex:1;height:2px;background:#dbe4ee}.quiz-create-summary h3{margin:0 0 5px;color:#18304e}.quiz-create-summary>p{margin:0 0 16px;color:#69778a;font-size:12px;line-height:1.6}.quiz-publish-row{margin-bottom:15px}.quiz-publish-row>label{padding:12px;background:#fffaf0;border-color:#ead9a4}.quiz-save-button,.quiz-cancel-button{display:flex!important;justify-content:center;width:100%;margin-top:9px}.quiz-save-button{gap:6px;min-height:46px}.quiz-save-button .material-symbols-outlined{font-size:19px}.quiz-save-note{display:block;margin-top:12px;color:#7b8796;text-align:center}.quiz-error-summary{display:flex;gap:11px;padding:14px 16px;border:1px solid #f2c1bc;border-radius:14px;background:#fff3f1;color:#932b23}.quiz-error-summary>div{display:grid;gap:4px}.quiz-error-summary .errorlist{margin:0;padding:0;border:0;background:none}.quiz-error-summary .errorlist li{margin-left:17px}.quiz-step-card .form-field-error,.quiz-bank-picker .form-field-error{display:block;margin-top:7px;color:#b42318;font-weight:800}
@media(max-width:980px){.quiz-create-layout{grid-template-columns:1fr}.quiz-create-summary{position:static}.quiz-course-ticket{min-width:220px}}
@media(max-width:680px){.quiz-create-hero{align-items:flex-start;flex-direction:column;padding:18px}.quiz-course-ticket{width:100%;min-width:0}.quiz-step-card{grid-template-columns:39px 1fr;padding:17px 15px}.quiz-step-number{width:36px;height:36px}.quiz-step-fields,.quiz-inline-options,.quiz-bank-picker ul{grid-template-columns:1fr}.quiz-span-2{grid-column:auto}.quiz-bank-picker-head{align-items:flex-start;flex-direction:column}}

/* LMS UX pass: fast, calm, accessible, and mobile-first shared behavior. */
:root{
  --focus-ring:0 0 0 3px rgba(37,99,235,.25);
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px;
  --space-5:20px; --space-6:24px;
}
:where(a,button,input,select,textarea,summary):focus-visible{
  outline:3px solid #2563eb; outline-offset:2px; box-shadow:var(--focus-ring);
}
.content>.hero .hero-actions .btn.primary,
.content>.card .actions .btn.primary{box-shadow:0 8px 18px rgba(37,99,235,.18)}
.actions{align-items:center}
.actions .btn:not(.primary):not(.danger){background:#fff;color:#315779}
.table-wrap,.notification-list,.course-list,.attendance-character-grid{content-visibility:auto;contain-intrinsic-size:420px}
.table-wrap{contain:layout paint}
.empty-state{display:grid;justify-items:center;gap:6px;padding:28px 18px;color:var(--muted);text-align:center}
.empty-state h3{margin:0;color:var(--ink)}
.empty-state p{margin:0;max-width:52ch}
form label{color:var(--ink)}
.form-errors,.errorlist{padding:10px 12px;border-left:4px solid #b42318;border-radius:8px;background:#fff0ef;color:#8a1c13}
.form-errors a,.errorlist a{font-weight:800;text-decoration:underline}
input::placeholder,textarea::placeholder{color:#7d8795;opacity:1}

@media(max-width:760px){
  .page-shell{padding:10px}.content{padding:12px 10px 88px}.card{border-radius:16px}
  .table-wrap:not(.attendance-session-table-wrap){overflow-x:auto;-webkit-overflow-scrolling:touch}
  .table-wrap:not(.attendance-session-table-wrap) table{min-width:620px}
  .table-wrap .btn{min-height:38px}.actions{width:100%;justify-content:flex-start}
  .actions .btn{flex:1;min-width:130px;justify-content:center}
  .notification-card-top{align-items:flex-start;flex-direction:column;gap:4px}
}
@media(max-width:520px){
  body{font-size:14px}.page-shell{padding:6px}.content{padding:10px 6px 84px}.card{padding:14px}
  .stat b{font-size:24px}.actions .btn{width:100%;flex-basis:100%}
  .student-status-summary span{flex:1;min-width:100px;text-align:center}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}

/* High-clarity quiz controls: explicit units, color-coded stages, visible random draw. */
.quiz-step-card:nth-of-type(1){border-top:6px solid #2468b4;background:linear-gradient(180deg,#f2f7ff 0,#fff 105px)}
.quiz-step-card:nth-of-type(2){border-top:6px solid #e28422;background:linear-gradient(180deg,#fff7ed 0,#fff 105px)}
.quiz-step-card:nth-of-type(3){border-top:6px solid #198754;background:linear-gradient(180deg,#effbf5 0,#fff 105px)}
.quiz-step-card:nth-of-type(2) .quiz-step-number{background:#c66614}.quiz-step-card:nth-of-type(3) .quiz-step-number{background:#167348}
.quiz-step-card label{font-size:13px}.quiz-step-card .field-help{min-height:18px;color:#586b82;font-size:11px}
.quiz-input-unit{display:flex;align-items:stretch;width:100%}.quiz-input-unit>input{min-width:0;border-radius:12px 0 0 12px!important}.quiz-input-unit>span{display:flex;align-items:center;justify-content:center;min-width:88px;padding:0 13px;border:1px solid #bfcddd;border-left:0;border-radius:0 12px 12px 0;background:#e9f1fa;color:#244a73;font-size:11px;font-weight:900;white-space:nowrap}
.quiz-step-card:nth-of-type(2) .quiz-input-unit>span{border-color:#e5c49d;background:#fff0dc;color:#99500e}.quiz-step-card:nth-of-type(3) .quiz-input-unit>span{border-color:#a9d5bd;background:#e4f7ed;color:#12633e}
.quiz-score-total-field{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,260px);align-items:end;gap:8px 16px;margin-top:4px!important;padding:14px;border:2px solid #7c60c5;border-radius:14px;background:#f5f1ff}.quiz-score-total-field>label{grid-column:1;display:flex;align-items:center;gap:7px;color:#59359d!important;font-size:15px!important}.quiz-score-total-field>label .material-symbols-outlined{font-size:21px}.quiz-score-total-field>.quiz-input-unit{grid-column:2;grid-row:1/3;height:48px}.quiz-score-total-field>.quiz-input-unit input{color:#351d68;font-size:20px;font-weight:950}.quiz-score-total-field>.quiz-input-unit span{border-color:#b7a7df;background:#e9e0ff;color:#573594}.quiz-score-total-field>.field-help{grid-column:1;margin:0}.quiz-score-total-field>.form-field-error{grid-column:1/-1}@media(max-width:580px){.quiz-score-total-field{grid-template-columns:1fr}.quiz-score-total-field>.quiz-input-unit{grid-column:1;grid-row:auto}.quiz-score-total-field>.field-help{grid-column:1}}
.quiz-random-count{container-type:inline-size;display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:13px;margin-top:15px;padding:17px;min-width:0;border:2px solid #28a36a;border-radius:15px;background:#edfbf4}.quiz-random-count.has-error{border-color:#d0443a;background:#fff1ef}.quiz-random-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:#188354;color:#fff}.quiz-random-icon .material-symbols-outlined{font-size:26px}.quiz-random-count label{margin:0;color:#124e35;font-size:15px}.quiz-random-count p{margin:4px 0 0;color:#537262;font-size:11px;line-height:1.5}.quiz-question-stepper{grid-column:2;display:grid;grid-template-columns:48px minmax(0,220px) 48px;width:min(100%,332px);min-width:0;gap:8px;margin-top:3px}.quiz-question-stepper>button{display:grid;place-items:center;width:48px;height:48px;padding:0;border:2px solid #168557;border-radius:13px;background:#fff;color:#116940;font-size:25px;font-weight:950;cursor:pointer}.quiz-question-stepper>button:hover{background:#168557;color:#fff}.quiz-question-stepper>button:focus-visible{outline:3px solid #85cbaa;outline-offset:2px}.quiz-random-count .quiz-input-unit{height:48px;min-width:0}.quiz-random-count .quiz-input-unit>input{display:block!important;flex:1 1 0!important;width:0!important;min-width:0!important;height:48px!important;padding:6px!important;border:2px solid #168557!important;background:#fff!important;color:#111827!important;-webkit-text-fill-color:#111827;opacity:1;font-size:22px!important;font-weight:950!important;line-height:1!important;text-align:center!important}.quiz-random-count .quiz-input-unit>span{flex:0 0 72px;min-width:0;padding:0 7px;border:2px solid #168557;border-left:0;background:#d9f5e6;color:#105c3a;font-size:12px}.quiz-random-error{grid-column:2/-1}.quiz-adaptive-note{grid-column:1/-1;display:flex;align-items:flex-start;gap:9px;margin-top:3px;padding:11px 12px;border:1px solid #79b99a;border-radius:12px;background:#fff;color:#174f36}.quiz-adaptive-note>.material-symbols-outlined{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:9px;background:#188354;color:#fff;font-size:19px}.quiz-adaptive-note>div{display:grid;gap:2px}.quiz-adaptive-note small{color:#426c58;font-size:10.5px;line-height:1.5}
.quiz-bank-picker li label{min-height:48px;border-width:2px}.quiz-bank-picker li label:has(input:checked){border-color:#188354;background:#e6f8ef;color:#125d3c;box-shadow:0 5px 12px rgba(24,131,84,.12)}
@container(max-width:390px){.quiz-random-count{grid-template-columns:40px minmax(0,1fr);gap:9px;padding:12px}.quiz-random-icon{width:38px;height:38px}.quiz-question-stepper,.quiz-random-error{grid-column:1/-1}.quiz-question-stepper{grid-template-columns:42px minmax(0,1fr) 42px;width:100%;gap:6px}.quiz-question-stepper>button{width:42px;height:46px}.quiz-random-count .quiz-input-unit{height:46px}.quiz-random-count .quiz-input-unit>input{height:46px!important}.quiz-random-count .quiz-input-unit>span{flex-basis:62px;padding-inline:4px;font-size:10px}}
@media(max-width:680px){.quiz-random-count{grid-template-columns:44px minmax(0,1fr)}.quiz-question-stepper,.quiz-random-error{grid-column:1/-1}.quiz-question-stepper{grid-template-columns:44px minmax(0,1fr) 44px;width:100%}.quiz-question-stepper>button{width:44px}.quiz-input-unit>span{min-width:0}}

/* Searchable, refreshable question-bank cards. Django 5 renders checkbox groups as divs. */
.quiz-bank-picker{container-type:inline-size}.quiz-bank-toolbar{display:grid;grid-template-columns:minmax(140px,1fr) repeat(2,minmax(0,max-content));gap:9px;margin-bottom:12px;min-width:0}.quiz-bank-toolbar .btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;max-width:100%;white-space:normal;text-align:center}.quiz-bank-toolbar .material-symbols-outlined{font-size:18px}.quiz-bank-search{position:relative;min-width:0;margin:0}.quiz-bank-search>.material-symbols-outlined{position:absolute;left:12px;top:50%;z-index:1;transform:translateY(-50%);color:#5d7187;font-size:19px}.quiz-bank-search input{width:100%;height:100%;min-width:0;padding-left:40px;background:#fff}
.quiz-bank-options{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%!important}.quiz-bank-option{display:grid!important;grid-template-columns:22px minmax(0,1fr) 24px;align-items:center;gap:10px;min-width:0!important;width:100%!important;min-height:66px;margin:0!important;padding:12px 14px!important;border:2px solid #cfdae6!important;border-radius:14px!important;background:#fff!important;color:#203a58!important;cursor:pointer}.quiz-bank-option:hover{border-color:#72a98b!important;background:#f6fcf9!important}.quiz-bank-option:has(input:checked){border-color:#188354!important;background:#e6f8ef!important;box-shadow:0 5px 13px rgba(24,131,84,.13)}.quiz-bank-option>input{width:19px!important;height:19px!important;margin:0!important;accent-color:#188354}.quiz-bank-option-copy{display:grid;min-width:0;gap:3px}.quiz-bank-option-copy b{overflow-wrap:anywhere;font-size:12px;line-height:1.45}.quiz-bank-option-copy small{overflow-wrap:anywhere;color:#66788b;font-size:10px;line-height:1.4}.quiz-bank-check{color:#188354;opacity:0;transform:scale(.7);transition:.15s}.quiz-bank-option:has(input:checked) .quiz-bank-check{opacity:1;transform:scale(1)}.quiz-bank-option[hidden]{display:none!important}.quiz-bank-status{min-height:18px;margin:8px 0 0;color:#277455;font-size:11px;font-weight:800}
@media(max-width:860px){.quiz-bank-toolbar{grid-template-columns:1fr 1fr}.quiz-bank-search{grid-column:1/-1}.quiz-bank-options{grid-template-columns:1fr}}
@media(max-width:520px){.quiz-bank-toolbar{grid-template-columns:1fr}.quiz-bank-search{grid-column:auto}.quiz-bank-toolbar .btn{width:100%}}
@container(max-width:560px){.quiz-bank-toolbar{grid-template-columns:1fr 1fr}.quiz-bank-search{grid-column:1/-1}.quiz-bank-toolbar .btn{width:100%;min-width:0}.quiz-bank-options{grid-template-columns:1fr!important}}
@container(max-width:360px){.quiz-bank-toolbar{grid-template-columns:1fr}.quiz-bank-search{grid-column:auto}}

/* Quiz builder: a three-stage teacher workbench. */
.quiz-builder-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:12px;padding:24px 28px;border:1px solid #cbdceb;border-radius:22px;background:linear-gradient(115deg,#eaf4ff 0%,#fff 62%,#f3fbf7 100%);box-shadow:0 12px 32px rgba(24,59,102,.07)}
.quiz-builder-hero h1{margin:4px 0 5px;color:#15385f;font-size:clamp(24px,3vw,34px)}.quiz-builder-hero p{margin:0;color:#5e7187}.quiz-builder-count{display:grid;min-width:128px;padding:14px 18px;border-radius:17px;background:#173e69;color:#fff;text-align:center;box-shadow:0 10px 22px rgba(23,62,105,.2)}.quiz-builder-count strong{font-size:32px;line-height:1}.quiz-builder-count span{margin-top:5px;font-size:11px;font-weight:800}
.quiz-builder-nav{position:sticky;top:0;z-index:8;display:flex;gap:10px;margin:0 0 18px;padding:10px;border:1px solid #d9e3ed;border-radius:17px;background:rgba(255,255,255,.97);box-shadow:0 8px 22px rgba(27,54,85,.1);backdrop-filter:blur(10px);overflow-x:auto}.quiz-builder-nav a{display:inline-flex;align-items:center;gap:8px;min-width:max-content;min-height:46px;padding:6px 14px 6px 7px;border:2px solid;border-radius:13px;font-size:12px;font-weight:950;box-shadow:0 4px 10px rgba(29,53,82,.08);transition:transform .15s,box-shadow .15s,filter .15s}.quiz-builder-nav .material-symbols-outlined{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;color:#fff;font-size:19px}.quiz-builder-nav .quiz-nav-import{border-color:#8fc4f2;background:#e8f4ff;color:#155d9b}.quiz-builder-nav .quiz-nav-import .material-symbols-outlined{background:#1976c9}.quiz-builder-nav .quiz-nav-create{border-color:#8bd0aa;background:#e9f9f0;color:#116b3e}.quiz-builder-nav .quiz-nav-create .material-symbols-outlined{background:#198754}.quiz-builder-nav .quiz-nav-review{border-color:#efbd68;background:#fff3dc;color:#915006}.quiz-builder-nav .quiz-nav-review .material-symbols-outlined{background:#d97706}.quiz-builder-nav .quiz-nav-bank{border-color:#c6a4ee;background:#f3ebff;color:#66319a}.quiz-builder-nav .quiz-nav-bank .material-symbols-outlined{background:#7b3fba}.quiz-builder-nav .quiz-nav-settings{border-color:#b9c4d2;background:#eef2f6;color:#3d4e63}.quiz-builder-nav .quiz-nav-settings .material-symbols-outlined{background:#53657a}.quiz-builder-nav a:hover,.quiz-builder-nav a.is-active{filter:saturate(1.18);transform:translateY(-2px);box-shadow:0 7px 14px rgba(29,53,82,.16)}.quiz-builder-nav a:focus-visible{outline:3px solid #163a61;outline-offset:2px}
.quiz-publish-status{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px;border-left:6px solid #d6921e;background:#fffaf0}.quiz-publish-status.is-open{border-left-color:#1b9a60;background:#effbf5}.quiz-publish-copy{display:flex;align-items:center;gap:12px}.quiz-publish-copy>.material-symbols-outlined{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#ffe6ad;color:#8b5600}.quiz-publish-status.is-open .quiz-publish-copy>.material-symbols-outlined{background:#d6f5e4;color:#137247}.quiz-publish-copy h3,.quiz-publish-copy p{margin:0}.quiz-publish-copy p{margin-top:3px;color:var(--muted);font-size:12px}
.quiz-step-dot{display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:12px;background:#1f68b5;color:#fff;font-size:15px;font-weight:950;box-shadow:0 6px 13px rgba(31,104,181,.2)}.quiz-card-heading{display:flex;align-items:center;gap:11px}.quiz-card-heading h3{margin:0}.quiz-card-heading p{margin:3px 0 0;color:var(--muted);font-size:11px}
.quiz-bank-import-card{border:2px solid #9fc4e8}.quiz-bank-import-card>summary{padding:17px 20px;background:linear-gradient(120deg,#e8f3ff,#f8fbff)}.quiz-bank-import-form{padding:22px}.quiz-import-primary{align-items:start}.quiz-file-drop{display:grid!important;justify-items:center;gap:5px;min-height:145px;padding:20px!important;border:2px dashed #78a9d8;border-radius:16px;background:#f5faff;color:#1d5792;text-align:center;cursor:pointer;transition:.15s}.quiz-file-drop:hover{border-color:#1f68b5;background:#eaf4ff}.quiz-file-drop>.material-symbols-outlined{font-size:36px}.quiz-file-drop small{color:#667b91;font-weight:500}.quiz-file-drop>span:last-child{margin-top:5px;padding:5px 9px;border-radius:8px;background:#e2e8f0;color:#526477;font-size:10px}.quiz-file-drop>span.has-file{background:#dff7e9;color:#147044}.visually-hidden-file{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;overflow:hidden!important}.required-mark{color:#b42318}.quiz-paste-alternative{margin:14px 0;padding:0;border:1px solid #d8e3ed;border-radius:13px;background:#fbfcfe;overflow:hidden}.quiz-paste-alternative>summary{padding:13px 15px;color:#315779;font-weight:850;cursor:pointer}.quiz-paste-alternative>.field{padding:0 15px 15px}.quiz-paste-alternative .code-source-input{min-height:170px}.quiz-import-button{display:inline-flex!important;align-items:center;gap:7px;min-height:45px;padding-inline:19px!important}.quiz-import-button .material-symbols-outlined{font-size:19px}
.quiz-builder-layout{display:grid;gap:14px;margin-top:14px}.quiz-work-panel{padding:0;overflow:hidden}.quiz-work-panel>summary{display:flex;align-items:center;gap:12px;padding:17px 20px;cursor:pointer;list-style:none}.quiz-work-panel>summary::-webkit-details-marker{display:none}.quiz-work-panel>summary>span:nth-child(2){display:grid;flex:1;gap:3px}.quiz-work-panel>summary small{color:var(--muted);font-weight:500}.quiz-work-panel>summary>.material-symbols-outlined:last-child{transition:transform .18s}.quiz-work-panel[open]>summary>.material-symbols-outlined:last-child{transform:rotate(180deg)}.quiz-panel-body{padding:20px;border-top:1px solid var(--line)}.quiz-create-panel{border:2px solid #a8d5bb}.quiz-create-panel>summary{background:linear-gradient(120deg,#e9f8ef,#fbfffc)}.quiz-create-panel .quiz-step-dot{background:#188354}.quiz-review-panel{border:2px solid #edc67d}.quiz-review-panel>summary{background:linear-gradient(120deg,#fff3dc,#fffdf8)}.quiz-review-panel .quiz-step-dot{background:#c97713}.quiz-summary-count{flex:none!important;padding:6px 10px;border-radius:999px;background:#fff;color:#8c510d;font-size:11px;font-weight:900}.quiz-result-dashboard>summary{background:linear-gradient(120deg,#f2ebff,#fcfaff)}.quiz-analytics-icon{display:grid!important;place-items:center;width:36px;height:36px;border-radius:12px;background:#7440aa;color:#fff}.question-summary-card{border-left:4px solid #76aada}.quiz-empty-questions{display:grid;justify-items:center;gap:7px;padding:42px 18px;text-align:center}.quiz-empty-questions>.material-symbols-outlined{font-size:54px;color:#7ea1c5}.quiz-empty-questions h3,.quiz-empty-questions p{margin:0}.quiz-empty-questions p{max-width:38ch;color:var(--muted)}
@media(max-width:900px){.quiz-builder-layout>#questionList{position:static;max-height:none}.quiz-builder-hero{align-items:flex-start}.quiz-builder-count{min-width:105px}}
@media(max-width:600px){.quiz-builder-hero{flex-direction:column;padding:19px}.quiz-builder-count{grid-template-columns:auto auto;align-items:center;gap:8px;width:100%}.quiz-builder-count span{margin:0}.quiz-bank-import-form{padding:15px}.quiz-builder-nav{top:0;display:grid;grid-template-columns:1fr 1fr;overflow:visible}.quiz-builder-nav a{min-width:0;padding-right:9px}.quiz-builder-nav a:last-child{grid-column:1/-1}.quiz-file-drop{min-height:125px}}

.exam-access-card{border:2px solid #d5b56d;background:linear-gradient(135deg,#fffdf6,#fff)}.exam-access-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:9px;margin:15px 0}.exam-access-row{display:grid;grid-template-columns:20px 27px 1fr;align-items:center;gap:9px;margin:0;padding:12px;border:1px solid #dfE6ee;border-radius:12px;background:#fff;cursor:pointer}.exam-access-row:has(input:checked){border-color:#22935d;background:#edfbf3}.exam-access-row input{width:18px;height:18px;accent-color:#198754}.exam-access-row>.material-symbols-outlined{color:#c27a10}.exam-access-row input:checked~.material-symbols-outlined{color:#198754}.exam-access-row span:last-child{display:grid;gap:2px}.exam-access-row small{color:var(--muted);font-size:10px}.exam-access-card .btn{display:inline-flex;align-items:center;gap:6px}
.exam-linked-field{padding:13px;border:1px solid #c9d9eb;border-radius:14px;background:#f8fbff}.exam-linked-field label{display:flex;align-items:center;gap:7px;color:#173e69}.exam-field-order{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#2168b2;color:#fff;font-size:11px;font-weight:950}.exam-linked-field select{min-height:48px;margin-top:7px;border:2px solid #b8cde3;background:#fff;font-weight:750}.exam-linked-field select:disabled{border-color:#d7dee7;background:#eef1f5;color:#7b8796;cursor:not-allowed}.exam-linked-field .field-help{display:block;margin-top:7px;color:#37658f;font-weight:700}.exam-linked-field .field-help.is-warning{color:#a14f08}

.question-bank-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px;padding:25px 28px;border:1px solid #c8d8e9;border-radius:22px;background:linear-gradient(120deg,#edf6ff,#fff 58%,#f3fbf6);box-shadow:0 13px 30px rgba(23,63,104,.07)}.question-bank-hero h1{margin:4px 0;color:#163a61;font-size:clamp(25px,3vw,35px)}.question-bank-hero p{margin:0;color:#63758a}.bank-hero-metric{display:grid;min-width:120px;padding:14px 18px;border-radius:17px;background:#173e69;color:#fff;text-align:center}.bank-hero-metric strong{font-size:30px;line-height:1}.bank-hero-metric span{margin-top:5px;font-size:10px;font-weight:850}.bank-set-grid{gap:12px}.bank-set-card{display:grid;grid-template-columns:35px 1fr;align-items:start;gap:8px;min-height:118px;padding:16px;border:2px solid #d9e4ee;border-radius:16px;background:#fff;color:#243d59;transition:.16s}.bank-set-card>.material-symbols-outlined{display:grid;place-items:center;width:35px;height:35px;border-radius:11px;background:#edf5ff;color:#2369b0}.bank-set-card b{align-self:end}.bank-set-card p{grid-column:1/-1;margin:2px 0;color:#687b8e;font-size:11px;line-height:1.5}.bank-set-card:hover,.bank-set-card.is-selected{border-color:#2f73ba;background:#f4f9ff;box-shadow:0 8px 18px rgba(38,93,151,.1)}.bank-set-card.is-selected>.material-symbols-outlined{background:#1f68b5;color:#fff}.bank-import-studio{border-top:5px solid #2470b8}.bank-file-drop{display:grid!important;justify-items:center;gap:5px;min-height:140px;padding:19px!important;border:2px dashed #75a8d8;border-radius:16px;background:#f6faff;color:#1d5792;text-align:center;cursor:pointer}.bank-file-drop:hover{border-color:#1f68b5;background:#eaf4ff}.bank-file-drop>.material-symbols-outlined{font-size:35px}.bank-file-drop small{color:#687d92;font-weight:500}.bank-file-drop>span:last-child{margin-top:5px;padding:5px 9px;border-radius:8px;background:#e2e8f0;color:#526477;font-size:10px}.bank-file-drop>span.has-file{background:#dff7e9;color:#147044}.bank-copy-card{border:1px solid #b6dbca;background:linear-gradient(135deg,#f0fbf5,#fff)}.bank-copy-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px}.bank-copy-form .field{margin:0}.bank-copy-form .btn{display:inline-flex;align-items:center;gap:6px;min-height:43px}.bank-question-card{border-left:4px solid #78aadc}.bank-question-actions{display:flex;align-items:flex-start;gap:7px;flex-wrap:wrap;margin-top:13px}.bank-question-actions details>summary{list-style:none}.bank-question-actions details>summary::-webkit-details-marker{display:none}.bank-question-actions details[open]{width:100%}.bank-item-edit{display:grid;gap:10px;max-width:760px;margin-top:9px;padding:15px;border:1px solid #d8e4ee;border-radius:13px;background:#f8fbff}.bank-item-edit .field{margin:0}.bank-item-edit .btn{justify-self:start}
@media(max-width:650px){.question-bank-hero{flex-direction:column;align-items:stretch;padding:19px}.bank-hero-metric{grid-template-columns:auto auto;align-items:center;gap:8px}.bank-hero-metric span{margin:0}.bank-copy-form{grid-template-columns:1fr}.bank-copy-form .btn{justify-content:center}.bank-question-actions>.btn,.bank-question-actions>form{flex:1}.bank-question-actions form .btn{width:100%}}

/* Spreadsheet view for scanning a large question bank. */
.bank-table-card{padding:0;overflow:hidden}.bank-table-card>.table-panel-title{padding:18px 20px;border-bottom:1px solid #dce5ee}.bank-table-card>.table-panel-title h2{margin:0}.bank-table-card>.table-panel-title p{margin:4px 0 0;font-size:11px}.bank-sheet-wrap{margin:0}.bank-sheet{min-width:1180px;border-collapse:separate;border-spacing:0}.bank-sheet th{position:sticky;top:0;z-index:2;padding:12px 11px;background:#173e69;color:#fff;font-size:10px;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap}.bank-sheet td{padding:11px;border-bottom:1px solid #e3eaf1;vertical-align:top;font-size:11px}.bank-sheet tbody tr:nth-child(even){background:#fbfdff}.bank-sheet tbody tr:hover{background:#f0f7ff}.bank-sheet th:not(:last-child),.bank-sheet td:not(:last-child){border-right:1px solid #e7edf3}.bank-sheet th:nth-child(1),.bank-sheet td:nth-child(1){width:42px;text-align:center}.bank-sheet th:nth-child(2){min-width:320px}.bank-sheet th:nth-child(3){min-width:135px}.bank-sheet th:nth-child(4){min-width:120px}.bank-question-cell{max-width:480px}.bank-question-cell b{display:block;line-height:1.5}.bank-question-cell small{display:block;margin-top:5px;color:#718093}.bank-status{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:850;white-space:nowrap}.bank-status.active{background:#dcf6e7;color:#137044}.bank-status.paused{background:#fff0ed;color:#b33b2f}.bank-table-actions{display:flex;gap:5px;min-width:265px;flex-wrap:wrap}.bank-table-actions>.btn,.bank-table-actions form .btn{min-height:32px;padding:6px 8px;font-size:10px}.bank-table-actions details>summary{list-style:none}.bank-table-actions details>summary::-webkit-details-marker{display:none}.bank-table-actions details[open]{width:100%}.bank-detail-panel{min-width:500px;margin-top:8px;padding:14px;border:1px solid #c9daea;border-radius:12px;background:#f7fbff;box-shadow:0 12px 25px rgba(30,58,93,.12)}.bank-detail-panel>p{margin:0 0 7px}.bank-detail-panel ul{margin:6px 0 12px;padding-left:20px}.bank-detail-panel .bank-item-edit{max-width:none;margin:0;background:#fff}
/* Typing Academy — a keyboard-led practice environment */
.typing-hero{background:linear-gradient(120deg,#09203f 0%,#123d62 58%,#075985 100%);color:#fff;border-radius:24px;padding:34px 38px;margin-bottom:22px;display:flex;align-items:center;justify-content:space-between;gap:24px;overflow:hidden;position:relative}.typing-hero.compact{padding:26px 32px}.typing-hero h1{font-size:clamp(2rem,4vw,3.6rem);letter-spacing:-.045em;margin:5px 0}.typing-hero p{margin:0;color:#d8eafa;font-size:1.05rem}.typing-eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;font-weight:800;color:#7dd3fc}.typing-hero-keys{display:grid;grid-template-columns:repeat(4,52px);gap:8px;transform:rotate(-5deg);opacity:.94}.typing-hero-keys kbd{height:48px;display:grid;place-items:center;background:#f8fafc;color:#123d62;border-radius:9px;box-shadow:0 5px 0 #9db2c4;font-weight:800}.typing-hero-keys .space{grid-column:span 4;width:auto;font-size:.65rem}.typing-course-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.typing-course-card{background:#fff;border:1px solid #dbe6ef;border-radius:18px;padding:24px;box-shadow:0 10px 30px rgba(9,32,63,.07)}.typing-course-code{font:800 .75rem/1 monospace;letter-spacing:.12em;color:#0284c7}.typing-course-card h2{margin:10px 0 4px}.typing-card-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #e7eef4;margin-top:20px;padding-top:16px}.typing-setup-form{max-width:900px;margin:auto}.typing-group-list{display:grid;gap:8px;padding:12px;background:#f5f9fc;border-radius:10px}.typing-setup-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.typing-progress-ring{width:122px;height:122px;display:grid;place-content:center;text-align:center;border-radius:50%;background:conic-gradient(#38bdf8 var(--progress),rgba(255,255,255,.18) 0);position:relative}.typing-progress-ring:before{content:"";position:absolute;inset:10px;background:#123d62;border-radius:50%}.typing-progress-ring strong,.typing-progress-ring span{position:relative}.typing-progress-ring strong{font-size:2rem}.typing-progress-ring span{font-size:.75rem;color:#bae6fd}.typing-level-strip{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:22px}.typing-level-strip>div{display:grid;grid-template-columns:auto 1fr;gap:2px 18px;align-items:center;background:#fff;border:1px solid #dbe6ef;border-radius:15px;padding:16px 20px}.typing-level-strip span{grid-row:span 2;font-weight:800;color:#0369a1}.typing-level-strip strong{font-size:1.15rem}.typing-level-strip small{color:#64748b}.typing-paths{display:grid;grid-template-columns:1fr 1fr;gap:22px}.typing-path{background:#fff;border:1px solid #dbe6ef;border-radius:20px;padding:22px}.typing-path>header{display:flex;align-items:center;gap:14px;margin-bottom:18px}.typing-path h2{margin:2px 0}.typing-path-mark{width:54px;height:54px;border-radius:15px;background:#e0f2fe;color:#0369a1;display:grid;place-items:center;font-size:1.35rem;font-weight:900}.typing-path.english .typing-path-mark{background:#ede9fe;color:#6d28d9}.typing-stage-list{display:grid;gap:10px}.typing-stage{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;border:1px solid #e2e8f0;border-radius:14px;padding:13px;background:#fff;transition:.18s}.typing-stage:not(.locked):hover{border-color:#38bdf8;transform:translateY(-1px);box-shadow:0 7px 18px rgba(14,116,144,.1)}.typing-stage.passed{background:#f0fdf4;border-color:#bbf7d0}.typing-stage.locked{opacity:.55;background:#f8fafc}.stage-index{font:800 .8rem/1 monospace;color:#64748b}.stage-copy h3{font-size:.98rem;margin:0 0 4px}.stage-copy h3 span{font-size:.58rem;background:#0f172a;color:white;padding:3px 5px;border-radius:4px;margin-left:5px}.stage-copy p,.stage-copy small{margin:0;color:#64748b;font-size:.78rem}.stage-action{display:flex;align-items:center;gap:4px;color:#0369a1;font-weight:800;text-decoration:none;font-size:.78rem}.stage-lock{color:#94a3b8}.typing-metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.typing-metric-grid>div{background:#fff;border:1px solid #dbe6ef;border-radius:16px;padding:18px;display:grid;gap:5px}.typing-metric-grid span{color:#64748b}.typing-metric-grid strong{font-size:1.8rem;color:#0c4a6e}.typing-metric-grid small{font-size:.7rem}.typing-device-block{position:fixed;inset:0;z-index:9999;background:#07182b;color:#fff;display:grid;place-items:center;text-align:center;padding:25px}.typing-device-block[hidden]{display:none}.typing-device-block>div{max-width:480px}.typing-device-block .material-symbols-outlined{font-size:5rem;color:#38bdf8}.typing-lab{max-width:1120px;margin:0 auto}.typing-lab-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;margin-bottom:18px}.typing-lab-head>div:nth-child(2){text-align:center}.typing-lab-head h1{margin:3px 0;font-size:1.65rem}.typing-lab-head span{font-size:.76rem;color:#64748b}.typing-back{display:flex;align-items:center;color:#475569;text-decoration:none}.typing-lab-target{text-align:right}.typing-lab-target span,.typing-lab-target b{display:block}.typing-live-board{display:grid;grid-template-columns:repeat(4,1fr);background:#09203f;color:#fff;border-radius:18px 18px 0 0;overflow:hidden}.typing-live-board>div{padding:15px 20px;border-right:1px solid rgba(255,255,255,.12)}.typing-live-board span{display:block;color:#93c5dd;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.typing-live-board strong{font-size:1.25rem}.typing-paper{background:#fff;border:1px solid #dbe6ef;border-top:0;border-radius:0 0 18px 18px;padding:28px;box-shadow:0 18px 40px rgba(9,32,63,.08)}.typing-instruction{display:flex;gap:12px;align-items:center;border-bottom:1px solid #e2e8f0;padding-bottom:18px}.typing-instruction span{color:#0284c7}.typing-instruction b,.typing-instruction small{display:block}.typing-instruction small{color:#64748b}.typing-target-text{font:500 clamp(1.2rem,2vw,1.55rem)/2 "Noto Sans Thai",sans-serif;letter-spacing:.015em;padding:25px 4px;min-height:120px;user-select:none}.typing-target-text span{border-radius:3px}.typing-target-text .correct{color:#15803d;background:#dcfce7}.typing-target-text .wrong{color:#b91c1c;background:#fee2e2;text-decoration:underline}.typing-target-text .current{background:#bae6fd;box-shadow:inset 2px 0 #0284c7}.typing-input-wrap{display:block;position:relative}.typing-input-wrap textarea{width:100%;resize:none;border:2px solid #cbd5e1;background:#f8fafc;border-radius:12px;padding:18px;font:500 1.18rem/1.75 "Noto Sans Thai",sans-serif;outline:none}.typing-input-wrap textarea:focus{border-color:#0284c7;background:#fff;box-shadow:0 0 0 4px #e0f2fe}.typing-caret-note{position:absolute;right:13px;bottom:10px;font-size:.7rem;color:#64748b}.typing-lab-actions{display:flex;justify-content:space-between;align-items:center;padding:18px 2px}.typing-lab-actions p{color:#64748b}.typing-result-modal{position:fixed;inset:0;z-index:9998;background:rgba(3,14,28,.74);display:grid;place-items:center;padding:20px;backdrop-filter:blur(8px)}.typing-result-modal[hidden]{display:none}.typing-result-card{width:min(540px,100%);background:#fff;border-radius:24px;padding:34px;text-align:center;box-shadow:0 30px 90px rgba(0,0,0,.3)}.typing-result-icon{font-size:4rem;color:#0284c7}.typing-result-card h2{font-size:2rem;margin:6px 0 20px}.typing-result-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.typing-result-numbers div{background:#f0f7fb;border-radius:12px;padding:14px 6px}.typing-result-numbers strong,.typing-result-numbers span{display:block}.typing-result-numbers strong{font-size:1.35rem;color:#075985}.typing-result-numbers span{font-size:.65rem;text-transform:uppercase;color:#64748b}.typing-result-card p{color:#475569;margin:20px 0}.typing-result-card .full{display:block}
@media(max-width:900px){.typing-paths{grid-template-columns:1fr}.typing-metric-grid{grid-template-columns:1fr 1fr}.typing-hero-keys{display:none}.typing-lab-head{grid-template-columns:1fr 1fr}.typing-lab-head>div:nth-child(2){grid-column:1/-1;grid-row:1;text-align:left}.typing-live-board{grid-template-columns:1fr 1fr}.typing-level-strip{grid-template-columns:1fr}}
@media(max-width:600px){.typing-hero{padding:24px}.typing-level-strip,.typing-metric-grid{grid-template-columns:1fr}.typing-stage{grid-template-columns:34px 1fr}.stage-action,.stage-lock{grid-column:2}.typing-result-numbers{grid-template-columns:1fr}.typing-paper{padding:18px}}
.typing-analysis{display:grid;grid-template-columns:1.45fr .75fr;gap:20px;margin-top:22px}.typing-attempt-list{display:grid;gap:8px}.typing-attempt-list>div{display:grid;grid-template-columns:80px 1fr 1fr 1fr auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid #e2e8f0;font-size:.82rem}.typing-attempt-lang{font-weight:800;color:#0369a1}.typing-attempt-list small{color:#64748b}.typing-weak-keys{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}.typing-weak-keys>div{text-align:center}.typing-weak-keys kbd{display:grid;place-items:center;height:46px;background:#0c4a6e;color:#fff;border-radius:9px;box-shadow:0 4px 0 #082f49;font-size:1.1rem}.typing-weak-keys span{display:block;font-size:.66rem;color:#64748b;margin-top:7px}@media(max-width:900px){.typing-analysis{grid-template-columns:1fr}.typing-attempt-list>div{grid-template-columns:70px 1fr 1fr}.typing-attempt-list small{display:none}}
.typing-preview-panel{margin-bottom:20px}.typing-preview-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px}.typing-preview-list a{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;padding:11px;border:1px solid #dbe6ef;border-radius:10px;color:#0f172a;text-decoration:none}.typing-preview-list a:hover{border-color:#38bdf8;background:#f0f9ff}.typing-preview-list a>span:first-child{font-size:.68rem;color:#0369a1;font-weight:800}.typing-preview-bar{display:flex;align-items:center;justify-content:space-between;gap:15px;background:#fff7ed;border:1px solid #fed7aa;border-radius:14px;padding:12px 15px;margin-bottom:15px}.typing-preview-bar>div,.typing-preview-bar nav{display:flex;align-items:center;gap:8px}.typing-preview-bar b,.typing-preview-bar small{display:block}.typing-preview-bar small{color:#9a3412}@media(max-width:760px){.typing-preview-bar{align-items:flex-start;flex-direction:column}.typing-preview-bar nav{flex-wrap:wrap}}
.typing-course-action{display:inline-flex;align-items:center;gap:5px!important;background:#e0f2fe!important;border-color:#7dd3fc!important;color:#075985!important;white-space:nowrap}.typing-course-action:hover{background:#bae6fd!important;border-color:#38bdf8!important}.typing-course-action .material-symbols-outlined{font-size:1.05rem}
.shared-lesson-button{display:inline-flex!important;align-items:center;gap:5px}.shared-lesson-button .material-symbols-outlined{font-size:1.05rem}.shared-hub-hero{display:flex;justify-content:space-between;align-items:center;gap:25px;background:linear-gradient(125deg,#102a43,#075985);color:#fff;border-radius:22px;padding:32px 36px;margin-bottom:22px;overflow:hidden}.shared-hub-hero h1{font-size:clamp(2rem,4vw,3.25rem);letter-spacing:-.04em;margin:5px 0}.shared-hub-hero p{max-width:760px;color:#d8effb;margin:0}.shared-hub-symbol{font-size:7rem!important;color:#7dd3fc;opacity:.7;transform:rotate(-8deg)}.shared-module-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);gap:20px}.shared-module-card{background:#fff;border:1px solid #dbe6ef;border-radius:20px;padding:24px;box-shadow:0 10px 30px rgba(9,32,63,.06)}.shared-module-card.typing-module{display:grid;grid-template-columns:155px 1fr;gap:24px}.shared-module-visual{border-radius:16px;background:#082f49;color:#fff;display:grid;place-content:center;text-align:center;gap:18px;min-height:230px}.shared-module-visual>.material-symbols-outlined{font-size:4rem;color:#7dd3fc}.shared-module-visual div{display:flex;gap:6px}.shared-module-visual kbd{width:34px;height:34px;display:grid;place-items:center;background:#fff;color:#075985;border-radius:7px;box-shadow:0 4px 0 #7dd3fc;font-weight:900}.shared-module-meta{display:flex;align-items:center;justify-content:space-between;color:#0369a1;font-size:.72rem;font-weight:900;letter-spacing:.1em}.shared-module-status{letter-spacing:0;background:#e0f2fe;padding:5px 8px;border-radius:999px}.shared-module-status.active{background:#dcfce7;color:#166534}.shared-module-content h2{font-size:1.65rem;margin:10px 0}.shared-module-content p,.shared-module-content li{color:#526476}.shared-module-card footer{grid-column:1/-1;display:flex;justify-content:flex-end;gap:9px;border-top:1px solid #e2e8f0;padding-top:17px}.shared-module-future{display:grid;align-content:center;text-align:center;border-style:dashed;background:#f8fafc}.shared-future-icon .material-symbols-outlined{font-size:3.4rem;color:#94a3b8}.shared-module-future p{color:#64748b}.shared-module-future>span{font-size:.72rem;font-weight:800;color:#0369a1;text-transform:uppercase;letter-spacing:.12em}@media(max-width:850px){.shared-module-grid{grid-template-columns:1fr}.shared-module-card.typing-module{grid-template-columns:1fr}.shared-module-visual{min-height:150px}.shared-hub-symbol{display:none}}
.classwork-icon.typing{background:linear-gradient(135deg,#075985,#38bdf8);color:#fff;font-size:0}.classwork-icon.typing:after{content:'⌨';font-size:1.1rem}
.challenge-guide{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0 0 20px}.challenge-guide>div{background:#fff;border:1px solid #dbe6ef;border-radius:14px;padding:18px 22px}.challenge-guide b{font-size:1.05rem;color:#075985}.challenge-guide ol,.challenge-guide ul{margin:10px 0;padding-left:22px}.challenge-guide li{margin:5px 0}.challenge-guide p{margin:10px 0 0;color:#b45309;font-weight:700}.challenge-diagnosis{text-align:left;margin:18px 0;max-height:45vh;overflow:auto;border-top:1px solid #e2e8f0;padding-top:14px}.challenge-diagnosis h3{margin:0 0 8px;color:#0f172a}.challenge-diagnosis>ul{margin:0 0 14px;padding-left:22px;color:#b45309}.challenge-diagnosis article{padding:12px 0;border-top:1px solid #e2e8f0}.challenge-diagnosis article>p{margin:4px 0;font-size:.82rem}.challenge-round-reason{color:#b45309}.challenge-error-list{display:flex;flex-wrap:wrap;gap:5px}.challenge-error-list span{font-size:.72rem;background:#fee2e2;color:#991b1b;border-radius:6px;padding:4px 7px}@media(max-width:700px){.challenge-guide{grid-template-columns:1fr}}
.typing-rules-card{margin-bottom:18px;border-left:5px solid #0284c7}.typing-rules-card h2{margin-top:0}.typing-rules-card li{margin:7px 0}.typing-lesson-feedback{text-align:left;margin:12px 0;max-height:180px;overflow:auto}.typing-lesson-feedback ul{color:#b45309;padding-left:22px}.typing-lesson-feedback #commonErrors{display:flex;flex-wrap:wrap;gap:6px}.typing-lesson-feedback #commonErrors b{width:100%;font-size:.82rem}.typing-lesson-feedback #commonErrors span{font-size:.72rem;background:#fee2e2;color:#991b1b;border-radius:6px;padding:5px 8px}
.typing-adaptive-banner{display:flex;justify-content:space-between;gap:18px;align-items:center;background:#ecfeff;border:1px solid #67e8f9;border-left:5px solid #0891b2;border-radius:14px;padding:14px 18px;margin-bottom:14px}.typing-adaptive-banner b,.typing-adaptive-banner span{display:block}.typing-adaptive-banner span,.typing-adaptive-banner p{font-size:.78rem;color:#155e75;margin:3px 0}.typing-adaptive-banner kbd{background:#164e63;color:#fff;border-radius:4px;padding:2px 5px}@media(max-width:700px){.typing-adaptive-banner{align-items:flex-start;flex-direction:column}}
.typing-result-card .typing-encouragement{background:#ecfdf5;border:1px solid #86efac;color:#166534;border-radius:10px;padding:10px 12px;font-weight:800;margin:12px 0}
.typing-teacher-hero .typing-teacher-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.typing-teacher-actions form{margin:0}.typing-teacher-actions .btn{display:inline-flex;align-items:center;gap:6px}.typing-early-notice{display:flex;align-items:center;gap:12px;margin:-8px 0 18px;padding:13px 16px;border:1px solid #7dd3fc;border-left:5px solid #0284c7;border-radius:12px;background:#f0f9ff;color:#075985}.typing-early-notice div,.typing-early-notice b,.typing-early-notice span{display:block}.typing-early-notice div span{color:#48687c;font-size:.8rem}.typing-teacher-summary{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:18px;border:1px solid #d7e3ec;border-radius:16px;background:#fff;overflow:hidden}.typing-teacher-summary>div{display:grid;gap:3px;padding:17px 20px;border-left:1px solid #d7e3ec}.typing-teacher-summary>div:first-child{border-left:0}.typing-teacher-summary span,.typing-teacher-summary small{color:#66798a;font-size:.76rem}.typing-teacher-summary strong{color:#123d62;font-size:1.8rem;font-variant-numeric:tabular-nums}.typing-teacher-summary strong small{color:inherit}.typing-teacher-summary .needs-attention{background:#fff8e7}.typing-teacher-summary .needs-attention strong{color:#a85b00}.typing-insight-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);gap:18px;margin-bottom:18px}.typing-group-chart,.typing-watchlist{margin:0}.typing-bar-list{display:grid;gap:15px}.typing-bar-row{display:grid;grid-template-columns:minmax(100px,160px) 1fr 70px;gap:13px;align-items:center}.typing-bar-row div:first-child b,.typing-bar-row div:first-child span{display:block}.typing-bar-row div:first-child span{color:#718092;font-size:.7rem}.typing-bar-track{height:13px;border-radius:20px;background:repeating-linear-gradient(90deg,#e4ebf1 0,#e4ebf1 calc(5% - 2px),#fff calc(5% - 2px),#fff 5%);overflow:hidden}.typing-bar-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0e7490,#38bdf8)}.typing-bar-row>strong{text-align:right;color:#075985;font-variant-numeric:tabular-nums}.typing-watchlist h3{margin:10px 0 6px;color:#4c6073;font-size:.76rem;text-transform:uppercase;letter-spacing:.08em}.typing-watchlist .watch-heading{margin-top:18px}.typing-person-row{display:grid;grid-template-columns:32px 1fr auto;gap:9px;align-items:center;padding:8px 0;border-top:1px solid #e6edf2}.typing-person-row>span,.typing-person-row>span small{display:block}.typing-person-row>span small{color:#718092;font-size:.68rem}.typing-person-row>strong{color:#075985;font-size:.8rem}.typing-person-row.warning{color:#9a4d00}.typing-clear-state{margin:6px 0;padding:9px 12px;border-radius:9px;background:#ecfdf5;color:#18724d;font-size:.78rem}.student-code{display:block}.lesson-ticks{display:grid;grid-template-columns:repeat(10,6px);gap:3px;min-width:87px}.lesson-ticks i{height:13px;border-radius:2px;background:#dfe7ed}.lesson-ticks i.done{background:#159a68}.typing-status{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:.7rem;font-weight:800;white-space:nowrap}.typing-status.complete{background:#dcfce7;color:#166534}.typing-status.active{background:#e0f2fe;color:#075985}.typing-status.idle{background:#eef2f5;color:#64748b}.typing-status.warning{background:#fff0ce;color:#925500}.typing-student-progress{margin-bottom:18px}.typing-preview-panel summary{display:flex;justify-content:space-between;cursor:pointer;list-style:none}.typing-preview-panel summary span{color:#718092;font-size:.76rem}.typing-preview-panel[open] summary{margin-bottom:16px}.challenge-course-rank{display:grid;grid-template-columns:220px 1fr;gap:20px;margin-bottom:18px;padding:18px 20px;border:1px solid #d8e5ee;border-radius:16px;background:#fff}.challenge-course-rank h2,.challenge-course-rank p{margin:4px 0}.challenge-course-rank p{color:#64748b;font-size:.75rem}.challenge-course-rank ol{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px;margin:0;padding:0;list-style:none}.challenge-course-rank li{display:grid;grid-template-columns:35px 1fr auto;gap:8px;align-items:center;padding:6px 8px;border-radius:8px}.challenge-course-rank li.me{background:#e0f2fe;box-shadow:inset 3px 0 #0284c7}.challenge-course-rank li span,.challenge-course-rank li small{display:block}.challenge-course-rank li small{color:#718092;font-size:.65rem}.challenge-course-rank li strong{color:#075985;font-size:.75rem}.challenge-course-rank .empty{grid-column:1/-1;color:#64748b}
@media(max-width:900px){.typing-teacher-summary{grid-template-columns:1fr 1fr}.typing-teacher-summary>div:nth-child(3){border-left:0;border-top:1px solid #d7e3ec}.typing-teacher-summary>div:nth-child(4){border-top:1px solid #d7e3ec}.typing-insight-grid{grid-template-columns:1fr}.challenge-course-rank{grid-template-columns:1fr}}
@media(max-width:600px){.typing-teacher-hero{align-items:stretch}.typing-teacher-actions{justify-content:stretch!important}.typing-teacher-actions form,.typing-teacher-actions .btn{width:100%}.typing-teacher-summary{grid-template-columns:1fr}.typing-teacher-summary>div{border-left:0!important;border-top:1px solid #d7e3ec}.typing-teacher-summary>div:first-child{border-top:0}.typing-bar-row{grid-template-columns:90px 1fr 55px}.challenge-course-rank ol{grid-template-columns:1fr}}
.typing-challenge-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;background:#eef2f6;border:1px solid #cbd5e1;border-radius:18px;padding:20px 24px;margin-bottom:20px}.typing-challenge-banner>div{display:flex;align-items:center;gap:15px}.typing-challenge-banner>div>.material-symbols-outlined{font-size:3rem;color:#64748b}.typing-challenge-banner h2,.typing-challenge-banner p{margin:2px 0}.typing-challenge-banner.unlocked{background:linear-gradient(115deg,#082f49,#075985);color:#fff;border-color:#075985}.typing-challenge-banner.unlocked p{color:#bae6fd}.typing-challenge-banner.unlocked>div>.material-symbols-outlined{color:#facc15}.typing-leaderboard{margin-bottom:20px}.typing-rank-list{display:grid;gap:6px}.typing-rank-list>div{display:grid;grid-template-columns:48px 1fr 60px 110px 80px;align-items:center;gap:10px;padding:10px 12px;border-top:1px solid #e2e8f0}.typing-rank-list>div.me{background:#fef9c3;border-radius:10px}.typing-rank-list b{color:#075985}.challenge-shell{max-width:960px;margin:auto}.challenge-shell>header{text-align:center;margin-bottom:24px}.challenge-shell h1{font-size:clamp(2.3rem,5vw,4rem);margin:6px}.challenge-progress{display:grid;grid-template-columns:150px 1fr 70px;gap:15px;align-items:center;background:#082f49;color:#fff;padding:15px 20px;border-radius:15px 15px 0 0}.challenge-progress>div{height:7px;background:#274c64;border-radius:9px;overflow:hidden}.challenge-progress i{display:block;height:100%;background:#38bdf8}.challenge-progress strong{text-align:right;font-size:1.4rem;color:#facc15}.challenge-arena{background:#fff;border:1px solid #dbe6ef;border-top:0;padding:28px;border-radius:0 0 16px 16px;box-shadow:0 18px 45px rgba(9,32,63,.1)}.challenge-prompt{font-size:1.35rem;line-height:1.85;padding:18px;background:#f0f9ff;border-radius:12px;user-select:none}.challenge-arena textarea{width:100%;margin-top:18px;padding:18px;border:2px solid #94a3b8;border-radius:12px;font-size:1.2rem;line-height:1.7;min-height:150px}.challenge-live{display:flex;justify-content:space-between;margin-top:10px;color:#475569}.challenge-shell>.btn{margin-top:14px}.typing-certificate{max-width:980px;min-height:650px;margin:20px auto;padding:65px;text-align:center;background:#fff;border:14px double #075985;box-shadow:0 25px 70px rgba(0,0,0,.12);position:relative}.certificate-kicker{letter-spacing:.25em;text-transform:uppercase;color:#0369a1;font-weight:800}.typing-certificate h1{font-size:3rem;margin:22px}.typing-certificate h2{font-size:2.5rem;border-bottom:1px solid #94a3b8;display:inline-block;padding:0 40px 10px}.certificate-level{font-size:5rem;font-weight:950;color:#075985;margin:15px}.typing-certificate small{display:block;margin:18px;color:#64748b}.typing-certificate footer{display:flex;justify-content:space-between;border-top:1px solid #cbd5e1;padding-top:22px;margin-top:45px;font-size:.78rem}@media print{body>*:not(.app-shell){display:none!important}.sidebar,.topbar,.no-print{display:none!important}.main-content{margin:0!important;padding:0!important}.typing-certificate{box-shadow:none;margin:0;max-width:none}}@media(max-width:700px){.typing-rank-list>div{grid-template-columns:40px 1fr 55px}.typing-rank-list>div span:nth-of-type(2),.typing-rank-list small{display:none}.typing-challenge-banner{align-items:flex-start;flex-direction:column}.challenge-progress{grid-template-columns:1fr auto}.challenge-progress>div{grid-row:2;grid-column:1/-1}.typing-certificate{padding:30px}.typing-certificate h1{font-size:2rem}}

/* 2026 dashboard focus: put urgent work first and progressively disclose history. */
.account-readiness{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin:0 0 18px;
}
.account-readiness>a{
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  align-items:center;
  gap:11px;
  min-height:72px;
  padding:12px 14px;
  border:1px solid #dbe4ed;
  border-radius:15px;
  background:#fff;
  color:#173451;
  box-shadow:0 6px 16px rgba(20,48,78,.045);
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.account-readiness>a:hover{transform:translateY(-2px);border-color:#7ea6c8;box-shadow:0 10px 22px rgba(20,48,78,.09)}
.account-readiness>a>.material-symbols-outlined{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:#e8f1f9;color:#1e6198;font-size:24px}
.account-readiness b,.account-readiness small{display:block}.account-readiness small{margin-top:2px;color:#64758a;font-size:13px;line-height:1.45}

.dashboard-progressive{
  margin-top:18px;
  border:1px solid #d8e2ec;
  border-radius:18px;
  background:#fff;
  box-shadow:0 8px 24px rgba(20,48,78,.055);
  overflow:hidden;
}
.dashboard-progressive>summary{
  display:grid;
  grid-template-columns:44px minmax(0,1fr) 28px;
  align-items:center;
  gap:12px;
  min-height:76px;
  padding:14px 18px;
  list-style:none;
  cursor:pointer;
  color:#173451;
  background:linear-gradient(120deg,#f7fbff,#fff 68%,#fff9e9);
}
.dashboard-progressive>summary::-webkit-details-marker{display:none}
.dashboard-progressive>summary>.material-symbols-outlined:first-child{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:#173e69;color:#f2c94c}
.dashboard-progressive>summary b,.dashboard-progressive>summary small{display:block}.dashboard-progressive>summary small{margin-top:2px;color:#5f7084;font-size:13px}
.dashboard-progressive-chevron{transition:transform .18s ease}.dashboard-progressive[open] .dashboard-progressive-chevron{transform:rotate(180deg)}
.dashboard-progressive-body{padding:18px;border-top:1px solid #e1e8ef;background:#f8fafc}

.teacher-priority-board,.admin-priority-board{margin-bottom:18px;border-left:5px solid #d2ac34;background:linear-gradient(135deg,#fff 0%,#fffaf0 100%)}
.teacher-priority-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}
.teacher-priority-item{display:grid;grid-template-columns:40px 1fr 20px;align-items:center;gap:10px;min-height:82px;padding:12px;border:1px solid #e0e6ed;border-radius:14px;background:#fff;color:#173451}
.teacher-priority-item>.material-symbols-outlined:first-child{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#fff3d9;color:#a36207}
.teacher-priority-item span:nth-child(2),.teacher-priority-item b,.teacher-priority-item small{display:block}.teacher-priority-item b{font-size:24px;line-height:1.1}.teacher-priority-item small{margin-top:3px;color:#5d6e81;font-size:13px}
.teacher-priority-item.is-blue>.material-symbols-outlined:first-child{background:#e8f2ff;color:#216ab0}.teacher-priority-item.is-red>.material-symbols-outlined:first-child{background:#fff0ed;color:#b84539}.teacher-priority-item.is-purple>.material-symbols-outlined:first-child{background:#f2edff;color:#6b4fbf}
.teacher-empty-guide{margin:0 0 18px;border:1px solid #cddde9}
.admin-priority-board .admin-status-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:14px}
.admin-actions-only{display:block;margin-top:18px}.admin-activity-actions{justify-content:flex-end;margin-bottom:12px}

.main .btn,.main button:not(.icon-button),.main input,.main select{min-height:44px}
.main .card p,.main .card li{font-size:max(14px,1em)}

@media(min-width:1200px){
  .admin-nav-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
  .admin-nav-card{min-height:112px;padding:13px;gap:7px}
  .admin-nav-icon{width:36px;height:36px}.admin-nav-value{font-size:27px}
}
@media(max-width:900px){
  .account-readiness{grid-template-columns:1fr}
  .teacher-priority-grid,.admin-priority-board .admin-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nav-mobile .nav-link,.nav-mobile .nav-demo{min-height:62px;font-size:12px}
}
@media(max-width:560px){
  .teacher-priority-grid,.admin-priority-board .admin-status-grid{grid-template-columns:1fr}
  .dashboard-progressive>summary{grid-template-columns:40px minmax(0,1fr) 24px;padding:12px}
  .dashboard-progressive>summary>.material-symbols-outlined:first-child{width:40px;height:40px}
  .dashboard-progressive-body{padding:12px}
  .account-readiness>a{min-height:68px}
}

/* Notification Center: a compact action feed shared by desktop and mobile. */
.notification-center-hero{display:flex;justify-content:space-between;align-items:end;gap:24px;margin:0 0 16px;padding:25px 28px;border-radius:20px;background:linear-gradient(125deg,#12385e,#1c6795);color:#fff}.notification-center-hero h1{margin:5px 0;font-size:clamp(1.75rem,3vw,2.45rem)}.notification-center-hero p{margin:0;color:#d8edf9}.notification-center-summary{display:grid;place-items:center;min-width:125px;padding:13px 18px;border:1px solid rgba(255,255,255,.25);border-radius:15px;background:rgba(255,255,255,.12)}.notification-center-summary strong{font-size:2rem;line-height:1}.notification-center-summary span{margin-top:4px;font-size:.75rem}.notification-filter-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 20px;padding:8px;border:1px solid #dbe5ee;border-radius:14px;background:#fff}.notification-filter-bar>a{padding:8px 11px;border-radius:9px;color:#52687d;font-size:.82rem;font-weight:800;text-decoration:none}.notification-filter-bar>a:hover,.notification-filter-bar>a.is-active{background:#eaf4fb;color:#125681}.notification-filter-bar form{margin-left:auto}.notification-filter-bar .btn{min-height:36px;padding:6px 11px;font-size:.8rem}.notification-center-section{margin:0 0 26px}.notification-center-list,.teacher-dashboard-actions,.student-dashboard-actions{display:grid;gap:9px}.notification-center-card{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:13px;padding:13px 14px;border:1px solid #dce6ee;border-left:4px solid #98aaba;border-radius:15px;background:#fff;box-shadow:0 5px 15px rgba(18,56,94,.04)}.notification-center-card.priority-urgent{border-left-color:#d7463c;background:linear-gradient(90deg,#fff7f5,#fff 38%)}.notification-center-card.priority-high{border-left-color:#d78a13;background:linear-gradient(90deg,#fffaf0,#fff 38%)}.notification-center-card.priority-normal{border-left-color:#2581b9}.notification-center-card.is-unread{border-color:#91bddd;box-shadow:0 8px 20px rgba(24,96,145,.1)}.notification-center-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:#eaf3f9;color:#176b9e}.priority-urgent .notification-center-icon{background:#fff0ed;color:#bd4138}.priority-high .notification-center-icon{background:#fff4dc;color:#a96706}.notification-center-copy{min-width:0}.notification-center-copy h3,.notification-center-copy p{margin:0}.notification-center-copy h3{color:#173a5c;font-size:.96rem}.notification-center-copy p{margin-top:3px;color:#5e7083;font-size:.81rem;overflow-wrap:anywhere}.notification-center-copy time{display:block;margin-top:5px;color:#8090a0;font-size:.7rem}.notification-center-meta{display:flex;gap:7px;align-items:center;margin-bottom:4px}.notification-priority-label,.notification-unread-dot{display:inline-flex;border-radius:999px;padding:3px 7px;font-size:.64rem;font-weight:900}.notification-priority-label{background:#edf3f7;color:#536d82}.priority-urgent .notification-priority-label{background:#ffe2dc;color:#a82d25}.priority-high .notification-priority-label{background:#ffedc8;color:#915600}.notification-unread-dot{background:#dcefff;color:#146394}.notification-center-action form{margin:0}.notification-center-action .btn{display:inline-flex;align-items:center;gap:4px;min-height:38px;padding:7px 10px;font-size:.76rem}.notification-center-action .material-symbols-outlined{font-size:16px}.teacher-dashboard-actions{margin-bottom:12px}.student-dashboard-actions{margin-bottom:12px}.notification-priority-item-form{margin:0}.notification-priority-item-form>button{display:grid;grid-template-columns:28px minmax(0,1fr) 20px;width:100%;gap:9px;align-items:center;padding:9px 2px;border:0;border-top:1px solid #e0e8ef;background:transparent;color:inherit;text-align:left;cursor:pointer}.notification-priority-item-form:first-child>button{border-top:0}.notification-priority-item-form span:nth-child(2),.notification-priority-item-form b,.notification-priority-item-form small{display:block}.notification-priority-item-form small{margin-top:2px;color:#637488;font-size:.75rem}.notification-popover-head>a{font-size:.76rem;color:#146394;font-weight:800}.notification-popover-item.is-unread{border-left:3px solid #2581b9;padding-left:9px}.notification-popover-item form{margin:7px 0 0}.notification-popover-item form button{border:0;background:transparent;padding:0;color:#176b9e;font:inherit;font-size:.78rem;font-weight:800;cursor:pointer}
@media(max-width:700px){.notification-center-hero{align-items:flex-start;flex-direction:column;padding:20px}.notification-center-summary{display:flex;gap:7px;min-width:0;padding:9px 11px}.notification-center-summary strong{font-size:1.35rem}.notification-filter-bar{position:sticky;top:0;z-index:4;flex-wrap:nowrap;overflow-x:auto}.notification-filter-bar>a{white-space:nowrap}.notification-filter-bar form{margin-left:0}.notification-filter-bar form .btn{white-space:nowrap}.notification-center-card{grid-template-columns:40px minmax(0,1fr);align-items:start;padding:12px}.notification-center-icon{width:40px;height:40px}.notification-center-action{grid-column:2;justify-self:start;margin-top:-2px}.teacher-dashboard-actions,.student-dashboard-actions{gap:8px}}

/* Phase 2E: the dashboard leads with the next task, then supporting context. */
.dashboard-compact-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:142px;margin:0 0 18px;padding:24px 28px;border:1px solid #d8e5ee;border-radius:20px;background:linear-gradient(120deg,#f7fbff,#fff 65%,#fff8e7)}.dashboard-compact-hero h1{margin:4px 0;font-size:clamp(1.65rem,3vw,2.35rem);letter-spacing:-.035em}.dashboard-compact-hero p{margin:0;color:#607387}.dashboard-compact-hero .btn{flex:none}.student-dashboard-hero{border-left:6px solid #2480b6}.teacher-dashboard-hero{border-left:6px solid #d2911f}.task-driven-section{margin:0 0 20px}.task-driven-section .student-dashboard-actions,.task-driven-section .teacher-dashboard-actions{gap:8px}.dashboard-quick-actions{display:grid;grid-template-columns:220px minmax(0,1fr);align-items:center;gap:18px;margin:0 0 22px;padding:16px 18px;border:1px solid #dce7ee;border-radius:18px;background:#fff}.dashboard-quick-actions h2{margin:4px 0 0;font-size:1.15rem}.dashboard-quick-action-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.dashboard-quick-action-grid>a{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:8px;min-height:66px;padding:10px;border:1px solid #dce7ee;border-radius:13px;background:#f9fcfe;color:#173b5d;text-decoration:none}.dashboard-quick-action-grid>a:hover{border-color:#78a9cb;background:#eef7fc}.dashboard-quick-action-grid>a>.material-symbols-outlined{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#e4f2fb;color:#176b9e;font-size:20px}.dashboard-quick-action-grid.teacher>a>.material-symbols-outlined{background:#fff1d6;color:#a96808}.dashboard-quick-action-grid b,.dashboard-quick-action-grid small{display:block}.dashboard-quick-action-grid b{font-size:.8rem}.dashboard-quick-action-grid small{margin-top:2px;color:#6c7e8e;font-size:.68rem;line-height:1.25}.dashboard-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:22px}.dashboard-status-grid>a{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:10px;min-height:86px;padding:14px;border:1px solid #dce7ee;border-radius:16px;background:#fff;color:#193d5f;text-decoration:none}.dashboard-status-grid>a:hover{border-color:#83aecc;background:#fbfdff}.dashboard-status-grid>a>.material-symbols-outlined{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#e6f3fb;color:#176b9e}.teacher-status-grid>a>.material-symbols-outlined{background:#fff2dc;color:#a46608}.dashboard-status-grid span:last-child{min-width:0}.dashboard-status-grid strong,.dashboard-status-grid b,.dashboard-status-grid small{display:block}.dashboard-status-grid strong{font-size:1.3rem;line-height:1.1}.dashboard-status-grid b{margin-top:3px;font-size:.8rem}.dashboard-status-grid small{margin-top:2px;color:#687b8d;font-size:.69rem}.dashboard-history{margin:0 0 18px}.dashboard-history-grid{display:flex;align-items:start;justify-content:space-between;gap:16px}.dashboard-history-grid p,.dashboard-activity-list p{margin:0 0 10px}.dashboard-history-grid .btn{flex:none}.dashboard-activity-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 22px}.dashboard-activity-list p{padding:8px 0;border-bottom:1px solid #e5edf2}
@media(max-width:900px){.dashboard-quick-actions{grid-template-columns:1fr}.dashboard-quick-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-compact-hero{min-height:0}.dashboard-status-grid{grid-template-columns:1fr 1fr}.teacher-status-grid>a:last-child{grid-column:1/-1}.dashboard-activity-list{grid-template-columns:1fr}}
@media(max-width:600px){.dashboard-compact-hero{align-items:flex-start;flex-direction:column;gap:12px;margin:0 0 12px;padding:17px 16px}.dashboard-compact-hero h1{font-size:1.45rem}.dashboard-compact-hero .btn{width:100%;justify-content:center}.task-driven-section{margin-bottom:16px}.dashboard-quick-actions{gap:12px;margin-bottom:16px;padding:14px}.dashboard-quick-action-grid{gap:7px}.dashboard-quick-action-grid>a{min-height:62px;padding:9px;grid-template-columns:30px minmax(0,1fr)}.dashboard-quick-action-grid>a>.material-symbols-outlined{width:30px;height:30px}.dashboard-status-grid{grid-template-columns:1fr;gap:7px;margin-bottom:16px}.teacher-status-grid>a:last-child{grid-column:auto}.dashboard-status-grid>a{min-height:70px;padding:11px}.dashboard-history-grid{align-items:stretch;flex-direction:column}.dashboard-history-grid .btn{width:100%;justify-content:center}.student-dashboard-actions .notification-center-card,.teacher-dashboard-actions .notification-center-card{min-height:0}.week-agenda-list.card{padding:7px 12px}}

/* Phase 2G-2A: Teacher quiz workspace ------------------------------------ */
.quiz-teacher-workspace{display:grid;gap:var(--ds-space-5);width:min(100%,1440px);margin-inline:auto;color:var(--ds-text)}
.quiz-teacher-workspace .ds-card{border-color:var(--ds-border);border-radius:var(--ds-radius-lg);box-shadow:var(--ds-shadow-sm)}
.quiz-teacher-workspace .quiz-create-hero,.quiz-teacher-workspace .quiz-builder-hero,.quiz-teacher-workspace .question-bank-hero{margin:0;border-left:6px solid #f4c95d;background:linear-gradient(118deg,var(--ds-navy-900),#174c78 72%,#1e6fa7);box-shadow:var(--ds-shadow-md)}
.quiz-teacher-workspace .quiz-create-hero h1,.quiz-teacher-workspace .quiz-builder-hero h1,.quiz-teacher-workspace .question-bank-hero h1{color:#fff}
.quiz-teacher-workspace .quiz-create-hero p,.quiz-teacher-workspace .quiz-builder-hero p,.quiz-teacher-workspace .question-bank-hero p{color:#d9ebf7}
.quiz-teacher-workspace .section-kicker{color:var(--ds-info);font-weight:900;letter-spacing:.1em}
.quiz-teacher-workspace .quiz-create-hero .section-kicker,.quiz-teacher-workspace .quiz-builder-hero .section-kicker,.quiz-teacher-workspace .question-bank-hero .section-kicker{color:#b9e3fa}
.quiz-builder-count.ds-status,.bank-hero-metric.ds-status{display:grid;place-items:center;align-content:center;min-width:118px;min-height:92px;border-color:rgba(255,255,255,.28);border-radius:var(--ds-radius-md);background:rgba(255,255,255,.12);color:#fff}
.quiz-builder-count.ds-status strong,.bank-hero-metric.ds-status strong{font-size:2rem;line-height:1}.quiz-builder-count.ds-status span,.bank-hero-metric.ds-status span{margin-top:6px;font-size:var(--ds-text-xs);font-weight:800}
.quiz-teacher-workspace .ds-button{min-height:44px}.quiz-teacher-workspace .ds-form{accent-color:var(--ds-blue-700)}
.quiz-teacher-workspace .ds-table th{padding:12px 14px;border-bottom:1px solid #cbdce7;background:#f4f8fb;color:var(--ds-navy-700);font-size:var(--ds-text-xs);font-weight:900}.quiz-teacher-workspace .ds-table td{padding:13px 14px;border-bottom-color:#e8eef3;vertical-align:middle}.quiz-teacher-workspace .ds-table tbody tr:hover{background:var(--ds-blue-50)}
.quiz-setup-workspace .quiz-create-layout{margin:0}.quiz-setup-workspace .quiz-essential-card{margin:0;border-top:4px solid var(--ds-blue-500);box-shadow:var(--ds-shadow-md)}.quiz-essential-card .quiz-step-number{background:var(--ds-blue-50);color:var(--ds-blue-700)}.quiz-essential-card .quiz-step-number .material-symbols-outlined{font-size:23px}
.quiz-setup-advanced{margin:0;overflow:hidden;background:var(--ds-surface)}.quiz-setup-advanced>summary{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:var(--ds-space-3);align-items:center;min-height:68px;padding:var(--ds-space-4) var(--ds-space-5);cursor:pointer;list-style:none}.quiz-setup-advanced>summary::-webkit-details-marker{display:none}.quiz-setup-advanced>summary>.material-symbols-outlined:first-child{display:grid;place-items:center;width:42px;height:42px;border-radius:var(--ds-radius-sm);background:var(--ds-blue-50);color:var(--ds-blue-700)}.quiz-setup-advanced>summary b,.quiz-setup-advanced>summary small{display:block}.quiz-setup-advanced>summary b{color:var(--ds-navy-900);font-size:var(--ds-text-md)}.quiz-setup-advanced>summary small{margin-top:2px;color:var(--ds-muted)}.quiz-setup-advanced[open]>summary{border-bottom:1px solid var(--ds-border);background:linear-gradient(135deg,var(--ds-blue-50),#fff)}.quiz-setup-advanced[open]>summary>.material-symbols-outlined:last-child{transform:rotate(180deg)}
.quiz-setup-advanced-body{display:grid;gap:var(--ds-space-4);padding:var(--ds-space-5)}.quiz-setup-advanced-body .quiz-advanced-section{margin:0;border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:#fff;box-shadow:none}.quiz-advanced-section-heading{display:flex;align-items:center;gap:var(--ds-space-3);margin-bottom:var(--ds-space-4)}.quiz-advanced-section-heading>.material-symbols-outlined{color:var(--ds-blue-700)}.quiz-advanced-section-heading b,.quiz-advanced-section-heading small{display:block}.quiz-advanced-section-heading small{color:var(--ds-muted)}.quiz-create-summary.ds-card{top:88px;border-top:4px solid var(--ds-blue-500);box-shadow:var(--ds-shadow-md)}
.quiz-readiness-rail{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin:0;padding:var(--ds-space-4);overflow:auto hidden;background:#fff}.quiz-readiness-rail>span{position:relative;display:grid;grid-template-columns:34px minmax(70px,1fr);grid-template-rows:auto auto;column-gap:9px;min-width:120px;padding-right:var(--ds-space-4);color:var(--ds-muted)}.quiz-readiness-rail>span:not(:last-child):after{content:"";position:absolute;top:16px;right:8px;width:calc(100% - 112px);min-width:12px;height:2px;background:var(--ds-border)}.quiz-readiness-rail i{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border:2px solid var(--ds-border);border-radius:50%;background:#fff;color:var(--ds-muted);font-style:normal;font-size:var(--ds-text-xs);font-weight:900}.quiz-readiness-rail i .material-symbols-outlined{font-size:18px}.quiz-readiness-rail b{align-self:end;color:inherit;font-size:var(--ds-text-sm)}.quiz-readiness-rail small{font-size:11px}.quiz-readiness-rail .is-complete{color:var(--ds-success)}.quiz-readiness-rail .is-complete i{border-color:var(--ds-success);background:var(--ds-success);color:#fff}.quiz-readiness-rail .is-complete:not(:last-child):after{background:#9bd0b3}.quiz-readiness-rail .is-current{color:var(--ds-blue-700)}.quiz-readiness-rail .is-current i{border-color:var(--ds-blue-700);background:var(--ds-blue-50);color:var(--ds-blue-700)}
.quiz-readiness-compact{grid-template-columns:1fr;gap:8px;padding:0;border:0;box-shadow:none;overflow:visible}.quiz-readiness-compact>span{grid-template-columns:28px 1fr;min-width:0;padding:0}.quiz-readiness-compact>span:not(:last-child):after{top:27px;right:auto;bottom:-9px;left:13px;width:2px;min-width:0;height:12px}.quiz-readiness-compact i{width:28px;height:28px}.quiz-readiness-compact small{display:none}.quiz-readiness-compact b{align-self:center}
.quiz-builder-nav.ds-tabs,.question-bank-tabs.ds-tabs{display:flex;align-items:center;gap:var(--ds-space-1);margin:0;padding:var(--ds-space-2);overflow-x:auto}.quiz-builder-nav.ds-tabs a,.question-bank-tabs.ds-tabs a{display:inline-flex;flex:none;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:8px 13px;border-radius:var(--ds-radius-sm);color:var(--ds-muted);font-size:var(--ds-text-sm);font-weight:800;text-decoration:none;white-space:nowrap}.quiz-builder-nav.ds-tabs a:hover,.quiz-builder-nav.ds-tabs a:focus-visible,.question-bank-tabs.ds-tabs a:hover,.question-bank-tabs.ds-tabs a:focus-visible{background:var(--ds-blue-50);color:var(--ds-blue-700)}.quiz-builder-nav.ds-tabs a.is-active,.question-bank-tabs.ds-tabs a.is-active{background:var(--ds-navy-900);color:#fff}.quiz-builder-nav.ds-tabs .material-symbols-outlined,.question-bank-tabs.ds-tabs .material-symbols-outlined{font-size:19px}
.quiz-workspace-section{display:grid;gap:var(--ds-space-4);scroll-margin-top:88px}.quiz-workspace-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--ds-space-4);padding:0 var(--ds-space-1)}.quiz-workspace-heading h2{margin:3px 0;color:var(--ds-navy-900)}.quiz-workspace-heading p{margin:0;color:var(--ds-muted)}.quiz-settings-workspace{padding:var(--ds-space-5);border:1px solid var(--ds-border);border-radius:var(--ds-radius-lg);background:linear-gradient(135deg,var(--ds-blue-50),#fff 66%)}.quiz-settings-workspace>.card{margin:0;background:#fff}.quiz-settings-workspace .ds-alert{align-items:flex-start}.quiz-questions-workspace .quiz-work-panel,.quiz-results-workspace .quiz-work-panel{margin:0}.quiz-questions-workspace .quiz-builder-layout{margin:0}.quiz-work-panel>summary{min-height:64px}.quiz-results-workspace .quiz-result-dashboard{overflow:hidden}.quiz-results-workspace .table-wrap{border-color:var(--ds-border)}
.question-bank-workspace .bank-set-hub,.question-bank-workspace .bank-import-studio,.question-bank-workspace #add-bank-question,.question-bank-workspace .bank-copy-card,.question-bank-workspace .filter-card,.question-bank-workspace .bank-table-card{margin:0}.question-bank-tabs a:last-child{margin-left:auto}.question-bank-create-set{margin-top:var(--ds-space-4);border-top:1px solid var(--ds-border);padding-top:var(--ds-space-3)}.question-bank-create-set>summary{min-height:44px;color:var(--ds-blue-700);cursor:pointer}.question-bank-create-set form{align-items:end;margin-top:var(--ds-space-3)}.bank-set-card.ds-card{box-shadow:none}.bank-set-card.ds-card:hover{border-color:var(--ds-blue-500);box-shadow:var(--ds-shadow-sm)}.bank-set-card.ds-card.is-selected{border-color:var(--ds-blue-700);background:var(--ds-blue-50)}.bank-set-status{margin-top:var(--ds-space-4);padding-top:var(--ds-space-4);border-top:1px solid var(--ds-border)}.bank-import-form,.question-bank-advanced-form{display:grid;gap:var(--ds-space-4);margin-top:var(--ds-space-4)}.question-bank-advanced{margin:0}.question-bank-advanced>summary{min-height:58px}.question-bank-workspace .bank-table-card{padding:0;overflow:hidden}.question-bank-workspace .bank-table-card>.table-panel-title{padding:var(--ds-space-5);border-bottom:1px solid var(--ds-border)}
@media(max-width:900px){.quiz-teacher-workspace{gap:var(--ds-space-4)}.quiz-readiness-rail{grid-template-columns:repeat(5,140px)}.quiz-create-summary.ds-card{top:74px}.quiz-workspace-heading{align-items:flex-start;flex-direction:column}.quiz-workspace-heading .ds-button{width:100%}}
@media(max-width:700px){.quiz-teacher-workspace{gap:var(--ds-space-3)}.quiz-teacher-workspace .quiz-create-hero,.quiz-teacher-workspace .quiz-builder-hero,.quiz-teacher-workspace .question-bank-hero{padding:var(--ds-space-5);border-left-width:4px;border-radius:var(--ds-radius-md)}.quiz-builder-count.ds-status,.bank-hero-metric.ds-status{display:flex;gap:7px;min-width:0;min-height:44px;padding:8px 12px}.quiz-builder-count.ds-status strong,.bank-hero-metric.ds-status strong{font-size:1.4rem}.quiz-builder-count.ds-status span,.bank-hero-metric.ds-status span{margin:0}.quiz-setup-advanced>summary{grid-template-columns:38px minmax(0,1fr) auto;padding:var(--ds-space-3)}.quiz-setup-advanced>summary>.material-symbols-outlined:first-child{width:38px;height:38px}.quiz-setup-advanced-body{padding:var(--ds-space-3)}.quiz-create-summary.ds-card{position:static}.quiz-builder-nav.ds-tabs,.question-bank-tabs.ds-tabs{position:relative;padding:6px}.quiz-builder-nav.ds-tabs a,.question-bank-tabs.ds-tabs a{min-height:48px;padding-inline:11px}.quiz-readiness-rail{grid-template-columns:repeat(5,132px);padding:var(--ds-space-3)}.quiz-settings-workspace{padding:var(--ds-space-4);border-radius:var(--ds-radius-md)}.quiz-workspace-heading{padding:0}.quiz-work-panel>summary{min-height:58px}.quiz-teacher-workspace .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.quiz-teacher-workspace .ds-table{min-width:720px}.question-bank-tabs a:last-child{margin-left:0}.question-bank-workspace .bank-table-card>.table-panel-title{padding:var(--ds-space-4)}.quiz-teacher-workspace .ds-button{min-height:48px}}
@media(prefers-reduced-motion:reduce){.quiz-setup-advanced>summary>.material-symbols-outlined:last-child{transition:none}}

/* Phase 2F foundation: additive design tokens and shared component contract. */
:root{--ds-navy-900:#0d1e37;--ds-navy-700:#17345d;--ds-blue-700:#1e6198;--ds-blue-500:#2c78b7;--ds-blue-50:#eef6fb;--ds-success:#18734a;--ds-success-soft:#e8f7ee;--ds-warning:#a96808;--ds-warning-soft:#fff3dc;--ds-danger:#b84539;--ds-danger-soft:#fff0ed;--ds-info:#176b9e;--ds-info-soft:#e7f3fb;--ds-surface:#fff;--ds-page:#f5f8fc;--ds-text:#173451;--ds-muted:#64748b;--ds-border:#d8e4ec;--ds-font-display:"Kanit","Sarabun","Noto Sans Thai",sans-serif;--ds-font-body:"Kanit","Sarabun","Noto Sans Thai",sans-serif;--ds-text-xs:12px;--ds-text-sm:13px;--ds-text-md:15px;--ds-text-lg:18px;--ds-text-xl:24px;--ds-leading-tight:1.2;--ds-leading-normal:1.55;--ds-space-1:4px;--ds-space-2:8px;--ds-space-3:12px;--ds-space-4:16px;--ds-space-5:20px;--ds-space-6:24px;--ds-space-8:32px;--ds-radius-sm:10px;--ds-radius-md:14px;--ds-radius-lg:18px;--ds-shadow-sm:0 5px 15px rgba(13,30,55,.06);--ds-shadow-md:0 15px 35px rgba(13,30,55,.11)}
.ds-card,.auth-card,.auth-flow-card{border:1px solid var(--ds-border);border-radius:var(--ds-radius-lg);background:var(--ds-surface);box-shadow:var(--ds-shadow-sm)}.btn{min-height:44px;border-radius:var(--ds-radius-sm)}.btn.primary{background:var(--ds-blue-700);border-color:var(--ds-blue-700)}.btn.primary:hover{background:var(--ds-navy-700);border-color:var(--ds-navy-700)}.field label{font-size:var(--ds-text-sm);font-weight:700;color:var(--ds-text)}.field input,.field select,.field textarea{border-color:var(--ds-border);border-radius:var(--ds-radius-sm);font-family:var(--ds-font-body)}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ds-blue-500);box-shadow:0 0 0 3px rgba(44,120,183,.16)}.badge.green,.status-success{background:var(--ds-success-soft);color:var(--ds-success)}.badge.yellow,.status-warning{background:var(--ds-warning-soft);color:var(--ds-warning)}.badge.red,.status-danger{background:var(--ds-danger-soft);color:var(--ds-danger)}.alert,.form-errors{border-radius:var(--ds-radius-sm)}.empty-state{border-radius:var(--ds-radius-lg)}.modal-panel{border-radius:var(--ds-radius-lg);box-shadow:var(--ds-shadow-md)}

/* Authentication master shell shared by login, account security, and social linking. */
.auth-main{display:grid;place-items:center;min-height:100vh;padding:clamp(16px,4vw,48px);background:linear-gradient(135deg,#edf4f9 0%,#f8fbfd 54%,#fff8e9 100%)}.auth-shell{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(360px,.82fr);width:min(1180px,100%);min-height:640px;overflow:hidden;border:1px solid #cddde8;border-radius:26px;background:var(--ds-surface);box-shadow:0 24px 70px rgba(13,30,55,.16)}.auth-brand-panel{position:relative;display:grid;align-items:end;min-height:100%;padding:clamp(28px,5vw,58px);overflow:hidden;background:linear-gradient(125deg,rgba(8,26,52,.9),rgba(22,81,128,.78)),url("../img/login_banner.png") center/cover}.auth-brand-panel:before{content:"";position:absolute;inset:auto -11% -30% auto;width:420px;height:420px;border:1px solid rgba(255,255,255,.2);border-radius:50%;box-shadow:0 0 0 40px rgba(255,255,255,.05),0 0 0 80px rgba(255,255,255,.04)}.auth-brand-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,17,34,.05),rgba(4,17,34,.52))}.auth-brand-content{position:relative;z-index:1;max-width:550px;color:#fff}.auth-brand-identity{display:flex;align-items:center;gap:10px;margin-bottom:clamp(58px,14vh,150px);font-size:16px;font-weight:800;letter-spacing:.02em}.auth-brand-identity img{width:42px;height:42px;border:2px solid rgba(255,255,255,.75);border-radius:13px;object-fit:cover;background:#fff}.auth-kicker{display:block;color:var(--ds-blue-500);font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.auth-brand-panel .auth-kicker{color:#c6e8ff}.auth-brand-content h1,.auth-flow-brand h1{margin:8px 0 14px;font-size:clamp(31px,4vw,50px);line-height:1.13;letter-spacing:-.045em}.auth-brand-content p,.auth-flow-brand p{max-width:50ch;margin:0;color:#dcecf7;font-size:16px;line-height:1.65}.auth-brand-points{display:grid;gap:10px;margin:26px 0 0;padding:0;list-style:none;font-size:13px}.auth-brand-points li{display:flex;align-items:center;gap:8px}.auth-brand-points .material-symbols-outlined{font-size:19px;color:#f4c95d}.auth-card-wrap{display:grid;place-items:center;padding:clamp(26px,5vw,64px);background:linear-gradient(180deg,#fff,#f8fbfd)}.auth-card{width:min(100%,430px);padding:0;border:0;box-shadow:none;background:transparent}.auth-logo-row{display:flex;align-items:center;gap:8px;margin-bottom:22px}.auth-logo-row img{width:36px;height:36px;object-fit:contain;border:1px solid var(--ds-border);border-radius:10px;background:#fff}.auth-card h1,.auth-card h2{margin:6px 0 8px;color:var(--ds-navy-900);font-size:clamp(24px,2.5vw,31px);line-height:1.25}.auth-intro{margin:0 0 22px;color:var(--ds-muted);font-size:14px;line-height:1.6}.auth-form{display:grid;gap:14px}.auth-form .field{margin:0}.auth-form .btn{display:inline-flex;align-items:center;justify-content:center;gap:7px}.auth-form .btn .material-symbols-outlined{font-size:18px}.auth-divider{display:flex;align-items:center;gap:12px;margin:18px 0;color:var(--ds-muted);font-size:12px}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--ds-border)}.auth-trust{display:flex;align-items:center;justify-content:center;gap:6px;margin:0;color:var(--ds-muted);font-size:12px}.auth-trust .material-symbols-outlined{font-size:16px;color:var(--ds-success)}.auth-secondary-link{display:block;color:var(--ds-blue-700);font-size:13px;font-weight:700;text-align:center;text-decoration:none}.auth-secondary-link:hover{text-decoration:underline}.social-login-stack .btn{min-height:46px}.social-signup-note{display:flex;align-items:flex-start;gap:8px;margin:0 0 18px;padding:12px 13px;border:1px solid #c9e1f0;border-radius:var(--ds-radius-sm);background:var(--ds-info-soft);color:#255575;font-size:13px;line-height:1.5}.social-signup-note .material-symbols-outlined{font-size:18px;color:var(--ds-info)}.social-auth-card .social-signup-icon{display:grid;place-items:center;width:46px;height:46px;margin:0 0 14px;border:1px solid var(--ds-border);border-radius:14px;background:var(--ds-blue-50);color:var(--ds-blue-700);font-weight:900}.social-account-choice-grid{gap:10px;margin:20px 0}.social-account-choice{display:grid;grid-template-columns:32px 1fr;gap:4px 10px;padding:14px;border-color:var(--ds-border);border-radius:var(--ds-radius-md);background:#fff;color:var(--ds-text)}.social-account-choice>.material-symbols-outlined{grid-row:1/3;display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:var(--ds-blue-50);color:var(--ds-blue-700)}.social-account-choice small{color:var(--ds-muted);line-height:1.45}
.auth-flow-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.9fr);max-width:1040px;margin:18px auto;overflow:hidden;border:1px solid var(--ds-border);border-radius:24px;background:#fff;box-shadow:var(--ds-shadow-md)}.auth-flow-brand{position:relative;min-height:540px;padding:44px;background:linear-gradient(135deg,#0d1e37,#1f6396);color:#fff;overflow:hidden}.auth-flow-brand .auth-brand-identity{margin-bottom:84px}.auth-flow-symbol{position:absolute;right:-24px;bottom:-24px;font-size:190px;color:rgba(255,255,255,.11)}.auth-flow-card{align-self:center;width:min(100%,460px);margin:30px;padding:0;border:0;box-shadow:none}.auth-flow-card .auth-intro{margin-bottom:24px}.auth-standalone-page{min-height:100vh;background:linear-gradient(135deg,#edf4f9,#f8fbfd 54%,#fff8e9);font-family:var(--ds-font-body)}.auth-standalone-page .auth-shell{margin:clamp(16px,4vw,48px) auto}
@media(max-width:850px){.auth-shell,.auth-flow-shell{grid-template-columns:1fr;min-height:0}.auth-brand-panel{min-height:300px;padding:30px}.auth-brand-identity{margin-bottom:40px}.auth-brand-content h1{font-size:34px}.auth-card-wrap{padding:34px}.auth-flow-brand{display:none}.auth-flow-card{margin:0;padding:34px;max-width:none}.auth-standalone-page .auth-shell{margin:16px}.auth-standalone-page .auth-brand-panel{display:none}}
@media(max-width:560px){.auth-main{display:block;padding:0}.auth-shell{width:100%;border:0;border-radius:0;box-shadow:none}.auth-brand-panel{min-height:228px;padding:22px}.auth-brand-identity{margin-bottom:27px;font-size:14px}.auth-brand-content h1{font-size:28px}.auth-brand-content p{font-size:13px}.auth-brand-points{display:none}.auth-card-wrap{padding:24px 18px 32px}.auth-card{width:100%}.auth-logo-row{margin-bottom:18px}.auth-flow-shell{margin:0;border:0;border-radius:0;box-shadow:none}.auth-flow-card{padding:24px 18px}.auth-standalone-page .auth-shell{margin:0}.auth-standalone-page .auth-card-wrap{min-height:100vh}.auth-form .btn{min-height:48px}}

/* Phase 2F-2: dashboards consume the foundation tokens without changing data flow. */
.ds-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--ds-space-2);font-weight:700}.ds-card{border-color:var(--ds-border);border-radius:var(--ds-radius-lg);box-shadow:var(--ds-shadow-sm)}.ds-action-stack .notification-center-card{border-color:var(--ds-border);border-radius:var(--ds-radius-md);box-shadow:var(--ds-shadow-sm)}.dashboard-compact-hero.ds-card{border-color:#cbdde9;border-left-width:6px;box-shadow:var(--ds-shadow-md)}.dashboard-compact-hero .hero-eyebrow,.dashboard-quick-actions .section-kicker{color:var(--ds-info);font-weight:900;letter-spacing:.1em}.dashboard-quick-actions.ds-card{gap:var(--ds-space-5);border-color:var(--ds-border);background:linear-gradient(135deg,var(--ds-surface),var(--ds-blue-50))}.dashboard-quick-action-grid>a.ds-card{min-height:72px;border-color:var(--ds-border);box-shadow:none;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.dashboard-quick-action-grid>a.ds-card:hover{border-color:var(--ds-blue-500);box-shadow:var(--ds-shadow-sm)}.dashboard-status-grid>a.ds-card{border-color:var(--ds-border);box-shadow:none;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.dashboard-status-grid>a.ds-card:hover{border-color:var(--ds-blue-500);box-shadow:var(--ds-shadow-sm);transform:translateY(-1px)}.ds-progress{display:block;height:5px;margin-top:8px;overflow:hidden;border-radius:999px;background:#dfeaf1}.ds-progress:before{content:"";display:block;width:var(--ds-progress-value,0%);height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--ds-blue-700),var(--ds-blue-500))}.teacher-status-grid .ds-progress:before{background:linear-gradient(90deg,var(--ds-warning),#e3af37)}.dashboard-course-card{border-color:var(--ds-border);border-radius:var(--ds-radius-lg);box-shadow:var(--ds-shadow-sm)}.dashboard-course-card .section-kicker{color:var(--ds-info)}.dashboard-history{border-color:var(--ds-border);box-shadow:var(--ds-shadow-sm)}
@media(max-width:600px){.dashboard-compact-hero.ds-card{border-radius:var(--ds-radius-md)}.dashboard-quick-actions.ds-card{padding:var(--ds-space-4)}.dashboard-quick-action-grid>a.ds-card{min-height:68px}.dashboard-status-grid>a.ds-card{min-height:76px}.ds-action-stack .notification-center-card{min-height:48px}.dashboard-section-heading .ds-button{min-height:44px}}

/* Phase 2F-3: Course workspace adopts the same navigation, card and status language. */
.ds-course-hero{border-color:var(--ds-border);box-shadow:var(--ds-shadow-md)}.course-list-workspace .course-workspace-card.ds-card{border-color:var(--ds-border);border-top:5px solid var(--workspace-course-color,var(--ds-blue-500));box-shadow:var(--ds-shadow-sm)}.course-workspace-card.ds-card:hover{border-color:var(--workspace-course-color,var(--ds-blue-500));box-shadow:var(--ds-shadow-md)}.ds-badge{border-radius:999px;font-weight:800}.course-workspace-card-stats span{border:1px solid rgba(23,52,93,.08);border-radius:999px}.course-workspace-card-actions .ds-button{min-height:42px}.course-table-filter.ds-card{border-color:var(--ds-border);box-shadow:var(--ds-shadow-sm)}body.course-context .ds-course-header{border-color:var(--course-border,var(--ds-border));border-radius:var(--ds-radius-lg);box-shadow:var(--ds-shadow-md)}body.course-context .classroom-chip{border-color:rgba(255,255,255,.3);border-radius:var(--ds-radius-md)}.ds-tabs{gap:var(--ds-space-2);padding:var(--ds-space-2);border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:var(--ds-surface);box-shadow:var(--ds-shadow-sm)}.ds-tabs .classroom-tab{min-height:42px;border-radius:var(--ds-radius-sm)}.ds-tabs .classroom-tab.active{box-shadow:none}.ds-quick-actions{padding:var(--ds-space-3);border:1px solid var(--ds-border);border-radius:var(--ds-radius-lg);background:linear-gradient(135deg,var(--ds-surface),var(--ds-blue-50));box-shadow:var(--ds-shadow-sm)}.ds-quick-actions .ds-button{min-height:44px;border-color:var(--ds-border);background:#fff}.ds-quick-actions .ds-button:hover{border-color:var(--ds-blue-500);background:var(--ds-blue-50)}body.course-context .classroom-side-card,body.course-context .classroom-feed-card,body.course-context .classroom-announce-card,body.course-context .classroom-toolbar-card,body.course-context .student-workspace-next{border-color:var(--ds-border);border-radius:var(--ds-radius-lg);box-shadow:var(--ds-shadow-sm)}body.course-context .classroom-feed-card:hover{box-shadow:var(--ds-shadow-md)}body.course-context .classroom-feed-card.tone-announcement,body.course-context .classroom-feed-card.tone-assignment,body.course-context .classroom-feed-card.tone-quiz,body.course-context .classroom-feed-card.tone-lesson{background:var(--ds-surface)}body.course-context .classroom-feed-card.tone-announcement{border-left:4px solid var(--ds-warning)}body.course-context .classroom-feed-card.tone-assignment{border-left:4px solid var(--ds-blue-500)}body.course-context .classroom-feed-card.tone-quiz{border-left:4px solid var(--ds-success)}body.course-context .classroom-feed-card.tone-lesson{border-left:4px solid var(--ds-info)}body.course-context .student-workspace-next{background:linear-gradient(135deg,var(--ds-surface),var(--ds-blue-50))}body.course-context .student-workspace-deadlines>a{min-height:48px;border:1px solid var(--ds-border);border-radius:var(--ds-radius-sm)}
@media(max-width:700px){.ds-tabs{margin-inline:0;padding:6px}.ds-tabs .classroom-tab{min-height:44px}.ds-quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--ds-space-2)}.ds-quick-actions .ds-button{justify-content:center;font-size:12px}.course-workspace-card-actions .ds-button{flex:1;justify-content:center}.course-table-filter.ds-card{padding:var(--ds-space-4)}body.course-context .classroom-side-card,body.course-context .classroom-feed-card,body.course-context .classroom-announce-card,body.course-context .classroom-toolbar-card,body.course-context .student-workspace-next{border-radius:var(--ds-radius-md)}}

/* Phase 2F-4: Assignment screens share the same task-first visual contract. */
.ds-form{accent-color:var(--ds-blue-700)}.ds-form input,.ds-form select,.ds-form textarea{font-family:var(--ds-font-body)}.ds-form input:focus,.ds-form select:focus,.ds-form textarea:focus{outline:0;border-color:var(--ds-blue-500);box-shadow:0 0 0 3px rgba(44,120,183,.16)}.ds-status{display:inline-flex;align-items:center;min-height:26px;padding:4px 9px;border:1px solid transparent;font-size:var(--ds-text-xs);line-height:1.2}.ds-status.green{border-color:#c9e8d6}.ds-status.yellow{border-color:#f2daa2}.ds-status.red{border-color:#f0c8c1}.ds-alert{display:flex;gap:var(--ds-space-2);align-items:flex-start;margin-top:var(--ds-space-3);padding:var(--ds-space-3);border:1px solid #c9e1f0;border-radius:var(--ds-radius-sm);background:var(--ds-info-soft);color:var(--ds-text)}.ds-alert>.material-symbols-outlined{flex:none;color:var(--ds-info)}.ds-alert p{margin:0}.assignment-form-hero.ds-card,.assignment-review-hero.ds-card,.assignment-student-hero.ds-card,.assignment-grade-hero.ds-card{border-color:#cbdde9;box-shadow:var(--ds-shadow-md)}.assignment-essential-card.ds-card{border-top:4px solid var(--ds-blue-500)}.assignment-advanced-card.ds-card{border-color:var(--ds-border);box-shadow:none}.assignment-advanced-card>summary{min-height:58px}.assignment-form-actions.ds-card{border-color:var(--ds-border);box-shadow:var(--ds-shadow-md)}.assignment-form-actions .ds-button{min-height:48px}.assignment-queue-highlight{border-top:4px solid var(--ds-warning)!important;background:linear-gradient(135deg,#fff,#fff8e7)}.assignment-review-queue.ds-card{border-color:var(--ds-border);box-shadow:var(--ds-shadow-md)}.assignment-review-queue .table-panel-title-rich{gap:var(--ds-space-4)}.assignment-review-queue .actions .ds-button{min-height:44px}.assignment-filter-card.ds-card{border-color:var(--ds-border);box-shadow:var(--ds-shadow-sm)}.assignment-grading-table{border:1px solid var(--ds-border);border-radius:var(--ds-radius-md)}.assignment-grading-table tbody tr:hover{background:var(--ds-blue-50)}.assignment-grading-table .ds-button{min-height:40px}.assignment-brief-card.ds-card{border-top:4px solid var(--ds-blue-500)}.assignment-status-card.ds-card{border-color:var(--ds-border);box-shadow:var(--ds-shadow-md)}.assignment-status-card h2{color:var(--ds-navy-900)}.assignment-submit-form .ds-button{width:100%;min-height:48px}.assignment-feedback{line-height:var(--ds-leading-normal)}.assignment-grade-layout .ds-card{min-height:100%;border-color:var(--ds-border)}.assignment-grade-layout h3{margin-top:var(--ds-space-1)}.assignment-grade-layout .ds-button{width:100%;min-height:48px}.ds-file-link{display:inline-flex;align-items:center;min-height:44px;padding:0 10px;border:1px solid var(--ds-border);border-radius:var(--ds-radius-sm);color:var(--ds-blue-700);font-weight:700;text-decoration:none}.ds-file-link:hover{border-color:var(--ds-blue-500);background:var(--ds-blue-50)}
@media(max-width:900px){.assignment-review-hero,.assignment-grade-hero{align-items:flex-start}.assignment-review-queue .table-panel-title-rich{align-items:flex-start;flex-direction:column}.assignment-review-queue .actions{width:100%}.assignment-review-queue .actions .ds-button{flex:1}.assignment-grade-layout{grid-template-columns:1fr}.assignment-status-card{position:static}}
@media(max-width:640px){.assignment-form-hero.ds-card,.assignment-review-hero.ds-card,.assignment-student-hero.ds-card,.assignment-grade-hero.ds-card{padding:var(--ds-space-4);border-radius:var(--ds-radius-md)}.assignment-form-actions .ds-button{width:100%}.assignment-filter-card.ds-card{padding:0}.assignment-filter-card .filter-actions{display:grid;grid-template-columns:1fr 1fr}.assignment-filter-card .filter-actions .ds-button{justify-content:center}.assignment-review-queue.ds-card{padding:var(--ds-space-3)}.assignment-review-queue .actions{display:grid;grid-template-columns:1fr 1fr}.assignment-review-queue .actions .ds-button{width:100%;font-size:var(--ds-text-xs)}.assignment-grading-table{margin-inline:-2px;border-radius:var(--ds-radius-sm)}.assignment-grading-table .ds-button{min-height:44px;white-space:nowrap}.assignment-status-card.ds-card{margin-top:0}.assignment-grade-layout .ds-card{padding:var(--ds-space-4)}.ds-file-link{width:100%;justify-content:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}

/* Phase 2F-5: Attendance uses the shared task-first visual language. */
.attendance-command-hero.ds-card,.attendance-focus-hero.ds-card,.attendance-matrix-hero.ds-card,.attendance-confirm-hero.ds-card,.attendance-student-hero.ds-card{border-color:#cbdde9;box-shadow:var(--ds-shadow-md)}.attendance-session-create.ds-card{border-top:4px solid var(--ds-blue-500);box-shadow:var(--ds-shadow-md)}.attendance-session-create .actions .ds-button{width:100%;min-height:48px}.attendance-session-filter.ds-card{border-color:var(--ds-border);box-shadow:var(--ds-shadow-sm)}.attendance-session-filter>summary{min-height:58px}.attendance-session-history-card.ds-card{padding:0;overflow:hidden}.attendance-session-history-card>.table-panel-title{padding:var(--ds-space-5)}.attendance-session-history-table td{vertical-align:middle}.attendance-history-actions .ds-button{min-height:40px}.attendance-session-summary.ds-card{border-color:var(--ds-border);box-shadow:var(--ds-shadow-sm)}.attendance-howto.ds-card{border-color:var(--ds-border);border-radius:var(--ds-radius-md);box-shadow:none}.attendance-status-guide.ds-card,.attendance-focus-stage.ds-card,.live-checkin-control.ds-card,.live-scanned-roster.ds-card,.attendance-qr-panel.ds-card,.attendance-roster-review.ds-card{border-color:var(--ds-border);box-shadow:var(--ds-shadow-sm)}.focus-progress-track.ds-progress:before,.attendance-course-bar.ds-progress:before{width:var(--ds-progress-value,0%)}.focus-progress-track.ds-progress>i,.attendance-course-bar.ds-progress>i{display:none}.live-checkin-control.is-open.ds-card{border-color:#acd9bd;box-shadow:0 10px 28px rgba(24,115,74,.1)}.live-checkin-form .ds-button{min-height:48px}.attendance-qr-panel.ds-card{border:2px solid #b8d7ea;background:linear-gradient(135deg,var(--ds-surface),var(--ds-blue-50))}.attendance-qr-image{width:clamp(180px,18vw,230px);height:auto;aspect-ratio:1;padding:8px;border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:#fff;box-shadow:var(--ds-shadow-sm)}.attendance-code b{letter-spacing:.18em;color:var(--ds-navy-900)}.attendance-roster-review .attendance-status-label.ds-status{min-height:28px}.attendance-matrix-filter.ds-card,.attendance-matrix-card.ds-card{border-color:var(--ds-border);box-shadow:var(--ds-shadow-sm)}.attendance-matrix-wrap{scrollbar-color:var(--ds-blue-500) var(--ds-blue-50)}.matrix-save-actions .ds-button{min-height:48px}.matrix-save-state.ds-status{background:#edf3f7;color:var(--ds-muted)}.matrix-save-state.ds-status.dirty{border-color:#f2daa2;background:var(--ds-warning-soft);color:var(--ds-warning)}.student-checkin-zone.ds-card{padding:var(--ds-space-5);border-color:#bad9eb;background:linear-gradient(135deg,var(--ds-surface),var(--ds-blue-50));box-shadow:var(--ds-shadow-md)}.student-live-card.ds-card{border-color:var(--ds-border);box-shadow:var(--ds-shadow-sm)}.student-live-card.is-complete.ds-card{border-color:#acd9bd;background:linear-gradient(135deg,#fff,var(--ds-success-soft))}.student-live-action .ds-form{display:grid;gap:var(--ds-space-2)}.student-checkin-button.ds-button{min-height:48px}.checkin-success.ds-status{border-color:#c9e8d6;background:var(--ds-success-soft);color:var(--ds-success)}.checkin-blocked.ds-status{border-color:var(--ds-border);background:#edf3f7;color:var(--ds-muted)}.attendance-confirm-card.ds-card{max-width:620px;margin-inline:auto;border-top:4px solid var(--ds-blue-500);box-shadow:var(--ds-shadow-md)}.attendance-confirm-card .ds-button{min-height:52px}.attendance-summary-card.ds-card,.attendance-history-card.ds-card,.attendance-history-filter.ds-card,.attendance-student-detail.ds-card{border-color:var(--ds-border);box-shadow:var(--ds-shadow-sm)}.attendance-course-card.ds-card{border-color:var(--ds-border);box-shadow:none}.attendance-course-card.ds-card:hover{border-color:var(--ds-blue-500);box-shadow:var(--ds-shadow-sm)}.attendance-history-mobile-list article.ds-card,.student-attendance-mobile-list article.ds-card{border-color:var(--ds-border);box-shadow:none}.attendance-history-card .ds-status,.attendance-student-detail .ds-status{white-space:nowrap}
@media(max-width:900px){.attendance-command-hero,.attendance-focus-hero,.attendance-matrix-hero,.attendance-student-hero{align-items:flex-start}.attendance-focus-hero .actions,.attendance-matrix-hero .actions{width:100%}.attendance-focus-hero .actions .ds-button,.attendance-matrix-hero .actions .ds-button{flex:1}.attendance-qr-panel.ds-card{align-items:center}.attendance-qr-image{width:210px}.attendance-matrix-toolbar{align-items:flex-start;flex-direction:column}.matrix-save-actions{width:100%}.matrix-save-actions .ds-button{flex:1}}
@media(max-width:760px){.attendance-command-hero.ds-card,.attendance-focus-hero.ds-card,.attendance-matrix-hero.ds-card,.attendance-confirm-hero.ds-card,.attendance-student-hero.ds-card{padding:var(--ds-space-4);border-radius:var(--ds-radius-md)}.attendance-session-create.ds-card{padding:var(--ds-space-4)}.attendance-session-filter.ds-card{padding:0}.attendance-session-history-wrap{overflow:visible}.attendance-session-history-table,.attendance-session-history-table tbody,.attendance-session-history-table tr,.attendance-session-history-table td{display:block;width:100%}.attendance-session-history-table thead{display:none}.attendance-session-history-table tr{width:calc(100% - 24px);margin:12px;border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);overflow:hidden;background:var(--ds-surface)}.attendance-session-history-table td{display:grid;grid-template-columns:92px minmax(0,1fr);gap:var(--ds-space-2);padding:10px 12px;border-bottom:1px solid #edf2f5}.attendance-session-history-table td:last-child{border-bottom:0}.attendance-session-history-table td:before{color:var(--ds-muted);font-size:var(--ds-text-xs);font-weight:800}.attendance-session-history-table td:nth-child(1):before{content:'วันที่'}.attendance-session-history-table td:nth-child(2):before{content:'รายวิชา'}.attendance-session-history-table td:nth-child(3):before{content:'กลุ่ม'}.attendance-session-history-table td:nth-child(4):before{content:'คาบ'}.attendance-session-history-table td:nth-child(5):before{content:'หัวข้อ'}.attendance-session-history-table td:nth-child(6):before{content:'นักศึกษา'}.attendance-session-history-table td:nth-child(7):before{content:'จัดการ'}.attendance-history-actions{display:grid;grid-template-columns:1fr 1fr}.attendance-history-actions .ds-button:first-child{grid-column:1/-1}.attendance-history-actions .ds-button{min-height:48px}.attendance-session-summary.ds-card{grid-template-columns:1fr}.attendance-qr-panel.ds-card{align-items:center;text-align:center}.attendance-qr-panel.ds-card>div{display:grid;justify-items:center}.attendance-qr-image{width:min(240px,78vw)}.attendance-qr-panel .ds-button{width:100%;min-height:48px}.attendance-roster-table{overflow-x:auto;-webkit-overflow-scrolling:touch}.attendance-roster-table table{min-width:650px}.attendance-matrix-filter .filter-actions,.matrix-save-actions{display:grid;grid-template-columns:1fr 1fr}.attendance-matrix-filter .ds-button,.matrix-save-actions .ds-button{width:100%;justify-content:center}.student-checkin-zone.ds-card{padding:var(--ds-space-4)}.student-live-card.ds-card{padding:var(--ds-space-4)}.student-live-action,.student-live-action form,.student-checkin-button.ds-button{width:100%}.attendance-confirm-card.ds-card{padding:var(--ds-space-4)}.attendance-history-filter.ds-card{padding:0}.attendance-course-card.ds-card{border-radius:var(--ds-radius-md)}}
@media(max-width:520px){.attendance-focus-hero .actions,.attendance-matrix-hero .actions{display:grid;grid-template-columns:1fr}.attendance-focus-hero .actions .ds-button,.attendance-matrix-hero .actions .ds-button{width:100%}.focus-status-button{min-height:104px}.matrix-save-actions{grid-template-columns:1fr}.attendance-session-history-table td{grid-template-columns:80px minmax(0,1fr)}.student-checkin-heading{align-items:flex-start;flex-direction:column}.live-checkin-pill.ds-status{min-height:32px}.attendance-student-hero .logistics-strip{width:100%;justify-content:center}}

/* Phase 2F-7: Notification Center and bell share the Logistics LMS design system. */
.notification-center-shell{display:grid;gap:var(--ds-space-6);max-width:1080px;margin-inline:auto}.notification-center-shell .notification-center-hero.ds-card{align-items:center;margin:0;padding:clamp(20px,3vw,32px);border-color:#315f86;border-radius:var(--ds-radius-lg);background:linear-gradient(125deg,var(--ds-navy-900),var(--ds-blue-700));box-shadow:var(--ds-shadow-md)}.notification-center-context{min-width:0}.notification-center-context .section-kicker{color:#a9daf7}.notification-center-context h1{line-height:var(--ds-leading-tight)}.notification-role-priorities{display:flex;flex-wrap:wrap;gap:var(--ds-space-2);margin-top:var(--ds-space-4)}.notification-role-priorities .ds-badge{padding:5px 9px;border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.1);color:#fff;font-size:var(--ds-text-xs)}.notification-center-summary.ds-status{display:grid;place-items:center;min-width:132px;min-height:96px;padding:var(--ds-space-4);border-color:rgba(255,255,255,.3);border-radius:var(--ds-radius-md);background:rgba(255,255,255,.12);color:#fff;line-height:1}.notification-center-summary.ds-status strong{font-size:2.25rem}.notification-center-summary.ds-status span{margin-top:var(--ds-space-2);font-size:var(--ds-text-xs);font-weight:700}.notification-filter-bar.ds-tabs{position:sticky;top:var(--ds-space-2);z-index:4;display:flex;align-items:center;gap:var(--ds-space-2);margin:calc(var(--ds-space-2) * -1) 0 0;padding:var(--ds-space-2);border-color:var(--ds-border);border-radius:var(--ds-radius-md);box-shadow:var(--ds-shadow-sm)}.notification-filter-bar.ds-tabs>a{display:inline-flex;align-items:center;min-height:44px;padding:0 var(--ds-space-4);border-radius:var(--ds-radius-sm);color:var(--ds-muted);font-size:var(--ds-text-sm);font-weight:800;text-decoration:none}.notification-filter-bar.ds-tabs>a:hover,.notification-filter-bar.ds-tabs>a.is-active{background:var(--ds-blue-50);color:var(--ds-blue-700)}.notification-filter-bar.ds-tabs form{margin-left:auto}.notification-filter-bar.ds-tabs .ds-button{min-height:44px;border-color:var(--ds-border);background:var(--ds-surface);color:var(--ds-blue-700)}.notification-filter-bar.ds-tabs .material-symbols-outlined{font-size:18px}.notification-center-section{margin:0;scroll-margin-top:78px}.notification-center-section .dashboard-section-heading{margin-bottom:var(--ds-space-3)}.notification-center-section .dashboard-section-heading h2{color:var(--ds-navy-900)}.notification-action-section{padding:var(--ds-space-5);border:1px solid #d3e4ef;border-radius:var(--ds-radius-lg);background:linear-gradient(135deg,var(--ds-blue-50),#fff 65%)}.notification-center-list{gap:var(--ds-space-3)}.notification-center-card.ds-card{grid-template-columns:48px minmax(0,1fr) auto;gap:var(--ds-space-4);padding:var(--ds-space-4);border-color:var(--ds-border);border-left:4px solid #9aabba;border-radius:var(--ds-radius-md);background:var(--ds-surface);box-shadow:var(--ds-shadow-sm)}.notification-center-card.ds-card.priority-urgent{border-left-color:var(--ds-danger);background:linear-gradient(90deg,var(--ds-danger-soft),#fff 34%)}.notification-center-card.ds-card.priority-high{border-left-color:var(--ds-warning);background:linear-gradient(90deg,var(--ds-warning-soft),#fff 34%)}.notification-center-card.ds-card.priority-normal{border-left-color:var(--ds-blue-500)}.notification-center-card.ds-card.is-unread{border-color:#91bdd9;border-left-color:var(--ds-blue-500);box-shadow:var(--ds-shadow-md)}.notification-center-icon{width:48px;height:48px;border-radius:var(--ds-radius-md);background:var(--ds-info-soft);color:var(--ds-info)}.priority-urgent .notification-center-icon{background:var(--ds-danger-soft);color:var(--ds-danger)}.priority-high .notification-center-icon{background:var(--ds-warning-soft);color:var(--ds-warning)}.notification-center-copy h3{color:var(--ds-navy-900);font-size:var(--ds-text-md);line-height:var(--ds-leading-tight)}.notification-center-copy p{color:var(--ds-muted);font-size:var(--ds-text-sm);line-height:var(--ds-leading-normal)}.notification-center-copy time{color:var(--ds-muted);font-size:var(--ds-text-xs)}.notification-center-meta{flex-wrap:wrap}.notification-priority-label.ds-status{min-height:24px;padding:3px 8px;border-radius:999px}.notification-priority-label.ds-status.blue{border-color:#c9e1f0;background:var(--ds-info-soft);color:var(--ds-info)}.notification-unread-dot.ds-badge{padding:4px 8px;background:var(--ds-blue-700);color:#fff}.notification-center-action .ds-button{min-height:44px;border-color:var(--ds-border);background:#fff;color:var(--ds-blue-700)}.notification-center-action .ds-button:hover{border-color:var(--ds-blue-500);background:var(--ds-blue-50)}.notification-action-section .notification-center-card:first-child .notification-center-action .ds-button{border-color:var(--ds-blue-700);background:var(--ds-blue-700);color:#fff}.notification-history-section .notification-center-card{box-shadow:none}.notification-history-empty{padding:var(--ds-space-6);border-style:dashed;box-shadow:none}

.ds-notification-bell{border:1px solid transparent}.ds-notification-bell:hover,.ds-notification-bell:focus-visible{border-color:var(--ds-border);background:var(--ds-blue-50);color:var(--ds-blue-700)}.ds-notification-bell .notification-count.ds-badge{display:grid;place-items:center;right:-5px;top:-6px;min-width:20px;height:20px;padding:0 5px;border:2px solid #fff;background:var(--ds-danger);color:#fff;line-height:1;font-size:10px}.notification-popover.ds-card{right:24px;top:76px;width:min(410px,calc(100vw - 28px));max-height:min(72vh,680px);padding:0;border-color:var(--ds-border);border-radius:var(--ds-radius-lg);background:var(--ds-surface);box-shadow:0 22px 55px rgba(13,30,55,.2);overflow:hidden}.notification-popover-head{display:flex;align-items:center;justify-content:space-between;gap:var(--ds-space-3);padding:var(--ds-space-4);border-bottom:1px solid var(--ds-border);background:linear-gradient(135deg,var(--ds-blue-50),#fff)}.notification-popover-title{display:flex;align-items:center;gap:var(--ds-space-2);min-width:0}.notification-popover-title>.material-symbols-outlined{display:grid;place-items:center;width:38px;height:38px;border-radius:var(--ds-radius-sm);background:var(--ds-navy-900);color:#fff;font-size:20px}.notification-popover-title b,.notification-popover-title small{display:block}.notification-popover-title b{color:var(--ds-navy-900)}.notification-popover-title small{margin-top:2px;color:var(--ds-muted);font-size:var(--ds-text-xs)}.notification-popover-head>a.ds-button{flex:none;min-height:40px;padding:7px 10px;border-color:var(--ds-border);background:#fff;color:var(--ds-blue-700);font-size:var(--ds-text-xs)}.notification-popover .notification-pending-summary.ds-alert{margin:var(--ds-space-3) var(--ds-space-3) 0;padding:var(--ds-space-3);border-color:#f1d394;background:var(--ds-warning-soft);color:#754c08;text-decoration:none}.notification-popover .notification-pending-summary.ds-alert>.material-symbols-outlined{color:var(--ds-warning)}.notification-popover .notification-pending-summary.ds-alert span:nth-child(2){flex:1;min-width:0}.notification-popover .notification-pending-summary.ds-alert b,.notification-popover .notification-pending-summary.ds-alert small{display:block}.notification-popover .notification-pending-summary.ds-alert small{margin-top:2px;color:#826321}.notification-preview-list{max-height:calc(min(72vh,680px) - 72px);padding:var(--ds-space-2) var(--ds-space-3) var(--ds-space-3);overflow:auto;overscroll-behavior:contain}.notification-popover-item{padding:var(--ds-space-3);border:0;border-bottom:1px solid #e8eef3;border-radius:0;background:#fff}.notification-popover-item:last-child{border-bottom:0}.notification-popover-item.is-unread{margin:2px 0;border-left:4px solid var(--ds-blue-500);border-radius:var(--ds-radius-sm);background:var(--ds-blue-50)}.notification-preview-meta{display:flex;align-items:center;justify-content:space-between;gap:var(--ds-space-2);margin-bottom:var(--ds-space-2)}.notification-preview-meta .ds-badge{padding:3px 7px;background:#edf2f6;color:var(--ds-muted);font-size:10px}.notification-popover-item.is-unread .notification-preview-meta .ds-badge{background:var(--ds-blue-700);color:#fff}.notification-preview-meta time{color:var(--ds-muted);font-size:11px}.notification-popover-item>b{color:var(--ds-navy-900);font-size:var(--ds-text-sm)}.notification-popover-item p{margin:4px 0 0;color:var(--ds-muted);font-size:var(--ds-text-xs);line-height:1.5}.notification-popover-item form{margin:var(--ds-space-2) 0 0}.notification-popover-item form .ds-button{min-height:40px;padding:6px 9px;border:0;background:transparent;color:var(--ds-blue-700);font-size:var(--ds-text-xs)}.notification-popover-item form .material-symbols-outlined{font-size:16px}.notification-popover .notification-empty{display:grid;justify-items:center;gap:var(--ds-space-2);padding:var(--ds-space-6);border:0;box-shadow:none}.notification-popover .notification-empty>.material-symbols-outlined{color:#9aabba;font-size:32px}.notification-popover .notification-empty p{margin:0;color:var(--ds-muted)}.notification-toast.ds-alert{border-color:#f1d394;border-radius:var(--ds-radius-md);background:var(--ds-warning-soft);box-shadow:var(--ds-shadow-md)}

@media(max-width:700px){.notification-center-shell{gap:var(--ds-space-4)}.notification-center-shell .notification-center-hero.ds-card{align-items:flex-start;padding:var(--ds-space-5);border-radius:var(--ds-radius-md)}.notification-role-priorities{margin-top:var(--ds-space-3)}.notification-center-summary.ds-status{display:flex;gap:var(--ds-space-2);min-width:0;min-height:44px;padding:var(--ds-space-2) var(--ds-space-3)}.notification-center-summary.ds-status strong{font-size:1.4rem}.notification-center-summary.ds-status span{margin:0}.notification-filter-bar.ds-tabs{top:0;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}.notification-filter-bar.ds-tabs>a{flex:none;min-height:48px;padding-inline:var(--ds-space-3)}.notification-filter-bar.ds-tabs form{flex:none;margin-left:0}.notification-filter-bar.ds-tabs .ds-button{min-height:48px;white-space:nowrap}.notification-action-section{padding:var(--ds-space-4);border-radius:var(--ds-radius-md)}.notification-center-card.ds-card{grid-template-columns:44px minmax(0,1fr);gap:var(--ds-space-3);padding:var(--ds-space-3)}.notification-center-icon{width:44px;height:44px}.notification-center-action{grid-column:2;width:100%;margin-top:0}.notification-center-action form,.notification-center-action .ds-button{width:100%}.notification-center-action .ds-button{min-height:48px}.notification-popover.ds-card{right:14px;top:66px;width:calc(100vw - 28px);max-height:calc(100vh - 132px);border-radius:var(--ds-radius-md)}.notification-preview-list{max-height:calc(100vh - 220px)}.notification-popover-head{padding:var(--ds-space-3)}.notification-popover-head>a.ds-button{min-height:44px}.notification-popover-item form .ds-button{min-height:48px}.notification-toast.ds-alert{right:14px;bottom:82px;left:14px;max-width:none}.student-dashboard-actions .notification-center-card.ds-card,.teacher-dashboard-actions .notification-center-card.ds-card{grid-template-columns:44px minmax(0,1fr)}.student-dashboard-actions .notification-center-action,.teacher-dashboard-actions .notification-center-action{grid-column:2}}

@media(max-width:420px){.notification-center-shell .notification-center-hero.ds-card{padding:var(--ds-space-4)}.notification-role-priorities .ds-badge:nth-child(n+5){display:none}.notification-action-section{padding:var(--ds-space-3)}.notification-popover-title>.material-symbols-outlined{display:none}.notification-popover-head>a.ds-button{padding-inline:8px}.notification-popover .notification-pending-summary.ds-alert{margin-inline:var(--ds-space-2)}.notification-preview-list{padding-inline:var(--ds-space-2)}}

/* Phase 2G-1: Admin operations workspace */
.admin-workspace{display:grid;gap:var(--ds-space-5);max-width:1440px;margin-inline:auto}.admin-workspace>.hero,.admin-workspace>.card,.admin-workspace>form{margin-block:0}.admin-workspace-nav.ds-tabs{display:flex;align-items:center;gap:var(--ds-space-1);margin:0;padding:var(--ds-space-2);overflow-x:auto;scrollbar-width:thin;overscroll-behavior-inline:contain}.admin-workspace-nav>a{position:relative;display:inline-flex;flex:none;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:8px 12px;border-radius:var(--ds-radius-sm);color:var(--ds-muted);font-size:var(--ds-text-sm);font-weight:800;text-decoration:none;white-space:nowrap}.admin-workspace-nav>a:hover,.admin-workspace-nav>a:focus-visible{background:var(--ds-blue-50);color:var(--ds-blue-700)}.admin-workspace-nav>a.is-active{background:var(--ds-navy-900);color:#fff}.admin-workspace-nav>a.is-active:after{content:"";position:absolute;right:12px;bottom:4px;left:12px;height:2px;border-radius:999px;background:#f4c95d}.admin-workspace-nav .material-symbols-outlined{font-size:19px}
.admin-workspace .admin-console-hero.ds-card{position:relative;min-height:160px;padding:clamp(22px,3vw,34px);overflow:hidden;border:1px solid #28577e;border-left:6px solid #f4c95d;background:linear-gradient(120deg,var(--ds-navy-900),#174c78 72%,#1e6fa7);color:#fff;box-shadow:var(--ds-shadow-md)}.admin-workspace .admin-console-hero:after{content:"";position:absolute;right:-70px;bottom:-130px;width:300px;height:300px;border:1px solid rgba(255,255,255,.14);border-radius:50%;box-shadow:0 0 0 34px rgba(255,255,255,.035),0 0 0 68px rgba(255,255,255,.025);pointer-events:none}.admin-workspace .admin-console-hero .hero-inner,.admin-workspace .admin-console-hero .logistics-strip,.admin-workspace .admin-console-hero>.btn{position:relative;z-index:1}.admin-workspace .admin-console-hero h1{color:#fff}.admin-workspace .admin-console-hero p{max-width:68ch;color:#d9ebf7}.admin-workspace .admin-console-hero .hero-eyebrow{color:#b9e3fa}.admin-workspace .admin-console-hero .logistics-strip{border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.1);backdrop-filter:blur(8px)}.admin-workspace .admin-console-hero .transport{display:grid;place-items:center}.admin-workspace .admin-console-hero .transport .material-symbols-outlined{font-size:21px}.admin-workspace .admin-console-hero .hero-cta{border-color:rgba(255,255,255,.3);background:#fff;color:var(--ds-navy-900)}
.admin-workspace .ds-card,.admin-workspace .card{border-color:var(--ds-border);border-radius:var(--ds-radius-lg);box-shadow:var(--ds-shadow-sm)}.admin-workspace .grid-4>.stat.ds-card{min-height:104px;border-top:3px solid var(--ds-blue-500)}.admin-workspace .stat .ico{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--ds-radius-sm);background:var(--ds-blue-50);color:var(--ds-blue-700)}.admin-workspace .stat .ico .material-symbols-outlined{font-size:22px}.admin-workspace .stat b{color:var(--ds-navy-900);font-size:clamp(20px,2vw,27px)}.admin-workspace .dashboard-health-strip{border:1px solid var(--ds-border);border-radius:var(--ds-radius-lg);background:#fff;box-shadow:var(--ds-shadow-sm)}.admin-workspace .dashboard-command-card{border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:#fff;box-shadow:var(--ds-shadow-sm)}.admin-workspace .dashboard-command-card:hover{border-color:var(--ds-blue-500);box-shadow:var(--ds-shadow-md)}
.admin-filter-card{padding:var(--ds-space-5)}.admin-workspace .filter-stack,.admin-workspace .admin-filter-card>.grid{align-items:end}.admin-workspace .field{margin-bottom:0}.admin-workspace .field input,.admin-workspace .field select,.admin-workspace .field textarea,.admin-workspace .filter-stack input,.admin-workspace .filter-stack select{min-height:44px;border-color:var(--ds-border);border-radius:var(--ds-radius-sm);background:#fff}.admin-workspace .filter-actions{display:flex;align-items:center;gap:var(--ds-space-2)}.admin-workspace .filter-actions .ds-button,.admin-workspace .admin-filter-card .ds-button{min-height:44px}.admin-workspace .table-data-tools{border-color:var(--ds-border);border-radius:var(--ds-radius-md);box-shadow:var(--ds-shadow-sm)}
.admin-table-card{padding:0!important;overflow:hidden}.admin-table-card>.table-panel-title,.admin-table-card>.table-panel-title-rich{padding:var(--ds-space-5);border-bottom:1px solid var(--ds-border);background:linear-gradient(135deg,var(--ds-blue-50),#fff)}.admin-workspace .table-wrap{margin:0;border:0;border-radius:0}.admin-workspace .ds-table{min-width:760px}.admin-workspace .ds-table th{padding:12px 14px;border-bottom:1px solid #cbdce7;background:#f4f8fb;color:var(--ds-navy-700);font-size:var(--ds-text-xs);font-weight:900;letter-spacing:.02em}.admin-workspace .ds-table td{padding:13px 14px;border-bottom-color:#e8eef3;vertical-align:middle}.admin-workspace .ds-table tbody tr:hover{background:var(--ds-blue-50)}.admin-workspace .ds-table tbody tr:last-child td{border-bottom:0}.admin-workspace .ds-status{border-radius:999px}.admin-workspace .admin-row-action{min-height:40px;padding:7px 11px;border-color:var(--ds-border);background:#fff;color:var(--ds-blue-700);white-space:nowrap}.admin-empty-row{height:150px;color:var(--ds-muted);text-align:center!important}.admin-empty-row .material-symbols-outlined{display:block;margin:0 auto var(--ds-space-2);color:#94a8b8;font-size:34px}.admin-workspace .pagination{padding:var(--ds-space-4) var(--ds-space-5);border-top:1px solid var(--ds-border)}
.admin-workspace .modal-content,.admin-workspace .modal-panel{border:1px solid var(--ds-border);border-radius:var(--ds-radius-lg);box-shadow:0 24px 70px rgba(13,30,55,.2)}.admin-workspace .modal-header{border-bottom:1px solid var(--ds-border)}.admin-workspace .modal-footer{border-top:1px solid var(--ds-border);background:#f8fafc}.admin-workspace .modal-footer .btn{min-height:44px}.admin-workspace .compact-actions .btn,.admin-workspace .table-actions .btn,.admin-workspace .workspace-actions .btn{min-height:40px}.admin-workspace .ds-alert{border-color:#c9e1f0;background:var(--ds-info-soft)}
.admin-settings-head.ds-card{display:flex;align-items:center;justify-content:space-between;gap:var(--ds-space-5);padding:var(--ds-space-6);border-left:5px solid var(--ds-blue-500);background:linear-gradient(135deg,#fff,var(--ds-blue-50))}.admin-settings-head h1{margin:3px 0;color:var(--ds-navy-900)}.admin-settings-head .eyebrow{color:var(--ds-info);font-size:var(--ds-text-xs);font-weight:900;letter-spacing:.1em;text-transform:uppercase}.admin-settings-head .ds-button{flex:none}.admin-workspace .social-settings-grid{gap:var(--ds-space-5)}.admin-workspace .social-provider-card.ds-card{border-top:4px solid var(--ds-blue-500);box-shadow:var(--ds-shadow-sm)}.admin-workspace .social-provider-card.google{border-top-color:#4285f4}.admin-workspace .social-provider-card.line{border-top-color:#06c755}.admin-workspace .social-provider-card .ds-form{display:grid;gap:var(--ds-space-4)}.admin-workspace .social-provider-card .ds-button{min-height:48px}.admin-workspace .social-login-policy.ds-alert{margin:0}.admin-workspace .social-login-policy.ds-alert>div{min-width:0}.admin-workspace .social-login-policy h2{margin-top:0;color:var(--ds-navy-900)}
@media(max-width:900px){.admin-workspace{gap:var(--ds-space-4)}.admin-workspace-nav.ds-tabs{margin-inline:-2px}.admin-workspace .admin-console-hero.ds-card{min-height:0;align-items:flex-start}.admin-workspace .grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-workspace .filter-stack,.admin-workspace .admin-filter-card>.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-workspace .filter-actions{grid-column:1/-1}.admin-settings-head.ds-card{align-items:flex-start;flex-direction:column}.admin-settings-head .ds-button{width:100%}}
@media(max-width:640px){.admin-workspace{gap:var(--ds-space-3)}.admin-workspace-nav.ds-tabs{position:relative;display:flex;padding:6px;border-radius:var(--ds-radius-md)}.admin-workspace-nav>a{min-height:48px;padding-inline:11px}.admin-workspace .admin-console-hero.ds-card{padding:var(--ds-space-5);border-left-width:4px;border-radius:var(--ds-radius-md)}.admin-workspace .admin-console-hero .logistics-strip{width:100%;justify-content:center}.admin-workspace .grid-4{grid-template-columns:1fr 1fr;gap:var(--ds-space-2)}.admin-workspace .grid-4>.stat.ds-card{min-height:92px;padding:var(--ds-space-3)}.admin-workspace .stat .ico{width:38px;height:38px}.admin-filter-card{padding:var(--ds-space-4)}.admin-workspace .filter-stack,.admin-workspace .admin-filter-card>.grid{grid-template-columns:1fr}.admin-workspace .filter-actions{display:grid;grid-template-columns:1fr 1fr}.admin-workspace .filter-actions .btn{width:100%;min-height:48px;justify-content:center}.admin-table-card>.table-panel-title,.admin-table-card>.table-panel-title-rich{padding:var(--ds-space-4)}.admin-workspace .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.admin-workspace .ds-table{min-width:720px}.admin-workspace .compact-actions .btn,.admin-workspace .table-actions .btn,.admin-workspace .workspace-actions .btn{min-height:48px}.admin-workspace .modal-footer{display:grid;grid-template-columns:1fr 1fr}.admin-workspace .modal-footer .btn{width:100%;min-height:48px}.admin-settings-head.ds-card{padding:var(--ds-space-5);border-radius:var(--ds-radius-md)}.admin-workspace .social-settings-grid{grid-template-columns:1fr}.admin-workspace .social-provider-card.ds-card{padding:var(--ds-space-4)}}

/* Phase 3A: dashboards as focused task centers. */
.simple-task-center{display:grid;gap:var(--ds-space-5);max-width:1040px;margin:0 auto 24px}.task-center-welcome{display:flex;align-items:end;justify-content:space-between;gap:var(--ds-space-5);padding:4px 2px}.task-center-welcome h1{margin:4px 0;font-size:clamp(1.55rem,3vw,2.1rem);letter-spacing:-.035em}.task-center-welcome p{margin:0;color:var(--ds-muted)}.task-center-context{flex:none;padding:7px 11px;background:var(--ds-blue-50);color:var(--ds-blue-700)}
.task-center-primary{overflow:hidden;border:1px solid var(--ds-border);border-top:5px solid var(--ds-blue-500);background:linear-gradient(135deg,var(--ds-surface),var(--ds-blue-50));box-shadow:var(--ds-shadow-md)}.simple-task-center--teacher .task-center-primary{border-top-color:var(--ds-warning);background:linear-gradient(135deg,var(--ds-surface),#fff9ec)}.task-center-primary-heading{display:flex;align-items:center;gap:var(--ds-space-3);padding:var(--ds-space-4) var(--ds-space-5);border-bottom:1px solid var(--ds-border)}.task-center-primary-heading h2{margin:2px 0 0;font-size:1.18rem}.task-center-step{display:grid;place-items:center;min-width:54px;min-height:32px;padding:4px 9px;border-radius:999px;background:var(--ds-navy-900);color:#fff;font-size:.72rem;font-weight:900}.task-center-primary-body{display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:var(--ds-space-4);padding:var(--ds-space-6)}.task-center-primary-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:#dceef9;color:var(--ds-blue-700);font-size:29px}.simple-task-center--teacher .task-center-primary-icon{background:#fff0ce;color:#95600a}.task-center-primary-copy{min-width:0}.task-center-primary-copy h3{margin:7px 0 3px;color:var(--ds-text);font-size:clamp(1.15rem,2vw,1.42rem)}.task-center-primary-copy p{margin:0;color:var(--ds-muted)}.task-center-primary-copy .ds-status{display:inline-flex}.task-center-primary-action{min-height:50px;padding-inline:18px;white-space:nowrap}.task-center-primary-body--clear .task-center-primary-icon{background:var(--ds-success-soft);color:var(--ds-success)}
.task-center-section-heading{display:flex;justify-content:space-between;gap:var(--ds-space-4);margin-bottom:var(--ds-space-3)}.task-center-section-heading h2{margin:3px 0;font-size:1.25rem}.task-center-section-heading p{margin:0;color:var(--ds-muted);font-size:.86rem}.task-center-course-list{display:grid;gap:var(--ds-space-3)}.task-center-course{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--ds-space-4);padding:var(--ds-space-4) var(--ds-space-5);border:1px solid var(--ds-border);background:var(--ds-surface)}.task-center-course-copy{min-width:0}.task-center-course-copy h3{margin:7px 0 3px;font-size:1rem}.task-center-course-copy p{margin:0;color:var(--ds-muted);font-size:.8rem}.task-center-course .btn{min-height:46px}.task-center-text-link{display:inline-flex;align-items:center;gap:5px;margin-top:var(--ds-space-3);color:var(--ds-blue-700);font-size:.82rem;font-weight:850;text-decoration:none}.task-center-text-link .material-symbols-outlined{font-size:17px}
.task-center-deadlines{overflow:hidden;border:1px solid var(--ds-border);background:var(--ds-surface)}.task-center-deadlines>a{display:grid;grid-template-columns:54px minmax(0,1fr) 24px;align-items:center;gap:var(--ds-space-3);min-height:74px;padding:10px var(--ds-space-4);border-bottom:1px solid var(--ds-border);color:var(--ds-text);text-decoration:none}.task-center-deadlines>a:last-child{border-bottom:0}.task-center-deadlines>a:hover{background:var(--ds-blue-50)}.task-center-deadlines time{display:grid;place-items:center;padding:6px;border-radius:12px;background:var(--ds-blue-50);color:var(--ds-blue-700)}.task-center-deadlines time b,.task-center-deadlines time small,.task-center-deadlines>a>span:nth-child(2) b,.task-center-deadlines>a>span:nth-child(2) small{display:block}.task-center-deadlines time b{font-size:1.12rem;line-height:1}.task-center-deadlines time small{font-size:.66rem;text-transform:uppercase}.task-center-deadlines>a>span:nth-child(2) small{margin-top:3px;color:var(--ds-muted);font-size:.76rem}
.task-center-disclosure{overflow:hidden;border:1px solid var(--ds-border);background:var(--ds-surface);box-shadow:var(--ds-shadow-sm)}.task-center-disclosure>summary{display:grid;grid-template-columns:44px minmax(0,1fr) 24px;align-items:center;gap:var(--ds-space-3);min-height:68px;padding:10px var(--ds-space-4);list-style:none;cursor:pointer}.task-center-disclosure>summary::-webkit-details-marker{display:none}.task-center-disclosure>summary>.material-symbols-outlined:first-child{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:var(--ds-blue-50);color:var(--ds-blue-700)}.task-center-disclosure>summary b,.task-center-disclosure>summary small{display:block}.task-center-disclosure>summary small{margin-top:2px;color:var(--ds-muted);font-size:.76rem}.task-center-chevron{transition:transform .18s ease}.task-center-disclosure[open] .task-center-chevron{transform:rotate(180deg)}.task-center-disclosure-body{padding:var(--ds-space-4);border-top:1px solid var(--ds-border);background:#f8fafc}
.task-center-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--ds-space-2);padding:var(--ds-space-3);border-top:1px solid var(--ds-border);background:#f8fafc}.task-center-shortcuts>a{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:var(--ds-space-2);min-height:60px;padding:9px;border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:var(--ds-surface);color:var(--ds-text);text-decoration:none}.task-center-shortcuts>a:hover{border-color:var(--ds-blue-500);background:var(--ds-blue-50)}.task-center-shortcuts>a>.material-symbols-outlined{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--ds-blue-50);color:var(--ds-blue-700)}.task-center-shortcuts b,.task-center-shortcuts small{display:block}.task-center-shortcuts b{font-size:.8rem}.task-center-shortcuts small{margin-top:2px;color:var(--ds-muted);font-size:.68rem}
.task-center-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:var(--ds-border)}.task-center-metrics>div,.task-center-metrics>a{display:grid;gap:3px;padding:var(--ds-space-4);background:var(--ds-surface);color:var(--ds-text);text-decoration:none}.task-center-metrics strong{font-size:1.25rem}.task-center-metrics span{color:var(--ds-muted);font-size:.75rem}.task-center-history{margin-top:var(--ds-space-4)}.task-center-history h3{margin:0 0 var(--ds-space-2);font-size:.95rem}.task-center-history p{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--ds-space-2);margin:0;padding:9px 0;border-top:1px solid var(--ds-border)}.task-center-history p>span:last-child,.task-center-history p small{display:block}.task-center-history p small{margin-top:2px;color:var(--ds-muted)}.task-center-empty{display:flex;align-items:center;gap:var(--ds-space-3);padding:var(--ds-space-5);border:1px dashed var(--ds-border);background:#f8fafc}.task-center-empty>.material-symbols-outlined{color:var(--ds-blue-500)}.task-center-empty b,.task-center-empty small{display:block}.task-center-empty small{margin-top:2px;color:var(--ds-muted)}.task-center-empty--inline{border:0;border-radius:0;box-shadow:none}
.task-center-checkin .student-checkin-zone{margin:0;border:0;box-shadow:none}.task-center-checkin .student-checkin-heading{margin-top:0}.task-center-checkin .student-live-card{box-shadow:none}
@media(max-width:760px){.simple-task-center{gap:var(--ds-space-4)}.task-center-welcome{align-items:start}.task-center-primary-body{grid-template-columns:48px minmax(0,1fr);padding:var(--ds-space-4)}.task-center-primary-icon{width:48px;height:48px;border-radius:14px;font-size:25px}.task-center-primary-action{grid-column:1/-1;width:100%;min-height:48px}.task-center-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}.task-center-course{padding:var(--ds-space-4)}}
@media(max-width:520px){.task-center-welcome{display:block;padding:0}.task-center-welcome h1{font-size:1.4rem}.task-center-context{display:inline-flex;margin-top:10px}.task-center-primary-heading{padding:12px}.task-center-primary-heading h2{font-size:1.06rem}.task-center-primary-body{gap:var(--ds-space-3);padding:14px 12px}.task-center-primary-copy h3{font-size:1.08rem}.task-center-course{grid-template-columns:1fr;gap:var(--ds-space-3);padding:14px}.task-center-course .btn{width:100%;min-height:48px}.task-center-shortcuts{grid-template-columns:1fr;padding:10px}.task-center-shortcuts>a{min-height:58px}.task-center-disclosure>summary{grid-template-columns:40px minmax(0,1fr) 22px;padding:9px 11px}.task-center-disclosure>summary>.material-symbols-outlined:first-child{width:40px;height:40px}.task-center-disclosure-body{padding:12px}.task-center-metrics{grid-template-columns:1fr}.task-center-metrics>div,.task-center-metrics>a{padding:12px 14px}.task-center-deadlines>a{grid-template-columns:48px minmax(0,1fr) 20px;padding:9px 10px}.task-center-deadlines>a>span:nth-child(2) small{line-height:1.35}.task-center-section-heading h2{font-size:1.12rem}}

/* Phase 3B — Campus Dispatch dashboard design system (mobile first). */
.dashboard-modern-shell{
  --dash-navy:#102a43;
  --dash-navy-deep:#091d30;
  --dash-cobalt:#2463d4;
  --dash-sky:#eaf4ff;
  --dash-paper:#ffffff;
  --dash-canvas:#f3f7fb;
  --dash-ink:#132f49;
  --dash-muted:#64788c;
  --dash-line:#d7e2ec;
  --dash-accent:#0f9f8f;
  --dash-accent-soft:#e4f7f3;
  --dash-radius-sm:12px;
  --dash-radius-md:18px;
  --dash-radius-lg:26px;
  --dash-shadow-sm:0 8px 24px rgba(16,42,67,.07);
  --dash-shadow-lg:0 22px 54px rgba(16,42,67,.14);
  --dash-space-1:6px;
  --dash-space-2:10px;
  --dash-space-3:14px;
  --dash-space-4:20px;
  --dash-space-5:28px;
  display:grid;
  gap:var(--dash-space-3);
  width:100%;
  max-width:1180px;
  margin:0 auto 28px;
  color:var(--dash-ink);
}
.dashboard-modern-shell.simple-task-center--teacher{--dash-accent:#c98514;--dash-accent-soft:#fff3d8}
body.student-page main{background:linear-gradient(180deg,#edf5fb 0,#f6f9fc 330px,#f8fafc 100%)}
body.teacher-page main{background:linear-gradient(180deg,#f5f2eb 0,#f8fafc 330px,#f8fafc 100%)}
.dashboard-modern-shell :where(a,button,summary):focus-visible{outline:3px solid color-mix(in srgb,var(--dash-accent) 45%,white);outline-offset:3px}

.dashboard-masthead{position:relative;isolation:isolate;display:flex;align-items:flex-start;flex-direction:column;gap:var(--dash-space-4);min-height:178px;padding:24px 20px 54px;overflow:hidden;border:1px solid rgba(255,255,255,.08);border-radius:var(--dash-radius-lg);background:var(--dash-navy);color:#fff;box-shadow:var(--dash-shadow-lg)}
.dashboard-masthead:before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(120deg,rgba(36,99,212,.32),transparent 48%),repeating-linear-gradient(90deg,transparent 0 47px,rgba(255,255,255,.035) 48px),repeating-linear-gradient(0deg,transparent 0 47px,rgba(255,255,255,.035) 48px)}
.dashboard-masthead:after{content:"";position:absolute;z-index:-1;right:-95px;bottom:-145px;width:300px;height:300px;border:1px solid rgba(255,255,255,.14);border-radius:50%;box-shadow:0 0 0 34px rgba(255,255,255,.035),0 0 0 70px rgba(255,255,255,.02)}
.simple-task-center--student .dashboard-masthead{background:linear-gradient(115deg,#102a43,#12465c)}
.simple-task-center--teacher .dashboard-masthead{background:linear-gradient(115deg,#102a43,#3f3a2b)}
.dashboard-masthead .section-kicker{color:#a9d7f6;font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.simple-task-center--teacher .dashboard-masthead .section-kicker{color:#f5d995}
.dashboard-masthead h1{margin:7px 0 4px;color:#fff;font-size:clamp(1.65rem,7vw,2.5rem);font-weight:800;letter-spacing:-.035em;line-height:1.15}
.dashboard-masthead p{max-width:46ch;margin:0;color:#d8e6f0;font-size:.92rem}
.dashboard-masthead-meta{display:flex;align-items:flex-start;flex-direction:column;gap:8px;color:#bdd0df;font-size:.75rem;font-variant-numeric:tabular-nums}
.dashboard-masthead .task-center-context{display:inline-flex;margin:0;padding:7px 10px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.1);color:#fff;backdrop-filter:blur(8px)}

.dashboard-route{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:-43px 12px 4px;padding:7px;border:1px solid var(--dash-line);border-radius:17px;background:rgba(255,255,255,.96);box-shadow:var(--dash-shadow-sm);backdrop-filter:blur(12px)}
.dashboard-route>a{position:relative;display:grid;grid-template-columns:27px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:7px;min-height:56px;padding:7px;border-radius:11px;color:var(--dash-muted);text-decoration:none}
.dashboard-route>a+a:before{content:"";position:absolute;top:12px;bottom:12px;left:-4px;width:1px;background:var(--dash-line)}
.dashboard-route>a>span{grid-row:1/3;display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#edf2f7;color:#6d8091;font:800 10px/1 ui-monospace,SFMono-Regular,Consolas,monospace}
.dashboard-route b,.dashboard-route small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-route b{align-self:end;color:var(--dash-ink);font-size:.78rem}.dashboard-route small{align-self:start;font-size:.63rem}.dashboard-route>a.is-current{background:var(--dash-accent-soft)}.dashboard-route>a.is-current>span{background:var(--dash-accent);color:#fff}.dashboard-route>a.is-current b{color:var(--dash-navy)}

.dashboard-modern-shell .task-center-primary{border:1px solid var(--dash-line);border-top:0;border-radius:var(--dash-radius-md);background:var(--dash-paper);box-shadow:var(--dash-shadow-sm)}
.dashboard-modern-shell .task-center-primary-heading{gap:12px;padding:16px;border-bottom:1px solid var(--dash-line);background:linear-gradient(90deg,var(--dash-accent-soft),#fff 72%)}
.dashboard-modern-shell .task-center-primary-heading h2{color:var(--dash-navy);font-size:1.1rem}.dashboard-modern-shell .task-center-step{min-width:52px;min-height:30px;background:var(--dash-accent);box-shadow:0 6px 16px color-mix(in srgb,var(--dash-accent) 28%,transparent)}
.dashboard-modern-shell .task-center-primary-body{grid-template-columns:48px minmax(0,1fr);gap:14px;padding:18px 16px}.dashboard-modern-shell .task-center-primary-icon{width:48px;height:48px;border-radius:14px;background:var(--dash-accent-soft);color:var(--dash-accent);font-size:25px}.dashboard-modern-shell .task-center-primary-copy h3{margin:7px 0 4px;color:var(--dash-navy);font-size:1.12rem}.dashboard-modern-shell .task-center-primary-copy p{color:var(--dash-muted);font-size:.86rem;line-height:1.55}.dashboard-modern-shell .task-center-primary-action{grid-column:1/-1;width:100%;min-height:50px;border-color:var(--dash-accent);border-radius:12px;background:var(--dash-accent);color:#fff;box-shadow:0 8px 18px color-mix(in srgb,var(--dash-accent) 22%,transparent)}
body.student-page .dashboard-modern-shell .btn.primary,body.teacher-page .dashboard-modern-shell .btn.primary{border-color:var(--dash-accent);background:var(--dash-accent);color:#fff}.dashboard-modern-shell .btn{border-radius:11px;font-weight:750}.dashboard-modern-shell .btn:hover{transform:translateY(-1px)}

.dashboard-focus-section{padding-top:8px}.dashboard-modern-shell .task-center-section-heading{margin-bottom:12px}.dashboard-modern-shell .task-center-section-heading h2{margin:4px 0 2px;color:var(--dash-navy);font-size:1.16rem}.dashboard-modern-shell .task-center-section-heading p{color:var(--dash-muted)}.dashboard-modern-shell .section-kicker{color:var(--dash-accent);font-size:10px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
.dashboard-course-grid{display:grid;grid-template-columns:1fr;gap:10px}.dashboard-course-tile{position:relative;display:grid;grid-template-columns:1fr;align-content:space-between;gap:16px;min-height:0;padding:17px;overflow:hidden;border:1px solid var(--dash-line);border-radius:var(--dash-radius-md);background:var(--dash-paper);box-shadow:var(--dash-shadow-sm)}.dashboard-course-tile:before{content:"";position:absolute;top:0;right:0;left:0;height:4px;background:linear-gradient(90deg,var(--dash-accent),var(--dash-cobalt))}.dashboard-course-tile .ds-badge{width:max-content;background:var(--dash-accent-soft);color:var(--dash-navy);font-size:.68rem}.dashboard-course-tile h3{margin:9px 0 5px;color:var(--dash-navy);font-size:1rem;line-height:1.35}.dashboard-course-tile p{color:var(--dash-muted);line-height:1.45}.dashboard-course-tile .btn{width:100%;min-height:48px;border-color:var(--dash-line);background:#fff;color:var(--dash-cobalt)}.dashboard-course-tile:hover{border-color:color-mix(in srgb,var(--dash-accent) 45%,var(--dash-line));box-shadow:0 14px 30px rgba(16,42,67,.11);transform:translateY(-2px)}
.dashboard-modern-shell .task-center-text-link{min-height:44px;color:var(--dash-cobalt)}

.dashboard-modern-shell .task-center-deadlines{border:1px solid var(--dash-line);border-radius:var(--dash-radius-md);background:#fff;box-shadow:var(--dash-shadow-sm)}.dashboard-modern-shell .task-center-deadlines>a{min-height:78px;border-color:#e5edf4}.dashboard-modern-shell .task-center-deadlines time{background:var(--dash-accent-soft);color:var(--dash-navy)}.dashboard-modern-shell .task-center-deadlines>a:hover{background:#f8fbfe}
.dashboard-drawer{border:1px solid var(--dash-line);border-radius:var(--dash-radius-md);background:rgba(255,255,255,.92);box-shadow:none}.dashboard-drawer>summary{min-height:66px}.dashboard-drawer>summary>.material-symbols-outlined:first-child{background:var(--dash-accent-soft);color:var(--dash-accent)}.dashboard-drawer>summary b{color:var(--dash-navy);font-size:.86rem}.dashboard-drawer>summary small{color:var(--dash-muted)}.dashboard-drawer[open]{box-shadow:var(--dash-shadow-sm)}.dashboard-drawer[open]>summary{background:#fbfdff}.dashboard-modern-shell .task-center-disclosure-body,.dashboard-modern-shell .task-center-shortcuts{border-color:var(--dash-line);background:#f6f9fc}.dashboard-modern-shell .task-center-shortcuts>a{border-color:var(--dash-line);border-radius:12px}.dashboard-modern-shell .task-center-shortcuts>a>.material-symbols-outlined{background:var(--dash-accent-soft);color:var(--dash-accent)}
.dashboard-modern-shell .task-center-metrics{border-color:var(--dash-line);background:var(--dash-line)}.dashboard-modern-shell .task-center-metrics>div,.dashboard-modern-shell .task-center-metrics>a{background:#fff}.dashboard-modern-shell .task-center-metrics strong{color:var(--dash-navy);font-variant-numeric:tabular-nums}.dashboard-modern-shell .task-center-history p{border-color:var(--dash-line)}

@media(min-width:640px){.dashboard-modern-shell{gap:18px}.dashboard-masthead{align-items:center;justify-content:space-between;flex-direction:row;min-height:190px;padding:30px 32px 60px}.dashboard-masthead-meta{align-items:flex-end}.dashboard-route{margin:-46px 28px 7px;padding:8px}.dashboard-route>a{grid-template-columns:34px minmax(0,1fr);column-gap:10px;min-height:62px;padding:9px 12px}.dashboard-route>a>span{width:34px;height:34px}.dashboard-route b{font-size:.84rem}.dashboard-route small{font-size:.69rem}.dashboard-modern-shell .task-center-primary-heading{padding:17px 22px}.dashboard-modern-shell .task-center-primary-body{grid-template-columns:58px minmax(0,1fr) auto;gap:18px;padding:24px}.dashboard-modern-shell .task-center-primary-icon{width:58px;height:58px;border-radius:17px;font-size:29px}.dashboard-modern-shell .task-center-primary-action{grid-column:auto;width:auto;min-width:174px}.dashboard-course-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.simple-task-center--teacher .dashboard-course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-modern-shell .task-center-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-modern-shell .task-center-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:960px){.dashboard-modern-shell{gap:20px}.dashboard-masthead{padding:34px 40px 64px}.dashboard-route{margin-inline:42px}.dashboard-course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.simple-task-center--teacher .dashboard-course-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-course-tile{min-height:190px;padding:20px}.dashboard-modern-shell .task-center-shortcuts{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:390px){.dashboard-route{margin-inline:6px}.dashboard-route>a{grid-template-columns:25px minmax(0,1fr);padding:6px 4px}.dashboard-route>a>span{width:25px;height:25px}.dashboard-route small{display:none}.dashboard-masthead{padding-inline:17px}.dashboard-modern-shell .task-center-primary-heading{padding:13px}.dashboard-modern-shell .task-center-primary-body{padding:15px 13px}}
@media(prefers-reduced-motion:reduce){.dashboard-modern-shell *{scroll-behavior:auto!important;transition:none!important}.dashboard-modern-shell .btn:hover,.dashboard-course-tile:hover{transform:none}}

/* Phase 3C — Unified Teacher Work Center (scoped presentation layer). */
.teacher-work-center{--work-assignment:#d97706;--work-quiz:#7c3aed;--work-grade:#2563eb;--work-attendance:#0f8f7f}
.teacher-work-center .teacher-work-hero p{max-width:62ch}
.teacher-work-center .teacher-work-route{position:sticky;top:8px}
.teacher-work-center .teacher-work-primary{scroll-margin-top:90px}
.teacher-work-center .teacher-work-pulse{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.teacher-work-center .teacher-work-pulse>div{display:grid;grid-template-columns:34px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:9px;min-height:72px;padding:12px;border:1px solid var(--dash-line);border-radius:14px;background:rgba(255,255,255,.94);box-shadow:var(--dash-shadow-sm)}
.teacher-work-center .teacher-work-pulse .material-symbols-outlined{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--dash-accent-soft);color:var(--dash-accent);font-size:20px}
.teacher-work-center .teacher-work-pulse strong{align-self:end;color:var(--dash-navy);font-size:1.25rem;font-variant-numeric:tabular-nums;line-height:1}
.teacher-work-center .teacher-work-pulse small{align-self:start;margin-top:3px;overflow:hidden;color:var(--dash-muted);font-size:.68rem;line-height:1.25;text-overflow:ellipsis}
.teacher-work-center .teacher-work-queue{display:grid;gap:12px;padding-top:7px;scroll-margin-top:90px}
.teacher-work-center .teacher-work-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:0}
.teacher-work-center .teacher-work-heading>.ds-badge{flex:none;background:var(--dash-accent-soft);color:var(--dash-navy)}
.teacher-work-center .teacher-work-list{display:grid;gap:9px}
.teacher-work-center .teacher-work-item{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:11px;min-width:0;padding:13px;overflow:hidden;border:1px solid var(--dash-line);border-radius:15px;background:#fff;box-shadow:var(--dash-shadow-sm)}
.teacher-work-center .teacher-work-item:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--work-item-color,var(--dash-accent))}
.teacher-work-center .teacher-work-item--assignment{--work-item-color:var(--work-assignment);--work-item-soft:#fff5df}
.teacher-work-center .teacher-work-item--quiz{--work-item-color:var(--work-quiz);--work-item-soft:#f2ebff}
.teacher-work-center .teacher-work-item--grade{--work-item-color:var(--work-grade);--work-item-soft:#eaf2ff}
.teacher-work-center .teacher-work-item--attendance{--work-item-color:var(--work-attendance);--work-item-soft:#e4f7f3}
.teacher-work-center .teacher-work-item-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--work-item-soft,var(--dash-accent-soft));color:var(--work-item-color,var(--dash-accent))}
.teacher-work-center .teacher-work-item-icon .material-symbols-outlined{font-size:23px}
.teacher-work-center .teacher-work-item-copy{min-width:0}
.teacher-work-center .teacher-work-item-kicker{display:block;margin-bottom:3px;color:var(--work-item-color,var(--dash-accent));font-size:.61rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase}
.teacher-work-center .teacher-work-item h3{margin:0;overflow:hidden;color:var(--dash-navy);font-size:.94rem;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}
.teacher-work-center .teacher-work-item p{margin:4px 0 0;overflow:hidden;color:var(--dash-muted);font-size:.76rem;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.teacher-work-center .teacher-work-item-count{display:grid;justify-items:end;min-width:56px;text-align:right}
.teacher-work-center .teacher-work-item-count strong{color:var(--dash-navy);font-size:1.25rem;font-variant-numeric:tabular-nums;line-height:1}
.teacher-work-center .teacher-work-item-count small{margin-top:4px;color:var(--dash-muted);font-size:.61rem;line-height:1.2}
.teacher-work-center .teacher-work-item-action{grid-column:1/-1;width:100%;min-height:48px;border-color:color-mix(in srgb,var(--work-item-color,var(--dash-accent)) 28%,var(--dash-line));background:var(--work-item-soft,var(--dash-accent-soft));color:var(--dash-navy)}
.teacher-work-center .teacher-work-empty{min-height:86px;border-style:dashed;background:rgba(255,255,255,.76)}
.teacher-work-center .teacher-work-support,.teacher-work-center .teacher-work-tools{scroll-margin-top:90px}
.teacher-work-center .teacher-work-tools .task-center-disclosure-body{display:grid;gap:16px}
.teacher-work-center .teacher-work-tools .task-center-metrics{margin:0}

@media(min-width:640px){.teacher-work-center .teacher-work-pulse{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.teacher-work-center .teacher-work-pulse>div{min-height:78px;padding:13px}.teacher-work-center .teacher-work-list{gap:10px}.teacher-work-center .teacher-work-item{grid-template-columns:46px minmax(0,1fr) 92px 132px;gap:14px;padding:14px 15px}.teacher-work-center .teacher-work-item-icon{width:46px;height:46px}.teacher-work-center .teacher-work-item-count{justify-items:start;text-align:left}.teacher-work-center .teacher-work-item-action{grid-column:auto;width:auto;min-width:132px}.teacher-work-center .teacher-work-heading{align-items:center}}
@media(min-width:960px){.teacher-work-center .teacher-work-primary{display:grid;grid-template-columns:230px minmax(0,1fr)}.teacher-work-center .teacher-work-primary .task-center-primary-heading{align-items:center;border-right:1px solid var(--dash-line);border-bottom:0}.teacher-work-center .teacher-work-pulse>div{grid-template-columns:40px minmax(0,1fr);column-gap:11px;padding:15px}.teacher-work-center .teacher-work-pulse .material-symbols-outlined{width:40px;height:40px}.teacher-work-center .teacher-work-item{padding:15px 18px}.teacher-work-center .teacher-work-item-action:hover{border-color:var(--work-item-color,var(--dash-accent));background:#fff;color:var(--work-item-color,var(--dash-accent))}}
@media(max-width:639px){.teacher-work-center .teacher-work-hero{min-height:0;padding:19px 18px 53px;gap:11px}.teacher-work-center .teacher-work-hero h1{margin-top:5px;font-size:clamp(1.45rem,7vw,1.7rem);line-height:1.08}.teacher-work-center .teacher-work-hero p{font-size:.8rem;line-height:1.45}.teacher-work-center .teacher-work-hero .dashboard-masthead-meta{align-items:center;justify-content:space-between;flex-direction:row;width:100%;gap:10px}.teacher-work-center .teacher-work-route{margin-top:-40px}.teacher-work-center .teacher-work-primary .task-center-primary-heading{padding:12px}.teacher-work-center .teacher-work-primary .task-center-primary-body{padding:14px 13px}.teacher-work-center .teacher-work-primary .task-center-primary-copy h3{font-size:1.02rem}.teacher-work-center .teacher-work-primary .task-center-primary-copy p{font-size:.78rem}}
@media(max-width:420px){.teacher-work-center .teacher-work-pulse>div{grid-template-columns:30px minmax(0,1fr);padding:10px}.teacher-work-center .teacher-work-pulse .material-symbols-outlined{width:30px;height:30px;font-size:18px}.teacher-work-center .teacher-work-pulse strong{font-size:1.08rem}.teacher-work-center .teacher-work-heading{align-items:flex-start;flex-direction:column}.teacher-work-center .teacher-work-heading>.ds-badge{align-self:flex-start}.teacher-work-center .teacher-work-item-count{min-width:48px}}

/* Student Learning Center — Campus Learning Dispatch. */
.student-learning-center{
  --slc-navy:#082f53;
  --slc-blue:#0878df;
  --slc-blue-soft:#e9f5ff;
  --slc-line:#dce8f2;
  --slc-ink:#102a43;
  --slc-muted:#60758a;
  --slc-red:#eb4c55;
  --slc-purple:#6b46e8;
  --slc-green:#07965d;
  --slc-gold:#e6a600;
  display:grid;
  gap:18px;
  max-width:1320px;
  margin:0 auto 32px;
  color:var(--slc-ink);
}
body.student-page .notification-toast{display:none}
.student-learning-center :where(a,button,summary):focus-visible{outline:3px solid rgba(8,120,223,.32);outline-offset:3px}
.slc-hero{position:relative;isolation:isolate;display:grid;grid-template-columns:108px minmax(0,1fr) auto;align-items:center;gap:22px;min-height:176px;padding:28px 34px;overflow:hidden;border:1px solid #c8e6f8;border-radius:22px;background:linear-gradient(110deg,#cae9ff 0%,#eaf7ff 55%,#d9f4ef 100%);box-shadow:0 14px 34px rgba(8,47,83,.09)}
.slc-hero:before{content:"";position:absolute;z-index:-2;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.5),transparent 42%),repeating-linear-gradient(125deg,transparent 0 39px,rgba(8,120,223,.025) 40px)}
.slc-hero-character{display:grid;place-items:center;width:108px;height:108px;border:8px solid rgba(255,255,255,.62);border-radius:50%;background:linear-gradient(145deg,#fff,#b9e0fa);box-shadow:0 10px 26px rgba(8,47,83,.13)}
.slc-hero-character span{font-size:60px;filter:drop-shadow(0 5px 4px rgba(8,47,83,.12))}
.slc-hero-copy{position:relative;z-index:2;min-width:0}.slc-eyebrow{color:#126da8;font-size:11px;font-weight:900;letter-spacing:.11em;text-transform:uppercase}.slc-hero h1{margin:6px 0 4px;color:var(--slc-navy);font-size:clamp(1.55rem,3vw,2.1rem);font-weight:900;letter-spacing:-.035em;line-height:1.18}.slc-hero p{max-width:58ch;margin:0;color:#355b77;font-size:.92rem}.slc-hero-date{position:relative;z-index:2;display:grid;justify-items:end;align-self:start;gap:2px;color:#31536c;text-align:right}.slc-hero-date span{font-size:.75rem;font-weight:800}.slc-hero-date strong{color:var(--slc-navy);font-size:1rem}
.slc-campus-mark{position:absolute;z-index:-1;right:24px;bottom:0;width:250px;height:86px;opacity:.38}.slc-campus-mark:before{content:"";position:absolute;right:0;bottom:0;left:0;height:12px;border-radius:50% 50% 0 0;background:#47b28a}.slc-campus-mark i{position:absolute;bottom:11px;width:58px;border:5px solid #fff;border-bottom:0;border-radius:7px 7px 0 0;background:#2194d1;box-shadow:inset 0 0 0 7px rgba(255,255,255,.2)}.slc-campus-mark i:nth-child(1){right:116px;height:47px}.slc-campus-mark i:nth-child(2){right:58px;height:65px;background:#e6a600}.slc-campus-mark i:nth-child(3){right:0;height:42px;background:#4ab57d}.slc-campus-mark b{position:absolute;right:153px;bottom:11px;width:28px;height:70px;border-radius:50% 50% 10px 10px;background:#34a56e}
.slc-onboarding{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:20px;padding:26px;border:1px solid var(--slc-line);border-radius:20px}.slc-onboarding>.material-symbols-outlined{display:grid;place-items:center;width:64px;height:64px;border-radius:18px;background:var(--slc-blue-soft);color:var(--slc-blue);font-size:32px}.slc-onboarding h2{margin:5px 0;color:var(--slc-navy)}.slc-onboarding p{margin:0;color:var(--slc-muted)}.slc-onboarding .btn{min-height:50px}
.slc-snapshot{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.slc-snapshot-card{--slc-card-color:var(--slc-blue);--slc-card-soft:var(--slc-blue-soft);display:grid;grid-template-columns:50px minmax(0,1fr);align-items:center;gap:11px;min-height:104px;padding:15px;border:1px solid var(--slc-line);border-radius:17px;background:#fff;color:var(--slc-ink);text-decoration:none;box-shadow:0 8px 22px rgba(8,47,83,.055);transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}.slc-snapshot-card:hover{border-color:color-mix(in srgb,var(--slc-card-color) 35%,var(--slc-line));box-shadow:0 13px 28px rgba(8,47,83,.1);transform:translateY(-2px)}.slc-snapshot-card>.material-symbols-outlined{grid-row:1/3;display:grid;place-items:center;width:50px;height:50px;border-radius:16px;background:var(--slc-card-soft);color:var(--slc-card-color);font-size:27px}.slc-snapshot-card span:nth-child(2){align-self:end}.slc-snapshot-card strong,.slc-snapshot-card small{display:block}.slc-snapshot-card strong{color:var(--slc-navy);font-size:1.65rem;font-variant-numeric:tabular-nums;line-height:1}.slc-snapshot-card small{margin-top:4px;color:var(--slc-muted);font-size:.72rem;font-weight:700}.slc-snapshot-card>b{align-self:start;color:var(--slc-card-color);font-size:.67rem}.slc-snapshot-card.is-assignment{--slc-card-color:var(--slc-red);--slc-card-soft:#ffecef}.slc-snapshot-card.is-quiz{--slc-card-color:var(--slc-purple);--slc-card-soft:#f0ebff}.slc-snapshot-card.is-attendance{--slc-card-color:var(--slc-green);--slc-card-soft:#e4f8ee}.slc-snapshot-card.is-progress{--slc-card-color:var(--slc-blue);--slc-card-soft:#e7f2ff}
.slc-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(300px,.82fr);align-items:start;gap:16px}.slc-panel,.slc-announcements,.slc-checkin{overflow:hidden;border:1px solid var(--slc-line);border-radius:19px;background:#fff;box-shadow:0 8px 24px rgba(8,47,83,.05)}
.slc-section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:64px;padding:14px 18px;border-bottom:1px solid var(--slc-line)}.slc-section-heading>div{display:flex;align-items:center;gap:9px;min-width:0}.slc-section-heading h2{margin:0;color:var(--slc-navy);font-size:1.04rem}.slc-section-heading>a{display:inline-flex;align-items:center;flex:none;min-height:42px;color:var(--slc-blue);font-size:.75rem;font-weight:900;text-decoration:none}.slc-section-heading>a .material-symbols-outlined{font-size:18px}.slc-section-icon{color:var(--slc-gold);font-size:24px}.slc-heading-outside{padding:0 2px 10px;border:0}
.slc-action-list{display:grid;padding:6px 14px 12px}.slc-action-row{--slc-action-color:var(--slc-blue);--slc-action-soft:var(--slc-blue-soft);position:relative;display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:13px;min-height:104px;padding:13px 4px;border-bottom:1px solid #eaf0f5}.slc-action-row:last-child{border-bottom:0}.slc-action-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--slc-action-soft);color:var(--slc-action-color);font-size:27px}.slc-action-copy{min-width:0}.slc-action-copy .ds-badge{padding:3px 7px;background:var(--slc-action-soft);color:var(--slc-action-color);font-size:.61rem}.slc-action-copy h3{margin:5px 0 2px;overflow:hidden;color:var(--slc-navy);font-size:.95rem;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.slc-action-copy p{margin:0;overflow:hidden;color:var(--slc-muted);font-size:.73rem;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.slc-action-row.kind-assignment{--slc-action-color:var(--slc-red);--slc-action-soft:#ffecef}.slc-action-row.kind-quiz{--slc-action-color:var(--slc-purple);--slc-action-soft:#f0ebff}.slc-action-row.kind-attendance{--slc-action-color:var(--slc-green);--slc-action-soft:#e4f8ee}.slc-action-row.kind-feedback,.slc-action-row.kind-score{--slc-action-color:var(--slc-blue);--slc-action-soft:#e7f2ff}.slc-action-button{min-width:132px;min-height:44px;border-color:var(--slc-action-color);background:var(--slc-action-color);color:#fff}.slc-action-button:hover{filter:brightness(.96);color:#fff}.slc-clear-state{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:14px;padding:22px 4px}.slc-clear-state>.material-symbols-outlined{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#e4f8ee;color:var(--slc-green)}.slc-clear-state h3,.slc-clear-state p{margin:0}.slc-clear-state h3{color:var(--slc-navy)}.slc-clear-state p{margin-top:3px;color:var(--slc-muted);font-size:.8rem}
.slc-deadline-list{display:grid;padding:9px 15px 15px}.slc-deadline-list>a{display:grid;grid-template-columns:58px 12px minmax(0,1fr);align-items:center;gap:10px;min-height:72px;color:inherit;text-decoration:none}.slc-deadline-list time{display:grid;color:var(--slc-navy);text-align:right}.slc-deadline-list time strong{font-size:.86rem}.slc-deadline-list time small{color:var(--slc-muted);font-size:.65rem}.slc-deadline-list>a>i{position:relative;align-self:stretch;width:2px;margin:auto;background:#d8e5ef}.slc-deadline-list>a>i:before{content:"";position:absolute;top:50%;left:50%;width:10px;height:10px;border:3px solid #fff;border-radius:50%;background:var(--slc-blue);box-shadow:0 0 0 1px #bfdaed;transform:translate(-50%,-50%)}.slc-deadline-list>a:nth-child(2)>i:before{background:var(--slc-gold)}.slc-deadline-list>a:nth-child(3)>i:before{background:var(--slc-green)}.slc-deadline-list b,.slc-deadline-list small{display:block}.slc-deadline-list b{overflow:hidden;color:var(--slc-navy);font-size:.79rem;text-overflow:ellipsis;white-space:nowrap}.slc-deadline-list small{margin-top:3px;color:var(--slc-muted);font-size:.65rem}
.slc-empty-mini{display:flex;align-items:center;gap:11px;min-height:92px;padding:16px;color:var(--slc-muted)}.slc-empty-mini>.material-symbols-outlined{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#eef5fa;color:var(--slc-blue)}.slc-empty-mini p,.slc-empty-mini b,.slc-empty-mini small{display:block;margin:0}.slc-empty-mini small{margin-top:3px}
.slc-checkin{padding-bottom:14px}.slc-checkin .checkin-card,.slc-checkin .student-checkin-card{margin:12px 14px 0}
.slc-learning-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.36fr);align-items:start;gap:16px}.slc-course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.slc-course-card{overflow:hidden;border:1px solid var(--slc-line);border-radius:17px;background:#fff;box-shadow:0 8px 22px rgba(8,47,83,.055);transition:transform .18s ease,box-shadow .18s ease}.slc-course-card:hover{box-shadow:0 14px 30px rgba(8,47,83,.1);transform:translateY(-2px)}.slc-course-visual{position:relative;display:grid;place-items:center;height:92px;overflow:hidden;background:linear-gradient(135deg,#0c416d,#1487c9)}.slc-course-visual:before{content:"";position:absolute;right:-15px;bottom:-28px;width:120px;height:70px;border-radius:50%;background:#45b784}.slc-course-visual:after{content:"";position:absolute;right:68px;bottom:0;width:45px;height:48px;border:6px solid rgba(255,255,255,.78);border-bottom:0;background:#efb729}.slc-course-visual>.material-symbols-outlined{position:relative;z-index:2;color:#fff;font-size:42px;filter:drop-shadow(0 5px 5px rgba(0,0,0,.2))}.slc-course-visual i{position:absolute;z-index:1;bottom:0;width:10px;height:46px;border-radius:50% 50% 4px 4px;background:#63c796}.slc-course-visual i:nth-of-type(1){left:20px}.slc-course-visual i:nth-of-type(2){right:20px;height:58px}.slc-course-body{padding:14px}.slc-course-body .ds-badge{background:var(--slc-blue-soft);color:var(--slc-blue);font-size:.65rem}.slc-course-body h3{min-height:42px;margin:8px 0 3px;color:var(--slc-navy);font-size:.9rem;line-height:1.35}.slc-course-body p{margin:0;color:var(--slc-muted);font-size:.7rem}.slc-course-body .btn{width:100%;min-height:44px;margin-top:13px;border-color:var(--slc-navy);background:var(--slc-navy);color:#fff}
.slc-announcement-list{display:grid;padding:8px 15px 15px}.slc-announcement-list>div{display:grid;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:10px;min-height:70px;border-bottom:1px solid #eaf0f5}.slc-announcement-list>div:last-child{border-bottom:0}.slc-announcement-list>div>.material-symbols-outlined{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#ffecef;color:var(--slc-red);font-size:21px}.slc-announcement-list>div:nth-child(even)>.material-symbols-outlined{background:#f0ebff;color:var(--slc-purple)}.slc-announcement-list p,.slc-announcement-list b,.slc-announcement-list small{display:block;min-width:0;margin:0}.slc-announcement-list b{overflow:hidden;color:var(--slc-navy);font-size:.77rem;text-overflow:ellipsis;white-space:nowrap}.slc-announcement-list small{margin-top:3px;color:var(--slc-muted);font-size:.64rem}
.slc-summary{overflow:hidden;border:1px solid var(--slc-line);border-radius:17px;background:#fff;box-shadow:0 7px 20px rgba(8,47,83,.045)}.slc-summary>summary{display:flex;align-items:center;justify-content:space-between;min-height:58px;padding:12px 17px;cursor:pointer;list-style:none}.slc-summary>summary::-webkit-details-marker{display:none}.slc-summary>summary>span:first-child{display:flex;align-items:center;gap:9px;color:var(--slc-navy)}.slc-summary>summary>span:first-child>.material-symbols-outlined{color:var(--slc-blue)}.slc-summary-chevron{transition:transform .18s ease}.slc-summary[open] .slc-summary-chevron{transform:rotate(180deg)}.slc-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;border-top:1px solid var(--slc-line);background:var(--slc-line)}.slc-summary-grid>a{display:grid;grid-template-columns:40px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:10px;min-height:90px;padding:13px;background:#fff;color:inherit;text-decoration:none}.slc-summary-grid>a>.material-symbols-outlined{grid-row:1/3;display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:var(--slc-blue-soft);color:var(--slc-blue)}.slc-summary-grid strong{align-self:end;color:var(--slc-navy);font-size:1.25rem;line-height:1}.slc-summary-grid small{align-self:start;margin-top:4px;color:var(--slc-muted);font-size:.68rem}
@media(max-width:1100px){.slc-dashboard-grid{grid-template-columns:minmax(0,1.5fr) minmax(280px,.8fr)}.slc-learning-grid{grid-template-columns:1fr}.slc-announcements{display:none}.slc-course-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.slc-hero{grid-template-columns:86px minmax(0,1fr) auto;min-height:156px;padding:22px}.slc-hero-character{width:86px;height:86px}.slc-hero-character span{font-size:49px}.slc-snapshot{grid-template-columns:repeat(2,minmax(0,1fr))}.slc-dashboard-grid{grid-template-columns:1fr}.slc-course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.student-learning-center{gap:13px;margin-bottom:92px}.slc-hero{grid-template-columns:58px minmax(0,1fr);gap:12px;min-height:146px;padding:18px 16px;border-radius:17px}.slc-hero-character{width:58px;height:58px;border-width:5px}.slc-hero-character span{font-size:34px}.slc-hero-copy{align-self:center}.slc-hero h1{margin-top:4px;font-size:1.24rem}.slc-hero p{font-size:.76rem;line-height:1.45}.slc-hero-date{grid-column:1/-1;align-items:center;justify-content:space-between;grid-template-columns:auto auto;width:100%;padding-top:4px;border-top:1px solid rgba(8,47,83,.12)}.slc-campus-mark{right:-20px;width:170px;height:65px;opacity:.22}.slc-snapshot{gap:8px}.slc-snapshot-card{grid-template-columns:42px minmax(0,1fr);gap:8px;min-height:90px;padding:11px;border-radius:14px}.slc-snapshot-card>.material-symbols-outlined{width:42px;height:42px;border-radius:13px;font-size:23px}.slc-snapshot-card strong{font-size:1.35rem}.slc-snapshot-card small{font-size:.64rem}.slc-snapshot-card>b{font-size:.6rem}.slc-section-heading{min-height:56px;padding:11px 13px}.slc-section-heading h2{font-size:.96rem}.slc-section-heading>a{min-height:44px}.slc-action-list{padding:4px 10px 10px}.slc-action-row{grid-template-columns:46px minmax(0,1fr) 106px;gap:9px;min-height:84px;padding:10px 2px}.slc-action-icon{width:46px;height:46px;font-size:24px}.slc-action-copy h3{font-size:.86rem}.slc-action-copy p{white-space:nowrap}.slc-action-button{grid-column:3;grid-row:1;width:106px;min-width:0;min-height:46px;margin:0;padding-inline:8px;font-size:.68rem}.slc-action-button .material-symbols-outlined{font-size:17px}.slc-clear-state{grid-template-columns:46px minmax(0,1fr);padding:17px 2px}.slc-clear-state>.material-symbols-outlined{width:46px;height:46px}.slc-clear-state .btn{grid-column:1/-1;width:100%;min-height:48px}.slc-deadline-list>a{min-height:68px}.slc-course-grid{grid-template-columns:1fr;gap:10px}.slc-course-card{display:grid;grid-template-columns:112px minmax(0,1fr)}.slc-course-visual{height:100%;min-height:142px}.slc-course-body h3{min-height:0}.slc-course-body .btn{min-height:48px}.slc-heading-outside{min-height:52px;padding-inline:2px}.slc-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.slc-summary-grid>a{min-height:82px}.slc-onboarding{grid-template-columns:52px minmax(0,1fr);gap:13px;padding:18px}.slc-onboarding>.material-symbols-outlined{width:52px;height:52px}.slc-onboarding .btn{grid-column:1/-1;width:100%}}
@media(max-width:390px){.slc-hero{padding-inline:13px}.slc-hero-copy h1{font-size:1.12rem}.slc-snapshot-card{grid-template-columns:36px minmax(0,1fr);padding:9px}.slc-snapshot-card>.material-symbols-outlined{width:36px;height:36px;font-size:21px}.slc-snapshot-card strong{font-size:1.2rem}.slc-course-card{grid-template-columns:96px minmax(0,1fr)}.slc-course-body{padding:12px}.slc-course-visual{min-height:138px}.slc-course-body h3{font-size:.84rem}}
@media(prefers-reduced-motion:reduce){.student-learning-center *{scroll-behavior:auto!important;transition:none!important}.slc-snapshot-card:hover,.slc-course-card:hover{transform:none}}
/* Course workspace: keep the teacher action cluster visually balanced. */
.course-workspace-actions.ds-quick-actions{
  display:grid;
  grid-template-columns:repeat(4,minmax(150px,180px));
  justify-content:center;
  align-items:stretch;
  gap:var(--ds-space-3);
}
.course-workspace-actions.ds-quick-actions .ds-button{
  width:100%;
  min-height:48px;
  justify-content:center;
  text-align:center;
}
@media(max-width:700px){
  .course-workspace-actions.ds-quick-actions{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:var(--ds-space-2);
  }
}

/* Mini Project teams: formation, confirmation and one-score-per-team workflow. */
.project-team-student,.project-team-command,.project-team-review{padding:var(--ds-space-5);border-color:var(--ds-border);box-shadow:var(--ds-shadow-sm)}
.project-team-student{margin-bottom:var(--ds-space-5);border-top:4px solid var(--ds-blue-500)}
.project-team-heading,.project-team-review>header,.project-team-review-actions{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--ds-space-4)}
.project-team-heading h2,.project-team-review h3{margin:3px 0;color:var(--ds-navy-900)}
.project-team-heading p,.project-team-review small{margin:0;color:var(--ds-muted)}
.project-team-identity{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ds-space-3);margin:var(--ds-space-4) 0}
.project-team-identity>div{padding:var(--ds-space-3);border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:var(--ds-blue-50)}
.project-team-identity small,.project-team-identity strong{display:block}.project-team-identity small{color:var(--ds-muted)}
.project-team-code{color:var(--ds-blue-700);font-size:1.3rem;letter-spacing:.12em}
.project-team-invite{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 10px}.project-team-invite>small:first-child,.project-team-invite .project-team-code{grid-column:1}.project-team-copy{grid-column:2;grid-row:1/3;min-height:48px}.project-team-copy .material-symbols-outlined{font-size:19px}.project-team-copy-status{grid-column:1/-1;color:var(--ds-success);min-height:1.2em}.project-team-self-service{display:flex;align-items:center;justify-content:space-between;gap:var(--ds-space-3);margin-top:var(--ds-space-3)}.project-team-self-service p{margin:0;color:var(--ds-muted)}
.project-member-list{display:flex;flex-wrap:wrap;gap:8px;margin:var(--ds-space-3) 0}
.project-member-list>span{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:7px 10px;border:1px solid var(--ds-border);border-radius:999px;background:#fff;font-size:var(--ds-text-sm)}
.project-member-list .material-symbols-outlined{color:var(--ds-blue-700);font-size:18px}.project-member-list small{padding-left:3px;color:var(--ds-warning);font-weight:800}
.project-team-onboarding{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;gap:var(--ds-space-4);margin-top:var(--ds-space-4)}
.project-team-onboarding form{display:grid;align-content:start;gap:10px;padding:var(--ds-space-4);border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:var(--ds-surface)}
.project-team-onboarding h3{margin:0}.project-team-onboarding .ds-button{min-height:48px}.project-team-or{display:grid;place-items:center;color:var(--ds-muted);font-weight:800}
.project-team-score{margin-top:var(--ds-space-4)}
.project-team-command{margin-bottom:var(--ds-space-4);background:linear-gradient(135deg,#fff,var(--ds-blue-50))}
.project-room-filter{display:flex;gap:8px;overflow-x:auto;margin-top:var(--ds-space-4);padding-bottom:3px}.project-room-filter .ds-button{flex:0 0 auto;min-height:44px;text-decoration:none}.project-room-filter .is-active{background:var(--ds-blue-700);border-color:var(--ds-blue-700);color:#fff}
.project-team-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--ds-space-3);margin-top:var(--ds-space-4)}
.project-team-metrics>div{padding:var(--ds-space-3);border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:#fff}.project-team-metrics strong,.project-team-metrics span{display:block}.project-team-metrics strong{font-size:1.55rem;color:var(--ds-navy-900)}.project-team-metrics span{color:var(--ds-muted)}.project-team-metrics .has-warning strong{color:var(--ds-warning)}
.project-team-metrics .has-success strong{color:var(--ds-success)}
.project-review-summary{padding:var(--ds-space-5);margin-bottom:var(--ds-space-4);border-top:4px solid var(--ds-blue-600)}
.project-summary-list{display:grid;gap:8px;margin-top:var(--ds-space-4)}
.project-summary-head,.project-summary-row{display:grid;grid-template-columns:88px minmax(230px,1.35fr) 112px 112px 112px minmax(330px,auto);align-items:center;gap:12px}
.project-summary-head{padding:0 14px;color:var(--ds-muted);font-size:.82rem;font-weight:800}
.project-summary-filters{padding:14px;border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:var(--ds-page);align-items:end}.project-summary-filters label{display:grid;gap:6px;min-width:0}.project-summary-filters label>span{color:var(--ds-navy-900);font-weight:800}.project-summary-filters input,.project-summary-filters select{width:100%;min-width:0;min-height:42px;padding:8px 10px;border:1px solid var(--ds-border);border-radius:var(--ds-radius-sm);background:#fff;color:var(--ds-navy-900);font:inherit}.project-summary-filters label:nth-child(2){grid-template-columns:1fr}.project-summary-filter-actions{display:flex;gap:7px;justify-content:flex-end}.project-summary-filter-actions .ds-button{min-height:42px;padding-inline:12px}
.project-summary-row{padding:12px 14px;border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:var(--ds-surface)}
.project-summary-entry{margin:0}.project-summary-input{width:100%;min-width:0;min-height:46px;padding:8px 9px;border:1px solid var(--ds-border);border-radius:var(--ds-radius-sm);background:#fff;color:var(--ds-navy-900);font-weight:800;text-align:right}.project-summary-input:focus{outline:3px solid rgba(44,120,183,.16);border-color:var(--ds-blue-500)}
.project-summary-row.is-missing{background:var(--ds-danger-soft)}
.project-summary-row>span:not(.project-summary-actions),.project-summary-team small{display:block}
.project-summary-row small{color:var(--ds-muted)}
.project-summary-rank{font-size:1.2rem;font-weight:900;color:var(--ds-blue-700)}
.project-summary-team b{display:block;color:var(--ds-navy-900)}
.project-summary-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:7px}.project-summary-actions .ds-button{min-height:44px}.project-summary-actions .project-publish-button{border-color:var(--ds-success);color:var(--ds-success)}
.project-score-queue{border-top-color:var(--ds-success)!important}.project-score-queue-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:10px;align-items:end;margin-top:var(--ds-space-4);padding:14px;border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:var(--ds-page)}.project-score-queue-filters label{display:grid;gap:6px;margin:0;color:var(--ds-navy-900);font-size:.82rem;font-weight:800}.project-score-queue-filters input,.project-score-queue-filters select{width:100%;min-width:0;min-height:44px;padding:8px 10px;border:1px solid var(--ds-border);border-radius:var(--ds-radius-sm);background:#fff;color:var(--ds-navy-900);font:inherit}.project-score-queue-filter-actions{display:flex;gap:7px}.project-score-queue-filter-actions .ds-button{min-height:44px;white-space:nowrap}.project-score-queue-list{display:grid;gap:8px;margin-top:var(--ds-space-3)}.project-score-queue-head,.project-score-queue-row{display:grid;grid-template-columns:minmax(220px,1.4fr) 132px 120px minmax(260px,auto);align-items:center;gap:12px}.project-score-queue-head{padding:0 14px;color:var(--ds-muted);font-size:.82rem;font-weight:800}.project-score-queue-row{padding:12px 14px;border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:var(--ds-surface)}.project-score-queue-row.is-missing{background:var(--ds-danger-soft)}.project-score-queue-row>span{min-width:0}.project-score-queue-row small{display:block;margin-top:3px;color:var(--ds-muted)}.project-score-queue-team b{display:block;color:var(--ds-navy-900)}.project-score-queue-actions{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap}.project-score-queue-actions .ds-button{min-height:44px}.project-score-queue-actions .project-publish-button{border-color:var(--ds-success);color:var(--ds-success)}
.project-team-teacher-list{display:grid;gap:var(--ds-space-4)}
.project-team-review{border-left:4px solid var(--ds-blue-500)}
.project-team-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.project-team-header-actions form{margin:0}.project-team-header-actions .ds-button{min-height:42px}.project-team-header-actions .material-symbols-outlined{font-size:18px}.project-reopen-button{border-color:var(--ds-warning)!important;background:var(--ds-warning-soft)!important;color:#754c08!important}
.project-team-management{padding:0!important;overflow:hidden;border-color:#cfe0ee!important;background:#fbfdff!important}.project-team-management>summary{display:flex;align-items:center;gap:10px;padding:14px 16px;cursor:pointer;list-style:none;color:var(--ds-navy);min-height:52px}.project-team-management>summary::-webkit-details-marker{display:none}.project-team-management>summary>.material-symbols-outlined{color:var(--ds-primary)}.project-team-management>summary>span:last-child{display:grid;gap:2px}.project-team-management>summary small{color:var(--ds-muted);font-weight:500}.project-team-management[open]>summary{border-bottom:1px solid var(--ds-border);background:#f3f9fd}.project-team-management-body{display:grid;gap:16px;padding:16px}.project-team-rename{display:grid;grid-template-columns:minmax(240px,1fr) auto;align-items:end;gap:10px}.project-team-rename label{margin:0}.project-team-member-manager{display:grid;gap:12px}.project-team-member-manager-title{display:flex;align-items:end;justify-content:space-between;gap:14px}.project-team-member-manager-title>div{display:grid;gap:2px}.project-team-member-manager-title small{color:var(--ds-muted)}.project-team-add-member{display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:8px;align-items:end}.project-team-add-member select{min-height:48px}.project-team-managed-members{display:grid;border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);overflow:hidden;background:#fff}.project-team-managed-members>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border-bottom:1px solid var(--ds-border)}.project-team-managed-members>div:last-child{border-bottom:0}.project-team-managed-members>div>span:first-child{display:flex;align-items:center;gap:9px;min-width:0}.project-team-managed-members>div>span:first-child>.material-symbols-outlined{color:var(--ds-primary)}.project-team-managed-members>div>span:first-child>span{display:grid}.project-team-managed-members small{color:var(--ds-muted)}.project-team-member-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.project-team-member-actions form{margin:0}.project-team-member-actions .ds-button{min-height:42px}.project-team-management-note{display:flex;align-items:flex-start;gap:8px;margin:0;padding:10px 12px;border-radius:var(--ds-radius-sm);background:var(--ds-info-soft);color:#315a75;font-size:.86rem}.project-team-management-note .material-symbols-outlined{font-size:19px}.ds-button.danger{border-color:#f3b9b9!important;color:var(--ds-danger)!important;background:#fff8f8!important}
.project-leaderboard,.project-unassigned{padding:var(--ds-space-5);margin-bottom:var(--ds-space-4)}.project-rank-list{display:grid;gap:8px;margin-top:var(--ds-space-4)}.project-rank-list>div{display:grid;grid-template-columns:54px minmax(220px,1fr) 110px 110px;align-items:center;gap:12px;padding:11px 14px;border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:var(--ds-surface)}.project-rank-list strong{font-size:1.15rem;color:var(--ds-blue-700)}.project-rank-list span,.project-rank-list small{display:block}.project-rank-list small{color:var(--ds-muted)}.project-rank-badge{margin-left:6px;background:var(--ds-warning-soft);color:var(--ds-warning)}.project-unassigned summary{cursor:pointer;font-weight:800;color:var(--ds-navy-900)}.project-unassigned .project-member-list{margin-top:var(--ds-space-3)}
.project-submission-panel{display:grid;gap:10px;margin-top:var(--ds-space-4);padding:var(--ds-space-4);border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:var(--ds-blue-50)}.project-submission-panel b{display:block;color:var(--ds-navy-900)}.project-submission-actions{display:flex;flex-wrap:wrap;gap:8px}.project-submission-note{margin:0;padding-top:10px;border-top:1px solid var(--ds-border);overflow-wrap:anywhere}.project-missing-alert{margin-top:var(--ds-space-4);border-color:var(--ds-danger);background:var(--ds-danger-soft)}.project-missing-alert p{margin:3px 0 0}.project-social-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:var(--ds-space-4)}.project-social-summary>div{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:0 9px;padding:12px;border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:var(--ds-surface)}.project-social-summary .material-symbols-outlined{grid-row:1/3;color:var(--ds-blue-500)}.project-social-summary b,.project-social-summary small{display:block}.project-social-summary small{color:var(--ds-muted)}
.project-team-review-actions{align-items:flex-end;margin-top:var(--ds-space-4);padding-top:var(--ds-space-4);border-top:1px solid var(--ds-border)}
.project-team-grade-form{display:grid;grid-template-columns:120px minmax(220px,1fr) auto auto;align-items:end;gap:var(--ds-space-2);flex:1}.project-team-grade-form label{display:grid;gap:5px;font-weight:700}.project-team-grade-form .ds-button{min-height:48px}.project-feedback-field{min-width:0}
.project-team-grade-form.has-social-metrics{grid-template-columns:110px 110px 100px minmax(200px,1fr) auto auto}
@media(max-width:1150px){.project-summary-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.project-summary-filter-actions{justify-content:flex-start;align-self:end}.project-summary-row{grid-template-columns:60px minmax(180px,1fr) repeat(3,90px);}.project-summary-actions{grid-column:2/-1;justify-content:flex-start}.project-score-queue-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.project-score-queue-filter-actions{grid-column:1/-1}.project-score-queue-row{grid-template-columns:minmax(180px,1fr) 120px 100px}.project-score-queue-actions{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:1050px){.project-team-grade-form.has-social-metrics{grid-template-columns:repeat(3,minmax(100px,1fr))}.project-team-grade-form.has-social-metrics .project-feedback-field{grid-column:1/-1}.project-team-grade-form.has-social-metrics .ds-button{width:100%}}
@media(max-width:850px){.project-team-review-actions{display:grid}.project-team-grade-form,.project-team-grade-form.has-social-metrics{grid-template-columns:110px minmax(0,1fr);width:100%}.project-team-grade-form .ds-button{width:100%}.project-team-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.project-rank-list>div{grid-template-columns:44px minmax(150px,1fr) 80px 80px}}
@media(max-width:600px){.project-team-student,.project-team-command,.project-team-review,.project-leaderboard,.project-unassigned,.project-review-summary{padding:var(--ds-space-4)}.project-team-heading,.project-team-review>header{display:grid}.project-team-header-actions{display:grid;justify-items:stretch}.project-team-header-actions form,.project-team-header-actions .ds-button{width:100%}.project-team-identity{grid-template-columns:1fr}.project-team-onboarding{grid-template-columns:1fr}.project-team-or{min-height:28px}.project-team-metrics{gap:8px}.project-team-metrics>div{padding:10px}.project-summary-filters{grid-template-columns:1fr;padding:12px}.project-summary-filter-actions{display:grid;grid-template-columns:1fr 1fr}.project-summary-filter-actions .ds-button{width:100%;min-height:48px}.project-summary-row{grid-template-columns:42px 1fr 1fr;gap:9px}.project-summary-team{grid-column:2/-1}.project-summary-row>span[data-label]{display:grid;gap:4px}.project-summary-row>span[data-label]::before{content:attr(data-label);font-size:.72rem;color:var(--ds-muted);font-weight:700}.project-summary-input{min-height:48px}.project-summary-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.project-summary-actions .ds-status{grid-column:1/-1}.project-summary-actions .ds-button{width:100%;min-height:48px}.project-score-queue-filters{grid-template-columns:1fr;padding:12px}.project-score-queue-filter-actions{display:grid;grid-template-columns:1fr 1fr}.project-score-queue-filter-actions .ds-button{width:100%;min-height:48px}.project-score-queue-head{display:none}.project-score-queue-row{grid-template-columns:1fr 1fr;gap:10px}.project-score-queue-team,.project-score-queue-actions{grid-column:1/-1}.project-score-queue-row>span:not(.project-score-queue-team):not(.project-score-queue-actions){display:grid;gap:4px}.project-score-queue-row>span:nth-child(2)::before{content:'สถานะ';font-size:.72rem;color:var(--ds-muted);font-weight:800}.project-score-queue-row>span:nth-child(3)::before{content:'คะแนน';font-size:.72rem;color:var(--ds-muted);font-weight:800}.project-score-queue-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));justify-content:stretch}.project-score-queue-actions .ds-button{width:100%;min-height:48px}.project-team-grade-form,.project-team-grade-form.has-social-metrics{grid-template-columns:1fr}.project-team-grade-form.has-social-metrics .project-feedback-field{grid-column:auto}.project-member-list>span{width:100%;border-radius:var(--ds-radius-sm)}.project-team-invite{grid-template-columns:1fr}.project-team-copy{grid-column:1;grid-row:auto;width:100%}.project-team-self-service{display:grid}.project-team-self-service .ds-button{width:100%;min-height:48px}.project-rank-list>div{grid-template-columns:38px minmax(0,1fr) 58px 58px;padding:10px 8px;gap:7px}.project-submission-actions{display:grid}.project-submission-actions .ds-button{width:100%;min-height:48px}.project-social-summary{grid-template-columns:1fr}.project-team-management-body{padding:12px}.project-team-rename,.project-team-add-member{grid-template-columns:1fr}.project-team-rename .ds-button,.project-team-add-member .ds-button{width:100%;min-height:48px}.project-team-member-manager-title{display:grid}.project-team-managed-members>div{display:grid}.project-team-member-actions{display:grid;grid-template-columns:1fr 1fr}.project-team-member-actions form,.project-team-member-actions .ds-button{width:100%}.project-team-member-actions .ds-button{min-height:48px}}
