/* Splash de boot: evita o flash de tela branca enquanto o Angular carrega.
   Arquivo próprio, e não um <style> inline, para a CSP do portal não precisar liberar estilo
   inline (PLANO_PORTAL_FRONT_ACESSO, P4). */
#splash {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1.15rem;
    background: #ffffff;
    color: #23241c;
    transition: opacity 0.25s ease-out;
}
html.app-dark #splash {
    background: #23241c;
    color: #f1f1ec;
}
#splash.oculto {
    opacity: 0;
    pointer-events: none;
}
#splash .marca {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}
#splash .icone {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.6rem;
    height: 2.6rem;
    border-radius: 0.7rem;
    background: linear-gradient(135deg, #a1db46 0%, #76b12e 100%);
    color: #ffffff;
    font-family: 'Montserrat', system-ui, sans-serif;
    font-weight: 800;
    font-size: 0.95rem;
    letter-spacing: 0.06em;
}
#splash .nome {
    font-family: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    font-weight: 800;
    font-size: 1.6rem;
    letter-spacing: 0.02em;
}
#splash .nome .produto {
    color: #8cc63f;
}
#splash .carregando {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-family: 'Source Sans 3', system-ui, sans-serif;
    font-size: 0.9rem;
    opacity: 0.7;
}
#splash .sp {
    width: 1.15rem;
    height: 1.15rem;
    border-radius: 50%;
    border: 2.5px solid rgba(140, 198, 63, 0.25);
    border-top-color: #8cc63f;
    animation: splashSpin 0.7s linear infinite;
}
@keyframes splashSpin {
    to {
        transform: rotate(360deg);
    }
}
@media (prefers-reduced-motion: reduce) {
    #splash .sp {
        animation-duration: 1.6s;
    }
}
        
