/* ==========================================================================
   UNITDIME PHASE 11 — SHARED NON-CBT DESIGN SYSTEM (v24.11d)
   ========================================================================== */

:root {
    --ud-bg: #f4f6fb;
    --ud-bg-soft: #eef2f8;
    --ud-surface: #ffffff;
    --ud-surface-2: #f8fafe;
    --ud-surface-3: #f0f3f9;
    --ud-surface-raised: #ffffff;
    --ud-sidebar: #f9fbff;
    --ud-topbar: rgba(249,251,255,.90);
    --ud-text: #172033;
    --ud-text-2: #344054;
    --ud-muted: #66758d;
    --ud-subtle: #69778d;
    --ud-border: #dfe5ef;
    --ud-border-strong: #ccd5e3;
    --ud-accent: #6657e8;
    --ud-accent-hover: #5848d9;
    --ud-accent-2: #8b7cf6;
    --ud-accent-soft: #efedff;
    --ud-accent-softer: #f7f5ff;
    --ud-accent-border: rgba(102,87,232,.28);
    --ud-on-accent: #ffffff;
    --ud-success: #237453;
    --ud-success-soft: #eaf7f0;
    --ud-on-success: #ffffff;
    --ud-warning: #94631a;
    --ud-warning-soft: #fff6e7;
    --ud-danger: #a23f4b;
    --ud-danger-soft: #fff0f2;
    --ud-on-danger: #ffffff;
    --ud-info: #356cb5;
    --ud-info-soft: #edf4ff;
    --ud-shadow-xs: 0 1px 2px rgba(16,24,40,.035);
    --ud-shadow-sm: 0 8px 24px rgba(16,24,40,.055);
    --ud-shadow-md: 0 18px 46px rgba(16,24,40,.085);
    --ud-shadow-lg: 0 28px 70px rgba(16,24,40,.13);
    --ud-radius-xs: 8px;
    --ud-radius-sm: 11px;
    --ud-radius-md: 15px;
    --ud-radius-lg: 20px;
    --ud-radius-xl: 24px;
    --ud-content-max: 1460px;
    --ud-topbar-height: 64px;
    color-scheme: light;

    /* Public CSS aliases. */
    --bg: var(--ud-bg);
    --surface: rgba(255,255,255,.88);
    --surface-solid: var(--ud-surface);
    --text: var(--ud-text);
    --text-soft: var(--ud-muted);
    --border: rgba(23,32,51,.09);
    --primary: var(--ud-accent);
    --primary-dark: var(--ud-accent-hover);
}

:root[data-theme-resolved="dark"] {
    --ud-bg: #101625;
    --ud-bg-soft: #121a2b;
    --ud-surface: #182135;
    --ud-surface-2: #1d2840;
    --ud-surface-3: #232f49;
    --ud-surface-raised: #27334d;
    --ud-sidebar: #121a2b;
    --ud-topbar: rgba(16,22,37,.90);
    --ud-text: #f3f6fb;
    --ud-text-2: #d6deeb;
    --ud-muted: #9aa8bd;
    --ud-subtle: #8391a6;
    --ud-border: #2c3953;
    --ud-border-strong: #3a4864;
    --ud-accent: #9b8cff;
    --ud-accent-hover: #aa9eff;
    --ud-accent-2: #b7abff;
    --ud-accent-soft: rgba(155,140,255,.14);
    --ud-accent-softer: rgba(155,140,255,.075);
    --ud-accent-border: rgba(155,140,255,.32);
    --ud-on-accent: #101625;
    --ud-success: #73d3a4;
    --ud-success-soft: rgba(68,184,127,.13);
    --ud-on-success: #101625;
    --ud-warning: #efc77f;
    --ud-warning-soft: rgba(224,166,73,.13);
    --ud-danger: #f0a0a8;
    --ud-danger-soft: rgba(227,101,111,.13);
    --ud-on-danger: #101625;
    --ud-info: #82b8ff;
    --ud-info-soft: rgba(73,137,225,.15);
    --ud-shadow-xs: 0 1px 2px rgba(0,0,0,.10);
    --ud-shadow-sm: 0 9px 28px rgba(0,0,0,.16);
    --ud-shadow-md: 0 20px 52px rgba(0,0,0,.22);
    --ud-shadow-lg: 0 32px 82px rgba(0,0,0,.31);
    color-scheme: dark;

    --bg: var(--ud-bg);
    --surface: rgba(24,33,53,.90);
    --surface-solid: var(--ud-surface);
    --text: var(--ud-text);
    --text-soft: var(--ud-muted);
    --border: rgba(214,222,235,.11);
    --primary: var(--ud-accent);
    --primary-dark: var(--ud-accent-hover);
}

html { background: var(--ud-bg); }
body { accent-color: var(--ud-accent); }
::selection { background: var(--ud-accent-soft); color: var(--ud-text); }

/* ==========================================================================
   ACCESSIBLE APPEARANCE CONTROL
   ========================================================================== */
.ud-appearance-control {
    position: relative;
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    height: 36px;
    border: 1px solid var(--ud-border);
    border-radius: 999px;
    background: var(--ud-surface-2);
    box-shadow: var(--ud-shadow-xs);
    isolation: isolate;
}
.ud-appearance-toggle,
.ud-appearance-menu-button {
    appearance: none;
    border: 0;
    background: transparent;
    color: var(--ud-muted);
    cursor: pointer;
}
.ud-appearance-toggle {
    position: relative;
    width: 62px;
    height: 34px;
    padding: 0;
    border-radius: 999px 0 0 999px;
}
.ud-appearance-menu-button {
    width: 31px;
    height: 34px;
    display: grid;
    place-items: center;
    border-left: 1px solid var(--ud-border);
    border-radius: 0 999px 999px 0;
}
.ud-appearance-menu-button svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.ud-appearance-control:hover { border-color: var(--ud-accent-border); box-shadow: var(--ud-shadow-sm); }
.ud-appearance-toggle:focus-visible,.ud-appearance-menu-button:focus-visible,.ud-appearance-menu button:focus-visible { outline: 3px solid var(--ud-accent-soft); outline-offset: 2px; }
.ud-appearance-icon { position: absolute; top: 0; width: 30px; height: 34px; display: grid; place-items: center; z-index: 2; pointer-events: none; }
.ud-appearance-sun { left: 0; }
.ud-appearance-moon { right: 1px; }
.ud-appearance-icon svg,.ud-appearance-option-icon svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ud-appearance-thumb { position: absolute; z-index: 1; width: 26px; height: 26px; top: 4px; left: 4px; border-radius: 50%; background: var(--ud-surface); box-shadow: 0 3px 9px rgba(15,23,42,.18); transition: transform .2s cubic-bezier(.2,.8,.2,1), background .2s ease; }
.ud-appearance-control[data-resolved="dark"] .ud-appearance-thumb { transform: translateX(28px); background: var(--ud-surface-raised); }
.ud-appearance-control[data-resolved="light"] .ud-appearance-sun,
.ud-appearance-control[data-resolved="dark"] .ud-appearance-moon { color: var(--ud-accent); }
.ud-appearance-menu {
    position: absolute;
    top: calc(100% + 9px);
    right: 0;
    z-index: 900;
    width: 238px;
    padding: 8px;
    border: 1px solid var(--ud-border);
    border-radius: 15px;
    background: var(--ud-surface-raised);
    box-shadow: var(--ud-shadow-lg);
    color: var(--ud-text);
}
.ud-appearance-menu[hidden] { display: none !important; }
.ud-appearance-menu > p { margin: 3px 8px 6px; color: var(--ud-subtle); font-size: .66rem; font-weight: 850; letter-spacing: .10em; text-transform: uppercase; }
.ud-appearance-menu button { width: 100%; display: grid; grid-template-columns: 32px 1fr 18px; align-items: center; gap: 8px; padding: 9px 8px; border: 0; border-radius: 10px; background: transparent; color: var(--ud-text); text-align: left; cursor: pointer; }
.ud-appearance-menu button:hover,.ud-appearance-menu button.is-selected { background: var(--ud-accent-softer); }
.ud-appearance-option-icon { width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid var(--ud-border); border-radius: 9px; color: var(--ud-muted); background: var(--ud-surface-2); }
.ud-appearance-menu button.is-selected .ud-appearance-option-icon { color: var(--ud-accent); border-color: var(--ud-accent-border); background: var(--ud-accent-soft); }
.ud-appearance-menu button > span:nth-child(2) { min-width: 0; display: grid; gap: 1px; }
.ud-appearance-menu strong { color: var(--ud-text); font-size: .78rem; }
.ud-appearance-menu small { color: var(--ud-muted); font-size: .63rem; }
.ud-appearance-menu button > i { width: 7px; height: 7px; justify-self: center; border-radius: 50%; background: transparent; }
.ud-appearance-menu button.is-selected > i { background: var(--ud-accent); box-shadow: 0 0 0 4px var(--ud-accent-soft); }

/* ==========================================================================
   SHARED APP CANVAS / RHYTHM
   ========================================================================== */
.student-body,.teacher-body,.school-admin-body,.admin-body {
    margin: 0;
    background:
      radial-gradient(circle at 18% -12%, color-mix(in srgb, var(--ud-accent) 8%, transparent), transparent 30%),
      var(--ud-bg) !important;
    color: var(--ud-text) !important;
}
.student-main,.student-layout,.teacher-main,.school-admin-main,.admin-main,
.teacher-content,.school-admin-content,.admin-content { background: transparent !important; color: var(--ud-text) !important; }
.student-page-content { width: min(100%, var(--ud-content-max)); margin-inline: auto !important; padding: 28px clamp(18px,2.8vw,40px) 76px !important; }
.teacher-content,.school-admin-content,.admin-content { width: min(100%, 1560px); margin-inline: auto; padding: 28px clamp(18px,2.6vw,38px) 64px !important; }
:root[data-theme-resolved="dark"] :is(.student-body,.teacher-body,.school-admin-body,.admin-body) :is(h1,h2,h3,h4,h5,h6,strong) { color: var(--ud-text); }
:root[data-theme-resolved="dark"] :is(.student-body,.teacher-body,.school-admin-body,.admin-body) :is(p,small,.muted,.text-muted) { color: var(--ud-muted); }
:root[data-theme-resolved="dark"] :is(.student-body,.teacher-body,.school-admin-body,.admin-body) :is(input,select,textarea) { background: var(--ud-surface-2) !important; color: var(--ud-text) !important; border-color: var(--ud-border) !important; }
:root[data-theme-resolved="dark"] :is(.student-body,.teacher-body,.school-admin-body,.admin-body) :is(input,textarea)::placeholder { color: var(--ud-subtle) !important; }

/* ==========================================================================
   STUDENT SHELL
   ========================================================================== */
.student-layout {
    --shell-sidebar-collapsed: 76px !important;
    --shell-sidebar-expanded: 258px !important;
    --shell-primary: var(--ud-accent) !important;
    --shell-primary-dark: var(--ud-accent-hover) !important;
    --shell-primary-soft: var(--ud-accent-soft) !important;
    --shell-text: var(--ud-text) !important;
    --shell-muted: var(--ud-muted) !important;
    --shell-border: var(--ud-border) !important;
    --shell-background: var(--ud-bg) !important;
    background: transparent !important;
}
.student-sidebar {
    padding: 12px 10px 14px !important;
    background: color-mix(in srgb,var(--ud-sidebar) 97%,transparent) !important;
    border-right: 1px solid var(--ud-border) !important;
    box-shadow: 8px 0 30px rgba(7,11,25,.045) !important;
    backdrop-filter: blur(18px) saturate(1.1);
}
.student-sidebar-header { min-height: 48px !important; margin-bottom: 12px !important; gap: 8px !important; }
.student-brand { color: var(--ud-text) !important; }
.student-brand-word { color: var(--ud-text) !important; font-weight: 820 !important; }
.student-sidebar-toggle,.student-drawer-close,.student-menu-button { color: var(--ud-muted) !important; border: 1px solid transparent !important; background: transparent !important; border-radius: 10px !important; }
.student-sidebar-toggle:hover,.student-drawer-close:hover,.student-menu-button:hover { color: var(--ud-accent) !important; background: var(--ud-accent-soft) !important; }
.student-sidebar-toggle svg,.student-menu-button svg,.student-drawer-close svg { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.student-nav { display: grid !important; gap: 11px !important; }
.student-nav-group { display: grid; gap: 3px; }
.student-nav-heading { margin: 5px 10px 4px !important; color: var(--ud-subtle) !important; font-size: .61rem !important; font-weight: 850 !important; letter-spacing: .11em !important; text-transform: uppercase; }
.student-nav-link { position: relative; min-height: 44px !important; margin: 0 !important; padding: 5px 8px !important; gap: 10px !important; border-radius: 11px !important; color: var(--ud-muted) !important; font-weight: 700 !important; }
.student-nav-link:hover { background: var(--ud-surface-2) !important; color: var(--ud-text) !important; }
.student-nav-active { background: var(--ud-accent-soft) !important; color: var(--ud-accent) !important; box-shadow: inset 0 0 0 1px var(--ud-accent-border) !important; }
.student-nav-icon { width: 34px !important; height: 34px !important; flex: 0 0 34px !important; display: grid !important; place-items: center !important; border-radius: 9px !important; color: currentColor !important; }
.student-nav-icon svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.student-nav-active .student-nav-icon { background: color-mix(in srgb,var(--ud-accent) 10%,transparent); }
.student-sidebar-footer { margin-top: auto !important; padding-top: 12px !important; border-top: 1px solid var(--ud-border) !important; }
.student-sidebar-profile-button { background: var(--ud-surface) !important; border-color: var(--ud-border) !important; color: var(--ud-text) !important; box-shadow: var(--ud-shadow-xs); }
.student-profile-menu { background: var(--ud-surface-raised) !important; border-color: var(--ud-border) !important; box-shadow: var(--ud-shadow-lg) !important; color: var(--ud-text) !important; }
.student-profile-menu-item { color: var(--ud-text-2) !important; }
.student-profile-menu-item:hover { background: var(--ud-surface-2) !important; color: var(--ud-text) !important; }
.student-profile-menu-divider { border-color: var(--ud-border) !important; }
.student-topbar {
    display: flex !important;
    position: sticky !important;
    top: 0;
    z-index: 105;
    min-height: var(--ud-topbar-height) !important;
    padding: 0 clamp(18px,2.8vw,40px) !important;
    align-items: center !important;
    gap: 12px !important;
    border-bottom: 1px solid var(--ud-border) !important;
    background: var(--ud-topbar) !important;
    backdrop-filter: blur(18px) saturate(1.18);
}
.student-topbar-context { display: grid; gap: 0; }
.student-topbar-context span { color: var(--ud-subtle); font-size: .57rem; font-weight: 850; letter-spacing: .10em; text-transform: uppercase; }
.student-topbar-context strong { color: var(--ud-text); font-size: .83rem; }
.student-mobile-topbar-spacer { flex: 1; }
.student-mobile-brand { display: none !important; }
.student-menu-button { display: none !important; }

@media (min-width:821px) {
    .student-layout:not(.student-sidebar-expanded) .student-sidebar { padding-inline: 9px !important; }
    .student-layout:not(.student-sidebar-expanded) .student-sidebar-header { justify-content: center !important; flex-wrap: wrap; }
    .student-layout:not(.student-sidebar-expanded) .student-brand { flex: 0 0 38px !important; width: 38px !important; justify-content: center; }
    .student-layout:not(.student-sidebar-expanded) .student-sidebar-toggle { width: 38px !important; height: 34px !important; margin: 0 auto !important; }
    .student-layout:not(.student-sidebar-expanded) .student-nav-heading,
    .student-layout:not(.student-sidebar-expanded) .student-nav-label,
    .student-layout:not(.student-sidebar-expanded) .student-sidebar-profile-copy,
    .student-layout:not(.student-sidebar-expanded) .student-sidebar-profile-chevron { display: none !important; }
    .student-layout:not(.student-sidebar-expanded) .student-nav-link { width: 50px !important; min-height: 48px !important; margin-inline: auto !important; padding: 7px !important; justify-content: center !important; overflow: visible !important; }
    .student-layout:not(.student-sidebar-expanded) .student-nav-icon { width: 36px !important; height: 36px !important; flex-basis: 36px !important; }
    .student-layout:not(.student-sidebar-expanded) .student-nav-link::after { content: attr(data-nav-label); position: absolute; left: calc(100% + 12px); top: 50%; transform: translateY(-50%) translateX(-4px); z-index: 800; padding: 7px 10px; border: 1px solid var(--ud-border); border-radius: 9px; background: var(--ud-surface-raised); color: var(--ud-text); box-shadow: var(--ud-shadow-md); font-size: .70rem; font-weight: 760; white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity .14s ease,transform .14s ease; }
    .student-layout:not(.student-sidebar-expanded) .student-nav-link:hover::after,.student-layout:not(.student-sidebar-expanded) .student-nav-link:focus-visible::after { opacity: 1; transform: translateY(-50%) translateX(0); }
    .student-layout:not(.student-sidebar-expanded) .student-sidebar-footer { display: grid !important; place-items: center !important; }
    .student-layout:not(.student-sidebar-expanded) .student-sidebar-profile-button { width: 48px !important; height: 48px !important; padding: 0 !important; display: grid !important; place-items: center !important; }
}

/* ==========================================================================
   STAFF SHELLS
   ========================================================================== */
.teacher-layout { --teacher-sidebar: 260px; --teacher-primary: var(--ud-accent); --teacher-bg: var(--ud-bg); --teacher-border: var(--ud-border); --teacher-text: var(--ud-text); --teacher-muted: var(--ud-muted); background: transparent !important; }
.teacher-sidebar,.school-admin-sidebar,.admin-sidebar { background: var(--ud-sidebar) !important; color: var(--ud-text) !important; border-color: var(--ud-border) !important; box-shadow: 8px 0 30px rgba(7,11,25,.045) !important; }
.teacher-topbar,.school-admin-topbar,.admin-topbar { min-height: var(--ud-topbar-height) !important; background: var(--ud-topbar) !important; border-bottom-color: var(--ud-border) !important; color: var(--ud-text) !important; backdrop-filter: blur(18px) saturate(1.18); }
.teacher-topbar,.school-admin-topbar { display:flex !important; align-items:center !important; gap:10px !important; }
.teacher-topbar-copy,.school-admin-topbar > div:not(.school-admin-topbar-actions) { min-width:0; }
.teacher-topbar-actions,.school-admin-topbar-actions { margin-left:auto; display:flex; align-items:center; gap:8px; }
.teacher-topbar strong,.school-admin-topbar strong,.admin-topbar-title { color:var(--ud-text)!important; }
.teacher-topbar span,.school-admin-topbar-label,.admin-topbar-eyebrow { color:var(--ud-muted)!important; }
.teacher-brand-link,.teacher-brand-link strong,.school-admin-brand,.admin-brand-link,.admin-brand-name { color:var(--ud-text)!important; }
.teacher-school-card,.school-admin-school-card { background:var(--ud-surface-2)!important; border-color:var(--ud-border)!important; color:var(--ud-text)!important; }
.teacher-school-card small,.teacher-brand-link span:not(.teacher-brand-mark),.school-admin-school-card small,.admin-brand-badge { color:var(--ud-muted)!important; }
.teacher-nav-heading,.school-admin-nav-heading,.admin-nav-label { color:var(--ud-subtle)!important; }
.teacher-nav-item,.school-admin-nav-item,.admin-nav-item { position:relative; border-radius:10px!important; color:var(--ud-muted)!important; }
.teacher-nav-item:hover,.school-admin-nav-item:hover,.admin-nav-item:hover { background:var(--ud-surface-2)!important; color:var(--ud-text)!important; }
.teacher-nav-item.active,.school-admin-nav-item.active,.admin-nav-item.active { background:var(--ud-accent-soft)!important; color:var(--ud-accent)!important; box-shadow:inset 0 0 0 1px var(--ud-accent-border); }
.teacher-nav-icon,.school-admin-nav-icon,.admin-nav-icon { color:currentColor!important; }
.teacher-account,.school-admin-account,.admin-sidebar-footer { border-color:var(--ud-border)!important; }
.teacher-avatar,.school-admin-avatar,.admin-account-avatar { background:var(--ud-accent-soft)!important; color:var(--ud-accent)!important; }
.teacher-menu,.school-admin-menu,.admin-menu-button,.phase11-role-collapse { background:transparent!important; border-color:var(--ud-border)!important; color:var(--ud-muted)!important; }
.teacher-menu:hover,.school-admin-menu:hover,.admin-menu-button:hover,.phase11-role-collapse:hover { background:var(--ud-accent-soft)!important; color:var(--ud-accent)!important; }
.admin-environment-badge { background:var(--ud-surface-2)!important; border-color:var(--ud-border)!important; color:var(--ud-muted)!important; }
.admin-topbar-right { display:flex!important; align-items:center!important; gap:10px!important; }

@media (min-width:981px) {
 body.phase11-role-collapsed .teacher-sidebar,body.phase11-role-collapsed .school-admin-sidebar,body.phase11-role-collapsed .admin-sidebar { width:76px!important; min-width:76px!important; padding-inline:9px!important; }
 body.phase11-role-collapsed .teacher-main,body.phase11-role-collapsed .school-admin-main,body.phase11-role-collapsed .admin-main { margin-left:76px!important; }
 body.phase11-role-collapsed .teacher-nav-heading,body.phase11-role-collapsed .teacher-school-card,body.phase11-role-collapsed .teacher-account>div:not(.teacher-avatar),body.phase11-role-collapsed .teacher-brand-link>div,body.phase11-role-collapsed .school-admin-nav-heading,body.phase11-role-collapsed .school-admin-school-card,body.phase11-role-collapsed .school-admin-account-main,body.phase11-role-collapsed .admin-nav-label,body.phase11-role-collapsed .admin-brand-name,body.phase11-role-collapsed .admin-brand-badge { display:none!important; }
 body.phase11-role-collapsed .teacher-nav-item,body.phase11-role-collapsed .school-admin-nav-item,body.phase11-role-collapsed .admin-nav-item { justify-content:center!important; width:48px; min-height:46px; margin-inline:auto; padding-inline:8px!important; }
 body.phase11-role-collapsed :is(.teacher-nav-item,.school-admin-nav-item,.admin-nav-item)::after { content:attr(data-role-nav-label); position:absolute; left:calc(100% + 12px); top:50%; transform:translateY(-50%) translateX(-4px); z-index:800; padding:7px 10px; border:1px solid var(--ud-border); border-radius:9px; background:var(--ud-surface-raised); color:var(--ud-text); box-shadow:var(--ud-shadow-md); font-size:.70rem; font-weight:760; white-space:nowrap; opacity:0; pointer-events:none; transition:.14s ease; }
 body.phase11-role-collapsed :is(.teacher-nav-item,.school-admin-nav-item,.admin-nav-item):hover::after,body.phase11-role-collapsed :is(.teacher-nav-item,.school-admin-nav-item,.admin-nav-item):focus-visible::after { opacity:1; transform:translateY(-50%) translateX(0); }
}

/* ==========================================================================
   SHARED LEGACY COMPONENT BRIDGE — EXPLICIT NON-CBT SURFACES
   ========================================================================== */
:root[data-theme-resolved="dark"] :is(.student-body,.teacher-body,.school-admin-body,.admin-body) :is(
  .p11-card,.p11-empty,.p11-stat-grid>article,
  .dashboard-metric-card,.dashboard-panel,.dashboard-performance-kpi,.dashboard-latest-mock-stats>div,.dashboard-syllabus-stat,
  .syllabus-overview-card,.syllabus-subject-stat,.syllabus-subject-card,.syllabus-subject-toggle,.syllabus-unit,.syllabus-unit-chapters,
  .upq-subject-section,.upq-chapter-section,.upq-chapter,.upq-modal,.upq-choice-section,
  .uph-mode-card,.uph-system-note,.history-summary-card,.history-filter-bar,.history-session-card,
  .tc-test-card,.tc-panel,.tc-summary-card,.tc-pyq-callout,.tc-pyq-filter-card,.tc-pyq-year-jump,.tc-pyq-year-group,.tc-pyq-paper-card,.tc-pyq-paper-card-v232,.tc-pyq-paper-card-v233,
  .td-hero,.td-panel,.td-stat-grid article,.td-assignment-card,.assignment-filter-bar,.assignment-table-wrap,.assignment-empty,
  .sa-panel,.sa-stat-card,.sa-action-card,.sa-quick-card,.sa-dashboard-card,.sa-dashboard-batch,.sa-directory-table-wrapper,.sa-form-content,.sa-credential-card,.sa-toggle-card,.sa-workspace-panel,
  .admin-section,.admin-stat-card,.admin-action-card,.control-hero,.control-panel,.control-stat-card,.control-management-card,.control-date-card,.control-mini-stat,.exam-card,.exam-form-card,.exam-section,
  .ia-card,.ia-form-card,.ia-section,.report-card,.reports-card,
  .ktb-workspace,.ktb-panel,.ktb-card,.ktb-setting-card,.ktb-readiness-card,.ktb-question-card,.ktb-modal,.ktb-drawer
) { background:var(--ud-surface)!important; border-color:var(--ud-border)!important; color:var(--ud-text)!important; box-shadow:var(--ud-shadow-xs); }

:root[data-theme-resolved="dark"] :is(.student-body,.teacher-body,.school-admin-body,.admin-body) :is(
  .dashboard-mock-meta span,.dashboard-mock-time,.dashboard-card-label,.dashboard-recent-row,.dashboard-performance-empty,
  .syllabus-toolbar,.syllabus-search-wrap,.syllabus-chapter-row,
  .upq-subject,.upq-stats div,.upq-progress,.upq-modal-foot,.upq-choice,.upq-custom-count>div,
  .tc-card-strip,.tc-practice-row,.tc-syllabus,.tc-syllabus-body>span,.tc-date-chip,.tc-empty,.tc-pyq-paper-metrics span,.tc-pyq-paper-meta>span,.tc-pyq-year-papers,
  .assignment-table th,.sa-directory-table th,.sa-table th,.admin-table th,
  .ktb-toolbar,.ktb-section-card,.ktb-settings-grid>*,.ktb-readiness-overview,.ktb-question-meta,.ktb-preview-panel
) { background:var(--ud-surface-2)!important; border-color:var(--ud-border)!important; color:var(--ud-text-2)!important; }

:root[data-theme-resolved="dark"] :is(.student-body,.teacher-body,.school-admin-body,.admin-body) :is(table,th,td) { border-color:var(--ud-border)!important; }
:root[data-theme-resolved="dark"] :is(.student-body,.teacher-body,.school-admin-body,.admin-body) :is(.button,.tc-button,.ktb-secondary-button,.ktb-ghost-button) { border-color:var(--ud-border); }

/* ==========================================================================
   DASHBOARD — NO LIGHT ISLANDS / NO DARK-ON-DARK TEXT
   ========================================================================== */
.dashboard-main-header { margin-bottom:18px!important; }
.dashboard-main-header h1 { color:var(--ud-text)!important; }
.dashboard-main-header p,.dashboard-panel-header p { color:var(--ud-muted)!important; }
.dashboard-eyebrow,.dashboard-card-label { color:var(--ud-accent)!important; }
.dashboard-exam-badge { background:var(--ud-accent-soft)!important; color:var(--ud-accent)!important; border:1px solid var(--ud-accent-border)!important; }
.dashboard-metric-grid { gap:12px!important; }
.dashboard-metric-card { border:1px solid var(--ud-border)!important; border-radius:var(--ud-radius-md)!important; background:var(--ud-surface)!important; box-shadow:var(--ud-shadow-xs)!important; }
.dashboard-metric-card strong,.dashboard-metric-top { color:var(--ud-text)!important; }
.dashboard-metric-card small,.dashboard-metric-top>span:first-child { color:var(--ud-muted)!important; }
.dashboard-metric-icon { background:var(--ud-accent-soft)!important; color:var(--ud-accent)!important; }
.dashboard-panel { border:1px solid var(--ud-border)!important; border-radius:var(--ud-radius-lg)!important; background:var(--ud-surface)!important; box-shadow:var(--ud-shadow-xs)!important; }
.dashboard-panel-header h2,.dashboard-mock-card h3,.dashboard-performance-kpi strong,.dashboard-trend-head strong,.dashboard-subject-item strong,.dashboard-score-copy>strong,.dashboard-latest-mock-stats strong,.dashboard-syllabus-ring-copy>strong,.dashboard-syllabus-subject strong { color:var(--ud-text)!important; }
.dashboard-panel-link,.dashboard-mock-action { color:var(--ud-accent)!important; }
.dashboard-mock-card { background:var(--ud-surface-2)!important; border-color:var(--ud-border)!important; box-shadow:none!important; }
.dashboard-mock-card.is-school { background:linear-gradient(145deg,var(--ud-accent-softer),var(--ud-surface-2))!important; border-color:var(--ud-accent-border)!important; }
.dashboard-mock-origin { background:var(--ud-accent-soft)!important; color:var(--ud-accent)!important; }
.dashboard-mock-state { background:var(--ud-surface-3)!important; color:var(--ud-muted)!important; }
.dashboard-mock-card.is-live .dashboard-mock-state,.dashboard-mock-time.live { background:var(--ud-success-soft)!important; color:var(--ud-success)!important; }
.dashboard-mock-card>p,.dashboard-mock-top,.dashboard-mock-meta span,.dashboard-mock-time span,.dashboard-performance-kpi span,.dashboard-performance-kpi small,.dashboard-trend-head span,.dashboard-subject-item span,.dashboard-score-copy small,.dashboard-latest-outcomes,.dashboard-syllabus-ring-copy span,.dashboard-syllabus-ring-copy small,.dashboard-syllabus-subject span { color:var(--ud-muted)!important; }
.dashboard-mock-meta strong,.dashboard-mock-time strong { color:var(--ud-text-2)!important; }
.dashboard-mock-meta span,.dashboard-mock-time,.dashboard-performance-kpi,.dashboard-latest-mock-stats>div,.dashboard-syllabus-stat { background:var(--ud-surface-2)!important; border-color:var(--ud-border)!important; }
.dashboard-trend-track,.dashboard-subject-track,.dashboard-syllabus-subject-track,.dashboard-syllabus-progress-track { background:var(--ud-surface-3)!important; }
.dashboard-trend-value,.dashboard-trend-column strong,.dashboard-subject-item>b { color:var(--ud-text-2)!important; }
.dashboard-trend-column small { color:var(--ud-subtle)!important; }
.dashboard-score-ring,.dashboard-syllabus-ring { background-color:var(--ud-surface-3)!important; }
.dashboard-score-ring::after,.dashboard-syllabus-ring::after { background:var(--ud-surface)!important; }
.dashboard-score-ring strong,.dashboard-score-ring small,.dashboard-syllabus-ring strong,.dashboard-syllabus-ring small { position:relative; z-index:2; }
.dashboard-month-day { background:var(--ud-surface-2)!important; border-color:var(--ud-border)!important; color:var(--ud-text-2)!important; }
.dashboard-month-day-future { opacity:.50; }
.dashboard-month-day-today { border-color:var(--ud-accent)!important; box-shadow:inset 0 0 0 1px var(--ud-accent)!important; }
.dashboard-heatmap-legend,.dashboard-month-weekdays,.dashboard-consistency-footer { color:var(--ud-muted)!important; }
.dashboard-primary-action { background:var(--ud-accent)!important; color:#fff!important; }
.dashboard-primary-action:hover { background:var(--ud-accent-hover)!important; }

/* ==========================================================================
   SYLLABUS / PREPARATION
   ========================================================================== */
.syllabus-page-header h1,.syllabus-summary-name,.syllabus-subject-heading h2,.syllabus-unit-title,.syllabus-chapter-name { color:var(--ud-text)!important; }
.syllabus-page-header p,.syllabus-progress-count,.syllabus-summary-count,.syllabus-subject-count,.syllabus-subject-kicker,.syllabus-unit-status { color:var(--ud-muted)!important; }
.syllabus-overview-card,.syllabus-subject-stat,.syllabus-subject-card { border-color:var(--ud-border)!important; background:var(--ud-surface)!important; box-shadow:var(--ud-shadow-xs)!important; }
.syllabus-subject-stat:hover { border-color:var(--ud-accent-border)!important; box-shadow:var(--ud-shadow-sm)!important; }
.syllabus-subject-toggle { background:transparent!important; color:var(--ud-text)!important; }
.syllabus-subject-mark { background:var(--ud-accent-soft)!important; color:var(--ud-accent)!important; }
.syllabus-toolbar,.syllabus-search-wrap { background:var(--ud-surface-2)!important; border-color:var(--ud-border)!important; }
.syllabus-unit { background:var(--ud-surface-2)!important; border-color:var(--ud-border)!important; }
.syllabus-unit-header { color:var(--ud-text-2)!important; }
.syllabus-unit-chapters { background:var(--ud-surface)!important; border-color:var(--ud-border)!important; }
.syllabus-chapter-row { border-color:var(--ud-border)!important; background:transparent!important; }
.syllabus-chapter-row:hover { background:var(--ud-surface-2)!important; }
.syllabus-progress-bar,.syllabus-mini-progress,.syllabus-subject-progress-track { background:var(--ud-surface-3)!important; }
.syllabus-progress-fill,.subject-progress-bar,.syllabus-subject-progress-fill { background:linear-gradient(90deg,var(--ud-accent),var(--ud-accent-2))!important; }
.syllabus-status-select { background:var(--ud-surface-2)!important; color:var(--ud-text-2)!important; border-color:var(--ud-border)!important; }

/* ==========================================================================
   PYQ BROWSER / MODAL
   ========================================================================== */
.upq-page { color:var(--ud-text)!important; }
.upq-hero h1,.upq-section-head h2,.upq-chapter-head strong,.upq-choice-head strong,.upq-modal-head h2,.upq-stats strong { color:var(--ud-text)!important; }
.upq-hero p,.upq-section-head small,.upq-chapter-head small,.upq-subject span,.upq-choice-head small,.upq-modal-head p,.upq-stats span { color:var(--ud-muted)!important; }
.upq-back,.upq-eyebrow,.upq-section-head span,.upq-choice-head span,.upq-modal-head span { color:var(--ud-accent)!important; }
.upq-actions a { background:var(--ud-surface-2)!important; color:var(--ud-text-2)!important; border-color:var(--ud-border)!important; }
.upq-actions a:hover { border-color:var(--ud-accent-border)!important; color:var(--ud-accent)!important; }
.upq-subject-section,.upq-chapter-section,.upq-chapter,.upq-modal { background:var(--ud-surface)!important; border-color:var(--ud-border)!important; box-shadow:var(--ud-shadow-xs)!important; }
.upq-subject { background:var(--ud-surface-2)!important; border-color:var(--ud-border)!important; color:var(--ud-text-2)!important; }
.upq-subject:hover { border-color:var(--ud-accent-border)!important; }
.upq-subject.active { background:var(--ud-accent-soft)!important; border-color:var(--ud-accent)!important; color:var(--ud-accent)!important; box-shadow:inset 0 0 0 1px var(--ud-accent-border)!important; }
.upq-count { background:var(--ud-accent-soft)!important; color:var(--ud-accent)!important; }
.upq-progress,.upq-stats div { background:var(--ud-surface-2)!important; }
.upq-progress i { background:linear-gradient(90deg,var(--ud-accent),var(--ud-accent-2))!important; }
.upq-open,#upqStart { background:var(--ud-accent)!important; color:#fff!important; }
.upq-open:hover,#upqStart:hover { background:var(--ud-accent-hover)!important; }
.upq-modal-overlay { background:rgba(7,12,24,.68)!important; backdrop-filter:blur(4px); }
.upq-modal-head,.upq-choice-section,.upq-modal-foot { border-color:var(--ud-border)!important; }
.upq-modal-head>button,.upq-choice { background:var(--ud-surface-2)!important; color:var(--ud-text-2)!important; border-color:var(--ud-border)!important; }
.upq-choice:hover { border-color:var(--ud-accent-border)!important; }
.upq-choice.active { background:var(--ud-accent-soft)!important; color:var(--ud-accent)!important; border-color:var(--ud-accent)!important; box-shadow:inset 0 0 0 1px var(--ud-accent-border)!important; }
.upq-modal-foot { background:var(--ud-surface-2)!important; }

/* ==========================================================================
   TEST CENTER / PYP LIBRARY
   ========================================================================== */
.tc-page,.tc-header h1,.tc-panel-heading h2,.tc-card-titleline h3,.tc-pyq-paper-identity h3 { color:var(--ud-text)!important; }
.tc-header p,.tc-panel-heading p,.tc-card-copy p,.tc-search-note,.tc-pyq-paper-identity p,.tc-pyq-paper-identity small { color:var(--ud-muted)!important; }
.tc-test-card,.tc-pyq-paper-card,.tc-pyq-paper-card-v232,.tc-pyq-paper-card-v233,.tc-pyq-year-group,.tc-pyq-year-jump,.tc-pyq-filter-card { background:var(--ud-surface)!important; border-color:var(--ud-border)!important; box-shadow:var(--ud-shadow-xs)!important; }
.tc-test-card:hover,.tc-pyq-paper-card-v233:hover { border-color:var(--ud-accent-border)!important; box-shadow:var(--ud-shadow-sm)!important; }
.tc-card-strip,.tc-practice-row,.tc-date-chip,.tc-pyq-paper-metrics span,.tc-pyq-paper-meta>span,.tc-pyq-year-papers { background:var(--ud-surface-2)!important; border-color:var(--ud-border)!important; }
.tc-status,.tc-date-chip.is-primary,.tc-pyq-session-badge { background:var(--ud-accent-soft)!important; color:var(--ud-accent)!important; border-color:var(--ud-accent-border)!important; }
.tc-status-live,.tc-status-done,.tc-date-chip.is-live,.tc-pyq-done-badge { background:var(--ud-success-soft)!important; color:var(--ud-success)!important; }
.tc-button-primary { background:var(--ud-accent)!important; color:#fff!important; }
.tc-button-secondary,.tc-button-quiet { background:var(--ud-surface-2)!important; color:var(--ud-text-2)!important; border-color:var(--ud-border)!important; }
.tc-syllabus { background:var(--ud-surface-2)!important; border-color:var(--ud-border)!important; }
.tc-syllabus>summary { color:var(--ud-text-2)!important; }
.tc-syllabus>summary small { color:var(--ud-muted)!important; }
.tc-syllabus-subject { background:var(--ud-surface-2)!important; border-color:var(--ud-border)!important; }
.tc-syllabus-subject span { background:var(--ud-surface)!important; border-color:var(--ud-border)!important; color:var(--ud-text-2)!important; }

/* ==========================================================================
   PHASE 11 FOUNDATION PAGES
   ========================================================================== */
.p11-page { max-width:1180px!important; margin:0 auto!important; padding:0!important; }
.p11-page-head { margin-bottom:22px!important; }
.p11-page-head>span,.p11-section-head span,.p11-card>span { color:var(--ud-accent)!important; }
.p11-page-head h1,.p11-card strong,.p11-section-head h2,.p11-stat-grid strong { color:var(--ud-text)!important; }
.p11-page-head p,.p11-card p,.p11-stat-grid small,.p11-list span,.p11-meta { color:var(--ud-muted)!important; }
.p11-page-head-split,.p11-section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; }
.p11-primary-link,.p11-section-head>a,.p11-card>a { color:var(--ud-accent)!important; font-weight:800; text-decoration:none; }
.p11-card,.p11-empty,.p11-stat-grid>article { border:1px solid var(--ud-border)!important; background:var(--ud-surface)!important; box-shadow:var(--ud-shadow-xs)!important; }
.p11-stat-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:0 0 18px; }
.p11-stat-grid>article { padding:18px; border-radius:var(--ud-radius-md); }
.p11-stat-grid span,.p11-stat-grid strong,.p11-stat-grid small { display:block; }
.p11-stat-grid span { color:var(--ud-muted); font-size:.65rem; font-weight:850; text-transform:uppercase; letter-spacing:.06em; }
.p11-stat-grid strong { margin-top:6px; font-size:1.55rem; }
.p11-stat-grid small { margin-top:3px; }
.p11-preparation-actions { margin-bottom:18px; }
.p11-subject-bars { display:grid; gap:13px; }
.p11-subject-bars>div { display:grid; grid-template-columns:minmax(160px,240px) 1fr 48px; align-items:center; gap:12px; }
.p11-subject-bars>div>div:first-child { display:grid; gap:2px; }
.p11-subject-bars span { color:var(--ud-muted); font-size:.66rem; }
.p11-subject-bars b { color:var(--ud-text-2); text-align:right; font-size:.72rem; }
.p11-progress { height:7px; border-radius:99px; background:var(--ud-surface-3); overflow:hidden; }
.p11-progress i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--ud-accent),var(--ud-accent-2)); }

/* ==========================================================================
   TEST BUILDER / OPERATIONAL WORKSPACES
   ========================================================================== */
:root[data-theme-resolved="dark"] :is(.teacher-body,.school-admin-body,.admin-body) .ktb-page { color:var(--ud-text)!important; }
:root[data-theme-resolved="dark"] :is(.teacher-body,.school-admin-body,.admin-body) :is(.ktb-page-header,.ktb-control-center,.ktb-section,.ktb-settings-panel,.ktb-question-list,.ktb-picker-panel) { border-color:var(--ud-border)!important; }
:root[data-theme-resolved="dark"] :is(.teacher-body,.school-admin-body,.admin-body) :is(.ktb-page-header h1,.ktb-section h2,.ktb-section h3,.ktb-setting-card strong,.ktb-readiness-card strong,.ktb-question-card strong) { color:var(--ud-text)!important; }
:root[data-theme-resolved="dark"] :is(.teacher-body,.school-admin-body,.admin-body) :is(.ktb-page-header p,.ktb-section p,.ktb-help,.ktb-muted,.ktb-question-card small) { color:var(--ud-muted)!important; }
:root[data-theme-resolved="dark"] :is(.teacher-body,.school-admin-body,.admin-body) :is(.ktb-input,.ktb-select,.ktb-textarea,.ktb-filter input,.ktb-filter select) { background:var(--ud-surface-2)!important; color:var(--ud-text)!important; border-color:var(--ud-border)!important; }

/* ==========================================================================
   PUBLIC / AUTH — PHASE 11 AUTH WRAPPER
   ========================================================================== */
.public-body { background:radial-gradient(circle at 15% 0%,color-mix(in srgb,var(--ud-accent) 8%,transparent),transparent 32%),var(--ud-bg)!important; color:var(--ud-text)!important; }
.public-body .site-header { background:var(--ud-topbar)!important; border-color:var(--ud-border)!important; }
.public-body .navbar { gap:18px; }
.public-body .nav-links { margin-left:auto; }
.public-body .auth-section { min-height:calc(100vh - 76px); padding:56px 0 88px!important; }
.public-body .auth-container { width:min(92%,980px)!important; display:grid; grid-template-columns:minmax(0,1fr) minmax(360px,460px); align-items:center; gap:clamp(36px,7vw,90px); }
.public-body .auth-heading { text-align:left!important; margin:0!important; }
.public-body .auth-heading h1 { color:var(--ud-text)!important; max-width:630px; }
.public-body .auth-heading p { color:var(--ud-muted)!important; max-width:570px; }
.public-body .auth-card { padding:30px!important; border:1px solid var(--ud-border)!important; border-radius:22px!important; background:var(--ud-surface)!important; box-shadow:var(--ud-shadow-md)!important; }
.public-body .auth-card label { color:var(--ud-text-2)!important; }
.public-body .auth-card .form-input { background:var(--ud-surface-2)!important; color:var(--ud-text)!important; border-color:var(--ud-border)!important; }
.public-body .auth-divider::before,.public-body .auth-divider::after { background:var(--ud-border)!important; }
.public-body .auth-divider span,.public-body .auth-switch,.public-body .auth-institution,.public-body .form-hint { color:var(--ud-muted)!important; }
.public-body .auth-switch a,.public-body .auth-institution a { color:var(--ud-accent)!important; }
.public-body .google-auth-section { background:var(--ud-surface-2)!important; border-color:var(--ud-border)!important; }
:root[data-theme-resolved="dark"] .public-body :is(.site-footer,.footer-content,.site-header,.auth-section) { color:var(--ud-text-2); border-color:var(--ud-border); }

/* ==========================================================================
   RESPONSIVE / ACCESSIBILITY
   ========================================================================== */
@media (max-width:980px) {
    .teacher-content,.school-admin-content,.admin-content { padding-inline:18px!important; }
    .public-body .auth-container { grid-template-columns:1fr; width:min(92%,560px)!important; gap:28px; }
    .public-body .auth-heading { text-align:center!important; }
}
@media (max-width:820px) {
    .student-topbar { min-height:58px!important; padding:0 12px!important; }
    .student-menu-button { display:grid!important; }
    .student-mobile-brand { display:flex!important; }
    .student-topbar-context { display:none!important; }
    .student-page-content { padding:18px 13px 88px!important; }
    .student-sidebar { background:var(--ud-sidebar)!important; }
    .ud-appearance-control { height:34px; }
    .ud-appearance-menu { position:fixed; top:66px; right:12px; width:min(238px,calc(100vw - 24px)); }
    .p11-page-head-split,.p11-section-head { align-items:flex-start; flex-direction:column; }
    .p11-stat-grid { grid-template-columns:1fr; }
    .p11-subject-bars>div { grid-template-columns:1fr 44px; }
    .p11-subject-bars>div>div:first-child { grid-column:1/-1; }
}
@media (max-width:620px) {
    .public-body .nav-links>a:not(.button),.public-body .nav-user { display:none; }
    .public-body .navbar { min-height:64px; }
    .public-body .auth-section { padding:34px 0 64px!important; }
    .public-body .auth-card { padding:22px!important; }
}
@media (prefers-reduced-motion:reduce) {
    *,*::before,*::after { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; animation-iteration-count:1!important; }
}

/* Public-site dark compatibility. Public marketing stays visually itself, but no white islands. */
:root[data-theme-resolved="dark"] .public-body :is(
  .hero-preview,.preview-card,.feature-card,.exam-card,.pricing-card,.auth-card,
  .showcase-mini-grid>div,.showcase-timer,.showcase-session-stats>div,.showcase-result-grid>div,
  .ud-analysis-board,.ud-question-shell,.ud-leak-detail,.creator-founder-card
) { background:var(--ud-surface)!important; border-color:var(--ud-border)!important; color:var(--ud-text)!important; }
:root[data-theme-resolved="dark"] .public-body :is(.progress-bar,.ud-chart-end,.ud-ring::after,.auth-divider span) { background:var(--ud-surface-2)!important; }
:root[data-theme-resolved="dark"] .public-body :is(.feature-card p,.exam-card p,.page-hero p,.hero-exams,.footer-content,.section-heading p) { color:var(--ud-muted)!important; }
:root[data-theme-resolved="dark"] .public-body :is(.form-input,.google-button) { background:var(--ud-surface-2)!important; border-color:var(--ud-border)!important; color:var(--ud-text)!important; }
.dashboard-metric-icon svg,.dashboard-empty-icon svg,.syllabus-search-icon svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.dashboard-fire svg { fill:none; }
:root[data-theme-resolved="dark"] .dashboard-trend-chart {
    border-bottom-color: var(--ud-border) !important;
    background:
      linear-gradient(to top,transparent 24%,var(--ud-border) 25%,transparent 26%),
      linear-gradient(to top,transparent 49%,var(--ud-border) 50%,transparent 51%),
      linear-gradient(to top,transparent 74%,var(--ud-border) 75%,transparent 76%) !important;
}
:root[data-theme-resolved="dark"] .heat-level-0 { background:var(--ud-surface-2)!important; border-color:var(--ud-border)!important; color:var(--ud-muted)!important; }
:root[data-theme-resolved="dark"] .heat-level-1 { background:rgba(155,140,255,.12)!important; border-color:rgba(155,140,255,.18)!important; color:var(--ud-text-2)!important; }
:root[data-theme-resolved="dark"] .heat-level-2 { background:rgba(155,140,255,.24)!important; border-color:rgba(155,140,255,.28)!important; color:var(--ud-text)!important; }
:root[data-theme-resolved="dark"] .heat-level-3 { background:rgba(155,140,255,.48)!important; border-color:rgba(155,140,255,.48)!important; color:#fff!important; }
:root[data-theme-resolved="dark"] .heat-level-4 { background:var(--ud-accent)!important; border-color:var(--ud-accent)!important; color:#fff!important; }

/* ==========================================================================
   FINAL PHASE-11 LEGACY SURFACE BRIDGES
   These selectors deliberately live in the shared theme layer so legacy
   non-CBT surfaces inherit the current appearance without feature rewrites.
   ========================================================================== */
.student-topbar,.teacher-topbar,.school-admin-topbar,.admin-topbar { overflow:visible!important; }
.dashboard-quick-icon { display:grid!important; place-items:center!important; color:var(--ud-accent)!important; background:var(--ud-accent-soft)!important; }
.dashboard-quick-icon svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round; }

/* Review is a normal app surface, not the fixed-theme active CBT surface. */
:root[data-theme-resolved="dark"] :is(.ktr-phase11-review-actions,.ktr-phase11-actions) {
    background:var(--ud-surface-2)!important; border-color:var(--ud-border)!important; color:var(--ud-text)!important;
}
:root[data-theme-resolved="dark"] :is(.ktr-phase11-review-actions,.ktr-phase11-actions) :is(button,summary) {
    color:var(--ud-text-2)!important;
}
:root[data-theme-resolved="dark"] :is(.ktr-phase11-review-actions,.ktr-phase11-actions) button {
    background:var(--ud-surface)!important; border-color:var(--ud-border)!important;
}
:root[data-theme-resolved="dark"] :is(.ktr-phase11-review-actions,.ktr-phase11-actions) button:hover {
    border-color:var(--ud-accent-border)!important; color:var(--ud-accent)!important;
}


@media (max-width:520px) {
    .ud-appearance-control { height:34px; }
    .ud-appearance-menu-button { display:none; }
    .ud-appearance-toggle { width:62px; border-radius:999px; }
    .student-topbar { padding-inline:12px!important; }
}

/* ==========================================================================
   UNITDIME v24.11e — PHASE 11 FINAL UI POLISH
   One coherent non-CBT density, richer student identity, quieter staff shell,
   fixed-light public auth, dedicated PYQ affordances.
   ========================================================================== */

/* Desktop density: comfortable non-CBT workspace (~98% browser-equivalent density; ~9% larger than the prior 90% density).
   We scale the root and expand the layout width inversely so the canvas still
   fills the viewport. Mobile/tablet stays 100% to preserve touch/readability. */
:root { --ud-ui-scale: .98; --ud-ui-scale-inverse: 102.040816%; --ud-ui-viewport-height:102.040816vh; }
@media (min-width: 900px) {
    html.ud-ui-scale-app { zoom: var(--ud-ui-scale); }
    html.ud-ui-scale-app > body { width: var(--ud-ui-scale-inverse); min-height: var(--ud-ui-viewport-height); }
}

/* --------------------------------------------------------------------------
   Global button language
   -------------------------------------------------------------------------- */
:is(.button,.tc-button,.uph-history,.upq-actions>a,.pyq-btn,.pyq-btn-secondary,.tr-button,.ktb-primary-button,.ktb-secondary-button,.ktb-ghost-button) {
    transition: transform .16s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease, color .16s ease;
}
:is(.button-primary,.tc-button-primary,.pyq-btn,.tr-button.primary,.ktb-primary-button) {
    background: linear-gradient(135deg,var(--ud-accent),color-mix(in srgb,var(--ud-accent) 72%,#4b5fff)) !important;
    border-color: transparent !important;
    color: #fff !important;
    box-shadow: 0 8px 20px color-mix(in srgb,var(--ud-accent) 18%,transparent);
}
:is(.button-primary,.tc-button-primary,.pyq-btn,.tr-button.primary,.ktb-primary-button):hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 26px color-mix(in srgb,var(--ud-accent) 24%,transparent);
}
:is(.tc-button-secondary,.pyq-btn-secondary,.tr-button.secondary,.ktb-secondary-button,.uph-history,.upq-actions>a) {
    background: var(--ud-surface-2) !important;
    border: 1px solid var(--ud-border) !important;
    color: var(--ud-text-2) !important;
    box-shadow: var(--ud-shadow-xs);
}
:is(.tc-button-secondary,.pyq-btn-secondary,.tr-button.secondary,.ktb-secondary-button,.uph-history,.upq-actions>a):hover {
    border-color: var(--ud-accent-border) !important;
    background: var(--ud-accent-softer) !important;
    color: var(--ud-accent) !important;
    transform: translateY(-1px);
}
:is(button,a):focus-visible { outline-color: var(--ud-accent) !important; }

/* --------------------------------------------------------------------------
   Student navigation — colourful identity without making the whole app loud
   -------------------------------------------------------------------------- */
.student-nav-link { --ud-nav-accent: var(--ud-accent); --ud-nav-soft: var(--ud-accent-soft); }
.student-nav-link[data-nav-label="Home"] { --ud-nav-accent:#7767f4; --ud-nav-soft:rgba(119,103,244,.13); }
.student-nav-link[data-nav-label="Plan"] { --ud-nav-accent:#3287e8; --ud-nav-soft:rgba(50,135,232,.13); }
.student-nav-link[data-nav-label="Practice"] { --ud-nav-accent:#16a085; --ud-nav-soft:rgba(22,160,133,.13); }
.student-nav-link[data-nav-label="PYQs"] { --ud-nav-accent:#e58a2f; --ud-nav-soft:rgba(229,138,47,.14); }
.student-nav-link[data-nav-label="Tests"] { --ud-nav-accent:#d65a91; --ud-nav-soft:rgba(214,90,145,.13); }
.student-nav-link[data-nav-label="Analytics"] { --ud-nav-accent:#6b73e8; --ud-nav-soft:rgba(107,115,232,.13); }
.student-nav-link[data-nav-label="Preparation"] { --ud-nav-accent:#35a86f; --ud-nav-soft:rgba(53,168,111,.13); }
.student-nav-link[data-nav-label="Mistakes"] { --ud-nav-accent:#df626a; --ud-nav-soft:rgba(223,98,106,.13); }
.student-nav-link[data-nav-label="Bookmarks"] { --ud-nav-accent:#c79525; --ud-nav-soft:rgba(199,149,37,.14); }
.student-nav-link .student-nav-icon {
    color: var(--ud-nav-accent) !important;
    background: var(--ud-nav-soft) !important;
    border: 1px solid color-mix(in srgb,var(--ud-nav-accent) 18%,transparent) !important;
}
.student-nav-link:hover,.student-nav-link.student-nav-active {
    background: linear-gradient(90deg,var(--ud-nav-soft),transparent 95%) !important;
    color: var(--ud-text) !important;
}
.student-nav-link.student-nav-active .student-nav-icon {
    background: color-mix(in srgb,var(--ud-nav-accent) 18%,var(--ud-surface)) !important;
    color: var(--ud-nav-accent) !important;
    border-color: color-mix(in srgb,var(--ud-nav-accent) 34%,transparent) !important;
    box-shadow: 0 6px 16px color-mix(in srgb,var(--ud-nav-accent) 14%,transparent);
}
.student-nav-link.student-nav-active::before { background: var(--ud-nav-accent) !important; }
.student-nav-heading { color: var(--ud-subtle) !important; letter-spacing:.12em !important; }
.student-sidebar { box-shadow: 10px 0 34px rgba(20,29,48,.035); }
:root[data-theme-resolved="dark"] .student-sidebar { box-shadow: 12px 0 38px rgba(0,0,0,.14); }
.student-brand-mark,.student-profile-avatar {
    box-shadow: 0 7px 18px rgba(102,87,232,.22) !important;
}

/* Dashboard: subtle colour coding + stronger hierarchy. */
.dashboard-metric-card { position:relative; overflow:hidden; }
.dashboard-metric-card::before { content:""; position:absolute; left:0; right:0; top:0; height:3px; background:var(--metric-accent,var(--ud-accent)); }
.dashboard-metric-card:nth-child(1){--metric-accent:#6f63ef;--metric-soft:rgba(111,99,239,.11)}
.dashboard-metric-card:nth-child(2){--metric-accent:#3489e9;--metric-soft:rgba(52,137,233,.11)}
.dashboard-metric-card:nth-child(3){--metric-accent:#ef9a38;--metric-soft:rgba(239,154,56,.12)}
.dashboard-metric-card:nth-child(4){--metric-accent:#2aa977;--metric-soft:rgba(42,169,119,.11)}
.dashboard-metric-card .dashboard-metric-icon { background:var(--metric-soft)!important; color:var(--metric-accent)!important; }
.dashboard-metric-card:hover { transform:translateY(-1px); box-shadow:var(--ud-shadow-sm)!important; }
.dashboard-panel { overflow:hidden; }
.dashboard-panel:first-of-type { background:linear-gradient(145deg,var(--ud-surface),color-mix(in srgb,var(--ud-accent) 3%,var(--ud-surface)))!important; }
.dashboard-mock-card { border-color:color-mix(in srgb,var(--ud-accent) 26%,var(--ud-border))!important; }
.dashboard-panel-link,.dashboard-mock-action { border-radius:10px; padding:8px 11px; background:var(--ud-accent-soft); text-decoration:none!important; }

/* --------------------------------------------------------------------------
   Dedicated PYQ workspace
   -------------------------------------------------------------------------- */
.ud-page-context-row { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 16px; }
.ud-page-back { display:inline-flex; align-items:center; gap:8px; min-height:36px; padding:0 11px; border:1px solid var(--ud-border); border-radius:11px; background:var(--ud-surface); color:var(--ud-text-2)!important; text-decoration:none; font-size:.76rem; font-weight:800; box-shadow:var(--ud-shadow-xs); }
.ud-page-back>span { color:var(--ud-accent); font-size:1rem; line-height:1; }
.ud-page-back:hover { border-color:var(--ud-accent-border); color:var(--ud-accent)!important; transform:translateX(-1px); }
.ud-page-context-chip { display:inline-flex; align-items:center; min-height:30px; padding:0 10px; border-radius:999px; background:var(--ud-accent-soft); color:var(--ud-accent); font-size:.66rem; font-weight:850; letter-spacing:.05em; text-transform:uppercase; }
.upq-hero { align-items:center!important; }
.upq-hero h1 { max-width:760px; }
.upq-actions { display:flex!important; gap:8px!important; flex-wrap:wrap; }
.upq-actions>a { min-height:40px; display:inline-flex; align-items:center; padding:0 14px!important; border-radius:11px!important; text-decoration:none!important; font-weight:800!important; }
.upq-mode-card { position:relative; overflow:hidden; border-radius:18px!important; transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease; }
.upq-mode-card::after { content:""; position:absolute; inset:0 0 auto; height:3px; background:linear-gradient(90deg,var(--ud-accent),#4fa4ff); opacity:.85; }
.upq-mode-card:hover { transform:translateY(-2px); border-color:var(--ud-accent-border)!important; box-shadow:var(--ud-shadow-sm)!important; }
.upq-mode-icon { background:linear-gradient(145deg,var(--ud-accent-soft),color-mix(in srgb,#4fa4ff 12%,var(--ud-surface)))!important; color:var(--ud-accent)!important; border:1px solid var(--ud-accent-border); }
.upq-subject { position:relative; overflow:hidden; transition:.16s ease; }
.upq-subject:hover,.upq-subject.active { transform:translateY(-1px); border-color:var(--ud-accent-border)!important; background:var(--ud-accent-softer)!important; }
.upq-chapter { transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease; }
.upq-chapter:hover { transform:translateY(-1px); border-color:var(--ud-accent-border)!important; box-shadow:var(--ud-shadow-sm)!important; }
.upq-open { color:var(--ud-accent)!important; font-weight:850!important; }

.pyq-search-page { max-width:1120px!important; padding-top:20px!important; }
.pyq-search-head { margin-bottom:14px!important; }
.pyq-search-head .pyq-mark { width:48px;height:48px;border-radius:14px;background:linear-gradient(135deg,var(--ud-accent),#4f9fff); }
.pyq-search-card { padding:26px!important; }
.pyq-search-copy h1 { margin:5px 0 7px; color:var(--ud-text); }
.pyq-search-controls { display:grid!important; grid-template-columns:minmax(0,1fr) auto; margin-top:22px!important; }
.pyq-search-input { min-height:44px; width:100%; padding:0 14px; border:1px solid var(--ud-border); border-radius:12px; background:var(--ud-surface-2); color:var(--ud-text); font:inherit; }
.pyq-search-input:focus { outline:none; border-color:var(--ud-accent); box-shadow:0 0 0 4px var(--ud-accent-soft); }
.pyq-search-result { background:var(--ud-surface)!important; border-color:var(--ud-border)!important; }

/* Practice hub: PYQ feels live, Adaptive is clearly secondary. */
.uph-mode-card.is-ready { background:linear-gradient(150deg,var(--ud-surface),color-mix(in srgb,var(--ud-accent) 5%,var(--ud-surface)))!important; border-color:color-mix(in srgb,var(--ud-accent) 20%,var(--ud-border))!important; }
.uph-mode-card.is-ready .uph-icon { background:linear-gradient(145deg,var(--ud-accent),#4f9fff)!important; color:#fff!important; box-shadow:0 10px 22px rgba(102,87,232,.18); }
.uph-mode-card.is-future { opacity:.84; }
.uph-feature-row span { border:1px solid var(--ud-border); background:var(--ud-surface-2)!important; color:var(--ud-text-2)!important; }
.uph-cta:not(.muted) { font-weight:850!important; color:var(--ud-accent)!important; }

/* Test Center: clearer controls without turning the workspace into a rainbow. */
.tc-toolbar { border-color:var(--ud-border)!important; box-shadow:var(--ud-shadow-xs)!important; }
.tc-library-tabs button.active { background:linear-gradient(135deg,var(--ud-accent),#566cf2)!important; color:#fff!important; }
.tc-summary span { background:var(--ud-surface-2)!important; border-color:var(--ud-border)!important; }
.tc-test-card { transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease; }
.tc-test-card:hover { transform:translateY(-1px); border-color:var(--ud-accent-border)!important; box-shadow:var(--ud-shadow-sm)!important; }
.tc-pyq-callout { background:linear-gradient(135deg,var(--ud-surface),color-mix(in srgb,#6b7cff 7%,var(--ud-surface)))!important; }

/* --------------------------------------------------------------------------
   Public/auth — fixed light, modern split sign-in, no appearance control
   -------------------------------------------------------------------------- */
.public-body { background:#f6f7fc!important; color:#162033!important; }
.public-body .site-header { background:rgba(255,255,255,.90)!important; backdrop-filter:blur(18px); }
.public-body .auth-section {
    position:relative; overflow:hidden;
    min-height:calc(100vh - 70px)!important;
    background:
      radial-gradient(circle at 12% 12%,rgba(102,87,232,.12),transparent 30%),
      radial-gradient(circle at 85% 82%,rgba(67,145,255,.10),transparent 28%),
      linear-gradient(180deg,#f8f8ff 0,#f3f6fb 100%)!important;
}
.public-body .auth-container { width:min(92%,1120px)!important; grid-template-columns:minmax(0,1.08fr) minmax(380px,.82fr)!important; gap:42px!important; }
.public-body .auth-login-showcase {
    position:relative; min-height:520px; display:flex!important; flex-direction:column; justify-content:center;
    padding:clamp(34px,5vw,58px)!important; overflow:hidden;
    border-radius:28px; border:1px solid rgba(255,255,255,.18);
    background:
      radial-gradient(circle at 82% 20%,rgba(255,255,255,.16),transparent 19%),
      linear-gradient(145deg,#4d42d9 0,#6657e8 45%,#397dda 115%);
    box-shadow:0 30px 75px rgba(69,59,170,.22);
    color:#fff!important;
}
.public-body .auth-login-showcase::before { content:""; position:absolute; width:330px; height:330px; right:-160px; bottom:-160px; border:1px solid rgba(255,255,255,.16); border-radius:50%; box-shadow:0 0 0 55px rgba(255,255,255,.035),0 0 0 110px rgba(255,255,255,.025); }
.public-body .auth-login-showcase .eyebrow { color:#dcd8ff!important; }
.public-body .auth-login-showcase h1 { position:relative; z-index:1; max-width:620px!important; margin:10px 0 12px!important; color:#fff!important; font-size:clamp(2.2rem,4vw,3.7rem)!important; line-height:1.02!important; letter-spacing:-.055em!important; }
.public-body .auth-login-showcase>p { position:relative; z-index:1; max-width:570px!important; color:rgba(255,255,255,.76)!important; font-size:1rem!important; line-height:1.65!important; }
.auth-showcase-flow { position:relative; z-index:2; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:30px; }
.auth-showcase-flow>div { min-height:124px; padding:15px; border:1px solid rgba(255,255,255,.15); border-radius:16px; background:rgba(255,255,255,.08); backdrop-filter:blur(8px); }
.auth-showcase-flow span { display:inline-grid; place-items:center; width:28px;height:28px;border-radius:9px;background:rgba(255,255,255,.15);font-size:.65rem;font-weight:900;color:#fff; }
.auth-showcase-flow strong { display:block; margin:12px 0 4px; color:#fff; font-size:.92rem; }
.auth-showcase-flow small { display:block; color:rgba(255,255,255,.68); line-height:1.45; font-size:.69rem; }
.auth-showcase-orbit { position:absolute; right:34px; top:32px; width:94px; height:94px; border:1px solid rgba(255,255,255,.20); border-radius:50%; opacity:.9; }
.auth-orbit-core { position:absolute; inset:22px; display:grid; place-items:center; border-radius:18px; background:#fff; color:#5c4ee5; font-weight:950; font-size:.82rem; box-shadow:0 10px 30px rgba(30,24,100,.22); }
.auth-orbit-dot { position:absolute; width:9px;height:9px;border-radius:50%;background:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.12); }
.auth-orbit-dot.dot-one{left:-4px;top:40px}.auth-orbit-dot.dot-two{right:10px;top:5px}.auth-orbit-dot.dot-three{right:6px;bottom:7px}
.public-body .auth-card { padding:34px!important; border-radius:24px!important; box-shadow:0 28px 65px rgba(30,42,70,.12)!important; }
.public-body .auth-card .form-input { min-height:48px; border-radius:12px!important; background:#f7f9fc!important; }
.public-body .auth-card .form-input:focus { border-color:#7a6cf0!important; box-shadow:0 0 0 4px rgba(102,87,232,.10)!important; }
.public-body .auth-submit { min-height:48px; border-radius:12px!important; font-weight:850!important; }
.public-body .google-auth-section { border-radius:14px!important; }

/* --------------------------------------------------------------------------
   Staff/admin — calm shell, no visible nested sidebar scrollbar
   -------------------------------------------------------------------------- */
.admin-sidebar,.teacher-sidebar,.school-admin-sidebar { overflow:hidden!important; }
.admin-navigation,.teacher-nav,.school-admin-navigation { overflow-y:auto!important; overflow-x:hidden!important; scrollbar-width:none!important; overscroll-behavior:contain; }
.admin-navigation::-webkit-scrollbar,.teacher-nav::-webkit-scrollbar,.school-admin-navigation::-webkit-scrollbar { width:0;height:0;display:none; }
.admin-nav-item.active,.teacher-nav-item.active,.school-admin-nav-item.active {
    background:var(--ud-accent-soft)!important; color:var(--ud-accent)!important; box-shadow:inset 0 0 0 1px var(--ud-accent-border)!important;
}
.admin-nav-item:hover,.teacher-nav-item:hover,.school-admin-nav-item:hover { background:var(--ud-surface-2)!important; color:var(--ud-text)!important; }
body.phase11-role-collapsed :is(.admin-sidebar,.teacher-sidebar,.school-admin-sidebar) { overflow:hidden!important; }
body.phase11-role-collapsed :is(.admin-navigation,.teacher-nav,.school-admin-navigation) { padding-inline:4px!important; }
body.phase11-role-collapsed :is(.admin-nav-item,.teacher-nav-item,.school-admin-nav-item) { width:48px!important; min-width:48px!important; margin-inline:auto!important; border-radius:12px!important; }
body.phase11-role-collapsed :is(.admin-brand,.teacher-brand,.school-admin-brand) { justify-content:center!important; padding-inline:8px!important; }
body.phase11-role-collapsed :is(.admin-brand-link,.teacher-brand-link,.school-admin-brand-link) { justify-content:center!important; }

/* Search and content controls inherit the same density and focus language. */
:is(.tc-search input,.syllabus-search-wrap input,.upq-modal input,.upq-modal select,.ktb-workspace input,.ktb-workspace select,.ktb-workspace textarea) { border-radius:11px!important; }
:is(.tc-search input,.syllabus-search-wrap input,.upq-modal input,.upq-modal select,.ktb-workspace input,.ktb-workspace select,.ktb-workspace textarea):focus { outline:none!important; border-color:var(--ud-accent)!important; box-shadow:0 0 0 4px var(--ud-accent-soft)!important; }

@media (max-width: 980px) {
    .public-body .auth-container { grid-template-columns:1fr!important; width:min(92%,620px)!important; }
    .public-body .auth-login-showcase { min-height:auto; padding:32px!important; }
    .public-body .auth-login-showcase h1 { font-size:2.35rem!important; }
    .auth-showcase-orbit { display:none; }
}
@media (max-width: 620px) {
    .auth-showcase-flow { grid-template-columns:1fr; }
    .auth-showcase-flow>div { min-height:0; }
    .public-body .auth-login-showcase { border-radius:20px; }
    .pyq-search-controls { grid-template-columns:1fr!important; }
    .ud-page-context-row { align-items:flex-start; }
}
.public-body .auth-card-head { margin-bottom:20px; }
.public-body .auth-card-head>span { display:block; margin-bottom:5px; color:var(--ud-accent); font-size:.65rem; font-weight:900; letter-spacing:.11em; }
.public-body .auth-card-head h2 { margin:0; color:#172033; font-size:1.48rem; letter-spacing:-.035em; }
.public-body .auth-card-head p { margin:6px 0 0; color:#718096; font-size:.78rem; line-height:1.5; }

/* ==========================================================================
   UNITDIME v24.11f — PHASE 11 DARK/REVIEW/PYQ ADAPTABILITY PASS
   ========================================================================== */

/* Student navigation: slightly more breathing room, account pinned to the
   true bottom edge, and collapse control treated as part of navigation. */
.student-sidebar{
    display:flex!important;
    flex-direction:column!important;
    min-height:100vh!important;
    height:100vh!important;
    overflow:hidden!important;
}
.student-sidebar-header{flex:0 0 auto!important;margin-bottom:5px!important;}
.student-nav{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:visible!important;
    scrollbar-width:none!important;
    gap:13px!important;
    padding:2px 0 12px!important;
}
.student-nav::-webkit-scrollbar{display:none!important;}
.student-nav-group{gap:5px!important;}
.student-nav-heading{margin:7px 10px 5px!important;}
.student-nav-link{min-height:47px!important;padding:6px 8px!important;}
.student-sidebar-footer{
    flex:0 0 auto!important;
    margin-top:auto!important;
    padding:10px 0 0!important;
    background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--ud-sidebar) 98%,transparent) 22%)!important;
}
.student-nav-toggle-row{display:flex;align-items:center;justify-content:flex-end;padding:0 1px 2px;}
.student-nav-toggle{
    width:100%!important;
    min-height:38px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:9px!important;
    padding:6px 9px!important;
    color:var(--ud-muted)!important;
    border:1px solid transparent!important;
    border-radius:10px!important;
}
.student-nav-toggle:hover{background:var(--ud-surface-2)!important;color:var(--ud-text)!important;border-color:var(--ud-border)!important;}
.student-nav-toggle svg{width:17px!important;height:17px!important;flex:0 0 17px;}
.student-nav-toggle-label{font-size:.69rem;font-weight:760;}
.student-sidebar-expanded .student-nav-toggle svg{transform:none;}
.student-layout:not(.student-sidebar-expanded) .student-nav-toggle-row{justify-content:center;padding-inline:0;}
.student-layout:not(.student-sidebar-expanded) .student-nav-toggle{
    width:48px!important;
    height:44px!important;
    min-height:44px!important;
    padding:0!important;
    justify-content:center!important;
}
.student-layout:not(.student-sidebar-expanded) .student-nav-toggle svg{transform:rotate(180deg);}
.student-layout:not(.student-sidebar-expanded) .student-nav-toggle-label{display:none!important;}
.student-layout:not(.student-sidebar-expanded) .student-nav-toggle::after{
    content:"Expand navigation";
    position:absolute;
    left:calc(100% + 12px);
    top:50%;
    transform:translateY(-50%) translateX(-4px);
    z-index:850;
    padding:7px 10px;
    border:1px solid var(--ud-border);
    border-radius:9px;
    background:var(--ud-surface-raised);
    color:var(--ud-text);
    box-shadow:var(--ud-shadow-md);
    font-size:.7rem;
    font-weight:760;
    white-space:nowrap;
    opacity:0;
    pointer-events:none;
    transition:.14s ease;
}
.student-layout:not(.student-sidebar-expanded) .student-nav-toggle:hover::after,
.student-layout:not(.student-sidebar-expanded) .student-nav-toggle:focus-visible::after{opacity:1;transform:translateY(-50%) translateX(0);}

/* PYQ hierarchy: replace sharp white identifier tiles with a layered gradient
   and make complete/in-progress states visually meaningful without noise. */
.upq-unit{background:var(--ud-surface)!important;border-color:var(--ud-border)!important;box-shadow:var(--ud-shadow-xs)!important;}
.upq-unit.open{border-color:var(--ud-accent-border)!important;box-shadow:var(--ud-shadow-sm)!important;}
.upq-unit-toggle{background:linear-gradient(135deg,var(--ud-surface),color-mix(in srgb,var(--ud-accent) 3.5%,var(--ud-surface)))!important;color:var(--ud-text)!important;}
.upq-unit-toggle:hover{background:linear-gradient(135deg,var(--ud-surface-2),color-mix(in srgb,var(--ud-accent) 7%,var(--ud-surface-2)))!important;}
.upq-unit-icon{
    color:#fff!important;
    border:1px solid color-mix(in srgb,var(--ud-accent) 55%,transparent)!important;
    background:linear-gradient(145deg,#7566f0 0%,#8e73f2 48%,#4b8ee8 120%)!important;
    box-shadow:0 7px 18px rgba(91,76,215,.20)!important;
}
.upq-unit[data-unit-index="1"] .upq-unit-icon{background:linear-gradient(145deg,#279ac9,#3d75dc)!important;}
.upq-unit[data-unit-index="2"] .upq-unit-icon{background:linear-gradient(145deg,#1a9c80,#4d79dc)!important;}
.upq-unit[data-unit-index="3"] .upq-unit-icon{background:linear-gradient(145deg,#a86fe8,#6657e8)!important;}
.upq-unit[data-unit-index="4"] .upq-unit-icon{background:linear-gradient(145deg,#e28b4b,#a865dd)!important;}
.upq-unit[data-unit-index="5"] .upq-unit-icon{background:linear-gradient(145deg,#d4678b,#7668ed)!important;}
.upq-unit-copy span,.upq-unit-progress-copy span,.upq-unit-years span{color:var(--ud-muted)!important;}
.upq-unit-progress-copy,.upq-unit-years{border-color:var(--ud-border)!important;}
.upq-unit-chevron{background:var(--ud-surface-2)!important;border-color:var(--ud-border)!important;color:var(--ud-accent)!important;}
.upq-unit-body{background:color-mix(in srgb,var(--ud-surface-2) 88%,var(--ud-bg))!important;border-color:var(--ud-border)!important;}
.upq-unit-progress{background:var(--ud-surface-3)!important;}
.upq-unit-chapters .upq-chapter{background:linear-gradient(150deg,var(--ud-surface),color-mix(in srgb,var(--ud-accent) 2.5%,var(--ud-surface)))!important;}

/* Setup modal: stronger selected states, clearer disabled state and visible
   validation inside the dialog rather than behind the overlay. */
.upq-modal{border:1px solid var(--ud-border)!important;background:linear-gradient(155deg,var(--ud-surface),color-mix(in srgb,var(--ud-accent) 2.5%,var(--ud-surface)))!important;}
.upq-modal-head{background:linear-gradient(145deg,var(--ud-surface-2),color-mix(in srgb,var(--ud-accent) 5%,var(--ud-surface-2)))!important;}
.upq-modal-body{scrollbar-color:var(--ud-border-strong) transparent;}
.upq-choice-section{border-color:var(--ud-border)!important;}
.upq-choice{
    position:relative;
    display:inline-flex!important;
    align-items:center!important;
    gap:7px!important;
    background:var(--ud-surface-2)!important;
    border-color:var(--ud-border)!important;
    color:var(--ud-text-2)!important;
    box-shadow:none!important;
}
.upq-choice>b{display:inline-grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:var(--ud-surface-3);color:var(--ud-muted);font-size:.61rem;font-weight:900;}
.upq-choice:hover:not(:disabled){border-color:var(--ud-accent-border)!important;background:var(--ud-accent-softer)!important;color:var(--ud-text)!important;transform:translateY(-1px);}
.upq-choice.active{
    color:#fff!important;
    border-color:transparent!important;
    background:linear-gradient(135deg,#6c59e8,#8d70f1)!important;
    box-shadow:0 8px 20px rgba(102,87,232,.20)!important;
}
.upq-choice.active>b{background:rgba(255,255,255,.18)!important;color:#fff!important;}
.upq-choice:disabled{
    opacity:.48!important;
    filter:saturate(.55);
    cursor:not-allowed!important;
    text-decoration:none!important;
}
.upq-pool-hint{display:flex;gap:7px;align-items:flex-start;flex-wrap:wrap;margin-top:10px;padding:10px 12px;border:1px solid var(--ud-border);border-radius:11px;background:var(--ud-surface-2);color:var(--ud-muted);font-size:.7rem;line-height:1.45;}
.upq-pool-hint strong{color:var(--ud-text-2);}
.upq-pool-hint.is-complete{border-color:color-mix(in srgb,var(--ud-warning) 42%,var(--ud-border));background:var(--ud-warning-soft);}
.upq-pool-hint.is-complete strong{color:var(--ud-warning);}
.upq-setup-error{margin:0 18px 10px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--ud-danger) 45%,var(--ud-border));border-radius:11px;background:var(--ud-danger-soft);color:var(--ud-danger);font-size:.74rem;font-weight:750;}
.upq-modal-foot{background:linear-gradient(180deg,color-mix(in srgb,var(--ud-surface-2) 94%,transparent),var(--ud-surface-2))!important;}
#upqStart{background:linear-gradient(135deg,var(--ud-accent),#8068f0)!important;box-shadow:0 8px 20px rgba(102,87,232,.18);}

/* Status emphasis: use colour only where it communicates real state. */
.uph-status.ready,.tc-date-chip.is-live,.dashboard-mock-state,.dashboard-mock-time.live{
    border-color:rgba(74,211,146,.28)!important;
    background:linear-gradient(135deg,rgba(47,180,118,.14),rgba(94,224,163,.08))!important;
    color:var(--ud-success)!important;
    box-shadow:inset 0 0 0 1px rgba(90,220,159,.06),0 0 16px rgba(51,186,122,.07)!important;
}

/* --------------------------------------------------------------------------
   Review / solutions workspace — theme-aware surfaces in both modes
   -------------------------------------------------------------------------- */
.ktr-page{color:var(--ud-text)!important;}
.ktr-topbar,.ktr-review-toolbar,.ktr-question,.ktr-palette-v233,.ktr-palette,
.ktr-reveal-gate,.ktr-answer-summary>div,.ktr-numerical,.ktr-solution,
.ktr-palette-section,.ktr-phase11-review-actions,.ktr-phase11-actions{
    border-color:var(--ud-border)!important;
}
.ktr-review-toolbar,.ktr-question,.ktr-palette-v233,.ktr-palette{
    background:linear-gradient(150deg,var(--ud-surface),color-mix(in srgb,var(--ud-accent) 2.2%,var(--ud-surface)))!important;
    color:var(--ud-text)!important;
    box-shadow:var(--ud-shadow-xs)!important;
}
.ktr-question-head,.ktr-question-head h2,.ktr-palette-head strong,.ktr-palette-section-head strong,.ktr-review-mode-copy strong{color:var(--ud-text)!important;}
.ktr-question-head>div>span,.ktr-palette-head span,.ktr-palette-head small,.ktr-palette-section-head span,.ktr-review-mode-copy small,.ktr-meta{color:var(--ud-muted)!important;}
.ktr-option{
    background:var(--ud-surface-2)!important;
    color:var(--ud-text-2)!important;
    border-color:var(--ud-border)!important;
}
.ktr-option>strong{background:var(--ud-surface-3)!important;color:var(--ud-text-2)!important;}
.ktr-option.is-correct{border-color:color-mix(in srgb,var(--ud-success) 45%,var(--ud-border))!important;background:var(--ud-success-soft)!important;}
.ktr-option.is-wrong-selected{border-color:color-mix(in srgb,var(--ud-danger) 44%,var(--ud-border))!important;background:var(--ud-danger-soft)!important;}
.ktr-reveal-gate,.ktr-answer-summary>div,.ktr-numerical,.ktr-solution,.ktr-palette-section{background:var(--ud-surface-2)!important;color:var(--ud-text-2)!important;}
.ktr-solution{background:linear-gradient(145deg,var(--ud-surface-2),color-mix(in srgb,var(--ud-info) 4%,var(--ud-surface-2)))!important;}
.ktr-filterbar button,.ktr-subject-tabs button,.ktr-nav button,.ktr-palette-grid button{
    background:var(--ud-surface-2)!important;
    border-color:var(--ud-border)!important;
    color:var(--ud-text-2)!important;
}
.ktr-filterbar button.active,.ktr-subject-tabs button.active{background:var(--ud-accent)!important;color:#fff!important;border-color:var(--ud-accent)!important;}
.ktr-page.is-review-first .ktr-question:not(.is-revealed) .ktr-option{background:var(--ud-surface-2)!important;border-color:var(--ud-border)!important;}
.ktr-page.is-review-first .ktr-palette-grid button:not(.is-revealed){background:var(--ud-surface-3)!important;color:var(--ud-muted)!important;}

/* --------------------------------------------------------------------------
   Test/PYQ result analytics — remove white islands in dark mode and preserve a
   calm, slightly raised hierarchy in light mode.
   -------------------------------------------------------------------------- */
.tr-page{color:var(--ud-text)!important;}
.tr-header h1,.tr-panel-title h2,.tr-comparison h3,.tr-card-section h3,.tr-insights h3{color:var(--ud-text)!important;}
.tr-header p,.tr-panel-title p,.tr-panel-title>span,.tr-card-section header span,.tr-comparison header span,.tr-insights header span{color:var(--ud-muted)!important;}
.tr-side-nav-slot,.tr-side-nav{background:transparent!important;color:var(--ud-text)!important;}
.tr-tabs button{color:var(--ud-muted)!important;}
.tr-tabs button:hover{background:var(--ud-surface-2)!important;color:var(--ud-text)!important;}
.tr-tabs button.active{background:var(--ud-surface-raised)!important;border-color:var(--ud-accent-border)!important;color:var(--ud-accent)!important;box-shadow:var(--ud-shadow-xs)!important;}
.tr-score-main,.tr-hero-stat,.tr-metrics>div,.tr-comparison,.tr-insights,.tr-card-section,
.tr-performance-cards article,.tr-time-hero,.tr-response-time-grid article,.tr-difficulty-grid article,
.tr-subject-grid article,.tr-review-launch,.tr-review-lock{
    background:linear-gradient(150deg,var(--ud-surface),color-mix(in srgb,var(--ud-accent) 1.8%,var(--ud-surface)))!important;
    color:var(--ud-text)!important;
    border-color:var(--ud-border)!important;
    box-shadow:var(--ud-shadow-xs)!important;
}
.tr-comparison-grid article,.tr-insights article,.tr-speed-grid article,.tr-subject-grid dl div,
.tr-analysis-table>div.head,.tr-security-note,.tr-security-note b,.tr-lock-icon{
    background:var(--ud-surface-2)!important;
    color:var(--ud-text-2)!important;
    border-color:var(--ud-border)!important;
}
.tr-analysis-table{border-color:var(--ud-border)!important;background:var(--ud-surface)!important;}
.tr-analysis-table>div{border-color:var(--ud-border)!important;color:var(--ud-text-2)!important;}
.tr-score-track,.tr-time-track,.tr-mini-track{background:var(--ud-surface-3)!important;}
.tr-score-track i,.tr-time-track i,.tr-mini-track i{background:linear-gradient(90deg,var(--ud-accent),var(--ud-accent-2))!important;}
.tr-button.secondary{background:var(--ud-surface-2)!important;color:var(--ud-text-2)!important;border:1px solid var(--ud-border)!important;}
.tr-button.primary{background:linear-gradient(135deg,var(--ud-accent),#8068f0)!important;color:#fff!important;}
.tr-private-note{background:var(--ud-warning-soft)!important;color:var(--ud-warning)!important;border:1px solid color-mix(in srgb,var(--ud-warning) 35%,var(--ud-border));}
.tr-kind{background:var(--ud-success-soft)!important;color:var(--ud-success)!important;}
.tr-kind.practice{background:var(--ud-warning-soft)!important;color:var(--ud-warning)!important;}

/* General preparation analytics variables now inherit the shared theme instead
   of forcing light-only #fff/#f7 surfaces. */
.udp-page{
    --u-ink:var(--ud-text)!important;
    --u-muted:var(--ud-muted)!important;
    --u-line:var(--ud-border)!important;
    --u-card:var(--ud-surface)!important;
    --u-soft:var(--ud-surface-2)!important;
    --u-accent:var(--ud-accent)!important;
    --u-accent2:var(--ud-success)!important;
    color:var(--ud-text)!important;
}
.udp-hero,.udp-panel,.udp-kpis article,.udp-signal-grid article{
    background:linear-gradient(150deg,var(--ud-surface),color-mix(in srgb,var(--ud-accent) 2%,var(--ud-surface)))!important;
    border-color:var(--ud-border)!important;
    box-shadow:var(--ud-shadow-xs)!important;
}
.udp-chapter-map article,.udp-list article,.udp-history-row,.udp-empty{background:var(--ud-surface-2)!important;border-color:var(--ud-border)!important;color:var(--ud-text-2)!important;}
.udp-btn{background:var(--ud-surface-2)!important;color:var(--ud-text-2)!important;border-color:var(--ud-border)!important;}
.udp-btn.primary{background:var(--ud-accent)!important;color:#fff!important;border-color:var(--ud-accent)!important;}
.udp-axis{stroke:var(--ud-border)!important;}.udp-label{fill:var(--ud-muted)!important;}.udp-point{fill:var(--ud-surface-raised)!important;}.udp-tooltip{background:var(--ud-surface-raised)!important;color:var(--ud-text)!important;border:1px solid var(--ud-border);}

/* Staff shells: keep colour restrained but ensure dark mode adapts common
   data cards/tables/forms consistently instead of leaving isolated white cards. */
:root[data-theme-resolved="dark"] :is(.admin-body,.teacher-body,.school-admin-body) :is(
  .card,.panel,.stat-card,.metric-card,.table-card,.workspace-card,.summary-card,
  .admin-card,.teacher-card,.school-admin-card,.form-card,.content-card
){background:var(--ud-surface)!important;border-color:var(--ud-border)!important;color:var(--ud-text)!important;}
:root[data-theme-resolved="dark"] :is(.admin-body,.teacher-body,.school-admin-body) :is(table,thead,tbody,tr,td,th){border-color:var(--ud-border)!important;}
:root[data-theme-resolved="dark"] :is(.admin-body,.teacher-body,.school-admin-body) thead{background:var(--ud-surface-2)!important;color:var(--ud-muted)!important;}

@media(max-width:820px){
  .student-nav-toggle-row{display:none!important;}
  .student-sidebar{height:auto!important;min-height:100%!important;overflow-y:auto!important;}
  .student-nav{overflow:visible!important;}
  .upq-setup-error{margin-inline:14px;}
}


/* ==========================================================================
   UNITDIME v24.11g — COMPACT NAV GEOMETRY CORRECTION
   ========================================================================== */
/* Browser-equivalent 90% scaling also scales 100vh. Restore the physical
   viewport height for fixed desktop role shells so footers/profile controls
   reach the real bottom edge rather than ending at ~90% of the screen. */
@media (min-width:821px){
  html.ud-ui-scale-app :is(.student-layout,.teacher-layout,.school-admin-layout,.admin-layout){
    min-height:var(--ud-ui-viewport-height)!important;
  }
  html.ud-ui-scale-app :is(.student-sidebar,.teacher-sidebar,.school-admin-sidebar,.admin-sidebar){
    height:var(--ud-ui-viewport-height)!important;
    min-height:var(--ud-ui-viewport-height)!important;
    max-height:var(--ud-ui-viewport-height)!important;
  }

  /* The desktop student rail gets one icon-only chevron. No visible
     Collapse/Expand row text and no tooltip bubble competing with nav items. */
  .student-nav-toggle-row{
    flex:0 0 auto!important;
    justify-content:center!important;
    padding:0 0 4px!important;
  }
  .student-nav-toggle{
    width:44px!important;
    min-width:44px!important;
    height:38px!important;
    min-height:38px!important;
    padding:0!important;
    justify-content:center!important;
    gap:0!important;
    position:relative!important;
  }
  .student-nav-toggle-label{display:none!important;}
  .student-nav-toggle::after{content:none!important;display:none!important;}
  .student-nav-toggle-chevron{
    width:18px!important;
    height:18px!important;
    transform:rotate(0deg)!important;
    transition:transform .18s ease!important;
  }
  .student-layout:not(.student-sidebar-expanded) .student-nav-toggle-chevron{
    transform:rotate(180deg)!important;
  }

  /* In compact mode every destination must fit above the pinned profile.
     Avoid a clipped final bookmark tile or hidden scroll residue. */
  .student-layout:not(.student-sidebar-expanded) .student-nav{
    overflow:hidden!important;
    gap:7px!important;
    padding-top:1px!important;
    padding-bottom:3px!important;
  }
  .student-layout:not(.student-sidebar-expanded) .student-nav-group{
    gap:3px!important;
  }
  .student-layout:not(.student-sidebar-expanded) .student-nav-link{
    width:46px!important;
    min-width:46px!important;
    min-height:43px!important;
    height:43px!important;
    padding:4px!important;
  }
  .student-layout:not(.student-sidebar-expanded) .student-nav-icon{
    width:34px!important;
    height:34px!important;
    flex:0 0 34px!important;
  }
  .student-layout:not(.student-sidebar-expanded) .student-sidebar-footer{
    position:relative!important;
    z-index:4!important;
    padding-top:8px!important;
    padding-bottom:8px!important;
    background:var(--ud-sidebar)!important;
  }
  .student-layout:not(.student-sidebar-expanded) .student-sidebar-profile-button{
    width:46px!important;
    height:46px!important;
  }
}

/* ==========================================================================
   UNITDIME v24.11h — COLLAPSED PROFILE INTERACTION CORRECTION
   ========================================================================== */
@media (min-width:821px){
  /* The collapsed account menu intentionally opens to the right of the rail.
     The v24.11f rail clipped overflow, making the avatar appear unresponsive. */
  .student-layout:not(.student-sidebar-expanded) .student-sidebar{
    overflow:visible!important;
  }
  .student-layout:not(.student-sidebar-expanded) .student-sidebar-profile-wrap{
    position:relative!important;
    overflow:visible!important;
    z-index:40!important;
  }
  .student-layout:not(.student-sidebar-expanded) .student-sidebar-profile-button{
    position:relative!important;
    z-index:42!important;
    pointer-events:auto!important;
    cursor:pointer!important;
  }
  .student-layout:not(.student-sidebar-expanded) .student-sidebar-profile-wrap .student-profile-menu{
    display:block;
    position:absolute!important;
    left:calc(100% + 12px)!important;
    right:auto!important;
    bottom:0!important;
    top:auto!important;
    z-index:1400!important;
    pointer-events:auto!important;
  }
  .student-layout:not(.student-sidebar-expanded) .student-sidebar-profile-wrap .student-profile-menu[hidden]{
    display:none!important;
  }
}


/* ========================================================================== 
   PHASE 12 CANDIDATE — UI STABILITY / REVIEW / AUTH POLISH
   ========================================================================== */
@media (min-width:821px){
  /* Pre-paint state prevents a compact -> expanded flash before DOMContentLoaded. */
  html.ud-student-nav-expanded .student-layout:not(.student-sidebar-expanded) .student-sidebar{width:var(--shell-sidebar-expanded)!important;}
  html.ud-student-nav-expanded .student-layout:not(.student-sidebar-expanded) .student-main{width:calc(100% - var(--shell-sidebar-expanded))!important;margin-left:var(--shell-sidebar-expanded)!important;}

  .student-sidebar-header{
    display:flex!important;align-items:center!important;justify-content:space-between!important;
    gap:8px!important;min-height:52px!important;margin-bottom:8px!important;
  }
  .student-brand{min-width:0!important;max-width:calc(100% - 46px)!important;overflow:visible!important;}
  .student-brand-word{min-width:0!important;overflow:visible!important;white-space:nowrap!important;line-height:1.15!important;padding-right:2px!important;}
  .student-sidebar-header .student-nav-toggle{flex:0 0 38px!important;width:38px!important;min-width:38px!important;height:38px!important;margin:0!important;}
  .student-nav-toggle-row{display:none!important;}
  .student-nav{gap:6px!important;}
  .student-nav-group{gap:4px!important;}
  .student-nav-improve{margin-top:7px!important;}

  .student-layout:not(.student-sidebar-expanded) .student-sidebar-header{display:grid!important;grid-template-columns:1fr!important;justify-items:center!important;gap:6px!important;}
  .student-layout:not(.student-sidebar-expanded) .student-brand{max-width:none!important;width:42px!important;justify-content:center!important;}
  .student-layout:not(.student-sidebar-expanded) .student-sidebar-header .student-nav-toggle{display:grid!important;place-items:center!important;}
}

/* Smoother shell resize without delayed label flicker. */
.student-sidebar,.student-main{transition-duration:190ms!important;transition-timing-function:cubic-bezier(.22,1,.36,1)!important;}
.student-nav-label,.student-brand-word,.student-sidebar-profile-copy{transition-duration:140ms!important;}

/* Institution login receives the same premium split-shell treatment as public login. */
.auth-institution-showcase{position:relative;overflow:hidden;isolation:isolate;}
.auth-institution-showcase::before{content:"";position:absolute;inset:-35% 38% 40% -14%;background:radial-gradient(circle,rgba(255,255,255,.22),transparent 65%);pointer-events:none;}
.auth-institution-showcase .auth-showcase-flow>div:nth-child(1) span{background:rgba(111,99,239,.28)!important;}
.auth-institution-showcase .auth-showcase-flow>div:nth-child(2) span{background:rgba(42,169,119,.24)!important;}
.auth-institution-showcase .auth-showcase-flow>div:nth-child(3) span{background:rgba(52,137,233,.25)!important;}

/* Review workspace: stronger card hierarchy without white glare. */
.ktr-question{
  position:relative!important;overflow:hidden!important;
  background:linear-gradient(150deg,var(--ud-surface),color-mix(in srgb,var(--ud-accent) 3.5%,var(--ud-surface)))!important;
  border:1px solid var(--ud-border)!important;
  box-shadow:0 14px 34px color-mix(in srgb,#000 7%,transparent)!important;
}
:root[data-theme-resolved="dark"] .ktr-question{
  background:linear-gradient(150deg,#192238,#161d30 72%)!important;
  box-shadow:0 18px 42px rgba(0,0,0,.18)!important;
}
.ktr-question::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--ud-accent);opacity:.75;}
.ktr-question[data-difficulty="easy"]::before{background:var(--ud-success);}
.ktr-question[data-difficulty="medium"]::before{background:#e5a43c;}
.ktr-question[data-difficulty="hard"]::before{background:#e26572;}
.ktr-difficulty,.ktr-source-date{display:inline-flex!important;align-items:center!important;gap:5px!important;padding:5px 9px!important;border:1px solid var(--ud-border)!important;border-radius:999px!important;background:var(--ud-surface-2)!important;color:var(--ud-text-2)!important;font-size:.69rem!important;font-weight:850!important;letter-spacing:.01em!important;}
.ktr-difficulty.easy{border-color:color-mix(in srgb,var(--ud-success) 36%,var(--ud-border))!important;background:var(--ud-success-soft)!important;color:var(--ud-success)!important;}
.ktr-difficulty.medium{border-color:color-mix(in srgb,#e5a43c 38%,var(--ud-border))!important;background:color-mix(in srgb,#e5a43c 11%,var(--ud-surface-2))!important;color:color-mix(in srgb,#e5a43c 82%,var(--ud-text))!important;}
.ktr-difficulty.hard{border-color:color-mix(in srgb,#e26572 38%,var(--ud-border))!important;background:color-mix(in srgb,#e26572 11%,var(--ud-surface-2))!important;color:color-mix(in srgb,#e26572 82%,var(--ud-text))!important;}
.ktr-source-date{color:var(--ud-muted)!important;}
.ktr-meta{display:flex!important;gap:7px!important;align-items:center!important;flex-wrap:wrap!important;}
.ktr-reveal-gate{background:linear-gradient(135deg,var(--ud-surface-2),color-mix(in srgb,var(--ud-accent) 5%,var(--ud-surface-2)))!important;border-color:var(--ud-border)!important;}
.ktr-solution{border:1px solid color-mix(in srgb,var(--ud-accent) 20%,var(--ud-border))!important;}

/* Test Center semantics: date + paper difficulty, restrained color. */
.tc-difficulty{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:999px;border:1px solid var(--ud-border);background:var(--ud-surface-2);font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;}
.tc-difficulty.easy{color:var(--ud-success);background:var(--ud-success-soft);border-color:color-mix(in srgb,var(--ud-success) 35%,var(--ud-border));}
.tc-difficulty.medium{color:#b97718;background:color-mix(in srgb,#e5a43c 11%,var(--ud-surface));border-color:color-mix(in srgb,#e5a43c 34%,var(--ud-border));}
.tc-difficulty.hard{color:#c54f5d;background:color-mix(in srgb,#e26572 10%,var(--ud-surface));border-color:color-mix(in srgb,#e26572 34%,var(--ud-border));}
:root[data-theme-resolved="dark"] .tc-difficulty.medium{color:#f0bd68;}
:root[data-theme-resolved="dark"] .tc-difficulty.hard{color:#f29aa5;}
.tc-test-card.difficulty-easy{border-left:3px solid color-mix(in srgb,var(--ud-success) 70%,var(--ud-border))!important;}
.tc-test-card.difficulty-medium{border-left:3px solid color-mix(in srgb,#e5a43c 70%,var(--ud-border))!important;}
.tc-test-card.difficulty-hard{border-left:3px solid color-mix(in srgb,#e26572 70%,var(--ud-border))!important;}
.tc-date-chip.is-date{background:color-mix(in srgb,var(--ud-info,#4c8bf5) 7%,var(--ud-surface-2))!important;border-color:color-mix(in srgb,var(--ud-info,#4c8bf5) 20%,var(--ud-border))!important;}


/* ========================================================================== 
   UNITDIME v25.12a — PHASE 12 DELIVERY + GLOBAL UI STABILITY POLISH
   Keeps CBT fixed-theme; public marketing stays fixed-light while auth can follow appearance.
   ========================================================================== */

/* ---- Sidebar pre-paint / geometry / motion -------------------------------- */
@media (min-width:821px){
  html.ud-ui-scale-app :is(.student-sidebar,.teacher-sidebar,.school-admin-sidebar,.admin-sidebar){
    height:var(--ud-ui-viewport-height)!important;
    min-height:var(--ud-ui-viewport-height)!important;
  }
  .student-sidebar-header{
    padding:10px 12px 8px!important;
    min-height:58px!important;
    margin-bottom:12px!important;
  }
  .student-brand{gap:9px!important;padding:0!important;overflow:visible!important;}
  .student-brand-mark{flex:0 0 auto!important;overflow:visible!important;}
  .student-brand-word{overflow:visible!important;text-overflow:clip!important;padding:1px 4px 1px 0!important;}
  .student-sidebar-header .student-nav-toggle{
    display:grid!important;place-items:center!important;
    flex:0 0 36px!important;width:36px!important;height:36px!important;
    border-radius:11px!important;background:var(--ud-surface-2)!important;
    border:1px solid var(--ud-border)!important;color:var(--ud-muted)!important;
    box-shadow:var(--ud-shadow-xs)!important;
  }
  .student-sidebar-header .student-nav-toggle:hover{color:var(--ud-accent)!important;border-color:var(--ud-accent-border)!important;background:var(--ud-accent-softer)!important;}
  .student-nav{padding-top:4px!important;gap:8px!important;}
  .student-nav-group{gap:5px!important;}
  .student-nav-heading{margin:4px 10px 5px!important;}
  .student-sidebar-footer{margin-top:auto!important;padding-top:10px!important;padding-bottom:12px!important;background:linear-gradient(180deg,transparent,var(--ud-sidebar) 24%)!important;}
  .student-sidebar,.student-main{transition:width .22s cubic-bezier(.22,1,.36,1),margin-left .22s cubic-bezier(.22,1,.36,1),transform .22s cubic-bezier(.22,1,.36,1)!important;}
  .student-nav-label,.student-brand-word,.student-sidebar-profile-copy,.student-sidebar-profile-chevron{transition:opacity .14s ease,transform .18s ease!important;}
  html:not(.ud-student-shell-prepared) :is(.student-sidebar,.student-main,.student-nav-label,.student-brand-word,.student-sidebar-profile-copy,.student-sidebar-profile-chevron){transition:none!important;}
}

/* ---- Dashboard / common actions ------------------------------------------- */
.dashboard-panel-link{
  min-height:38px!important;padding:9px 13px!important;border-radius:12px!important;
  border:1px solid color-mix(in srgb,var(--ud-accent) 24%,var(--ud-border))!important;
  background:linear-gradient(135deg,var(--ud-accent),#7869f0)!important;
  color:#fff!important;font-weight:850!important;text-decoration:none!important;
  box-shadow:0 10px 24px rgba(102,87,232,.16)!important;
  transition:transform .16s ease,box-shadow .16s ease,filter .16s ease!important;
}
.dashboard-panel-link:hover{transform:translateY(-1px);filter:brightness(1.04);box-shadow:0 13px 28px rgba(102,87,232,.22)!important;text-decoration:none!important;}
.dashboard-mock-action{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  min-height:34px!important;width:max-content!important;padding:8px 11px!important;border-radius:10px!important;
  border:1px solid var(--ud-accent-border)!important;background:var(--ud-accent-soft)!important;color:var(--ud-accent)!important;
  font-weight:850!important;text-decoration:none!important;
}
.dashboard-mock-action:hover{background:color-mix(in srgb,var(--ud-accent) 20%,var(--ud-surface))!important;}
.dashboard-mock-time.live{
  border:1px solid color-mix(in srgb,var(--ud-success) 28%,var(--ud-border))!important;
  background:linear-gradient(135deg,var(--ud-success-soft),color-mix(in srgb,var(--ud-success) 6%,var(--ud-surface)))!important;
  box-shadow:0 0 18px color-mix(in srgb,var(--ud-success) 8%,transparent)!important;
}
.dashboard-mock-time.live span,.dashboard-mock-time.live strong{color:var(--ud-success)!important;}

/* ---- Review workspace ------------------------------------------------------ */
.ktr-main-v233{
  background:linear-gradient(155deg,var(--ud-surface-2),color-mix(in srgb,var(--ud-accent) 2.5%,var(--ud-surface-2)))!important;
  border-color:var(--ud-border)!important;
  box-shadow:var(--ud-shadow-sm)!important;
}
.ktr-question{
  padding:20px!important;border-radius:16px!important;
  background:linear-gradient(145deg,var(--ud-surface),color-mix(in srgb,var(--ud-accent) 2.5%,var(--ud-surface)))!important;
}
:root[data-theme-resolved="dark"] .ktr-main-v233{background:linear-gradient(160deg,#141c2e,#12192a)!important;}
:root[data-theme-resolved="dark"] .ktr-question{background:linear-gradient(145deg,#1b263d,#182136 74%)!important;}
.ktr-question-statuses{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap;}
.ktr-attempt-date{display:inline-flex;align-items:center;gap:5px;margin-left:7px;padding:4px 8px;border-radius:999px;border:1px solid var(--ud-border);background:var(--ud-surface-2);color:var(--ud-muted);font-size:.72rem;font-weight:800;white-space:nowrap;}
.ktr-question-head{border-color:var(--ud-border)!important;}
.ktr-question-body{color:var(--ud-text)!important;}
.ktr-nav{border-color:var(--ud-border)!important;}
.ktr-nav button{background:var(--ud-surface-2)!important;border-color:var(--ud-border)!important;color:var(--ud-text-2)!important;}
.ktr-nav button:not(:disabled):hover{border-color:var(--ud-accent-border)!important;background:var(--ud-accent-soft)!important;color:var(--ud-accent)!important;}
.ktr-reveal-gate button{border:0!important;background:linear-gradient(135deg,var(--ud-accent),#7e6cf2)!important;color:#fff!important;box-shadow:0 8px 20px rgba(102,87,232,.16)!important;}
.ktr-top-actions a{background:var(--ud-surface-2)!important;border-color:var(--ud-border)!important;color:var(--ud-text-2)!important;}
.ktr-top-actions a.primary{background:linear-gradient(135deg,var(--ud-accent),#7869f0)!important;border-color:transparent!important;color:#fff!important;}

/* ---- Result / analytics: override every remaining light-only island -------- */
.tr-primary-score-card,.tr-hero-insight-card,.tr-key-metrics-v2310 article,
.tr-score-breakdown-v2310,.tr-score-breakdown-grid article,.tr-chart-card,
.tr-marks-story,.tr-marks-story-grid article,.tr-section-snapshot,
.tr-section-snapshot-grid article,.tr-explore,.tr-explore button,.tr-time-ribbon,
.tr-chapter-radar,.tr-chapter-radar-grid article,.tr-chapter-priority-grid article,
.tr-chapter-teaser,.tr-subject-strip article,.tr-time-card,.tr-review-launch,
.tr-review-lock,.tr-comparison-grid article,.tr-insights article{
  border-color:var(--ud-border)!important;
  color:var(--ud-text)!important;
  background:linear-gradient(145deg,var(--ud-surface),color-mix(in srgb,var(--ud-accent) 2%,var(--ud-surface)))!important;
  box-shadow:var(--ud-shadow-xs)!important;
}
.tr-hero-subject-scores>div,.tr-chapter-card-metrics span,.tr-section-snapshot-grid article,
.tr-explore button,.tr-subject-strip article,.tr-score-breakdown-grid article{
  background:var(--ud-surface-2)!important;border-color:var(--ud-border)!important;
}
.tr-donut::after{background:var(--ud-surface)!important;}
.tr-primary-score-copy>strong,.tr-hero-insight-card strong,.tr-key-metrics-v2310 strong,
.tr-score-breakdown-grid strong,.tr-chart-card h3,.tr-marks-story h3,.tr-section-snapshot h3,
.tr-explore h3,.tr-chapter-radar h4,.tr-chapter-priority-grid h4,.tr-section-snapshot-grid strong,
.tr-subject-strip strong,.tr-donut strong,.tr-chart-legend b{color:var(--ud-text)!important;}
.tr-primary-score-copy>p,.tr-hero-insight-card>p,.tr-key-metrics-v2310 small,.tr-key-metrics-v2310 p,
.tr-score-breakdown-grid small,.tr-score-breakdown-grid p,.tr-chart-legend span,
.tr-marks-story span,.tr-section-snapshot-grid span,.tr-explore button span,
.tr-chapter-radar article p,.tr-chapter-priority-grid article p,.tr-chapter-card-metrics span,
.tr-subject-strip span,.tr-donut span{color:var(--ud-muted)!important;}
.tr-primary-score-track,.tr-marks-bridge,.tr-time-ribbon-bar{background:var(--ud-surface-3)!important;}
.tr-pace-diagnosis{background:var(--ud-info-soft)!important;border:1px solid color-mix(in srgb,var(--ud-info) 22%,var(--ud-border))!important;}
.tr-pace-diagnosis b{color:var(--ud-info)!important;}.tr-pace-diagnosis span{color:var(--ud-muted)!important;}
.tr-hero-insight-card.accuracy{background:linear-gradient(145deg,var(--ud-surface),color-mix(in srgb,var(--ud-success) 7%,var(--ud-surface)))!important;}
.tr-hero-insight-card.attempts{background:linear-gradient(145deg,var(--ud-surface),color-mix(in srgb,var(--ud-info) 7%,var(--ud-surface)))!important;}
.tr-hero-insight-card.rank{background:linear-gradient(145deg,var(--ud-surface),color-mix(in srgb,var(--ud-warning) 7%,var(--ud-surface)))!important;}
.tr-hero-insight-card.time{background:linear-gradient(145deg,var(--ud-surface),color-mix(in srgb,var(--ud-accent) 7%,var(--ud-surface)))!important;}
.tr-key-metrics-v2310 article:nth-child(1){background:linear-gradient(135deg,var(--ud-surface),color-mix(in srgb,var(--ud-success) 5%,var(--ud-surface)))!important;}
.tr-key-metrics-v2310 article:nth-child(2){background:linear-gradient(135deg,var(--ud-surface),color-mix(in srgb,var(--ud-danger) 5%,var(--ud-surface)))!important;}
.tr-key-metrics-v2310 article:nth-child(3){background:linear-gradient(135deg,var(--ud-surface),var(--ud-surface-2))!important;}
.tr-key-metrics-v2310 article:nth-child(4){background:linear-gradient(135deg,var(--ud-surface),color-mix(in srgb,var(--ud-info) 5%,var(--ud-surface)))!important;}
.tr-result-date{display:inline-flex;align-items:center;padding:5px 9px;margin-left:7px;border:1px solid var(--ud-border);border-radius:999px;background:var(--ud-surface-2);color:var(--ud-muted);font-size:.68rem;font-weight:800;}

/* ---- Auth: full-page gradient, tighter card, denser useful content ---------- */
.public-body:has(.auth-section){background:#5d50e4!important;}
.public-body:has(.auth-section) .site-footer{background:#fff!important;}
.public-body .auth-section{
  min-height:calc(100vh - 66px)!important;padding:34px 0 42px!important;
  background:
    radial-gradient(circle at 11% 20%,rgba(255,255,255,.18),transparent 26%),
    radial-gradient(circle at 79% 79%,rgba(70,182,255,.18),transparent 25%),
    linear-gradient(135deg,#493bd5 0%,#6656e9 47%,#477fdc 100%)!important;
}
.public-body .auth-container{
  width:min(92%,1160px)!important;
  grid-template-columns:minmax(0,1.16fr) minmax(340px,410px)!important;
  gap:32px!important;
}
.public-body .auth-login-showcase{
  min-height:440px!important;padding:34px 40px!important;
  background:linear-gradient(145deg,rgba(255,255,255,.105),rgba(255,255,255,.045))!important;
  border:1px solid rgba(255,255,255,.16)!important;
  box-shadow:0 24px 70px rgba(28,20,110,.18)!important;
  backdrop-filter:blur(10px);
}
.public-body .auth-login-showcase h1{font-size:clamp(2.25rem,3.8vw,3.55rem)!important;max-width:690px!important;}
.public-body .auth-login-showcase>p{max-width:650px!important;font-size:.95rem!important;line-height:1.58!important;}
.auth-showcase-flow{margin-top:23px!important;gap:9px!important;}
.auth-showcase-flow>div{min-height:106px!important;padding:13px!important;}
.auth-showcase-flow strong{margin:9px 0 3px!important;}.auth-showcase-flow small{font-size:.66rem!important;}
.auth-showcase-note{position:relative;z-index:2;display:flex;align-items:center;gap:9px;margin-top:17px;color:rgba(255,255,255,.82);font-size:.72rem;font-weight:700;}
.auth-showcase-note::before{content:"";width:8px;height:8px;border-radius:50%;background:#86f0be;box-shadow:0 0 0 5px rgba(134,240,190,.12),0 0 18px rgba(134,240,190,.35);}
.public-body .auth-card{width:100%!important;max-width:410px!important;justify-self:end;padding:26px 27px!important;border-radius:22px!important;box-shadow:0 28px 70px rgba(25,19,90,.22)!important;}
.public-body .auth-card-head{margin-bottom:15px!important;}
.public-body .auth-card-head h2{font-size:1.35rem!important;}.public-body .auth-card-head p{font-size:.73rem!important;}
.public-body .auth-card .form-group{margin-bottom:13px!important;}
.public-body .auth-card .form-input{min-height:44px!important;}
.public-body .auth-submit{min-height:44px!important;}
.public-body .google-auth-section{padding:10px!important;margin-bottom:13px!important;}
.public-body .auth-divider{margin:14px 0!important;}
.public-body .auth-switch,.public-body .auth-institution{margin-top:12px!important;font-size:.72rem!important;}
.auth-institution-showcase{background:linear-gradient(145deg,rgba(255,255,255,.105),rgba(63,220,181,.055))!important;}
@media(max-width:980px){
  .public-body .auth-section{padding:24px 0 34px!important;}
  .public-body .auth-container{grid-template-columns:1fr!important;width:min(92%,620px)!important;gap:20px!important;}
  .public-body .auth-login-showcase{min-height:0!important;padding:26px!important;}
  .public-body .auth-card{justify-self:center!important;max-width:520px!important;}
}

/* ---- Responsive safety ----------------------------------------------------- */
@media(max-width:820px){
  .ktr-question{padding:14px!important;}
  .ktr-question-statuses{justify-content:flex-start!important;}
  .ktr-attempt-date,.tr-result-date{margin-left:0!important;}
}

/* ==========================================================================\n   UNITDIME v25.13b — PHASE 13 UX CLOSURE\n   ========================================================================== */
:root{--ud-ui-scale:.98;--ud-ui-scale-inverse:102.040816%;--ud-ui-viewport-height:102.040816vh}
.student-page-content{padding-top:18px!important}
.student-flashes:empty{display:none!important}.student-flashes{margin-bottom:0!important}
.student-layout:not(.student-sidebar-expanded) .student-sidebar{overflow:visible!important}
.student-layout:not(.student-sidebar-expanded) .student-nav{overflow:visible!important}
.student-layout:not(.student-sidebar-expanded) .student-nav-group{overflow:visible!important}
.student-profile-logout{color:var(--ud-danger)!important;background:var(--ud-danger-soft)!important;border-color:color-mix(in srgb,var(--ud-danger) 24%,transparent)!important}
.student-profile-logout:hover{color:var(--ud-on-danger)!important;background:var(--ud-danger)!important;border-color:var(--ud-danger)!important}
.auth-orbit-core{padding:0!important;overflow:hidden;background:transparent!important;box-shadow:0 12px 30px rgba(30,24,100,.25)!important}
.auth-orbit-core img{width:100%;height:100%;display:block;object-fit:cover;border-radius:16px}
.auth-card-mobile-brand{display:none;align-items:center;gap:8px;margin-bottom:14px;color:var(--ud-text)}.auth-card-mobile-brand img{width:31px;height:31px;object-fit:cover;border-radius:9px;box-shadow:0 5px 14px rgba(91,72,230,.22)}.auth-card-mobile-brand strong{font-size:.9rem}
.ud-question-tools{display:flex;align-items:center;gap:6px;margin-left:auto}.ud-question-tool{width:31px;height:31px;display:inline-grid;place-items:center;border:1px solid var(--ud-border)!important;border-radius:9px!important;background:var(--ud-surface-2)!important;color:var(--ud-muted)!important;padding:0!important;cursor:pointer}.ud-question-tool:hover{color:var(--ud-accent)!important;border-color:var(--ud-accent-border)!important;background:var(--ud-accent-soft)!important}.ud-question-tool.is-active{color:var(--ud-warning)!important;background:var(--ud-warning-soft)!important;border-color:color-mix(in srgb,var(--ud-warning) 32%,var(--ud-border))!important}.ud-question-tool svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.ud-question-tool[disabled]{opacity:.65;cursor:wait}.ud-question-tool-status{min-width:0;color:var(--ud-muted);font-size:.64rem}
.dashboard-subject-name{display:flex!important;align-items:center;gap:8px}.dashboard-subject-symbol{width:28px;height:28px;flex:0 0 28px;display:grid;place-items:center;border-radius:9px;font-size:.78rem;font-weight:900}.dashboard-subject-symbol svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.dashboard-subject-symbol.physics{color:var(--ud-info);background:var(--ud-info-soft)}.dashboard-subject-symbol.chemistry{color:var(--ud-success);background:var(--ud-success-soft)}.dashboard-subject-symbol.mathematics,.dashboard-subject-symbol.maths{color:var(--ud-accent);background:var(--ud-accent-soft)}.dashboard-subject-copy{min-width:0}
.dashboard-syllabus-subject>div:first-child{display:flex!important;align-items:center;gap:7px}.dashboard-syllabus-subject .dashboard-subject-symbol{width:23px;height:23px;flex-basis:23px;border-radius:7px;font-size:.65rem}
@media(max-width:980px){.public-body .auth-container{display:flex!important;flex-direction:column!important}.public-body .auth-card{order:1!important}.public-body .auth-login-showcase{order:2!important}}
@media(max-width:700px){.public-body .auth-section{padding:18px 0 34px!important}.public-body .auth-container{width:min(93%,470px)!important;gap:0!important}.public-body .auth-login-showcase{display:none!important}.public-body .auth-card{max-width:none!important;padding:23px 20px!important;border-radius:20px!important}.auth-card-mobile-brand{display:flex}.public-body .auth-card-head h2{font-size:1.3rem!important}.student-page-content{padding-top:12px!important}}
.student-nav-link[data-nav-label="Test Center"]{--ud-nav-accent:#d65a91;--ud-nav-soft:rgba(214,90,145,.13)}

.uad-question-review-tools{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.uad-inline-error{font-size:.64rem;color:var(--ud-danger);max-width:220px}.uad-review-question>header{gap:10px}.uad-review-question .ud-question-tool{flex:0 0 auto}


/* ==========================================================================
   UNITDIME v25.13e — FINAL PHASE 12/13 VISUAL QA CLOSURE
   ========================================================================== */
/* Full-accent controls need a theme-aware foreground. Dark mode uses a bright
   lavender accent, so white text does not have enough contrast there. */
:is(.dashboard-primary-action,.upq-open,#upqStart,.tc-button-primary,
    .button-primary,.pyq-btn,.tr-button.primary,.ktb-primary-button,
    .uph-mode-card.is-ready .uph-icon,.tc-library-tabs button.active,
    .ktr-filterbar button.active,.ktr-subject-tabs button.active,
    .udp-btn.primary,.ktr-reveal-gate button,.ktr-top-actions a.primary){
    background:linear-gradient(135deg,var(--ud-accent),var(--ud-accent-hover))!important;
    color:var(--ud-on-accent)!important;
}
:is(.uad-btn.primary,.udp-hero-actions a.primary,.upq-unit-icon,.upq-choice.active){
    background:linear-gradient(135deg,var(--ud-accent),var(--ud-accent-hover))!important;
    color:var(--ud-on-accent)!important;
}
.upq-choice.active>b{background:color-mix(in srgb,var(--ud-on-accent) 16%,transparent)!important;color:var(--ud-on-accent)!important;}
:root[data-theme-resolved="dark"] .heat-level-3{color:var(--ud-text)!important;}
:root[data-theme-resolved="dark"] .heat-level-4{color:var(--ud-on-accent)!important;}

/* Auth routes honour Light / Dark / System while public marketing pages can
   remain fixed-light. The official Google button itself is left to Google. */
.public-auth-appearance{margin-left:auto;display:flex;align-items:center;flex:0 0 auto;}
.public-auth-appearance + .nav-links{margin-left:0;}
.public-body.auth-theme-enabled .site-header{background:var(--ud-topbar)!important;color:var(--ud-text)!important;}
.public-body.auth-theme-enabled .brand,.public-body.auth-theme-enabled .nav-links{color:var(--ud-text)!important;}
.public-body.auth-theme-enabled .nav-links a:not(.button){color:var(--ud-muted)!important;}
.public-body.auth-theme-enabled .nav-links a:not(.button):hover{color:var(--ud-text)!important;}
.public-body.auth-theme-enabled .auth-card-head h2,.public-body.auth-theme-enabled .auth-card-head span{color:var(--ud-text)!important;}
.public-body.auth-theme-enabled .auth-card-head p,.public-body.auth-theme-enabled .google-auth-label{color:var(--ud-muted)!important;}
.public-body.auth-theme-enabled .site-footer{background:var(--ud-bg)!important;border-color:var(--ud-border)!important;}
.public-body.auth-theme-enabled .footer-founder,.public-body.auth-theme-enabled .footer-copy,.public-body.auth-theme-enabled .footer-links{color:var(--ud-muted)!important;}
:root[data-theme-resolved="dark"] .public-body.auth-theme-enabled{background:var(--ud-bg)!important;}
:root[data-theme-resolved="dark"] .public-body.auth-theme-enabled .auth-card{background:var(--ud-surface)!important;border-color:var(--ud-border)!important;box-shadow:var(--ud-shadow-md)!important;}
:root[data-theme-resolved="dark"] .public-body.auth-theme-enabled .auth-card .form-input{background:var(--ud-surface-2)!important;color:var(--ud-text)!important;border-color:var(--ud-border)!important;}
:root[data-theme-resolved="dark"] .public-body.auth-theme-enabled .auth-divider span{background:var(--ud-surface)!important;color:var(--ud-muted)!important;}
:root[data-theme-resolved="dark"] .public-body.auth-theme-enabled .auth-card-mobile-brand{color:var(--ud-text)!important;}
@media(max-width:650px){
  .public-body.auth-theme-enabled .navbar{gap:10px!important;}
  .public-body.auth-theme-enabled .public-auth-appearance{margin-left:auto;}
  .public-body.auth-theme-enabled .nav-links{margin-left:0!important;gap:8px!important;}
}

/* UnitDime v25.13e — auth responsive/dark closure */
:root[data-theme-resolved="dark"] .public-body.auth-theme-enabled .auth-section {
  background:
    radial-gradient(circle at 16% 18%, rgba(155, 140, 255, 0.22), transparent 34%),
    radial-gradient(circle at 82% 78%, rgba(76, 182, 255, 0.14), transparent 38%),
    linear-gradient(135deg, #17142f 0%, #252049 52%, #17273d 100%) !important;
}

@media (max-width: 650px) {
  .public-body.auth-theme-enabled .nav-links {
    display: none !important;
  }
  .public-body.auth-theme-enabled .navbar {
    gap: 0.75rem;
  }
  .public-body.auth-theme-enabled .public-auth-appearance {
    margin-left: auto;
  }
}

/* ==========================================================================
   UNITDIME v25.13e — FINAL PHASE 12/13 AUTH + PUBLIC-USER UX CLOSURE
   ========================================================================== */
.auth-benefit-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:11px!important;
  margin-top:26px!important;
}
.auth-benefit-grid>.auth-benefit-card{
  min-height:132px;
  padding:16px 16px 15px!important;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  border-color:rgba(255,255,255,.16)!important;
  background:linear-gradient(145deg,rgba(255,255,255,.105),rgba(255,255,255,.055))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
.auth-benefit-grid>.auth-benefit-card:hover{
  border-color:rgba(255,255,255,.24)!important;
  background:linear-gradient(145deg,rgba(255,255,255,.14),rgba(255,255,255,.07))!important;
}
.auth-benefit-icon{
  width:31px!important;
  height:31px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:10px!important;
  background:rgba(255,255,255,.14)!important;
  color:#fff!important;
}
.auth-benefit-icon svg{
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.75;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.auth-benefit-card strong{margin-top:11px!important;font-size:.9rem!important;}
.auth-benefit-card small{font-size:.68rem!important;line-height:1.47!important;}
.public-body .auth-showcase-note{
  position:relative;
  z-index:2;
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:16px;
  color:rgba(255,255,255,.78)!important;
  font-size:.7rem;
  font-weight:720;
  line-height:1.45;
}
.public-body .auth-showcase-note::before{
  content:"";
  width:7px;
  height:7px;
  flex:0 0 7px;
  border-radius:50%;
  background:#8ff0bf;
  box-shadow:0 0 0 4px rgba(143,240,191,.12);
}
.public-body .auth-institution{
  margin-top:10px!important;
  padding-top:10px;
  border-top:1px solid var(--ud-border);
  color:var(--ud-muted)!important;
}
.public-body .auth-institution a{font-weight:800;}
.public-body.auth-theme-enabled .auth-card .form-hint{color:var(--ud-muted)!important;}
.public-body.auth-theme-enabled .auth-card .form-error{color:var(--ud-danger)!important;}
.public-body.auth-theme-enabled .auth-switch,
.public-body.auth-theme-enabled .auth-institution{color:var(--ud-muted)!important;}
.public-body.auth-theme-enabled .auth-switch a,
.public-body.auth-theme-enabled .auth-institution a{color:var(--ud-accent)!important;}
.public-body.auth-theme-enabled .auth-switch a:hover,
.public-body.auth-theme-enabled .auth-institution a:hover{color:var(--ud-accent-hover)!important;}

/* Sign-up has more fields, so keep the two-column desktop composition balanced. */
.public-body .auth-signup-container{align-items:center!important;}
.public-body .auth-signup-showcase{min-height:610px!important;}

@media(max-width:980px){
  .public-body .auth-signup-showcase{min-height:auto!important;}
}
@media(max-width:700px){
  .auth-benefit-grid{grid-template-columns:1fr!important;}
  .public-body .auth-signup-container{gap:0!important;}
}


/* v25.13g — Phase 12/13 closure */
.public-body .google-auth-section{background:transparent!important;border:0!important;padding:0!important;margin:0 0 12px!important;box-shadow:none!important}
.public-body .google-auth-label{margin:0 0 7px!important;text-align:left!important;font-size:.68rem!important;font-weight:800!important}
.google-signin-container,.google-signin-render-target{overflow:visible!important;max-width:100%!important}
.google-signin-container iframe{max-width:none!important}
.auth-showcase-orbit{right:22px!important;top:20px!important;transform:scale(.78);transform-origin:top right;opacity:.92}
.public-body .auth-login-showcase h1{padding-right:72px}
@media(max-width:980px){.public-body .auth-login-showcase h1{padding-right:0}.auth-showcase-orbit{display:none!important}}


/* v25.13h — final PYQ scope selection state */
:is(.upq-choice,.upq-filter-chip,.upq-topic-chip).active,
:is(.upq-choice,.upq-filter-chip,.upq-topic-chip)[aria-pressed="true"]{
  border-color:color-mix(in srgb,var(--ud-accent) 78%,var(--ud-border))!important;
  background:linear-gradient(135deg,var(--ud-accent),color-mix(in srgb,var(--ud-accent) 76%,#7c3aed))!important;
  color:var(--ud-on-accent)!important;
  box-shadow:0 8px 20px color-mix(in srgb,var(--ud-accent) 20%,transparent)!important;
}
:is(.upq-choice,.upq-filter-chip,.upq-topic-chip):focus-visible{outline:3px solid color-mix(in srgb,var(--ud-accent) 24%,transparent);outline-offset:2px}

/* ========================================================================== 
   UnitDime v25.13j — compact laptop auth + staff light-only release surface
   ========================================================================== */
/* Staff theme code is intentionally retained in the codebase, but the current
   Teacher / School Admin / Platform Admin release is fixed-light. */
html[data-theme="light"] :is(.teacher-body,.school-admin-body,.admin-body){
  color-scheme:light;
}

/* A 1366x768 laptop browser has materially less than 768px of content height
   after tabs/toolbars. Keep the complete sign-in composition inside that normal
   viewport without shrinking the Google control itself. */
@media (min-width:981px) and (max-height:860px){
  .public-body .auth-section{
    min-height:calc(100dvh - 68px)!important;
    padding:20px 0 24px!important;
    display:flex!important;
    align-items:center!important;
  }
  .public-body .auth-container{
    width:min(92%,1160px)!important;
    grid-template-columns:minmax(0,1.14fr) minmax(350px,.76fr)!important;
    gap:28px!important;
    align-items:center!important;
  }
  .public-body .auth-login-showcase{
    min-height:0!important;
    padding:26px 34px!important;
    border-radius:24px!important;
  }
  .public-body .auth-login-showcase h1{
    max-width:650px!important;
    margin:7px 0 10px!important;
    font-size:clamp(2rem,3.15vw,3rem)!important;
    line-height:1.01!important;
  }
  .public-body .auth-login-showcase>p{
    font-size:.86rem!important;
    line-height:1.5!important;
  }
  .auth-benefit-grid{
    gap:9px!important;
    margin-top:17px!important;
  }
  .auth-benefit-grid>.auth-benefit-card{
    min-height:98px!important;
    padding:11px 13px!important;
    border-radius:14px!important;
  }
  .auth-benefit-icon{width:27px!important;height:27px!important;border-radius:9px!important}
  .auth-benefit-icon svg{width:15px!important;height:15px!important}
  .auth-benefit-card strong{margin-top:7px!important;font-size:.78rem!important}
  .auth-benefit-card small{font-size:.6rem!important;line-height:1.36!important}
  .public-body .auth-showcase-note{margin-top:11px!important;font-size:.62rem!important}
  .auth-showcase-orbit{transform:scale(.68)!important;right:17px!important;top:16px!important}
  .public-body .auth-card{
    padding:22px 25px!important;
    border-radius:20px!important;
  }
  .public-body .auth-card-head{margin-bottom:13px!important}
  .public-body .auth-card-head h2{font-size:1.28rem!important}
  .public-body .auth-card-head p{margin-top:4px!important;font-size:.69rem!important}
  .public-body .auth-card .form-group{margin-bottom:12px!important}
  .public-body .auth-card .form-input{min-height:44px!important}
  .public-body .auth-submit{min-height:44px!important}
  .public-body .google-auth-section{margin-bottom:8px!important}
  .public-body .auth-divider{margin:13px 0!important}
  .public-body .auth-switch{margin-top:10px!important}
  .public-body .auth-institution{margin-top:7px!important;padding-top:7px!important}
}


/* ==========================================================================
   UNITDIME v25.14g — DESKTOP READABILITY + DASHBOARD VISUAL POLISH
   ========================================================================== */
/* Dashboard subject identity: stronger, theme-safe visual anchors. */
.dashboard-subject-symbol{
  width:30px!important;height:30px!important;flex:0 0 30px!important;border:1px solid var(--ud-border)!important;
  border-radius:10px!important;box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 12%,transparent),0 5px 14px color-mix(in srgb,#000 7%,transparent)!important;
}
.dashboard-subject-symbol svg{width:17px!important;height:17px!important;stroke-width:1.85!important}
.dashboard-subject-symbol.physics{color:#60a5fa!important;background:linear-gradient(145deg,color-mix(in srgb,#3b82f6 22%,var(--ud-surface)),color-mix(in srgb,#60a5fa 8%,var(--ud-surface-2)))!important;border-color:color-mix(in srgb,#60a5fa 30%,var(--ud-border))!important}
.dashboard-subject-symbol.chemistry{color:#34d399!important;background:linear-gradient(145deg,color-mix(in srgb,#10b981 22%,var(--ud-surface)),color-mix(in srgb,#34d399 8%,var(--ud-surface-2)))!important;border-color:color-mix(in srgb,#34d399 30%,var(--ud-border))!important}
.dashboard-subject-symbol.mathematics,.dashboard-subject-symbol.maths{color:#a78bfa!important;background:linear-gradient(145deg,color-mix(in srgb,#8b5cf6 22%,var(--ud-surface)),color-mix(in srgb,#a78bfa 8%,var(--ud-surface-2)))!important;border-color:color-mix(in srgb,#a78bfa 30%,var(--ud-border))!important}
.dashboard-syllabus-subject .dashboard-subject-symbol{width:25px!important;height:25px!important;flex-basis:25px!important;border-radius:8px!important}

/* Consistency heatmap: neutral -> emerald. Explicit !important rules override the
   generic card bridge so Dark mode preserves meaningful activity intensity. */
.dashboard-month-day.heat-level-0,.dashboard-heatmap-legend .heat-level-0{background:var(--ud-surface-3)!important;border-color:var(--ud-border)!important;color:var(--ud-muted)!important}
.dashboard-month-day.heat-level-1,.dashboard-heatmap-legend .heat-level-1{background:color-mix(in srgb,#10b981 20%,var(--ud-surface))!important;border-color:color-mix(in srgb,#10b981 30%,var(--ud-border))!important;color:color-mix(in srgb,#10b981 72%,var(--ud-text))!important}
.dashboard-month-day.heat-level-2,.dashboard-heatmap-legend .heat-level-2{background:color-mix(in srgb,#10b981 38%,var(--ud-surface))!important;border-color:color-mix(in srgb,#10b981 50%,var(--ud-border))!important;color:var(--ud-text)!important}
.dashboard-month-day.heat-level-3,.dashboard-heatmap-legend .heat-level-3{background:linear-gradient(145deg,#34d399,#16a34a)!important;border-color:#22c55e!important;color:#071b12!important}
.dashboard-month-day.heat-level-4,.dashboard-heatmap-legend .heat-level-4{background:linear-gradient(145deg,#22c55e,#047857)!important;border-color:#16a34a!important;color:#fff!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,#fff 12%,transparent)!important}
.dashboard-heatmap-legend i{box-shadow:inset 0 0 0 1px color-mix(in srgb,#fff 8%,transparent)}
.dashboard-month-day-today{border-color:#34d399!important;box-shadow:inset 0 0 0 1px #34d399,0 0 0 2px color-mix(in srgb,#34d399 14%,transparent)!important}
