button[data-olis-immediate-busy="true"] {
    position: relative;
    pointer-events: none;
    cursor: wait;
}

button[data-olis-immediate-busy="true"] > * {
    visibility: hidden;
}

button[data-olis-immediate-busy="true"]::after {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 1rem;
    height: 1rem;
    margin: -0.5rem;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    content: "";
    animation: olis-immediate-submit-spin 700ms linear infinite;
}

input[data-olis-immediate-busy="true"] {
    cursor: wait;
    opacity: 0.65;
}

@keyframes olis-immediate-submit-spin {
    to {
        transform: rotate(360deg);
    }
}
