/* ============================================================
   Badges (section 8)
   ============================================================ */

.badge {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  padding: 2px var(--space-2);
  border-radius: var(--radius-full);
  font-size: var(--text-xs);
  font-weight: 500;
  line-height: var(--leading-tight);
  white-space: nowrap;
}

.badge-dot {
  width: 6px;
  height: 6px;
  border-radius: var(--radius-full);
  flex-shrink: 0;
}

.badge-watched {
  background: var(--accent-dim);
  color: var(--accent);
}

.badge-watched .badge-dot {
  background: var(--accent);
}

.badge-identified {
  background: var(--warning-dim);
  color: var(--warning);
}

.badge-identified .badge-dot {
  background: var(--warning);
}

.badge-resolved {
  background: var(--positive-dim);
  color: var(--positive);
}

.badge-resolved .badge-dot {
  background: var(--positive);
}

/* Pulsing dot animation */
@keyframes dot-pulse {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.4; }
}

.badge-dot.pulsing {
  animation: dot-pulse 2s ease-in-out infinite;
}

/* Boolean indicators */
.bool-true, .bool-yes {
  color: var(--positive);
}

.bool-false, .bool-no {
  color: var(--text-tertiary);
}

/* Badge-watched pulsing dot */
.badge-watched .badge-dot {
  box-shadow: 0 0 6px var(--accent);
  animation: dot-pulse 2s ease-in-out infinite;
}

.badge-identified {
  background: rgba(74, 90, 106, 0.15);
  color: var(--text-secondary);
  border: 1px solid rgba(74, 90, 106, 0.2);
}

.badge-identified .badge-dot {
  background: var(--neutral);
}
