/* UNYXFLUX — Loading Compartilhado / Modelo A
   Autoridade visual mínima para estados ainda não seguros para exibição. */
:root{
  --unyx-loading-purple:#6417f3;
  --unyx-loading-track:#e9e5f5;
  --unyx-loading-text:#12162f;
  --unyx-loading-muted:#64677a;
  /* [Rodada — transparência] Antes rgb(252,252,254) opaco: tela cheia
     branca sólida cobrindo o app durante a transição.
     [Correção — sem cartão] Uma primeira tentativa escureceu o véu e
     colocou spinner/mensagem dentro de um cartão próprio para manter o
     texto legível — o Diretor não quis o cartão, só a transparência,
     mantendo o layout original (spinner + texto soltos, sem caixa).
     Solução: manter o véu na MESMA família de cor original (clara), só
     que translúcida — o texto escuro (--unyx-loading-text) continua
     legível direto sobre o véu, sem precisar de superfície opaca própria. */
  --unyx-loading-scrim:rgba(252,252,254,.72);
}
.unyx-loading-root,.unyx-loading-root *{box-sizing:border-box}
.unyx-loading-root{
  position:fixed; inset:0; z-index:2147483000;
  display:flex; align-items:center; justify-content:center;
  padding:24px; background:var(--unyx-loading-scrim);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .18s ease,visibility 0s linear .18s;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.unyx-loading-root.is-visible{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .18s ease}
html.unyx-loading-lock,body.unyx-loading-lock{overflow:hidden!important;touch-action:none}
.unyx-loading-content{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:160px;max-width:min(78vw,320px);outline:none;text-align:center;transform:translateY(-1vh)}
.unyx-loading-spinner{width:48px;height:48px;margin:0 auto 18px;border-radius:50%;border:4px solid var(--unyx-loading-track);border-top-color:var(--unyx-loading-purple);border-right-color:var(--unyx-loading-purple);animation:unyxLoadingSpin .78s linear infinite}
.unyx-loading-message{color:var(--unyx-loading-text);font-size:15px;line-height:1.35;font-weight:750;letter-spacing:-.012em}
.unyx-loading-detail{margin-top:7px;color:var(--unyx-loading-muted);font-size:12.5px;line-height:1.4;font-weight:550}
@keyframes unyxLoadingSpin{to{transform:rotate(360deg)}}
@media(max-width:420px){.unyx-loading-root{padding:18px}.unyx-loading-spinner{width:46px;height:46px;margin-bottom:16px}.unyx-loading-message{font-size:14.5px}}
@media(prefers-reduced-motion:reduce){.unyx-loading-root{transition:none}.unyx-loading-spinner{animation-duration:1.45s}}
