/* ==========================================================================
 * Flatpickr
 * ========================================================================== */

.flatpickr-calendar {
  @mixin mds-m-text--size-med;

  user-select: none;

  &:not(:last-child) {
    margin-bottom: var(--mds-d-spacing--lg);
  }
}

.flatpickr-month {
  align-items: center;
  display: flex;
  justify-content: space-between;
  margin-bottom: var(--mds-d-spacing--lg);
}

.flatpickr-next-month,
.flatpickr-prev-month {
  color: var(--mds-t-text-color--secondary);
  cursor: pointer;
  display: block;
  height: 1em;
  width: 1em;

  &:enter {
    color: var(--mds-t-text-color--accent);
  }
}

.flatpickr-next-month[style*='none'],
.flatpickr-prev-month[style*='none'] {
  display: block !important;
  visibility: hidden;
}

.flatpickr-current-month {
  @mixin mds-m-heading--size-med;

  align-items: center;
  color: var(--mds-t-text-color--primary);
  display: flex;
  left: 50%;
  pointer-events: none;
  position: sticky;
  transform: translateX(-50%);

  /* This is really gross */
  .numInput {
    @mixin mds-m-heading--size-med;

    color: inherit;
    margin-left: 0.2em;
    pointer-events: none;
    width: 36px;
  }

  /* also pretty gross, but unavoidable */
  .numInputWrapper > span {
    display: none !important;
  }
}

.flatpickr-weekdays {
  display: flex;
  flex-wrap: wrap;
}

.flatpickr-weekday {
  border: 1px solid transparent;
  color: var(--mds-t-text-color--tertiary);
  display: block;
  flex-basis: calc(100% / 7);
  padding-bottom: var(--mds-d-spacing--sm);
  position: relative;
  text-align: center;
  width: calc(100% / 7);
}

.dayContainer {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
  transform: translateX(1px);
}

.flatpickr-day {
  align-items: center;
  background-color: var(--mds-t-background-color--primary);
  border: 1px solid var(--mds-t-border-color--primary);
  color: var(--mds-t-text-color--primary);
  cursor: pointer;
  display: flex;
  height: 2.25rem;
  justify-content: center;
  line-height: 0;
  margin-left: -1px;
  margin-top: -1px;
  position: relative;

  /* stylelint-disable-next-line */
  &:hover:not(.disabled):not(.today):not(.selected) {
    background-color: var(--mds-t-background-color--secondary);
    color: var(--mds-t-text-color--primary);
  }

  &.nextMonthDay,
  &.prevMonthDay {
    background-color: var(--mds-t-background-color--tertiary);
    color: var(--mds-t-text-color--secondary);
  }

  &.disabled {
    color: var(--mds-t-text-color--tertiary);
    cursor: default;
    opacity: 0.5;
  }

  &.today {
    border-color: var(--mds-t-border-color--inverse);
    position: relative;
    z-index: 2;
  }

  &.selected {
    background-color: var(--mds-t-background-color--accent);
    border-color: var(--mds-t-background-color--accent);
    color: var(--mds-t-text-color--inverse-primary);
    position: relative;
    z-index: 1;
  }
}

.slideLeft,
.slideRight {
  display: none;
}

.mds-c-datepicker-container {
  margin-bottom: var(--mds-d-spacing--xl);
}

.mds-c-datepicker-blackout {
  &:not(.selected) {
    background: repeating-linear-gradient(
      135deg,
      var(--mds-t-background-color--tertiary),
      var(--mds-t-background-color--tertiary) 0.125rem,
      var(--mds-t-background-color--secondary) 0.125rem,
      var(--mds-t-background-color--secondary) 0.375rem
    );
  }

  &:hover:not(.today):not(.selected) {
    background: repeating-linear-gradient(
      135deg,
      var(--mds-d-color-slate--200),
      var(--mds-d-color-slate--200) 0.125rem,
      var(--mds-t-background-color--tertiary) 0.125rem,
      var(--mds-t-background-color--tertiary) 0.375rem
    );
  }

  &.selected {
    background: repeating-linear-gradient(
      135deg,
      var(--mds-d-color-green--600),
      var(--mds-d-color-green--600) 0.125rem,
      var(--mds-t-background-color--accent) 0.125rem,
      var(--mds-t-background-color--accent) 0.375rem
    );
    background-color: var(--mds-t-background-color--accent);
    border-color: var(--mds-t-background-color--accent);
  }
}
