/* =============================================================
   Socle · Badge (.sc-badge)
   Étiquette de statut compacte, non interactive.
   Variantes : --accent, --success, --warning, --danger
   Modificateur : --solid (fond plein) · Élément : __dot
   ============================================================= */

.sc-badge {
  /* Tokens de composant : les variantes ne font que réassigner ceci. */
  --_badge-bg: var(--color-bg-subtle);
  --_badge-text: var(--color-text-secondary);
  --_badge-border: transparent;

  display: inline-flex;
  align-items: center;
  gap: var(--gap-2xs);
  padding: var(--padding-2xs) var(--padding-s);
  border: var(--border-hairline) solid var(--_badge-border);
  border-radius: var(--radius-pill);
  background: var(--_badge-bg);
  color: var(--_badge-text);
  font-family: var(--font-body);
  font-size: var(--text-caption-size);
  font-weight: var(--text-label-weight);
  line-height: var(--leading-tight);
  white-space: nowrap;
  vertical-align: middle;
}

/* L'icône se cale sur la taille de la légende plutôt que sur la
   grille 16px : le badge garde la même hauteur avec ou sans elle. */
.sc-badge svg {
  flex-shrink: 0;
  width: var(--space-12);
  height: var(--space-12);
}

/* Point de statut : un cercle en currentColor, il suit la variante. */
.sc-badge__dot {
  flex-shrink: 0;
  width: var(--space-6);
  height: var(--space-6);
  border-radius: var(--radius-pill);
  background: currentColor;
}

/* ---- Variantes teintées ---- */

.sc-badge--accent {
  --_badge-bg: var(--color-accent-subtle);
  --_badge-text: var(--color-accent-text);
  --_badge-border: var(--color-accent-border);
}

.sc-badge--success {
  --_badge-bg: var(--color-success-subtle);
  --_badge-text: var(--color-success-text);
  --_badge-border: var(--color-success-border);
}

.sc-badge--warning {
  --_badge-bg: var(--color-warning-subtle);
  --_badge-text: var(--color-warning-text);
  --_badge-border: var(--color-warning-border);
}

.sc-badge--danger {
  --_badge-bg: var(--color-danger-subtle);
  --_badge-text: var(--color-danger-text);
  --_badge-border: var(--color-danger-border);
}

/* ---- Fond plein ----
   Placé après les variantes teintées : seul, il rend le badge
   neutre inversé ; combiné, la double classe reprend la main. */

.sc-badge--solid {
  --_badge-bg: var(--color-bg-inverse);
  --_badge-text: var(--color-text-inverse);
  --_badge-border: transparent;
}

.sc-badge--accent.sc-badge--solid {
  --_badge-bg: var(--color-accent);
  --_badge-text: var(--color-text-on-accent);
}

.sc-badge--success.sc-badge--solid {
  --_badge-bg: var(--color-success);
  --_badge-text: var(--color-text-on-accent);
}

.sc-badge--danger.sc-badge--solid {
  --_badge-bg: var(--color-danger);
  --_badge-text: var(--color-text-on-accent);
}

/* Le blanc ne passe pas sur l'ambre, et --color-text bascule
   avec le thème : ce rôle-ci reste sombre dans les deux. */
.sc-badge--warning.sc-badge--solid {
  --_badge-bg: var(--color-warning);
  --_badge-text: var(--color-text-on-warning);
}
