.toast-container {
    position: fixed;
    top: 20px;
    right: 20px;
    display: flex;
    width: min(350px, 100%);
    flex-direction: column;
    z-index: 10001;
}
.toast-container .mu-toast {
    background: white;
    border-radius: 10px;
    box-shadow: 0 0 20px 0 #00000022;
    overflow: hidden;
    transition: all 0.3s;
    margin-bottom: 15px;
    animation: slide 0.3s linear 1;
}
.toast-container .mu-toast .toast-alert {
    padding: 10px;
    display: flex;
    font-size: 0.84em;
    font-weight: 500;
}
.toast-container .mu-toast .toast-alert p {
    padding: 5px;
    margin: 0;
    flex-grow: 1;
}
.toast-container .mu-toast .toast-alert p i {
    margin-top: 1.6px;
}
.toast-container .mu-toast .toast-close {
    cursor: pointer;
    font-size: 0.8em;
    color: #929292;
}
.toast-container .mu-toast .toast-timer {
    height: 5px;
    position: relative;
}
.toast-container .mu-toast .toast-timer::after {
    content: "";
    position: absolute;
    top: 0;
    height: 100%;
}
.toast-container .mu-toast.default .toast-timer.gradient {
    --col: linear-gradient(
        to right,
        #4cd964,
        #5ac8fa,
        #007aff,
        #34aadc,
        #5856d6,
        #ff2d55
    );
}
.toast-container .mu-toast.default .toast-timer {
    background: var(--col, rgba(var(--clr)));
}
.toast-container .mu-toast.default .toast-timer::after {
    right: 0;
    width: 0%;
    background: #e0e0e0;
    animation: growAnim calc(var(--timeout, 3000) * 1s / 1000) linear forwards;
}
.toast-container .mu-toast.loading p i {
    margin-top: 1px;
    border: 3px solid black;
    border-top-color: transparent;
    animation: rotate 1s linear infinite;
    border-radius: 100px;
    height: 18px;
    width: 18px;
    margin-right: 7px;
}
.toast-container .mu-toast.loading p i::before {
    content: "";
}
.toast-container .mu-toast.loading .toast-timer {
    background: #e0e0e0;
}
.toast-container .mu-toast.loading .toast-timer::after {
    left: 0%;
    right: 100%;
    background: var(--col, rgba(var(--clr)));
    animation: pingPongSmooth 2s linear infinite;
}

.toast-container .mu-toast.closing {
    transform: translateX(110%);
}

@keyframes growAnim {
    0% {
        width: 0%;
    }
    100% {
        width: 100%;
    }
}
@keyframes pingPongSmooth {
    0% {
        left: 0%;
        right: 100%;
    }
    40% {
        left: 10%;
        right: 20%;
    }
    60% {
        left: 30%;
        right: 7%;
    }
    100% {
        left: 100%;
        right: 0%;
    }
}
@keyframes slide {
    0% {
        transform: translateX(100%);
    }
    60% {
        transform: translateX(-30%);
    }
    80% {
        transform: translateX(-10%);
    }
    90% {
        transform: translateX(3%);
    }
    95% {
        transform: translateX(1%);
    }
    100% {
        transform: translateX(0);
    }
}
