/* Tetrahedron portal themes — governed by /shared/preferences/. */
:root[data-tetra-theme]{--tetra-accent:#4db6ff;--tetra-violet:#9277e8;--tetra-good:#55d6c2}
:root[data-tetra-theme="dark"]{--tts-bg:#111827;--tts-bg2:#223047;--tts-surface:rgba(35,49,69,.78);--tts-soft:rgba(43,59,81,.72);--tts-line:rgba(207,225,245,.14);--tts-text:#f5f8fc;--tts-muted:#aab8ca;--tts-shadow:0 14px 38px rgba(2,8,20,.20)}
:root[data-tetra-theme="obsidian"]{--tts-bg:#151a22;--tts-bg2:#273442;--tts-surface:rgba(36,44,56,.90);--tts-soft:rgba(43,53,66,.86);--tts-line:rgba(190,215,235,.14);--tts-text:#f5f8fc;--tts-muted:#aab7c6;--tts-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 8px 20px rgba(3,8,18,.18),0 24px 60px rgba(3,8,18,.12)}
:root[data-tetra-theme="light"]{--tts-bg:#edf2f6;--tts-bg2:#f8fafc;--tts-surface:rgba(255,255,255,.84);--tts-soft:rgba(248,250,252,.90);--tts-line:rgba(44,62,89,.13);--tts-text:#182337;--tts-muted:#65738a;--tts-shadow:0 16px 42px rgba(31,50,76,.10),inset 0 1px 0 rgba(255,255,255,.86)}
:root[data-tetra-theme] body{color:var(--tts-text)!important;background:radial-gradient(75% 62% at 12% 0%,rgba(77,182,255,.11),transparent 62%),radial-gradient(60% 55% at 92% 5%,rgba(146,119,232,.07),transparent 64%),linear-gradient(155deg,var(--tts-bg2),var(--tts-bg)) fixed!important}
:root[data-tetra-theme] .right-column,:root[data-tetra-theme] .page-content{background:transparent!important}
:root[data-tetra-theme] .topbar,:root[data-tetra-theme] .k-topbar{background:color-mix(in srgb,var(--tts-bg) 74%,transparent)!important;border-color:var(--tts-line)!important}
:root[data-tetra-theme] :is(.panel,.card,.pg-header,.hero,.ag-hero,.ag-panel,.aw-card,.sw-panel,.rw-table-card,.gb-matrix-card,.gb-detail,.course-card,.metric-card,.stat-card){background-color:var(--tts-surface)!important;background-image:none!important;border-color:var(--tts-line)!important;color:var(--tts-text)!important;box-shadow:var(--tts-shadow)!important}
:root[data-tetra-theme] :is(.course-row,.att-row,.feed-item,.list-row,.table-card,.summary-card,.ag-today-card,.ag-flow-card,.ag-action,.aw-summary-card,.sw-summary-card,.rw-summary-card,.gb-summary-card){background-color:var(--tts-soft)!important;border-color:var(--tts-line)!important;color:var(--tts-text)!important}
:root[data-tetra-theme] :is(h1,h2,h3,h4,.pg-title,.panel-title,.course-name,.user-name,.school-name,.topbar-school-name){color:var(--tts-text)!important}
:root[data-tetra-theme] :is(p,.muted,.pg-sub,.course-meta,.feed-meta,.user-role,.school-sub){color:var(--tts-muted)!important}
:root[data-tetra-theme="obsidian"] :is(.panel,.card,.pg-header,.hero,.ag-hero,.ag-panel){backdrop-filter:blur(10px) saturate(108%);-webkit-backdrop-filter:blur(10px) saturate(108%)}
:root[data-tetra-theme="obsidian"] :is(.course-row,.att-row,.card,a.card){transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
:root[data-tetra-theme="obsidian"] :is(.course-row,.att-row,a.card):hover{transform:translateY(-2px);border-color:rgba(77,182,255,.34)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 12px 28px rgba(3,8,18,.22)!important}
:root[data-tetra-theme="light"] :is(.kairos-notif-trigger,.kairos-user-box,.user-box){background:rgba(255,255,255,.90)!important;border-color:rgba(44,62,89,.16)!important;color:#25334a!important;box-shadow:0 7px 18px rgba(31,50,76,.10)!important}
:root[data-tetra-theme="light"] :is(.kairos-notif-trigger,.kairos-user-box,.user-box):hover{background:#fff!important;border-color:rgba(77,182,255,.42)!important}
:root[data-tetra-theme="light"] .kairos-notif-trigger svg{color:#33445c!important;stroke:currentColor!important}
:root[data-tetra-theme="light"] :is(.kairos-user-box,.user-box) .user-avatar{background:linear-gradient(145deg,#2f9bef,#7458d6)!important;color:#fff!important;box-shadow:0 4px 12px rgba(64,87,126,.20)!important}
/* Dark themes keep the identity text light. Light mode is a white menu surface
   and is governed by the explicit dark-ink rules in the dropdown section. */
:root[data-tetra-theme="dark"] .kairos-user-dropdown .kairos-user-menu-name,
:root[data-tetra-theme="obsidian"] .kairos-user-dropdown .kairos-user-menu-name{
  color:#f8f7ff!important;
}
:root[data-tetra-theme="dark"] .kairos-user-dropdown .kairos-user-menu-role,
:root[data-tetra-theme="obsidian"] .kairos-user-dropdown .kairos-user-menu-role{
  color:#c7c1dc!important;
}
:root[data-tetra-theme="light"] :is(input,select,textarea,button:not(.primary)){border-color:var(--tts-line);color:var(--tts-text)}
:root[data-tetra-theme="light"] .feed-item .feed-text{color:#182337!important}
:root[data-tetra-theme="light"] .feed-item .feed-meta{color:#65738a!important}
/* Metrics family actions: the legacy glass skin loads after each page's local
   styles and otherwise restores near-white dark-mode ink on white buttons. */
:root[data-tetra-theme="light"] body[data-metrics-family] :is(.pg-header-actions,.hero-actions,.actions) .k-btn:not(.primary){
  background:#ffffff!important;
  border-color:rgba(44,62,89,.20)!important;
  color:#24324a!important;
  box-shadow:0 5px 14px rgba(31,50,76,.08)!important;
}
:root[data-tetra-theme="light"] body[data-metrics-family] :is(.pg-header-actions,.hero-actions,.actions) .k-btn:not(.primary):hover{
  background:#f1f5fb!important;
  border-color:rgba(75,42,173,.34)!important;
  color:#321c82!important;
}
:root[data-tetra-theme="light"] body[data-metrics-family] :is(.pg-header-actions,.hero-actions,.actions) .k-btn.primary{
  background:#4b2aad!important;
  border-color:#4b2aad!important;
  color:#ffffff!important;
}
:root[data-tetra-theme="light"] body[data-metrics-family] :is(.pg-header-actions,.hero-actions,.actions) .k-btn.primary:hover{
  background:#3d218f!important;
  border-color:#3d218f!important;
}
/* Semantic colour surfaces retain light ink; only neutral/light surfaces are
   remapped above. This protects banners, status pills and primary actions. */
:root[data-tetra-theme="light"] :is(.primary,.badge,.status,.pill,.kw-command-btn,.ci-chip){color:var(--on-accent,#fff)}
@media(prefers-reduced-motion:reduce){:root[data-tetra-theme] *{scroll-behavior:auto!important;transition-duration:.01ms!important}}

/* ============================================================================
   LIGHT THEME — extended coverage (TETRA-SHELL-LIGHTMODE-A1)
   The picker's "light" mode only re-themed a handful of unions above, so KPI
   cards, hero stats, status chips, the notification dropdown and the whole
   Course Detail family kept the unconditional dark values from
   tetra-kairos-skin.css and rendered near-white ink on near-white surfaces.
   These rules restore readable light surfaces. Neutral surfaces map to the
   --tts-* tokens; SEMANTIC states (alert/warn/good/danger/info) keep their hue
   and only regain contrast. attribute-selector + !important out-specifies the
   skin's plain :root / body[data-theme] rules, so no skin edit is needed.
   Obsidian/dark are untouched — every selector here is [data-tetra-theme="light"].
   ========================================================================== */

/* Course Detail (Workspace OS): re-light the --kw-* tokens the skin force-darkens
   on body[data-theme]. One token block re-themes the entire .kw-* family. */
:root[data-tetra-theme="light"] body,
:root[data-tetra-theme="light"] body[data-theme="light"],
:root[data-tetra-theme="light"] body[data-theme="dark"]{
  --kw-bg:#f5f6fb!important;--kw-bg-2:#eceef7!important;
  --kw-surface:#ffffff!important;--kw-surface-2:#f9f9fd!important;--kw-surface-3:#f2f3fa!important;
  --kw-glass:rgba(255,255,255,.72)!important;--kw-border:#e9e7f2!important;--kw-border-2:#f0eef7!important;
  /* --kw-muted darkened from the Workspace-OS default #767c8c (4.17:1, sub-AA) to
     #6b7280 (>=4.5:1 on white and on --kw-surface-2) for readable light-mode muted text. */
  --kw-text:#1b1f2a!important;--kw-text-2:#42485a!important;--kw-muted:#6b7280!important;
  --kw-accent:#4b2aad!important;--kw-accent-2:#0891b2!important;--kw-accent-soft:#f2ecff!important;
  --kw-ok:#0f766e!important;--kw-ok-soft:#e6f7ef!important;
  --kw-warn:#9a6700!important;--kw-warn-soft:#fff7e6!important;
  --kw-danger:#b42318!important;--kw-danger-soft:#fdecec!important;
}

/* Neutral KPI / stat / list surfaces → readable light card. */
:root[data-tetra-theme="light"] :is(.pg-kpi,.hero-stat,.kpi-card,.att-row,.stat-card,.metric-card){
  background-color:var(--tts-surface)!important;background-image:none!important;
  border-color:var(--tts-line)!important;color:var(--tts-text)!important;box-shadow:var(--tts-shadow)!important}
:root[data-tetra-theme="light"] :is(.pg-kpi .pk-v,.hero-stat .value,.kpi-card .value){color:var(--tts-text)!important}
:root[data-tetra-theme="light"] :is(.pg-kpi .pk-l,.hero-stat .label,.kpi-card .label,.kpi-card .meta,.att-label){color:var(--tts-muted)!important}
:root[data-tetra-theme="light"] .att-value{color:#4b2aad!important}

/* Semantic KPI states — keep the hue, restore dark ink on a soft tint. */
:root[data-tetra-theme="light"] .pg-kpi.alert{background:#ffeaea!important;border-color:#f3c0c0!important}
:root[data-tetra-theme="light"] .pg-kpi.alert .pk-v{color:#8b0000!important}
:root[data-tetra-theme="light"] .pg-kpi.warn{background:#fff4d6!important;border-color:#f0dca0!important}
:root[data-tetra-theme="light"] .pg-kpi.warn .pk-v{color:#7a5c00!important}
:root[data-tetra-theme="light"] .pg-kpi.good{background:#dff5e8!important;border-color:#b6e4c8!important}
:root[data-tetra-theme="light"] .pg-kpi.good .pk-v{color:#1a6b3c!important}

/* My Courses stat icons — tinted badge, colored glyph. */
:root[data-tetra-theme="light"] .hero-stat.s-students .stat-ico{background:#e8effe!important;color:#1d4ed8!important}
:root[data-tetra-theme="light"] .hero-stat.s-progress .stat-ico{background:#e6f7ef!important;color:#0f766e!important}
:root[data-tetra-theme="light"] .hero-stat.s-review .stat-ico{background:#fdf0dc!important;color:#9a6700!important}
:root[data-tetra-theme="light"] .hero-stat.s-attention .stat-ico{background:#fdecec!important;color:#b42318!important}

/* Status chips + notices — soft tint, dark ink. */
:root[data-tetra-theme="light"] .ci-warn{background:#fff4d6!important;color:#7a5c00!important}
:root[data-tetra-theme="light"] .ci-good{background:#dff5e8!important;color:#1a6b3c!important}
:root[data-tetra-theme="light"] .ci-danger{background:#ffeaea!important;color:#8b0000!important}
:root[data-tetra-theme="light"] .ci-neutral{background:#eef1f7!important;color:#69707d!important}
:root[data-tetra-theme="light"] .notice-item.info{background:#e8f0ff!important;border-color:#4b2aad!important;color:#1e3a8a!important}
:root[data-tetra-theme="light"] .notice-item.warn{background:#fff4d6!important;border-color:#d97706!important;color:#7a5c00!important}
:root[data-tetra-theme="light"] .notice-item.danger{background:#ffeaea!important;border-color:#dc2626!important;color:#8b0000!important}

/* Empty-state cards — the skin styles every .empty-state as an amber box AND
   sets .empty-state strong to --kairos-text (#f4f1ff, a dark-theme near-white),
   so in light theme the heading was white-on-amber and effectively invisible
   (e.g. "No scheduled events loaded yet." on Home). Keep the soft amber tint,
   restore readable dark-amber ink. */
:root[data-tetra-theme="light"] .empty-state{background:#fff7e6!important;border-color:#f0d9a0!important;color:#7a5c00!important}
:root[data-tetra-theme="light"] .empty-state strong{color:#5c4600!important}
:root[data-tetra-theme="light"] .empty-state a{color:#4b2aad!important}

/* Topbar dropdowns — both panels stay on the same white surface as the light
   topbar instead of inheriting the Tetrahedron skin's dark menu tokens. */
:root[data-tetra-theme="light"] :is(.kairos-notif-dropdown,.kairos-notif-header,.kairos-notif-footer,.kairos-user-dropdown,.kairos-user-menu-list){
  background:#ffffff!important;border-color:var(--tts-line)!important;color:var(--tts-text)!important}
:root[data-tetra-theme="light"] :is(.kairos-notif-dropdown,.kairos-user-dropdown){
  border-color:rgba(44,62,89,.15)!important;
  box-shadow:0 20px 48px rgba(31,50,76,.16),0 2px 8px rgba(31,50,76,.08)!important}
:root[data-tetra-theme="light"] .kairos-user-menu-header{
  background:#fbfcff!important;border-bottom-color:var(--tts-line)!important}
:root[data-tetra-theme="light"] .kairos-user-menu-name{color:#182337!important}
:root[data-tetra-theme="light"] .kairos-user-menu-role{color:#65738a!important}
:root[data-tetra-theme="light"] .kairos-user-menu-item{color:#25334a!important}
:root[data-tetra-theme="light"] .kairos-user-menu-item:hover{background:#f3f6fb!important}
:root[data-tetra-theme="light"] .kairos-user-menu-item.muted{color:#65738a!important}
:root[data-tetra-theme="light"] .kairos-user-menu-divider{background:var(--tts-line)!important}
:root[data-tetra-theme="light"] .kairos-user-menu-item.logout{color:#b42318!important}
:root[data-tetra-theme="light"] .kairos-notif-item{background:#ffffff!important;border-bottom-color:var(--tts-line)!important}
:root[data-tetra-theme="light"] .kairos-notif-item:hover{background:#f4f6fb!important}
:root[data-tetra-theme="light"] .kairos-notif-item.unread{background:#f2f0ff!important}
:root[data-tetra-theme="light"] :is(.kairos-notif-title,.kairos-notif-item-title){color:var(--tts-text)!important}
:root[data-tetra-theme="light"] :is(.kairos-notif-eyebrow,.kairos-notif-meta,.kairos-notif-time,.kairos-notif-item-body,.kairos-notif-empty p){color:var(--tts-muted)!important}
:root[data-tetra-theme="light"] :is(.kairos-notif-action,.kairos-notif-link,.kairos-notif-footer a){color:#4b2aad!important}

/* ----------------------------------------------------------------------------
   AI-AUTHORING-PILOT-A1 — additional light-mode contrast repairs.
   Every selector stays [data-tetra-theme="light"]; dark/obsidian untouched.
   ---------------------------------------------------------------------------- */
/* Course Detail overview: the Diagnostics panel baked a dark #0f172a surface
   inline, so in light mode it opened as a dark card on a light page. Re-light it
   to a neutral surface with primary ink (>=13:1). */
:root[data-tetra-theme="light"] #kOverviewDiagnostics{background:#f2f3fa!important;color:#1b1f2a!important;border:1px solid var(--tts-line)!important}
/* Aristotle/Socrates Lesson Studio: the muted pill/provenance ink #69707d sat on
   ~#eef0f7 tinted chips at ~4.3:1 (sub-AA). Darken to #5b6270 (>=5:1 on the chip
   and on white) in light mode only. */
:root[data-tetra-theme="light"] :is(.k-arp-pill.muted,.lassign0-prov.preview){color:#5b6270!important}
