/* Provider Report Loading Animations */

.provider-report-loader {
  .loading-pulse {
    animation: loading-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
  }

  .progress-shimmer {
    position: relative;
    overflow: hidden;
  }

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

  .fade-in {
    animation: fade-in 0.5s ease-out;
  }

  .slide-up {
    animation: slide-up 0.6s ease-out;
  }
}

@keyframes loading-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}

@keyframes shimmer {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(100%);
  }
}

@keyframes fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes slide-up {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Spinning loader for FontAwesome icons */
@keyframes fa-spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(359deg);
  }
}

.fa-spin {
  animation: fa-spin 2s infinite linear;
}

/* Progress bar gradient animation */
@keyframes progress-glow {
  0% {
    box-shadow: 0 0 5px rgba(59, 130, 246, 0.5);
  }
  50% {
    box-shadow: 0 0 20px rgba(59, 130, 246, 0.8);
  }
  100% {
    box-shadow: 0 0 5px rgba(59, 130, 246, 0.5);
  }
}

.progress-bar-animated {
  animation: progress-glow 2s ease-in-out infinite;
}