/* ══ DNSCOPE — Design System (based on H3AD-SEC / X-VERDIKT) ═══════════════ */

:root {
  --bg:#06080f; --panel:#0b0f1a; --panel2:#0f1520;
  --text:#e6f1ff; --muted:#7d8fb3;
  --accent:#00ff9f; --accent2:#3b82f6;
  --border:#1a2238; --nav-h:48px; --hero-h:70px;
  --vt:#ff6b35; --otx:#a855f7; --sh:#10b981; --bgpv:#f59e0b;
  --ipi:#06b6d4; --crtsh:#a855f7; --censys:#3b82f6; --ht:#f43f5e;
  --robtex:#10b981;
  --red:#ff3b5c; --yellow:#ffd60a; --green:#00ff9f;
  --mono:'Share Tech Mono',monospace; --sans:'Inter',sans-serif;
  --fs-xs:11px; --fs-sm:13px; --fs-base:15px; --fs-md:16px; --fs-lg:18px;
}
body.light {
  --bg:#f5f7fb; --panel:#ffffff; --panel2:#f0f2f7;
  --text:#0b1220; --muted:#5c6b8a;
  --accent:#0077ff; --accent2:#00a86b; --border:#d9e1f2;
  --green:#059669; --red:#dc2626; --yellow:#d97706;
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:var(--fs-base);line-height:1.55;min-height:100vh;overflow-x:hidden;transition:background .3s,color .3s;}

#matrix{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:0.2;}

/* ── Nav ───────────────────────────────────────────────────────────────── */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;background:var(--panel);border-bottom:1px solid var(--border);height:var(--nav-h);display:flex;align-items:center;padding:0 1.25rem;transition:background .3s,border-color .3s;}
.nav-brand{font-family:var(--mono);font-size:.78rem;color:var(--accent);letter-spacing:.06em;white-space:nowrap;flex-shrink:0;margin-right:1rem;text-decoration:none;}
.nav-links{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:2px;overflow:visible;}
.nav-links a{font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);text-decoration:none;padding:5px 8px;border-radius:4px;border:1px solid transparent;white-space:nowrap;transition:all .15s;}
.nav-links a:hover{color:var(--accent);border-color:var(--border);background:rgba(0,255,159,.04);}
.nav-links a.nav-current{color:var(--accent);border:1px solid var(--border);}
.nav-divider{width:1px;height:18px;background:var(--border);margin:0 4px;flex-shrink:0;}
.nav-right{margin-left:auto;flex-shrink:0;padding-left:1rem;}
.theme-toggle{cursor:pointer;}
.toggle-track{width:44px;height:22px;background:var(--border);border-radius:50px;position:relative;}
.toggle-thumb{width:16px;height:16px;background:var(--accent);border-radius:50%;position:absolute;top:3px;left:3px;transition:transform .3s;box-shadow:0 0 6px var(--accent);}
body.light .toggle-thumb{transform:translateX(22px);}
.hamburger{display:none;flex-direction:column;justify-content:center;gap:4px;cursor:pointer;padding:6px;margin-right:8px;flex-shrink:0;}
.hamburger span{display:block;width:20px;height:2px;background:var(--muted);border-radius:2px;}
.nav-drawer{display:none;position:fixed;top:var(--nav-h);left:0;right:0;background:var(--panel);border-bottom:1px solid var(--border);z-index:49;padding:.75rem 1.25rem 1rem;flex-direction:column;gap:2px;}
.nav-drawer.open{display:flex;}
.nav-drawer a{font-family:var(--mono);font-size:var(--fs-sm);color:var(--muted);text-decoration:none;padding:8px 10px;border-radius:4px;border-left:2px solid transparent;transition:.15s;}
.nav-drawer a:hover{color:var(--accent);border-left-color:var(--accent);background:rgba(0,255,159,.04);}
.drawer-sub{padding-left:1.8rem!important;font-size:var(--fs-xs)!important;opacity:.8;}
.nav-item{position:relative;display:flex;align-items:center;}
.nav-dropdown{display:none;position:absolute;top:100%;left:0;min-width:130px;padding-top:6px;z-index:100;}
.nav-dropdown-inner{background:var(--panel);border:1px solid var(--border);border-radius:4px;overflow:hidden;}
.nav-item:hover .nav-dropdown{display:block;}
.nav-links .nav-dropdown a{display:block;padding:7px 12px;font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);border:none;border-left:2px solid transparent;border-radius:0;transition:.15s;}
.nav-links .nav-dropdown a:hover,.nav-links .nav-dropdown a.nav-current{color:var(--accent);border-left-color:var(--accent);background:rgba(0,255,159,.04);}

/* ── Hero strip ─────────────────────────────────────────────────────────── */
.xv-hero{position:fixed;top:var(--nav-h);left:0;right:0;z-index:40;background:var(--panel);border-bottom:1px solid var(--border);height:var(--hero-h);padding:0 1.5rem;transition:transform .35s cubic-bezier(.4,0,.2,1),opacity .3s ease,background .3s,border-color .3s;}
body.hero-hidden .xv-hero{transform:translateY(-100%);opacity:0;pointer-events:none;}
body.hero-hidden .wrapper{padding-top:calc(var(--nav-h) + 20px);}

/* ── Scroll sentinel ─────────────────────────────────────────────────────── */
#scroll-sentinel{position:absolute;top:0;left:0;width:1px;height:10px;pointer-events:none;}

/* ── Nav pill ────────────────────────────────────────────────────────────── */
.xv-nav-pill{display:flex;flex-direction:column;align-items:flex-start;gap:1px;margin-left:10px;padding-left:10px;border-left:1px solid var(--border);opacity:0;transform:translateX(-8px);pointer-events:none;transition:opacity .3s ease,transform .3s cubic-bezier(.4,0,.2,1);white-space:nowrap;flex-shrink:0;}
.xv-pill-name{font-family:var(--mono);font-size:13px;letter-spacing:4px;line-height:1;}
.xv-pill-accent{color:var(--accent);}
.xv-pill-text{color:var(--text);}
.xv-pill-tagline{font-family:var(--mono);font-size:8px;color:var(--muted);letter-spacing:1.5px;}
body.hero-hidden .xv-nav-pill{opacity:1;transform:translateX(0);pointer-events:auto;}
.hero-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;}
.hero-left{display:flex;flex-direction:column;gap:1px;flex-shrink:0;}
.hero-breadcrumb{font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);letter-spacing:1px;display:flex;align-items:center;gap:5px;}
.hero-breadcrumb a{color:var(--muted);text-decoration:none;}
.hero-breadcrumb a:hover{color:var(--accent);}
.hero-breadcrumb .hero-current{color:var(--accent);}
.hero-title{font-family:var(--mono);font-size:22px;letter-spacing:5px;line-height:1;}
.hero-dns{color:var(--accent);} .hero-scope{color:var(--text);}
.hero-tagline{font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);letter-spacing:2px;}
.hero-status{display:flex;align-items:center;gap:10px;flex:1;justify-content:center;flex-wrap:wrap;}
.hstatus-item{display:flex;align-items:center;gap:5px;font-family:var(--mono);font-size:var(--fs-xs);}
.hstatus-dot{width:7px;height:7px;border-radius:50%;background:var(--border);transition:all .3s;}
.hstatus-dot.on{animation:blink 2.5s ease-in-out infinite;}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.4}}
.hstatus-divider{width:1px;height:16px;background:var(--border);}
.hero-right{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.managed-badge{font-family:var(--mono);font-size:var(--fs-xs);padding:3px 10px;border-radius:3px;letter-spacing:1px;background:rgba(0,255,159,.08);color:var(--accent);border:1px solid rgba(0,255,159,.3);}

/* ── Layout ─────────────────────────────────────────────────────────────── */
.wrapper{position:relative;z-index:2;padding-top:calc(var(--nav-h) + var(--hero-h) + 20px);padding-bottom:48px;max-width:1400px;margin:0 auto;padding-left:28px;padding-right:28px;transition:padding-top .35s cubic-bezier(.4,0,.2,1);}
main{display:flex;flex-direction:column;gap:12px;}

/* ── Panels ─────────────────────────────────────────────────────────────── */
.panel{background:var(--panel);border:1px solid var(--border);position:relative;overflow:hidden;animation:fadeIn .25s ease;transition:background .3s,border-color .3s;}
.panel::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;}
#input-panel::before{background:linear-gradient(90deg,transparent,var(--accent2) 40%,transparent);}
#overview-panel::before{background:linear-gradient(90deg,transparent,var(--accent) 30%,var(--accent2) 70%,transparent);}
#asn-panel::before{background:linear-gradient(90deg,transparent,var(--bgpv) 40%,transparent);}
#pdns-panel::before{background:linear-gradient(90deg,transparent,var(--otx) 40%,transparent);}
#certs-panel::before{background:linear-gradient(90deg,transparent,var(--censys) 40%,transparent);}
#subdomains-panel::before{background:linear-gradient(90deg,transparent,var(--green) 40%,transparent);}
#cohosted-panel::before{background:linear-gradient(90deg,transparent,var(--sh) 40%,transparent);}
#cloud-panel::before{background:linear-gradient(90deg,transparent,var(--accent) 40%,transparent);}
#cdnwaf-panel::before{background:linear-gradient(90deg,transparent,#f97316 40%,transparent);}
@keyframes fadeIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.panel-header{padding:13px 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);cursor:pointer;user-select:none;transition:background .15s;}
.panel-header:hover{background:rgba(0,255,159,.015);}
.panel-header-static{padding:13px 20px;display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--border);flex-wrap:wrap;}
.panel-title{font-family:var(--mono);font-size:var(--fs-xs);color:var(--accent);letter-spacing:2.5px;text-transform:uppercase;display:flex;align-items:center;gap:8px;}
.panel-meta{font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);}
.panel-chevron{font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);transition:transform .2s;}
.panel-chevron.closed{transform:rotate(180deg);}
.panel-body{padding:20px;}
.panel-collapsed .panel-body{display:none;}

/* ── Input bar ───────────────────────────────────────────────────────────── */
.target-bar{display:flex;align-items:center;gap:10px;padding:4px 0;}
.target-label{font-family:var(--mono);font-size:var(--fs-xs);color:var(--accent2);letter-spacing:1.5px;white-space:nowrap;display:flex;align-items:center;gap:5px;flex-shrink:0;}
.target-input{flex:1;background:var(--bg);border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:var(--fs-base);padding:11px 16px;outline:none;border-radius:4px;transition:border-color .15s;min-width:0;}
.target-input:focus{border-color:var(--accent2);}
.target-input::placeholder{color:var(--muted);}
.input-type-badge{font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);letter-spacing:1.5px;white-space:nowrap;padding:0 6px;}

/* ── Buttons ────────────────────────────────────────────────────────────── */
.btn{padding:9px 20px;font-family:var(--mono);font-size:var(--fs-sm);letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;border:1px solid;transition:all .15s;display:inline-flex;align-items:center;gap:7px;white-space:nowrap;border-radius:4px;background:none;}
.btn-primary{background:var(--accent);color:var(--bg);border-color:var(--accent);font-size:var(--fs-base);padding:11px 28px;box-shadow:0 0 18px rgba(0,255,159,.2);}
.btn-primary:hover:not(:disabled){opacity:.88;transform:scale(1.02);}
.btn-primary:disabled{opacity:.3;cursor:not-allowed;transform:none;box-shadow:none;}
body.light .btn-primary{color:#fff;}
.btn-secondary{background:transparent;color:var(--muted);border-color:var(--border);}
.btn-secondary:hover{border-color:var(--muted);color:var(--text);}
.btn-stop{background:transparent;color:var(--red);border-color:var(--red);}
.btn-stop:hover{background:rgba(255,59,92,.06);}
.btn-export{background:transparent;border:1px solid var(--border);color:var(--muted);font-family:var(--mono);font-size:var(--fs-xs);padding:6px 12px;cursor:pointer;letter-spacing:1px;display:flex;align-items:center;gap:6px;transition:all .15s;margin-left:auto;}
.btn-export:hover{color:var(--accent2);border-color:var(--accent2);}

/* ── Action row ──────────────────────────────────────────────────────────── */
.action-row{display:flex;align-items:center;gap:12px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border);flex-wrap:wrap;}
.rate-note{font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);display:flex;align-items:center;gap:5px;}

/* ── Progress ───────────────────────────────────────────────────────────── */
.progress-container{background:var(--panel);border:1px solid var(--border);padding:14px 20px;}
.progress-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.progress-label{font-family:var(--mono);font-size:var(--fs-xs);color:var(--accent);letter-spacing:2px;}
.progress-stats{font-family:var(--mono);font-size:var(--fs-sm);color:var(--text);}
.progress-track{height:2px;background:var(--border);overflow:hidden;}
.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));transition:width .35s ease;width:0%;}
.progress-sub{font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);margin-top:8px;}

/* ── Overview card ───────────────────────────────────────────────────────── */
.overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.ov-block{display:flex;flex-direction:column;gap:6px;}
.ov-label{font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);letter-spacing:2px;text-transform:uppercase;}
.ov-value{font-family:var(--mono);font-size:var(--fs-sm);color:var(--text);}
.ov-target{font-family:var(--mono);font-size:20px;letter-spacing:2px;color:var(--text);}
.ov-type-badge{display:inline-block;padding:2px 9px;font-family:var(--mono);font-size:var(--fs-xs);border:1px solid;border-radius:3px;letter-spacing:1px;}
.ov-ip{color:var(--ipi);border-color:rgba(6,182,212,.3);background:rgba(6,182,212,.06);}
.ov-domain{color:var(--sh);border-color:rgba(16,185,129,.3);background:rgba(16,185,129,.06);}
.ov-ips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px;}
.ov-ip-chip{font-family:var(--mono);font-size:var(--fs-xs);color:var(--text);background:var(--panel2);border:1px solid var(--border);padding:3px 9px;border-radius:3px;}
.ov-scan-time{font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);}

/* ── ASN ─────────────────────────────────────────────────────────────────── */
.asn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;}
.asn-block{display:flex;flex-direction:column;gap:4px;}
.asn-key{font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);letter-spacing:1.5px;}
.asn-val{font-family:var(--mono);font-size:var(--fs-sm);color:var(--text);}
.asn-num{font-family:var(--mono);font-size:24px;color:var(--bgpv);line-height:1;}
.asn-tag{display:inline-block;padding:2px 8px;font-family:var(--mono);font-size:10px;border:1px solid var(--border);border-radius:3px;color:var(--muted);}
.asn-peers-list{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px;}
.peer-chip{font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);background:var(--bg);border:1px solid var(--border);padding:2px 8px;border-radius:3px;}

/* ── Tables (shared) ─────────────────────────────────────────────────────── */
.table-wrap{overflow-x:auto;}
.ds-table{width:100%;border-collapse:collapse;}
.ds-table thead tr{background:var(--panel2);border-bottom:1px solid var(--border);}
.ds-table th{padding:10px 14px;text-align:left;font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:1.5px;color:var(--muted);font-weight:400;white-space:nowrap;}
.ds-table tbody tr{border-bottom:1px solid var(--border);transition:background .1s;}
.ds-table tbody tr:hover{background:rgba(0,255,159,.012);}
.ds-table td{padding:10px 14px;vertical-align:middle;font-family:var(--mono);font-size:var(--fs-sm);color:var(--text);}
.ds-table td.td-muted{color:var(--muted);}
.ds-table td.td-mono{font-family:var(--mono);}
.ds-empty{font-family:var(--mono);font-size:var(--fs-sm);color:var(--muted);padding:20px;font-style:italic;}

/* ── Source badges ───────────────────────────────────────────────────────── */
.src-badge{display:inline-block;padding:1px 7px;border-radius:3px;font-family:var(--mono);font-size:9px;font-weight:700;border:1px solid;letter-spacing:.5px;white-space:nowrap;}
.src-vt{color:var(--vt);border-color:rgba(255,107,53,.3);background:rgba(255,107,53,.08);}
.src-otx{color:var(--otx);border-color:rgba(168,85,247,.3);background:rgba(168,85,247,.08);}
.src-shodan{color:var(--sh);border-color:rgba(16,185,129,.3);background:rgba(16,185,129,.08);}
.src-crtsh{color:#c084fc;border-color:rgba(192,132,252,.3);background:rgba(192,132,252,.08);}
.src-censys{color:var(--accent2);border-color:rgba(59,130,246,.3);background:rgba(59,130,246,.08);}
.src-ht{color:var(--ht);border-color:rgba(244,63,94,.3);background:rgba(244,63,94,.08);}
.src-robtex{color:var(--robtex);border-color:rgba(16,185,129,.3);background:rgba(16,185,129,.08);}
.src-bgpview{color:var(--bgpv);border-color:rgba(245,158,11,.3);background:rgba(245,158,11,.08);}
.src-ipinfo{color:var(--ipi);border-color:rgba(6,182,212,.3);background:rgba(6,182,212,.08);}
.src-urlscan{color:#0ea5e9;border-color:rgba(14,165,233,.3);background:rgba(14,165,233,.08);}
.src-threatfox{color:#ef4444;border-color:rgba(239,68,68,.3);background:rgba(239,68,68,.08);}
.src-tags{display:flex;gap:4px;flex-wrap:wrap;}

/* ── Passive DNS table ───────────────────────────────────────────────────── */
.col-pdns-name{min-width:180px;}
.col-pdns-type{min-width:60px;}
.col-pdns-value{min-width:160px;}
.col-pdns-first{min-width:120px;}
.col-pdns-last{min-width:120px;}
.col-pdns-src{min-width:80px;}
.pdns-type-badge{display:inline-block;padding:1px 7px;font-family:var(--mono);font-size:10px;border:1px solid var(--border);border-radius:3px;color:var(--muted);}
.pdns-type-a{color:var(--ipi);border-color:rgba(6,182,212,.3);}
.pdns-type-aaaa{color:var(--otx);border-color:rgba(168,85,247,.3);}
.pdns-type-mx{color:var(--bgpv);border-color:rgba(245,158,11,.3);}
.pdns-type-ns{color:var(--sh);border-color:rgba(16,185,129,.3);}
.pdns-type-cname{color:var(--vt);border-color:rgba(255,107,53,.3);}

/* ── Certs table ─────────────────────────────────────────────────────────── */
.col-cert-cn{min-width:180px;}
.col-cert-sans{min-width:60px;}
.col-cert-issuer{min-width:200px;}
.col-cert-from{min-width:110px;}
.col-cert-to{min-width:110px;}
.col-cert-src{min-width:80px;}
.cert-expired{color:var(--red);}
.cert-expiring{color:var(--yellow);}
.cert-valid{color:var(--green);}
.cert-san-count{display:inline-flex;align-items:center;gap:4px;font-family:var(--mono);font-size:var(--fs-xs);color:var(--accent2);cursor:pointer;border-bottom:1px dashed var(--accent2);}

/* ── Subdomains ──────────────────────────────────────────────────────────── */
.subdomain-list{display:flex;flex-direction:column;gap:6px;}
.subdomain-item{display:flex;align-items:center;gap:10px;padding:7px 12px;background:var(--bg);border:1px solid var(--border);border-radius:3px;transition:border-color .15s;}
.subdomain-item:hover{border-color:var(--muted);}
.subdomain-name{font-family:var(--mono);font-size:var(--fs-sm);color:var(--text);flex:1;word-break:break-all;}
.subdomain-count{font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);letter-spacing:1.5px;padding:8px 0 2px;}
.subdomain-filter{display:flex;align-items:center;gap:8px;margin-bottom:12px;}
.sd-search{background:var(--bg);border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:var(--fs-sm);padding:7px 12px;outline:none;border-radius:4px;width:100%;transition:border-color .15s;}
.sd-search:focus{border-color:var(--accent2);}
.sd-search::placeholder{color:var(--muted);}

/* ── Co-hosted ───────────────────────────────────────────────────────────── */
.cohosted-list{display:flex;flex-direction:column;gap:6px;}
.cohosted-item{display:flex;align-items:center;gap:10px;padding:7px 12px;background:var(--bg);border:1px solid var(--border);border-radius:3px;}
.cohosted-domain{font-family:var(--mono);font-size:var(--fs-sm);color:var(--text);flex:1;}
.cohosted-ip{font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);}

/* ── Cloud / Hosting ─────────────────────────────────────────────────────── */
.cloud-card{display:flex;flex-direction:column;gap:16px;}
.cloud-badge{display:inline-flex;align-items:center;gap:10px;padding:10px 18px;border:1px solid;font-family:var(--mono);font-size:var(--fs-md);border-radius:4px;letter-spacing:1px;width:fit-content;}
.cloud-aws{color:#ff9900;border-color:rgba(255,153,0,.4);background:rgba(255,153,0,.08);}
.cloud-gcp{color:#4285f4;border-color:rgba(66,133,244,.4);background:rgba(66,133,244,.08);}
.cloud-azure{color:#0ea5e9;border-color:rgba(14,165,233,.4);background:rgba(14,165,233,.08);}
.cloud-cloudflare{color:#f38020;border-color:rgba(243,128,32,.4);background:rgba(243,128,32,.08);}
.cloud-fastly{color:#ff282d;border-color:rgba(255,40,45,.4);background:rgba(255,40,45,.08);}
.cloud-akamai{color:#009bde;border-color:rgba(0,155,222,.4);background:rgba(0,155,222,.08);}
.cloud-digitalocean{color:#0080ff;border-color:rgba(0,128,255,.4);background:rgba(0,128,255,.08);}
.cloud-linode{color:#02b159;border-color:rgba(2,177,89,.4);background:rgba(2,177,89,.08);}
.cloud-vultr{color:#007bfc;border-color:rgba(0,123,252,.4);background:rgba(0,123,252,.08);}
.cloud-ovh{color:#123f6d;border-color:rgba(18,63,109,.4);background:rgba(0,100,200,.08);}
.cloud-hetzner{color:#d50c2d;border-color:rgba(213,12,45,.4);background:rgba(213,12,45,.08);}
.cloud-unknown{color:var(--muted);border-color:var(--border);background:transparent;}
.cloud-evidence{display:flex;flex-direction:column;gap:6px;}
.cloud-ev-item{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);}
.cloud-ev-dot{width:5px;height:5px;border-radius:50%;background:var(--muted);flex-shrink:0;}

/* ── CDN / WAF ───────────────────────────────────────────────────────────── */
.cdnwaf-list{display:flex;flex-direction:column;gap:12px;}
.cdnwaf-item{display:flex;flex-direction:column;gap:8px;padding:14px;background:var(--bg);border:1px solid var(--border);border-radius:4px;}
.cdnwaf-header{display:flex;align-items:center;gap:10px;}
.cdnwaf-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;font-family:var(--mono);font-size:var(--fs-sm);border:1px solid;border-radius:3px;letter-spacing:.5px;}
.cdnwaf-cdn{color:#f38020;border-color:rgba(243,128,32,.4);background:rgba(243,128,32,.08);}
.cdnwaf-waf{color:var(--red);border-color:rgba(255,59,92,.4);background:rgba(255,59,92,.08);}
.cdnwaf-cdnwaf{color:var(--yellow);border-color:rgba(255,214,10,.4);background:rgba(255,214,10,.08);}
.cdnwaf-evidence{font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);display:flex;flex-wrap:wrap;gap:6px;}
.cdnwaf-ev-chip{padding:1px 8px;background:var(--panel2);border:1px solid var(--border);border-radius:3px;font-size:10px;}
.no-results{font-family:var(--mono);font-size:var(--fs-sm);color:var(--muted);padding:8px 0;font-style:italic;}

/* ── Modal ──────────────────────────────────────────────────────────────── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:9000;opacity:0;pointer-events:none;transition:opacity .2s;backdrop-filter:blur(4px);}
.modal-overlay.open{opacity:1;pointer-events:all;}
.modal{background:var(--panel);border:1px solid var(--border);width:min(96vw,680px);max-height:90vh;display:flex;flex-direction:column;transform:translateY(14px);transition:transform .2s;position:relative;border-radius:6px;}
.modal-overlay.open .modal{transform:none;}
.modal::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent2),transparent);border-radius:6px 6px 0 0;}
.modal-header{padding:16px 22px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
.modal-title{font-family:var(--mono);font-size:var(--fs-sm);}
.modal-close{background:none;border:none;color:var(--muted);cursor:pointer;font-size:16px;padding:2px 8px;transition:color .15s;}
.modal-close:hover{color:var(--red);}
.modal-body{padding:22px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:14px;}
.modal-kv{display:grid;grid-template-columns:140px 1fr;gap:4px 0;}
.modal-k{font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);padding:3px 0;}
.modal-v{font-family:var(--mono);font-size:var(--fs-xs);color:var(--text);padding:3px 0;word-break:break-all;}
.modal-sans-list{display:flex;flex-direction:column;gap:4px;max-height:300px;overflow-y:auto;}
.modal-san-item{font-family:var(--mono);font-size:var(--fs-xs);color:var(--text);padding:3px 0;border-bottom:1px solid var(--border);}
.modal-section-label{font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.12em;color:var(--muted);text-transform:uppercase;margin-top:8px;border-bottom:1px solid var(--border);padding-bottom:4px;}
.exp-radio-group{display:flex;flex-wrap:wrap;gap:8px;}
.exp-radio{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:var(--fs-xs);color:var(--text);cursor:pointer;padding:7px 12px;border:1px solid var(--border);border-radius:3px;transition:all .15s;}
.exp-radio:hover{border-color:var(--accent2);color:var(--accent2);}
.exp-radio input[type=radio]{accent-color:var(--accent2);cursor:pointer;}

/* ── Toast ──────────────────────────────────────────────────────────────── */
.toast-wrap{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none;}
.toast{font-family:var(--mono);font-size:var(--fs-xs);padding:10px 16px;border:1px solid;border-radius:4px;letter-spacing:.5px;animation:toastIn .2s ease;max-width:360px;}
.toast-success{background:rgba(0,255,159,.08);border-color:rgba(0,255,159,.3);color:var(--green);}
.toast-warning{background:rgba(255,214,10,.08);border-color:rgba(255,214,10,.3);color:var(--yellow);}
.toast-error{background:rgba(255,59,92,.08);border-color:rgba(255,59,92,.3);color:var(--red);}
@keyframes toastIn{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:none}}

/* ── Footer ─────────────────────────────────────────────────────────────── */
.site-footer{border-top:1px solid var(--border);margin-top:32px;padding:16px 28px;}
.footer-inner{max-width:1400px;margin:0 auto;display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);flex-wrap:wrap;}
.footer-brand{color:var(--accent);text-decoration:none;}
.footer-project{color:var(--accent2);}
.footer-sep{color:var(--border);}

/* ── Spinner ─────────────────────────────────────────────────────────────── */
.spinner{width:13px;height:13px;border:2px solid var(--border);border-top-color:var(--accent2);border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0;}
@keyframes spin{to{transform:rotate(360deg)}}
.loading-row{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:var(--fs-sm);color:var(--muted);padding:14px 0;}

/* ── Threat Intelligence panel ───────────────────────────────────────────── */
#ti-panel::before{background:linear-gradient(90deg,transparent,var(--red) 30%,var(--yellow) 70%,transparent);}
.ti-verdict-bar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:18px;}
.ti-verdict{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;font-family:var(--mono);font-size:var(--fs-md);font-weight:600;letter-spacing:1px;border:1px solid;border-radius:4px;}
.ti-malicious{color:var(--red);border-color:rgba(255,59,92,.4);background:rgba(255,59,92,.08);}
.ti-suspicious{color:var(--yellow);border-color:rgba(255,214,10,.4);background:rgba(255,214,10,.08);}
.ti-clean{color:var(--green);border-color:rgba(0,255,159,.3);background:rgba(0,255,159,.05);}
.ti-unknown{color:var(--muted);border-color:var(--border);background:transparent;}
.ti-sources{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;}
.ti-source-card{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:14px;}
.ti-src-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.ti-src-name{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:2px;color:var(--muted);}
.ti-src-verdict{font-family:var(--mono);font-size:var(--fs-xs);font-weight:700;letter-spacing:1px;}
.ti-kv{display:grid;grid-template-columns:110px 1fr;gap:2px 0;font-family:var(--mono);font-size:var(--fs-xs);}
.ti-k{color:var(--muted);padding:2px 0;}
.ti-v{color:var(--text);padding:2px 0;word-break:break-all;}
.ti-pulse-list{display:flex;flex-direction:column;gap:5px;margin-top:8px;}
.ti-pulse{font-family:var(--mono);font-size:var(--fs-xs);color:var(--text);padding:4px 8px;background:var(--panel2);border:1px solid var(--border);border-radius:3px;}
.ti-pulse-name{color:var(--text);}
.ti-pulse-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:3px;}
.ti-tag{font-family:var(--mono);font-size:9px;color:var(--muted);border:1px solid var(--border);padding:1px 5px;border-radius:2px;}
.ti-tf-hit{font-family:var(--mono);font-size:var(--fs-xs);color:var(--text);padding:4px 8px;background:var(--panel2);border:1px solid var(--border);border-radius:3px;display:flex;align-items:center;gap:8px;}

/* ── WHOIS panel ─────────────────────────────────────────────────────────── */
#whois-panel::before{background:linear-gradient(90deg,transparent,var(--bgpv) 40%,transparent);}
.whois-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;}
.whois-block{display:flex;flex-direction:column;gap:4px;}
.whois-key{font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);letter-spacing:1.5px;}
.whois-val{font-family:var(--mono);font-size:var(--fs-sm);color:var(--text);}
.nrd-badge{display:inline-block;padding:3px 10px;font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:1px;border-radius:3px;font-weight:700;}
.nrd-hot{color:var(--red);border:1px solid rgba(255,59,92,.4);background:rgba(255,59,92,.1);}
.nrd-warm{color:var(--yellow);border:1px solid rgba(255,214,10,.4);background:rgba(255,214,10,.08);}
.nrd-ok{color:var(--muted);border:1px solid var(--border);background:transparent;}
.ns-list{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px;}
.ns-chip{font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);background:var(--bg);border:1px solid var(--border);padding:2px 8px;border-radius:3px;}
.whois-status-list{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px;}
.whois-status-chip{font-family:var(--mono);font-size:9px;color:var(--muted);border:1px solid var(--border);padding:1px 6px;border-radius:2px;}

/* ── Live DNS panel ──────────────────────────────────────────────────────── */
#livedns-panel::before{background:linear-gradient(90deg,transparent,var(--ipi) 40%,transparent);}
.dns-sections{display:flex;flex-direction:column;gap:16px;}
.dns-section{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:14px;}
.dns-section-title{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:2px;color:var(--muted);margin-bottom:10px;display:flex;align-items:center;gap:8px;}
.dns-record-list{display:flex;flex-direction:column;gap:4px;}
.dns-record{font-family:var(--mono);font-size:var(--fs-sm);color:var(--text);display:flex;align-items:baseline;gap:10px;}
.dns-record-priority{color:var(--muted);font-size:var(--fs-xs);flex-shrink:0;}
.dns-no-record{font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);font-style:italic;}
.dkim-found{color:var(--green);}

/* ── Email Infra panel ───────────────────────────────────────────────────── */
#email-panel::before{background:linear-gradient(90deg,transparent,#ec4899 40%,transparent);}
.email-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;}
.email-signal{display:flex;flex-direction:column;gap:6px;}
.email-signal-header{display:flex;align-items:center;gap:8px;}
.email-badge{display:inline-block;padding:3px 10px;font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:1px;border:1px solid;border-radius:3px;font-weight:600;}
.email-good{color:var(--green);border-color:rgba(0,255,159,.3);background:rgba(0,255,159,.06);}
.email-warn{color:var(--yellow);border-color:rgba(255,214,10,.3);background:rgba(255,214,10,.06);}
.email-bad{color:var(--red);border-color:rgba(255,59,92,.3);background:rgba(255,59,92,.06);}
.email-na{color:var(--muted);border-color:var(--border);background:transparent;}
.email-detail{font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);word-break:break-all;line-height:1.6;}

/* ── Ports / Services panel ──────────────────────────────────────────────── */
#ports-panel::before{background:linear-gradient(90deg,transparent,#818cf8 40%,transparent);}
.col-port{min-width:60px;} .col-proto{min-width:55px;} .col-product{min-width:130px;}
.col-version{min-width:90px;} .col-cves{min-width:100px;} .col-banner{min-width:200px;}
.cve-chip{display:inline-block;font-family:var(--mono);font-size:9px;color:var(--red);border:1px solid rgba(255,59,92,.3);background:rgba(255,59,92,.06);padding:1px 5px;border-radius:2px;margin:1px 2px;}
.port-num{font-family:var(--mono);font-size:var(--fs-sm);color:var(--accent2);font-weight:500;}
.port-banner{font-family:var(--mono);font-size:10px;color:var(--muted);max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* ── Fingerprints panel ──────────────────────────────────────────────────── */
#fp-panel::before{background:linear-gradient(90deg,transparent,#818cf8 40%,transparent);}
.fp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;}
.fp-block{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:14px;}
.fp-key{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:2px;color:var(--muted);margin-bottom:6px;}
.fp-val{font-family:var(--mono);font-size:var(--fs-xs);color:var(--text);word-break:break-all;line-height:1.6;}
.fp-hash{color:var(--accent2);}
.fp-pivot-note{font-family:var(--mono);font-size:9px;color:var(--muted);margin-top:4px;}

/* ── URLScan panel ───────────────────────────────────────────────────────── */
#urlscan-panel::before{background:linear-gradient(90deg,transparent,var(--accent2) 30%,var(--accent) 70%,transparent);}
.urlscan-layout{display:grid;grid-template-columns:280px 1fr;gap:20px;align-items:start;}
.urlscan-screenshot{width:100%;border:1px solid var(--border);border-radius:4px;background:var(--bg);display:block;}
.urlscan-screenshot img{width:100%;display:block;border-radius:4px;}
.urlscan-screenshot-placeholder{height:180px;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);}
.urlscan-data{display:flex;flex-direction:column;gap:12px;}
.urlscan-verdict{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;font-family:var(--mono);font-size:var(--fs-sm);letter-spacing:.5px;border:1px solid;border-radius:3px;}
.urlscan-malicious{color:var(--red);border-color:rgba(255,59,92,.4);background:rgba(255,59,92,.08);}
.urlscan-clean{color:var(--green);border-color:rgba(0,255,159,.3);background:rgba(0,255,159,.05);}
.urlscan-pending{color:var(--muted);border-color:var(--border);}
.urlscan-kv{display:grid;grid-template-columns:110px 1fr;gap:3px 0;font-family:var(--mono);font-size:var(--fs-xs);}
.urlscan-k{color:var(--muted);padding:2px 0;}
.urlscan-v{color:var(--text);padding:2px 0;word-break:break-all;}
.tech-list{display:flex;flex-wrap:wrap;gap:5px;}
.tech-chip{font-family:var(--mono);font-size:9px;color:var(--accent2);border:1px solid rgba(59,130,246,.3);background:rgba(59,130,246,.06);padding:2px 7px;border-radius:3px;}
.urlscan-result-link{font-family:var(--mono);font-size:var(--fs-xs);color:var(--accent2);text-decoration:none;border-bottom:1px solid rgba(59,130,246,.3);}
.urlscan-result-link:hover{border-bottom-color:var(--accent2);}

/* ── Copy IOC button ─────────────────────────────────────────────────────── */
.btn-copy-ioc{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:12px;padding:2px 5px;line-height:1;transition:color .15s;opacity:0;flex-shrink:0;}
.btn-copy-ioc:hover{color:var(--accent);}
tr:hover .btn-copy-ioc,.subdomain-item:hover .btn-copy-ioc,.cohosted-item:hover .btn-copy-ioc{opacity:1;}

/* ── Overview NRD badge ──────────────────────────────────────────────────── */
.ov-nrd{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:var(--fs-xs);padding:2px 8px;border-radius:3px;margin-top:6px;font-weight:700;}

/* ── Responsive ─────────────────────────────────────────────────────────── */
@media(max-width:1000px){
  .nav-links{display:none;} .hamburger{display:flex;}
  .wrapper{padding-left:14px;padding-right:14px;padding-top:calc(var(--nav-h) + 20px);}
  body.hero-hidden .wrapper{padding-top:calc(var(--nav-h) + 20px);}
  .xv-hero{display:none;}
  .xv-nav-pill{opacity:1;transform:none;pointer-events:auto;transition:none;}
  .overview-grid{grid-template-columns:1fr;}
}
@media(max-width:640px){
  .asn-grid{grid-template-columns:1fr 1fr;}
  .managed-badge{display:none;}
}
@media(max-width:480px){
  .asn-grid{grid-template-columns:1fr;}
  .target-bar{flex-direction:column;align-items:stretch;}
  .btn-primary{padding:11px 16px;}
}
