.container-loader {
    display: flex;
    width: 100%;
    height: 400px;
    align-items: center;
    justify-content: center;
}

.container-absolute-loader {
    position: absolute;
    top: 50%;
    right: 50%;
    background: white;
    border-radius: 50%;
}

.loader {
    width: 48px;
    height: 48px;
    border: 3px dotted #009353;
    border-style: solid solid dotted dotted;
    border-radius: 50%;
    display: inline-block;
    position: relative;
    box-sizing: border-box;
    animation: rotation 2s linear infinite;
}

.loader::after {
    content: '';
    box-sizing: border-box;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    border: 3px dotted #000;
    border-style: solid solid dotted;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    animation: rotationBack 1s linear infinite;
    transform-origin: center center;
}

@keyframes rotation {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

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

/**
 * *************************************************
 * Button Loader
 * *************************************************
 */
.btn__loader {
    color: white !important;
    width: 109px;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: not-allowed;
    padding: 12px 28px !important;
}

/**
 * *************************************************
 * Dot Typing
 * *************************************************
 */
.dot-typing {
    position: relative;
    left: -9999px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background-color: white;
    color: white;
    box-shadow: 9984px 0 0 0 white, 9999px 0 0 0 white, 10014px 0 0 0 white;
    animation: dot-typing 1.5s infinite linear;
}

@keyframes dot-typing {
    0% {
        box-shadow: 9984px 0 0 0 white, 9999px 0 0 0 white, 10014px 0 0 0 white;
    }
    16.667% {
        box-shadow: 9984px -10px 0 0 white, 9999px 0 0 0 white, 10014px 0 0 0 white;
    }
    33.333% {
        box-shadow: 9984px 0 0 0 white, 9999px 0 0 0 white, 10014px 0 0 0 white;
    }
    50% {
        box-shadow: 9984px 0 0 0 white, 9999px -10px 0 0 white, 10014px 0 0 0 white;
    }
    66.667% {
        box-shadow: 9984px 0 0 0 white, 9999px 0 0 0 white, 10014px 0 0 0 white;
    }
    83.333% {
        box-shadow: 9984px 0 0 0 white, 9999px 0 0 0 white, 10014px -10px 0 0 white;
    }
    100% {
        box-shadow: 9984px 0 0 0 white, 9999px 0 0 0 white, 10014px 0 0 0 white;
    }
}
