.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: scale-px(2px);
  flex: 1;
  cursor: pointer;

  &::before {
    position: absolute;
    inset-block: scale-px(-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: scale-px(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: 0 scale-px(1px) scale-px(2px) 0 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: scale-px(24px);
      line-height: scale-px(14px);
      padding: scale-px(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: scale-px(14px);
    overflow: visible;
    top: 50%;
  }

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

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

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

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

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

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

  &-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: 0;
      left: 50%;
      /* #ifndef dynamic*/
      right: initial;
      /* #endif */
      // transform: translate3d(-50%, -50%, 0);
    }

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

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

  &-mark-hm {
    left: scale-px(-34px);
  }

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

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

  &-tick {
    position: absolute;
    top: scale-px(2px);
    left: scale-px(31px);
    width: scale-px(10px);
    height: scale-px(10px);
    border-radius: scale-px(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: 0;
    /* #ifndef dynamic*/
    left: initial;
    /* #endif */
  }

  &-mark-text {
    transform: translateX(scale-px(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: scale-px(30px);
      margin-left: 0;
      margin-right: 0;
    }

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