@charset "utf-8";

@font-face {
    font-family:  'Iosevka Term Slab Web';
    font-display: swap;
    font-weight:  400;
    font-stretch: normal;
    font-style:   normal;
    src:          url('/fonts/IosevkaTermSlab-Regular.woff2') format('woff2');
}

@font-face {
    font-family:  'Iosevka Term Slab Web';
    font-display: swap;
    font-weight:  700;
    font-stretch: normal;
    font-style:   normal;
    src:          url('/fonts/IosevkaTermSlab-Bold.woff2') format('woff2');
}

@font-face {
    font-family:  'Iosevka Term Slab Web';
    font-display: swap;
    font-weight:  400;
    font-stretch: normal;
    font-style:   italic;
    src:          url('/fonts/IosevkaTermSlab-Italic.woff2') format('woff2');
}

@font-face {
    font-family:  'Iosevka Term Slab Web';
    font-display: swap;
    font-weight:  700;
    font-stretch: normal;
    font-style:   italic;
    src:          url('/fonts/IosevkaTermSlab-BoldItalic.woff2') format('woff2');
}

:root {
    /* Body */
    /* ---- */
    --body-bg: white;
    --body-margin: 0px; /* not used for small screens */

    /* Footer */
    /* ------ */
    --footer-border: 1px solid black;
    --footer-padding: 10px;
    --footer-buttons-bg: #4C6FB0;
    --footer-buttons-bg-hover: navy;
    --footer-buttons-padding: 5px 10px;
    --footer-buttons-color: white;
    --footer-buttons-font-size: 90%;
    --footer-buttons-border: 2px solid navy;
    --footer-buttons-min-width: 270px;

    /* Table of contents */
    /* ----------------- */

    /* Basic style */
    --toc-bg: white;
    /* --toc-box-shadow: 0 0 0.8em #777777; */
    --toc-li-color: black;
    --toc-hover-bg-color: #555;
    --toc-hover-color: white;
    --toc-min-height: 100px;

    /* Content */
    --content-border-left: 2px solid #b7b6ab;
    --content-padding: 10px;
    --content-bg: white;
    --content-box-shadow: 0;

    /* Layout */
    --nav-height: 125px;
    --toc-nav-vspacing: 20px;
    --toc-base-padding: 5px;
    --toc-ul-padding-left: 20px;
    --toc-local-padding: 5px;
    --toc-extra-padding-x: 4px;

    /* Navigation bar */
    /* -------------- */

    /* Basic style */
    --nav-bg: #333;
    --nav-hover: #111;

    /* Tables */
    /* ------ */
    --tbl-border-color: #4E4E4F;
    --tbl-border-size: 1px;

    /* Fonts */
    /* ----- */

    /* Text */
    --font-body-family: 'Iosevka Term Slab Web', normal;
    --font-body-size: 14pt;

    /* Code */
    --font-code-family: var(--font-body-family);
    --font-code-color: darkred;
    --font-code-size: var(--font-body-size);
    --font-src-family: var(--font-body-family);
    --font-example-family: var(--font-body-family);
    --font-example-size: 14pt;

    /* Links */
    --font-a-color: navy;
    --font-a-coderef-color: #7082BC;

    /* Color scheme */
    /* ------------ */

    /* Source blocks */
    --src-bg: #fBF9E7;
    --src-builtin-fg: blue;
    --src-keyword-fg: blue;
    --src-variable-name-fg: blue;
    --src-string-fg: green;
    --src-constant-fg: green;
    --src-comment-delimiter-fg: goldenrod;
    --src-comment-fg: goldenrod;
    --src-function-name-fg: blue;
    --src-regexp-grouping-backslash-fg: lightgreen;
    --src-regexp-grouping-construct-fg: lightgreen;
    --src-doc-fg: goldenrod;
    --src-type-fg: blue;
}

/* Responsive variables */
/* -------------------- */

/* Large screens */
@media (min-width: 1024px) {
    :root {
        --side-width: 250px;
        --body-width: calc(92% - var(--side-width));
        --nav-base-font-size: 80%;
        --nav-padding: 14px 16px;
        --toc-base-font-size: 70%;
        --toc-ul-font-size: 150%;
        --toc-ul-local-font-size: 130%;
        --toc-ul-2-font-size: 80%;
        --toc-ul-3-font-size: 80%;
        --font-src-size: 14pt;
        --rss-padding: 0 0 0 25px;
        --rss-size: 25px 25px;
        --rss-pos: 50%;
    }
}

/* Medium screens */
@media (min-width: 600px) and (max-width: 1024px) {
    :root {
        --side-width: 175px;
        --body-width: calc(92% - var(--side-width));
        --nav-base-font-size: 70%;
        --nav-padding: 5px 6px;
        --toc-base-font-size: 70%;
        --toc-ul-font-size: 130%;
        --toc-ul-local-font-size: 130%;
        --toc-ul-2-font-size: 80%;
        --font-src-size: 14pt;
        --rss-padding: 0 0 19px 9px;
        --rss-size: 10px 10px;
        --rss-pos: 25%;
    }
}

/* Small screens */
@media (max-width: 600px) {
    :root {
        --body-width: 100%
        --nav-base-font-size: 80%;
        --nav-padding: 5px 6px;
        --toc-base-font-size: 80%;
        --toc-ul-font-size: 120%;
        --toc-ul-local-font-size: 130%;
        --toc-ul-2-font-size: 80%;
        --font-src-size: 14pt;
    }
}

body {
    margin: 0;
}

/* Body */
#content {
    width:            var(--body-width);
    background-color: var(--body-bg);
    padding:          0 var(--content-padding);
}

@media (min-width: 600px) {
    #content {
        margin-left:  calc(var(--side-width) + var(--body-margin));
        margin-right: var(--body-margin);
        border-left:  var(--content-border-left);
    }
}

@media (max-width: 600px) {
    #content {
        margin-left:  0;
        margin-right: 0;
    }
}

@media (min-width: 600px) {
    nav {
        left:     0;
        position: fixed;
        width:    var(--side-width);
    }

    nav > ul {
        padding:         0;
        margin:          0;
        list-style-type: none;
        display:         block;
    }

    nav > ul > li {
        padding: var(--toc-base-padding) 0;
    }

    nav > ul > li:not(:last-of-type) {
        border-bottom: 1px solid black;
    }

    nav > ul > li > ul {
        padding:    0;
        text-align: center;
        overflow-x: auto;
        white-space: nowrap;
        -ms-overflow-style: none;  /* Internet Explorer 10+ */
        scrollbar-width: none;  /* Firefox */
    }
    nav > ul > li > ul::-webkit-scrollbar {
        display: none;  /* Safari and Chrome */
    }

    nav > ul > li > ul > li {
        display: inline-block;
    }
}

html {
}

@media (max-width: 600px) {
    nav {
        border-bottom: 2px solid black;
    }

    nav > ul {
        padding:         0;
        margin:          0 8px;
        list-style-type: none;
        display:         block;
    }

    nav > ul > li {
        padding: var(--toc-base-padding) 0;
    }

    nav > ul > li:not(:last-of-type) {
        border-bottom: 1px solid black;
    }

    nav > ul > li > ul {
        padding:    0;
        text-align: center;
        overflow-x: auto;
    }

    nav > ul > li > ul > li {
        display: inline-block;
    }
}

nav > ul > li > span {
    display: none;
}

/* Fonts */
body {
    font-family: var(--font-body-family);
    font-size:   var(--font-body-size);
}

code {
    font-family: var(--font-code-family);
    font-size:   var(--font-code-size);
    color:       var(--font-code-color);
}

pre.example {
    font-family: var(--font-example-family);
    font-size:   var(--font-example-size);
}

.org-src-container {
    border:           1px solid black;
    background-color: var(--src-bg);
    font-family:      var(--font-src-family);
    font-size:        var(--font-src-size);
    margin: 10px;
}

.src-label {
    top:           0;
    left:          0;
    color:         darkgray;
    border-bottom: 1px solid black;
    padding: 2px;
    display: flex;
    justify-content: space-between
}

pre.src {
    max-height:       50ex;
    overflow-x:       auto;
    overflow-y:       auto;
    line-height:      2.5ex;
    margin: 0px;
    padding: 4px;
}

.org-builtin {
    color: var(--src-builtin-fg);
}

.org-keyword {
    color: var(--src-keyword-fg);
}

.org-variable-name {
    color: var(--src-variable-name-fg);
}

.org-string {
    color: var(--src-string-fg);
}

.org-constant {
    color: var(--src-constant-fg);
}

.org-comment-delimiter {
    color: var(--src-comment-delimiter-fg);
}

.org-comment {
    color:      var(--src-comment-fg);
    font-style: italic;
}

.org-function-name {
    color: var(--src-function-name-fg);
}

.org-regexp-grouping-backslash {
    color:       var(--src-regexp-grouping-backslash-fg);
    font-weight: bold;
}

.org-regexp-grouping-construct {
    color:       var(--src-regexp-grouping-construct-fg);
    font-weight: bold;
}

.org-doc {
    color:      var(--src-doc-fg);
    font-style: italic;
}

.org-type {
    color: var(--src-type-fg);
}


/* Basic styling (color, font, shadow) common to global and local TOC */
#table-of-contents, .org-info-js_local-toc {
    background-color:          var(--toc-bg);
    box-shadow:                var(--toc-box-shadow);
    border-bottom-left-radius: var(--toc-border-radius);
    font-size:                 var(--toc-base-font-size);
}

#org-div-home-and-up {
    width:           var(--side-width);
    border-right:    var(--toc-border-right);
    justify-content: center;
}

/* Size (global TOC only) */
#table-of-contents {
    width: calc(var(--side-width) - 2*var(--toc-base-padding));
}

/* Fixed vertical table of content */
@media screen and (min-width: 600px) {
    #org-div-home-and-up {
        position: fixed;
        left:     0;
        overflow: auto;
        padding:  var(--toc-base-padding);
    }
    #table-of-contents {
        position: fixed;
        left:     0;
        top:      var(--nav-height);
        bottom:   0;
        padding:  0 var(--toc-base-padding);
        overflow: auto;
        border-top: 2px solid black;
        -ms-overflow-style: none;  /* Internet Explorer 10+ */
        scrollbar-width: none;  /* Firefox */
    }
    #table-of-contents::-webkit-scrollbar {
        display: none;  /* Safari and Chrome */
    }
}

@media screen and (min-width: 600px) and (max-width: 1024px) {
    #table-of-contents > div > ul > li > ul > li > ul {
        display: none;
    }
}

@media screen and (max-width: 600px) {
    #table-of-contents {
        position: relative;
        width:    90%;
        margin:   auto;
    }
}

#table-of-contents ul, .org-info-js_local-toc ul {
    list-style-type: none;
    margin:          0;
    padding-left:    var(--toc-ul-padding-left);
}

#table-of-contents ul {
    font-size: var(--toc-ul-font-size);
}

.org-info-js_local-toc ul {
    font-size: var(--toc-ul-local-font-size);
}

#table-of-contents > div > ul, .org-info-js_local-toc > div > ul {
    list-style-type: none;
    margin:          0;
    padding-left:    var(--toc-extra-padding-x);
}

#table-of-contents > div > ul > li > ul {
    font-size:      var(--toc-ul-2-font-size);
    vertical-align: middle;
}

#table-of-contents > div > ul > li > ul > li > ul {
    font-size:      var(--toc-ul-3-font-size);
    vertical-align: middle;
}

ul {
    list-style-type: '- ';
}

table, td, th {
  /*
   * border: 1px solid black;
   */
  text-align: left;
}

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

th, td {
  padding: 3px;
}
