/*
 * Application-wide styles
 * With Propshaft, this file is served directly without compilation
 */

/* Calendar Dense Mode */
.calendar--dense [data-unit-row] {
  height: 2.5rem !important; /* 40px instead of 64px */
}

.calendar--dense [data-calendar-part="unit-names"] .h-16:not(.calendar-unit-header) {
  height: 2.5rem !important;
}

.calendar--dense [data-calendar-part="unit-names"] .calendar-unit-header {
  height: 4rem !important; /* Keep header height consistent */
}

.calendar--dense [data-calendar-cell="grid"] {
  width: 3rem !important; /* 48px on mobile, stays same on desktop */
}

@media (min-width: 768px) {
  .calendar--dense [data-calendar-cell="grid"],
  .calendar--dense [data-calendar-cell="date"] {
    width: 6rem !important; /* 96px instead of 128px on desktop */
  }
}

.calendar--dense [data-calendar-cell="grid"] > div,
.calendar--dense [data-calendar-cell="grid"] > div > div {
  height: 1.75rem !important; /* 28px instead of 48px */
  top: 0.25rem !important;
  padding-left: 0.25rem !important;
  padding-right: 0.25rem !important;
}

/* Hide reservation number and price details in dense mode */
.calendar--dense .calendar-res-number,
.calendar--dense .calendar-res-details {
  display: none !important;
}

/* Adjust text sizing in dense mode */
.calendar--dense .calendar-res-name {
  font-size: 8px !important;
  line-height: 1.2 !important;
}

@media (min-width: 768px) {
  .calendar--dense .calendar-res-name {
    font-size: 10px !important;
  }
}

/* Slim Select adjustments for Calendar Header */
.calendar-property-select + .ss-main {
  min-height: 2rem;
  padding: 0.125rem 0.375rem;
  font-size: 0.75rem;
  border-radius: 0.75rem;
}

.calendar-property-select + .ss-main .ss-values .ss-placeholder,
.calendar-property-select + .ss-main .ss-values .ss-single {
  font-size: 0.75rem;
}

.calendar-property-select + .ss-content .ss-option {
  font-size: 0.75rem;
}

/* Keep reservation guest select dropdown above adjacent cards on edit page */
.reservation-edit-guest-card {
  position: relative;
  z-index: 20;
}

.reservation-edit-guest-card .ss-main {
  position: relative;
  z-index: 30;
}

.reservation-edit-guest-card .ss-content {
  z-index: 10000 !important;
}

/* Mobile calendar touch scrolling fixes */
[data-calendar-part="date-scroll"] {
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}

/* Intl phone input wrapper should fill form width */
.iti {
  width: 100%;
}

/* Branded dashboard date-range calendar */
.dashboard-date-range-calendar.flatpickr-calendar {
  border: 1px solid #e2e8f0;
  border-radius: 1rem;
  box-shadow: 0 20px 50px -12px rgb(15 23 42 / 0.25);
  font-family: "Plus Jakarta Sans", sans-serif;
  padding: 0.5rem;
}

.dashboard-date-range-calendar .flatpickr-months,
.dashboard-date-range-calendar .flatpickr-month {
  height: 2.75rem;
}

.dashboard-date-range-calendar .flatpickr-current-month {
  padding-top: 0.5rem;
}

.dashboard-date-range-calendar .flatpickr-current-month span.cur-month,
.dashboard-date-range-calendar .flatpickr-current-month input.cur-year {
  font-weight: 700;
}

.dashboard-date-range-calendar .flatpickr-day {
  border-radius: 0.625rem;
}

.dashboard-date-range-calendar .flatpickr-day:hover,
.dashboard-date-range-calendar .flatpickr-day:focus {
  background: #f5f3ff;
  border-color: #ede9fe;
}

.dashboard-date-range-calendar .flatpickr-day.inRange {
  background: #f5f3ff;
  border-color: #f5f3ff;
  box-shadow: -5px 0 0 #f5f3ff, 5px 0 0 #f5f3ff;
  color: #5b21b6;
}

.dashboard-date-range-calendar .flatpickr-day.selected,
.dashboard-date-range-calendar .flatpickr-day.startRange,
.dashboard-date-range-calendar .flatpickr-day.endRange,
.dashboard-date-range-calendar .flatpickr-day.selected:hover,
.dashboard-date-range-calendar .flatpickr-day.startRange:hover,
.dashboard-date-range-calendar .flatpickr-day.endRange:hover {
  background: #7c3aed;
  border-color: #7c3aed;
  color: #fff;
}

.dashboard-date-range-calendar .flatpickr-day.today:not(.selected) {
  border-color: #7c3aed;
  color: #6d28d9;
  font-weight: 700;
}

.dashboard-date-range-calendar .flatpickr-prev-month:hover svg,
.dashboard-date-range-calendar .flatpickr-next-month:hover svg {
  fill: #7c3aed;
}

.dark .dashboard-date-range-calendar.flatpickr-calendar,
.dark .dashboard-date-range-calendar .flatpickr-months .flatpickr-month,
.dark .dashboard-date-range-calendar .flatpickr-weekdays,
.dark .dashboard-date-range-calendar span.flatpickr-weekday {
  background: #0f172a;
  color: #e2e8f0;
}

.dark .dashboard-date-range-calendar.flatpickr-calendar {
  border-color: #334155;
}

.dark .dashboard-date-range-calendar .flatpickr-current-month,
.dark .dashboard-date-range-calendar .flatpickr-current-month input.cur-year,
.dark .dashboard-date-range-calendar .flatpickr-day {
  color: #e2e8f0;
}

.dark .dashboard-date-range-calendar .flatpickr-day.prevMonthDay,
.dark .dashboard-date-range-calendar .flatpickr-day.nextMonthDay {
  color: #64748b;
}

.dark .dashboard-date-range-calendar .flatpickr-day:hover,
.dark .dashboard-date-range-calendar .flatpickr-day:focus,
.dark .dashboard-date-range-calendar .flatpickr-day.inRange {
  background: #2e1065;
  border-color: #2e1065;
  box-shadow: -5px 0 0 #2e1065, 5px 0 0 #2e1065;
  color: #ddd6fe;
}

@media (max-width: 767px) {
  /* Ensure smooth horizontal scrolling on mobile */
  [data-calendar-part="date-scroll"] {
    scroll-snap-type: x proximity;
  }

  /* Prevent sticky column from interfering with touch scroll */
  [data-unit-row] .sticky {
    touch-action: none;
  }

  /* Prevent overscroll on calendar container */
  #calendar_grid {
    overscroll-behavior: contain;
  }
}
