/* ============================================================
   vh-darkweb.css — loaded ONLY by dark-web.html.
   Product-window dashboard mockups in the real app's palette.
   Every selector is dw- prefixed; no shared class is restyled,
   so no other page can be affected by this file.
   ============================================================ */

/* ---------- scoped product palette ---------- */
.dw-win{--dw-bg:#070709;--dw-panel:#101014;--dw-panel2:#17171C;--dw-line:rgba(255,255,255,0.1);--dw-line2:rgba(255,255,255,0.2);--dw-blue:#3B82F6;--dw-mint:#3FEFA8;--dw-purple:#C084FC;--dw-crit:#FF5F5F;--dw-high:#FF9A3C;--dw-med:#F7CA3E;--dw-low:#46D98A;--dw-head:#F5F5F8;--dw-txt:#C7C7CE;--dw-mut:#8E8E97}

/* ---------- window frame ---------- */
.dw-win{margin-top:var(--s-6);border:1px solid var(--line-2);border-radius:18px;background:var(--dw-bg);overflow:hidden;color:var(--dw-txt);box-shadow:0 30px 80px -30px rgba(0,0,0,0.85),0 0 70px -34px rgba(59,130,246,0.4)}
.dw-win__chrome{display:flex;align-items:center;gap:0.8rem;padding:0.7rem var(--s-5);border-bottom:1px solid var(--dw-line);background:#0A0A0D;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.1em;text-transform:uppercase;color:var(--dw-mut)}
.dw-dots{display:inline-flex;gap:0.34rem;flex:none}
.dw-dots i{width:9px;height:9px;border-radius:50%}
.dw-dots i:nth-child(1){background:rgba(255,95,95,0.55)}
.dw-dots i:nth-child(2){background:rgba(247,202,62,0.5)}
.dw-dots i:nth-child(3){background:rgba(70,217,138,0.5)}
.dw-url{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dw-live{margin-left:auto;flex:none;display:inline-flex;align-items:center;gap:0.45rem;color:var(--dw-mint);font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.14em;text-transform:uppercase}
.dw-live::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--dw-mint);animation:dw-pulse 2.2s ease-out infinite}
.dw-note{margin-top:var(--s-3);font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.16em;text-transform:uppercase;color:var(--txt-mut)}
.dw-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
@keyframes dw-pulse{0%{box-shadow:0 0 0 0 rgba(63,239,168,0.5)}70%{box-shadow:0 0 0 7px rgba(63,239,168,0)}100%{box-shadow:0 0 0 0 rgba(63,239,168,0)}}

/* ============================================================
   LEAK-INTEL CONSOLE (dw-intel) — first product window.
   An underground-marketplace browser: a list of listings tied
   to the domain on the left, an intelligence dossier on the
   right. Distinct from the KPI dashboards on other pages.
   ============================================================ */
.dw-intel{--dw-dawn:#FF7A45}
.dw-intel__bar{display:flex;flex-wrap:wrap;align-items:center;gap:0.55rem var(--s-4);padding:0.72rem var(--s-5);border-bottom:1px solid var(--dw-line);background:#0A0A0D;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.1em;text-transform:uppercase}
.dw-intel__scan{display:inline-flex;align-items:center;gap:0.5rem;color:var(--dw-txt)}
.dw-intel__scandot{width:7px;height:7px;border-radius:50%;background:var(--dw-mint);flex:none;animation:dw-pulse 2.2s ease-out infinite}
.dw-intel__meta{color:var(--dw-mut)}
.dw-intel__meta b{color:var(--dw-head)}
.dw-intel__sync{margin-left:auto;color:var(--dw-mut)}
.dw-intel__sync time{color:var(--dw-txt)}

.dw-intel__body{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,1.28fr)}
.dw-intel__listwrap{border-right:1px solid var(--dw-line);min-width:0;display:flex;flex-direction:column}
.dw-intel__lh{padding:0.68rem var(--s-5);font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.14em;text-transform:uppercase;color:var(--dw-mut);border-bottom:1px solid var(--dw-line)}
.dw-intel__list{display:flex;flex-direction:column}

/* listing rows (real focusable buttons) */
.dw-listing{display:grid;gap:0.5rem;text-align:left;appearance:none;border:0;border-bottom:1px solid var(--dw-line);border-left:2px solid transparent;background:transparent;color:var(--dw-txt);font:inherit;padding:0.85rem var(--s-5);cursor:pointer;min-width:0;transition:background 0.2s var(--ease),border-color 0.2s var(--ease)}
.dw-listing:last-child{border-bottom:0}
.dw-listing:hover{background:rgba(255,255,255,0.03)}
.dw-listing:focus-visible{outline:2px solid var(--dw-dawn);outline-offset:-2px}
.dw-listing.is-sel{background:rgba(255,122,69,0.09);border-left-color:var(--dw-dawn)}
.dw-listing__top{display:flex;align-items:center;gap:0.5rem;justify-content:space-between}
.dw-src{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.08em;text-transform:uppercase;color:#9cc0ff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dw-listing__title{font-family:var(--font-mono);font-size:0.9rem;color:var(--dw-head);line-height:1.35;overflow-wrap:anywhere}
.dw-listing__foot{display:flex;align-items:center;justify-content:space-between;gap:0.5rem;flex-wrap:wrap}
.dw-listing__date{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.06em;text-transform:uppercase;color:var(--dw-mut)}

/* severity chips — solid, high-contrast (never inherit muted text) */
.dw-sev{flex:none;font-family:var(--font-mono);font-size:var(--t-2xs);font-weight:600;letter-spacing:0.08em;text-transform:uppercase;padding:0.16rem 0.5rem;border-radius:6px}
.dw-sev--crit{background:#DC2626;color:#fff}
.dw-sev--high{background:#B91C1C;color:#fff}
.dw-sev--med{background:#EAB308;color:#101014}

/* still-works flags */
.dw-flag{flex:none;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.05em;text-transform:uppercase;padding:0.13rem 0.45rem;border-radius:100px;border:1px solid}
.dw-flag--live{color:#fff;background:#B91C1C;border-color:#B91C1C}
.dw-flag--warn{color:#101014;background:#EAB308;border-color:#EAB308}
.dw-flag--info{color:var(--dw-txt);background:rgba(255,255,255,0.05);border-color:var(--dw-line2)}

/* dossier panel */
.dw-dossier{padding:var(--s-5);min-width:0;display:flex;flex-direction:column;gap:var(--s-4)}
.dw-dossier__kicker{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.14em;text-transform:uppercase;color:var(--dw-mut)}
.dw-dossier__title{margin:0.35rem 0 0;font-family:var(--font-mono);font-size:1.02rem;font-weight:600;letter-spacing:-0.01em;color:var(--dw-head);line-height:1.32;overflow-wrap:anywhere}
.dw-dossier__chips{display:flex;flex-wrap:wrap;gap:0.4rem;margin-top:0.7rem}
.dw-dossier__lbl{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.12em;text-transform:uppercase;color:var(--dw-mut);margin-bottom:0.4rem}

/* dossier chips (active / confidence) */
.dw-tag2{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.06em;text-transform:uppercase;padding:0.18rem 0.55rem;border-radius:100px;border:1px solid}
.dw-tag2--live{color:#fff;background:#B91C1C;border-color:#B91C1C}
.dw-tag2--warn{color:#101014;background:#EAB308;border-color:#EAB308}
.dw-tag2--conf{color:var(--dw-txt);background:rgba(255,255,255,0.04);border-color:var(--dw-line2)}

/* fact grid */
.dw-facts{display:grid;border:1px solid var(--dw-line);border-radius:10px;overflow:hidden}
.dw-fact{display:grid;grid-template-columns:minmax(110px,38%) 1fr;gap:0.85rem;padding:0.55rem 0.75rem;background:rgba(255,255,255,0.02);border-bottom:1px solid var(--dw-line)}
.dw-fact:last-child{border-bottom:0}
.dw-fact__k{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.08em;text-transform:uppercase;color:var(--dw-mut)}
.dw-fact__v{font-family:var(--font-mono);font-size:0.82rem;color:var(--dw-txt);overflow-wrap:anywhere}
.dw-fact__v em,.dw-fact__v b{font-style:normal;font-weight:600;color:var(--dw-head)}

/* password strength meter */
.dw-meter{display:grid;gap:0.45rem}
.dw-meter__h{display:flex;justify-content:space-between;align-items:baseline;gap:0.6rem;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.1em;text-transform:uppercase;color:var(--dw-mut)}
.dw-meter__h b{color:var(--dw-head);font-weight:600}
.dw-meter__track{display:flex;gap:4px}
.dw-meter__track i{flex:1;height:6px;border-radius:100px;background:rgba(255,255,255,0.12)}
.dw-meter__track i.weak{background:#DC2626}
.dw-meter__track i.fair{background:#EAB308}
.dw-meter__track i.strong{background:#46D98A}

/* captured items (stealer) */
.dw-caps{display:grid;gap:0.4rem}
.dw-cap{display:grid;grid-template-columns:auto 1fr;gap:0.55rem;align-items:baseline;font-family:var(--font-mono);font-size:0.8rem;color:var(--dw-txt);overflow-wrap:anywhere}
.dw-cap__d{width:6px;height:6px;border-radius:50%;background:var(--dw-crit);flex:none;transform:translateY(1px)}

/* reused-on list */
.dw-reuse2{display:flex;flex-wrap:wrap;gap:0.4rem}
.dw-reuse2 span{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.04em;color:var(--dw-txt);border:1px solid var(--dw-line2);border-radius:6px;padding:0.16rem 0.48rem;background:rgba(255,255,255,0.03)}

/* recommended action */
.dw-action{display:grid;gap:0.28rem;padding:0.7rem 0.85rem;border-radius:10px;border:1px solid rgba(255,122,69,0.4);background:rgba(255,122,69,0.08)}
.dw-action__k{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.12em;text-transform:uppercase;color:#ffb999}
.dw-action__v{font-size:0.86rem;line-height:1.4;color:var(--dw-head)}

@media (max-width:760px){
 .dw-intel__body{grid-template-columns:1fr}
 .dw-intel__listwrap{border-right:0;border-bottom:1px solid var(--dw-line)}
 .dw-fact{grid-template-columns:1fr;gap:0.15rem}
}
@media (prefers-reduced-motion:reduce){
 .dw-intel__scandot{animation:none}
 .dw-listing{transition:none}
}

/* ---------- command band (radar + greeting + gauge) ---------- */
.dw-cmd{position:relative;display:grid;grid-template-columns:1fr auto;gap:var(--s-5);align-items:center;padding:var(--s-5);border-bottom:1px solid var(--dw-line);overflow:hidden}
.dw-cmd__copy{position:relative;z-index:1;display:grid;gap:0.55rem}
.dw-eyebrow{display:inline-flex;align-items:center;gap:0.5rem;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.16em;text-transform:uppercase;color:var(--dw-mut)}
.dw-livedot{width:6px;height:6px;border-radius:50%;background:var(--dw-mint);animation:dw-pulse 2.2s ease-out infinite}
.dw-cmd__t{margin:0;font-size:1.25rem;font-weight:600;letter-spacing:-0.02em;color:var(--dw-head);max-width:34ch}
.dw-cmd__t em{font-style:normal;color:var(--dw-high)}
.dw-readouts{display:flex;flex-wrap:wrap;gap:var(--s-4);font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.12em;text-transform:uppercase;color:var(--dw-mut)}
.dw-readouts b{color:var(--dw-head);margin-right:0.35rem;font-size:0.85rem}

/* radar backdrop (blue/mint port of the site radar) */
.dw-radar{position:absolute;right:-50px;top:50%;transform:translateY(-50%);width:300px;aspect-ratio:1;opacity:0.55;pointer-events:none}
.dw-radar__ring{position:absolute;border-radius:50%;border:1px solid rgba(59,130,246,0.28)}
.dw-radar__ring--1{inset:0}
.dw-radar__ring--2{inset:17%}
.dw-radar__ring--3{inset:34%}
.dw-radar__cross{position:absolute;inset:0;background:linear-gradient(90deg,transparent calc(50% - 0.5px),rgba(59,130,246,0.16) 50%,transparent calc(50% + 0.5px)),linear-gradient(180deg,transparent calc(50% - 0.5px),rgba(59,130,246,0.16) 50%,transparent calc(50% + 0.5px))}
.dw-radar__scope{position:absolute;inset:0;border-radius:50%;overflow:hidden}
.dw-radar__sweep{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,transparent 0 76%,rgba(59,130,246,0.05) 86%,rgba(59,130,246,0.2) 96%,rgba(99,179,255,0.55) 99.4%,transparent 100%);animation:dw-rot 4.2s linear infinite}
.dw-radar__b{position:absolute;width:5px;height:5px;margin:-2.5px;border-radius:50%;background:#9cc0ff;opacity:0.35;animation:dw-ping 4.2s linear infinite}
.dw-radar__b--hot{width:7px;height:7px;margin:-3.5px;background:var(--dw-crit);animation:dw-hot 4.2s linear infinite}
.dw-radar__core{position:absolute;left:50%;top:50%;width:8px;height:8px;margin:-4px;border-radius:50%;background:var(--dw-mint);box-shadow:0 0 14px var(--dw-mint)}
@keyframes dw-rot{to{transform:rotate(360deg)}}
@keyframes dw-ping{0%{opacity:1;box-shadow:0 0 12px rgba(156,192,255,0.9)}10%{opacity:0.8}26%{opacity:0.35;box-shadow:none}100%{opacity:0.35}}
@keyframes dw-hot{0%{opacity:1;box-shadow:0 0 16px rgba(255,95,95,1)}14%{opacity:0.95}40%{opacity:0.55;box-shadow:0 0 6px rgba(255,95,95,0.4)}100%{opacity:0.5}}

/* risk index gauge */
.dw-gauge{position:relative;z-index:1;display:grid;justify-items:center;width:200px}
.dw-gauge svg{width:100%;display:block;overflow:visible}
.dw-gauge__bg{fill:none;stroke:rgba(255,255,255,0.12);stroke-width:9;stroke-linecap:round}
.dw-gauge__v{fill:none;stroke:var(--dw-high);stroke-width:9;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100;transition:stroke-dashoffset 1.15s var(--ease) 0.1s;filter:drop-shadow(0 0 7px rgba(255,154,60,0.45))}
.dw-gauge.is-on .dw-gauge__v{stroke-dashoffset:28}
.dw-gauge__n{position:absolute;top:31%;font-family:var(--font-mono);font-size:2rem;font-weight:600;letter-spacing:-0.02em;color:var(--dw-head)}
.dw-gauge__l{position:absolute;top:62%;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.18em;text-transform:uppercase;color:var(--dw-mut)}
.dw-pill{margin-top:0.5rem;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.14em;text-transform:uppercase;color:#ffc487;border:1px solid rgba(255,154,60,0.38);background:rgba(255,154,60,0.1);border-radius:100px;padding:0.28rem 0.75rem;opacity:0;transform:translateY(5px);transition:opacity 0.5s var(--ease) 1.05s,transform 0.5s var(--ease) 1.05s}
.dw-gauge.is-on .dw-pill{opacity:1;transform:none}

/* ---------- KPI row ---------- */
.dw-kpis{display:grid;grid-template-columns:repeat(5,1fr);border-bottom:1px solid var(--dw-line)}
.dw-kpi{position:relative;display:grid;gap:0.28rem;align-content:start;padding:var(--s-4) var(--s-5);border-right:1px solid var(--dw-line);min-width:0}
.dw-kpi:last-child{border-right:0}
.dw-kpi::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--dw-blue),transparent 70%);opacity:0.55}
.dw-kpi--hot::before{background:linear-gradient(90deg,var(--dw-crit),transparent 70%)}
.dw-kpi__l{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.14em;text-transform:uppercase;color:var(--dw-mut)}
.dw-kpi>b{font-family:var(--font-mono);font-size:1.5rem;font-weight:600;letter-spacing:-0.02em;color:var(--dw-head);line-height:1.1}
.dw-kpi--hot>b{color:#ffb0b0}
.dw-kpi__d{position:absolute;top:calc(var(--s-4) - 0.1rem);right:var(--s-4);font-family:var(--font-mono);font-size:var(--t-2xs);padding:0.1rem 0.42rem;border-radius:100px;border:1px solid}
.dw-up{color:var(--dw-mint);border-color:rgba(63,239,168,0.32);background:rgba(63,239,168,0.08)}
.dw-bad{color:var(--dw-crit);border-color:rgba(255,95,95,0.32);background:rgba(255,95,95,0.08)}
.dw-kpi__f{font-size:var(--t-2xs);color:var(--dw-mut)}
.dw-spark{width:100%;height:20px;margin-top:0.25rem}
.dw-spark polyline{fill:none;stroke:var(--dw-blue);stroke-width:1.6;opacity:0.75;stroke-dasharray:130;stroke-dashoffset:130}
.dw-kpi--hot .dw-spark polyline{stroke:var(--dw-crit)}
.dw-app.is-in .dw-spark polyline{animation:dw-draw130 1.2s var(--ease) forwards}
.dw-kpi:nth-child(2) .dw-spark polyline{animation-delay:0.1s}
.dw-kpi:nth-child(3) .dw-spark polyline{animation-delay:0.2s}
.dw-kpi:nth-child(4) .dw-spark polyline{animation-delay:0.3s}
.dw-kpi:nth-child(5) .dw-spark polyline{animation-delay:0.4s}
@keyframes dw-draw130{to{stroke-dashoffset:0}}

/* ---------- dashboard panel grid ---------- */
.dw-grid{display:grid;grid-template-columns:1.15fr 1fr;grid-template-areas:"stream sev" "stream donut" "area area"}
.dw-panel{padding:var(--s-4) var(--s-5);border-right:1px solid var(--dw-line);border-bottom:1px solid var(--dw-line);min-width:0}
.dw-panel--stream{grid-area:stream;position:relative;display:flex;flex-direction:column}
.dw-heat{margin-top:auto;padding-top:var(--s-4)}
.dw-heat__h{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.14em;text-transform:uppercase;color:var(--dw-mut);margin-bottom:0.5rem}
.dw-heat__grid{display:grid;grid-template-columns:repeat(24,1fr);gap:3px}
.dw-heat__grid i{aspect-ratio:1;border-radius:2px;background:rgba(59,130,246,0.05);transition:background 0.7s var(--ease)}
@media (prefers-reduced-motion:reduce){.dw-heat__grid i{transition:none}}
.dw-panel--sev{grid-area:sev;border-right:0}
.dw-panel--donut{grid-area:donut;border-right:0;border-bottom:0}
.dw-panel--area{grid-area:area;border-right:0;border-bottom:0}
.dw-panel--stream{border-bottom:0}
.dw-panel__h{display:flex;justify-content:space-between;align-items:center;gap:0.6rem;flex-wrap:wrap;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.14em;text-transform:uppercase;color:#B4B4BC;margin-bottom:var(--s-3)}
.dw-panel__m{color:var(--dw-mut);letter-spacing:0.1em}
.dw-live--sm{margin-left:0}

/* live threat feed */
.dw-stream{list-style:none;margin:0;padding:0;display:grid;gap:0.45rem;align-content:start;min-height:238px}
.dw-stream li{display:grid;grid-template-columns:88px 1fr auto;gap:0.6rem;align-items:baseline;font-size:0.85rem;color:var(--dw-txt);padding:0.45rem 0.55rem;border-radius:8px;background:rgba(255,255,255,0.04)}
.dw-stream li.is-new{animation:dw-slide 0.45s var(--ease)}
.dw-stream__tx{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dw-tagchip{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.08em;text-transform:uppercase;text-align:center;padding:0.13rem 0.3rem;border-radius:6px;border:1px solid}
.dw-tagchip--cred{color:#ff9d9d;border-color:rgba(255,95,95,0.35);background:rgba(255,95,95,0.08)}
.dw-tagchip--dark{color:#9cc0ff;border-color:rgba(59,130,246,0.35);background:rgba(59,130,246,0.08)}
.dw-tagchip--scan{color:#7cf1c0;border-color:rgba(63,239,168,0.35);background:rgba(63,239,168,0.08)}
.dw-when{font-family:var(--font-mono);font-size:var(--t-2xs);color:var(--dw-mut);white-space:nowrap}
@keyframes dw-slide{from{opacity:0;transform:translateY(-9px)}}

/* severity strip */
.dw-sevbar{display:flex;gap:2px;height:12px;border-radius:100px;overflow:hidden;margin-bottom:var(--s-3)}
.dw-sevbar i{width:var(--w);border-radius:2px}
.dw-sevbar i:nth-child(1){background:var(--dw-crit)}
.dw-sevbar i:nth-child(2){background:var(--dw-high)}
.dw-sevbar i:nth-child(3){background:var(--dw-med)}
.dw-sevbar i:nth-child(4){background:var(--dw-low)}
.dw-app.is-in .dw-sevbar i{animation:dw-grow 0.9s var(--ease) both}
.dw-app.is-in .dw-sevbar i:nth-child(2){animation-delay:0.1s}
.dw-app.is-in .dw-sevbar i:nth-child(3){animation-delay:0.2s}
.dw-app.is-in .dw-sevbar i:nth-child(4){animation-delay:0.3s}
@keyframes dw-grow{from{width:0}}
.dw-legend{list-style:none;margin:0;padding:0;display:grid;gap:0.42rem}
.dw-legend li{display:grid;grid-template-columns:10px 1fr auto auto;gap:0.6rem;align-items:center;font-size:0.84rem;color:var(--dw-txt);border-radius:6px;padding:0.1rem 0.25rem}
.dw-legend li[data-k]{cursor:default}
.dw-legend li:hover{background:rgba(255,255,255,0.05)}
.dw-legend i{width:9px;height:9px;border-radius:3px}
.dw-legend b{font-family:var(--font-mono);font-weight:500;color:var(--dw-head)}
.dw-legend .dw-pct{font-family:var(--font-mono);color:var(--dw-mut);font-size:var(--t-2xs)}

/* donut */
.dw-donutwrap{display:grid;grid-template-columns:auto 1fr;gap:var(--s-4);align-items:center}
.dw-donut{position:relative;width:126px;flex:none}
.dw-donut svg{width:100%;display:block}
.dw-donut circle{fill:none;stroke-width:6.5;transition:opacity 0.3s var(--ease),stroke-width 0.3s var(--ease)}
.dw-app.is-in .dw-donut circle,.dw-tpanel.is-active .dw-donut circle{animation:dw-seg 1s var(--ease) both}
.dw-donut circle:nth-of-type(2){animation-delay:0.12s}
.dw-donut circle:nth-of-type(3){animation-delay:0.24s}
.dw-donut circle:nth-of-type(4){animation-delay:0.36s}
@keyframes dw-seg{from{stroke-dasharray:0 100}}
.dw-donut[data-hl] circle{opacity:0.22}
.dw-donut[data-hl="a"] circle[data-k="a"],.dw-donut[data-hl="b"] circle[data-k="b"],.dw-donut[data-hl="c"] circle[data-k="c"],.dw-donut[data-hl="d"] circle[data-k="d"]{opacity:1;stroke-width:8.4}
.dw-donut__c{position:absolute;inset:0;display:grid;place-content:center;text-align:center;gap:0.1rem}
.dw-donut__c b{font-family:var(--font-mono);font-size:0.95rem;color:var(--dw-head)}
.dw-donut__c span{font-family:var(--font-mono);font-size:0.55rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--dw-mut)}

/* area / timeline chart */
.dw-area svg{width:100%;height:auto;display:block}
.dw-area__fill{opacity:0}
.dw-app.is-in .dw-area__fill{animation:dw-fadein 0.9s var(--ease) 0.9s forwards}
.dw-area__line{fill:none;stroke:var(--dw-blue);stroke-width:1.8;stroke-linejoin:round;stroke-dasharray:400;stroke-dashoffset:400}
.dw-app.is-in .dw-area__line{animation:dw-draw400 1.6s var(--ease) 0.2s forwards}
.dw-area__ax{font-family:var(--font-mono);font-size:4.2px;letter-spacing:0.08em;fill:var(--dw-mut)}
.dw-area__gl{stroke:rgba(255,255,255,0.08);stroke-width:0.5}
@keyframes dw-draw400{to{stroke-dashoffset:0}}
@keyframes dw-fadein{to{opacity:1}}

/* ---------- tabbed explorer ---------- */
.dw-tabbar{display:flex;gap:0.2rem;padding:0 var(--s-4);border-bottom:1px solid var(--dw-line);background:#0A0A0D;overflow-x:auto;scrollbar-width:none}
.dw-tabbar::-webkit-scrollbar{display:none}
.dw-tab{appearance:none;background:none;border:0;border-bottom:2px solid transparent;padding:0.8rem 0.9rem;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.12em;text-transform:uppercase;color:var(--dw-mut);cursor:pointer;white-space:nowrap;display:inline-flex;gap:0.5rem;align-items:center;transition:color 0.25s var(--ease)}
.dw-tab:hover{color:#C7C7CE}
.dw-tab i{font-style:normal;padding:0.08rem 0.4rem;border-radius:100px;background:rgba(255,255,255,0.09);color:inherit}
.dw-tab.is-active{color:#F5F5F8;border-bottom-color:var(--dw-blue)}
.dw-tab.is-active i{background:rgba(59,130,246,0.2);color:#9cc0ff}
.dw-tpanel{display:none;padding:var(--s-4) var(--s-5)}
.dw-tpanel.is-active{display:block}

/* mini KPI strip */
.dw-mini{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-3);margin-bottom:var(--s-4)}
.dw-mini span{display:grid;gap:0.12rem;padding:0.6rem 0.8rem;border:1px solid var(--dw-line);border-radius:10px;background:rgba(255,255,255,0.03);font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.12em;text-transform:uppercase;color:var(--dw-mut)}
.dw-mini b{font-size:1.1rem;font-weight:600;color:var(--dw-head)}

/* tables */
.dw-table{display:grid;border:1px solid var(--dw-line);border-radius:10px;overflow:hidden}
.dw-row{display:grid;gap:0.7rem;align-items:center;padding:0.55rem 0.8rem;border-bottom:1px solid var(--dw-line);font-size:0.85rem;background:rgba(255,255,255,0.025);min-width:0}
.dw-row:last-child{border-bottom:0}
.dw-row:not(.dw-row--h):hover{background:rgba(59,130,246,0.07)}
.dw-row--h{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.14em;text-transform:uppercase;color:var(--dw-mut);background:rgba(255,255,255,0.05)}
.dw-tpanel.is-active .dw-row:not(.dw-row--h){animation:dw-slide 0.45s var(--ease) both}
.dw-tpanel.is-active .dw-row:nth-child(3){animation-delay:0.06s}
.dw-tpanel.is-active .dw-row:nth-child(4){animation-delay:0.12s}
.dw-tpanel.is-active .dw-row:nth-child(5){animation-delay:0.18s}
.dw-tpanel.is-active .dw-row:nth-child(6){animation-delay:0.24s}
.dw-table--int .dw-row{grid-template-columns:96px 116px 1fr 58px}
.dw-chip{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.08em;text-transform:uppercase;text-align:center;padding:0.14rem 0.3rem;border-radius:6px;border:1px solid}
.dw-chip--forum{color:#ffd18a;border-color:rgba(255,154,60,0.35);background:rgba(255,154,60,0.08)}
.dw-chip--market{color:#ff9d9d;border-color:rgba(255,95,95,0.35);background:rgba(255,95,95,0.08)}
.dw-chip--paste{color:#9cc0ff;border-color:rgba(59,130,246,0.35);background:rgba(59,130,246,0.08)}
.dw-chip--channel{color:#7cf1c0;border-color:rgba(63,239,168,0.35);background:rgba(63,239,168,0.08)}
.dw-chip--leak{color:#ff9d9d;border-color:rgba(255,95,95,0.35);background:rgba(255,95,95,0.08)}
.dw-actor{font-family:var(--font-mono);font-size:0.78rem;color:#9cc0ff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dw-snip{color:var(--dw-txt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* credentials / live check */
.dw-table--cred .dw-row{grid-template-columns:1.25fr 88px 1fr 128px 96px}
.dw-id{font-family:var(--font-mono);font-size:0.8rem;color:var(--dw-head);display:flex;align-items:center;gap:0.45rem;min-width:0}
.dw-id em{font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dw-new{flex:none;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.08em;text-transform:uppercase;color:var(--dw-mint);border:1px solid rgba(63,239,168,0.35);background:rgba(63,239,168,0.08);border-radius:6px;padding:0.05rem 0.32rem}
.dw-mask{font-family:var(--font-mono);letter-spacing:0.12em;color:var(--dw-mut);overflow:hidden;white-space:nowrap}
.dw-origin{font-size:0.78rem;color:var(--dw-mut);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dw-status{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.08em;text-transform:uppercase;text-align:center;padding:0.18rem 0.3rem;border-radius:6px;border:1px solid transparent;min-height:1.55em}
.dw-row[data-state="checking"] .dw-status{color:#9cc0ff;border-color:rgba(59,130,246,0.35);background:linear-gradient(90deg,rgba(59,130,246,0.06),rgba(59,130,246,0.22),rgba(59,130,246,0.06));background-size:200% 100%;animation:dw-shim 1.1s linear infinite}
.dw-row[data-state="valid"] .dw-status{color:#ff9d9d;border-color:rgba(255,95,95,0.4);background:rgba(255,95,95,0.1)}
.dw-row[data-state="mfa"] .dw-status{color:#ffd18a;border-color:rgba(255,154,60,0.4);background:rgba(255,154,60,0.1)}
.dw-row[data-state="invalid"] .dw-status{color:var(--dw-mut);border-color:var(--dw-line)}
.dw-row[data-state="inconclusive"] .dw-status{color:#ffe89d;border-color:rgba(247,202,62,0.35);background:rgba(247,202,62,0.08)}
.dw-row[data-state="revoked"] .dw-status{color:var(--dw-mut);border-color:var(--dw-line);text-decoration:line-through}
@keyframes dw-shim{to{background-position:-200% 0}}
.dw-act{text-align:right}
.dw-revoke{visibility:hidden;appearance:none;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.08em;text-transform:uppercase;color:#ff8f8f;border:1px solid rgba(255,95,95,0.4);background:rgba(255,95,95,0.08);border-radius:8px;padding:0.3rem 0.6rem;cursor:pointer;transition:background 0.2s var(--ease),transform 0.2s var(--ease)}
.dw-revoke:hover{background:rgba(255,95,95,0.18);transform:translateY(-1px)}
.dw-row[data-state="valid"] .dw-revoke,.dw-row[data-state="mfa"] .dw-revoke{visibility:visible}
.dw-row[data-state="revoked"] .dw-revoke{visibility:visible;color:var(--dw-mint);border-color:rgba(63,239,168,0.4);background:rgba(63,239,168,0.08);cursor:default;transform:none}
.dw-row[data-state="revoked"] .dw-id,.dw-row[data-state="revoked"] .dw-mask{opacity:0.5}
.dw-tfoot{display:flex;flex-wrap:wrap;gap:var(--s-4);margin-top:var(--s-3);font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.12em;text-transform:uppercase;color:var(--dw-mut)}
.dw-tfoot b{color:var(--dw-head);margin-right:0.3rem}
.dw-tfoot__hot{margin-left:auto}
.dw-tfoot__hot b{color:var(--dw-crit)}

/* password intel */
.dw-pwgrid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-5)}
.dw-reuse{display:grid;gap:0.3rem;margin-bottom:var(--s-4)}
.dw-reuse>b{font-family:var(--font-mono);font-size:2rem;font-weight:600;letter-spacing:-0.02em;color:var(--dw-head)}
.dw-reuse__bar{height:10px;border-radius:100px;background:rgba(255,255,255,0.09);overflow:hidden}
.dw-reuse__bar i{display:block;height:100%;width:var(--w);border-radius:100px;background:linear-gradient(90deg,var(--dw-high),var(--dw-crit))}
.dw-tpanel.is-active .dw-reuse__bar i{animation:dw-grow 1s var(--ease) both}
.dw-pbars{display:grid;gap:0.55rem}
.dw-pbar{display:grid;grid-template-columns:150px 1fr 40px;gap:0.6rem;align-items:center;font-size:0.8rem;color:var(--dw-txt)}
.dw-pbar__t{height:8px;border-radius:100px;background:rgba(255,255,255,0.09);overflow:hidden}
.dw-pbar__t i{display:block;height:100%;width:var(--w);border-radius:100px;background:var(--dw-blue)}
.dw-tpanel.is-active .dw-pbar__t i{animation:dw-grow 0.9s var(--ease) both}
.dw-tpanel.is-active .dw-pbar:nth-child(2) .dw-pbar__t i{animation-delay:0.1s}
.dw-tpanel.is-active .dw-pbar:nth-child(3) .dw-pbar__t i{animation-delay:0.2s}
.dw-tpanel.is-active .dw-pbar:nth-child(4) .dw-pbar__t i{animation-delay:0.3s}
.dw-pbar b{font-family:var(--font-mono);font-weight:500;color:var(--dw-head);text-align:right}
.dw-table--pw .dw-row{grid-template-columns:1fr 64px 92px}
.dw-pwv{font-family:var(--font-mono);font-size:0.8rem;color:var(--dw-head)}
.dw-x{font-family:var(--font-mono);color:var(--dw-mut)}
.dw-str{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.08em;text-transform:uppercase;text-align:center;padding:0.14rem 0.3rem;border-radius:6px;border:1px solid}
.dw-str--vweak{color:#ff9d9d;border-color:rgba(255,95,95,0.35);background:rgba(255,95,95,0.08)}
.dw-str--weak{color:#ffd18a;border-color:rgba(255,154,60,0.35);background:rgba(255,154,60,0.08)}
.dw-str--fair{color:#ffe89d;border-color:rgba(247,202,62,0.35);background:rgba(247,202,62,0.08)}

/* ---------- digital risk queue ---------- */
.dw-lanes{display:flex;flex-wrap:wrap;gap:var(--s-3);align-items:center;padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--dw-line)}
.dw-lane{display:inline-flex;align-items:center;gap:0.55rem;padding:0.42rem 0.85rem;border:1px solid var(--dw-line);border-radius:100px;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.12em;text-transform:uppercase;color:var(--dw-mut)}
.dw-lane b{font-size:1rem;font-weight:600;color:var(--dw-head)}
.dw-lane--td{border-color:rgba(255,95,95,0.3)}
.dw-lane--esc{border-color:rgba(255,154,60,0.3)}
.dw-lane--watch{border-color:rgba(59,130,246,0.3)}
.dw-lane--ai{margin-left:auto;border-color:rgba(63,239,168,0.3);color:#7cf1c0}
.dw-lane b.is-pop{animation:dw-pop 0.55s var(--ease)}
@keyframes dw-pop{30%{transform:scale(1.4)}}
.dw-cards{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4);padding:var(--s-4) var(--s-5)}
.dw-card{display:grid;grid-template-columns:118px 1fr;gap:var(--s-4);text-align:left;appearance:none;border:1px solid var(--dw-line);border-radius:12px;background:var(--dw-panel);padding:var(--s-4);cursor:pointer;color:var(--dw-txt);font:inherit;transition:border-color 0.3s var(--ease),transform 0.3s var(--ease)}
.dw-card:hover{border-color:var(--dw-line2);transform:translateY(-2px)}
.dw-card[data-state="analysing"]{border-color:rgba(59,130,246,0.4)}
.dw-thumb{position:relative;display:block;height:92px;border-radius:8px;border:1px solid var(--dw-line);background:#0D0D11;overflow:hidden}
.dw-thumb__bar{position:absolute;top:0;left:0;right:0;height:13px;background:rgba(255,255,255,0.09)}
.dw-thumb__bar::before{content:"";position:absolute;left:6px;top:4.5px;width:26px;height:4px;border-radius:2px;background:rgba(255,255,255,0.22)}
.dw-thumb .l{position:absolute;left:12%;height:5px;border-radius:3px;background:rgba(255,255,255,0.13)}
.dw-thumb .l--hot{background:rgba(255,95,95,0.4)}
.dw-thumb .l--in{border:1px solid rgba(255,255,255,0.18);background:rgba(255,255,255,0.04);height:11px}
.dw-card__body{min-width:0;display:block}
.dw-card__art{display:block;font-family:var(--font-mono);font-size:0.88rem;color:#F5F5F8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dw-cat{display:inline-block;margin-top:0.4rem;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.08em;text-transform:uppercase;padding:0.13rem 0.4rem;border-radius:6px;border:1px solid}
.dw-cat--look{color:#ffd18a;border-color:rgba(255,154,60,0.35);background:rgba(255,154,60,0.08)}
.dw-cat--social{color:#dcb5ff;border-color:rgba(192,132,252,0.35);background:rgba(192,132,252,0.08)}
.dw-cat--app{color:#9cc0ff;border-color:rgba(59,130,246,0.35);background:rgba(59,130,246,0.08)}
.dw-cat--brand{color:#ffe89d;border-color:rgba(247,202,62,0.35);background:rgba(247,202,62,0.08)}
.dw-own{display:grid;gap:0.28rem;margin-top:0.55rem}
.dw-own__l{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.1em;text-transform:uppercase;color:var(--dw-mut)}
.dw-own__bar{height:6px;border-radius:100px;background:rgba(255,255,255,0.09);overflow:hidden}
.dw-own__bar i{display:block;height:100%;width:var(--w);border-radius:100px;background:linear-gradient(90deg,var(--dw-blue),var(--dw-purple))}
.dw-card__foot{display:flex;align-items:center;gap:0.55rem;margin-top:0.65rem;min-height:1.7em;flex-wrap:wrap}
.dw-verdict{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.08em;text-transform:uppercase;padding:0.16rem 0.45rem;border-radius:6px;border:1px solid transparent;min-height:1.55em}
.dw-card[data-state="analysing"] .dw-verdict{color:#9cc0ff;border-color:rgba(59,130,246,0.35);background:linear-gradient(90deg,rgba(59,130,246,0.06),rgba(59,130,246,0.22),rgba(59,130,246,0.06));background-size:200% 100%;animation:dw-shim 1.1s linear infinite}
.dw-card[data-state="done"][data-verdict="imp"] .dw-verdict{color:#ff9d9d;border-color:rgba(255,95,95,0.4);background:rgba(255,95,95,0.1)}
.dw-card[data-state="done"][data-verdict="evid"] .dw-verdict{color:#ffd18a;border-color:rgba(255,154,60,0.4);background:rgba(255,154,60,0.1)}
.dw-card[data-state="done"][data-verdict="unrel"] .dw-verdict{color:var(--dw-mut);border-color:var(--dw-line)}
.dw-card[data-state="done"][data-verdict="off"] .dw-verdict{color:#7cf1c0;border-color:rgba(63,239,168,0.4);background:rgba(63,239,168,0.1)}
.dw-route{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.1em;text-transform:uppercase;color:#B4B4BC;opacity:0;transform:translateX(-6px);transition:opacity 0.4s var(--ease),transform 0.4s var(--ease)}
.dw-card[data-state="done"] .dw-route{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media (max-width:900px){
 .dw-cmd{grid-template-columns:1fr;justify-items:start}
 .dw-gauge{width:176px}
 .dw-radar{right:-90px;opacity:0.3}
 .dw-kpis{grid-template-columns:repeat(2,1fr)}
 .dw-kpi{border-bottom:1px solid var(--dw-line)}
 .dw-kpi:nth-child(2n){border-right:0}
 .dw-kpi:last-child{border-bottom:1px solid var(--dw-line)}
 .dw-grid{grid-template-columns:1fr;grid-template-areas:"stream" "sev" "donut" "area"}
 .dw-panel{border-right:0}
 .dw-panel--stream{border-bottom:1px solid var(--dw-line)}
 .dw-panel--donut{border-bottom:1px solid var(--dw-line)}
 .dw-stream{min-height:0}
 .dw-pwgrid{grid-template-columns:1fr}
 .dw-cards{grid-template-columns:1fr}
}
@media (max-width:640px){
 .dw-radar{display:none}
 .dw-url{display:none}
 .dw-mini{grid-template-columns:1fr 1fr}
 .dw-stream li{grid-template-columns:74px 1fr}
 .dw-stream .dw-when{display:none}
 .dw-stream__tx{white-space:normal}
 .dw-table--int .dw-row{grid-template-columns:82px 1fr}
 .dw-table--int .dw-actor,.dw-table--int .dw-when{display:none}
 .dw-snip{white-space:normal}
 .dw-table--cred .dw-row{grid-template-columns:1fr 104px 84px}
 .dw-table--cred .dw-mask,.dw-table--cred .dw-origin{display:none}
 .dw-tfoot__hot{margin-left:0}
 .dw-pbar{grid-template-columns:118px 1fr 36px}
 .dw-lane--ai{margin-left:0}
 .dw-card{grid-template-columns:1fr}
 .dw-thumb{height:74px}
 .dw-donutwrap{grid-template-columns:1fr;justify-items:center}
}

/* ---------- reduced motion: render final states, no timers/keyframes ---------- */
/* live hero monitor — radar scope */
.dw-mon{position:relative;z-index:1;display:grid;gap:0.55rem;width:238px;padding:var(--s-4);border:1px solid var(--dw-line);border-radius:12px;background:rgba(59,130,246,0.04)}
.dw-mon__top{display:flex;justify-content:space-between;align-items:baseline;gap:0.5rem}
.dw-mon__l{font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.14em;text-transform:uppercase;color:var(--dw-mut)}
.dw-mon__n{font-family:var(--font-mono);font-size:1.7rem;font-weight:600;line-height:1;color:var(--dw-high)}
.dw-mon__viz{height:66px;overflow:hidden;border-radius:8px;background:#08090e;border:1px solid var(--dw-line);padding:0.32rem 0.5rem;display:flex;flex-direction:column;justify-content:flex-end;gap:0.16rem;position:relative}
.dw-mon__viz::after{content:"";position:absolute;left:0;right:0;top:0;height:22px;background:linear-gradient(180deg,#08090e,transparent);pointer-events:none}
.dw-tap{display:grid;grid-template-columns:auto auto 1fr;gap:0.4rem;align-items:center;font-family:var(--font-mono);font-size:0.6rem;line-height:1.25;color:var(--dw-txt);white-space:nowrap;min-width:0}
.dw-tap.is-new{animation:dw-tapin 0.4s var(--ease)}
@keyframes dw-tapin{from{opacity:0;transform:translateY(7px)}}
.dw-tap__d{width:5px;height:5px;border-radius:50%;flex:none}
.dw-tap__k{font-size:0.5rem;letter-spacing:0.04em;text-transform:uppercase;color:var(--dw-mut)}
.dw-tap__t{overflow:hidden;text-overflow:ellipsis;color:#cdd9ec}
.dw-tap__t em{font-style:normal;color:#9cc0ff}
.dw-mon__pill{justify-self:start;display:inline-flex;align-items:center;gap:0.4rem;font-family:var(--font-mono);font-size:var(--t-2xs);letter-spacing:0.12em;text-transform:uppercase;color:#ffc487;border:1px solid rgba(255,154,60,0.38);background:rgba(255,154,60,0.1);border-radius:100px;padding:0.2rem 0.55rem}
.dw-mon__pill::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--dw-high);animation:dw-pulse 1.8s ease-out infinite}
.dw-mon__foot{font-family:var(--font-mono);font-size:var(--t-2xs);color:var(--dw-mut)}
.dw-mon__foot b{color:#ffb3a6}
@media (max-width:900px){.dw-mon{width:auto;justify-self:stretch}}
@media (prefers-reduced-motion:reduce){.dw-tap.is-new,.dw-mon__pill::before{animation:none}}

@media (prefers-reduced-motion:reduce){
 .dw-live::before,.dw-livedot{animation:none}
 .dw-radar__sweep{animation:none;opacity:0}
 .dw-radar__b,.dw-radar__b--hot{animation:none;opacity:0.5}
 .dw-gauge__v{transition:none;stroke-dashoffset:28}
 .dw-pill{opacity:1;transform:none;transition:none}
 .dw-spark polyline{animation:none;stroke-dashoffset:0}
 .dw-app.is-in .dw-sevbar i,.dw-sevbar i{animation:none}
 .dw-app.is-in .dw-donut circle,.dw-tpanel.is-active .dw-donut circle{animation:none}
 .dw-area__line{animation:none!important;stroke-dashoffset:0}
 .dw-area__fill{animation:none!important;opacity:1}
 .dw-stream li.is-new{animation:none}
 .dw-tpanel.is-active .dw-row:not(.dw-row--h){animation:none}
 .dw-tpanel.is-active .dw-reuse__bar i,.dw-tpanel.is-active .dw-pbar__t i{animation:none}
 .dw-row[data-state="checking"] .dw-status,.dw-card[data-state="analysing"] .dw-verdict{animation:none}
 .dw-lane b.is-pop{animation:none}
 .dw-route{transition:none;opacity:1;transform:none}
 .dw-card,.dw-revoke{transition:none}
}
