/* Overlay global — feedback la salvări / acțiuni lente */
@keyframes revgo-nav-spin {
    to { transform: rotate(360deg); }
}

/* PWA: loader instant în <head>, înainte de JS — evită flash fără feedback */
html.revgo-nav-boot::before {
    content: '';
    position: fixed;
    inset: 0;
    z-index: 20001;
    background: rgba(248, 250, 252, 0.95);
    pointer-events: none;
}

html.revgo-nav-boot::after {
    content: '';
    position: fixed;
    top: 50%;
    left: 50%;
    width: 2.75rem;
    height: 2.75rem;
    margin: -1.375rem 0 0 -1.375rem;
    z-index: 20002;
    border: 0.2em solid rgba(13, 110, 253, 0.2);
    border-top-color: #0d6efd;
    border-radius: 50%;
    animation: revgo-nav-spin 0.75s linear infinite;
    pointer-events: none;
}

@media (display-mode: standalone) {
    html.revgo-nav-boot::before {
        padding-top: env(safe-area-inset-top);
        padding-bottom: env(safe-area-inset-bottom);
    }
}

.revgo-global-loading {
    position: fixed;
    inset: 0;
    z-index: 20000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    background: rgba(255, 255, 255, 0.82);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s ease;
    pointer-events: none;
}

.revgo-global-loading.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.revgo-global-loading.is-active.is-nav-pending {
    pointer-events: none;
}

.revgo-global-loading.is-active.is-immediate {
    transition: none;
}

.revgo-global-loading__panel {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    max-width: 20rem;
    padding: 1.75rem 2rem;
    text-align: center;
    background: #fff;
    border-radius: 0.75rem;
    box-shadow: 0 0.5rem 2rem rgba(15, 23, 42, 0.12);
    border: 1px solid rgba(13, 110, 253, 0.12);
}

.revgo-global-loading__panel .spinner-border {
    width: 2.5rem;
    height: 2.5rem;
    border-width: 0.2em;
}

.revgo-global-loading__message {
    margin: 0;
    font-size: 0.9375rem;
    font-weight: 500;
    color: #334155;
    line-height: 1.4;
}

body.revgo-loading-active {
    overflow: hidden;
}

@media (max-width: 767.98px) {
    .revgo-global-loading {
        padding: 1rem;
        background: rgba(248, 250, 252, 0.92);
    }

    .revgo-global-loading__panel {
        width: min(18rem, 100%);
        padding: 1.5rem 1.25rem;
        border-radius: 1rem;
        box-shadow: 0 0.75rem 2.5rem rgba(15, 23, 42, 0.18);
    }

    .revgo-global-loading__panel .spinner-border {
        width: 2.75rem;
        height: 2.75rem;
    }

    .revgo-global-loading__message {
        font-size: 1rem;
    }
}

@media (display-mode: standalone) {
    .revgo-global-loading {
        padding-top: max(1rem, env(safe-area-inset-top));
        padding-bottom: max(1rem, env(safe-area-inset-bottom));
    }
}
