/* core-jmp CVE Feed — compact list: CVE number (colored by severity) + short description.
   Inherits theme tokens via var(--token, fallback). */
.cjcve{
  --cv-bg:var(--bg,#fff);
  --cv-alt:var(--bg-alt,#f6f7f9);
  --cv-ink:var(--ink,#16181d);
  --cv-soft:var(--ink-soft,#3b4048);
  --cv-mute:var(--ink-mute,#6b7280);
  --cv-line:var(--line,#e7e9ee);
  --cv-line2:var(--line-strong,#d5d8df);
  --cv-accent:var(--accent-ink,#8f1526);
  --cv-mono:var(--mono,ui-monospace,"JetBrains Mono","SF Mono",Menlo,monospace);
  --cv-radius:var(--radius,10px);
  /* severity colors (dark enough for white text) */
  --sev-crit:#b3261e; --sev-high:#d64510; --sev-med:#b7791f; --sev-low:#3f7d55; --sev-na:#8a919e;
  margin:8px 0;color:var(--cv-ink)
}
.cjcve *{box-sizing:border-box}

.cjcve-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;
  margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--cv-line2)}
.cjcve-title{font-family:var(--cv-mono);font-size:15px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;margin:0;color:var(--cv-ink)}
.cjcve-title .cjcve-addr{color:var(--cv-accent)}
.cjcve-more{font-family:var(--cv-mono);font-size:13px;color:var(--cv-mute);text-decoration:none}
.cjcve-more:hover{color:var(--cv-accent)}

.cjcve-feed{border:1px solid var(--cv-line);border-radius:var(--cv-radius);overflow:hidden;background:var(--cv-bg)}
.cjcve-row{display:flex;flex-direction:column;align-items:flex-start;gap:8px;
  padding:14px 16px;border-bottom:1px solid var(--cv-line);border-left:3px solid var(--sev-na);
  color:var(--cv-ink);text-decoration:none;transition:background .12s}
.cjcve-row:last-child{border-bottom:0}
.cjcve-row:hover{background:var(--cv-alt);text-decoration:none}

.cjcve-id{font-family:var(--cv-mono);font-size:13px;font-weight:700;letter-spacing:.02em;line-height:1;
  color:#fff;background:var(--sev-na);padding:5px 10px;border-radius:6px;white-space:nowrap}
.cjcve-desc{margin:0;font-size:14px;line-height:1.5;color:var(--cv-soft)}

/* severity → CVE-number background + left stripe */
.cjcve-sev-critical{border-left-color:var(--sev-crit)} .cjcve-sev-critical .cjcve-id{background:var(--sev-crit)}
.cjcve-sev-high{border-left-color:var(--sev-high)}     .cjcve-sev-high .cjcve-id{background:var(--sev-high)}
.cjcve-sev-medium{border-left-color:var(--sev-med)}    .cjcve-sev-medium .cjcve-id{background:var(--sev-med)}
.cjcve-sev-low{border-left-color:var(--sev-low)}       .cjcve-sev-low .cjcve-id{background:var(--sev-low)}
.cjcve-sev-unknown{border-left-color:var(--sev-na)}    .cjcve-sev-unknown .cjcve-id{background:var(--sev-na)}

.cjcve-note{font-family:var(--cv-mono,monospace);font-size:13px;color:#8f1526;background:#f7e6e9;
  border:1px solid rgba(178,30,53,.25);border-radius:8px;padding:10px 14px;margin:8px 0}
.cjcve-note a{color:inherit}

/* compact variant — narrow columns (e.g. the home sidebar under "Latest drops") */
.cjcve-compact{margin:28px 0 0}
.cjcve-compact .cjcve-head{margin-bottom:14px;padding-bottom:11px}
.cjcve-compact .cjcve-title{font-size:12px;letter-spacing:.06em}
.cjcve-compact .cjcve-more{font-size:11px}
.cjcve-compact .cjcve-row{padding:12px 14px;gap:7px}
.cjcve-compact .cjcve-id{font-size:12px;padding:4px 9px}
.cjcve-compact .cjcve-desc{font-size:13px;line-height:1.45}

/* full table variant — for a dedicated page (all columns) */
.cjcve-table .cjcve-thead{display:grid;grid-template-columns:98px 150px 56px minmax(0,1fr) 108px;gap:14px;
  padding:11px 16px 11px 16px;border-bottom:1px solid var(--cv-line);background:var(--cv-alt);
  font-family:var(--cv-mono);font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--cv-mute)}
.cjcve-table .cjcve-thead span:nth-child(3),.cjcve-table .cjcve-row .cjcve-score{text-align:center}
.cjcve-table .cjcve-thead span:nth-child(5),.cjcve-table .cjcve-row .cjcve-date{text-align:right}
.cjcve-table .cjcve-row{display:grid;grid-template-columns:98px 150px 56px minmax(0,1fr) 108px;gap:14px;align-items:center;
  flex-direction:row;padding:12px 16px;border-left:3px solid var(--sev-na)}
.cjcve-table .cjcve-sev{font-family:var(--cv-mono);font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  text-align:center;padding:4px 6px;border-radius:6px;color:#fff;background:var(--sev-na);white-space:nowrap}
.cjcve-table .cjcve-row .cjcve-id{font-family:var(--cv-mono);font-size:13px;font-weight:600;color:var(--cv-accent);
  background:none;padding:0;border-radius:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cjcve-table .cjcve-score{font-family:var(--cv-mono);font-size:13px;color:var(--cv-soft);font-variant-numeric:tabular-nums}
.cjcve-table .cjcve-desc{font-size:14px;color:var(--cv-soft);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0}
.cjcve-table .cjcve-date{font-family:var(--cv-mono);font-size:11.5px;color:var(--cv-mute);white-space:nowrap}
.cjcve-table .cjcve-sev-critical .cjcve-sev{background:var(--sev-crit)}
.cjcve-table .cjcve-sev-high .cjcve-sev{background:var(--sev-high)}
.cjcve-table .cjcve-sev-medium .cjcve-sev{background:var(--sev-med)}
.cjcve-table .cjcve-sev-low .cjcve-sev{background:var(--sev-low)}
.cjcve-table .cjcve-sev-unknown .cjcve-sev{background:var(--sev-na)}

/* filter bar (search + severity buttons) */
.cjcve-filters{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.cjcve-search{display:flex;align-items:center;gap:8px;border:1px solid var(--cv-line);border-radius:9px;
  padding:0 12px;background:var(--cv-bg);flex:1 1 240px;min-width:200px;max-width:360px}
.cjcve-search svg{width:15px;height:15px;color:var(--cv-mute);flex:none}
.cjcve-q{border:0;outline:0;background:transparent;font-family:inherit;font-size:14px;color:var(--cv-ink);padding:9px 0;width:100%}
.cjcve-sevbtns{display:flex;gap:6px;flex-wrap:wrap}
.cjcve-fb{font-family:var(--cv-mono);font-size:11.5px;line-height:1;border:1px solid var(--cv-line);
  background:var(--cv-bg);color:var(--cv-soft);border-radius:8px;padding:7px 11px;cursor:pointer;
  display:inline-flex;gap:7px;align-items:center;transition:border-color .12s,background .12s,color .12s}
.cjcve-fb::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--cv-mute);flex:none}
.cjcve-fb[data-sev="all"]::before{display:none}
.cjcve-fb[data-sev="critical"]::before{background:var(--sev-crit)}
.cjcve-fb[data-sev="high"]::before{background:var(--sev-high)}
.cjcve-fb[data-sev="medium"]::before{background:var(--sev-med)}
.cjcve-fb[data-sev="low"]::before{background:var(--sev-low)}
.cjcve-fb[data-sev="unknown"]::before{background:var(--sev-na)}
.cjcve-fb b{color:var(--cv-mute);font-weight:600}
.cjcve-fb:hover{border-color:var(--cv-line2)}
.cjcve-fb.is-on{background:var(--cv-ink);color:#fff;border-color:var(--cv-ink)}
.cjcve-fb.is-on::before{opacity:.9}
.cjcve-fb.is-on b{color:rgba(255,255,255,.72)}
.cjcve-empty{padding:26px 14px;text-align:center;color:var(--cv-mute);font-size:14px}
@media (max-width:720px){
  .cjcve-table .cjcve-thead{display:none}
  .cjcve-table .cjcve-row{grid-template-columns:auto minmax(0,1fr);gap:3px 10px;padding:11px 13px}
  .cjcve-table .cjcve-sev{grid-column:1;grid-row:1/span 2;align-self:start}
  .cjcve-table .cjcve-row .cjcve-id{grid-column:2;grid-row:1}
  .cjcve-table .cjcve-score{display:none}
  .cjcve-table .cjcve-desc{grid-column:2;grid-row:2;white-space:normal}
  .cjcve-table .cjcve-date{display:none}
}

/* ---- KEV + EPSS enrichment ---- */
/* table gains an EPSS column: Severity | CVE | CVSS | EPSS | Description | Published */
.cjcve-table .cjcve-thead,
.cjcve-table .cjcve-row{grid-template-columns:96px 148px 52px 60px minmax(0,1fr) 104px}
.cjcve-table .cjcve-thead span:nth-child(4),
.cjcve-table .cjcve-row .cjcve-epss{text-align:center}
.cjcve-table .cjcve-thead span:nth-child(5){text-align:left}
.cjcve-table .cjcve-thead span:nth-child(6){text-align:right}
.cjcve-cve{display:flex;align-items:center;gap:7px;min-width:0}
.cjcve-cve .cjcve-id{min-width:0}
.cjcve-table .cjcve-epss{font-family:var(--cv-mono);font-size:12px;color:var(--cv-mute);font-variant-numeric:tabular-nums;white-space:nowrap}
.cjcve-kev{font-family:var(--cv-mono);font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:#fff;background:var(--sev-crit);padding:3px 6px;border-radius:5px;line-height:1;white-space:nowrap;flex:none}
.cjcve-row.is-kev{background:rgba(179,38,30,.045)}
.cjcve-row.is-kev:hover{background:var(--cv-alt)}
.cjcve-tagrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cjcve-tagrow .cjcve-epss{font-family:var(--cv-mono);font-size:11px;color:var(--cv-mute);
  border:1px solid var(--cv-line);border-radius:5px;padding:2px 6px;line-height:1;letter-spacing:.02em}
.cjcve-fb-kev::before{background:var(--sev-crit)!important}
.cjcve-fb-kev.is-on{background:var(--sev-crit);border-color:var(--sev-crit);color:#fff}
.cjcve-fb-kev.is-on b{color:rgba(255,255,255,.8)}
@media (max-width:720px){
  .cjcve-table .cjcve-cve{grid-column:2;grid-row:1;min-width:0}
  .cjcve-table .cjcve-epss{display:none}
}

/* ---- KEV panel ([kev_feed]) ---- */
.cjcve-kevpanel{margin-bottom:34px}
.cjcve-kevpanel .cjcve-kthead{display:grid;grid-template-columns:150px minmax(0,1fr) 60px 104px;gap:14px;
  padding:11px 16px;border-bottom:1px solid var(--cv-line);background:var(--cv-alt);
  font-family:var(--cv-mono);font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--cv-mute)}
.cjcve-kevpanel .cjcve-kthead span:nth-child(3){text-align:center}
.cjcve-kevpanel .cjcve-kthead span:nth-child(4){text-align:right}
.cjcve-krow{display:grid;grid-template-columns:150px minmax(0,1fr) 60px 104px;gap:14px;align-items:center;
  padding:12px 16px;border-bottom:1px solid var(--cv-line);border-left:3px solid var(--sev-crit);
  color:var(--cv-ink);text-decoration:none;transition:background .12s}
.cjcve-krow:last-child{border-bottom:0}
.cjcve-krow:hover{background:var(--cv-alt);text-decoration:none}
.cjcve-krow.is-ransom{background:rgba(179,38,30,.05)}
.cjcve-kid{font-family:var(--cv-mono);font-size:13px;font-weight:600;color:var(--cv-accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cjcve-kvuln{min-width:0;display:flex;flex-direction:column;gap:3px}
.cjcve-kvuln b{font-size:14px;font-weight:650;color:var(--cv-ink);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cjcve-kvuln i{font-style:normal;font-family:var(--cv-mono);font-size:11.5px;color:var(--cv-mute);display:flex;align-items:center;gap:7px;min-width:0}
.cjcve-kvuln i>span{flex:none}
.cjcve-ransom{font-family:var(--cv-mono);font-size:9px;font-weight:700;letter-spacing:.05em;color:#fff;background:var(--sev-crit);padding:2px 5px;border-radius:4px;white-space:nowrap}
.cjcve-kepss{font-family:var(--cv-mono);font-size:12px;color:var(--cv-soft);text-align:center;font-variant-numeric:tabular-nums}
.cjcve-kdate{font-family:var(--cv-mono);font-size:11.5px;color:var(--cv-mute);text-align:right;white-space:nowrap}
@media (max-width:720px){
  .cjcve-kevpanel .cjcve-kthead{display:none}
  .cjcve-krow{grid-template-columns:auto minmax(0,1fr);gap:3px 10px;padding:11px 13px}
  .cjcve-kepss{display:none}
  .cjcve-kid{grid-column:1;grid-row:1/span 2;align-self:start}
  .cjcve-kvuln{grid-column:2;grid-row:1}
  .cjcve-kdate{grid-column:2;grid-row:2;text-align:left}
}
