body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    overflow-y: scroll;
}

nav.navbar {
    width:100%;
    margin-bottom: 0;
}

.navbar-header {
    float: none;
    width: 100%;
    position: relative;
}

.page-header {
    margin-top: 22px;
    position: sticky;
    top: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: baseline;
    background-color: #fff;
    margin-bottom: 3px;
    border-bottom: 0;
    box-shadow: 0 0 8px 8px #fff;
    z-index: 99;
}

.navbar-brand {
    padding: 0;
}

.navbar-brand a, .navbar-brand span {
    color:#777777;
    padding: 15px;
    display: inline-block;
}

.navbar-brand *:first-child {
    padding-right: 0;
}

.navbar-brand *:last-child {
    padding-left: 0;
    padding-right: 0;
}

.navbar-brand a:hover {
    color: #444444;
    text-decoration: none;
}

a.projecthome:hover {
    color: #23527c;
}

.navlinks  {
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
}

.navlinks > a {
    padding: 10px 0 10px 15px;
}


.navlinks > a:hover {
    background-color: transparent;
    text-decoration: none;
}

.page-header h1 {
    margin: 0;
}

.categoryHeader {
    font-size: 24px;
    color: #777;
    margin-bottom: 1.8em;
}

/* Footer */

footer.navbar {
    margin: auto 0 0 0;
    padding-top: 15px;
    padding-bottom: 15px;
    background-color: #fff;
    border-width: 1px 0 0 0;
    border-radius: 0;
    text-align: center;
}

a[name] {
    position: relative;
    bottom: 80px;
    font-size: 0;
}

ul {
    margin-top: 10px;
    margin-left: 10px;
    padding-left: 10px;
}

li {
    padding-top: 5px;
    padding-bottom: 5px;
}

li a {
    text-decoration: none;
}

ul ul {
    border-left-color: #e1f5fe;
    border-left-width: 1px;
    border-left-style: solid;
}

ul ul ul {
    border-left-color: #b3e5fc;
}

ul ul ul ul {
    border-left-color: #81d4fa;
}

ul ul ul ul ul {
    border-left-color: #4fc3f7;
}

ul ul ul ul ul ul {
    border-left-color: #29b6f6;
}

ul ul ul ul ul ul ul {
    border-left-color: #03a9f4;
}

ul ul ul ul ul ul ul {
    border-left-color: #039be5;
}

.pre {
    white-space: pre;
}

.undocumented {
    font-style: italic;
    color: #9e9e9e;
}

.functionBody p {
    margin-top: 6px;
    margin-bottom: 6px;
}

#splitTables > p {
    margin-bottom: 5px;
}

#splitTables > table {
    margin-bottom: 20px;
    width: 100%;
    border: 0;
}

#splitTables > table tr {
    border-bottom-color: #eee;
    border-bottom-width: 1px;
    border-bottom-style: solid;
    width: 100%;
}

#splitTables > table tr td {
    padding: 5px;
    border-left-color: #eee;
    border-left-width: 1px;
    border-left-style: solid;
}

.fieldTable {
    width: 100%;
    display: block;
    border: 0;
}

/* Arg name */
.fieldArg {
    margin-right: 7px;
}

.fieldArg:before {
    margin-right: 6px;
    content: "\2022";
    font-size: 14px;
}

.fieldTable tr:not(.fieldStart) td:first-child,
.valueTable tr:not(.fieldStart) td:first-child{
    padding: 3px 4px 3px 10px;
}

.fieldTable tr td {
    padding: 2px;
}


/* Argument name + type column table  */
.fieldTable tr td.fieldArgContainer {
    width: 250px;
    word-break: break-word;
}

/* parameters names in parameters table */
.fieldTable tr td.fieldArgContainer > .fieldArg {
    display: inline;
}

/* parameters types (in parameters table) */
.fieldTable tr td.fieldArgContainer > code {
    /* we don't want word break for the types because we already add <wbr> tags inside the type HTML, and that should suffice. */
    word-break: normal;
    display: inline-flex;
    flex-wrap: wrap;
}

/* Argument description column or return value desc, etc */
.fieldTable tr td::nth-child(2) {
    padding-left: 10px;
}

/* Kind column table  */
#splitTables > table tr td:first-child {
    /* border-left: none; */
    width: 150px;
}

/* Attr name column table  */
#splitTables > table tr td:nth-child(2) {
    width: 200px;
    word-break: break-word;
}

/* For smaller displays, i.e. half screen or mobile phone */
@media only screen and (max-width: 1000px) {

    /* Fix size of summary table columns */
    #splitTables > table {
        table-layout: fixed;
    }

    /* Kind column table  */
    #splitTables > table tr td:first-child {
        border-left: none;
        width: 20%;
    }

    /* Attr name column table  */
    #splitTables > table tr td:nth-child(2) {
        width: 35%;
    }

    /* Summary column table */
    #splitTables > table tr td:nth-child(3) {
        width: 45%;
    }

}

@media only screen and (max-width: 650px) {
    /* Argument name + type column table  */
    .fieldTable tr td.fieldArgContainer {
        width: 175px;
    }
}

@media only screen and (max-width: 400px) {
    /* Argument name + type column table  */
    .fieldTable tr td.fieldArgContainer {
        width: 125px;
    }
}

table .package {
    background-color: #fff3e0;
}

table .module {
    background-color: #fff8e1;
}

table .class, table .classvariable, table .baseclassvariable {
    background-color: #fffde7;
}

table .instancevariable, table .baseinstancevariable, table .variable, table .attribute, table .property {
    background-color: #f3e5f5;
}

table .interface {
    background-color: #fbe9e7;
}

table .method, table .function, table .basemethod, table .baseclassmethod, table .classmethod {
    background-color: #f1f8e9;
}

table .private {
    background-color: #f1f1f1;
}

.fieldName {
    font-weight: bold;
}


#childList > div {
    margin: 10px;
    padding: 10px;
    padding-bottom: 5px;
    display: block;
    border-left-color: #03a9f4;
    border-left-width: 1px;
    border-left-style: solid;
    background: #fafafa;
}

.functionBody {
    margin-left: 15px;
}

.functionBody > #part {
    font-style: italic;
}

.functionBody > #part > a {
    text-decoration: none;
}

.functionBody .interfaceinfo {
    font-style: italic;
    margin-bottom: 3px;
    margin-top: 3px;
}

.functionBody > .undocumented {

    margin-top: 6px;
    margin-bottom: 6px;
}

/*
- Links to class/function/etc names are nested like this:
    <code><a>label</a></code>
  
- 'functionHeader' is used for lines like `def func():` and `var =`
*/
code, .literal, .pre, #childList > div .functionHeader,
#splitTables > table tr td:nth-child(2), .fieldArg {
    font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
}
code, #childList > div .functionHeader, .fieldArg {
    color: #222222;
}

/* Intersphinx links are not red, but simply blue */
a.intersphinx-link {
    color: #03458a;
    background-color: #f0ebe694;
}

/* Links to objects within the system use this special css.
This applies to inline docstring content marked up as code,
  for example L{foo} in epytext or `bar` in restructuredtext,
  but also to links that are present in summary tables.
*/
a.internal-link {
    color:#c7254e;
    background-color:#f9f2f4;
}

/* top navagation bar */
.page-header > h1 {
    margin-top: 0;
}
.page-header > h1 > code {
    color: #971c3a;
}

/* Bootstart 3.x sets font-size to 17.5px which just
   looks ridiculously large, so we unset it here.
*/
blockquote {
    font-size: unset;
}

/*
This defines the code style, it's black on light gray.
It also overwrite the default values inherited from bootstrap min
*/
code, .literal {
    padding:2px 4px;
    background-color: #f4f4f4;
    border-radius:4px
}


a.sourceLink {
    color: #337ab7!important;
    font-weight: normal;
    background-color: transparent!important;
}




.moduleDocstring {
    margin: 20px;
}

#partOf {
    margin-top: -13px;
    margin-bottom: 19px;
}

.fromInitPy {
    font-style: italic;
}

pre {
    padding-left: 0;
}

/* Private stuff */

body.private-hidden #splitTables .private,
body.private-hidden #childList .private,
body.private-hidden #summaryTree .private,
body.private-hidden #search-results .private,
body.private-hidden .container > .private {
    display: none!important;
}

/* Show private */

#showPrivate:hover {
    text-decoration: none;
}

#showPrivate button {
    padding: 10px;
}

#showPrivate button:hover {
    text-decoration: none;
}

#current-docs-container {
    font-style: italic;
    padding-top: 11px;
}

/* Deprecation stuff */

.deprecationNotice {
    margin: 10px;
}

/* Syntax highlighting for source code */

.py-string {
    color: #337ab7;
}
.py-comment {
    color: #309078;
    font-style: italic;
}
.py-keyword {
    font-weight: bold;
}
.py-defname {
    color: #a947b8;
    font-weight: bold;
}
.py-builtin {
    color: #fc7844;
    font-weight: bold;
}

/* Doctest */

pre.py-doctest {
    padding: .5em;
}
.py-prompt, .py-more {
    color: #a8a8a8;
}
.py-output {
    color: #c7254e;
}

/* Admonitions */

div.rst-admonition p.rst-admonition-title:after {
    content: ":";
}

div.rst-admonition p.rst-admonition-title {
    margin: 0;
    padding: 0.1em 0 0.35em 0em;
    font-weight: bold;
}

div.rst-admonition p.rst-admonition-title {
    color: #333333;
}

div.rst-admonition {
    padding: 8px;
    margin-bottom: 20px;
    background-color: #EEE;
    border: 1px solid #CCC;
    border-radius: 4px;
}

div.warning, div.attention, div.danger, div.error, div.caution {
    background-color: #ffcf9cb0;
    border: 1px solid #ffbbaa;
}

div.danger p.rst-admonition-title, div.error p.rst-admonition-title, div.caution p.rst-admonition-title {
    color: #b94a48;
}

div.tip p.rst-admonition-title, div.hint p.rst-admonition-title, div.important p.rst-admonition-title{
    color: #3a87ad;
}

div.tip, div.hint, div.important {
    background-color: #d9edf7;
    border-color: #bce8f1;
}

/* Version modified style */
.rst-versionmodified {
    display: block;
    font-weight: bold;
}

/* Search */

/* clears the ‘X’ from search input for Chrome */
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration { display: none; }

.navlinks > #search-box-container {
    padding: 0 0 8px 15px;
    align-self: flex-end;
    margin-left: auto;
    display: none;
}

#search-results {
    margin-top: 5px;
}

#search-results tr{
    display:block;
    border-bottom: 0.5px solid #CCC;
}

#search-results tr {
    border-bottom: 1px #ddd solid;
    padding-bottom: 1px;
}

#search-results tr td {
    border-left: 1px #ddd solid;
    padding: 2px;
}

#search-results tr td:first-child {
    width: 120px;
}

#search-results tr:last-child{
    border-bottom: none;
}

#search-results tr article, #search-results tr article *{
    display:inline;
}

#search-results section {
    padding: 5px 0 0 8px;
}

#search-help-button {
    background-color: #e6e6e6;
}

.search-help-hidden #search-help-box{
    display: none!important;
}

.search-help-hidden #search-help-button{
    background-color: #fff!important;
}

#search-results-container {
    padding: 10px;
    width: 100%;
    max-width: 850px;
    max-height: calc(100vh - 70px);
    right: 0;
    position: absolute;
    overflow-x: hidden;
    overflow-y: scroll;
    background-color: #fbfbfb;
    border: 1px solid #CCC;
    border-radius: 4px;
    z-index: 500;
    margin-top: -9px;
    word-break: break-word;
}

#search-status{
    padding-bottom:2px;
}

#search-buttons{
    float: right;
}

#search-buttons > span {
    padding: 0.3em 0.4em 0.4em;
}

#toggle-search-in-docstrings-checkbox{
    margin-top: -2.5px;
    cursor: pointer;
}

/* Constant values repr */
pre.constant-value              { padding: .5em; }
.rst-variable-linewrap          { color: #604000; font-weight: bold; }
.rst-variable-ellipsis          { color: #604000; font-weight: bold; }
.rst-variable-quote             { color: #604000; font-weight: bold; }

/* Those two are currently not used */
.rst-variable-group             { color: #000000; }
.rst-variable-op                { color: #000000; }

.rst-variable-string            { color: #337ab7; }
.rst-variable-unknown           { color: #a00000; font-weight: bold; }
.rst-re                         { color: #000000; }
.rst-re-char                    { color: #337ab7; }
.rst-re-op                      { color: #fc7844; }
.rst-re-group                   { color: #309078; }
.rst-re-ref                     { color: #890000; }
