html {
    position: relative;
}
body {
    position: relative;
    width: 100vw;
    height: 100vh;
}

button[disabled],
button[disabled]:hover {
    display: inline-block;
    background: #999999;
    color: #cccccc;
    cursor: not-allowed;
    vertical-align: middle;
}

.submit-button {
    width: 6rem;
}

.loading-icon {
    display: inline-block;
    height: 1.5rem;
    width: auto;
    vertical-align: middle;
}

.loading-spinner {
    display: inline-block;
    vertical-align: middle;
    width: 1.2rem;
    height: 1.2rem;
    border-radius: 50%;
    border: 0.15rem solid #fefefe;
    animation: loading-spinner-animation-1 0.8s infinite linear alternate, loading-spinner-animation-2 1.6s infinite linear;
    margin: 0.25rem;
}
@keyframes loading-spinner-animation-1 {
    0% {
        clip-path: polygon(50% 50%, 0 0, 50% 0%, 50% 0%, 50% 0%, 50% 0%, 50% 0%);
    }
    12.5% {
        clip-path: polygon(50% 50%, 0 0, 50% 0%, 100% 0%, 100% 0%, 100% 0%, 100% 0%);
    }
    25% {
        clip-path: polygon(50% 50%, 0 0, 50% 0%, 100% 0%, 100% 100%, 100% 100%, 100% 100%);
    }
    50% {
        clip-path: polygon(50% 50%, 0 0, 50% 0%, 100% 0%, 100% 100%, 50% 100%, 0% 100%);
    }
    62.5% {
        clip-path: polygon(50% 50%, 100% 0, 100% 0%, 100% 0%, 100% 100%, 50% 100%, 0% 100%);
    }
    75% {
        clip-path: polygon(50% 50%, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 50% 100%, 0% 100%);
    }
    100% {
        clip-path: polygon(50% 50%, 50% 100%, 50% 100%, 50% 100%, 50% 100%, 50% 100%, 0% 100%);
    }
}
@keyframes loading-spinner-animation-2 {
    0% {
        transform: scaleY(1) rotate(0deg);
    }
    49.99% {
        transform: scaleY(1) rotate(135deg);
    }
    50% {
        transform: scaleY(-1) rotate(0deg);
    }
    100% {
        transform: scaleY(-1) rotate(-135deg);
    }
}
