#mixerGrid input[type="range"],
.quick-mixer-volume input[type="range"]{
  width:100%;
  min-width:0;
  min-height:38px;
  padding:10px 0;
  margin:0;
  cursor:pointer;
  touch-action:pan-y;
  accent-color:var(--accent);
}
#mixerGrid input[type="range"]:focus-visible,
.quick-mixer-volume input[type="range"]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
#mixerGrid input[type="range"]::-webkit-slider-runnable-track,
.quick-mixer-volume input[type="range"]::-webkit-slider-runnable-track{height:8px;border-radius:999px}
#mixerGrid input[type="range"]::-webkit-slider-thumb,
.quick-mixer-volume input[type="range"]::-webkit-slider-thumb{width:22px;height:22px;margin-top:-7px}
#mixerGrid input[type="range"]::-moz-range-track,
.quick-mixer-volume input[type="range"]::-moz-range-track{height:8px;border-radius:999px}
#mixerGrid input[type="range"]::-moz-range-thumb,
.quick-mixer-volume input[type="range"]::-moz-range-thumb{width:22px;height:22px;border-radius:50%}
.mixer-source.is-zero-off{opacity:.72}

/* The journey progress rail is also the seek control. Pointer capture is used
   by scene-audio-v2.js, so dragging remains continuous on mouse and touch. */
.journey-track[role="slider"]{cursor:pointer;touch-action:none;position:relative}
.journey-track[role="slider"]::after{content:"";position:absolute;inset:-12px 0}
.journey-track[role="slider"]:focus-visible{outline:2px solid var(--accent);outline-offset:7px;border-radius:999px}
.journey-track[role="slider"] #journeyProgress{pointer-events:none}

@media(max-width:620px){
  #mixerGrid input[type="range"],.quick-mixer-volume input[type="range"]{min-height:44px;padding:12px 0}
  .journey-track[role="slider"]::after{inset:-16px 0}
}
