/* PRP Soluções — loading screen (splash WASM + overlay Blazor) */

.prp-loading {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 56px;
    background: #0f1417;
    color: #e8eced;
    font-family: Barlow, Helvetica, Arial, sans-serif;
}

.prp-ring-wrap {
    position: relative;
    width: 220px;
    height: 220px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.prp-ring-track {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, .07);
}

.prp-ring-blue {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 2px solid transparent;
    border-top-color: #1a99a8;
    border-right-color: rgba(26, 153, 168, .25);
    animation: prp-spin 1.6s linear infinite;
}

.prp-ring-green {
    position: absolute;
    inset: 22px;
    border-radius: 50%;
    border: 2px solid transparent;
    border-bottom-color: #a8c62a;
    border-left-color: rgba(168, 198, 42, .25);
    animation: prp-spin-rev 2.4s linear infinite;
}

.prp-mark {
    position: relative;
    width: 103.5px;
    height: 124.3px;
    transform-origin: 50% 50%;
    animation: prp-spin 2s cubic-bezier(.65, 0, .35, 1) infinite;
}

.prp-mark img {
    position: absolute;
    width: 52px;
    height: 77.1px;
    display: block;
}

.prp-mark img:first-child { top: 0; left: 0; }
.prp-mark img:last-child { top: 47.2px; left: 51.5px; }

.prp-text {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
}

.prp-brand {
    font-size: 13px;
    letter-spacing: .34em;
    text-transform: uppercase;
    color: #8f9a9e;
}

.prp-message {
    font-size: 20px;
    font-weight: 500;
}

.prp-dots {
    display: flex;
    gap: 8px;
    margin-top: 6px;
}

.prp-dots span {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    animation: prp-pulse 1.2s ease-in-out infinite;
}

.prp-dots span:nth-child(1) { background: #1a99a8; }
.prp-dots span:nth-child(2) { background: #7fc4cd; animation-delay: .2s; }
.prp-dots span:nth-child(3) { background: #a8c62a; animation-delay: .4s; }

@keyframes prp-spin { to { transform: rotate(360deg); } }
@keyframes prp-spin-rev { to { transform: rotate(-360deg); } }
@keyframes prp-pulse { 0%, 100% { opacity: .35; } 50% { opacity: 1; } }

/* Overlay interno: a página permanece visível, só o círculo gira no centro. */
.prp-loading--overlay {
    gap: 0;
    background: rgba(0, 0, 0, 0.5);
}

.prp-loading--overlay .prp-text {
    display: none;
}

@media (prefers-reduced-motion: reduce) {
    .prp-ring-blue, .prp-ring-green, .prp-mark, .prp-dots span { animation-duration: 4s; }
}
