:root {
    --color-bg: #f8fafc;
    --color-surface: #ffffff;
    --color-surface-secondary: #f1f5f9;
    --color-surface-hover: #f0fdfa;
    --color-text-primary: #0f172a;
    --color-text-secondary: #475569;
    --color-text-muted: #64748b;
    --color-border: #e2e8f0;
    --color-border-strong: #cbd5e1;
    --color-primary: #0f9fa8;
    --color-primary-hover: #0d8991;
    --color-primary-active: #0b737a;
    --color-primary-soft: #e6f7f7;
    --color-success: #15803d;
    --color-success-soft: #ecfdf3;
    --color-warning: #b45309;
    --color-warning-soft: #fffbeb;
    --color-danger: #b42318;
    --color-danger-soft: #fef3f2;
    --color-info: #0369a1;
    --color-info-soft: #f0f9ff;
    --color-sidebar: #0d2933;
    --color-sidebar-hover: #143b46;
    --color-sidebar-active: #174b55;
    --color-sidebar-text: #dbe7ea;
    --color-sidebar-muted: #8eabb2;
    --focus-ring: 0 0 0 3px rgba(15, 159, 168, .24);
    --shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);
    --shadow-elevated: 0 12px 32px rgba(15, 23, 42, .12);
    --radius-sm: 6px;
    --radius-control: 8px;
    --radius-panel: 10px;
    --radius-dialog: 14px;
    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 20px;
    --space-6: 24px;
    --space-8: 32px;
    --motion-micro: 120ms;
    --motion-menu: 150ms;
    --motion-panel: 210ms;
    --ease-standard: cubic-bezier(.2, 0, 0, 1);
    --ease-enter: cubic-bezier(0, 0, .2, 1);
    --ease-exit: cubic-bezier(.4, 0, 1, 1);
    --ep-primary: var(--color-primary);
    --ep-primary-dark: var(--color-primary-hover);
    --ep-primary-soft: var(--color-primary-soft);
    --ep-sidebar: var(--color-sidebar);
    --ep-sidebar-muted: var(--color-sidebar-muted);
    --ep-bg: var(--color-bg);
    --ep-surface: var(--color-surface);
    --ep-text: var(--color-text-primary);
    --ep-muted: var(--color-text-muted);
    --ep-border: var(--color-border);
    --ep-success: var(--color-success);
    --ep-danger: var(--color-danger);
    --ep-radius: var(--radius-panel);
    --ep-shadow: var(--shadow-sm);
    --ep-sidebar-width: 272px;
    --ep-sidebar-collapsed-width: 76px;
    --bs-body-color: var(--color-text-primary);
    --bs-body-bg: var(--color-bg);
    --bs-border-color: var(--color-border);
}

:root[data-theme="dark"] {
    --color-bg: #0f172a;
    --color-surface: #111c2e;
    --color-surface-secondary: #17243a;
    --color-surface-hover: #17333d;
    --color-text-primary: #e8eef7;
    --color-text-secondary: #bdc9d8;
    --color-text-muted: #8fa0b5;
    --color-border: #293750;
    --color-border-strong: #40506a;
    --color-primary: #2cc7d0;
    --color-primary-hover: #50d5dc;
    --color-primary-active: #18aeb8;
    --color-primary-soft: #153941;
    --color-success: #4ade80;
    --color-success-soft: #153526;
    --color-warning: #fbbf24;
    --color-warning-soft: #3b2f17;
    --color-danger: #fb7185;
    --color-danger-soft: #3e202b;
    --color-info: #38bdf8;
    --color-info-soft: #17334a;
    --color-sidebar: #0b1220;
    --color-sidebar-hover: #152238;
    --color-sidebar-active: #153943;
    --color-sidebar-text: #d8e2ef;
    --color-sidebar-muted: #8596ab;
    --focus-ring: 0 0 0 3px rgba(44, 199, 208, .3);
    --shadow-sm: 0 1px 2px rgba(0, 0, 0, .28);
    --shadow-elevated: 0 16px 40px rgba(0, 0, 0, .38);
    --bs-body-color: var(--color-text-primary);
    --bs-body-bg: var(--color-bg);
    --bs-secondary-color: var(--color-text-secondary);
    --bs-tertiary-bg: var(--color-surface-secondary);
    --bs-border-color: var(--color-border);
}

* { box-sizing: border-box; }
html { min-height: 100%; scroll-behavior: smooth; background: var(--color-bg); }
body {
    min-height: 100vh;
    margin: 0;
    color: var(--ep-text);
    background: var(--ep-bg);
    font-family: Inter, "Segoe UI", Roboto, "Noto Sans Armenian", Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
    transition: color var(--motion-menu) var(--ease-standard), background-color var(--motion-menu) var(--ease-standard);
}
button, input, select, textarea { font: inherit; }
a { color: inherit; }
:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px; box-shadow: var(--focus-ring); }
button:disabled, .btn.disabled, .btn:disabled { cursor: not-allowed; filter: grayscale(.15); opacity: .58; box-shadow: none !important; transform: none !important; }
input[type="checkbox"], input[type="radio"] { accent-color: var(--ep-primary); }
::selection { color: var(--color-text-primary); background: var(--color-primary-soft); }

/* Application shell */
.app-shell { min-height: 100vh; }
.app-sidebar {
    position: fixed; inset: 0 auto 0 0; z-index: 1040;
    width: var(--ep-sidebar-width); height: 100vh;
    display: flex; flex-direction: column;
    color: #fff; background:
        radial-gradient(circle at 10% 0, rgba(249,115,22,.18), transparent 30%),
        linear-gradient(180deg, #172033 0%, var(--ep-sidebar) 100%);
    border-right: 1px solid rgba(255,255,255,.06);
}
.app-brand {
    min-height: 86px; padding: 20px 22px; display: flex; align-items: center; gap: 12px;
    color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.07);
}
.app-brand:hover { color: #fff; }
.app-brand-mark {
    width: 44px; height: 44px; flex: 0 0 44px; display: grid; place-items: center;
    border-radius: 13px; font-size: 1.3rem; color: #fff;
    background: linear-gradient(145deg, #fb923c, var(--ep-primary-dark));
    box-shadow: 0 10px 24px rgba(249,115,22,.24);
}
.app-brand strong { display: block; font-size: 1.03rem; letter-spacing: -.015em; }
.app-brand small { display: block; margin-top: 2px; color: var(--ep-sidebar-muted); font-size: .72rem; }
.app-nav { flex: 1; overflow-y: auto; padding: 20px 14px; scrollbar-width: thin; }
.app-nav-label { padding: 0 12px 9px; color: #667085; font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.app-nav-link {
    position: relative; display: flex; align-items: center; gap: 12px;
    min-height: 46px; margin: 3px 0; padding: 10px 12px; border-radius: 11px;
    color: #cbd5e1; text-decoration: none; font-size: .9rem; font-weight: 600;
    transition: color .18s ease, background .18s ease, transform .18s ease;
}
.app-nav-link i { width: 22px; color: #98a2b3; font-size: 1.05rem; text-align: center; transition: color .18s ease; }
.app-nav-link:hover { color: #fff; background: rgba(255,255,255,.07); transform: translateX(2px); }
.app-nav-link:hover i { color: #fdba74; }
.app-nav-link.active { color: #fff; background: linear-gradient(90deg, rgba(249,115,22,.22), rgba(249,115,22,.1)); box-shadow: inset 0 0 0 1px rgba(251,146,60,.14); }
.app-nav-link.active::before { content: ""; position: absolute; left: 0; width: 3px; height: 24px; border-radius: 0 4px 4px 0; background: #fb923c; }
.app-nav-link.active i { color: #fb923c; }
.sidebar-footer { padding: 14px; border-top: 1px solid rgba(255,255,255,.07); }
.sidebar-profile { display: flex; align-items: center; gap: 10px; padding: 8px; }
.profile-avatar, .topbar-avatar {
    display: grid; place-items: center; border-radius: 50%; color: #fff; font-weight: 800;
    background: linear-gradient(145deg, #fb923c, #ea580c);
}
.profile-avatar { width: 38px; height: 38px; flex: 0 0 38px; }
.profile-copy { min-width: 0; }
.profile-copy strong, .profile-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.profile-copy strong { color: #f8fafc; font-size: .82rem; }
.profile-copy small { margin-top: 2px; color: #98a2b3; font-size: .7rem; }
.sidebar-logout {
    width: 100%; margin-top: 6px; padding: 9px 11px; display: flex; align-items: center; justify-content: center; gap: 9px;
    border: 1px solid rgba(255,255,255,.09); border-radius: 10px; color: #cbd5e1; background: rgba(255,255,255,.035); font-weight: 650;
}
.sidebar-logout:hover { color: #fff; border-color: rgba(249,115,22,.35); background: rgba(249,115,22,.12); }

.app-main { width: calc(100% - var(--ep-sidebar-width)); min-width: 0; min-height: 100vh; margin-left: var(--ep-sidebar-width); display: flex; flex-direction: column; }
.app-topbar {
    position: sticky; top: 0; z-index: 1020; height: 78px; padding: 0 30px;
    display: flex; align-items: center; gap: 16px;
    background: rgba(255,255,255,.9); border-bottom: 1px solid rgba(228,231,236,.9);
    backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
}
.sidebar-toggle { display: none !important; }
.topbar-title { min-width: 0; flex: 1 1 auto; }
.topbar-title small { display: block; color: var(--ep-muted); font-size: .7rem; font-weight: 700; letter-spacing: .04em; }
.topbar-title h1 { margin: 2px 0 0; overflow: hidden; color: var(--ep-text); font-size: 1.15rem; font-weight: 750; letter-spacing: -.02em; text-overflow: ellipsis; white-space: nowrap; }
.topbar-actions { min-width: 0; max-width: 72%; margin-left: auto; display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.topbar-actions > .form-select { width: auto; min-width: 120px; flex: 1 1 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.topbar-actions > .language-switcher,
.topbar-actions > .topbar-avatar { flex: 0 0 auto; }
.topbar-icon, .language-current {
    height: 40px; min-width: 40px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center; gap: 7px;
    color: #344054; background: #fff; border: 1px solid var(--ep-border); border-radius: 10px; font-weight: 700;
    box-shadow: 0 1px 2px rgba(16,24,40,.03); transition: all .18s ease;
}
.topbar-icon:hover, .language-current:hover { color: var(--ep-primary-dark); border-color: #fdba74; background: var(--ep-primary-soft); }
.topbar-avatar { width: 40px; height: 40px; flex-shrink: 0; }
.language-menu { min-width: 190px; margin-top: 8px !important; border-radius: 13px; }
.language-option { width: 100%; padding: 9px 10px; display: flex; align-items: center; gap: 10px; color: #344054; background: transparent; border: 0; border-radius: 9px; font-size: .86rem; font-weight: 600; text-align: left; }
.language-option:hover, .language-option.active { color: var(--ep-primary-dark); background: var(--ep-primary-soft); }
.language-flag { font-size: 1.12rem; }
.app-content { flex: 1; min-width: 0; }
.app-footer { padding: 18px 30px 24px; color: #98a2b3; font-size: .75rem; text-align: center; }
.app-footer span { padding: 0 6px; color: #d0d5dd; }
.sidebar-backdrop { display: none; }

/* Normalize every existing application page */
.has-app-shell .app-content > section { min-height: auto !important; padding: 28px 30px 12px !important; background: transparent !important; }
.has-app-shell .app-content > section > .container,
.has-app-shell .app-content > section > .container-fluid { width: 100%; max-width: 1500px; padding: 0 !important; }
.has-app-shell .app-content h1, .has-app-shell .app-content h2, .has-app-shell .app-content h3 { color: var(--ep-text) !important; letter-spacing: -.025em; }
.has-app-shell .app-content h2 { font-size: clamp(1.45rem, 2vw, 1.9rem); }
.has-app-shell .app-content .text-accent, .has-app-shell .app-content .text-orange { color: var(--ep-primary) !important; }
.has-app-shell .app-content .bg-light { background: transparent !important; }
.has-app-shell .card {
    border: 1px solid var(--ep-border) !important; border-radius: var(--ep-radius) !important;
    background: var(--ep-surface); box-shadow: var(--ep-shadow) !important;
}
.has-app-shell .card.p-4 { padding: clamp(18px, 2.2vw, 28px) !important; }
.has-app-shell .table-responsive { border: 1px solid var(--ep-border); border-radius: 12px; background: #fff; }
.has-app-shell .table { margin: 0; vertical-align: middle; }
.has-app-shell .table > :not(caption) > * > * { padding: .85rem .9rem; border-bottom-color: #eef0f3; }
.has-app-shell .table thead th { color: #475467; background: #f8fafc !important; border-bottom: 1px solid var(--ep-border); font-size: .73rem; font-weight: 800; letter-spacing: .025em; text-transform: uppercase; white-space: nowrap; }
.has-app-shell .table tbody tr { transition: background .15s ease; }
.has-app-shell .table tbody tr:hover { background: #fffbf7; }
.has-app-shell .table td:empty::after { content: "—"; color: #c0c5ce; }
.has-app-shell .form-label { margin-bottom: 7px; color: #344054; font-size: .84rem; font-weight: 700; }
.has-app-shell .form-control, .has-app-shell .form-select {
    min-height: 42px; color: #182230; background-color: #fff; border: 1px solid #d0d5dd; border-radius: 10px;
    box-shadow: 0 1px 2px rgba(16,24,40,.02); transition: border-color .16s ease, box-shadow .16s ease;
}
.has-app-shell textarea.form-control { min-height: unset; }
.has-app-shell .form-control:focus, .has-app-shell .form-select:focus { border-color: #fb923c; box-shadow: 0 0 0 3px rgba(249,115,22,.13); }
.has-app-shell .form-control::placeholder { color: #98a2b3; }
.btn { border-radius: 10px; font-weight: 650; transition: transform .16s ease, box-shadow .16s ease, background .16s ease; }
.btn:active { transform: translateY(1px); }
.btn-accent, .btn-orange {
    color: #fff !important; background: linear-gradient(135deg, #fb923c, var(--ep-primary-dark)) !important; border-color: transparent !important;
    box-shadow: 0 5px 12px rgba(234,88,12,.18);
}
.btn-accent:hover, .btn-orange:hover { color: #fff !important; background: linear-gradient(135deg, #f97316, #c2410c) !important; box-shadow: 0 8px 18px rgba(234,88,12,.23); transform: translateY(-1px); }
.btn-outline-accent { color: var(--ep-primary-dark) !important; border-color: #fdba74 !important; background: #fff !important; }
.btn-outline-accent:hover { color: #c2410c !important; background: var(--ep-primary-soft) !important; }
.badge { border-radius: 8px; font-weight: 700; }
.modal-content { border: 0; border-radius: 18px; box-shadow: 0 24px 80px rgba(16,24,40,.18); }
.modal-header { border-bottom-color: var(--ep-border); }
.alert { border: 0; border-radius: 12px; }

.column-filter-popover {
    position: fixed;
    z-index: 1080;
    min-width: 230px;
    background: #fff;
}

.column-filter-trigger,
.result-column-filter {
    white-space: nowrap;
}
.spinner-border { width: 1.35rem; height: 1.35rem; border-width: .18em; }
.pagination .page-link { color: #475467; border-color: var(--ep-border); }
.pagination .active .page-link { color: #fff; background: var(--ep-primary); border-color: var(--ep-primary); }

/* Existing dashboard becomes a useful shortcut grid */
.has-app-shell .dashboard-section { position: static !important; }
.has-app-shell .dashboard-section > .container { text-align: left !important; }
.has-app-shell .dashboard-section .btn-logout { display: none !important; }
.has-app-shell .dashboard-section .mb-5.mt-4 { margin: 0 0 22px !important; }
.has-app-shell .dashboard-section .row { justify-content: flex-start !important; }
.has-app-shell .dashboard-section .row > [class*="col-"] { width: 25%; }
.has-app-shell .dashboard-card { height: 100%; min-height: 190px; text-align: left; overflow: hidden; }
.has-app-shell .dashboard-card .card-body { padding: 24px !important; }
.has-app-shell .dashboard-card i.fs-1 { width: 48px; height: 48px; margin-bottom: 20px !important; display: grid !important; place-items: center; border-radius: 13px; font-size: 1.35rem !important; background: var(--ep-primary-soft); }
.has-app-shell .dashboard-card:hover { border-color: #fed7aa !important; transform: translateY(-4px); box-shadow: 0 14px 35px rgba(16,24,40,.1) !important; }
.has-app-shell .dashboard-card h5 { font-size: 1rem; }
.has-app-shell .dashboard-card p { line-height: 1.55; }
.has-app-shell .footer-powered { display: none; }

/* Public and focused pages */
.public-content { min-height: 100vh; }
.public-language { position: fixed; top: 18px; right: 18px; z-index: 1080; }
.public-mode { background: #fff; }
.focus-mode { background: #f7f8fa; }
.focus-mode .public-language { top: 12px; right: 14px; }
.focus-mode .public-content > section { padding-top: 34px !important; }
.focus-mode .exam-section .container { max-width: 1120px; }
.focus-mode #exam-content { border: 1px solid var(--ep-border) !important; border-radius: 18px !important; box-shadow: var(--ep-shadow) !important; }

.exam-hero { min-height: 100vh; position: relative; overflow: hidden; background: radial-gradient(circle at 12% 18%, #fff1e5 0, transparent 28%), radial-gradient(circle at 88% 80%, #eef2ff 0, transparent 30%), linear-gradient(145deg, #fff 0%, #f8fafc 100%); }
.exam-hero::before, .exam-hero::after { content: ""; position: absolute; border-radius: 50%; filter: blur(2px); pointer-events: none; }
.exam-hero::before { width: 380px; height: 380px; top: -190px; left: -100px; background: rgba(249,115,22,.08); }
.exam-hero::after { width: 300px; height: 300px; right: -130px; bottom: -130px; background: rgba(79,70,229,.07); }
.exam-content { position: relative; z-index: 1; max-width: 760px; padding: 30px 20px; animation: fadeInUp .55s ease both; }
.text-accent { color: var(--ep-primary); }
.hover-float { transition: transform .2s ease; }
.hover-float:hover { transform: translateY(-3px); }
@keyframes fadeInUp { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 1199.98px) {
    .has-app-shell .dashboard-section .row > [class*="col-"] { width: 33.333%; }
}

@media (max-width: 991.98px) {
    .app-sidebar { transform: translateX(-100%); box-shadow: 24px 0 60px rgba(16,24,40,.2); transition: transform .23s ease; }
    .app-sidebar.open { transform: translateX(0); }
    .app-main { width: 100%; margin-left: 0; }
    .sidebar-toggle { display: inline-flex !important; }
    .sidebar-backdrop { position: fixed; inset: 0; z-index: 1035; background: rgba(16,24,40,.48); backdrop-filter: blur(2px); }
    .sidebar-backdrop.show { display: block; }
    body.sidebar-open { overflow: hidden; }
    .app-topbar { height: 70px; padding: 0 20px; }
    .has-app-shell .app-content > section { padding: 22px 20px 10px !important; }
    .has-app-shell .dashboard-section .row > [class*="col-"] { width: 50%; }
}

@media (max-width: 575.98px) {
    .app-topbar { padding: 0 14px; gap: 10px; }
    .topbar-title small { display: none; }
    .topbar-title h1 { max-width: 150px; font-size: .95rem; }
    .topbar-avatar { display: none; }
    .language-current { min-width: 42px; padding: 0 9px; }
    .language-current i { display: none; }
    .has-app-shell .app-content > section { padding: 18px 14px 8px !important; }
    .has-app-shell .app-content h2 { font-size: 1.35rem; }
    .has-app-shell .card.p-4 { padding: 17px !important; }
    .has-app-shell .dashboard-section .row > [class*="col-"] { width: 100%; }
    .has-app-shell .dashboard-card { min-height: 155px; }
    .app-footer { padding-inline: 14px; }
    .public-language { top: 10px; right: 10px; }
    .table-responsive { font-size: .83rem; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Page-level UX polish */
.app-page { animation: pageEnter .28s ease both; }
@keyframes pageEnter { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: translateY(0); } }
.has-app-shell .app-page > .container > .d-flex:first-child {
    min-height: 48px; margin-bottom: 22px !important; padding-bottom: 18px;
    border-bottom: 1px solid var(--ep-border);
}
.has-app-shell .app-page > .container > h2,
.has-app-shell .app-page > .container > h3 { margin-bottom: 20px !important; }
.has-app-shell .app-page > .container > h2 > i,
.has-app-shell .app-page > .container > h3 > i { margin-right: 8px; }
.has-app-shell .app-page .card > h5:first-child,
.has-app-shell .app-page .card-body > div:first-child h5 { color: #253047; font-weight: 760 !important; letter-spacing: -.012em; }
.has-app-shell .app-page hr { border-color: var(--ep-border); opacity: 1; }
.has-app-shell .app-page .text-muted { color: var(--ep-muted) !important; }
.has-app-shell .app-page [id$="Msg"],
.has-app-shell .app-page [id="msg"],
.has-app-shell .app-page [id="error"] { line-height: 1.55; }

/* Management pages: students, users, exams, question bank and problems */
.page-students > .container > .card,
.page-users > .container > .card,
.page-exams > .container > .card,
.page-questions > .container > .card,
.page-problems > .container > .card { position: relative; overflow: hidden; }
.page-students > .container > .card::before,
.page-users > .container > .card::before,
.page-exams > .container > .card::before,
.page-questions > .container > .card::before,
.page-problems > .container > .card::before {
    content: ""; position: absolute; inset: 0 auto 0 0; width: 3px;
    background: linear-gradient(180deg, var(--ep-primary), #fdba74); opacity: .75;
}
.page-students .card .row.g-2,
.page-users .card .row.g-2,
.page-exams .card .row.g-2 { row-gap: 12px !important; }
.page-students .card-body > .d-flex,
.page-users .card-body > .d-flex,
.page-questions .card > .d-flex,
.page-problems .card > .d-flex { padding-bottom: 14px; border-bottom: 1px solid #f0f2f5; }
.page-students .table-responsive,
.page-users .table-responsive,
.page-questions .table-responsive,
.page-problems .table-responsive,
.page-exams .table-responsive { max-height: min(64vh, 720px); overflow: auto; }
.page-students thead, .page-users thead, .page-questions thead, .page-problems thead, .page-exams thead { position: sticky; top: 0; z-index: 2; }
.page-questions .preview-box, .page-problems .preview-box { border-color: #e7eaf0 !important; background: linear-gradient(180deg, #fff, #fcfcfd) !important; }
.page-questions textarea, .page-problems .stmt-editor { line-height: 1.65; background: #fcfcfd; }
.page-questions #optionsArea > *, .page-questions #editOptionsArea > * { margin-bottom: 8px; }
.page-problems .btn-tool, .page-questions [data-ins] { min-height: 36px; }
.page-questions .question-compose-card { padding: clamp(20px,3vw,32px) !important; border: 1px solid #e7eaf0; border-radius: 22px !important; }
.compose-heading { display: flex; align-items: center; gap: 14px; padding-bottom: 20px; border-bottom: 1px solid #f0f2f5; }
.compose-icon { width: 44px; height: 44px; flex: 0 0 44px; display: grid; place-items: center; color: #fff; border-radius: 14px; background: linear-gradient(135deg,#fb923c,#ea580c); box-shadow: 0 8px 18px rgba(234,88,12,.22); font-size: 1.15rem; }
.question-editor-shell { overflow: hidden; border: 1px solid #dfe3ea; border-radius: 16px; background: #fff; box-shadow: 0 5px 18px rgba(16,24,40,.045); transition: border-color .2s,box-shadow .2s; }
.question-editor-shell:focus-within { border-color: #fb923c; box-shadow: 0 0 0 4px rgba(251,146,60,.12),0 8px 22px rgba(16,24,40,.06); }
.question-editor-toolbar { display: flex; align-items: center; gap: 6px; padding: 9px 10px; overflow-x: auto; border-bottom: 1px solid #e9ebef; background: linear-gradient(180deg,#fafbfc,#f7f8fa); scrollbar-width: thin; }
.toolbar-label { padding: 0 7px 0 3px; color: #667085; font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .045em; white-space: nowrap; }
.editor-tool { min-height: 38px !important; padding: 7px 10px; display: inline-flex; align-items: center; gap: 7px; flex: 0 0 auto; color: #344054; border: 1px solid transparent; border-radius: 9px; background: transparent; font-size: .79rem; font-weight: 700; white-space: nowrap; transition: .16s; }
.editor-tool:hover { color: #c2410c; border-color: #fed7aa; background: #fff7ed; }
.editor-tool-danger { color: #b42318; }
.editor-tool-danger i { color: #d92d20; }
.editor-tool-danger:hover { color: #b42318; border-color: #fecdca; background: #fef3f2; }
.editor-tool:active { transform: translateY(1px); }
.editor-tool i,.tool-symbol { color: #ea580c; font-size: .98rem; font-weight: 800; }
.toolbar-separator { width: 1px; height: 26px; flex: 0 0 1px; margin: 0 3px; background: #dfe3e8; }
.page-questions .question-editor-input { min-height: 155px; padding: 16px 18px; resize: vertical; border: 0 !important; border-radius: 0 !important; background: #fff !important; box-shadow: none !important; font-size: .95rem; line-height: 1.7; }
.editor-hint { padding: 9px 16px; display: flex; align-items: center; gap: 8px; color: #667085; border-top: 1px solid #f0f2f5; background: #fcfcfd; font-size: .76rem; }
.editor-hint i { color: #f97316; }.editor-hint code { padding: 1px 5px; color: #9a3412; border-radius: 5px; background: #fff1e7; }
.question-edit-toolbar { padding: 10px; border: 1px solid #e7eaf0; border-radius: 12px; background: #f8fafc; }
.question-edit-toolbar .btn { min-height: 36px; border-radius: 9px; }
.editor-modal-content { border: 0; border-radius: 20px; box-shadow: 0 24px 70px rgba(16,24,40,.18); }
.editor-modal-content > h5 { padding-bottom: 16px; border-bottom: 1px solid #eef0f3; }
@media (max-width:767.98px) { .question-editor-toolbar { padding: 8px; }.toolbar-label { display:none }.editor-tool { padding: 7px 9px }.editor-tool span:not(.tool-symbol) { display:none }.editor-tool i,.tool-symbol { font-size:1.05rem }.compose-heading { align-items:flex-start } }
.content-row-toggle { width: 100%; padding: 4px 0; display: flex; align-items: center; justify-content: space-between; gap: 10px; color: #253047; border: 0; background: transparent; text-align: left; }
.content-row-toggle:hover { color: var(--ep-primary-dark); }
.content-row-toggle .bi-chevron-down { flex: 0 0 auto; transition: transform .18s ease; }
.content-row-toggle[aria-expanded="true"] .bi-chevron-down { transform: rotate(180deg); }
.page-problems .btn-tool,.page-problems .btn-tool-danger { min-height:38px;padding:7px 10px;display:inline-flex;align-items:center;gap:6px;border:1px solid transparent;border-radius:9px;background:transparent;color:#344054;font-size:.79rem;font-weight:700;transition:.16s }
.page-problems .btn-tool:hover { color:#c2410c;border-color:#fed7aa;background:#fff7ed }.page-problems .btn-tool-danger:hover{color:#b42318;border-color:#fecdca;background:#fef3f2}
.page-problems .stmt-editor{border:0!important;border-radius:0!important;box-shadow:none!important;padding:16px 18px;line-height:1.65}.page-problems .preview-box{border-radius:16px;border:1px solid #e4e7ec;overflow:hidden}
.page-problems label.form-label:has(+ .row .stmt-editor) { margin-bottom: 0; padding: 10px 12px; border: 1px solid #e4e7ec; border-bottom: 0; border-radius: 14px 14px 0 0; background: #f8fafc; }
.page-problems label.form-label > .d-flex:has(.btn-tool) { gap: 4px !important; }
.page-problems label.form-label > .d-flex:has(.btn-tool) .btn-tool,
.page-problems label.form-label > .d-flex:has(.btn-tool) .btn-tool-danger { min-width: 38px; justify-content: center; }
.page-problems .modal-content { border: 0; border-radius: 20px; box-shadow: 0 24px 70px rgba(16,24,40,.18); }
.choice-pills{display:flex;flex-wrap:wrap;gap:8px}.choice-pills label{cursor:pointer;padding:9px 12px;border:1px solid #dfe3e8;border-radius:10px;background:#fff;color:#344054;font-size:.86rem;font-weight:650}.choice-pills label:has(input:checked){border-color:#fb923c;background:#fff7ed;color:#9a3412}.choice-pills input{margin-right:5px;accent-color:#ea580c}
.exam-result-card{transition:.18s;border:1px solid transparent!important}.exam-result-card:hover{transform:translateY(-2px);border-color:#fed7aa!important;box-shadow:0 12px 24px rgba(16,24,40,.09)!important}
.content-detail-row > td { padding: 0 14px 16px !important; background: #fbfcfd; }
.content-detail-grid { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(260px,1fr); gap: 12px; }
.content-detail-grid > div { padding: 15px; border: 1px solid #e4e7ec; border-radius: 11px; background: #fff; line-height: 1.55; }
.content-detail-grid > div:last-child { border-color: #d1fadf; background: #f6fef9; }
.content-detail-grid strong { display: block; margin-bottom: 9px; color: #344054; }

/* Settings: compact, scannable configuration groups */
.page-settings > .container { max-width: 1260px !important; }
.page-settings > .container > .card { overflow: hidden; }
.page-settings > .container > .card > .d-flex:first-child { margin: -28px -28px 24px; padding: 18px 28px; background: linear-gradient(90deg, #fff8f1, #fff); border-bottom: 1px solid #ffead8; }
.page-settings .form-check { padding: 10px 12px 10px 2.2rem; border-radius: 10px; background: #f8fafc; }
.page-settings input[type="password"] { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }

/* Exam creation and live control */
.page-exams #createExamBlock { border-color: #fed7aa !important; background: linear-gradient(145deg, #fff 65%, #fff8f1) !important; }
.page-exam-control > .container { max-width: 1060px !important; }
.page-exam-control .card { min-height: 300px; }
.page-exam-control #students { max-height: 440px; overflow-y: auto; padding: 8px; border: 1px solid #eef0f3; border-radius: 12px; background: #fafbfc; }
.page-exam-control > .container > .d-flex:last-child { gap: 12px !important; padding: 18px; border: 1px solid var(--ep-border); border-radius: 16px; background: #fff; box-shadow: var(--ep-shadow); }
.page-exam-control > .container > .d-flex:last-child .btn { min-width: 210px; min-height: 48px; border-radius: 11px !important; }

/* Results and grading workspaces */
.page-results > .container, .page-grade-student > .container { max-width: 1560px !important; }
.page-results > .container > .row { padding: 18px; border: 1px solid var(--ep-border); border-radius: 16px; background: #fff; box-shadow: var(--ep-shadow); }
.page-results .output-language-picker { min-height: 40px; padding-inline: 10px !important; border-radius: 10px !important; box-shadow: none !important; }
.page-results .results-control-panel { padding: 20px 22px !important; }
.results-actions-column { padding-top: 16px; margin-top: 4px; border-top: 1px solid #eef0f3; }
.results-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.results-actions .output-language-picker { margin-right: auto; }
.result-action { min-height: 40px; padding: 8px 12px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; color: #344054; border: 1px solid #d0d5dd; border-radius: 9px; background: #fff; font-size: .82rem; font-weight: 700; white-space: nowrap; transition: border-color .16s,background .16s,color .16s,box-shadow .16s; }
.result-action:hover:not(:disabled) { color: #1d2939; border-color: #98a2b3; background: #f9fafb; box-shadow: 0 3px 8px rgba(16,24,40,.07); }
.result-action i { color: #667085; font-size: .95rem; }
.result-action-primary { color: #175cd3; border-color: #84adff; background: #f5f8ff; }
.result-action-primary i { color: #175cd3; }
.result-action-accent { color: #b54708; border-color: #fdba74; background: #fffaf5; }
.result-action-accent i { color: #ea580c; }
.result-action:disabled { opacity: .5; background: #f9fafb; }
@media (max-width:991.98px) { .results-actions .output-language-picker { width: 100%; margin: 0 0 4px; }.result-action { flex: 1 1 210px; } }
.page-results #resultsRoot:empty::before {
    content: "Ընտրեք քննությունը՝ արդյունքները դիտելու համար"; min-height: 220px; display: grid; place-items: center;
    color: #98a2b3; border: 1px dashed #d0d5dd; border-radius: 16px; background: rgba(255,255,255,.6);
}
.page-grade-student > .container > .d-flex:first-child { position: sticky; top: 92px; z-index: 10; padding: 16px 18px; border: 1px solid var(--ep-border); border-radius: 15px; background: rgba(255,255,255,.94); box-shadow: var(--ep-shadow); backdrop-filter: blur(12px); }
.page-grade-student #root > .card { margin-bottom: 18px !important; }
.page-grade-student textarea { line-height: 1.6; }
.page-grade-student .monaco-editor { border-radius: 10px; overflow: hidden; }
.grading-item-toggle { width: 100%; padding: 12px 14px; display: flex; align-items: center; gap: 12px; color: #253047; border: 1px solid #e5e7eb; border-radius: 12px; background: #f8fafc; }
.grading-item-toggle:hover { border-color: #fdba74; background: #fffaf5; }
.grading-item-toggle small { display: block; margin-top: 2px; color: #667085; font-size: .72rem; font-weight: 500; }
.grading-item-toggle .bi-chevron-down { transition: transform .18s ease; }
.grading-item-toggle[aria-expanded="true"] .bi-chevron-down { transform: rotate(180deg); }
.grading-number { width: 32px; height: 32px; flex: 0 0 32px; display: grid; place-items: center; color: #fff; border-radius: 9px; background: linear-gradient(135deg,#fb923c,#ea580c); font-weight: 800; }
.grading-max { padding: 5px 9px; color: #9a3412; border: 1px solid #fed7aa; border-radius: 999px; background: #fff7ed; font-size: .75rem; font-weight: 750; white-space: nowrap; }
.grading-details { margin-top: 10px; }
.grading-details.show, .grading-details.collapsing { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(240px,1fr); gap: 10px; }
.grading-requirement, .grading-rubric { padding: 14px; border-radius: 11px; line-height: 1.55; }
.grading-requirement { color: #344054; border: 1px solid #e4e7ec; background: #fff; }
.grading-rubric { color: #475467; border: 1px solid #d1fadf; background: #f6fef9; }
.grading-requirement > span, .grading-rubric > span { display: block; margin-bottom: 7px; color: #182230; font-size: .75rem; font-weight: 800; text-transform: uppercase; letter-spacing: .035em; }
.rubric-side { height: 100%; min-height: 260px; padding: 16px; overflow: auto; color: #344054; border: 1px solid #d1fadf; border-radius: 11px; background: linear-gradient(145deg,#f6fef9,#fff); font-size: .84rem; line-height: 1.55; }
.rubric-side > strong { display: block; margin-bottom: 10px; color: #067647; }
.rubric-max { margin-top: 14px; padding-top: 10px; color: #067647; border-top: 1px solid #a6f4c5; font-weight: 800; }
.score-field-label { margin: 0; color: #475467; font-size: .72rem; font-weight: 750; white-space: nowrap; }

/* Package and synchronization pages */
.page-download > .container, .page-package-download > .container { max-width: 1040px !important; }
.page-download .safe-block, .page-package-download .safe-block {
    padding: 20px; border: 1px solid #e8ebef; border-radius: 14px; background: linear-gradient(135deg, #fbfcfd, #fff);
}
.page-download .safe-block:hover, .page-package-download .safe-block:hover { border-color: #fdba74; box-shadow: 0 8px 24px rgba(16,24,40,.05); }
.page-package-download .sync-block { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.page-download pre, .page-package-download pre { margin: 10px 0 0; max-height: 240px; overflow: auto; color: #912018; white-space: pre-wrap; font-size: .78rem; }

/* Student journey */
.page-student-exams > .container { max-width: 960px !important; }
.page-student-exams #examList { display: grid; gap: 14px; }
.page-student-exams .card-exam { margin: 0 !important; border-left: 4px solid var(--ep-primary) !important; }
.page-student-exams .card-exam:hover { transform: translateY(-2px); border-color: var(--color-primary) !important; box-shadow: 0 14px 30px color-mix(in srgb,var(--color-primary) 14%,transparent) !important; }
.page-student-exams .btn-main { color: #fff; background: var(--color-primary); box-shadow: 0 5px 12px color-mix(in srgb,var(--color-primary) 20%,transparent); }
.page-student-connected > .container { max-width: 700px !important; }
.page-student-connected > .container > h3 { margin-top: 30px; font-size: 1.65rem; }
.page-student-connected .card { max-width: 580px !important; min-height: 240px; }
.page-student-connected .student-item { padding: 10px 8px; border-radius: 8px; border-bottom: 0 !important; }
.page-student-connected .student-item:nth-child(odd) { background: #f8fafc; }
.page-student-result > .container { max-width: 760px !important; }
.page-student-result #resultCard { max-width: 680px !important; overflow: hidden; }
.page-student-result #resultCard::before { content: ""; display: block; height: 5px; margin: -28px -28px 24px; background: linear-gradient(90deg, var(--ep-primary), #fbbf24); }
.page-student-result .progress { height: 14px !important; overflow: hidden; background: #f2f4f7; }
.page-student-result .table th { width: 60%; color: #475467; font-weight: 650; text-align: left; }
.page-student-take > .container { max-width: 1180px !important; }
.page-student-take > .container > .d-flex:first-child { padding: 14px 18px; border: 1px solid var(--ep-border); border-radius: 14px; background: #fff; box-shadow: var(--ep-shadow); }
.page-student-take #exam-content { padding: clamp(18px, 3vw, 34px) !important; }
.page-student-take #theory-list > .card, .page-student-take #problem-list > .card { border: 1px solid #e7eaf0 !important; box-shadow: 0 4px 14px rgba(16,24,40,.045) !important; }
.page-student-take .option-tile { min-height: 46px; padding: 10px 12px !important; border-color: #e7eaf0; background: #fff; }
.page-student-take .option-tile:hover { border-color: #fdba74; background: #fff9f4; }
.page-student-take .programming-icon { color: #475467; font-size: .82rem; vertical-align: middle; opacity: .8; }
.page-student-take .programming-icon:hover { color: var(--ep-primary); opacity: 1; }
.page-student-exams, .page-student-connected, .page-student-result { min-height: calc(100vh - 40px); background: linear-gradient(180deg, var(--color-surface-secondary) 0%, var(--color-surface) 55%); }
.page-student-exams > .container, .page-student-connected > .container, .page-student-result > .container { padding-left: 16px; padding-right: 16px; }
.page-student-take #btnSubmit { position: sticky; bottom: 12px; z-index: 5; min-height: 52px; }
.page-student-take #autosave-status { padding-left: 4px; }

/* Public landing and login */
.app-dialog{position:fixed;inset:0;z-index:11000;display:grid;place-items:center;padding:20px;visibility:hidden;opacity:0;transition:.2s}.app-dialog.show{visibility:visible;opacity:1}.app-dialog-backdrop{position:absolute;inset:0;background:rgba(16,24,40,.56);backdrop-filter:blur(6px)}.app-dialog-panel{position:relative;width:min(430px,100%);padding:32px;border:1px solid rgba(255,255,255,.8);border-radius:24px;background:#fff;box-shadow:0 30px 80px rgba(16,24,40,.3);text-align:center;transform:translateY(14px) scale(.97);transition:.2s}.app-dialog.show .app-dialog-panel{transform:none}.app-dialog-icon{width:58px;height:58px;margin:0 auto 18px;display:grid;place-items:center;border-radius:18px;color:#fff;background:linear-gradient(135deg,#ff9b42,#ff6b00);font-size:1.65rem;box-shadow:0 10px 25px rgba(255,122,0,.25)}.app-dialog h3{margin-bottom:9px;color:#101828;font-size:1.25rem;font-weight:800}.app-dialog p{margin-bottom:24px;color:#667085;line-height:1.6;white-space:pre-line}.app-dialog-actions{display:flex;justify-content:center;gap:10px}.app-dialog-actions .btn{min-width:110px;border-radius:11px;font-weight:700}
.public-mode .page-home .exam-content { max-width: 820px; padding: 54px 38px; border: 1px solid rgba(255,255,255,.8); border-radius: 28px; background: rgba(255,255,255,.76); box-shadow: 0 30px 90px rgba(16,24,40,.12); backdrop-filter: blur(14px); }
.public-mode .page-home h1 { color: #101828; font-size: clamp(2.15rem, 5vw, 4rem); letter-spacing: -.045em; }
.public-mode .page-home .lead { color: #475467 !important; line-height: 1.75; }
.public-mode .page-home ul { max-width: 700px; margin-inline: auto; padding: 20px 24px 20px 42px; border: 1px solid #ffead8; border-radius: 16px; background: #fffaf6; text-align: left; }
.public-mode .page-login { min-height: 100vh; padding: 80px 18px 30px; background: radial-gradient(circle at 15% 20%, #fff0e3 0, transparent 30%), radial-gradient(circle at 85% 80%, #eef2ff 0, transparent 32%), #f8fafc; }
.public-mode .page-login .card, .public-mode .page-login .login-card { border: 1px solid rgba(255,255,255,.9) !important; border-radius: 24px !important; box-shadow: 0 30px 90px rgba(16,24,40,.14) !important; }
.public-mode .page-login .form-control { min-height: 48px; border-radius: 11px; }
.public-mode .page-login .btn-accent { min-height: 48px; }

@media (max-width: 991.98px) {
    .page-grade-student > .container > .d-flex:first-child { position: static; }
    .page-results > .container > .row > [class*="col-"] { width: 100%; }
    .page-results > .container > .row > .text-end { margin-top: 14px; text-align: left !important; }
    .page-results > .container > .row .d-flex { justify-content: flex-start !important; }
    .page-package-download .sync-block { align-items: stretch; flex-direction: column; }
    .page-package-download .sync-block .btn { width: 100%; }
}

@media (max-width: 767.98px) {
    .has-app-shell .app-page > .container > .d-flex:first-child { align-items: stretch !important; flex-direction: column; }
    .has-app-shell .app-page > .container > .d-flex:first-child > .d-flex { width: 100%; }
    .has-app-shell .app-page > .container > .d-flex:first-child .btn { flex: 1; }
    .page-exam-control > .container > .d-flex:last-child { align-items: stretch; flex-direction: column; }
    .page-exam-control > .container > .d-flex:last-child .btn { width: 100%; min-width: 0; }
    .page-results .output-language-picker { width: 100%; }
    .page-results .output-language-picker select { flex: 1; }
    .page-student-take #btnSubmit { bottom: 8px; }
    .grading-details.show, .grading-details.collapsing { grid-template-columns: 1fr; }
    .grading-item-toggle { align-items: flex-start; flex-wrap: wrap; }
    .grading-max { margin-left: 44px; }
    .content-detail-grid { grid-template-columns: 1fr; }
}

@media (max-width: 575.98px) {
    .public-mode .page-home .exam-content { margin: 72px 12px 24px; padding: 32px 20px; border-radius: 20px; }
    .public-mode .page-home h1 { font-size: 2rem; }
    .page-settings > .container > .card > .d-flex:first-child { margin: -17px -17px 18px; padding: 15px 17px; }
    .page-student-result #resultCard::before { margin: -17px -17px 18px; }
    .page-student-take #exam-content { border-radius: 14px !important; }
}

/* ================================================================
   ExamPlatform design-system foundation (2026)
   These semantic overrides keep legacy page markup operational while
   shared primitives and pages are migrated incrementally.
   ================================================================ */

.app-sidebar {
    background: var(--color-sidebar);
    border-right-color: color-mix(in srgb, var(--color-sidebar-text) 10%, transparent);
    transition: width var(--motion-panel) var(--ease-standard), transform var(--motion-panel) var(--ease-standard);
}

.app-brand {
    min-height: 72px;
    padding: var(--space-4) var(--space-5);
    border-bottom-color: color-mix(in srgb, var(--color-sidebar-text) 10%, transparent);
}

.app-brand-wordmark { min-width: 0; }
.app-brand-wordmark strong { color: #f1f5f9; font-size: 1.05rem; font-weight: 750; letter-spacing: -.02em; }
.app-brand-wordmark small { color: var(--color-sidebar-muted); }
.app-brand-short { display: none; color: #e6f7f7; font-size: .92rem; font-weight: 800; letter-spacing: -.03em; }

.app-nav { padding: var(--space-3); }
.app-nav-label {
    margin-top: var(--space-5);
    padding: 0 var(--space-3) var(--space-2);
    color: var(--color-sidebar-muted);
    font-size: .65rem;
    letter-spacing: .1em;
}
.app-nav-label:first-child { margin-top: var(--space-2); }
.app-nav-link {
    min-height: 42px;
    margin: 2px 0;
    padding: 9px var(--space-3);
    color: var(--color-sidebar-text);
    border-radius: var(--radius-control);
    font-size: .85rem;
    font-weight: 600;
    transition: color var(--motion-micro) var(--ease-standard), background-color var(--motion-micro) var(--ease-standard);
}
.app-nav-link i { color: var(--color-sidebar-muted); transition: color var(--motion-micro) var(--ease-standard); }
.app-nav-link:hover { color: #f8fafc; background: var(--color-sidebar-hover); transform: none; }
.app-nav-link:hover i { color: #d3f5f5; }
.app-nav-link.active { color: #f8fafc; background: var(--color-sidebar-active); box-shadow: none; }
.app-nav-link.active::before { left: 1px; width: 2px; height: 22px; background: var(--color-primary); }
.app-nav-link.active i { color: #67e2e6; }

.app-main {
    transition: width var(--motion-panel) var(--ease-standard), margin-left var(--motion-panel) var(--ease-standard);
}
.app-topbar {
    height: 68px;
    padding: 0 var(--space-6);
    background: color-mix(in srgb, var(--color-surface) 94%, transparent);
    border-bottom-color: var(--color-border);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}
.sidebar-toggle { display: inline-flex !important; }
.topbar-title small { color: var(--color-text-muted); }
.topbar-title h1 { color: var(--color-text-primary); font-size: 1.08rem; }
.topbar-actions { max-width: 75%; gap: var(--space-2); }
.context-switcher { display: none; }
.context-switcher-organization { max-width: 220px; }
.context-switcher-subject { max-width: 180px; }
.topbar-icon,
.language-current {
    height: 38px;
    min-width: 38px;
    padding: 0 10px;
    color: var(--color-text-secondary);
    background: var(--color-surface);
    border-color: var(--color-border);
    border-radius: var(--radius-control);
    box-shadow: var(--shadow-sm);
    transition: color var(--motion-micro) var(--ease-standard), background-color var(--motion-micro) var(--ease-standard), border-color var(--motion-micro) var(--ease-standard);
}
.topbar-icon:hover,
.language-current:hover { color: var(--color-primary-hover); border-color: var(--color-primary); background: var(--color-primary-soft); }

.account-menu { flex: 0 0 auto; }
.account-trigger {
    min-height: 42px;
    padding: 3px 7px 3px 3px;
    display: flex;
    align-items: center;
    gap: 9px;
    color: var(--color-text-primary);
    border: 1px solid transparent;
    border-radius: var(--radius-control);
    background: transparent;
    transition: background-color var(--motion-micro) var(--ease-standard), border-color var(--motion-micro) var(--ease-standard);
}
.account-trigger:hover,
.account-trigger[aria-expanded="true"] { border-color: var(--color-border); background: var(--color-surface-secondary); }
.topbar-avatar {
    width: 36px;
    height: 36px;
    color: #eaffff;
    background: var(--color-primary-active);
    border-radius: 50%;
    box-shadow: none;
}
.account-trigger-copy { min-width: 0; max-width: 150px; text-align: left; }
.account-trigger-copy strong,
.account-trigger-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-trigger-copy strong { color: var(--color-text-primary); font-size: .78rem; font-weight: 700; }
.account-trigger-copy small { margin-top: 1px; color: var(--color-text-muted); font-size: .67rem; }
.account-chevron { color: var(--color-text-muted); font-size: .7rem; transition: transform var(--motion-menu) var(--ease-standard); }
.account-trigger[aria-expanded="true"] .account-chevron { transform: rotate(180deg); }
.account-dropdown,
.language-menu {
    min-width: 230px;
    padding: var(--space-2);
    color: var(--color-text-primary);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-panel);
    box-shadow: var(--shadow-elevated);
    animation: menuEnter var(--motion-menu) var(--ease-enter);
}
@keyframes menuEnter { from { opacity: 0; transform: translateY(-2px); } to { opacity: 1; transform: translateY(0); } }
.account-dropdown-header { padding: var(--space-2) var(--space-3); }
.account-dropdown-header strong,
.account-dropdown-header span,
.account-dropdown-header small { display: block; overflow-wrap: anywhere; }
.account-dropdown-header strong { color: var(--color-text-primary); font-size: .86rem; }
.account-dropdown-header span { margin-top: 2px; color: var(--color-text-secondary); font-size: .74rem; }
.account-dropdown-header small { margin-top: var(--space-2); color: var(--color-text-muted); font-size: .7rem; }
.account-dropdown .dropdown-divider { border-color: var(--color-border); }
.account-dropdown .dropdown-item,
.language-option {
    min-height: 38px;
    padding: var(--space-2) 10px;
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--color-text-secondary);
    border-radius: var(--radius-sm);
    font-size: .82rem;
    font-weight: 600;
}
.account-dropdown .dropdown-item i { width: 18px; color: var(--color-text-muted); text-align: center; }
.account-dropdown .dropdown-item:hover,
.account-dropdown .dropdown-item:focus,
.language-option:hover,
.language-option.active { color: var(--color-primary-hover); background: var(--color-primary-soft); }
.account-dropdown .account-logout { color: var(--color-danger); }
.account-dropdown .account-logout i { color: var(--color-danger); }
.account-dropdown .account-logout:hover { color: var(--color-danger); background: var(--color-danger-soft); }

.app-footer { color: var(--color-text-muted); }
.app-footer span { color: var(--color-border-strong); }

/* Shared Bootstrap-compatible primitives */
.has-app-shell .card,
.has-app-shell .table-responsive,
.modal-content,
.app-dialog-panel {
    color: var(--color-text-primary);
    background: var(--color-surface);
    border-color: var(--color-border) !important;
}
.has-app-shell .card { border-radius: var(--radius-panel) !important; box-shadow: var(--shadow-sm) !important; }
.has-app-shell .table-responsive { border-radius: var(--radius-panel); background: var(--color-surface); }
.has-app-shell .table { --bs-table-color: var(--color-text-primary); --bs-table-bg: var(--color-surface); --bs-table-border-color: var(--color-border); }
.has-app-shell .table > :not(caption) > * > * { padding: .72rem .8rem; border-bottom-color: var(--color-border); }
.has-app-shell .table thead th {
    color: var(--color-text-secondary);
    background: var(--color-surface-secondary) !important;
    border-bottom-color: var(--color-border);
}
.has-app-shell .table tbody tr:hover > * { --bs-table-bg-state: var(--color-surface-hover); }
.has-app-shell .form-label { color: var(--color-text-secondary); }
.has-app-shell .form-control,
.has-app-shell .form-select {
    color: var(--color-text-primary);
    background-color: var(--color-surface);
    border-color: var(--color-border-strong);
    border-radius: var(--radius-control);
    box-shadow: var(--shadow-sm);
}
.has-app-shell .form-control:focus,
.has-app-shell .form-select:focus { border-color: var(--color-primary); box-shadow: var(--focus-ring); }
.has-app-shell .form-control::placeholder { color: var(--color-text-muted); }
.has-app-shell .form-control:disabled,
.has-app-shell .form-select:disabled { color: var(--color-text-muted); background: var(--color-surface-secondary); }
.btn { border-radius: var(--radius-control); transition: color var(--motion-micro) var(--ease-standard), background-color var(--motion-micro) var(--ease-standard), border-color var(--motion-micro) var(--ease-standard), box-shadow var(--motion-micro) var(--ease-standard); }
.btn:hover { transform: none; }
.btn:active { transform: none; }
.btn-accent,
.btn-orange {
    color: #f8ffff !important;
    background: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
    box-shadow: none;
}
.btn-accent:hover,
.btn-orange:hover { color: #fff !important; background: var(--color-primary-hover) !important; border-color: var(--color-primary-hover) !important; box-shadow: none; transform: none; }
.btn-outline-accent,
.btn-outline-orange { color: var(--color-primary-hover) !important; border-color: var(--color-primary) !important; background: transparent !important; }
.btn-outline-accent:hover,
.btn-outline-orange:hover { color: var(--color-text-primary) !important; background: var(--color-primary-soft) !important; }
.pagination .page-link { color: var(--color-text-secondary); background: var(--color-surface); border-color: var(--color-border); }
.pagination .page-link:hover { color: var(--color-primary-hover); background: var(--color-primary-soft); }
.pagination .active .page-link { color: #fff; background: var(--color-primary); border-color: var(--color-primary); }
.modal-content { border-radius: var(--radius-dialog); box-shadow: var(--shadow-elevated); }
.modal-header,
.modal-footer { border-color: var(--color-border); }
.dropdown-menu { color: var(--color-text-primary); background: var(--color-surface); border-color: var(--color-border); }
.dropdown-item { color: var(--color-text-secondary); }
.dropdown-item:hover,
.dropdown-item:focus { color: var(--color-text-primary); background: var(--color-surface-secondary); }
.app-dialog-panel { border-radius: var(--radius-dialog); box-shadow: var(--shadow-elevated); transform: translateY(6px); }
.app-dialog.show .app-dialog-panel { transform: translateY(0); }
.app-dialog-backdrop { background: rgba(2, 6, 23, .58); backdrop-filter: none; }
.app-dialog-icon { color: var(--color-primary); background: var(--color-primary-soft); border-radius: var(--radius-panel); box-shadow: none; }
.app-dialog h3 { color: var(--color-text-primary); }
.app-dialog p { color: var(--color-text-secondary); }
.alert { border: 1px solid var(--color-border); border-radius: var(--radius-control); }
.alert-success { color: var(--color-success); background: var(--color-success-soft); border-color: color-mix(in srgb, var(--color-success) 28%, var(--color-border)); }
.alert-warning { color: var(--color-warning); background: var(--color-warning-soft); border-color: color-mix(in srgb, var(--color-warning) 28%, var(--color-border)); }
.alert-danger { color: var(--color-danger); background: var(--color-danger-soft); border-color: color-mix(in srgb, var(--color-danger) 28%, var(--color-border)); }
.alert-info { color: var(--color-info); background: var(--color-info-soft); border-color: color-mix(in srgb, var(--color-info) 28%, var(--color-border)); }

/* Dark mode compatibility for legacy page-local surfaces. */
:root[data-theme="dark"] .has-app-shell .bg-light,
:root[data-theme="dark"] .focus-mode .bg-light,
:root[data-theme="dark"] .has-app-shell [class*="bg-white"] { background-color: var(--color-bg) !important; }
:root[data-theme="dark"] .has-app-shell .text-dark,
:root[data-theme="dark"] .has-app-shell h1,
:root[data-theme="dark"] .has-app-shell h2,
:root[data-theme="dark"] .has-app-shell h3,
:root[data-theme="dark"] .has-app-shell h4,
:root[data-theme="dark"] .has-app-shell h5,
:root[data-theme="dark"] .has-app-shell h6 { color: var(--color-text-primary) !important; }
:root[data-theme="dark"] .has-app-shell .text-muted { color: var(--color-text-muted) !important; }
:root[data-theme="dark"] .has-app-shell .btn-light,
:root[data-theme="dark"] .has-app-shell .btn-outline-secondary,
:root[data-theme="dark"] .has-app-shell .btn-outline-dark { color: var(--color-text-secondary); background: var(--color-surface-secondary); border-color: var(--color-border-strong); }
:root[data-theme="dark"] .has-app-shell .border,
:root[data-theme="dark"] .has-app-shell .border-top,
:root[data-theme="dark"] .has-app-shell .border-bottom { border-color: var(--color-border) !important; }
:root[data-theme="dark"] .has-app-shell .preview-box,
:root[data-theme="dark"] .has-app-shell .live-preview,
:root[data-theme="dark"] .has-app-shell .preview-body,
:root[data-theme="dark"] .has-app-shell .question-editor-shell,
:root[data-theme="dark"] .has-app-shell .question-editor-input,
:root[data-theme="dark"] .has-app-shell .question-editor-toolbar,
:root[data-theme="dark"] .has-app-shell .editor-hint,
:root[data-theme="dark"] .has-app-shell .grading-item-toggle,
:root[data-theme="dark"] .has-app-shell .grading-requirement,
:root[data-theme="dark"] .has-app-shell .grading-rubric,
:root[data-theme="dark"] .has-app-shell .rubric-side,
:root[data-theme="dark"] .has-app-shell .content-detail-grid > div,
:root[data-theme="dark"] .has-app-shell .safe-block,
:root[data-theme="dark"] .has-app-shell .choice-pills label {
    color: var(--color-text-primary) !important;
    background: var(--color-surface) !important;
    border-color: var(--color-border) !important;
}
:root[data-theme="dark"] .has-app-shell .question-editor-toolbar,
:root[data-theme="dark"] .has-app-shell .editor-hint,
:root[data-theme="dark"] .has-app-shell .grading-item-toggle,
:root[data-theme="dark"] .has-app-shell .content-detail-row > td { background: var(--color-surface-secondary) !important; }
:root[data-theme="dark"] .has-app-shell .btn-close { filter: invert(1) grayscale(1); }
:root[data-theme="dark"] .has-app-shell pre,
:root[data-theme="dark"] .has-app-shell code { color: #fda4af; background: var(--color-surface-secondary); }

@media (min-width: 992px) {
    body.sidebar-collapsed .app-sidebar { width: var(--ep-sidebar-collapsed-width); }
    body.sidebar-collapsed .app-main { width: calc(100% - var(--ep-sidebar-collapsed-width)); margin-left: var(--ep-sidebar-collapsed-width); }
    body.sidebar-collapsed .app-brand { justify-content: center; padding-inline: var(--space-2); }
    body.sidebar-collapsed .app-brand-wordmark,
    body.sidebar-collapsed .app-nav-label,
    body.sidebar-collapsed .app-nav-link > span { display: none; }
    body.sidebar-collapsed .app-brand-short { display: inline; }
    body.sidebar-collapsed .app-nav { padding-inline: 10px; }
    body.sidebar-collapsed .app-nav-link { justify-content: center; padding-inline: var(--space-2); }
    body.sidebar-collapsed .app-nav-link i { width: 24px; margin: 0; }
    body.sidebar-collapsed .app-nav-link.active::before { left: -2px; }
}

@media (max-width: 991.98px) {
    .app-sidebar { width: min(292px, 88vw); }
    .app-topbar { padding-inline: var(--space-4); }
    .topbar-actions { max-width: none; }
}

@media (max-width: 767.98px) {
    .account-trigger-copy,
    .account-chevron { display: none; }
    .account-trigger { padding-right: 3px; }
    .context-switcher { max-width: 150px; }
}

@media (max-width: 575.98px) {
    .app-topbar { height: 62px; }
    .topbar-title { display: none; }
    .topbar-actions { width: 100%; }
    .context-switcher { min-width: 0 !important; max-width: 108px; }
}

@media (prefers-reduced-motion: reduce) {
    .account-dropdown,
    .language-menu { animation: none; }
}

.app-toast-region {
    position: fixed;
    top: 80px;
    right: var(--space-4);
    z-index: 12000;
    width: min(400px, calc(100vw - 32px));
    display: grid;
    gap: var(--space-2);
    pointer-events: none;
}
.app-toast {
    padding: var(--space-3);
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr) 32px;
    gap: var(--space-3);
    align-items: start;
    color: var(--color-text-primary);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-panel);
    background: var(--color-surface);
    box-shadow: var(--shadow-elevated);
    opacity: 0;
    transform: translateX(10px);
    transition: opacity 180ms var(--ease-enter), transform 180ms var(--ease-enter);
    pointer-events: auto;
}
.app-toast.is-visible { opacity: 1; transform: translateX(0); }
.app-toast.is-leaving { opacity: 0; transform: translateX(8px); transition-duration: 150ms; }
.app-toast-success { background: var(--color-success-soft); border-color: color-mix(in srgb, var(--color-success) 28%, var(--color-border)); }
.app-toast-error { background: var(--color-danger-soft); border-color: color-mix(in srgb, var(--color-danger) 28%, var(--color-border)); }
.app-toast-warning { background: var(--color-warning-soft); border-color: color-mix(in srgb, var(--color-warning) 28%, var(--color-border)); }
.app-toast-info { background: var(--color-info-soft); border-color: color-mix(in srgb, var(--color-info) 28%, var(--color-border)); }
.app-toast-success .app-toast-icon { color: var(--color-success); }
.app-toast-error .app-toast-icon { color: var(--color-danger); }
.app-toast-warning .app-toast-icon { color: var(--color-warning); }
.app-toast-info .app-toast-icon { color: var(--color-info); }
.app-toast-copy strong { display: block; font-size: .85rem; }
.app-toast-copy p { margin: 3px 0 0; color: var(--color-text-secondary); font-size: .78rem; line-height: 1.45; }
.app-toast-close { width: 32px; height: 32px; display: grid; place-items: center; color: var(--color-text-muted); border: 0; border-radius: var(--radius-sm); background: transparent; }
.app-toast-close:hover { color: var(--color-text-primary); background: color-mix(in srgb, var(--color-text-primary) 8%, transparent); }
@media (max-width: 575.98px) { .app-toast-region { top: 72px; } }
@media (prefers-reduced-motion: reduce) { .app-toast { transform: none; } }

/* Students reference data workspace */
.students-workspace { padding: var(--space-6) !important; }
.students-workspace > .container-fluid { max-width: 1600px !important; }
.students-page-header { min-height: 58px; display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5); }
.students-page-header h2 { margin:0;font-size:1.65rem;font-weight:750; }.students-page-header p { margin:4px 0 0;color:var(--color-text-muted);font-size:.88rem; }
.students-primary-action { display:inline-flex;align-items:center;gap:8px;white-space:nowrap; }
.students-context-tabs { display:flex;gap:var(--space-5);border-bottom:1px solid var(--color-border); }
.students-context-tab { position:relative;padding:10px 2px;color:var(--color-text-secondary);border:0;background:transparent;font-size:.84rem;font-weight:650; }
.students-context-tab::after { content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:transparent; }.students-context-tab.active { color:var(--color-primary-hover); }.students-context-tab.active::after { background:var(--color-primary); }
.students-tab-count,.students-filter-count { margin-left:5px;padding:2px 6px;color:var(--color-text-muted);border-radius:999px;background:var(--color-surface-secondary);font-size:.68rem; }
.students-toolbar { padding:var(--space-4) 0 var(--space-3);display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap; }
.students-search { position:relative;flex:1 1 390px;max-width:600px; }.students-search>i { position:absolute;left:12px;top:50%;color:var(--color-text-muted);transform:translateY(-50%); }.students-search input { width:100%;height:40px;padding:0 40px;color:var(--color-text-primary);border:1px solid var(--color-border-strong);border-radius:var(--radius-control);background:var(--color-surface); }.students-search input:focus { border-color:var(--color-primary);outline:0;box-shadow:var(--focus-ring); }
.students-search-clear { position:absolute;right:5px;top:4px;width:32px;height:32px;color:var(--color-text-muted);border:0;border-radius:6px;background:transparent; }.students-search-clear:hover{background:var(--color-surface-secondary)}
.students-class-filter { width:190px!important;min-height:40px!important; }.btn-ghost { color:var(--color-text-secondary);border-color:transparent;background:transparent; }.btn-ghost:hover{color:var(--color-text-primary);background:var(--color-surface-secondary)}
.students-actions-menu .dropdown-item { gap:10px; }.students-actions-menu i { width:18px;color:var(--color-text-muted); }.students-reload{width:40px;height:40px;padding:0;}
.students-advanced-filters { margin-bottom:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface);animation:menuEnter var(--motion-menu) var(--ease-enter); }
.students-advanced-header,.students-advanced-actions { display:flex;align-items:center;justify-content:space-between;gap:var(--space-3); }.students-advanced-header span{display:block;margin-top:2px;color:var(--color-text-muted);font-size:.75rem}.students-filter-grid{margin:var(--space-4) 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.students-filter-field label,.students-file-field label,.form-field>label{display:block;margin-bottom:6px;color:var(--color-text-secondary);font-size:.8rem;font-weight:650}.students-filter-field>div{display:grid;grid-template-columns:140px 1fr;gap:6px}.students-advanced-actions{justify-content:flex-end}
.students-active-filters { display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:var(--space-3); }.student-filter-chip{padding:5px 8px;display:inline-flex;align-items:center;gap:5px;color:var(--color-primary-hover);border:1px solid color-mix(in srgb,var(--color-primary) 35%,var(--color-border));border-radius:999px;background:var(--color-primary-soft);font-size:.72rem}.students-clear-filters{padding:5px 7px;color:var(--color-text-muted);border:0;background:transparent;font-size:.72rem;text-decoration:underline}
.students-bulk-bar { min-height:48px;margin-bottom:var(--space-3);padding:8px 12px;display:flex;align-items:center;gap:var(--space-3);border:1px solid color-mix(in srgb,var(--color-primary) 35%,var(--color-border));border-radius:var(--radius-control);background:var(--color-primary-soft);font-size:.8rem; }
.students-table-panel { border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface);box-shadow:var(--shadow-sm); }.students-table-shell{max-height:min(68vh,760px);overflow:auto}.students-table{margin:0;min-width:840px}.students-table thead{position:sticky;top:0;z-index:3}.students-table th{height:42px!important;padding:.6rem .75rem!important;font-size:.7rem!important}.students-table td{height:50px;padding:.55rem .75rem!important;font-size:.8rem}.students-selection-column{width:42px;text-align:center}.students-number-column{width:54px;color:var(--color-text-muted)}.students-actions-column{width:54px;text-align:right}.student-name-cell{display:flex;align-items:center;gap:10px}.student-name-cell strong{font-weight:680}.student-initial{width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;color:var(--color-primary-hover);border-radius:50%;background:var(--color-primary-soft);font-size:.72rem;font-weight:750}.student-email{color:var(--color-text-secondary)}.student-class-value{padding:3px 7px;border-radius:6px;background:var(--color-surface-secondary)}.student-empty-value{color:var(--color-text-muted)}.student-row-action{width:32px;height:32px;color:var(--color-text-secondary);border:1px solid transparent;border-radius:6px;background:transparent}.student-row-action:hover,.student-row-action[aria-expanded=true]{border-color:var(--color-border);background:var(--color-surface-secondary)}.students-row-menu-popover{position:fixed;z-index:1100;min-width:230px;padding:6px;color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface);box-shadow:var(--shadow-elevated)}.students-row-menu-popover button{width:100%;padding:8px 10px;display:flex;align-items:center;gap:9px;color:var(--color-text-secondary);border:0;border-radius:6px;background:transparent;font-size:.78rem;text-align:left}.students-row-menu-popover button i{width:16px;color:var(--color-text-muted)}.students-row-menu-popover button:hover,.students-row-menu-popover button:focus-visible{outline:0;color:var(--color-primary-hover);background:var(--color-primary-soft)}.students-row-menu-popover button.is-danger{color:var(--color-danger)}.students-row-menu-popover button.is-danger i{color:currentColor}.students-row-menu-popover button.is-danger:hover,.students-row-menu-popover button.is-danger:focus-visible{color:var(--color-danger);background:var(--color-danger-soft)}.students-row-menu-divider{height:1px;margin:5px 3px;background:var(--color-border)}
.students-table-state{min-height:260px;padding:var(--space-8);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);color:var(--color-text-muted);text-align:center}.students-table-state>i{font-size:1.5rem}.students-table-state strong{color:var(--color-text-primary)}.student-skeleton{display:block;width:85%;height:13px;border-radius:4px;background:linear-gradient(90deg,var(--color-surface-secondary),var(--color-border),var(--color-surface-secondary));background-size:200% 100%;animation:studentSkeleton 1.2s linear infinite}@keyframes studentSkeleton{to{background-position:-200% 0}}
.students-pagination{min-height:56px;padding:10px 12px;display:flex;align-items:center;gap:var(--space-4);color:var(--color-text-muted);border-top:1px solid var(--color-border);font-size:.75rem}.students-pagination label{margin-left:auto;display:flex;align-items:center;gap:6px}.students-pagination select{width:72px!important;min-height:32px!important}.students-pagination nav{margin-left:var(--space-3)}
.student-editor{width:min(460px,100vw)!important;color:var(--color-text-primary);background:var(--color-surface);border-left-color:var(--color-border)!important}.student-editor .offcanvas-header{align-items:flex-start;border-bottom:1px solid var(--color-border)}.student-editor h3{font-size:1.1rem}.student-editor .offcanvas-header p{margin:3px 0 0;color:var(--color-text-muted);font-size:.76rem}.student-form-grid{display:grid;gap:var(--space-4)}.field-error{min-height:18px;margin-top:4px;color:var(--color-danger);font-size:.72rem}.form-general-error,.students-import-message{margin-top:var(--space-4);padding:10px;border-radius:var(--radius-control);color:var(--color-danger);background:var(--color-danger-soft);font-size:.78rem}.student-editor-footer{padding:var(--space-4);display:flex;justify-content:flex-end;gap:var(--space-2);border-top:1px solid var(--color-border)}
.student-class-picker{position:relative}.student-class-trigger{width:100%;min-height:42px;padding:.55rem .75rem;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--color-text-muted);text-align:left;border:1px solid var(--color-border-strong);border-radius:var(--radius-control);background:var(--color-surface);transition:border-color .15s ease,box-shadow .15s ease}.student-class-trigger:hover{border-color:var(--color-primary)}.student-class-trigger:focus-visible,.student-class-picker.is-open .student-class-trigger{outline:0;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.student-class-trigger.has-value{color:var(--color-text-primary)}.student-class-trigger.is-invalid{border-color:var(--color-danger);box-shadow:0 0 0 3px var(--color-danger-soft)}.student-class-trigger i{font-size:.78rem;transition:transform .15s ease}.student-class-picker.is-open .student-class-trigger i{transform:rotate(180deg)}.student-class-menu{position:absolute;z-index:1080;inset:auto 0 calc(100% + 6px);padding:8px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface);box-shadow:var(--shadow-elevated)}.student-class-search{height:38px;padding:0 10px;display:flex;align-items:center;gap:8px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface-secondary)}.student-class-search i{color:var(--color-text-muted)}.student-class-search input{width:100%;min-width:0;border:0;outline:0;color:var(--color-text-primary);background:transparent;font-size:.8rem}.student-class-options{max-height:260px;margin-top:6px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.student-class-option{width:100%;min-height:38px;padding:7px 9px;display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--color-text-primary);text-align:left;border:0;border-radius:7px;background:transparent;font-size:.8rem}.student-class-option:hover,.student-class-option:focus-visible{outline:0;background:var(--color-primary-soft);color:var(--color-primary-hover)}.student-class-option.is-selected{font-weight:700;background:var(--color-primary-soft);color:var(--color-primary-hover)}.student-class-empty{padding:18px 10px;color:var(--color-text-muted);text-align:center;font-size:.78rem}
.students-import-modal .modal-header{align-items:flex-start}.students-import-modal h3{font-size:1.08rem}.students-import-modal .modal-header p{margin:3px 0 0;color:var(--color-text-muted);font-size:.76rem}.students-file-field small{display:block;margin-top:5px;color:var(--color-text-muted);font-size:.7rem}.students-import-mapping{margin-top:var(--space-4);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.students-import-mapping label{display:block;margin-bottom:5px;color:var(--color-text-secondary);font-size:.75rem}.students-import-message.is-success{color:var(--color-success);background:var(--color-success-soft)}.students-import-message strong,.students-import-message span{display:block}.students-import-message span{margin-top:4px}
@media(max-width:767.98px){.students-workspace{padding:var(--space-4)!important}.students-page-header{align-items:stretch;flex-direction:column}.students-primary-action{justify-content:center}.students-search{flex-basis:100%;max-width:none}.students-class-filter{width:calc(100% - 96px)!important}.students-filter-grid,.students-import-mapping{grid-template-columns:1fr}.students-filter-field>div{grid-template-columns:120px 1fr}.students-pagination{align-items:flex-start;flex-wrap:wrap}.students-pagination label{margin-left:0}.students-pagination nav{width:100%;margin-left:0;overflow:auto}.students-bulk-bar{align-items:stretch;flex-direction:column}.students-bulk-bar .ms-auto{margin-left:0!important}}
@media(prefers-reduced-motion:reduce){.student-skeleton{animation:none}}

/* Exams management list */
.exams-workspace { padding:var(--space-6)!important; }
.exams-workspace>.container-fluid { max-width:1600px!important; }
.exams-page-header { min-height:58px;margin-bottom:var(--space-5);display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4); }
.exams-page-header h2 { margin:0;color:var(--color-text-primary);font-size:1.65rem;font-weight:750;letter-spacing:-.02em; }
.exams-page-header p { margin:4px 0 0;color:var(--color-text-muted);font-size:.88rem; }
.exams-primary-action { display:inline-flex;align-items:center;gap:8px;white-space:nowrap; }
.exams-list-workspace { min-width:0; }
.exams-toolbar { margin-bottom:var(--space-3);display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap; }
.exams-search { position:relative;flex:1 1 360px;max-width:580px; }
.exams-search>i { position:absolute;left:12px;top:50%;z-index:1;color:var(--color-text-muted);transform:translateY(-50%);pointer-events:none; }
.exams-search input { width:100%;height:40px;padding:0 40px;color:var(--color-text-primary);border:1px solid var(--color-border-strong);border-radius:var(--radius-control);background:var(--color-surface); }
.exams-search input:focus { border-color:var(--color-primary);outline:0;box-shadow:var(--focus-ring); }
.exams-search-clear { position:absolute;right:4px;top:4px;width:32px;height:32px;display:grid;place-items:center;color:var(--color-text-muted);border:0;border-radius:6px;background:transparent; }
.exams-search-clear:hover { color:var(--color-text-primary);background:var(--color-surface-secondary); }
.exams-filter-select { width:190px!important;min-height:40px!important; }
.exams-filter-toggle { min-height:40px;display:inline-flex;align-items:center;gap:7px; }
.exams-filter-count { min-width:19px;padding:2px 5px;color:var(--color-primary-hover);border-radius:999px;background:var(--color-primary-soft);font-size:.68rem;font-weight:750; }
.exams-reload { width:40px;height:40px;padding:0;display:grid;place-items:center; }
.exams-reload.is-loading i { animation:examReloadSpin .75s linear infinite; }
@keyframes examReloadSpin { to{transform:rotate(360deg)} }
.exams-advanced-filters { margin-bottom:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface);box-shadow:var(--shadow-sm);animation:menuEnter var(--motion-menu) var(--ease-enter); }
.exams-advanced-header { display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3); }
.exams-advanced-header strong,.exams-advanced-header span { display:block; }
.exams-advanced-header span { margin-top:3px;color:var(--color-text-muted);font-size:.75rem; }
.exams-advanced-grid { width:min(420px,100%);margin-top:var(--space-4);display:grid;grid-template-columns:90px 1fr;align-items:center;gap:var(--space-3); }
.exams-advanced-grid label { color:var(--color-text-secondary);font-size:.8rem;font-weight:650; }
.exams-advanced-actions { margin-top:var(--space-3);display:flex;justify-content:flex-end; }
.exams-status-tabs { margin-bottom:var(--space-3);display:flex;align-items:center;gap:4px;overflow-x:auto;scrollbar-width:thin; }
.exams-status-tab { min-height:36px;padding:7px 10px;display:inline-flex;align-items:center;gap:6px;color:var(--color-text-secondary);border:1px solid transparent;border-radius:var(--radius-control);background:transparent;font-size:.78rem;font-weight:650;white-space:nowrap; }
.exams-status-tab:hover { color:var(--color-text-primary);background:var(--color-surface-secondary); }
.exams-status-tab.active { color:var(--color-primary-hover);border-color:color-mix(in srgb,var(--color-primary) 28%,var(--color-border));background:var(--color-primary-soft); }
.exams-status-tab span { min-width:20px;padding:1px 5px;color:inherit;border-radius:999px;background:color-mix(in srgb,currentColor 9%,transparent);font-size:.66rem;text-align:center; }
.exams-table-panel { border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface);box-shadow:var(--shadow-sm); }
.exams-table-shell { min-height:318px; }
.exams-workspace .exams-table { min-width:940px;table-layout:fixed; }
.exams-table th { height:42px;padding:.6rem .75rem!important;color:var(--color-text-muted);border-bottom-color:var(--color-border);background:var(--color-surface-secondary);font-size:.7rem;font-weight:750;text-transform:uppercase;letter-spacing:.025em; }
.exams-table th:nth-child(1){width:27%}.exams-table th:nth-child(2){width:17%}.exams-table th:nth-child(3){width:18%}.exams-table th:nth-child(4){width:12%}.exams-table th:nth-child(5){width:13%}.exams-table th:nth-child(6){width:13%}
.exams-table td { height:58px;padding:.6rem .75rem!important;color:var(--color-text-secondary);border-bottom-color:var(--color-border);font-size:.8rem;vertical-align:middle; }
.exams-table tbody tr:last-child td { border-bottom:0; }
.exams-table tbody tr:hover td { background:var(--color-surface-hover); }
.exam-name-link { min-width:0;display:flex;flex-direction:column;align-items:flex-start;text-decoration:none; }
.exam-name-link strong { max-width:100%;overflow:hidden;color:var(--color-text-primary);font-size:.84rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap; }
.exam-name-link span { margin-top:2px;color:var(--color-text-muted);font-size:.68rem; }
.exam-name-link:hover strong { color:var(--color-primary-hover);text-decoration:underline;text-underline-offset:3px; }
.exam-subject,.exam-groups-inline { display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.exam-groups-inline { max-width:220px; }
.exam-empty-value { color:var(--color-text-muted); }
.exam-group-count { padding:5px 8px;display:inline-flex;align-items:center;gap:6px;color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);font-size:.75rem; }
.exam-group-count:hover,.exam-group-count[aria-expanded=true] { color:var(--color-primary-hover);border-color:color-mix(in srgb,var(--color-primary) 35%,var(--color-border));background:var(--color-primary-soft); }
.exam-groups-menu { width:min(290px,80vw);max-height:280px;padding:8px;overflow:auto; }
.exam-groups-menu-title { padding:5px 7px 8px;color:var(--color-text-muted);font-size:.7rem;font-weight:750;text-transform:uppercase;letter-spacing:.03em; }
.exam-groups-menu>span { padding:6px 7px;display:block;border-radius:6px;color:var(--color-text-secondary);font-size:.76rem;overflow-wrap:anywhere; }
.exam-groups-menu>span:nth-child(even) { background:var(--color-surface-secondary); }
.exam-participant-count { color:var(--color-text-primary);font-variant-numeric:tabular-nums;font-weight:700; }
.exam-status { padding:4px 8px;display:inline-flex;align-items:center;border:1px solid transparent;border-radius:999px;font-size:.7rem;font-weight:700;white-space:nowrap; }
.exam-status.is-draft,.exam-status.is-unknown { color:var(--color-text-secondary);border-color:var(--color-border);background:var(--color-surface-secondary); }
.exam-status.is-open { color:var(--color-info);border-color:color-mix(in srgb,var(--color-info) 25%,var(--color-border));background:var(--color-info-soft); }
.exam-status.is-preready { color:var(--color-warning);border-color:color-mix(in srgb,var(--color-warning) 25%,var(--color-border));background:var(--color-warning-soft); }
.exam-status.is-started { color:var(--color-primary-hover);border-color:color-mix(in srgb,var(--color-primary) 32%,var(--color-border));background:var(--color-primary-soft); }
.exam-status.is-ended { color:var(--color-success);border-color:color-mix(in srgb,var(--color-success) 25%,var(--color-border));background:var(--color-success-soft); }
.exam-row-actions { display:flex;align-items:center;justify-content:flex-end;gap:5px; }
.exam-context-action { min-width:66px; }
.exam-context-action .spinner-border { margin-right:5px; }
.exam-row-menu { width:32px;height:32px;display:grid;place-items:center;color:var(--color-text-secondary);border:1px solid transparent;border-radius:6px;background:transparent; }
.exam-row-menu:hover,.exam-row-menu[aria-expanded=true] { color:var(--color-text-primary);border-color:var(--color-border);background:var(--color-surface-secondary); }
.exams-actions-menu .dropdown-item { gap:9px; }
.exams-actions-menu .dropdown-item i { width:18px;color:var(--color-text-muted); }
.exam-manage-action { white-space:nowrap; }
.exams-table-state { min-height:316px;padding:var(--space-8);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);color:var(--color-text-muted);text-align:center; }
.exams-table-state>i { font-size:1.6rem; }
.exams-table-state strong { color:var(--color-text-primary); }
.exams-table-state span { max-width:520px;font-size:.78rem; }
.exams-table-state.is-error>i { color:var(--color-danger); }
.exam-skeleton { width:82%;height:13px;display:block;border-radius:4px;background:linear-gradient(90deg,var(--color-surface-secondary),var(--color-border),var(--color-surface-secondary));background-size:200% 100%;animation:examSkeleton 1.2s linear infinite; }
@keyframes examSkeleton { to{background-position:-200% 0} }
.exam-editor-forbidden { display:none!important; }

/* Exam editor: shared surfaces replace the former hard-coded light-only form. */
.exam-editor { width:100%; min-width:0; overflow:hidden; border:1px solid var(--color-border)!important; background:var(--color-surface)!important; }
.exam-editor-body { padding:clamp(18px,2.5vw,30px)!important; }
.exam-editor-header { display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border); }
.exam-editor-intro { min-width:0; }
.exam-editor-eyebrow { display:block;margin-bottom:4px;color:var(--color-primary-hover);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase; }
.exam-editor h4 { color:var(--color-text-primary);font-size:1.2rem;font-weight:750;letter-spacing:-.018em; }
.exam-editor-fields { margin-top:var(--space-3)!important; }
.exam-editor .form-label { color:var(--color-text-secondary);font-size:.78rem;font-weight:700!important; }
.exam-question-total { display:flex;align-items:center;color:var(--color-primary-hover)!important;border-color:var(--color-primary)!important;background:var(--color-primary-soft)!important; }
.exam-editor-section { padding-top:var(--space-4);border-top:1px solid var(--color-border); }
.exam-editor .choice-box { max-height:260px;padding:12px;display:flex;flex-wrap:wrap;align-content:flex-start;gap:8px;overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface-secondary); }
.exam-editor .choice-pill { display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:7px 10px;color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);font-size:.78rem; }
.exam-editor .choice-pill:has(input:checked) { color:var(--color-primary-hover);border-color:var(--color-primary);background:var(--color-primary-soft); }
.exam-selection-switch { display:flex;flex-wrap:wrap;gap:6px;width:max-content;max-width:100%;padding:5px;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface-secondary); }
.exam-selection-switch label { margin:0;cursor:pointer;padding:8px 11px;color:var(--color-text-secondary);border-radius:var(--radius-control);font-size:.8rem;font-weight:650; }
.exam-selection-switch label:has(input:checked) { color:var(--color-primary-hover);background:var(--color-surface);box-shadow:var(--shadow-sm); }
.exam-selection-switch input { margin-right:5px;accent-color:var(--color-primary); }
.exam-editor .range-editor { height:100%;padding:15px;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface-secondary); }
.exam-editor .range-editor>.fw-bold { color:var(--color-text-primary);font-size:.84rem; }
.exam-editor .range-chip { display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:6px 9px;color:var(--color-text-secondary);border:1px solid var(--color-border-strong);border-radius:999px;background:var(--color-surface-secondary);font-size:.74rem; }
.exam-editor .range-chip b { color:var(--color-primary-hover); }
.exam-manual-toolbar input { min-width:0; }
.exam-preview-panel { padding:clamp(16px,2vw,22px);border:1px solid var(--color-border);border-radius:var(--radius-dialog);background:var(--color-surface-secondary); }
.exam-preview-panel h5 { color:var(--color-text-primary);font-size:1rem;font-weight:740; }
.exam-editor .question-row,.exam-editor .question-details,#viewModal .question-details { color:var(--color-text-primary);border-bottom:1px solid var(--color-border);background:var(--color-surface); }
.exam-editor .question-row { display:flex;gap:10px;padding:11px;cursor:pointer; }
.exam-editor .question-row:last-child,.exam-editor .question-details:last-child,#viewModal .question-details:last-child { border-bottom:0; }
.exam-editor .catalog-group,#viewModal .catalog-group { margin-bottom:12px;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface); }
.exam-editor .catalog-title,#viewModal .catalog-title { padding:11px 14px;color:var(--color-text-primary);background:var(--color-surface-secondary);font-size:.82rem;font-weight:750; }
.exam-editor .question-details summary,#viewModal .question-details summary { display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;list-style:none; }
.exam-editor .question-details summary::-webkit-details-marker,#viewModal .question-details summary::-webkit-details-marker { display:none; }
.exam-editor .question-details summary:after,#viewModal .question-details summary:after { content:'›';margin-left:auto;color:var(--color-primary);font-size:1.35rem;transition:transform var(--motion-micro) var(--ease-standard); }
.exam-editor .question-details[open] summary:after,#viewModal .question-details[open] summary:after { transform:rotate(90deg); }
.exam-editor .question-requirement,#viewModal .question-requirement { padding:0 14px 14px 54px;color:var(--color-text-secondary);white-space:pre-wrap; }
.exam-editor .range-summary,#viewModal .range-summary { padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--color-text-primary);background:var(--color-surface); }
.exam-editor .range-summary+.collapse,.exam-editor .range-summary+.collapsing,#viewModal .range-summary+.collapse,#viewModal .range-summary+.collapsing { border-top:1px solid var(--color-border); }
.exam-editor .empty-state,#viewModal .empty-state { padding:30px 18px;color:var(--color-text-muted);text-align:center;border:1px dashed var(--color-border-strong);border-radius:var(--radius-panel);background:var(--color-surface); }
.exam-editor .empty-state-icon,#viewModal .empty-state-icon { width:48px;height:48px;margin:0 auto 10px;display:grid;place-items:center;color:var(--color-primary-hover);border-radius:50%;background:var(--color-primary-soft);font-size:1.3rem; }
.exam-editor .empty-state-title,#viewModal .empty-state-title { margin-bottom:4px;color:var(--color-text-primary);font-weight:740; }
.exam-editor .empty-state-text,#viewModal .empty-state-text { max-width:520px;margin:auto;font-size:.86rem; }
.exam-editor-footer { padding-top:var(--space-4);border-top:1px solid var(--color-border); }
@media(max-width:767.98px){.exam-editor-header{align-items:stretch;flex-direction:column}.exam-editor-header>#cancelEdit{width:100%}.exam-selection-switch{width:100%}.exam-selection-switch label{flex:1 1 170px;text-align:center}.exam-manual-toolbar{align-items:stretch;flex-direction:column}.exam-manual-toolbar .btn{width:100%}.exam-editor .choice-box{max-height:220px}.exam-editor .range-summary,#viewModal .range-summary{align-items:stretch;flex-direction:column}.exam-editor .range-summary .btn,#viewModal .range-summary .btn{width:100%}.exam-editor .question-requirement,#viewModal .question-requirement{padding-left:14px}.exam-editor-footer{align-items:stretch;flex-direction:column}.exam-editor-footer #message{margin-right:0!important;order:2}.exam-editor-footer #saveExam{width:100%;}}
@media(max-width:991.98px){.exams-search{flex-basis:100%;max-width:none}.exams-filter-select{flex:1 1 180px;width:auto!important}.exams-table-panel{overflow:hidden}}
@media(max-width:575.98px){.exams-workspace{padding:var(--space-4)!important}.exams-page-header{align-items:stretch;flex-direction:column}.exams-primary-action{justify-content:center}.exams-filter-select{flex-basis:100%}.exams-filter-toggle{flex:1}.exams-advanced-grid{grid-template-columns:1fr;gap:6px}.exams-status-tabs{margin-left:calc(var(--space-4)*-1);margin-right:calc(var(--space-4)*-1);padding:0 var(--space-4)}}
@media(prefers-reduced-motion:reduce){.exam-skeleton,.exams-reload.is-loading i{animation:none}}

/* Exam control */
.exam-control-workspace{padding:var(--space-6)!important}.exam-control-workspace>.container-fluid{max-width:1440px!important}.exam-control-header{margin-bottom:var(--space-5);display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.exam-control-heading{min-width:0}.exam-control-back{width:max-content;margin-bottom:8px;display:inline-flex;align-items:center;gap:6px;color:var(--color-text-secondary);font-size:.78rem;font-weight:650;text-decoration:none}.exam-control-back:hover{color:var(--color-primary-hover)}.exam-control-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.exam-control-title-row h2{margin:0;color:var(--color-text-primary);font-size:clamp(1.45rem,2vw,1.9rem);font-weight:760;letter-spacing:-.025em}.exam-control-heading>p{margin:6px 0 0;display:flex;align-items:center;flex-wrap:wrap;gap:7px;color:var(--color-text-muted);font-size:.78rem}.exam-control-heading>p i{font-style:normal;color:var(--color-border-strong)}.exam-control-refresh{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.exam-control-error{margin-bottom:var(--space-4);padding:12px 14px;display:flex;align-items:center;gap:9px;color:var(--color-danger);border:1px solid color-mix(in srgb,var(--color-danger) 25%,var(--color-border));border-radius:var(--radius-panel);background:var(--color-danger-soft);font-size:.82rem}.exam-control-state-panel,.exam-control-panel{margin-bottom:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-dialog);background:var(--color-surface);box-shadow:var(--shadow-sm)}.exam-control-state-panel{padding:var(--space-5)}.exam-control-state-copy{max-width:860px}.exam-control-eyebrow{display:block;margin-bottom:4px;color:var(--color-primary-hover);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.exam-control-state-copy h3,.exam-control-panel-header h3{margin:0;color:var(--color-text-primary);font-size:1.05rem;font-weight:740}.exam-control-state-copy p{margin:6px 0 0;color:var(--color-text-secondary);font-size:.82rem}.exam-lifecycle-actions{margin-top:var(--space-4);display:flex;align-items:center;flex-wrap:wrap;gap:8px}.exam-lifecycle-button{min-height:38px;padding:.48rem .8rem;display:inline-flex;align-items:center;gap:7px;border-radius:var(--radius-control);font-size:.8rem;font-weight:700}.exam-lifecycle-button.is-primary{color:#fff;border-color:var(--color-primary);background:var(--color-primary)}.exam-lifecycle-button.is-primary:hover{border-color:var(--color-primary-hover);background:var(--color-primary-hover)}.exam-lifecycle-button.is-secondary{color:var(--color-text-primary);border-color:var(--color-border-strong);background:var(--color-surface)}.exam-lifecycle-button.is-secondary:hover{color:var(--color-primary-hover);border-color:var(--color-primary);background:var(--color-primary-soft)}.exam-lifecycle-button.is-danger{color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 42%,var(--color-border));background:var(--color-surface)}.exam-lifecycle-button.is-danger:hover{color:#fff;border-color:var(--color-danger);background:var(--color-danger)}.exam-no-actions{color:var(--color-text-muted);font-size:.8rem}.exam-lifecycle-steps{margin:var(--space-5) 0 0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);list-style:none}.exam-lifecycle-steps li{position:relative;padding-top:28px;color:var(--color-text-muted);text-align:center;font-size:.7rem}.exam-lifecycle-steps li:before{content:"";position:absolute;top:10px;left:0;width:100%;height:2px;background:var(--color-border)}.exam-lifecycle-steps li:first-child:before{left:50%;width:50%}.exam-lifecycle-steps li:last-child:before{width:50%}.exam-lifecycle-steps li>span{position:absolute;z-index:1;top:0;left:50%;width:22px;height:22px;display:grid;place-items:center;transform:translateX(-50%);border:2px solid var(--color-border-strong);border-radius:50%;background:var(--color-surface);font-size:.62rem;font-weight:800}.exam-lifecycle-steps li.is-passed:before,.exam-lifecycle-steps li.is-current:before{background:var(--color-primary)}.exam-lifecycle-steps li.is-passed>span{color:#fff;border-color:var(--color-primary);background:var(--color-primary)}.exam-lifecycle-steps li.is-current{color:var(--color-primary-hover)}.exam-lifecycle-steps li.is-current>span{color:var(--color-primary-hover);border-color:var(--color-primary);box-shadow:0 0 0 4px var(--color-primary-soft)}.exam-lifecycle-steps strong{font-weight:680}.exam-lifecycle-note{margin:var(--space-4) 0 0;padding-top:var(--space-3);display:flex;align-items:flex-start;gap:7px;color:var(--color-text-muted);border-top:1px solid var(--color-border);font-size:.73rem}.exam-control-panel{overflow:hidden}.exam-control-panel-header{padding:var(--space-4) var(--space-5);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);border-bottom:1px solid var(--color-border)}.exam-participant-metrics{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.exam-participant-metrics>span{padding:5px 8px;color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface-secondary);font-size:.7rem}.exam-participant-metrics strong{color:var(--color-text-primary)}.exam-control-loading{padding:40px;display:flex;align-items:center;justify-content:center;gap:9px;color:var(--color-text-muted);font-size:.8rem}.exam-participants-shell{max-height:min(58vh,650px);overflow:auto}.exam-participants-table{min-width:900px}.exam-participants-table thead{position:sticky;z-index:2;top:0}.exam-participants-table th{height:40px!important;padding:.55rem .8rem!important;font-size:.68rem!important}.exam-participants-table td{height:54px;padding:.55rem .8rem!important;vertical-align:middle;font-size:.76rem}.exam-participants-table th:last-child,.exam-participants-table td:last-child{text-align:right}.exam-student-name{padding:0;display:inline-flex;align-items:center;gap:9px;color:var(--color-text-primary);text-align:left;border:0;background:transparent}.exam-student-name>span{width:28px;height:28px;display:grid;place-items:center;color:var(--color-primary-hover);border-radius:50%;background:var(--color-primary-soft);font-size:.68rem;font-weight:800}.exam-student-name strong{font-weight:680}.exam-student-name i{color:var(--color-primary)}.exam-student-name:disabled{cursor:default;filter:none;opacity:1}.participant-status,.participant-paused{width:max-content;margin-right:5px;padding:4px 7px;display:inline-flex;border:1px solid var(--color-border);border-radius:999px;font-size:.66rem;font-weight:700}.participant-status.is-online,.participant-status.is-active,.participant-status.is-completed{color:var(--color-success);border-color:color-mix(in srgb,var(--color-success) 25%,var(--color-border));background:var(--color-success-soft)}.participant-status.is-waiting{color:var(--color-warning);border-color:color-mix(in srgb,var(--color-warning) 25%,var(--color-border));background:var(--color-warning-soft)}.participant-status.is-offline,.participant-status.is-ended,.participant-status.is-unknown{color:var(--color-text-secondary);background:var(--color-surface-secondary)}.participant-paused{color:var(--color-warning);border-color:transparent;background:var(--color-warning-soft)}.exam-last-seen{color:var(--color-text-muted)}.exam-participant-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px}.exam-participant-actions .btn{white-space:nowrap;font-size:.7rem}.exam-control-empty{min-height:180px;padding:28px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;color:var(--color-text-muted);text-align:center}.exam-control-empty>i{font-size:1.5rem;color:var(--color-primary)}.exam-control-empty strong{color:var(--color-text-primary)}.exam-control-empty span{font-size:.77rem}.exam-control-empty.is-compact{min-height:150px}.exam-control-privacy{display:inline-flex;align-items:center;gap:6px;color:var(--color-text-muted);font-size:.72rem}.exam-screen-grid{padding:var(--space-4);display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:12px}.exam-screen-grid>.exam-control-empty{grid-column:1/-1}.exam-screen-card{overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface)}.exam-screen-card>button{width:100%;padding:0;display:block;border:0;background:#101010}.exam-screen-card img{width:100%;aspect-ratio:16/9;display:block;object-fit:cover}.exam-screen-card>div{padding:9px 11px;display:flex;align-items:center;justify-content:space-between;gap:8px}.exam-screen-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.76rem}.exam-screen-card span{color:var(--color-text-muted);font-size:.68rem}.saved-item{padding:14px;border:1px solid var(--color-border);border-radius:var(--radius-panel);margin-bottom:10px;background:var(--color-surface)}.saved-answer{margin-top:10px;padding:10px;display:grid;gap:5px;white-space:pre-wrap;border-radius:var(--radius-control);background:var(--color-surface-secondary)}.saved-answer small{color:var(--color-text-muted)}
@media(max-width:767.98px){.exam-control-workspace{padding:var(--space-4)!important}.exam-control-header{align-items:stretch;flex-direction:column}.exam-control-refresh{justify-content:center}.exam-control-state-panel{padding:var(--space-4)}.exam-lifecycle-actions{align-items:stretch;flex-direction:column}.exam-lifecycle-button{justify-content:center}.exam-lifecycle-steps{overflow-x:auto;grid-template-columns:repeat(5,minmax(100px,1fr))}.exam-control-panel-header{align-items:flex-start;flex-direction:column;padding:var(--space-4)}.exam-participant-metrics{width:100%}.exam-screen-grid{grid-template-columns:1fr}}

/* Phone tables: retain the decision-critical columns instead of forcing a wide desktop table. */
@media(max-width:767.98px){
    .students-table-shell,.exam-participants-shell{overflow-x:hidden}
    .students-table{min-width:0;table-layout:fixed}
    .students-table .student-company-column,.students-table .student-email-column,.students-table .students-number-column{display:none}
    .students-table .students-selection-column{width:38px}.students-table .students-actions-column{width:46px}
    .students-table th,.students-table td{padding:.5rem!important;font-size:.74rem}
    .student-name-cell{min-width:0;gap:7px}.student-name-cell strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-initial{width:26px;height:26px;flex-basis:26px}.student-class-value{max-width:92px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .exam-participants-table{min-width:0;table-layout:fixed}.exam-participants-table th:nth-child(4),.exam-participants-table td:nth-child(4){display:none}.exam-participants-table th:first-child{width:34%}.exam-participants-table th:nth-child(2){width:25%}.exam-participants-table th:nth-child(3){width:13%}.exam-participants-table th:last-child{width:28%}
    .exam-participants-table td{height:auto;padding:.55rem .45rem!important}.exam-student-name{min-width:0;gap:6px}.exam-student-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exam-student-name>span{width:24px;height:24px;flex:0 0 24px}.exam-participant-actions{flex-wrap:wrap;gap:4px}.exam-participant-actions .btn{padding:.25rem .38rem;font-size:.66rem}.participant-status,.participant-paused{margin:0 0 3px;padding:3px 5px;font-size:.61rem}
}
@media(max-width:575.98px){
    .exams-workspace .exams-table-shell{overflow-x:hidden}.exams-workspace .exams-table{min-width:0;table-layout:fixed}.exams-workspace .exams-table th:nth-child(2),.exams-workspace .exams-table td:nth-child(2),.exams-workspace .exams-table th:nth-child(3),.exams-workspace .exams-table td:nth-child(3){display:none}.exams-workspace .exams-table th:nth-child(1){width:34%}.exams-workspace .exams-table th:nth-child(4){width:15%}.exams-workspace .exams-table th:nth-child(5){width:21%}.exams-workspace .exams-table th:nth-child(6){width:30%}.exams-workspace .exams-table th,.exams-workspace .exams-table td{padding:.5rem!important;font-size:.7rem}.exam-name-link strong{font-size:.76rem}.exam-name-link span{font-size:.62rem}.exam-row-actions{gap:2px}.exam-manage-action{min-height:30px;padding:.3rem .42rem;font-size:.68rem}.exam-row-menu{width:28px;height:30px}.exam-status{max-width:100%;padding:3px 5px;font-size:.62rem;overflow:hidden;text-overflow:ellipsis}.exam-participants-table th:nth-child(3),.exam-participants-table td:nth-child(3){display:none}.exam-participants-table th:first-child{width:38%}.exam-participants-table th:nth-child(2){width:27%}.exam-participants-table th:last-child{width:35%}.exam-control-panel{border-radius:var(--radius-panel)}.exam-screen-grid{padding:var(--space-3)}
}

/* GradeStudent: a stable, compact type index prevents question sections jumping between students. */
.grade-type-section{margin:0 0 var(--space-3);overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface);box-shadow:var(--shadow-sm)}
.grade-type-section>summary{min-height:48px;padding:0 var(--space-4);display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none;color:var(--color-text-primary);background:var(--color-surface-secondary)}
.grade-type-section>summary::-webkit-details-marker{display:none}.grade-type-section>summary:before{content:"▾";width:12px;color:var(--color-primary);font-size:.88rem;transition:transform var(--motion-micro) var(--ease-standard)}
.grade-type-section:not([open])>summary:before{transform:rotate(-90deg)}.grade-type-section-title{font-size:.9rem;font-weight:740}.grade-type-section-count{margin-left:auto;padding:4px 8px;color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);font-size:.7rem;font-weight:700;white-space:nowrap}.grade-type-section-count.is-error{color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 30%,var(--color-border));background:var(--color-danger-soft)}
.grade-type-section-body{padding:var(--space-3) var(--space-4)}.grade-type-section.is-empty{box-shadow:none}.grade-type-section.is-empty>summary{min-height:42px;background:var(--color-surface)}.grade-section-empty{padding:2px 0;color:var(--color-text-muted);font-size:.82rem}.grade-section-load-error{min-height:76px;padding:14px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--color-danger);border:1px solid color-mix(in srgb,var(--color-danger) 25%,var(--color-border));border-radius:var(--radius-control);background:var(--color-danger-soft);font-size:.82rem}.grade-no-answer{margin-top:8px;color:var(--color-warning);font-size:.82rem;font-weight:700}.grade-type-section .card:last-child{margin-bottom:0!important}
@media(max-width:767.98px){.grade-type-section>summary{padding:0 var(--space-3)}.grade-type-section-body{padding:var(--space-3)}.grade-section-load-error{align-items:flex-start;flex-direction:column}.grade-section-load-error .btn{width:100%}}

/* Focused visual consistency pass: shared public/auth surfaces and actions. */
.ep-btn-primary{min-height:36px;padding:.5rem .9rem;display:inline-flex;align-items:center;justify-content:center;gap:7px;color:#f8ffff!important;border:1px solid var(--color-primary)!important;border-radius:var(--radius-control);background:var(--color-primary)!important;box-shadow:none;font-weight:750;transition:background-color var(--motion-micro) var(--ease-standard),border-color var(--motion-micro) var(--ease-standard),box-shadow var(--motion-micro) var(--ease-standard)}
.ep-btn-primary:hover:not(:disabled){color:#fff!important;border-color:var(--color-primary-hover)!important;background:var(--color-primary-hover)!important;box-shadow:0 5px 14px color-mix(in srgb,var(--color-primary) 22%,transparent)}
.ep-btn-primary:active:not(:disabled){background:var(--color-primary-active)!important;border-color:var(--color-primary-active)!important}.ep-btn-primary:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;box-shadow:var(--focus-ring)}.ep-btn-primary:disabled{color:var(--color-text-muted)!important;border-color:var(--color-border)!important;background:var(--color-surface-secondary)!important}
.auth-shell{min-height:100vh;position:relative;display:grid;place-items:center;padding:34px 16px 76px;color:var(--color-text-primary);background:radial-gradient(circle at 12% 10%,color-mix(in srgb,var(--color-primary-soft) 74%,transparent),transparent 31%),radial-gradient(circle at 88% 90%,color-mix(in srgb,var(--color-info-soft) 62%,transparent),transparent 33%),var(--color-bg)}
.auth-card{width:min(100%,440px);padding:30px;border:1px solid var(--color-border);border-radius:var(--radius-dialog);background:var(--color-surface);box-shadow:var(--shadow-elevated)}.auth-brand{display:flex;align-items:center;gap:9px;color:var(--color-text-primary);font-size:.94rem;font-weight:800;letter-spacing:-.015em}.auth-brand-mark,.public-wordmark-mark{width:30px;height:30px;display:grid;place-items:center;color:#f8ffff;border-radius:9px;background:var(--color-primary);font-size:.66rem;font-weight:850;letter-spacing:.04em}.auth-heading{margin:24px 0 22px}.auth-eyebrow,.public-eyebrow{margin:0;color:var(--color-primary-hover);font-size:.63rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.auth-heading h1{margin:5px 0 5px;color:var(--color-text-primary);font-size:1.55rem;font-weight:800;letter-spacing:-.025em}.auth-heading p:last-child{margin:0;color:var(--color-text-muted);font-size:.82rem;line-height:1.5}.auth-card .form-label{margin-bottom:6px;color:var(--color-text-secondary);font-size:.76rem;font-weight:700}.auth-card .form-control{min-height:42px;color:var(--color-text-primary);border-color:var(--color-border-strong);border-radius:var(--radius-control);background:var(--color-surface)}.auth-card .form-control:focus{border-color:var(--color-primary);box-shadow:var(--focus-ring)}.auth-card .form-control::placeholder{color:var(--color-text-muted)}.auth-card #togglePassword{color:var(--color-text-muted)!important}.auth-card #togglePassword:hover{color:var(--color-primary)!important}.auth-step-title{margin:0 0 8px;color:var(--color-text-primary);font-size:1.1rem;font-weight:800}.auth-card a{color:var(--color-primary-hover)}.auth-card a:hover{color:var(--color-primary-active)}.footer-powered{position:absolute;right:16px;bottom:17px;left:16px;z-index:2;color:var(--color-text-muted);font-size:.68rem;text-align:center}.footer-powered .brand{color:var(--color-text-muted);font-weight:700}
.two-factor-head{border-bottom:1px solid var(--color-border);background:var(--color-surface)!important}.two-factor-head h1{color:var(--color-text-primary)}.two-factor-head .auth-eyebrow{color:var(--color-primary-hover)}.two-factor-card .form-control{box-shadow:var(--shadow-sm)}.two-factor-card .form-control:focus{border-color:var(--color-primary);box-shadow:var(--focus-ring)}.two-factor-card .form-text{color:var(--color-text-muted)}
.public-landing{min-height:100vh;position:relative;display:grid;place-items:center;padding:32px 16px 74px;color:var(--color-text-primary);background:radial-gradient(circle at 11% 12%,color-mix(in srgb,var(--color-primary-soft) 68%,transparent),transparent 30%),radial-gradient(circle at 90% 88%,color-mix(in srgb,var(--color-info-soft) 58%,transparent),transparent 32%),var(--color-bg)}.public-landing-card{width:min(100%,720px);padding:clamp(24px,5vw,48px);border:1px solid var(--color-border);border-radius:var(--radius-dialog);background:var(--color-surface);box-shadow:var(--shadow-elevated)}.public-wordmark{display:flex;align-items:center;gap:9px;margin-bottom:38px;color:var(--color-text-primary);font-size:.96rem;font-weight:800}.public-eyebrow{margin-bottom:7px}.public-landing h1{margin:0;color:var(--color-text-primary);font-size:clamp(1.7rem,4vw,2.45rem);font-weight:800;letter-spacing:-.035em}.public-lead{max-width:560px;margin:9px 0 25px;color:var(--color-text-secondary);font-size:.92rem;line-height:1.6}.public-status-panel{padding:18px;display:grid;grid-template-columns:42px minmax(0,1fr);gap:14px;border:1px solid color-mix(in srgb,var(--color-warning) 25%,var(--color-border));border-radius:var(--radius-panel);background:var(--color-warning-soft)}.public-status-icon{width:40px;height:40px;display:grid;place-items:center;color:var(--color-warning);border-radius:11px;background:var(--color-surface)}.public-status-panel h2{margin:0 0 5px;color:var(--color-text-primary);font-size:1rem;font-weight:800}.public-status-panel p,.public-status-panel li{color:var(--color-text-secondary);font-size:.78rem;line-height:1.55}.public-status-panel p{margin:0 0 8px}.public-status-panel ul{margin:0;padding-left:18px}.public-landing-actions{margin-top:20px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.public-landing-actions .btn{min-height:38px}.public-help{margin:22px 0 0;color:var(--color-text-muted);font-size:.7rem}.public-help i{margin-right:5px;color:var(--color-primary)}
.page-results .results-table{--bs-table-border-color:var(--color-border);border-collapse:separate;border-spacing:0}.page-results .results-table th,.page-results .results-table td{border-right:0!important;border-left:0!important}.page-results .results-table thead th{font-weight:700;letter-spacing:.045em;background:var(--color-surface-secondary)!important}.page-results .results-table tbody td{border-bottom:1px solid var(--color-border);font-weight:500}.page-results .results-table tbody tr:hover>td{background:var(--color-surface-hover)!important}.page-results .results-table tbody td:first-child,.page-results .results-table tbody td:nth-child(2){color:var(--color-text-primary)}.page-results .results-table tbody td:nth-child(2) strong{font-weight:750}.page-results .results-company-id{color:var(--color-text-muted);font-size:.72rem;font-weight:550}.page-results .results-row-actions{gap:4px}.page-results .results-row-actions>.ep-btn-primary,.page-results .results-row-actions>.btn-outline-secondary{min-height:33px;padding:.35rem .62rem;font-size:.7rem}.page-results .results-row-actions .btn-icon-secondary{width:30px;height:33px}.page-results .results-table-heading strong{font-weight:700}
.page-grade-student .ep-btn-primary{min-height:36px}.page-grade-student .grade-bulk-actions .ep-btn-primary{padding-inline:12px}.page-grade-student .btn-outline-primary{color:var(--color-text-secondary)!important;border-color:var(--color-border-strong)!important;background:var(--color-surface)!important}.page-grade-student .btn-outline-primary:hover{color:var(--color-text-primary)!important;border-color:var(--color-primary)!important;background:var(--color-primary-soft)!important}
.page-results .text-primary,.page-grade-student .text-primary,.two-factor-card .text-primary{color:var(--color-primary)!important}
@media(max-width:575.98px){.auth-shell{padding:20px 12px 72px}.auth-card{padding:23px 18px}.auth-heading{margin-top:20px}.public-landing{padding:18px 12px 70px}.public-landing-card{padding:24px 18px}.public-wordmark{margin-bottom:28px}.public-status-panel{grid-template-columns:1fr;gap:9px}.public-status-icon{width:34px;height:34px}.public-landing-actions{display:grid;grid-template-columns:1fr}.public-landing-actions .btn{width:100%}.footer-powered{font-size:.62rem}}
@media(prefers-reduced-motion:reduce){.ep-btn-primary{transition:none}}

/* Higher-specificity guards for legacy public-mode rules defined earlier. */
body.public-mode .auth-shell{padding:34px 16px 76px;background:radial-gradient(circle at 12% 10%,color-mix(in srgb,var(--color-primary-soft) 74%,transparent),transparent 31%),radial-gradient(circle at 88% 90%,color-mix(in srgb,var(--color-info-soft) 62%,transparent),transparent 33%),var(--color-bg)}
body.public-mode .two-factor-gate{background:radial-gradient(circle at 12% 10%,color-mix(in srgb,var(--color-primary-soft) 74%,transparent),transparent 31%),radial-gradient(circle at 88% 90%,color-mix(in srgb,var(--color-info-soft) 62%,transparent),transparent 33%),var(--color-bg)}
body.public-mode .page-home ul{max-width:none;margin:0;padding:0 0 0 18px;border:0;border-radius:0;background:transparent}
body.public-mode .page-home .public-status-panel ul{padding-left:18px}
body.public-mode .context-page{background:radial-gradient(circle at 10% 10%,color-mix(in srgb,var(--color-primary-soft) 70%,transparent),transparent 32%),var(--color-bg)}body.public-mode .context-icon{color:#f8ffff;background:var(--color-primary);box-shadow:none}body.public-mode .context-card{color:var(--color-text-primary);border-color:var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-sm)}body.public-mode .context-card button.btn-warning{color:#f8ffff;border-color:var(--color-primary);background:var(--color-primary)}body.public-mode .context-card button.btn-warning:hover{background:var(--color-primary-hover)}
@media(max-width:575.98px){body.public-mode .auth-shell{padding:20px 12px 72px}}

/* GradeStudent workspace */
.page-grade-student{min-height:100vh;padding:20px clamp(14px,2.6vw,38px) 44px;background:var(--color-bg)}.grade-workspace{width:min(100%,1480px);margin:0 auto}.grade-workspace-header{position:sticky;z-index:20;top:64px;margin-bottom:14px;border:1px solid var(--color-border);border-radius:var(--radius-dialog);background:color-mix(in srgb,var(--color-surface) 95%,transparent);box-shadow:var(--shadow-card);backdrop-filter:blur(14px)}.grade-header-main{padding:13px 16px 11px;display:flex;align-items:center;justify-content:space-between;gap:24px}.grade-student-context{min-width:0}.grade-back-link{width:max-content;margin-bottom:4px;display:inline-flex;align-items:center;gap:5px;color:var(--color-text-muted);font-size:.7rem;font-weight:700;text-decoration:none}.grade-back-link:hover{color:var(--color-primary-hover)}.grade-title-row{display:flex;align-items:center;gap:10px}.grade-eyebrow{margin:0;color:var(--color-primary-hover);font-size:.64rem;font-weight:800;letter-spacing:.075em;text-transform:uppercase}.grade-title-row h1{margin:1px 0 0;color:var(--color-text-primary);font-size:1.18rem;font-weight:800;letter-spacing:-.018em}.grade-readonly-badge{padding:4px 8px;display:inline-flex;align-items:center;gap:5px;color:var(--color-info);border:1px solid color-mix(in srgb,var(--color-info) 25%,var(--color-border));border-radius:999px;background:var(--color-info-soft);font-size:.66rem;font-weight:750}.grade-context-meta{margin-top:7px;display:flex;align-items:center;flex-wrap:wrap;gap:5px 16px}.grade-context-meta span{display:flex;align-items:center;gap:5px;color:var(--color-text-muted);font-size:.68rem}.grade-context-meta b{color:var(--color-text-secondary);font-weight:700}.grade-context-meta i{max-width:260px;overflow:hidden;color:var(--color-text-primary);font-style:normal;text-overflow:ellipsis;white-space:nowrap}.grade-summary-actions{display:flex;align-items:center;gap:16px}.grade-summary-metrics{display:flex;align-items:center;gap:8px}.grade-summary-metrics span{min-width:94px;padding:7px 10px;display:flex;flex-direction:column;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-secondary)}.grade-summary-metrics b{color:var(--color-text-primary);font-size:.82rem;font-variant-numeric:tabular-nums}.grade-summary-metrics small{color:var(--color-text-muted);font-size:.61rem}.grade-bulk-actions{display:flex;align-items:center;gap:7px}.grade-bulk-actions .btn{min-height:36px;display:inline-flex;align-items:center;gap:6px;border-radius:var(--radius-control);font-size:.74rem;font-weight:700;white-space:nowrap}.grade-type-nav{padding:0 10px;display:flex;align-items:center;gap:3px;overflow-x:auto;border-top:1px solid var(--color-border);scrollbar-width:thin}.grade-type-nav-item{min-height:39px;padding:0 9px;display:inline-flex;align-items:center;gap:7px;color:var(--color-text-muted);border:0;border-bottom:2px solid transparent;background:transparent;font-size:.69rem;font-weight:700;white-space:nowrap}.grade-type-nav-item b{min-width:20px;padding:2px 5px;color:var(--color-text-secondary);border-radius:999px;background:var(--color-surface-secondary);font-size:.61rem;text-align:center}.grade-type-nav-item:hover,.grade-type-nav-item.active{color:var(--color-primary-hover)}.grade-type-nav-item.active{border-bottom-color:var(--color-primary)}.grade-type-nav-item.active b{color:var(--color-primary-hover);background:var(--color-primary-soft)}.grade-type-nav-item.is-error{color:var(--color-danger)}.grade-page-message{margin-bottom:12px;padding:10px 12px;color:var(--color-danger);border:1px solid color-mix(in srgb,var(--color-danger) 25%,var(--color-border));border-radius:var(--radius-control);background:var(--color-danger-soft);font-size:.78rem}.grade-sections-root{scroll-margin-top:180px}
.page-grade-student .grade-type-section{margin:0 0 12px;scroll-margin-top:174px;border-color:var(--color-border);border-radius:var(--radius-dialog);box-shadow:none}.page-grade-student .grade-type-section>summary{min-height:46px;padding:0 14px;background:var(--color-surface)}.page-grade-student .grade-type-section[open]>summary{border-bottom:1px solid var(--color-border);background:var(--color-surface-secondary)}.page-grade-student .grade-type-section-body{padding:12px;background:var(--color-surface-secondary)}.page-grade-student .grade-type-section.is-empty .grade-type-section-body{padding:9px 14px}.grade-question-card{margin-bottom:10px;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface)}.grade-question-card:last-child{margin-bottom:0}.grade-question-header{min-height:52px;padding:10px 13px;display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;border-bottom:1px solid var(--color-border)}.grading-number{width:26px;height:26px;display:grid;place-items:center;color:var(--color-primary-hover);border-radius:8px;background:var(--color-primary-soft);font-size:.68rem;font-weight:800}.grade-question-header h3{margin:0;overflow:hidden;color:var(--color-text-primary);font-size:.84rem;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.grade-question-type{display:block;margin-top:2px;color:var(--color-text-muted);font-size:.63rem}.grading-max{color:var(--color-text-secondary);font-size:.71rem;font-weight:750;white-space:nowrap}.grade-question-body{padding:12px;display:grid;gap:10px}.grade-content-block{min-width:0;padding:11px 12px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface)}.grade-block-label{margin-bottom:7px;display:block;color:var(--color-text-muted);font-size:.62rem;font-weight:800;letter-spacing:.055em;text-transform:uppercase}.grade-readable-content,.grade-answer-text{max-width:100%;color:var(--color-text-secondary);font-size:.78rem;line-height:1.6;overflow-wrap:anywhere}.grade-answer-text{white-space:pre-wrap}.grade-answer-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.8fr);gap:10px}.grade-student-answer{background:var(--color-surface)}.grade-rubric{background:var(--color-surface-secondary)}.grade-rubric .grade-block-label{color:var(--color-success)}.page-grade-student .grade-no-answer{margin:0;padding:9px 10px;color:var(--color-warning);border:1px solid color-mix(in srgb,var(--color-warning) 25%,var(--color-border));border-radius:8px;background:var(--color-warning-soft);font-size:.75rem}.grade-code-editor{height:300px;overflow:hidden;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface-secondary)}.grade-code-editor .monaco-editor{border-radius:8px}.grade-evaluation-panel{padding:10px 12px;display:grid;grid-template-columns:150px minmax(240px,1fr) auto;align-items:end;gap:10px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface)}.grade-score-entry label,.grade-note-entry label{margin-bottom:5px;display:block;color:var(--color-text-secondary);font-size:.67rem;font-weight:750}.grade-score-entry>div{display:flex;align-items:center;gap:7px}.grade-score-entry input{width:86px;min-height:36px;font-variant-numeric:tabular-nums}.grade-score-entry>div span{color:var(--color-text-muted);font-size:.73rem;font-weight:700}.grade-score-error{min-height:16px;margin-top:3px;display:block;color:var(--color-danger);font-size:.62rem}.grade-note-entry textarea{min-height:58px;resize:vertical;font-size:.76rem}.grade-save-control{min-width:128px;padding-bottom:2px;display:flex;align-items:center;flex-direction:column;gap:5px}.grade-save-control .btn{width:100%;font-weight:700}.grade-save-state{font-size:.63rem;font-weight:700}.grade-save-state.is-saved{color:var(--color-success)}.grade-save-state.is-dirty,.grade-save-state.is-saving{color:var(--color-warning)}.grade-save-state.is-error{color:var(--color-danger)}.grade-evaluation-panel.is-readonly{grid-template-columns:1fr}.grade-score-readonly{display:flex;align-items:center;justify-content:space-between;gap:12px}.grade-score-readonly span,.grade-note-readonly span{color:var(--color-text-muted);font-size:.65rem;font-weight:750;text-transform:uppercase}.grade-score-readonly strong{color:var(--color-text-primary);font-size:.82rem}.grade-note-readonly{padding-top:8px;border-top:1px solid var(--color-border)}.grade-note-readonly p{margin:4px 0 0;color:var(--color-text-secondary);font-size:.76rem;white-space:pre-wrap}.grade-ai-result:empty{display:none}.grade-skeleton-card{margin-bottom:10px;padding:15px;display:grid;gap:12px;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface)}.grade-skeleton-line,.grade-skeleton-block{display:block;border-radius:7px;background:linear-gradient(90deg,var(--color-surface-secondary),color-mix(in srgb,var(--color-surface-secondary) 55%,var(--color-border)),var(--color-surface-secondary));background-size:200% 100%;animation:resultsSkeleton 1.2s ease-in-out infinite}.grade-skeleton-line{width:100%;height:16px}.grade-skeleton-line.is-short{width:32%}.grade-skeleton-block{height:120px}.page-grade-student .code-block{margin:8px 0;padding:11px 12px;overflow:auto;color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface-secondary)!important;font-size:.78rem;line-height:1.5}.page-grade-student pre[class*=language-]{margin:0!important;background:transparent!important}.page-grade-student .stmt-image{max-width:100%;max-height:360px;padding:4px;display:block;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface)}.page-grade-student .stmt-text:empty{display:none}.page-grade-student mjx-container{max-width:100%;overflow-x:auto;overflow-y:hidden;font-size:105%!important}
@media(max-width:1100px){.grade-header-main{align-items:flex-start;flex-direction:column;gap:10px}.grade-summary-actions{width:100%;justify-content:space-between}.grade-workspace-header{top:58px}.grade-answer-grid{grid-template-columns:1fr}.grade-evaluation-panel{grid-template-columns:140px minmax(220px,1fr) auto}}
@media(max-width:767.98px){.page-grade-student{padding:10px 8px 28px}.grade-workspace-header{position:static}.grade-header-main{padding:11px}.grade-title-row{align-items:flex-start;flex-direction:column;gap:5px}.grade-context-meta{display:grid;grid-template-columns:1fr}.grade-context-meta i{max-width:65vw}.grade-summary-actions{align-items:stretch;flex-direction:column}.grade-summary-metrics{display:grid;grid-template-columns:1fr 1fr}.grade-summary-metrics span{min-width:0}.grade-bulk-actions{display:grid;grid-template-columns:1fr}.grade-bulk-actions .btn{justify-content:center}.grade-type-nav{padding-inline:5px}.page-grade-student .grade-type-section{scroll-margin-top:10px}.page-grade-student .grade-type-section-body{padding:8px}.grade-question-header{grid-template-columns:26px minmax(0,1fr);align-items:start}.grading-max{grid-column:2}.grade-question-header h3{white-space:normal}.grade-question-body{padding:8px}.grade-answer-grid{grid-template-columns:1fr}.grade-evaluation-panel{grid-template-columns:1fr}.grade-save-control{align-items:stretch}.grade-code-editor{height:260px}}
@media(prefers-reduced-motion:reduce){.grade-skeleton-line,.grade-skeleton-block{animation:none}}

/* Phase 4B: participant timing controls and read-only timing summaries. */
.participant-timing{min-width:128px}.participant-timing-label,.participant-extra-time{display:block;color:var(--color-text-muted);font-size:.64rem}.participant-timing-value{display:block;color:var(--color-text-primary);font-size:.76rem;font-variant-numeric:tabular-nums}.participant-extra-time{margin-top:2px;color:var(--color-primary-hover);font-weight:750}.modal-eyebrow{margin:0 0 2px;color:var(--color-primary-hover);font-size:.63rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.extra-time-current{padding:10px;display:grid;grid-template-columns:1fr auto;gap:5px 12px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-secondary);font-size:.75rem}.extra-time-current span{color:var(--color-text-muted)}.extra-time-current strong{color:var(--color-text-primary);font-variant-numeric:tabular-nums}.extra-time-presets{display:flex;gap:6px}.extra-time-presets .btn{min-width:58px;font-weight:700}.grade-timing-meta{margin-top:8px;padding-top:8px;display:flex;align-items:center;flex-wrap:wrap;gap:5px 16px;border-top:1px solid var(--color-border)}.grade-timing-meta span{display:flex;align-items:center;gap:5px;color:var(--color-text-muted);font-size:.67rem}.grade-timing-meta b{color:var(--color-text-secondary);font-weight:700}.grade-timing-meta i{color:var(--color-text-primary);font-style:normal;font-variant-numeric:tabular-nums}.results-company-id,.results-timing-cell{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}.results-timing-cell{color:var(--color-text-primary)!important;font-weight:650}
@media(max-width:767.98px){.exam-participants-table th:nth-child(4),.exam-participants-table td:nth-child(4),.exam-participants-table th:nth-child(5),.exam-participants-table td:nth-child(5){display:none}.exam-participants-table th:first-child{width:32%}.exam-participants-table th:nth-child(2){width:24%}.exam-participants-table th:nth-child(3){width:18%}.exam-participants-table th:last-child{width:26%}.grade-timing-meta{display:grid;grid-template-columns:1fr}.results-company-id,.results-timing-cell{max-width:none}}
@media(max-width:575.98px){.exam-participants-table th:nth-child(3),.exam-participants-table td:nth-child(3){display:table-cell}.exam-participants-table th:first-child{width:36%}.exam-participants-table th:nth-child(2){width:25%}.exam-participants-table th:nth-child(3){width:18%}.exam-participants-table th:last-child{width:21%}.participant-timing-label,.participant-extra-time{font-size:.57rem}.participant-timing-value{font-size:.67rem}}

/* Results workspace */
.page-results{min-height:100vh;padding:24px clamp(16px,3vw,42px) 40px;background:var(--color-bg)}.results-workspace{width:min(100%,1540px);margin:0 auto}.results-page-header{margin-bottom:18px;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.results-page-header h1{margin:2px 0 4px;color:var(--color-text-primary);font-size:clamp(1.55rem,2.3vw,2rem);font-weight:800;letter-spacing:-.025em}.results-page-header p:not(.results-eyebrow){margin:0;color:var(--color-text-muted);font-size:.86rem}.results-eyebrow{margin:0;color:var(--color-primary-hover);font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.results-page-header .btn,.results-top-actions .btn{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:var(--radius-control);font-size:.8rem;font-weight:700}
.results-command-surface{margin-bottom:14px;padding:14px 16px;display:grid;grid-template-columns:minmax(280px,420px) minmax(220px,1fr) auto;align-items:end;gap:14px 20px;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface);box-shadow:var(--shadow-card)}.results-exam-control .form-label{margin-bottom:6px;color:var(--color-text-secondary);font-size:.72rem;font-weight:750}.results-exam-picker-button{width:100%;min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--color-text-primary);border:1px solid var(--color-border-strong);background:var(--color-surface);font-size:.84rem;font-weight:700;text-align:left}.results-exam-picker-button:hover,.results-exam-picker-button[aria-expanded=true]{color:var(--color-text-primary);border-color:var(--color-primary);background:var(--color-primary-soft)}.results-exam-picker-button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.results-exam-menu{width:min(420px,calc(100vw - 34px));max-height:380px;overflow:hidden;border-radius:var(--radius-panel);box-shadow:var(--shadow-dropdown)}.results-exam-search-wrap,.results-search-field{position:relative}.results-exam-search-wrap>i,.results-search-field>i{position:absolute;z-index:2;top:50%;left:12px;color:var(--color-text-muted);transform:translateY(-50%);pointer-events:none}.results-exam-search-wrap .form-control,.results-search-field .form-control{padding-left:34px}.results-exam-options{max-height:300px;margin-top:7px;overflow:auto}.results-exam-option{width:100%;padding:9px 10px;display:flex;flex-direction:column;gap:2px;color:var(--color-text-primary);border:0;border-radius:8px;background:transparent;text-align:left}.results-exam-option:hover,.results-exam-option.active{background:var(--color-primary-soft)}.results-exam-option span{font-size:.8rem;font-weight:750}.results-exam-option small,.results-exam-no-match{color:var(--color-text-muted);font-size:.71rem}.results-exam-no-match{padding:18px 10px;text-align:center}.results-exam-summary{padding-bottom:8px;display:flex;align-items:center;flex-wrap:wrap;gap:7px;color:var(--color-text-secondary);font-size:.76rem}.results-exam-summary strong{width:100%;color:var(--color-text-primary);font-size:.88rem}.results-meta-dot{width:3px;height:3px;border-radius:50%;background:var(--color-border-strong)}.results-top-actions{padding-bottom:2px;display:flex;align-items:center;justify-content:flex-end;gap:7px}.results-action-menu{min-width:220px;border-radius:var(--radius-panel);box-shadow:var(--shadow-dropdown)}.results-action-menu .dropdown-item{padding:8px 10px;display:flex;align-items:center;gap:9px;border-radius:7px;font-size:.78rem}.results-action-menu .dropdown-item i{width:18px;color:var(--color-text-muted);text-align:center}.results-progress{margin:0 0 10px;padding:9px 12px;color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);font-size:.76rem}
.results-table-panel{overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface);box-shadow:var(--shadow-card)}.results-table-toolbar{padding:12px 14px;display:grid;grid-template-columns:minmax(260px,1fr) 190px 210px auto auto;align-items:center;gap:8px;border-bottom:1px solid var(--color-border)}.results-table-toolbar .form-control,.results-table-toolbar .form-select{min-height:38px;font-size:.78rem}.results-table-toolbar .btn{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;font-size:.77rem;font-weight:700}.results-clear-filter{min-width:auto!important;padding-inline:6px!important;color:var(--color-text-muted)!important;text-decoration:none!important}.results-filter-dot{width:6px;height:6px;border-radius:50%;background:var(--color-primary)}.results-additional-filters{padding:9px 14px;display:none;align-items:center;gap:9px;border-bottom:1px solid var(--color-border);background:var(--color-surface-secondary)}.results-additional-filters.show{display:flex}.results-additional-filters label{margin:0;color:var(--color-text-secondary);font-size:.74rem;font-weight:700}.results-additional-filters .form-select{width:210px}.results-table-heading{padding:10px 14px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--color-border)}.results-table-heading>div:first-child{display:flex;align-items:baseline;gap:10px}.results-table-heading strong{color:var(--color-text-primary);font-size:.82rem}.results-table-heading span{color:var(--color-text-muted);font-size:.73rem}.results-grading-progress{width:min(200px,24vw);height:5px;overflow:hidden;border-radius:999px;background:var(--color-surface-secondary)}.results-grading-progress span{height:100%;display:block;border-radius:inherit;background:var(--color-primary);transition:width var(--motion-layout) var(--ease-standard)}.results-table-wrap{border-radius:0!important}.results-table{min-width:980px}.results-table thead th{padding:9px 12px!important;color:var(--color-text-muted)!important;background:var(--color-surface-secondary)!important;font-size:.68rem;font-weight:800;letter-spacing:.025em;text-transform:uppercase;white-space:nowrap}.results-table tbody tr{height:52px}.results-table tbody td{padding:8px 12px!important;color:var(--color-text-secondary);font-size:.77rem;vertical-align:middle}.results-table tbody td strong{color:var(--color-text-primary);font-weight:700}.results-email-cell{max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.results-score{font-variant-numeric:tabular-nums}.results-status,.results-participant-state{min-height:24px;padding:3px 8px;display:inline-flex;align-items:center;gap:5px;border:1px solid var(--color-border);border-radius:999px;font-size:.68rem;font-weight:750;white-space:nowrap}.results-status-graded{color:var(--color-success);border-color:color-mix(in srgb,var(--color-success) 28%,var(--color-border));background:var(--color-success-soft)}.results-status-pending{color:var(--color-warning);border-color:color-mix(in srgb,var(--color-warning) 28%,var(--color-border));background:var(--color-warning-soft)}.results-participant-state{color:var(--color-text-secondary);background:var(--color-surface-secondary)}.results-row-progress{display:block;margin-top:3px;font-size:.65rem}.results-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px}.btn-icon-secondary{width:32px;height:32px;padding:0;display:inline-grid;place-items:center;color:var(--color-text-secondary);border:1px solid var(--color-border);background:var(--color-surface)}.btn-icon-secondary:hover{color:var(--color-text-primary);border-color:var(--color-border-strong);background:var(--color-surface-secondary)}.results-mobile-email{display:none}
.results-state{min-height:180px;padding:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--color-text-secondary);text-align:center}.results-state>strong{color:var(--color-text-primary);font-size:.84rem}.results-state-icon{width:38px;height:38px;display:grid;place-items:center;color:var(--color-primary);border-radius:12px;background:var(--color-primary-soft);font-size:1rem}.results-state-error .results-state-icon{color:var(--color-danger);background:var(--color-danger-soft)}.results-empty-row td{padding:0!important}.results-skeleton-toolbar{padding:12px 14px;display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px;border-bottom:1px solid var(--color-border)}.results-skeleton-toolbar span,.results-skeleton-line{height:16px;display:block;border-radius:6px;background:linear-gradient(90deg,var(--color-surface-secondary),color-mix(in srgb,var(--color-surface-secondary) 55%,var(--color-border)),var(--color-surface-secondary));background-size:200% 100%;animation:resultsSkeleton 1.2s ease-in-out infinite}.results-skeleton-toolbar span{height:38px}@keyframes resultsSkeleton{from{background-position:200% 0}to{background-position:-200% 0}}.job-result-icon{width:74px;height:74px;margin:0 auto;display:grid;place-items:center;color:var(--color-primary);border-radius:50%;background:var(--color-primary-soft);font-size:2.6rem;animation:jobResultPop .55s ease-out}@keyframes jobResultPop{0%{transform:scale(.45);opacity:0}70%{transform:scale(1.08);opacity:1}100%{transform:scale(1)}}
@media(max-width:1100px){.results-command-surface{grid-template-columns:minmax(280px,1fr) minmax(220px,1fr)}.results-top-actions{grid-column:1/-1;padding-top:10px;justify-content:flex-start;border-top:1px solid var(--color-border)}.results-table-toolbar{grid-template-columns:minmax(240px,1fr) 170px 190px auto}.results-clear-filter{grid-column:1/-1;justify-self:start;min-height:auto!important}}
@media(max-width:767.98px){.page-results{padding:16px 10px 28px}.results-page-header{align-items:center}.results-page-header p:not(.results-eyebrow){display:none}.results-page-header .btn span{display:none}.results-command-surface{grid-template-columns:1fr;padding:12px}.results-exam-summary,.results-top-actions{grid-column:auto}.results-top-actions{width:100%;display:grid;grid-template-columns:1fr 1fr;align-items:stretch}.results-top-actions>.btn{grid-column:1/-1}.results-top-actions .dropdown>.btn{width:100%}.results-table-toolbar{grid-template-columns:1fr 1fr;padding:10px}.results-search-field,#gradingSelect{grid-column:1/-1}.results-clear-filter{grid-column:auto;justify-self:stretch}.results-additional-filters{align-items:stretch;flex-direction:column}.results-additional-filters .form-select{width:100%}.results-table-heading{align-items:stretch;flex-direction:column;gap:7px}.results-grading-progress{width:100%}.results-table-wrap{overflow:visible}.results-table{min-width:0;padding:8px;display:block}.results-table thead{display:none}.results-table tbody{display:grid;gap:8px}.results-table tbody tr{height:auto;display:grid;grid-template-columns:1fr 1fr;overflow:hidden;border:1px solid var(--color-border);border-radius:11px;background:var(--color-surface)}.results-table tbody td{min-width:0;padding:8px 10px!important;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--color-border);text-align:right!important}.results-table tbody td:before{content:attr(data-label);color:var(--color-text-muted);font-size:.65rem;font-weight:750;text-align:left;text-transform:uppercase}.results-table tbody td:nth-child(2),.results-table tbody td:nth-child(3),.results-table tbody td:nth-child(5),.results-table tbody td:nth-child(6),.results-table tbody td:last-child{grid-column:1/-1}.results-table tbody td:nth-child(2){align-items:flex-start;flex-direction:column;gap:2px;text-align:left!important}.results-table tbody td:nth-child(2):before{display:none}.results-email-cell{display:none!important}.results-mobile-email{max-width:100%;display:block;color:var(--color-text-muted);font-size:.69rem;overflow-wrap:anywhere}.results-row-actions{width:100%}.results-row-actions>.btn:first-child{flex:1}.results-empty-row{display:block!important}.results-empty-row td{display:block!important}.results-empty-row td:before{display:none}.results-loading .results-table{min-width:760px;display:table}.results-loading .results-table thead{display:table-header-group}.results-loading .results-table tbody{display:table-row-group}.results-loading .results-table tbody tr{display:table-row}.results-loading .results-table tbody td{display:table-cell}.results-skeleton-toolbar{grid-template-columns:1fr}}

/* Focused UX correction: anonymous shell, shared column filters, and dense results tables. */
.public-controls{position:fixed;top:18px;right:20px;z-index:1080;display:flex;align-items:center;gap:8px}
.public-footer{position:fixed;right:16px;bottom:18px;left:16px;z-index:3;color:var(--color-text-muted);font-size:.7rem;text-align:center}.public-footer span{padding:0 6px;color:var(--color-border-strong)}
body.public-mode{color:var(--color-text-primary);background:var(--color-bg)}
body.public-mode .auth-shell,body.public-mode .public-landing{background:radial-gradient(circle at 12% 12%,color-mix(in srgb,var(--color-primary-soft) 64%,transparent),transparent 34%),radial-gradient(circle at 88% 88%,color-mix(in srgb,var(--color-info-soft) 48%,transparent),transparent 36%),var(--color-bg)}
.auth-shell{padding:74px 16px 82px}.auth-card{width:min(100%,460px);padding:38px 40px;border-radius:18px;box-shadow:0 18px 50px color-mix(in srgb,var(--color-text-primary) 10%,transparent)}
.auth-brand{font-size:1rem}.auth-brand-mark,.public-wordmark-mark{width:34px;height:34px;border-radius:10px;font-size:.7rem}
.auth-heading{margin:28px 0 26px}.auth-eyebrow,.public-eyebrow{font-size:.72rem;font-weight:750;letter-spacing:.015em;text-transform:none}.auth-heading h1{margin:6px 0 7px;font-size:1.95rem;line-height:1.18}.auth-heading p:last-child{font-size:.92rem;line-height:1.55}
.auth-card .form-label{font-size:.82rem}.auth-card .form-control{min-height:48px;padding:.68rem .82rem}.auth-card .ep-btn-primary,.auth-card>.btn,.auth-card #credentialStep>.btn{min-height:46px}.auth-secondary-link{margin-top:16px;text-align:center;font-size:.8rem}.auth-form-hint{color:var(--color-text-muted);font-size:.76rem;line-height:1.5}.auth-code-input{font-size:1.05rem;font-weight:750;letter-spacing:.2em;text-align:center}.auth-message{padding:0;color:var(--color-danger)!important;line-height:1.5}.auth-message:not(:empty){margin-top:16px!important}
.two-factor-card{width:min(100%,480px)}.two-factor-body{padding:0}.two-factor-setup-grid{display:grid;grid-template-columns:170px minmax(0,1fr);align-items:center;gap:24px}.two-factor-step{color:var(--color-primary-hover);font-size:.7rem;font-weight:750}.qr-shell{padding:8px;display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface-secondary)}.qr-shell img{width:154px;height:154px;padding:7px;border-radius:7px;background:#fff}.secret-box{padding:10px;word-break:break-all;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-secondary)}.secret-box code{color:var(--color-text-primary);font-size:.78rem;font-weight:700}
.public-landing{padding:76px 16px 82px}.public-landing-card{width:min(100%,640px);padding:38px 42px;border-radius:18px;box-shadow:0 18px 50px color-mix(in srgb,var(--color-text-primary) 10%,transparent)}.public-wordmark{margin-bottom:30px;font-size:1rem}.public-landing h1{font-size:clamp(1.85rem,3vw,2.25rem)}.public-lead{margin:8px 0 22px;font-size:.9rem}.public-status-panel{padding:15px;grid-template-columns:38px minmax(0,1fr);gap:12px;background:color-mix(in srgb,var(--color-warning-soft) 72%,var(--color-surface));border-color:color-mix(in srgb,var(--color-warning) 22%,var(--color-border))}.public-status-icon{width:36px;height:36px}.public-status-panel h2{font-size:.95rem}.public-status-panel p{margin:0;font-size:.8rem}.public-landing-actions{margin-top:18px}.public-help{margin-top:18px;font-size:.72rem}
body.public-mode .page-home .public-landing-card h1{font-size:clamp(1.85rem,3vw,2.25rem)}.two-factor-card #message.alert{padding:10px 12px;border:1px solid color-mix(in srgb,var(--color-danger) 28%,var(--color-border));font-size:.78rem;line-height:1.5}
body.public-mode .btn-outline-secondary{color:var(--color-text-secondary);border-color:var(--color-border-strong);background:var(--color-surface)}body.public-mode .btn-outline-secondary:hover{color:var(--color-text-primary);border-color:var(--color-primary);background:var(--color-primary-soft)}
:root[data-theme="dark"] body.public-mode .auth-card,:root[data-theme="dark"] body.public-mode .public-landing-card{box-shadow:0 22px 64px rgba(0,0,0,.34)}:root[data-theme="dark"] body.public-mode .auth-heading h1,:root[data-theme="dark"] body.public-mode .public-landing h1,:root[data-theme="dark"] body.public-mode .public-status-panel h2{color:#f1f5f9}:root[data-theme="dark"] body.public-mode .auth-heading p,:root[data-theme="dark"] body.public-mode .public-lead,:root[data-theme="dark"] body.public-mode .public-status-panel p{color:#bdc9d8}:root[data-theme="dark"] body.public-mode .language-current,:root[data-theme="dark"] body.public-mode .topbar-icon{color:#d7e1ed;background:#111c2e;border-color:#40506a}

.column-filter-trigger,.result-column-filter{min-height:28px;padding:3px 5px;display:inline-flex;align-items:center;gap:5px;color:inherit;border:0;border-radius:6px;background:transparent;font:inherit;text-align:left}.column-filter-trigger i,.result-column-filter i{color:var(--color-text-muted);font-size:.65rem}.column-filter-trigger:hover,.column-filter-trigger:focus-visible,.result-column-filter:hover,.result-column-filter:focus-visible{color:var(--color-text-primary);background:var(--color-surface-hover);outline:0;box-shadow:var(--focus-ring)}.column-filter-trigger.is-active,.result-column-filter.is-active,.column-filter-trigger.is-active i,.result-column-filter.is-active i{color:var(--color-primary-hover)}
.column-filter-popover{position:fixed;z-index:1095;width:min(270px,calc(100vw - 20px));padding:14px;display:grid;gap:9px;color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface);box-shadow:var(--shadow-elevated)}.column-filter-title{font-size:.78rem;font-weight:750}.column-filter-popover .form-control,.column-filter-popover .form-select{min-height:36px;color:var(--color-text-primary);border-color:var(--color-border-strong);background:var(--color-surface)}.column-filter-popover .form-control:focus,.column-filter-popover .form-select:focus{border-color:var(--color-primary);box-shadow:var(--focus-ring)}.column-filter-actions{display:flex;justify-content:flex-end;gap:7px}.column-filter-options{max-height:210px;overflow:auto;display:grid;gap:3px}.column-filter-option{width:100%;min-height:34px;padding:7px 9px;color:var(--color-text-secondary);border:0;border-radius:6px;background:transparent;font-size:.78rem;text-align:left}.column-filter-option:hover,.column-filter-option:focus-visible,.column-filter-option.is-selected{color:var(--color-primary-hover);background:var(--color-primary-soft);outline:0}.column-filter-empty{padding:14px 6px;color:var(--color-text-muted);font-size:.75rem;text-align:center}
.students-table th{font-weight:650!important;letter-spacing:0!important;text-transform:none!important}.students-table .column-filter-trigger{font-size:.72rem;font-weight:650}.students-active-filters:before{content:"Ֆիլտրեր՝";color:var(--color-text-muted);font-size:.72rem}.students-toolbar{padding-bottom:var(--space-4)}
.results-table-toolbar{grid-template-columns:minmax(280px,620px) auto;justify-content:space-between}.results-clear-filter{justify-self:end}.results-active-filters{padding:8px 14px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--color-border);background:var(--color-surface-secondary)}.results-active-filters>span{color:var(--color-text-muted);font-size:.7rem}.result-filter-chip{padding:4px 8px;display:inline-flex;align-items:center;gap:4px;color:var(--color-primary-hover);border:1px solid color-mix(in srgb,var(--color-primary) 34%,var(--color-border));border-radius:999px;background:var(--color-primary-soft);font-size:.7rem}.results-clear-filters{padding:4px 6px;color:var(--color-text-muted);border:0;background:transparent;font-size:.7rem;text-decoration:underline}
.results-table-wrap{overflow:auto!important;scrollbar-gutter:stable}.results-table{min-width:1080px;table-layout:fixed}.results-table thead th{font-weight:650;letter-spacing:0;text-transform:none}.results-table th:nth-child(1){width:110px}.results-table th:nth-child(2){width:230px}.results-table th:nth-child(3){width:130px}.results-table th:nth-child(4){width:210px}.results-table th:nth-child(5){width:105px}.results-table th:nth-child(6){width:155px}.results-table th:nth-child(7){width:135px}.results-table th:nth-child(8){width:145px}.results-company-id,.results-email-cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.results-actions-column,.results-actions-cell{position:sticky!important;right:0;z-index:2;background:var(--color-surface)!important;border-left:1px solid var(--color-border)!important;box-shadow:-7px 0 10px -10px var(--color-text-muted)}.results-actions-column{z-index:4!important;background:var(--color-surface-secondary)!important}.results-table tbody tr:hover .results-actions-cell{background:var(--color-surface-hover)!important}.results-row-actions{min-width:120px;padding-right:2px}.results-row-menu-popover{position:fixed;z-index:1100;min-width:205px;padding:6px;color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface);box-shadow:var(--shadow-elevated)}.results-row-menu-popover button{width:100%;padding:8px 10px;display:flex;align-items:center;gap:9px;color:var(--color-text-secondary);border:0;border-radius:6px;background:transparent;font-size:.78rem;text-align:left}.results-row-menu-popover button:hover,.results-row-menu-popover button:focus-visible{color:var(--color-primary-hover);background:var(--color-primary-soft);outline:0}
.grade-timing-meta{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:8px 16px}.grade-timing-meta span{min-width:0;display:grid;gap:2px}.grade-timing-meta b{font-size:.64rem}.grade-timing-meta i{font-size:.74rem;font-weight:700}
@media(max-width:767.98px){.public-controls{top:10px;right:10px}.auth-shell,.public-landing{padding:64px 12px 72px}.auth-card,.public-landing-card{padding:26px 22px}.auth-heading{margin:24px 0 22px}.auth-heading h1{font-size:1.7rem}.two-factor-setup-grid{grid-template-columns:1fr}.qr-shell img{width:165px;height:165px}.results-table-toolbar{grid-template-columns:1fr}.results-clear-filter{justify-self:start;min-height:auto!important}.results-table-wrap{overflow:visible!important}.results-table{min-width:0}.results-actions-column,.results-actions-cell{position:static!important;box-shadow:none}.results-table tbody td:nth-child(2),.results-table tbody td:nth-child(6),.results-table tbody td:nth-child(7),.results-table tbody td:last-child{grid-column:1/-1}.grade-timing-meta{grid-template-columns:1fr 1fr}.public-footer{bottom:12px;font-size:.62rem}}
@media(max-width:430px){.grade-timing-meta{grid-template-columns:1fr}.public-controls .language-current{padding-inline:8px}.public-controls{gap:6px}}
/* Focused Analytics + Exams UX pass */
.analysis-chart-tools{position:absolute;z-index:3;top:7px;right:7px;left:7px;display:flex;align-items:center;justify-content:space-between;gap:8px;pointer-events:none}
.analysis-chart-tool-title{max-width:58%;overflow:hidden;color:var(--color-text-muted);font-size:.66rem;font-weight:750;text-overflow:ellipsis;white-space:nowrap;opacity:0;transition:opacity .16s ease}
.analysis-chart-tool-actions{display:inline-flex;align-items:center;gap:4px;pointer-events:auto}
.analysis-chart-tool{width:29px;height:29px;padding:0;display:inline-grid;place-items:center;color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);font-size:.78rem}
.analysis-chart-tool{box-shadow:0 2px 8px rgba(15,23,42,.12)}
.analysis-chart-tool:hover{color:var(--color-primary-hover);border-color:var(--color-primary);background:var(--color-primary-soft)}
.analysis-chart:fullscreen,.analysis-chart-fullscreen-fallback{width:100vw!important;height:100vh!important;max-height:none!important;margin:0!important;padding:58px 30px 28px!important;display:block;overflow:hidden;background:var(--color-surface);border-radius:0;z-index:2147483000}
.analysis-chart:fullscreen .analysis-chart-tools,.analysis-chart-fullscreen-fallback .analysis-chart-tools{top:16px;right:24px;left:24px}
.analysis-chart:hover .analysis-chart-tool-title,.analysis-chart:focus-within .analysis-chart-tool-title,.analysis-chart.is-analysis-fullscreen .analysis-chart-tool-title{opacity:1}
.analytics-workspace{min-height:calc(100vh - 64px);padding:clamp(20px,3vw,38px) clamp(14px,2.6vw,38px) 46px;background:var(--color-bg)}
.analytics-page-shell{width:min(100%,1480px);margin:0 auto}.analytics-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:18px}.analytics-heading{min-width:0}.analytics-back-link{display:inline-flex;align-items:center;gap:6px;color:var(--color-text-muted);font-size:.74rem;font-weight:700;text-decoration:none}.analytics-back-link:hover{color:var(--color-primary-hover)}.analytics-eyebrow{margin:13px 0 4px;color:var(--color-primary-hover);font-size:.68rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.analytics-heading h1{margin:0;color:var(--color-text-primary);font-size:clamp(1.55rem,2.6vw,2.05rem);font-weight:800;letter-spacing:-.025em}.analytics-heading>p:not(.analytics-eyebrow){margin:5px 0 0;color:var(--color-text-secondary);font-size:.86rem}.analytics-exam-title{margin-top:10px;color:var(--color-primary-hover);font-size:.8rem;font-weight:750}.analytics-back-button{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.analytics-filter-card{margin-bottom:18px;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface);box-shadow:var(--shadow-sm)}.analytics-filter-toolbar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) auto auto;align-items:end;gap:10px}.analytics-filter-field label{display:block;margin:0 0 5px;color:var(--color-text-muted);font-size:.68rem;font-weight:750}.analytics-filter-field select{min-height:37px}.analytics-filter-apply{min-height:37px;white-space:nowrap}.analytics-filter-clear{min-height:37px;padding-inline:5px;color:var(--color-text-muted);font-size:.74rem;white-space:nowrap}.analytics-filter-clear:hover{color:var(--color-primary-hover)}.analysis-empty{min-height:210px;display:grid;place-items:center;text-align:center;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface)}.analysis-empty .spinner-border{color:var(--color-primary)!important}.analysis-card{height:100%;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface);box-shadow:var(--shadow-sm)}.analysis-card h3{margin:0 0 4px;color:var(--color-text-primary);font-size:.96rem;font-weight:760}.analysis-card p,.analysis-card small{color:var(--color-text-muted);font-size:.74rem}.analysis-card p{margin:0}.analysis-chart{position:relative;height:268px;margin-top:13px}.analysis-chart-tall{height:330px}.analysis-stat{min-height:96px;padding:14px 16px;display:flex;align-items:center;gap:12px;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface);box-shadow:var(--shadow-sm)}.analysis-stat-icon{width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px;color:var(--color-primary-hover);border:1px solid color-mix(in srgb,var(--color-primary) 22%,var(--color-border));border-radius:12px;background:var(--color-primary-soft);font-size:1rem}.analysis-stat-average .analysis-stat-icon{color:var(--color-info)}.analysis-stat-graded .analysis-stat-icon{color:var(--color-success)}.analysis-stat-passing .analysis-stat-icon{color:var(--color-warning)}.analysis-stat-value{color:var(--color-text-primary);font-size:1.3rem;font-weight:820;line-height:1.12;font-variant-numeric:tabular-nums}.analysis-stat-label{margin-top:4px;color:var(--color-text-muted);font-size:.72rem}.analysis-question-table{min-width:760px}.analysis-question-table thead th{color:var(--color-text-muted);background:var(--color-surface-secondary);font-size:.68rem;font-weight:750}.analysis-question-table td{color:var(--color-text-secondary);font-size:.75rem}.analysis-question-name{max-width:450px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.analysis-kind-badge{display:inline-grid;place-items:center;width:23px;height:23px;color:var(--color-primary-hover);border:1px solid color-mix(in srgb,var(--color-primary) 25%,var(--color-border));border-radius:7px;background:var(--color-primary-soft);font-size:.65rem;font-weight:800}.analysis-percent{color:var(--color-text-primary);font-weight:760;font-variant-numeric:tabular-nums}.analysis-status-badge,.analysis-grade-badge{display:inline-flex;align-items:center;padding:3px 7px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface-secondary);color:var(--color-text-secondary);font-size:.65rem;font-weight:700}.analysis-grade-badge.is-complete{color:var(--color-success);border-color:color-mix(in srgb,var(--color-success) 25%,var(--color-border));background:var(--color-success-soft)}.analysis-grade-badge.is-pending{color:var(--color-warning);border-color:color-mix(in srgb,var(--color-warning) 25%,var(--color-border));background:var(--color-warning-soft)}.analytics-workspace .table-responsive{border:1px solid var(--color-border);border-radius:var(--radius-control)}
.analysis-error-state{display:grid;justify-items:center;gap:8px;color:var(--color-danger);font-size:.78rem;text-align:center}.analysis-error-state>i{font-size:1.45rem}.analysis-error-state strong{color:var(--color-text-primary);font-size:.9rem}.analysis-error-state div{color:var(--color-text-muted)}.analysis-chart-empty{height:100%;display:grid;place-items:center;padding:24px;color:var(--color-text-muted);border:1px dashed var(--color-border-strong);border-radius:var(--radius-control);background:var(--color-surface-secondary);font-size:.78rem;text-align:center}
.analysis-chart-dense{overflow-x:auto;scrollbar-width:thin}.analysis-chart-dense canvas{min-width:560px}
@media(max-width:1100px){.analytics-filter-toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}.analytics-filter-apply,.analytics-filter-clear{align-self:end}}
@media(max-width:767.98px){.analytics-workspace{padding:18px 14px 34px}.analytics-page-header{align-items:stretch;flex-direction:column;gap:13px}.analytics-back-button{width:max-content}.analytics-filter-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-filter-clear{grid-column:span 2;justify-self:start}.analytics-filter-apply{width:max-content}.analysis-chart,.analysis-chart-tall{height:245px}.analysis-question-name{max-width:220px}}
@media(max-width:420px){.analytics-filter-toolbar{grid-template-columns:1fr}.analytics-filter-clear{grid-column:auto}}
html[data-theme="dark"] .analysis-card,html[data-theme="dark"] .analysis-stat,html[data-theme="dark"] .analytics-filter-card,html[data-theme="dark"] .analysis-empty{background:var(--color-surface)}
html[data-theme="dark"] .analysis-question-table thead th{background:var(--color-surface-secondary)}
.exams-active-filters{margin-bottom:12px}.exams-column-filter{font-size:.72rem!important}.exams-workspace .exams-table th{white-space:nowrap}.exams-workspace .exams-table th:last-child,.exams-workspace .exams-table td:last-child{width:174px}.exams-workspace .exams-table td:first-child{min-width:240px}.exams-workspace .exams-table .exam-row-actions{justify-content:flex-end}
/* Long translated labels must stay inside their cells. Keep the full value
   available through the native tooltip while showing an ellipsis in the row. */
.exams-workspace .exams-table th,.exams-workspace .exams-table td{min-width:0}
.exams-workspace .exams-table td:nth-child(1),.exams-workspace .exams-table td:nth-child(2),.exams-workspace .exams-table td:nth-child(3),.exams-workspace .exams-table td:nth-child(5){overflow:hidden}
.exams-workspace .exams-table .exam-status{display:inline-flex;max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.exams-workspace .exams-table .exam-name-link,.exams-workspace .exams-table .exam-subject,.exams-workspace .exams-table .exam-groups-inline{min-width:0;max-width:100%}
.exams-workspace .exams-table .exam-row-actions{min-width:0;flex-wrap:nowrap;white-space:nowrap}
.exams-workspace .exams-table .exam-manage-action{min-width:0;max-width:100%;flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.exams-workspace .exams-table .exam-manage-action span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Management table geometry. Column roles are explicit so unrelated tables
   do not inherit width assumptions from another module's column order. */
.management-table{width:100%}
.exams-workspace .management-table,.students-table.management-table,.results-table.management-table{table-layout:fixed}
.management-table .mgmt-col-select{width:44px!important}
.management-table .mgmt-col-index{width:56px!important}
.management-table .mgmt-col-xs{width:96px!important}
.management-table .mgmt-col-sm{width:130px!important}
.management-table .mgmt-col-md{width:180px!important}
.management-table .mgmt-col-lg{width:230px!important}
.management-table .mgmt-col-xl{width:280px!important}
.management-table .mgmt-col-flex{width:auto!important}
.management-table .mgmt-col-actions{width:140px!important}
.management-table .mgmt-col-actions-compact{width:56px!important}
.management-table .mgmt-col-numeric{text-align:right!important;font-variant-numeric:tabular-nums}
.management-table .mgmt-col-status{width:150px!important}
.management-cell-truncate{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
span.management-cell-truncate,strong.management-cell-truncate{display:block}
.management-cell-primary{min-width:0;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.student-name-cell .management-cell-primary{flex:1 1 auto}

/* Question libraries have a different column shape from the exams list.
   Reserve enough space for the translated edit action, while letting the
   title column absorb all remaining width. */
.question-table{min-width:900px;table-layout:fixed}
.question-table th,.question-table td{min-width:0}
.question-table th.mgmt-col-actions,.question-table td:last-child{width:188px!important;min-width:188px;white-space:nowrap}
.question-table .exam-row-actions{min-width:0;flex-wrap:nowrap;gap:6px}
.question-table .question-row-edit{flex:0 0 auto;white-space:nowrap}
.question-table td:nth-child(2){overflow:hidden;overflow-wrap:anywhere}
.question-table td:nth-child(2)>:not(.content-detail-row){max-width:100%}

/* ZIP export uses the application brand color instead of Bootstrap blue. */
.result-export-progress-spinner{color:var(--color-primary)!important}

/* Operational dashboard: deliberately compact, data-led, and built entirely
   from the shared application tokens so dark mode remains automatic. */
.dashboard-page{width:min(100%,1440px);margin:0 auto;padding:clamp(22px,3vw,38px);min-height:calc(100vh - 64px);background:var(--color-bg)}
.dashboard-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:0 0 20px}.dashboard-eyebrow{margin:0 0 5px;color:var(--color-primary);font-size:.67rem;font-weight:800;letter-spacing:.09em}.dashboard-header h1{margin:0;color:var(--color-text-primary);font-size:clamp(1.55rem,2.6vw,2.05rem);font-weight:820;letter-spacing:-.025em}.dashboard-header>div>p:not(.dashboard-eyebrow){margin:5px 0 0;color:var(--color-text-secondary);font-size:.86rem}
.dashboard-summary,.dashboard-summary-skeleton{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;margin-bottom:18px;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface);box-shadow:var(--shadow-sm)}.dashboard-metric{min-height:88px;padding:17px 20px;display:flex;flex-direction:column;justify-content:center;gap:5px;border-inline-end:1px solid var(--color-border);color:var(--color-text-secondary);text-decoration:none}.dashboard-metric:last-child{border:0}.dashboard-metric[href]:hover{background:var(--color-primary-soft);color:var(--color-primary-hover)}.dashboard-metric span{font-size:.73rem;font-weight:700}.dashboard-metric strong{color:var(--color-text-primary);font-size:1.55rem;font-weight:820;line-height:1;font-variant-numeric:tabular-nums}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(290px,1fr);gap:18px}.dashboard-panel{min-width:0;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface);box-shadow:var(--shadow-sm)}.dashboard-panel-heading{padding:17px 18px 14px;border-bottom:1px solid var(--color-border)}.dashboard-panel-heading h2,.dashboard-subheading{margin:0;color:var(--color-text-primary);font-size:1rem;font-weight:800}.dashboard-panel-heading p{margin:4px 0 0;color:var(--color-text-muted);font-size:.73rem}.dashboard-subheading{padding:16px 18px 9px;border-top:1px solid var(--color-border);font-size:.79rem}
.dashboard-exam-list{display:flex;flex-direction:column}.dashboard-exam-row{display:grid;grid-template-columns:minmax(170px,1fr) auto auto;align-items:center;gap:15px;padding:13px 18px;border-bottom:1px solid var(--color-border)}.dashboard-exam-row:last-child{border-bottom:0}.dashboard-exam-main{min-width:0;display:grid;gap:3px}.dashboard-exam-main strong{overflow:hidden;color:var(--color-text-primary);font-size:.84rem;text-overflow:ellipsis;white-space:nowrap}.dashboard-exam-main span,.dashboard-exam-meta{color:var(--color-text-muted);font-size:.7rem}.dashboard-exam-meta{display:flex;align-items:center;justify-content:flex-end;gap:7px;white-space:nowrap}.dashboard-status{padding:3px 7px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface-secondary);font-size:.64rem;font-weight:750}.dashboard-status.is-started{border-color:color-mix(in srgb,var(--color-success) 32%,var(--color-border));color:var(--color-success);background:var(--color-success-soft)}.dashboard-status.is-open,.dashboard-status.is-preready{border-color:color-mix(in srgb,var(--color-primary) 30%,var(--color-border));color:var(--color-primary-hover);background:var(--color-primary-soft)}.dashboard-row-note{color:var(--color-warning);font-weight:700}.dashboard-empty-list{padding:32px 18px;color:var(--color-text-muted);font-size:.8rem;text-align:center}
.dashboard-attention-list{padding:10px}.dashboard-attention-item{display:flex;gap:10px;padding:11px;border-bottom:1px solid var(--color-border)}.dashboard-attention-item:last-child{border-bottom:0}.dashboard-attention-item>i{margin-top:2px;color:var(--color-info);font-size:1rem}.dashboard-attention-item.is-warning>i{color:var(--color-warning)}.dashboard-attention-item>div{min-width:0;display:grid;gap:5px}.dashboard-attention-item strong{color:var(--color-text-primary);font-size:.76rem;line-height:1.4}.dashboard-attention-item a{width:max-content;color:var(--color-primary-hover);font-size:.7rem;font-weight:750;text-decoration:none}.dashboard-attention-item a:hover{text-decoration:underline}.dashboard-good-state{min-height:180px;padding:26px 18px;display:grid;place-items:center;text-align:center;align-content:center;gap:6px}.dashboard-good-state i{color:var(--color-success);font-size:1.55rem}.dashboard-good-state strong{color:var(--color-text-primary);font-size:.85rem}.dashboard-good-state span{color:var(--color-text-muted);font-size:.74rem;line-height:1.45}
.dashboard-context-empty{max-width:590px;margin:68px auto;padding:42px 28px;display:grid;justify-items:center;gap:8px;border:1px dashed var(--color-border-strong);border-radius:var(--radius-panel);background:var(--color-surface);text-align:center}.dashboard-context-empty i{color:var(--color-primary);font-size:1.8rem}.dashboard-context-empty h2{margin:4px 0 0;color:var(--color-text-primary);font-size:1.1rem;font-weight:800}.dashboard-context-empty p{max-width:440px;margin:0;color:var(--color-text-secondary);font-size:.8rem;line-height:1.55}.dashboard-error{max-width:700px;margin:48px auto;padding:17px;display:flex;align-items:center;gap:12px;border:1px solid color-mix(in srgb,var(--color-danger) 35%,var(--color-border));border-radius:var(--radius-panel);background:var(--color-danger-soft)}.dashboard-error>i{color:var(--color-danger);font-size:1.25rem}.dashboard-error div{flex:1}.dashboard-error strong{color:var(--color-text-primary);font-size:.83rem}.dashboard-error p{margin:3px 0 0;color:var(--color-text-secondary);font-size:.73rem}
.dashboard-summary-skeleton{min-height:88px}.dashboard-summary-skeleton span,.dashboard-skeleton-card{background:linear-gradient(90deg,var(--color-surface-secondary) 25%,color-mix(in srgb,var(--color-surface-secondary) 58%,var(--color-surface)) 50%,var(--color-surface-secondary) 75%);background-size:200% 100%;animation:dashboard-shimmer 1.3s linear infinite}.dashboard-summary-skeleton span{border-inline-end:1px solid var(--color-border)}.dashboard-skeleton-card{height:320px;border:1px solid var(--color-border);border-radius:var(--radius-panel)}@keyframes dashboard-shimmer{to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.dashboard-summary-skeleton span,.dashboard-skeleton-card{animation:none}}
@media(max-width:900px){.dashboard-grid{grid-template-columns:1fr}.dashboard-attention-panel{order:-1}}@media(max-width:620px){.dashboard-page{padding:18px 14px 32px}.dashboard-summary,.dashboard-summary-skeleton{grid-template-columns:1fr}.dashboard-metric{min-height:68px;border-inline-end:0;border-bottom:1px solid var(--color-border)}.dashboard-metric:last-child{border-bottom:0}.dashboard-exam-row{grid-template-columns:1fr auto;gap:9px;padding:13px}.dashboard-exam-meta{grid-column:1/-1;justify-content:flex-start;flex-wrap:wrap}.dashboard-exam-row .btn{grid-column:2;grid-row:1}.dashboard-error{align-items:flex-start;flex-wrap:wrap}.dashboard-error .btn{margin-left:35px}}

/* Shared import/export progress surface. It is deliberately independent of
   Bootstrap modals so every page and every file format uses the same feedback. */
.app-transfer-progress{position:fixed;z-index:2200;inset:0;display:grid;place-items:center;padding:18px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,visibility .18s ease}.app-transfer-progress.is-visible{opacity:1;visibility:visible;pointer-events:auto}.app-transfer-progress-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.52);backdrop-filter:blur(2px)}.app-transfer-progress-card{position:relative;width:min(440px,100%);padding:34px 30px 28px;overflow:hidden;border:1px solid color-mix(in srgb,var(--color-primary) 20%,#fff);border-radius:18px;background:var(--color-surface,#fff);box-shadow:0 24px 64px rgba(15,23,42,.32);text-align:center}.app-transfer-progress-orbit{width:48px;height:48px;margin:0 auto 19px;display:grid;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--color-primary) 12%,#fff)}.app-transfer-progress-orbit span{width:17px;height:17px;border-radius:50%;background:var(--color-primary);animation:app-transfer-pulse 1.2s ease-in-out infinite}.app-transfer-progress-card h2{margin:0;color:var(--color-text-primary,#172033);font-size:clamp(1.22rem,4vw,1.55rem);font-weight:800;line-height:1.22}.app-transfer-progress-card p{min-height:2.7em;margin:10px 0 16px;color:var(--color-text-secondary,#667085);font-size:.88rem;line-height:1.45}.app-transfer-progress-track{height:5px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--color-primary) 12%,#fff)}.app-transfer-progress-track span{width:8%;height:100%;display:block;border-radius:inherit;background:var(--color-primary);transition:width .42s ease}.app-transfer-progress-card small{display:block;margin-top:10px;color:var(--color-text-muted,#98a2b3);font-size:.72rem;font-variant-numeric:tabular-nums}@keyframes app-transfer-pulse{0%,100%{transform:scale(.78);opacity:.62}50%{transform:scale(1.16);opacity:1}}@media (max-width:575.98px){.app-transfer-progress-card{padding:30px 22px 24px;border-radius:16px}.app-transfer-progress-card h2{font-size:1.28rem}}

/* List controls follow the table's left edge. Primary page CTAs remain in
   their headers, while search, filters, reload and page sizing stay grouped. */
.students-toolbar>.dropdown.ms-lg-auto{margin-left:0!important}
.students-pagination{justify-content:flex-start}
.students-pagination label,.students-pagination nav{margin-left:0}
.results-table-toolbar{justify-content:start}
.results-clear-filter{justify-self:start}

/* Content-aware desktop widths for the shared management tables. */
.exams-workspace .exams-table.management-table{min-width:1180px}
.students-table.management-table{min-width:1050px}
.results-table.management-table{min-width:1390px}

@media(max-width:767.98px){
    .students-table.management-table{min-width:0}
    .results-table.management-table{min-width:0}
    .results-loading .results-table.management-table{min-width:760px}
    .students-table.management-table .mgmt-col-select{width:38px!important}
    .students-table.management-table .mgmt-col-md{width:28%!important}
    .students-table.management-table .mgmt-col-actions-compact{width:46px!important}
}
@media(max-width:575.98px){
    .exams-workspace .exams-table.management-table{min-width:0}
    .exams-workspace .exams-table.management-table .mgmt-col-flex{width:34%!important}
    .exams-workspace .exams-table.management-table .mgmt-col-sm{width:15%!important}
    .exams-workspace .exams-table.management-table .mgmt-col-status{width:21%!important}
    .exams-workspace .exams-table.management-table .mgmt-col-actions{width:30%!important}
}

/* Official document verification and generation history */
.document-verify-page{min-height:calc(100vh - 90px);padding:78px 18px 90px;display:grid;place-items:start center;background:radial-gradient(circle at 50% -20%,color-mix(in srgb,var(--color-primary) 13%,transparent),transparent 44%)}
.document-verify-card{width:min(100%,720px);padding:clamp(24px,5vw,44px);border:1px solid var(--color-border);border-radius:22px;background:var(--color-surface);box-shadow:var(--shadow-elevated)}
.document-verify-brand{color:var(--color-primary);font-size:1.1rem;font-weight:850;text-decoration:none}.document-verify-eyebrow{margin:25px 0 5px;color:var(--color-primary);font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.document-verify-card h1{margin:0;color:var(--color-text-primary);font-size:clamp(1.55rem,4vw,2.15rem);font-weight:820}.document-verify-lead{margin:10px 0 22px;color:var(--color-text-secondary);font-size:.88rem;line-height:1.65}
.document-drop-zone{min-height:190px;padding:28px;display:grid;place-items:center;align-content:center;gap:7px;color:var(--color-text-secondary);border:2px dashed var(--color-border-strong);border-radius:16px;background:var(--color-surface-secondary);text-align:center;cursor:pointer;transition:.16s ease}.document-drop-zone i{color:var(--color-primary);font-size:2rem}.document-drop-zone strong{color:var(--color-text-primary)}.document-drop-zone span{font-size:.75rem}.document-drop-zone:hover,.document-drop-zone.is-dragging{border-color:var(--color-primary);background:var(--color-primary-soft)}
.document-verify-divider{margin:19px 0;display:flex;align-items:center;gap:12px;color:var(--color-text-muted);font-size:.7rem}.document-verify-divider:before,.document-verify-divider:after{content:"";height:1px;flex:1;background:var(--color-border)}.document-code-form label{margin-bottom:6px;color:var(--color-text-secondary);font-size:.74rem;font-weight:700}.document-code-form>div{display:flex;gap:8px}.document-code-form input{text-transform:uppercase}.document-verify-loading{margin-top:20px;padding:13px;color:var(--color-text-secondary);text-align:center}
.document-verify-result{margin-top:22px;padding:18px;border:1px solid var(--color-border);border-radius:15px;background:var(--color-surface-secondary)}.document-verify-result>header{display:flex;gap:13px}.document-verify-result>header>i{font-size:1.55rem}.document-verify-result>header strong{display:block;color:var(--color-text-primary);font-size:1rem}.document-verify-result>header p{margin:4px 0 0;color:var(--color-text-secondary);font-size:.76rem}.document-verify-result.is-valid{border-color:color-mix(in srgb,var(--color-success) 42%,var(--color-border));background:var(--color-success-soft)}.document-verify-result.is-valid>header>i{color:var(--color-success)}.document-verify-result.is-warning{border-color:color-mix(in srgb,var(--color-warning) 42%,var(--color-border));background:var(--color-warning-soft)}.document-verify-result.is-warning>header>i{color:var(--color-warning)}.document-verify-result.is-invalid,.document-verify-result.is-revoked{border-color:color-mix(in srgb,var(--color-danger) 42%,var(--color-border));background:var(--color-danger-soft)}.document-verify-result.is-invalid>header>i,.document-verify-result.is-revoked>header>i{color:var(--color-danger)}.document-verify-result dl{margin:16px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:1px;border:1px solid var(--color-border);border-radius:10px;overflow:hidden}.document-verify-result dl>div{padding:10px;background:var(--color-surface)}.document-verify-result dt{color:var(--color-text-muted);font-size:.64rem}.document-verify-result dd{margin:3px 0 0;color:var(--color-text-primary);font-size:.76rem;font-weight:700;word-break:break-word}.document-verify-result dd small{display:block;margin-top:2px;color:var(--color-text-muted);font-weight:500}.document-verify-result details{margin-top:10px;color:var(--color-text-muted);font-size:.68rem}.document-verify-result code{display:block;margin-top:6px;word-break:break-all}.document-verify-note{margin:20px 0 0;display:flex;gap:8px;color:var(--color-text-muted);font-size:.71rem;line-height:1.5}
.document-history-page{padding:28px}.document-history-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.document-history-header p{margin:0 0 4px;color:var(--color-primary);font-size:.67rem;font-weight:800;text-transform:uppercase}.document-history-header h1{margin:0;color:var(--color-text-primary);font-size:1.75rem;font-weight:820}.document-history-header span{display:block;margin-top:5px;color:var(--color-text-muted);font-size:.8rem}.document-history-filters{margin:22px 0 14px;padding:12px;display:flex;align-items:end;gap:10px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface)}.document-history-filters label{min-width:190px;color:var(--color-text-muted);font-size:.68rem;font-weight:700}.document-history-filters select{margin-top:5px}.document-history-state{padding:45px;color:var(--color-text-muted);text-align:center}.document-history-table-wrap{border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface)}.document-history-table{min-width:1080px;margin:0}.document-history-table th{color:var(--color-text-muted);background:var(--color-surface-secondary);font-size:.68rem}.document-history-table td{vertical-align:middle;color:var(--color-text-secondary);font-size:.74rem}.document-history-table td strong,.document-history-table td small{display:block}.document-history-table td small{margin-top:3px;color:var(--color-text-muted);font-size:.64rem}.document-status{padding:4px 8px;border:1px solid var(--color-border);border-radius:999px;font-size:.65rem;font-weight:750}.document-status.is-valid{color:var(--color-success);background:var(--color-success-soft)}.document-status.is-superseded{color:var(--color-warning);background:var(--color-warning-soft)}.document-status.is-revoked{color:var(--color-danger);background:var(--color-danger-soft)}.document-row-actions{display:flex;justify-content:flex-end;gap:4px}
@media(max-width:700px){.document-verify-page{padding:70px 10px}.document-verify-card{padding:22px 16px}.document-code-form>div{flex-direction:column}.document-verify-result dl{grid-template-columns:1fr}.document-history-page{padding:18px 12px}.document-history-header,.document-history-filters{align-items:stretch;flex-direction:column}.document-history-filters label{min-width:0}}
.notification-dropdown{width:min(390px,calc(100vw - 24px));max-height:520px;overflow:hidden}.notification-list{max-height:430px;overflow:auto}.notification-item{display:flex;flex-direction:column;gap:3px;white-space:normal;padding:12px 16px;border-bottom:1px solid var(--border,#e2e8f0)}.notification-item.unread{background:rgba(13,116,107,.08);border-left:3px solid #0d746b}.notification-item span{font-size:.82rem;color:#64748b}.notification-item small{font-size:.72rem;color:#94a3b8}
/* Appeals workspace */
.appeals-workspace{max-width:1440px;margin:0 auto;padding:1.5rem}
.appeals-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1.25rem}
.appeals-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-bottom:1rem}
.appeals-summary-item{border:1px solid var(--color-border);background:var(--color-surface);border-radius:.75rem;padding:1rem;text-align:left;color:var(--color-text-muted);transition:background-color .15s ease,border-color .15s ease}
.appeals-summary-item strong{display:block;color:var(--color-text-primary);font-size:1.5rem;line-height:1.15;margin-top:.25rem}
.appeals-summary-item:hover,.appeals-summary-item.is-active{border-color:var(--color-primary);background:var(--color-surface-hover)}
.appeals-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:.875rem;overflow:hidden}
.appeals-toolbar{display:grid;grid-template-columns:minmax(15rem,2fr) repeat(4,minmax(9rem,1fr)) auto;gap:.625rem;padding:1rem;border-bottom:1px solid var(--color-border)}
.appeals-search{display:flex;align-items:center;gap:.5rem;border:1px solid var(--color-border);border-radius:.375rem;padding:0 .75rem;background:var(--color-surface)}
.appeals-search:focus-within{border-color:var(--color-primary);box-shadow:var(--focus-ring)}
.appeals-search input{border:0;outline:0;background:transparent;min-width:0;width:100%;padding:.5rem 0;color:var(--color-text-primary)}
.appeals-table-wrap{overflow:auto;max-height:calc(100vh - 23rem)}
.appeals-table{min-width:930px}
.appeals-table th{position:sticky;top:0;z-index:1;background:var(--color-surface-secondary);white-space:nowrap}
.appeals-table td{vertical-align:middle}
.appeals-table small{display:block;color:var(--text-muted);max-width:18rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.appeal-item-type{font-weight:600}
.appeal-status{display:inline-flex;align-items:center;border:1px solid currentColor;border-radius:999px;padding:.18rem .55rem;font-size:.78rem;font-weight:700;line-height:1.25}
.appeal-status--pending{color:var(--color-warning)}
.appeal-status--approved{color:var(--color-success)}
.appeal-status--rejected{color:var(--color-danger)}
.appeals-empty{text-align:center;padding:2.5rem!important;color:var(--text-muted)}
.appeals-pagination{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;border-top:1px solid var(--color-border);color:var(--color-text-muted)}
.appeals-pagination>div{display:flex;align-items:center;gap:.5rem}
.appeals-drawer{width:min(38rem,100vw)}
.appeal-detail-status{margin-bottom:1rem}
.appeal-detail-section{border-bottom:1px solid var(--color-border);padding:1rem 0}
.appeal-detail-section:first-child{padding-top:0}
.appeal-detail-section:last-child{border-bottom:0}
.appeal-detail-section h3{font-size:.9rem;font-weight:700;margin:0 0 .7rem;color:var(--color-text-muted)}
.appeal-detail-section p{white-space:pre-wrap;margin-bottom:.75rem}
.appeal-detail-field{display:grid;grid-template-columns:minmax(7rem,.75fr) 1.25fr;gap:.75rem;padding:.28rem 0}
.appeal-detail-field>span{color:var(--color-text-muted)}
.appeal-detail-section .rich-content{word-break:break-word}
.appeal-drawer-actions{display:flex;gap:.75rem;position:sticky;bottom:0;background:var(--color-surface);padding-top:1rem}
@media (max-width:1200px){.appeals-toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}.appeals-search{grid-column:span 3}}
@media (max-width:700px){.appeals-workspace{padding:1rem}.appeals-header{display:block}.appeals-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.appeals-toolbar{grid-template-columns:1fr}.appeals-search{grid-column:auto}.appeals-pagination{align-items:flex-start;flex-direction:column}.appeals-table-wrap{max-height:none}.appeals-table{min-width:760px}.appeals-drawer{width:100vw}}
