.ball-loader {
    position: absolute;
    left: 50%;
    top: 50%;
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
}
.ball-loader > span {
    background-color: var(--nrui-primary-color);
    display: inline-block;
}
.ball-loader > span:nth-child(1) {
    -webkit-animation-delay: 0s;
    animation-delay: 0s;
}
.ball-loader > span:nth-child(2) {
    -webkit-animation-delay: 0.1s;
    animation-delay: 0.1s;
}
.ball-loader > span:nth-child(3) {
    -webkit-animation-delay: 0.15s;
    animation-delay: 0.15s;
}
.ball-loader > span:nth-child(4) {
    -webkit-animation-delay: 0.2s;
    animation-delay: 0.2s;
}

.ball-loader > span {
    width: 20px;
    height: 20px;
    margin: 0 3px;
    border-radius: 50%;
    -webkit-transform: scale(0);
    -ms-transform: scale(0);
    transform: scale(0);
    -webkit-animation: 1s ball-load ease-in-out infinite;
    animation: ball-load 1s ease-in-out infinite;
}

@-webkit-keyframes ball-load {
    0% {
        -webkit-transform: scale(0);
    }
    50% {
        -webkit-transform: scale(1);
    }
    100% {
        -webkit-transform: scale(0);
    }
}

.page-loading {
    position: fixed;
    display: block;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 19891017;
    background-color: #fff;
}
