.ui-datepicker {
  padding: 0;
  border: none !important;
  width: 100% !important;
  margin-inline: auto;

  @media (max-width: 1023px) {
    max-width: 480px;
  }

  & .ui-datepicker-group {
    padding: 12px 4px;

    @media (min-width: 1024px) {
      padding: 12px 16px;
    }
  }

  & .ui-datepicker-header {
    background-color: transparent;
    border: none;
    height: 32px;
    padding: 0;
  }

  & .ui-datepicker-prev,
  & .ui-datepicker-next {
    width: 32px;
    height: 32px;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 9999px;

    &:hover {
      background-color: var(--Brand-Gray-50) !important;
      border: none !important;
    }

    &.ui-state-disabled {
      display: none;
    }

    & .ui-icon {
      background-image: none;
      width: 14px;
      height: 14px;
      background-color: var(--brand-bw-black);
      position: static;
      top: 0;
      left: 0;
      margin: 0;
    }
  }

  & .ui-datepicker-prev {
    top: 0;
    left: 0;

    & .ui-icon {
      mask-image: url('/assets/icons/14px/Chevon_Left.svg');
    }
  }

  & .ui-datepicker-next {
    top: 0;
    right: 0;
    & .ui-icon {
      mask-image: url('/assets/icons/14px/Chevon_Right.svg');
    }
  }

  & .ui-datepicker-title {
    /* text-body2  */
    font-size: var(--body2-font-size);
    line-height: var(--body2-line-height);
    letter-spacing: var(--body2-letter-spacing);
    font-weight: 500;
    height: 32px;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  & .ui-datepicker-calendar {
    & th,
    & td {
      padding: 0;
      width: 46px;
      height: 46px;
    }
    & th {
      color: var(--Brand-Gray-700);
      /* text-caption1  */
      font-size: var(--caption1-font-size);
      line-height: var(--caption1-line-height);
      letter-spacing: var(--caption1-letter-spacing);
      font-weight: 700;
    }

    & th.ui-datepicker-week-end {
      color: var(--Brand-Secondary-Pink-400);
    }

    & td {
      position: relative;
    }

    & tr + tr {
      border-top: 2px solid transparent;
    }

    & td .ui-state-default {
      position: relative;
      z-index: 1;
      height: 46px;
      min-width: 46px;
      display: flex;
      justify-content: center;
      align-items: center;
      background-color: transparent;
      border: 2px solid transparent;
      border-radius: 12px;
      /* text-caption1  */
      font-size: var(--caption1-font-size);
      line-height: var(--caption1-line-height);
      letter-spacing: var(--caption1-letter-spacing);
      font-weight: 700;
      color: var(--brand-bw-black);
      outline: none;
      padding: 0;
      margin: 0;
    }

    & .ui-datepicker-today .ui-state-default {
      background-color: transparent;
      color: var(--Brand-Primary-Blue-500);
      position: relative;

      &::after {
        content: '';
        position: absolute;
        bottom: 9px;
        width: 4px;
        height: 4px;
        border-radius: 80px;
        background-color: var(--Brand-Primary-Blue-500);
      }

      &.selected::after {
        background-color: var(--Brand-Primary-Blue-200);
      }
    }

    & td :hover,
    & td :focus-visible {
      border-color: var(--Brand-Primary-Blue-500);
    }

    & td.selected .ui-state-default,
    & td.in-range-start .ui-state-default,
    & td.in-range-end .ui-state-default {
      color: var(--brand-bw-white) !important;
      background-color: var(--brand-primary-blue-700-main) !important;
      border: 0;

      &:focus-visible {
        box-shadow:
          0px 0px 0px 2px var(--brand-primary-blue-700-main) inset,
          0px 0px 0px 4px var(--brand-bw-white) inset;
      }
    }

    & td.in-range::before {
      content: '';
      position: absolute;
      inset: 0;
      background-color: var(--Brand-Primary-Blue-50);
    }
    & td.in-range-start::before,
    & td:first-child::before,
    & .ui-state-disabled + td::before {
      border-top-left-radius: 12px;
      border-bottom-left-radius: 12px;
    }
    & td.in-range-end::before,
    & td:last-child::before,
    & td:has(+ .ui-state-disabled)::before {
      border-top-right-radius: 12px;
      border-bottom-right-radius: 12px;
    }
  }
}

.datepicker {
  position: relative;
}

.datepicker__trigger {
  position: absolute;
  left: unset !important;
  right: 8px;
  top: 50% !important;
  transform: translateY(-50%);
  padding: 4px;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 4px;
  background-color: transparent;
  outline: none;
  border: none;
  cursor: pointer;

  &:hover {
    background-color: var(--Brand-Gray-30);
  }

  &:focus-visible {
    /* outline-border-1px-blue-focused:focus-visible  */
    box-shadow:
      0px 0px 0px 2px var(--brand-bw-white),
      0px 0px 0px 3px var(--Brand-Primary-Blue-500);
  }
}

.datepicker__dialog {
  border-radius: 16px;
  /* shadow-l  */
  box-shadow:
    0px 2px 4px 0px rgba(23, 24, 28, 0.12),
    0px 4px 28px 0px rgba(23, 24, 28, 0.09),
    0px 4px 16px 0px rgba(23, 24, 28, 0.04),
    0px 60px 50px 0px rgba(23, 24, 28, 0.04),
    0px 20px 32px 0px rgba(23, 24, 28, 0.1),
    0px 0px 0px 0px rgba(23, 24, 28, 0.1);

  @media (min-width: 1024px) {
    width: var(--Modal-Width-1024up-L) !important;
  }
}
.datepicker__dialog .datepicker__dialog-buttonset .button {
  width: 100%;

  @media (min-width: 1024px) {
    width: fit-content;
  }
}

.datepicker__dialog-content a {
  cursor: pointer;
}

.datepicker__footer-label {
  display: flex;
  padding-bottom: 14px;

  @media (min-width: 1024px) {
    display: none;
  }

  & .footer-start-date,
  & .footer-end-date {
    flex: 1;
    display: flex;
    justify-content: center;
  }
}
