[x-cloak] {
    display: none !important;
}

.app-toast {
    animation: app-toast-in 0.28s ease-out;
}

.app-toast-progress {
    width: 100%;
    transform-origin: left center;
    animation-name: app-toast-progress;
    animation-timing-function: linear;
    animation-fill-mode: forwards;
}

@keyframes app-toast-in {
    from {
        opacity: 0;
        transform: translateY(-10px) scale(0.98);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes app-toast-progress {
    from { transform: scaleX(1); }
    to { transform: scaleX(0); }
}

.ajax-form-busy {
    pointer-events: none;
    opacity: 0.72;
}

html.er-submitting {
    cursor: wait;
}

html.er-submitting form button[type="submit"],
html.er-submitting form input[type="submit"] {
    pointer-events: none;
    cursor: wait;
}

.er-spin {
    display: inline-block;
    animation: er-spin 0.7s linear infinite;
}

@keyframes er-spin {
    to { transform: rotate(360deg); }
}
