:root {
  --tkt-dp-bg: #ffffff;
  --tkt-dp-border: #e2e8f0;
  --tkt-dp-text: #0f172a;
  --tkt-dp-text-muted: #64748b;
  --tkt-dp-accent: #0EA5E9;          /* sky-500 */
  --tkt-dp-accent-soft: #e0f2fe;     /* sky-100 */
  --tkt-dp-today: #f1f5f9;
  --tkt-dp-hover: #f8fafc;
  --tkt-dp-radius: 14px;
  --tkt-dp-radius-sm: 10px;
  --tkt-dp-shadow: 0 20px 40px -12px rgba(15, 23, 42, 0.15),
                   0 0 0 1px rgba(15, 23, 42, 0.05);
  --tkt-dp-font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
}

.flatpickr-calendar {
  background: var(--tkt-dp-bg) !important;
  border: 1px solid var(--tkt-dp-border) !important;
  border-radius: var(--tkt-dp-radius) !important;
  box-shadow: var(--tkt-dp-shadow) !important;
  font-family: var(--tkt-dp-font) !important;
  padding: 12px !important;
  width: 320px !important;
  animation: tkt-dp-pop 180ms cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes tkt-dp-pop {
  from { opacity: 0; transform: translateY(-4px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.flatpickr-months { padding: 4px 8px 12px; }
.flatpickr-month { color: var(--tkt-dp-text) !important; }
.flatpickr-current-month {
  font-size: 14px !important;
  font-weight: 700 !important;
  color: var(--tkt-dp-text) !important;
  padding: 0 !important;
}
.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month input.cur-year {
  color: var(--tkt-dp-text) !important;
  font-weight: 700 !important;
}

/* Navigation arrows — minimal */
.flatpickr-prev-month, .flatpickr-next-month {
  fill: var(--tkt-dp-text-muted) !important;
  width: 32px !important;
  height: 32px !important;
  border-radius: 9999px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: all 150ms ease;
}
.flatpickr-prev-month:hover, .flatpickr-next-month:hover {
  background: var(--tkt-dp-hover) !important;
  fill: var(--tkt-dp-text) !important;
}

/* Weekday header */
.flatpickr-weekdays { padding: 8px 0; }
span.flatpickr-weekday {
  color: var(--tkt-dp-text-muted) !important;
  font-weight: 600 !important;
  font-size: 11px !important;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* Day cells */
.flatpickr-day {
  border-radius: var(--tkt-dp-radius-sm) !important;
  border: none !important;
  color: var(--tkt-dp-text) !important;
  font-weight: 500 !important;
  height: 38px !important;
  line-height: 38px !important;
  margin: 1px;
  transition: background 120ms ease, color 120ms ease, transform 120ms ease;
}
.flatpickr-day:hover {
  background: var(--tkt-dp-hover) !important;
  color: var(--tkt-dp-text) !important;
}
.flatpickr-day.today {
  background: var(--tkt-dp-today) !important;
  color: var(--tkt-dp-text) !important;
  font-weight: 700 !important;
}
.flatpickr-day.today:hover {
  background: var(--tkt-dp-accent-soft) !important;
}
.flatpickr-day.selected,
.flatpickr-day.selected:hover {
  background: var(--tkt-dp-accent) !important;
  color: white !important;
  font-weight: 700 !important;
  transform: scale(1.02);
  box-shadow: 0 4px 12px rgba(14, 165, 233, 0.35);
}
.flatpickr-day.prevMonthDay, .flatpickr-day.nextMonthDay {
  color: var(--tkt-dp-text-muted) !important;
  opacity: 0.5;
}
.flatpickr-day.flatpickr-disabled {
  color: var(--tkt-dp-text-muted) !important;
  opacity: 0.3;
  cursor: not-allowed;
}

/* Range styling (for round-trip booking later) */
.flatpickr-day.inRange {
  background: var(--tkt-dp-accent-soft) !important;
  color: var(--tkt-dp-text) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.flatpickr-day.startRange, .flatpickr-day.endRange {
  background: var(--tkt-dp-accent) !important;
  color: white !important;
}
.flatpickr-day.startRange { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; }
.flatpickr-day.endRange { border-top-left-radius: 0 !important; border-bottom-left-radius: 0 !important; }

/* Mobile responsive */
@media (max-width: 480px) {
  .flatpickr-calendar { width: calc(100vw - 32px) !important; max-width: 360px; }
  .flatpickr-day { height: 42px !important; line-height: 42px !important; }
}

/* Dark mode (future-ready) */
@media (prefers-color-scheme: dark) {
  :root.tkt-dark-ready {
    --tkt-dp-bg: #1e293b;
    --tkt-dp-border: #334155;
    --tkt-dp-text: #f1f5f9;
    --tkt-dp-text-muted: #94a3b8;
    --tkt-dp-today: #334155;
    --tkt-dp-hover: #334155;
    --tkt-dp-accent-soft: #075985;
  }
}

/* Universal cursor-pointer for clickable elements */
button:not(:disabled),
a[href],
[role="button"],
input[type="submit"],
input[type="button"],
input[type="reset"],
.btn,
[data-trigger],
[data-dropdown-toggle] {
  cursor: pointer;
}

button:disabled,
[disabled] {
  cursor: not-allowed;
}

/* Language switcher hover-to-open (mirrors dashboard behavior from dark-mode.css) */
.language-switcher[data-trigger="hover"] [data-language-switcher-menu] {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.language-switcher[data-trigger="hover"]:hover [data-language-switcher-menu],
.language-switcher[data-trigger="hover"]:focus-within [data-language-switcher-menu],
.language-switcher[data-trigger="hover"].open [data-language-switcher-menu] {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}
