/**
 * Badge Component System
 * Variants: primary, secondary, success, info, warning, danger
 * Sizes: sm, md, lg
 *
 * @author Amit Haridas, ConcreteInfo
 */

/* ============================================
   BASE BADGE
   ============================================ */
.badge {
  display: inline-flex;
  align-items: center;
  gap: var(--spacing-1-5);
  padding: var(--spacing-1) var(--spacing-2-5);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  line-height: 1;
  border-radius: var(--radius-full);
  white-space: nowrap;
  transition: all var(--transition-fast);
}

.badge i {
  font-size: 0.75em;
}

/* ============================================
   BADGE VARIANTS
   ============================================ */
.badge--primary {
  background-color: var(--color-brand-100);
  color: var(--color-brand);
}

.dark .badge--primary {
  background-color: hsl(var(--color-brand-h), 50%, 20%);
}

.badge--secondary {
  background-color: var(--color-gray-100);
  color: var(--color-gray-700);
}

.dark .badge--secondary {
  background-color: var(--color-gray-800);
  color: var(--color-gray-300);
}

.badge--success {
  background-color: var(--color-success-light);
  color: var(--color-success);
}

.dark .badge--success {
  background-color: hsl(142, 76%, 20%);
}

.badge--info {
  background-color: var(--color-info-light);
  color: var(--color-info);
}

.dark .badge--info {
  background-color: hsl(199, 89%, 20%);
}

.badge--warning {
  background-color: var(--color-warning-light);
  color: var(--color-warning);
}

.dark .badge--warning {
  background-color: hsl(45, 93%, 20%);
  color: hsl(45, 93%, 60%);
}

.badge--danger {
  background-color: var(--color-danger-light);
  color: var(--color-danger);
}

.dark .badge--danger {
  background-color: hsl(0, 84%, 20%);
}

/* ============================================
   BADGE SIZES
   ============================================ */
.badge--sm {
  padding: var(--spacing-0-5) var(--spacing-2);
  font-size: 0.625rem;
}

.badge--lg {
  padding: var(--spacing-1-5) var(--spacing-3);
  font-size: var(--font-size-sm);
}

/* ============================================
   BADGE WITH DOT
   ============================================ */
.badge--dot::before {
  content: '';
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: var(--radius-full);
  background-color: currentColor;
}

/* ============================================
   STATUS BADGE (with indicator dot)
   ============================================ */
.status-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--spacing-2);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
}

.status-badge__dot {
  width: 8px;
  height: 8px;
  border-radius: var(--radius-full);
  flex-shrink: 0;
}

.status-badge__dot--success {
  background-color: var(--color-success);
  box-shadow: 0 0 0 2px var(--color-success-light);
}

.status-badge__dot--warning {
  background-color: var(--color-warning);
  box-shadow: 0 0 0 2px var(--color-warning-light);
}

.status-badge__dot--danger {
  background-color: var(--color-danger);
  box-shadow: 0 0 0 2px var(--color-danger-light);
}

.status-badge__dot--info {
  background-color: var(--color-info);
  box-shadow: 0 0 0 2px var(--color-info-light);
}

.status-badge__dot--neutral {
  background-color: var(--color-gray-400);
  box-shadow: 0 0 0 2px var(--color-gray-200);
}

.dark .status-badge__dot--neutral {
  background-color: var(--color-gray-500);
  box-shadow: 0 0 0 2px var(--color-gray-700);
}

/* ============================================
   PILL BADGE (larger, more prominent)
   ============================================ */
.pill {
  display: inline-flex;
  align-items: center;
  gap: var(--spacing-2);
  padding: var(--spacing-2) var(--spacing-4);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  border-radius: var(--radius-full);
  border: 1px solid var(--border-subtle);
  background-color: var(--bg-secondary);
  color: var(--text-primary);
  transition: all var(--transition-fast);
}

.pill:hover {
  border-color: var(--border-default);
  box-shadow: var(--shadow-sm);
}

.pill--primary {
  background-color: var(--color-brand-100);
  border-color: var(--color-brand-200);
  color: var(--color-brand);
}

.pill__remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1rem;
  height: 1rem;
  border-radius: var(--radius-full);
  background-color: var(--bg-tertiary);
  color: var(--text-tertiary);
  font-size: 0.625rem;
  cursor: pointer;
  transition: all var(--transition-fast);
}

.pill__remove:hover {
  background-color: var(--color-danger-light);
  color: var(--color-danger);
}

/* ============================================
   BOOTSTRAP-COMPATIBLE BADGE ALIASES
   bg-* color variants for Bootstrap 5 badge syntax
   ============================================ */
.badge.bg-primary   { background-color: var(--color-brand); color: #fff; }
.badge.bg-secondary { background-color: #6b7280; color: #fff; }
.badge.bg-success   { background-color: #22c55e; color: #fff; }
.badge.bg-danger    { background-color: #ef4444; color: #fff; }
.badge.bg-warning   { background-color: #eab308; color: #111; }
.badge.bg-info      { background-color: #3b82f6; color: #fff; }
.badge.bg-dark      { background-color: #1f2937; color: #fff; }
.badge.bg-light     { background-color: #f3f4f6; color: #111; }
