/* Global Blazor Server Reconnect overlay.
   The container is always present in the DOM but hidden by default.
   Visibility is toggled by wwwroot/js/reconnect.js (primary) and by the
   server-side coordinator state (fallback). The fixed, full-viewport element
   blocks all user interaction while visible. */

#global-reconnect-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 10000000;
    background: rgba(0, 0, 0, 0.55);
    align-items: center;
    justify-content: center;
    cursor: wait;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

#global-reconnect-overlay.global-reconnect-visible {
    display: flex;
}

.global-reconnect-panel {
    background: #ffffff;
    padding: 2rem 2.5rem;
    border-radius: 0.5rem;
    text-align: center;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    max-width: 90%;
}

.global-reconnect-message {
    display: none;
    margin: 0;
    color: #333333;
    font-size: 1.05rem;
    line-height: 1.5;
    font-family: "Inter", "Segoe UI", Roboto, Arial, sans-serif;
}

#global-reconnect-overlay[data-state="connecting"] [data-reconnect-state="connecting"],
#global-reconnect-overlay[data-state="reconnecting"] [data-reconnect-state="reconnecting"],
#global-reconnect-overlay[data-state="reloading"] [data-reconnect-state="reloading"] {
    display: block;
}

.global-reconnect-spinner {
    width: 44px;
    height: 44px;
    margin: 0 auto 1rem auto;
    border: 4px solid rgba(0, 0, 0, 0.12);
    border-top-color: #1e88e5;
    border-radius: 50%;
    animation: global-reconnect-spin 0.9s linear infinite;
}

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