
:root {
    font-size: 16px;
    --body-background-color: #efefef;
}

html {
    margin: 0;
    overflow-y: scroll;
}

body {
    background-color: var(--body-background-color);
    min-height: 100vh;
    min-height: 100dvh;
    max-width: 1920px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    box-shadow: 2px 0px 12px 8px #0009, -2px 0px 12px 8px #0004;
}

body > header {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    gap: 2rem;
    padding: 2rem 1rem;
    color: white;
    background-color: #003594;
    box-shadow:
        0 5px 5px -3px rgba(0, 0, 0, 0.2),
        0 8px 10px 1px rgba(0, 0, 0, 0.1411764706),
        0 3px 14px 2px rgba(0, 0, 0, 0.1215686275);
}

body > header > h1 {
    font-size: clamp(1.4rem, 2.5rem, 4vw);

    > a {
        display: flex;
        flex-direction: column;

        > .subtitle { font-size: 50%; }
    }
}

body > header a:any-link {
    color: yellow;
}

body > header > h1 > a:any-link {
    color: white;
    text-decoration: none;
}

body > header img {
    max-height: 50px;
}

body > main {
    flex: 1 0 auto;
    padding: 2rem 3rem;
}

body > footer {
    padding: 0.2rem 3rem;
}

body > footer > * + * {
    padding-left: 2rem;
}

article > header,
form > header {
    display: grid;
    grid-template-columns: max-content  1fr;
    position: sticky;
    background-color: var(--body-background-color);
    border: 1px solid #cbcbff;
    margin-block: 1.5rem 0.25rem;
    padding: 0.5rem 1rem;
    top: 0;
    left: 0;
    isolation: isolate;
    z-index: 100000;
}

button:disabled {
    cursor: not-allowed;
}

::selection {
    background-color: lightpink;
    color: #232335;
    box-shadow: none;
}
