/* ═══════════════════════════════════════════════════════════════
   ThreatLedger — panels.css
   Shared styles for TLPanels renderer output (panels.js).
   Single source of truth: terminal.html and cop.html both link this
   file; neither page carries its own copy of these rules.
   Derived from RENDERED output of all 9 renderers (not source scan).
   Generated 22 Jul 2026 · rules: 130
   ═══════════════════════════════════════════════════════════════ */

.tick{font-family:'IBM Plex Mono',monospace;font-size:calc(14px * var(--fs));color:var(--mid);display:flex;gap:8px;align-items:center;}
.tick .kev{color:var(--red);font-weight:600;}
.tick .cve{color:var(--paper);}
.tick .ransom{color:var(--red);font-size:calc(11px * var(--fs));text-transform:uppercase;letter-spacing:.06em;}
.loading,.errbox{padding:26px 19px;font-family:'IBM Plex Mono',monospace;font-size:calc(12px * var(--fs));color:var(--muted);text-align:center;}
.errbox{color:var(--red);}
/* KEV rows */
.krow{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:14px 19px;border-bottom:1px solid var(--border);}
.krow:last-child{border-bottom:none;}
.krow:hover{background:var(--slate);}
.kmain{display:flex;flex-direction:column;gap:4px;min-width:0;}
.kmain .cve{font-family:'IBM Plex Mono',monospace;font-size:calc(15px * var(--fs));color:var(--paper);}
.kmain .vend{font-size:calc(14px * var(--fs));color:var(--mid);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.flags{display:flex;gap:6px;flex-shrink:0;}
.pill{font-family:'IBM Plex Mono',monospace;font-size:calc(10px * var(--fs));text-transform:uppercase;padding:4px 8px;border-radius:5px;font-weight:600;white-space:nowrap;}
.pill-ransom{background:rgba(226,75,74,.14);color:var(--red);border:1px solid rgba(226,75,74,.3);}
.pill-cvss{background:rgba(240,165,0,.12);color:var(--amber);border:1px solid rgba(240,165,0,.28);}
/* NVD */
.vel{padding:20px;}
.vel-headline{display:flex;align-items:baseline;gap:16px;margin-bottom:16px;}
.vel-num{font-family:'DM Serif Display',serif;font-size:3.4rem;line-height:.9;color:var(--paper);}
.vel-sub{font-family:'IBM Plex Mono',monospace;font-size:calc(12px * var(--fs));color:var(--mid);line-height:1.7;}
.vel-sub .up{color:var(--red);}
.velbars{display:flex;align-items:flex-end;gap:6px;height:70px;}
.velbar{flex:1;background:var(--slate2);border-radius:3px 3px 0 0;min-height:5px;}
.velbar.crit{background:var(--red);}
.velbar.hi{background:var(--amber);}
.vel-axis{display:flex;justify-content:space-between;font-family:'IBM Plex Mono',monospace;font-size:calc(10px * var(--fs));color:var(--muted);margin-top:8px;}
/* Tape */
.taperow{display:grid;grid-template-columns:56px 22px 1fr;gap:12px;padding:15px 19px;border-bottom:1px solid var(--border);align-items:start;}
.taperow:last-child{border-bottom:none;}
.taperow:hover{background:var(--slate);}
.tape-time{font-family:'IBM Plex Mono',monospace;font-size:calc(12px * var(--fs));color:var(--muted);padding-top:2px;}
.tape-mark{display:flex;justify-content:center;padding-top:5px;}
.tape-mark span{width:10px;height:10px;border-radius:3px;}
.m-kev{background:var(--red);}
.m-cve{background:var(--amber);}
.m-epss{background:var(--purple);}
.m-brief{background:var(--teal);}
.m-ics{background:var(--blue);}
.tape-txt{font-size:calc(15px * var(--fs));line-height:1.6;color:var(--body);}
.tape-txt .tag{font-family:'IBM Plex Mono',monospace;font-size:calc(10px * var(--fs));letter-spacing:.08em;text-transform:uppercase;margin-right:8px;font-weight:600;}
.tag-kev{color:var(--red);}
.tag-cve{color:var(--amber);}
.tag-epss{color:var(--purple);}
.tag-brief{color:var(--teal);}
.tag-ics{color:var(--blue);}
.tape-txt .id{font-family:'IBM Plex Mono',monospace;color:var(--paper);font-size:calc(13px * var(--fs));}
.tape-txt strong{color:var(--paper);font-weight:600;}
.tape-brief-row{background:rgba(0,194,168,.06);}
/* EPSS */
.erow{display:grid;grid-template-columns:1fr 82px 60px;gap:10px;align-items:center;padding:13px 19px;border-bottom:1px solid var(--border);font-family:'IBM Plex Mono',monospace;}
.erow:last-child{border-bottom:none;}
.erow:hover{background:var(--slate);}
.erow .cve{color:var(--paper);font-size:calc(15px * var(--fs));}
.erow .prob{text-align:right;color:var(--body);font-size:calc(16px * var(--fs));}
.erow .chg{text-align:right;font-size:calc(12px * var(--fs));font-weight:600;}
.chg.up{color:var(--red);}
.chg.dn{color:var(--teal);}
.chg.na{color:var(--muted);font-weight:400;}
.baseline-note{padding:11px 19px;font-family:'IBM Plex Mono',monospace;font-size:calc(10px * var(--fs));color:var(--amber);background:rgba(240,165,0,.06);border-bottom:1px solid var(--border);letter-spacing:.04em;}
/* Remediation clock */
.due-summary{display:flex;align-items:center;gap:16px;padding:13px 19px;background:var(--card-head);border-bottom:1px solid var(--border);font-family:'IBM Plex Mono',monospace;font-size:calc(11px * var(--fs));}
.due-summary .big{font-family:'DM Serif Display',serif;font-size:1.6rem;line-height:1;}
.due-summary .over-c{color:var(--red);}
.due-summary .soon-c{color:var(--amber);}
.due-summary .lbl{color:var(--muted);font-size:calc(10px * var(--fs));text-transform:uppercase;letter-spacing:.07em;}
.due-row{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:13px 19px;border-bottom:1px solid var(--border);}
.due-row:last-child{border-bottom:none;}
.due-row:hover{background:var(--slate);}
.due-main{display:flex;flex-direction:column;gap:3px;min-width:0;}
.due-cve{font-family:'IBM Plex Mono',monospace;font-size:calc(14px * var(--fs));color:var(--paper);}
/* BOD 26-04 tier badge — DERIVED from the dateAdded→dueDate interval, not a CISA field. */
.due-tier{font-family:'IBM Plex Mono',monospace;font-size:calc(8.5px * var(--fs));letter-spacing:.1em;padding:1px 5px;border-radius:3px;margin-left:7px;vertical-align:middle;}
.due-tier.t1{color:var(--outage);background:rgba(226,75,74,.10);border:1px solid rgba(226,75,74,.28);}
.due-tier.t2{color:var(--amber);background:rgba(240,165,0,.10);border:1px solid rgba(240,165,0,.25);}
.due-tier.t3{color:var(--blue);background:rgba(108,142,239,.10);border:1px solid rgba(108,142,239,.22);}
.due-tier.t4{color:var(--muted);background:rgba(107,118,132,.10);border:1px solid var(--border);}
.due-tier.legacy{color:var(--muted);background:transparent;border:1px dashed var(--border);}
.due-vend{font-size:calc(12.5px * var(--fs));color:var(--mid);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.due-days{font-family:'IBM Plex Mono',monospace;font-size:calc(15px * var(--fs));font-weight:600;text-align:right;min-width:48px;}
.due-days.over{color:var(--red);}
.due-days.soon{color:var(--amber);}
.due-days.ok{color:var(--teal);}
.due-lbl{font-family:'IBM Plex Mono',monospace;font-size:calc(9px * var(--fs));color:var(--muted);text-transform:uppercase;text-align:right;min-width:44px;}
.due-foot{font-family:'IBM Plex Mono',monospace;font-size:calc(10px * var(--fs));color:var(--muted);padding:11px 19px;border-top:1px solid var(--border);letter-spacing:.03em;}
/* ICS */
.icsrow{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:13px 19px;border-bottom:1px solid var(--border);}
.icsrow:last-child{border-bottom:none;}
.icsrow:hover{background:var(--slate);}
.ics-main{display:flex;flex-direction:column;gap:3px;min-width:0;}
.ics-code{font-family:'IBM Plex Mono',monospace;font-size:calc(13px * var(--fs));color:var(--blue);}
.ics-prod{font-size:calc(13.5px * var(--fs));color:var(--body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ics-vend{font-size:calc(12px * var(--fs));color:var(--muted);}
/* briefs */
.brow{display:grid;grid-template-columns:54px 1fr auto;gap:12px;align-items:center;padding:13px 19px;border-bottom:1px solid var(--border);}
.brow:last-child{border-bottom:none;}
.brow:hover{background:var(--slate);}
.brow .num{font-family:'IBM Plex Mono',monospace;font-size:calc(15px * var(--fs));color:var(--teal);font-weight:600;}
.brow .btitle{font-size:calc(14px * var(--fs));color:var(--body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.brow .pillar{font-family:'IBM Plex Mono',monospace;font-size:calc(11px * var(--fs));color:var(--muted);}
.net-dot{stroke:var(--void);stroke-width:1;}
.net-dot.outage{fill:var(--outage);}
.net-dot.anomaly{fill:var(--amber);}
.net-dot.bgp{fill:var(--blue);}
.net-dot.maj{animation:netpulse 1.8s ease-in-out infinite;}
.net-ev{display:flex;gap:9px;padding:8px 13px;border-bottom:1px solid var(--border);align-items:baseline;}
.net-ev:last-child{border-bottom:none;}
.net-ev .t{font-family:'IBM Plex Mono',monospace;font-size:calc(10px * var(--fs));color:var(--muted);flex:none;width:38px;}
.net-ev .k{font-family:'IBM Plex Mono',monospace;font-size:calc(8.5px * var(--fs));letter-spacing:.1em;text-transform:uppercase;padding:1px 6px;border-radius:3px;flex:none;}
.net-ev .k.outage{color:var(--outage);background:rgba(226,75,74,.09);}
.net-ev .k.anomaly{color:var(--amber);background:rgba(240,165,0,.09);}
.net-ev .k.bgp{color:var(--blue);background:rgba(108,142,239,.10);}
.net-ev .x{min-width:0;}
.net-ev .x b{font-size:calc(12px * var(--fs));font-weight:600;color:var(--body);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.net-ev .x small{font-size:calc(10.5px * var(--fs));color:var(--muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.net-stat{padding:10px 14px;border-right:1px solid var(--border);}
.net-stat:last-child{border-right:none;}
.net-stat .l{font-family:'IBM Plex Mono',monospace;font-size:calc(9px * var(--fs));letter-spacing:.12em;text-transform:uppercase;color:var(--muted);}
.net-stat .v{font-family:'IBM Plex Mono',monospace;font-size:calc(15px * var(--fs));font-weight:700;margin-top:2px;}
.net-stat .s{font-size:calc(10px * var(--fs));color:var(--muted);margin-top:1px;}
html[data-density="wall"] .krow .vend,
html[data-density="wall"] .irow .imeta,
html[data-density="wall"] .due-row small,
html[data-density="wall"] .src,
html[data-density="wall"] .net-ev .x small{display:none;}
/* ---------- SVC platform health ---------- */
.svc-lbl{font-family:'IBM Plex Mono',monospace;font-size:calc(10px * var(--fs));letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:10px 16px 6px;display:flex;align-items:center;gap:8px;}
.svc-lbl .sbar{width:3px;height:11px;border-radius:2px;flex:none;}
.svc-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px 14px;padding:0 16px 8px;}
.svc-row{display:flex;align-items:center;gap:8px;min-width:0;padding:3px 0;}
.svc-row .hdot{width:7px;height:7px;border-radius:50%;flex:none;}
.svc-row .hdot.ok{background:var(--ok);}
.svc-row .hdot.degr{background:var(--degraded);box-shadow:0 0 6px var(--degraded);}
.svc-row .hdot.maj{background:var(--outage);box-shadow:0 0 6px var(--outage);}
.svc-row .hdot.na{background:transparent;border:1px solid var(--muted);}
.svc-row .hname{font-family:'IBM Plex Mono',monospace;font-size:calc(12px * var(--fs));color:var(--body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;}
.svc-row.pending .hname{color:var(--muted);}
.svc-row .hstat{font-family:'IBM Plex Mono',monospace;font-size:calc(10px * var(--fs));letter-spacing:.06em;margin-left:auto;flex:none;}
.svc-row .hstat.ok{color:var(--ok);}
.svc-row .hstat.degr{color:var(--degraded);}
.svc-row .hstat.maj{color:var(--outage);}
.svc-row .hstat.na{color:var(--muted);}
