/* TWF Loader — v3 (sem classes globais) */
#twfloader__wrapper{
  position:fixed; inset:0;
  background: var(--twf-bg, rgba(255,255,255,.7));
  z-index:9999;
  display:flex; align-items:center; justify-content:center;
  pointer-events:auto;
  will-change:opacity;
  contain:layout paint;
}

#twfloader__spinner{
  width:60px; height:60px;
  border:7px solid var(--twf-spin,#1e73be);
  border-top-color: var(--twf-spin-top,#fff);
  border-radius:50%;
  animation: spin var(--twf-speed,1s) linear infinite;
}

@media (max-width:768px){
  #twfloader__spinner{ width:40px; height:40px; border-width:6px; }
}

@keyframes spin{ to{ transform:rotate(360deg); } }

.twf-fade-out{ animation: twfloader-fadeOut .35s linear forwards; }
@keyframes twfloader-fadeOut{ to{ opacity:0; } }

/* Estabiliza a área de scroll */
html{ scrollbar-gutter:stable; }

/* ----------------------------- */
/* Acessibilidade: reduz animações */
@media (prefers-reduced-motion: reduce){
  #twfloader__spinner { animation: none !important; }
  .twf-fade-out { animation-duration: .01ms !important; }
}

/* Lock de scroll robusto para mobile */
html.twf-lock, body.twf-lock{
  overflow: hidden !important;
  overscroll-behavior: none;
  touch-action: none;
}

/* Evita “salto” de conteúdo ao travar no iOS */
body.twf-lock{
  position: fixed;
  width: 100%;
}
