.#{$ns}DatePicker {
  position: relative;
  display: inline-flex;
  flex-wrap: nowrap;
  border: var(--DatePicker-borderWidth) solid var(--DatePicker-borderColor);
  font-size: var(--DatePicker-fontSize);
  padding: 0 var(--DatePicker-paddingX);
  // height: var(--DatePicker-height);
  outline: none;
  white-space: nowrap;
  color: var(--saas-font-size-dark-black);
  background: var(--Form-input-bg);
  border-radius: 4px;
  align-items: center; // Aug

  @media screen and (min-width:1280px) and (max-width:1440px) {
    font-size: 0.75rem;
    // border-radius: 0px;
  }

  // @media screen and (min-width:1441px) and (max-width:1680px) {
  //   border-radius: 0px;
  // }

  @include input-border();

  //Aug 溢出隐藏
  &-content {
    display: flex;
    @include ellipsis();
  }

  &-input {
    width: 100%;
    border: 0;
    outline: 0;
    line-height: calc(var(--Form-input-height) - var(--Number-borderWidth) * 2);
    color: var(--saas-Title-Text);
    background: none;

    // @media screen and (min-width:1280px) and (max-width:1440px) {
    //   line-height: 1.2rem;
    // }

    // @media screen and (min-width:1441px) and (max-width:1680px) {
    //   line-height: 1.5rem;
    // }

    @include media-breakpoint-down(sm) {
      line-height: 22px;
    }

    @include input-placeholder();
  }

  &:not(.is-disabled) {
    cursor: pointer;

    &:hover {
      background: var(--DatePicker-onHover-bg);
      border-color: var(--DatePicker-onHover-borderColor);

      .#{$ns}DatePicker-toggler:before {
        color: var(--DatePicker-onHover-iconColor);
      }

      .#{$ns}DatePicker-clear {
        opacity: 1;
      }
    }
  }

  &.is-focused {
    border-color: var(--DatePicker-onFocused-borderColor);
    box-shadow: var(--Form-input-boxShadow);
  }

  &.is-disabled {
    background: $gray200;
    cursor: not-allowed;

    >.#{$ns}DatePicker-input {
      color: var(--text--muted-color);
    }
  }

  &-placeholder {
    color: var(--DatePicker-placeholderColor);
    user-select: none;
    margin-right: var(--gap-base);
    min-width: px2rem(50px);
    flex-basis: 0;
    flex-grow: 1;
  }

  &-value {
    margin-right: var(--gap-base);
    flex-basis: 0;
    flex-grow: 1;
  }

  &-toggler {
    cursor: pointer;
    color: var(--saas-font-size-dark-black);
    display: inline-flex;
    align-items: center;

    &:hover {
      color: var(--saas-font-size-black);
    }
  }

  &-clear {
    display: inline-block;
    @include input-clear();
    line-height: 1;
    margin-right: var(--gap-xs);
    @include media-breakpoint-up(sm) {
      opacity: 0;
    }
  }


}

.#{$ns}DateControl:not(.is-inline)>.#{$ns}DatePicker {
  display: flex;
}

.#{$ns}DatePicker-shortcuts {
  margin: 0;
  background: var(--Calendar-shortcuts-bg);
  padding: calc((var(--Calendar-shortcuts-height) - var(--Calendar-fontSize) * var(--lineHeightBase)) / 2) var(--gap-sm);
  list-style: none;
  width: px2rem(250px);

  &+.rdt .rdtPicker {
    padding-top: 0;
  }

}

.#{$ns}DatePicker-shortcut {
  display: inline-block;
  margin-right: var(--gap-sm);

  a {
    font-size: var(--Calendar-fontSize);
    cursor: pointer;
    color: var(--Calendar-shortcut-color);
    text-decoration: var(--Calendar-shortcut-decoration);

    &:hover {
      color: var(--Calendar-shortcut-onHover-color);
      text-decoration: var(--Calendar-shortcut-onHover-decoration);
    }
  }
}

.#{$ns}DatePicker-popover {
  margin: px2rem(2px) 0 0;

  &.#{$ns}PopOver--leftTopLeftBottom,
  &.#{$ns}PopOver--rightTopRightBottom {
    margin: px2rem(-2px) 0 0;
  }

  @media screen and (min-width: 769px) {
    display: flex !important;

    .#{$ns}DatePicker-shortcuts-container {
      padding-bottom: 5px;
      border-right: 1px solid var(--saas-Border-Dividers);
    }

    .#{$ns}DatePicker-shortcuts {
      width: 120px;
      overflow-y: auto;

      .#{$ns}DatePicker-shortcut {
        display: block;
        margin: 4px 0;
        margin-right: 0;
        @include ellipsis();

        a {
          font-size: 14px;
          color: var(--saas-font-size-dark-black);

          &:hover {
            color: var(--saas-font-size-black);
          }
        }
      }
    }

    .#{$ns}DatePicker-body {
      .#{$ns}DatePicker-footer {
        text-align: right;
        padding: var(--gap-sm);
        border-top: 1px solid #e8e9eb;
      }
    }
  }
}

.#{$ns}DatePicker-popup {
  height: px2rem(300px);
}

/** 
  * Aug -- 组件大小
 */
@mixin formatSize($fontSize, $height) {
  .#{$ns}DatePicker {
    padding-top: 0;
    padding-bottom: 0;
    height: $height;
    font-size: $fontSize;
  }
}

.#{$ns}DateControl {
  &.format-xs {
    @include formatSize(var(--fontSizeXs), var(--Form-input-height-xs))
  }

  &.format-sm {
    @include formatSize(var(--fontSizeSm), var(--Form-input-height-sm))
  }
}


// 移动端输入框样式
.#{$ns}DatePicker.is-mobile {
  border: 0;
  justify-content: flex-end;

  .#{$ns}DatePicker-content {
    justify-content: flex-end;

    .#{$ns}DatePicker-placeholder {
      min-width: fit-content;
      flex-grow: 0;
      font-size: 12px;
    }

    .#{$ns}DatePicker-toggler {
      color: var(--DatePicker-placeholderColor);
    }
  }

  span,
  a {
    &:focus {
      outline: unset;
    }
  }

  .#{$ns}DatePicker-value,
  .#{$ns}DatePicker-clear {
    display: inline-flex;
    justify-content: flex-end;
    padding: 0 0;
  }

  .#{$ns}DatePicker-value {
    margin-right: var(--gap-xs);
    justify-content: flex-start; // Aug
  }

  // Aug
  // .#{$ns}DatePicker-placeholder {
  //   flex-grow: unset;
  //   flex-basis: unset;
  // }

  .#{$ns}DatePicker-toggler {
    margin-top: -3px;
  }
}

.#{$ns}DatePicker-popup.#{$ns}DatePicker-mobile {
  color: red;

  .#{$ns}DatePicker-shortcuts,
  .#{$ns}DateRangePicker-rangers {
    padding: 8px;
    margin: 0;
    overflow: auto;
    white-space: nowrap;
    overflow: auto;

    &::-webkit-scrollbar {
      width: 0;
      height: 0;
    }

    .#{$ns}DateRangePicker-ranger {
      height: 30px;
      line-height: 30px;
      color: var(--saas-Primary-Color);
      background-color: #e9f6fe;
      text-align: center;
      padding: 0 15px;
      border-radius: 4px;
      margin: 0 6px;

      &:nth-child(1) {
        margin-left: 0;
      }
    }
  }

  .selected-date-show-box {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 8px 8px;
    background-color: var(--saas-main-bg);
    width: 100%;
    color: var(--saas-Title-Text);
    font-size: 15px;
    font-weight: 500;

    .show-date-item {
      border-radius: 4px;
      background-color: var(--saas-Background-Header);
      height: 42px;
      line-height: 42px;
      padding: 0 6px;
      flex: 1;
      @include ellipsis();

      &.actived {
        border-bottom: 2px solid var(--saas-Primary-Color);
      }

      &.empty {
        color: #bcbdbe;
      }
    }

    .show-start {
      margin-right: 8px;
    }
  }

  .rdt {
    width: 100%;

    .rdtPicker {
      width: 100%;
      padding: unset;
    }
  }
}

// override third-party styles
.rdt {
  user-select: none;
  font-size: var(--Calendar-fontSize);
  color: var(--saas-Title-Text);

  .rdtPicker {
    margin-top: 0;
    padding: var(--gap-sm);
    background: transparent;
    border: none;

    .dow {
      color: var(--Calendar-wLabel-color);
      font-weight: normal;
    }

    td.rdtDay,
    td.rdtHour,
    td.rdtMinute,
    td.rdtSecond,
    .rdtTimeToggle {
      background: var(--Calendar-cell-bg);

      &:hover {
        background: var(--saas-data-hover-background-color);
      }
    }

    td.rdtBetween {
      background: var(--Calendar-cell-onBetween-bg);
    }

    td.rdtToday:before {
      border-bottom-color: var(--Calendar-cell-onActive-bg);
    }

    td.rdtActive.rdtToday:before {
      border-bottom-color: var(--Calendar-cell-bg);
    }

    td.rdtActive,
    td.rdtActive:hover {
      background: var(--Calendar-cell-onActive-bg);
    }

    td.rdtDisabled,
    td.rdtDisabled:hover {
      background: var(--Calendar-cell-onDisabled-bg);
    }
  }

  thead tr:first-child th {
    cursor: default;
    font-weight: normal;
    border-bottom: none;
  }

  thead tr:first-child th:hover {
    background: transparent;
  }

  tfoot {
    border-top: 0;

    td {
      padding-top: var(--gap-xs);
      text-align: left;

      span {
        width: 10px;
        display: inline-block;
        text-align: center;
      }

      .rdtActions {
        padding: var(--gap-sm);
        text-align: right;
      }
    }
  }
}

.#{$ns}CalendarInput {
  outline: none;
  width: 40px;
  font-size: var(--Calendar-input-fontSize);
  color: var(--Calendar-input-color);
  border: 1px solid var(--Calendar-input-borderColor);
  border-radius: var(--Calendar-input-borderRadius);
  height: var(--Calendar-input-height);
  line-height: var(--Calendar-input-lineHeight);
  padding: var(--Calendar-input-paddingY) var(--Calendar-input-paddingX);
  box-shadow: none;

  &:focus {
    border-color: var(--Calendar-input-onFocused-borderColor);
    box-shadow: none;
  }
}

.#{$ns}CalendarTime {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}

.#{$ns}CalendarCounter {
  &-btn {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 25px;
    text-align: center;
    color: var(--Button--primary-bg);

    &:hover {
      color: var(--Button--primary-onActive-bg);
    }

    >svg {
      width: 16px;
      height: 16px;
    }

    &--up>svg {
      transform: rotate(-90deg);
    }

    &--down>svg {
      transform: rotate(90deg);
    }
  }

  &-sep {
    width: var(--gap-md);
    text-align: center;
  }

  &--daypart {
    margin-left: 10px;
  }

  &--daypart &-value {
    height: 30px;
    display: flex;
    align-items: center;
    padding: 0 5px;
  }
}

.rdtBtn {
  line-height: var(--Calendar-btn-lineHeight);
  padding: var(--Calendar-btn-paddingY) var(--Calendar-btn-paddingX);
  display: inline-block;
  vertical-align: middle;
  text-align: center;
  user-select: none;
  cursor: pointer;
  text-decoration: none;
  font-size: var(--Calendar-btn-fontSize);
  border: 1px solid var(--Calendar-btn-border);

  &:hover {
    text-decoration: none;
  }

  &.is-disabled {
    border-color: var(--Button-onDisabled-borderColor);
    opacity: 0.6;
    pointer-events: none;
  }

  .fa,
  .iconfont {
    font-size: var(--fontSizeSm);
  }

  @include button-variant(var(--Calendar-btn-bg),
    var(--Calendar-btn-border),
    var(--Calendar-btn-color),
    var(--Calendar-btn-onHover-bg),
    var(--Calendar-btn-onHover-border),
    var(--Calendar-btn-onHover-color),
    var(--Calendar-btn-onActive-bg),
    var(--Calendar-btn-onActive-border),
    var(--Calendar-btn-onActive-color));

  border-radius: var(--Calendar-btn-borderRadius);

  &+.rdtBtn {
    margin-left: var(--gap-xs);
  }

  &Cancel {
    @include button-variant(var(--Calendar-btnCancel-bg),
      var(--Calendar-btnCancel-border),
      var(--Calendar-btnCancel-color),
      var(--Calendar-btnCancel-onHover-bg),
      var(--Calendar-btnCancel-onHover-border),
      var(--Calendar-btnCancel-onHover-color),
      var(--Calendar-btnCancel-onActive-bg),
      var(--Calendar-btnCancel-onActive-border),
      var(--Calendar-btnCancel-onActive-color));
  }
}

.rdtBtnPrev:before,
.rdtBtnNext:before {
  display: inline-block;
  color: inherit;
  font-style: normal;
  line-height: 1;
}

.rdtPrev,
.rdtNext {
  cursor: pointer !important;
  width: var(--gap-md);
  padding: 0;
  color: #999;
  font-size: var(--fontSizeXl);
  text-decoration: none;
  font-family: system-ui, -apple-system, Helvetica Neue, sans-serif;
  font-weight: normal;

  &:hover {
    text-decoration: none;
    color: var(--saas-font-size-black);
  }
}

.rdtSwitch {
  text-align: center;
  color: var(--saas-font-size-black);
  cursor: pointer;
  font-weight: normal;

  &:hover {
    color: var(--link-onHover-color);
    text-decoration: none;
  }
}

.rdtHeader {
  display: table;
  table-layout: fixed;
  border-collapse: separate;
  width: 100%;
  // padding: 0 10px;

  >* {
    display: table-cell;
    vertical-align: baseline;
    text-align: center;
  }

  .rdtSwitch+.rdtSwitch {
    margin-left: var(--gap-xs);
  }
}

td.rdtMonth,
td.rdtYear,
td.rdtQuarter {
  width: px2rem(50px);
  height: px2rem(40px);

  >span {
    height: px2rem(24px);
    display: block;
  }

  &.rdtBetween {
    background: transparent !important;

    >span {
      background: var(--Calendar-cell-onBetween-bg);
    }
  }

  &:hover,
  &.rdtActive {
    background: transparent !important;

    >span {
      background: var(--info);
      color: var(--white);
    }
  }

  &.rdtDisabled {
    background: transparent !important;

    >span {
      background: #edf1f2;
      color: #999;
    }
  }
}

.#{$ns}DateCalendar {
  display: inline-block;
  border: var(--DatePicker-borderWidth) solid var(--DatePicker-borderColor);
  background: var(--DatePicker-bg);
  border-radius: var(--DatePicker-borderRadius);
}

@media screen and (min-width: 769px) {
  .rdt {
    width: auto;

    .rdtPicker {
      padding: 0;

      table {
        padding: 0 12px;
        // border-spacing: 0 8px;
        border-collapse: inherit;
      }

      .footer {
        padding: 0;
      }

      &.rdtPickerTime {
        width: 100%;
      }
    }

    .rdtPickerTimeWithoutD {
      width: 100%;

      .#{$ns}TimeContentWrapper {
        display: flex;
      }

      .#{$ns}TimeFooterWrapper {
        height: 48px;
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 0 12px;
        border-top: 1px solid var(--Calendar-input-borderColor);

        .#{$ns}Button {
          border-radius: 4px;
        }

        .#{$ns}QuickWrapper a {
          font-size: 14px;
        }
      }
    }

    .#{$ns}CalendarTimesWrapper {
      display: flex;
      flex-direction: column;
      height: 100%;

      .#{$ns}CalendarInputsWrapper {
        height: #{px2rem(248px)};
      }
    }

    .#{$ns}CalendarInputWrapper {
      display: inline-block;
      position: relative;
      // padding-top: #{px2rem(4px)};
      width: #{px2rem(64px)};
      height: #{px2rem(248px)};
      overflow: auto;

      .#{$ns}CalendarInput-sugs {
        list-style: none;
        background: var(--inputTime-default-bg-color);
        color: var(--inputTime-default-color);
        left: px2rem(-1px);
        right: px2rem(-1px);
        top: 100%;
        z-index: 10;

        &Hours {
          height: #{px2rem(892px)};
        }

        &Times {
          height: #{px2rem(1900px)};
          border-left: 1px solid var(--Calendar-input-borderColor);
        }

        &Item {
          text-align: center;
          height: 28px;
          line-height: 28px;
          font-size: var(--inputTime-default-fontSize);
          font-weight: var(--inputTime-default-fontWeight);
          cursor: pointer;

          &.is-highlight {
            color: #151b26;
            background: #e6f0ff;
          }

          &:not(.is-mobile):hover {
            color: var(--inputTime-hover-color);
            background: var(--inputTime-hover-bg-color);
          }
        }
      }
    }

    .rdtDays {
      display: flex;

      .rdtDaysPart {
        width: #{px2rem(264px)};
        border-right: 1px solid var(--Calendar-input-borderColor);
      }

      .rdtTimePart {
        width: #{px2rem(132px)};
        text-align: center;
      }

      .rdtTimePartWithS {
        width: #{px2rem(196px)};
        text-align: center;
      }

      .rdtShowTime {
        height: 35px;
        line-height: 35px;
        text-align: center;
      }
    }

    .footer {
      border-top: 1px solid var(--Calendar-input-borderColor);

      tfoot td {
        padding: 0;
      }
    }
  }

  .header-line {
    display: block;
    position: absolute;
    right: 0;
    left: 0;
    top: 35px;
    height: 1px;
    background: var(--Calendar-input-borderColor);
  }
}