/*! sphinx-book-theme CSS
 * BSD 3-Clause License
 * Copyright (c) 2020, EBP
 * All rights reserved.
 *
 * This follows the 7-1 pattern described here:
 * https://sass-guidelin.es/#architecture
 */
html[data-theme=dark],
html[data-theme=light] {
    --pst-font-size-base: none;
    --pst-color-secondary: #e89217
}

html[data-theme=light] {
    --sbt-color-announcement: #616161;
    --pst-color-primary: #176de8
}

html[data-theme=dark] {
    --pst-color-primary: #528fe4;
    --sbt-color-announcement: #616161;
    --pst-color-background: #121212
}

html {
    scroll-padding-top: 4rem
}

.sbt-scroll-pixel-helper {
    position: absolute;
    width: 0;
    height: 0;
    top: 0;
    left: 0
}

.d-n,
.onlyprint {
    display: none
}

@media print {
    .onlyprint {
        display: block !important
    }
}

@media print {
    .noprint {
        display: none !important
    }
}

.bd-article-container h1,
.bd-article-container h2,
.bd-article-container h3,
.bd-article-container h4,
.bd-article-container h5,
.bd-article-container p.caption {
    color: var(--pst-color-muted)
}

.bd-article-container h1,
.bd-article-container h2 {
    font-weight: 500
}

a.brackets:before {
    color: inherit;
    font-family: inherit;
    margin-right: 0
}

table {
    position: relative
}

@media print {
    .bd-main .bd-content {
        margin-left: 2rem;
        height: auto
    }

    .bd-main .bd-content #jb-print-docs-body {
        margin-left: 0
    }

    .bd-main .bd-content #jb-print-docs-body h1 {
        font-size: 3em;
        text-align: center;
        margin-bottom: 0
    }

    .bd-main .bd-content .bd-article {
        padding-top: 0
    }

    .bd-main .bd-content .bd-article h1:first-of-type {
        display: none
    }

    .bd-main .bd-content .container {
        min-width: 0 !important
    }

    .bd-main .bd-content h1 {
        margin-top: 1em;
        margin-bottom: 1em
    }

    .bd-main .bd-content h1,
    .bd-main .bd-content h2,
    .bd-main .bd-content h3,
    .bd-main .bd-content h4 {
        break-after: avoid;
        color: #000
    }

    .bd-main .bd-content table {
        break-inside: avoid
    }

    .bd-main .bd-content pre {
        word-wrap: break-word
    }

    .bd-main .bd-content a.headerlink {
        display: none
    }

    .bd-main .bd-content aside.margin,
    .bd-main .bd-content aside.sidebar,
    .bd-main .bd-content blockquote.epigraph {
        border: none
    }

    .bd-main .bd-content .footer {
        margin-top: 1em
    }

    .bd-main .bd-content #jb-print-toc {
        margin-bottom: 1.5rem;
        margin-left: 0
    }

    .bd-main .bd-content #jb-print-toc .section-nav {
        border-left: 0 !important;
        list-style-type: disc !important;
        margin-left: 3em !important
    }

    .bd-main .bd-content #jb-print-toc .section-nav a {
        text-decoration: none !important
    }

    .bd-main .bd-content #jb-print-toc .section-nav li {
        display: list-item !important
    }

    .bd-main .bd-content #jb-print-toc .section-nav .nav {
        display: none
    }

    .bd-main .bd-footer-content {
        display: none !important
    }
}

.bd-header-announcement {
    background-color: var(--sbt-color-announcement);
    color: #fff
}

.bd-main .bd-content {
    justify-content: left
}

.bd-main .bd-content .bd-article-container {
    padding: 0;
    overflow-x: unset;
    min-width: 0
}

@media (min-width:1200px) {
    .bd-main .bd-content .bd-article-container {
        max-width: calc(100% - var(--pst-sidebar-secondary))
    }
}

.bd-main .bd-content .bd-article-container .bd-article {
    padding-right: 2rem;
    padding-left: 2rem
}

@media (max-width:768px) {
    .bd-main .bd-content .bd-article-container .bd-article {
        padding-right: 1rem;
        padding-left: 1rem
    }
}

.bd-main .bd-content .bd-article-container details.above-input summary,
.bd-main .bd-content .bd-article-container details.below-input summary {
    border-left: 3px solid var(--pst-color-primary)
}

@media (min-width:768px) {
    label.sidebar-toggle.primary-toggle {
        display: inline-block
    }
}

@media (max-width:768px) {
    label.sidebar-toggle.primary-toggle {
        margin-bottom: 0
    }
}

@media (min-width:992px) {
    label.sidebar-toggle.secondary-toggle {
        display: none
    }
}

@media (max-width:768px) {
    label.sidebar-toggle.secondary-toggle {
        margin-bottom: 0
    }
}

.bd-header-article {
    display: flex;
    align-items: center;
    position: sticky;
    top: 0;
    background-color: var(--pst-color-background);
    transition: left .2s;
    font-size: .9em;
    padding: 0 1rem;
    z-index: 1020
}

@media (max-width:768px) {
    .bd-header-article {
        padding: 0 .5rem;
        height: 3.5rem
    }
}

.scrolled .bd-header-article {
    box-shadow: 0 6px 6px -6px var(--pst-color-shadow)
}

.bd-header-article .header-article__inner {
    padding: 0
}

.bd-header-article .header-article-items {
    display: flex;
    align-items: center;
    height: 3rem;
    width: 100%
}

.bd-header-article .header-article-item {
    display: flex;
    align-items: center
}

.bd-header-article .article-header-buttons {
    display: flex
}

.bd-header-article .btn {
    font-size: 1.3rem;
    color: var(--pst-color-text-muted);
    border: none;
    padding: 0 .5rem;
    display: flex;
    align-items: center
}

.bd-header-article .btn svg {
    width: 1.3rem
}

.bd-header-article .btn.show,
.bd-header-article .btn:hover {
    color: var(--pst-color-text-base);
    border: none
}

.bd-header-article .btn.show+.dropdown-menu,
.bd-header-article .btn:hover+.dropdown-menu {
    display: block
}

.bd-header-article .btn:focus {
    box-shadow: none
}

.bd-header-article .btn.dropdown-toggle:after {
    display: none
}

.bd-header-article div.dropdown {
    display: flex;
    align-items: center
}

.bd-header-article .theme-switch-button {
    margin: 0
}

.bd-header-article .theme-switch-button button,
.bd-header-article .theme-switch-button i,
.bd-header-article .theme-switch-button span {
    padding: 0
}

.bd-header-article .theme-switch-button i,
.bd-header-article .theme-switch-button span {
    transition: color .25s ease-out
}

.bd-header-article .theme-switch-button:active,
.bd-header-article .theme-switch-button:hover {
    background-color: unset !important
}

.bd-header-article .theme-switch-button:active i,
.bd-header-article .theme-switch-button:active span,
.bd-header-article .theme-switch-button:hover i,
.bd-header-article .theme-switch-button:hover span {
    color: var(--pst-color-text-base)
}

.bd-header-article .dropdown-menu {
    top: 2rem;
    transform: translateX(-75%);
    box-shadow: 0 .2rem .5rem var(--pst-color-shadow), 0 0 .0625rem var(--pst-color-shadow) !important;
    border-color: var(--pst-color-border);
    background-color: var(--pst-color-background);
    color: var(--pst-color-text-muted)
}

.bd-header-article .dropdown-menu:hover {
    display: block
}

.bd-header-article .dropdown-menu .dropdown-item {
    display: inline-flex;
    align-items: center;
    padding-left: .5em;
    font-size: 1em
}

.bd-header-article .dropdown-menu .dropdown-item:hover {
    text-decoration: none;
    background-color: initial;
    color: var(--pst-color-text-base)
}

.bd-header-article .dropdown-menu .dropdown-item span img {
    height: 1em
}

.bd-header-article .dropdown-menu .dropdown-item span.btn__icon-container {
    width: 1.7em;
    align-items: center;
    display: inline-flex;
    justify-content: center
}

.bd-header {
    position: inherit
}

.bd-header label.sidebar-toggle {
    display: none
}

.bd-sidebar-primary {
    top: 0;
    max-height: 100vh;
    padding: 1rem;
    transition: margin-left .25s ease 0s, opacity .25s ease 0s, visibility .25s ease 0s
}

@media (max-width:768px) {
    .bd-sidebar-primary {
        z-index: 1081
    }
}

.bd-sidebar-primary .sidebar-primary-items__start {
    border-top: none
}

@media (min-width:992px) {
    .bd-sidebar-primary {
        flex-basis: 20%
    }
}

@media (min-width:992px) {
    input#__primary:checked~.bd-container .bd-sidebar-primary {
        margin-left: -20%;
        visibility: hidden;
        opacity: 0
    }
}

.bd-sidebar-secondary {
    top: 0
}

@media (max-width:992px) {
    .bd-sidebar-secondary {
        z-index: 1081
    }
}

.bd-sidebar-secondary .sidebar-secondary-items {
    padding: 0;
    display: flex;
    gap: .5rem
}

.bd-sidebar-secondary .sidebar-secondary-items .sidebar-secondary-item {
    padding-top: 0;
    padding-bottom: 0
}

.bd-sidebar-secondary .onthispage {
    height: 3rem;
    min-height: 3rem;
    display: flex;
    gap: .5rem;
    align-items: center;
    margin: 0;
    color: var(--pst-color-muted)
}

@media (min-width:992px) {
    .bd-sidebar-secondary {
        background: var(--pst-color-background);
        height: fit-content;
        transition: max-height .4s ease;
        z-index: 2;
        padding: 0
    }

    .bd-sidebar-secondary .toc-item {
        border-left-color: var(--pst-color-surface);
        padding-top: 0
    }

    .bd-sidebar-secondary .toc-item nav.page-toc {
        margin-bottom: 0;
        transition: opacity .4s ease
    }

    .bd-sidebar-secondary.hide:not(:hover) {
        max-height: 3rem;
        overflow-y: hidden
    }

    .scrolled .bd-sidebar-secondary.hide:not(:hover) {
        box-shadow: 0 6px 6px -6px rgba(0, 0, 0, .3)
    }

    .bd-sidebar-secondary.hide:not(:hover) .onthispage:after {
        opacity: 1;
        content: "\f107";
        font-family: Font Awesome\ 5 Free;
        font-weight: 900;
        padding-left: .5em;
        transition: opacity .3s ease
    }

    .bd-sidebar-secondary.hide:not(:hover) nav.page-toc {
        opacity: 0
    }
}

footer {
    font-size: var(--sbt-font-size-small-1)
}

footer.bd-footer-content {
    display: flex;
    flex-wrap: wrap;
    padding: 15px;
    border-top: 1px solid #ccc;
    font-size: 87.5%
}

footer.bd-footer-content .bd-footer-content__inner {
    padding-left: 0
}

footer.bd-footer-content .bd-footer-content__inner p {
    margin-bottom: 0
}

.bd-footer-article {
    padding: 0 1rem
}

@media (max-width:768px) {
    .bd-footer-article {
        padding: 0 .5rem
    }
}

#pst-back-to-top {
    font-size: .8rem
}

@media (min-width:1200px) {
    #pst-back-to-top {
        display: none !important
    }
}

.bd-sidebar-primary .navbar-icon-links {
    column-gap: .5rem
}

.bd-sidebar-primary .navbar-icon-links .nav-link i,
.bd-sidebar-primary .navbar-icon-links .nav-link span {
    font-size: 1.2rem
}

.bd-sidebar-primary .navbar-icon-links .nav-link img {
    font-size: .8rem
}

.navbar-brand {
    height: unset;
    max-height: unset;
    flex-direction: column;
    justify-content: center;
    gap: .25rem
}

.navbar-brand:hover {
    text-decoration: none
}

.navbar-brand .logo__title {
    font-size: 1.25rem;
    white-space: normal;
    text-align: center
}

.navbar-brand .logo__image {
    height: unset
}

.bd-search-container {
    margin: 2em
}

.bd-search-container #search-results h2:first-child {
    display: none
}

.search-button-field {
    width: 100%;
    font-size: .9rem;
    display: none
}

.search-button-field .search-button__kbd-shortcut {
    margin-left: auto
}

@media (min-width:992px) {
    .search-button {
        display: none !important
    }

    .search-button-field {
        display: flex
    }
}

div#searchbox {
    padding-right: 2rem;
    padding-left: 2rem
}

@media (max-width:768px) {
    div#searchbox {
        padding-right: 1rem;
        padding-left: 1rem
    }
}

@media (min-width:768px) {
    div#searchbox p.highlight-link {
        margin-left: 0
    }

    div#searchbox p.highlight-link a {
        font-size: 1rem
    }
}

img {
    max-width: 100%
}

img.align-center {
    margin-left: auto;
    margin-right: auto;
    display: block
}

img.align-left {
    clear: left;
    float: left;
    margin-right: 1em
}

img.align-right {
    clear: right;
    float: right;
    margin-left: 1em
}

div.figure {
    width: 100%;
    margin-bottom: 1em;
    text-align: center
}

div.figure.align-left {
    text-align: left
}

div.figure.align-left p.caption {
    margin-left: 0
}

div.figure.align-right {
    text-align: right
}

div.figure.align-right p.caption {
    margin-right: 0
}

div.figure p.caption {
    margin: .5em 10%
}

div.figure.margin-caption p.caption,
div.figure.margin p.caption {
    margin: .5em 0
}

div.figure.margin-caption p.caption {
    text-align: left
}

div.figure span.caption-number {
    font-weight: 700
}

div.figure span {
    font-size: .9rem
}

label.margin-toggle {
    margin-bottom: 0
}

label.margin-toggle.marginnote-label {
    display: none
}

label.margin-toggle sup {
    user-select: none
}

@media (max-width:992px) {
    label.margin-toggle {
        cursor: pointer;
        color: #0071bc
    }

    label.margin-toggle.marginnote-label {
        display: inline
    }

    label.margin-toggle.marginnote-label:after {
        content: "\2295"
    }
}

input.margin-toggle {
    display: none
}

@media (max-width:992px) {

    input.margin-toggle:checked+.marginnote,
    input.margin-toggle:checked+.sidenote {
        display: block;
        float: left;
        left: 1rem;
        clear: both;
        width: 95%;
        margin: 1rem 2.5%;
        position: relative
    }
}

span.marginnote,
span.sidenote {
    z-index: 2;
    position: relative;
    width: 40%;
    float: right;
    background-color: unset;
    font-size: .9em;
    margin-left: .5rem;
    border-left: none
}

span.marginnote sup,
span.sidenote sup {
    user-select: none
}

@media (min-width:992px),
print {

    span.marginnote,
    span.sidenote {
        width: 33%;
        margin: 0 -36% 0 0;
        clear: right
    }

    span.marginnote p.sidebar-title,
    span.sidenote p.sidebar-title {
        margin-bottom: -1rem;
        border-bottom: none;
        padding-left: 0
    }

    span.marginnote p.sidebar-title~*,
    span.sidenote p.sidebar-title~* {
        padding-left: 0;
        padding-right: 0
    }
}

@media (max-width:992px) {

    span.marginnote,
    span.sidenote {
        display: none
    }
}

aside.sidebar .note {
    margin: 1rem;
    padding: 0 0 1rem
}

aside.sidebar .admonition-title {
    margin: 0 -1rem 0 0
}

aside.sidebar.margin .sidebar-title:empty {
    display: none
}

aside.sidebar.margin .admonition {
    margin: .5rem;
    padding-left: 0;
    padding-right: 0
}

aside.sidebar.margin .admonition .admonition-title {
    margin-left: 0;
    margin-right: 0
}

@media (min-width:992px) {
    aside.sidebar.margin {
        border: none
    }

    aside.sidebar.margin .admonition {
        margin: 1rem 0;
        padding: 0 0 1rem
    }
}

.cell.tag_margin,
.cell.tag_popout,
.margin.docutils.container,
aside.margin,
div.margin,
figure.margin {
    z-index: 2;
    position: relative;
    width: 40%;
    float: right;
    background-color: unset;
    font-size: .9em;
    margin-left: .5rem
}

@media (min-width:992px),
print {

    .cell.tag_margin,
    .cell.tag_popout,
    .margin.docutils.container,
    aside.margin,
    div.margin,
    figure.margin {
        width: 33%;
        margin: 0 -36% 0 0;
        clear: right
    }

    .cell.tag_margin p.sidebar-title,
    .cell.tag_popout p.sidebar-title,
    .margin.docutils.container p.sidebar-title,
    aside.margin p.sidebar-title,
    div.margin p.sidebar-title,
    figure.margin p.sidebar-title {
        margin-bottom: -1rem;
        border-bottom: none;
        padding-left: 0
    }

    .cell.tag_margin p.sidebar-title~*,
    .cell.tag_popout p.sidebar-title~*,
    .margin.docutils.container p.sidebar-title~*,
    aside.margin p.sidebar-title~*,
    div.margin p.sidebar-title~*,
    figure.margin p.sidebar-title~* {
        padding-left: 0;
        padding-right: 0
    }
}

.cell.tag_margin div.cell.tag_margin .cell_output,
.cell.tag_popout div.cell.tag_margin .cell_output,
.margin.docutils.container div.cell.tag_margin .cell_output,
aside.margin div.cell.tag_margin .cell_output,
div.margin div.cell.tag_margin .cell_output,
figure.margin div.cell.tag_margin .cell_output {
    padding-left: 0
}

div.figure.margin-caption figcaption,
div.figure.margin-caption p.caption,
figure.margin-caption figcaption {
    z-index: 2;
    position: relative;
    width: 40%;
    float: right;
    background-color: unset;
    font-size: .9em;
    margin-left: .5rem
}

@media (min-width:992px),
print {

    div.figure.margin-caption figcaption,
    div.figure.margin-caption p.caption,
    figure.margin-caption figcaption {
        width: 33%;
        margin: 0 -36% 0 0;
        clear: right
    }

    div.figure.margin-caption figcaption p.sidebar-title,
    div.figure.margin-caption p.caption p.sidebar-title,
    figure.margin-caption figcaption p.sidebar-title {
        margin-bottom: -1rem;
        border-bottom: none;
        padding-left: 0
    }

    div.figure.margin-caption figcaption p.sidebar-title~*,
    div.figure.margin-caption p.caption p.sidebar-title~*,
    figure.margin-caption figcaption p.sidebar-title~* {
        padding-left: 0;
        padding-right: 0
    }
}

.margin-caption figcaption {
    text-align: left
}

div.cell.tag_full-width,
div.cell.tag_full_width,
div.full-width,
div.full_width {
    z-index: 2;
    position: relative
}

@media (min-width:992px) {

    div.cell.tag_full-width,
    div.cell.tag_full_width,
    div.full-width,
    div.full_width {
        max-width: 136%;
        width: 136%
    }
}

blockquote.epigraph,
blockquote.highlights,
blockquote.pull-quote {
    font-size: 1.25em;
    border-left: none;
    background-color: var(--pst-color-background)
}

blockquote div>p+p.attribution {
    font-style: normal;
    font-size: .9em;
    text-align: right;
    color: #6c757d;
    padding-right: 2em
}

div[class*=highlight-],
pre {
    clear: none
}

div.cell.tag_output_scroll div.cell_output,
div.cell.tag_scroll-input div.cell_input,
div.cell.tag_scroll-output div.cell_output {
    max-height: 24em;
    overflow-y: auto
}

@media only print {

    div.utterances,
    hypothesis-sidebar {
        display: none
    }
}

.thebelab-cell {
    border: none !important;
    margin-right: .5em !important
}

.thebelab-cell .thebelab-input {
    padding-left: 10px !important
}

.cell.docutils.container {
    padding-right: 0 !important
}

button.thebe-launch-button {
    height: 2.5em;
    font-size: 1em
}