/* ===================================
   CRAYONS DESIGN SYSTEM - BADGES
   Tags, labels, status indicators
   Local Hours v1.0
   =================================== */

/* ===================================
   BASE BADGE
   =================================== */

.crayons-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--crayons-space-1);
  font-family: var(--crayons-font-sans);
  font-weight: var(--crayons-font-weight-semibold);
  font-size: var(--crayons-font-size-xs);
  line-height: 1;
  padding: var(--crayons-space-1) var(--crayons-space-3);
  border-radius: var(--crayons-radius-full);
  white-space: nowrap;
  text-transform: uppercase;
  letter-spacing: var(--crayons-letter-spacing-wide);
}

/* ===================================
   BADGE VARIANTS (Semantic)
   =================================== */

.crayons-badge--primary {
  background: var(--crayons-primary-100);
  color: var(--crayons-primary-700);
}

.crayons-badge--secondary {
  background: var(--crayons-secondary-100);
  color: var(--crayons-secondary-700);
}

.crayons-badge--success {
  background: var(--crayons-success-50);
  color: var(--crayons-success-700);
}

.crayons-badge--warning {
  background: var(--crayons-warning-50);
  color: var(--crayons-warning-700);
}

.crayons-badge--error {
  background: var(--crayons-error-50);
  color: var(--crayons-error-700);
}

.crayons-badge--info {
  background: var(--crayons-info-50);
  color: var(--crayons-info-700);
}

.crayons-badge--neutral {
  background: var(--crayons-gray-100);
  color: var(--crayons-gray-700);
}

/* ===================================
   BADGE STYLES
   =================================== */

/* Solid badges */
.crayons-badge--solid-primary {
  background: var(--crayons-primary-500);
  color: white;
}

.crayons-badge--solid-secondary {
  background: var(--crayons-secondary-500);
  color: white;
}

.crayons-badge--solid-success {
  background: var(--crayons-success-500);
  color: white;
}

.crayons-badge--solid-error {
  background: var(--crayons-error-500);
  color: white;
}

/* Outlined badges */
.crayons-badge--outline-primary {
  background: transparent;
  color: var(--crayons-primary-600);
  border: 1px solid var(--crayons-primary-500);
}

.crayons-badge--outline-secondary {
  background: transparent;
  color: var(--crayons-secondary-600);
  border: 1px solid var(--crayons-secondary-500);
}

.crayons-badge--outline-success {
  background: transparent;
  color: var(--crayons-success-700);
  border: 1px solid var(--crayons-success-500);
}

.crayons-badge--outline-error {
  background: transparent;
  color: var(--crayons-error-700);
  border: 1px solid var(--crayons-error-500);
}

/* ===================================
   BADGE SIZES
   =================================== */

.crayons-badge--xs {
  font-size: 10px;
  padding: 2px var(--crayons-space-2);
}

.crayons-badge--sm {
  font-size: var(--crayons-font-size-xs);
  padding: var(--crayons-space-1) var(--crayons-space-3);
}

.crayons-badge--md {
  /* Default size */
}

.crayons-badge--lg {
  font-size: var(--crayons-font-size-sm);
  padding: var(--crayons-space-2) var(--crayons-space-4);
}

/* ===================================
   BADGE WITH ICON
   =================================== */

.crayons-badge i,
.crayons-badge svg {
  width: 12px;
  height: 12px;
}

.crayons-badge--lg i,
.crayons-badge--lg svg {
  width: 14px;
  height: 14px;
}

/* ===================================
   BADGE WITH DOT
   =================================== */

.crayons-badge--dot::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: var(--crayons-radius-full);
  background: currentColor;
  margin-right: var(--crayons-space-1);
}

/* ===================================
   BADGE WITH COUNT/NUMBER
   =================================== */

.crayons-badge--pill {
  min-width: 24px;
  height: 24px;
  padding: 0 var(--crayons-space-2);
  border-radius: var(--crayons-radius-full);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: var(--crayons-font-weight-bold);
}

.crayons-badge--pill.crayons-badge--sm {
  min-width: 20px;
  height: 20px;
  font-size: 10px;
}

/* ===================================
   NOTIFICATION BADGE
   =================================== */

.crayons-badge--notification {
  position: absolute;
  top: -6px;
  right: -6px;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  background: var(--crayons-error-500);
  color: white;
  font-size: 10px;
  font-weight: var(--crayons-font-weight-bold);
  border-radius: var(--crayons-radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid white;
  box-shadow: var(--crayons-shadow-sm);
}

.crayons-badge--notification:empty {
  width: 10px;
  height: 10px;
  min-width: 10px;
  padding: 0;
}

/* ===================================
   STATUS BADGES
   =================================== */

.crayons-badge--status {
  display: inline-flex;
  align-items: center;
  gap: var(--crayons-space-2);
  padding: var(--crayons-space-2) var(--crayons-space-4);
  border-radius: var(--crayons-radius-lg);
  font-weight: var(--crayons-font-weight-medium);
  text-transform: none;
  letter-spacing: normal;
}

.crayons-badge--status::before {
  content: '';
  width: 8px;
  height: 8px;
  border-radius: var(--crayons-radius-full);
  background: currentColor;
  animation: crayons-pulse-dot 2s ease-in-out infinite;
}

@keyframes crayons-pulse-dot {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}

/* Status variants */
.crayons-badge--status-online {
  background: var(--crayons-success-50);
  color: var(--crayons-success-700);
}

.crayons-badge--status-offline {
  background: var(--crayons-gray-100);
  color: var(--crayons-gray-600);
}

.crayons-badge--status-busy {
  background: var(--crayons-error-50);
  color: var(--crayons-error-700);
}

.crayons-badge--status-away {
  background: var(--crayons-warning-50);
  color: var(--crayons-warning-700);
}

/* ===================================
   SPECIAL BADGES
   =================================== */

/* Superhost badge */
.crayons-badge--superhost {
  background: linear-gradient(135deg, #f97316 0%, #ea580c 100%);
  color: white;
  font-weight: var(--crayons-font-weight-bold);
  box-shadow: 0 2px 8px rgba(249, 115, 22, 0.3);
}

/* Verified badge */
.crayons-badge--verified {
  background: var(--crayons-gradient-primary);
  color: white;
  font-weight: var(--crayons-font-weight-bold);
}

/* New badge */
.crayons-badge--new {
  background: var(--crayons-gradient-success);
  color: white;
  animation: crayons-badge-pulse 2s ease-in-out infinite;
}

@keyframes crayons-badge-pulse {
  0%, 100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7);
  }
  50% {
    transform: scale(1.05);
    box-shadow: 0 0 0 6px rgba(16, 185, 129, 0);
  }
}

/* Trending badge */
.crayons-badge--trending {
  background: linear-gradient(135deg, #ec4899 0%, #db2777 100%);
  color: white;
  animation: crayons-shimmer 3s ease-in-out infinite;
  background-size: 200% auto;
}

/* ===================================
   BADGE GROUP
   =================================== */

.crayons-badge-group {
  display: inline-flex;
  gap: var(--crayons-space-2);
  flex-wrap: wrap;
}

.crayons-badge-group--stacked {
  display: inline-flex;
  gap: 0;
}

.crayons-badge-group--stacked > .crayons-badge {
  border-radius: 0;
  margin-left: -1px;
}

.crayons-badge-group--stacked > .crayons-badge:first-child {
  border-top-left-radius: var(--crayons-radius-full);
  border-bottom-left-radius: var(--crayons-radius-full);
}

.crayons-badge-group--stacked > .crayons-badge:last-child {
  border-top-right-radius: var(--crayons-radius-full);
  border-bottom-right-radius: var(--crayons-radius-full);
}

/* ===================================
   INTERACTIVE BADGES
   =================================== */

.crayons-badge--clickable {
  cursor: pointer;
  transition: all var(--crayons-transition-fast) var(--crayons-ease-out);
}

.crayons-badge--clickable:hover {
  transform: translateY(-1px);
  box-shadow: var(--crayons-shadow-sm);
}

.crayons-badge--clickable:active {
  transform: translateY(0);
}

/* Removable badge */
.crayons-badge--removable {
  padding-right: var(--crayons-space-1);
}

.crayons-badge__remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  margin-left: var(--crayons-space-1);
  border-radius: var(--crayons-radius-full);
  background: rgba(0, 0, 0, 0.1);
  cursor: pointer;
  transition: background var(--crayons-transition-fast);
}

.crayons-badge__remove:hover {
  background: rgba(0, 0, 0, 0.2);
}

/* ===================================
   CATEGORY BADGES (for experiences)
   =================================== */

.crayons-badge--category {
  padding: var(--crayons-space-2) var(--crayons-space-4);
  border-radius: var(--crayons-radius-lg);
  font-weight: var(--crayons-font-weight-semibold);
  text-transform: capitalize;
  letter-spacing: normal;
}

.crayons-badge--category-food {
  background: #fff7ed;
  color: #c2410c;
}

.crayons-badge--category-culture {
  background: #f3e8ff;
  color: #7e22ce;
}

.crayons-badge--category-nightlife {
  background: #fce7f3;
  color: #be123c;
}

.crayons-badge--category-sports {
  background: #dbeafe;
  color: #1e40af;
}

.crayons-badge--category-art {
  background: #fef3c7;
  color: #a16207;
}

.crayons-badge--category-nature {
  background: #d1fae5;
  color: #065f46;
}

.crayons-badge--category-guide {
  background: #e0e7ff;
  color: #4338ca;
}

/* ===================================
   RESPONSIVE
   =================================== */

@media (max-width: 640px) {
  .crayons-badge {
    font-size: 10px;
    padding: 2px var(--crayons-space-2);
  }

  .crayons-badge--lg {
    font-size: var(--crayons-font-size-xs);
    padding: var(--crayons-space-1) var(--crayons-space-3);
  }
}
