/* ── Badge overrides: pastel pills with a leading status dot ── */

.badge {
  font-weight: 500;
  letter-spacing: 0.02em;
  border: 1px solid transparent;
}

/* Pill shape + leading dot, applied to semantic status colors only.
   bg-light is intentionally excluded so neutral chip-style badges stay flat. */
.badge.bg-success,
.badge.text-bg-success,
.badge.bg-danger,
.badge.text-bg-danger,
.badge.bg-warning,
.badge.text-bg-warning,
.badge.bg-info,
.badge.text-bg-info,
.badge.bg-secondary,
.badge.text-bg-secondary,
.badge.bg-primary,
.badge.text-bg-primary,
.badge.bg-dark,
.badge.text-bg-dark {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 2px 10px 2px 8px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
}

.badge.bg-success::before,
.badge.text-bg-success::before,
.badge.bg-danger::before,
.badge.text-bg-danger::before,
.badge.bg-warning::before,
.badge.text-bg-warning::before,
.badge.bg-info::before,
.badge.text-bg-info::before,
.badge.bg-secondary::before,
.badge.text-bg-secondary::before,
.badge.bg-primary::before,
.badge.text-bg-primary::before,
.badge.bg-dark::before,
.badge.text-bg-dark::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.7;
  flex-shrink: 0;
}

/* Green — success, published, active */
.badge.bg-success,
.badge.text-bg-success {
  background-color: #e8f5e6 !important;
  color: #2e6a37 !important;
  border-color: transparent;
}

/* Red — danger, error, cancelled */
.badge.bg-danger,
.badge.text-bg-danger {
  background-color: #f6e3e0 !important;
  color: #8a3c32 !important;
  border-color: transparent;
}

/* Amber — warning, pending, unused */
.badge.bg-warning,
.badge.text-bg-warning {
  background-color: #fbf0d8 !important;
  color: #8a5a1a !important;
  border-color: transparent;
}

/* Blue — info, shared */
.badge.bg-info,
.badge.text-bg-info {
  background-color: #e2ebf5 !important;
  color: #2d5080 !important;
  border-color: transparent;
}

/* Slate — secondary, draft, inactive */
.badge.bg-secondary,
.badge.text-bg-secondary {
  background-color: #ececf0 !important;
  color: #4b5161 !important;
  border-color: transparent;
}

/* Primary — accent blue */
.badge.bg-primary,
.badge.text-bg-primary {
  background-color: #e0e6ff !important;
  color: #2945c4 !important;
  border-color: transparent;
}

/* Dark — archived, muted violet */
.badge.bg-dark,
.badge.text-bg-dark {
  background-color: #eee4f4 !important;
  color: #5c3d85 !important;
  border-color: transparent;
}

/* Light */
.badge.bg-light,
.badge.text-bg-light {
  background-color: #f4f3ee !important;
  color: #6a6f7d !important;
  border-color: #e6e4de;
}

/* Subtle variants (used by model picker badges) — mirror the pastel palette */
.badge.bg-success-subtle { background-color: #e8f5e6 !important; color: #2e6a37 !important; border: 1px solid transparent; }
.badge.bg-danger-subtle { background-color: #f6e3e0 !important; color: #8a3c32 !important; border: 1px solid transparent; }
.badge.bg-warning-subtle { background-color: #fbf0d8 !important; color: #8a5a1a !important; border: 1px solid transparent; }
.badge.bg-info-subtle { background-color: #e2ebf5 !important; color: #2d5080 !important; border: 1px solid transparent; }
.badge.bg-secondary-subtle { background-color: #ececf0 !important; color: #4b5161 !important; border: 1px solid transparent; }

/* Calendar color badges */
.bg-cal-blue { background-color: #dbeafe !important; }
.bg-cal-sand { background-color: #fef3c7 !important; }
.bg-cal-sage { background-color: #dcfce7 !important; }

/* ── Toast overrides: match the pastel badge palette ── */
.toast {
  border-radius: 10px;
  border: 1px solid transparent;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
}

.toast .toast-body {
  font-weight: 500;
  font-size: 0.9rem;
  padding: 0.75rem 1rem;
}

.toast.text-bg-success {
  background-color: #e8f5e6 !important;
  color: #2e6a37 !important;
  border-color: #cfe4cb;
}

.toast.text-bg-danger {
  background-color: #f6e3e0 !important;
  color: #8a3c32 !important;
  border-color: #e8c6c0;
}

.toast.text-bg-warning {
  background-color: #fbf0d8 !important;
  color: #8a5a1a !important;
  border-color: #efdcb2;
}

.toast.text-bg-info {
  background-color: #e2ebf5 !important;
  color: #2d5080 !important;
  border-color: #c9d7eb;
}

.toast .btn-close {
  opacity: 0.5;
}
.toast .btn-close:hover {
  opacity: 0.85;
}

/* ── Source badges: compact pastel badges for booking sources ── */
.source-badge {
  display: inline-block;
  font-size: 0.65rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.03em;
  padding: 0.12rem 0.38rem;
  border-radius: 0.28rem;
  border: 1px solid rgba(0, 0, 0, 0.06);
  white-space: nowrap;
}

.source-badge--gyg { background-color: #e0f2fe; color: #075985; }
.source-badge--project_expedition { background-color: #d1fae5; color: #065f46; }
.source-badge--viator { background-color: #fce7f3; color: #9d174d; }
.source-badge--vexperio { background-color: #ede9fe; color: #5b21b6; }
.source-badge--essence_berlin { background-color: #ecfccb; color: #3f6212; }
.source-badge--venture_ashore { background-color: #ffedd5; color: #9a3412; }
.source-badge--shore_excursioneer { background-color: #cffafe; color: #0e7490; }
.source-badge--seg { background-color: #fef3c7; color: #92400e; }
.source-badge--jay_way { background-color: #f3e8ff; color: #6b21a8; }
.source-badge--email { background-color: #f1f5f9; color: #475569; }
.source-badge--other { background-color: #f4f4f5; color: #52525b; }

.source-badge--full {
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: normal;
  padding: 0.2rem 0.5rem;
  white-space: normal;
  vertical-align: middle;
}
