html,
body,
#root {
  height: 100%;
  margin: 0;
  padding: 0;
}

/* Slim range-input variant: thin track, small round thumb. Native
   accent-color styling can't be slimmed via inline React styles because it
   only reaches the element itself, not the ::-webkit-slider-thumb /
   ::-moz-range-thumb pseudo-elements — hence a real stylesheet rule. */
input[type="range"].slider-slim {
  -webkit-appearance: none;
  appearance: none;
  background: transparent;
  cursor: pointer;
  outline: none;
}

input[type="range"].slider-slim::-webkit-slider-runnable-track {
  height: 3px;
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.15);
}

input[type="range"].slider-slim::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 10px;
  height: 10px;
  margin-top: -3.5px;
  border-radius: 50%;
  background: currentColor;
  cursor: pointer;
  transition: transform 0.1s, box-shadow 0.1s;
}

input[type="range"].slider-slim:hover::-webkit-slider-thumb {
  transform: scale(1.3);
}

input[type="range"].slider-slim:active::-webkit-slider-thumb {
  transform: scale(1.5);
}

input[type="range"].slider-slim:focus-visible::-webkit-slider-thumb {
  box-shadow: 0 0 0 3px rgba(86, 204, 242, 0.35);
}

input[type="range"].slider-slim::-moz-range-track {
  height: 3px;
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.15);
}

input[type="range"].slider-slim::-moz-range-thumb {
  width: 10px;
  height: 10px;
  border: none;
  border-radius: 50%;
  background: currentColor;
  cursor: pointer;
  transition: transform 0.1s, box-shadow 0.1s;
}

input[type="range"].slider-slim:hover::-moz-range-thumb {
  transform: scale(1.3);
}

input[type="range"].slider-slim:active::-moz-range-thumb {
  transform: scale(1.5);
}

input[type="range"].slider-slim:focus-visible::-moz-range-thumb {
  box-shadow: 0 0 0 3px rgba(86, 204, 242, 0.35);
}
