/* Optional Spinner: Pulse Dots */
.pulse-spinner {
  display: flex;
  justify-content: center;
  gap: 6px;
}
.pulse-spinner span {
  width: 10px;
  height: 10px;
  background: #007bff;
  border-radius: 50%;
  animation: pulse 0.6s infinite ease-in-out;
}
.pulse-spinner span:nth-child(2) {
  animation-delay: 0.2s;
}
.pulse-spinner span:nth-child(3) {
  animation-delay: 0.4s;
}
@keyframes pulse {
  0%, 100% { transform: scale(1); opacity: 0.5; }
  50% { transform: scale(1.5); opacity: 1; }
}

/* Optional Spinner: Ring Loader */
.lds-ring {
  display: inline-block;
  position: relative;
  width: 40px;
  height: 40px;
}
.lds-ring div {
  box-sizing: border-box;
  position: absolute;
  width: 32px;
  height: 32px;
  margin: 4px;
  border: 4px solid #007bff;
  border-radius: 50%;
  animation: ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
  border-color: #007bff transparent transparent transparent;
}
.lds-ring div:nth-child(1) { animation-delay: -0.45s; }
.lds-ring div:nth-child(2) { animation-delay: -0.3s; }
.lds-ring div:nth-child(3) { animation-delay: -0.15s; }
@keyframes ring {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

