/* Unified navy/white design system. Loaded after the page's legacy styles. */
.exam-primary-actions { display:flex; align-items:stretch; gap:10px; flex-wrap:wrap; margin-bottom:24px; }
.exam-primary-actions .btn,.exam-primary-actions .btn-add { display:inline-flex; align-items:center; justify-content:center; gap:8px; height:44px; margin:0; padding:10px 14px; font-size:13px; line-height:1.5; }
[data-visible-count] { min-height:0; overflow-y:hidden; scrollbar-gutter:stable; }
[data-visible-count].is-scrollable { overflow-y:auto; overscroll-behavior:contain; }
.attendance-status-buttons { display:flex; gap:6px; align-items:center; flex-wrap:wrap; min-width:310px; }
.attendance-status-buttons .attendance-status-choice { font:inherit; font-size:12px; min-height:36px; min-width:42px; padding:6px 10px; border:1px solid #dae4ef; border-radius:18px; background:#fff; cursor:pointer; color:#61738b; }
.attendance-status-buttons .present { color:#16826c; border-color:#bae5db; }
.attendance-status-buttons .absent { color:#b94555; border-color:#f0cad1; }
.attendance-status-buttons .sick { color:#2374ae; border-color:#c9ddec; }
.attendance-status-buttons .leave,.attendance-status-buttons .late { color:#ae7b24; border-color:#eadabd; }
.attendance-status-buttons [aria-pressed=true].present { background:#16826c; color:#fff; }
.attendance-status-buttons [aria-pressed=true].absent { background:#b94555; color:#fff; }
.attendance-status-buttons [aria-pressed=true].sick { background:#2374ae; color:#fff; }
.attendance-status-buttons [aria-pressed=true].leave,.attendance-status-buttons [aria-pressed=true].late { background:#9e6b18; color:#fff; }
.attendance-status-buttons button:hover { box-shadow:0 0 0 2px #e7eff9; }
.attendance-manual-table th:nth-child(4),.attendance-manual-table td:nth-child(4),.attendance-manual-table th:nth-child(5),.attendance-manual-table td:nth-child(5) { display:none; }
.attendance-manual-table td { padding-top:14px; padding-bottom:14px; }
.attendance-session-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.checkin-logo { width:64px; height:64px; object-fit:contain; display:block; margin:0 auto 18px; }
.attendance-entry-form select { flex:1; max-width:500px; min-width:180px; }
.attendance-hub .attendance-entry-form { display:grid; grid-template-columns:auto minmax(0,1fr) auto 160px auto; }
.attendance-hub .attendance-entry-form select,.attendance-hub .attendance-entry-form input { width:100%; min-width:0; max-width:none; }
.lms-workspace .attendance-live-summary { grid-template-columns:repeat(6,minmax(0,1fr)); }
.lms-workspace .attendance-live-summary .summary-card { min-height:90px; padding:14px 10px; }
.lms-workspace .attendance-live-summary .summary-card strong { font-size:24px; }
.lms-workspace .table-toolbar:has(#attendanceRowFilter) { align-items:center; }
.lms-workspace .table-toolbar #attendanceRowFilter { width:auto; max-width:220px; min-width:160px; }
.tool-reel-layout { width:100%; min-width:0; }
.tool-name-reel { width:min(640px,100%); overflow:hidden; margin:30px auto; border-block:2px solid #8dbcf0; padding:24px 0; background:#153d6b; }
.tool-reel-strip { display:flex; gap:16px; width:max-content; animation:tool-reel-move .45s linear infinite; }
.tool-reel-strip span { flex:none; padding:14px 20px; border-radius:12px; background:#fff; color:#174b91; font-size:17px; font-weight:600; }
.tool-dice-tray { display:flex; flex-wrap:wrap; justify-content:center; gap:20px; padding:24px 0; perspective:600px; }
.tool-die { width:92px; height:92px; display:grid; place-items:center; background:#fff; color:#174b91; border-radius:18px; box-shadow:0 8px 0 #99b8da,0 14px 24px #102e5670; }
.tool-die i { font-size:66px; line-height:1; }
.tool-die.is-tossing { animation:tool-dice-toss .7s ease-in-out infinite; transform-style:preserve-3d; }
@keyframes tool-reel-move { from{transform:translateX(0)} to{transform:translateX(-180px)} }
@keyframes tool-dice-toss { 0%{transform:translateY(0) rotateX(0) rotateZ(0)} 50%{transform:translateY(-35px) rotateX(180deg) rotateZ(140deg)} 100%{transform:translateY(0) rotateX(360deg) rotateZ(360deg)} }
.stats-filter-form { display:grid; grid-template-columns:150px 1fr 1.7fr 1.7fr auto; gap:12px; align-items:end; margin:22px 0; }
.stats-filter-form .field { min-width:0; margin:0; }
.stats-filter-form label { display:block; margin-bottom:7px; font-size:12px; }
.stats-filter-form input,.stats-filter-form select { width:100%; height:44px; min-width:0; padding:8px 10px; font:inherit; font-size:13px; }
.stats-summary-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.stats-summary-cards a { display:grid; gap:8px; text-decoration:none; color:#174b91; border:1px solid #d8e4f3; border-radius:14px; background:#f7faff; padding:20px; }
.stats-summary-cards a:hover { background:#eef5ff; }
.stats-summary-cards strong { font-size:28px; color:#102e56; }
.stats-summary-cards small,.stats-method { color:#728198; }
.stats-comparison-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:24px; }
.stats-comparison-list { display:grid; gap:12px; }
.stats-comparison-row { border:1px solid #e1e9f3; border-radius:12px; padding:14px; display:grid; gap:10px; min-width:0; }
.stats-comparison-row strong { overflow-wrap:anywhere; font-size:13px; }
.stats-comparison-row a { text-decoration:none; display:grid; gap:5px; color:#4d6d95; font-size:12px; }
.stats-comparison-row a:hover { color:#174b91; }
.stats-bar { height:7px; border-radius:5px; overflow:hidden; background:#ecf1f7; display:block; }
.stats-bar i { background:#367ac4; display:block; height:100%; border-radius:5px; }
.stats-bar.scores i { background:#6b79b3; }
.stats-detail-table { max-height:640px; overflow:auto; margin-top:20px; }
@media(max-width:1100px) { .stats-filter-form { grid-template-columns:repeat(2,minmax(0,1fr)); } .stats-filter-form button { align-self:end; } .lms-workspace .attendance-live-summary { grid-template-columns:repeat(3,minmax(0,1fr)); } .attendance-hub .attendance-entry-form { grid-template-columns:auto minmax(0,1fr); } }
@media(max-width:680px) { .stats-comparison-grid,.stats-summary-cards { grid-template-columns:1fr; } .stats-filter-form input,.stats-filter-form select { font-size:16px; } .stats-filter-form { grid-template-columns:1fr; } .attendance-status-buttons .attendance-status-choice { min-height:44px; font-size:13px; } .attendance-entry-form select { max-width:none; width:100%; } .tool-die { width:72px; height:72px; } .tool-die i { font-size:52px; } .tool-name-reel { padding:14px 0; } .exam-primary-actions .btn,.exam-primary-actions .btn-add { height:auto; min-height:44px; } }
@media(prefers-reduced-motion:reduce) { .tool-reel-strip,.tool-die.is-tossing { animation:none; } }
@media(max-width:680px) { .attendance-hub .attendance-entry-form { grid-template-columns:1fr; } .lms-workspace .attendance-live-summary { grid-template-columns:repeat(2,minmax(0,1fr)); } }
:root { --blue:#174b91; --dark:#102e56; --sidebar:#fff; --bg:#f4f7fb; --line:#e0e7f0; --text:#182b44; --muted:#728198; --green:#174b91; --lms-navy:#102e56; --lms-primary:#174b91; --lms-accent:#367ac4; --lms-radius:16px; --lms-shadow:0 3px 14px rgba(22,47,82,.04); --lms-font-size:14px; --lms-content-width:1280px; --lms-header-height:78px; --lms-control-height:44px; --bs-primary:#174b91; --bs-primary-rgb:23,75,145; }
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'Prompt','Sarabun',system-ui,sans-serif; color:var(--text); background:var(--bg); }
button,input,select,textarea { font-family:inherit; }
a,button,input,select,textarea,summary { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid #70a8e4; outline-offset:3px; }
[hidden] { display:none !important; }
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select,textarea { border-color:#dbe3ee; border-radius:10px; background:#fff; color:var(--text); }
input:focus,select:focus,textarea:focus { border-color:#6f9ccc; box-shadow:0 0 0 3px rgba(54,122,196,.1); }
input[type=checkbox],input[type=radio] { accent-color:var(--lms-primary); }
button:disabled,.btn:disabled { cursor:not-allowed; opacity:.5; }
.btn:not(.red):not(.gray):not(.orange):not(.outline):not(.btn-outline-secondary):not(.btn-danger):not(.btn-warning),.btn-login,.btn-add,.btn-course,.hero-button.primary { background:var(--lms-primary); border-color:var(--lms-primary); color:#fff; }
.btn,.btn-course,.pill,.btn-add,.btn-action-sm,.hero-button { border-radius:10px; font-weight:500; min-height:42px; transition:background .15s,box-shadow .15s; }
.btn:hover,.btn-course:hover,.btn-add:hover { box-shadow:0 3px 8px rgba(16,46,86,.12); }
.btn.outline,.btn-outline-primary { color:var(--lms-primary); background:#fff; border:1px solid #d8e4f2; }
.btn[class*="btn-outline-"] { background:#fff !important; color:var(--lms-primary) !important; border-color:#d8e4f2 !important; }
.btn.btn-outline-danger { color:#c53d50 !important; border-color:#ffdae0 !important; }
.btn.red { background:#fff1f2; border:1px solid #ffdae0; color:#c53d50; }
.panel,.content-card,.course-card,.summary-card,.summary-course-card,.announcement,.contact-band,.stat-box { border:1px solid var(--line); border-radius:var(--lms-radius); box-shadow:var(--lms-shadow); background:#fff; }
.panel h2,.section-title { color:var(--lms-navy); font-weight:600; }
.table-wrap,.table-responsive { border:1px solid var(--line); border-radius:12px; max-width:100%; overflow:auto; }
table { background:#fff; }
th,.custom-table th { background:#f7f9fc; color:#53657f; font-size:.8rem; font-weight:500; padding:14px 16px; }
td,.custom-table td { border-bottom:1px solid #edf1f6; font-size:.86rem; padding:14px 16px; }
tbody tr:hover { background:#f9fbfe; }
.modal-layer { z-index:1200; background:rgba(8,28,55,.48); backdrop-filter:blur(3px); padding:24px; }
.modal-card { border:0; border-radius:18px; box-shadow:0 24px 80px rgba(8,28,55,.22); max-height:calc(100dvh - 48px); overflow:auto; }
.modal-layer[id^="workspace"] { align-items:flex-start; }
.modal-head { padding:20px 24px; border-bottom:1px solid var(--line); background:#fff; }
.modal-head h2 { font-size:1.1rem; font-weight:600; color:var(--lms-navy); }
.modal-body { padding:24px; min-height:0; }
.modal-close,.icon-close { background:#f2f5f9 !important; border-color:#e0e7f0 !important; color:#53657f !important; width:36px; height:36px; border-radius:10px; display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; text-decoration:none; }
.modal-close .bi-x-lg,.icon-close .bi-x-lg { color:inherit !important; }
.toast-stack { z-index:2400; }
.toast-card { border-radius:12px; font-weight:500; }
.lms-header,.topbar { background:#fff; box-shadow:none; border-bottom:1px solid var(--line); }
.lms-nav .brand,.topbar-inner .brand { color:var(--lms-navy); font-weight:600; }
.lms-nav .nav-links a.active { background:#edf3fc; color:var(--lms-primary); }
.user-pill,.user-profile-pill { background:#f5f8fc; color:var(--lms-navy); border-color:#e4ebf3; border-radius:10px; font-weight:500; }
.user-dropdown { border:1px solid var(--line); border-radius:14px; box-shadow:0 12px 32px rgba(16,46,86,.14); }
.course-hero { border-radius:18px; }
.course-card { overflow:hidden; }
.course-cover { min-height:160px; }
.course-body { padding:22px; }
.course-body h3 { font-size:1.1rem; }
.home-hero { background-color:#edf3fc; border-bottom:1px solid var(--line); }
.home-hero h1 { color:var(--lms-navy); }
.feature-strip { border-radius:16px; box-shadow:0 8px 28px rgba(16,46,86,.08); }
.feature-item i { color:var(--lms-primary); background:#edf3fc; }
/* Public and student portal use the same navy/white workspace palette. */
.lms-portal .lms-nav,.lms-portal .page-shell { width:calc(100% - 64px); max-width:1280px; padding-left:0; padding-right:0; }
.lms-portal .lms-nav { display:flex; min-height:82px; gap:18px; }
.lms-portal .lms-nav .brand { max-width:250px; white-space:normal; line-height:1.3; font-size:1.08rem; }
.lms-portal .lms-nav .brand img { width:44px; height:44px; }
.lms-portal .nav-links { gap:4px; }
.lms-portal .nav-links a { font-size:.8rem; padding:10px; font-weight:500; }
.lms-portal .page-shell { padding-top:30px; padding-bottom:48px; }
.lms-portal .home-hero { width:100%; max-width:none; margin:0 0 22px; transform:none; min-height:420px; display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:40px; padding:42px; background:linear-gradient(115deg,#174b91,#102e56); border:0; border-radius:22px; }
.lms-portal .home-hero-content { min-width:0; max-width:none; }
.portal-eyebrow { display:inline-flex; align-items:center; gap:8px; font-size:.76rem; color:#c8dcf6; margin-bottom:18px; }
.lms-portal .home-hero h1 { color:#fff; font-size:clamp(1.9rem,3.6vw,3.2rem); font-weight:600; line-height:1.3; margin-bottom:16px; overflow-wrap:anywhere; }
.lms-portal .home-hero p { color:#d1e0f4; font-size:1rem; line-height:1.85; font-weight:400; margin-bottom:26px; }
.lms-portal .hero-button { min-height:46px; font-weight:500; font-size:.83rem; padding:12px 18px; background:rgba(255,255,255,.08); color:#fff; border-color:rgba(255,255,255,.3); box-shadow:none; }
.lms-portal .hero-button.primary { background:#fff; color:var(--lms-primary); border-color:#fff; }
.portal-institution { display:grid; gap:6px; margin-top:30px; color:#cfdef2; }
.portal-institution strong { font-size:.8rem; font-weight:500; }
.portal-institution span { font-size:.66rem; color:#a5bddc; }
.portal-hero-visual { position:relative; align-self:stretch; min-height:300px; border-radius:16px; overflow:hidden; background:#2c5685; }
.portal-hero-visual > img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; }
.portal-hero-visual::after { content:''; position:absolute; inset:0; background:linear-gradient(transparent 40%,rgba(10,29,52,.85)); }
.portal-visual-caption { position:absolute; z-index:1; left:24px; right:24px; bottom:22px; display:flex; align-items:center; gap:12px; color:#fff; }
.portal-visual-caption > i { width:42px; height:42px; border-radius:12px; background:rgba(255,255,255,.15); display:grid; place-items:center; font-size:1.2rem; flex-shrink:0; }
.portal-visual-caption strong { display:block; font-size:.87rem; font-weight:500; }
.portal-visual-caption span { display:block; font-size:.68rem; margin-top:5px; color:#cadbf0; }
.portal-overview { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-bottom:1px solid var(--line); margin:0 0 24px; padding:8px 0 26px; }
.portal-overview > div { display:grid; grid-template-columns:42px 1fr; column-gap:12px; row-gap:4px; padding:0 24px; border-right:1px solid var(--line); }
.portal-overview > div:first-child { padding-left:0; }
.portal-overview > div:last-child { border:0; }
.portal-overview i { grid-row:span 2; align-self:center; display:grid; place-items:center; color:#3d72b3; background:#e6effb; border-radius:12px; width:42px; height:42px; font-size:1.2rem; }
.portal-overview strong { color:var(--lms-navy); font-size:1.3rem; font-weight:600; }
.portal-overview span { color:var(--muted); font-size:.74rem; }
.lms-portal .feature-strip { width:100%; max-width:none; margin:0 0 36px; padding:0; background:transparent; border:0; box-shadow:none; min-height:0; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.lms-portal .feature-item { text-decoration:none; border:1px solid var(--line); border-radius:14px; background:#fff; padding:20px; grid-template-columns:40px minmax(0,1fr) 18px; gap:12px; }
.lms-portal .feature-item > i { width:40px; height:40px; border-radius:12px; font-size:1.1rem; }
.lms-portal .feature-item .feature-arrow { background:transparent; width:18px; height:18px; font-size:.8rem; color:#8ba0ba; }
.lms-portal .feature-item strong { font-size:.84rem; font-weight:500; white-space:normal; }
.lms-portal .feature-item span { font-size:.7rem; white-space:normal; line-height:1.7; }
.lms-portal .feature-item:hover { border-color:#93b4da; }
.lms-portal .section-head { border:0; padding-bottom:0; align-items:center; flex-wrap:wrap; }
.lms-portal .section-title { font-size:1.3rem; font-weight:600; }
.portal-section-kicker { font-size:.7rem; color:#7e92ab; display:block; margin-bottom:8px; }
.portal-text-link { font-size:.78rem; color:var(--lms-primary); text-decoration:none; display:inline-flex; align-items:center; gap:8px; }
.lms-portal .course-body p { min-height:0; }
.lms-portal .portal-course-section .course-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); }
.lms-portal .btn-course.enrolled { background:var(--lms-primary); }
.lms-portal .btn-course.enrolled.disabled { background:#eaf1fa; color:#59799f; }
.lms-portal .lms-footer { padding:30px 0; }
.lms-portal .footer-inner { width:calc(100% - 64px); max-width:1280px; margin:auto; }
.lms-portal .footer-inner h3 { font-size:.85rem; color:#f8fafc; font-weight:600; }
.lms-portal .footer-inner p { font-size:.74rem; line-height:1.9; }
.lms-portal .footer-inner a { text-decoration:none; }
.lms-portal .footer-inner .footer-version { grid-column:1/-1; margin:0; padding-top:18px; border-top:1px solid rgba(148,163,184,.28); }
.workspace-filter-grid.course-report-filters { grid-template-columns:minmax(220px,1.5fr) minmax(160px,1fr) repeat(2,minmax(140px,1fr)) auto; }
.result-filters { padding:8px 0; }
@media (max-width:1200px) {
    .lms-portal .lms-nav { flex-wrap:wrap; }
    .lms-portal .lms-nav .brand { margin-right:auto; }
    .lms-portal .lms-nav-toggle { display:inline-flex; }
    .lms-portal .nav-links { display:none; flex-basis:100%; order:5; flex-wrap:wrap; justify-content:flex-start; margin:0; padding:10px 0 0; border-top:1px solid var(--line); }
    .lms-portal .lms-nav.is-open .nav-links { display:flex; }
    .lms-portal .feature-item { grid-template-columns:32px minmax(0,1fr); padding:16px; }
    .lms-portal .feature-item .feature-arrow { display:none; }
    .lms-portal .feature-item > i { width:32px; height:32px; }
    .workspace-filter-grid.course-report-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:760px) {
    .lms-portal .lms-nav,.lms-portal .page-shell,.lms-portal .footer-inner { width:calc(100% - 32px); }
    .lms-portal .lms-nav { min-height:70px; padding:12px 0; }
    .lms-portal .lms-nav .user-menu,.lms-portal .lms-nav > .user-pill { width:auto; }
    .lms-portal .home-hero { grid-template-columns:1fr; gap:24px; padding:28px; min-height:0; border-radius:18px; }
    .lms-portal .home-hero h1 { font-size:2rem; }
    .lms-portal .home-hero p { font-size:.87rem; }
    .portal-hero-visual { min-height:200px; }
    .portal-institution { margin-top:22px; }
    .portal-overview { grid-template-columns:1fr; gap:18px; padding-bottom:22px; }
    .portal-overview > div { border:0; padding:0; }
    .portal-overview strong { font-size:1.1rem; }
    .lms-portal .feature-strip { grid-template-columns:1fr; gap:12px; }
    .lms-portal .feature-item { grid-template-columns:40px minmax(0,1fr) 18px; }
    .lms-portal .feature-item .feature-arrow { display:grid; }
    .lms-portal .home-hero .hero-buttons { gap:10px; }
    .lms-portal .hero-button { justify-content:center; padding:10px 14px; }
    .lms-portal .section-title { font-size:1.1rem; }
    .lms-portal .footer-inner { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:480px) {
    .lms-portal .home-hero { padding:24px; }
    .lms-portal .hero-button { width:100%; }
    .lms-portal .lms-nav .brand { max-width:180px; font-size:.88rem; }
    .lms-portal .lms-nav { gap:10px; }
    .lms-portal .footer-inner,.workspace-filter-grid.course-report-filters { grid-template-columns:1fr; }
}
.site-footer,footer { background:#fff; color:var(--muted); border-top:1px solid var(--line); }
/* Staff workspace: sidebar and content have independent, bounded scrolling. */
body.lms-workspace { overflow:hidden; }
body.ui-modal-open .main { overflow:hidden !important; }
.lms-workspace .layout { display:flex; width:100%; height:100dvh; min-height:0; flex-direction:row; }
.lms-workspace .sidebar { width:264px !important; max-width:264px; height:100dvh; flex:0 0 264px; background:#fff; color:var(--text); border-right:1px solid var(--line); position:relative; top:auto; z-index:130; display:flex; flex-direction:column; }
.lms-workspace .sidebar .brand { padding:20px 18px; min-height:78px; border-bottom:1px solid var(--line); display:flex; gap:8px; }
.workspace-brand { display:flex; align-items:center; gap:10px; text-decoration:none; min-width:0; }
.lms-workspace .brand img { width:38px; height:44px; padding:0; object-fit:contain; border-radius:0; }
.lms-workspace .brand strong { font-size:1.12rem; letter-spacing:.03em; color:var(--lms-navy); white-space:nowrap; }
.lms-workspace .brand em { font-style:normal; color:#3e80c4; }
.lms-workspace .brand span { font-size:.68rem; color:var(--muted); }
.lms-workspace .sidebar-toggle { margin-left:auto; background:#f4f7fb; border:1px solid var(--line); color:#647b97; width:32px; height:32px; border-radius:8px; cursor:pointer; }
.workspace-account { margin:18px 14px 12px; padding:12px; display:flex; align-items:center; gap:10px; background:#f6f9fd; border:1px solid #e6edf6; border-radius:12px; text-decoration:none; }
.workspace-avatar { width:38px; height:38px; flex:0 0 38px; border-radius:11px; background:var(--lms-primary); color:#fff; display:grid; place-items:center; font-weight:600; }
.workspace-avatar img { width:100%; height:100%; object-fit:cover; border-radius:inherit; }
.workspace-account div { min-width:0; flex:1; }
.workspace-account strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.82rem; font-weight:500; }
.workspace-account span:not(.workspace-avatar) { font-size:.7rem; color:var(--muted); }
.workspace-account > i { font-size:.7rem; color:#8e9eb5; }
.workspace-nav-search { margin:0 14px 8px; display:flex; align-items:center; gap:8px; padding:0 12px; border:1px solid var(--line); border-radius:10px; color:#96a4b7; }
.workspace-nav-search input { padding:10px 0 !important; border:0 !important; box-shadow:none !important; font-size:.74rem; background:transparent !important; width:100%; }
.lms-workspace .sidebar .nav { flex:1; min-height:0; max-height:none; overflow:auto; padding:4px 10px 12px; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#dce5f0 transparent; }
.lms-workspace .nav-title { color:#98a5b7; font-size:.64rem; font-weight:500; padding:14px 13px 7px; }
.lms-workspace .nav a { border:0; display:flex; gap:12px; padding:10px 12px; margin:3px 0; border-radius:10px; color:#53657f; font-weight:400; text-decoration:none; min-height:52px; align-items:center; }
.lms-workspace .nav a > i { width:32px; height:32px; display:grid; place-items:center; color:#6180a4; font-size:1.02rem; background:#f4f7fb; border:1px solid #eaf0f6; border-radius:9px; flex:0 0 32px; }
.lms-workspace .nav a span { min-width:0; }
.lms-workspace .nav a strong { font-size:.78rem; font-weight:500; display:block; }
.lms-workspace .nav a small { display:block; font-size:.62rem; color:#97a4b6; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:166px; }
.lms-workspace .nav a:hover { background:#f2f6fc; color:var(--lms-primary); }
.lms-workspace .nav a.active { background:var(--lms-primary); color:#fff; }
.lms-workspace .nav a.active > i { background:rgba(255,255,255,.15); color:#fff; border-color:transparent; }
.lms-workspace .nav a.active small { color:#c2d8f1; }
.lms-workspace .logout-area { border-top:1px solid var(--line); padding:10px 18px; margin-top:auto; background:#fff; display:block; }
.logout-area > a { display:flex; align-items:center; gap:12px; color:#6b7b92; font-size:.74rem; padding:7px; text-decoration:none; border-radius:10px; transition:background .15s,color .15s; }
.lms-workspace .logout-button { margin:0; border:0; border-radius:10px; font-weight:400; background:transparent; color:#6b7b92; display:flex; box-shadow:none; }
.lms-workspace .logout-area > a:is(:hover,:focus-visible) { background:#f2f6fc; color:var(--lms-primary); }
.lms-workspace .logout-area > .logout-button:is(:hover,:focus-visible),.account-menu .account-dropdown .logout:is(:hover,:focus-visible) { background:#fff1f2; color:#c53d50; box-shadow:none; }
.logout-area > small { display:block; text-align:center; color:#a7b2c2; font-size:.58rem; margin-top:9px; }
.lms-workspace .main { flex:1; min-width:0; height:100dvh !important; min-height:0; overflow:auto !important; width:auto; }
.lms-workspace .main > .topbar { height:78px; min-height:78px; padding:16px 30px; z-index:100; position:sticky; top:0; display:flex; align-items:center; justify-content:space-between; }
.workspace-breadcrumb { display:flex; gap:12px; align-items:center; font-size:.77rem; }
.workspace-breadcrumb a { color:#8a98ad; text-decoration:none; }
.workspace-breadcrumb > i { color:#c3cddb; font-size:.6rem; }
.workspace-breadcrumb h1 { font-size:.81rem; font-weight:500; color:var(--lms-navy); }
.workspace-mobile-toggle { display:none; width:38px; height:38px; border:1px solid var(--line); background:#fff; color:var(--lms-primary); border-radius:10px; cursor:pointer; }
.workspace-date { color:#91a0b5; font-size:.72rem; margin-right:8px; }
.lms-workspace .notification-button { min-height:38px; width:38px; border-radius:10px; padding:8px; position:relative; justify-content:center; color:#6f83a0; }
.lms-workspace .notification-button .count { position:absolute; top:-7px; right:-7px; height:18px; min-width:18px; padding:0 4px; font-size:.58rem; }
.lms-workspace .topbar-actions { gap:12px; min-width:0; }
.lms-workspace .topbar .user-pill { font-size:.74rem; padding:5px 10px; min-width:0; max-width:240px; }
.lms-workspace .topbar .user-pill span { overflow:hidden; text-overflow:ellipsis; }
.lms-workspace .content { width:calc(100% - 64px); max-width:1280px; padding:28px 0 0; margin:auto; }
.lms-workspace .content.exam-content { width:calc(100% - 64px); max-width:1440px; padding:28px 0 0; }
.workspace-footer { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; padding:30px 0 22px; font-size:.66rem; color:#9eabba; }
.workspace-footer span:first-child { color:#71839a; }
.lms-workspace .course-list-card { min-height:0; padding:0; border:0; background:transparent; box-shadow:none; }
.lms-workspace .course-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.lms-workspace .course-item { grid-template-columns:minmax(0,1fr); padding:0; overflow:hidden; border-radius:16px; background:#fff; box-shadow:var(--lms-shadow); gap:0; }
.lms-workspace .course-item > .cover { height:96px; min-height:0; border-radius:0; }
.lms-workspace .course-item > div:not(.cover) { padding:20px 22px; }
.lms-workspace .course-item .actions { border-top:1px solid #eef2f7; justify-content:flex-start; padding:14px 22px !important; }
.lms-workspace .course-item h3 { font-weight:600; font-size:1.03rem; margin-bottom:10px; }
.lms-workspace .course-item .small { font-size:.76rem; margin:6px 0; color:#8190a5; }
.lms-workspace .course-item .actions .btn { font-size:.74rem; min-height:38px; }
.lms-workspace .page-actions,.lms-workspace .announce-head { background:linear-gradient(115deg,#184b8d,#102e56); padding:28px; border-radius:18px; margin-bottom:24px; color:#fff; display:flex; align-items:center; justify-content:space-between; gap:18px; }
.lms-workspace .page-actions h2,.lms-workspace .announce-head h2 { color:#fff; margin:0 0 6px; font-size:1.55rem; font-weight:600; }
.lms-workspace .page-actions p,.lms-workspace .announce-head p { color:#bfd2e9; font-size:.8rem; margin:0; }
.lms-workspace .page-actions .btn,.lms-workspace .announce-head .btn { background:#fff; color:var(--lms-primary); white-space:nowrap; font-size:.8rem; }
.lms-workspace .exam-frame-panel { border:0 !important; border-radius:0 !important; box-shadow:none; padding:0; background:transparent; margin:0 !important; min-height:0 !important; overflow:visible; }
.lms-workspace .content.exam-content .exam-frame { min-height:240px; background:transparent; }
.lms-workspace .content.exam-content .exam-frame.exam-viewport-modal { height:100dvh !important; min-height:0; z-index:1990; }
body.course-embed.lms-workspace .layout,body.course-embed.lms-workspace .main { height:auto !important; min-height:0; overflow:visible !important; }
body.course-embed.lms-workspace .content { width:100%; padding:0; }
#courseFormModal .course-modal-card { overflow:auto; max-height:calc(100dvh - 48px); }
.lms-workspace.nav-collapsed .sidebar { width:82px !important; max-width:82px; flex-basis:82px; }
.lms-workspace.nav-collapsed .sidebar .brand { flex-direction:column; padding:14px 8px; }
.lms-workspace.nav-collapsed .workspace-brand div,.lms-workspace.nav-collapsed .workspace-account,.lms-workspace.nav-collapsed .workspace-nav-search,.lms-workspace.nav-collapsed .nav-title,.lms-workspace.nav-collapsed .nav a span,.lms-workspace.nav-collapsed .logout-area span,.lms-workspace.nav-collapsed .logout-area small { display:none !important; }
.lms-workspace.nav-collapsed .sidebar-toggle { margin:0 !important; }
.lms-workspace.nav-collapsed .sidebar .nav { display:block !important; }
.lms-workspace.nav-collapsed .nav a { padding:8px; justify-content:center; }
.lms-workspace.nav-collapsed .logout-area { display:block !important; padding:12px; }
.lms-workspace.nav-collapsed .logout-area a { justify-content:center; }
.nav-search-empty { padding:12px; color:var(--muted); font-size:.75rem; }
.skip-link { position:fixed; left:12px; top:-100px; z-index:3000; background:#fff; padding:12px; color:var(--lms-primary); border-radius:8px; }
.skip-link:focus { top:12px; }
/* Shared workspace views. */
.workspace-hero { background:linear-gradient(115deg,#184b8d,#102e56); padding:30px 32px; border-radius:18px; display:flex; align-items:center; justify-content:space-between; gap:24px; color:#fff; margin-bottom:24px; }
.workspace-eyebrow { font-size:.58rem; letter-spacing:.16em; color:#a5c2e3; margin-bottom:14px; }
.workspace-hero h2 { margin:0; display:flex; align-items:center; gap:12px; font-size:1.7rem; font-weight:600; line-height:1.45; }
.hero-icon { display:grid; place-items:center; width:42px; height:42px; flex:0 0 42px; background:rgba(255,255,255,.13); border-radius:12px; font-size:1.2rem; }
.workspace-hero p { color:#c4d7ed; font-size:.8rem; margin:10px 0 0; }
.hero-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.hero-actions .btn { background:#fff !important; color:var(--lms-primary) !important; font-size:.79rem; min-height:40px; }
.workspace-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-bottom:24px; }
.workspace-metric { background:#fff; border:1px solid var(--line); border-radius:16px; padding:20px; display:grid; gap:8px; }
.workspace-metric .metric-label { color:#8896aa; font-size:.74rem; }
.workspace-metric strong { color:var(--lms-navy); font-size:1.75rem; font-weight:600; line-height:1.2; }
.workspace-metric small { color:#9ca9bb; font-size:.65rem; }
.workspace-metric.alert strong { color:#cc5261; }
.workspace-shortcuts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.workspace-shortcut { border:1px solid var(--line); background:#fff; border-radius:14px; padding:22px; color:var(--text); text-decoration:none; transition:transform .15s,border-color .15s; }
.workspace-shortcut:hover { transform:translateY(-3px); border-color:#a6c3e6; }
.workspace-shortcut > i { display:grid; place-items:center; width:42px; height:42px; background:#edf3fc; color:#3972b7; border-radius:12px; font-size:1.15rem; margin-bottom:18px; }
.workspace-shortcut strong { display:block; font-size:.85rem; font-weight:500; }
.workspace-shortcut small { display:block; color:#95a3b7; margin-top:6px; font-size:.67rem; }
.workspace-section-title { margin:26px 0 14px; font-size:.85rem; color:#77879d; font-weight:500; }
.workspace-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.workspace-room { border:1px solid var(--line); border-radius:16px; padding:24px; background:#fff; box-shadow:var(--lms-shadow); }
.workspace-room-head { display:flex; justify-content:space-between; gap:12px; align-items:start; }
.workspace-room h3 { margin:0 0 8px; font-size:1.08rem; color:var(--lms-navy); font-weight:600; }
.workspace-room p { margin:6px 0; color:#8a98ac; font-size:.75rem; }
.workspace-room-count { display:flex; align-items:center; gap:8px; color:#3f6ea6; font-size:.82rem; margin:20px 0; }
.workspace-room .actions { justify-content:stretch; }
.workspace-room .actions > a:first-child { flex:1; }
.workspace-icon-button { border:1px solid var(--line); background:#fff; color:#8394ab; width:34px; height:34px; display:inline-grid; place-items:center; border-radius:9px; cursor:pointer; text-decoration:none; }
.workspace-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-bottom:18px; }
.workspace-toolbar > form { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.workspace-search { display:flex; align-items:center; gap:10px; border:1px solid var(--line); background:#fff; border-radius:10px; padding:0 14px; flex:1; min-width:180px; color:#9cabbf; }
.workspace-search input { border:0 !important; background:transparent !important; box-shadow:none !important; padding:12px 0; width:100%; font-size:.8rem; }
.workspace-empty { grid-column:1/-1; background:#fff; border:1px dashed #ccd9e9; border-radius:16px; padding:54px 24px; text-align:center; }
.workspace-empty > i { display:block; font-size:2.5rem; color:#a4bbd7; margin-bottom:14px; }
.workspace-empty h3 { margin:0 0 10px; font-size:1rem; font-weight:500; color:var(--lms-navy); }
.workspace-empty p { font-size:.8rem; color:#91a0b5; margin-bottom:22px; }
.workspace-note { border:1px solid #dce8f7; border-radius:12px; background:#edf4fd; color:#5278a6; padding:14px 18px; font-size:.77rem; line-height:1.7; margin-bottom:20px; }
.workspace-roster { display:grid; gap:0; }
.workspace-roster-row { display:flex; align-items:center; gap:14px; padding:14px 6px; border-bottom:1px solid #edf1f7; }
.workspace-roster-row:last-child { border:0; }
.workspace-roster-row input { width:18px; height:18px; flex-shrink:0; }
.workspace-roster-row strong { font-size:.84rem; font-weight:500; display:block; }
.workspace-roster-row small { color:#93a1b4; font-size:.68rem; }
.workspace-number { width:34px; height:34px; display:grid; place-items:center; background:#f1f5fb; color:#6284af; border-radius:9px; flex:0 0 34px; font-size:.76rem; }
.workspace-roster-row .row-meta { flex:1; min-width:0; }
.workspace-check-page { max-width:850px; margin:auto; }
.workspace-week { display:grid; grid-template-columns:38px repeat(7,minmax(0,1fr)) 38px; gap:5px; background:#fff; border:1px solid var(--line); padding:12px; border-radius:14px; margin:0 0 18px; }
.workspace-week a { padding:10px 4px; text-align:center; border-radius:10px; text-decoration:none; color:#7d8ca2; font-size:.65rem; display:grid; gap:6px; align-content:center; }
.workspace-week a strong { color:var(--lms-navy); font-size:.95rem; font-weight:500; }
.workspace-week a.active { background:var(--lms-primary); color:#b5cee9; }
.workspace-week a.active strong { color:#fff; }
.workspace-segments { display:flex; flex-wrap:wrap; gap:5px; padding:5px; background:#e8edf5; border-radius:12px; margin-bottom:20px; }
.workspace-segments a { flex:1; min-width:120px; padding:10px 12px; text-align:center; text-decoration:none; border-radius:9px; font-size:.77rem; color:#708199; }
.workspace-segments a.active { background:#fff; color:var(--lms-primary); box-shadow:0 2px 4px rgba(16,46,86,.06); }
.workspace-check-card { background:#fff; padding:18px; border:1px solid var(--line); border-radius:14px; margin-bottom:12px; }
.workspace-check-card header { display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.workspace-check-card h3 { margin:0 0 3px; font-size:.9rem; font-weight:500; }
.workspace-check-card small { color:#8a9cb4; font-size:.65rem; }
.workspace-status-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; }
.workspace-status-grid label { border:1px solid #dfe6f0; border-radius:9px; padding:10px 4px; text-align:center; font-size:.73rem; color:#8190a6; cursor:pointer; position:relative; }
.workspace-status-grid input { position:absolute; opacity:0; width:1px; height:1px; }
.workspace-status-grid label:has(input:checked) { background:#edf4fc; border-color:#5789c3; color:var(--lms-primary); box-shadow:inset 0 0 0 1px #5789c3; }
.workspace-status-grid label:has(input[value=absent]:checked),.workspace-status-grid label:has(input[value=skip]:checked) { background:#fff3f4; border-color:#dc7987; color:#bd4053; box-shadow:inset 0 0 0 1px #dc7987; }
.workspace-status-grid label:has(input:focus-visible) { outline:3px solid #70a8e4; outline-offset:2px; }
.workspace-savebar { position:sticky; bottom:0; border-top:1px solid var(--line); background:rgba(244,247,251,.96); padding:14px 0; z-index:25; display:flex; gap:14px; align-items:center; }
.workspace-savebar .btn { flex:1; }
.workspace-progress { height:6px; background:#eef2f8; border-radius:20px; overflow:hidden; margin:14px 0; }
.workspace-progress > span { display:block; height:100%; background:#397bc6; border-radius:inherit; transition:width .15s; }
.workspace-filter-grid { display:grid; grid-template-columns:2fr 1fr 1fr auto; gap:14px; align-items:end; }
.workspace-filter-grid label { display:block; font-size:.7rem; color:#8190a6; margin-bottom:8px; }
.workspace-filter-grid .btn { min-height:44px; }
.workspace-presets { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.workspace-presets a { text-decoration:none; color:#6e86a5; background:#f5f8fc; border:1px solid var(--line); border-radius:30px; padding:7px 12px; font-size:.68rem; }
.workspace-badge { display:inline-flex; align-items:center; justify-content:center; padding:3px 9px; border-radius:7px; font-size:.69rem; font-weight:500; background:#edf4fc; color:#326daa; white-space:nowrap; }
.workspace-badge.low { background:#fff0f2; color:#c65366; }
.workspace-report-table { min-width:1040px; }
.workspace-report-table th,.workspace-report-table td { text-align:center; padding:13px 10px; }
.workspace-report-table th:nth-child(2),.workspace-report-table td:nth-child(2) { text-align:left; min-width:220px; }
.workspace-report-table tfoot { background:#f5f8fc; font-weight:500; }
.workspace-schedule { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:10px; min-width:850px; }
.workspace-schedule-day { background:#f8fafd; border:1px solid #e8eef6; border-radius:12px; min-height:300px; padding:10px; }
.workspace-schedule-day > h3 { color:#68809f; font-size:.73rem; font-weight:500; text-align:center; margin:8px 0 18px; }
.workspace-schedule-day.today > h3 { color:var(--lms-primary); }
.workspace-event { background:#fff; border:1px solid #d7e5f7; border-left:3px solid #5d8ecb; border-radius:8px; padding:10px; margin-bottom:10px; }
.workspace-event time { color:#8fa0b8; font-size:.61rem; }
.workspace-event strong { display:block; color:var(--lms-navy); font-size:.72rem; font-weight:500; line-height:1.6; margin:7px 0; overflow-wrap:anywhere; }
.workspace-event small { font-size:.61rem; color:#8295af; }
.workspace-month { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; min-width:850px; }
.workspace-month-cell { min-height:130px; border:1px solid var(--line); border-radius:10px; background:#fafbfd; padding:10px; }
.workspace-month-cell > span { color:#8d9bb0; font-size:.7rem; display:block; margin-bottom:9px; }
.workspace-chart { display:grid; grid-template-columns:repeat(10,minmax(0,1fr)); gap:12px; align-items:end; height:220px; padding:16px 12px 0; border-bottom:1px solid var(--line); }
.workspace-chart-col { height:100%; display:flex; flex-direction:column; justify-content:end; text-align:center; font-size:.65rem; color:#91a1b7; }
.workspace-chart-col .bar { border-radius:5px 5px 0 0; background:#3c78be; min-height:2px; }
.workspace-chart-col strong { font-size:.68rem; color:#5576a1; font-weight:500; margin-bottom:5px; }
.workspace-chart-labels { display:grid; grid-template-columns:repeat(10,minmax(0,1fr)); gap:12px; padding:12px; text-align:center; font-size:.58rem; color:#94a3b8; }
.workspace-ranking { display:grid; gap:14px; }
.workspace-rank-row { display:grid; grid-template-columns:140px minmax(0,1fr) 45px; gap:10px; align-items:center; font-size:.7rem; }
.workspace-rank-row .name { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; color:#7890af; }
.workspace-rank-track { height:18px; background:#f2f6fb; border-radius:4px; }
.workspace-rank-track > span { display:block; height:100%; background:#3979c0; border-radius:4px; }
.workspace-pass-circle { width:150px; height:150px; margin:26px auto; border-radius:50%; display:grid; place-items:center; background:conic-gradient(#367ac4 var(--pass),#edf2f9 0); }
.workspace-pass-circle > div { width:126px; height:126px; border-radius:50%; background:#fff; display:grid; align-content:center; justify-items:center; }
.workspace-pass-circle strong { font-size:1.7rem; color:var(--lms-navy); }
.workspace-pass-circle small { color:#8a9ab0; font-size:.67rem; }
.workspace-tools-layout { display:grid; grid-template-columns:minmax(0,1fr) 260px; gap:18px; }
.workspace-tool-tabs { display:flex; gap:8px; overflow-x:auto; padding:0 0 16px; }
.workspace-tool-tabs button { flex-shrink:0; background:#fff; border:1px solid var(--line); padding:10px 14px; border-radius:10px; color:#6c82a0; font-size:.75rem; cursor:pointer; display:inline-flex; gap:8px; align-items:center; }
.workspace-tool-tabs button.active { background:var(--lms-primary); border-color:var(--lms-primary); color:#fff; }
.workspace-tool-stage { background:linear-gradient(120deg,#20569a,#102e56); border-radius:18px; min-height:330px; padding:32px; display:grid; place-items:center; color:#fff; text-align:center; }
.workspace-tool-stage h3 { font-size:clamp(1.2rem,2.5vw,2.5rem); font-weight:500; margin:16px 0; overflow-wrap:anywhere; }
.workspace-tool-stage p { font-size:.8rem; color:#abc7e8; }
.workspace-tool-action { width:100%; padding:14px; margin-top:16px; font-size:1rem; }
.workspace-tool-control { background:#fff; border:1px solid var(--line); border-radius:16px; padding:20px; margin-bottom:14px; }
.workspace-tool-control h3 { margin:0 0 16px; font-size:.8rem; font-weight:500; color:#6f86a5; }
.workspace-tool-control label { display:flex; align-items:center; gap:10px; font-size:.75rem; color:#8191a7; margin:16px 0; }
.workspace-tool-control input[type=checkbox] { width:18px; height:18px; }
.workspace-tool-control .hint { font-size:.68rem; }
.workspace-groups { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:14px; width:100%; text-align:left; }
.workspace-group { background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.15); padding:18px; border-radius:12px; }
.workspace-group h4 { margin:0 0 12px; font-size:.86rem; color:#bad5f2; }
.workspace-group p { color:#fff; margin:8px 0; font-size:.74rem; }
.workspace-seat-grid { width:100%; display:grid; gap:10px; }
.workspace-seat { background:rgba(255,255,255,.12); padding:14px 7px; border:1px solid rgba(255,255,255,.18); border-radius:10px; font-size:.7rem; }
.workspace-timer { font-size:clamp(3.5rem,8vw,7rem); font-weight:500; font-variant-numeric:tabular-nums; }
.workspace-traffic { display:flex; gap:24px; align-items:center; justify-content:center; }
.workspace-light { width:70px; height:70px; border-radius:50%; border:4px solid rgba(255,255,255,.12); opacity:.18; }
.workspace-light.on { opacity:1; box-shadow:0 0 30px rgba(255,255,255,.25); }
.workspace-score-team { display:grid; justify-items:center; gap:12px; }
.workspace-score-team button { background:#fff; color:var(--lms-navy); width:38px; height:38px; border:0; border-radius:10px; cursor:pointer; font-size:1.2rem; }
.workspace-score-team strong { font-size:3.5rem; font-weight:500; }
.workspace-qr { background:#fff; padding:18px; border-radius:14px; margin:20px auto; width:fit-content; }
.workspace-qr img,.workspace-qr canvas { display:block; max-width:min(260px,65vw); }
.workspace-fullscreen:fullscreen { padding:24px; overflow:auto; background:var(--bg); }
.workspace-fullscreen:fullscreen .workspace-tool-stage { min-height:55dvh; }
/* Legacy examination pages adopt the same language and remain usable in the frame. */
body.lms-embed { background:transparent; overflow:visible; }
body.lms-embed .wrapper,body.lms-embed .main-content { height:auto !important; min-height:0; overflow:visible; }
body.lms-embed .content-body { padding:0; display:flow-root; }
body.lms-embed .wrapper,body.lms-embed .main-content,body.lms-embed .content-body,body.lms-embed .content-card,body.lms-embed .tab-content,body.lms-embed .tab-pane { min-width:0; max-width:100%; }
body.lms-embed .content-card { margin-bottom:18px; }
body.exam-viewport-modal-open .main { overflow:hidden !important; }
body.lms-embed.exam-viewport-modal-open .modal { overflow-y:auto; }
body.lms-embed .modal,body.lms-embed .modal-dialog { transition:none !important; }
body.lms-embed .content-card { box-shadow:none; border-radius:14px; }
.btn-manage { background:#edf3fc; color:#2d63a5; }
.btn-edit { background:#f3f6fb; color:#5e799c; }
.btn-delete { background:#fff1f2; color:#c64d61; }
.modal-content { border:1px solid var(--line); border-radius:16px; box-shadow:0 16px 64px rgba(16,46,86,.18); }
.modal-header { padding:18px 24px; border-bottom:1px solid var(--line); }
.modal-head,.modal-header { position:sticky; top:0; z-index:5; }
.modal-head .modal-close,.modal-head .icon-close,.modal-header .btn-close { position:relative; z-index:6; pointer-events:auto; }
body.ui-modal-open { overflow:hidden; }
.modal-header.bg-primary { background:var(--lms-primary) !important; }
.modal-dialog { max-width:calc(100vw - 24px); }
.custom-table { width:100%; }
.content-body { min-width:0; }
.exam-action-group { display:flex; flex-wrap:wrap; gap:6px; }
.exam-management-table .exam-action-col,.exam-management-table .exam-action-cell { min-width:230px; }
/* Login: page can scroll at small heights; controls never cover the form. */
body.lms-login { min-height:100dvh; height:auto; overflow:auto; background:#f2f6fc; padding:92px 20px 40px; display:flex; align-items:center; justify-content:center; }
.lms-login .login-card { border:1px solid var(--line); border-radius:22px; box-shadow:0 20px 70px rgba(16,46,86,.12); max-width:1040px; width:100%; }
.lms-login .bg-student,.lms-login .bg-admin { background:linear-gradient(135deg,#205393,#102e56); }
.lms-login .right-panel::before,.lms-login .right-panel::after,.lms-login .glow-logo-container::before { display:none; }
.lms-login .left-panel { align-items:flex-start; text-align:left; padding:48px; }
.lms-login .left-panel h2 { font-size:2rem; font-weight:600; line-height:1.5; }
.lms-login .right-panel { padding:48px; }
.lms-login .btn-login { border-radius:10px; background:var(--lms-primary); }
.lms-login .btn-outline-back { border-radius:10px; }
.lms-login .btn-top-admin,.lms-login .btn-top-lms { position:absolute; background:#fff; color:var(--lms-primary); border:1px solid var(--line); border-radius:10px; padding:10px 16px; font-size:.8rem; box-shadow:none; }
.lms-login .tag-pill { margin:4px 8px 4px 0; font-size:.67rem; }
@media (max-width:1199px) {
    .workspace-date { display:none; }
    .lms-workspace .content,.lms-workspace .content.exam-content { width:calc(100% - 40px); }
    .workspace-shortcuts { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .workspace-hero { padding:26px; }
    .workspace-hero h2 { font-size:1.45rem; }
    .workspace-tools-layout { grid-template-columns:minmax(0,1fr) 230px; }
    .workspace-filter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:980px) {
    body.lms-workspace,body.lms-workspace:has(.layout) { overflow:hidden !important; }
    .lms-workspace .sidebar,.lms-workspace.nav-collapsed .sidebar { width:264px !important; max-width:264px; flex-basis:264px; position:fixed; inset:0 auto 0 0; height:100dvh; transform:translateX(-100%); z-index:1100; transition:transform .2s; }
    .lms-workspace.nav-open .sidebar { transform:translateX(0); }
    .lms-workspace.nav-collapsed .workspace-brand div { display:block !important; }
    .lms-workspace.nav-collapsed .workspace-account,.lms-workspace.nav-collapsed .workspace-nav-search { display:flex !important; }
    .lms-workspace.nav-collapsed .nav-title,.lms-workspace.nav-collapsed .nav a span,.lms-workspace.nav-collapsed .logout-area span,.lms-workspace.nav-collapsed .logout-area small { display:block !important; }
    .lms-workspace.nav-collapsed .sidebar .brand { flex-direction:row; padding:20px 18px; }
    .lms-workspace.nav-collapsed .nav a { justify-content:flex-start; padding:10px 12px; }
    .lms-workspace.nav-collapsed .logout-area a { justify-content:flex-start; }
    .lms-workspace .sidebar .nav { display:block !important; }
    .lms-workspace .sidebar .brand div { display:block !important; }
    .lms-workspace .sidebar-toggle { margin-left:auto !important; }
    .workspace-backdrop { position:fixed; inset:0; background:rgba(8,28,55,.45); z-index:1090; }
    .workspace-mobile-toggle { display:inline-grid; place-items:center; flex:0 0 38px; }
    .workspace-breadcrumb { gap:9px; }
    .workspace-breadcrumb > a,.workspace-breadcrumb > i { display:none; }
    .lms-workspace .main > .topbar { height:68px; min-height:68px; padding:12px 20px; }
    .lms-workspace .main { min-height:0; height:100dvh !important; }
    .lms-workspace .content,.lms-workspace .content.exam-content { padding-top:22px; }
    .lms-workspace .course-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .workspace-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .workspace-hero { flex-wrap:wrap; }
    .workspace-tools-layout { grid-template-columns:minmax(0,1fr); }
    .workspace-tool-settings { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
    .lms-workspace .course-item > .cover { min-height:0; height:96px; }
    .lms-workspace .notification-panel { position:fixed; top:72px; right:14px; max-height:calc(100dvh - 90px); }
}
@media (max-width:640px) {
    body.lms-embed .content-body { padding:12px; }
    body.lms-embed .content-card { padding:16px; }
    body.lms-embed .content-card > .d-flex { flex-wrap:wrap; gap:10px; }
    body.lms-embed .content-card > .d-flex > .d-flex { width:100%; min-width:0; }
    body.lms-embed .content-card .flex-grow-1 > .form-control,body.lms-embed .content-card .flex-grow-1 > .form-select { flex:1 1 100% !important; width:100% !important; }
    body.lms-embed .content-card > .d-flex > .form-control,body.lms-embed .content-card > .d-flex > .form-select { width:100% !important; max-width:100%; }
    body.lms-embed .form-control,body.lms-embed .form-select { max-width:100%; min-width:0; font-size:16px; }
    body.lms-embed input[type=file] { width:100%; }
    body.lms-embed .custom-table { min-width:640px; }
    body.lms-embed .table-responsive { width:100%; max-width:100%; }
    .lms-workspace .content,.lms-workspace .content.exam-content { width:calc(100% - 28px); padding-top:18px; }
    .lms-workspace .main > .topbar { padding:12px 14px; display:flex; }
    .lms-workspace .topbar-actions { gap:8px; }
    .lms-workspace .topbar .user-pill { max-width:48px; padding:5px; min-width:0; }
    .lms-workspace .topbar .user-pill > span { display:none; }
    .lms-workspace .topbar .user-avatar { margin:0; }
    .workspace-breadcrumb h1 { font-size:.74rem; }
    .workspace-hero { padding:24px 20px; gap:18px; margin-bottom:18px; border-radius:14px; }
    .workspace-hero h2 { font-size:1.25rem; }
    .workspace-hero p { font-size:.72rem; }
    .workspace-eyebrow { font-size:.51rem; }
    .workspace-metrics { gap:10px; margin-bottom:18px; }
    .workspace-metric { padding:16px; }
    .workspace-metric strong { font-size:1.4rem; }
    .workspace-shortcuts { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
    .workspace-shortcut { padding:18px; }
    .workspace-grid,.lms-workspace .course-list { grid-template-columns:minmax(0,1fr); }
    .workspace-room { padding:20px; }
    .workspace-week { grid-template-columns:24px repeat(7,minmax(0,1fr)) 24px; padding:8px; gap:2px; }
    .workspace-week a { padding:8px 0; font-size:.55rem; }
    .workspace-week a strong { font-size:.8rem; }
    .workspace-status-grid { gap:5px; }
    .workspace-status-grid label { font-size:.69rem; min-height:42px; }
    .workspace-filter-grid { grid-template-columns:minmax(0,1fr); }
    .workspace-filter-grid .btn { width:100%; }
    .workspace-tool-stage { min-height:280px; padding:24px 18px; }
    .workspace-tool-settings { grid-template-columns:minmax(0,1fr); }
    .workspace-tool-stage h3 { font-size:1.6rem; }
    .workspace-chart { gap:6px; }
    .workspace-chart-labels { gap:6px; font-size:.49rem; }
    .workspace-rank-row { grid-template-columns:110px minmax(0,1fr) 40px; }
    .lms-workspace .page-actions,.lms-workspace .announce-head { padding:24px 20px; flex-wrap:wrap; }
    .lms-workspace .page-actions h2,.lms-workspace .announce-head h2 { font-size:1.3rem; }
    .lms-workspace .page-actions > .btn { width:auto; }
    .lms-workspace .content.exam-content .exam-frame { min-height:520px; height:calc(100dvh - 125px); }
    .modal-layer { padding:12px; }
    .modal-card { max-height:calc(100dvh - 24px); border-radius:14px; }
    .modal-head,.modal-body { padding:18px; }
    body.lms-login { padding:88px 14px 24px; }
    .lms-login .login-card { width:100%; max-width:480px; }
    .lms-login .left-panel,.lms-login .right-panel { width:100%; padding:28px; }
    .lms-login .left-panel h2 { font-size:1.4rem; }
    .lms-login .left-panel p { font-size:.8rem; }
    .lms-login .glow-logo-container { margin-bottom:16px; }
    .lms-login .glow-logo-container img { width:58px; height:58px; }
    .lms-login .btn-top-admin { max-width:calc(100vw - 100px); font-size:.68rem; }
    .lms-login .btn-top-lms { font-size:.68rem; }
    .lms-login .btn-top-admin,.lms-login .btn-top-lms { top:18px; }
    .workspace-footer { justify-content:center; text-align:center; }
}
@media print {
    body.lms-workspace { overflow:visible !important; background:#fff; }
    .lms-workspace .layout,.lms-workspace .main { display:block; height:auto !important; overflow:visible !important; }
    .lms-workspace .sidebar,.lms-workspace .topbar,.workspace-toolbar,.workspace-filter-panel,.workspace-footer,.hero-actions,.toast-stack,.workspace-presets,.workspace-backdrop { display:none !important; }
    .lms-workspace .content { width:100%; max-width:none; padding:0; }
    .workspace-hero { color:#102e56; background:#fff; border-bottom:2px solid #102e56; padding:0 0 16px; border-radius:0; }
    .workspace-hero p,.workspace-eyebrow { color:#6b7b92; }
    .table-wrap { overflow:visible; border:0; }
    .workspace-report-table { min-width:0; width:100%; }
    .workspace-report-table th,.workspace-report-table td { font-size:8pt; padding:7px 4px; }
    .workspace-report-table th:nth-child(2),.workspace-report-table td:nth-child(2) { min-width:0; }
    .panel,.workspace-metric { box-shadow:none; break-inside:avoid; }
    .workspace-report-table th { position:static; }
    #workspaceReportRows tr[hidden] { display:table-row !important; }
    .lms-workspace .panel { overflow:visible !important; }
    @page { size:A4 landscape; margin:12mm; }
}
/* Account menus and the shared attendance entry. */
.workspace-sidebar-scroll { flex:1; min-height:0; overflow-y:auto; overflow-x:hidden; scrollbar-width:thin; }
.lms-workspace .workspace-sidebar-scroll .nav { height:auto; flex:none; overflow:visible; }
.account-menu { position:relative; flex-shrink:0; }
.account-menu summary { list-style:none; cursor:pointer; }
.account-menu summary::-webkit-details-marker { display:none; }
.account-menu .user-pill { display:flex; align-items:center; gap:10px; border:1px solid var(--line); padding:7px 12px; }
.account-summary-text { min-width:0; flex:1; text-align:left; }
.account-summary-text strong { display:block; font-size:.78rem; font-weight:500; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--lms-navy); }
.account-summary-text small { display:block; font-size:.65rem; color:var(--muted); }
.account-chevron { font-size:.65rem; color:var(--muted); transition:transform .15s; }
.account-menu[open] .account-chevron { transform:rotate(180deg); }
.account-menu .account-dropdown { position:absolute; top:calc(100% + 10px); right:0; width:278px; max-width:calc(100vw - 28px); max-height:calc(100dvh - 90px); overflow:auto; padding:10px; background:#fff; z-index:250; }
.account-menu-heading { padding:10px 10px 14px; border-bottom:1px solid var(--line); display:grid; gap:4px; overflow-wrap:anywhere; }
.account-menu-heading strong { font-size:.82rem; color:var(--lms-navy); }
.account-menu-heading small { color:var(--muted); font-size:.72rem; }
.account-role { width:fit-content; background:#edf3fc; color:var(--lms-primary); padding:2px 8px; border-radius:6px; font-size:.65rem; }
.account-menu .account-dropdown nav { display:grid; padding:6px 0 0; }
.account-menu .account-dropdown a { display:flex; align-items:center; gap:11px; color:#4a607a; text-decoration:none; font-size:.75rem; padding:11px 10px; border-radius:8px; white-space:normal; }
.account-menu .account-dropdown a:hover { background:#f1f6fd; color:var(--lms-primary); }
.account-menu .account-dropdown a > i { flex:0 0 18px; color:#8497af; }
.account-menu .account-dropdown .logout { border-top:1px solid var(--line); margin-top:5px; color:#b53b4c; }
.account-menu-sidebar { margin:0; }
.account-menu-sidebar .account-dropdown { position:static; width:auto; max-height:none; margin:0 14px 14px; box-shadow:0 2px 8px rgba(16,46,86,.05); }
.account-menu-sidebar .account-menu-heading { display:none; }
.attendance-hub { padding:22px 24px; margin-bottom:24px; }
.attendance-hub h2 { margin:0; font-size:1.15rem; }
.attendance-hub .workspace-toolbar { margin:16px 0 12px; }
.attendance-hub select { flex:1; min-width:140px; min-height:42px; padding:8px; }
.attendance-hub-links { display:flex; flex-wrap:wrap; gap:18px; margin-top:12px; }
.attendance-hub-links a { font-size:.76rem; color:var(--lms-primary); text-decoration:none; }
.account-tabs { margin:24px 0; }
.account-panel { padding:24px; margin-bottom:20px; line-height:1.8; }
.account-panel h2,.account-panel h3 { margin:0 0 14px; }
.account-panel p { font-size:.86rem; }
.account-data { display:grid; grid-template-columns:minmax(120px,1fr) 3fr; gap:12px; font-size:.86rem; }
.account-data dt { color:var(--muted); }
.account-data dd { margin:0; overflow-wrap:anywhere; }
.account-guide .account-panel { margin:0; display:flex; align-items:flex-start; flex-direction:column; }
.account-guide .account-panel .btn { margin-top:auto; }
.account-step { background:#edf3fc; color:var(--lms-primary); border-radius:10px; padding:5px 13px; margin-bottom:14px; }
.account-page { margin:0; }
.account-page-header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 24px; border-bottom:1px solid var(--line); background:#fff; }
.account-page-header > a { color:var(--lms-navy); text-decoration:none; font-weight:600; }
.account-page-content { max-width:1100px; margin:28px auto; padding:0 18px 30px; }
.account-page .btn { display:inline-flex; align-items:center; gap:8px; padding:9px 15px; text-decoration:none; }
@media (min-width:981px) { .lms-workspace.nav-collapsed .account-menu-sidebar { display:none; } }
@media (max-width:640px) {
    .account-menu-top .account-summary-text,.account-menu-top .account-chevron { display:none; }
    .lms-workspace .topbar .account-menu .user-pill { padding:4px; max-width:48px; }
    .account-menu-top .workspace-avatar { width:34px; height:34px; flex-basis:34px; }
    .attendance-hub,.account-panel { padding:18px; }
    .account-data { grid-template-columns:1fr; gap:5px; }
    .account-data dd { margin-bottom:12px; }
    .attendance-hub .workspace-segments,.account-tabs { flex-wrap:wrap; }
    .account-page-header { padding:12px 16px; }
}
@media (max-width:640px) {
    .lms-workspace .topbar .account-menu .user-pill .workspace-avatar { display:grid !important; }
    .lms-workspace .topbar .account-menu .user-pill { min-width:44px; justify-content:center; }
    .lms-workspace .workspace-check-page .workspace-hero { padding:18px; }
    .lms-workspace .workspace-check-page .workspace-hero .hero-eyebrow { display:none; }
}

/* Shared sizing for workspace pages and the older embedded tools. */
body.lms-workspace,body.lms-page { margin:0; padding:0; display:block; font-family:'Prompt','Sarabun',system-ui,sans-serif; font-size:var(--lms-font-size); line-height:1.6; }
.lms-workspace .sidebar .brand { height:var(--lms-header-height); min-height:var(--lms-header-height); padding:16px 18px; }
.workspace-brand div { min-width:0; }
.workspace-brand strong,.workspace-brand span { display:block; }
.workspace-brand strong { line-height:1.3; }
.workspace-brand span { line-height:1.5; }
.lms-workspace .main > .topbar { height:var(--lms-header-height); min-height:var(--lms-header-height); }
.lms-workspace .main > .content,.lms-workspace .main > .content.exam-content,.lms-workspace .main > .content.page-content { width:calc(100% - 64px); max-width:var(--lms-content-width); margin:0 auto; padding:28px 0 0; }
.lms-workspace .page-content .content { width:100%; max-width:none; margin:0; padding:0; }
.page-content { min-width:0; }
.page-content > .panel,.lms-course-page .panel { padding:24px; }
.page-content .panel h2,.lms-embed .card-header-custom { font-size:18px; font-weight:600; }
.page-content .panel h3 { font-size:16px; font-weight:600; }
.page-content .panel-head { margin-bottom:20px; gap:16px; flex-wrap:wrap; }
.lms-workspace .field > label,.lms-page .field > label,.lms-profile-page form label { font-size:13px; font-weight:500; line-height:1.6; margin-bottom:6px; }
.lms-workspace .btn,.lms-page .btn { font-size:13px; font-weight:500; line-height:1.5; padding:10px 14px; min-height:42px; border-radius:10px; }
.lms-workspace input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),.lms-page input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),.lms-workspace select,.lms-page select { min-height:var(--lms-control-height); padding:10px 12px; border:1px solid var(--line); border-radius:10px; font-size:14px; line-height:1.5; min-width:0; max-width:100%; }
/* Keep icon space after shared control sizing, at every viewport width. */
.lms-course-page .review-search-control { min-width:0; }
.lms-course-page .review-search-control input[type=search] { padding-inline-start:44px !important; padding-inline-end:52px !important; }
.assignment-drive-field input:disabled { background:#edf1f7 !important; color:var(--muted) !important; cursor:not-allowed; }
.lms-workspace textarea,.lms-page textarea { padding:12px; border:1px solid var(--line); border-radius:10px; font-size:14px; line-height:1.7; min-width:0; max-width:100%; }
.lms-course-page .select-card { min-height:68px; padding:12px 38px 12px 14px; border-color:var(--line); border-radius:10px; }
.lms-course-page .select-card span { font-size:12px; font-weight:500; }
.lms-course-page .select-card strong { font-size:14px; font-weight:500; }
.lms-course-page .select-card select { min-height:0; padding:0; height:100%; }
.lms-course-page .field-grid { gap:16px; }
.lms-course-page .assignment-drive-field label { display:block; margin-bottom:6px; font-size:13px; font-weight:500; }
.lms-course-page .assignment-drive-field small,.lms-course-page .small,.lms-course-page .hint { font-size:12px; line-height:1.7; }
.lms-course-page .course-hero h1 { font-size:26px; line-height:1.45; font-weight:600; }
.lms-course-page .course-nav .btn,.lms-course-page .course-tab { font-size:13px; }
.lms-course-page .student-submission-head strong { font-size:14px; }
.page-topbar .topbar-actions { display:flex; align-items:center; gap:12px; }
.page-notification { display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--line); border-radius:10px; width:38px; height:38px; flex:0 0 38px; background:#fff; color:#6f83a0; text-decoration:none; position:relative; }
.page-notification .count { position:absolute; top:-6px; right:-6px; min-width:18px; height:18px; padding:0 4px; display:grid; place-items:center; font-size:10px; background:#d7475b; color:#fff; border-radius:6px; }
.lms-page-content { width:calc(100% - 64px); max-width:var(--lms-content-width); margin:0 auto; padding:28px 0 48px; }
.page-header { position:sticky; top:0; z-index:100; background:#fff; border-bottom:1px solid var(--line); }
.page-nav { width:calc(100% - 64px); max-width:var(--lms-content-width); margin:auto; min-height:calc(var(--lms-header-height) - 1px); display:flex; align-items:center; gap:24px; padding:12px 0; }
.page-header .workspace-brand { margin-right:auto; flex-shrink:0; }
.page-header .workspace-brand img { width:38px; height:44px; object-fit:contain; flex-shrink:0; }
.page-header .workspace-brand strong { display:block; font-size:18px; font-weight:600; line-height:1.3; color:var(--lms-navy); }
.page-header .workspace-brand em { color:#3e80c4; font-style:normal; }
.page-header .workspace-brand span { font-size:11px; color:var(--muted); }
.page-nav-links { display:flex; align-items:center; gap:6px; }
.page-nav-links a { color:#60738d; font-size:13px; font-weight:500; text-decoration:none; padding:8px 10px; border-radius:8px; }
.page-nav-links a:hover { color:var(--lms-primary); background:#edf3fc; }
.page-header-actions { display:flex; align-items:center; gap:12px; }
.page-header .account-menu .user-pill { padding:6px 12px; }
.page-nav-toggle { display:none; width:38px; height:38px; border:1px solid var(--line); border-radius:10px; background:#fff; color:var(--lms-primary); cursor:pointer; }
.lms-profile-page .profile-card { width:100%; max-width:860px; margin:0 auto; border:1px solid var(--line); border-radius:16px; box-shadow:var(--lms-shadow); }
.lms-profile-page .profile-card .header { background:linear-gradient(115deg,#174b91,#102e56); padding:24px; }
.lms-profile-page .profile-card h1 { font-size:22px; font-weight:600; }
.lms-profile-page .profile-card form { padding:24px; }
.lms-profile-page .profile-card input,.lms-profile-page .profile-card textarea { width:100%; }
.lms-drive-page .drive-connect-page { max-width:860px; padding:0; margin:0 auto; }
.lms-drive-page .drive-connect-page .panel { padding:24px; border-radius:16px; }
.lms-drive-page .drive-connect-page h1 { font-size:22px; font-weight:600; }
.lms-news-page .article h1 { font-size:26px; font-weight:600; }
.lms-portal .lms-nav { min-height:var(--lms-header-height); }
.lms-portal .lms-nav .brand { font-size:18px; font-weight:600; }
.lms-portal .lms-nav .brand img { width:38px; height:44px; object-fit:contain; }
.lms-embed { font-family:'Prompt','Sarabun',system-ui,sans-serif; font-size:14px; line-height:1.6; }
.lms-embed .btn:not(.btn-close) { font-size:13px !important; font-weight:500 !important; min-height:42px; padding:10px 14px; border-radius:10px; line-height:1.5; }
.lms-embed .form-label,.lms-embed label { font-size:13px; font-weight:500 !important; }
.lms-embed .form-control,.lms-embed .form-select { min-height:44px; font-size:14px !important; line-height:1.5; border:1px solid var(--line) !important; border-radius:10px; padding:10px 12px; font-weight:400 !important; }
.lms-embed textarea.form-control { min-height:100px; }
.lms-embed #examModal .modal-dialog { width:calc(100vw - 32px); max-width:1100px; margin:16px auto; }
.lms-embed #examModal .form-control,.lms-embed #examModal .form-select { min-height:44px; padding:10px 12px; }
.lms-embed #examModal .exam-schedule-row label { font-size:12px; line-height:1.5; white-space:normal; }
.lms-embed #examModal .exam-save-button { min-height:42px; padding:10px 14px; font-size:13px !important; }
.lms-embed .custom-table th,.lms-embed .custom-table td { font-size:13px; }
.lms-embed .content-card { padding:24px; }
.lms-embed h4 { font-size:18px; font-weight:600 !important; }
.lms-student-exams .exam-list-heading { font-size:20px; font-weight:600; margin:0 0 24px; }
.lms-student-exams .exam-title { font-size:16px; font-weight:600; }
.lms-student-exams .exam-info { font-size:13px; }
.lms-exam-result .result-card { margin:0 auto; border:1px solid var(--line); border-radius:16px; box-shadow:var(--lms-shadow); }
.lms-legacy-page .sys-title,.lms-legacy-page h3 { font-size:20px; font-weight:600 !important; }
.lms-legacy-page .sys-title .fs-5,.lms-legacy-page h5 { font-size:16px !important; font-weight:500; }
.lms-legacy-page .stat-title { font-size:13px; font-weight:500; }
.lms-legacy-page .stat-value { font-size:28px; font-weight:600; }
.lms-legacy-page .glass-card,.lms-legacy-page .content-card { background:#fff; border:1px solid var(--line); box-shadow:var(--lms-shadow); border-radius:16px; backdrop-filter:none; }
@media(max-width:980px) {
    .lms-workspace .main > .content,.lms-workspace .main > .content.exam-content,.lms-workspace .main > .content.page-content,.lms-page-content { width:calc(100% - 32px); padding-top:20px; }
    .page-nav { width:calc(100% - 32px); flex-wrap:wrap; gap:12px; min-height:69px; padding:10px 0; }
    .page-nav-toggle { display:inline-flex; align-items:center; justify-content:center; }
    .page-nav-links { display:none; order:5; width:100%; flex-wrap:wrap; padding-top:10px; border-top:1px solid var(--line); }
    .page-nav-links.is-open { display:flex; }
    .page-content > .panel,.lms-course-page .panel,.lms-embed .content-card { padding:20px; }
}
@media(max-width:680px) {
    .lms-workspace .main > .topbar { min-height:70px; height:70px; padding:12px 16px; }
    .page-content > .panel,.lms-course-page .panel,.lms-embed .content-card { padding:16px; }
    .page-header .workspace-brand strong { font-size:16px; }
    .page-header .account-summary-text { display:none; }
    .page-header .account-menu .user-pill { padding:6px; }
    .page-topbar .workspace-date { display:none; }
    .page-topbar .workspace-breadcrumb { min-width:0; gap:8px; }
    .page-topbar .workspace-breadcrumb > a,.page-topbar .workspace-breadcrumb > i { display:none; }
    .page-topbar .workspace-breadcrumb h1 { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .page-topbar .topbar-actions { gap:8px; }
    .lms-workspace input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),.lms-page input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),.lms-workspace select,.lms-page select,.lms-workspace textarea,.lms-page textarea,.lms-embed .form-control,.lms-embed .form-select { font-size:16px !important; }
    .lms-embed .content-body { padding:0; }
    .lms-embed .content-body > .row { margin-inline:0; }
    .lms-profile-page .profile-card .header,.lms-profile-page .profile-card form { padding:20px; }
    .lms-course-page .course-hero h1,.lms-news-page .article h1 { font-size:22px; }
}

/* Phone layout: readable type, comfortable touch targets and bounded scrolling.
   Keep horizontal scrolling inside data tables and tool tabs, never the page. */
@media screen and (max-width:980px) {
    .lms-workspace .sidebar { width:min(284px,calc(100vw - 36px)) !important; max-width:calc(100vw - 36px); }
    .lms-workspace .sidebar-toggle { width:44px; height:44px; flex:0 0 44px; }
    .lms-workspace .sidebar .brand { padding:12px; }
    .lms-workspace .sidebar .brand strong { font-size:16px; letter-spacing:0; }
    .lms-workspace .nav a strong { font-size:13px; }
    .lms-workspace .nav a small { font-size:11px; max-width:180px; }
    .lms-workspace .nav-title { font-size:11px; }
    .lms-workspace .logout-area > a,.account-menu .account-dropdown a { min-height:44px; font-size:13px; }
    .lms-workspace .account-menu-sidebar .account-dropdown { max-height:min(420px,50dvh); }
    .lms-workspace .sidebar .nav,.lms-workspace .main { scrollbar-gutter:stable; }
    .lms-workspace input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),
    .lms-page input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),
    .lms-workspace select,.lms-page select,.lms-workspace textarea,.lms-page textarea,
    .lms-embed .form-control,.lms-embed .form-select { font-size:16px !important; }
    .workspace-mobile-toggle,.page-nav-toggle,.page-notification,.lms-workspace .notification-button { width:44px; height:44px; min-height:44px; flex:0 0 44px; }
    .workspace-breadcrumb { min-width:0; }
    .workspace-breadcrumb h1 { margin:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .lms-workspace .main,.lms-page-content { scroll-padding-top:86px; }
    .lms-workspace .table-wrap,.lms-workspace .table-responsive,.lms-page .table-wrap,.roster-table-wrap { -webkit-overflow-scrolling:touch; overscroll-behavior-inline:contain; }
}
@media screen and (max-width:680px) {
    :root { --lms-header-height:70px; --lms-control-height:46px; }
    .lms-workspace .main > .topbar { padding:10px 12px; gap:8px; }
    .lms-workspace .workspace-breadcrumb { gap:8px; flex:1; }
    .lms-workspace .workspace-breadcrumb > a,.lms-workspace .workspace-breadcrumb > i { display:none; }
    .lms-workspace .workspace-breadcrumb h1 { font-size:14px; line-height:1.5; }
    .lms-workspace .topbar-actions,.page-header-actions { gap:8px; flex-shrink:0; }
    .lms-workspace .workspace-date { display:none; }
    .lms-workspace .topbar .account-menu .user-pill,.page-header .account-menu .user-pill { width:44px; height:44px; min-height:44px; padding:4px; justify-content:center; }
    .account-menu-top .account-summary-text,.account-menu-top .account-chevron,.page-header .account-summary-text,.page-header .account-chevron { display:none; }
    .account-menu-top .workspace-avatar { width:34px; height:34px; flex-basis:34px; }
    .account-menu-top .account-dropdown { position:fixed; top:76px; right:max(12px,env(safe-area-inset-right)); width:min(300px,calc(100vw - 24px)); max-height:calc(100dvh - 88px - env(safe-area-inset-bottom)); }
    .lms-workspace .main > .content,.lms-workspace .main > .content.exam-content,.lms-workspace .main > .content.page-content,.lms-page-content { width:calc(100% - 24px); padding-top:16px; }
    .lms-workspace .page-content .content { width:100%; padding:0; }
    .lms-workspace .btn,.lms-page .btn,.lms-embed .btn:not(.btn-close) { min-height:44px; font-size:14px !important; padding:10px 12px; white-space:normal; overflow-wrap:anywhere; }
    .workspace-icon-button,.modal-close,.icon-close,.notification-delete,.review-search-clear { min-width:44px; width:44px; height:44px; min-height:44px; padding:0; }
    .lms-workspace .field > label,.lms-page .field > label,.workspace-filter-grid label,.lms-embed label { font-size:13px; line-height:1.6; }
    .lms-workspace .hint,.lms-workspace .small,.lms-page .small,.lms-page .hint { font-size:12px; line-height:1.7; overflow-wrap:anywhere; }
    .lms-workspace input[type=file],.lms-page input[type=file] { height:auto; min-height:46px; padding:8px; }
    .page-content > .panel,.lms-course-page .panel,.lms-embed .content-card { padding:16px; border-radius:14px; }
    .lms-course-page .panel-head { margin-bottom:16px; gap:12px; }
    .lms-course-page .field-grid,.lms-course-page .form-grid { gap:14px; }
    .lms-course-page .select-card { min-height:64px; padding:10px 36px 10px 12px; }
    .lms-course-page .assignment-drive-field { padding:12px; border-radius:10px; }
    .lms-course-page .assignment-drive-field .staff-actions { gap:8px; }
    .lms-course-page .assignment-drive-field label { line-height:1.6; }
    .lms-course-page .course-hero { min-height:0; padding:20px 16px; }
    .lms-course-page .course-hero h1 { font-size:21px; }
    .lms-course-page .review-search-control input { padding-left:40px; padding-right:52px; }
    .lms-course-page .review-search-control > i { left:12px; }
    .lms-course-page .review-search-clear { right:1px; }
    .student-submission-head,.roster-room-head,.submission-file-box { flex-wrap:wrap; }
    .student-submission-head > div,.workspace-room-head > div,.workspace-check-card header > div { min-width:0; overflow-wrap:anywhere; }
    .submission-file-box strong { white-space:normal; }
    .student-score-panel { border-left:0; border-top:1px solid var(--line); padding:12px 0 0; }
    .lms-course-page .notification-item { grid-template-columns:32px minmax(0,1fr) 44px; gap:8px; padding:12px; }
    .lms-course-page .notification-item > i { width:32px; height:32px; }
    .workspace-hero,.lms-workspace .workspace-check-page .workspace-hero { padding:18px 16px; gap:14px; margin-bottom:16px; }
    .workspace-hero h2 { font-size:20px; gap:10px; }
    .workspace-hero p { font-size:12px; line-height:1.7; margin-top:8px; }
    .workspace-eyebrow { font-size:10px; letter-spacing:.06em; margin-bottom:10px; }
    .hero-icon { width:36px; height:36px; flex-basis:36px; font-size:18px; }
    .hero-actions { gap:8px; }
    .workspace-metrics { gap:10px; margin-bottom:16px; }
    .workspace-metric { padding:14px 12px; gap:6px; min-width:0; overflow-wrap:anywhere; }
    .workspace-metric .metric-label { font-size:12px; }
    .workspace-metric strong { font-size:24px; }
    .workspace-metric small { font-size:11px; line-height:1.6; }
    .workspace-shortcuts,.workspace-grid { gap:12px; }
    .workspace-shortcut { padding:16px 12px; }
    .workspace-shortcut > i { width:36px; height:36px; margin-bottom:12px; }
    .workspace-shortcut strong { font-size:13px; line-height:1.6; }
    .workspace-shortcut small { font-size:11px; line-height:1.6; }
    .workspace-room { padding:16px; }
    .workspace-room h3 { font-size:16px; overflow-wrap:anywhere; }
    .workspace-room-head { gap:8px; }
    .workspace-room-count { margin:14px 0; }
    .room-linked-courses .actions .btn { min-width:0; flex:1 1 100%; }
    .workspace-roster-row { gap:10px; flex-wrap:wrap; }
    .workspace-roster-row .row-meta { flex-basis:calc(100% - 80px); overflow-wrap:anywhere; }
    .workspace-roster-row small,.workspace-check-card small { font-size:11px; }
    .workspace-filter-grid { grid-template-columns:minmax(0,1fr); gap:12px; }
    .workspace-toolbar { gap:10px; margin-bottom:16px; }
    .workspace-toolbar select,.workspace-toolbar input[type=date] { max-width:100%; }
    .workspace-presets { gap:8px; }
    .workspace-presets a { min-height:44px; display:inline-flex; align-items:center; font-size:12px; padding:8px 12px; }
    .workspace-week { grid-template-columns:repeat(7,minmax(0,1fr)); padding:8px; gap:4px; }
    .workspace-week a { grid-row:1; min-height:54px; font-size:11px; padding:8px 0; gap:4px; }
    .workspace-week a strong { font-size:14px; }
    .workspace-week a:first-child,.workspace-week a:last-child { grid-row:2; min-height:44px; }
    .workspace-week a:first-child { grid-column:1 / span 2; }
    .workspace-week a:last-child { grid-column:6 / span 2; }
    .workspace-status-grid { gap:6px; }
    .workspace-status-grid label { min-height:44px; display:grid; place-items:center; font-size:12px; padding:8px 2px; }
    .workspace-check-card { padding:14px 12px; }
    .workspace-check-card h3 { font-size:14px; }
    .workspace-savebar { padding:10px 0 max(10px,env(safe-area-inset-bottom)); }
    .workspace-segments { margin-bottom:16px; }
    .workspace-segments a { min-height:44px; font-size:13px; padding:10px; }
    .workspace-schedule { min-width:0; grid-template-columns:minmax(0,1fr); gap:12px; }
    .workspace-schedule-day { min-width:0; padding:12px; }
    .workspace-schedule-day > h3 { text-align:left; font-size:14px; margin:0 0 10px; }
    .workspace-schedule-day > .hint { text-align:left !important; font-size:12px !important; margin:0; }
    .workspace-event { padding:12px; margin:0 0 8px; }
    .workspace-event:last-child { margin-bottom:0; }
    .workspace-event time,.workspace-event small { font-size:12px; }
    .workspace-event strong { font-size:14px; }
    .workspace-chart { gap:6px; height:180px; padding:12px 0 0; }
    .workspace-chart-labels { gap:6px; padding:8px 0; font-size:10px; }
    .workspace-chart-labels span { writing-mode:vertical-rl; justify-self:center; }
    .workspace-chart-col strong { font-size:12px; }
    .workspace-rank-row { grid-template-columns:minmax(80px,1fr) minmax(0,1.2fr) 40px; font-size:12px; gap:8px; }
    .workspace-tools-layout { gap:14px; }
    .workspace-tool-tabs { padding-bottom:12px; gap:8px; }
    .workspace-tool-tabs button { min-height:44px; font-size:13px; padding:10px 12px; }
    .workspace-tool-control { padding:16px; margin-bottom:12px; }
    .workspace-tool-control h3 { font-size:14px; margin-bottom:12px; }
    .workspace-tool-control label { font-size:13px; min-height:44px; margin:10px 0; }
    .workspace-tool-stage { min-height:240px; padding:20px 16px; border-radius:14px; }
    .workspace-tool-stage h3 { font-size:20px; line-height:1.6; }
    .workspace-tool-stage p { font-size:13px; }
    .workspace-tool-action { margin-top:12px; }
    .workspace-score-team button { width:44px; height:44px; }
    .workspace-traffic { gap:14px; }
    .workspace-light { width:56px; height:56px; }
    .workspace-groups { grid-template-columns:minmax(0,1fr); gap:12px; }
    .workspace-seat { padding:12px 4px; font-size:11px; overflow-wrap:anywhere; }
    .workspace-seat-grid { gap:6px; }
    .workspace-footer { padding:22px 0 max(18px,env(safe-area-inset-bottom)); font-size:11px; }
    .page-nav { width:calc(100% - 24px); gap:8px; }
    .page-header .workspace-brand { min-width:0; flex:1; }
    .page-header .workspace-brand img { width:32px; height:38px; }
    .page-header .workspace-brand strong { font-size:15px; }
    .page-header .workspace-brand span { font-size:10px; }
    .page-nav-links { display:none; }
    .page-nav-links.is-open { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
    .page-nav-links a { min-height:44px; display:flex; align-items:center; padding:10px; font-size:13px; }
    .lms-profile-page .profile-card .header,.lms-profile-page .profile-card form,.lms-drive-page .drive-connect-page .panel { padding:16px; }
    .lms-portal .lms-nav,.lms-portal .page-shell,.lms-portal .footer-inner { width:calc(100% - 24px); }
    .lms-portal .home-hero { padding:22px 18px; gap:18px; }
    .lms-portal .home-hero h1 { font-size:28px; line-height:1.5; }
    .lms-portal .home-hero p { font-size:14px; }
    .lms-portal .portal-hero-visual { min-height:180px; }
    .lms-portal .course-body { padding:16px; }
    .lms-portal .course-body h3 { font-size:16px; }
    .modal-layer { padding:max(8px,env(safe-area-inset-top)) 8px max(8px,env(safe-area-inset-bottom)); }
    .modal-card,.modal-card.narrow { max-height:calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); border-radius:14px; }
    .modal-head { padding:12px 14px; gap:10px; }
    .modal-head h2 { font-size:16px; line-height:1.6; min-width:0; }
    .modal-body { padding:14px; }
    .lms-embed #examModal .modal-dialog { width:calc(100vw - 16px); margin:8px auto; }
    .lms-embed .modal-header,.lms-embed .modal-body,.lms-embed .modal-footer { padding:14px; }
    .lms-embed .modal-header .btn-close { width:24px; height:24px; padding:9px; flex:0 0 auto; box-sizing:content-box; }
    .lms-embed .modal-header h5 { font-size:16px; line-height:1.6; }
    .lms-embed .custom-table th,.lms-embed .custom-table td { padding:12px; }
    .lms-student-exams .lms-page-content > .row { --bs-gutter-x:0; --bs-gutter-y:16px; margin-inline:0; }
}
@media screen and (min-width:360px) and (max-width:680px) {
    .lms-course-page .datetime-24 { grid-template-columns:minmax(0,1fr) 88px !important; gap:8px; }
    .lms-course-page .datetime-24 input { padding-inline:8px; }
}
@media screen and (max-width:359px) {
    .workspace-week { grid-template-columns:repeat(4,minmax(0,1fr)); }
    .workspace-week a:not(:first-child):not(:last-child) { grid-row:auto; min-height:48px; }
    .workspace-week a:first-child,.workspace-week a:last-child { grid-row:3; }
    .workspace-week a:last-child { grid-column:3 / span 2; }
    .workspace-status-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
