unit#toast {
    --height: 35px;
    display: block;
    width: 100%;
    text-align: center;
    pointer-events: none;
    position: fixed;
    top: 50px;
    z-index: 1000;
}
unit#toast.hide {
    top: -500px;
}
unit#toast.toastOpenAnima {
    animation: toastOpenAnima 0.24s forwards ease-in-out;
} @keyframes toastOpenAnima {
    0%{ top: -500px; }
    80%{ top: 55px; }
    100%{ top: 50px; }
}
unit#toast.toastCloseAnima {
    animation: toastCloseAnima 0.24s forwards ease-in-out;
} @keyframes toastCloseAnima {
    0%{ top: 55px; }
    20%{ top: 50px; }
    100%{ top: -500px; }
}
unit#toast div {
    display: inline-block;
    max-width: 95vw;
    padding-right: 12px;
    background: rgb( var( --r5 ) );
    font-size: 14px;
    font-weight: bold;
    border: 1px solid rgb( var(--r3) );
    border-radius: 5px;
}
unit#toast.error div {
    border-color: rgb( var(--r4) );
}
unit#toast div i {
    float: left;
    width: var(--height);
    height: var(--height);
    margin-right: 10px;
    background: rgb( var(--r3) );
    text-align: center;
    line-height: var(--height);
    border-radius: 5px 0px 0px 5px;
}
unit#toast.error div i {
    background: rgb( var( --r4 ) );
}
unit#toast div span {
    display: block;
    padding: 6px 0px;
}
@media ( max-width: 550px ) {
    unit#toast div {
        max-width: calc( 100% - 100px );
        padding: 0px 15px;
        border-width: 1px;
    }
    unit#toast div i {
        display: none;
    }
}
unit#loading {
    width: 100%;
    height: 100vh;
    padding-bottom: 80px;
    background: rgb( 0, 0, 0, 0.2 );
    position: fixed;
    top: 0;
    left: 0;
    z-index: 999;
}
unit#loading.hide {
    display: none;
}
unit#loading.loadingOpenAnima {
    animation: loadingOpenAnima 0.24s forwards ease-in-out;
} @keyframes loadingOpenAnima {
    0%{ background: rgb( 0, 0, 0, 0 ); }
    100%{ background: rgb( 0, 0, 0, 0.2 ); }
}
unit#loading.loadingCloseAnima {
    animation: loadingCloseAnima 0.24s forwards ease-in-out;
} @keyframes loadingCloseAnima {
    0%{ background: rgb( 0, 0, 0, 0.2 ); }
    100%{ background: rgb( 0, 0, 0, 0 ); }
}
unit#loading div div{
    height: 40px;
}
unit#loading div div i.anima {
    display: block;
    width: 6px;
    height: 10px;
    margin: 0px auto;
    background: rgb( 255, 255, 255 );
    overflow: unset;
    position: relative;
    animation: loadingRunAnime infinite 1s ease-in-out -0.2s;
}
unit#loading div div i.anima:before, unit#loading div div i.anima:after {
    content: "";
    width: 6px;
    height: 10px;
    background: rgb( 255, 255, 255 );
    position: absolute;
}
unit#loading div div i.anima:before {
    left: -14px;
    animation: loadingRunAnime infinite 1s ease-in-out -0.4s;
}
unit#loading div div i.anima:after {
    right: -14px;
    animation: loadingRunAnime infinite 1s ease-in-out;
}
@keyframes loadingRunAnime {
    0%, 80%, 100% {
        height: 20px;
        box-shadow: 0 0 rgb( 255, 255, 255 );
    }
    40% {
        height: 30px;
        box-shadow: 0 -20px rgb( 255, 255, 255 );
    }
}
unit#loading div h4 {
    color: rgb( 255, 255, 255 );
}