#spinner-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.5);
  display: flex; /* show immediately */
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  padding-top: 15%;
  z-index: 20000;
  color: #fff;
  font-family: sans-serif;
  pointer-events: all;
  cursor: default;
}

#spinner-text {
  font-size: 1.1rem;
  text-align: center;
}

.custom-spinner {
  border: 6px solid #f3f3f3;
  border-top: 6px solid #3498db;
  border-radius: 50%;
  width: 60px;
  height: 60px;
  animation: spin 0.9s linear infinite;
  margin-bottom: 1rem;
}

/* Hide everything except header + overlay when active */
body.overlay-active > *:not(header):not(#spinner-overlay) {
  display: none !important;
}

/* Hide the sidenav inside the header */
body.overlay-active header .sidenav-menu {
  display: none !important;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}