/* cignyl-sftp 20260824 */
/* ------------------------------ */
/* v2 Slider (range input)        */
/* ------------------------------ */

.v2-theme .v2-slider {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: var(--v2-space-xsm);

  --v2-slider-accent: hsl(var(--primary));
  --v2-slider-track-bg: hsl(var(--secondary));
  --v2-slider-track-border: hsl(var(--border));
  --v2-slider-thumb-bg: hsl(var(--background));
  --v2-slider-thumb-border: hsl(var(--border));
  --v2-slider-thumb-shadow: 0 1px 2px hsl(var(--foreground) / 0.16);

  --v2-slider-track-height: 0.5rem; /* default */
  --v2-slider-thumb-size: 1rem;     /* default */
}

.v2-theme .v2-slider--disabled-true {
  opacity: 0.6;
  pointer-events: none;
}

.v2-theme .v2-slider__header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--v2-space-md);
}

.v2-theme .v2-slider__label {
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.2;
  color: hsl(var(--foreground));
  min-width: 0;
}

.v2-theme .v2-slider__value-text {
  font-size: 0.8125rem;
  font-weight: 500;
  line-height: 1.2;
  color: hsl(var(--muted-foreground));
  flex: 0 0 auto;
  white-space: nowrap;
}

.v2-theme .v2-slider__input {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: var(--v2-slider-track-height);
  background: transparent;
  border: none;
  cursor: pointer;
}

.v2-theme .v2-slider__input:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px hsl(var(--background)), 0 0 0 4px hsl(var(--ring));
}

/* Webkit track (Chrome/Edge/Safari) */
.v2-theme .v2-slider__input::-webkit-slider-runnable-track {
  height: var(--v2-slider-track-height);
  border-radius: 9999px;
  border: 1px solid var(--v2-slider-track-border);
  background:
    linear-gradient(var(--v2-slider-accent) 0 0) 0/var(--v2-slider-pct, 0%) 100% no-repeat,
    var(--v2-slider-track-bg);
}

/* Webkit thumb */
.v2-theme .v2-slider__input::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: var(--v2-slider-thumb-size);
  height: var(--v2-slider-thumb-size);
  border-radius: 9999px;
  background: var(--v2-slider-thumb-bg);
  border: 1px solid var(--v2-slider-thumb-border);
  box-shadow: var(--v2-slider-thumb-shadow);
  cursor: pointer;
  margin-top: calc((var(--v2-slider-track-height) - var(--v2-slider-thumb-size)) / 2);
}

/* Firefox track + progress + thumb */
.v2-theme .v2-slider__input::-moz-range-track {
  height: var(--v2-slider-track-height);
  border-radius: 9999px;
  background: var(--v2-slider-track-bg);
  border: 1px solid var(--v2-slider-track-border);
}

.v2-theme .v2-slider__input::-moz-range-progress {
  height: var(--v2-slider-track-height);
  border-radius: 9999px;
  background: var(--v2-slider-accent);
}

.v2-theme .v2-slider__input::-moz-range-thumb {
  width: var(--v2-slider-thumb-size);
  height: var(--v2-slider-thumb-size);
  border-radius: 9999px;
  background: var(--v2-slider-thumb-bg);
  border: 1px solid var(--v2-slider-thumb-border);
  box-shadow: var(--v2-slider-thumb-shadow);
  cursor: pointer;
}

.v2-theme .v2-slider__minmax {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--v2-space-md);
  font-size: 0.75rem;
  line-height: 1.1;
  color: hsl(var(--muted-foreground));
}

/* sizes */
.v2-theme .v2-slider--size-xsm { --v2-slider-track-height: 0.375rem; --v2-slider-thumb-size: 0.875rem; }
.v2-theme .v2-slider--size-sm  { --v2-slider-track-height: 0.4375rem; --v2-slider-thumb-size: 0.9375rem; }
.v2-theme .v2-slider--size-default { --v2-slider-track-height: 0.5rem; --v2-slider-thumb-size: 1rem; }
.v2-theme .v2-slider--size-lg  { --v2-slider-track-height: 0.625rem; --v2-slider-thumb-size: 1.125rem; }
.v2-theme .v2-slider--size-xlg { --v2-slider-track-height: 0.75rem; --v2-slider-thumb-size: 1.25rem; }

/* variants */
.v2-theme .v2-slider--variant-default    { --v2-slider-accent: hsl(var(--primary)); }
.v2-theme .v2-slider--variant-secondary  { --v2-slider-accent: hsl(var(--secondary-foreground)); }
.v2-theme .v2-slider--variant-destructive{ --v2-slider-accent: hsl(var(--destructive)); }
.v2-theme .v2-slider--variant-success    { --v2-slider-accent: hsl(var(--success)); }
.v2-theme .v2-slider--variant-warning    { --v2-slider-accent: hsl(var(--warning)); }
.v2-theme .v2-slider--variant-info       { --v2-slider-accent: hsl(var(--info)); }

