#mal-loader-wrapper {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background: var(--mal-bg, rgba(255, 255, 255, 0.9)) !important;
    z-index: var(--mal-zindex, 999) !important;
    display: none; /* We use JS to set to 'flex' */
    align-items: center !important;
    justify-content: center !important;
    pointer-events: all !important;
    opacity: 0;
    -webkit-transition: opacity 0.3s ease-in-out !important;
    transition: opacity 0.3s ease-in-out !important;
    /* Force Hardware Acceleration for Safari */
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-perspective: 1000;
    perspective: 1000;
}

#mal-loader-wrapper.mal-visible {
    display: flex !important;
    opacity: 1 !important;
}

.mal-spinner {
    width: var(--mal-size, 50px) !important;
    height: var(--mal-size, 50px) !important;
    border: 4px solid rgba(0, 0, 0, 0.05) !important;
    border-top: 4px solid var(--mal-color, #007cba) !important;
    border-radius: 50% !important;
    -webkit-animation: mal-spin 0.8s linear infinite !important;
    animation: mal-spin 0.8s linear infinite !important;
    box-sizing: border-box !important;
}

@-webkit-keyframes mal-spin {
    0% { -webkit-transform: rotate(0deg); }
    100% { -webkit-transform: rotate(360deg); }
}

@keyframes mal-spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

body.mal-no-scroll {
    overflow: hidden !important;
}
