body {
  margin: 0;
  padding: 0;
}

.splash-screen {
  position: absolute;
  z-index: 1000;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  font-family: Helvetica, "sans-serif";
  background-color: #f2f3f8;
  color: #5e6278;
  line-height: 1;
  font-size: 14px;
  font-weight: 400;
}

.splash-screen span {
  color: #5e6278;
  transition: none !important;
  text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
}

/* Logo estático dentro del anillo de carga (el logo NO se anima). */
.splash-logo-wrap {
  position: relative;
  width: 96px;
  height: 96px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.splash-screen img {
  height: 75px !important;
  width: 75px;
  display: block;
}

/* Anillo delgado alrededor del logo: arco parcial en el azul de marca
   (#065895, muestreado del propio logo) girando 1s lineal infinito.
   El SVG de 96px deja ~8px de gap entre el borde del logo y el anillo. */
.splash-ring {
  position: absolute;
  top: 0;
  left: 0;
  width: 96px;
  height: 96px;
  animation: splash-ring-spin 1s linear infinite;
}

.splash-ring circle {
  fill: none;
  stroke: #065895;
  stroke-width: 2.5;
  stroke-linecap: round;
  /* Circunferencia ≈ 293.7 → arco visible de ~25% */
  stroke-dasharray: 73 221;
}

@keyframes splash-ring-spin {
  to {
    transform: rotate(360deg);
  }
}

[data-bs-theme="dark"] .splash-ring circle {
  stroke: #2b7fc4;
}

/* Spinner genérico: NO lo usa el splash, pero sí 8 pantallas del sistema
   (logout, dashboard, billing, calendarios). No tocar. */
.spinner {
  width: 2em;
  height: 2em;
  border: 0.3em solid rgba(0, 0, 0, 0.1);
  border-left-color: #30b1e0 !important;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

[data-bs-theme="dark"] .spinner {
  border-left-color: #30b1e0;
  border: 0.4em solid rgba(156, 156, 156, 0.603);
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

[data-bs-theme="dark"] .splash-screen {
  background-color: #151521;
  color: #92929f;
}

[data-bs-theme="dark"] .splash-screen span {
  color: #92929f;
}

#root {
  opacity: 1;
  transition: opacity 1s ease-in-out;
}
