/* ==========================================================================
   components/badge.css — Badge, Pill, Status Dot
   ========================================================================== */

.badge {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  padding: 3px 10px;
  font-size: var(--text-xs);
  font-weight: var(--weight-semibold);
  line-height: 1.4;
  border-radius: var(--radius-full);
  text-transform: capitalize;
  white-space: nowrap;
  border: 1px solid transparent;
}

/* ---------- Status semantic badges ---------- */
.badge-success {
  background: var(--color-success-bg);
  color: var(--color-success);
}
.badge-danger {
  background: var(--color-danger-bg);
  color: var(--color-danger);
}
.badge-warning {
  background: var(--color-warning-bg);
  color: var(--color-warning);
}
.badge-info {
  background: var(--color-info-bg);
  color: var(--color-info);
}
.badge-muted {
  background: var(--color-surface-2);
  color: var(--color-text-muted);
  border-color: var(--color-border);
}

/* ---------- Category badges (match app colors) ---------- */
.badge-green {
  background: var(--app-green-icon-bg);
  color: var(--app-green-icon-fg);
}
.badge-gold {
  background: var(--app-gold-icon-bg);
  color: var(--app-gold-icon-fg);
}
.badge-blue {
  background: var(--app-blue-icon-bg);
  color: var(--app-blue-icon-fg);
}
.badge-teal {
  background: var(--app-teal-icon-bg);
  color: var(--app-teal-icon-fg);
}
.badge-red {
  background: var(--app-red-icon-bg);
  color: var(--app-red-icon-fg);
}
.badge-purple {
  background: var(--app-purple-icon-bg);
  color: var(--app-purple-icon-fg);
}
.badge-orange {
  background: var(--app-orange-icon-bg);
  color: var(--app-orange-icon-fg);
}
.badge-pink {
  background: var(--app-pink-icon-bg);
  color: var(--app-pink-icon-fg);
}
.badge-indigo {
  background: var(--app-indigo-icon-bg);
  color: var(--app-indigo-icon-fg);
}
.badge-cyan {
  background: var(--app-cyan-icon-bg);
  color: var(--app-cyan-icon-fg);
}
.badge-lime {
  background: var(--app-lime-icon-bg);
  color: var(--app-lime-icon-fg);
}
.badge-slate {
  background: var(--app-slate-icon-bg);
  color: var(--app-slate-icon-fg);
}
.badge-brown {
  background: var(--app-brown-icon-bg);
  color: var(--app-brown-icon-fg);
}
.badge-yellow {
  background: var(--app-yellow-icon-bg);
  color: var(--app-yellow-icon-fg);
}
.badge-emerald {
  background: var(--app-emerald-icon-bg);
  color: var(--app-emerald-icon-fg);
}
.badge-sky {
  background: var(--app-sky-icon-bg);
  color: var(--app-sky-icon-fg);
}
.badge-violet {
  background: var(--app-violet-icon-bg);
  color: var(--app-violet-icon-fg);
}
.badge-rose {
  background: var(--app-rose-icon-bg);
  color: var(--app-rose-icon-fg);
}
.badge-amber {
  background: var(--app-amber-icon-bg);
  color: var(--app-amber-icon-fg);
}
.badge-navy {
  background: var(--app-navy-icon-bg);
  color: var(--app-navy-icon-fg);
}
.badge-maroon {
  background: var(--app-maroon-icon-bg);
  color: var(--app-maroon-icon-fg);
}

/* ---------- Pill (larger) ---------- */
.pill {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: 5px 14px;
  font-size: var(--text-sm);
  font-weight: var(--weight-medium);
  border-radius: var(--radius-full);
  background: var(--color-surface-2);
  border: 1px solid var(--color-border);
  color: var(--color-text-secondary);
}

/* ---------- Status Dot ---------- */
.status-dot {
  display: inline-block;
  width: 9px;
  height: 9px;
  border-radius: var(--radius-full);
  flex-shrink: 0;
  background: var(--color-text-muted);
}

.status-dot-online {
  background: var(--color-success);
  animation: pulse-dot 2s infinite;
}

.status-dot-offline {
  background: var(--color-text-muted);
}

/* Dot inside a pill/label */
.status-label {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--text-sm);
  font-weight: var(--weight-medium);
}
.status-label .status-dot {
  width: 8px;
  height: 8px;
}
