﻿.loading-overlay .card {
    transform: translate(-50%, -50%);
    left: 50%;
    top: 50%;
    width:450px;
    height:250px;
}

.sk-circle {
    width: 30px;
    height: 100px;
    position: absolute;
    top: 50%;
    left: 44%;
    z-index: 9999;
}

    .sk-circle .sk-child {
        width: 100%;
        height: 100%;
        position: absolute;
        left: 0;
        top: 0;
    }

        .sk-circle .sk-child:before {
            content: '';
            display: block;
            margin: 0 auto;
            width: 15%;
            height: 20%;
            background-color: red;
            border-radius: 100%;
            -webkit-animation: sk-circleBounceDelay 1.2s infinite ease-in-out both;
            animation: sk-circleBounceDelay 1.2s infinite ease-in-out both;
        }

    .sk-circle .sk-circle2 {
        -webkit-transform: rotate(30deg);
        -ms-transform: rotate(30deg);
        transform: rotate(30deg);
    }

    .sk-circle .sk-circle3 {
        -webkit-transform: rotate(60deg);
        -ms-transform: rotate(60deg);
        transform: rotate(60deg);
    }

    .sk-circle .sk-circle4 {
        -webkit-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
        transform: rotate(90deg);
    }

    .sk-circle .sk-circle5 {
        -webkit-transform: rotate(120deg);
        -ms-transform: rotate(120deg);
        transform: rotate(120deg);
    }

    .sk-circle .sk-circle6 {
        -webkit-transform: rotate(150deg);
        -ms-transform: rotate(150deg);
        transform: rotate(150deg);
    }

    .sk-circle .sk-circle7 {
        -webkit-transform: rotate(180deg);
        -ms-transform: rotate(180deg);
        transform: rotate(180deg);
    }

    .sk-circle .sk-circle8 {
        -webkit-transform: rotate(210deg);
        -ms-transform: rotate(210deg);
        transform: rotate(210deg);
    }

    .sk-circle .sk-circle9 {
        -webkit-transform: rotate(240deg);
        -ms-transform: rotate(240deg);
        transform: rotate(240deg);
    }

    .sk-circle .sk-circle10 {
        -webkit-transform: rotate(270deg);
        -ms-transform: rotate(270deg);
        transform: rotate(270deg);
    }

    .sk-circle .sk-circle11 {
        -webkit-transform: rotate(300deg);
        -ms-transform: rotate(300deg);
        transform: rotate(300deg);
    }

    .sk-circle .sk-circle12 {
        -webkit-transform: rotate(330deg);
        -ms-transform: rotate(330deg);
        transform: rotate(330deg);
    }

    .sk-circle .sk-circle2:before {
        -webkit-animation-delay: -1.1s;
        animation-delay: -1.1s;
    }

    .sk-circle .sk-circle3:before {
        -webkit-animation-delay: -1s;
        animation-delay: -1s;
    }

    .sk-circle .sk-circle4:before {
        -webkit-animation-delay: -0.9s;
        animation-delay: -0.9s;
    }

    .sk-circle .sk-circle5:before {
        -webkit-animation-delay: -0.8s;
        animation-delay: -0.8s;
    }

    .sk-circle .sk-circle6:before {
        -webkit-animation-delay: -0.7s;
        animation-delay: -0.7s;
    }

    .sk-circle .sk-circle7:before {
        -webkit-animation-delay: -0.6s;
        animation-delay: -0.6s;
    }

    .sk-circle .sk-circle8:before {
        -webkit-animation-delay: -0.5s;
        animation-delay: -0.5s;
    }

    .sk-circle .sk-circle9:before {
        -webkit-animation-delay: -0.4s;
        animation-delay: -0.4s;
    }

    .sk-circle .sk-circle10:before {
        -webkit-animation-delay: -0.3s;
        animation-delay: -0.3s;
    }

    .sk-circle .sk-circle11:before {
        -webkit-animation-delay: -0.2s;
        animation-delay: -0.2s;
    }

    .sk-circle .sk-circle12:before {
        -webkit-animation-delay: -0.1s;
        animation-delay: -0.1s;
    }

@-webkit-keyframes sk-circleBounceDelay {
    0%, 80%, 100% {
        -webkit-transform: scale(0);
        transform: scale(0);
    }

    40% {
        -webkit-transform: scale(1);
        transform: scale(1);
    }
}

@keyframes sk-circleBounceDelay {
    0%, 80%, 100% {
        -webkit-transform: scale(0);
        transform: scale(0);
    }

    40% {
        -webkit-transform: scale(1);
        transform: scale(1);
    }
}
/*////////////////////////////////////*/
.loading-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transition: background-color .2s ease-out;
    background: rgb(0 0 0 / 38%);
    z-index:9999;
}

.loading-anim {
    position: relative;
    width: 100px;
    height: 100px;
    perspective: 800px;
    transform-style: preserve-3d;
    transition: all .2s ease-out;
    transform: translate(-50%, -50%);
    top: 40%;
    left: 46%;
    opacity: 1;
}
.loading-overlay .card-footer {
    background-color: rgb(0 0 0 / 12%);
}

.loadingText {
    position: absolute;
    top: 23%;
    left: 23%;
    text-align: center;
    background: #fff;
    border-radius: 50%;
    width: 85%;
    height: 85%;
    padding: 13px 0px;
}

    .loadingText .textCms {
        font-weight: 700;
        text-shadow: 1px 0px 0 #ffffff, 2px 0px 0 #ff0000;
        color: red;
        font-size:1.5rem
    }

.loading-anim .circle {
    width: 130%;
    height: 130%;
    animation: spin 10s linear infinite;
}

.loading-anim .border {
    position: absolute;
    border-radius: 50%;
    border: 1px solid #ff2222d9 !important;
}

.loading-anim .out {
    top: 15%;
    left: 15%;
    width: 100%;
    height: 100%;
    border-left-color: transparent;
    border-right-color: transparent;
    animation: spin 2s linear reverse infinite;
}

.loading-anim .in {
    top: 20%;
    left: 20%;
    width: 90%;
    height: 90%;
    border-top-color: transparent;
    border-bottom-color: transparent;
    animation: spin 2s linear infinite;
}

.loading-anim .mid {
    top: 40%;
    left: 40%;
    width: 20%;
    height: 20%;
    border-left-color: transparent;
    border-right-color: transparent;
    animation: spin 1s linear infinite;
}
.dot {
    position: absolute;
    display: block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: red;
    animation: jitter 5s ease-in-out infinite, fade-in-out 5s linear infinite;
}

    .dot:nth-child(1) {
        top: 54px;
        left: 120px;
        animation-delay: 0s;
    }

    .dot:nth-child(2) {
        top: 82px;
        left: 116px;
        animation-delay: 0.41667s;
    }

    .dot:nth-child(3) {
        top: 106px;
        left: 99px;
        animation-delay: 0.83333s;
    }

    .dot:nth-child(4) {
        top: 117px;
        left: 72px;
        animation-delay: 1.25s;
    }

    .dot:nth-child(5) {
        top: 114px;
        left: 40px;
        animation-delay: 1.66667s;
    }

    .dot:nth-child(6) {
        top: 98px;
        left: 15px;
        animation-delay: 2.08333s;
    }

    .dot:nth-child(7) {
        top: 73px;
        left: 1px;
        animation-delay: 2.5s;
    }

    .dot:nth-child(8) {
        top: 44px;
        left: 2px;
        animation-delay: 2.91667s;
    }

    .dot:nth-child(9) {
        top: 17px;
        left: 18px;
        animation-delay: 3.33333s;
    }

    .dot:nth-child(10) {
        top: 4px;
        left: 48px;
        animation-delay: 3.75s;
    }

    .dot:nth-child(11) {
        top: 6px;
        left: 85px;
        animation-delay: 4.16667s;
    }

    .dot:nth-child(12) {
        top: 25px;
        left: 110px;
        animation-delay: 4.58333s;
    }

@keyframes spin {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

@keyframes jitter {
    0% {
        transform: scale(1, 1);
    }

    25% {
        transform: scale(0.7, 0.7);
    }

    50% {
        transform: scale(1, 1);
    }

    75% {
        transform: scale(1.3, 1.3);
    }

    100% {
        transform: scale(1, 1);
    }
}

@keyframes fade-in-out {
    0% {
        opacity: 0.8;
    }

    25% {
        opacity: 0.2;
    }

    75% {
        opacity: 1;
    }

    100% {
        opacity: 0.8;
    }
}
.loader--text {
    font-size:13px;
}
.loader--text:after {
    content: "Đang xử lý...";
    color: #ffffff;
    animation-name: loading-text;
    animation-duration: 3s;
    animation-iteration-count: infinite;
}


@keyframes loading-text {
    0% {
        /*font-weight:bolder;*/
        /*color:#004f6d;*/
    }

    25% {
        /*font-weight: normal;*/
        /*color: #ff6003*/
    }

    50% {
        /*font-weight: bolder;*/
        /*color: #ffffff;*/
    }

    75% {
        /*font-weight: bolder;*/
        color: #22ff00
    }
}
.loader {
    --w: 10ch;
    font-family: monospace;
    font-size: 13px;
    letter-spacing: var(--w);
    width: var(--w);
    overflow: hidden;
    white-space: nowrap;
    text-shadow: calc(-1*var(--w)) 0, calc(-2*var(--w)) 0, calc(-3*var(--w)) 0, calc(-4*var(--w)) 0, calc(-5*var(--w)) 0, calc(-6*var(--w)) 0, calc(-7*var(--w)) 0, calc(-8*var(--w)) 0, calc(-9*var(--w)) 0;
    animation: l16 2s infinite;
    margin-left:7px;
}
@keyframes l16 {
    20% {
        text-shadow: calc(-1*var(--w)) 0, calc(-2*var(--w)) 0 red, calc(-3*var(--w)) 0, calc(-4*var(--w)) 0 #ffa516, calc(-5*var(--w)) 0 #63fff4, calc(-6*var(--w)) 0, calc(-7*var(--w)) 0, calc(-8*var(--w)) 0 green, calc(-9*var(--w)) 0;
    }

    40% {
        text-shadow: calc(-1*var(--w)) 0, calc(-2*var(--w)) 0 red, calc(-3*var(--w)) 0 #e945e9, calc(-4*var(--w)) 0, calc(-5*var(--w)) 0 green, calc(-6*var(--w)) 0 orange, calc(-7*var(--w)) 0, calc(-8*var(--w)) 0 green, calc(-9*var(--w)) 0;
    }

    60% {
        text-shadow: calc(-1*var(--w)) 0 lightblue, calc(-2*var(--w)) 0, calc(-3*var(--w)) 0 #e945e9, calc(-4*var(--w)) 0, calc(-5*var(--w)) 0 green, calc(-6*var(--w)) 0, calc(-7*var(--w)) 0 yellow, calc(-8*var(--w)) 0 #ffa516, calc(-9*var(--w)) 0 red;
    }

    80% {
        text-shadow: calc(-1*var(--w)) 0 lightblue, calc(-2*var(--w)) 0 yellow, calc(-3*var(--w)) 0 #63fff4, calc(-4*var(--w)) 0 #ffa516, calc(-5*var(--w)) 0 red, calc(-6*var(--w)) 0, calc(-7*var(--w)) 0 grey, calc(-8*var(--w)) 0 #63fff4, calc(-9*var(--w)) 0;
    }
}

.loader-circle-9 {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100px;
    height: 100px;
    background: #3d383885;
    border: 3px solid #d9d9d9;
    border-radius: 50%;
    text-align: center;
    line-height: 100px;
    font-size: 12px;
    color: #00eaff;
    text-shadow: 1px 0px #000d0e;
    box-shadow: 0 0 20px #121212de;
    display: flex;
    justify-content: center;
    align-items: center;
}

    .loader-circle-9:before {
        content: '';
        position: absolute;
        top: -3px;
        left: -3px;
        width: 100px;
        height: 100px;
        border: 3px solid transparent;
        border-top: 3px solid #ff0000;
        border-right: 3px solid #ff0000;
        border-radius: 50%;
        animation: animateC 2s linear infinite;
    }

.loader-circle-9 span {
    display: block;
    position: absolute;
    top: calc(50% - 2px);
    left: 50%;
    width: 50%;
    height: 4px;
    background: transparent;
    transform-origin: left;
    animation: animate 2s linear infinite;
}

    .loader-circle-9 span:before {
        content: '';
        position: absolute;
        width: 16px;
        height: 16px;
        border-radius: 50%;
        background: #ff0000;
        top: -6px;
        right: -8px;
        box-shadow: 0 0 20px #ffffff;
    }

@keyframes animateC {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

@keyframes animate {
    0% {
        transform: rotate(45deg);
    }

    100% {
        transform: rotate(405deg);
    }
}
.dots::after {
    content: '';
    display: inline-block;
    width: 1em;
    text-align: left;
    animation: dots 1.5s steps(4, end) infinite;
}

@keyframes dots {
    0%, 20% {
        content: '';
    }

    40% {
        content: '.';
    }

    60% {
        content: '..';
    }

    80%, 100% {
        content: '...';
    }
}