/* Custom Blazor reconnect overlay (replaces the stock gray "attempt 1 of 8" UI).
   blazor.web.js drives the components-reconnect-* classes; blazor-reconnect.js
   mirrors them into data-reconnect-state and auto-reloads once retries fail. */

#components-reconnect-modal {
    display: none;
}

#components-reconnect-modal.components-reconnect-show,
#components-reconnect-modal.components-reconnect-failed,
#components-reconnect-modal.components-reconnect-rejected {
    display: flex;
    position: fixed;
    inset: 0;
    z-index: 100000;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(9, 17, 59, 0.45);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    /* The 0.75s delay keeps sub-second network blips from flashing the overlay. */
    opacity: 0;
    animation: reconnect-fade-in 0.3s ease 0.75s forwards;
}

@keyframes reconnect-fade-in {
    to { opacity: 1; }
}

#components-reconnect-modal .reconnect-card {
    background: #ffffff;
    border-radius: 16px;
    box-shadow: 0 20px 50px rgba(9, 17, 59, 0.35);
    padding: 32px 36px;
    max-width: 380px;
    width: 100%;
    text-align: center;
}

#components-reconnect-modal .reconnect-spinner {
    width: 42px;
    height: 42px;
    margin: 0 auto 16px;
    border-radius: 50%;
    border: 4px solid rgba(9, 17, 59, 0.12);
    border-top-color: #09113B;
    animation: reconnect-spin 0.9s linear infinite;
}

@keyframes reconnect-spin {
    to { transform: rotate(360deg); }
}

#components-reconnect-modal .reconnect-title {
    margin: 0 0 8px;
    font-size: 1.15rem;
    font-weight: 700;
    color: #09113B;
}

#components-reconnect-modal .reconnect-text {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.45;
    color: #4a5169;
}

/* State-specific messaging: exactly one <p> is visible at a time. */
#components-reconnect-modal .reconnect-text { display: none; }
#components-reconnect-modal[data-reconnect-state="show"] .reconnect-text-show { display: block; }
#components-reconnect-modal[data-reconnect-state="failed"] .reconnect-text-restoring,
#components-reconnect-modal[data-reconnect-state="rejected"] .reconnect-text-restoring,
#components-reconnect-modal[data-reconnect-state="reloading"] .reconnect-text-restoring { display: block; }
/* Fallback before JS sets data-reconnect-state */
#components-reconnect-modal:not([data-reconnect-state]) .reconnect-text-show { display: block; }
