body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

nav.navbar {
    background: linear-gradient(
        to bottom,
        white 0%,
        white 80%,
        #f0f0f0 100%
    );
    border-bottom: 1px solid #ddd;
}

nav.navbar a.navbar-brand > img {
    height: 52px;
}

header {
    padding: 2rem;
    padding-bottom: 0;
}

main {
    flex: 1;
    padding: 2rem;
}

footer {
    text-align: center;
    font-size: 14px;
    padding: 1rem;
    border-top: 1px solid #aaa;
    background: #f8f9fa;
}

.gd-loading {
    display: flex;
    align-items: center;
}

.gd-loading:not(.gd-loading-vertical) > .spinner {
    flex-flow: row nowrap;
    margin-right: 0.6rem;
}

.gd-loading.gd-loading-vertical > .spinner {
    flex-flow: column nowrap;
    justify-content: center;
    margin-bottom: 0.6rem;
}

.gd-input-group + .gd-input-group {
    margin-top: 1rem;
}

.fa-stack-small {
    width: 1.5em;
}

@media screen and (max-width: 600px) {
    header {
        margin: 1rem;
        margin-bottom: 0;
    }

    article#main {
        margin: 1rem;
    }
}
