:root {
  --calendar-background-color: #fff;
  --calendar-text-color: #000;
  --calendar-border-color: #e4e7e7;
  --calendar-highlighted-color: #ffe8bc;
  --calendar-hovered-color: #e4e7e7;
  --calendar-selected-color: #00a699;
  --calendar-blocked-color: #cacccd;
}

[data-bs-theme="dark"] {
  --calendar-background-color: #333;
  --calendar-text-color: #ddd;
  --calendar-border-color: #444;
  --calendar-highlighted-color: #555;
  --calendar-hovered-color: #555;
  --calendar-selected-color: #007a87;
  --calendar-blocked-color: #555;
}

/* CalendarDay */
.CalendarDay {
  border: 1px solid var(--calendar-border-color);
  color: var(--calendar-text-color);
  background-color: var(--calendar-background-color);
}

.CalendarDay:active {
  background: var(--calendar-hovered-color);
}

.CalendarDay button {
  background-color: inherit;
  border: 0;
  color: inherit;
}

.CalendarDay--highlighted-calendar {
  background: var(--calendar-highlighted-color);
  color: var(--calendar-text-color);
}

.CalendarDay--highlighted-calendar:active {
  background: var(--calendar-selected-color);
}

.CalendarDay--outside {
  border: 0;
  background-color: var(--calendar-background-color);
  color: var(--calendar-blocked-color);
}

.CalendarDay--hovered {
  background: var(--calendar-hovered-color);
  border: 1px double var(--calendar-border-color);
  color: inherit;
}

.CalendarDay--blocked-minimum-nights,
.CalendarDay--blocked-calendar,
.CalendarDay--blocked-out-of-range {
  color: var(--calendar-blocked-color);
  background: var(--calendar-background-color);
  border: 1px solid var(--calendar-border-color);
}

.CalendarDay--blocked-minimum-nights:active,
.CalendarDay--blocked-calendar:active,
.CalendarDay--blocked-out-of-range:active {
  background: var(--calendar-background-color);
}

.CalendarDay--selected-span {
  background: var(--calendar-hovered-color);
  border: 1px double var(--calendar-selected-color);
  color: #fff;
}

.CalendarDay--selected-span.CalendarDay--hovered,
.CalendarDay--selected-span:active {
  background: var(--calendar-selected-color);
  border: 1px double var(--calendar-selected-color);
}

.CalendarDay--hovered-span,
.CalendarDay--after-hovered-start {
  background: var(--calendar-hovered-color);
  border: 1px double var(--calendar-border-color);
  color: var(--calendar-selected-color);
}

.CalendarDay--selected-start,
.CalendarDay--selected-end,
.CalendarDay--selected {
  background: var(--calendar-selected-color);
  border: 1px double var(--calendar-selected-color);
  color: #fff;
}

.CalendarDay--selected-start:active,
.CalendarDay--selected-end:active,
.CalendarDay--selected:active {
  background: var(--calendar-selected-color);
}

/* CalendarMonth */
.CalendarMonth {
  background-color: var(--calendar-background-color);
  color: var(--calendar-text-color);
}

/* CalendarMonth__caption */
.CalendarMonth__caption {
  color: var(--calendar-text-color);
}

/* CalendarMonthGrid */
.CalendarMonthGrid {
  background-color: var(--calendar-background-color);
}

/* DayPicker */
.DayPicker {
  background: var(--calendar-background-color);
}

.DayPicker--horizontal {
  background: var(--calendar-background-color);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(0, 0, 0, 0.7);
}

/* DayPickerNavigation */
.DayPickerNavigation__prev,
.DayPickerNavigation__next {
  background-color: var(--calendar-border-color);
  border: 1px solid var(--calendar-border-color);
  color: var(--calendar-text-color);
}

.DayPickerNavigation__prev:focus, .DayPickerNavigation__prev:hover,
.DayPickerNavigation__next:focus, .DayPickerNavigation__next:hover {
  background-color: var(--calendar-hovered-color);
}

.DayPickerNavigation__prev:active,
.DayPickerNavigation__next:active {
  background-color: var(--calendar-highlighted-color);
}

/* DateInput */
.DateInput {
  background-color: var(--calendar-background-color);
  color: var(--calendar-text-color);
}

.DateInput__display-text {
  color: var(--calendar-text-color);
}

.DateInput__display-text--focused {
  background: var(--calendar-highlighted-color);
  border-color: var(--calendar-highlighted-color);
  color: #fff;
}

/* DateRangePicker */
.DateRangePicker__picker {
  background-color: var(--calendar-background-color);
}

.DateRangePicker__close {
  color: var(--calendar-text-color);
}

/* DateRangePickerInput */
.DateRangePickerInput {
  background-color: var(--calendar-background-color);
  border: 1px solid var(--calendar-border-color);
}

.DateRangePickerInput__arrow svg {
  fill: var(--calendar-text-color);
}

.DateRangePickerInput__clear-dates svg {
  fill: var(--calendar-blocked-color);
}

.DateRangePickerInput__clear-dates:focus,
.DateRangePickerInput__clear-dates--hover {
  background: var(--calendar-hovered-color);
}

/* SingleDatePicker */
.SingleDatePicker__picker {
  background-color: var(--calendar-background-color);
  
}

.SingleDatePicker__close {
  color: var(--calendar-text-color);
}

/* SingleDatePickerInput */
.SingleDatePickerInput {
  background-color: var(--calendar-background-color);
  border: 1px solid var(--calendar-border-color);
}
