/* ─── Live dashboard reskin — adopts the cactus-report.html design.
   Everything is scoped under #screen-dashboard so it overrides styles.css
   inside the dashboard (via #id .class specificity) without leaking to the
   landing/loading screens or touching app.js's data rendering. ─── */
#screen-dashboard{
  --navy-950:#060c16; --navy-900:#0a1526; --navy-850:#0e1c30; --navy-line:rgba(255,255,255,.10);
  --brand-50:#eaf7fd; --brand-100:#d2eefb; --brand-400:#38bdf8; --brand-500:#0ea5e9; --brand-600:#0284c7; --brand-700:#046390;
  --green-600:#15803d; --green-100:#dcfce7;
  --red-500:#dc2626; --red-600:#b91c1c; --red-100:#fee2e2;
  --orange-500:#ea580c; --orange-100:#ffedd5;
  --amber-500:#d97706; --amber-100:#fef3c7;
  --blue-500:#2563eb; --blue-100:#dbeafe;
  --slate-500:#64748b; --slate-100:#f1f5f9;
  --ink-900:#0b1220; --ink-700:#3a4655; --ink-500:#66748a;
  --surface-0:#ffffff; --surface-50:#f7f9fc; --surface-100:#eef2f7; --dborder:#e3e8f0;
  --rl:20px; --rm:14px; --rs:9px;
  --sh-sm:0 1px 2px rgba(10,21,38,.05); --sh-md:0 8px 24px rgba(10,21,38,.07);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink-900); background:var(--surface-50);
}
#screen-dashboard{ display:block; }

/* ── Sidebar → navy ── */
#screen-dashboard .sidebar{
  background:var(--navy-950); border-right:1px solid var(--navy-line); color:#fff;
}
#screen-dashboard .sb-brand-group{ padding:22px 20px 18px; border-bottom:1px solid var(--navy-line); }
#screen-dashboard .brand-word{ color:#fff; }
#screen-dashboard .brand-word::after{ color:var(--brand-400); }
#screen-dashboard .sb-sp-link{ color:rgba(255,255,255,.4); }
#screen-dashboard .sb-sp-name{ color:rgba(255,255,255,.72); }
#screen-dashboard .sb-nav{ padding:14px 12px; }
#screen-dashboard .sb-nav .sb-link{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:10px 12px; border-radius:9px; color:rgba(255,255,255,.62);
  font-size:13.4px; font-weight:500; margin-bottom:2px;
  border-left:3px solid transparent; border-bottom:none;
  transition:background .12s ease, color .12s ease;
}
#screen-dashboard .sb-nav .sb-link:hover{ background:rgba(255,255,255,.05); color:#fff; }
#screen-dashboard .sb-nav .sb-link.active{
  background:rgba(56,189,248,.1); color:#fff; border-left-color:var(--brand-400); font-weight:700;
}
#screen-dashboard .sb-count{ color:rgba(255,255,255,.35); font-weight:700; font-size:11px; background:none; padding:0; }
#screen-dashboard .sb-foot{ border-top:1px solid var(--navy-line); padding:16px 20px 22px; }
#screen-dashboard .sb-cta{
  display:block; text-align:center; background:var(--brand-600); color:#fff; font-weight:700;
  padding:11px 14px; border-radius:10px; font-size:13.5px;
}
#screen-dashboard .sb-cta:hover{ background:var(--brand-700); }
#screen-dashboard .sb-mini{ color:rgba(255,255,255,.4); font-size:11.5px; margin-top:10px; }

/* ── Main + topbar ── */
#screen-dashboard .main{ background:var(--surface-50); }
#screen-dashboard .topbar{
  background:#fff; border-bottom:1px solid var(--dborder);
}
#screen-dashboard .tb-label{ color:var(--ink-500); font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
#screen-dashboard .tb-target{
  font-family:'SF Mono',ui-monospace,Menlo,monospace; color:var(--navy-900); font-weight:700;
}
#screen-dashboard .tb-status{
  color:var(--green-600); background:var(--green-100); border:none;
  font-weight:700; border-radius:999px; padding:4px 11px; font-size:12px;
}
#screen-dashboard .btn-primary,
#screen-dashboard .btn-export{
  background:var(--brand-600); color:#fff; border:1.5px solid var(--brand-600); border-radius:9px;
  font-weight:600; padding:9px 16px;
}
#screen-dashboard .btn-primary:hover,
#screen-dashboard .btn-export:hover{ background:var(--brand-700); border-color:var(--brand-700); }
#screen-dashboard .btn-share,
#screen-dashboard .btn-ghost{
  background:#fff; color:var(--ink-700); border:1.5px solid var(--dborder); border-radius:9px;
  font-weight:600; padding:9px 16px;
}
#screen-dashboard .btn-share:hover,
#screen-dashboard .btn-ghost:hover{ border-color:var(--navy-900); color:var(--navy-900); background:#fff; }

/* ── Content banners ── */
#screen-dashboard .dashboard{ background:var(--surface-50); }
#screen-dashboard .dash-email-notice{
  background:var(--brand-50); border:1px solid var(--brand-100); color:var(--brand-700); border-radius:var(--rs);
}
#screen-dashboard .dash-email-notice strong{ color:var(--brand-700); }
#screen-dashboard .dash-disclaimer{
  background:var(--amber-100); border:1px solid #fde3a8; color:#7c4a04; border-radius:var(--rs);
}
#screen-dashboard .dash-disclaimer strong{ color:#7c4a04; }
#screen-dashboard .dash-disclaimer-ico{ background:var(--amber-500); color:#fff; }

/* ── Cards + section headers (rc-head look) ── */
#screen-dashboard .card{
  background:#fff; border:1px solid var(--dborder); border-radius:var(--rl); box-shadow:var(--sh-sm);
}
#screen-dashboard .card::before,
#screen-dashboard .card[data-accent]::before{ display:none !important; }  /* drop old accent stripe */
#screen-dashboard .card-title{
  display:flex; align-items:center; gap:12px; border-bottom:1px solid var(--dborder);
  padding-bottom:16px; margin-bottom:16px;
}
#screen-dashboard .ct-ico{
  width:36px; height:36px; border-radius:10px; background:var(--brand-50); color:var(--brand-600);
  display:flex; align-items:center; justify-content:center; font-size:17px; flex:none; border:none;
}
#screen-dashboard .ct-text h2{ font-size:16px; font-weight:700; color:var(--ink-900); letter-spacing:-.01em; }
#screen-dashboard .ct-text p{ font-size:12.5px; color:var(--ink-500); }
#screen-dashboard .kicker{
  color:var(--ink-500); font-weight:700; text-transform:uppercase; letter-spacing:.06em; font-size:11px;
}
#screen-dashboard .tag,
#screen-dashboard .tag-soft{
  background:var(--surface-100); color:var(--ink-700); border:none; border-radius:999px;
  font-weight:700; font-size:11.5px; padding:4px 10px;
}

/* ── Overview KPIs ── */
#screen-dashboard .kpi-risk,
#screen-dashboard .kpi-small{ border-radius:var(--rl); border:1px solid var(--dborder); box-shadow:var(--sh-sm); }
#screen-dashboard .risk-grade{ color:var(--red-500); font-weight:900; }
#screen-dashboard .risk-grade[data-grade^="A"]{ color:var(--green-600); }
#screen-dashboard .risk-grade[data-grade^="B"]{ color:var(--brand-500); }
#screen-dashboard .risk-grade[data-grade^="C"]{ color:var(--amber-500); }
#screen-dashboard .risk-grade[data-grade^="D"],
#screen-dashboard .risk-grade[data-grade^="F"]{ color:var(--red-500); }
#screen-dashboard .risk-score{ color:var(--ink-500); font-weight:700; }
#screen-dashboard .kpi-small-val{ color:var(--navy-900); font-weight:800; }
#screen-dashboard .surface-compact .num{ color:var(--navy-900); font-weight:800; }
#screen-dashboard .surface-compact .lbl{ color:var(--ink-500); }

/* ── Severity system (dots, chips, badges) ── */
#screen-dashboard .sev-dot{ border:none; }
#screen-dashboard .sev-dot.sev-critical,
#screen-dashboard .sev-critical{ background:var(--red-100); color:var(--red-600); }
#screen-dashboard .sev-dot.sev-high,
#screen-dashboard .sev-high{ background:var(--orange-100); color:#9a3412; }
#screen-dashboard .sev-dot.sev-medium,
#screen-dashboard .sev-medium{ background:var(--amber-100); color:#92400e; }
#screen-dashboard .sev-dot.sev-low,
#screen-dashboard .sev-low{ background:var(--blue-100); color:#1e40af; }
#screen-dashboard .sev-dot.sev-info,
#screen-dashboard .sev-info{ background:var(--slate-100); color:var(--slate-500); }

/* ── Priorities list ── */
#screen-dashboard .prio-list li{ border-bottom:1px solid var(--dborder); }
#screen-dashboard .prio-list .prio-num,
#screen-dashboard .prio-num{ background:var(--surface-100); color:var(--ink-500); border-radius:6px; font-weight:800; }

/* ── OWASP ── */
#screen-dashboard .owasp-item{ border:1px solid var(--dborder); border-radius:var(--rs); background:#fff; }
#screen-dashboard .owasp-item[data-status="pass"]::before{ background:var(--green-100); color:var(--green-600); }

/* ── Tech cards ── */
#screen-dashboard .tech-card{
  background:#fff; border:1px solid var(--dborder); border-radius:var(--rs);
}
#screen-dashboard .tech-name{ color:var(--ink-900); font-weight:700; }
#screen-dashboard .tech-version{ color:var(--ink-500); }
#screen-dashboard .tech-logo{ background:var(--surface-100); color:var(--ink-700); border-radius:8px; }

/* ── Vulnerability / finding rows ── */
#screen-dashboard .vulns-list .vuln-row,
#screen-dashboard .vuln-row{ border-bottom:1px solid var(--dborder); }
#screen-dashboard .vuln-title{ color:var(--ink-900); font-weight:700; }
#screen-dashboard .vuln-detail,
#screen-dashboard .vuln-meta{ color:var(--ink-500); }
#screen-dashboard .cve-pill{
  background:var(--red-100); color:var(--red-600); border-radius:6px; font-weight:800; font-size:11px; border:none;
}

/* ── HTTP headers ── */
#screen-dashboard .hdr-dot.ok{ background:var(--green-100); color:var(--green-600); }
#screen-dashboard .hdr-dot:not(.ok){ background:var(--red-100); color:var(--red-500); }

/* ── TLS ── */
#screen-dashboard .tls-host{ font-family:'SF Mono',ui-monospace,Menlo,monospace; color:var(--navy-900); font-weight:700; }
#screen-dashboard .tls-issuer,
#screen-dashboard .tls-meta{ color:var(--ink-500); }

/* ── Takeover stat chips ── */
#screen-dashboard .tk-stat{ background:var(--surface-50); border:1px solid var(--dborder); border-radius:var(--rs); }

/* ── Findings table ── */
#screen-dashboard .findings-table th{
  background:var(--surface-50); color:var(--ink-500); text-transform:uppercase;
  letter-spacing:.05em; font-size:10.5px; font-weight:700;
}
#screen-dashboard .findings-table td{ border-top:1px solid var(--dborder); font-size:13px; }

/* ── CTA card ── */
#screen-dashboard .card.cta{
  background:radial-gradient(ellipse 700px 380px at 50% 0%, rgba(14,165,233,.25), transparent 65%), var(--navy-950);
  color:#fff; border:none; border-radius:var(--rl);
}
#screen-dashboard .card.cta h2{ color:#fff; }
#screen-dashboard .card.cta .muted{ color:rgba(255,255,255,.6); }
#screen-dashboard .card.cta .kicker{ color:var(--brand-400); }
#screen-dashboard .card.cta .btn-primary{ background:#fff; color:var(--navy-900); border-color:#fff; }
#screen-dashboard .card.cta .btn-primary:hover{ background:var(--brand-50); }

/* ── Footer ── */
#screen-dashboard .sp-footer{ background:#fff; border-top:1px solid var(--dborder); }
