/* Three Dots Loader Animation */
.dots-loader {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.dots-loader span {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: #3699FF;
    animation: dot-pulse 1.4s infinite ease-in-out both;
}

.dots-loader span:nth-child(1) {
    animation-delay: -0.32s;
}

.dots-loader span:nth-child(2) {
    animation-delay: -0.16s;
}

.dots-loader span:nth-child(3) {
    animation-delay: 0s;
}

@keyframes dot-pulse {
    0%, 80%, 100% {
        transform: scale(0.6);
        opacity: 0.4;
    }
    40% {
        transform: scale(1);
        opacity: 1;
    }
}

/* Dark variant for white backgrounds */
.dots-loader.dots-loader-dark span {
    background-color: #181C32;
}

/* White variant for dark backgrounds */
.dots-loader.dots-loader-white span {
    background-color: #ffffff;
}

/* Primary variant */
.dots-loader.dots-loader-primary span {
    background-color: #3699FF;
}

/* Success variant */
.dots-loader.dots-loader-success span {
    background-color: #1BC5BD;
}

/* Warning variant */
.dots-loader.dots-loader-warning span {
    background-color: #FFA800;
}

/* Danger variant */
.dots-loader.dots-loader-danger span {
    background-color: #F64E60;
}

/* Larger size */
.dots-loader.dots-loader-lg span {
    width: 12px;
    height: 12px;
}

/* Smaller size */
.dots-loader.dots-loader-sm span {
    width: 6px;
    height: 6px;
}
