/* cignyl-sftp 20260824 */
/* ------------------------------ */
/* v2 Progress (shadcn-like)      */
/* ------------------------------ */

.v2-theme .v2-progress {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: var(--v2-space-xsm);
}

.v2-theme .v2-progress--disabled-true {
  opacity: 0.6;
  pointer-events: none;
}

.v2-theme .v2-progress__header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--v2-space-md);
}

.v2-theme .v2-progress__label {
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.2;
  color: hsl(var(--foreground));
  min-width: 0;
}

.v2-theme .v2-progress__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-progress__track {
  width: 100%;
  position: relative;
  overflow: hidden;
  border-radius: 9999px;
  background: hsl(var(--secondary));
}

.v2-theme .v2-progress__indicator {
  height: 100%;
  width: 0%;
  background: hsl(var(--primary));
  border-radius: 9999px;
  transition: width 150ms ease;
}

/* sizes (track height) */
.v2-theme .v2-progress--size-xsm .v2-progress__track { height: var(--v2-space-xsm) }
.v2-theme .v2-progress--size-sm .v2-progress__track { height: var(--v2-space-sm) }
.v2-theme .v2-progress--size-default .v2-progress__track { height: var(--v2-space-md) }
.v2-theme .v2-progress--size-lg .v2-progress__track { height: var(--v2-space-lg) }
.v2-theme .v2-progress--size-xlg .v2-progress__track { height: var(--v2-space-xl) }

/* variants (indicator color) */
.v2-theme .v2-progress--variant-default .v2-progress__indicator { background: hsl(var(--primary)); }
.v2-theme .v2-progress--variant-destructive .v2-progress__indicator { background: hsl(var(--destructive)); }
.v2-theme .v2-progress--variant-success .v2-progress__indicator { background: hsl(var(--success)); }
.v2-theme .v2-progress--variant-warning .v2-progress__indicator { background: hsl(var(--warning)); }
.v2-theme .v2-progress--variant-info .v2-progress__indicator { background: hsl(var(--info)); }

/* indeterminate */
@keyframes v2-progress-indeterminate {
  /*
    Ultra-smooth indeterminate sweep:
    - Translate-only (no scale/opacity ramps, which tend to read as "choppy")
    - Fully off-screen at loop boundary so the restart is visually seamless
  */
  0%   { transform: translate3d(-160%, 0, 0); }
  55%  { transform: translate3d(60%, 0, 0); }
  100% { transform: translate3d(360%, 0, 0); }
}

.v2-theme .v2-progress--indeterminate-true .v2-progress__indicator {
  width: 35%;
  transform: translate3d(-160%, 0, 0);
  transform-origin: left center;
  backface-visibility: hidden;
  will-change: transform;
  transition: none;
  animation: v2-progress-indeterminate 1.15s cubic-bezier(0.37, 0, 0.63, 1) infinite;
}

