@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,400;0,700;1,400;1,700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;600&display=swap');

:root {
    --blue: #0F52BA;
    --lightblue: #a9cbff;
    --blueshadow: #597db6;
    --hl: #ebfafa;
}

html {
    font-family: "IBM Plex", sans-serif;
    font-size: calc(15px + 0.2vw)/calc(1.1em + 0.2vw);
    line-height: 1.2;
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
    box-sizing: border-box;
}

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

body {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin: 0;
    overflow-x: hidden;
}

main {
    max-width: min(100%, 50em);
    padding: 1em;
}

header {
    width: 100%;
    padding: 25px 5px 15px 5px;
    margin: 0;
    text-align: center;
    background-color: var(--blue);
    color: white;
    box-shadow: 0 0 8px 1px var(--blueshadow);

    > a {
        text-decoration: none;
        & h1 {
            width: 100%;
            margin-top: 0;
            margin-bottom: 10px;
            color: white;
            & img {
                height: 2.5ex;
                vertical-align: text-bottom;
            }
        }
    }

    nav {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        & a {
            font-weight: normal;
            font-family: "IBM Plex Mono", monospace;
            color: white;
            text-decoration: none;
            margin: 5px 10px;
            display: inline-block;
        }
        & a:hover { font-weight: bold; }
        & a::before { content: "["}
        & a::after { content: "]"}
    }
}

h1, h2, h3 {
    color: var(--blue);
    font-family: "IBM Plex Mono", monospace;
}

p {
    text-align: justify;
    hyphens: auto;
    -webkit-hyphens: auto
}

img.i { height: 2ex; vertical-align: middle; }
img.inline { vertical-align: baseline; height: 1.5ex; }

a { color: var(--blue);  }
a:hover { text-decoration: none; }

th a, code a { color: black; }

code {
    font-family: "IBM Plex Mono", monospace;
}

ul.none { list-style-type: none; padding-left: 10px; }
ul.checklist { list-style-type: none; }
ul.checklist li { text-indent: -25px; margin-left: 10px; }

dt { text-decoration: underline; margin: 10px 0; }
dd { margin: 10px 0 10px 1em; }

ol li ol li { list-style-type: lower-latin; }

table {
    border-spacing: 0;
    border-collapse: separate;
    border-bottom: 2px solid black;
    vertical-align: middle;
}

table thead tr {
    position: sticky;
    top: 0;
    background-color: white;
    z-index: 10;
}

table thead tr:first-of-type th {
    border-top: 2px solid black;
}

table thead tr:last-of-type th {
    border-bottom: 1px solid black;
}

table td, table th { padding: 2px 8px; }

table tbody td { background-color: white; }

table tbody tr:nth-child(odd) { filter: brightness(95%); }

table.c { text-align: center; }
table.l1 td:nth-last-of-type(1) { text-align: left; }
table.l2 td:nth-last-of-type(2) { text-align: left; }
table.l3 td:nth-last-of-type(3) { text-align: left; }
table.l4 td:nth-last-of-type(4) { text-align: left; }

span[data-status] { display: inline-block; min-width: 35px; }
[data-status] { padding: 2px 8px; text-align: center; }
[data-status="ok"] { background-color: lightgreen; }
[data-status="warn"] { background-color: yellow; }
[data-status="no"] { background-color: salmon; }

table.progress {
    margin: 1em;
    border: 1px solid black;
    border-spacing: 3px;
}
table.progress td {
    height: 30px;
    padding: 0 15px;
    background-color: transparent;
}

table.progress tr > td:first-child {
    background-color: var(--blue);
}


aside, div.box {
    width: fit-content;
    background-color: var(--lightblue);
    padding: 15px;
    margin: 10px auto;
}

aside {  text-align: center; }

div.code {
    white-space: pre-line;
    font-family: 'Courier New', Courier, monospace;
    background-color: var(--lightblue);
}

div.code em { opacity: 0.55; }

footer {
    margin: 30px auto 0 auto;
    padding: 10px 10px 0 10px;
    border-top: 1px solid #777;
    color: #777;
    font-size: 0.85em;
    & a { color: #777; }
}

pre {
    overflow-x: auto;
    white-space: pre;
}
