// stylelint-disable
.react-datepicker-wrapper {
  display: inline-block;
  padding: 0;
  border: 0;
  width: 100%;
  margin-inline: auto;
}

.react-datepicker {
  // General
  --#{$prefix}datepicker-bg: #{$datepicker-bg};
  --#{$prefix}datepicker-border-color: #{$datepicker-border-color};
  --#{$prefix}datepicker-border: 0px solid #{$datepicker-border-color};
  --#{$prefix}datepicker-border-radius: #{$datepicker-border-radius};
  --#{$prefix}datepicker-box-shadow: var(--#{$prefix}box-shadow);

  // Header
  --#{$prefix}datepicker-header-bg: #{$datepicker-header-bg};
  --#{$prefix}datepicker-header-border-bottom: 0px solid #{$datepicker-border-color};
  --#{$prefix}datepicker-header-padding: #{$datepicker-header-padding};
  --#{$prefix}datepicker-header-font-weight: #{$datepicker-header-font-weight};
  --#{$prefix}datepicker-day-names-color: #{$datepicker-day-names-color};
  --#{$prefix}datepicker-day-names-font-size: #{$datepicker-day-names-font-size};
  --#{$prefix}datepicker-day-names-font-weight: var(--#{$prefix}fw-bold);

  // Body
  --#{$prefix}datepicker-body-margin: #{$datepicker-body-margin};
  --#{$prefix}datepicker-body-gap: #{$datepicker-body-gap};

  // Highlighted Day
  --#{$prefix}datepicker-highlighted-color: inherit;
  --#{$prefix}datepicker-highlighted-bg: transparent;
  --#{$prefix}datepicker-highlighted-border-radius: unset;

  // Holidays
  --#{$prefix}datepicker-holidays-color: inherit;
  --#{$prefix}datepicker-holidays-bg: transparent;
  --#{$prefix}datepicker-holidays-border-radius: unset;

  // Day
  --#{$prefix}datepicker-day-border-radius: #{$datepicker-day-border-radius};
  --#{$prefix}datepicker-day-outside-month-color: #{$datepicker-day-outside-month-color};
  --#{$prefix}datepicker-day-bg: #{$datepicker-day-bg};
  --#{$prefix}datepicker-day-hover-bg: #{$datepicker-day-hover-bg};
  --#{$prefix}datepicker-day-width: #{$datepicker-day-width};
  --#{$prefix}datepicker-day-color: #{$datepicker-day-color};

  // Day selected
  --#{$prefix}datepicker-day-selected-color: #{$datepicker-day-selected-color};
  --#{$prefix}datepicker-day-selected-bg: #{$datepicker-day-selected-bg};

  // Day Disabled
  --#{$prefix}datepicker-day-disabled-color: #{$datepicker-day-disabled-color};

  // Week
  --#{$prefix}datepicker-week-number-color: var(--#{$prefix}datepicker-day-disabled-color);
  --#{$prefix}datepicker-week-number-bg: #{$datepicker-week-number-bg};
  --#{$prefix}datepicker-week-number-selected-color: var(--#{$prefix}datepicker-day-selected-color);
  --#{$prefix}datepicker-week-number-selected-bg: var(--#{$prefix}datepicker-day-selected-bg);
  --#{$prefix}datepicker-week-number-hover-bg: var(--#{$prefix}datepicker-day-hover-bg);
  --#{$prefix}datepicker-week-number-hover-color: #{$datepicker-week-number-hover-color};
  --#{$prefix}datepicker-week-number-border-radius: #{$datepicker-day-border-radius};

  // Range
  --#{$prefix}datepicker-range-start-color: #{$datepicker-range-start-color};
  --#{$prefix}datepicker-range-start-bg: #{$datepicker-range-start-bg};
  --#{$prefix}datepicker-range-end-color: #{$datepicker-range-end-color};
  --#{$prefix}datepicker-range-end-bg: #{$datepicker-range-end-bg};
  --#{$prefix}datepicker-in-range-bg: #{$datepicker-in-range-bg};
  --#{$prefix}datepicker-range-color: #{$datepicker-range-color};
  --#{$prefix}datepicker-in-range-hover-bg: #{$datepicker-in-range-hover-bg};
  --#{$prefix}datepicker-in-range-disabled-color: #{$datepicker-in-range-disabled-color};
  --#{$prefix}datepicker-in-range-disabled-bg: #{$datepicker-in-range-disabled-bg};

  // Time
  --#{$prefix}datepicker-time-list-item-width: #{$datepicker-time-list-item-width};
  --#{$prefix}datepicker-time-list-item-padding: var(--#{$prefix}ref-spacer-2) var(--#{$prefix}ref-spacer-1);

  // Top
  --#{$prefix}datepicker-top-header-bg: var(--#{$prefix}primary-500);


  background-color: var(--#{$prefix}datepicker-bg);
  border: var(--#{$prefix}datepicker-border);
  border-radius: var(--#{$prefix}datepicker-border-radius);
  box-shadow: var(--#{$prefix}datepicker-box-shadow);
  display: inline-block;
  position: relative;
  line-height: initial;
  overflow: hidden;
  p {
    font-weight: 500;
  }
}

.react-datepicker--time-only {
  .react-datepicker__time-container {
    border-left: 0;
  }

  .react-datepicker__time,
  .react-datepicker__time-box {
    border-bottom-left-radius: var(--#{$prefix}datepicker-border-radius);
    border-bottom-right-radius: var(--#{$prefix}datepicker-border-radius);
  }
}

.react-datepicker-popper {
  z-index: 1;
  line-height: 0;
}

.react-datepicker__triangle {
  display: none;
}

.react-datepicker__header {
  text-align: center;
  background-color: var(--#{$prefix}datepicker-header-bg);
  border-bottom: var(--#{$prefix}datepicker-header-border-bottom);
  border-top-left-radius: var(--#{$prefix}datepicker-border-radius);
  padding: var(--#{$prefix}datepicker-header-padding);
  position: relative;

  &--time {
    padding-bottom: 8px;
    padding-left: 5px;
    padding-right: 5px;

    &:not(&--only) {
      border-top-left-radius: 0;
    }
  }

  &:not(&--has-time-select) {
    border-top-right-radius: var(--#{$prefix}datepicker-border-radius);
  }

  .custom-year-selector {
    width: 8ch;
    background: transparent;
    color: var(--#{$prefix}body-color);
    margin: auto;

    .input-group {
      border: 0;
    }

    .d-select__indicator-separator {
      display: none;
    }

    .d-select__control {
      background-color: var(--#{$prefix}datepicker-top-header-bg);
      padding: var(--bs-ref-spacer-1) var(--bs-ref-spacer-1);
      flex-wrap: nowrap;
      color: var(--#{$prefix}white);
      border: 0;
    }
    .d-select__menu-list {
      max-height: 10lh;
    }
  }

  &-selector {
    display: flex;
    align-items: center;
    gap: var(--#{$prefix}ref-spacer-1);

    .d-select {
      --#{$prefix}select-option-selected-bg: var(--#{$prefix}datepicker-bg);

      .d-select__control {
        padding: var(--#{$prefix}ref-spacer-1) var(--#{$prefix}ref-spacer-2);
        flex-wrap: nowrap;
      }

      .d-select__menu-list {
        border: var(--#{$prefix}datepicker-border);
        line-height: var(--#{$prefix}ref-spacer-8);
        max-height: 7lh;
      }

      .d-select__option {
        padding: var(--#{$prefix}ref-spacer-1) var(--#{$prefix}ref-spacer-2);
        line-height: var(--#{$prefix}ref-spacer-8);
        text-align: start;

        &--is-selected {
          font-weight: bold;

          &:hover {
            background-color: var(--#{$prefix}datepicker-day-hover-bg);
          }
        }
      }
    }

    p {
      margin: 0;
      font-weight: 500;
    }

    .header-button:first-child {
      padding: var(--#{$prefix}ref-spacer-1);
      margin-left: var(--#{$prefix}ref-spacer-1);
      margin-right: auto;
    }

    .header-button:last-child {
      padding: var(--#{$prefix}ref-spacer-1);
      margin-right: var(--#{$prefix}ref-spacer-1);
      margin-left: auto;
    }
  }

  &-day-selector {
    margin-bottom: var(--#{$prefix}ref-spacer-4);

    .custom-month-selector {
      .d-select__single-value {
        text-align: start;
        min-width: 10ch;
      }
    }
  }
}

.react-datepicker__current-month,
.react-datepicker-time__header,
.react-datepicker-year-header {
  margin-top: 0;
  color: var(--#{$prefix}datepicker-text-color);
  font-weight: var(--#{$prefix}datepicker-header-font-weight);
  font-size: var(--#{$prefix}datepicker-font-size);
}

.react-datepicker-time__header {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
  color: var(--#{$prefix}datepicker-day-names-color);
}

.react-datepicker__month-container {
  float: left;
}

.react-datepicker__year {
  margin: var(--#{$prefix}datepicker-body-margin);
  padding: 1rem;
  text-align: center;

  &-wrapper {
    display: flex;
    flex-wrap: wrap;
    max-width: calc((4rem * 3) + var(--#{$prefix}datepicker-body-gap) * 2);
    gap: var(--#{$prefix}datepicker-body-gap);
  }

  .react-datepicker__year-text {
    display: inline-block;
    width: 4rem;
  }
}

.react-datepicker__month {
  padding: 1rem;
}

.react-datepicker__header--custom,
.react-datepicker__header-month-selector {
  padding-top: .5rem;
  padding-bottom: .5rem;
}

.react-datepicker__month-text--selected {
  font-weight: var(--#{$prefix}fw-semibold);
}

.datepicker-top-header {
  background: var(--#{$prefix}primary-500);
  color: var(--#{$prefix}white);
  padding: 1rem;
  margin-bottom: 1rem;
  margin-top: -.5rem;
}

.react-datepicker__year,
.react-datepicker__quarterPicker {
  --#{$prefix}datepicker-body-gap: 1rem;
  --#{$prefix}datepicker-body-margin: 1rem;
}

.react-datepicker__month,
.react-datepicker__quarter {
  margin: var(--#{$prefix}datepicker-body-margin);
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: var(--#{$prefix}datepicker-body-gap);

  &-wrapper {
    display: flex;
    flex: 1;
    gap: var(--#{$prefix}datepicker-body-gap);
  }

  .react-datepicker__month-text {
    display: inline-block;
    width: 10ch;
    flex: 1;
  }

  .react-datepicker__quarter-text {
    display: inline-block;
    width: 6ch;
  }
}

.react-datepicker__month-text,
.react-datepicker__quarter-text,
.react-datepicker__year-text {
  padding: .25rem;
  border: 1px solid var(--#{$prefix}gray-50);
  border-radius: var(--#{$prefix}datepicker-border-radius);
}


.react-datepicker__month-text--today,
.react-datepicker__year-text--today,
.react-datepicker__quarter-text--today {
  font-weight: var(--#{$prefix}fw-semibold) !important;
}

// START TODO: Revisar con Mati diseño del time
.react-datepicker__time-container {
  float: right;
  border-left: 1px solid var(--#{$prefix}gray-100);
  width: var(--#{$prefix}datepicker-time-list-item-width);

  .react-datepicker__time {
    position: relative;
    background: var(--#{$prefix}datepicker-bg);
    border-bottom-right-radius: var(--#{$prefix}datepicker-border-radius);

    .react-datepicker__time-box {
      width: var(--#{$prefix}datepicker-time-list-item-width);
      overflow-x: hidden;
      margin: 0 auto;
      text-align: center;
      border-bottom-right-radius: var(--#{$prefix}datepicker-border-radius);

      ul.react-datepicker__time-list {
        list-style: none;
        margin: 0;
        height: calc(195px + (32px / 2));
        overflow-y: scroll;
        padding-right: 0;
        padding-left: 0;
        width: 100%;
        box-sizing: border-box;

        li.react-datepicker__time-list-item {
          padding: var(--#{$prefix}datepicker-time-list-item-padding);
          white-space: nowrap;
          display: block;

          &:hover {
            cursor: pointer;
            background-color: var(--#{$prefix}datepicker-day-hover-bg);
          }

          &--selected, &--selected:hover {
            background-color: var(--#{$prefix}datepicker-day-selected-bg);
            color: var(--#{$prefix}datepicker-day-selected-color);
          }

          &--disabled, &--disabled:hover {
            cursor: default;
            color: var(--#{$prefix}datepicker-day-disabled-color);
            background-color: unset;
          }
        }
      }
    }
  }
}
// END TODO: Revisar con Mati diseño del time

.react-datepicker__week-number {
  color: var(--#{$prefix}datepicker-week-number-color);
  display: inline-block;
  width: var(--#{$prefix}datepicker-day-width);
  line-height: var(--#{$prefix}datepicker-day-width);
  text-align: center;
  font-size: var(--#{$prefix}datepicker-day-names-font-size);

  &.react-datepicker__week-number--clickable {
    cursor: pointer;
    color: var(--#{$prefix}body-color);

    &.react-datepicker__week-number--selected {
      border-radius: var(--#{$prefix}datepicker-week-number-border-radius);
      background-color: var(--#{$prefix}datepicker-week-number-selected-bg);
      color: var(--#{$prefix}datepicker-week-number-selected-color);
    }

    &:hover {
      border-radius: var(--#{$prefix}datepicker-week-number-border-radius);
      background-color: var(--#{$prefix}datepicker-week-number-hover-bg);
      color: var(--#{$prefix}datepicker-week-number-hover-color);
    }
  }
}

.react-datepicker__week {
  white-space: nowrap;
  display: inline-flex;
  gap: var(--#{$prefix}datepicker-body-gap);
  align-self: center;
  align-items: center;
}

.react-datepicker__day-name,
.react-datepicker__day,
.react-datepicker__time-name {
  display: inline-block;
  text-align: center;
  width: var(--#{$prefix}datepicker-day-width);
  line-height: var(--#{$prefix}datepicker-day-width);
  font-size: var(--#{$prefix}datepicker-day-names-font-size);
}

.react-datepicker__day-names {
  white-space: nowrap;
  display: inline-flex;
  gap: var(--#{$prefix}datepicker-body-gap);
  color: var(--#{$prefix}datepicker-day-names-color);
  font-weight: var(--#{$prefix}datepicker-day-names-font-weight);
}

.react-datepicker__day,
.react-datepicker__time-name {
  color: var(--#{$prefix}datepicker-day-color);
}

.react-datepicker__day--outside-month {
  color: var(--#{$prefix}datepicker-day-outside-month-color);
}

@each $type in day, month-text, quarter-text, year-text {
  .react-datepicker__#{$type} {

    cursor: pointer;

    &:not([aria-disabled="true"], &--selected):hover {
      border-radius: var(--#{$prefix}datepicker-day-border-radius);
      background-color: var(--#{$prefix}datepicker-day-hover-bg);
    }

    &--today {
      font-weight: bold;
    }

    &--highlighted {
      border-radius: var(--#{$prefix}datepicker-highlighted-border-radius);
      background-color: var(--#{$prefix}datepicker-highlighted-bg);
      color: var(--#{$prefix}datepicker-highlighted-color);

      &:not([aria-disabled="true"]):hover {
        background-color: var(--#{$prefix}datepicker-day-hover-bg);
      }
    }

    &--holidays {
      position: relative;
      border-radius: var(--#{$prefix}datepicker-holidays-border-radius);
      background-color: var(--#{$prefix}datepicker-holidays-bg);
      color: var(--#{$prefix}datepicker-holidays-color);

      .overlay {
        position: absolute;
        bottom: 100%;
        left: 50%;
        transform: translateX(-50%);
        background-color: #333;
        color: #fff;
        padding: 4px;
        border-radius: 4px;
        white-space: nowrap;
        visibility: hidden;
        opacity: 0;
        transition:
          visibility 0s,
          opacity 0.3s ease-in-out;
      }

      &:not([aria-disabled="true"]):hover {
        background-color: var(--#{$prefix}datepicker-day-hover-bg);
      }

      &:hover .overlay {
        visibility: visible;
        opacity: 1;
      }
    }

    // Selected day
    &--selected {
      color: var(--#{$prefix}datepicker-day-selected-color);
      background-color: var(--#{$prefix}datepicker-day-selected-bg);
      border-radius: var(--#{$prefix}datepicker-day-border-radius);
    }

    // Days within the selected or selecting range
    &--in-range,
    &--in-selecting-range {
      // Days between start and end
      border-radius: var(--#{$prefix}datepicker-day-border-radius);
      background-color: var(--#{$prefix}datepicker-in-range-bg);
      color: var(--#{$prefix}datepicker-range-color);

      &[aria-disabled="true"] {
        background-color: var(--#{$prefix}datepicker-in-range-disabled-bg);
        color: var(--#{$prefix}datepicker-in-range-disabled-color);
      }

      // Hover state on any day in range
      &:not(.react-datepicker__#{$type}--range-start,
        .react-datepicker__#{$type}--range-end,
        .react-datepicker__#{$type}--disabled):hover {
        background-color: var(--#{$prefix}datepicker-in-range-hover-bg);
      }

      // Hover state on start and end range
      &:is(.react-datepicker__#{$type}--range-start, .react-datepicker__#{$type}--range-end):hover {
        background-color: var(--#{$prefix}datepicker-in-range-hover-bg);
      }
    }

    &--range-start:not(&--disabled) {
      color: var(--#{$prefix}datepicker-range-start-color);
      background-color: var(--#{$prefix}datepicker-range-start-bg);
    }

    // End day in range
    &--range-end:not(&--disabled) {
      color: var(--#{$prefix}datepicker-range-end-color);
      background-color: var(--#{$prefix}datepicker-range-end-bg);
    }

    &--disabled {
      cursor: default;
      color: var(--#{$prefix}datepicker-day-disabled-color);

      .overlay {
        position: absolute;
        bottom: 70%;
        left: 50%;
        transform: translateX(-50%);
        background-color: #333;
        color: #fff;
        padding: 4px;
        border-radius: 4px;
        white-space: nowrap;
        visibility: hidden;
        opacity: 0;
        transition:
          visibility 0s,
          opacity 0.3s ease-in-out;
      }
    }
  }
}

/* Removed following styles:
view-calendar-icon
year-read-view,
month-read-view,
month-year-read-view
month-year-read-view
year-dropdown,
month-dropdown,
month-year-dropdown
year-option,
month-option,
month-year-option
close-icon
react-datepicker__navigation
*/

// .react-datepicker__today-button {
//   background: $datepicker__background-color;
//   border-top: $datepicker__border;
//   cursor: pointer;
//   text-align: center;
//   font-weight: bold;
//   padding: 5px 0;
//   clear: left;
// }

.react-datepicker__children-container {
  width: 13.8rem;
  margin: 0.4rem;
  padding-right: 0.2rem;
  padding-left: 0.2rem;
  height: auto;
}

.react-datepicker__aria-live {
  position: absolute;
  clip-path: circle(0);
  border: 0;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  width: 1px;
  white-space: nowrap;
}

// stylelint-enable