/* status_badges_html, root .sb-stack.
   The two root rules stay bare; every other rule is scoped :where(.sb-stack), which adds zero
   specificity and so cannot change which rule wins. */

.sb-stack {
  display: inline-flex;
  gap: 6px;
  flex-wrap: wrap;
  align-items: center;
  font-family: var(--ch-font-primary);
}
.sb-stack:empty {
  display: none;
}
:where(.sb-stack) .sb-chip {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.4;
  border-radius: var(--ch-radius-full);
  letter-spacing: 0.2px;
  text-transform: uppercase;
  border: 1px solid transparent;
  white-space: nowrap;
}

/* Category — Required (accent) / Optional (neutral) */
:where(.sb-stack) .sb-chip.sb-required {
  background: var(--ch-accent-secondary);
  color: var(--ch-accent-primary-text, #b45309);
  border-color: var(--ch-accent-primary);
}
:where(.sb-stack) .sb-chip.sb-optional {
  background: var(--ch-bg-secondary);
  color: var(--ch-text-secondary);
  border-color: var(--ch-border);
}
:where(.sb-stack) .sb-chip.sb-new {
  background: var(--ch-info-bg);
  color: var(--ch-info);
  border-color: var(--ch-info-border);
}

/* Active state */
:where(.sb-stack) .sb-chip.sb-in_progress {
  background: var(--ch-info-bg);
  color: var(--ch-info);
  border-color: var(--ch-info-border);
}
:where(.sb-stack) .sb-chip.sb-cooldown_locked {
  background: var(--ch-bg-secondary);
  color: var(--ch-text-muted);
  border-color: var(--ch-border);
}

/* Compliance state */
:where(.sb-stack) .sb-chip.sb-overdue {
  background: var(--ch-danger-bg);
  color: var(--ch-danger);
  border-color: var(--ch-danger-border);
}
:where(.sb-stack) .sb-chip.sb-expiring {
  background: var(--ch-warning-bg);
  color: var(--ch-warning);
  border-color: var(--ch-warning-border);
}

/* Outcome — recent fail */
:where(.sb-stack) .sb-chip.sb-failed_recent {
  background: var(--ch-danger-bg);
  color: var(--ch-danger);
  border-color: var(--ch-danger-border);
}

/* Audit / history outcome chips */
:where(.sb-stack) .sb-chip.sb-passed {
  background: var(--ch-success-bg);
  color: var(--ch-success);
  border-color: var(--ch-success-border);
}
:where(.sb-stack) .sb-chip.sb-failed {
  background: var(--ch-danger-bg);
  color: var(--ch-danger);
  border-color: var(--ch-danger-border);
}
:where(.sb-stack) .sb-chip.sb-cancelled {
  background: var(--ch-bg-secondary);
  color: var(--ch-text-muted);
  border-color: var(--ch-border);
}
:where(.sb-stack) .sb-chip.sb-expired_cert {
  background: var(--ch-warning-bg);
  color: var(--ch-warning);
  border-color: var(--ch-warning-border);
}
:where(.sb-stack) .sb-chip.sb-retired {
  background: var(--ch-bg-secondary);
  color: var(--ch-text-muted);
  border-color: var(--ch-border);
}
