
/* ============================================================================
 * Expatur v3.179 — CSS-based overlay auto-hide
 * ----------------------------------------------------------------------------
 * If the main JS thread is blocked by the legacy v3.162 hydrateAll forEach
 * loop or any other synchronous patch, our setTimeout-based unlock can't fire.
 * CSS animations run on the compositor thread and keep working even when JS
 * is fully blocked. This rule kicks in 10 seconds after the page mounts and
 * forces the loading overlay to display:none, regardless of any JS state.
 * The user is guaranteed to never be stuck on "Carregando todos os dados…"
 * for more than 10 seconds. Uses !important to win over any inline style
 * the legacy patches set later.
 * ========================================================================== */
@keyframes v179_force_hide_overlay {
  0%   { opacity: 1; visibility: visible; pointer-events: auto; }
  99%  { opacity: 1; visibility: visible; pointer-events: auto; }
  100% { opacity: 0 !important; visibility: hidden !important; pointer-events: none !important; }
}
#app-loading-overlay,
.app-loading-overlay,
.global-loader,
[data-app-loader] {
  animation: v179_force_hide_overlay 10s linear forwards !important;
}
