.badge {
  align-items: center;
  background-color: var(--badge-background, var(--color-bg));
  border: 1px solid var(--badge-border-color, var(--color-border));
  border-radius: var(--badge-radius, var(--rounded-md));
  box-shadow: var(--badge-box-shadow, none);
  color: var(--badge-color, var(--color-text));
  column-gap: var(--size-1);
  display: inline-flex;
  font-size: var(--text-xs);
  font-weight: var(--font-semibold);
  justify-content: center;
  line-height: var(--leading-4);
  min-inline-size: var(--badge-min-inline-size, 0);
  padding: var(--badge-padding, .125rem .5rem);
}

.badge--primary {
  --badge-background: var(--color-primary);
  --badge-border-color: transparent;
  --badge-box-shadow: var(--shadow-sm);
  --badge-color: var(--color-text-reversed);
}

.badge--secondary {
  --badge-background: var(--color-secondary);
  --badge-border-color: transparent;
  --badge-box-shadow: none;
  --badge-color: var(--color-text);
}

/* Muted fill + dark coloured text rather than CSS-Zero's solid-fill default:
   solid-fill status pills read as visual noise in long status columns. */
.badge--positive {
  --badge-background: light-dark(var(--green-100), var(--green-950));
  --badge-border-color: transparent;
  --badge-box-shadow: none;
  --badge-color: light-dark(var(--green-800), var(--green-300));
}

.badge--negative {
  --badge-background: light-dark(var(--red-100), var(--red-950));
  --badge-border-color: transparent;
  --badge-box-shadow: none;
  --badge-color: light-dark(var(--red-800), var(--red-300));
}

.badge--number {
  --badge-min-inline-size: var(--size-5);
  --badge-radius: var(--rounded-full);
}

/* Interactive badge used as a picker/dropdown trigger.
   Signals clickability via a trailing chevron + hover ring. */
button.badge--interactive {
  cursor: pointer;
  transition: background-color 120ms ease, box-shadow 120ms ease;
}

button.badge--interactive:hover {
  background-color: var(--color-border);
  box-shadow: inset 0 0 0 1px var(--color-border-dark);
}

button.badge--interactive:focus-visible {
  outline: 2px solid var(--color-selected-dark);
  outline-offset: 1px;
}

.badge__caret {
  --icon-size: 0.75rem;
  opacity: 0.55;
  margin-inline-start: 0.125rem;
}

button.badge--interactive:hover .badge__caret {
  opacity: 1;
}
