/* ============================================================================
   Net Tools — Toolbox (D) + Console (F) layouts. Two themes via CSS variables,
   one shared shell. Loaded AFTER styles.css (which styles the result cards).
   ============================================================================ */
:root{
  color-scheme: dark;
  --page:#111b23; --panel:#1a2731; --panel-hover:#22333f; --field:#14212a;
  --text:#edf3f7; --muted:#a8bbc9; --border:#344550; --accent:#54d9ed;
  --accent-ink:#08252a; --selected:#183e49; --radius:8px;
  --l-font: system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --l-mono: ui-monospace,SFMono-Regular,Consolas,monospace;
  /* Tool button design tokens (Toolbox / slate-cyan) */
  --tool-bg:#243744; --tool-border:#435967; --tool-text:#edf4f8;
  --tool-hover:#2d4655; --tool-sel-bg:#163f4b; --tool-sel-accent:#54d9ed;
}
html[data-layout="console"]{
  --page:#0d1115; --panel:#141a20; --panel-hover:#20282f; --field:#11171d;
  --text:#e8edf3; --muted:#a3b1c1; --border:#303a43; --accent:#ffbd22;
  --accent-ink:#201600; --selected:#302711; --radius:5px;
  /* Tool button design tokens (Console / graphite-amber) */
  --tool-bg:#1c242c; --tool-border:#46515c; --tool-text:#edf1f6;
  --tool-hover:#2b3540; --tool-sel-bg:#372b10; --tool-sel-accent:#ffbd22;
}

/* Full-document background incl. long reports + footer */
html{min-height:100%;background:var(--page);}
body{margin:0;min-height:100vh;background:var(--page);color:var(--text);
  font:14px/1.5 var(--l-font);}
.nt-shell *{box-sizing:border-box;}
.nt-shell button,.nt-shell input,.nt-shell select{font:inherit;}
.nt-shell button{cursor:pointer;}
.nt-shell button:disabled{opacity:.55;cursor:progress;}
.nt-shell [hidden]{display:none !important;}

/* Shared content width — overrides the old styles.css .container{max-width:1040px}. */
.nt-shell .container{width:min(1560px,calc(100% - 48px));max-width:none;margin-inline:auto;padding:0;}

/* ---------- Header ---------- */
.site-header{border-bottom:1px solid var(--border);background:var(--panel);}
html[data-layout="console"] .site-header{background:var(--page);}
.header-inner{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px;}
.brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:var(--text);}
.brand-logo{height:38px;width:auto;display:block;}
.brand-text{display:flex;flex-direction:column;line-height:1.1;}
.brand-name{font-size:22px;font-weight:700;letter-spacing:-.5px;white-space:nowrap;}
.brand-name span{color:var(--accent);}
html[data-layout="console"] .brand-name span{color:var(--text);}
.brand-sub{color:var(--muted);font-size:12px;}
html[data-layout="console"] .brand-sub{font-family:var(--l-mono);font-size:11px;}
.header-actions{display:flex;align-items:center;gap:16px;}

.hdr-status{position:static !important;top:auto;right:auto;margin:0;display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;
  background:var(--field);border:1px solid var(--border);font-size:12px;color:var(--muted);text-decoration:none;}
.hdr-status:hover{border-color:var(--accent);color:var(--text);}
.hdr-status-dot{width:9px;height:9px;border-radius:50%;background:#64748b;flex:none;}
.hdr-status-dot[data-state="ok"]{background:#10b981;box-shadow:0 0 0 3px rgba(16,185,129,.2);}
.hdr-status-dot[data-state="minor"]{background:#f59e0b;box-shadow:0 0 0 3px rgba(245,158,11,.2);}
.hdr-status-dot[data-state="major"]{background:#ef4444;box-shadow:0 0 0 3px rgba(239,68,68,.2);}
.hdr-status-ext{font-size:.6rem;opacity:.55;}

.layout-switch{display:inline-flex;padding:4px;gap:3px;background:var(--page);border:1px solid var(--border);border-radius:8px;}
html[data-layout="console"] .layout-switch{background:var(--panel);}
.layout-switch button{border:0;background:transparent;color:var(--muted);min-height:32px;padding:5px 16px;
  font-size:13px;border-radius:6px;}
.layout-switch button:hover{color:var(--text);}
.layout-switch button[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink);font-weight:700;}

/* ---------- Control bar ---------- */
/* main is also .container (padding:0); use main.container to win specificity. */
.nt-shell main.container{padding:24px 0 40px;}
.control-bar{display:grid;grid-template-columns:minmax(240px,1.9fr) minmax(180px,1fr) 118px;align-items:end;gap:12px;}
.field{display:grid;gap:7px;min-width:0;}
.field label{color:var(--muted);font-size:12px;font-weight:600;}
.control-bar input,.control-bar select{color:var(--text);background:var(--field);border:1px solid var(--border);
  border-radius:6px;min-height:46px;padding:10px 13px;min-width:0;}
.control-bar input::placeholder{color:var(--muted);opacity:.8;}
.run-button{height:46px;background:var(--accent);border:1px solid var(--accent);color:var(--accent-ink);
  font-weight:750;border-radius:6px;}
.run-button:hover{filter:brightness(1.08);}
.run-button:disabled{filter:none;}

.utility-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:16px 0;flex-wrap:wrap;}
.utility-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.hint{color:var(--muted);font-size:12px;}
.btn-mini-util{min-height:36px;padding:7px 12px;font-size:12px;background:var(--field);color:var(--text);
  border:1px solid var(--border);border-radius:6px;}
.btn-mini-util:hover{background:var(--panel-hover);}
.tool-search{width:300px;max-width:100%;min-height:36px;padding:7px 11px;font-size:12px;background:var(--field);
  color:var(--text);border:1px solid var(--border);border-radius:6px;}

/* selected-tool settings — compact, hugs its content (not a big empty panel) */
#tool-options.tool-options:empty{display:none;}
#tool-options.tool-options{margin:0 0 16px;padding:9px 13px;border:1px solid var(--border);
  border-radius:var(--radius);background:var(--panel);display:inline-flex;flex-wrap:wrap;
  align-items:center;gap:9px 16px;width:auto;max-width:100%;}
#tool-options .to-label{color:var(--muted);font-size:12px;font-weight:600;display:inline-flex;align-items:center;gap:7px;}
#tool-options .to-field{font-size:13px;display:inline-flex;align-items:center;gap:7px;color:var(--text);}
#tool-options .to-field select,#tool-options .to-field input{min-height:34px;padding:5px 9px;border-radius:6px;
  background:var(--field);border:1px solid var(--border);color:var(--text);font-size:13px;}
#tool-options .to-field input[type=number]{width:82px;}
#tool-options .to-hint{color:var(--muted);font-size:11px;}

/* target + Use my IP — input and button share top/bottom edges (no floating). */
.target-input-group{display:flex;align-items:stretch;gap:8px;min-width:0;}
.target-input-group > input{flex:1 1 0;min-width:0;height:46px;}
.target-input-group > .use-my-ip{position:static;inset:auto;transform:none;flex:0 0 auto;height:46px;margin:0;
  display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;
  padding:0 12px;font-size:12px;background:var(--field);border:1px solid var(--border);color:var(--muted);border-radius:6px;}
.target-input-group > .use-my-ip:hover{background:var(--panel-hover);color:var(--text);}

/* one secondary row: tool options (left) + search (right), vertically centered */
.secondary-bar{display:flex;align-items:center;gap:16px;margin:16px 0;flex-wrap:wrap;}
.secondary-bar #tool-options{margin:0;}
.secondary-bar .tool-search{width:300px;max-width:100%;margin-left:auto;}
@media (max-width:650px){
  .secondary-bar{flex-direction:column;align-items:stretch;}
  .secondary-bar .tool-search{width:100%;margin-left:0;}
  .secondary-bar #tool-options{display:flex;}
}

/* ---------- Toolbox: four category cards ---------- */
/* Toolbox: four cards, natural heights (no stretched Calculators card). */
.tool-directory{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:start;}
.tool-category{min-width:0;padding:16px 12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);}
.category-heading{display:flex;align-items:center;gap:11px;margin:0 4px 12px;padding-bottom:12px;border-bottom:1px solid var(--border);}
.category-icon{display:grid;place-items:center;width:30px;height:30px;color:var(--accent);font-size:18px;}
.category-heading h2{margin:0;font-size:15px;font-weight:650;}
.tool-list{display:grid;gap:6px;}

/* Real button surface in the normal state (design tokens) */
.tool{display:flex;align-items:center;gap:10px;width:100%;min-height:40px;padding:8px 12px;
  background:var(--tool-bg);border:1px solid var(--tool-border);color:var(--tool-text);
  text-align:left;font-size:14px;border-radius:7px;transition:background .12s,border-color .12s;}
.tool:hover{background:var(--tool-hover);}
.tool:focus-visible{outline:2px solid var(--tool-sel-accent);outline-offset:2px;}
.tool[aria-pressed="true"]{background:var(--tool-sel-bg);border-color:var(--tool-sel-accent);color:var(--tool-text);}
.tool[aria-pressed="true"] .tool-glyph{color:var(--tool-sel-accent);}
.tool:disabled{opacity:.55;cursor:not-allowed;}
.tool-glyph{display:inline-flex;align-items:center;justify-content:center;flex:0 0 20px;width:20px;line-height:1;color:var(--muted);font-size:16px;}
.tool-label{min-width:0;line-height:1.25;text-align:left;}
.no-tools{padding:16px 2px;color:var(--muted);}

/* Console: full-width wrapping ribbon — label column + wrapping tools box so
   continuation rows align under the first button, never under the label. */
.tool-directory.ribbon{display:flex;flex-direction:column;gap:12px;grid-template-columns:none;
  border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding-block:14px;}
html[data-layout="console"] .ribbon-group{display:grid;grid-template-columns:100px minmax(0,1fr);align-items:start;column-gap:12px;width:100%;}
html[data-layout="console"] .ribbon-cat{display:flex;align-items:center;min-height:40px;margin:0;padding:0;
  color:var(--muted);font:11px var(--l-mono);text-transform:uppercase;letter-spacing:1px;}
html[data-layout="console"] .ribbon-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0;}
html[data-layout="console"] .ribbon-tools > .tool{display:inline-flex;align-items:center;justify-content:flex-start;
  flex:0 0 auto;min-height:40px;margin:0;padding:6px 11px;font-size:13px;width:auto;}
@media (max-width:650px){
  html[data-layout="console"] .ribbon-group{grid-template-columns:minmax(0,1fr);row-gap:6px;}
  html[data-layout="console"] .ribbon-cat{min-height:24px;}
}

/* ---------- Results ---------- */
.results{margin-top:22px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);overflow:hidden;}
.result-tabs{display:flex;gap:5px;padding:9px 12px 0;border-bottom:1px solid var(--border);overflow-x:auto;}
.result-tab{flex:0 0 auto;display:flex;align-items:center;gap:6px;padding:0 4px 0 0;border:1px solid var(--border);
  border-bottom:0;border-radius:6px 6px 0 0;background:var(--field);}
.result-tab[aria-current="true"]{border-top:2px solid var(--accent);background:var(--panel);}
.result-tab .tab-label{border:0;background:transparent;color:var(--text);white-space:nowrap;padding:7px 4px 7px 10px;min-height:34px;font-size:12px;}
.result-tab .tab-label .tab-tool{color:var(--accent);font-weight:700;}
.result-tab .close-tab{border:0;background:transparent;color:var(--muted);padding:4px 8px;min-height:30px;border-radius:5px;}
.result-tab .close-tab:hover{background:var(--panel-hover);color:var(--text);}
.result-tab .tab-dot{width:7px;height:7px;border-radius:50%;margin-left:8px;flex:none;}
.tab-dot[data-s="loading"]{background:var(--accent);animation:ntpulse 1s infinite;}
.tab-dot[data-s="ok"]{background:#10b981;}
.tab-dot[data-s="error"]{background:#ef4444;}
@keyframes ntpulse{50%{opacity:.35}}

.results-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px 18px;border-bottom:1px solid var(--border);}
.results-heading h2{margin:0 0 2px;font-size:15px;font-weight:650;}
.results-heading small{color:var(--muted);font-size:12px;}
.results-actions{display:flex;gap:8px;flex-wrap:wrap;}
.results-actions button{font-size:12px;min-height:34px;padding:7px 11px;background:var(--field);color:var(--text);
  border:1px solid var(--border);border-radius:6px;}
.results-actions button:hover{background:var(--panel-hover);}
.results-body{padding:18px;}
html[data-layout="console"] .results-body:not(:has(.empty-state)){min-height:300px;}
.empty-state{padding:14px 2px;color:var(--muted);}
.run-spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--accent);
  border-radius:50%;animation:ntspin .7s linear infinite;vertical-align:-2px;margin-right:8px;}
@keyframes ntspin{to{transform:rotate(360deg)}}
.result-error{padding:14px 16px;border:1px solid #7f1d1d;background:rgba(127,29,29,.25);border-radius:8px;color:#fecaca;}

footer.site-footer{padding:16px 0;border-top:1px solid var(--border);color:var(--muted);font-size:12px;}
footer.site-footer .container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;}
footer.site-footer .badge{padding:3px 9px;border-radius:999px;border:1px solid var(--border);font-size:11px;}
footer.site-footer .badge.good{color:#10b981;border-color:rgba(16,185,129,.4);}

/* ---------- Responsive ---------- */
@media (max-width:1100px){
  .brand-sub{display:none;}
  .tool-directory:not(.ribbon){grid-template-columns:repeat(2,minmax(0,1fr));}
  .ribbon-cat{width:100%;}
}
@media (max-width:650px){
  .nt-shell .container{width:calc(100% - 24px);}
  .nt-shell main.container{padding:16px 0 32px;}
  .header-inner{min-height:64px;gap:10px;flex-wrap:wrap;padding-block:10px;}
  .brand-name{font-size:19px;}
  .header-actions{gap:10px;}
  .hdr-status .hdr-status-txt{display:none;}
  .control-bar{grid-template-columns:1fr 100px;}
  .target-field{grid-column:1/-1;}
  .tool-search{width:100%;}
  .tool-directory:not(.ribbon){grid-template-columns:1fr;gap:10px;}
  .results-heading{align-items:flex-start;flex-wrap:wrap;}
  .results-body{padding:12px;}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;scroll-behavior:auto !important;}
}
@media print{
  .site-header,.control-bar,.utility-bar,#tool-options,.tool-directory,.no-tools,
  .result-tabs,.results-actions,footer.site-footer{display:none !important;}
  html,body{background:#fff;color:#000;}
  .nt-shell .container{width:100%;}
  .results{border:0;margin:0;background:#fff;}
  pre{white-space:pre-wrap;overflow-wrap:anywhere;}
}

/* ============================================================================
   Report content theming (v2.7): the report body reuses the existing formatter
   HTML but is themed to the active layout's variables — no blue/purple nested
   cards, thin separators, monospace values.
   ============================================================================ */
.report-surface{font-size:14px;color:var(--text);}
.report-surface > :first-child{margin-top:0;}
.report-surface h4,.report-surface h5{color:var(--text);margin:16px 0 8px;font-size:14px;font-weight:650;}
.report-surface h5{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em;}
.report-surface a{color:var(--accent);}

/* tables */
.report-surface table{width:100%;border-collapse:collapse;margin:6px 0;}
.report-surface th{font-size:12px;color:var(--muted);font-weight:500;text-align:left;padding:9px 12px;border-bottom:1px solid var(--border);}
.report-surface td{font:13px/1.55 var(--l-mono);color:var(--text);padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:top;}
.report-surface tr:last-child td{border-bottom:0;}
.report-surface .record-value{overflow-wrap:anywhere;}
html[data-layout="console"] .report-surface .record-value{color:#83e5bf;}

/* geo-ip map */
.geoip-map{height:320px;width:100%;margin-top:12px;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--panel,#0e1116);z-index:0;}
.geoip-map .leaflet-container{background:var(--panel,#0e1116);}
.geoip-map .leaflet-control-attribution{font-size:10px;}

/* stat chips / summaries */
.report-surface .stats-summary,.report-surface .summary-stats,.report-surface .dns-summary,
.report-surface .ssl-summary,.report-surface .mx-summary,.report-surface .smtp-summary,
.report-surface .security-overview{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0;}
.report-surface .stat-item{background:var(--field);border:1px solid var(--border);border-radius:8px;padding:8px 12px;display:flex;flex-direction:column;gap:2px;}
.report-surface .stat-label{color:var(--muted);font-size:11px;}
.report-surface .stat-value{color:var(--text);font-size:14px;font-weight:600;}

/* pre / code blocks */
.report-surface pre,.report-surface .output-text,.report-surface .command-output,
.report-surface .spf-record,.report-surface .policy-record,.report-surface .config-text{
  background:var(--field);border:1px solid var(--border);border-radius:8px;padding:12px;
  font:12px/1.6 var(--l-mono);color:var(--text);overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;}
.report-surface code{font-family:var(--l-mono);}

/* generic themed cards used by various reports — remove old blue/purple gradients */
.report-surface .info-card,.report-surface .component-card,.report-surface .section-card,
.report-surface .metric-card,.report-surface .chart-container,.report-surface .config-section,
.report-surface .cert-info,.report-surface .policy-grid,.report-surface .dkim-record{
  background:var(--panel)!important;border:1px solid var(--border)!important;border-radius:10px;
  padding:12px 14px;margin:10px 0;box-shadow:none!important;}
.report-surface .metric-card::before,.report-surface .result-card::before,.report-surface .chart-container::before{display:none!important;}
.report-surface .info-row,.report-surface .cert-row,.report-surface .email-component,.report-surface .policy-item{
  display:flex;gap:10px;padding:5px 0;border-bottom:1px solid var(--border);}
.report-surface .info-row:last-child,.report-surface .cert-row:last-child{border-bottom:0;}
.report-surface .info-label,.report-surface .cert-label,.report-surface .policy-label{color:var(--muted);min-width:120px;}
.report-surface .info-value,.report-surface .cert-value{color:var(--text);font-family:var(--l-mono);overflow-wrap:anywhere;}

/* buttons inside reports -> neutral themed (kill blue gradient) */
.report-surface .btn,.report-surface .btn-mini,.report-surface .btn-report{
  background:var(--field)!important;border:1px solid var(--border)!important;color:var(--text)!important;
  border-radius:6px;min-height:32px;padding:6px 11px;font-weight:600;}
.report-surface .btn:hover{background:var(--panel-hover)!important;}

/* semantic status text (completed request != healthy result) */
.report-surface .success{color:#7fe3b4;}
.report-surface .warning{color:#f4c778;}
.report-surface .failure,.report-surface .error{color:#ff9c9c;background:none;border:0;padding:0;}

/* "What this means" line, themed per layout */
.report-surface .nt-meaning,.nt-meaning{background:var(--field);border:1px solid var(--border);
  border-left:3px solid var(--accent);border-radius:8px;padding:10px 13px;margin:0 0 14px;font-size:13px;line-height:1.5;color:var(--text);}

/* copy-record buttons */
.copy-rec{background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:5px;
  padding:2px 7px;font-size:11px;margin-left:6px;cursor:pointer;}
.copy-rec:hover{border-color:var(--accent);color:var(--accent);}

/* expandable raw response */
.report-surface details.raw-toggle{margin-top:12px;}
.report-surface details.raw-toggle summary{cursor:pointer;color:var(--accent);font-size:12px;}

/* TLS certificate validity bar */
.tls-validity{background:var(--field);border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin:0 0 14px;}
.tlsv-row{display:flex;justify-content:space-between;font-size:13px;margin-bottom:8px;}
.tlsv-track{position:relative;height:10px;background:var(--border);border-radius:6px;overflow:hidden;}
.tlsv-fill{height:100%;border-radius:6px;}
.tlsv-fill.success{background:#10b981;} .tlsv-fill.warning{background:#f59e0b;}
.tlsv-fill.failure{background:#ef4444;} .tlsv-fill.unknown{background:#64748b;}
.tlsv-now{position:absolute;top:-3px;width:2px;height:16px;background:var(--text);}
.tlsv-ends{display:flex;justify-content:space-between;color:var(--muted);font:11px var(--l-mono);margin-top:6px;}
.tlsv-row .success{color:#7fe3b4;} .tlsv-row .warning{color:#f4c778;} .tlsv-row .failure{color:#ff9c9c;}

/* Email authentication flow */
.auth-flow{display:flex;align-items:stretch;flex-wrap:wrap;gap:8px;margin:0 0 14px;}
.af-node{flex:1 1 120px;min-width:120px;background:var(--field);border:1px solid var(--border);border-radius:9px;padding:9px 11px;border-top-width:3px;}
.af-node.success{border-top-color:#10b981;} .af-node.warning{border-top-color:#f59e0b;} .af-node.failure{border-top-color:#ef4444;}
.af-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;}
.af-state{font-size:13px;color:var(--text);margin-top:3px;}
.af-arrow{align-self:center;color:var(--muted);}
@media (max-width:650px){.af-arrow{display:none;}.af-node{flex-basis:calc(50% - 4px);}}

/* ===== Calculators modal (Subnet / CIDR utilities / Transfer) v2.8.0 ===== */
.ev-modal-wide{max-width:1040px;}
.nc-tabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid #1f2d44;margin-bottom:14px;padding-bottom:2px;}
.nc-tab{background:transparent;border:0;border-bottom:2px solid transparent;color:#94a3b8;padding:8px 12px;font-size:.85rem;cursor:pointer;border-radius:6px 6px 0 0;}
.nc-tab:hover{color:#f1f5f9;background:#132034;}
.nc-tab.active{color:#93c5fd;border-bottom-color:#3b82f6;font-weight:700;}
.nc-modes{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px;}
.nc-mode{background:#132034;border:1px solid #253344;color:#cbd5e1;border-radius:7px;padding:6px 12px;font-size:.8rem;cursor:pointer;}
.nc-mode.active{background:rgba(59,130,246,.22);border-color:#3b82f6;color:#bfdbfe;}
.nc-fields{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin:8px 0;}
.nc-f{display:flex;flex-direction:column;gap:5px;font-size:.75rem;color:#94a3b8;flex:1 1 180px;min-width:150px;}
.nc-f input,.nc-f select{min-height:40px;padding:8px 10px;border-radius:8px;border:2px solid rgba(148,163,184,.25);background:#132034;color:#f1f5f9;font-size:.85rem;}
.nc-f input:focus,.nc-f select:focus{outline:none;border-color:#3b82f6;background:#182a44;}
.nc-run{flex:0 0 auto;min-height:40px;}
.nc-actions-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;align-items:center;}
.nc-btn{background:#132034;border:1px solid #253344;color:#e2e8f0;border-radius:7px;padding:7px 12px;font-size:.78rem;cursor:pointer;}
.nc-btn:hover{background:#1c2c47;border-color:#3b82f6;}
.nc-local{display:inline-flex;align-items:center;gap:7px;font-size:.72rem;color:#7fe3b4;background:rgba(16,185,129,.12);border:1px solid rgba(16,185,129,.3);border-radius:7px;padding:5px 10px;margin-bottom:10px;}
.nc-note{font-size:.78rem;color:#93c5fd;background:#0c1526;border:1px solid #1f2d44;border-radius:8px;padding:8px 11px;margin-top:10px;line-height:1.5;}
.nc-summary-line{margin:6px 0 10px;}
.nc-presets{font-size:.75rem;color:#94a3b8;margin:6px 0;display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.nc-preset{background:#132034;border:1px solid #253344;color:#cbd5e1;border-radius:6px;padding:4px 9px;font-size:.74rem;cursor:pointer;}
.nc-preset:hover{border-color:#3b82f6;color:#fff;}
.nc-vl-row{display:flex;gap:8px;margin-bottom:6px;flex-wrap:wrap;}
.nc-vl-row .vl-name{flex:1 1 130px;} .nc-vl-row .vl-hosts{width:130px;} .nc-vl-row .vl-type{width:110px;}
.nc-vl-row input,.nc-vl-row select{min-height:36px;padding:6px 9px;border-radius:7px;border:2px solid rgba(148,163,184,.25);background:#132034;color:#f1f5f9;font-size:.8rem;}
.nc-vl-row .vl-del{flex:0 0 auto;background:transparent;border:1px solid #475569;color:#94a3b8;border-radius:6px;width:36px;font-size:1rem;cursor:pointer;}
.nc-bar{display:flex;height:22px;border-radius:6px;overflow:hidden;border:1px solid #1f2d44;margin:8px 0;}
.nc-bar-seg{min-width:2px;}
.nc-bar-seg.free{background:repeating-linear-gradient(45deg,#1e293b,#1e293b 6px,#243447 6px,#243447 12px);}
.nc-bar-seg.c0{background:#3b82f6;} .nc-bar-seg.c1{background:#10b981;} .nc-bar-seg.c2{background:#f59e0b;}
.nc-bar-seg.c3{background:#8b5cf6;} .nc-bar-seg.c4{background:#ec4899;} .nc-bar-seg.c5{background:#06b6d4;}
#netcalc-overlay .info-card{background:#0c1526;border:1px solid #1f2d44;border-radius:10px;padding:10px 13px;margin-top:6px;}
#netcalc-overlay .info-row{display:flex;justify-content:space-between;gap:12px;padding:5px 0;border-bottom:1px solid #1a2740;font-size:.82rem;}
#netcalc-overlay .info-row:last-child{border-bottom:0;}
#netcalc-overlay .info-label{color:#94a3b8;} #netcalc-overlay .info-value{color:#f1f5f9;font-family:'JetBrains Mono','Fira Code',monospace;text-align:right;word-break:break-all;}
#netcalc-overlay #cu-input{width:100%;min-height:120px;resize:vertical;padding:11px 12px;border-radius:10px;border:2px solid rgba(148,163,184,.25);background:#132034;color:#f1f5f9;font-family:'JetBrains Mono','Fira Code',monospace;font-size:.82rem;}
#netcalc-overlay .results-table{width:100%;border-collapse:collapse;font-size:.8rem;} 
#netcalc-overlay .results-table th{color:#93c5fd;text-align:left;padding:7px 9px;border-bottom:1px solid #1f2d44;font-size:.68rem;text-transform:uppercase;}
#netcalc-overlay .results-table td{padding:7px 9px;border-bottom:1px solid #1a2740;font-family:'JetBrains Mono','Fira Code',monospace;}
.nc-copy{background:transparent;border:1px solid #334155;color:#94a3b8;border-radius:5px;padding:1px 6px;font-size:.7rem;cursor:pointer;margin-left:4px;}
.nc-copy:hover{border-color:#3b82f6;color:#93c5fd;}
@media (max-width:650px){ .nc-f{flex-basis:100%;} .nc-vl-row .vl-hosts,.nc-vl-row .vl-type{width:auto;flex:1;} }

/* ===== Threat Radar ticker (KEV) v2.9.0 ===== */
.threat-bar{display:block;text-decoration:none;background:var(--panel);border-bottom:1px solid var(--border);color:var(--text);}
html[data-layout="console"] .threat-bar{background:var(--page);}
.threat-bar:hover{background:var(--panel-hover);}
.tb-inner{display:flex;align-items:center;gap:14px;min-height:34px;}
.tb-label{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:var(--accent);white-space:nowrap;}
.tb-viewport{flex:1 1 auto;overflow:hidden;min-width:0;}
.tb-track{display:inline-flex;gap:26px;white-space:nowrap;animation:tbscroll 100s linear infinite;will-change:transform;}
.tb-track.tb-static{animation:none;}
.threat-bar:hover .tb-track{animation-play-state:paused;}
@keyframes tbscroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.tb-item{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);}
.tb-item .tb-cve{color:var(--text);font-family:var(--l-mono);font-weight:600;}
.tb-dot{width:8px;height:8px;border-radius:50%;flex:none;background:#64748b;}
.tb-dot.sev-critical{background:#ef4444;} .tb-dot.sev-high{background:#f97316;}
.tb-dot.sev-medium{background:#f59e0b;} .tb-dot.sev-low{background:#3b82f6;}
.tb-sev{font-size:10px;font-weight:700;padding:1px 6px;border-radius:999px;border:1px solid var(--border);text-transform:uppercase;letter-spacing:.03em;}
.tb-sev.sev-critical{color:#ff9c9c;border-color:rgba(239,68,68,.5);} .tb-sev.sev-high{color:#fdba74;border-color:rgba(249,115,22,.5);}
.tb-sev.sev-medium{color:#fbbf24;border-color:rgba(245,158,11,.5);} .tb-sev.sev-low{color:#93c5fd;border-color:rgba(59,130,246,.5);}
.tb-desc{color:var(--muted);}
.tb-cta{flex:0 0 auto;font-size:12px;font-weight:600;color:var(--accent);white-space:nowrap;}
@media (max-width:650px){ .tb-label .tb-lbltxt{display:none;} .tb-desc{display:none;} .tb-cta{font-size:11px;} }
@media (prefers-reduced-motion:reduce){ .tb-track{animation:none;} .tb-viewport{overflow-x:auto;} }
@media print{ .threat-bar{display:none !important;} }
