.debug_box { background-color:blue;color:white;padding:2px;z-index:1000000;position:absolute; }
.debug_box span { display:inline-block;margin:1px;padding:1px;padding-right:2px;margin-right:2px;font-size:12px;border-right:solid 1px #cccccc99; }


#loading-spinner {
    z-index:99999;opacity:1;
    position:fixed;min-width:100%;min-height: 100%;left:0;top:2px;
    background-color:rgb(201, 201, 201);
}
#loading-spinner.app {
    background-color:rgb(142, 181, 231);
    transition: background-color 1200ms linear;
}
#loading-spinner.error {
    background-color:rgb(231, 190, 142);
    transition: background-color 1000ms linear;
}
#loading-spinner.done {
    opacity:0;
    transition: opacity 2000ms linear;
}


.lds-roller-wrapper {
    display: inline-block;
    width: 80px; height: 80px;
    transform-origin: center;
}
.lds-roller {
    display: inline-block;
    width: 80px; height: 80px;
    transform: rotate(-90deg);
}
.lds-roller div {
    animation: lds-rolling 1.5s cubic-bezier( 0, 0.5, 1, 0.5)  infinite;
    translate: 0 40px;
    animation-delay: calc( var(--index, 1) * 40ms * ( var(--index, 1) / 3) );
}

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

.lds-roller div::after {
    content: " "; display: block; position: absolute;
    width: 8px; height: 8px; 
    border-radius: 70%;
    background: rgb(201, 201, 201);
}

.lds-roller-wrapper.lds-white .lds-roller div:after { background: #fff; }
.lds-roller-wrapper.lds-gray .lds-roller div:after { background: rgb(201, 201, 201); }
.lds-roller-wrapper.lds-black .lds-roller div:after { background: #000; }
.lds-roller-wrapper.lds-primary .lds-roller div:after { background: rgb(142, 181, 231); }
.lds-roller-wrapper.lds-accent .lds-roller div:after { background: rgb(231, 190, 142); }

/* .lds-roller div:nth-child(1) { animation-delay: -0.036s; } .zlds-roller div:nth-child(1):after { top: 63px; left: 63px; }
.lds-roller div:nth-child(2) { animation-delay: -0.072s; } .zlds-roller div:nth-child(2):after { top: 68px; left: 56px; }
.lds-roller div:nth-child(3) { animation-delay: -0.108s; } .zlds-roller div:nth-child(3):after { top: 71px; left: 48px; }
.lds-roller div:nth-child(4) { animation-delay: -0.144s; } .zlds-roller div:nth-child(4):after { top: 72px; left: 40px; }
.lds-roller div:nth-child(5) { animation-delay: -0.18s; } .zlds-roller div:nth-child(5):after { top: 71px; left: 32px; }
.lds-roller div:nth-child(6) { animation-delay: -0.216s; } .zlds-roller div:nth-child(6):after { top: 68px; left: 24px; }
.lds-roller div:nth-child(7) { animation-delay: -0.252s; } .zlds-roller div:nth-child(7):after { top: 63px; left: 17px; }
.lds-roller div:nth-child(8) { animation-delay: -0.288s; } .zlds-roller div:nth-child(8):after { top: 56px; left: 12px; }

.lds-roller div:nth-child(1) { animation-delay: -10ms; }
.lds-roller div:nth-child(2) { animation-delay: -200ms; }
.lds-roller div:nth-child(3) { animation-delay: -380ms; }
.lds-roller div:nth-child(4) { animation-delay: -520ms; }
.lds-roller div:nth-child(5) { animation-delay: -670ms; }
.lds-roller div:nth-child(6) { animation-delay: -800ms; }
.lds-roller div:nth-child(7) { animation-delay: -920ms; }
.lds-roller div:nth-child(8) { animation-delay: -1000ms; } */

.lds-roller-wrapper.lds-small { scale:0.2; }
.lds-roller-wrapper.lds-medium { scale:0.4; }
.lds-roller-wrapper.lds-large { scale:0.8; }
.lds-roller-wrapper.lds-huge { scale:1.5; }
.lds-roller-wrapper.lds-massive { scale:2; }

.lds-roller-wrapper.lds-center {
    position: fixed; top: 50%; left: 50%;
    scale:2;
    transform: translate(-50%, -50%);
    z-index:999999;
}