/* Cap progress bar with threshold colors:
     <70%   green
     70–99% amber
     >=100% red */

.cap-bar {
  position: relative;
  height: 8px;
  border-radius: 4px;
  background: var(--bg);
  border: 1px solid var(--border);
  overflow: hidden;
}

.cap-bar-fill {
  height: 100%;
  width: 0%;
  border-radius: inherit;
  transition: width var(--dur) var(--ease), background var(--dur) var(--ease);
}

.cap-bar-green .cap-bar-fill {
  background: var(--green);
}

.cap-bar-amber .cap-bar-fill {
  background: var(--amber);
}

.cap-bar-red .cap-bar-fill {
  background: var(--accent);
  /* Subtle pulse to draw attention when over budget. */
  animation: cap-bar-pulse 1.6s ease-in-out infinite;
}

@keyframes cap-bar-pulse {
  0%, 100% { opacity: 1; }
  50%      { opacity: .7; }
}
