:root {
    --menu-background: #12141A;
    --menu-header: #bdc7d0;
    --menu-text: #bdc7d0;

    --body-background: #0c0e12;
    --body-header: #bdc7d0;
    --body-text: #bdc7d0;

    --selection-background: #6371AC;
    --selection-text: #eee;

    --code-background: #12141A;
    --code-border: none;
    --code-literal: #51cc99;
    --code-text: #bdc7d0;
    --code-highlight: #12141A;
    --code-output: #b92424;

    --table-background: none;
    --table-border: #24282e;
    --table-header: #aaa;
    --table-text: #aaa;

    --search-text: #bdc7d0;
    --search-border: #bdc7d0;
    --search-background: none;

    --links: #eee;
    --hover: #22242A; /* also for left menu*/
    --active: #12141A; /* also for left menu*/

    --todo: #12141A;
    --warning: #12141A;
    --tip: #12141A;
    --note: #12141A;
    --important: #12141A;

    --menu-width: 300px;
    --content-width: 800px;
}

@media screen {
    /* body */
    body {color: var(--body-text); background-color: var(--body-background) !important}

    /* figure and image */
    img {max-width: 100% !important; max-height: 450px !important; margin-bottom: 2em;}
    .figure {width: 80%; max-height: 500px !important; display: block; text-align: center; margin-left: auto; margin-right: auto; margin-top: 2em; margin-bottom: 2em}

    /* text selection */
    ::-moz-selection {color: var(--selection-text); background: var(--selection-background)}
    ::selection {color: var(--selection-text); background: var(--selection-background)}

    /* RTD theme's default is 800px as max width for the content */
    .wy-nav-content {max-width:var(--content-width); background: var(--body-background)}
    .wy-nav-content-wrap {background: var(--body-background)}
    .wy-nav-content li {list-style: disc; !important; margin-left: 20px}
    .wy-nav-content li p {margin: 0}
    .wy-nav-content li:last-child p {margin-bottom: 2em}

    /* hide double entries on main page toc-tree */
    .toctree-wrapper .caption {display: none}

    /* hyperlinks */
    a {color: var(--links) !important}
    a:hover {text-decoration: underline !important}
    .download span {color: var(--links) !important}
    .download span:hover {color: var(--links) !important; text-decoration: underline !important}

    /* headers */
    h1 {font-family: sans-serif; page-break-after: avoid; color: var(--body-header) !important}
    h2 {font-family: sans-serif; page-break-after: avoid; color: var(--body-header) !important}
    h3 {font-family: sans-serif; page-break-after: avoid; color: var(--body-header) !important}
    h4 {font-family: sans-serif; page-break-after: avoid; color: var(--body-header) !important}
    h5 {font-family: sans-serif; page-break-after: avoid; color: var(--body-header) !important}
    h6 {font-family: sans-serif; page-break-after: avoid; color: var(--body-header) !important}

    /* top menu (while zoom) */
    .wy-nav-top {background: var(--menu-background) !important}
    .wy-nav-top a {color: var(--menu-header) !important}

    /* top menu with search input */
    .wy-side-nav-search {background: var(--menu-background) !important; margin-bottom: 2rem}
    .wy-side-nav-search a {color: var(--menu-header) !important; font-size: 1.3rem; margin-top: 1rem}
    .wy-side-nav-search a:hover {color: var(--menu-header) !important; background: none !important; text-decoration: none !important}
    .wy-side-nav-search div.version {color: var(--menu-background)}
    .wy-side-nav-search input[type=text] {border: none !important; border-radius: 0}

    /* left vertical menu */
    .wy-nav-side {background: var(--menu-background); width: var(--menu-width)}
    .wy-nav-side a {color: var(--menu-header) !important}
    .wy-nav-side a:before {content: none !important}

    /* left vertical menu chapters */
    .wy-menu-vertical p.caption {color: var(--menu-header) !important; margin: 0 !important}
    .wy-menu-vertical p.caption:hover {text-decoration: none !important; color: var(--menu-header); cursor: pointer}

    /* left vertical menu sub-chapters */
    .wy-menu-vertical li {font-size: 1rem !important; background: none !important; border: 0 !important}
    .wy-menu-vertical li:last-child {margin-bottom: 1rem !important}
    .wy-menu-vertical li a {color: var(--menu-text) !important; border: 0 !important; background: none !important}
    .wy-menu-vertical li a:hover {text-decoration: none !important; border: 0 !important; background: none !important;  background: var(--hover) !important}
    .wy-menu-vertical li.current {background: none !important}
    .wy-menu-vertical li.current a {color: var(--menu-text) !important; border: 0 !important; background: var(--active) !important}
    .wy-menu-vertical li.current a:hover {text-decoration: none !important; border: 0 !important; background: var(--hover) !important}
    .wy-menu-vertical .literal {background: none !important; text-transform: capitalize; font-family: sans-serif; color: var(--menu-text) !important; font-size: 0.85rem}
    .toctree-expand {display: none;}

    /* table */
    table {border: 0 !important; background-color: var(--table-background)}
    table td {border: 0 !important; color: var(--table-text)}
    table th {border: 1px solid var(--table-border) !important; border-bottom: 1px solid var(--table-border) !important; color: var(--table-text)}
    table tr td {background: none !important}
    table tr:hover td {background: var(--hover) !important; color: var(--table-text)}
    table thead {text-align: left !important; vertical-align: middle !important}
    table thead p {margin-bottom: 0}
    table thead th.stub {text-align: center; border-right: 0; border-bottom: 1px solid var(--table-border); }
    table tbody th.stub {text-align: center; border-bottom: 0 !important; border-right: 1px solid var(--table-border) !important}
    .wy-table-responsive table td {white-space: normal}
    .wy-table-responsive {overflow: auto}
    .rst-content table.docutils caption {text-align: left; font-size: 100%}

    /* hide the permalink symbol as long as link is not hovered */
    a.headerlink {opacity: 0}
    a.headerlink:hover {opacity: 1}

    /* glossary entries */
    dt {color: var(--body-header) !important; background: none !important; border: none !important}
    dt[id^="term-"] {font-weight: bold}

    /* lists */
    .rst-content dl dd {margin-bottom: 5px}
    .rst-content dl p {margin: 0 !important}
    .rst-content .arabic dl dt {font-weight: normal; margin-bottom: 5px}

    /* bibliography entries */
    dl.citation dt:before {content: '['; color: var(--body-header) !important}
    dl.citation dt:after {content: ']'; color: var(--body-header) !important}

    /* caption */
    .code-block-caption {color: var(--body-header) !important; text-align: center !important; font-weight: bold !important; font-style: normal !important; margin-top: 1rem; margin-bottom: 1rem}
    .figure .caption {color: var(--body-header) !important; text-align: center !important; font-weight: bold !important; font-style: normal !important; margin-top: 1rem; margin-bottom: 1rem}
    table caption {color: var(--body-header) !important; text-align: center !important; font-weight: bold !important; font-style: normal !important; margin-top: 1rem; margin-bottom: 1rem}

    /* infobox - tip */
    .tip {background: var(--tip) !important; border: 1px solid var(--tip)}
    .tip .admonition-title {background: var(--tip) !important}

    /* infobox - warning */
    .warning {background: var(--warning) !important; border: 1px solid var(--warning)}
    .warning .admonition-title {background: var(--warning) !important}

    /* infobox - note */
    .note {background: var(--note) !important; border: 1px solid var(--note)}
    .note .admonition-title {background: var(--note) !important}

    /* infobox - todo */
    .admonition-todo {background: var(--todo) !important; border: 1px solid var(--todo)}
    .admonition-todo .admonition-title {background: var(--todo) !important}

    /* infobox - important */
    .important {background: var(--important) !important; border: 1px solid var(--important)}
    .important .admonition-title {background: var(--important) !important}

    /* buttons on bottom (next, prev)*/
    .btn-neutral {color: var(--links) !important;background: none !important;border: 0; box-shadow: none}
    .btn-neutral:hover {color: var(--links) !important; background: none !important; border: 0}
    .btn-neutral:visited {color: var(--links) !important; background: none !important; border: 0}
    .fa-arrow-circle-left:before {content: '<<'}
    .fa-arrow-circle-right:before {content: '>>'}

    /* Read the docs footer on bottom left menu */
    .rst-current-version {background: var(--menu-background) !important}
    .rst-versions {display: none}

    /* pygments */
    pre { line-height: 125%; }
    td.linenos pre { color: #000000; background-color: #f0f0f0; padding-left: 5px; padding-right: 5px; }
    span.linenos { color: #000000; background-color: #f0f0f0; padding-left: 5px; padding-right: 5px; }
    td.linenos pre.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
    span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
    .highlight .hll { background-color: #49483e }
    .highlight { background: #232629; color: #cccccc }
    .highlight .c { color: #777777; font-style: italic } /* Comment */
    .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
    .highlight .k { color: #7686bb; font-weight: bold } /* Keyword */
    .highlight .ch { color: #777777; font-style: italic } /* Comment.Hashbang */
    .highlight .cm { color: #777777; font-style: italic } /* Comment.Multiline */
    .highlight .cp { color: #777777; font-style: italic } /* Comment.Preproc */
    .highlight .cpf { color: #777777; font-style: italic } /* Comment.PreprocFile */
    .highlight .c1 { color: #777777; font-style: italic } /* Comment.Single */
    .highlight .cs { color: #777777; font-style: italic } /* Comment.Special */
    .highlight .gp { color: #ffffff } /* Generic.Prompt */
    .highlight .kc { color: #7686bb; font-weight: bold } /* Keyword.Constant */
    .highlight .kd { color: #7686bb; font-weight: bold } /* Keyword.Declaration */
    .highlight .kn { color: #7686bb; font-weight: bold } /* Keyword.Namespace */
    .highlight .kp { color: #7686bb; font-weight: bold } /* Keyword.Pseudo */
    .highlight .kr { color: #7686bb; font-weight: bold } /* Keyword.Reserved */
    .highlight .kt { color: #7686bb; font-weight: bold } /* Keyword.Type */
    .highlight .m { color: #4FB8CC } /* Literal.Number */
    .highlight .s { color: #51cc99 } /* Literal.String */
    .highlight .nf { color: #6a6aff } /* Name.Function */
    .highlight .nx { color: #e2828e } /* Name.Other */
    .highlight .nv { color: #7AB4DB; font-weight: bold } /* Name.Variable */
    .highlight .w { color: #bbbbbb } /* Text.Whitespace */
    .highlight .mb { color: #4FB8CC } /* Literal.Number.Bin */
    .highlight .mf { color: #4FB8CC } /* Literal.Number.Float */
    .highlight .mh { color: #4FB8CC } /* Literal.Number.Hex */
    .highlight .mi { color: #4FB8CC } /* Literal.Number.Integer */
    .highlight .mo { color: #4FB8CC } /* Literal.Number.Oct */
    .highlight .sa { color: #51cc99 } /* Literal.String.Affix */
    .highlight .sb { color: #51cc99 } /* Literal.String.Backtick */
    .highlight .sc { color: #51cc99 } /* Literal.String.Char */
    .highlight .dl { color: #51cc99 } /* Literal.String.Delimiter */
    .highlight .sd { color: #51cc99 } /* Literal.String.Doc */
    .highlight .s2 { color: #51cc99 } /* Literal.String.Double */
    .highlight .se { color: #51cc99 } /* Literal.String.Escape */
    .highlight .sh { color: #51cc99 } /* Literal.String.Heredoc */
    .highlight .si { color: #51cc99 } /* Literal.String.Interpol */
    .highlight .sx { color: #51cc99 } /* Literal.String.Other */
    .highlight .sr { color: #51cc99 } /* Literal.String.Regex */
    .highlight .s1 { color: #51cc99 } /* Literal.String.Single */
    .highlight .ss { color: #51cc99 } /* Literal.String.Symbol */
    .highlight .fm { color: #6a6aff } /* Name.Function.Magic */
    .highlight .vc { color: #7AB4DB; font-weight: bold } /* Name.Variable.Class */
    .highlight .vg { color: #BE646C; font-weight: bold } /* Name.Variable.Global */
    .highlight .vi { color: #7AB4DB; font-weight: bold } /* Name.Variable.Instance */
    .highlight .vm { color: #7AB4DB; font-weight: bold } /* Name.Variable.Magic */
    .highlight .il { color: #4FB8CC } /* Literal.Number.Integer.Long */

    /* code listings */
    code.literal {color: var(--code-literal) !important; background: none !important; border: none; font-weight: normal !important; font-size: 90%; padding: 0; margin: 0}
    .highlight {background: var(--code-background); border: var(--code-border)}
    .highlight .hll {background-color: var(--code-highlight)}
    .rst-content div[class^=highlight], .rst-content pre.literal-block {border: var(--code-border)}
    .highlight .go {color: var(--code-output)} /* Stdout */
    .highlight .gt {color: var(--code-output)}  /* Traceback */
    .highlight .gr {color: var(--code-output)}  /* Exception Name */
    .highlight .gr + span {color: var(--code-output)} /* Exception : (colon) */
    .highlight .gr + span + .n {color: var(--code-output)} /* Exception Text */
    .highlight .go:before, .highlight .gt:before, .highlight .gr:before {content: '# '}

    /* assignments */
    .highlight .sd {color: var(--code-text) !important; background: var(--code-background) !important; border: 1px solid var(--code-border)}

    /* search */
    form#search {text-align: center}
    form#search input#search-submit {overflow: hidden; margin: 0; padding: 0.5em; width: 1px; height: 30px; color: var(--search-text); background: var(--search-background); border: 0; display: inline; box-shadow: none}
    form#search input#search-input {overflow: hidden; margin: 0; padding: 0.5em; height: 30px; width: 200px; color: var(--search-text); background: var(--search-background); border: 0; border-bottom: 1px solid var(--search-border); display: inline; box-shadow: none}

    /* nbsphinx */
    .nbinput .input_area {border: 0 !important}
    .nbinput .prompt pre {display: none}
    .nboutput .prompt {display: none}
    .nboutput .output_area {color: var(--code-output); }

    /* left navigation menu citation */
    /* nav #cite {position: absolute; bottom: 3rem; padding: 1rem; background: var(--menu-background)} */
    /* nav #cite label {color: var(--menu-text); font-weight: bold; margin-top: 1rem} */
    /* nav #cite blockquote {margin-top: 1rem} */

    /* left navigation menu hide 3rd level toc-tree entries */
    ul li.toctree-l3 {display: none}

    /* left navigation menu donate button */
    nav #donate {position: absolute; left: 5rem; bottom: 0; text-align: center}
    nav #donate input[type="image"] {height: 50px}
}

/* mobile devices */
@media screen and (max-width: 1100px) {
    nav #cite {display: none}
    nav #donate input[type="image"] {height: 40px;}
    .rst-versions  {display: none !important;}
}

.headerlink:after {
    content: "¶" !important;
}
