:root {
    --main-background-color: rgb(71, 96, 79);
    --alt-background-color: rgb(3, 69, 13);
    --tertiary-background-color: rgb(62, 78, 7);
    --main-font-color: rgb(244, 244, 244);
    --main-button-color: rgb(3, 69, 13);
    --focus-button-color: rgb(69, 66, 41);
    --link-color: rgb(255, 255, 255);
    --hover-link-color: rgb(216, 220, 0);
    --focus-link-color: rgb(255, 234, 0);
    --text-select-color: rgb(255, 255, 115);
    --triangle-svg: url("data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolygon points='10 10 90 50 10 90' fill='white' stroke='white' stroke-width='10'/%3E%3C/svg%3E");
    --empty-triangle-svg: url("data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolygon points='10 10 90 50 10 90' fill='none' stroke='white' stroke-width='10'/%3E%3C/svg%3E");
    --scale-factor: 1.5;

    color: var(--main-font-color);
}

@font-face {
    font-family: "Domine";
    src: url("/fonts/Domine/static/Domine-Medium.woff2") format("woff2");
    font-display: optional;
}

@font-face {
    font-family: "Lato";
    src: url("/fonts/Lato/Lato-Regular.woff2") format("woff2");
    font-display: optional;
}

body {
    background-color: var(--main-background-color);
    overflow-y: scroll;
    font-family: "Domine";
}

.close_button {
    float: right;
}

::selection {
    color: black;
    background: var(--text-select-color);
}

input {
    font-size: x-large;
    background-color: var(--main-button-color);
    color: var(--main-font-color);
    outline: 1px solid black;
    border: none;
    border-radius: 4px;
    padding: 5px;
    margin: 5px;
}

input:invalid {
    outline: 1px solid red;
}  

input:autofill {
    font-size: large !important;

    box-shadow: 0 0 0 100px var(--main-button-color) inset;
    -webkit-text-fill-color: var(--main-font-color);
    caret-color: var(--main-font-color) !important;
}

input:autofill:focus {
    box-shadow: 0 0 0 100px var(--focus-button-color) inset;
    -webkit-text-fill-color: var(--main-font-color);
} 

input:autofill:focus::selection {
    -webkit-text-fill-color: black;
    background: var(--text-select-color);
}

input:not([type="submit"]):focus {
    background-color: var(--focus-button-color);
}

label {
    color: var(--main-font-color);
    font-size: x-large;
    user-select: none;
    margin: 5px;
}

button, input[type="submit"] {
    font-family: "Lato";
    background-color: var(--main-button-color);

    border-radius: 4px;
    color: var(--main-font-color);
    outline: none;
    border: none;
    padding: 7px;
    margin: 5px;
    font-size: large;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    user-select: none;

    border-color: black;
    border-style: solid;

    border-top-width: 1px;
    border-bottom-width: 3px;
    border-left-width: 1px;
    border-right-width: 3px;
}

button:hover, button:focus, input[type="submit"]:hover, input[type="submit"]:focus {
    border-top-width: 2px;
    border-bottom-width: 1px;
    border-left-width: 2px;
    border-right-width: 1px;

    padding-right: 7px;
    padding-bottom: 7px;

    margin-right: 6px;
    margin-bottom: 6px;

    background-color: var(--focus-button-color);
}

button:active, input[type="submit"]:active {
    border-top-width: 3px;
    border-bottom-width: 1px;
    border-left-width: 3px;
    border-right-width: 1px;
    
    padding-right: 6px;
    padding-bottom: 6px;

    margin-right: 6px;
    margin-bottom: 6px;

    background-color: var(--focus-button-color);
}

.button_container {
    display: inline-block;
    height: 3em;
    width: 10em;
    position: relative;
}

.button_container button, .button_container input[type="submit"] {
    position: absolute;
    top: 50%;
    transform: translate(0, -50%);
}

p {
    color: var(--main-font-color);
    font-size: x-large;
}

h1, h2 {
    color: var(--main-font-color);
    font-size: xx-large;
    font-weight: 800;
}

a, a svg {
    font-size: x-large;
    text-decoration: underline;
    color: var(--link-color);
}

dialog {
    background-color: var(--main-background-color);
}

::backdrop {
    backdrop-filter: blur(4px);
}  

a:hover, a:hover svg, a:focus, a:focus svg {
    color: var(--hover-link-color);
    text-decoration: none;
    outline: none;
}

a:focus, a:focus svg {
    color: var(--focus-link-color);
}

nav {
    margin: 10px;
    padding: 10px;
    z-index: 1;
    display: flex;
    background-color: var(--alt-background-color);
    flex-direction: row;
    justify-content: space-evenly;
}

nav details ul {
    position: absolute;
    margin-top: 0;
    width: max-content;
    min-width: 100%;
    background-color: var(--alt-background-color);
}

nav details ul li {
    margin: 10px;
}

@media all and (max-width: 700px) {
    nav {
      flex-direction: column;
    }

    nav details ul {
        position: static;
    }    
}

nav a, nav details {
    user-select: none;
}

nav details {
    font-size: x-large;
    display: inline-block;
    position: relative;
}

nav details summary {
    width: 100%;
}

ul {
    list-style-type: none;
    padding-inline-start: 0;
    margin: 0;
}

svg.icon {
    width: 1em;
    height: 1em;
}

.spinner {
    display: inline-block;
    border-width: 3px;
    border-style: solid;
    border-color: transparent;
    border-radius: 50%;
    width: 0.75rem;
    height: 0.75rem;
}

.spinner:not([data-pending-ops="0"]) {
    border-color: var(--main-font-color);
    border-top-color: transparent;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

nav a::before {
    content: "✦ ";
    visibility: hidden;
}

nav a[data-current-page="true"]::before {
    visibility: visible;
}

summary::before {
    margin-right: 1em;
}

summary:focus {
    outline: none;
}

details > summary {
    list-style: none;   
}

details > summary::before {
    content: var(--empty-triangle-svg);
    display: inline-block;
    -webkit-text-fill-color: white;
    width: 0.75em;
}

span.hide {
    visibility: hidden;
}

nav summary {
    color: var(--link-color);
}

details > summary:focus::before, details > summary:hover::before {
    content: var(--triangle-svg);
}

details[open] > summary::before {
    transform: rotate(90deg);
    transition: 0.25s ease;
}

details:not([open]) > summary::before {
    transform: rotate(0deg);
    transition: 0.25s ease;
}

.action_dropdown {
    user-select: none;
}