/*
// *****************************************************************************
// nico:rewede (https://nicolasim.com/template/)
// -----------------------------------------------------------------------------
// A responsive web design by Nicolás Ibáñez Moreno
// Licensed under CC BY-SA 4.0
//
// (https://creativecommons.org/licenses/by-sa/4.0/?ref=chooser-v1)
// *****************************************************************************
*/

/*
// HTML elements styles
// -----------------------------------------------------------------------------
*/
:root {
    --accent-color: #c63;
    --accent-color-fg: #eee;
    --bold-color: #930;
    --a-color: #930;
    --a-color-hover: #c63;
    --printer-accent-color: #fb7;
}

html {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    background-color: #222;
    scrollbar-color: #555 #111;
}

*,
*:before,
*:after {
    -webkit-box-sizing: inherit;
    -moz-box-sizing: inherit;
    box-sizing: inherit;
}

::selection {
    background-color: var(--accent-color);
    color: var(--accent-color-fg);
}

*:focus {
    outline: 2px solid var(--accent-color);
    outline-offset: 2px;
}

body {
    background-color: #222;
    color: #ddd;
    font-family: "Roboto", Arial, sans-serif;
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    margin: 0px;
    max-width: 1560px;
    min-width: 320px;
}

a {
    color: var(--a-color);
    cursor: pointer;
    font-weight: bold;
}

a:hover {
    color: var(--a-color-hover);
}

p,
ul,
ol,
li {
    font-size: 14px;
    line-height: 24px;
    margin: 10px 0px;
    text-align: justify;
}

li::marker {
    color: var(--accent-color);
    font-weight: bold;
}

b,
strong {
    color: var(--bold-color);
    font-weight: bold;
}

i,
em {
    color: var(--bold-color);
    font-style: italic;
}

h1 {
    background-color: var(--accent-color);
    border: 1px solid var(--accent-color);
    color: var(--accent-color-fg);
    font-family: "Fjalla One", "Roboto", Arial, sans-serif;
    font-size: 18px;
    font-style: normal;
    font-weight: 400;
    line-height: 24px;
    margin: 10px 0px;
    overflow-wrap: break-word;
    padding: 12px 9px 11px 9px;
    scroll-margin: 10px;
    text-align: left;
}

h1::selection {
    background-color: #eee;
    color: var(--bold-color);
}

h2 {
    background-color: #eee;
    border-bottom: 3px solid #ccc;
    border-top: 3px solid #ccc;
    font-family: "Fjalla One", "Roboto", Arial, sans-serif;
    font-size: 17px;
    font-style: normal;
    font-weight: 400;
    line-height: 24px;
    margin: 10px 0px;
    overflow-wrap: break-word;
    padding: 8px 10px 5px 11px;
    scroll-margin: 10px;
    text-align: left;
}

h3 {
    border-bottom: 3px solid #ccc;
    font-family: "Fjalla One", "Roboto", Arial, sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 22px;
    margin: 10px 0px;
    overflow-wrap: break-word;
    padding: 7px 10px 3px 10px;
    scroll-margin: 10px;
}

h4 {
    border-bottom: 1px solid #ccc;
    font-size: 14px;
    font-weight: 400;
    font-style: italic;
    line-height: 20px;
    margin: 10px 0px;
    overflow-wrap: break-word;
    padding: 7px 10px 5px 10px;
    scroll-margin: 10px;
}

table {
    border-collapse: collapse;
    width: 100%;
}

caption {
    background-color: #444;
    border: 1px solid #444;
    border-bottom: 0px;
    color: #eee;
    font-weight: 500;
    line-height: 24px;
    padding: 6px 10px;
    text-align: center;
}

tr:nth-child(odd) {
    background-color: #eee;
}

th {
    background-color: #ddd;
    border: 1px solid #ccc;
    font-weight: 500;
    line-height: 24px;
    padding: 6px 10px;
    text-align: left;
    vertical-align: top;
}

td {
    border: 1px solid #ccc;
    line-height: 24px;
    padding: 6px 10px;
    text-align: left;
    vertical-align: top;
}

td:first-child {
    font-weight: 500;
}

img,
video,
iframe {
    display: block;
    page-break-inside: avoid;
}

form {
    margin: 10px 0px;
}

label {
    display: inline-block;
}

label.disabled {
    color: #888;
}

input,
select,
textarea {
    background-color: #fff;
    border: 1px solid #aaa;
    border-radius: 6px;
    color: #333;
    font-family: "Roboto", Arial, sans-serif;
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    margin: 2px 0px 10px 0px;
    resize: none;
    width: 280px;
}

input {
    height: 32px;
    padding: 0px 7px;
}

select {
    height: 32px;
    padding: 0px 7px;
}

textarea {
    height: 120px;
    padding: 7px;
}

input:hover,
select:hover,
textarea:hover {
    border: 1px solid var(--accent-color);
}

input:disabled,
select:disabled,
textarea:disabled {
    background-color: #eee;
    cursor: not-allowed;
}

input.small,
select.small {
    width: 70px;
}

input.medium,
select.medium {
    width: 140px;
}

input.expanded,
select.expanded,
textarea.expanded {
    width: 100%;
}

input[type="checkbox"],
input[type="radio"] {
    accent-color: var(--accent-color);
    height: auto;
    width: 20px;
}

input[type="file"] {
    height: 46px;
    padding: 10px;
}

pre,
code {
    font-family: "Roboto Mono", monospace;
    font-optical-sizing: auto;
    font-style: normal;
    font-weight: 400;
    tab-size: 4;
}

pre {
    line-height: 20px;
}

code {
    background-color: #eee;
}

/*
// Button styles
// -----------------------------------------------------------------------------
*/
button,
.button,
input[type="button"],
input[type="submit"],
input[type="reset"] {
    background-color: #111;
    border: 1px solid #111;
    border-radius: 5px;
    color: #ddd;
    cursor: pointer;
    display: inline-block;
    font-family: "Roboto", Arial, sans-serif;
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    height: 43px;
    line-height: 15px;
    margin: 10px 5px;
    padding: 13px;
    text-align: center;
    width: auto;
    -moz-user-select: none;
    -webkit-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

button:hover,
.button:hover,
input[type="button"]:hover,
input[type="submit"]:hover,
input[type="reset"]:hover {
    background-color: var(--accent-color);
    border: 1px solid var(--accent-color);
    color: var(--accent-color-fg);
}

button.selected,
.button.selected,
input[type="button"].selected,
input[type="submit"].selected,
input[type="reset"].selected {
    background-color: var(--accent-color);
    border: 1px solid var(--accent-color);
    color: var(--accent-color-fg);
    cursor: default;
}

button:disabled,
.button.disabled,
input[type="button"]:disabled,
input[type="submit"]:disabled,
input[type="reset"]:disabled {
    background-color: #888;
    border: 1px solid #888;
}

button:disabled:hover,
.button.disabled:hover,
input[type="button"]:disabled:hover,
input[type="submit"]:disabled:hover,
input[type="reset"]:disabled:hover {
    background-color: #888;
    border: 1px solid #888;
    cursor: not-allowed;
}

button.small,
.button.small,
input[type="button"].small,
input[type="submit"].small,
input[type="reset"].small {
    width: 70px;
}

button.medium,
.button.medium,
input[type="button"].medium,
input[type="submit"].medium,
input[type="reset"].medium {
    width: 140px;
}

button.large,
.button.large,
input[type="button"].large,
input[type="submit"].large,
input[type="reset"].large {
    width: 270px;
}

button.expanded,
.button.expanded,
input[type="button"].expanded,
input[type="submit"].expanded,
input[type="reset"].expanded {
    width: calc(100% - 10px);
}

a.button {
    text-decoration: none;
}

a.button:hover {
    color: var(--accent-color-fg);
}

/*
// Generic styles
// -----------------------------------------------------------------------------
*/
.float-left {
    float: left;
}

.float-right {
    float: right;
}

.clear {
    clear: both;
}

.left-text {
    text-align: left;
}

.center-text {
    text-align: center;
}

.right-text {
    text-align: right;
}

.top-text {
    vertical-align: top;
}

.middle-text {
    vertical-align: middle;
}

.bottom-text {
    vertical-align: bottom;
}

.overflow-auto {
    margin: 10px 0px;
    overflow: auto;
}

.clickable {
    cursor: pointer;
}

/*
// Page menu styles
// -----------------------------------------------------------------------------
*/
#menubar {
    background-color: #222;
    color: #ddd;
    cursor: default;
    display: none;
    height: 68px;
    left: 0px;
    position: fixed;
    top: 0px;
    width: 100%;
    z-index: 2;
    -moz-user-select: none;
    -webkit-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

#menubar .button {
    background-color: #333;
    border: 0px;
    margin: 12px 5px 0px 10px;
    padding: 10px;
}

#menubar .header {
    background-color: #222;
    padding: 8px;
    width: calc(100% - 60px);
}

#menubar .header .avatar {
    background-color: #222;
    margin-top: 2px;
}

#menubar .header .avatar img {
    height: 48px;
    object-fit: contain;
}

#menu.visible {
    left: 0px;
    transition: left 400ms;
}

#menu.hidden {
    left: -300px;
    transition: left 400ms;
}

#menu {
    background-color: #222;
    color: #ddd;
    cursor: default;
    height: 100%;
    margin-top: 68px;
    position: fixed;
    top: 0px;
    width: 360px;
    z-index: 1;
    -moz-user-select: none;
    -webkit-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

#menu:focus {
    outline: 0px;
}

#menu .header {
    background-color: #333;
    display: block;
    height: 68px;
    padding: 10px 20px 10px 0px;
}

#menu .header .avatar {
    background-color: #333;
    height: 48px;
    padding: 0px 10px;
    position: absolute;
    object-fit: contain;
    z-index: 2;
}

.header .title {
    font-family: "Fjalla One", "Roboto", Arial, sans-serif;
    font-size: 17px;
    font-style: normal;
    font-weight: 400;
    line-height: 21px;
    padding-top: 5px;
}

.header .subtitle {
    color: #888;
    font-family: "Fjalla One", "Roboto", Arial, sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 19px;
    padding-top: 3px;
}

#menu .scrollarea {
    height: calc(100% - 214px);
    overflow: auto;
    padding: 14px 0px 20px 0px;
}

#menu .footer {
    background-color: #333;
    height: 63px;
    text-align: center;
}

#menu .entry {
    background-color: #333;
    cursor: pointer;
    font-family: "Fjalla One", "Roboto", Arial, sans-serif;
    font-size: 18px;
    font-style: normal;
    font-weight: 400;
    line-height: 24px;
    margin: 6px 0px 4px 10px;
    min-width: calc(100% - 10px);
    overflow-wrap: break-word;
    padding: 9px 10px 8px 10px;
    text-transform: uppercase;
}

#menu a.entry {
    color: #ddd;
    display: block;
    text-decoration: none;
}

#menu .entry:hover,
#menu .entry.active {
    background-color: var(--accent-color);
    color: var(--accent-color-fg);
}

#menu .subentry {
    cursor: pointer;
    font-size: 16px;
    font-weight: 500;
    line-height: 21px;
    margin: 6px 0px 4px 20px;
    min-width: calc(100% - 20px);
    overflow-wrap: break-word;
    padding: 8px 10px 7px 10px;
}

#menu a.subentry {
    color: #ddd;
    display: block;
    text-decoration: none;
}

#menu .subentry:hover,
#menu .subentry.active {
    background-color: #444;
    color: #ddd;
}

/*
// Page content styles
// -----------------------------------------------------------------------------
*/
.only-print {
    display: none;
}

#content {
    background-color: #fff;
    color: #333;
    font-size: 14px;
    margin-left: 360px;
    margin-top: 0px;
    padding: 10px 20px;
    scrollbar-color: #888 #ddd;
    width: calc(100% - 360px);
}

#content:focus {
    outline: 0px;
}

.bar {
    background-color: #eee;
    border: 1px solid #ccc;
    margin: 10px 0px;
    text-align: center;
}

.box {
    background-color: #eee;
    border: 1px solid #ccc;
    padding: 0px 10px;
    margin: 10px 0px;
}

pre.code {
    background-color: #eee;
    border: 1px solid #ccc;
    line-height: 20px;
    margin: 10px 0px;
    overflow: auto;
    padding: 10px;
}

.quote {
    background-color: #eee;
    border: 1px solid #ccc;
    border-left: 10px solid #ccc;
    font-style: italic;
    line-height: 24px;
    margin: 10px 0px;
    padding: 10px;
}

.quote .cite {
    margin-top: 10px;
    font-style: normal;
    font-weight: bold;
    text-align: right;
}

.image {
    margin: 10px 0px;
    page-break-inside: avoid;
    width: 100%;
}

.image img {
    margin: 0px auto;
    max-width: 100%;
    object-fit: scale-down;
}

.video {
    margin: 10px 0px;
    page-break-inside: avoid;
    width: 100%;
}

.video iframe {
    aspect-ratio: 16 / 9;
    border: 0px;
    width: 100%;
}

.video video {
    height: auto;
    width: 100%;
}

.grid {
    border: 1px solid #ccc;
    padding: 5px 0px;
    text-align: center;
}

.grid .media {
    aspect-ratio: 16 / 9;
    display: inline-block;
    margin: 5px 5px 1px 5px;
    page-break-inside: avoid;
    width: calc((100% - 40px) / 3);
}

.grid .media img {
    background-color: #222;
    height: 100%;
    object-fit: scale-down;
    width: 100%;
}

.grid .media iframe {
    border: 0px;
    height: 100%;
    width: 100%;
}

.grid .media video {
    height: 100%;
    width: 100%;
}

/*
// Page footer styles
// -----------------------------------------------------------------------------
*/
#footer {
    border-top: 3px solid #ccc;
    cursor: default;
    padding: 10px;
    margin-top: 10px;
    text-align: center;
    -moz-user-select: none;
    -webkit-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

/*
// Media rules
// -----------------------------------------------------------------------------
*/
@media only screen and (max-width: 1320px) {
    #menu {
        width: 300px;
    }

    #content {
        margin-left: 300px;
        width: calc(100% - 300px);
    }
}

@media only screen and (max-width: 1222px) {
    .grid .media {
        width: calc(50% - 15px);
    }
}

@media only screen and (max-width: 960px) {

    h1,
    h2 {
        scroll-margin: 78px;
    }

    #menubar {
        display: block;
    }

    #menu {
        left: -300px;
    }

    #menu .header {
        display: none;
    }

    #menu .scrollarea {
        height: calc(100% - 152px);
    }

    #content {
        margin-left: 0px;
        margin-top: 68px;
        width: 100%;
    }

    .grid .media {
        width: calc((100% - 40px) / 3);
    }
}

@media only screen and (max-width: 922px) {
    .grid .media {
        width: calc(50% - 15px);
    }
}

@media only screen and (max-width: 632px) {
    .grid .media {
        width: calc(100% - 20px);
    }
}

@media only print {
    html,
    body {
        background-color: #fff;
        color: #000;
    }

    a,
    li::marker,
    b,
    strong,
    i,
    em {
        color: #000;
    }

    h1 {
        background-color: var(--printer-accent-color);
        border: 1px solid #888;
        color: #000;
    }

    h2 {
        background-color: #eee;
        border-bottom: 3px solid #888;
        border-top: 3px solid #888;
        padding: 8px 10px 5px 11px;
    }

    h3 {
        background-color: #fff;
        border-bottom: 3px solid #888;
        padding: 7px 10px 3px 10px;
    }

    h4 {
        border-bottom: 1px solid #888;
    }

    caption {
        background-color: #aaa;
        border: 1px solid #888;
        border-bottom: 0px;
        color: #000;
    }

    tr:nth-child(odd) {
        background-color: #eee;
    }

    th {
        background-color: #ddd;
        border: 1px solid #888;
    }

    td {
        border: 1px solid #888;
    }

    label.disabled {
        color: #888;
        text-decoration-line: line-through;
    }

    input,
    select,
    textarea {
        background-color: #fff;
        border: 1px solid #888;
        color: #000;
    }

    input:disabled,
    select:disabled,
    textarea:disabled {
        background-color: #eee;
    }

    input[type="checkbox"],
    input[type="radio"] {
        accent-color: #000;
    }

    button,
    .button,
    input[type="button"],
    input[type="submit"],
    input[type="reset"] {
        background-color: #eee;
        border: 1px solid #888;
        color: #000;
    }

    button.selected,
    .button.selected,
    input[type="button"].selected,
    input[type="submit"].selected,
    input[type="reset"].selected {
        background-color: var(--printer-accent-color);
        border: 1px solid #888;
        color: #000;
        text-decoration: underline;
    }

    button:disabled,
    .button.disabled,
    input[type="button"]:disabled,
    input[type="submit"]:disabled,
    input[type="reset"]:disabled {
        background-color: #aaa;
        border: 1px solid #888;
        color: #000;
        text-decoration-line: line-through;
    }

    #content {
        background-color: #fff;
        color: #000;
        scrollbar-color: #888 #ddd;
    }

    .bar {
        background-color: #ddd;
        border: 1px solid #888;
    }

    .box {
        background-color: #eee;
        border: 1px solid #888;
    }

    code {
        background-color: #eee;
    }

    pre.code {
        background-color: #eee;
        border: 1px solid #888;
        white-space: pre-wrap;
    }

    .quote {
        background-color: #eee;
        border: 1px solid #888;
        border-left: 10px solid #888;
    }

    .grid {
        border: 1px solid #888;
    }

    #footer {
        border-top: 3px solid #888;
    }

    #menubar,
    #menu {
        display: none;
    }

    #content {
        margin: 0px;
        width: 100%;
    }

    .only-print {
        display: block;
    }

    .only-print .header {
        background-color: #fff;
        padding: 8px;
    }

    .only-print .header .title {
        color: #000;
    }

    .only-print .header .subtitle {
        color: #888;
    }

    .only-print .header .avatar {
        height: 48px;
        object-fit: contain;
    }

    .video iframe,
    .video video,
    .grid .media iframe,
    .grid .media video {
        display: none;
    }

    .video .only-print {
        background-color: #eee;
        border: 1px solid #888;
        padding: 10px;
        text-align: center;
        overflow-wrap: break-word;
    }

    .grid .media {
        width: calc(50% - 15px);
    }

    .grid .media img {
        background-color: #eee;
    }

    .grid .media .only-print {
        background-color: #eee;
        height: calc(100% - 4px);
        padding: 10px;
        text-align: center;
        overflow-wrap: break-word;
    }
}
