/* ================================
   DPA LOADER COMPONENT
   Global Reusable Loader
================================ */

.dpa-loader-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 200px;
  text-align: center;
}

.dpa-loader {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.dpa-loader span { 
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: linear-gradient(135deg, #0073ff, #00aff0);
  box-shadow: 0 4px 14px rgba(0,115,255,0.22);
  animation: dpa-loader-bounce 0.8s infinite ease-in-out;
}

.dpa-loader span:nth-child(2) { animation-delay: 0.12s; }
.dpa-loader span:nth-child(3) { animation-delay: 0.24s; }

.dpa-loader-text {
  margin-top: 14px;
  color: #64748b;
  font-size: 0.95rem;
  font-weight: 500;
}

@keyframes dpa-loader-bounce {
  0%, 80%, 100% {
    transform: scale(0.65);
    opacity: 0.45;
  }
  40% {
    transform: scale(1);
    opacity: 1;
  }
}

/* optional size variants */
.dpa-loader-wrap.small { min-height: 120px; }
.dpa-loader-wrap.large { min-height: 320px; }

/* ----------------------------------
   ANIMATION
---------------------------------- */

@keyframes dpaLoaderBounce {

  0%,
  80%,
  100% {
    transform: scale(.65);
    opacity: .45;
  }

  40% {
    transform: scale(1);
    opacity: 1;
  }

} 
