/* =============================================================================
   Loading — spinner circular na cor da loja, fundo no tema da tela.
   #pv-boot-loader: abertura de página (estilo crítico em includes/pv_boot_loader.php)
   #loading-overlay: navegação lenta e showLoading()/hideLoading() — só aparece após um atraso
   Cor: --tenant-primary (painel) ou --loja-gold (vitrine); fallback ciano da plataforma.
   ============================================================================= */

/* Variáveis resolvidas no próprio elemento (não no :root) para seguir o tema do body. */
.pv-spinner,
#loading-overlay {
    --pv-spinner-color: var(--tenant-primary, #22d3ee);
    --pv-loading-overlay-bg: color-mix(in srgb, var(--ds-bg, #000) 72%, transparent);
}
body.loja-body .pv-spinner,
body.loja-body #loading-overlay {
    --pv-spinner-color: var(--loja-gold, var(--tenant-primary, #22d3ee));
    --pv-loading-overlay-bg: color-mix(in srgb, var(--loja-page-bg, #f3efe7) 78%, transparent);
}

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

.pv-loading-spinner { display: grid; place-items: center; }
.pv-spinner {
    display: block;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 3px solid color-mix(in srgb, var(--pv-spinner-color) 22%, transparent);
    border-top-color: var(--pv-spinner-color);
    animation: pv-spin 0.75s linear infinite;
}

/* rótulo só para leitores de tela */
.pv-loading-overlay__label,
#pv-boot-loader .pv-boot-loader__label {
    position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap;
}

#loading-overlay {
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    display: grid;
    place-items: center;
    background: var(--pv-loading-overlay-bg);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.15s ease, visibility 0.15s ease;
}
#loading-overlay.pv-loading--visible { opacity: 1; visibility: visible; pointer-events: auto; }

@media (prefers-reduced-motion: reduce) {
    .pv-spinner { animation-duration: 1.6s; }
}
