body {
    grid-template-areas:
        "logo login-title title"
        "nav content content"
        "footer footer footer";
    grid-template-columns: 1fr auto 1fr;
    grid-template-rows: auto 1fr auto;

    > .header-logo {
        text-align: left;
    }
}

#login-title {
    grid-area: login-title;
    font-size: 2em;
    font-weight: bold;
    white-space: nowrap;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1;
}

main {
    grid-column: nav-start / content-end;
    grid-row: nav;
    margin: auto;
    font-size: 1.5rem;

    form {
        display: grid;
        row-gap: 0.5em;
        justify-content: center;

        > div {
            display: flex;
            column-gap: 0.5em;
            align-items: center;

            > img {
                width: 1.5em;
                height: 1.5em;
                filter: var(--filter-to-main-color);
            }

            input {
                font-size: inherit;
                font-weight: 350;
                background: none;
                border: none;
                outline: none;
                border-bottom: 1px solid #aaa;
                caret-color: var(--main-color);
                transition: border-bottom-color 0.5s;

                &::placeholder {
                    font-weight: 200;
                    color: #999;
                    font-style: italic;
                    font-size: 0.75em;
                }

                &:focus {
                    border-bottom-color: var(--main-color);

                    &::placeholder {
                        color: #666;
                    }
                }

                &:invalid {
                    border-bottom-color: #a00;
                }
            }

            nsg-checkbox {
                font-size: 0.75em;
            }
        }

        > button {
            font-size: inherit;
            font-weight: bold;
            margin: 0 0.5em;
            --button-bg-color: var(--main-color);
        }

        > a {
            justify-self: center;
            font-size: 0.67em;
            font-weight: 300;
            margin-top: -0.5em;
        }
    }
}
