/* ═══════════════════════════════════════════════════════════
   Shared components — global, never component-scoped
   ═══════════════════════════════════════════════════════════ */

/* ─── Badge ───
   The shared box-model normalisation: a <button> badge and a <span> badge are pixel-identical,
   which is what lets two chips on one row share a baseline. */
.badge {
  display: inline-flex;
  align-items: center;
  line-height: 1.25;
  font-family: inherit;
  font-weight: 500;
  white-space: nowrap;
  border: 0;
  background: none;
  margin: 0;
  padding: 0;
}

button.badge {
  cursor: pointer;
}

.badge--pill {
  border-radius: var(--radius-full);
  padding: 2px 8px;
  font-size: var(--font-size-xs);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.badge--plain {
  font-size: var(--font-size-sm);
}

/* Tones — Pill tints its background, Plain colours the text only. */
.badge--pill.badge--neutral {
  background: var(--color-border);
  color: var(--color-on-surface-dim);
}

.badge--pill.badge--primary {
  background: var(--color-primary-tint);
  color: var(--color-primary);
}

.badge--pill.badge--success {
  background: var(--color-success-tint);
  color: var(--color-success);
}

.badge--pill.badge--warning {
  background: var(--color-warning-tint);
  color: var(--color-warning);
}

.badge--pill.badge--error {
  background: var(--color-error-tint);
  color: var(--color-error);
}

.badge--pill.badge--info {
  background: var(--color-info-tint);
  color: var(--color-info);
}

.badge--plain.badge--neutral {
  color: var(--color-on-surface-dim);
}

.badge--plain.badge--primary {
  color: var(--color-primary);
}

.badge--plain.badge--success {
  color: var(--color-success);
}

.badge--plain.badge--warning {
  color: var(--color-warning);
}

.badge--plain.badge--error {
  color: var(--color-error);
}

.badge--plain.badge--info {
  color: var(--color-info);
}

/* ─── BadgeGroup ─── */
.badge-group {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-sm);
}

.badge-group--vertical {
  flex-flow: column;
  align-items: flex-end;
  gap: 2px;
  /* column flips the main axis, so reset it to keep ClassCard's stack at the top of its
     space-between side column; right alignment is align-items' job above. */
  justify-content: flex-start;
}
