.rux-help-text {
  margin-top: var(--spacing-2, 0.5rem);
  color: var(--color-text-secondary, #d4d8dd);
  font-size: var(--font-body-2-font-size, 0.875rem);
  font-family: var(--font-body-2-font-family, 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif);
  font-weight: var(--font-body-2-font-weight, 400);
  letter-spacing: var(--font-body-2-letter-spacing, 0.005em);
  line-height: var(--font-body-2-line-height, calc(20 / 14));
  text-align: left;
}

.rux-error-text {
  display: flex;
  align-items: center;
  text-align: left;
  width: fit-content;
  -webkit-order: 3;
  order: 3;
  display: flex;
  margin-top: var(--spacing-2, 0.5rem);
  color: var(--color-text-error, #ff3838);
  font-size: var(--font-body-2-bold-font-size, 0.875rem);
  font-family: var(--font-body-2-bold-font-family, 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif);
  font-weight: var(--font-body-2-bold-font-weight, 700);
  letter-spacing: var(--font-body-2-bold-letter-spacing, 0.005em);
  line-height: var(--font-body-2-bold-line-height, calc(20 / 14));
  text-align: left;
}

.rux-error-text svg {
  width: calc(var(--spacing-4, 1rem) + var(--spacing-1, 0.25rem));
  height: calc(var(--spacing-4, 1rem) + var(--spacing-1, 0.25rem));
  color: var(--color-text-error, #ff3838);
  margin-right: var(--spacing-2, 0.5rem);
  cursor: default;
}

:host {
  /**
   * @prop --slider-track-before-thumb-height: the height of the track before the thumb
   */
  --slider-track-before-thumb-height: var(--spacing-1, 0.25rem);
  --_slider-thumb-size: calc(var(--spacing-4, 1rem) + var(--spacing-1, 0.25rem));
  --_slider-value-percent: 50%;
  --_slider-top: calc(var(--_slider-thumb-size) / -2.4);
  --_start-value-percent: 20%;
  position: relative;
  display: flex;
  flex-grow: 1;
  flex-flow: column;
  font-family: var(--font-body-1-font-family, 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif);
  font-size: var(--font-body-1-font-size, 1rem);
  font-weight: var(--font-body-1-font-weight, 400);
  letter-spacing: var(--font-body-1-letter-spacing, 0.005em);
  line-height: var(--line-height-base, 1.5rem);
}

.hidden,
:host([hidden]) {
  display: none;
}

:host([disabled]) > .rux-form-field > .rux-slider {
  opacity: var(--opacity-disabled, 40%);
  cursor: not-allowed;
}
:host([disabled]) > .rux-form-field > .rux-slider .rux-range-overlay {
  cursor: not-allowed;
}

:host([disabled]) > .rux-form-field > #steplist {
  opacity: var(--opacity-disabled, 40%);
  cursor: not-allowed;
}
:host([disabled]) > .rux-form-field > #steplist .tick-label .axis-label {
  cursor: not-allowed;
}

.rux-form-field label {
  margin-bottom: var(--spacing-2, 0.5rem);
}

.rux-input-label {
  font-family: var(--font-control-body-1-font-family, 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif);
  font-size: var(--font-control-body-1-font-size, 1rem);
  letter-spacing: var(--font-control-body-1-letter-spacing, 0.005em);
  font-weight: var(--font-control-body-1-font-weight, 400);
  line-height: var(--font-control-body-1-line-height, calc(20 / 16));
}

.with-axis-labels {
  padding-bottom: var(--spacing-8, 2rem);
}

.rux-slider {
  display: flex;
  align-items: center;
  cursor: pointer;
  height: calc(var(--spacing-4, 1rem) + var(--spacing-1, 0.25rem));
  position: relative;
  font-family: var(--font-body-1-font-family, 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif);
  font-size: var(--font-body-1-font-size, 1rem);
  font-weight: var(--font-body-1-font-weight, 400);
  letter-spacing: var(--font-body-1-letter-spacing, 0.005em);
}
.rux-slider :hover {
  cursor: pointer;
}
.rux-slider :disabled {
  cursor: not-allowed;
}
.rux-slider--range input[type=range] {
  position: absolute;
  width: 100%;
  height: var(--spacing-025, 0.0625rem);
  background-color: var(--color-background-interactive-default, #4dacff);
  pointer-events: none;
}

#steplist {
  display: grid;
  padding: var(--spacing-0, 0rem) calc(var(--_slider-thumb-size) / 2);
  cursor: default;
}
#steplist .tick-label {
  grid-row: 1;
  width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  font-family: var(--font-body-3-font-family, 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif);
  font-size: var(--font-body-3-font-size, 0.75rem);
  line-height: var(--font-body-3-line-height, calc(16 / 12));
  letter-spacing: var(--font-body-3-letter-spacing, 0.005em);
  font-weight: var(--font-body-3-font-weight, 400);
}
#steplist .tick-label .axis-label {
  padding-top: var(--spacing-1, 0.25rem);
  cursor: default;
}
#steplist .tick {
  background: var(--color-background-interactive-default, #4dacff);
  height: var(--spacing-1, 0.25rem);
  width: var(--spacing-1, 0.25rem);
  border-radius: var(--radius-circle, 50%);
  cursor: default;
}
#steplist .tick-label:not(:first-child):not(:last-child) {
  padding: 0;
}

.rux-slider + #steplist {
  padding: var(--spacing-1, 0.25rem) calc(var(--_slider-thumb-size) / 2);
}

.rux-range {
  -webkit-appearance: none;
  -moz-appearance: none;
  -ms-appearance: none;
  appearance: none;
  background: none;
  width: 100%;
  height: calc(var(--spacing-4, 1rem) + var(--spacing-1, 0.25rem));
  margin: var(--spacing-0, 0rem);
  color: transparent;
  position: relative;
}

input[type=range]:focus {
  outline: none;
}

/****** Track ******/
/* Track -> WebKit */
.rux-range::-webkit-slider-runnable-track {
  display: flex;
  align-items: center;
  max-width: 100%;
  /* width: 100%; */
  cursor: pointer;
  min-height: var(--spacing-050, 0.125rem);
  max-height: var(--slider-track-before-thumb-height);
  background-image: linear-gradient(var(--color-background-interactive-default, #4dacff), var(--color-background-interactive-default, #4dacff)), linear-gradient(var(--color-background-interactive-default, #4dacff), var(--color-background-interactive-default, #4dacff)), radial-gradient(circle, var(--color-background-interactive-default, #4dacff) 70%, var(--color-background-interactive-default, #4dacff) 70%, transparent 70%, transparent 100%);
  background-size: calc( var(--_slider-value-percent) - (var(--_slider-thumb-size) / 2) ) var(--slider-track-before-thumb-height), calc(100% - var(--_slider-thumb-size)) 1px, var(--spacing-1, 0.25rem) var(--spacing-1, 0.25rem);
  background-repeat: no-repeat no-repeat;
  background-position: calc(var(--_slider-thumb-size) / 2), calc(100% - (var(--_slider-thumb-size) / 2)), calc((var(--_slider-thumb-size) / 2) - var(--spacing-050, 0.125rem));
}

.rux-range--dual::-webkit-slider-runnable-track {
  background-image: none;
  z-index: 1;
  min-block-size: auto;
}

.rux-range-overlay {
  position: absolute;
  height: var(--spacing-1, 0.25rem);
  background-color: var(--color-background-interactive-default, #4dacff);
  left: var(--_start-value-percent);
  width: calc(var(--_slider-value-percent) - var(--_start-value-percent));
}
.rux-range-overlay:hover {
  cursor: default;
}

.rux-range:disabled::-webkit-slider-runnable-track {
  cursor: not-allowed;
}

/* Track -> Moz */
.rux-range::-moz-range-track {
  display: flex;
  align-items: center;
  max-width: 100%;
  /* width: 100%; */
  cursor: pointer;
  min-height: var(--spacing-1, 0.25rem);
  max-height: var(--slider-track-before-thumb-height);
  background-image: linear-gradient(var(--color-background-interactive-default, #4dacff), var(--color-background-interactive-default, #4dacff)), linear-gradient(var(--color-background-interactive-default, #4dacff), var(--color-background-interactive-default, #4dacff)), radial-gradient(circle, var(--color-background-interactive-default, #4dacff) 70%, var(--color-background-interactive-default, #4dacff) 70%, transparent 70%, transparent 100%);
  background-size: calc( var(--_slider-value-percent) - (var(--_slider-thumb-size) / 2) ) var(--slider-track-before-thumb-height), calc(100% - var(--_slider-thumb-size)) 1px, var(--spacing-1, 0.25rem) var(--spacing-1, 0.25rem);
  background-repeat: no-repeat no-repeat;
  background-position: calc(var(--_slider-thumb-size) / 2), calc(100% - (var(--_slider-thumb-size) / 2)), calc((var(--_slider-thumb-size) / 2) - var(--spacing-050, 0.125rem));
}

.rux-range:disabled::-moz-range-track,
.rux-range:disabled::-moz-range-progress {
  cursor: not-allowed;
}

.rux-input:disabled {
  cursor: not-allowed;
}

/* Track -> Ms */
.rux-range::-ms-track {
  display: flex;
  align-items: center;
  max-width: 100%;
  /* width: 100%; */
  cursor: pointer;
  border-radius: var(--radius-circle, 50%);
  min-height: var(--spacing-025, 0.0625rem);
  max-height: var(--spacing-1, 0.25rem);
  background-image: linear-gradient(var(--color-background-interactive-default, #4dacff), var(--color-background-interactive-default, #4dacff)), linear-gradient(var(--color-background-interactive-default, #4dacff), var(--color-background-interactive-default, #4dacff));
  background-size: var(--_slider-value-percent) var(--slider-track-before-thumb-height), 100% 1px;
  background-repeat: no-repeat no-repeat;
  background-position: left, right;
}

.rux-range::-ms-fill-lower {
  height: var(--spacing-050, 0.125rem);
  background-color: var(--color-background-interactive-default, #4dacff);
}

.rux-range::-ms-fill-upper {
  height: var(--spacing-050, 0.125rem);
  background-color: var(--color-background-interactive-default, #4dacff);
}

/*****  Thumb ******/
/* Thumb -> Webkit */
.rux-range::-webkit-slider-thumb {
  -webkit-appearance: none;
  box-sizing: border-box;
  position: relative;
  top: var(--_slider-top);
  height: var(--_slider-thumb-size);
  width: var(--_slider-thumb-size);
  border-radius: 100%;
  border: 2px solid var(--color-background-interactive-default, #4dacff);
  background-color: var(--color-background-base-default, #101923);
  cursor: pointer;
  z-index: 6;
  pointer-events: all;
}

.rux-range::-webkit-slider-thumb:hover {
  border-color: var(--color-background-interactive-hover, #92cbff);
  background-color: var(--color-background-base-default, #101923);
}

.rux-range:focus-visible::-webkit-slider-thumb {
  outline: var(--border-width-focus-default, 1px) solid var(--color-border-focus-default, #da9ce7);
  outline-offset: var(--spacing-focus-default, 0.125rem);
}

.rux-range:disabled::-webkit-slider-thumb {
  cursor: not-allowed;
}

.rux-range:disabled::-webkit-slider-thumb:hover {
  border-color: var(--color-background-interactive-default, #4dacff);
}

.rux-range:not(:disabled)::-webkit-slider-thumb:active {
  border-color: var(--color-background-interactive-default, #4dacff);
  background-color: var(--color-background-base-default, #101923);
}

.rux-range:not(:disabled)::-webkit-slider-thumb:focus,
.rux-range:not(:disabled)::-webkit-slider-thumb:hover:not(:active) {
  background-color: var(--color-background-base-default, #101923);
}

/* Thumb -> Moz */
.rux-range::-moz-range-thumb {
  -moz-appearance: none;
  position: relative;
  box-sizing: border-box;
  top: var(--_slider-top);
  height: var(--_slider-thumb-size);
  width: var(--_slider-thumb-size);
  border-radius: 100%;
  border: 2px solid var(--color-background-interactive-default, #4dacff);
  background-color: var(--color-background-base-default, #101923);
  cursor: pointer;
  z-index: 6;
}

.rux-range:not(:disabled)::-moz-range-thumb:active {
  border-color: var(--color-background-interactive-default, #4dacff);
  background-color: var(--color-background-base-default, #101923);
}

.rux-range::-moz-range-thumb:hover {
  border-color: var(--color-background-interactive-hover, #92cbff);
}

.rux-range:focus-visible::-moz-range-thumb {
  outline: var(--border-width-focus-default, 1px) solid var(--color-border-focus-default, #da9ce7);
  outline-offset: var(--spacing-focus-default, 0.125rem);
}

.rux-range:disabled::-moz-range-thumb {
  cursor: not-allowed;
}

/* Thumb -> Ms */
.rux-range::-ms-thumb {
  position: relative;
  top: var(--_slider-top);
  height: var(--_slider-thumb-size);
  width: var(--_slider-thumb-size);
  border-radius: 100%;
  border: 2px solid var(--color-background-interactive-default, #4dacff);
  background-color: var(--color-background-base-default, #101923);
  cursor: pointer;
  z-index: 6;
}

.rux-range:disabled::-ms-thumb {
  cursor: not-allowed;
}

.rux-range:focus-visible::-ms-thumb {
  outline: var(--border-width-focus-default, 1px) solid var(--color-border-focus-default, #da9ce7);
  outline-offset: var(--spacing-focus-default, 0.125rem);
}