/* Loading overlay */
.loading-overlay {
  position: fixed;
  inset: 0;
  z-index: 1200;
  pointer-events: none;
}
.loading-overlay:not(.hidden) { pointer-events: auto; }

.loading-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15,23,42,0.32);
  /* blur moderno */
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

/* central card */
.loading-center {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: center;
  justify-content: center;
  padding: 20px;
  border-radius: 12px;
  background: rgba(255,255,255,0.02);
  box-shadow: 0 8px 32px rgba(2,6,23,0.35);
}

/* ring */
.loading-ring {
  width: 72px;
  height: 72px;
}
.loading-ring .ring-bg {
  stroke: rgba(255,255,255,0.06);
}
.loading-ring .ring {
  stroke: #38bdf8; /* azul claro */
  stroke-dasharray: 126; /* ~ perimeter */
  stroke-dashoffset: 94;
  transform-origin: 50% 50%;
  animation: ring-rotate 1.2s linear infinite, ring-dash 1.5s ease-in-out infinite;
}
@keyframes ring-rotate {
  100% { transform: rotate(360deg); }
}
@keyframes ring-dash {
  0% { stroke-dashoffset: 126; }
  50% { stroke-dashoffset: 42; }
  100% { stroke-dashoffset: 126; }
}

/* texto */
.loading-text {
  color: #e6f6ff;
  font-size: 14px;
  font-weight: 600;
  text-align: center;
}

/* utility hidden class já existe no projeto; se não, adicionar: */
.hidden { display: none !important; }