.ccl-range-wrapper {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  font-family: var(--typography-font-family-default, system-ui, -apple-system, sans-serif);
}

.ccl-range__label {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-text, #212529);
}

.ccl-range__required {
  margin-left: 0.25rem;
  color: #dc3545;
}

.ccl-range__value {
  font-weight: 600;
  color: var(--color-text-muted, #6c757d);
}

.ccl-range {
  width: 100%;
  appearance: none;
  height: 0.25rem;
  border-radius: 999px;
  background: #dee2e6;
  outline: none;
}

/* WebKit */
.ccl-range::-webkit-slider-thumb {
  appearance: none;
  width: 1rem;
  height: 1rem;
  border-radius: 50%;
  background: #0d6efd;
  border: 0;
  box-shadow: 0 0 0 0 rgba(13, 110, 253, 0);
  transition: box-shadow 0.15s ease-in-out, transform 0.15s ease-in-out;
}

.ccl-range:focus-visible::-webkit-slider-thumb {
  box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}

.ccl-range:active::-webkit-slider-thumb {
  transform: scale(1.05);
}

/* Firefox */
.ccl-range::-moz-range-thumb {
  width: 1rem;
  height: 1rem;
  border-radius: 50%;
  background: #0d6efd;
  border: 0;
  box-shadow: 0 0 0 0 rgba(13, 110, 253, 0);
  transition: box-shadow 0.15s ease-in-out, transform 0.15s ease-in-out;
}

.ccl-range:focus-visible::-moz-range-thumb {
  box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}

.ccl-range:active::-moz-range-thumb {
  transform: scale(1.05);
}

.ccl-range--disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.ccl-range--error::-webkit-slider-thumb,
.ccl-range--error::-moz-range-thumb {
  background: #dc3545;
}

.ccl-range--error:focus-visible::-webkit-slider-thumb,
.ccl-range--error:focus-visible::-moz-range-thumb {
  box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25);
}

.ccl-range__helper {
  font-size: 0.875rem;
  color: var(--color-text-muted, #6c757d);
}

.ccl-range__error {
  font-size: 0.875rem;
  color: #dc3545;
}

