/* MamaIste Loading Spinner Color Overrides */

/* Override jQuery Confirm spinner colors */
.jconfirm .jconfirm-box.loading:after {
    border: solid 3px rgba(92, 107, 192, 0.3) !important;
    border-bottom-color: #3F51B5 !important;
    border-left-color: #3F51B5 !important;
}

/* Override Fancybox loading spinner */
.fancybox-loading {
    border: 4px solid rgba(92, 107, 192, 0.3) !important;
    border-bottom-color: #3F51B5 !important;
    border-left-color: #5C6BC0 !important;
}

/* Custom loading animation with gradient effect */
@keyframes mamaiste-spin-gradient {
    0% {
        border-bottom-color: #3F51B5;
        border-left-color: #5C6BC0;
        transform: rotate(0deg);
    }
    50% {
        border-bottom-color: #5C6BC0;
        border-left-color: #3F51B5;
        transform: rotate(180deg);
    }
    100% {
        border-bottom-color: #3F51B5;
        border-left-color: #5C6BC0;
        transform: rotate(360deg);
    }
}

/* Apply gradient animation to main spinners */
.cssload-whirlpool,
.cssload-whirlpool::before,
.cssload-whirlpool::after {
    animation-name: mamaiste-spin-gradient !important;
}

/* Loading dots animation */
.loading-dots {
    display: inline-block;
    position: relative;
    width: 80px;
    height: 20px;
}

.loading-dots div {
    position: absolute;
    top: 8px;
    width: 13px;
    height: 13px;
    border-radius: 50%;
    background: linear-gradient(135deg, #3F51B5 0%, #5C6BC0 100%);
    animation-timing-function: cubic-bezier(0, 1, 1, 0);
}

.loading-dots div:nth-child(1) {
    left: 8px;
    animation: loading-dots1 0.6s infinite;
}

.loading-dots div:nth-child(2) {
    left: 8px;
    animation: loading-dots2 0.6s infinite;
}

.loading-dots div:nth-child(3) {
    left: 32px;
    animation: loading-dots2 0.6s infinite;
}

.loading-dots div:nth-child(4) {
    left: 56px;
    animation: loading-dots3 0.6s infinite;
}

@keyframes loading-dots1 {
    0% {
        transform: scale(0);
    }
    100% {
        transform: scale(1);
    }
}

@keyframes loading-dots3 {
    0% {
        transform: scale(1);
    }
    100% {
        transform: scale(0);
    }
}

@keyframes loading-dots2 {
    0% {
        transform: translate(0, 0);
    }
    100% {
        transform: translate(24px, 0);
    }
}

/* Progress bar loading */
.progress-loading {
    width: 100%;
    height: 4px;
    background: rgba(123, 127, 229, 0.2);
    position: relative;
    overflow: hidden;
}

.progress-loading::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 40%;
    background: linear-gradient(90deg, #3F51B5 0%, #5C6BC0 50%, #3F51B5 100%);
    animation: progress-slide 1.5s ease-in-out infinite;
}

@keyframes progress-slide {
    0% {
        transform: translateX(-100%);
    }
    100% {
        transform: translateX(350%);
    }
}