/* Chrome puede exponer el fondo del documento durante uno o dos frames al
   redimensionar la ventana, antes de que Flutter vuelva a pintar su canvas.
   Mantener la raíz con la misma paleta evita el destello blanco en modo
   oscuro. ThemeController fija data-app-theme cuando la app inicia. */
:root {
  --app-background: #f6f6f8;
  --loading-text: #6b7280;
  --loading-primary: 17, 17, 212;
  color-scheme: light;
  background-color: var(--app-background);
}

:root[data-app-theme="dark"] {
  --app-background: #07111f;
  --loading-text: #8ea0b8;
  --loading-primary: 47, 123, 255;
  color-scheme: dark;
}

:root[data-app-theme="light"] {
  --app-background: #f6f6f8;
  --loading-text: #6b7280;
  --loading-primary: 17, 17, 212;
  color-scheme: light;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-app-theme]) {
    --app-background: #07111f;
    --loading-text: #8ea0b8;
    --loading-primary: 47, 123, 255;
    color-scheme: dark;
  }
}

html,
body {
  width: 100%;
  height: 100%;
  margin: 0;
  background-color: var(--app-background);
}

/* Visible incluso mientras se descargan el motor y main.dart.js. */
#app-loading {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: 24px;
  background-color: var(--app-background);
  color: var(--loading-text);
  font-family: Arial, sans-serif;
  text-align: center;
}

.loading-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 210px;
  height: 210px;
  border-radius: 50%;
  background-color: rgba(var(--loading-primary), 0.10);
  box-shadow: 0 0 34px 7px rgba(var(--loading-primary), 0.24);
  animation: brand-pulse 1550ms ease-in-out infinite;
}

.loading-logo img {
  width: 108px;
  height: 108px;
  object-fit: contain;
}

#app-loading p {
  margin: 26px 0 0;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.5;
}

@keyframes brand-pulse {
  0%, 100% {
    transform: scale(0.94);
  }
  50% {
    transform: scale(1.02);
    background-color: rgba(5, 150, 105, 0.18);
    box-shadow: 0 0 54px 14px rgba(5, 150, 105, 0.24);
  }
}

@media (prefers-reduced-motion: reduce) {
  .loading-logo {
    animation: none;
  }
}
