.city-btn-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  /* Prevent a wide badge from stretching the wrapper and causing row wrapping */
  min-width: 0;
}

.status-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 10px 3px 8px;
  border-radius: 20px;
  font-size: .72rem;
  font-family: 'Varela Round', Helvetica, Arial, sans-serif;
  white-space: nowrap;
  letter-spacing: .05em;
  text-transform: uppercase;
  font-weight: 600;
  border: 1px solid transparent;
  transition: background .3s, color .3s, border-color .3s;
}

.status-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
  transition: background .3s;
}

/* PENDING */
.status-badge[data-status="PENDING"] {
  background: #f4f4f4;
  border-color: #ddd;
  color: #aaa;
}
.status-badge[data-status="PENDING"] .status-dot { background: #ccc; }

/* GENERATING */
.status-badge[data-status="GENERATING"] {
  background: #fff8e6;
  border-color: #fcbd2a;
  color: #b38600;
}
.status-badge[data-status="GENERATING"] .status-dot {
  background: #fcbd2a;
  animation: pulse 1.2s ease-in-out infinite;
}

/* READY */
.status-badge[data-status="READY"] {
  background: #edfaf3;
  border-color: #2ecc71;
  color: #1a7a43;
}
.status-badge[data-status="READY"] .status-dot { background: #2ecc71; }

/* FAILED */
.status-badge[data-status="FAILED"] {
  background: #fef0f0;
  border-color: #e74c3c;
  color: #922b21;
}
.status-badge[data-status="FAILED"] .status-dot { background: #e74c3c; }

@keyframes pulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: .3; }
}
