#word-length {
    flex-wrap: wrap;
}

/* Fixed width word length radio buttons */
#word-length .btn-group-vertical > .btn, .btn-group > .btn {
    flex:  none;
    width: 42px;
}

/* Fixed width word pattern input elements */
#word-pattern .input-group > .form-control, .input-group > .form-select {
    flex:           none;
    width:          42px;
    text-transform: uppercase;
}

#word-pattern input {
    caret-color: transparent;
}

@keyframes spinner {
    to {transform: rotate(360deg);}
}

.spinner:before {
    content:           '';
    box-sizing:        border-box;
    position:          absolute;
    width:             20px;
    height:            20px;
    border-radius:     50%;
    border:            2px solid #ccc;
    border-top-color:  #000;
    -webkit-animation: spinner .6s linear infinite;
    -moz-animation:    spinner .6s linear infinite;
    -o-animation:      spinner .6s linear infinite;
    animation:         spinner .6s linear infinite;
}

.spinner {
    display: inline-block;
    width:   20px;
    height:  20px;
}
