/* Light theme for the public site. Every page paints from the same tokens
   (--void, --panel, --panel2, --line, --line2, --ink, --mute, --dim, --signal,
   severity bands), so switching the tokens switches the page. A few surfaces
   that were painted with literal dark colours are overridden below. */
:root[data-theme="light"]{
  --void:#f4f7fb; --panel:#ffffff; --panel2:#eef2f7; --line:#dbe3ee; --line2:#c3cfdd;
  --ink:#0d1a2b; --mute:#4a5d75; --dim:#6b7f97;
  --signal:#0e9fb8;
  --crit:#d81b4a; --high:#d94f1c; --med:#b97f00; --ok:#15803d;
  color-scheme:light;
}
:root[data-theme="light"] body::before{
  background-image:linear-gradient(rgba(20,60,100,.06) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(20,60,100,.06) 1px,transparent 1px);
}
:root[data-theme="light"] nav{background:rgba(244,247,251,.88)}
:root[data-theme="light"] .btn-solid{color:#ffffff}
:root[data-theme="light"] .btn-solid:hover{background:#0b8ca3;border-color:#0b8ca3}
:root[data-theme="light"] .tier-flag,
:root[data-theme="light"] .toggle button.on,
:root[data-theme="light"] .video-langs button.on{color:#ffffff}
:root[data-theme="light"] .probe{background:linear-gradient(180deg,#ffffff,#f3f6fa);box-shadow:0 24px 60px rgba(13,26,43,.12)}
:root[data-theme="light"] .probe::after{background:none}
:root[data-theme="light"] .probe-h{background:rgba(13,26,43,.03)}
:root[data-theme="light"] #payload,
:root[data-theme="light"] .flowline{background:#f7f9fc;color:#12263f}
:root[data-theme="light"] .trust{background:rgba(255,255,255,.6)}
:root[data-theme="light"] .tier.feature{box-shadow:0 0 0 1px rgba(14,159,184,.25),0 18px 50px -22px rgba(14,159,184,.35)}
:root[data-theme="light"] .sev.critical{background:rgba(216,27,74,.08)}
:root[data-theme="light"] .sev.high{background:rgba(217,79,28,.08)}
:root[data-theme="light"] .sev.medium{background:rgba(185,127,0,.09)}
:root[data-theme="light"] .pill.live{color:var(--ok);border-color:var(--ok)}
:root[data-theme="light"] .video-frame video{background:#0d1a2b}
:root[data-theme="light"] img.shot,:root[data-theme="light"] .shot{filter:none}

/* the toggle button, in the nav */
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;
  border-radius:8px;border:1px solid var(--line2);background:var(--panel);color:var(--mute);cursor:pointer;
  padding:0;transition:border-color .18s,color .18s}
.theme-toggle:hover{border-color:var(--signal);color:var(--ink)}
.theme-toggle svg{display:block}


/* ---------------------------------------------------------------------------
   The console and the desktop window paint from their own tokens (--bg, --txt,
   --muted, --accent ...) and a handful of literal dark surfaces. Remapping the
   tokens switches most of it; the literals are overridden below by the exact
   values style.css uses, so a light login page gets a light page and light
   inputs, not a white card floating on a dark void.
   --------------------------------------------------------------------------- */
:root[data-theme="light"]{
  --bg:#f4f7fb; --txt:#0d1a2b; --muted:#4a5d75; --accent:#0e9fb8;
  --grn:#15803d; --amber:#b97f00; --red:#c62828; --low:#0369a1;
  --shadow:0 6px 24px rgba(13,26,43,.08);
}
:root[data-theme="light"] body{background:linear-gradient(180deg,#eef3f9,#f4f7fb)}
:root[data-theme="light"] .topbar{background:rgba(244,247,251,.9)}
:root[data-theme="light"] b{color:#0b7f93}
:root[data-theme="light"] .login-card button,
:root[data-theme="light"] .save-row button,
:root[data-theme="light"] #ptRun,
:root[data-theme="light"] .rsp-btn.primary,
:root[data-theme="light"] .flt-btn.primary,
:root[data-theme="light"] .fw-btn.primary,
:root[data-theme="light"] .btn-solid{color:#ffffff}
:root[data-theme="light"] .login-card input,
:root[data-theme="light"] .fld input,:root[data-theme="light"] .fld select,:root[data-theme="light"] .fld2 input,
:root[data-theme="light"] .rsp-form input,:root[data-theme="light"] .rsp-form select,
:root[data-theme="light"] .flt-form input,:root[data-theme="light"] .flt-form select,:root[data-theme="light"] .flt-form textarea,
:root[data-theme="light"] .flt-row select,:root[data-theme="light"] .fw-form input,:root[data-theme="light"] .fw-form select,
:root[data-theme="light"] .al-row input[type=text],:root[data-theme="light"] .al-row input:not([type]),
:root[data-theme="light"] .sc-f select,:root[data-theme="light"] .sc-f input,
:root[data-theme="light"] #aiInput,:root[data-theme="light"] #ptUrl{background:#ffffff;border-color:var(--line);color:var(--txt)}
:root[data-theme="light"] .sim-row button:hover,:root[data-theme="light"] .ops-btn:hover{background:#e2ecf6}
:root[data-theme="light"] .mc,:root[data-theme="light"] .vc,:root[data-theme="light"] .enc-col,:root[data-theme="light"] .enc-vulns,
:root[data-theme="light"] .col{background:rgba(255,255,255,.7)}
:root[data-theme="light"] .rt-launch,:root[data-theme="light"] .rt-step,:root[data-theme="light"] .rt-again,
:root[data-theme="light"] .aiti-samp,:root[data-theme="light"] .fnd-map span,:root[data-theme="light"] .ops-btn,
:root[data-theme="light"] .al-add{background:#ffffff;border-color:var(--line);color:var(--txt)}
:root[data-theme="light"] .rt-timers>div,:root[data-theme="light"] .rt-metrics>div,:root[data-theme="light"] .rt-hrow,
:root[data-theme="light"] .ver,:root[data-theme="light"] .fnd,:root[data-theme="light"] .src,:root[data-theme="light"] .tech,
:root[data-theme="light"] .al-sound,:root[data-theme="light"] .pt-fnd,:root[data-theme="light"] .fcard{background:#f7f9fc;border-color:var(--line)}
:root[data-theme="light"] .fnd.ai{background:linear-gradient(180deg,rgba(168,85,247,.06),#f7f9fc)}
:root[data-theme="light"] .rt-head,:root[data-theme="light"] .rt-panel{background:#ffffff;border-color:var(--line)}
:root[data-theme="light"] .oc-switch,:root[data-theme="light"] .rt-step .rs-i{background:#dbe3ee}
:root[data-theme="light"] .fnd-match code,:root[data-theme="light"] .pt-hero code{background:#fde8ec;color:#8b1130}
:root[data-theme="light"] .tblk{color:#b0123a}
:root[data-theme="light"] .flt-code,:root[data-theme="light"] .fw-code,:root[data-theme="light"] pre{background:#f7f9fc;color:var(--txt);border-color:var(--line)}
:root[data-theme="light"] .rsp-card,:root[data-theme="light"] .drawer{background:#ffffff}
:root[data-theme="light"] .empty{color:var(--muted)}
:root[data-theme="light"] table th{color:var(--muted)}
:root[data-theme="light"] .rsp-tag,:root[data-theme="light"] .flt-tag{color:var(--muted);border-color:var(--line)}
:root[data-theme="light"] .flt-switch{background:#c3cfdd}
:root[data-theme="light"] .flt-switch.on{background:var(--grn)}
:root[data-theme="light"] .flt-switch::after{background:#ffffff}
:root[data-theme="light"] .badge-block{background:rgba(198,40,40,.1);color:#b71c1c}
/* the attack map, the globe and the war-room canvases stay dark by design */
:root[data-theme="light"] .globe-body,:root[data-theme="light"] .mapwrap,:root[data-theme="light"] .globewrap{background:#02080a;color:#e8eff8}

/* desktop window: inline-styled inputs and code blocks in the newer sections */
:root[data-theme="light"] input[style],:root[data-theme="light"] textarea[style],:root[data-theme="light"] pre[style]{
  background:#ffffff !important;border-color:var(--line) !important;color:var(--txt) !important}
:root[data-theme="light"] nav .brand,:root[data-theme="light"] nav button{color:var(--ink)}
:root[data-theme="light"] nav button.on{background:#e2ecf6}
:root[data-theme="light"] .ring svg circle:first-child{stroke:#dbe3ee}

/* the SOC dashboard (body.noc) has its own palette; remap it the same way */
:root[data-theme="light"] body.noc{
  --n-bg:#f4f7fb; --n-bg2:#eef2f7; --n-card:#ffffff; --n-card2:#f7f9fc;
  --n-line:#dbe3ee; --n-line2:#c3cfdd; --n-txt:#0d1a2b; --n-mut:#4a5d75;
  --n-cyan:#0e9fb8; --n-violet:#6d4fd6; --n-grn:#15803d;
  background:radial-gradient(900px 520px at 6% -10%,rgba(14,159,184,.10),transparent 60%),
             radial-gradient(900px 520px at 96% -10%,rgba(109,79,214,.08),transparent 60%),
             linear-gradient(180deg,#eef3f9,#f4f7fb) fixed;color:var(--n-txt)}
:root[data-theme="light"] body.noc::before{background:linear-gradient(rgba(20,60,100,.06) 1px,transparent 1px) 0 0/100% 36px,
  linear-gradient(90deg,rgba(20,60,100,.06) 1px,transparent 1px) 0 0/36px 100%}
:root[data-theme="light"] .noc .topbar{background:rgba(244,247,251,.9);box-shadow:0 8px 40px rgba(13,26,43,.08)}
:root[data-theme="light"] .noc .panel-h h2,:root[data-theme="light"] .noc .bar-n,:root[data-theme="light"] .oc-state{color:var(--n-txt)}
:root[data-theme="light"] .noc .fi-ip,:root[data-theme="light"] .noc .topip .ip{color:#0b7f93}
:root[data-theme="light"] .noc .block-item .ip{color:#b0123a}
:root[data-theme="light"] .noc .badge-block{background:rgba(21,128,61,.1);color:#15803d}
:root[data-theme="light"] .noc nav a.active{background:linear-gradient(180deg,rgba(14,159,184,.18),rgba(14,159,184,.05))}
:root[data-theme="light"] .ops-ctl{background:#ffffff;border-color:var(--n-line)}
:root[data-theme="light"] .ops-ctl:hover{border-color:var(--n-line2)}
:root[data-theme="light"] .oc-toast,:root[data-theme="light"] .rt-drawer{background:#ffffff;color:var(--n-txt);border-color:var(--n-line)}
:root[data-theme="light"] .noc .kpi{background:linear-gradient(180deg,#ffffff,#f3f6fa)}
:root[data-theme="light"] .noc .feed-item:hover,:root[data-theme="light"] .noc .sim-row button:hover{background:rgba(14,159,184,.08)}
:root[data-theme="light"] .noc ::-webkit-scrollbar-thumb{background:rgba(14,159,184,.35)}
:root[data-theme="light"] .hero{background:linear-gradient(110deg,#ffffff,#eef3f9);border-color:var(--n-line2)}
:root[data-theme="light"] .hero::after{background:radial-gradient(600px 200px at 88% 120%,rgba(14,159,184,.12),transparent 70%)}
:root[data-theme="light"] .hs-title,:root[data-theme="light"] .hm b,:root[data-theme="light"] .noc .kpi-num{color:var(--n-txt)}
:root[data-theme="light"] .hm .lvl.low{background:rgba(21,128,61,.12)}
