body.loading * {
    visibility: hidden;
}

body.loading #loadingSpinner {
    visibility: visible;
}

.spinner-overlay {
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  background-color: #0f172a;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  z-index: 9999;
}

.spinner-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}

.dots-loader {
  display: flex;
  gap: 8px;
  font-size: 2.5rem;
  color: var(--primary-color, #10a37f);
}

.dots-loader span {
  animation: bounce 1.4s infinite ease-in-out;
}

.dots-loader span:nth-child(2) {
  animation-delay: 0.2s;
}

.dots-loader span:nth-child(3) {
  animation-delay: 0.4s;
}

@keyframes bounce {
  0%, 80%, 100% {
    transform: translateY(0);
    opacity: 0.6;
  }
  40% {
    transform: translateY(-10px);
    opacity: 1;
  }
}

.loading-message {
  color: #f3f4f6;
  font-size: 1.2rem;
  text-align: center;
}