﻿.spinner {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: conic-gradient( #137DB9 0%, #0a9bb1 10%, #12afab 20%, #5fb8a0 30%, #ed7d35 45%, #b58a4b 55%, #7FA54F 70%, #7a8a7f 80%, #8f5da6 90%, #137DB9 100% );
    animation: spin 1.2s linear infinite;
    margin: 0 auto 26px;
    mask: radial-gradient(farthest-side, transparent 65%, #000 66%);
    -webkit-mask: radial-gradient(farthest-side, transparent 65%, #000 66%);
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}


/* Fullscreen backdrop */
#BusyDiv {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.35);
    visibility: hidden;
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 10000;
}

/* Fixed full-screen container */
#BusyDivInner {
    position: fixed;
    inset: 0;
    z-index: 10001;
    pointer-events: none;
}

/* True centering – NO transforms */
.busy-center {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

/* Animate ONLY opacity + scale */
.busybox {
    opacity: 0;
    transform: scale(0.96);
    transition: opacity 0.35s ease, transform 0.35s cubic-bezier(.4,0,.2,1);
}

/* Enter */
#BusyDivInner.busy-enter .busybox {
    opacity: 1;
    transform: scale(1);
}

/* Exit */
#BusyDivInner.busy-exit .busybox {
    opacity: 0;
    transform: scale(0.98);
}


.mt-5, .my-5 {
    margin-top: 3rem !important;
}

.busyLabel {
    /*font-weight: normal;*/
    vertical-align: middle;
    color: #4682B4;
    font-size: 13pt;
    /*text-shadow: 1px 1px 2px black, 0 0 25px black, 0 0 5px darkblue;*/
}

.loader {
    display: flex;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition: opacity 0.25s linear;
    z-index: 10001;
}

.back-fade {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #000;
    opacity: 0;
    transition: opacity 0.25s linear;
    z-index: 10000;
}

.loader .circle {
    position: relative;
    width: 2em;
    height: 2em;
    margin: 0.8em;
    border-radius: 50%;
}

.loader .circleSm {
    width: 1em;
    height: 1em;
}

.loader .circle::before {
    position: absolute;
    content: "";
    width: 100%;
    height: 100%;
    background: inherit;
    border-radius: inherit;
    animation: wave 2s ease-out infinite;
}

.loader .circle:nth-child(1) {
    background: #137DB9;
}

    .loader .circle:nth-child(1)::before {
        animation-delay: 0.2s;
    }

.loader .circle:nth-child(2) {
    background: #7FA54F;
}

    .loader .circle:nth-child(2)::before {
        animation-delay: 0.4s;
    }

.loader .circle:nth-child(3) {
    background: #ed7d35;
}

    .loader .circle:nth-child(3)::before {
        animation-delay: 0.6s;
    }

.loader .circle:nth-child(4) {
    background: #8f5da6;
}

    .loader .circle:nth-child(4)::before {
        animation-delay: 0.8s;
    }

.loader .circle:nth-child(5) {
    background: #19afab;
}

    .loader .circle:nth-child(5)::before {
        animation-delay: 1s;
    }

@keyframes wave {
    50%, 75% {
        transform: scale(2.5);
    }

    80%, 100% {
        opacity: 0;
    }
}
