/* Base layout */
html {
    position: relative;
    min-height: 100%;
}

body {
    background-color: #f8f9fa;
    margin-bottom: 60px;
}

/* Footer — positioned at bottom of page content */
.footer {
    position: absolute;
    bottom: 0;
    width: 100%;
    height: 60px;
    line-height: 60px;
}

/* Card headers — white background, consistent across all pages */
.card-header {
    background-color: #fff;
    border-bottom: 1px solid rgba(0, 0, 0, 0.125);
}

/* Shared form components */
.validation-error-label {
    color: #dc3545;
    display: inline-block;
    margin-top: .5rem;
    margin-bottom: .5rem;
}

.transform-capitalize {
    text-transform: capitalize;
}

/* Loading dots animation */
.dots {
    width: 9.6px;
    height: 9.6px;
    margin: auto;
    background: #a5a5ae;
    color: #a5a5ae;
    border-radius: 50%;
    box-shadow: 16px 0, -16px 0;
    animation: dots-u8fzftsm 1.2s infinite linear alternate;
}

@keyframes dots-u8fzftsm {
    0% {
        box-shadow: 16px 0, -16px 0;
    }
    33% {
        box-shadow: 16px 0, -16px 0 rgba(165, 165, 174, 0.13);
        background: rgba(165, 165, 174, 0.13);
    }
    66% {
        box-shadow: 16px 0 rgba(165, 165, 174, 0.13), -16px 0;
        background: rgba(165, 165, 174, 0.13);
    }
}
