.jl-progress { display: flex; flex-direction: column; gap: var(--space-2); width: 100%; }
.jl-progress__meta { display: flex; justify-content: space-between; font-size: var(--text-sm); }
.jl-progress__label { color: var(--text-secondary); font-weight: var(--weight-medium); }
.jl-progress__value { color: var(--text-tertiary); font-variant-numeric: tabular-nums; }
.jl-progress__track {
  height: 8px;
  width: 100%;
  background: var(--surface-muted);
  border-radius: var(--radius-pill);
  overflow: hidden;
}
.jl-progress--sm .jl-progress__track { height: 5px; }
.jl-progress--lg .jl-progress__track { height: 12px; }
.jl-progress__fill {
  height: 100%;
  border-radius: inherit;
  background: var(--accent);
  transition: width var(--duration-slow) var(--ease-emphasized);
}
.jl-progress--success .jl-progress__fill { background: var(--success); }
.jl-progress--warning .jl-progress__fill { background: var(--warning); }
.jl-progress--danger .jl-progress__fill { background: var(--danger); }
.jl-progress__track--indeterminate .jl-progress__fill {
  width: 40% !important;
  border-radius: var(--radius-pill);
  animation: jl-progress-slide 1.2s var(--ease-standard) infinite;
}
@keyframes jl-progress-slide {
  0% { transform: translateX(-120%); }
  100% { transform: translateX(320%); }
}
@media (prefers-reduced-motion: reduce) {
  .jl-progress__track--indeterminate .jl-progress__fill { animation: none; }
}
