body {
    background: #d3d3d3;
    display: grid;
    grid-template: max-content 1fr / 1fr;
    margin: 0;
    overflow-y: scroll;
}

body > header {
    background: linear-gradient(#e78aaa,#b64b6d);
    box-shadow: 0px 0px 0.5em #888888;
    border-bottom: 1px solid black;
    padding: 1em;
}
body > header > h1 {
    margin: 0;
}

body > main {
    background-color: white;
    box-shadow: 0px 0px 0.5em #888888;
    border: 1px solid black;
    max-width: 40em;
    min-width: 0;
    width: min(100%, 40em);
    box-sizing: border-box;
    margin-left: auto;
    margin-right: auto;
    margin-top: 1em;
    padding: 1em;
}

h1 > a {
    color: black;
}
a {
    text-decoration: none;
}
a:hover {
    text-decoration: underline;
}

button {
    background: linear-gradient(#e78aaa,#b64b6d);
    border: 1px solid black;
    cursor: pointer;
}
button:hover {
    color: white;
}
button:active {
    background: linear-gradient(#b64b6d,#e78aaa);
}

div.warning {
    margin: 1em;
    padding: 1em;
    border: 1px solid black;
    box-shadow: inset 0px 0px 1em #ffff00;
}
div.error {
    margin: 1em;
    padding: 1em;
    border: 1px solid black;
    box-shadow: inset 0px 0px 1em #ff0000;
}

ul.toc {
    border: 1px solid #888888;
    padding: 1em;
    box-shadow: 0 0 5px;
}
ul.toc > li {
    list-style: none;
}

:target {
    text-decoration: underline;
}

p.score {
    font-size: 2rem;
    text-align: center;
    margin-top: 1rem;
    margin-bottom: 1rem;
}

div.form-group {
    display: flex;
}
div.form-group > input {
    flex-grow: 1;
}