/* Leakly vulnerability index (/index/ + /screen/). Dark terminal, #97C6FF signal.
 * Map: D3 Equal Earth (ISC) + Natural Earth via world-atlas (public domain / ISC). */
.vi{--vi-leakly:#97C6FF;--vi-rw:#FFB000;--vi-kev:#D6B3FF;--vi-none:#18222D;--vi-edge:#2E3E50;--vi-sea:#0D1319}
.vi .c-page-intro__eyebrow,.vi-kicker{font:var(--weight-medium) var(--size-xs)/1.4 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--color-signal);margin:0}
.vi h2{font-family:var(--font-display);font-size:var(--size-xl);margin:var(--space-6,32px) 0 var(--space-3)}
.vi h2.vi-kicker{font-size:var(--size-xs);margin:0}
.vi-asof{font:var(--size-sm)/1.5 var(--font-mono);color:var(--color-text-muted)}
.vi-score{display:grid;grid-template-columns:1fr;gap:var(--space-4);align-items:stretch;margin:var(--space-4) 0}
.vi-score__main{border:1px solid var(--color-rule);padding:var(--space-4);background:var(--color-ink-2)}
.vi-score__num{font:700 clamp(2.5rem,6vw,4rem)/1 var(--font-mono);font-variant-numeric:tabular-nums;color:var(--color-signal);display:block;margin:6px 0;overflow:visible}
.vi-score__delta,.vi-score__win{display:block;font:var(--size-xs)/1.5 var(--font-mono);color:var(--color-text-muted)}
.vi-subs{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-2);margin:0;padding:0;list-style:none}
.vi-sub{border:1px solid var(--color-rule);padding:var(--space-3);background:var(--color-ink-2);display:flex;flex-direction:column;gap:4px;min-width:0;overflow:visible}
.vi-sub__label{font:var(--size-xs)/1.35 var(--font-mono);color:var(--color-text-muted);overflow-wrap:anywhere;white-space:normal}
.vi-sub__v{font:700 clamp(1.35rem,3.2vw,1.85rem)/1.15 var(--font-mono);font-variant-numeric:tabular-nums;color:var(--color-text);overflow:visible;white-space:nowrap}
.vi-sub__n{font:var(--size-xs)/1.4 var(--font-mono);color:var(--color-text-muted);overflow-wrap:anywhere;white-space:normal}
.vi-sub__w{font:var(--size-xs)/1.35 var(--font-mono);color:var(--color-signal);white-space:normal}
.vi-spark svg{width:100%;max-width:320px;height:56px;display:block}
.vi-spark__line{fill:none;stroke:var(--color-signal);stroke-width:1.5}.vi-spark__mid{stroke:var(--color-rule);stroke-dasharray:3 3}
.vi-controls{display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-4);align-items:center;margin:var(--space-3) 0;font:var(--size-sm)/1.4 var(--font-mono)}
.vi-controls label,.vi-controls fieldset{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;margin:0;max-width:100%;min-width:0}
.vi-controls select{max-width:100%;min-width:0}
.vi-controls fieldset{border:0;padding:0}.vi-controls legend{float:left;margin-right:var(--space-2);padding:0}
.vi-controls select,.vi-btn{background:var(--color-ink-2);color:var(--color-text);border:1px solid var(--color-rule);padding:6px 10px;font:inherit;min-height:36px}
.vi-btn{cursor:pointer}.vi-btn[aria-pressed=true]{border-color:var(--color-signal);color:var(--color-signal)}
.vi-week{flex:1 1 280px}.vi-week input{flex:1;accent-color:var(--color-signal);min-width:160px}
.vi-week output{color:var(--color-signal);white-space:nowrap}
.vi-controls :focus-visible,.vi :focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
.vi-skip{display:inline-block;font:var(--size-xs)/1.4 var(--font-mono);margin:0 0 var(--space-2)}
.vi-map{margin:0 0 var(--space-3);border:1px solid var(--color-rule);background:var(--vi-sea);overflow:hidden}
.vi-map__svg{display:block;width:100%;height:auto;background:var(--vi-sea)}
.vi-map [data-vi-map]{position:relative;width:100%}
.vi-map figcaption{border-top:1px solid var(--color-rule);padding:8px 12px}
.vi-legend{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;font:var(--size-xs)/1.4 var(--font-mono);color:var(--color-text-muted)}
.vi-legend__bar{display:inline-block;width:140px;height:10px;border:1px solid var(--vi-edge);vertical-align:-1px;margin:0 6px}
.vi-legend__ends{display:inline-flex;gap:8px}
.vi-legend__none i{display:inline-block;width:10px;height:10px;background:var(--vi-none);border:1px solid var(--vi-edge);vertical-align:-1px;margin-right:4px}
.vi-keys{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 18px;font:var(--size-xs)/1.4 var(--font-mono);color:var(--color-text-muted)}
.vi-key{display:inline-flex;align-items:center;gap:6px}
.vi-key svg{width:14px;height:14px;flex:none}
.vi-key--leakly svg{fill:var(--vi-leakly)}.vi-key--ransomware svg{fill:var(--vi-rw)}.vi-key--kev svg{fill:var(--vi-kev)}
.vi-lib{font:11px/1.4 var(--font-mono);color:var(--color-text-muted);padding:6px 12px;border-top:1px solid var(--color-rule)}
.vi-tip{position:absolute;z-index:20;max-width:300px;background:#0B0F0E;border:1px solid var(--color-signal);padding:8px 10px;font:12px/1.45 var(--font-mono);pointer-events:none;box-shadow:0 6px 24px rgba(0,0,0,.6)}
.vi-tip[hidden]{display:none}.vi-tip__meta,.vi-tip__list{color:var(--color-text-muted);display:block;margin-top:4px}
.vi-tip__grid{display:grid;grid-template-columns:auto auto;gap:2px 12px;margin-top:6px;color:var(--color-text-muted)}
.vi-tip__src--leakly{color:var(--vi-leakly)}.vi-tip__src--ransomware{color:var(--vi-rw)}.vi-tip__src--kev{color:var(--vi-kev)}
.vi-tm{position:relative;height:420px;margin:var(--space-3) 0;background:#0D1319;border:1px solid var(--color-rule);overflow:hidden}
.vi-tm__group{position:absolute;border:1px solid var(--color-rule);box-sizing:border-box}
.vi-tm__gl{position:absolute;left:6px;top:2px;font:700 var(--size-xs)/18px var(--font-mono);color:var(--color-signal);white-space:nowrap;overflow:hidden;max-width:calc(100% - 8px);text-overflow:ellipsis}
.vi-tm__leaf{position:absolute;box-sizing:border-box;padding:4px 6px;overflow:hidden;color:#EDF2F7;font:var(--size-xs)/1.3 var(--font-mono);display:flex;flex-direction:column;justify-content:flex-start;border:1px solid rgba(11,15,14,.6)}
.vi-tm__leaf:focus{outline:2px solid #fff;outline-offset:-2px;z-index:2}
.vi-tm__n{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vi-tm__v i{font-style:normal;opacity:.85}
.vi-tm__leaf.is-tiny span{display:none}
.vi-tmkey{font:var(--size-xs)/1.4 var(--font-mono);color:var(--color-text-muted)}
.vi-tmkey i{display:inline-block;width:28px;height:10px;vertical-align:-1px;margin:0 4px}
.vi-flares{list-style:none;padding:0;margin:0;font:var(--size-sm)/1.5 var(--font-body)}
.vi-fl{padding:6px 0;border-bottom:1px solid var(--color-rule)}
.vi-fl__src{font:700 var(--size-xs)/1.4 var(--font-mono);text-transform:uppercase;letter-spacing:.06em;margin-right:6px}
.vi-fl--leakly .vi-fl__src{color:var(--vi-leakly)}.vi-fl--ransomware .vi-fl__src{color:var(--vi-rw)}.vi-fl--kev .vi-fl__src{color:var(--vi-kev)}
.vi-fl__meta{color:var(--color-text-muted);font-size:var(--size-xs)}
.vi-note{font-size:var(--size-sm);color:var(--color-text-muted)}
.vi-sources li{margin:4px 0}
.vi .c-table th[scope=row]{font-weight:500}
.vi-err{border:1px solid var(--badge-debunked-fg);padding:var(--space-3)}
@media (max-width:860px){.vi-tm{height:360px}.vi-legend__bar{width:90px}}
@media (max-width:600px){.vi-controls>label:first-child select{flex:1 1 100%}.vi-week output{white-space:normal}}
@media (max-width:420px){.vi-tm{height:300px}.vi-controls{font-size:var(--size-xs)}}
/* ---------- /screen kiosk: map + side panel fill the stage ---------- */
html.vi-kiosk,html.vi-kiosk body{background:#070A0C;margin:0;height:100%;overflow:hidden;color:var(--color-text)}
.vi-screen{height:100vh;display:grid;grid-template-rows:auto 1fr auto;gap:10px;padding:14px 18px;box-sizing:border-box;transition:transform .8s}
.vi-screen__top{display:flex;align-items:center;gap:28px;font-family:var(--font-mono)}
.vi-screen__brand{font:700 1.5rem/1 var(--font-mono);color:var(--color-text)}.vi-screen__brand b{color:var(--color-signal)}
.vi-screen__score{display:flex;align-items:baseline;gap:12px}
.vi-screen__score .vi-score__num{font-size:3.4rem;margin:0}
.vi-screen__meta{font:1rem/1.3 var(--font-mono);color:var(--color-text-muted)}
.vi-screen__clock{margin-left:auto;font:700 2rem/1 var(--font-mono);color:var(--color-signal)}
.vi-screen__stage{display:grid;grid-template-columns:var(--mapw,7fr) minmax(280px,3fr);gap:12px;min-height:0}
.vi-screen .vi-map{margin:0;height:100%;display:flex;flex-direction:column;min-height:0}
.vi-screen .vi-map [data-vi-map]{flex:1;min-height:0}
.vi-screen .vi-map__svg{height:100%;width:100%}
.vi-screen__side{display:flex;flex-direction:column;gap:8px;min-height:0;overflow:hidden;border:1px solid var(--color-rule);background:#0D1319;padding:10px 12px}
.vi-screen__side .vi-flares{overflow:hidden;font-size:.95rem;flex:1}
.vi-screen .vi-subs{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
.vi-screen .vi-sub{padding:8px 10px}.vi-screen .vi-sub__v{font-size:clamp(1.25rem,2.5vw,1.6rem)}
.vi-screen__foot{display:flex;gap:18px;align-items:center;font:.85rem/1.4 var(--font-mono);color:var(--color-text-muted);white-space:nowrap;overflow:hidden}
.vi-screen .vi-btn{min-height:30px;padding:3px 10px}
.vi-tm__leaf .vi-tm__n,.vi-tm__leaf .vi-tm__v{text-shadow:0 1px 2px rgba(0,0,0,.6)}
@media (max-width:900px){.vi-screen{height:auto;min-height:100vh}html.vi-kiosk,html.vi-kiosk body{overflow:auto}.vi-screen__stage{grid-template-columns:1fr}.vi-screen .vi-map [data-vi-map]{min-height:50vh}.vi-screen__top{flex-wrap:wrap;gap:12px}.vi-screen__foot{white-space:normal}}
