/* ── Base badge ── */
.badge {
  display: inline-block;
  font-family: var(--f-mono);
  font-size: var(--t-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 2px 6px;
  white-space: nowrap;
}

/* Classification stamp */
.badge--classification {
  border: var(--bw) solid var(--c-border);
  color: var(--c-text-2);
  background: transparent;
}
.badge--hash-class-foia,
.badge--hash-class-declassified { color: var(--c-foia); border-color: var(--c-foia); }

/* Evidence quality */
.badge--evidence { background: var(--c-badge-bg); color: var(--c-text-2); }
.badge--hash-ev-radar,
.badge--hash-ev-physical,
.badge--hash-ev-corroborated { color: var(--c-text); font-weight: 500; }

/* Source type */
.badge--source { background: var(--c-badge-bg); color: var(--c-text-3); }
.badge--hash-src-whistleblower,
.badge--hash-src-anonymous-gov { color: var(--c-text-2); }

/* Status left-border colors (set on card wrapper by badges.js) */
.card--ongoing  { border-left-color: var(--c-accent) !important; }
.card--closed   { border-left-color: var(--c-closed) !important; }
.card--cold     { border-left-color: var(--c-cold) !important; }
.card--pending  { border-left-color: var(--c-pending) !important; }

/* Article left-border (thicker) */
.article--ongoing  { border-left: var(--status-bar-art) solid var(--c-accent); }
.article--closed   { border-left: var(--status-bar-art) solid var(--c-closed); }
.article--cold     { border-left: var(--status-bar-art) solid var(--c-cold); }
.article--pending  { border-left: var(--status-bar-art) solid var(--c-pending); }

/* Context tags (incident / witness / geo) */
.context-tag {
  font-family: var(--f-mono);
  font-size: var(--t-xs);
  color: var(--c-text-3);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.context-tag + .context-tag::before { content: " · "; }

/* Empty state collapse — if no tags produce output, hide the container */
.card__stamp:empty,
.article__stamp:empty,
.card__badges:empty,
.article__badges:empty,
.article__context-tags:empty { display: none; }
