/* Sargha dashboard: theme layer (loaded after the base styles in index.html).
 *
 * How the two themes are wired
 *   theme.js sets <html data-theme="light|dark"> before the first paint ("system" is resolved to one of
 *   the two from prefers-color-scheme). The existing dashboard stylesheet is the DARK theme (rules keyed on
 *   :root:not([data-theme="light"])), so everything here that is scoped to html[data-theme="light"] changes
 *   the light theme only and the dark theme renders exactly as before.
 *
 * Token approach
 *   - Colors are CSS custom properties on <html>. The light block below re-declares the same names the dark
 *     theme already uses (--ink, --panel, --crit, ...) with WCAG-AA values, and adds a few that the dark
 *     theme resolves to its existing colors (--brand-text, --crit-fill, --stage-*, ...).
 *   - --brand is the coral FILL/accent; --brand-text is the same hue darkened for TEXT on light surfaces.
 *   - --crit/--high/--med/--low/--ok are text-safe on their *-bg tints; --*-fill are the vivid versions for
 *     bars, dots and chart marks.
 *   - Canvas / inline-SVG code reads tokens through SarghaTheme.token() and repaints on the 'sargha-theme' event.
 */

/* ---------- tokens that exist in both themes (dark resolves to what the dashboard already uses) ---------- */
:root{
  --brand-text:var(--brand);
  --crit-fill:var(--crit); --high-fill:var(--high); --med-fill:var(--med); --low-fill:var(--low);
  --ok-fill:var(--ok); --info-fill:var(--info);
  --on-brand:#fff;
}

/* ---------- LIGHT tokens ---------- */
html[data-theme="light"]{
  --bg:#f4f3f7; --sidebar:#ffffff; --sidebar-2:#faf8fc;
  --panel:#ffffff; --panel-bg:#f4f3f7; --panel-2:#faf9fc;
  --border:#e1dde9; --border-2:#eeebf3;
  --ink:#17131f; --muted:#5f586d; --muted-2:#6b6478;
  --sub:#6b6478; --line:#e1dde9; --text:#17131f;
  --brand:#ff6758; --brand-2:#ff8b70; --brand-ink:#b52f20; --brand-soft:#fff0ed; --brand-text:#c4311f;
  --crit:#b8183a; --crit-bg:#fff0f2; --crit-fill:#e0314f;
  --high:#b8460f; --high-bg:#fff1e9; --high-fill:#f0702a;
  --med:#8a5a00;  --med-bg:#fff8df;  --med-fill:#e2a31a;
  --low:#2c6a53;  --low-bg:#eaf8f2;  --low-fill:#3fa27d;
  --info:#625b72; --info-bg:#f0edf4; --info-fill:#8b8498;
  --ok:#0f7a5f;   --ok-bg:#e7f7f1;   --ok-fill:#16a37f;
  --sky:#1c64c8;  --violet:#5f44d6;
  --shadow:0 1px 2px rgba(19,13,31,.04),0 8px 24px rgba(32,19,48,.05);
  --shadow-md:0 14px 36px rgba(34,20,52,.10);
  --shadow-lg:0 24px 70px rgba(18,10,30,.18);
  --ring:0 0 0 4px rgba(255,103,88,.18);
  --on-brand:#fff;
  /* spotlight / stage surfaces (attack-path canvas, hero panels) */
  --stage-bg:radial-gradient(700px 360px at 60% 42%,#ffffff,#f3effa 72%);
  --stage-ink:#17131f; --stage-muted:#5f586d; --stage-edge:#d9d3e6;
  /* canvas palette for the AI-stack attack path (app.js _aisDrawPath reads these through SarghaTheme.token) */
  --cv-red:#c8232f; --cv-gold:#b07a00; --cv-agent:#6b6f94; --cv-glow:rgba(214,150,20,.20);
  --cv-hot:rgba(200,35,47,.62); --cv-hot-shadow:rgba(200,35,47,.45); --cv-cool1:rgba(80,92,130,.5); --cv-cool0:rgba(80,92,130,.28);
  --cv-p-hot:200,35,47; --cv-p-cool:95,108,145; --cv-comp:source-over; --cv-node-edge:#cdc6dc; --cv-node-shadow:rgba(40,30,70,.22);
  --cv-g-j0:#fff8e6; --cv-g-j1:#fdefc8; --cv-g-n0:#ffffff; --cv-g-n1:#f5f2fa; --cv-icon-bg:rgba(40,30,70,.06);
  --cv-jewel-icon:#8a5a00; --cv-label:#17131f; --cv-sub:#5f586d; --cv-jewel-tag:#8a5a00; --cv-ring:200,35,47;
}

/* ---------- page, topbar, surfaces ---------- */
html[data-theme="light"] body{
  background:
    radial-gradient(1100px 520px at 94% -8%, rgba(255,103,88,.07), transparent 60%),
    radial-gradient(820px 460px at -6% 4%, rgba(113,87,232,.06), transparent 58%),
    linear-gradient(180deg,#f7f6fa 0%, #eeecf3 100%) !important;
  background-attachment:fixed;
}
html[data-theme="light"] .card{
  background:#fff !important; border:1px solid var(--border) !important;
  box-shadow:0 1px 2px rgba(25,18,40,.04), 0 14px 30px -20px rgba(25,18,40,.16) !important;
}
html[data-theme="light"] .kpi{
  background:#fff !important; border:1px solid var(--border) !important;
  box-shadow:0 1px 2px rgba(25,18,40,.04), 0 12px 26px -20px rgba(25,18,40,.16) !important;
}
html[data-theme="light"] .overlay{background:rgba(30,22,48,.32);}
html[data-theme="light"] .modal,html[data-theme="light"] .detail-card{box-shadow:0 24px 70px rgba(25,18,40,.22)!important;}

/* ---------- sidebar (light) ---------- */
html[data-theme="light"] aside{
  background:linear-gradient(180deg,#ffffff,#faf8fc);
  border-right:1px solid var(--border);color:var(--muted);
}
html[data-theme="light"] .brand{border-bottom:1px solid var(--border);color:var(--ink);}
html[data-theme="light"] .brand-copy b{color:var(--ink);}
html[data-theme="light"] .brand-copy small{color:var(--muted-2);}
html[data-theme="light"] .brand .mk{
  background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjAwIDEyMDAiIHdpZHRoPSIxMjAwIiBoZWlnaHQ9IjEyMDAiPgo8cGF0aCBkPSJNIDU3MS4wMCAwLjU0IEMgNTc2LjY3IDAuNDkgNTkzLjE3IC0wLjc5IDYwNC4wMCAwLjM4IEMgNjE0LjgzIDEuNTYgNjI1LjY3IDYuMDAgNjM2LjAwIDcuNjIgQyA2NDYuMzMgOS4yMyA2NTUuMTcgOC4wOCA2NjYuMDAgMTAuMDggQyA2NzYuODMgMTIuMDggNjg0LjE3IDEzLjA0IDcwMS4wMCAxOS42MiBDIDcxNy44MyAyNi4xOSA3NDUuMzMgMzcuNDEgNzY3LjAwIDQ5LjU0IEMgNzg4LjY3IDYxLjY3IDgwOC41OCA3My42NCA4MzEuMDAgOTIuMzggQyA4NTMuNDIgMTExLjEzIDg4My4zNSAxNDAuOTAgOTAxLjU0IDE2Mi4wMCBDIDkxOS43MyAxODMuMTAgOTMxLjgxIDIwNC41MCA5NDAuMTUgMjE5LjAwIEMgOTQ4LjUwIDIzMy41MCA5NDkuMzEgMjM4LjUwIDk1MS42MiAyNDkuMDAgQyA5NTMuOTIgMjU5LjUwIDk1NC4yMiAyNzAuNjcgOTU0LjAwIDI4Mi4wMCBDIDk1My43OCAyOTMuMzMgOTU0LjU1IDMwNS4zMyA5NTAuMzEgMzE3LjAwIEMgOTQ2LjA2IDMyOC42NyA5MzcuNDIgMzQyLjEyIDkyOC41NCAzNTIuMDAgQyA5MTkuNjUgMzYxLjg4IDkxMS43NiAzNjkuMDYgODk3LjAwIDM3Ni4zMSBDIDg4Mi4yNCAzODMuNTUgODUzLjAwIDM5MS44NyA4NDAuMDAgMzk1LjQ2IEMgODI3LjAwIDM5OS4wNSA4MzUuNTAgMzk0LjE3IDgxOS4wMCAzOTcuODUgQyA4MDIuNTAgNDAxLjUzIDc2Mi4wMCA0MTEuMDUgNzQxLjAwIDQxNy41NCBDIDcyMC4wMCA0MjQuMDMgNzA5LjMzIDQyOC43NCA2OTMuMDAgNDM2Ljc3IEMgNjc2LjY3IDQ0NC43OSA2NTguNDYgNDUzLjQ5IDY0My4wMCA0NjUuNjkgQyA2MjcuNTQgNDc3LjkwIDYxNC4xOSA0OTEuMjggNjAwLjIzIDUxMC4wMCBDIDU4Ni4yNyA1MjguNzIgNTc1LjA5IDU0OC42NyA1NTkuMjMgNTc4LjAwIEMgNTQzLjM3IDYwNy4zMyA1MTcuOTUgNjYyLjUwIDUwNS4wOCA2ODYuMDAgQyA0OTIuMjEgNzA5LjUwIDQ5My4xOCA3MDQuODMgNDgyLjAwIDcxOS4wMCBDIDQ3MC44MiA3MzMuMTcgNDU0LjY3IDc1NC4zNSA0MzguMDAgNzcxLjAwIEMgNDIxLjMzIDc4Ny42NSAzOTcuODMgODA2LjYzIDM4Mi4wMCA4MTguOTIgQyAzNjYuMTcgODMxLjIyIDM2MC4zMyA4MzUuNTQgMzQzLjAwIDg0NC43NyBDIDMyNS42NyA4NTQuMDAgMjk1LjY3IDg2Ny42NSAyNzguMDAgODc0LjMxIEMgMjYwLjMzIDg4MC45NiAyNTQuODMgODgyLjgxIDIzNy4wMCA4ODQuNjkgQyAyMTkuMTcgODg2LjU4IDE4OC41MCA4ODcuMTUgMTcxLjAwIDg4NS42MiBDIDE1My41MCA4ODQuMDggMTQ2LjY3IDg4MS41MCAxMzIuMDAgODc1LjQ2IEMgMTE3LjMzIDg2OS40MiA5Ny42NSA4NTkuOTYgODMuMDAgODQ5LjM4IEMgNjguMzUgODM4LjgxIDU0Ljc5IDgyNS40MCA0NC4wOCA4MTIuMDAgQyAzMy4zNiA3OTguNjAgMjUuOTkgNzg4LjMzIDE4LjY5IDc2OS4wMCBDIDExLjQwIDc0OS42NyAzLjI5IDcxMS42NyAwLjMxIDY5Ni4wMCBDIC0yLjY4IDY4MC4zMyAtMi4yOCA2OTAuODMgMC43NyA2NzUuMDAgQyAzLjgyIDY1OS4xNyA5LjcyIDYyNC41MCAxOC42MiA2MDEuMDAgQyAyNy41MSA1NzcuNTAgMzEuMjYgNTcwLjUwIDU0LjE1IDUzNC4wMCBDIDc3LjA1IDQ5Ny41MCAxMjAuODMgNDQwLjUwIDE1Ni4wMCAzODIuMDAgQyAxOTEuMTcgMzIzLjUwIDI0My41OSAyMjEuMzMgMjY1LjE1IDE4My4wMCBDIDI4Ni43MiAxNDQuNjcgMjc3LjgyIDE2Mi4xNyAyODUuMzggMTUyLjAwIEMgMjkyLjk1IDE0MS44MyAyOTcuOTQgMTM0LjU5IDMxMC41NCAxMjIuMDAgQyAzMjMuMTQgMTA5LjQxIDM0Mi40MiA5MC4xOSAzNjEuMDAgNzYuNDYgQyAzNzkuNTggNjIuNzMgNDAzLjE3IDQ5LjE1IDQyMi4wMCAzOS42MiBDIDQ0MC44MyAzMC4wOCA0NTkuMTcgMjQuMTMgNDc0LjAwIDE5LjIzIEMgNDg4LjgzIDE0LjMzIDQ5OS41MCAxMi4wOCA1MTEuMDAgMTAuMjMgQyA1MjIuNTAgOC4zOCA1MzMuMTcgOS43NCA1NDMuMDAgOC4xNSBDIDU1Mi44MyA2LjU2IDU2NS4zMyAxLjk2IDU3MC4wMCAwLjY5IEMgNTc0LjY3IC0wLjU4IDU2NS4zMyAwLjU5IDU3MS4wMCAwLjU0IFoiIGZpbGw9IiMzNTEwMzAiLz4KPHBhdGggZD0iTSA5NjYuMDAgNDI1LjQ2IEMgOTczLjUwIDQyNS42OCA5OTYuMDAgNDI1LjM3IDEwMTAuMDAgNDI2Ljg1IEMgMTAyNC4wMCA0MjguMzIgMTAzOS4wMCA0MzEuNDEgMTA1MC4wMCA0MzQuMzEgQyAxMDYxLjAwIDQzNy4yMSAxMDYzLjgzIDQzNy45MSAxMDc2LjAwIDQ0NC4yMyBDIDEwODguMTcgNDUwLjU1IDExMDkuMTggNDYxLjc3IDExMjMuMDAgNDcyLjIzIEMgMTEzNi44MiA0ODIuNjkgMTE0OS4wOSA0OTUuMDQgMTE1OC45MiA1MDcuMDAgQyAxMTY4Ljc2IDUxOC45NiAxMTc2LjIxIDUzMi4wMCAxMTgyLjAwIDU0NC4wMCBDIDExODcuNzkgNTU2LjAwIDExOTEuNzcgNTYwLjUwIDExOTMuNjkgNTc5LjAwIEMgMTE5NS42MiA1OTcuNTAgMTE5NS4zNSA2MzYuMzMgMTE5My41NCA2NTUuMDAgQyAxMTkxLjczIDY3My42NyAxMTkwLjUzIDY3NS41MCAxMTgyLjg1IDY5MS4wMCBDIDExNzUuMTcgNzA2LjUwIDExODMuMTUgNzA4LjMzIDExNDcuNDYgNzQ4LjAwIEMgMTExMS43NyA3ODcuNjcgMTAwNS40OSA4OTAuMzMgOTY4LjY5IDkyOS4wMCBDIDkzMS45MCA5NjcuNjcgOTQzLjk5IDk1Ny4wMCA5MjYuNjkgOTgwLjAwIEMgOTA5LjQwIDEwMDMuMDAgODgxLjg3IDEwNDUuMzMgODY0LjkyIDEwNjcuMDAgQyA4NDcuOTcgMTA4OC42NyA4MzYuODIgMTA5OC4zNyA4MjUuMDAgMTExMC4wMCBDIDgxMy4xOCAxMTIxLjYzIDgwNi42NyAxMTI3Ljg3IDc5NC4wMCAxMTM2Ljc3IEMgNzgxLjMzIDExNDUuNjcgNzY0LjgzIDExNTUuNjcgNzQ5LjAwIDExNjMuMzggQyA3MzMuMTcgMTE3MS4xMCA3MTQuNjcgMTE3OC4wNSA2OTkuMDAgMTE4My4wOCBDIDY4My4zMyAxMTg4LjEwIDY3OC4zMyAxMTkxLjcyIDY1NS4wMCAxMTkzLjU0IEMgNjMxLjY3IDExOTUuMzYgNTgzLjY3IDExOTUuNTUgNTU5LjAwIDExOTQuMDAgQyA1MzQuMzMgMTE5Mi40NSA1MjYuMDAgMTE4OS4yNCA1MDcuMDAgMTE4NC4yMyBDIDQ4OC4wMCAxMTc5LjIyIDQ2OC44MyAxMTczLjMxIDQ0NS4wMCAxMTYzLjkyIEMgNDIxLjE3IDExNTQuNTQgMzg2LjE3IDExMzkuODEgMzY0LjAwIDExMjcuOTIgQyAzNDEuODMgMTExNi4wNCAzMjQuODcgMTEwMy40NCAzMTIuMDAgMTA5Mi42MiBDIDI5OS4xMyAxMDgxLjc5IDI5My4wNiAxMDcyLjk0IDI4Ni43NyAxMDYzLjAwIEMgMjgwLjQ3IDEwNTMuMDYgMjc1Ljk5IDEwNDUuMDAgMjc0LjIzIDEwMzMuMDAgQyAyNzIuNDcgMTAyMS4wMCAyNzIuNDcgMTAwNC4zMyAyNzYuMjMgOTkxLjAwIEMgMjc5Ljk5IDk3Ny42NyAyODcuOTcgOTYzLjg1IDI5Ni43NyA5NTMuMDAgQyAzMDUuNTYgOTQyLjE1IDMxNy4xMyA5MzMuODcgMzI5LjAwIDkyNS45MiBDIDM0MC44NyA5MTcuOTcgMzQ0LjY3IDkxNS42NCAzNjguMDAgOTA1LjMxIEMgMzkxLjMzIDg5NC45NyA0NDQuNTAgODc1LjUzIDQ2OS4wMCA4NjMuOTIgQyA0OTMuNTAgODUyLjMyIDQ5OS44MyA4NDYuMzUgNTE1LjAwIDgzNS42OSBDIDUzMC4xNyA4MjUuMDQgNTQ3LjU5IDgxMC45NSA1NjAuMDAgODAwLjAwIEMgNTcyLjQxIDc4OS4wNSA1NzguNTMgNzgyLjY3IDU4OS40NiA3NzAuMDAgQyA2MDAuNDAgNzU3LjMzIDYwNC45MCA3NTUuMTcgNjI1LjYyIDcyNC4wMCBDIDY0Ni4zMyA2OTIuODMgNjg3Ljg3IDYxOS4xMCA3MTMuNzcgNTgzLjAwIEMgNzM5LjY3IDU0Ni45MCA3NjMuMTMgNTI1LjAwIDc4MS4wMCA1MDcuMzggQyA3OTguODcgNDg5Ljc3IDgwNy41MCA0ODYuMjIgODIxLjAwIDQ3Ny4zMSBDIDgzNC41MCA0NjguNDAgODQ2LjgzIDQ2MC45MiA4NjIuMDAgNDUzLjkyIEMgODc3LjE3IDQ0Ni45MiA4OTQuODMgNDQwLjA0IDkxMi4wMCA0MzUuMzEgQyA5MjkuMTcgNDMwLjU4IDk1Ni4wMCA0MjcuMTggOTY1LjAwIDQyNS41NCBDIDk3NC4wMCA0MjMuOTAgOTU4LjUwIDQyNS4yNCA5NjYuMDAgNDI1LjQ2IFoiIGZpbGw9IiNGRjZCNTciLz4KPC9zdmc+") !important;
}
html[data-theme="light"] #brandTenant{background:rgba(23,19,31,.06);color:var(--muted)!important;}
html[data-theme="light"] nav::-webkit-scrollbar-thumb{background:rgba(23,19,31,.16);}
html[data-theme="light"] #nav .navgroup,html[data-theme="light"] #nav .ws-head{color:#625b70;}
html[data-theme="light"] .ws-caret{color:#7d768a;}
html[data-theme="light"] .ws-head:hover{color:var(--ink);}
html[data-theme="light"] #nav .navitem{color:#3b3548;}
html[data-theme="light"] #nav .navitem:hover{background:rgba(23,19,31,.055);color:var(--ink);}
html[data-theme="light"] #nav .navitem.active{
  background:linear-gradient(100deg,rgba(255,103,88,.15),rgba(113,87,232,.08));color:var(--ink);
  box-shadow:inset 0 0 0 1px rgba(201,54,38,.20);
}
html[data-theme="light"] #nav .navitem .ic{color:#6b6478;}
html[data-theme="light"] #nav .navitem.active .ic{color:var(--brand-text);}
html[data-theme="light"] #nav .navitem .badge{background:rgba(23,19,31,.07);color:#4a4357;}
html[data-theme="light"] #nav .navitem.active .badge{background:rgba(255,103,88,.2);color:#8f2418;}
html[data-theme="light"] .navitem.active::before{box-shadow:0 0 10px rgba(255,103,88,.45);}
html[data-theme="light"] .labs-tag{border-color:var(--border);color:var(--muted-2);background:transparent;}
html[data-theme="light"] aside .foot{border-top:1px solid var(--border);color:var(--muted);}
html[data-theme="light"] aside .foot .live{background:rgba(23,19,31,.04);color:var(--muted);}
html[data-theme="light"] aside .foot .dot{background:#16a37f;box-shadow:0 0 0 4px rgba(22,163,127,.14);}
html[data-theme="light"] aside .foot a{color:#4a4357;}
html[data-theme="light"] aside .foot a:hover{color:var(--brand-text);}
html[data-theme="light"] .who-line{color:var(--muted);}
html[data-theme="light"] .who-line b{color:var(--ink);}
html[data-theme="light"] .who-line .src{color:var(--muted);}
@media(max-width:680px){html[data-theme="light"] aside{box-shadow:0 0 40px rgba(25,18,40,.22);}}

/* ---------- buttons, chips, inputs ---------- */
html[data-theme="light"] .rbtn.primary,
html[data-theme="light"] .rbtn.primary:hover{
  background:linear-gradient(135deg,#d03a2a,#bd3022);border-color:#b52c1f;color:#fff;
  box-shadow:0 8px 18px rgba(189,48,34,.20);
}
html[data-theme="light"] .chip.active{
  background:linear-gradient(135deg,#d03a2a,#bd3022)!important;color:#fff!important;border-color:transparent!important;
  box-shadow:0 6px 16px rgba(189,48,34,.26), inset 0 0 0 1px rgba(255,255,255,.14)!important;
}
html[data-theme="light"] .chip:not(.active){color:var(--ink)!important;background:#fff;}
html[data-theme="light"] .skip-link{background:#bd3022;color:#fff;}
html[data-theme="light"] .az-step,html[data-theme="light"] .ais-chip.on{background:#bd3022;border-color:#bd3022;color:#fff;}
html[data-theme="light"] .rbtn.danger:hover{background:var(--crit);color:#fff;}
html[data-theme="light"] .rbtn.ai-run{border-color:var(--violet);color:var(--violet);}
html[data-theme="light"] .ai-badge{color:var(--violet);}

/* ---------- theme control (topbar button + menu) and the Appearance card ---------- */
.theme-wrap{position:relative;flex:none;}
.theme-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border-radius:50%;
  border:1px solid var(--border);background:color-mix(in srgb,var(--panel) 88%,transparent);color:var(--muted);cursor:pointer;
  transition:color .14s ease,border-color .14s ease,background .14s ease;}
.theme-btn:hover,.theme-btn[aria-expanded="true"]{color:var(--ink);border-color:var(--muted-2);}
.theme-btn:focus-visible,.theme-menu button:focus-visible{outline:2px solid var(--brand);outline-offset:2px;}
.theme-btn .ti{display:none;line-height:0;}
html[data-theme-pref="light"] .theme-btn .ti-light,html[data-theme-pref="dark"] .theme-btn .ti-dark,
html[data-theme-pref="system"] .theme-btn .ti-system{display:inline-flex;}
html:not([data-theme-pref]) .theme-btn .ti-system{display:inline-flex;}
.theme-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:210;min-width:168px;padding:5px;
  background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);}
.theme-menu[hidden]{display:none;}
.theme-menu button{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:0;border-radius:8px;background:transparent;
  color:var(--ink);font:inherit;font-size:.86rem;font-weight:560;text-align:left;cursor:pointer;}
.theme-menu button:hover{background:var(--info-bg);}
.theme-menu button svg{flex:none;color:var(--muted);}
.theme-menu button span{flex:1;}
.theme-menu button .tc{visibility:hidden;color:var(--brand-text);}
.theme-menu button[aria-checked="true"] .tc{visibility:visible;}
.theme-menu button[aria-checked="true"]{font-weight:700;}
@media(max-width:680px){.theme-btn{width:34px;height:34px}.theme-menu{right:-4px}}
.theme-seg{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--border);border-radius:11px;background:var(--panel-2);}
.theme-seg button{min-width:84px;padding:8px 14px;border:0;border-radius:8px;background:transparent;color:var(--muted);
  font:inherit;font-size:.86rem;font-weight:650;cursor:pointer;}
.theme-seg button:hover{color:var(--ink);}
.theme-seg button.on{background:var(--ink);color:var(--panel-bg);}
.theme-seg button:focus-visible{outline:2px solid var(--brand);outline-offset:1px;}

/* ---------- login screen (light) ---------- */
html[data-theme="light"] #loginOverlay{
  background:radial-gradient(circle at 18% 18%,rgba(113,87,232,.14),transparent 28rem),
             radial-gradient(circle at 84% 80%,rgba(255,103,88,.14),transparent 28rem),#f4f3f7;
}
html[data-theme="light"] .login-card{border:1px solid var(--border);box-shadow:0 30px 80px rgba(25,18,40,.14);}

/* ---------- panels that were always dark (light versions) ---------- */
html[data-theme="light"] .postrend{
  --ink:#17131f; --muted:#5f586d; --muted-2:#6b6478; --info-bg:#f0edf4; --border:#e1dde9;
  color:var(--ink); border-color:var(--border);
  box-shadow:0 1px 2px rgba(25,18,40,.04), 0 14px 30px -20px rgba(25,18,40,.16);
}
html[data-theme="light"] .postrend .pt-bar{background:#ebe7f1;}
html[data-theme="light"] .postrend .pt-spark{border-color:var(--border);}
html[data-theme="light"] .vibe-explain,html[data-theme="light"] .kb-hero{
  background:radial-gradient(circle at 90% 0%,rgba(255,103,88,.10),transparent 18rem),linear-gradient(135deg,#ffffff,#f6f2fb)!important;
  box-shadow:0 1px 2px rgba(25,18,40,.04),0 14px 30px -20px rgba(25,18,40,.16); border:1px solid var(--border);
}
html[data-theme="light"] .vibe-explain{color:var(--ink);}
html[data-theme="light"] .vibe-explain-h,html[data-theme="light"] .vibe-explain b,html[data-theme="light"] .kb-hero,
html[data-theme="light"] .kb-title{color:var(--ink);}
html[data-theme="light"] .vibe-explain p,html[data-theme="light"] .kb-lead{color:var(--muted);}
html[data-theme="light"] .vibe-explain>summary::before{border-left-color:var(--muted-2);}
html[data-theme="light"] .kb-search{border:1px solid var(--border);background:#fff;color:var(--ink);}
html[data-theme="light"] .kb-search::placeholder{color:var(--muted-2);}
html[data-theme="light"] .command-hero{
  color:var(--ink);border:1px solid var(--border);
  background:radial-gradient(circle at 82% 22%,rgba(255,103,88,.12),transparent 16rem),radial-gradient(circle at 54% 120%,rgba(113,87,232,.10),transparent 23rem),#fff;
  box-shadow:0 1px 2px rgba(25,18,40,.04),0 18px 40px -26px rgba(25,18,40,.2);
}
html[data-theme="light"] .command-hero::after{border-color:rgba(23,19,31,.07);box-shadow:0 0 0 45px rgba(23,19,31,.015),0 0 0 92px rgba(23,19,31,.01);}
html[data-theme="light"] .command-eyebrow{color:var(--muted);}
html[data-theme="light"] .command-hero p{color:var(--muted);}
html[data-theme="light"] .command-stage{border-color:var(--border);background:var(--panel-2);}
html[data-theme="light"] .command-stage b{color:var(--ink);}
html[data-theme="light"] .command-stage span{color:var(--muted-2);}

/* AI runtime stack: the attack-path stage and its canvas (palette switches in app.js) */
html[data-theme="light"] .ais-path{background:var(--stage-bg);border-color:var(--border);}
html[data-theme="light"] .f-hot{background:var(--crit);color:#fff;}
html[data-theme="light"] .f-jewel{background:#f3d98d;color:#3a2c00;}
html[data-theme="light"] .ais-jtag{background:rgba(176,122,0,.14);color:#7a5200;}
html[data-theme="light"] .ais-layer.l-jewel{border-color:color-mix(in srgb,#b07a00 45%,var(--border));}
html[data-theme="light"] .ais-live{color:#0f7a4a;background:rgba(15,122,74,.10);border-color:rgba(15,122,74,.3);}

/* 5x5 risk heat map: the dark-theme text (#1b1523) stays; the critical cell needs a darker fill for white text */
html[data-theme="light"] .heat .hc.critical{background:#d23a4f;color:#fff;}
html[data-theme="light"] .heat .hc.high{background:#ffb26b;color:#1b1523;}
html[data-theme="light"] .heat .hc.sel{border-color:var(--ink);}

/* status chips on tinted backgrounds: explicit text colors (never inherited) */
html[data-theme="light"] .badge.critical{background:var(--crit-bg);color:var(--crit);}
html[data-theme="light"] .badge.high{background:var(--high-bg);color:var(--high);}
html[data-theme="light"] .badge.medium{background:var(--med-bg);color:var(--med);}
html[data-theme="light"] .badge.low{background:var(--low-bg);color:var(--low);}
html[data-theme="light"] .badge.info{background:var(--info-bg);color:var(--info);}
html[data-theme="light"] .st.flagged{background:var(--brand-soft);color:var(--brand-ink);}
html[data-theme="light"] .st.clear{background:var(--ok-bg);color:var(--ok);}
html[data-theme="light"] .st.pending,html[data-theme="light"] .st.pending_review{background:var(--med-bg);color:var(--med);}
html[data-theme="light"] .st.muted{background:var(--info-bg);color:var(--muted);}
html[data-theme="light"] .b-critical{background:var(--crit-fill);} html[data-theme="light"] .b-high{background:var(--high-fill);}
html[data-theme="light"] .b-medium{background:var(--med-fill);}   html[data-theme="light"] .b-low{background:var(--low-fill);}
html[data-theme="light"] .b-info{background:var(--info-fill);}
html[data-theme="light"] .stat-dot.on .d{background:var(--ok-fill);} html[data-theme="light"] .stat-dot.off .d{background:var(--crit-fill);}

/*GEN-INLINE-START*/
/* ---- generated: inline text colors written for the dark theme, or too light for white, mapped to AA tokens (light theme only) ---- */
html[data-theme="light"] [style^="color:#98a2b3" i],
html[data-theme="light"] [style*=";color:#98a2b3" i],
html[data-theme="light"] [style*="; color:#98a2b3" i],
html[data-theme="light"] [style^="color:#94a3b8" i],
html[data-theme="light"] [style*=";color:#94a3b8" i],
html[data-theme="light"] [style*="; color:#94a3b8" i],
html[data-theme="light"] [style^="color:#93a1b5" i],
html[data-theme="light"] [style*=";color:#93a1b5" i],
html[data-theme="light"] [style*="; color:#93a1b5" i],
html[data-theme="light"] [style^="color:#93a1b8" i],
html[data-theme="light"] [style*=";color:#93a1b8" i],
html[data-theme="light"] [style*="; color:#93a1b8" i],
html[data-theme="light"] [style^="color:#8b98ab" i],
html[data-theme="light"] [style*=";color:#8b98ab" i],
html[data-theme="light"] [style*="; color:#8b98ab" i],
html[data-theme="light"] [style^="color:#8b94a3" i],
html[data-theme="light"] [style*=";color:#8b94a3" i],
html[data-theme="light"] [style*="; color:#8b94a3" i],
html[data-theme="light"] [style^="color:#8b97ab" i],
html[data-theme="light"] [style*=";color:#8b97ab" i],
html[data-theme="light"] [style*="; color:#8b97ab" i],
html[data-theme="light"] [style^="color:#7c8aa0" i],
html[data-theme="light"] [style*=";color:#7c8aa0" i],
html[data-theme="light"] [style*="; color:#7c8aa0" i],
html[data-theme="light"] [style^="color:#7d8aa0" i],
html[data-theme="light"] [style*=";color:#7d8aa0" i],
html[data-theme="light"] [style*="; color:#7d8aa0" i],
html[data-theme="light"] [style^="color:#7a8699" i],
html[data-theme="light"] [style*=";color:#7a8699" i],
html[data-theme="light"] [style*="; color:#7a8699" i],
html[data-theme="light"] [style^="color:#6b7788" i],
html[data-theme="light"] [style*=";color:#6b7788" i],
html[data-theme="light"] [style*="; color:#6b7788" i],
html[data-theme="light"] [style^="color:#6b7686" i],
html[data-theme="light"] [style*=";color:#6b7686" i],
html[data-theme="light"] [style*="; color:#6b7686" i],
html[data-theme="light"] [style^="color:#64748b" i],
html[data-theme="light"] [style*=";color:#64748b" i],
html[data-theme="light"] [style*="; color:#64748b" i],
html[data-theme="light"] [style^="color:#9db0cc" i],
html[data-theme="light"] [style*=";color:#9db0cc" i],
html[data-theme="light"] [style*="; color:#9db0cc" i],
html[data-theme="light"] [style^="color:#8ea0bd" i],
html[data-theme="light"] [style*=";color:#8ea0bd" i],
html[data-theme="light"] [style*="; color:#8ea0bd" i],
html[data-theme="light"] [style^="color:#9aa6b8" i],
html[data-theme="light"] [style*=";color:#9aa6b8" i],
html[data-theme="light"] [style*="; color:#9aa6b8" i],
html[data-theme="light"] [style^="color:#9aa7bd" i],
html[data-theme="light"] [style*=";color:#9aa7bd" i],
html[data-theme="light"] [style*="; color:#9aa7bd" i],
html[data-theme="light"] [style^="color:#7c8aa1" i],
html[data-theme="light"] [style*=";color:#7c8aa1" i],
html[data-theme="light"] [style*="; color:#7c8aa1" i],
html[data-theme="light"] [style^="color:#7c8aa3" i],
html[data-theme="light"] [style*=";color:#7c8aa3" i],
html[data-theme="light"] [style*="; color:#7c8aa3" i],
html[data-theme="light"] [style^="color:#b5c0d4" i],
html[data-theme="light"] [style*=";color:#b5c0d4" i],
html[data-theme="light"] [style*="; color:#b5c0d4" i],
html[data-theme="light"] [style^="color:#a6b6cd" i],
html[data-theme="light"] [style*=";color:#a6b6cd" i],
html[data-theme="light"] [style*="; color:#a6b6cd" i],
html[data-theme="light"] [style^="color:#a4b0c4" i],
html[data-theme="light"] [style*=";color:#a4b0c4" i],
html[data-theme="light"] [style*="; color:#a4b0c4" i],
html[data-theme="light"] [style^="color:#b7c0d1" i],
html[data-theme="light"] [style*=";color:#b7c0d1" i],
html[data-theme="light"] [style*="; color:#b7c0d1" i],
html[data-theme="light"] [style^="color:#aaa2b5" i],
html[data-theme="light"] [style*=";color:#aaa2b5" i],
html[data-theme="light"] [style*="; color:#aaa2b5" i],
html[data-theme="light"] [style^="color:#9e98a9" i],
html[data-theme="light"] [style*=";color:#9e98a9" i],
html[data-theme="light"] [style*="; color:#9e98a9" i],
html[data-theme="light"] [style^="color:#968fa2" i],
html[data-theme="light"] [style*=";color:#968fa2" i],
html[data-theme="light"] [style*="; color:#968fa2" i],
html[data-theme="light"] [style^="color:#8f8999" i],
html[data-theme="light"] [style*=";color:#8f8999" i],
html[data-theme="light"] [style*="; color:#8f8999" i],
html[data-theme="light"] [style^="color:#8f8799" i],
html[data-theme="light"] [style*=";color:#8f8799" i],
html[data-theme="light"] [style*="; color:#8f8799" i],
html[data-theme="light"] [style^="color:#827b8e" i],
html[data-theme="light"] [style*=";color:#827b8e" i],
html[data-theme="light"] [style*="; color:#827b8e" i],
html[data-theme="light"] [style^="color:#81798a" i],
html[data-theme="light"] [style*=";color:#81798a" i],
html[data-theme="light"] [style*="; color:#81798a" i],
html[data-theme="light"] [style^="color:#bdb5c8" i],
html[data-theme="light"] [style*=";color:#bdb5c8" i],
html[data-theme="light"] [style*="; color:#bdb5c8" i],
html[data-theme="light"] [style^="color:#7c88a0" i],
html[data-theme="light"] [style*=";color:#7c88a0" i],
html[data-theme="light"] [style*="; color:#7c88a0" i],
html[data-theme="light"] [style^="color:#9fb0c9" i],
html[data-theme="light"] [style*=";color:#9fb0c9" i],
html[data-theme="light"] [style*="; color:#9fb0c9" i],
html[data-theme="light"] [style^="color:#6b7690" i],
html[data-theme="light"] [style*=";color:#6b7690" i],
html[data-theme="light"] [style*="; color:#6b7690" i],
html[data-theme="light"] [style^="color:#aab4c9" i],
html[data-theme="light"] [style*=";color:#aab4c9" i],
html[data-theme="light"] [style*="; color:#aab4c9" i]{color:var(--muted-2)!important;}
html[data-theme="light"] [style^="color:#c3ccd9" i],
html[data-theme="light"] [style*=";color:#c3ccd9" i],
html[data-theme="light"] [style*="; color:#c3ccd9" i],
html[data-theme="light"] [style^="color:#c3cddd" i],
html[data-theme="light"] [style*=";color:#c3cddd" i],
html[data-theme="light"] [style*="; color:#c3cddd" i],
html[data-theme="light"] [style^="color:#c9d4e6" i],
html[data-theme="light"] [style*=";color:#c9d4e6" i],
html[data-theme="light"] [style*="; color:#c9d4e6" i],
html[data-theme="light"] [style^="color:#c4bdcf" i],
html[data-theme="light"] [style*=";color:#c4bdcf" i],
html[data-theme="light"] [style*="; color:#c4bdcf" i],
html[data-theme="light"] [style^="color:#c7d0e0" i],
html[data-theme="light"] [style*=";color:#c7d0e0" i],
html[data-theme="light"] [style*="; color:#c7d0e0" i]{color:var(--muted)!important;}
html[data-theme="light"] [style^="color:#e6edf3" i],
html[data-theme="light"] [style*=";color:#e6edf3" i],
html[data-theme="light"] [style*="; color:#e6edf3" i],
html[data-theme="light"] [style^="color:#e6ebf3" i],
html[data-theme="light"] [style*=";color:#e6ebf3" i],
html[data-theme="light"] [style*="; color:#e6ebf3" i],
html[data-theme="light"] [style^="color:#dbe3f0" i],
html[data-theme="light"] [style*=";color:#dbe3f0" i],
html[data-theme="light"] [style*="; color:#dbe3f0" i],
html[data-theme="light"] [style^="color:#d3dbe9" i],
html[data-theme="light"] [style*=";color:#d3dbe9" i],
html[data-theme="light"] [style*="; color:#d3dbe9" i],
html[data-theme="light"] [style^="color:#f8f3fb" i],
html[data-theme="light"] [style*=";color:#f8f3fb" i],
html[data-theme="light"] [style*="; color:#f8f3fb" i],
html[data-theme="light"] [style^="color:#f8f4fb" i],
html[data-theme="light"] [style*=";color:#f8f4fb" i],
html[data-theme="light"] [style*="; color:#f8f4fb" i],
html[data-theme="light"] [style^="color:#e6ecf6" i],
html[data-theme="light"] [style*=";color:#e6ecf6" i],
html[data-theme="light"] [style*="; color:#e6ecf6" i],
html[data-theme="light"] [style^="color:#eaf0f8" i],
html[data-theme="light"] [style*=";color:#eaf0f8" i],
html[data-theme="light"] [style*="; color:#eaf0f8" i],
html[data-theme="light"] [style^="color:#dfe6f2" i],
html[data-theme="light"] [style*=";color:#dfe6f2" i],
html[data-theme="light"] [style*="; color:#dfe6f2" i],
html[data-theme="light"] [style^="color:#eef2f8" i],
html[data-theme="light"] [style*=";color:#eef2f8" i],
html[data-theme="light"] [style*="; color:#eef2f8" i]{color:var(--ink)!important;}
html[data-theme="light"] [style^="color:#e0a400" i],
html[data-theme="light"] [style*=";color:#e0a400" i],
html[data-theme="light"] [style*="; color:#e0a400" i],
html[data-theme="light"] [style^="color:#e0a33a" i],
html[data-theme="light"] [style*=";color:#e0a33a" i],
html[data-theme="light"] [style*="; color:#e0a33a" i],
html[data-theme="light"] [style^="color:#f59e42" i],
html[data-theme="light"] [style*=";color:#f59e42" i],
html[data-theme="light"] [style*="; color:#f59e42" i],
html[data-theme="light"] [style^="color:#f5a623" i],
html[data-theme="light"] [style*=";color:#f5a623" i],
html[data-theme="light"] [style*="; color:#f5a623" i],
html[data-theme="light"] [style^="color:#f5a524" i],
html[data-theme="light"] [style*=";color:#f5a524" i],
html[data-theme="light"] [style*="; color:#f5a524" i],
html[data-theme="light"] [style^="color:#d97706" i],
html[data-theme="light"] [style*=";color:#d97706" i],
html[data-theme="light"] [style*="; color:#d97706" i],
html[data-theme="light"] [style^="color:#a16207" i],
html[data-theme="light"] [style*=";color:#a16207" i],
html[data-theme="light"] [style*="; color:#a16207" i],
html[data-theme="light"] [style^="color:#e9b949" i],
html[data-theme="light"] [style*=";color:#e9b949" i],
html[data-theme="light"] [style*="; color:#e9b949" i],
html[data-theme="light"] [style^="color:#96650b" i],
html[data-theme="light"] [style*=";color:#96650b" i],
html[data-theme="light"] [style*="; color:#96650b" i],
html[data-theme="light"] [style^="color:#b26a00" i],
html[data-theme="light"] [style*=";color:#b26a00" i],
html[data-theme="light"] [style*="; color:#b26a00" i]{color:var(--med)!important;}
html[data-theme="light"] [style^="color:#ea580c" i],
html[data-theme="light"] [style*=";color:#ea580c" i],
html[data-theme="light"] [style*="; color:#ea580c" i],
html[data-theme="light"] [style^="color:#e07a3c" i],
html[data-theme="light"] [style*=";color:#e07a3c" i],
html[data-theme="light"] [style*="; color:#e07a3c" i]{color:var(--high)!important;}
html[data-theme="light"] [style^="color:#dc2626" i],
html[data-theme="light"] [style*=";color:#dc2626" i],
html[data-theme="light"] [style*="; color:#dc2626" i],
html[data-theme="light"] [style^="color:#e5484d" i],
html[data-theme="light"] [style*=";color:#e5484d" i],
html[data-theme="light"] [style*="; color:#e5484d" i],
html[data-theme="light"] [style^="color:#f26d6d" i],
html[data-theme="light"] [style*=";color:#f26d6d" i],
html[data-theme="light"] [style*="; color:#f26d6d" i],
html[data-theme="light"] [style^="color:#fb7185" i],
html[data-theme="light"] [style*=";color:#fb7185" i],
html[data-theme="light"] [style*="; color:#fb7185" i]{color:var(--crit)!important;}
html[data-theme="light"] [style^="color:#3ec07f" i],
html[data-theme="light"] [style*=";color:#3ec07f" i],
html[data-theme="light"] [style*="; color:#3ec07f" i],
html[data-theme="light"] [style^="color:#2f9e63" i],
html[data-theme="light"] [style*=";color:#2f9e63" i],
html[data-theme="light"] [style*="; color:#2f9e63" i],
html[data-theme="light"] [style^="color:#0f9d78" i],
html[data-theme="light"] [style*=";color:#0f9d78" i],
html[data-theme="light"] [style*="; color:#0f9d78" i],
html[data-theme="light"] [style^="color:#0a8f5b" i],
html[data-theme="light"] [style*=";color:#0a8f5b" i],
html[data-theme="light"] [style*="; color:#0a8f5b" i],
html[data-theme="light"] [style^="color:#15803d" i],
html[data-theme="light"] [style*=";color:#15803d" i],
html[data-theme="light"] [style*="; color:#15803d" i]{color:var(--ok)!important;}
html[data-theme="light"] [style^="color:#4d7c0f" i],
html[data-theme="light"] [style*=";color:#4d7c0f" i],
html[data-theme="light"] [style*="; color:#4d7c0f" i]{color:var(--low)!important;}
html[data-theme="light"] [style^="color:#7c5cff" i],
html[data-theme="light"] [style*=";color:#7c5cff" i],
html[data-theme="light"] [style*="; color:#7c5cff" i]{color:var(--violet)!important;}
html[data-theme="light"] [style^="color:#ff8b70" i],
html[data-theme="light"] [style*=";color:#ff8b70" i],
html[data-theme="light"] [style*="; color:#ff8b70" i]{color:var(--brand-text)!important;}
/* ---- generated: chart marks drawn with the text-safe tokens use the vivid -fill tokens in the light theme ---- */
html[data-theme="light"] [style*="background:var(--crit)"]:empty,
html[data-theme="light"] [style*="background-color:var(--crit)"]:empty,
html[data-theme="light"] [style*="background: var(--crit)"]:empty,
html[data-theme="light"] [style*="background-color: var(--crit)"]:empty{background:var(--crit-fill)!important;}
html[data-theme="light"] [stroke="var(--crit)"],html[data-theme="light"] [style*="stroke:var(--crit)"]{stroke:var(--crit-fill);}
html[data-theme="light"] :is(circle,rect,path,polygon,ellipse)[fill="var(--crit)"],html[data-theme="light"] :is(circle,rect,path,polygon,ellipse)[style*="fill:var(--crit)"]{fill:var(--crit-fill);}
html[data-theme="light"] [style*="background:var(--high)"]:empty,
html[data-theme="light"] [style*="background-color:var(--high)"]:empty,
html[data-theme="light"] [style*="background: var(--high)"]:empty,
html[data-theme="light"] [style*="background-color: var(--high)"]:empty{background:var(--high-fill)!important;}
html[data-theme="light"] [stroke="var(--high)"],html[data-theme="light"] [style*="stroke:var(--high)"]{stroke:var(--high-fill);}
html[data-theme="light"] :is(circle,rect,path,polygon,ellipse)[fill="var(--high)"],html[data-theme="light"] :is(circle,rect,path,polygon,ellipse)[style*="fill:var(--high)"]{fill:var(--high-fill);}
html[data-theme="light"] [style*="background:var(--med)"]:empty,
html[data-theme="light"] [style*="background-color:var(--med)"]:empty,
html[data-theme="light"] [style*="background: var(--med)"]:empty,
html[data-theme="light"] [style*="background-color: var(--med)"]:empty{background:var(--med-fill)!important;}
html[data-theme="light"] [stroke="var(--med)"],html[data-theme="light"] [style*="stroke:var(--med)"]{stroke:var(--med-fill);}
html[data-theme="light"] :is(circle,rect,path,polygon,ellipse)[fill="var(--med)"],html[data-theme="light"] :is(circle,rect,path,polygon,ellipse)[style*="fill:var(--med)"]{fill:var(--med-fill);}
html[data-theme="light"] [style*="background:var(--low)"]:empty,
html[data-theme="light"] [style*="background-color:var(--low)"]:empty,
html[data-theme="light"] [style*="background: var(--low)"]:empty,
html[data-theme="light"] [style*="background-color: var(--low)"]:empty{background:var(--low-fill)!important;}
html[data-theme="light"] [stroke="var(--low)"],html[data-theme="light"] [style*="stroke:var(--low)"]{stroke:var(--low-fill);}
html[data-theme="light"] :is(circle,rect,path,polygon,ellipse)[fill="var(--low)"],html[data-theme="light"] :is(circle,rect,path,polygon,ellipse)[style*="fill:var(--low)"]{fill:var(--low-fill);}
html[data-theme="light"] [style*="background:var(--ok)"]:empty,
html[data-theme="light"] [style*="background-color:var(--ok)"]:empty,
html[data-theme="light"] [style*="background: var(--ok)"]:empty,
html[data-theme="light"] [style*="background-color: var(--ok)"]:empty{background:var(--ok-fill)!important;}
html[data-theme="light"] [stroke="var(--ok)"],html[data-theme="light"] [style*="stroke:var(--ok)"]{stroke:var(--ok-fill);}
html[data-theme="light"] :is(circle,rect,path,polygon,ellipse)[fill="var(--ok)"],html[data-theme="light"] :is(circle,rect,path,polygon,ellipse)[style*="fill:var(--ok)"]{fill:var(--ok-fill);}
html[data-theme="light"] [style*="background:var(--info)"]:empty,
html[data-theme="light"] [style*="background-color:var(--info)"]:empty,
html[data-theme="light"] [style*="background: var(--info)"]:empty,
html[data-theme="light"] [style*="background-color: var(--info)"]:empty{background:var(--info-fill)!important;}
html[data-theme="light"] [stroke="var(--info)"],html[data-theme="light"] [style*="stroke:var(--info)"]{stroke:var(--info-fill);}
html[data-theme="light"] :is(circle,rect,path,polygon,ellipse)[fill="var(--info)"],html[data-theme="light"] :is(circle,rect,path,polygon,ellipse)[style*="fill:var(--info)"]{fill:var(--info-fill);}
/* ---- generated: inline SVG diagram colors (presentation attributes) re-mapped for the light theme ---- */
html[data-theme="light"] svg :is(rect,circle,ellipse,path,polygon)[fill="#0e1a2c" i],
html[data-theme="light"] svg :is(rect,circle,ellipse,path,polygon)[fill="#121a2b" i],
html[data-theme="light"] svg :is(rect,circle,ellipse,path,polygon)[fill="#101a2b" i],
html[data-theme="light"] svg :is(rect,circle,ellipse,path,polygon)[fill="#0e1626" i],
html[data-theme="light"] svg :is(rect,circle,ellipse,path,polygon)[fill="#0d1524" i]{fill:#ffffff;}
html[data-theme="light"] svg :is(text,tspan)[fill="#e6ecf6" i],
html[data-theme="light"] svg :is(text,tspan)[fill="#eaf0f8" i],
html[data-theme="light"] svg :is(text,tspan)[fill="#dfe6f2" i],
html[data-theme="light"] svg :is(text,tspan)[fill="#eef2f8" i],
html[data-theme="light"] svg :is(text,tspan)[fill="#e6edf3" i]{fill:#17131f;}
html[data-theme="light"] svg :is(text,tspan)[fill="#9fb0c9" i],
html[data-theme="light"] svg :is(text,tspan)[fill="#aab4c9" i],
html[data-theme="light"] svg :is(text,tspan)[fill="#c7d0e0" i]{fill:#5f586d;}
html[data-theme="light"] svg :is(text,tspan)[fill="#7c88a0" i],
html[data-theme="light"] svg :is(text,tspan)[fill="#8b97ab" i],
html[data-theme="light"] svg :is(text,tspan)[fill="#6b7690" i],
html[data-theme="light"] svg :is(text,tspan)[fill="#98a2b3" i],
html[data-theme="light"] svg :is(text,tspan)[fill="#7c8aa3" i]{fill:#6b6478;}
html[data-theme="light"] svg [stroke="#22304a" i],
html[data-theme="light"] svg [stroke="#33425e" i],
html[data-theme="light"] svg [stroke="#2c3a52" i],
html[data-theme="light"] svg [stroke="#2a6b53" i]{stroke:#d6d0e3;}
html[data-theme="light"] svg [stroke="#0a1020" i],
html[data-theme="light"] svg [stroke="#0c1420" i]{stroke:#ffffff;}
html[data-theme="light"] svg stop[stop-color="#1a2536" i],
html[data-theme="light"] svg stop[stop-color="#121a28" i]{stop-color:#ffffff;}
html[data-theme="light"] svg stop[stop-color="#0a0f1a" i],
html[data-theme="light"] svg stop[stop-color="#0a0f18" i]{stop-color:#f4f1fa;}
/*GEN-INLINE-END*/

/* ---------- smaller light-theme fixes found by the contrast audit ---------- */
html[data-theme="light"] .ws-caret{color:#6b6478;}
html[data-theme="light"] aside .foot,html[data-theme="light"] aside .foot div,html[data-theme="light"] aside .foot a,
html[data-theme="light"] aside .foot span,html[data-theme="light"] #appFootYear{color:var(--muted);}
html[data-theme="light"] .who-avatar,html[data-theme="light"] .top-who .tw-av{background:linear-gradient(145deg,#6a50e0,#cf3a2a);}
html[data-theme="light"] .rbtn.primary{background:linear-gradient(135deg,#d03a2a,#bd3022)!important;}
html[data-theme="light"] aside .foot .who-avatar,html[data-theme="light"] .who-avatar{color:#fff;}

/* connectors / integrations / lists: hue variables darkened for text contrast on white and on 14% tints */
html[data-theme="light"] .cx,html[data-theme="light"] .ix,html[data-theme="light"] .lp{
  --h-v:#6a4ee0;--h-b:#1c5fcb;--h-s:#55607a;--h-a:#8f5a00;--h-t:#0b6f66;--h-c:#0a6a86;--h-g:#157a3b;--h-r:#c0123a;
}
html[data-theme="light"] .cx-num,html[data-theme="light"] .ix-num{opacity:.9;}
html[data-theme="light"] .chip .chipn{opacity:.8;}
html[data-theme="light"] .cx-btn.primary,html[data-theme="light"] .ix-btn.primary{
  background:linear-gradient(135deg,#d03a2a,#bd3022);border-color:#b52c1f;color:#fff;}
html[data-theme="light"] .cx-bg,html[data-theme="light"] .ix-bg{background:rgba(30,22,48,.32);}
html[data-theme="light"] [style*="color:var(--brand-2"]{color:var(--brand-text)!important;}
html[data-theme="light"] [style*="border-color:var(--brand-2"]{border-color:var(--brand-text)!important;}

#profTheme a{color:var(--brand-text,var(--brand));text-decoration:underline;text-underline-offset:2px;cursor:pointer;}

/* hover / track colors that were white-on-dark alpha tints */
html[data-theme="light"] .gsr:hover{background:rgba(23,19,31,.05);}
html[data-theme="light"] .gsearch-res{box-shadow:0 18px 44px rgba(25,18,40,.16);}
html[data-theme="light"] .rdim-bar{background:rgba(23,19,31,.08);}
html[data-theme="light"] .flagchip.danger{color:var(--crit);background:var(--crit-bg);border-color:color-mix(in srgb,var(--crit) 35%,transparent);}
html[data-theme="light"] .flagchip.warn{color:var(--med);background:var(--med-bg);border-color:color-mix(in srgb,var(--med) 35%,transparent);}
html[data-theme="light"] .flagchip.neutral{color:var(--muted);background:var(--info-bg);border-color:var(--border);}
html[data-theme="light"] .pg-pop{box-shadow:0 14px 40px rgba(25,18,40,.16);}
html[data-theme="light"] .ui-modal{box-shadow:0 24px 70px rgba(25,18,40,.22);}
html[data-theme="light"] .ui-ov{background:rgba(30,22,48,.32);}

/* attack-path stages drawn on an inline dark panel */
html[data-theme="light"] [style*="background:#0c1424" i]{background:linear-gradient(180deg,#fbf9fe,#f3effa)!important;border-color:var(--border)!important;}

/* cards / spans that were written as dark panels using the sidebar tokens or white text: light versions */
html[data-theme="light"] [style*="var(--sidebar"]{color:var(--ink)!important;}
html[data-theme="light"] [style*="color:#04140d" i]{color:#fff!important;}
html[data-theme="light"] [style*="background:var(--brand)"]:not(.rbtn){background:#c93626!important;}
html[data-theme="light"] #azModeBadge{color:var(--brand-ink)!important;}
html[data-theme="light"] span[style*="opacity:.8"]{opacity:.95!important;}

/* ---------- login backdrop: dither the two large radial glows ----------
   An 8-bit gradient this wide and this faint quantises into visible concentric rings
   (seen at the edges of the sign-in screen). A fine low-opacity grain breaks the bands up. */
#loginOverlay::before{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.55;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n' x='0' y='0' width='100%25' height='100%25'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' seed='7' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0.09 0 0 0 0'/></filter><rect width='180' height='180' filter='url(%23n)'/></svg>");
  background-size:180px 180px;
}
html[data-theme="dark"] #loginOverlay::before{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n' x='0' y='0' width='100%25' height='100%25'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' seed='7' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0.07 0 0 0 0'/></filter><rect width='180' height='180' filter='url(%23n)'/></svg>");
}
