.nut-range-container {
  display: flex;
  flex-direction: row;
  position: relative;
  width: 100%;
  height: $range-height;
  align-items: center;
  justify-content: space-between;

  &-native {
    height: auto;
  }
}

.nut-range {
  display: block;
  position: relative;
  // width: 100%;
  height: $range-height;
  margin: 0 $range-margin;
  background-color: $range-inactive-color;
  border-radius: 2px;
  flex: 1;
  cursor: pointer;

  &::before {
    position: absolute;
    inset-block: -8px;
    inset-inline: 0;
    content: '';
  }

  &-min,
  &-max {
    font-size: $font-size-s;
    color: $range-color;
    user-select: none;
  }

  &-bar {
    display: block;
    position: relative;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    background: $range-active-color;
    border-radius: 2px;

    &-animate {
      transition: all 0.2s;
    }
  }

  &-button {
    position: absolute;
    display: flex;
    width: $range-button-width;
    height: $range-button-height;
    background: $range-button-background;
    border-radius: 50%;
    box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.15);
    border: $range-button-border;
    outline: none;
    align-items: center;
    top: 50%;
    left: 50%;

    &-wrapper,
    &-wrapper-right,
    &-wrapper-left {
      width: $range-button-width;
      height: $range-button-height;
    }

    &-wrapper,
    &-wrapper-right {
      touch-action: none;
      position: absolute;
      top: 50%;
      left: 100%;
      // right: 0;
      // transform: translate3d(-50%, -50%, 0);
      cursor: grab;
      outline: none;
    }

    &-wrapper-left {
      position: absolute;
      top: 50%;
      left: 0;
      // transform: translate3d(-50%, -50%, 0);
      cursor: grab;
      outline: none;
      touch-action: none;
    }

    &-number {
      position: relative;
      width: 200%;
      height: 24px;
      line-height: 14px;
      padding: 5px 0;
      left: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      user-select: none;
      font-size: $font-size-s;
      color: $range-color;
      text-align: center;
      vertical-align: center;
      box-sizing: border-box;
      // transform: translate3d(0, -100%, 0);
    }
  }

  &-disabled {
    cursor: not-allowed;
    // 鸿蒙端在外层设置的透明度会分发到所有子图层上，导致样式与其他端不一致
    opacity: 0.54;

    .nut-range-button-wrapper,
    .nut-range-button-wrapper-left,
    .nut-range-button-wrapper-right {
      cursor: not-allowed;
    }
  }

  &-mark {
    position: absolute;
    width: 100%;
    height: 14px;
    overflow: visible;
    top: 50%;
  }

  &-mark-text-wrapper {
    position: absolute;
    height: 100%;
    top: 14px;
    display: inline-block;
    transform: translateX(-10px);
  }

  &-mark-text {
    position: absolute;
    line-height: 16px;
    font-size: 12px;
    color: #999;
    text-align: center;
    word-break: keep-all;
    user-select: none;
  }

  &-tick {
    position: absolute;
    top: -20px;
    width: 11px;
    height: 11px;
    left: 0px;
    border-radius: 6px;
    background: $range-inactive-color;

    &-active {
      background: $range-active-color;
    }
  }
}

.nut-range-vertical-container {
  height: 100%;
  flex-direction: column;
  padding: 0px 15px;
}

.nut-range-vertical {
  width: $range-height;
  margin: $range-margin 0px;

  &-button {
    &-wrapper,
    &-wrapper-right {
      position: absolute;
      /* #ifndef dynamic*/
      top: initial;
      right: initial;
      /* #endif */
      top: 100%;
      left: 50%;
      // transform: translate3d(-50%, -50%, 0);
    }

    &-wrapper-left {
      top: 0px;
      left: 50%;
      /* #ifndef dynamic*/
      right: initial;
      /* #endif */
      // transform: translate3d(-50%, -50%, 0);
    }

    &-number {
      left: 0px;
      top: 50%;
      // transform: translate3d(100%, 0, 0);
    }
  }

  &-mark {
    position: absolute;
    width: 36px;
    height: 100%;
    top: 0px;
    right: 50%;
    overflow: visible;
    font-size: 12px;
    padding: 0px;
  }

  &-mark-hm {
    left: -34px;
  }

  &-mark-text-wrapper {
    // width: 20px;
    height: 16px;
    position: absolute;
    display: inline-block;
    user-select: none;
    transform: translateY(-11px);
  }

  &-mark-text {
    height: 100%;
    line-height: 16px;
    color: #999;
    text-align: center;
    word-break: keep-all;
  }

  &-tick {
    position: absolute;
    top: 2px;
    left: 31px;
    width: 10px;
    height: 10px;
    border-radius: 5px;
    background: $range-inactive-color;

    &-active {
      background: $range-active-color;
    }
  }
}

[dir='rtl'] .nut-range,
.rtl-nut-range {
  &-button {
    &-wrapper,
    &-wrapper-right {
      left: 0;
      /* #ifndef dynamic*/
      right: initial;
      /* #endif */
      // transform: translate3d(-50%, -50%, 0);
    }
    &-wrapper-left {
      right: 0;
      /* #ifndef dynamic*/
      left: initial;
      /* #endif */
      // transform: translate3d(50%, -50%, 0);
    }
  }

  &-tick {
    right: 0px;
    /* #ifndef dynamic*/
    left: initial;
    /* #endif */
  }

  &-mark-text {
    transform: translateX(10px);
  }

  &-vertical {
    &-button {
      &-wrapper,
      &-wrapper-right {
        right: 50%;
        /* #ifndef dynamic*/
        left: initial;
        /* #endif */
        // transform: translate3d(50%, 50%, 0);
      }

      &-wrapper-left {
        right: 50%;
        /* #ifndef dynamic*/
        left: initial;
        /* #endif */
        // transform: translate3d(50%, -50%, 0);
      }

      &-number {
        // transform: translate3d(-100%, 0, 0);
      }
    }

    &-mark {
      right: auto;
      left: 50%;
    }

    &-tick {
      left: auto;
      right: 30px;
      margin-left: 0;
      margin-right: -0px;
    }

    &-mark-text-wrapper {
      transform: translateY(-11px);
    }
  }
}
