/**
 * SurveyTrace — main UI styles (loaded by public/index.php)
 * Color system: semantic tokens (--text, --card, --primary, …) + legacy aliases (--tx, --bg2, --bd, …).
 */
*{box-sizing:border-box;margin:0;padding:0}
:root{
  /* —— Semantic tokens (dark default) —— */
  --text:#e5e7eb;
  --text-muted:#9ca3af;
  --text-faint:#94a3b8;
  --bg:#0f172a;
  --card:#1e293b;
  --surface:#243348;
  --surface-muted:#1a2436;
  --border:#334155;
  --border-strong:#475569;
  --section-bg:#172033;
  --section-border:#334155;
  --host-modal-body-bg:var(--bg);
  --host-ai-section-bg:#161d2f;
  --primary:#3b82f6;
  --primary-hover:#60a5fa;
  --primary-fg:#ffffff;
  --success:#34d399;
  --warning:#fbbf24;
  --danger:#f87171;
  --tbl-row-hover:rgba(255,255,255,0.05);
  --modal-backdrop:rgba(0,0,0,.5);
  --card-shadow-dark:0 4px 28px rgba(0,0,0,0.38);
  /* Table chrome: wrap matches card; header band uses elevated slate */
  --tbl-wrap-bg:var(--card);
  --tbl-header-bg:var(--bg3);
  /* Inline / JS UI strips (index.php): resolves to theme --bg3 */
  --panel2:var(--bg3);

  /* Legacy aliases (existing rules keep using these) */
  --tx:var(--text);
  --tx2:var(--text-muted);
  --tx3:var(--text-faint);
  --bg2:var(--card);
  --bg3:#273549;
  --bg4:#334155;
  --bd:var(--border);
  --bd2:var(--border-strong);
  --acc:var(--primary);
  --acc2:var(--primary-hover);
  --adim2:rgba(59,130,246,0.16);
  --green:var(--success);
  --gdim:rgba(52,211,153,0.12);
  --gbrd:rgba(52,211,153,0.35);
  --amber:var(--warning);
  --adim:rgba(251,191,36,0.12);
  --abrd:rgba(251,191,36,0.35);
  --red:var(--danger);
  --rdim:rgba(248,113,113,0.12);
  --rbrd:rgba(248,113,113,0.4);
  --blue:#60a5fa;
  --bdim2:rgba(59,130,246,0.12);
  --bbrd:rgba(96,165,250,0.35);
  --orange:#fb923c;
  --odim:rgba(251,146,60,0.12);
  --mf:'IBM Plex Mono',ui-monospace,monospace;--sf:'Lato',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --radius:6px;--radius-lg:8px;
  /* App shell / bands (marketing-inspired; theme-safe) */
  --app-radius-md:12px;
  --app-radius-lg:16px;
  --app-radius-shell:20px;
  --app-shell-bg:color-mix(in srgb,var(--surface) 90%,var(--bg));
  --app-shell-border:color-mix(in srgb,var(--border) 62%,transparent);
  --app-shell-shadow:0 28px 72px rgba(0,0,0,.38);
  --app-surface-veil:linear-gradient(165deg,color-mix(in srgb,var(--card) 100%,#fff 3.5%) 0%,var(--card) 55%,color-mix(in srgb,var(--card) 92%,var(--bg)) 100%);
  --app-band-veil:linear-gradient(165deg,color-mix(in srgb,var(--section-bg) 100%,#fff 3%) 0%,var(--section-bg) 45%,color-mix(in srgb,var(--section-bg) 90%,var(--bg)) 100%);
}
body.light-mode{
  /* Balance pass: between first-pass glare and second-pass gray — cleaner lift, grounded shell/tables */
  --text:#1e293b;
  --text-muted:#465a6e;
  --text-faint:#56687a;
  --bg:#cdd6e3;
  --card:#d6dfe9;
  --surface:#dee6f0;
  --surface-muted:#c8d2e2;
  --border:#98a5b5;
  --border-strong:#8593a5;
  --section-bg:#ced8e6;
  --section-border:color-mix(in srgb,var(--border) 87%,var(--bg));
  --host-modal-body-bg:color-mix(in srgb,var(--bg) 48%,var(--card));
  --host-ai-section-bg:color-mix(in srgb,var(--section-bg) 76%,var(--card));
  --primary:#2563eb;
  --primary-hover:#1d4ed8;
  --primary-fg:#f8fafc;
  --success:#059669;
  --warning:#d97706;
  --danger:#dc2626;
  --tbl-row-hover:rgba(15,23,42,0.05);
  --tbl-wrap-bg:color-mix(in srgb,var(--card) 58%,var(--bg));
  --tbl-header-bg:color-mix(in srgb,var(--bg3) 84%,var(--border));
  --modal-backdrop:rgba(15,23,42,0.44);
  --card-shadow-light:0 1px 2px rgba(15,23,42,.068),0 2px 10px rgba(15,23,42,.04);
  --panel2:#b8c4d4;

  --tx:var(--text);
  --tx2:var(--text-muted);
  --tx3:var(--text-faint);
  --bg2:var(--card);
  --bg3:#b4c0d1;
  --bg4:#a8b4c6;
  --bd:var(--border);
  --bd2:var(--border-strong);
  --acc:var(--primary);
  --acc2:var(--primary-hover);
  --adim2:rgba(37,99,235,0.11);
  --green:var(--success);
  --gdim:#cee8d8;
  --gbrd:#92cfb0;
  --amber:var(--warning);
  --adim:#e8e2d2;
  --abrd:#e0cf7e;
  --red:var(--danger);
  --rdim:#edd8d8;
  --rbrd:#e2bcbc;
  --blue:#1d4ed8;
  --bdim2:#d2deee;
  --bbrd:#9ebeea;
  --orange:#c2410c;
  --odim:#e8e2d8;
  /* Shell stays the darker frame; main surfaces read a touch cleaner than second pass */
  --app-shell-bg:color-mix(in srgb,var(--card) 30%,var(--bg));
  --app-shell-border:color-mix(in srgb,var(--border-strong) 56%,var(--bg));
  --app-shell-shadow:0 13px 40px rgba(15,23,42,.11);
  /* Veils: modest lift toward surface, still anchored to bg at bottom */
  --app-surface-veil:linear-gradient(165deg,color-mix(in srgb,var(--card) 100%,var(--surface) 8%) 0%,color-mix(in srgb,var(--card) 87%,var(--bg)) 100%);
  --app-band-veil:linear-gradient(165deg,color-mix(in srgb,var(--section-bg) 100%,var(--card) 11%) 0%,color-mix(in srgb,var(--section-bg) 85%,var(--bg)) 100%);
  background:
    radial-gradient(ellipse 100% 55% at 50% -30%,color-mix(in srgb,var(--primary) 5.5%,transparent),transparent 48%),
    var(--bg);
}
/* Light: dense tables — softer row dividers, grounded header band */
body.light-mode .tbl td{
  border-bottom-color:color-mix(in srgb,var(--border) 68%,transparent);
}
body.light-mode .tbl th{
  border-bottom-color:color-mix(in srgb,var(--border) 84%,transparent);
  box-shadow:inset 0 -1px 0 color-mix(in srgb,var(--text) 5.5%,transparent);
}
body.light-mode .tbl tbody td{
  background-color:color-mix(in srgb,var(--tbl-wrap-bg) 97.5%,var(--bg));
}
/* Light: device rail — match modal grounding (host centered modal: co-located rules below) */
body.light-mode .host-panel{
  background:var(--card);
  border-left-color:color-mix(in srgb,var(--border-strong) 50%,var(--border));
  box-shadow:-12px 0 40px rgba(15,23,42,.12);
}
body.light-mode .host-panel-head{
  background:color-mix(in srgb,var(--card) 90%,var(--surface-muted));
  border-bottom-color:color-mix(in srgb,var(--border) 78%,transparent);
  box-shadow:0 1px 0 color-mix(in srgb,var(--text) 4%,transparent);
}
/* Light: toggles — remove pure-white thumb highlight */
body.light-mode .tth{
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 100%,var(--border) 8%) 0%,color-mix(in srgb,var(--surface-muted) 100%,var(--border) 12%) 100%);
  box-shadow:0 1px 2px rgba(15,23,42,.14),0 0 0 1px color-mix(in srgb,var(--border) 55%,transparent);
}
body.light-mode .trk{
  background:linear-gradient(180deg,color-mix(in srgb,var(--bg4) 100%,var(--border) 6%) 0%,color-mix(in srgb,var(--surface-muted) 100%,var(--card) 4%) 100%);
  border-color:color-mix(in srgb,var(--border-strong) 35%,var(--border));
  box-shadow:inset 0 1px 2px rgba(15,23,42,.06);
}
/* Light: form controls, chips, pagination — stay ≤ surface, never #fff */
body.light-mode .finp,
body.light-mode .finput,
body.light-mode textarea.finput{
  background:var(--surface-muted);
  border-color:color-mix(in srgb,var(--border-strong) 32%,var(--border));
  box-shadow:inset 0 1px 3px rgba(15,23,42,.072);
}
body.light-mode .tbtn{
  background:var(--surface-muted);
  border-color:color-mix(in srgb,var(--border-strong) 26%,var(--border));
  color:var(--text);
  box-shadow:inset 0 1px 0 color-mix(in srgb,var(--surface) 42%,var(--bg4) 22%),inset 0 -1px 0 color-mix(in srgb,var(--bg) 55%,transparent);
}
body.light-mode .tbtn:hover{background:var(--bg3);border-color:var(--primary);color:var(--text)}
body.light-mode .tbtn:disabled,
body.light-mode .tbtn:disabled:hover{background:var(--surface-muted);border-color:var(--border);color:var(--text-muted)}
body.light-mode .pgn button{background:var(--surface-muted);border-color:var(--border);color:var(--text-muted)}
body.light-mode .pgn button:hover:not(:disabled){background:var(--bg3);border-color:var(--primary);color:var(--primary)}
body.light-mode .profile-card{background:var(--surface-muted)}
body.light-mode .help-box{background:var(--surface-muted)}
body.light-mode .status-chip{background:var(--surface-muted)}
body.light-mode .hp-chip{background:var(--surface-muted)}
body.light-mode .pt{background:var(--surface-muted)}
body.light-mode .zb-enrich-match-box{background:var(--surface-muted)}
body.light-mode .exec-selected-chip,
body.light-mode .exec-fixed-tip,
body.light-mode .exec-delta-chip{background:var(--surface-muted)}
body.light-mode .conf-chip{background:var(--surface-muted)}
body{
  color:var(--tx);
  font-family:var(--sf);
  font-size:15px;
  font-weight:400;
  line-height:1.55;
  letter-spacing:.01em;
  -webkit-font-smoothing:antialiased;
  overflow:hidden;
  height:100vh;
  padding:10px;
  box-sizing:border-box;
  background:var(--bg);
}
body:not(.light-mode){
  background:
    radial-gradient(ellipse 95% 70% at 50% -32%,color-mix(in srgb,var(--primary) 13%,transparent),transparent 52%),
    radial-gradient(ellipse 55% 40% at 92% 18%,color-mix(in srgb,var(--success) 7%,transparent),transparent 42%),
    var(--bg);
}
.shell{
  display:grid;
  grid-template-columns:204px 1fr;
  grid-template-rows:48px 1fr;
  width:100%;
  max-width:1920px;
  margin:0 auto;
  height:calc(100vh - 20px);
  max-height:calc(100vh - 20px);
  min-height:0;
  border-radius:var(--app-radius-shell);
  border:1px solid var(--app-shell-border);
  background:var(--app-shell-bg);
  box-shadow:var(--app-shell-shadow);
  overflow:hidden;
}

/* Top bar */
.bar{
  grid-column:1/-1;display:flex;align-items:center;gap:10px;padding:0 18px;
  background:color-mix(in srgb,var(--card) 72%,var(--surface));
  border-bottom:1px solid color-mix(in srgb,var(--bd) 88%,transparent);
  z-index:10;
  backdrop-filter:saturate(1.1);
}
body.light-mode .bar{
  background:color-mix(in srgb,var(--card) 78%,var(--surface-muted));
  border-bottom-color:color-mix(in srgb,var(--bd) 82%,transparent);
}
.logo{font-family:var(--sf);font-size:16px;font-weight:600;color:var(--tx);letter-spacing:.02em;display:flex;align-items:center;gap:10px}
.logo-btn{
  appearance:none;
  border:0;
  background:transparent;
  padding:0;
  margin:0;
  cursor:pointer;
  text-align:left;
}
.logo-btn:focus-visible{
  outline:2px solid var(--primary);
  outline-offset:3px;
  border-radius:8px;
}
.logo-mark{
  width:28px;height:28px;border-radius:11px;border:1px solid color-mix(in srgb,var(--primary) 35%,var(--border));
  background:linear-gradient(145deg,color-mix(in srgb,var(--primary) 92%,#0f172a),var(--primary-hover));
  color:var(--primary-fg);display:inline-flex;align-items:center;justify-content:center;position:relative;
  box-shadow:0 6px 18px color-mix(in srgb,var(--primary) 28%,transparent)
}
.logo-mark-text{
  font-size:10px;font-weight:800;letter-spacing:.04em;line-height:1;text-transform:uppercase;
  color:var(--primary-fg)
}
body.light-mode .logo-mark{
  border-color:color-mix(in srgb,var(--primary) 28%,var(--border));
  box-shadow:0 4px 14px color-mix(in srgb,var(--primary) 18%,transparent);
}
.logo-mark-dot{
  width:6px;height:6px;background:var(--success);border-radius:50%;
  position:absolute;right:-2px;top:-2px;box-shadow:0 0 0 2px var(--card)
}
.logo-word{color:var(--tx);font-weight:600}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.25}}
.logo-mark-dot.active{animation:blink 1.2s ease-in-out infinite}
.bar-meta{font-family:var(--sf);font-size:12px;font-weight:600;color:var(--tx3);letter-spacing:.04em}
.sep{flex:1}
.pill{font-family:var(--sf);font-size:11px;font-weight:600;padding:5px 11px;border-radius:999px;border:1px solid var(--gbrd);background:var(--gdim);color:var(--green);display:flex;align-items:center;gap:6px;letter-spacing:.03em}
.pill.run{border-color:var(--abrd);background:var(--adim);color:var(--amber)}
.pill.err{border-color:var(--rbrd);background:var(--rdim);color:var(--red)}
.pdot{width:5px;height:5px;border-radius:50%;background:currentColor}
.pill.run .pdot{animation:blink .9s ease-in-out infinite}
button.pill{margin:0;font:inherit;color:inherit;text-align:left;cursor:default;-webkit-appearance:none;appearance:none}
button.pill:disabled{opacity:1;cursor:default}
button.pill.pill--to-scan-hist:not(:disabled){cursor:pointer}
button.pill.pill--to-scan-hist:not(:disabled):hover{background:rgba(0,0,0,.06)}
body.light-mode button.pill.pill--to-scan-hist:not(:disabled):hover{background:rgba(15,23,42,.05)}
button.pill.pill--to-scan-hist:not(:disabled):focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.bar-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}
.bar-account-wrap{position:relative}
.bar-account-btn{white-space:nowrap}
.bar-account-chevron{display:inline-block;margin-left:3px;opacity:.75;font-size:10px;line-height:1;vertical-align:1px}
.bar-account-menu{
  position:absolute;right:0;top:calc(100% + 6px);min-width:240px;padding:6px 0;
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);
  box-shadow:0 12px 36px rgba(0,0,0,.35);z-index:40
}
body.light-mode .bar-account-menu{box-shadow:0 10px 28px rgba(15,23,42,.12)}
.bar-account-group{padding:2px 0 4px}
.bar-account-group-label{
  padding:6px 14px 4px;font-size:11px;font-weight:700;color:var(--text-muted);
  letter-spacing:.06em;text-transform:uppercase;font-family:var(--sf)
}
.bar-account-hr{height:1px;background:var(--border);margin:4px 0;border:0;padding:0}
.bar-account-item{
  display:block;width:100%;text-align:left;border:none;background:transparent;
  font-family:var(--sf);font-size:13px;font-weight:500;color:var(--text);
  padding:9px 14px;cursor:pointer;transition:background .12s,color .12s
}
.bar-account-item:hover,.bar-account-item:focus-visible{background:var(--surface-muted);outline:none}
.bar-account-item--radio[aria-checked="true"]{background:var(--surface);color:var(--primary);font-weight:700}
.bar-account-item--danger{color:var(--red)}
.bar-account-item--danger:hover,.bar-account-item--danger:focus-visible{background:var(--rdim)}
.tbtn{font-family:var(--sf);font-size:13px;font-weight:600;padding:8px 14px;border-radius:var(--radius);border:1px solid var(--border);background:transparent;color:var(--text);cursor:pointer;transition:background .12s,border-color .12s,color .12s}
.tbtn:hover{border-color:var(--primary);color:var(--text);background:var(--bg3)}
.tbtn:disabled{opacity:.45;cursor:not-allowed}
.tbtn:disabled:hover{border-color:var(--border);color:var(--text-muted);background:transparent}

/* Sidebar */
.side{
  background:color-mix(in srgb,var(--surface-muted) 94%,var(--bg));
  border-right:1px solid color-mix(in srgb,var(--bd) 85%,transparent);
  padding:12px 0 14px;
  overflow-y:auto;
  display:flex;
  flex-direction:column;
  gap:2px;
  min-height:0;
}
body.light-mode .side{
  background:color-mix(in srgb,var(--surface-muted) 94%,var(--bg));
}
.ns{font-family:var(--sf);font-size:11px;font-weight:600;color:var(--tx3);padding:10px 18px 5px;letter-spacing:.1em;text-transform:uppercase}
.nav-grp{margin-bottom:2px}
.nav-grp-hd{
  display:flex;align-items:center;justify-content:space-between;width:100%;gap:8px;
  padding:6px 14px 6px 16px;margin:0;border:none;background:transparent;cursor:pointer;
  font-family:var(--sf);font-size:10px;font-weight:700;color:var(--text-muted);
  letter-spacing:.08em;text-transform:uppercase;text-align:left;
  transition:background .12s,color .12s;border-radius:var(--radius)
}
.nav-grp-hd:hover{background:var(--bg3);color:var(--text)}
.nav-grp-hd:focus-visible{outline:2px solid var(--primary);outline-offset:-1px}
.nav-grp-hd-label{flex:1;min-width:0}
.nav-grp-hd-chev{
  flex-shrink:0;width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:rotate(45deg);margin-top:-3px;opacity:.72;transition:transform .15s ease,opacity .12s
}
.nav-grp--collapsed .nav-grp-hd-chev{transform:rotate(-45deg);margin-top:0}
.nav-grp--collapsed .nav-grp-body{display:none}
.nav-grp-body{padding-top:1px}
.nav-grp-body .ni{padding:8px 14px;font-size:13px;font-weight:500;gap:9px}
.ni{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;border-left:3px solid transparent;color:var(--tx2);font-size:14px;font-weight:500;transition:background .12s,color .12s,border-color .12s;user-select:none}
.ni:hover{background:var(--bg3);color:var(--tx)}
.ni.on{background:var(--adim2);color:var(--tx);border-left-color:var(--acc)}
body.light-mode .ni.on{background:var(--adim2)}
.st-nav-quick-tip{
  position:absolute;
  z-index:130;
  max-width:220px;
  padding:6px 9px;
  border-radius:8px;
  border:1px solid var(--border);
  background:var(--card);
  color:var(--text);
  font-size:12px;
  font-family:var(--sf);
  line-height:1.25;
  box-shadow:0 4px 14px rgba(0,0,0,0.25);
  pointer-events:none;
  opacity:0;
  transform:translateY(-50%) translateX(4px);
  transition:opacity .08s ease, transform .08s ease;
}
.st-nav-quick-tip.on{
  opacity:1;
  transform:translateY(-50%) translateX(0);
}
.nb{margin-left:auto;font-family:var(--mf);font-size:11px;font-weight:500;padding:2px 7px;background:var(--rdim);color:var(--red);border-radius:999px;min-width:20px;text-align:center}
.nb.warn{background:var(--adim);color:var(--amber)}
.nb.err{background:var(--rdim);color:var(--red)}
.nb.warn{background:var(--adim);color:var(--amber)}

/* Main */
.main{
  overflow-y:auto;
  overflow-x:hidden;
  background:var(--bg);
  min-height:0;
}
/* Tab visibility guardrail:
 * - Keep .tab { display:none } by default so inactive panels stay hidden.
 * - Put tab-root flex/grid on #t-name.on only (e.g. #t-dash.on { display:flex }).
 * - Never #t-name { display:flex|grid|block } without .on — ID specificity beats .tab and shows every tab. */
.tab{display:none;padding:22px 26px 28px}
.tab.on{display:block}

/* Stat cards */
.sgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
.sc{
  background:var(--app-surface-veil);
  border:1px solid color-mix(in srgb,var(--border) 92%,transparent);
  border-radius:var(--app-radius-md);
  padding:16px 18px;
  cursor:default;
  box-shadow:none;
}
body.light-mode .sc{
  background:var(--app-surface-veil);
  border-color:var(--border);
}
body:not(.light-mode) .sc{box-shadow:var(--card-shadow-dark)}
body.light-mode .sc{box-shadow:var(--card-shadow-light)}
.sl{font-family:var(--sf);font-size:11px;color:var(--tx3);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;font-weight:700}
.sv{font-family:var(--mf);font-size:26px;font-weight:500;line-height:1;font-variant-numeric:tabular-nums}
.ss{font-size:13px;color:var(--tx2);margin-top:4px;font-weight:400}
.sc.r .sv{color:var(--red)}.sc.a .sv{color:var(--amber)}.sc.g .sv{color:var(--acc)}

/* Section headers */
.sth{font-family:var(--sf);font-size:11px;color:var(--tx3);letter-spacing:.1em;text-transform:uppercase;margin-bottom:10px;display:flex;align-items:center;gap:10px;font-weight:700}
.sth::after{content:'';flex:1;height:1px;background:var(--bd)}
.sth-btn{font-family:var(--sf);font-size:11px;color:var(--tx3);background:none;border:1px solid var(--bd);border-radius:4px;padding:3px 8px;cursor:pointer}
.sth-btn:hover{border-color:var(--acc);color:var(--acc)}

/* Activity feed */
.feed{
  background:var(--app-surface-veil);
  border:1px solid color-mix(in srgb,var(--border) 92%,transparent);
  border-radius:var(--app-radius-lg);
  font-family:var(--mf);
  font-size:13px;
  max-height:220px;
  overflow-y:auto;
  margin-bottom:16px;
  box-shadow:none;
}
body.light-mode .feed{border-color:var(--border)}
body:not(.light-mode) .feed{box-shadow:var(--card-shadow-dark)}
body.light-mode .feed{box-shadow:var(--card-shadow-light)}
.fr{display:flex;gap:10px;padding:5px 10px;border-bottom:1px solid var(--border);align-items:flex-start}
.fr:last-child{border-bottom:none}
.ft{color:var(--tx3);flex-shrink:0;min-width:68px;font-size:12px}
.ftg{padding:1px 5px;border-radius:2px;flex-shrink:0;font-size:11px}
.ftg.nw{background:var(--gdim);color:var(--green)}
.ftg.vl{background:var(--rdim);color:var(--red)}
.ftg.ch{background:var(--adim);color:var(--amber)}
.ftg.sc{background:var(--bdim2);color:var(--blue)}
.ftg.er{background:var(--rdim);color:var(--red)}
.fm{color:var(--tx2);word-break:break-all}.fm b{color:var(--tx);font-weight:400}
.empty-feed{padding:12px;color:var(--tx3);text-align:center;font-family:var(--mf);font-size:12px}

/* Tables */
.tbl-wrap{
  background:var(--tbl-wrap-bg);
  border:1px solid color-mix(in srgb,var(--border) 92%,transparent);
  border-radius:var(--app-radius-lg);
  overflow:auto;
  box-shadow:none;
}
body.light-mode .tbl-wrap{border-color:var(--border)}
body:not(.light-mode) .tbl-wrap{box-shadow:var(--card-shadow-dark)}
body.light-mode .tbl-wrap{box-shadow:var(--card-shadow-light)}
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{font-family:var(--sf);font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;padding:12px 12px;text-align:left;border-bottom:1px solid var(--border);background:var(--tbl-header-bg);font-weight:700;white-space:nowrap;cursor:pointer;user-select:none}
.tbl th:hover{color:var(--text)}
.tbl td{padding:11px 12px;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle}
.tbl tr:last-child td{border-bottom:none}
.tbl tr:hover td{background:var(--tbl-row-hover)}
.tbl tr.selected td{background:var(--bg4)}

/* --------------------------------------------------------------------------
   Data-heavy tables — shared utilities (extends .tbl / .tbl-wrap; non-breaking)
   -------------------------------------------------------------------------- */
.tbl-wrap.tbl-wrap--data .tbl,
.tbl.tbl--data{
  font-size:13px;
}
.tbl-wrap.tbl-wrap--data .tbl th,
.tbl.tbl--data > thead > tr > th{
  font-family:var(--sf);
  font-size:11px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--text-muted);
  border-bottom:1px solid var(--border);
  background:var(--tbl-header-bg);
}
.tbl th.tbl-th-no-sort{
  cursor:default;
  user-select:none;
}
.tbl th.tbl-th-no-sort:hover{
  color:var(--text-muted);
}
.tbl th.tbl-th-action,
.tbl td.tbl-cell-actions{
  text-align:right;
  white-space:nowrap;
}
.tbl td.tbl-cell-actions .tbtn{
  vertical-align:middle;
}
.tbl td.tbl-cell-primary,
.tbl .tbl-cell-primary{
  font-weight:600;
  color:var(--text);
}
.tbl td.tbl-cell-muted,
.tbl .tbl-cell-muted{
  font-size:12px;
  font-weight:400;
  color:var(--text-faint);
}
.tbl td.tbl-cell-mono,
.tbl .tbl-cell-mono{
  font-family:var(--mf);
  font-variant-numeric:tabular-nums;
}
.tbl td.loading.tbl-empty,
.tbl td.tbl-empty{
  color:var(--text-muted);
  font-family:var(--sf);
  font-size:13px;
  line-height:1.5;
  padding:22px 16px !important;
  text-align:center;
  vertical-align:middle;
  cursor:default;
}
.tbl td.loading.tbl-empty strong,
.tbl td.tbl-empty strong{
  color:var(--text);
  font-weight:600;
}
.tbl-empty-inline{
  margin:0;
  padding:10px 0;
  color:var(--text-muted);
  font-size:13px;
  text-align:center;
}
.tbtn.tbtn--danger-quiet{
  color:var(--text-muted);
  border-color:transparent;
}
.tbtn.tbtn--danger-quiet:hover{
  color:var(--danger);
  border-color:color-mix(in srgb,var(--danger) 35%,transparent);
}
body.light-mode .tbtn.tbtn--danger-quiet:hover{
  color:var(--danger);
}

/* Scopes tab — description readable but capped width; full text via native tooltip */
.st-scope-desc-cell{max-width:16rem;min-width:7rem;vertical-align:middle}
.st-scope-desc-truncate{display:block;max-width:16rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:var(--text);line-height:1.4}
.mono{font-family:var(--mf);color:var(--tx)}

/* CVSS / severity chips — UI sans + tabular nums (light & dark) for clear digits; mode-specific colors below. */
.sev{
  font-family:var(--sf);
  font-size:14px;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  line-height:1.25;
  padding:4px 9px;
  border-radius:4px;
  white-space:nowrap;
  letter-spacing:.04em;
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 1px 0 rgba(0,0,0,.12);
}
.sev.critical{background:var(--rdim);color:#f0c4c6;border-color:rgba(223,111,114,.28)}
.sev.high{background:var(--odim);color:#f0d4b8;border-color:rgba(199,134,74,.28)}
.sev.medium{background:var(--adim);color:#ead9a8;border-color:rgba(217,162,78,.25)}
.sev.low{background:var(--bdim2);color:#c8dcf5;border-color:rgba(94,176,255,.22)}
.sev.none{background:var(--bg4);color:var(--tx2);border-color:rgba(255,255,255,.06);box-shadow:none}
body:not(.light-mode) .sev.critical{color:#ffe8ea;border-color:rgba(252,165,165,.4)}
body:not(.light-mode) .sev.high{color:#fff1e0;border-color:rgba(253,186,116,.38)}
body:not(.light-mode) .sev.medium{color:#fffbeb;border-color:rgba(253,224,71,.28)}
body:not(.light-mode) .sev.low{color:#e8f6ff;border-color:rgba(125,211,252,.35)}
body:not(.light-mode) .sev.none{color:var(--tx);border-color:rgba(255,255,255,.1)}
body.light-mode .sev{
  border-color:rgba(0,0,0,.1);
  box-shadow:0 1px 0 rgba(0,0,0,.06);
}
body.light-mode .sev.critical{background:var(--rdim);color:#7f1d1d;border-color:rgba(183,71,78,.35)}
body.light-mode .sev.high{background:var(--odim);color:#8a4a12;border-color:rgba(176,106,46,.35)}
body.light-mode .sev.medium{background:var(--adim);color:#6b5210;border-color:rgba(163,111,36,.35)}
body.light-mode .sev.low{background:var(--bdim2);color:#1e4d7a;border-color:rgba(47,95,167,.3)}
body.light-mode .sev.none{color:var(--tx2);border-color:rgba(0,0,0,.08);box-shadow:none}
.profile-card{display:flex;align-items:center;gap:10px;padding:11px 12px;border:1px solid var(--bd);border-radius:var(--app-radius-md);cursor:pointer;transition:border-color .15s, background .15s}
.profile-card:hover{border-color:var(--acc)}
.profile-card.on{border-color:var(--acc);background:var(--adim2)}
.pc-icon{font-size:18px;flex-shrink:0}
.pc-name{font-size:13px;color:var(--tx);font-weight:500}
.pc-desc{font-size:12px;color:var(--tx2);font-family:var(--sf);margin-top:2px}
.pc-badge{font-size:11px;font-family:var(--mf);padding:2px 6px;border-radius:2px;margin-left:auto;flex-shrink:0;white-space:nowrap}
.pc-badge.safe{background:var(--gdim);color:var(--green)}
.pc-badge.warn{background:var(--adim);color:var(--amber)}

/* Category badges */
.cat{font-family:var(--mf);font-size:12px;padding:2px 7px;border-radius:2px}
.cat.srv{background:#1a1040;color:#a78bfa}
.cat.iot{background:var(--gdim);color:var(--green)}
.cat.ot{background:var(--adim);color:var(--amber)}
.cat.net{background:var(--bdim2);color:var(--blue)}
.cat.ws{background:#1a1a0d;color:#d4d48a}
.cat.voi{background:#2a0d2a;color:#d48ad4}
.cat.prn{background:#0d2a2a;color:#8ad4d4}
.cat.hv{background:#0d1a2a;color:#6ab0e8}
.cat.unk{background:var(--bg4);color:var(--tx3)}
body.light-mode .cat.srv{background:#ece8fb;color:#4f3c97}
body.light-mode .cat.iot{background:#e8f5ef;color:#2d7a52}
body.light-mode .cat.ot{background:#faf2e3;color:#8a5e1f}
body.light-mode .cat.net{background:#e8effa;color:#2f5fa7}
body.light-mode .cat.ws{background:#f4f2e8;color:#726726}
body.light-mode .cat.voi{background:#f5e9f6;color:#8e4b8e}
body.light-mode .cat.prn{background:#e8f4f4;color:#2c7272}
body.light-mode .cat.hv{background:#eaf0fa;color:#3e669a}
body.light-mode .cat.unk{background:#edf1f6;color:#607286}

/* Asset lifecycle */
.life-badge{font-family:var(--mf);font-size:10px;font-weight:600;text-transform:uppercase;padding:2px 6px;border-radius:3px;letter-spacing:.04em;white-space:nowrap}
.life-active{background:#0d2818;color:#86efac}
.life-stale{background:#3a2f0a;color:#fde047}
.life-retired{background:#3a1218;color:#fca5a5}
body.light-mode .life-active{background:#dcfce7;color:#14532d}
body.light-mode .life-stale{background:#fef9c3;color:#713f12}
body.light-mode .life-retired{background:#fee2e2;color:#7f1d1d}

/* Port tags */
.pts{display:flex;flex-wrap:wrap;gap:3px}
.pt{font-family:var(--mf);font-size:11px;padding:2px 7px;border:1px solid var(--bd2);border-radius:999px;color:var(--tx2)}

/* Filter bar */
.fbar{display:flex;gap:8px;margin-bottom:10px;align-items:center;flex-wrap:wrap}
/* Assets tab — unified filter summary (Pass 1) */
.af-filter-summary{line-height:1.45;color:var(--tx2)}
.af-filter-summary .af-sum-lbl{color:var(--tx3);font-weight:600;margin-right:6px}
.af-sum-seg{margin:0 1px;padding:2px 4px;border:none;background:none;color:var(--acc);font:inherit;font-size:inherit;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px;border-radius:4px}
.af-sum-seg:hover{color:var(--tx);background:var(--adim2)}
.af-sum-seg:disabled,.af-sum-seg.af-sum-seg--dim{color:var(--tx3);cursor:default;text-decoration:none;font-weight:500;background:transparent}
/* Assets tab — operational workspace (#t-assets); st-assets-* scoped */
#t-assets.on{
  display:flex;
  flex-direction:column;
  gap:12px;
}
#t-assets.on > .st-band{
  margin-bottom:0;
}
.st-assets-band-head{
  display:grid;
  grid-template-columns:minmax(88px,120px) 1fr;
  gap:12px 20px;
  align-items:start;
}
@media (max-width:720px){
  .st-assets-band-head{grid-template-columns:1fr}
}
.st-assets-kicker{
  font-family:var(--mf);
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--primary);
  padding-top:5px;
}
body.light-mode .st-assets-kicker{color:var(--primary)}
.st-assets-page-title{
  font-family:var(--sf);
  font-size:18px;
  font-weight:700;
  color:var(--text);
  margin:0 0 8px;
  line-height:1.25;
  letter-spacing:-.01em;
}
.st-assets-overview-lede{color:var(--text-muted)}
#t-assets.on .st-assets-device-banner{
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid color-mix(in srgb,var(--bd) 62%,transparent);
}
.st-assets-region-head{
  margin-bottom:12px;
  padding-bottom:10px;
  border-bottom:1px solid color-mix(in srgb,var(--bd) 72%,transparent);
}
.st-assets-inventory-head{margin-bottom:10px}
.st-assets-region-row{
  display:flex;
  gap:14px;
  align-items:stretch;
}
.st-assets-region-text{min-width:0;flex:1}
.st-assets-step-mark{
  flex-shrink:0;
  width:4px;
  border-radius:999px;
  min-height:2.5rem;
  align-self:stretch;
  margin-top:3px;
  background:var(--primary);
  opacity:.88;
}
.st-assets-step-mark--table{
  background:color-mix(in srgb,var(--text-muted) 38%,var(--bd));
  opacity:1;
}
.st-assets-region-title{
  font-family:var(--sf);
  font-size:15px;
  font-weight:700;
  color:var(--text);
  margin:0 0 4px;
  line-height:1.3;
  letter-spacing:.01em;
}
.st-assets-region-lede{max-width:52rem}
#t-assets.on .st-assets-filter-primary{
  padding:10px 12px;
  border-radius:var(--app-radius-md);
  border:1px solid color-mix(in srgb,var(--bd) 62%,transparent);
  background:color-mix(in srgb,var(--card) 38%,var(--section-bg));
}
#t-assets.on .st-assets-fbar{
  margin-bottom:0;
}
#t-assets.on .st-assets-advanced-filters{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid color-mix(in srgb,var(--bd) 55%,transparent);
}
#t-assets.on .st-assets-disclosures-toolbar{
  padding:2px 0;
}
#t-assets.on .st-assets-expandable-well{
  margin-top:0;
  padding:8px 10px;
  border:1px solid var(--border);
  border-radius:var(--app-radius-md);
  background:var(--panel2);
}
#t-assets.on .st-assets-scope-well{
  border-left:2px solid color-mix(in srgb,var(--primary) 30%,var(--bd));
  padding-left:12px;
}
#t-assets.on .st-assets-band--inventory{
  border-left:3px solid color-mix(in srgb,var(--primary) 20%,var(--bd));
  padding-left:17px;
}
#t-assets.on .st-assets-bulk-bar{
  margin-bottom:8px;
}
#t-assets.on .st-assets-bulk-well{
  padding:8px 12px;
  border:1px solid color-mix(in srgb,var(--acc) 32%,var(--bd));
  border-radius:var(--app-radius-md);
  background:color-mix(in srgb,var(--adim2) 40%,var(--section-bg));
}
#t-assets.on .st-assets-active-filters{
  margin-bottom:8px;
  padding:8px 10px;
  border-radius:var(--app-radius-md);
  border:1px dashed color-mix(in srgb,var(--bd) 52%,transparent);
  background:color-mix(in srgb,var(--section-bg) 70%,var(--card));
  min-height:1.2em;
}
#t-assets.on .st-assets-empty-hint{
  margin-bottom:10px!important;
  padding:8px 10px;
  border-radius:var(--app-radius-md);
  border:1px dashed color-mix(in srgb,var(--bd) 48%,transparent);
  background:color-mix(in srgb,var(--section-bg) 78%,var(--card));
  line-height:1.45;
}
#t-assets.on .st-assets-tbl-shell{
  border-color:color-mix(in srgb,var(--section-border) 85%,transparent);
}
#t-assets.on .st-assets-table-tip{color:var(--text-muted)}
#t-assets.on .st-assets-pgn{margin-top:8px}
.finp{
  min-height:36px;
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:8px 11px;
  color:var(--text);
  font-family:var(--sf);
  font-size:14px;
  line-height:1.3;
  outline:none;
  transition:border-color .12s, box-shadow .12s, background-color .12s;
}
.finp:focus{border-color:var(--primary);box-shadow:0 0 0 2px rgba(23,135,251,.22)}
body.light-mode .finp:focus{box-shadow:0 0 0 2px rgba(0,111,255,.18)}
.finp.wide{flex:1;min-width:160px}
.finp.narrow{width:120px}

/* Settings two-column layout (sole use of .scgrid): allow columns to shrink so wide tables scroll inside cards */
.scgrid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:12px;
  min-width:0;
}
.scgrid > *{
  min-width:0;
  max-width:100%;
}
@media (max-width:1100px){
  .scgrid{grid-template-columns:1fr}
}

/* Scan control tab — guided launch bands (#t-scan); st-scan-* scoped */
#t-scan.on{
  display:flex;
  flex-direction:column;
  gap:12px;
}
#t-scan.on > .st-band{margin-bottom:0}
.st-scan-band-head{
  display:grid;
  grid-template-columns:minmax(88px,120px) 1fr;
  gap:12px 20px;
  align-items:start;
}
@media (max-width:720px){
  .st-scan-band-head{grid-template-columns:1fr}
}
.st-scan-kicker{
  font-family:var(--mf);
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--primary);
  padding-top:5px;
}
body.light-mode .st-scan-kicker{color:var(--primary)}
.st-scan-page-title{
  font-family:var(--sf);
  font-size:18px;
  font-weight:700;
  color:var(--text);
  margin:0 0 8px;
  line-height:1.25;
  letter-spacing:-.01em;
}
.st-scan-block-title{
  font-family:var(--sf);
  font-size:15px;
  font-weight:700;
  color:var(--text);
  margin:0 0 6px;
  line-height:1.3;
  letter-spacing:.01em;
}
.st-scan-band-lede,.st-scan-overview-lede{margin-top:0}
.st-scan-split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px 24px;
  align-items:start;
}
@media (max-width:900px){
  .st-scan-split{grid-template-columns:1fr}
}
.st-scan-split-col{
  min-width:0;
  display:flex;
  flex-direction:column;
}
.st-scan-region{padding-top:0;margin-top:0}
.st-scan-region + .st-scan-region{
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid color-mix(in srgb,var(--bd) 55%,transparent);
}
.st-scan-region-h{
  font-family:var(--sf);
  font-size:11px;
  color:var(--tx3);
  text-transform:uppercase;
  letter-spacing:.1em;
  margin-bottom:12px;
  font-weight:700;
}
.st-scan-region--enrich .st-scan-region-h{margin-bottom:8px}
.st-scan-enrich-lede{
  margin-bottom:8px;
  font-size:13px;
  font-weight:400;
  color:var(--tx2);
  font-family:var(--mf);
  line-height:1.45;
}
.st-scan-auto-split{
  display:flex;
  align-items:flex-start;
  gap:8px;
  margin:8px 0 2px;
  color:var(--tx3);
}
.st-scan-launch-buttons{flex-wrap:wrap}
.st-scan-hist-cta{margin-top:10px}
.card{
  background:var(--app-surface-veil);
  border:1px solid color-mix(in srgb,var(--border) 92%,transparent);
  border-radius:var(--app-radius-lg);
  padding:16px 20px;
  margin-bottom:12px;
  box-shadow:none;
}
body.light-mode .card{
  border-color:var(--border);
}
body:not(.light-mode) .card{box-shadow:var(--card-shadow-dark)}
body.light-mode .card{box-shadow:var(--card-shadow-light)}
.card:last-child{margin-bottom:0}
/* Enrichment — Zabbix tools panel (UI Pass 2) */
.zb-enrich-tools-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px 14px;flex-wrap:wrap;margin-bottom:10px}
.zb-enrich-tools-head .ct{margin-bottom:0}
.zb-enrich-tools-head > div:first-child{flex:1;min-width:min(100%, 12rem)}
.zb-enrich-section{border-top:1px solid var(--bd);padding-top:14px;margin-top:14px}
.zb-enrich-section:first-child{border-top:none;padding-top:0;margin-top:0}
.zb-enrich-match-box{max-height:70vh;overflow:auto;border:1px solid var(--bd);border-radius:var(--radius-lg);padding:10px}
.zb-subhead{display:block;font-size:12px;font-weight:600;color:var(--tx2);margin:10px 0 6px;font-family:var(--sf)}
.zb-subhead:first-child{margin-top:0}
.zb-enrich-confirm-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.zb-enrich-scope-apply{margin-top:14px;padding-top:14px;border-top:1px solid var(--bd)}
.zb-manual-inp--aid{min-width:100px}
.zb-manual-inp--hid{min-width:140px}
.zb-manual-inp--meth{min-width:100px}
.zb-manual-inp--conf{min-width:90px}
.zb-manual-inp--unlink{min-width:160px}
.ct{font-family:var(--sf);font-size:11px;color:var(--tx3);text-transform:uppercase;letter-spacing:.1em;margin-bottom:14px;font-weight:700}
.flbl{display:block;font-size:13px;font-weight:600;color:var(--tx);margin-bottom:4px;font-family:var(--sf)}
.finput{
  width:100%;
  min-height:36px;
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:9px 11px;
  color:var(--text);
  font-family:var(--sf);
  font-size:14px;
  line-height:1.3;
  outline:none;
  margin-bottom:9px;
  transition:border-color .12s, box-shadow .12s, background-color .12s;
}
.finput:focus{border-color:var(--primary);box-shadow:0 0 0 2px rgba(23,135,251,.22)}
body.light-mode .finput:focus{box-shadow:0 0 0 2px rgba(0,111,255,.18)}
textarea.finput{resize:vertical;min-height:72px}
/* Scan exclusions: placeholder shows 4 example lines — default 72px clips the last */
textarea#sc-excl{min-height:132px}

/* Toggle switches (iOS-style track + thumb; real checkbox for a11y + form state) */
.tr2{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-bottom:1px solid var(--bd)}
.tr2:last-child{border-bottom:none}
.tl{font-size:14px;font-weight:600;color:var(--tx)}.tsubl{font-size:13px;font-weight:400;color:var(--tx2);font-family:var(--mf)}
/* Default: comfortable hit target for settings and forms */
.tog{
  position:relative;
  width:44px;
  height:24px;
  flex-shrink:0;
  display:inline-block;
  vertical-align:middle;
}
/* Dense rows (scan steps, enrichment lists): slightly smaller */
.tog--sm{width:36px;height:20px}
.tog input{
  opacity:0;
  width:0;
  height:0;
  position:absolute;
  margin:0;
}
.trk{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,var(--bg4) 0%,var(--surface-muted) 100%);
  border:1px solid var(--bd2);
  border-radius:12px;
  cursor:pointer;
  transition:background .18s,border-color .18s,box-shadow .18s;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.12);
}
.tog input:checked+.trk{
  background:linear-gradient(180deg,var(--primary) 0%,var(--primary-hover) 100%);
  border-color:var(--primary);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 0 0 1px rgba(0,0,0,.04);
}
.tog input:focus-visible+.trk{
  box-shadow:0 0 0 2px var(--bg),0 0 0 4px rgba(59,130,246,.45);
}
body.light-mode .tog input:focus-visible+.trk{
  box-shadow:0 0 0 2px var(--surface),0 0 0 4px rgba(37,99,235,.35);
}
.tog input:disabled+.trk{
  opacity:.45;
  cursor:not-allowed;
}
.tog input:disabled~.tth{opacity:.55}
.tth{
  position:absolute;
  top:3px;
  left:3px;
  width:18px;
  height:18px;
  background:linear-gradient(180deg,#f8fafc 0%,#e2e8f0 100%);
  border-radius:50%;
  transition:left .2s cubic-bezier(.4,0,.2,1),background .18s,box-shadow .18s;
  pointer-events:none;
  box-shadow:0 1px 3px rgba(0,0,0,.2),0 0 0 1px rgba(0,0,0,.06);
}
.tog input:checked~.tth{
  left:23px;
  background:var(--primary-fg);
  box-shadow:0 1px 4px rgba(0,0,0,.18);
}
.tog--sm .trk{border-radius:10px}
.tog--sm .tth{
  top:2px;
  left:2px;
  width:16px;
  height:16px;
}
.tog--sm input:checked~.tth{left:18px}
/* Label + switch row (settings, integrations, etc.) */
.switch-field{
  display:inline-flex;
  align-items:center;
  gap:10px;
  cursor:pointer;
  user-select:none;
  line-height:1.35;
}
.switch-field .tog{flex-shrink:0}
.switch-stack{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:12px;
}
.switch-stack .switch-field{align-items:flex-start}
.switch-stack .switch-field .tog{margin-top:2px}
/* Checkbox at end of .tr2 (scan phases, per-job enrichment include) — selection, not a saved settings switch */
.tr2-check{
  flex-shrink:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:32px;
  min-height:32px;
  margin:0;
  padding:0;
  cursor:pointer;
}
.tr2-check .chk-input{margin:0}
/* Scan steps / rescan / schedule phase rows: denser layout + slimmer switch than standalone .tog--sm */
.tr2:has(.tog.tr2-check){
  padding:4px 0;
}
.tr2:has(.tog.tr2-check) .tl{
  font-size:13px;
  line-height:1.25;
}
.tr2:has(.tog.tr2-check) .tsubl{
  font-size:12px;
  line-height:1.35;
  margin-top:1px;
}
.tr2-check.tog.tog--sm{
  min-width:0;
  min-height:0;
  width:32px;
  height:18px;
}
.tr2-check.tog.tog--sm .trk{border-radius:9px}
.tr2-check.tog.tog--sm .tth{
  top:2px;
  left:2px;
  width:14px;
  height:14px;
}
.tr2-check.tog.tog--sm input:checked~.tth{left:16px}

/* Range sliders */
.rr{margin-bottom:10px}
.rv{display:flex;justify-content:space-between;font-family:var(--mf);font-size:11px;color:var(--tx3);margin-bottom:2px}
.rng{width:100%;accent-color:var(--acc);cursor:pointer}

/* Buttons */
.btnp{background:var(--primary);color:var(--primary-fg);font-family:var(--sf);font-size:13px;font-weight:700;padding:10px 20px;border:none;border-radius:var(--radius);cursor:pointer;display:inline-flex;align-items:center;gap:6px;letter-spacing:.02em;transition:transform .05s, background .12s, color .12s}
.btnp:hover{background:var(--primary-hover);color:var(--primary-fg)}
.btnp:active{transform:translateY(1px)}
.btnp:disabled{opacity:.4;cursor:not-allowed}
.btnd{background:var(--rdim);color:var(--red);border:1px solid var(--rbrd);font-family:var(--sf);font-size:12px;font-weight:600;padding:8px 15px;border-radius:var(--radius);cursor:pointer;transition:all .12s}
.btnd:hover{background:var(--red);color:var(--primary-fg)}
.brow{display:flex;gap:8px;margin-top:4px}

/* Progress bar */
.pbar-wrap{margin-top:12px}
.pm{font-family:var(--mf);font-size:12px;color:var(--tx2);margin-bottom:4px;display:flex;justify-content:space-between}
.ptrack{height:3px;background:var(--bg4);border-radius:2px}
.pfill{height:100%;width:0%;background:var(--acc);border-radius:2px;transition:width .5s}
.pfill.done{background:var(--green)}
.pfill.failed{background:var(--red)}

/* Audit log */
.log-wrap{background:var(--card);border:1px solid var(--border);border-radius:var(--app-radius-lg);font-family:var(--mf);font-size:13px;max-height:500px;overflow-y:auto;box-shadow:none}
body:not(.light-mode) .log-wrap{box-shadow:var(--card-shadow-dark)}
body.light-mode .log-wrap{box-shadow:var(--card-shadow-light)}
.lr{display:flex;gap:10px;padding:4px 10px;border-bottom:1px solid var(--bd);align-items:flex-start}
.lr:last-child{border-bottom:none}
.lts{color:var(--tx3);min-width:64px;flex-shrink:0}
.llv{min-width:42px;flex-shrink:0}
.llv.INFO{color:var(--blue)}.llv.WARN{color:var(--amber)}.llv.PROBE{color:var(--acc)}.llv.ERR{color:var(--red)}
.lm{color:var(--tx2);word-break:break-all}.lm b{color:var(--tx);font-weight:400}

/* Pagination */
.pgn{display:flex;align-items:center;gap:6px;margin-top:10px;font-family:var(--mf);font-size:12px;color:var(--tx2)}
.pgn button{font-family:var(--sf);font-size:11px;font-weight:600;padding:6px 11px;border:1px solid var(--bd2);background:var(--bg3);color:var(--tx2);border-radius:var(--radius);cursor:pointer}
.pgn button:hover{border-color:var(--acc);color:var(--acc)}
.pgn button:disabled{opacity:.3;cursor:not-allowed}

/* Toast notifications */
.toast-wrap{position:fixed;bottom:16px;right:16px;display:flex;flex-direction:column;gap:6px;z-index:999}
.toast{font-family:var(--sf);font-size:12px;padding:9px 14px;border-radius:6px;border:1px solid;animation:fadeIn .2s ease}
.toast.ok{background:var(--gdim);border-color:var(--gbrd);color:var(--green)}
.toast.err{background:var(--rdim);border-color:var(--rbrd);color:var(--red)}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

/* Loading indicator (tables often combine with .tbl-empty) */
.loading{color:var(--tx2);font-family:var(--mf);font-size:13px;padding:20px;text-align:center}

/* Dashboard view mode */
#t-dash.on{
  display:flex;
  flex-direction:column;
  gap:12px;
}
#t-dash.on > .st-band{
  margin-bottom:0;
}
.st-dash-band-head{
  display:grid;
  grid-template-columns:minmax(88px,120px) 1fr;
  gap:12px 20px;
  align-items:start;
}
@media (max-width:720px){
  .st-dash-band-head{grid-template-columns:1fr}
}
.st-dash-kicker{
  font-family:var(--mf);
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--primary);
  padding-top:5px;
}
body.light-mode .st-dash-kicker{color:var(--primary)}
.st-dash-page-title{
  font-family:var(--sf);
  font-size:18px;
  font-weight:700;
  color:var(--text);
  margin:0 0 8px;
  line-height:1.25;
  letter-spacing:-.01em;
}
.st-dash-overview-lede{color:var(--text-muted)}
#t-dash.on .st-dash-actions.dash-actions{
  margin:14px 0 0;
  padding-top:14px;
  border-top:1px solid color-mix(in srgb,var(--bd) 68%,transparent);
}
#t-dash.on #dash-ops{
  display:flex;
  flex-direction:column;
  gap:12px;
  min-width:0;
}
#t-dash.on #dash-exec{
  flex-direction:column;
  gap:12px;
}
#t-dash.on #dash-exec > .dash-workspace,
#t-dash.on #dash-exec > details,
#t-dash.on #dash-ops > .dash-workspace{
  margin-bottom:0;
}
.st-dash-metrics-unified{
  padding:10px 12px;
  border-radius:var(--app-radius-md);
  border:1px solid color-mix(in srgb,var(--bd) 62%,transparent);
  background:color-mix(in srgb,var(--card) 40%,var(--section-bg));
}
.st-dash-metric-zone{min-width:0}
#t-dash.on .st-dash-metric-zone--attention{
  padding-left:10px;
  margin-left:2px;
  border-left:3px solid color-mix(in srgb,var(--primary) 42%,var(--bd));
}
#t-dash.on .st-dash-metric-zone--mix{
  padding-top:2px;
}
.st-dash-zone-label{
  font-family:var(--mf);
  font-size:10px;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--text-muted);
  margin:0 0 8px;
}
#t-dash.on .dash-workspace--ops .st-dash-tile-attn{
  border-left:2px solid color-mix(in srgb,var(--amber) 40%,var(--red));
  padding-left:14px;
}
#t-dash.on .dash-workspace--ops .st-dash-tile-freshness{
  border-left:2px solid color-mix(in srgb,var(--primary) 32%,var(--bd));
  padding-left:14px;
}
.st-dash-attn-mark{color:var(--text);font-weight:700}
#t-dash.on .st-dash-inset-divider{
  margin:12px 0;
  opacity:.75;
}
#t-dash.on .st-dash-band--vuln{
  border-left:3px solid color-mix(in srgb,var(--red) 28%,var(--bd));
  padding-left:17px;
}
#t-dash.on .st-dash-band--timeline{
  border-left:3px solid color-mix(in srgb,var(--text-muted) 32%,var(--bd));
  padding-left:17px;
}
#t-dash.on .st-dash-band--triage{
  border-left:3px solid color-mix(in srgb,var(--red) 26%,var(--bd));
  padding-left:17px;
}
#t-dash.on .st-dash-tbl-shell{margin-bottom:0}
#t-dash.on .st-dash-feed-track{
  border-left:2px solid color-mix(in srgb,var(--primary) 20%,var(--bd));
  padding-left:12px;
  margin-left:2px;
  border-radius:0 var(--app-radius-md) var(--app-radius-md) 0;
}
#t-dash.on .st-dash-exec-readme{
  border:1px dashed color-mix(in srgb,var(--bd) 55%,transparent);
  border-radius:var(--app-radius-md);
  padding:8px 12px;
  background:color-mix(in srgb,var(--section-bg) 40%,transparent);
}
.dash-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:-4px 0 10px}
.dash-actions-left,.dash-actions-right{display:flex;align-items:center;gap:8px;min-width:0}
.dash-actions-right{margin-left:auto}
.dash-actions-right label{white-space:nowrap}
.mode-toggle{font-size:12px}
/* —— Dashboard: cohesive workspace bands (operator + executive) —— */
.visually-hidden{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.dash-workspace,.st-band{
  background:var(--app-band-veil);
  border:1px solid color-mix(in srgb,var(--section-border) 90%,transparent);
  border-radius:var(--app-radius-lg);
  padding:18px 20px 20px;
  margin-bottom:14px;
  box-shadow:none;
}
body.light-mode .dash-workspace,
body.light-mode .st-band{
  border-color:var(--section-border);
}
body:not(.light-mode) .dash-workspace,
body:not(.light-mode) .st-band{box-shadow:var(--card-shadow-dark)}
body.light-mode .dash-workspace,
body.light-mode .st-band{box-shadow:var(--card-shadow-light)}
.dash-ws-head{margin-bottom:14px}
.dash-ws-head--tight{margin-bottom:10px}
.dash-ws-title{
  font-family:var(--sf);
  font-size:15px;
  font-weight:700;
  color:var(--text);
  letter-spacing:.01em;
  line-height:1.3;
  margin:0 0 4px;
}
.dash-ws-lede{
  font-family:var(--mf);
  font-size:12px;
  color:var(--text-muted);
  line-height:1.45;
  max-width:62rem;
  margin:0;
}
.dash-ws-head-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:4px;
}
.dash-ws-head-row .dash-ws-title{margin-bottom:0}
.dash-inset-h{
  font-family:var(--sf);
  font-size:11px;
  color:var(--text-faint);
  text-transform:uppercase;
  letter-spacing:.1em;
  font-weight:700;
  margin:0 0 10px;
}
.dash-exec-brief .dash-exec-brief-col{min-width:0}
.dash-exec-brief-col--secondary{
  border-left:1px solid var(--bd);
  padding-left:16px;
}
.dash-exec-charts-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(300px,1fr));
  gap:18px 20px;
}
.dash-chart-cell{min-width:0}
.dash-ops-metrics{display:flex;flex-direction:column;gap:0}
.dash-ops-stats-grid{
  margin-bottom:0;
  gap:10px;
}
.dash-ws-divider{
  height:1px;
  background:var(--bd);
  margin:14px 0;
  opacity:.85;
}
.dash-workspace--ops .dash-ops-stats-grid .sc,
.dash-workspace--exec-kpis .sc{
  box-shadow:none;
  background:color-mix(in srgb,var(--card) 82%,var(--section-bg));
  border-color:var(--bd);
}
.dash-feed--inset{
  margin-bottom:0;
  border-radius:var(--app-radius-md);
  border:1px solid var(--border);
  background:color-mix(in srgb,var(--card) 70%,var(--section-bg));
  box-shadow:none;
}
body.light-mode .dash-feed--inset{background:var(--surface-muted)}
@media (max-width:980px){
  .dash-exec-brief-col--secondary{
    border-left:none;
    border-top:1px solid var(--bd);
    padding-left:0;
    padding-top:16px;
    margin-top:4px;
  }
  .dash-exec-charts-grid{grid-template-columns:1fr}
}
.dash-workspace--exec .exec-top-grid{margin-bottom:0}
.dash-workspace--exec-kpis > .sgrid{margin-bottom:0}
body.exec-mode #dash-cats{display:none}
body.exec-mode .sgrid{gap:14px}
body.exec-mode .sc{padding:20px;border-color:var(--acc)}
body.exec-mode .sv{font-size:32px}
body.exec-mode #d-age{font-size:22px !important}
body.exec-mode .sth{margin-top:6px}
body.exec-mode .feed{max-height:320px}
body.exec-mode #dash-top-vuln td{padding-top:12px;padding-bottom:12px}
body.exec-mode .shell{grid-template-columns:74px 1fr}
body.exec-mode .side{padding-top:8px}
body.exec-mode .ns{display:none}
body.exec-mode .nav-grp-hd{display:none}
body.exec-mode .nav-grp-body{display:block}
body.exec-mode .nav-grp--collapsed .nav-grp-body{display:block}
body.exec-mode .ni{
  justify-content:center;
  padding:11px 8px;
  font-size:0;
  border-left-width:0;
  border-bottom:1px solid var(--bd);
}
body.exec-mode .ni svg{
  width:16px;
  height:16px;
}
body.exec-mode .ni .nb{
  display:none;
}
body.exec-mode #t-dash.on .sth{
  font-size:13px;
  letter-spacing:.02em;
}
body.exec-mode #t-dash.on .dash-ws-title{
  font-size:16px;
  letter-spacing:.02em;
}
body.exec-mode #t-dash.on .dash-ws-lede{
  font-size:13px;
}
body.exec-mode #t-dash.on .tbl{
  font-size:14px;
}
body.exec-mode #t-dash.on .tbl th{
  font-size:12px;
  font-weight:700;
}
body.exec-mode #t-dash.on .feed{
  font-size:14px;
}
body.exec-mode #t-dash.on .fr{
  padding-top:8px;
  padding-bottom:8px;
}
body.exec-mode #t-dash.on #dash-ops{display:none}
body.exec-mode #t-dash.on #dash-exec{display:flex}
body:not(.exec-mode) .dash-actions-right{visibility:hidden;pointer-events:none}
#dash-exec{display:none;flex-direction:column;gap:12px;min-width:0}
.exec-top-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:12px;margin-bottom:12px}
.exec-grid-2{grid-template-columns:repeat(2,minmax(320px,1fr))}
.exec-top-card{padding:14px 16px}
.exec-top-card .ct{font-size:12px;letter-spacing:.05em;margin-bottom:8px}
.exec-brief-deltas{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:8px;margin-bottom:10px}
.exec-delta-chip{border:1px solid var(--bd2);border-radius:10px;padding:8px 10px;background:var(--bg3);display:flex;flex-direction:column;gap:2px}
.exec-delta-label{font-size:11px;color:var(--tx3);font-family:var(--mf)}
.exec-delta-main{font-size:18px;color:var(--tx);font-weight:700}
.exec-delta-sub{font-size:11px;color:var(--tx2);font-family:var(--mf)}
.exec-delta-good{border-color:rgba(45,184,101,.45)}
.exec-delta-bad{border-color:rgba(233,95,95,.45)}
.exec-delta-flat{border-color:var(--bd2)}
.exec-brief-list{font-size:13px;color:var(--tx2);line-height:1.5}
.exec-brief-ul{margin:0;padding-left:18px;display:grid;gap:7px}
.exec-brief-ul li{color:var(--tx2)}

@media (max-width: 980px){
  .exec-top-grid{grid-template-columns:1fr}
  .exec-grid-2{grid-template-columns:1fr}
  .exec-brief-deltas{grid-template-columns:repeat(2,minmax(140px,1fr))}
}
@media (max-width: 640px){
  .exec-brief-deltas{grid-template-columns:1fr}
}
.exec-bars-wrap{display:flex;align-items:flex-end;gap:4px;min-height:92px;padding:8px 2px}
.exec-bar-col{width:100%;min-width:6px}
.exec-bar{width:100%;border-radius:3px 3px 0 0;background:linear-gradient(180deg,var(--acc),var(--acc2))}
.exec-bars-meta{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--tx2);font-family:var(--mf)}
.exec-sev-row{display:flex;align-items:center;gap:8px;padding:5px 0}
.exec-sev-track{flex:1;height:6px;background:var(--bg4);border-radius:999px;overflow:hidden}
.exec-sev-fill{height:100%;background:linear-gradient(90deg,var(--amber),var(--red))}
.exec-chart{min-height:210px}
.exec-chart-focus{border-radius:8px;outline:none}
.exec-chart-focus:focus-visible{box-shadow:0 0 0 2px rgba(23,135,251,.55)}
button.is-disabled{opacity:.55;cursor:not-allowed}
.exec-line-svg{width:100%;height:170px;display:block}
.exec-grid-line{stroke:var(--bd2);stroke-width:1}
.exec-cursor-line{stroke:var(--acc2);stroke-width:1.5;stroke-dasharray:3 3;pointer-events:none}
.exec-legend{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}
.exec-legend-item{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--tx2);font-family:var(--mf)}
.exec-legend-item i{display:inline-block;width:10px;height:10px;border-radius:999px}
.exec-selected-chip{display:inline-flex;margin-top:8px;padding:4px 8px;border:1px solid var(--bd2);border-radius:999px;font-size:11px;color:var(--tx2);font-family:var(--mf);background:var(--bg3)}
.exec-fixed-tip{margin-top:8px;padding:8px 10px;border:1px solid var(--bd2);border-radius:8px;background:var(--bg3);font-size:12px;color:var(--tx2);font-family:var(--mf);display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.exec-tip-day{color:var(--tx);font-weight:700;margin-right:6px}
.exec-tip-item{display:inline-flex;align-items:center;gap:5px}
.exec-tip-item i{display:inline-block;width:9px;height:9px;border-radius:999px}

/* Shared modal styles */
.modal-bg{
  display:none;position:fixed;inset:0;background:var(--modal-backdrop);
  z-index:110;align-items:center;justify-content:center;backdrop-filter:blur(2px)
}
.modal-card{
  background:var(--app-surface-veil);
  border:1px solid color-mix(in srgb,var(--border) 92%,transparent);
  border-radius:var(--app-radius-lg);
  padding:22px;
  box-shadow:0 24px 64px rgba(0,0,0,.55);
}
body.light-mode .modal-card{
  background:var(--app-surface-veil);
  border-color:color-mix(in srgb,var(--border-strong) 55%,var(--border));
  box-shadow:0 18px 48px rgba(15,23,42,.14),0 0 0 1px color-mix(in srgb,var(--text) 4%,transparent);
}
.modal-title{
  font-family:var(--sf);font-size:15px;font-weight:700;color:var(--tx);letter-spacing:.02em;margin-bottom:14px
}
.modal-close-x{
  flex-shrink:0;width:36px;height:36px;margin:0 -6px 0 4px;padding:0;
  border:none;border-radius:var(--radius);background:transparent;color:var(--tx3);
  font-family:var(--sf);font-size:22px;font-weight:400;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:color .12s,background .12s
}
.modal-close-x:hover{color:var(--tx);background:var(--bg3)}
body.light-mode .modal-close-x:hover{background:var(--bg4)}
.text-muted{color:var(--tx2);font-size:13px}
.text-micro{font-family:var(--mf);font-size:11px;color:var(--tx3)}
.status-chip{
  display:inline-block;padding:2px 8px;border-radius:6px;border:1px solid var(--bd2);
  font-family:var(--sf);font-size:11px;color:var(--tx2)
}
.w100{width:100%}
.mb0{margin-bottom:0}
.mb4{margin-bottom:4px}
.mb6{margin-bottom:6px}
.mb8{margin-bottom:8px}
.mb10{margin-bottom:10px}
.mb12{margin-bottom:12px}
.mb14{margin-bottom:14px}
.mt6{margin-top:6px}
.mt10{margin-top:10px}
.stack8{display:flex;gap:8px}
.stack10{display:flex;gap:10px}
.row-between{display:flex;align-items:center;justify-content:space-between}
.row-end{display:flex;gap:8px;justify-content:flex-end}
.row-wrap{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.help-line{font-size:12px;color:var(--tx2);line-height:1.7}
/* Links inside help copy inherit muted text otherwise — use theme accent */
.help-line a,.hint-micro a,.help-mono a{
  color:var(--acc);font-weight:600;text-decoration:none;border-bottom:1px solid transparent;
  transition:color .12s,border-color .12s
}
.help-line a:hover,.hint-micro a:hover,.help-mono a:hover{color:var(--acc2);border-bottom-color:var(--acc2)}
.help-mono{font-family:var(--mf);font-size:12px;color:var(--tx2);line-height:1.8}
.hint-micro{font-family:var(--mf);font-size:11px;color:var(--tx3)}
.form-label{display:block;font-size:12px;color:var(--tx2);font-family:var(--mf);margin-bottom:3px}
.table-mini{width:100%;font-size:12px;font-family:var(--mf)}
.table-mini td{padding:3px 6px;color:var(--tx2)}
.table-mini td:first-child{padding-left:0}
.status-text{font-family:var(--mf);font-size:11px;color:var(--tx3)}
.click-ip{cursor:pointer;color:var(--acc)}
.text-primary{color:var(--tx)}
.text-secondary{color:var(--tx2)}
.text-dim{color:var(--tx3)}
.mono-sm{font-family:var(--mf);font-size:11px}
.btn-xs{font-size:11px}
.btn-xxs{font-size:11px}
.row-actions{display:flex;flex-wrap:wrap;gap:4px;padding:4px 8px;max-width:200px}
.user-row-actions{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:nowrap}
.user-row-actions .tbtn{white-space:nowrap}
#auth-users-table th,#auth-users-table td{padding:8px 8px}
#auth-users-table .finp{min-width:0;width:100%;padding:6px 8px;font-size:12px}
/*
  Never put display:flex on <td> — it breaks table layout and shifts cells (buttons overlap MFA/Disabled).
  Flex lives on the inner .user-row-actions wrapper only.
*/
#auth-users-table th:last-child,
#auth-users-table td:last-child{
  white-space:nowrap;
  vertical-align:middle;
  min-width:12.5rem;
}
#auth-users-table .user-row-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:6px;
}
#auth-users-table .user-row-actions .tbtn{padding:5px 8px}
.pending{color:var(--tx3)}
.due-now{color:var(--amber)}
.paused-chip{color:var(--amber);font-size:11px;margin-left:6px;font-family:var(--mf)}
.toggle-on{color:var(--green);border-color:var(--green);min-width:52px}
.toggle-off{color:var(--tx3);border-color:var(--bd2);min-width:52px}
.enrich-row,.mini-row{display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--bd)}
.enrich-row{padding:8px 0}
.mini-row{padding:5px 0}
.grow{flex:1}
.badge-mini{font-family:var(--mf);font-size:11px;padding:2px 6px;border-radius:4px}
.badge-on{background:var(--gdim);color:var(--green)}
.badge-off{background:var(--bg4);color:var(--tx3)}
.badge-ready{background:var(--gdim);color:var(--green)}
.badge-partial{background:var(--adim);color:var(--amber)}
.badge-missing{background:var(--bg4);color:var(--tx3)}
/* Zabbix cache freshness */
.badge-zbx-fresh{background:var(--gdim);color:var(--green)}
.badge-zbx-stale{background:var(--adim);color:var(--amber)}
.badge-zbx-outdated{background:var(--rdim);color:var(--red)}
.badge-zbx-never{background:var(--bg4);color:var(--tx3)}
.enrich-zbx-card-body{padding:2px 2px 0}
/* Enrichment tab — single-column operator flow */
.enrich-intro{max-width:min(100%, 52rem)}
/* Enrichment tab — workflow bands (#t-enrich); new layout uses .st-band, not .enrich-stack */
#t-enrich.on{
  display:flex;
  flex-direction:column;
  gap:12px;
}
#t-enrich.on > .st-band{margin-bottom:0}
.st-enrich-band-head{
  display:grid;
  grid-template-columns:minmax(88px,120px) 1fr;
  gap:12px 20px;
  align-items:start;
}
@media (max-width:720px){
  .st-enrich-band-head{grid-template-columns:1fr}
}
.st-enrich-kicker{
  font-family:var(--mf);
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--primary);
  padding-top:5px;
}
body.light-mode .st-enrich-kicker{color:var(--primary)}
.st-enrich-page-title{
  font-family:var(--sf);
  font-size:18px;
  font-weight:700;
  color:var(--text);
  margin:0 0 8px;
  line-height:1.25;
  letter-spacing:-.01em;
}
.st-enrich-intro{margin-top:0}
.st-enrich-legend{
  list-style:none;
  margin:12px 0 0;
  padding:10px 12px;
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
  gap:8px 16px;
  border-radius:var(--app-radius-md);
  border:1px solid color-mix(in srgb,var(--bd) 65%,transparent);
  background:color-mix(in srgb,var(--section-bg) 55%,var(--card));
  font-size:12px;
  line-height:1.4;
  color:var(--text-muted);
}
.st-enrich-legend-k{
  font-family:var(--mf);
  font-weight:600;
  color:var(--text);
  margin-right:6px;
}
.st-enrich-legend-v{color:var(--text-muted)}
.st-enrich-region-head{
  margin-bottom:12px;
  padding-bottom:10px;
  border-bottom:1px solid color-mix(in srgb,var(--bd) 72%,transparent);
}
.st-enrich-region-head--tools{margin-bottom:10px}
.st-enrich-region-row{
  display:flex;
  gap:14px;
  align-items:stretch;
}
.st-enrich-region-text{min-width:0;flex:1}
.st-enrich-step-mark{
  flex-shrink:0;
  width:4px;
  border-radius:999px;
  min-height:2.75rem;
  align-self:stretch;
  margin-top:3px;
  background:var(--primary);
  opacity:.88;
}
.st-enrich-step-mark--1{background:color-mix(in srgb,var(--primary) 85%,var(--bd))}
.st-enrich-step-mark--2{background:var(--primary)}
.st-enrich-step-mark--3{background:color-mix(in srgb,var(--text-muted) 38%,var(--bd));opacity:1}
.st-enrich-region-title{
  font-family:var(--sf);
  font-size:15px;
  font-weight:700;
  color:var(--text);
  margin:0 0 4px;
  line-height:1.3;
  letter-spacing:.01em;
}
.st-enrich-region-lede{margin:0;line-height:1.45;max-width:52rem}
.st-enrich-body{min-width:0}
.st-enrich-source-block{min-width:0}
.st-enrich-inset-divider{
  height:1px;
  margin:14px 0;
  background:color-mix(in srgb,var(--bd) 55%,transparent);
}
.st-enrich-how{margin-top:4px}
.st-enrich-zabbix-flow{
  display:flex;
  flex-direction:column;
  gap:12px;
  width:100%;
  min-width:0;
}
.st-enrich-zbx-overview{
  min-width:0;
  display:flex;
  flex-direction:column;
  padding-top:2px;
}
#t-enrich.on .st-enrich-band--sync .enrich-zbx-overview-actions{margin-top:12px}
.st-enrich-connector{
  margin:0!important;
  padding:8px 12px!important;
  text-align:left;
  border:1px dashed color-mix(in srgb,var(--bd) 55%,transparent);
  border-radius:var(--app-radius-md);
  background:color-mix(in srgb,var(--section-bg) 45%,var(--card));
}
.st-enrich-tools-eyebrow{
  font-family:var(--mf);
  font-size:10px;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--primary);
  margin:0 0 4px;
}
body.light-mode .st-enrich-tools-eyebrow{color:var(--primary)}
.st-enrich-tools-heading{
  font-family:var(--sf);
  font-size:14px;
  font-weight:700;
  color:var(--text);
  text-transform:uppercase;
  letter-spacing:.08em;
  margin:0 0 6px;
  line-height:1.25;
}
.st-enrich-tools-toolbar{
  margin-bottom:8px;
  padding-bottom:10px;
  border-bottom:1px solid color-mix(in srgb,var(--bd) 55%,transparent);
}
.st-enrich-tools-toolbar-hint{line-height:1.45}
.st-enrich-diag-label{line-height:1.45;max-width:52rem}
.st-enrich-diagnostics-row{padding:8px 0 4px}
#t-enrich.on .zb-enrich-section.st-enrich-zb-sec{
  padding-left:12px;
  margin-left:2px;
  border-left:2px solid color-mix(in srgb,var(--primary) 22%,var(--bd));
}
#t-enrich.on .zb-enrich-section.st-enrich-zb-sec--scope{border-left-color:color-mix(in srgb,var(--amber) 28%,var(--bd))}
#t-enrich.on .zb-enrich-section.st-enrich-zb-sec--match{border-left-color:color-mix(in srgb,var(--primary) 30%,var(--bd))}
#t-enrich.on .zb-enrich-section.st-enrich-zb-sec--apply{border-left-color:color-mix(in srgb,var(--green) 26%,var(--bd))}
#t-enrich.on .zb-enrich-section.st-enrich-zb-sec--manual{border-left-color:color-mix(in srgb,var(--text-muted) 35%,var(--bd))}
.enrich-stack{
  display:flex;
  flex-direction:column;
  gap:14px;
  width:100%;
  min-width:0;
  align-items:stretch;
}
.enrich-sources-stack > div{min-width:0}
.enrich-sources-subhd{
  font-size:11px;
  font-weight:600;
  letter-spacing:0.04em;
  text-transform:uppercase;
  color:var(--text-muted);
  margin-top:12px;
  margin-bottom:4px;
}
.enrich-sources-subhd--top{margin-top:0}
.enrich-how-details{margin:0;border-radius:var(--radius-lg)}
.enrich-how-details-summary{
  cursor:pointer;
  font-size:12px;
  font-weight:600;
  color:var(--text-muted);
  list-style-position:outside;
}
.enrich-how-details[open] > .enrich-how-details-summary{color:var(--text)}
.enrich-overview-card{min-width:0;display:flex;flex-direction:column}
/* Legacy: stacked Zabbix “suite” (card + card). #t-enrich now uses separate .st-band sections. */
.enrich-zabbix-overview,
.enrich-zabbix-tools-card{width:100%;max-width:100%}
.enrich-zbx-connector{
  margin:0;
  padding:5px 12px 6px;
  text-align:center;
  border-left:1px solid var(--border);
  border-right:1px solid var(--border);
  background:var(--surface-muted);
  font-size:12px;
  line-height:1.35;
}
.enrich-zabbix-overview{display:flex;flex-direction:column;min-height:0}
.enrich-zabbix-overview-body{flex:0 1 auto;min-height:0}
.enrich-zbx-overview-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  margin-top:10px;
  padding-top:0;
}
#t-enrich.on .st-enrich-band--workflows.enrich-zabbix-tools-card{
  border-top:2px solid color-mix(in srgb,var(--primary) 45%,var(--border));
  padding-top:16px;
}
body.light-mode #t-enrich.on .st-enrich-band--workflows.enrich-zabbix-tools-card{
  border-top-color:color-mix(in srgb,var(--primary) 38%,var(--border));
}
.enrich-zabbix-tools-sub{margin-top:6px;line-height:1.45;color:var(--text-muted)}
.enrich-card-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.hp-zbx-freshness{font-size:11px;color:var(--tx3);margin:6px 0 4px}
.hp-zbx-freshness-warn{font-size:11px;color:var(--amber);margin-top:6px}
.hp-port-row{display:flex;align-items:flex-start;gap:10px;padding:7px 0;border-bottom:1px solid var(--bd)}
.hp-port-num{font-family:var(--mf);font-size:13px;color:var(--acc);min-width:48px;flex-shrink:0}
.hp-port-text{font-size:12px;color:var(--tx2);word-break:break-word;line-height:1.45}
.hp-arrow{color:var(--tx3);font-family:var(--mf)}
.hp-raw-summary{cursor:pointer;font-size:11px;color:var(--tx3)}
.hp-raw-body{margin-top:2px;font-size:11px;color:var(--tx2);font-family:var(--mf);word-break:break-all}
.hp-empty{color:var(--tx3);font-size:12px;padding:8px 0}
.hp-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.hp-chip{font-size:11px;font-family:var(--mf);padding:4px 7px;border:1px solid var(--bd2);border-radius:999px;color:var(--tx)}
.hp-block{padding:8px 0;border-bottom:1px solid var(--bd)}
.hp-row{display:flex;align-items:center;gap:8px;margin-bottom:3px}
.hp-sev{font-family:var(--mf);font-size:11px}
/* Host panel: same font stack as .sev, slightly smaller so the row fits. */
.hp-sev-chip{
  font-family:var(--sf);
  font-size:13px;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  letter-spacing:.04em;
  padding:3px 7px;
}
.hp-cve{font-family:var(--mf);font-size:11px;color:var(--tx3)}
.hp-date{font-size:11px;color:var(--tx3);margin-left:auto}
.hp-desc{font-size:12px;color:var(--tx2);line-height:1.5}
/* Vulnerabilities tab — risk triage workspace (#t-vulns); st-vuln-* scoped */
#t-vulns.on{
  display:flex;
  flex-direction:column;
  gap:12px;
}
#t-vulns.on > .st-band{margin-bottom:0}
.st-vuln-band-head{
  display:grid;
  grid-template-columns:minmax(88px,120px) 1fr;
  gap:12px 20px;
  align-items:start;
}
@media (max-width:720px){
  .st-vuln-band-head{grid-template-columns:1fr}
}
.st-vuln-kicker{
  font-family:var(--mf);
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--primary);
  padding-top:5px;
}
body.light-mode .st-vuln-kicker{color:var(--primary)}
.st-vuln-page-title{
  font-family:var(--sf);
  font-size:18px;
  font-weight:700;
  color:var(--text);
  margin:0 0 8px;
  line-height:1.25;
  letter-spacing:-.01em;
}
.st-vuln-overview-lede{margin-top:0}
.st-vuln-section-head{margin-bottom:12px}
.st-vuln-section-head--table{margin-bottom:10px}
.st-vuln-section-title{
  font-family:var(--sf);
  font-size:13px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--text-muted);
  margin:0 0 6px;
}
.st-vuln-section-lede{max-width:min(100%,52rem);line-height:1.45}
.st-vuln-fbar{margin-bottom:0}
.st-vuln-filter-summary{margin-top:10px;line-height:1.45;max-width:min(100%,52rem)}
.st-vuln-tbl-wrap{min-width:0}
.st-vuln-pgn{margin-top:10px}
.st-vuln-actions-lede{margin-top:0}
#t-vulns.on .st-vuln-tbl tbody tr.st-vuln-row--critical td{
  background:color-mix(in srgb,var(--red) 9%,var(--section-bg));
}
#t-vulns.on .st-vuln-tbl tbody tr.st-vuln-row--high td{
  background:color-mix(in srgb,var(--amber) 10%,var(--section-bg));
}
#t-vulns.on .st-vuln-tbl tbody tr.st-vuln-row--medium td{
  background:color-mix(in srgb,var(--amber) 5%,var(--section-bg));
}
body.light-mode #t-vulns.on .st-vuln-tbl tbody tr.st-vuln-row--critical td{
  background:color-mix(in srgb,var(--red) 8%,var(--surface-muted));
}
body.light-mode #t-vulns.on .st-vuln-tbl tbody tr.st-vuln-row--high td{
  background:color-mix(in srgb,var(--amber) 9%,var(--surface-muted));
}
body.light-mode #t-vulns.on .st-vuln-tbl tbody tr.st-vuln-row--medium td{
  background:color-mix(in srgb,var(--amber) 5%,var(--surface-muted));
}
#t-vulns.on .st-vuln-tbl tbody tr.st-vuln-row--resolved td{
  opacity:0.94;
}
#t-vulns.on .st-vuln-empty{
  line-height:1.5;
  max-width:42rem;
}
/* Devices tab — logical identity workspace (#t-devices); st-devices-* scoped */
#t-devices.on{
  display:flex;
  flex-direction:column;
  gap:12px;
}
#t-devices.on > .st-band{margin-bottom:0}
.st-devices-band-head{
  display:grid;
  grid-template-columns:minmax(88px,120px) 1fr;
  gap:12px 20px;
  align-items:start;
}
@media (max-width:720px){
  .st-devices-band-head{grid-template-columns:1fr}
}
.st-devices-kicker{
  font-family:var(--mf);
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--primary);
  padding-top:5px;
}
body.light-mode .st-devices-kicker{color:var(--primary)}
.st-devices-page-title{
  font-family:var(--sf);
  font-size:18px;
  font-weight:700;
  color:var(--text);
  margin:0 0 8px;
  line-height:1.25;
  letter-spacing:-.01em;
}
.st-devices-overview-lede{margin-top:0}
.st-devices-section-head{margin-bottom:12px}
.st-devices-section-head--table{margin-bottom:10px}
.st-devices-section-title{
  font-family:var(--sf);
  font-size:13px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--text-muted);
  margin:0 0 6px;
}
.st-devices-section-lede{max-width:min(100%,52rem);line-height:1.45}
.st-devices-fbar{margin-bottom:0}
.st-devices-filter-summary{margin-top:10px;line-height:1.45;max-width:min(100%,52rem)}
.st-devices-tbl-wrap{min-width:0}
.st-devices-pgn{margin-top:10px}
#t-devices.on .st-devices-tbl tbody tr.st-devices-row--multi td{
  background:color-mix(in srgb,var(--primary) 5%,var(--section-bg));
}
body.light-mode #t-devices.on .st-devices-tbl tbody tr.st-devices-row--multi td{
  background:color-mix(in srgb,var(--primary) 6%,var(--surface-muted));
}
#t-devices.on .st-devices-empty{
  line-height:1.5;
  max-width:42rem;
}
/* Device detail panel — merge / linked assets (st-devices-panel*) */
.st-devices-merge-well{
  padding:12px 14px;
  margin-top:4px;
  margin-bottom:4px;
  border-radius:var(--app-radius-md);
  border:1px dashed color-mix(in srgb,var(--amber) 35%,var(--bd));
  background:color-mix(in srgb,var(--section-bg) 55%,var(--card));
}
body.light-mode .st-devices-merge-well{
  border-color:color-mix(in srgb,var(--amber) 28%,var(--border));
  background:color-mix(in srgb,var(--surface-muted) 45%,var(--card));
}
.st-devices-panel-merge-title{margin-top:0!important}
.st-devices-merge-lede{max-width:40rem}
.device-panel.st-devices-panel .st-devices-panel-assets-tbl{font-size:12px}
.device-panel.st-devices-panel .st-devices-panel-history-body{font-size:12px}
/* Collectors tab — distributed scanning workspace (#t-collectors); st-collectors-* scoped */
#t-collectors.on{
  display:flex;
  flex-direction:column;
  gap:12px;
}
#t-collectors.on > .st-band{margin-bottom:0}
.st-collectors-band-head{
  display:grid;
  grid-template-columns:minmax(88px,120px) 1fr;
  gap:12px 20px;
  align-items:start;
}
@media (max-width:720px){
  .st-collectors-band-head{grid-template-columns:1fr}
}
.st-collectors-kicker{
  font-family:var(--mf);
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--primary);
  padding-top:5px;
}
body.light-mode .st-collectors-kicker{color:var(--primary)}
.st-collectors-page-title{
  font-family:var(--sf);
  font-size:18px;
  font-weight:700;
  color:var(--text);
  margin:0;
  line-height:1.25;
  letter-spacing:-.01em;
}
.st-collectors-toolbar{
  align-items:flex-start;
  gap:10px;
  margin-bottom:8px;
}
.st-collectors-toolbar .st-collectors-page-title{flex:1;min-width:0}
.st-collectors-overview-lede{margin-top:0}
.st-collectors-section-head{margin-bottom:12px}
.st-collectors-section-title{
  font-family:var(--sf);
  font-size:13px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--text-muted);
  margin:0 0 6px;
}
.st-collectors-section-lede{max-width:min(100%,52rem);line-height:1.45}
.st-collectors-stats{line-height:1.45;max-width:min(100%,52rem)}
.st-collectors-tbl-wrap{min-width:0;font-size:13px}
.st-collectors-controls-lede{margin-top:0}
.st-collectors-revoke-label{color:var(--red);font-weight:600}
#t-collectors.on .st-collectors-tbl tbody tr.st-collectors-row--online td{
  background:color-mix(in srgb,var(--green) 6%,var(--section-bg));
}
#t-collectors.on .st-collectors-tbl tbody tr.st-collectors-row--stale td{
  background:color-mix(in srgb,var(--amber) 8%,var(--section-bg));
}
#t-collectors.on .st-collectors-tbl tbody tr.st-collectors-row--chunks-warn td:first-child{
  box-shadow:inset 3px 0 0 0 color-mix(in srgb,var(--amber) 70%,var(--bd));
}
body.light-mode #t-collectors.on .st-collectors-tbl tbody tr.st-collectors-row--online td{
  background:color-mix(in srgb,var(--green) 7%,var(--surface-muted));
}
body.light-mode #t-collectors.on .st-collectors-tbl tbody tr.st-collectors-row--stale td{
  background:color-mix(in srgb,var(--amber) 9%,var(--surface-muted));
}
.st-collectors-empty{line-height:1.5;max-width:46rem}
#t-collectors.on .st-collectors-row-actions{max-width:none;justify-content:flex-end}
.st-collectors-action-revoke{font-weight:600}
/* Scan schedules tab — recurring automation workspace (#t-sched); st-sched-* scoped */
#t-sched.on{
  display:flex;
  flex-direction:column;
  gap:12px;
}
#t-sched.on > .st-band{margin-bottom:0}
.st-sched-band-head{
  display:grid;
  grid-template-columns:minmax(88px,120px) 1fr;
  gap:12px 20px;
  align-items:start;
}
@media (max-width:720px){
  .st-sched-band-head{grid-template-columns:1fr}
}
.st-sched-kicker{
  font-family:var(--mf);
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--primary);
  padding-top:5px;
}
body.light-mode .st-sched-kicker{color:var(--primary)}
.st-sched-page-title{
  font-family:var(--sf);
  font-size:18px;
  font-weight:700;
  color:var(--text);
  margin:0;
  line-height:1.25;
  letter-spacing:-.01em;
}
.st-sched-toolbar{
  align-items:flex-start;
  gap:10px;
  margin-bottom:8px;
}
.st-sched-toolbar .st-sched-page-title{flex:1;min-width:0}
.st-sched-overview-lede{margin-top:0}
.st-sched-section-head{margin-bottom:12px}
.st-sched-section-title{
  font-family:var(--sf);
  font-size:13px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--text-muted);
  margin:0 0 6px;
}
.st-sched-builder-lede,.st-sched-inventory-lede,.st-sched-controls-lede{max-width:min(100%,52rem);line-height:1.45}
.st-sched-controls-lede{margin-top:0}
.st-sched-tbl-wrap{min-width:0;font-size:13px}
.st-sched-delete-label{color:var(--red);font-weight:600}
.st-sched-paused-chip{font-weight:600}
#t-sched.on .st-sched-tbl tbody tr.st-sched-row--active td{
  background:color-mix(in srgb,var(--green) 5%,var(--section-bg));
}
#t-sched.on .st-sched-tbl tbody tr.st-sched-row--paused td{
  background:color-mix(in srgb,var(--amber) 7%,var(--section-bg));
}
#t-sched.on .st-sched-tbl tbody tr.st-sched-row--off td{
  background:color-mix(in srgb,var(--text-muted) 4%,var(--section-bg));
}
body.light-mode #t-sched.on .st-sched-tbl tbody tr.st-sched-row--active td{
  background:color-mix(in srgb,var(--green) 6%,var(--surface-muted));
}
body.light-mode #t-sched.on .st-sched-tbl tbody tr.st-sched-row--paused td{
  background:color-mix(in srgb,var(--amber) 8%,var(--surface-muted));
}
body.light-mode #t-sched.on .st-sched-tbl tbody tr.st-sched-row--off td{
  background:color-mix(in srgb,var(--text-muted) 5%,var(--surface-muted));
}
.st-sched-empty{line-height:1.5;max-width:46rem}
.st-sched-empty-inner{max-width:46rem}
#t-sched.on .st-sched-row-actions{max-width:none;justify-content:flex-end}
.st-sched-action-delete{font-weight:600}
/* Schedule modal — grouped sections (IDs/controls unchanged) */
.st-sched-modal .st-sched-modal-body{
  border-top:1px solid color-mix(in srgb,var(--border) 70%,transparent);
  padding-top:14px;
  margin-top:2px;
}
.st-sched-modal-sec{
  padding-top:14px;
  margin-top:14px;
  border-top:1px dashed color-mix(in srgb,var(--border) 55%,transparent);
}
.st-sched-modal-body > .st-sched-modal-sec:first-child{
  padding-top:0;
  margin-top:0;
  border-top:none;
}
.st-sched-modal-sec-title{
  font-family:var(--sf);
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--text-muted);
  margin:0 0 10px;
}
.st-sched-modal-sec--footer .st-sched-modal-sec-title{margin-bottom:12px}
/* Scopes tab — inventory/report organization workspace (#t-scopes); st-scopes-* scoped */
#t-scopes.on{
  display:flex;
  flex-direction:column;
  gap:12px;
}
#t-scopes.on > .st-band{margin-bottom:0}
.st-scopes-band-head{
  display:grid;
  grid-template-columns:minmax(88px,120px) 1fr;
  gap:12px 20px;
  align-items:start;
}
@media (max-width:720px){
  .st-scopes-band-head{grid-template-columns:1fr}
}
.st-scopes-kicker{
  font-family:var(--mf);
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--primary);
  padding-top:5px;
}
body.light-mode .st-scopes-kicker{color:var(--primary)}
.st-scopes-page-title{
  font-family:var(--sf);
  font-size:18px;
  font-weight:700;
  color:var(--text);
  margin:0;
  line-height:1.25;
  letter-spacing:-.01em;
}
.st-scopes-toolbar{
  align-items:flex-start;
  gap:10px;
  margin-bottom:8px;
}
.st-scopes-toolbar .st-scopes-page-title{flex:1;min-width:0}
.st-scopes-overview-lede{margin-top:0}
.st-scopes-section-head{margin-bottom:12px}
.st-scopes-section-title{
  font-family:var(--sf);
  font-size:13px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--text-muted);
  margin:0 0 6px;
}
.st-scopes-editor-lede,.st-scopes-inventory-lede,.st-scopes-controls-lede{max-width:min(100%,52rem);line-height:1.45}
.st-scopes-controls-lede{margin-top:0}
.st-scopes-delete-label{color:var(--red);font-weight:600}
.st-scopes-tbl-wrap{min-width:0;font-size:13px}
#t-scopes.on .st-scopes-tbl tbody tr.st-scopes-row--populated td{
  background:color-mix(in srgb,var(--primary) 4%,var(--section-bg));
}
body.light-mode #t-scopes.on .st-scopes-tbl tbody tr.st-scopes-row--populated td{
  background:color-mix(in srgb,var(--primary) 5%,var(--surface-muted));
}
.st-scopes-empty{line-height:1.5;max-width:46rem}
.st-scopes-empty-inner{max-width:46rem}
#t-scopes.on .st-scopes-row-actions{max-width:none;white-space:nowrap}
/* Scope create/edit modal grouping */
.st-scopes-modal .st-scopes-modal-body{
  border-top:1px solid color-mix(in srgb,var(--border) 70%,transparent);
  padding-top:14px;
  margin-top:2px;
}
.st-scopes-modal-sec{
  padding-top:14px;
  margin-top:14px;
  border-top:1px dashed color-mix(in srgb,var(--border) 55%,transparent);
}
.st-scopes-modal-body > .st-scopes-modal-sec:first-child{
  padding-top:0;
  margin-top:0;
  border-top:none;
}
.st-scopes-modal-sec-title{
  font-family:var(--sf);
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--text-muted);
  margin:0 0 10px;
}
/* Integrations tab — connector operations workspace (#t-integrations); st-integrations-* scoped */
#t-integrations.on{
  display:flex;
  flex-direction:column;
  gap:12px;
}
#t-integrations.on > .st-band{margin-bottom:0}
.st-integrations-band-head{
  display:grid;
  grid-template-columns:minmax(88px,120px) 1fr;
  gap:12px 20px;
  align-items:start;
}
@media (max-width:720px){
  .st-integrations-band-head{grid-template-columns:1fr}
}
.st-integrations-kicker{
  font-family:var(--mf);
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--primary);
  padding-top:5px;
}
body.light-mode .st-integrations-kicker{color:var(--primary)}
.st-integrations-page-title{
  font-family:var(--sf);
  font-size:18px;
  font-weight:700;
  color:var(--text);
  margin:0 0 8px;
  line-height:1.25;
  letter-spacing:-.01em;
}
.st-integrations-section-head{margin-bottom:12px}
.st-integrations-section-title{
  font-family:var(--sf);
  font-size:13px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--text-muted);
  margin:0 0 6px;
}
.st-integrations-section-lede,.st-integrations-workflow-lede,.st-integrations-diagnostics-lede,.st-integrations-security-lede{max-width:min(100%,52rem);line-height:1.45}
.st-integrations-tbl-wrap{min-width:0;font-size:13px}
.st-integrations-loading{line-height:1.45}
.st-integrations-empty{line-height:1.5;max-width:52rem}
.st-integrations-on{
  display:inline-block;
  border:1px solid var(--bd2);
  border-radius:999px;
  padding:2px 8px;
  font-family:var(--mf);
  font-size:10px;
  letter-spacing:.03em;
}
.st-integrations-on--enabled{
  color:var(--green);
  border-color:color-mix(in srgb,var(--green) 65%,var(--bd));
}
.st-integrations-on--disabled{
  color:var(--tx3);
  border-color:var(--bd2);
}
#t-integrations.on .st-integrations-tbl tbody tr.st-integrations-row--enabled td{
  background:color-mix(in srgb,var(--green) 4%,var(--section-bg));
}
body.light-mode #t-integrations.on .st-integrations-tbl tbody tr.st-integrations-row--enabled td{
  background:color-mix(in srgb,var(--green) 5%,var(--surface-muted));
}
.st-integrations-health--ok{color:var(--green)}
.st-integrations-health--fail{color:var(--red);font-weight:600}
.st-integrations-health--unknown{color:var(--tx3)}
.st-integrations-quickstart-summary{margin-bottom:2px}
.st-integrations-pull-hint{line-height:1.45;max-width:min(100%,52rem)}
.st-integrations-modal .st-integrations-modal-body{
  border-top:1px solid color-mix(in srgb,var(--border) 70%,transparent);
  padding-top:14px;
  margin-top:2px;
}
.st-integrations-modal-sec{
  padding-top:14px;
  margin-top:14px;
  border-top:1px dashed color-mix(in srgb,var(--border) 55%,transparent);
}
.st-integrations-modal-body > .st-integrations-modal-sec:first-child{
  padding-top:0;
  margin-top:0;
  border-top:none;
}
.st-integrations-modal-sec-title{
  font-family:var(--sf);
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--text-muted);
  margin:0 0 10px;
}
/* Access control tab — security administration workspace (#t-access); st-access-* scoped */
#t-access.on{
  display:flex;
  flex-direction:column;
  gap:12px;
}
#t-access.on > .st-band{margin-bottom:0}
.st-access-band-head{
  display:grid;
  grid-template-columns:minmax(88px,120px) 1fr;
  gap:12px 20px;
  align-items:start;
}
@media (max-width:720px){
  .st-access-band-head{grid-template-columns:1fr}
}
.st-access-kicker{
  font-family:var(--mf);
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--primary);
  padding-top:5px;
}
body.light-mode .st-access-kicker{color:var(--primary)}
.st-access-page-title{
  font-family:var(--sf);
  font-size:18px;
  font-weight:700;
  color:var(--text);
  margin:0 0 8px;
  line-height:1.25;
  letter-spacing:-.01em;
}
.st-access-section-head{margin-bottom:12px}
.st-access-section-title{
  font-family:var(--sf);
  font-size:13px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--text-muted);
  margin:0 0 6px;
}
.st-access-section-lede,.st-access-signin-lede,.st-access-sensitive-lede{max-width:min(100%,52rem);line-height:1.45}
.st-access-tbl-wrap{min-width:0;font-size:13px}
.st-access-empty{line-height:1.5;max-width:52rem}
#t-access.on .st-access-users-tbl tbody tr.st-access-user-row--admin td{
  background:color-mix(in srgb,var(--primary) 6%,var(--section-bg));
}
#t-access.on .st-access-users-tbl tbody tr.st-access-user-row--editor td{
  background:color-mix(in srgb,var(--green) 5%,var(--section-bg));
}
#t-access.on .st-access-users-tbl tbody tr.st-access-user-row--disabled td{
  background:color-mix(in srgb,var(--amber) 9%,var(--section-bg));
}
body.light-mode #t-access.on .st-access-users-tbl tbody tr.st-access-user-row--admin td{
  background:color-mix(in srgb,var(--primary) 7%,var(--surface-muted));
}
body.light-mode #t-access.on .st-access-users-tbl tbody tr.st-access-user-row--editor td{
  background:color-mix(in srgb,var(--green) 6%,var(--surface-muted));
}
body.light-mode #t-access.on .st-access-users-tbl tbody tr.st-access-user-row--disabled td{
  background:color-mix(in srgb,var(--amber) 10%,var(--surface-muted));
}
#t-access.on .st-access-user-row-actions{max-width:none}
.st-access-user-action-delete{color:var(--red)}
/* Audit log tab — operational accountability workspace (#t-logs); st-audit-* scoped */
#t-logs.on{
  display:flex;
  flex-direction:column;
  gap:12px;
}
#t-logs.on > .st-band{margin-bottom:0}
.st-audit-band-head{
  display:grid;
  grid-template-columns:minmax(88px,120px) 1fr;
  gap:12px 20px;
  align-items:start;
}
@media (max-width:720px){
  .st-audit-band-head{grid-template-columns:1fr}
}
.st-audit-kicker{
  font-family:var(--mf);
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--primary);
  padding-top:5px;
}
body.light-mode .st-audit-kicker{color:var(--primary)}
.st-audit-page-title{
  font-family:var(--sf);
  font-size:18px;
  font-weight:700;
  color:var(--text);
  margin:0 0 8px;
  line-height:1.25;
  letter-spacing:-.01em;
}
.st-audit-section-head{margin-bottom:12px}
.st-audit-section-title{
  font-family:var(--sf);
  font-size:13px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--text-muted);
  margin:0 0 6px;
}
.st-audit-section-lede,.st-audit-details-lede{max-width:min(100%,52rem);line-height:1.45}
.st-audit-log-wrap{max-height:560px}
.st-audit-empty{line-height:1.5}
#t-logs.on .st-audit-log-wrap .lr.st-audit-row--warn{
  background:color-mix(in srgb,var(--amber) 8%,transparent);
}
#t-logs.on .st-audit-log-wrap .lr.st-audit-row--err{
  background:color-mix(in srgb,var(--red) 9%,transparent);
}
body.light-mode #t-logs.on .st-audit-log-wrap .lr.st-audit-row--warn{
  background:color-mix(in srgb,var(--amber) 10%,transparent);
}
body.light-mode #t-logs.on .st-audit-log-wrap .lr.st-audit-row--err{
  background:color-mix(in srgb,var(--red) 9%,transparent);
}
/* Change alerts tab — change-detection workspace (#t-alerts); st-alerts-* scoped */
#t-alerts.on{
  display:flex;
  flex-direction:column;
  gap:12px;
}
#t-alerts.on > .st-band{margin-bottom:0}
.st-alerts-band-head{
  display:grid;
  grid-template-columns:minmax(88px,120px) 1fr;
  gap:12px 20px;
  align-items:start;
}
@media (max-width:720px){
  .st-alerts-band-head{grid-template-columns:1fr}
}
.st-alerts-kicker{
  font-family:var(--mf);
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--primary);
  padding-top:5px;
}
body.light-mode .st-alerts-kicker{color:var(--primary)}
.st-alerts-page-title{
  font-family:var(--sf);
  font-size:18px;
  font-weight:700;
  color:var(--text);
  margin:0 0 8px;
  line-height:1.25;
  letter-spacing:-.01em;
}
.st-alerts-section-head{margin-bottom:12px}
.st-alerts-section-title{
  font-family:var(--sf);
  font-size:13px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--text-muted);
  margin:0 0 6px;
}
.st-alerts-section-lede,.st-alerts-actions-lede{max-width:min(100%,52rem);line-height:1.45}
.st-alerts-toolbar{gap:10px;align-items:flex-start;flex-wrap:wrap}
.st-alerts-summary{line-height:1.45}
.st-alerts-action-dismiss-all{color:var(--amber)}
.st-alerts-tbl-wrap{min-width:0;font-size:13px}
.st-alerts-empty{line-height:1.5;max-width:52rem}
#t-alerts.on .st-alerts-tbl tbody tr.st-alerts-row--needs-review td{
  background:color-mix(in srgb,var(--amber) 9%,var(--section-bg));
}
body.light-mode #t-alerts.on .st-alerts-tbl tbody tr.st-alerts-row--needs-review td{
  background:color-mix(in srgb,var(--amber) 10%,var(--surface-muted));
}
/* Settings tab — structured configuration workspace (#t-settings); st-settings-* scoped */
#t-settings.on{
  display:flex;
  flex-direction:column;
  gap:12px;
  min-width:0;
}
#t-settings.on > .st-band{
  margin-bottom:0;
  min-width:0;
  max-width:100%;
}
.st-settings-band-main{
  min-width:0;
  max-width:100%;
}
.st-settings-band-head{
  display:grid;
  grid-template-columns:minmax(88px,120px) minmax(0,1fr);
  gap:12px 20px;
  align-items:start;
}
@media (max-width:720px){
  .st-settings-band-head{grid-template-columns:1fr}
}
.st-settings-kicker{
  font-family:var(--mf);
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--primary);
  padding-top:5px;
}
body.light-mode .st-settings-kicker{color:var(--primary)}
.st-settings-page-title{
  font-family:var(--sf);
  font-size:18px;
  font-weight:700;
  color:var(--text);
  margin:0 0 8px;
  line-height:1.25;
  letter-spacing:-.01em;
}
.st-settings-section-head{margin-bottom:12px}
.st-settings-section-title{
  font-family:var(--sf);
  font-size:13px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--text-muted);
  margin:0 0 6px;
}
.st-settings-section-lede{max-width:min(100%,52rem);line-height:1.45}
.st-settings-grid{
  margin-top:4px;
  width:100%;
  min-width:0;
}
#t-settings.on .st-settings-grid{
  display:flex;
  flex-direction:column;
  gap:0;
  align-items:stretch;
}
#t-settings.on .st-settings-group[hidden]{
  display:none!important;
}
#t-settings.on .st-settings-group{
  width:100%;
  min-width:0;
}
#t-settings.on .st-settings-group-grid{
  display:flex;
  flex-direction:column;
  gap:14px;
  align-items:stretch;
  width:100%;
  min-width:0;
}
#t-settings.on .st-settings-group-grid > *{
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}
.st-settings-subnav{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:0 0 8px;
  padding:4px;
  border:1px solid var(--bd2);
  border-radius:10px;
  background:color-mix(in srgb,var(--bg4) 86%,var(--surface, #000) 14%);
  min-width:0;
}
.st-settings-subnav-btn{
  appearance:none;
  border:1px solid var(--bd2);
  background:var(--bg4);
  color:var(--tx2);
  border-radius:999px;
  padding:5px 10px;
  font-size:12px;
  line-height:1.2;
  cursor:pointer;
  white-space:nowrap;
}
.st-settings-subnav-btn[aria-selected="true"]{
  border-color:color-mix(in srgb,var(--primary) 50%,var(--bd2));
  background:color-mix(in srgb,var(--primary) 16%,var(--bg4));
  color:var(--text);
}
.st-settings-subnav-btn:focus-visible{
  outline:2px solid var(--primary);
  outline-offset:2px;
}
.st-settings-tab-intro{max-width:100%;width:100%}
#t-settings.on .st-cc-summary-strip{min-width:0;max-width:100%}
#t-settings.on .st-cc-summary-chips{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:10px;
  min-width:0;
  width:100%;
}
.st-cc-summary-chip{
  border:1px solid color-mix(in srgb,var(--bd2) 88%,transparent);
  border-radius:var(--app-radius-md,8px);
  background:color-mix(in srgb,var(--card) 55%,var(--bg4));
  padding:10px 12px;
  min-width:0;
  box-shadow:none;
}
.st-cc-summary-chip-label{
  font-family:var(--mf),system-ui,sans-serif;
  font-size:10px;
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--tx3);
  margin-bottom:4px;
  overflow-wrap:anywhere;
  line-height:1.25;
}
.st-cc-summary-chip-value{
  font-size:18px;
  font-weight:700;
  line-height:1.15;
  color:var(--tx);
  word-break:break-word;
}
.st-cc-summary-chip-note{
  font-size:11px;
  line-height:1.35;
  color:var(--tx3);
  margin-top:4px;
  min-height:1.35em;
}
.st-cc-summary-chip--warn{
  border-color:color-mix(in srgb,var(--amber) 48%,var(--bd2));
}
.st-cc-summary-chip--bad{
  border-color:color-mix(in srgb,var(--danger) 50%,var(--bd2));
}
.st-cc-summary-state{margin-top:8px}

/* Credentialed checks — profile modal handshake result (persistent) */
.st-cred-pf-handshake-panel{
  margin-top:10px;
  border:1px solid var(--bd2);
  border-radius:var(--app-radius-md,8px);
  padding:10px 12px;
  background:color-mix(in srgb,var(--bg4) 92%,var(--card));
  min-width:0;
}
.st-cred-pf-handshake-panel--idle{
  border-style:dashed;
  opacity:0.92;
}
.st-cred-pf-handshake-panel--testing{
  border-color:color-mix(in srgb,var(--primary) 35%,var(--bd2));
}
.st-cred-pf-handshake-panel--ok{
  border-color:color-mix(in srgb,var(--green) 42%,var(--bd2));
  background:color-mix(in srgb,var(--green) 8%,var(--bg4));
}
.st-cred-pf-handshake-panel--bad{
  border-color:color-mix(in srgb,var(--danger) 45%,var(--bd2));
  background:color-mix(in srgb,var(--danger) 7%,var(--bg4));
}
.st-cred-pf-handshake-panel-title{
  font-size:11px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--tx3);
  margin-bottom:8px;
}
.st-cred-pf-handshake-dl{
  margin:0;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:4px 12px;
  font-size:12px;
  line-height:1.4;
}
.st-cred-pf-handshake-dl dt{
  margin:0;
  color:var(--tx3);
  font-weight:500;
}
.st-cred-pf-handshake-dl dd{
  margin:0;
  color:var(--tx);
  word-break:break-word;
}
.st-cred-pf-handshake-stale{
  margin-top:8px;
  padding:6px 8px;
  border-radius:6px;
  background:color-mix(in srgb,var(--amber) 12%,var(--bg4));
  border:1px solid color-mix(in srgb,var(--amber) 40%,var(--bd2));
  font-size:12px;
  color:var(--tx);
}
.st-cred-pf-handshake-detail{
  margin-top:8px;
  padding:8px 10px;
  border-radius:6px;
  background:var(--bg3);
  border:1px solid var(--bd2);
  font-size:12px;
  line-height:1.45;
  color:var(--tx);
  max-height:6.5rem;
  overflow:auto;
}
body.light-mode .st-cred-pf-handshake-panel--ok{
  background:color-mix(in srgb,var(--green) 6%,var(--card));
}
body.light-mode .st-cred-pf-handshake-panel--bad{
  background:color-mix(in srgb,var(--danger) 5%,var(--card));
}
#t-settings.on .table-wrap{
  min-width:0;
  max-width:100%;
}
#t-settings.on .st-cc-runs-filters{
  min-width:0;
  max-width:100%;
}
#t-settings.on .st-cc-runs-filters > label{
  min-width:0;
}
.st-cc-runs-filter-plugin{
  flex:1 1 12rem;
  min-width:0;
}
#t-settings.on .st-settings-card .help-line,
#t-settings.on .st-settings-card .hint-micro{
  overflow-wrap:anywhere;
}
#t-settings.on .sync-status,
#t-settings.on .help-mono{
  max-width:100%;
  overflow-x:auto;
}
.st-settings-col-title{
  font-family:var(--sf);
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--text-muted);
  margin:2px 0 8px;
}
#t-settings.on .st-settings-card,
#t-settings.on .card,
#t-settings.on .report-manual-tools,
#t-settings.on .help-box{
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}
#t-settings.on .st-settings-card{
  margin-bottom:0;
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
#t-settings.on .st-settings-group-grid .st-settings-card:last-child{margin-bottom:0}
#t-settings.on .st-settings-card--security{
  border-left:3px solid color-mix(in srgb,var(--amber) 55%,var(--border));
}
#t-settings.on .st-settings-card--feeds,
#t-settings.on .st-settings-card--integrations{
  border-left:3px solid color-mix(in srgb,var(--primary) 52%,var(--border));
}
#t-settings.on .st-settings-card--ai{
  border-left:3px solid color-mix(in srgb,var(--green) 55%,var(--border));
}
#t-settings.on .st-settings-card--maintenance{
  border-left:3px solid color-mix(in srgb,var(--tx3) 45%,var(--border));
}
#t-settings.on .st-settings-card--advanced{
  border-left:3px solid color-mix(in srgb,var(--tx3) 30%,var(--border));
}
/* CVE triage — vulnerabilities table + host panel */
.conf-chip{display:inline-block;margin-left:4px;font-family:var(--mf);font-size:9px;font-weight:600;padding:2px 5px;border-radius:3px;border:1px solid var(--bd2);vertical-align:middle;letter-spacing:.03em}
.conf-high{border-color:rgba(120,200,160,.45);color:var(--green)}
.conf-med{border-color:rgba(200,170,100,.4);color:var(--amber)}
.conf-low{border-color:var(--bd2);color:var(--tx3)}
.hp-triage{line-height:1.45;word-break:break-word}
.hp-head{font-family:var(--mf);font-size:11px;color:var(--tx3);letter-spacing:.05em;text-transform:uppercase;margin-bottom:8px;display:flex;align-items:center;gap:8px}
.hp-head-line{flex:1;height:1px;background:var(--bd)}
.hp-meta{margin-bottom:16px}
.hp-meta-title{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.hp-meta-host{font-size:14px;color:var(--tx)}
.hp-meta-table{width:100%;font-size:12px;font-family:var(--mf)}
.hp-meta-table td{padding:3px 0}
.hp-meta-key{color:var(--tx3);width:80px;vertical-align:top}
.hp-meta-val{color:var(--tx)}
.hp-meta-val-dim{color:var(--tx2)}
.hp-randomized{font-family:var(--mf);font-size:11px;color:var(--tx3);margin-left:6px}
.hp-history-row{display:flex;gap:10px;font-family:var(--mf);font-size:11px;padding:4px 0;border-bottom:1px solid var(--bd)}
.hp-history-ts{color:var(--tx3);min-width:100px}
.hp-history-ports{color:var(--tx2)}
.hp-actions{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}
.hp-actions-host-primary{border-bottom:1px solid var(--bd);padding-bottom:12px}
.hp-ai-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
@media (max-width: 720px) {
  .hp-ai-cols{grid-template-columns:1fr}
}
.hp-ai-col{border-bottom:none;padding:10px;background:var(--bg4);border-radius:8px;border:1px solid var(--bd)}
.hp-ai-ul{margin:6px 0 0;padding-left:18px;color:var(--tx2);font-size:12px;line-height:1.45}
.hp-ai-spin{display:inline-block;width:11px;height:11px;border:2px solid var(--bd2);border-top-color:var(--acc);border-radius:50%;animation:hp-ai-spin .65s linear infinite;vertical-align:-2px;margin-right:6px;flex-shrink:0}
@keyframes hp-ai-spin{to{transform:rotate(360deg)}}
.hp-ai-overview-clamp{display:-webkit-box;-webkit-line-clamp:10;line-clamp:10;-webkit-box-orient:vertical;overflow:hidden;line-height:1.45}
button[data-st-ai-action]:disabled{opacity:.88;cursor:wait}
.sv-sm{font-size:17px;color:var(--tx)}
.sv-md{font-size:19px;color:var(--tx)}
.mb16{margin-bottom:16px}
.w130{width:130px}
.hide{display:none}
.oidc-only.hide{display:none!important}
.device-filter-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:4px 0 12px;font-size:13px}
/* Must win over .device-filter-banner { display:flex } when both classes apply */
.device-filter-banner.hide{display:none}
.profile-grid{display:grid;gap:8px}
.profile-copy{flex:1}
.radio-hidden{display:none}
.help-box{margin-top:10px;padding:10px;border:1px solid var(--bd);border-radius:var(--app-radius-md);font-size:13px;color:var(--tx2)}
.text-strong{color:var(--tx)}
.warn-text{color:var(--amber)}
/* Selection / confirmation checkboxes (distinct from .tog switches) */
.chk{
  display:inline-flex;
  align-items:center;
  gap:7px;
  cursor:pointer;
  line-height:1.25;
  color:var(--text);
}
.chk-label{
  display:inline-block;
  color:inherit;
  line-height:1.25;
  user-select:none;
}
.chk:has(.chk-input:disabled){
  color:var(--text-muted);
  cursor:not-allowed;
}
/* Subtle panel for destructive / apply confirmations */
.chk-confirm-block{
  padding:10px 12px;
  border-radius:8px;
  border:1px solid var(--border);
  background:color-mix(in srgb,var(--card) 94%,var(--primary) 6%);
}
body.light-mode .chk-confirm-block{
  background:color-mix(in srgb,var(--card) 96%,var(--primary) 4%);
}
.zb-enrich-confirm-row.chk-confirm-block{
  margin-top:4px;
}
.chk-input{
  -webkit-appearance:none;
  appearance:none;
  width:18px;
  height:18px;
  min-width:18px;
  box-sizing:border-box;
  border:1.5px solid var(--border-strong);
  border-radius:5px;
  background:var(--card);
  display:inline-grid;
  place-content:center;
  margin:0;
  vertical-align:middle;
  cursor:pointer;
  flex-shrink:0;
  transition:border-color .12s,background-color .12s,box-shadow .12s;
}
.chk-input[type="radio"]{
  border-radius:5px;
}
.chk-input:hover:not(:disabled){
  border-color:color-mix(in srgb,var(--primary) 65%,var(--border));
  background:color-mix(in srgb,var(--primary) 8%,var(--card));
}
.chk-input[type="checkbox"]:checked{
  background:var(--primary);
  border-color:var(--primary);
}
.chk-input[type="checkbox"]:checked:not(:indeterminate)::before{
  content:"";
  width:5px;
  height:9px;
  border:solid var(--primary-fg);
  border-width:0 2px 2px 0;
  transform:rotate(45deg);
  margin-top:-1px;
  box-sizing:border-box;
}
.chk-input[type="checkbox"]:indeterminate{
  background:var(--primary);
  border-color:var(--primary);
}
.chk-input[type="checkbox"]:indeterminate::before{
  content:"";
  width:9px;
  height:2px;
  border:none;
  border-radius:1px;
  background:var(--primary-fg);
  transform:none;
  margin:0;
}
.chk-input[type="radio"]:checked{
  background:var(--primary);
  border-color:var(--primary);
}
.chk-input[type="radio"]:checked::before{
  content:"";
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--primary-fg);
  transform:none;
  margin:0;
}
.chk-input:focus-visible{
  outline:none;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 25%,transparent);
}
.chk-input:disabled{
  opacity:.55;
  cursor:not-allowed;
}
.chk-input:disabled:hover{
  border-color:var(--border-strong);
  background:var(--card);
}
/* Tables: compact control, minimal row height impact */
.tbl .chk-input,
.chk-input.chk-input--compact{
  width:16px;
  height:16px;
  min-width:16px;
}
.tbl .chk-input[type="checkbox"]:checked:not(:indeterminate)::before,
.chk-input.chk-input--compact[type="checkbox"]:checked:not(:indeterminate)::before{
  width:4px;
  height:8px;
  border-width:0 1.5px 1.5px 0;
  margin-top:-1px;
}
.tbl .chk-input[type="checkbox"]:indeterminate::before,
.chk-input.chk-input--compact[type="checkbox"]:indeterminate::before{
  width:8px;
}
.tbl .chk-input[type="radio"]:checked::before,
.chk-input.chk-input--compact[type="radio"]:checked::before{
  width:5px;
  height:5px;
}
.scan-stats{margin-top:8px;font-family:var(--mf);font-size:11px;color:var(--tx3);display:none}
.section-top{margin-top:4px}
.section-title-reset{margin:0}
.btn-sm{font-size:13px}
.mt12{margin-top:12px}
.minw72{width:72px}
.nowrap{white-space:nowrap}
.modal-w480{width:480px;max-height:90vh;overflow-y:auto}
.modal-w560{width:560px;max-height:85vh;overflow-y:auto}
.modal-w600{width:600px;max-height:88vh;overflow-y:auto}
.modal-w640{width:640px;max-height:88vh;overflow-y:auto}
.modal-w760{width:760px;max-height:88vh;overflow-y:auto}
.modal-w360{width:360px;font-family:var(--sf)}
.modal-w440{padding:24px;width:440px;max-height:80vh;overflow-y:auto;font-family:var(--sf)}
.modal-w380{padding:24px;width:380px;font-family:var(--sf)}
.modal-feed{padding:16px;width:min(980px,92vw);max-height:86vh;display:flex;flex-direction:column}
.modal-confirm{padding:16px;width:min(520px,92vw)}
.code-accent{color:var(--acc)}
/* Host details — centered wide modal */
/* Z-index: .bar 10; host centered modal 90–91 (below .modal-bg overlays 100+); device rail 201–202; toasts 999 */
.host-modal-backdrop.host-panel-backdrop{background:var(--modal-backdrop);z-index:89}
.host-modal{
  display:none;
  position:fixed;
  inset:0;
  z-index:90;
  align-items:center;
  justify-content:center;
  padding:24px;
  box-sizing:border-box;
  pointer-events:none;
}
.host-modal-dialog{
  pointer-events:auto;
  width:min(1220px,calc(100vw - 48px));
  max-height:calc(100vh - 48px);
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  box-shadow:0 28px 72px rgba(0,0,0,.58);
  display:flex;
  flex-direction:column;
  min-height:0;
  overflow:hidden;
}
body.light-mode .host-modal-dialog{
  border-color:color-mix(in srgb,var(--border-strong) 45%,var(--border));
  box-shadow:0 22px 56px rgba(15,23,42,.16),0 0 0 1px color-mix(in srgb,var(--text) 3.5%,transparent);
}
.host-modal-header{
  flex-shrink:0;
  padding:18px 22px;
  border-bottom:1px solid var(--border);
  background:var(--card);
  border-radius:var(--radius-lg) var(--radius-lg) 0 0;
}
body.light-mode .host-modal-header{
  background:color-mix(in srgb,var(--card) 94%,var(--surface-muted));
  border-bottom-color:color-mix(in srgb,var(--border) 78%,transparent);
}
.host-modal-header-inner{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.host-modal-header-titles{min-width:0;flex:1}
.host-modal-title{
  margin:0;
  font-family:var(--sf);
  font-size:19px;
  font-weight:700;
  color:var(--tx);
  letter-spacing:.01em;
  line-height:1.3;
  word-break:break-word;
}
.host-modal-header-meta{
  margin-top:10px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  row-gap:6px;
}
.host-modal-scope-wrap{display:inline-flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.host-modal-close{flex-shrink:0}
.host-modal-body{
  flex:1;
  min-height:0;
  overflow-x:hidden;
  overflow-y:auto;
  padding:22px 24px 26px;
  -webkit-overflow-scrolling:touch;
  background:var(--host-modal-body-bg);
}
/* Tabbed host detail: outer body does not scroll; .host-tab-panels scrolls (class toggled in JS when shell is rendered). */
.host-modal-body--tabbed{
  display:flex;
  flex-direction:column;
  overflow:hidden;
  overflow-y:hidden;
}
/* Host modal — in-modal tabs */
.host-tab-shell{
  display:flex;
  flex-direction:column;
  gap:0;
  min-height:0;
  flex:1;
  overflow:hidden;
}
.host-tablist{
  display:flex;
  flex-wrap:wrap;
  align-items:stretch;
  gap:4px 2px;
  flex-shrink:0;
  margin:0 0 12px;
  padding:0 0 10px;
  border-bottom:1px solid var(--border);
  background:var(--host-modal-body-bg);
  box-shadow:0 10px 22px -16px rgba(0,0,0,.55);
}
body.light-mode .host-tablist{
  background:color-mix(in srgb,var(--host-modal-body-bg) 94%,var(--bg));
  border-bottom-color:color-mix(in srgb,var(--border) 76%,transparent);
  box-shadow:0 10px 20px -15px rgba(15,23,42,.088);
}
.host-tab-btn{
  flex:0 0 auto;margin:0;padding:8px 12px 10px;border:none;border-radius:var(--radius) var(--radius) 0 0;
  background:transparent;font-family:var(--sf);font-size:13px;font-weight:600;color:var(--text-muted);
  cursor:pointer;white-space:nowrap;border-bottom:2px solid transparent;
  transition:color .12s,border-color .12s,background .12s;
}
.host-tab-btn:hover{color:var(--text);background:rgba(0,0,0,.04)}
body.light-mode .host-tab-btn:hover{background:color-mix(in srgb,var(--host-modal-body-bg) 82%,var(--text) 6%)}
.host-tab-btn.active{color:var(--text);border-bottom-color:var(--primary)}
.host-tab-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.host-tab-panels{
  min-height:0;
  flex:1;
  overflow-x:hidden;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
}
.host-tab-panel[hidden]{display:none !important}
.host-section{
  background:var(--section-bg);
  border:1px solid var(--section-border);
  border-radius:10px;
  padding:14px 16px;
  margin-bottom:14px;
}
.host-section:last-child{margin-bottom:0}
.host-section--zbx{
  background:color-mix(in srgb,var(--primary) 8%,var(--section-bg));
  box-shadow:inset 3px 0 0 var(--primary);
}
.host-section[aria-label="AI summary"]{
  background:var(--host-ai-section-bg);
  border-color:var(--section-border);
}
.host-section-heading{
  margin:0 0 10px;
  padding-bottom:8px;
  border-bottom:1px solid var(--section-border);
  font-family:var(--sf);
  font-size:12px;
  font-weight:800;
  color:var(--text);
  text-transform:uppercase;
  letter-spacing:.08em;
}
.host-inner-surface{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:10px;
  padding:10px 12px;
}
body:not(.light-mode) .host-inner-surface{box-shadow:inset 0 1px 0 rgba(255,255,255,0.04)}
body.light-mode .host-inner-surface{box-shadow:0 1px 2px rgba(15,23,42,0.04)}
.host-modal-body .host-meta-well{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:10px;
  padding:12px 14px;
  margin-bottom:0;
}
.host-section--zbx .hp-head{margin-bottom:8px}
.host-modal-body .host-section[aria-label="AI summary"] .hp-head{margin-bottom:6px}
.host-modal-body .host-inner-surface .hp-port-row:last-child{border-bottom:none}
.host-modal-body .host-inner-surface .hp-block:last-child{border-bottom:none}
.host-modal-body .host-section[aria-label="AI summary"] .hp-ai-col{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:10px;
}
.host-overview-identity-line{
  font-size:14px;
  color:var(--tx);
  margin-bottom:12px;
  line-height:1.45;
  word-break:break-word;
}
.host-modal-body .hp-meta-key{min-width:128px;width:auto;max-width:44%;padding-right:10px}
.host-modal-body .hp-meta-table{font-size:13px}
.host-modal-body .hp-meta-table td{padding:5px 0}
.host-modal-body .hp-chips{margin-bottom:12px}
.host-modal-body .hp-actions-host-primary{margin-top:4px}
.host-modal-body .st-host-overview-shell{
  background:transparent;
  border:none;
  padding:0;
  margin-bottom:10px;
}
.st-host-identity-band{
  display:flex;
  flex-wrap:wrap;
  gap:12px 16px;
  align-items:flex-start;
  justify-content:space-between;
  padding:12px 14px;
  border:1px solid var(--section-border);
  border-radius:10px;
  background:color-mix(in srgb,var(--section-bg) 88%,var(--surface));
}
.st-host-identity-main{min-width:220px;flex:1}
.st-host-identity-kicker{
  font-family:var(--mf);
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--tx3);
  margin-bottom:4px;
}
.st-host-identity-title{font-size:18px;font-weight:700;color:var(--tx);line-height:1.3}
.st-host-identity-sub{margin-top:6px;color:var(--tx2);line-height:1.45}
.st-host-identity-ip{font-weight:600;color:var(--tx)}
.st-host-identity-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px 12px;
  align-items:center;
  color:var(--tx2);
  max-width:100%;
}
.st-host-identity-meta > span{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:3px 8px;
  border-radius:999px;
  border:1px solid var(--bd2);
  background:color-mix(in srgb,var(--surface) 82%,transparent);
}
.st-host-summary-strip{
  margin-top:10px;
  margin-bottom:10px;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(130px,1fr));
  gap:8px;
}
.st-host-summary-item{
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface);
  padding:8px 10px;
  display:flex;
  flex-direction:column;
  gap:3px;
  min-height:52px;
}
.st-host-summary-k{font-family:var(--mf);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--tx3)}
.st-host-summary-v{font-size:12px;color:var(--tx);line-height:1.35;word-break:break-word}
.st-host-summary-item--emph .st-host-summary-v{font-weight:600}
.st-host-actionbar{
  border-top:1px solid var(--border);
  padding-top:10px;
  padding-bottom:2px;
  margin-top:4px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
}
.st-host-evidence{margin-top:10px}
.st-host-evidence-inner{
  padding:10px 12px;
  border-radius:10px;
  border:1px solid color-mix(in srgb,var(--border) 88%,transparent);
  background:color-mix(in srgb,var(--surface) 92%,transparent);
}
.st-host-evidence-row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 12px;
}
.st-host-evidence-expl{color:var(--tx2);line-height:1.45;margin-bottom:0}
.st-host-evidence-details{margin-top:6px}
.st-host-evidence-details > summary.st-host-evidence-sum{
  cursor:pointer;
  color:var(--tx2);
  list-style-position:outside;
}
.st-host-evidence-details[open] > summary.st-host-evidence-sum{color:var(--tx)}
.st-host-evidence-tbl{font-size:11px}
.st-host-evidence-cell-raw{
  vertical-align:top;
  padding-top:4px;
  padding-bottom:4px;
  min-width:12rem;
}
.st-host-evidence-obs-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  max-width:100%;
}
.st-host-evidence-obs-wrap .st-host-evidence-tbl{
  min-width:720px;
  width:max-content;
  max-width:none;
}
.st-host-evidence-json-pre{
  margin:0;
  padding:8px 10px;
  border-radius:8px;
  background:color-mix(in srgb,var(--surface) 78%,var(--bg));
  border:1px solid color-mix(in srgb,var(--border) 80%,transparent);
  font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size:11px;
  line-height:1.4;
  white-space:pre-wrap;
  word-break:break-word;
  overflow-wrap:anywhere;
  max-width:min(56rem, 92vw);
  min-width:min(28rem, 100%);
  box-sizing:border-box;
}
.st-host-evidence-pending{line-height:1.45}
.st-host-evidence-astmeta{line-height:1.45}
.st-host-identity-evidence .hint-micro{max-width:42rem}
.st-trusted-pref-chip{font-weight:600;opacity:0.95}
.st-host-id-evidence-row--conflict td{background:color-mix(in srgb,var(--amber) 12%,transparent)}
.st-ev-src{
  display:inline-block;
  font-size:10px;
  font-weight:600;
  letter-spacing:0.02em;
  line-height:1.2;
  padding:1px 5px;
  border-radius:4px;
  margin-right:4px;
  vertical-align:middle;
  border:1px solid color-mix(in srgb,var(--border) 70%,transparent);
  background:color-mix(in srgb,var(--surface) 88%,transparent);
  color:var(--tx2);
}
.st-ev-src--authenticated{border-color:color-mix(in srgb,var(--green) 35%,var(--border));color:color-mix(in srgb,var(--green) 85%,var(--tx))}
.st-ev-src--unauthenticated{border-color:color-mix(in srgb,var(--blue) 28%,var(--border));color:color-mix(in srgb,var(--blue) 80%,var(--tx))}
.st-ev-src--monitoring{border-color:color-mix(in srgb,var(--amber) 40%,var(--border));color:color-mix(in srgb,var(--amber) 82%,var(--tx))}
.st-ev-src--enrichment{border-color:color-mix(in srgb,var(--tx2) 45%,var(--border));color:color-mix(in srgb,var(--tx2) 92%,var(--tx))}
.st-host-cc-inner{
  padding:10px 12px;
  border-radius:10px;
  border:1px solid color-mix(in srgb,var(--border) 88%,transparent);
  background:color-mix(in srgb,var(--surface) 92%,transparent);
}
.st-host-cc-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:10px 14px;
}
.st-host-cc-recent > summary.st-host-cc-recent-sum{cursor:pointer;color:var(--tx2);list-style-position:outside}
.st-host-cc-recent[open] > summary.st-host-cc-recent-sum{color:var(--tx)}
.st-host-cc-recent-list{list-style:disc}
.st-cc-pill{
  display:inline-block;
  font-size:10px;
  font-weight:600;
  padding:1px 6px;
  border-radius:999px;
  vertical-align:middle;
}
.st-cc-pill--warn{background:color-mix(in srgb,var(--amber) 18%,transparent);color:var(--tx)}
.st-cc-pill--bad{background:color-mix(in srgb,var(--red) 16%,transparent);color:var(--tx)}
.st-cc-runs-filters .finp{font-size:12px}
.st-cc-runs-retention-note{max-width:52rem;line-height:1.45}
.st-cc-run-detail{
  max-height:min(70vh,520px);
  overflow:auto;
  font-size:11px;
  margin:0;
  padding-right:4px;
}
.st-cc-run-sec-title{
  font-size:11px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:0.04em;
  color:var(--tx2);
  margin-bottom:6px;
}
.st-cc-run-badge{
  display:inline-block;
  font-size:10px;
  font-weight:600;
  padding:2px 7px;
  border-radius:6px;
  border:1px solid var(--border);
  background:color-mix(in srgb,var(--surface) 90%,transparent);
}
.st-cc-run-badge--ok{border-color:color-mix(in srgb,var(--green) 40%,var(--border));color:color-mix(in srgb,var(--green) 88%,var(--tx))}
.st-cc-run-badge--warn{border-color:color-mix(in srgb,var(--amber) 38%,var(--border));color:color-mix(in srgb,var(--amber) 82%,var(--tx))}
.st-cc-run-badge--bad{border-color:color-mix(in srgb,var(--red) 35%,var(--border));color:color-mix(in srgb,var(--red) 85%,var(--tx))}
.st-cc-run-badge--act{border-color:color-mix(in srgb,var(--blue) 32%,var(--border));color:color-mix(in srgb,var(--blue) 82%,var(--tx))}
.st-cc-run-err-hint{color:color-mix(in srgb,var(--amber) 75%,var(--tx2))}
.st-cc-run-detail-tbl{font-size:11px}
.st-cc-norm-prev{max-width:22rem;word-break:break-word;vertical-align:top}
.st-cc-run-sec--debug{
  padding:8px 10px;
  border-radius:8px;
  border:1px dashed color-mix(in srgb,var(--border) 90%,transparent);
  background:color-mix(in srgb,var(--surface) 94%,transparent);
}
.st-health-cc-hint-list{margin:6px 0 0 1rem;padding:0}
.st-health-cc-ret-hint{font-weight:400;opacity:0.92}
.host-modal-body .st-host-empty{
  padding:12px 14px;
  border:1px dashed var(--border);
  border-radius:10px;
  background:color-mix(in srgb,var(--surface) 82%,transparent);
  color:var(--tx2);
  font-size:12px;
  line-height:1.45;
}
.host-modal-body .hp-meta-table tr.st-host-meta-secondary td{
  color:var(--tx3);
  font-size:12px;
}
.host-modal-body .st-host-subsection{
  margin-top:10px;
  margin-bottom:0;
  background:var(--section-bg);
}
.host-modal-body .st-host-meta-rail{
  box-shadow:inset 3px 0 0 color-mix(in srgb,var(--primary) 45%,var(--border));
}
@media (max-width:640px){
  .host-modal{padding:12px}
  .host-modal-dialog{width:calc(100vw - 24px);max-height:calc(100vh - 24px)}
  .host-modal-header{padding:14px 16px}
  .host-modal-title{font-size:17px}
  .host-modal-body{padding:16px 14px 22px}
}
/* Device panel — keep right-rail layout (paired with .host-panel-head / .host-panel-body) */
.host-panel{display:none;position:fixed;top:0;right:0;width:420px;height:100vh;background:var(--bg2);border-left:1px solid var(--bd);z-index:202;overflow-y:auto;box-shadow:-6px 0 32px rgba(0,0,0,.35)}
.host-panel-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--bd);position:sticky;top:0;background:var(--bg2);z-index:1}
.host-panel-title{font-family:var(--sf);font-size:15px;font-weight:700;color:var(--tx);letter-spacing:.01em}
.host-panel-close{font-size:15px;padding:2px 8px}
.host-panel-body{padding:16px}
.host-panel-backdrop{display:none;position:fixed;inset:0;z-index:199;background:rgba(0,0,0,.2)}
.device-panel{z-index:202}
.device-panel-backdrop{z-index:201}
.dp-asset-row{cursor:pointer}
.scan-hist-asset-row:hover{background:var(--bg3)}
.scan-hist-row{cursor:pointer}
.scan-hist-row:hover{background:var(--bg3)}
/* Pass 4: briefly highlight a row after queueing a scan (Scan control / host rescan). */
@keyframes st-scan-hist-row-flash-kf{
  0%,100%{box-shadow:inset 0 0 0 0 transparent;background-color:transparent}
  45%{box-shadow:inset 4px 0 0 0 var(--acc);background-color:color-mix(in srgb,var(--acc) 15%,var(--bg2))}
}
tr.st-scan-hist-row.st-scan-hist-row-flash{
  animation:st-scan-hist-row-flash-kf 1.05s ease-in-out 3;
}
/* Scan History tab — readability, status chips, zebra (light/dark via tokens) */
.st-shsf-wrap{align-items:center}
.st-shsf-label{margin-right:2px}
.tbl-wrap.tbl-wrap--data .tbl td,
.tbl-wrap.tbl-scan-hist .tbl td{
  padding-top:10px;
  padding-bottom:10px;
  vertical-align:middle;
}
.tbl-wrap.tbl-wrap--data .tbl tbody tr:nth-child(even) td,
.tbl-wrap.tbl-scan-hist .tbl tbody tr:nth-child(even) td{
  background-color:color-mix(in srgb,var(--bg2) 90%,var(--tx) 5%);
}
.scan-hist-cell-id{font-size:11px;color:var(--tx3)}
.scan-hist-cell-primary{min-width:0;max-width:340px}
.scan-hist-primary-btn{
  display:block;width:100%;text-align:left;padding:0;border:none;background:none;cursor:pointer;
  font:inherit;font-weight:600;color:var(--tx);line-height:1.35;margin:0 0 2px
}
.scan-hist-primary-btn:hover{color:var(--acc)}
.scan-hist-target-sub{color:var(--tx2);margin-top:2px;line-height:1.35;word-break:break-word}
.scan-hist-inline-meta{color:var(--tx3);margin-top:4px;line-height:1.4}
.scan-hist-cell-muted{color:var(--tx3)}
.scan-hist-empty{color:var(--tx2);padding:16px 12px!important;text-align:center;line-height:1.45}
.scan-hist-queue-empty{line-height:1.45;color:var(--tx2)}
.scan-hist-qmsg{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:4px;color:var(--tx2)}
.scan-hist-track{max-width:240px}
.scan-hist-err-hint{color:var(--red);margin-top:4px}
.scan-hist-retry-hint{color:var(--amber)}
tr.scan-hist-row--active{background:color-mix(in srgb,var(--primary) 8%,var(--bg2))}
tr.scan-hist-row--active td:first-child{box-shadow:inset 3px 0 0 0 var(--acc)}
.scan-hist-chip{
  display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:999px;
  font-size:11px;font-weight:600;line-height:1.35;border:1px solid transparent;white-space:nowrap
}
.scan-hist-chip--running{
  color:var(--primary);background:color-mix(in srgb,var(--primary) 16%,transparent);
  border-color:color-mix(in srgb,var(--primary) 38%,transparent)
}
.scan-hist-chip--queued,.scan-hist-chip--default{color:var(--tx3);background:color-mix(in srgb,var(--tx3) 12%,transparent);border-color:color-mix(in srgb,var(--tx3) 28%,transparent)}
.scan-hist-chip--retrying{
  color:var(--amber);background:color-mix(in srgb,var(--amber) 14%,transparent);
  border-color:color-mix(in srgb,var(--amber) 35%,transparent)
}
.scan-hist-chip--done{
  color:var(--green);background:color-mix(in srgb,var(--green) 14%,transparent);
  border-color:color-mix(in srgb,var(--green) 32%,transparent)
}
.scan-hist-chip--failed{
  color:var(--red);background:color-mix(in srgb,var(--red) 12%,transparent);
  border-color:color-mix(in srgb,var(--red) 30%,transparent)
}
.scan-hist-chip--aborted{
  color:var(--amber);
  background:color-mix(in srgb,var(--amber) 20%,transparent);
  border-color:color-mix(in srgb,var(--amber) 40%,transparent)
}
/* Scan History tab — operational timeline bands (queue → archive); scoped to #t-scanhist */
#t-scanhist.on{
  display:flex;
  flex-direction:column;
  gap:12px;
}
#t-scanhist.on > .st-band{
  margin-bottom:0;
}
.st-scanhist-band-head{
  display:grid;
  grid-template-columns:minmax(88px,120px) 1fr;
  gap:12px 20px;
  align-items:start;
  margin-bottom:2px;
}
@media (max-width:720px){
  .st-scanhist-band-head{grid-template-columns:1fr}
}
.st-scanhist-kicker{
  font-family:var(--mf);
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--primary);
  padding-top:5px;
}
body.light-mode .st-scanhist-kicker{color:var(--primary)}
.st-scanhist-page-title{
  font-family:var(--sf);
  font-size:18px;
  font-weight:700;
  color:var(--text);
  margin:0 0 6px;
  line-height:1.25;
  letter-spacing:-.01em;
}
.st-scanhist-intro{margin:0;line-height:1.45}
.st-scanhist-status-filters{
  padding-top:12px;
  margin-top:8px;
  border-top:1px solid color-mix(in srgb,var(--bd) 68%,transparent);
}
.st-scanhist-region-head{
  margin-bottom:12px;
  padding-bottom:10px;
  border-bottom:1px solid color-mix(in srgb,var(--bd) 72%,transparent);
}
.st-scanhist-region-title-row{
  display:flex;
  gap:14px;
  align-items:stretch;
}
.st-scanhist-region-text{min-width:0;flex:1}
.st-scanhist-timeline-mark{
  flex-shrink:0;
  width:4px;
  border-radius:999px;
  min-height:2.75rem;
  align-self:stretch;
  margin-top:3px;
  background:var(--primary);
  opacity:.9;
}
.st-scanhist-timeline-mark--archive{
  background:color-mix(in srgb,var(--text-muted) 42%,var(--bd));
  opacity:1;
}
.st-scanhist-region-title{
  font-family:var(--sf);
  font-size:15px;
  font-weight:700;
  color:var(--text);
  margin:0 0 4px;
  line-height:1.3;
  letter-spacing:.01em;
}
.st-scanhist-region-lede{
  margin:0;
  line-height:1.45;
  max-width:52rem;
}
.st-scanhist-toolbar{
  padding:8px 10px;
  margin-bottom:10px;
  background:color-mix(in srgb,var(--section-bg) 72%,transparent);
  border:1px solid color-mix(in srgb,var(--bd) 62%,transparent);
  border-radius:var(--app-radius-md);
  gap:8px 10px;
}
#t-scanhist.on .st-scanhist-table{
  border-color:color-mix(in srgb,var(--section-border) 85%,transparent);
}
#t-scanhist.on .tbl-wrap.tbl-scan-hist .tbl thead th{
  font-size:10px;
  letter-spacing:.02em;
  text-transform:uppercase;
  color:var(--text-muted);
}
.st-scanhist-empty-hint{
  padding:10px 12px;
  border-radius:var(--app-radius-md);
  background:color-mix(in srgb,var(--card) 78%,var(--section-bg));
  border:1px dashed color-mix(in srgb,var(--bd) 58%,transparent);
  line-height:1.45;
}
/* Scan detail modal — layout aligned with Scan History / host modal language */
.scan-hist-detail-card{
  max-width:min(100vw - 24px,820px);
  width:100%;
  max-height:min(92vh,960px);
  display:flex;
  flex-direction:column;
  padding:0;
  overflow:hidden
}
.scan-hist-detail-hd{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:16px 18px 12px;
  border-bottom:1px solid var(--bd);
  flex-shrink:0;
  background:color-mix(in srgb,var(--section-bg) 55%,var(--card))
}
.scan-hist-detail-hd-text{min-width:0;flex:1}
.scan-hist-detail-eyebrow{
  font-family:var(--mf);
  font-size:10px;
  font-weight:600;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--primary);
  margin:0 0 6px;
  line-height:1.2;
}
body.light-mode .scan-hist-detail-eyebrow{color:var(--primary)}
.scan-hist-detail-title{
  font-family:var(--sf);
  font-size:17px;
  font-weight:700;
  color:var(--tx);
  margin:0 0 6px;
  line-height:1.25
}
.scan-hist-detail-header-sub{color:var(--tx2);line-height:1.45}
.scan-hist-detail-hd-id{margin-bottom:6px}
.scan-hist-detail-hd-chips{margin-bottom:6px}
.scan-hist-detail-hd-target{margin-bottom:2px}
.scan-hist-detail-body{
  padding:14px 18px 18px;
  overflow-y:auto;
  flex:1;
  min-height:0
}
.scan-hist-detail-stats{
  margin-bottom:16px;
  padding:12px 14px;
  border-radius:var(--app-radius-md);
  background:color-mix(in srgb,var(--section-bg) 82%,var(--card));
  border:1px solid color-mix(in srgb,var(--bd) 72%,transparent);
}
.scan-hist-detail-stat-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(132px,1fr));
  gap:10px
}
.scan-hist-detail-stat{
  background:var(--section-bg);
  border:1px solid var(--bd);
  border-radius:var(--radius);
  padding:10px 12px;
  min-height:64px
}
.scan-hist-detail-stat-label{
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--tx3);
  margin-bottom:4px
}
.scan-hist-detail-stat-val{
  font-size:16px;
  font-weight:700;
  color:var(--tx);
  font-variant-numeric:tabular-nums
}
.scan-hist-detail-body > .scan-hist-detail-sec{
  position:relative;
  margin-bottom:16px;
  padding-left:14px;
  border-left:2px solid color-mix(in srgb,var(--primary) 26%,var(--bd));
}
.scan-hist-detail-body > .scan-hist-detail-sec:last-child{margin-bottom:0}
.scan-hist-detail-body > .scan-hist-detail-sec.scan-hist-detail-actions{
  border-left-color:color-mix(in srgb,var(--acc) 32%,var(--bd));
  padding-top:4px;
}
.scan-hist-detail-sec-title{
  font-family:var(--sf);
  font-size:12px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--tx3);
  margin:0 0 8px;
  padding-bottom:0;
  border-bottom:none
}
.scan-hist-detail-sec-body{margin-top:4px}
.scan-hist-detail-panel{
  font-size:12px;
  line-height:1.5;
  color:var(--tx2)
}
.scan-hist-detail-panel--muted{color:var(--tx2)}
.scan-hist-detail-meta-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
  gap:8px 14px
}
.scan-hist-detail-callout{
  padding:10px 12px;
  border-radius:var(--radius);
  border:1px solid var(--bd);
  font-size:12px;
  line-height:1.45
}
.scan-hist-detail-callout--err{
  border-color:color-mix(in srgb,var(--red) 45%,var(--bd));
  background:color-mix(in srgb,var(--red) 10%,var(--bg2));
  color:var(--tx)
}
.scan-hist-detail-disclosure{
  border:1px solid var(--bd);
  border-radius:var(--radius);
  padding:8px 10px;
  background:color-mix(in srgb,var(--bg2) 96%,var(--tx) 4%)
}
.scan-hist-detail-disclosure-sum{
  cursor:pointer;
  font-weight:600;
  font-size:12px;
  color:var(--tx);
  list-style-position:outside
}
.scan-hist-detail-disclosure[open] > .scan-hist-detail-disclosure-sum{
  margin-bottom:8px
}
.scan-hist-detail-log-body{padding-top:4px}
.scan-hist-detail-log-tbl td{padding-top:6px;padding-bottom:6px;vertical-align:top}
.scan-hist-detail-log-ts{color:var(--tx3);white-space:nowrap;width:1%}
.scan-hist-detail-log-lv{font-weight:600;color:var(--tx2)}
.scan-hist-detail-log-msg{color:var(--tx);word-break:break-word}
.scan-hist-detail-raw-pre{
  margin:8px 0 0;
  max-height:36vh;
  overflow:auto;
  padding:10px;
  font-size:11px;
  line-height:1.4;
  font-family:var(--mf);
  background:var(--bg);
  border:1px solid var(--bd);
  border-radius:6px;
  color:var(--tx2);
  white-space:pre-wrap
}
.scan-hist-detail-asset-wrap{margin-top:4px}
.scan-hist-detail-asset-ip{font-weight:600;color:var(--tx)}
.scan-hist-detail-asset-host{color:var(--tx);font-weight:500}
.scan-hist-detail-asset-muted{color:var(--tx3)}
.scan-hist-detail-assets-hint{color:var(--tx3);max-width:52rem}
.scan-hist-detail-actions{
  border-top:1px solid color-mix(in srgb,var(--bd) 75%,transparent);
  padding-top:12px;
  margin-top:6px
}
.scan-hist-detail-actions-inner{align-items:center}
/* Zabbix match review — nested tables inside disclosure (dense but aligned with .tbl-wrap--data) */
.zb-mr-tbl-wrap .tbl thead th{
  font-size:10px;
  padding-top:8px;
  padding-bottom:8px;
}
.zb-mr-tbl-wrap .tbl tbody td{
  padding-top:7px;
  padding-bottom:7px;
  font-size:12px;
  vertical-align:middle;
}
.fsync-pre{margin:0;white-space:pre-wrap;overflow:auto;max-height:72vh;background:var(--bg);border:1px solid var(--bd);padding:12px;font-size:12px;font-family:var(--mf);color:var(--tx2)}
.z100{z-index:100}.z101{z-index:101}.z102{z-index:102}.z103{z-index:103}.z210{z-index:210}.z215{z-index:215}.z216{z-index:216}.z218{z-index:218}.z219{z-index:219}.z220{z-index:220}.z260{z-index:260}

/* Session/OIDC: hide full UI until signed in; gate screen if login modal is dismissed */
body.st-auth-locked{
  padding:0;
}
body.st-auth-locked .shell{display:none!important}
.st-auth-gate{
  display:none;position:fixed;inset:0;z-index:250;align-items:center;justify-content:center;
  background:var(--bg);flex-direction:column;padding:24px;text-align:center
}
.st-auth-gate:not(.hide){display:flex}
.st-auth-gate-inner{max-width:360px}
.st-auth-gate-title{
  font-family:var(--sf);font-size:18px;font-weight:700;color:var(--tx);letter-spacing:.02em;margin-bottom:10px
}
.gap6{gap:6px}.gap8{gap:8px}.gap10{gap:10px}
.pad8y{padding:8px 0}
.font11{font-size:12px}.font10{font-size:11px}
.nowrap-cell{white-space:nowrap}
.track{height:3px;background:var(--bg4);border-radius:2px;margin-top:4px;width:200px}
.fill{height:3px;background:var(--acc);border-radius:2px;transition:width .3s}
.summary-line{margin-top:3px}
.summary-empty{color:var(--tx3)}
.danger{color:var(--red)}
.status-link{font-family:var(--mf);font-size:11px}
.minw0{min-width:0}
.mt4{margin-top:4px}
.cpe-break{word-break:break-all}
.sync-status{
  margin-top:10px;
  font-family:var(--sf);
  font-size:13px;
  font-weight:500;
  color:var(--tx2);
  min-height:1.4em;
}
.sync-status.run{
  color:var(--acc);
  font-weight:600;
  margin-top:12px;
  padding:10px 12px;
  border-radius:var(--radius);
  border:1px solid rgba(23,135,251,.4);
  background:rgba(23,135,251,.1);
  animation:syncStatusPulse 2s ease-in-out infinite;
}
body.light-mode .sync-status.run{
  border-color:rgba(0,111,255,.35);
  background:rgba(0,111,255,.08);
  animation-name:syncStatusPulseLight;
}
@keyframes syncStatusPulse{
  0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(23,135,251,.12)}
  50%{opacity:.92;box-shadow:0 0 0 4px rgba(23,135,251,.06)}
}
@keyframes syncStatusPulseLight{
  0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(0,111,255,.1)}
  50%{opacity:.92;box-shadow:0 0 0 4px rgba(0,111,255,.05)}
}
.sync-status.ok{color:var(--green);font-weight:600}
.sync-status.err{color:var(--red);font-weight:600}

/* System health tab */
.health-page .health-panel{max-width:none}
#t-health.on{
  display:flex;
  flex-direction:column;
  gap:12px;
}
#t-health.on > .st-band{margin-bottom:0}
.st-health-snapshot-root{
  display:flex;
  flex-direction:column;
  gap:12px;
  min-width:0;
}
.st-health-snapshot-root > .st-band{margin-bottom:0}
.st-health-band-head{
  display:grid;
  grid-template-columns:minmax(88px,120px) 1fr;
  gap:12px 20px;
  align-items:start;
}
@media (max-width:720px){
  .st-health-band-head{grid-template-columns:1fr}
}
.st-health-kicker{
  font-family:var(--mf);
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--primary);
  padding-top:5px;
}
body.light-mode .st-health-kicker{color:var(--primary)}
.st-health-page-title{
  font-family:var(--sf);
  font-size:18px;
  font-weight:700;
  color:var(--text);
  margin:0;
  line-height:1.25;
  letter-spacing:-.01em;
}
.st-health-toolbar{
  align-items:flex-start;
  gap:10px;
  margin-bottom:8px;
}
.st-health-toolbar .st-health-page-title{flex:1;min-width:0}
.st-health-overview-lede{margin-top:0}
.st-health-section-head{margin-bottom:12px}
.st-health-section-head .health-sec-title{margin-bottom:6px}
.st-health-sec-lede{max-width:min(100%,52rem);line-height:1.45}
.st-health-snapshot-line{max-width:min(100%,52rem);line-height:1.45}
.st-health-kpi-grid{min-width:0}
.st-health-kpi{
  margin:0;
  padding:12px 14px;
  background:color-mix(in srgb,var(--card) 58%,var(--section-bg));
  border:1px solid color-mix(in srgb,var(--bd) 55%,transparent);
  border-radius:var(--app-radius-md);
  box-shadow:none;
}
body.light-mode .st-health-kpi{
  border-color:color-mix(in srgb,var(--border) 85%,transparent);
}
.st-health-band--attention{
  border-left:3px solid color-mix(in srgb,var(--amber) 72%,var(--bd));
  padding-left:calc(20px - 3px);
}
.st-health-band--worker .st-health-worker-lede{max-width:min(100%,52rem);line-height:1.45}
.st-health-band--worker .st-health-worker-summary{max-width:min(100%,52rem);line-height:1.45}
.st-health-band--worker .st-health-maint-summary,
.st-health-band--worker .st-health-maint-counts,
.st-health-band--worker .st-health-maint-old{max-width:min(100%,52rem);line-height:1.45}
.st-health-warning-list{margin:0;padding-left:1.2em}
.st-health-warning-list li{margin:4px 0;line-height:1.45}
.st-health-warning-list li::marker{color:var(--amber)}
.st-health-all-clear{line-height:1.45}
.st-health-adv-details{margin:0}
.st-health-adv-summary{cursor:pointer;list-style-position:outside}
.st-health-band--placeholder .mb0{margin-bottom:0}
.st-health-band--error .mb0{margin-bottom:0}
.health-section{margin-bottom:0}
.health-sec-title{
  font-family:var(--sf);
  font-size:13px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--text-muted);
  margin:0 0 8px;
}
.health-kpi-grid{
  display:grid;
  gap:10px;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
}
.health-kpi{margin:0;padding:12px 14px}
.health-kpi-label{
  font-family:var(--mf);
  font-size:11px;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--text-muted);
  margin-bottom:4px;
}
.health-kpi-value{
  font-size:22px;
  font-weight:700;
  line-height:1.1;
  margin-bottom:4px;
  word-break:break-word;
}
.health-kpi-help{
  font-size:12px;
  line-height:1.35;
  min-height:1.35em;
}
.health-adv-details{margin:0}
.health-adv-details summary{cursor:pointer;list-style-position:outside}
.hstate-ok{color:var(--green);font-weight:600}
.hstate-warn{color:var(--amber);font-weight:600}
.hstate-err{color:var(--red);font-weight:600}
.hstate-unk{color:var(--tx2);font-weight:500}

/* Reports & Analysis — snapshot drift / trends */
.report-risk-badge{
  font-family:var(--sf),system-ui,sans-serif;
  font-size:11px;
  font-weight:700;
  padding:5px 11px;
  border-radius:8px;
  border:1px solid var(--border);
  letter-spacing:.03em;
  background:var(--bg3);
  color:var(--tx);
}
.report-risk-high{border-left:3px solid var(--red)}
.report-risk-warn{border-left:3px solid var(--amber)}
.report-risk-ok{border-left:3px solid var(--green)}
.report-risk-stable{border-left:3px solid var(--tx2)}
.report-trend-line-chart{display:block;max-width:100%;height:auto}
.report-snapshot-narrative{color:var(--tx)}
.report-snapshot-drift-out{font-family:var(--sf),system-ui,sans-serif;font-size:13px;line-height:1.5}
.report-trends-out{font-family:var(--sf),system-ui,sans-serif;font-size:13px;line-height:1.45}

/* Reports & Analysis — workflow bands (#t-report.on); st-report-* scoped */
#t-report.on{
  display:flex;
  flex-direction:column;
  gap:12px;
}
#t-report.on > .st-band,
#t-report.on > .report-section{
  margin-bottom:0;
}
.st-report-band-head{
  display:grid;
  grid-template-columns:minmax(88px,120px) 1fr;
  gap:12px 20px;
  align-items:start;
}
@media (max-width:720px){
  .st-report-band-head{grid-template-columns:1fr}
}
.st-report-kicker{
  font-family:var(--mf);
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--primary);
  padding-top:5px;
}
body.light-mode .st-report-kicker{color:var(--primary)}
.st-report-page-title{
  font-family:var(--sf);
  font-size:18px;
  font-weight:700;
  color:var(--text);
  margin:0 0 8px;
  line-height:1.25;
  letter-spacing:-.01em;
}
.st-report-lead{color:var(--text-muted)}
.st-report-legend{
  list-style:none;
  margin:12px 0 0;
  padding:10px 12px;
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:8px 16px;
  border-radius:var(--app-radius-md);
  border:1px solid color-mix(in srgb,var(--bd) 65%,transparent);
  background:color-mix(in srgb,var(--section-bg) 55%,var(--card));
  font-size:12px;
  line-height:1.4;
  color:var(--text-muted);
}
.st-report-legend-k{
  font-family:var(--mf);
  font-weight:600;
  color:var(--text);
  margin-right:6px;
}
.st-report-legend-v{color:var(--text-muted)}
.st-report-region-head{
  margin-bottom:12px;
  padding-bottom:10px;
  border-bottom:1px solid color-mix(in srgb,var(--bd) 72%,transparent);
}
.st-report-region-head--secondary{
  border-bottom-style:dashed;
  border-bottom-color:color-mix(in srgb,var(--bd) 55%,transparent);
}
.st-report-region-head--flush{margin-bottom:10px}
.st-report-region-row{
  display:flex;
  gap:14px;
  align-items:stretch;
}
.st-report-region-text{min-width:0;flex:1}
.st-report-step-mark{
  flex-shrink:0;
  width:4px;
  border-radius:999px;
  min-height:2.75rem;
  align-self:stretch;
  margin-top:3px;
  background:var(--primary);
  opacity:.88;
}
.st-report-step-mark--mode{background:var(--primary)}
.st-report-step-mark--evidence{background:color-mix(in srgb,var(--text-muted) 38%,var(--bd));opacity:1}
.st-report-region-title{
  font-family:var(--sf);
  font-size:15px;
  font-weight:700;
  color:var(--text);
  margin:0 0 4px;
  line-height:1.3;
  letter-spacing:.01em;
}
.st-report-region-lede{max-width:52rem}
.st-report-controls-stack{min-width:0}
.st-report-panel{min-width:0}
#t-report.on .st-report-panel--scope{
  padding-left:12px;
  border-left:2px solid color-mix(in srgb,var(--primary) 24%,var(--bd));
}
#t-report.on .st-report-panel--inventory{
  padding-left:12px;
  border-left:2px solid color-mix(in srgb,var(--green) 22%,var(--bd));
}
.st-report-inset-divider{
  height:1px;
  margin:14px 0;
  background:color-mix(in srgb,var(--bd) 55%,transparent);
}
.st-report-analysis-stack{min-width:0}
.st-report-output-block{margin-bottom:4px}
.st-report-output-block:last-child{margin-bottom:0}
.st-report-subsection-title{
  margin-top:0!important;
  margin-bottom:8px!important;
}
#t-report.on .st-report-output-surface{
  padding:12px 14px;
  border-radius:var(--app-radius-md);
  border:1px solid color-mix(in srgb,var(--bd) 70%,transparent);
  background:color-mix(in srgb,var(--card) 72%,var(--section-bg));
}
.st-report-empty-guide{
  margin:0 0 14px;
  padding:8px 11px;
  border-radius:var(--app-radius-md);
  border:1px dashed color-mix(in srgb,var(--bd) 52%,transparent);
  background:color-mix(in srgb,var(--section-bg) 78%,var(--card));
  line-height:1.45;
}
.st-report-manual-eyebrow{
  font-family:var(--mf);
  font-size:10px;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--text-muted);
  margin:0 0 6px;
}
#t-report.on .st-report-manual-band-title{
  font-size:14px;
  font-weight:700;
  text-transform:none;
  letter-spacing:.01em;
  color:var(--text);
  border-bottom:none;
  padding-bottom:0;
  margin:0 0 8px;
}
#t-report.on .st-report-band--manual{
  border:1px dashed color-mix(in srgb,var(--bd) 58%,transparent);
  background:color-mix(in srgb,var(--section-bg) 52%,var(--card));
}
#t-report.on .st-report-manual-surface{
  padding:12px 14px;
  border-radius:var(--app-radius-md);
  border:1px solid color-mix(in srgb,var(--bd) 68%,transparent);
  background:color-mix(in srgb,var(--bg2) 78%,var(--section-bg));
}
#t-report.on .st-report-band--advanced{
  border:1px dashed color-mix(in srgb,var(--text-muted) 32%,var(--bd));
  background:color-mix(in srgb,var(--bg2) 90%,transparent);
}
.st-report-advanced-kicker{margin-top:0}

/* Reports & Analysis — Pass 1 layout (sections + manual tools band) */
.report-page-title{margin-bottom:6px}
#t-report.on .report-page-title{margin-bottom:8px}
.report-page-lead{color:var(--text-muted)}
.report-section{
  margin-bottom:22px;
}
#t-report.on .report-section{
  margin-bottom:0;
}
.report-section-title{
  font-family:var(--sf);
  font-size:13px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--text-muted);
  margin:0 0 10px;
  padding-bottom:6px;
  border-bottom:1px solid color-mix(in srgb,var(--border) 75%,transparent);
}
.report-card-title{
  font-family:var(--mf);
  font-size:12px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--text-muted);
  margin-bottom:8px;
}
.report-subheading{
  font-family:var(--sf);
  font-size:13px;
  font-weight:600;
  color:var(--text);
  margin:18px 0 8px;
}
.report-subheading:first-of-type{
  margin-top:0;
}
.report-manual-tools{
  margin-top:8px;
  padding-top:18px;
  border-top:1px solid var(--border);
  background:color-mix(in srgb,var(--section-bg) 55%,transparent);
  border-radius:var(--app-radius-lg);
  padding-left:14px;
  padding-right:14px;
  padding-bottom:16px;
}
#t-report.on .report-manual-tools{
  margin-top:0;
  padding-top:0;
  border-top:none;
  background:transparent;
  border-radius:0;
  padding-left:0;
  padding-right:0;
  padding-bottom:0;
}
.report-manual-lead{margin-top:4px!important}
.report-manual-card{
  border-color:color-mix(in srgb,var(--border) 90%,var(--text) 4%);
}
.report-details-summary,
.report-advanced-summary{
  cursor:pointer;
  font-size:12px;
  font-weight:600;
  color:var(--text-muted);
  list-style-position:outside;
}
.report-scope-details,
.report-glance-details,
.report-drift-details,
.report-trends-details{
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:6px 10px;
  background:color-mix(in srgb,var(--bg2) 92%,var(--text) 3%);
}
.report-advanced-region{
  margin-top:4px;
}
#t-report.on .report-advanced-region{
  margin-top:0;
}
.report-advanced-details{
  border:1px dashed color-mix(in srgb,var(--border) 70%,var(--text-muted) 30%);
  border-radius:var(--radius);
  padding:8px 12px 12px;
  background:color-mix(in srgb,var(--bg2) 88%,transparent);
}
.report-advanced-details[open] > .report-advanced-summary{
  margin-bottom:8px;
}
body.light-mode .report-manual-tools{
  background:color-mix(in srgb,var(--surface-muted) 70%,transparent);
}
body.light-mode #t-report.on .report-manual-tools{
  background:transparent;
}

.btn-busy{
  opacity:.85;
  position:relative;
}
.btn-busy::after{
  content:'';
  width:10px;height:10px;
  border:2px solid currentColor;
  border-right-color:transparent;
  border-radius:50%;
  display:inline-block;
  margin-left:7px;
  animation:spin .8s linear infinite;
  vertical-align:-2px;
}
@keyframes spin{to{transform:rotate(360deg)}}

/* Empty state banner */
.st-empty-banner{padding:16px 20px;margin:8px 0 12px;border-radius:8px;background:var(--bg2);border:1px solid var(--brd);line-height:1.5}
.st-empty-banner strong{color:var(--tx1)}
.st-empty-steps{margin:8px 0 4px 18px;padding:0;list-style:disc}
.st-empty-steps li{margin-bottom:4px;color:var(--tx2)}

/* Scrollbar polish */
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-track{background:var(--bg2)}
*::-webkit-scrollbar-thumb{background:#353d4a;border:2px solid var(--bg2);border-radius:10px}
*::-webkit-scrollbar-thumb:hover{background:#454e5e}
body.light-mode *::-webkit-scrollbar-thumb{background:#b8c6d8;border-color:var(--bg2)}
body.light-mode *::-webkit-scrollbar-thumb:hover{background:#9db2cb}
