.spinner {
    position: fixed;
    top: 0; left: 0; z-index: 9999;
    width: 100vw; height: 100vh;
    background: rgba(0, 0, 0, 0.7);
    transition: opacity 0.2s;
}

/* (B) CENTER LOADING SPINNER */
.spinner img {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%);
    max-width: 10%;
}

@media screen and (min-width: 768px) {
    .spinner img {
        /* Custom max-width for desktop */
        max-width: 2.5%;
    }
}

/* (C) SHOW & HIDE */
.spinner {
    visibility: hidden;
    opacity: 0;
}
.spinner.show {
    visibility: visible;
    opacity: 1;
}
/*paging*/
.disabled-cursor-page { 
    pointer-events: none; 
    cursor: default; 
}

.alert-msg {
    position: relative;
    width: 100%;
    top: 0;
    font-size: 13px;
    padding: 10px 15px;
    background: #ffe6e6;
    color: #cc3030;
    text-align: center;
    margin: 10px 0 10px 0;
    border-radius:8px;
}

.spinner-border,.spinner-grow {
    animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name);
    border-radius: 50%;
    display: inline-block;
    height: var(--bs-spinner-height);
    vertical-align: var(--bs-spinner-vertical-align);
    width: var(--bs-spinner-width);
    top: 50%; left: 50%;
    position: absolute;
}

@keyframes spinner-border {
    to {
        transform: rotate(1turn)
    }
}

.spinner-border {
    --bs-spinner-width: 2rem;
    --bs-spinner-height: 2rem;
    --bs-spinner-vertical-align: -0.125em;
    --bs-spinner-border-width: 0.25em;
    --bs-spinner-animation-speed: 0.75s;
    --bs-spinner-animation-name: spinner-border;
    border-right-color: currentcolor;
    border: var(--bs-spinner-border-width) solid;
    border-right: var(--bs-spinner-border-width) solid transparent
}

.text-warning {
    --bs-text-opacity: 1;
    color: rgba(252,185,44,var(--bs-text-opacity))!important
}