/*
  Mesa do Sócio · boot de autenticação
  Evita o flash da tela de login antes do JavaScript decidir se existe sessão ativa.
*/

html.mesa-auth-booting #mesaGuestShell,
html.mesa-auth-booting #mesaAppShell {
  visibility: hidden;
}

html.mesa-auth-booting {
  overflow-anchor: none;
}

html.mesa-auth-booting,
html.mesa-auth-booting body {
  scroll-behavior: auto !important;
}

html.mesa-auth-booting * {
  transition: none !important;
}

/* ============================================================================
   LOADING DE BOOT — overlay elegante enquanto o app estabiliza o primeiro paint.
   Visível por padrão (a página nasce com .mesa-auth-booting); some por fade
   quando a classe é removida. A animação do spinner usa só `transform`, que
   roda no compositor — continua girando mesmo se a main thread engasgar.
   ========================================================================== */
.mesa-boot-overlay {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: grid;
  place-items: center;
  background: radial-gradient(circle at 50% 36%, #fbf9f4 0%, #f3efe6 58%, #ece5d8 100%);
  opacity: 1;
}
.mesa-boot-overlay__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
}
.mesa-boot-overlay__brand {
  margin: 0;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.42em;
  text-indent: 0.42em; /* compensa o tracking para manter centralizado */
  text-transform: uppercase;
  color: #2a2620;
}
.mesa-boot-overlay__spinner {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 2.5px solid rgba(176, 142, 87, 0.22);
  border-top-color: #b08e57;
  animation: mesa-boot-spin 0.7s linear infinite;
}
.mesa-boot-overlay__label {
  margin: 0;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 12.5px;
  letter-spacing: 0.02em;
  color: #8c8475;
}
@keyframes mesa-boot-spin {
  to {
    transform: rotate(360deg);
  }
}

/* Já fora do boot: esconde com fade suave (transições voltam a valer aqui,
   pois a regra de `transition: none` só se aplica durante .mesa-auth-booting). */
html:not(.mesa-auth-booting) .mesa-boot-overlay {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.45s ease, visibility 0s linear 0.45s;
}

/* Acessibilidade: sem movimento para quem pede menos animação. */
@media (prefers-reduced-motion: reduce) {
  .mesa-boot-overlay__spinner {
    animation-duration: 1.6s;
  }
}
