/* ============================================================================
 * Superadmin (the Whole) — Kairos glass skin (kairos root)
 * Identity: deep institutional purple base, backlit glass, violet domain
 * accent (--kairos-cube #7b6cf6), grounded/steady motion. Presentation only.
 * Load AFTER the page's inline <style>.
 * ========================================================================== */

:root{
  --kairos-bg:#0d0a1f;
  --kairos-bg-deep:#070511;
  --kairos-purple:#7c4dff;
  --kairos-purple-soft:#a78bfa;
  --kairos-sa:#a78bfa;
  --kairos-glass:rgba(255,255,255,.06);
  --kairos-border:rgba(255,255,255,.14);
  --kairos-text:#f4f1ff;
  --kairos-muted:#a9a3c4;
  --kairos-good:#4fd1c5;
  --kairos-warn:#f2b134;
  --kairos-danger:#ff8d8d;
  --kairos-grad-glass:linear-gradient(160deg,rgba(255,255,255,.10) 0%,rgba(255,255,255,.02) 100%);
  --kairos-inset:inset 0 1px 0 rgba(255,255,255,.08);
  --kairos-shadow:0 18px 48px rgba(0,0,0,.5);
  --kairos-glow-sa:0 0 24px rgba(167,139,250,.30);
  --kairos-ease-loop:cubic-bezier(.65,0,.35,1);

  /* Remap the page + topbar-shell vars */
  --bg:var(--kairos-bg);
  --panel:#161130;
  --primary:var(--kairos-sa);
  --primary2:#9186f8;
  --text:var(--kairos-text);
  --muted:var(--kairos-muted);
  --line:var(--kairos-border);
  --accent:rgba(167,139,250,.14);
  --good:rgba(79,209,197,.12);
  --warn:rgba(242,177,52,.12);
  --danger:rgba(255,141,141,.12);
  --ok:var(--kairos-good);
  --orange:var(--kairos-warn);
  --red:var(--kairos-danger);
}

/* ---------- Base ---------- */
html,body{
  background:radial-gradient(120% 120% at 50% 0%,#1a1236 0%,#0d0a1f 55%,#070511 100%) fixed, var(--kairos-bg-deep);
  color:var(--kairos-text);
  font-family:"Inter","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}

/* ---------- Sidebar — matched to the Tetrahedron shell geometry ---------- */
.sidebar{
  background:
    radial-gradient(circle at 18% 10%, rgba(124,77,255,.16), transparent 30%),
    linear-gradient(180deg, rgba(13,10,31,.92) 0%, rgba(7,5,17,.96) 100%);
  border-right:1px solid var(--kairos-border);
  border-radius:0 24px 24px 0;
  padding:18px 14px;
  box-shadow:var(--kairos-inset);
  position:relative; z-index:70;
}
.brand-wrap{gap:12px; margin-bottom:18px;}
.brand-text{font-size:18px; font-weight:800; letter-spacing:.08em;}
.brand-subtitle{font-size:10px; letter-spacing:.14em;}
.portal-chip{margin-bottom:16px;}
.nav a{border-radius:14px; font-weight:600; padding:11px 12px; margin-bottom:6px;}
.brand-subtitle{color:var(--kairos-sa); opacity:1;}
.portal-chip{
  background:rgba(167,139,250,.10);
  border:1px solid rgba(167,139,250,.35);
  color:var(--kairos-sa);
}
.nav a{color:var(--kairos-text); opacity:.85;}
.nav a:hover{background:var(--kairos-glass); opacity:1;}
.nav a.active{
  background:rgba(167,139,250,.14);
  box-shadow:inset 2px 0 0 var(--kairos-sa), var(--kairos-inset);
  color:#fff; opacity:1;
}
.sidebar-toggle{
  background:var(--kairos-glass);
  border:1px solid var(--kairos-border);
  color:var(--kairos-text);
  width:44px !important;
  height:44px !important;
}
.sidebar-footer-row{border-top:1px solid var(--kairos-border);}

/* Collapsed sidebar tooltips: Cube ships its own canonical #kGlobalTooltip
   (injected by cube-student-canonical-sidebar.js) — we only re-dress it.
   No second tooltip system here. */
#kGlobalTooltip{
  background:#161130 !important;
  border:1px solid rgba(167,139,250,.45) !important;
  color:var(--kairos-text) !important;
  box-shadow:var(--kairos-shadow), var(--kairos-glow-sa) !important;
}
#kGlobalTooltipArrow{
  background:#161130 !important;
  border-left:1px solid rgba(167,139,250,.45) !important;
  border-top:1px solid rgba(167,139,250,.45) !important;
}

/* Brand orbit — the Cube solid, grounded and steady */
.sa-orbit{position:relative; width:46px; height:46px; flex-shrink:0;}
.sa-orbit .sa-center{
  position:absolute; inset:0; margin:auto;
  width:26px; height:26px;
  filter:drop-shadow(0 0 10px rgba(167,139,250,.35));
  transform-origin:center; animation:sa-turn 24s linear infinite;
}
.sa-orbit .sa-center polygon,
.sa-orbit .sa-center rect{
  fill:rgba(167,139,250,.16);
  stroke:var(--kairos-sa);
  stroke-width:1.6; stroke-linejoin:round;
}
.sa-orbit .c-ring{
  position:absolute; inset:1px;
  border:1px dashed rgba(167,139,250,.30);
  border-radius:50%;
}
.sa-orbit .c-rotor{position:absolute; inset:0; animation:sa-spin 18s linear infinite;}
.sa-orbit .c-rotor i{
  position:absolute; top:50%; left:50%;
  width:5px; height:5px; margin:-2.5px;
  border-radius:50%;
  background:var(--kairos-sa);
  box-shadow:0 0 8px rgba(167,139,250,.7);
  transform:rotate(var(--a)) translateY(-21px);
}
@keyframes sa-spin{to{transform:rotate(360deg);}}
@keyframes sa-turn{
  0%{transform:translateY(0) rotate(0deg);}
  50%{transform:translateY(-2px) rotate(180deg);}
  100%{transform:translateY(0) rotate(360deg);}
}

/* Nav icons (inline SVG) */
.nav-icon svg{width:18px; height:18px; display:block;}
.nav a .nav-icon{color:var(--kairos-muted);}
.nav a:hover .nav-icon{color:var(--kairos-text);}
.nav a.active .nav-icon{color:var(--kairos-sa);}

/* ---------- Topbar + widgets ---------- */
.topbar{
  background:rgba(13,10,31,.55);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid var(--kairos-border);
}
.school-sub{color:var(--kairos-sa);}
.user-box, .kairos-user-box{background:var(--kairos-glass); border:1px solid var(--kairos-border);}
.school-logo, .user-avatar{background:rgba(167,139,250,.12);}
.kairos-notif-trigger{
  background:var(--kairos-glass);
  border:1px solid var(--kairos-border);
  color:var(--kairos-text);
}
.kairos-notif-trigger:hover, .kairos-user-box:hover{background:rgba(255,255,255,.10);}
.kairos-notif-badge{background:var(--kairos-sa); color:#0b0722;}
.kairos-notif-dropdown, .kairos-user-dropdown{
  background:var(--panel);
  border:1px solid var(--kairos-border);
  box-shadow:var(--kairos-shadow);
}
.kairos-user-menu-header{background:rgba(255,255,255,.04); border-bottom:1px solid var(--kairos-border);}
.kairos-user-menu-name{color:var(--kairos-text);}
.kairos-user-menu-role{color:var(--kairos-muted);}
.kairos-user-menu-item{color:var(--kairos-text);}
.kairos-user-menu-item:hover{background:rgba(167,139,250,.10);}
.kairos-user-menu-item.muted{color:var(--kairos-muted);}
.kairos-user-menu-item.logout{color:var(--kairos-danger);}
.kairos-user-menu-divider{background:var(--kairos-border);}
.kairos-notif-header, .kairos-notif-footer{background:var(--panel); border-color:rgba(255,255,255,.08);}
.kairos-notif-item{border-bottom:1px solid rgba(255,255,255,.07);}
.kairos-notif-item:hover{background:rgba(255,255,255,.05);}
.kairos-notif-item.unread{background:rgba(167,139,250,.08);}
.kairos-notif-item.unread::before{background:var(--kairos-sa);}
.kairos-notif-title,.kairos-notif-item-title{color:var(--kairos-text);}
.kairos-notif-eyebrow,.kairos-notif-meta,.kairos-notif-time,.kairos-notif-item-body,.kairos-notif-empty p{color:var(--kairos-muted);}
.kairos-notif-action,.kairos-notif-link,.kairos-notif-footer a{color:var(--kairos-sa);}
.kairos-filter-chip{background:rgba(255,255,255,.06); border:1px solid var(--kairos-border); color:var(--kairos-muted);}
.kairos-filter-chip.active{background:rgba(167,139,250,.16); color:var(--kairos-sa); border-color:rgba(167,139,250,.4);}

/* ---------- Content ---------- */
.sec-title{color:var(--kairos-text);}
.sec-meta{color:var(--kairos-muted);}
.sec-link{color:var(--kairos-sa);}

/* Hero — keep the violet identity, deepen it into the glass world */
.hero{
  background:
    radial-gradient(circle at 80% 10%, rgba(167,139,250,.25), transparent 45%),
    linear-gradient(135deg,#241263 0%,#3b1f96 55%,#5b3fd0 100%);
  border:1px solid rgba(167,139,250,.30);
  box-shadow:var(--kairos-glow-sa), var(--kairos-inset);
}
.hero-kicker{background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.2);}
.hero-stat{background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.14);}

/* Buttons & pills */
.btn{
  background:var(--kairos-glass);
  border:1px solid var(--kairos-border);
  color:var(--kairos-text);
}
.btn:hover{border-color:var(--kairos-sa);}
.btn.primary{
  background:linear-gradient(135deg,#5b4bd6 0%,#7b6cf6 100%);
  color:#fff;
  border-color:transparent;
  box-shadow:var(--kairos-glow-sa), var(--kairos-inset);
}
.btn.primary:hover{background:linear-gradient(135deg,#6a5ae5 0%,#9186f8 100%);}
.pill.good{background:rgba(79,209,197,.14); color:var(--kairos-good);}
.pill.warn{background:rgba(242,177,52,.14); color:var(--kairos-warn);}
.pill.danger{background:rgba(255,141,141,.14); color:var(--kairos-danger);}
.pill.soft{background:rgba(167,139,250,.14); border:1px solid rgba(167,139,250,.35); color:var(--kairos-sa);}
.pill.neutral{background:rgba(255,255,255,.08); color:var(--kairos-muted);}

/* Home layout polish — the hero stays lean; the snapshot panel owns the
   numbers (hero-stats duplicated Courses/Tasks/Overall — removed) */
.hero-stats{display:none;}
.side-card{
  background:var(--kairos-grad-glass);
  background-color:rgba(22,17,48,.72);
  border:1px solid var(--kairos-border);
  color:var(--kairos-text);
  box-shadow:var(--kairos-inset);
}
.empty{
  background:rgba(255,255,255,.03);
  border:1px dashed var(--kairos-border);
  color:var(--kairos-muted);
}

/* Cards (work list, snapshot, nudges) */
.work-card, .snap-row, .socrates-nudge, .card{
  background:var(--kairos-grad-glass);
  background-color:rgba(22,17,48,.72);
  border:1px solid var(--kairos-border);
  color:var(--kairos-text);
  box-shadow:var(--kairos-inset);
}
.work-card:hover{border-color:rgba(167,139,250,.5); box-shadow:0 0 24px rgba(167,139,250,.14), var(--kairos-inset);}
.work-title{color:var(--kairos-text);}
.work-meta, .work-copy{color:var(--kairos-muted);}
.work-glyph{background:rgba(167,139,250,.12); border:1px solid rgba(167,139,250,.3);}
.snap-stat .value{color:var(--kairos-text);}
.snap-stat .label{color:var(--kairos-muted);}
.snap-bar{background:rgba(255,255,255,.10);}
.snap-bar-fill{background:linear-gradient(90deg,#5b4bd6,#a78bfa);}
.progress-bar{background:rgba(255,255,255,.18);}

/* ---------- Focus + reduced motion ---------- */
a:focus-visible, button:focus-visible{
  outline:2px solid var(--kairos-sa);
  outline-offset:2px;
  border-radius:6px;
}
@media (prefers-reduced-motion: reduce){
  .sa-orbit .sa-center, .sa-orbit .c-rotor{animation:none !important;}
  *,*::before,*::after{
    transition-duration:.001ms !important;
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
  }
}


/* Collapsed sidebar polish */
body.sidebar-collapsed .sa-orbit{width:40px; height:40px; margin:0 auto;}
body.sidebar-collapsed .sa-orbit .sa-center{width:22px; height:22px;}
body.sidebar-collapsed .sa-orbit .c-rotor i{transform:rotate(var(--a)) translateY(-18px);}
body.sidebar-collapsed .brand-wrap{justify-content:center;}
body.sidebar-collapsed .nav a{justify-content:center;}
@media (prefers-reduced-motion: reduce){ .sa-orbit .sa-center{animation:none !important;} }


/* Superadmin brand: the FIVE elements orbiting the Kairos logo */
.sa-orbit .sa-logo{
  position:absolute; inset:0; margin:auto;
  width:26px; height:26px; border-radius:50%;
  object-fit:cover;
  box-shadow:0 0 12px rgba(124,77,255,.5);
}
.sa-orbit .c-rotor i{
  width:6px; height:6px; margin:-3px;
  transform:rotate(var(--a)) translateY(-21px);
}
.sa-orbit .c-rotor .e-cube{background:#7b6cf6; box-shadow:0 0 8px rgba(123,108,246,.8);}
.sa-orbit .c-rotor .e-tetra{background:#4db6ff; box-shadow:0 0 8px rgba(77,182,255,.8);}
.sa-orbit .c-rotor .e-octa{background:#4fd1c5; box-shadow:0 0 8px rgba(79,209,197,.8);}
.sa-orbit .c-rotor .e-dodeca{background:#ff8fab; box-shadow:0 0 8px rgba(255,143,171,.8);}
.sa-orbit .c-rotor .e-icosa{background:#f2b134; box-shadow:0 0 8px rgba(242,177,52,.8);}
body.sidebar-collapsed .sa-orbit{width:40px; height:40px; margin:0 auto;}
body.sidebar-collapsed .sa-orbit .sa-logo{width:22px; height:22px;}
body.sidebar-collapsed .sa-orbit .c-rotor i{transform:rotate(var(--a)) translateY(-18px);}

/* ============================================================
 * Superadmin top-level family (settings / observatory / access-qa /
 * workflows / architecture / partners / memberships / communications /
 * users / schools)
 * Page-local classes → Kairos glass (dark, violet accent).
 * Relies on the skin's :root remap (--panel/--line/--accent/--good/...)
 * for every var()-based local rule; below we only re-dress rules that
 * hardcode light values (#fff, #fafafe, #fcfcff, light state colors).
 * Same specificity as the local rules; loads after them, so equal
 * specificity wins here.
 * ============================================================ */

/* ---- Workspace hero banners (purple gradient heads, incl. the
       country head whose gradient uses remapped --primary/--primary2) */
.uwk-head, .upd-head, .swk-head, .sd-head{
  background:
    radial-gradient(circle at 80% 10%, rgba(167,139,250,.25), transparent 45%),
    linear-gradient(135deg,#241263 0%,#3b1f96 55%,#5b3fd0 100%);
  border:1px solid rgba(167,139,250,.30);
  box-shadow:var(--kairos-glow-sa), var(--kairos-inset);
}

/* White hero CTAs → primary violet CTA */
.uwk-head .uwk-head-cta, .upd-head-cta, .swk-head-cta, .sd-cta{
  background:linear-gradient(135deg,#5b4bd6 0%,#7b6cf6 100%);
  color:#fff;
  border-color:transparent;
  box-shadow:var(--kairos-glow-sa), var(--kairos-inset);
}
.uwk-head .uwk-head-cta:hover, .upd-head-cta:hover, .swk-head-cta:hover, .sd-cta:hover{
  background:linear-gradient(135deg,#6a5ae5 0%,#9186f8 100%);
}
.swk-head-cta:disabled, .sd-cta:disabled{
  background:rgba(255,255,255,.14);
  color:rgba(244,241,255,.65);
}

/* ---- Hub pages: tabs / quick cards / panels / list items
       (settings, observatory, workflows, architecture, partners,
        communications; same rules also ship dead in users) */
.tab,
.uwk-tabbar button, .upd-tabbar button, .swk-tabbar button,
.uwk-filter-chips button{
  background:var(--kairos-glass);
  border-color:var(--kairos-border);
  color:var(--kairos-muted);
}
.swk-tabbar button{min-height:44px;}
.quick-card, .panel,
.uwk-panel, .upd-panel, .swk-panel,
.upd-card, .uwk-create-card{
  background:var(--kairos-grad-glass);
  background-color:rgba(22,17,48,.72);
  border:1px solid var(--kairos-border);
  box-shadow:var(--kairos-inset);
}
.item{background:rgba(255,255,255,.04);}

/* Bare state pills on the hub pages hardcode dark ink; the skin's
   .pill.good already wins where class="pill good", this is parity
   for any bare usage */
.good{background:rgba(79,209,197,.14);color:var(--kairos-good);}
.warn{background:rgba(242,177,52,.14);color:var(--kairos-warn);}
.danger{background:rgba(255,141,141,.14);color:var(--kairos-danger);}

/* Collapsed-sidebar data-tooltip (hub pages draw their own ::after) */
body.sidebar-collapsed .nav a:hover::after{
  background:#161130;
  color:var(--kairos-text);
  border:1px solid rgba(167,139,250,.45);
  box-shadow:var(--kairos-shadow), var(--kairos-glow-sa);
}

/* ---- Ops family buttons (access-qa / memberships / normalize /
       cleanup share .btn; hover hardcodes #fafafe) */
.btn:hover{background:rgba(255,255,255,.10);}
.btn.danger{
  background:rgba(255,141,141,.16);
  border-color:rgba(255,141,141,.45);
  color:var(--kairos-danger);
}
.btn.danger:hover{background:rgba(255,141,141,.26);}

/* Solid-primary workspace buttons (remapped --primary would give
   light-violet-on-light) → violet CTA gradient */
.uwk-btn, .swk-btn, .upd-save{
  background:linear-gradient(135deg,#5b4bd6 0%,#7b6cf6 100%);
  border-color:transparent;
  color:#fff;
  box-shadow:var(--kairos-glow-sa), var(--kairos-inset);
}
.upd-save:hover{background:linear-gradient(135deg,#6a5ae5 0%,#9186f8 100%);}
.uwk-btn.secondary, .swk-btn.secondary{
  background:var(--kairos-glass);
  border:1px solid var(--kairos-border);
  color:var(--kairos-text);
  box-shadow:none;
}
.cd-btn{
  background:rgba(167,139,250,.14);
  border-color:rgba(167,139,250,.4);
  color:var(--kairos-sa);
}

/* Row actions (table inline buttons) */
.uwk-row-action, .upd-row-action, .swk-row-action{
  background:var(--kairos-glass);
  border-color:var(--kairos-border);
  color:var(--kairos-sa);
}
.swk-row-action:hover{background:rgba(167,139,250,.12);}
.swk-row-action.danger{
  background:rgba(255,141,141,.12);
  border-color:rgba(255,141,141,.4);
  color:var(--kairos-danger);
}
.swk-row-action.is-disabled{
  background:rgba(255,255,255,.04);
  color:var(--kairos-muted);
}

/* ---- Tables (access-qa / memberships / normalize / cleanup / users /
       profile / schools / detail / country) */
.table-wrap, .uwk-table-wrap, .upd-table-wrap, .swk-table-wrap{
  background:rgba(22,17,48,.6);
}
.table thead th, .uwk-table thead th, .upd-table thead th, .swk-table thead th{
  background:rgba(255,255,255,.05);
}
.swk-table tbody tr.is-selected, .swk-list-row.is-selected{
  background:rgba(167,139,250,.10);
}
/* Country page draws hairlines with dashed #eef0f7 */
.swk-table td{border-bottom-color:rgba(255,255,255,.12);}
.swk-grp-school, .swk-recent-row, .sd-integ-row,
.swk-kvp-row, .swk-list-row{border-bottom-color:rgba(255,255,255,.12);}

/* ---- Chips: tone text colors are hardcoded light-theme ink */
.chip.tone-good, .uwk-chip.tone-good, .upd-chip.tone-good,
.swk-chip.tone-good, .sd-chip.tone-good{
  background:rgba(79,209,197,.14);
  color:var(--kairos-good);
}
.chip.tone-warn, .uwk-chip.tone-warn, .upd-chip.tone-warn,
.swk-chip.tone-warn, .sd-chip.tone-warn{
  background:rgba(242,177,52,.14);
  color:var(--kairos-warn);
}
.chip.tone-danger, .uwk-chip.tone-danger, .upd-chip.tone-danger,
.swk-chip.tone-danger, .sd-chip.tone-danger{
  background:rgba(255,141,141,.14);
  color:var(--kairos-danger);
}
.uwk-chip.tone-soft, .upd-chip.tone-soft, .swk-chip.tone-soft, .sd-chip.tone-soft{
  background:rgba(167,139,250,.14);
  color:var(--kairos-sa);
}
.chip.tone-neutral, .uwk-chip.tone-neutral, .upd-chip.tone-neutral,
.swk-chip.tone-neutral, .sd-chip.tone-neutral, .swk-chip.tone-muted{
  background:rgba(255,255,255,.08);
  color:var(--kairos-muted);
  border-color:var(--kairos-border);
}
.reasons-row .chip{background:rgba(255,255,255,.06);border-color:var(--kairos-border);}

/* ---- Inner soft surfaces (#fff / #fafafe / #fcfcff / #fbfbfd cards) */
.defect-card, .result-cell,
.uwk-role-card, .uwk-recent-row, .uwk-role-desc-box, .uwk-preview-card,
.uwk-health-card, .upd-kvp-row, .upd-admin-card, .upd-health-card,
.swk-kvp-row, .swk-col, .swk-health-card, .swk-country-card,
.swk-grp-country, .sd-card, .sd-health-card{
  background:rgba(255,255,255,.04);
}
.swk-col-item, .sd-readiness-row{background:rgba(255,255,255,.06);}
.swk-country-card.inactive{background:rgba(255,255,255,.02);}
.swk-country-meta .mi{background:rgba(255,255,255,.06);border-color:var(--kairos-border);}
.sd-kpi{
  background:var(--kairos-grad-glass);
  background-color:rgba(22,17,48,.72);
  box-shadow:var(--kairos-inset);
}
.uwk-create-preview{
  background:rgba(255,255,255,.04);
  border-color:var(--kairos-border);
}

/* Health / defect / result state values (hardcoded green/amber/red ink) */
.uwk-health-card.tone-good   .uwk-health-v,
.upd-health-card.tone-good   .upd-health-v,
.swk-health-card.tone-good   .swk-health-v,
.sd-health-card.tone-good    .sd-health-v,
.defect-card.tone-good       .defect-v,
.result-v.good{color:var(--kairos-good);}
.uwk-health-card.tone-warn   .uwk-health-v,
.upd-health-card.tone-warn   .upd-health-v,
.swk-health-card.tone-warn   .swk-health-v,
.sd-health-card.tone-warn    .sd-health-v,
.defect-card.tone-warn       .defect-v,
.result-v.warn{color:var(--kairos-warn);}
.uwk-health-card.tone-danger .uwk-health-v,
.upd-health-card.tone-danger .upd-health-v,
.swk-health-card.tone-danger .swk-health-v,
.sd-health-card.tone-danger  .sd-health-v,
.defect-card.tone-danger     .defect-v,
.result-v.danger{color:var(--kairos-danger);}
.defect-card.tone-good  {border-color:rgba(79,209,197,.38);}
.defect-card.tone-warn  {border-color:rgba(242,177,52,.38);}
.defect-card.tone-danger{border-color:rgba(255,141,141,.38);}

/* ---- Forms: white inputs → dark glass fields */
.form-row input, .form-row textarea,
.form-row input[type="text"], .form-row input[type="number"],
.form-row select,
.uwk-toolbar input[type=search],
.uwk-form-row input, .uwk-form-row select,
.upd-form-row input, .upd-form-row select, .upd-form-row textarea,
.swk-toolbar input[type=search], .swk-toolbar select, .swk-toolbar input[type=text],
.swk-form-row input, .swk-form-row select,
.swk-input, .swk-select, .swk-dir-search{
  background:rgba(13,10,31,.55);
  border-color:var(--kairos-border);
  color:var(--kairos-text);
}
.form-row input:focus, .form-row textarea:focus, .form-row select:focus,
.uwk-toolbar input[type=search]:focus,
.uwk-form-row input:focus, .uwk-form-row select:focus,
.upd-form-row input:focus, .upd-form-row select:focus, .upd-form-row textarea:focus,
.swk-form-row input:focus, .swk-form-row select:focus,
.swk-dir-search:focus{
  border-color:var(--kairos-sa);
  outline:none;
  box-shadow:0 0 0 3px rgba(167,139,250,.20);
}
.swk-form-row input:disabled, .swk-form-row select:disabled{
  background:rgba(255,255,255,.05);
  color:var(--kairos-muted);
}
select option{background:#161130;color:var(--kairos-text);}

/* Save/status lines (hardcoded #15803d / #b42318 / #9a6700) */
.status-line.saved, .uwk-form-status.saved, .upd-form-status.saved,
.swk-form-status.saved{color:var(--kairos-good);}
.status-line.error, .uwk-form-status.error, .upd-form-status.error,
.swk-form-status.error{color:var(--kairos-danger);}
.uwk-form-status.warn, .swk-form-status.warn{color:var(--kairos-warn);}
.status-line.saving, .upd-form-status.saving{color:var(--kairos-sa);}

/* ---- Warn banners (cream #fff8df boxes) */
.uwk-head .uwk-warn, .warn-banner, .uwk-form-banner,
.swk-bulk-warn, .cd-bulk-warn, .sd-edit-warn,
.uwk-preview-warn, .swk-preview-warn{
  background:rgba(242,177,52,.14);
  border-color:rgba(242,177,52,.38);
  color:var(--kairos-warn);
}
.warn-banner.danger{
  background:rgba(255,141,141,.14);
  border-color:rgba(255,141,141,.38);
  color:var(--kairos-danger);
}
.warn-banner code{background:rgba(255,255,255,.12);}
.swk-bulk-msg, .cd-bulk-msg{color:var(--kairos-danger);}

/* ---- Toolbars, pagers, bulk bars, segmented control (schools) */
.swk-pager{background:rgba(255,255,255,.04);}
.swk-bulkbar, .cd-bulkbar{
  background:rgba(167,139,250,.08);
  border-color:rgba(167,139,250,.30);
}
.swk-dir-seg{background:rgba(255,255,255,.05);border-color:var(--kairos-border);}
.swk-dir-seg button.active{
  background:rgba(167,139,250,.18);
  color:var(--kairos-sa);
  box-shadow:none;
}
.swk-country-open{
  background:var(--kairos-glass);
  border-color:var(--kairos-border);
  color:var(--kairos-sa);
  min-height:44px;
  padding-left:14px;
  padding-right:14px;
  display:inline-flex;
  align-items:center;
}
.swk-country-open:hover{
  background:rgba(167,139,250,.12);
  border-color:rgba(167,139,250,.45);
}
.swk-bar{background:rgba(255,255,255,.12);}

/* ---- Modals (schools / detail / country) */
.swk-modal-back, .cd-modal-back{background:rgba(7,5,17,.72);}
.swk-modal, .cd-modal{
  background:#161130;
  border:1px solid var(--kairos-border);
  box-shadow:var(--kairos-shadow);
}

/* ---- School detail extras */
.sd-readiness-row.ok {background:rgba(79,209,197,.12); border-color:rgba(79,209,197,.38);}
.sd-readiness-row.gap{background:rgba(242,177,52,.12); border-color:rgba(242,177,52,.38);}
.sd-integ-status.ok {background:rgba(79,209,197,.14); color:var(--kairos-good);}
.sd-integ-status.off{background:rgba(255,255,255,.08); color:var(--kairos-muted);}
.sd-tl-dot{
  background:rgba(255,255,255,.28);
  border-color:#161130;
  box-shadow:0 0 0 1px var(--kairos-border);
}
.sd-notes code{background:rgba(167,139,250,.14);}
.sd-diff-v .old{color:var(--kairos-danger);}
.sd-diff-v .new{color:var(--kairos-good);}

/* ---- Country page notes / misc */
.swk-note{
  background:rgba(167,139,250,.10);
  border-color:rgba(167,139,250,.35);
}
.swk-note .nt{color:var(--kairos-muted);}
.swk-note .nt strong{color:var(--kairos-text);}
.not-configured{color:var(--kairos-muted);}

/* ---- Raw doc + email-preview chrome (iframes stay white on purpose:
       they render the actual email template) */
.upd-raw{background:rgba(13,10,31,.6);}
.upd-raw pre{color:#d9d4f0;}
.uwk-preview-subject, .swk-preview-subject{
  background:rgba(13,10,31,.6);
  border-color:var(--kairos-border);
}

/* access-qa topbar avatar initials hardcode deep violet ink */
.uwk-avatar-initials{color:var(--kairos-sa);}

/* ============================================================
 * Superadmin content family (catalog / builders / repository /
 * publishing / exams / propagation)
 * ------------------------------------------------------------
 * Page-local classes → Kairos glass (violet domain accent).
 * Covers: content/, assignments/(+create), curriculums/, subjects/,
 * taxonomy/, templates/, countries/, learning-pathways/,
 * import-material/, lesson-builder/ (standalone shell),
 * question-builder/, resources/, repository/(+detail),
 * publishing/(+detail), standardized-exams/(+exam-package-detail),
 * propagation/propagation-detail.
 * Same specificity as the local rules; load AFTER the inline <style>.
 * Paper/document previews (exam paper in question-builder) stay
 * light on purpose, framed in glass.
 * ============================================================ */

/* ---------- Shared shell leftovers (all content pages) ---------- */
.notif{
  background:var(--kairos-glass);
  border:1px solid var(--kairos-border);
  color:var(--kairos-text);
}
.notif-badge{background:var(--kairos-sa); color:#0b0722;}
.breadcrumb{color:var(--kairos-muted);}
.breadcrumb .sep{color:rgba(255,255,255,.35);}
.breadcrumb .current{color:var(--kairos-sa);}
.link{color:var(--kairos-sa);}
.hero-tab.active{
  background:rgba(167,139,250,.16);
  color:var(--kairos-sa);
  border-color:rgba(167,139,250,.4);
}
.subtab{
  background:var(--kairos-glass);
  border:1px solid var(--kairos-border);
  color:var(--kairos-muted);
}
.subtab.active{
  background:rgba(167,139,250,.16);
  color:var(--kairos-sa);
  border-color:rgba(167,139,250,.4);
}
.panel, .quick-card{
  background:var(--kairos-grad-glass);
  background-color:rgba(22,17,48,.72);
  border:1px solid var(--kairos-border);
  color:var(--kairos-text);
  box-shadow:var(--kairos-inset);
}
.table-wrap{
  background:var(--kairos-grad-glass);
  background-color:rgba(22,17,48,.72);
  border:1px solid var(--kairos-border);
}
th{background:rgba(255,255,255,.04); color:var(--kairos-muted);}
.item{
  background:rgba(255,255,255,.04);
  border:1px solid var(--kairos-border);
  color:var(--kairos-text);
}
.neutral{background:rgba(255,255,255,.08); color:var(--kairos-muted);}
/* Inputs safety net — every native control inside the content column */
.page-content select, .page-content input[type="text"],
.page-content input[type="search"], .page-content textarea{
  background:rgba(0,0,0,.28);
  border:1px solid var(--kairos-border);
  color:var(--kairos-text);
}
.page-content select option{background:#161130; color:var(--kairos-text);}

/* ---------- Content home (content/index.html) ---------- */
.module-card{
  background:var(--kairos-grad-glass);
  background-color:rgba(22,17,48,.72);
  border:1px solid var(--kairos-border);
  box-shadow:var(--kairos-inset);
}
.module-card:hover{
  border-color:rgba(167,139,250,.5);
  box-shadow:0 0 24px rgba(167,139,250,.14), var(--kairos-inset);
}
.module-card-icon{
  background:rgba(167,139,250,.14);
  color:var(--kairos-sa);
}
.module-card-status.live{background:rgba(79,209,197,.14); color:var(--kairos-good);}
.module-card-status.runtime{background:rgba(77,182,255,.14); color:#8fcaff;}
.module-card-status.support{background:rgba(167,139,250,.14); color:var(--kairos-sa);}
.module-card-status.queue{background:rgba(242,177,52,.14); color:var(--kairos-warn);}
.module-card-status.planned{
  background:rgba(167,139,250,.14);
  color:#cfc6ff;
  border:1px solid rgba(167,139,250,.35);
}
.module-card-link{color:var(--kairos-sa);}
.pathways-note{
  background:linear-gradient(135deg,rgba(167,139,250,.10),rgba(255,255,255,.02));
  border:1px dashed rgba(167,139,250,.4);
}
.pathways-note h3{color:var(--kairos-sa);}
.pathways-note-pill{
  background:rgba(167,139,250,.14);
  color:#cfc6ff;
  border:1px solid rgba(167,139,250,.35);
}
.module-sublink{
  background:var(--kairos-glass);
  border:1px solid var(--kairos-border);
  color:var(--kairos-muted);
}
.module-sublink:hover{color:var(--kairos-sa); background:rgba(167,139,250,.14);}
.content-quick-actions{
  background:var(--kairos-grad-glass);
  background-color:rgba(22,17,48,.72);
  border:1px solid var(--kairos-border);
  box-shadow:var(--kairos-inset);
}
.content-quick-actions .primary{
  background:linear-gradient(135deg,#5b4bd6 0%,#7b6cf6 100%);
  color:#fff;
  border:1px solid transparent;
  box-shadow:var(--kairos-glow-sa), var(--kairos-inset);
}
.content-quick-actions .secondary{
  background:var(--kairos-glass);
  color:var(--kairos-text);
  border:1px solid var(--kairos-border);
}
.kpi-card{
  background:var(--kairos-grad-glass);
  background-color:rgba(22,17,48,.72);
  border:1px solid var(--kairos-border);
  box-shadow:var(--kairos-inset);
}
.toolbar{
  background:var(--kairos-grad-glass);
  background-color:rgba(22,17,48,.72);
  border:1px solid var(--kairos-border);
}
.toolbar input,.toolbar select{
  background:rgba(0,0,0,.28);
  border:1px solid var(--kairos-border);
  color:var(--kairos-text);
}
.content-table-wrap{
  background:var(--kairos-grad-glass);
  background-color:rgba(22,17,48,.72);
  border:1px solid var(--kairos-border);
  box-shadow:var(--kairos-inset);
}
.content-table-head{background:rgba(255,255,255,.04); border-bottom:1px solid var(--kairos-border);}
table.content-tbl thead tr{background:rgba(255,255,255,.04); border-bottom:1px solid var(--kairos-border);}
table.content-tbl th{color:var(--kairos-muted);}
table.content-tbl tbody tr:hover{background:rgba(255,255,255,.05);}
.ct-btn{background:rgba(167,139,250,.14); color:var(--kairos-sa);}
.ct-btn:hover{background:rgba(167,139,250,.22);}
.ct-btn.publish{background:rgba(79,209,197,.14); color:var(--kairos-good);}
.ct-empty{color:var(--kairos-muted);}
.st-pill{color:var(--kairos-muted);}
.st-draft{background:rgba(255,255,255,.08); color:var(--kairos-muted);}
.st-ready{background:rgba(77,182,255,.14); color:#8fcaff;}
.st-published{background:rgba(79,209,197,.14); color:var(--kairos-good);}
.st-blocked{background:rgba(255,141,141,.14); color:var(--kairos-danger);}
.st-review{background:rgba(242,177,52,.14); color:var(--kairos-warn);}
.val-panel{
  background:var(--kairos-grad-glass);
  background-color:rgba(22,17,48,.72);
  border:1px solid var(--kairos-border);
  box-shadow:var(--kairos-inset);
}
.val-row{border-bottom:1px solid rgba(255,255,255,.08);}
.content-tab{
  background:var(--kairos-glass);
  border:1px solid var(--kairos-border);
  color:var(--kairos-muted);
}
.content-tab.active{
  background:rgba(167,139,250,.16);
  color:var(--kairos-sa);
  border-color:rgba(167,139,250,.4);
}
.sa-btn{
  background:var(--kairos-glass);
  border:1px solid var(--kairos-border);
  color:var(--kairos-text);
}
.sa-btn:hover{border-color:var(--kairos-sa);}
.sa-btn.primary{
  background:linear-gradient(135deg,#5b4bd6 0%,#7b6cf6 100%);
  color:#fff;
  border-color:transparent;
  box-shadow:var(--kairos-glow-sa), var(--kairos-inset);
}

/* ---------- se-* catalog vocabulary (assignments / taxonomy /
   templates / import-material / repository / publishing /
   standardized-exams) ---------- */
.lp-hero, .se-hero{
  background:linear-gradient(135deg,rgba(167,139,250,.12),rgba(255,255,255,.02));
  background-color:rgba(22,17,48,.72);
  border:1px solid rgba(167,139,250,.35);
  box-shadow:var(--kairos-inset);
}
.lp-hero-title, .se-hero-title{color:var(--kairos-sa);}
.lp-hero-pill, .se-hero-pill{
  background:rgba(167,139,250,.14);
  color:#cfc6ff;
  border:1px solid rgba(167,139,250,.35);
}
.scope-card, .family-card{
  background:var(--kairos-grad-glass);
  background-color:rgba(22,17,48,.72);
  border:1px solid var(--kairos-border);
  box-shadow:var(--kairos-inset);
}
.scope-card:hover, .family-card:hover{
  border-color:rgba(167,139,250,.5);
  box-shadow:0 0 24px rgba(167,139,250,.14), var(--kairos-inset);
}
.scope-card-icon, .family-card-icon{
  background:rgba(167,139,250,.14);
  color:var(--kairos-sa);
}
.scope-card-status, .family-card-status{
  background:rgba(167,139,250,.14);
  color:#cfc6ff;
  border:1px solid rgba(167,139,250,.35);
}
.panel-pill{
  background:rgba(167,139,250,.14);
  color:#cfc6ff;
  border:1px solid rgba(167,139,250,.35);
}
.panel-pill.soft{background:rgba(255,255,255,.06); color:var(--kairos-muted); border-color:var(--kairos-border);}
.panel-pill.live{background:rgba(79,209,197,.14); color:var(--kairos-good); border-color:rgba(79,209,197,.4);}
.panel-pill.reference{background:rgba(242,177,52,.14); color:var(--kairos-warn); border-color:rgba(242,177,52,.4);}
.panel-pill.good{background:rgba(79,209,197,.14); color:var(--kairos-good); border-color:rgba(79,209,197,.4);}
.panel-pill.warn{background:rgba(242,177,52,.14); color:var(--kairos-warn); border-color:rgba(242,177,52,.4);}
.panel-pill.danger{background:rgba(255,141,141,.14); color:var(--kairos-danger); border-color:rgba(255,141,141,.4);}
.readiness-item{background:rgba(255,255,255,.04); border:1px solid var(--kairos-border);}
.readiness-box{background:rgba(255,255,255,.06); border-color:var(--kairos-border);}
.se-kpi{
  background:var(--kairos-grad-glass);
  background-color:rgba(22,17,48,.72);
  border:1px solid var(--kairos-border);
  box-shadow:var(--kairos-inset);
}
.se-filter-bar .se-search,
.se-filter-bar .se-filter-select{
  background:rgba(0,0,0,.28);
  border:1px solid var(--kairos-border);
  color:var(--kairos-text);
}
.se-filter-bar .se-filter-reset{
  background:var(--kairos-glass);
  border:1px solid var(--kairos-border);
  color:var(--kairos-muted);
}
.se-inv-wrap{
  background:var(--kairos-grad-glass);
  background-color:rgba(22,17,48,.72);
  border:1px solid var(--kairos-border);
  box-shadow:var(--kairos-inset);
}
.se-inv-head{border-bottom:1px solid var(--kairos-border);}
table.se-inv th{background:rgba(255,255,255,.04); color:var(--kairos-muted);}
/* status pills — honest states on glass */
.se-status-pill{
  background:rgba(255,255,255,.06);
  border:1px solid var(--kairos-border);
  color:var(--kairos-muted);
}
.se-status-pill.published, .se-status-pill.completed, .se-status-pill.active{
  background:rgba(79,209,197,.14); color:var(--kairos-good); border-color:rgba(79,209,197,.4);
}
.se-status-pill.review, .se-status-pill.in_review{
  background:rgba(242,177,52,.14); color:var(--kairos-warn); border-color:rgba(242,177,52,.4);
}
.se-status-pill.draft, .se-status-pill.processing{
  background:rgba(167,139,250,.14); color:#cfc6ff; border-color:rgba(167,139,250,.35);
}
.se-status-pill.blocked, .se-status-pill.failed{
  background:rgba(255,141,141,.14); color:var(--kairos-danger); border-color:rgba(255,141,141,.4);
}
.se-status-pill.ready{background:rgba(77,182,255,.14); color:#8fcaff; border-color:rgba(77,182,255,.35);}
.se-status-pill.pending{background:rgba(255,255,255,.06); color:var(--kairos-muted); border-color:var(--kairos-border);}
.se-status-pill.archived{background:rgba(255,255,255,.08); color:var(--kairos-muted); border-color:var(--kairos-border);}
.se-readiness-chip{
  background:rgba(255,255,255,.06);
  border:1px solid var(--kairos-border);
  color:var(--kairos-muted);
}
.se-readiness-chip.on{background:rgba(79,209,197,.14); color:var(--kairos-good); border-color:rgba(79,209,197,.4);}
.se-readiness-chip.off{background:rgba(255,255,255,.04); color:var(--kairos-muted); border-color:var(--kairos-border);}
.se-readiness-chip.warn{background:rgba(242,177,52,.14); color:var(--kairos-warn); border-color:rgba(242,177,52,.4);}
.se-readiness-chip.blocker{background:rgba(255,141,141,.14); color:var(--kairos-danger); border-color:rgba(255,141,141,.4);}
.se-source-chip{
  background:rgba(255,255,255,.06);
  border:1px solid var(--kairos-border);
  color:var(--kairos-muted);
}
.se-source-chip.toplevel{background:rgba(167,139,250,.16); color:var(--kairos-sa); border-color:rgba(167,139,250,.4);}
.se-source-chip.derived{background:rgba(242,177,52,.14); color:var(--kairos-warn); border-color:rgba(242,177,52,.4);}
.se-source-chip.live{background:rgba(79,209,197,.14); color:var(--kairos-good); border-color:rgba(79,209,197,.4);}
.se-source-chip.reference{background:rgba(242,177,52,.14); color:var(--kairos-warn); border-color:rgba(242,177,52,.4);}
.se-link-chip{
  background:rgba(167,139,250,.16);
  color:var(--kairos-sa);
  border:1px solid rgba(167,139,250,.4);
}
.se-derived-notice, .se-partial-notice{
  background:rgba(242,177,52,.12);
  border:1px solid rgba(242,177,52,.4);
  color:#ffe3ae;
}
.se-derived-notice strong, .se-partial-notice strong{color:var(--kairos-warn);}
.se-action-link{
  background:var(--kairos-glass);
  border:1px solid var(--kairos-border);
  color:var(--kairos-sa);
}
.se-action-link:hover{background:rgba(167,139,250,.16); border-color:rgba(167,139,250,.4);}
/* hierarchical catalog (family → program → row) */
.se-cat-family{background:rgba(255,255,255,.03); border:1px solid var(--kairos-border);}
.se-cat-family-head{
  background:linear-gradient(135deg,rgba(167,139,250,.12),rgba(255,255,255,.02));
  border-bottom:1px solid var(--kairos-border);
}
.se-cat-family-title{color:var(--kairos-sa);}
.se-cat-family-title .se-cat-toggle{
  background:rgba(167,139,250,.14);
  border:1px solid rgba(167,139,250,.4);
  color:var(--kairos-sa);
}
.se-cat-meta-pill{
  background:rgba(255,255,255,.06);
  color:var(--kairos-muted);
  border:1px solid var(--kairos-border);
}
.se-cat-meta-pill.good{background:rgba(79,209,197,.14); color:var(--kairos-good); border-color:rgba(79,209,197,.4);}
.se-cat-meta-pill.warn{background:rgba(242,177,52,.14); color:var(--kairos-warn); border-color:rgba(242,177,52,.4);}
.se-cat-meta-pill.danger{background:rgba(255,141,141,.14); color:var(--kairos-danger); border-color:rgba(255,141,141,.4);}
.se-cat-meta-pill.accent{background:rgba(167,139,250,.16); color:var(--kairos-sa); border-color:rgba(167,139,250,.4);}
.se-cat-program{background:rgba(13,10,31,.45); border:1px solid var(--kairos-border);}
.se-cat-program-head{background:rgba(255,255,255,.04); border-bottom:1px solid var(--kairos-border);}
.se-cat-program-title .se-cat-toggle{
  background:rgba(255,255,255,.06);
  border:1px solid var(--kairos-border);
  color:var(--kairos-sa);
}
.se-inv-state{color:var(--kairos-muted);}
.se-inv-state.error{color:var(--kairos-danger);}
.se-inv-state.error strong{color:var(--kairos-danger);}
.se-spinner, .spinner{
  border:2px solid rgba(255,255,255,.15);
  border-top-color:var(--kairos-sa);
}
.flow-step{background:rgba(255,255,255,.04); border:1px solid var(--kairos-border);}
.flow-step-num{
  background:linear-gradient(135deg,#5b4bd6,#7b6cf6);
  color:#fff;
  box-shadow:var(--kairos-glow-sa);
}
.flow-step-actor{color:var(--kairos-sa);}
.se-diagnostics, .lp-diagnostics, .diag{
  background:rgba(255,255,255,.04);
  border:1px solid var(--kairos-border);
}
.se-diagnostics-item, .lp-diagnostics-item, .diag-item{
  background:rgba(0,0,0,.25);
  border:1px solid var(--kairos-border);
}
.se-empty, .lp-empty{
  background:rgba(255,255,255,.03);
  border:1px dashed var(--kairos-border);
  color:var(--kairos-muted);
}
/* taxonomy code-parser preview */
.parser-input{
  background:rgba(0,0,0,.28);
  border:1px solid var(--kairos-border);
  color:var(--kairos-text);
}
.parser-result{
  background:rgba(255,255,255,.04);
  border:1px solid var(--kairos-border);
  color:var(--kairos-text);
}
.parser-result.invalid{
  background:rgba(255,141,141,.10);
  border-color:rgba(255,141,141,.4);
  color:var(--kairos-danger);
}
.parser-example{background:rgba(255,255,255,.04); border:1px solid var(--kairos-border);}
.parser-example code{
  background:rgba(167,139,250,.14);
  border:1px solid rgba(167,139,250,.35);
  color:var(--kairos-sa);
}

/* ---------- Learning pathways builder ---------- */
.bp-section{background:rgba(255,255,255,.04); border:1px solid var(--kairos-border);}
.bp-input,.bp-select,.bp-textarea{
  background:rgba(255,255,255,.04);
  border:1px dashed var(--kairos-border);
  color:var(--kairos-muted);
}
.bp-input:disabled,.bp-select:disabled,.bp-textarea:disabled{
  background:rgba(255,255,255,.04);
  color:var(--kairos-muted);
}
.bp-chip{
  background:rgba(167,139,250,.10);
  border:1px dashed rgba(167,139,250,.4);
  color:var(--kairos-sa);
}
.bp-node{background:rgba(255,255,255,.04); border:1px dashed var(--kairos-border);}
.bp-node-icon{background:rgba(167,139,250,.14); color:var(--kairos-sa);}
.bp-node-pill{
  background:rgba(255,255,255,.06);
  border:1px solid var(--kairos-border);
  color:var(--kairos-muted);
}
.bp-check-box{background:rgba(255,255,255,.06); border-color:var(--kairos-border);}
.node-card{background:rgba(255,255,255,.04); border:1px solid var(--kairos-border);}
.json-section pre{border:1px solid var(--kairos-border);}
.ai-grid .ai-card, .ai-card{
  background:rgba(167,139,250,.06);
  border:1px dashed rgba(167,139,250,.35);
  color:var(--kairos-muted);
}
.ai-card-status{
  background:rgba(167,139,250,.14);
  color:#cfc6ff;
  border:1px solid rgba(167,139,250,.35);
}
.ai-disclaimer{
  background:rgba(242,177,52,.12);
  border:1px solid rgba(242,177,52,.4);
  color:#ffe3ae;
}
.csv-meta .panel-pill{
  background:rgba(255,255,255,.06);
  color:var(--kairos-muted);
  border:1px solid var(--kairos-border);
}
.csv-notes li code{
  background:rgba(167,139,250,.14);
  border:1px solid rgba(167,139,250,.35);
  color:var(--kairos-sa);
}

/* ---------- Assignment intake wizard (assignments/create) ----------
   Shared assignment-intake.css paints light via --ai-* tokens +
   hardcoded whites; remap the tokens here (skin-scoped) and re-dress
   the hardcoded surfaces. --ac-* tokens are referenced by the page but
   undefined on this route — define them so borders/text resolve. */
:root{
  --ai-bg:var(--kairos-bg);
  --ai-panel:rgba(22,17,48,.72);
  --ai-line:var(--kairos-border);
  --ai-text:var(--kairos-text);
  --ai-muted:var(--kairos-muted);
  --ai-accent:var(--kairos-sa);
  --ai-accent-soft:rgba(167,139,250,.14);
  --ai-good:rgba(79,209,197,.14);
  --ai-good-text:var(--kairos-good);
  --ai-warn:rgba(242,177,52,.14);
  --ai-warn-text:var(--kairos-warn);
  --ai-danger:rgba(255,141,141,.14);
  --ai-danger-text:var(--kairos-danger);
  --ai-shadow:var(--kairos-shadow);
  --ac-line:var(--kairos-border);
  --ac-text:var(--kairos-text);
  --ac-muted:var(--kairos-muted);
}
.ai-hero{
  background:var(--kairos-grad-glass);
  background-color:rgba(22,17,48,.72);
  border:1px solid var(--kairos-border);
  box-shadow:var(--kairos-inset);
}
.ai-flow-step{
  background:var(--kairos-glass);
  border:1px solid var(--kairos-border);
  color:var(--kairos-muted);
}
.ai-flow-step.active{
  background:rgba(167,139,250,.16);
  color:var(--kairos-sa);
  border-color:rgba(167,139,250,.4);
}
.ai-panel{
  background:var(--kairos-grad-glass);
  background-color:rgba(22,17,48,.72);
  border:1px solid var(--kairos-border);
  box-shadow:var(--kairos-inset);
}
.ai-field input,
.ai-field select,
.ai-field textarea{
  background:rgba(0,0,0,.28);
  border:1px solid var(--kairos-border);
  color:var(--kairos-text);
}
.ai-upload{
  background:rgba(167,139,250,.08);
  border:1px dashed rgba(167,139,250,.4);
  color:var(--kairos-muted);
}
.ai-extract-box{background:rgba(255,255,255,.03); border:1px solid var(--kairos-border);}
.ai-btn{
  background:var(--kairos-glass);
  border:1px solid var(--kairos-border);
  color:var(--kairos-text);
}
.ai-btn:hover{border-color:var(--kairos-sa);}
.ai-btn.primary{
  background:linear-gradient(135deg,#5b4bd6 0%,#7b6cf6 100%);
  color:#fff;
  border-color:transparent;
  box-shadow:var(--kairos-glow-sa), var(--kairos-inset);
}
.ai-note{
  background:rgba(242,177,52,.12);
  border:1px solid rgba(242,177,52,.4);
  color:#ffe3ae;
}
.ai-box{
  background:var(--kairos-grad-glass);
  background-color:rgba(22,17,48,.72);
  border:1px solid var(--kairos-border);
}
.ai-result-item{background:rgba(255,255,255,.04); border:1px solid var(--kairos-border);}
.ai-pill.neutral{background:rgba(255,255,255,.08); color:var(--kairos-muted);}
/* page-local extras */
.assignment-extract-box{background:rgba(255,255,255,.03); border:1px solid var(--kairos-border);}
.assignment-summary-item{background:rgba(255,255,255,.04); border:1px solid var(--kairos-border);}
.assignment-divider, .assignment-mini-divider{background:var(--kairos-border);}

/* ---------- Lesson builder (standalone shell, no canonical sidebar) ---------- */
body.has-app-shell{
  background:radial-gradient(120% 120% at 50% 0%,#1a1236 0%,#0d0a1f 55%,#070511 100%) fixed, var(--kairos-bg-deep);
}
body.has-app-shell .topbar{border-bottom:1px solid var(--kairos-border) !important;}
.modal{
  background:var(--kairos-grad-glass);
  background-color:rgba(22,17,48,.72);
  border:1px solid var(--kairos-border);
  color:var(--kairos-text);
  box-shadow:var(--kairos-shadow), var(--kairos-inset);
}
.btn.soft{
  background:var(--kairos-glass);
  border:1px solid var(--kairos-border);
  color:var(--kairos-text);
}
.tag{
  background:var(--kairos-glass);
  border:1px solid var(--kairos-border);
  color:var(--kairos-muted);
}
.school-name, .user-name{color:var(--kairos-text);}
.user-role{color:var(--kairos-muted);}
.user-caret{color:var(--kairos-muted);}

/* ---------- Question builder ---------- */
.context-band{
  background:var(--kairos-grad-glass);
  background-color:rgba(22,17,48,.72);
  border:1px solid var(--kairos-border);
  box-shadow:var(--kairos-inset);
}
.context-card{background:rgba(255,255,255,.04); border:1px solid var(--kairos-border);}
.question-item{background:rgba(255,255,255,.04); border:1px solid var(--kairos-border);}
.question-item.active{
  border-color:rgba(167,139,250,.6);
  box-shadow:0 0 0 3px rgba(167,139,250,.18);
}
.field{background:rgba(255,255,255,.04); border:1px solid var(--kairos-border);}
.big-box{background:rgba(255,255,255,.04); border:1px solid var(--kairos-border);}
.option{background:rgba(255,255,255,.04); border:1px solid var(--kairos-border);}
.option.correct{background:rgba(79,209,197,.10); border-color:rgba(79,209,197,.45);}
.option.correct .bullet{border-color:var(--kairos-good); color:var(--kairos-good);}
.bullet{border:2px solid rgba(255,255,255,.35); color:var(--kairos-muted);}
.qb-hero{
  background:
    radial-gradient(circle at 80% 10%, rgba(167,139,250,.25), transparent 45%),
    linear-gradient(135deg,#241263 0%,#3b1f96 55%,#5b3fd0 100%);
  border:1px solid rgba(167,139,250,.30);
  box-shadow:var(--kairos-glow-sa), var(--kairos-inset);
}
.qb-btn{
  background:var(--kairos-glass);
  border:1px solid var(--kairos-border);
  color:var(--kairos-text);
}
.qb-btn:hover{border-color:var(--kairos-sa);}
.qb-btn.primary{
  background:linear-gradient(135deg,#5b4bd6 0%,#7b6cf6 100%);
  color:#fff;
  border-color:transparent;
  box-shadow:var(--kairos-glow-sa), var(--kairos-inset);
}
.qb-btn.ghost{background:var(--kairos-glass);}
.qb-rail,.qb-center{
  background:var(--kairos-grad-glass);
  background-color:rgba(22,17,48,.72);
  border:1px solid var(--kairos-border);
  box-shadow:var(--kairos-inset);
}
.qb-empty{
  background:rgba(255,255,255,.03);
  border:1px dashed var(--kairos-border);
  color:var(--kairos-muted);
}
.qb-item{background:rgba(255,255,255,.04); border:1px solid var(--kairos-border);}
.qb-item.active{
  border-color:rgba(167,139,250,.6);
  box-shadow:0 0 0 3px rgba(167,139,250,.18);
}
.qb-mini-tag{background:rgba(255,255,255,.08); color:var(--kairos-muted);}
.qb-section{background:rgba(255,255,255,.03); border:1px solid var(--kairos-border);}
.qb-field input,.qb-field select,.qb-field textarea{
  background:rgba(0,0,0,.28);
  border:1px solid var(--kairos-border);
  color:var(--kairos-text);
}
.qb-field input:focus,.qb-field select:focus,.qb-field textarea:focus{
  border-color:var(--kairos-sa);
  box-shadow:0 0 0 3px rgba(167,139,250,.25);
}
.qb-preview-header{
  background:var(--kairos-grad-glass);
  background-color:rgba(22,17,48,.72);
  border:1px solid var(--kairos-border);
}
.qb-preview-chip{background:rgba(255,255,255,.08); color:var(--kairos-muted);}
/* Exam paper preview — the document stays LIGHT (paper) inside a glass
   frame; re-pin dark ink because the remapped vars would flip it. */
.qb-preview-section{
  border:1px solid rgba(167,139,250,.45);
  box-shadow:0 0 24px rgba(167,139,250,.14);
  color:#1f2430;
}
.qb-preview-section-title{color:#1f2430;}
.qb-preview-passage,.qb-preview-instructions,.qb-preview-prompt{color:#242938;}
.qb-preview-instructions{color:#5a6070;}
.qb-preview-question{color:#1f2430;}
.qb-preview-choice-text{color:#242938;}
.qb-preview-answer-line{color:#5a6070;}
.qb-answer-key-row,.qb-readiness-card{
  background:rgba(255,255,255,.04);
  border:1px solid var(--kairos-border);
}
.qb-answer-key-num{color:var(--kairos-sa);}
.qb-validation-pill.good{background:rgba(79,209,197,.14); color:var(--kairos-good);}
.qb-validation-pill.warn{background:rgba(242,177,52,.14); color:var(--kairos-warn);}
.qb-validation-pill.neutral{background:rgba(255,255,255,.08); color:var(--kairos-muted);}
.qb-validation-errors{color:var(--kairos-danger);}
.qb-validation-warnings{color:var(--kairos-warn);}
.qb-section-note{
  background:rgba(167,139,250,.08);
  border:1px solid rgba(167,139,250,.25);
  color:var(--kairos-muted);
}
.qb-badge{background:rgba(255,255,255,.08); color:var(--kairos-muted);}
.qb-badge.good{background:rgba(79,209,197,.14); color:var(--kairos-good);}
.qb-badge.warn{background:rgba(242,177,52,.14); color:var(--kairos-warn);}
.qb-badge.primary{background:rgba(167,139,250,.16); color:var(--kairos-sa);}
.qb-ghost-link{color:var(--kairos-sa);}
.qb-toast{
  background:#122a24;
  border:1px solid rgba(79,209,197,.45);
  color:var(--kairos-text);
  box-shadow:var(--kairos-shadow);
}
.qb-toast strong{color:var(--kairos-good);}

/* ---------- Detail routes (repository-detail / publishing-detail /
   propagation-detail) ---------- */
.mini-card, .rail-card{
  background:rgba(255,255,255,.04);
  border:1px solid var(--kairos-border);
  color:var(--kairos-text);
}

/* ---------- Standardized exams (index + exam-package-detail) ---------- */
.filter-field{background:rgba(255,255,255,.04); border:1px solid var(--kairos-border);}
.filter-input,.filter-select{
  background:rgba(255,255,255,.04);
  border:1px dashed var(--kairos-border);
  color:var(--kairos-muted);
}
.filter-input:disabled,.filter-select:disabled{
  background:rgba(255,255,255,.04);
  color:var(--kairos-muted);
}
.filter-toggle-box{background:rgba(255,255,255,.06); border-color:var(--kairos-border);}
.entity-card{background:rgba(255,255,255,.04); border:1px solid var(--kairos-border);}
.entity-card-name{color:var(--kairos-sa);}
.id-cell{background:rgba(255,255,255,.04); border:1px solid var(--kairos-border);}
.ready-card{background:rgba(255,255,255,.04); border:1px solid var(--kairos-border);}
.ready-card-state{
  background:rgba(255,255,255,.06);
  border:1px solid var(--kairos-border);
  color:var(--kairos-muted);
}
.ready-card-state.ready{background:rgba(79,209,197,.14); color:var(--kairos-good); border-color:rgba(79,209,197,.4);}
.ready-card-state.pending{background:rgba(242,177,52,.14); color:var(--kairos-warn); border-color:rgba(242,177,52,.4);}
.ready-card-state.missing{background:rgba(255,141,141,.14); color:var(--kairos-danger); border-color:rgba(255,141,141,.4);}
.ready-card-state.draft{background:rgba(167,139,250,.14); color:#cfc6ff; border-color:rgba(167,139,250,.35);}
.check-row{background:rgba(255,255,255,.04); border:1px solid var(--kairos-border);}
.check-box{background:rgba(255,255,255,.06); border-color:var(--kairos-border);}
.check-box.on{background:#7b6cf6; border-color:#7b6cf6;}
.empty-block{
  background:rgba(255,255,255,.03);
  border:1px dashed var(--kairos-border);
  color:var(--kairos-muted);
}
.sub-panel{background:rgba(255,255,255,.04); border:1px solid var(--kairos-border);}
table.manifest-table th{background:rgba(255,255,255,.04); color:var(--kairos-muted);}

/* ============================================================
 * Superadmin courses & lessons trees (catalog / course-detail /
 * lesson-detail) — local page kits → Kairos glass
 * Covers: content/courses{,/course-detail{,/assignments,/lessons,
 * /publishing,/repository,/resources}} and content/lessons{,/detail,
 * /lesson-detail{,/assignments,/resources,/student-materials}}.
 * The skin :root already remaps --bg/--panel/--text/--muted/--line/
 * --primary/--accent/--good/--warn/--danger, and already themes
 * .hero, .btn(.primary), .pill.*, .card, .topbar, .sidebar — only
 * the classes those pages define locally are re-dressed here.
 * ============================================================ */

/* ---------- Hero furniture (course/lesson detail heroes) ---------- */
.hero-cover{border-color:rgba(255,255,255,.18); background:rgba(255,255,255,.08);}
.hero-tab.active{background:#f4f1ff; color:#3b1f96; border-color:transparent;}

/* ---------- Route sub-nav: subtabs (detail families) + content tabs
   (lessons catalog) + studio tab rail (lessons/detail) ---------- */
.subtab, .content-tab{
  background:var(--kairos-glass);
  border:1px solid var(--kairos-border);
  color:var(--kairos-muted);
}
.subtab:hover, .content-tab:hover{border-color:rgba(167,139,250,.5); color:var(--kairos-text);}
.subtab.active, .content-tab.active{
  background:rgba(167,139,250,.16);
  border-color:rgba(167,139,250,.4);
  color:var(--kairos-sa);
}
.tab{color:var(--kairos-muted);}
.tab:hover{color:var(--kairos-text); background:rgba(255,255,255,.06);}
.tab.active{color:var(--kairos-sa); background:rgba(167,139,250,.16);}
.tab .count{background:rgba(255,255,255,.08); color:var(--kairos-muted);}
.tab.active .count{background:rgba(167,139,250,.28); color:#fff;}

/* ---------- Primary glass surfaces (union across the two trees) ---------- */
.panel, .context-band, .table-wrap, .studio-header, .preview-panel,
.info-panel, .carousel, .tabs, .qb-wrap, .no-lesson,
.lp-hero, .scope-card, .se-kpi, .se-inv-wrap, .se-diagnostics{
  background:var(--kairos-grad-glass);
  background-color:rgba(22,17,48,.72);
  border:1px solid var(--kairos-border);
  color:var(--kairos-text);
  box-shadow:var(--kairos-inset);
}
.lp-hero{border-color:rgba(167,139,250,.35);}
.scope-card:hover{
  transform:translateY(-1px);
  border-color:rgba(167,139,250,.5);
  box-shadow:0 0 24px rgba(167,139,250,.14), var(--kairos-inset);
}

/* Nested boxes riding on the glass surfaces */
.info-box, .context-card, .mini-card, .rail-card, .info-row,
.dash-card, .row-card, .assn-card, .resource-link, .extract-step,
.extract-panel, .answer-sheet-preview, .aw-collapsible, .qb-section,
.qb-question, .dialog-row, .ready-row, .readiness-item,
.se-diagnostics-item, .flow-step, .se-cat-family, .se-cat-program,
.validation-row{
  background:rgba(255,255,255,.04);
  border-color:var(--kairos-border);
  color:var(--kairos-text);
}
.answer-sheet-preview .asp-stat{background:rgba(255,255,255,.05); border-color:var(--kairos-border);}
.answer-sheet-preview .asp-v{color:var(--kairos-text);}
.row-card:hover{border-color:rgba(167,139,250,.45); box-shadow:0 0 20px rgba(167,139,250,.12);}
.aw-collapsible[open]{background:rgba(22,17,48,.72); border-color:rgba(167,139,250,.4);}
.se-cat-family-head{
  background:linear-gradient(135deg,rgba(167,139,250,.12),rgba(255,255,255,.02));
  border-bottom-color:var(--kairos-border);
}
.se-cat-family-title .se-cat-toggle{background:rgba(167,139,250,.12); border-color:rgba(167,139,250,.4); color:var(--kairos-sa);}
.se-cat-program-head{background:rgba(255,255,255,.04); border-bottom-color:var(--kairos-border);}
.se-cat-program-title .se-cat-toggle{background:var(--kairos-glass); border-color:var(--kairos-border); color:var(--kairos-sa);}
.readiness-box{background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.3);}
.flow-step-num{background:linear-gradient(135deg,#5b4bd6,#7b6cf6); color:#fff; box-shadow:var(--kairos-glow-sa);}

/* Empty / fallback states — calm dark, dashed */
.empty-block, .qb-empty, .preview-empty{
  background:rgba(255,255,255,.03);
  border-color:var(--kairos-border);
  color:var(--kairos-muted);
}
.empty-block strong, .qb-empty strong, .preview-empty strong{color:var(--kairos-text);}
.se-inv-state{color:var(--kairos-muted);}
.se-inv-state strong{color:var(--kairos-text);}
.se-inv-state.error{color:var(--kairos-danger);}
.se-inv-state.error strong{color:var(--kairos-danger);}
.se-spinner{border-color:rgba(255,255,255,.2); border-top-color:var(--kairos-sa);}

/* ---------- Tables (courses + both detail families) ---------- */
th{background:rgba(255,255,255,.05); color:var(--kairos-muted);}

/* ---------- Chips, tags, meta pills ---------- */
.tag, .meta-chip, .flag-chip, .se-cat-meta-pill, .se-status-pill,
.se-readiness-chip{
  background:rgba(255,255,255,.06);
  border-color:var(--kairos-border);
  color:var(--kairos-muted);
}
.lp-hero-pill, .scope-card-status, .panel-pill{
  background:rgba(167,139,250,.14);
  border-color:rgba(167,139,250,.35);
  color:var(--kairos-sa);
}
.panel-pill.soft{background:rgba(255,255,255,.06); border-color:var(--kairos-border); color:var(--kairos-muted);}
.meta-chip.tone-soft{background:rgba(167,139,250,.14); color:var(--kairos-sa);}
.meta-chip.tone-good, .flag-chip.on, .se-cat-meta-pill.good,
.se-status-pill.published, .se-readiness-chip.on{
  background:rgba(79,209,197,.14); border-color:rgba(79,209,197,.4); color:var(--kairos-good);
}
.meta-chip.tone-warn, .se-cat-meta-pill.warn, .se-status-pill.review{
  background:rgba(242,177,52,.14); border-color:rgba(242,177,52,.4); color:var(--kairos-warn);
}
.meta-chip.tone-danger, .se-status-pill.blocked{
  background:rgba(255,141,141,.14); border-color:rgba(255,141,141,.4); color:var(--kairos-danger);
}
.se-status-pill.draft, .se-cat-meta-pill.accent{
  background:rgba(167,139,250,.14); border-color:rgba(167,139,250,.4); color:var(--kairos-sa);
}
.se-readiness-chip.off{background:var(--kairos-glass); border-color:var(--kairos-border); color:var(--kairos-muted);}
/* .ready-row .pill.* out-specifies the skin's .pill.* — repeat at parity */
.ready-row .pill.good{background:rgba(79,209,197,.14); color:var(--kairos-good);}
.ready-row .pill.warn{background:rgba(242,177,52,.14); color:var(--kairos-warn);}
.ready-row .pill.danger{background:rgba(255,141,141,.14); color:var(--kairos-danger);}

/* ---------- Buttons (local systems beyond the shared .btn) ---------- */
.sa-btn, .studio-action, .se-action-link{
  background:var(--kairos-glass);
  border-color:var(--kairos-border);
  color:var(--kairos-text);
}
.se-action-link{color:var(--kairos-sa);}
.se-action-link:hover{background:rgba(167,139,250,.14); border-color:rgba(167,139,250,.4);}
.studio-action:hover{background:rgba(167,139,250,.14); border-color:var(--kairos-sa);}
.sa-btn.primary, .studio-action.primary{
  background:linear-gradient(135deg,#5b4bd6 0%,#7b6cf6 100%);
  color:#fff; border-color:transparent;
  box-shadow:var(--kairos-glow-sa), var(--kairos-inset);
}
.studio-action.primary:hover{background:linear-gradient(135deg,#6a5ae5 0%,#9186f8 100%); border-color:transparent;}
.studio-action.publish{background:rgba(79,209,197,.16); border-color:rgba(79,209,197,.5); color:var(--kairos-good);}
.studio-action.publish:hover{background:rgba(79,209,197,.26); border-color:var(--kairos-good);}
.btn.danger{background:rgba(255,141,141,.14); border-color:rgba(255,141,141,.45); color:var(--kairos-danger);}
.se-filter-bar .se-filter-reset{background:var(--kairos-glass); border-color:var(--kairos-border); color:var(--kairos-muted);}
.qb-section-remove, .qb-q-remove, .qb-choice-remove,
.qb-q-up, .qb-q-down, .qb-section-up, .qb-section-down{
  background:var(--kairos-glass); border-color:var(--kairos-border); color:var(--kairos-muted);
}
.qb-section-remove:hover, .qb-q-remove:hover, .qb-choice-remove:hover{
  background:rgba(255,141,141,.14); border-color:rgba(255,141,141,.5); color:var(--kairos-danger);
}
.qb-q-add-choice, .qb-add-q{background:rgba(255,255,255,.03); border-color:rgba(167,139,250,.35); color:var(--kairos-sa);}
.extract-chip, .form-chip{background:var(--kairos-glass); border-color:var(--kairos-border); color:var(--kairos-muted);}
.extract-chip:hover, .form-chip:hover{background:rgba(255,255,255,.09); border-color:rgba(167,139,250,.45); color:var(--kairos-text);}

/* Resource carousel tiles */
.tile:hover{background:rgba(255,255,255,.06);}
.tile .ico{background:rgba(167,139,250,.14); color:var(--kairos-sa); border-color:rgba(167,139,250,.3);}
.tile.disabled .ico{background:rgba(255,255,255,.04); color:var(--kairos-muted); border-color:var(--kairos-border);}
.tile.disabled:hover{background:rgba(255,255,255,.03);}
.resource-link:hover{background:rgba(255,255,255,.06); border-color:rgba(167,139,250,.45);}
.resource-link.teacher-only{background:rgba(242,177,52,.10); border-color:rgba(242,177,52,.4);}
.resource-link.teacher-only .ico{color:var(--kairos-warn);}
.resource-tag{background:rgba(242,177,52,.14); color:var(--kairos-warn);}

/* ---------- Forms & inputs (studio + catalog + modals) ---------- */
.se-filter-bar .se-search, .se-filter-bar .se-filter-select,
.form-row input, .form-row textarea, .form-row select,
.meta-form-row input[type="text"], .meta-form-row select, .meta-form-row textarea,
.form-modal-row input[type="text"], .form-modal-row input[type="url"],
.form-modal-row textarea, .form-modal-row select,
.extract-field select, .extract-textarea,
.qb-section-head input.qb-section-title, .qb-section textarea.qb-section-instructions,
.qb-question textarea.qb-q-prompt, .qb-question input.qb-q-answer,
.qb-question input.qb-q-ocr, .qb-question input.qb-choice,
.qb-q-head select, .qb-q-head input[type="number"], .qb-q-meta textarea,
.qb-activity-input, .activity-workspace .aw-row input,
.ak-panel select, #kAwQbExtractedText{
  background:rgba(0,0,0,.28);
  border-color:var(--kairos-border);
  color:var(--kairos-text);
}
.page-content input::placeholder, .page-content textarea::placeholder{color:rgba(169,163,196,.65);}
.page-content select option, .popup-box select option{background:#161130; color:var(--kairos-text);}
.form-upload-zone{background:rgba(255,255,255,.03); border-color:var(--kairos-border); color:var(--kairos-muted);}
.form-upload-zone strong{color:var(--kairos-text);}
.form-upload-zone .upload-file-name.has-file{color:var(--kairos-text);}
.form-modal-banner.warn{background:rgba(242,177,52,.12); border-color:rgba(242,177,52,.4); color:var(--kairos-warn);}
.qb-activity-strip, .activity-workspace{border-color:rgba(167,139,250,.35);}
.activity-workspace .aw-pill{background:rgba(167,139,250,.14); border-color:rgba(167,139,250,.35); color:var(--kairos-sa);}
.activity-workspace .aw-qs{background:rgba(255,255,255,.04); border-color:var(--kairos-border);}
.qb-choice-row .qb-choice-letter{background:rgba(255,255,255,.08); color:var(--kairos-text);}
.qb-section.draft{background:rgba(242,177,52,.06); border-color:rgba(242,177,52,.4);}
.qb-section-draft-badge{background:rgba(242,177,52,.14); color:var(--kairos-warn);}

/* Save-status text (metadata form / OCR extract / activity workspace) */
.meta-save-status.saved, .extract-panel-status.saved,
.activity-workspace .aw-save-status.saved{color:var(--kairos-good);}
.meta-save-status.error, .extract-panel-status.error,
.activity-workspace .aw-save-status.error{color:var(--kairos-danger);}
.extract-panel-status.warn, .activity-workspace .aw-save-status.warn{color:var(--kairos-warn);}

/* ---------- OCR / answer-key / warning panels ---------- */
.ocr-note, .extract-panel-warn{
  background:rgba(242,177,52,.12);
  border-color:rgba(242,177,52,.4);
  color:var(--kairos-warn);
}
.extract-panel-warn strong{color:var(--kairos-text);}
.ak-panel{background:rgba(242,177,52,.10); border-color:rgba(242,177,52,.4);}
.ak-panel .ak-h, .ak-panel .ak-sub, .ak-panel .ak-meta, .ak-panel .ak-perq-h{color:var(--kairos-warn);}
.ak-panel .ak-perq{background:rgba(0,0,0,.25); border-color:rgba(242,177,52,.35);}
.ak-panel .ak-perq li{color:var(--kairos-text);}
.ak-panel .ak-perq li.ak-missing{color:var(--kairos-danger);}
.ak-panel .ak-perq li .ak-val{color:var(--kairos-text);}
.dialog-row .dr-state{background:rgba(242,177,52,.14); border-color:rgba(242,177,52,.4); color:var(--kairos-warn);}

/* Validation + dashboard state color fixes (dark-on-dark otherwise) */
.validation-row.pass{background:rgba(79,209,197,.12); color:var(--kairos-good);}
.validation-row.pass .v-ico{color:var(--kairos-good);}
.validation-row.warn{background:rgba(242,177,52,.12); color:var(--kairos-warn);}
.validation-row.warn .v-ico{color:var(--kairos-warn);}
.validation-row.fail{background:rgba(255,141,141,.12); color:var(--kairos-danger);}
.validation-row.fail .v-ico{color:var(--kairos-danger);}
.dash-card .dash-card-v.good{color:var(--kairos-good);}
.dash-card .dash-card-v.warn{color:var(--kairos-warn);}
.dash-card .dash-card-v.danger{color:var(--kairos-danger);}
.dash-card.tone-good{background:rgba(79,209,197,.10); border-color:rgba(79,209,197,.3);}
.dash-card.tone-warn{background:rgba(242,177,52,.10); border-color:rgba(242,177,52,.3);}
.dash-card.tone-danger{background:rgba(255,141,141,.10); border-color:rgba(255,141,141,.3);}
.dash-missing.empty{color:var(--kairos-good);}

/* ---------- Student preview (read-only mock frame) ---------- */
.sp-panel{background:rgba(255,255,255,.03); border-color:rgba(167,139,250,.35);}
.sp-panel .sp-badge{background:rgba(167,139,250,.14); border-color:rgba(167,139,250,.35); color:var(--kairos-sa);}
.sp-panel .sp-badge.sp-mode-printable{background:rgba(79,209,197,.14); border-color:rgba(79,209,197,.4); color:var(--kairos-good);}
.sp-panel .sp-badge.sp-mode-ocr{background:rgba(242,177,52,.14); border-color:rgba(242,177,52,.4); color:var(--kairos-warn);}
.sp-panel .sp-q{background:rgba(255,255,255,.04); border-color:var(--kairos-border);}
.sp-panel .sp-bubble{background:transparent; border-color:rgba(255,255,255,.35); color:var(--kairos-muted);}
.sp-panel input[type=text], .sp-panel input[type=number], .sp-panel textarea{
  background:rgba(0,0,0,.22); border-color:var(--kairos-border); color:var(--kairos-muted);
}

/* ---------- Preview frame + modals ---------- */
.preview-frame.aspect-image{background:rgba(0,0,0,.3);}
body.modal-open .preview-frame{background:#161130;}
#kComingSoonModal, #kDialogModal{background:rgba(7,5,17,.72);}
.popup-box{
  background:#161130;
  border:1px solid var(--kairos-border);
  color:var(--kairos-text);
  box-shadow:var(--kairos-shadow);
}
.json-schema-panel, #kDiagnostics{background:#100b28; border:1px solid var(--kairos-border);}

/* ============================================================
 * Superadmin grades tree (grade-detail / course-detail /
 * assignment-detail / OCR & answer sheets)
 * ------------------------------------------------------------
 * Themes the page-local classes of
 * /superadmin/content/grades/** onto the Kairos glass identity.
 * Same specificity as the inline rules — this file loads last,
 * so equal-specificity ties resolve here.
 *
 * Deliberately LEFT LIGHT (document semantics):
 *   .sheet-preview                (printable answer-sheet mock)
 *   .mapper-stage / .sheet-canvas (OCR mapping + scoring scan stage)
 *   .zone-box (+ .good/.warn/.danger overlays on the scan)
 * These keep their ink-on-paper look, re-inked where the :root
 * var remap would wash them out, and framed with a glass border.
 * ============================================================ */

/* ---------- Breadcrumbs (local rail + injected breadcrumb-shell) ---------- */
.breadcrumb .sep{color:rgba(169,163,196,.5);}
.kairos-breadcrumb-shell{color:var(--kairos-muted);}
.kairos-breadcrumb-shell a{color:var(--kairos-muted);}
.kairos-breadcrumb-shell a:hover{color:var(--kairos-sa);}
.kairos-breadcrumb-sep{color:rgba(169,163,196,.5);}
.kairos-breadcrumb-current{color:var(--kairos-sa);}

/* ---------- Topbar bell (this family ships its own .notif) ---------- */
.notif{background:var(--kairos-glass); border:1px solid var(--kairos-border); color:var(--kairos-text);}
.notif-badge{background:var(--kairos-sa); color:#0b0722;}

/* Collapsed-sidebar tooltip (page-local ::after, not #kGlobalTooltip) */
body.sidebar-collapsed .nav a:hover::after{
  background:#161130;
  border:1px solid rgba(167,139,250,.45);
  color:var(--kairos-text);
  box-shadow:var(--kairos-shadow), var(--kairos-glow-sa);
}

/* ---------- Hero tabs / sub-tabs (grade + assignment step rails) ---------- */
.hero-tab{background:rgba(255,255,255,.10); border-color:rgba(255,255,255,.16); color:#fff;}
.hero-tab.active{
  background:rgba(13,10,31,.55);
  border-color:rgba(167,139,250,.55);
  color:#fff;
  box-shadow:var(--kairos-inset);
}
.subtab{background:var(--kairos-glass); border-color:var(--kairos-border); color:var(--kairos-muted);}
.subtab.active{background:rgba(167,139,250,.16); border-color:rgba(167,139,250,.4); color:var(--kairos-sa);}

/* ---------- Primary glass surfaces ---------- */
.panel, .context-band, .quick-card, .step-header{
  background:var(--kairos-grad-glass);
  background-color:rgba(22,17,48,.72);
  border:1px solid var(--kairos-border);
  color:var(--kairos-text);
  box-shadow:var(--kairos-inset);
}
.quick-card:hover{border-color:rgba(167,139,250,.5); box-shadow:0 0 24px rgba(167,139,250,.14), var(--kairos-inset);}
.step-header h1{color:var(--kairos-text);}
.step-header p{color:var(--kairos-muted);}
.step-badge{background:var(--kairos-glass); border-color:var(--kairos-border); color:var(--kairos-muted);}
.step-badge.active{background:rgba(167,139,250,.16); border-color:rgba(167,139,250,.4); color:var(--kairos-sa);}

/* ---------- Nested sub-cards (context strip, rails, builders) ---------- */
.context-card, .info-box, .mini-card, .rail-card, .item, .field,
.sheet-block, .zone-card, .question-item, .big-box{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.10);
  color:var(--kairos-text);
}
/* selected list entries: violet ring replaces the ink-violet one */
.sheet-block.active, .zone-card.active, .question-item.active{
  border-color:var(--kairos-sa);
  box-shadow:0 0 0 3px rgba(167,139,250,.18);
}

/* ---------- Tables ---------- */
.table-wrap{
  background:var(--kairos-grad-glass);
  background-color:rgba(22,17,48,.72);
  border:1px solid var(--kairos-border);
}
th{background:rgba(255,255,255,.04); color:var(--kairos-muted);}

/* ---------- Chips & pills (bases; .pill.good/.warn/... themed globally) ---------- */
.tag{background:rgba(255,255,255,.05); border-color:var(--kairos-border); color:var(--kairos-muted);}
.neutral{background:rgba(255,255,255,.08); color:var(--kairos-muted);}

/* ---------- Questions builder (answer options — UI, not paper) ---------- */
.option{background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.10); color:var(--kairos-text);}
.bullet{border-color:rgba(169,163,196,.55); color:var(--kairos-muted);}
.option.correct{background:rgba(79,209,197,.14); border-color:rgba(79,209,197,.38);}
.option.correct .bullet{border-color:var(--kairos-good); color:var(--kairos-good);}

/* ---------- Assignment normalizer wizard (shared kit used by this
   tree only on assignment-detail; token bridge + hardcoded surfaces) ---------- */
:root{
  --an-bg:var(--kairos-bg);
  --an-panel:#161130;
  --an-line:var(--kairos-border);
  --an-text:var(--kairos-text);
  --an-muted:var(--kairos-muted);
  --an-accent:var(--kairos-sa);
  --an-accent-soft:rgba(167,139,250,.16);
  --an-good:rgba(79,209,197,.14);
  --an-good-text:var(--kairos-good);
  --an-warn:rgba(242,177,52,.14);
  --an-warn-text:var(--kairos-warn);
  --an-danger:rgba(255,141,141,.14);
  --an-danger-text:var(--kairos-danger);
  --an-shadow:var(--kairos-shadow);
}
.an-hero, .an-panel{
  background:var(--kairos-grad-glass);
  background-color:rgba(22,17,48,.72);
  border:1px solid var(--kairos-border);
  box-shadow:var(--kairos-inset);
}
.an-flow-step{background:var(--kairos-glass); border-color:var(--kairos-border); color:var(--kairos-muted);}
.an-flow-step.active{background:rgba(167,139,250,.16); border-color:rgba(167,139,250,.4); color:var(--kairos-sa);}
.an-status-card, .an-box{background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.10);}
.an-field input,
.an-field select,
.an-field textarea{
  background:rgba(255,255,255,.06);
  border-color:var(--kairos-border);
  color:var(--kairos-text);
}
.an-upload{background:rgba(167,139,250,.08); border-color:rgba(167,139,250,.4); color:var(--kairos-muted);}
.an-btn{background:var(--kairos-glass); border-color:var(--kairos-border); color:var(--kairos-text);}
.an-btn.primary{
  background:linear-gradient(135deg,#5b4bd6 0%,#7b6cf6 100%);
  border-color:transparent;
  color:#fff;
  box-shadow:var(--kairos-glow-sa), var(--kairos-inset);
}
.an-pill.neutral{background:rgba(255,255,255,.08); color:var(--kairos-muted);}
/* dark-friendly native dropdown items across the family */
select option{background:#161130; color:var(--kairos-text);}

/* ---------- Workflow modal (shared kit, injected on the OCR flow) ---------- */
.workflow-modal-backdrop{background:rgba(7,5,17,.6);}
.workflow-modal{
  background:#161130;
  border:1px solid var(--kairos-border);
  box-shadow:var(--kairos-shadow);
}
.workflow-modal-header{border-bottom:1px solid var(--kairos-border);}
.workflow-modal-header h3{color:var(--kairos-text);}
.workflow-modal-header p{color:var(--kairos-muted);}
.workflow-close-btn{background:var(--kairos-glass); border:1px solid var(--kairos-border); color:var(--kairos-muted);}
.workflow-modal-row{background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.10);}
.workflow-modal-row .label{color:var(--kairos-muted);}
.workflow-modal-row .value{color:var(--kairos-text);}
.workflow-btn{background:var(--kairos-glass); border:1px solid var(--kairos-border); color:var(--kairos-text);}
.workflow-btn.primary{
  background:linear-gradient(135deg,#5b4bd6 0%,#7b6cf6 100%);
  border-color:transparent;
  color:#fff;
  box-shadow:var(--kairos-glow-sa), var(--kairos-inset);
}
.workflow-btn.success{background:rgba(79,209,197,.14); border-color:rgba(79,209,197,.38); color:var(--kairos-good);}
.workflow-inline-status{background:rgba(167,139,250,.16); border-color:rgba(167,139,250,.4); color:var(--kairos-sa);}
.workflow-outputs-header{color:var(--kairos-muted);}
.workflow-output-chip{background:rgba(167,139,250,.16); color:var(--kairos-sa);}

/* ---------- Paper zones — glass frame, ink kept ----------
   The :root remap turns var(--line)/var(--muted)/var(--primary) light,
   which would wash out anything sitting on white paper. Re-ink the
   descendants; never darken the paper itself. */
.sheet-preview, .mapper-stage{
  border-color:var(--kairos-border);
  box-shadow:0 16px 30px rgba(0,0,0,.45);
  color:#1f2430;
}
.sheet-canvas{border-color:#e2e5ef; color:#1f2430;}
.sheet-preview .preview-header{border-bottom-color:#e2e5ef;}
.sheet-preview .preview-sub{color:#69707d;}
.sheet-preview .muted{color:#69707d;}
.sheet-preview .mini-box,
.sheet-preview .question-bubble{background:#fcfcff; border:1px solid #e2e5ef; color:#1f2430;}
.sheet-preview .mini-box .label{color:#69707d;}
.sheet-preview .tag{background:#fff; border-color:#e2e5ef; color:#69707d;}
/* scan overlays: keep the original ink-violet + honest paper tints */
.sheet-canvas .zone-box{border-color:#4b2aad; background:rgba(75,42,173,.08); color:#4b2aad;}
.sheet-canvas .zone-box.warn{border-color:#d38b00; background:rgba(255,244,214,.85); color:#9a6700;}
.sheet-canvas .zone-box.good{border-color:#18794e; background:rgba(223,245,232,.85); color:#18794e;}
.sheet-canvas .zone-box.danger{border-color:#b42318; background:rgba(255,226,226,.9); color:#b42318;}
