:root {
    --divider: #6c757d;
    --linkColour: #1E69CA;
    --linkColourNewPage: #ca1e1e;
    --footerColour: #6c757d;
    --backgroundColour: #eee;
    --mainBackgroundcolour: #fff;
    --foregroundColor: #000;
    --input-background: #fff;
    --input-color: #000;
    --input-border: #5b5b5b;
    --error-color: #650f0f;
    --error-text-color: #ffffff;
    --notice-color: #1e5f0a;
    --notice-text-color: #ffffff;
    --table-row-alt-colour: #dcdcdc;
    --diff-insert-colour: #e6ffed;
    --diff-remove-colour: #ffeef0;
}

@media (prefers-color-scheme: dark) {
    :root {
        --divider: #6c757d;
        --linkColour: #6eb9ff;
        --linkColourNewPage: #ff6e6e;
        --footerColour: #6c757d;
        --backgroundColour: #161616;
        --mainBackgroundcolour: #1c1c1c;
        --foregroundColor: #d6d6d6;
        --input-background: #333333;
        --input-color: #d6d6d6;
        --input-border: #5b5b5b;
        --table-row-alt-colour: #333333;
        --diff-insert-colour: #2ea04388;
        --diff-remove-colour: #da363388;
    }
}

* {
    box-sizing: border-box;
}

html {
    min-height: 100vh;
    margin: 0;
    padding: 0;
}

body {
    margin: 0;
    padding: 1.5em 2.5em 0.5em 2.5em;
    background-color: var(--backgroundColour);
    min-height: 100vh;
    color: var(--foregroundColor);
    font-family: "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;

    display: grid;
    grid-template-columns: 10em 1fr;
    grid-template-rows: auto 1fr auto;
    grid-column-gap: 2.5em;
    grid-template-areas:
        "title header"
        "sidebar main"
        "sidebar footer";
}

header.title {
    grid-area: title;
}

header.title .logo {
    max-width: 100%;
}

body > nav.sidebar {
    grid-area: sidebar;
}

input, textarea, .CodeMirror {
    background-color: var(--input-background);
    color: var(--input-color);
    border: 1px solid var(--input-border);
}

body > header.pageheader {
    grid-area: header;
}

body > header {
    margin: 0 0 0.5em 0;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
}

header h1 {
    margin: 0;
    font-size: 1.5em;
}

aside {
    position: absolute;
    top: 0;
    left: 20vw;
    width: 60vw;
    border-bottom-left-radius: 5px;
    border-bottom-right-radius: 5px;
    text-align: center;
    padding: 5px;
}

aside.error {
    background-color: var(--error-color);
    color: var(--error-text-color);
}

aside.notice {
    background-color: var(--notice-color);
    color: var(--notice-text-color);
}

body > footer {
    grid-area: footer;
    width: 100%;
    margin-bottom: 0;
}

h1 {
    margin: 0.5em 0;
}

footer {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
}

footer .container {
    color: var(--footerColour);
    padding: 1em 0;
}

footer a, footer a:hover, footer a:focus {
    color: var(--footerColour);
}

a, a:hover, a:focus {
    color: var(--linkColour);
}

a.newpage, a.newpage:hover, a.newpage:focus {
    color: var(--linkColourNewPage);
}

main {
    grid-area: main;
    padding: 0.5em 1em;
    background-color: var(--mainBackgroundcolour);
    overflow: hidden;
}

.editor #content, .editor .CodeMirror {
    width: 100%;
    height: 50vh;
}

.editor #message {
    width: 100%;
}

.form-group {
    margin-bottom: 1rem;
}

.form-group label {
    display: inline-block;
    margin-bottom: .5rem;
}

.editor input, .editor textarea {
    margin: 0;
    padding: 0.5em;
}

.editor textarea {
    overflow: auto;
    resize: vertical;
}

.editor input {
    overflow: visible;
}

.editor .btn {
    display: inline-block;
    font-weight: 400;
    text-align: center;
    vertical-align: middle;
    cursor: pointer;
    border: 1px solid black;
    padding: 0.25em 0.5em;
    font-size: 1rem;
    line-height: 1.5;
    border-radius: .25rem;
}

.commitish {
    font-family: monospace;
}

.math {
    visibility: hidden;
}

nav ul {
    list-style-type: none;
    padding: 0;
}

nav ul li {
    margin: 0.3em 0;
}

nav a {
    text-decoration: none;
}

table {
    border-collapse: collapse;
}

th {
    text-align: left;
}

th,td {
    border: 1px solid var(--divider);
    margin: 0;
    padding: 0.3em 0.8em;
}

tr:nth-child(2n) td {
    background-color: var(--table-row-alt-colour);
}

blockquote {
    border-left: 0.5em solid var(--divider);
    border-right: 0.5em solid var(--divider);
    background-color: var(--table-row-alt-colour);
    margin: 0;
    padding: 0.6em 0.8em;
}

blockquote > p:first-child {
    margin-top: 0;
}

blockquote > p:last-child {
    margin-bottom: 0;
}

.diff {
    font-size: large;
}

.diff > * {
    margin: 0;
    padding: 0 0;
}

.diff ins {
    background-color: var(--diff-insert-colour);
    text-decoration: none;
}

.diff del {
    background-color: var(--diff-remove-colour);
    text-decoration: none;
}

.thumbnail img, .thumbnail video {
    max-width: 200px;
    max-height: 200px;
}

iframe.embed {
    width: 100%;
    height: 100vh;
}