/*
 * NEXORA Security Status Primitives — Cycle 008 / task-007
 * -------------------------------------------------------------------------
 * Semantic tones for severity, finding status, run status and retest verdicts.
 * Meaning is carried by the TEXT label first; colour is a reinforcing signal,
 * never the sole channel. Restyles the legacy severity / status / verdict
 * classes onto the NEXORA palette and turns the severity-label / status-label
 * spans into pill badges. Loads after components.css.
 */

/* ---- Label spans → pill badges ---- */
.severity-label,
.status-label {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.15rem 0.55rem;
  border-radius: var(--nx-radius-pill);
  border: 1px solid var(--nx-border);
  background: var(--nx-panel-2);
  color: var(--nx-text-muted);
  font-size: var(--nx-fs-label);
  font-weight: 600;
  line-height: 1.5;
  text-transform: capitalize;
  white-space: nowrap;
}

/* ============================ Severity ============================ */
/* Bare colour usage (inline text in tables/headers). */
.severity-critical { color: var(--nx-danger); }
.severity-high { color: var(--nx-warn); }
.severity-medium { color: var(--nx-gold); }
.severity-low { color: var(--nx-info); }
.severity-info { color: var(--nx-text-muted); }

/* Severity as a tinted badge. */
.severity-label.severity-critical {
  background: var(--nx-danger-dim);
  border-color: rgba(255, 76, 76, 0.4);
  color: var(--nx-danger);
}
.severity-label.severity-high {
  background: var(--nx-warn-dim);
  border-color: rgba(244, 183, 64, 0.4);
  color: var(--nx-warn);
}
.severity-label.severity-medium {
  background: var(--nx-gold-dim);
  border-color: var(--nx-border-gold);
  color: var(--nx-gold-bright);
}
.severity-label.severity-low {
  background: var(--nx-info-dim);
  border-color: rgba(77, 163, 255, 0.4);
  color: var(--nx-info);
}
.severity-label.severity-info {
  background: var(--nx-panel-2);
  border-color: var(--nx-border);
  color: var(--nx-text-muted);
}

/* ============================ Finding status ============================ */
.status-candidate { color: var(--nx-text-muted); }
.status-needs_review { color: var(--nx-warn); }
.status-confirmed,
.status-open,
.status-supported { color: var(--nx-gold-bright); }
.status-false_positive { color: var(--nx-text-dim); }
.status-fixed { color: var(--nx-info); }
.status-verified_fixed { color: var(--nx-ok); }
.status-reopened,
.status-blocked { color: var(--nx-danger); }

.status-label.status-confirmed {
  background: var(--nx-gold-dim);
  border-color: var(--nx-border-gold);
  color: var(--nx-gold-bright);
}
.status-label.status-needs_review {
  background: var(--nx-warn-dim);
  border-color: rgba(244, 183, 64, 0.4);
  color: var(--nx-warn);
}
.status-label.status-fixed {
  background: var(--nx-info-dim);
  border-color: rgba(77, 163, 255, 0.4);
  color: var(--nx-info);
}
.status-label.status-verified_fixed {
  background: var(--nx-ok-dim);
  border-color: rgba(0, 224, 90, 0.4);
  color: var(--nx-ok);
}
.status-label.status-reopened,
.status-label.status-blocked {
  background: var(--nx-danger-dim);
  border-color: rgba(255, 76, 76, 0.4);
  color: var(--nx-danger);
}

/* ============================ Verdicts ============================ */
.verdict-verified,
.verdict-verified_fixed { color: var(--nx-ok); }
.verdict-claimed { color: var(--nx-warn); }
.verdict-regression,
.verdict-still_vulnerable { color: var(--nx-danger); }
.verdict-inconclusive,
.verdict-blocked { color: var(--nx-text-muted); }

/* Retest verdict badges (existing data-verdict-tone attribute + explicit tone). */
.retest-verdict-badge.verdict-tone-fixed,
.retest-queue-row[data-verdict-tone="fixed"] .retest-verdict-badge {
  color: var(--nx-ok);
}
.retest-verdict-badge.verdict-tone-vulnerable,
.retest-queue-row[data-verdict-tone="vulnerable"] .retest-verdict-badge {
  color: var(--nx-danger);
}
.retest-verdict-badge.verdict-tone-inconclusive,
.retest-verdict-badge.verdict-tone-blocked,
.retest-queue-row[data-verdict-tone="inconclusive"] .retest-verdict-badge,
.retest-queue-row[data-verdict-tone="blocked"] .retest-verdict-badge {
  color: var(--nx-text-muted);
  border-bottom: 1px dashed var(--nx-text-muted);
}
.retest-verdict-badge.verdict-tone-pending {
  color: var(--nx-text-muted);
}
