/* ─── Progress bars ──────────────────────────────────────────── */
.progress {
  height: 20px;
  background: var(--gray-light);
  border-radius: var(--radius-full);
  overflow: hidden;
  position: relative;
  box-shadow: inset var(--shadow-sm);
}

.progress-bar {
  height: 100%;
  background: linear-gradient(90deg, var(--primary), var(--primary-light));
  border-radius: var(--radius-full);
  transition: width var(--transition-slow);
  position: relative;
  overflow: hidden;
}

.progress-bar::after {
  content: '';
  position: absolute;
  top: 0; left: 0; bottom: 0;
  width: 60%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.3));
  animation: shimmer 2s infinite;
}

.progress-text {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  font-size: var(--text-xs);
  font-weight: var(--fw-bold);
  color: var(--white);
  text-shadow: 0 1px 2px rgba(0,0,0,.25);
  z-index: 1;
  white-space: nowrap;
}

/* Size variants */
.progress-sm {
  height: 8px;
}

.progress-sm .progress-text {
  display: none;
}

.progress-lg {
  height: 28px;
}

/* Color variants */
.progress-bar-success {
  background: linear-gradient(90deg, var(--success), #2ecc71);
}

.progress-bar-warning {
  background: linear-gradient(90deg, var(--warning), #f1c40f);
}

.progress-bar-danger {
  background: linear-gradient(90deg, var(--danger), #e74c3c);
}

/* XP bar (gamification) */
.xp-bar-wrapper {
  margin: var(--space-sm) 0;
}

.xp-bar-labels {
  display: flex;
  justify-content: space-between;
  font-size: var(--text-xs);
  color: var(--gray);
  margin-bottom: var(--space-xs);
}

/* Level display */
.level-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  background: var(--primary);
  color: var(--white);
  padding: .4rem .9rem;
  border-radius: var(--radius-full);
  font-size: var(--text-sm);
  font-weight: var(--fw-bold);
  box-shadow: var(--shadow-sm);
}
