/*
 * mct-loading.css — Global loading lock styles
 * Included in MasterPagePortal, MasterPageAuth, and MasterPage3.
 * Works with mct-loading.js which toggles body.mct-is-loading.
 */

/* ========================
   LOADING OVERLAY
   (shown by mct-loading.js for any postback / AJAX request)
   ======================== */
#mctLoadingOverlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: rgba(15, 23, 42, 0.55);
    align-items: center;
    justify-content: center;
    backdrop-filter: blur(2px);
}

#mctLoadingOverlay.active {
    display: flex;
}

#mctLoadingOverlay .mct-loading-box {
    background: #fff;
    border-radius: 10px;
    padding: 1.1rem 1.75rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
    font-size: 0.875rem;
    font-weight: 500;
    color: #1e293b;
}

#mctLoadingOverlay .mct-loading-spinner {
    width: 18px;
    height: 18px;
    border: 2.5px solid #e2e8f0;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: mct-spin 0.65s linear infinite;
    flex-shrink: 0;
}

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

/* ========================
   ELEMENT LOCK
   Prevents all interaction while body.mct-is-loading is set.
   Uses !important to override any inline styles or framework rules.
   ======================== */
body.mct-is-loading button,
body.mct-is-loading input[type="submit"],
body.mct-is-loading input[type="button"],
body.mct-is-loading a,
body.mct-is-loading select,
body.mct-is-loading .mct-btn,
body.mct-is-loading .RadButton,
body.mct-is-loading .rbButton,
body.mct-is-loading .RadTab,
body.mct-is-loading .rtsLink {
    pointer-events: none !important;
    cursor: not-allowed !important;
    opacity: 0.6 !important;
}

/* Exempt the overlay itself so it renders correctly */
body.mct-is-loading #mctLoadingOverlay,
body.mct-is-loading #mctLoadingOverlay * {
    pointer-events: none;
    opacity: 1 !important;
    cursor: default !important;
}
