/*
Custom styling for Sphinx, based on Alabaster theme.

Alabaster theme forked from https://github.com/bitprophet/alabaster/. See
original license below.

Copyright (c) 2019 Jeff Forcier.

Based on original work copyright (c) 2011 Kenneth Reitz and copyright (c) 2010
Armin Ronacher.

Some rights reserved.

Redistribution and use in source and binary forms of the theme, with or
without modification, are permitted provided that the following conditions
are met:

* Redistributions of source code must retain the above copyright
  notice, this list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above
  copyright notice, this list of conditions and the following
  disclaimer in the documentation and/or other materials provided
  with the distribution.

* The names of the contributors may not be used to endorse or
  promote products derived from this software without specific
  prior written permission.

THIS THEME IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS THEME, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
*/

@import url('base_sphinx.css');

/* -- page layout ----------------------------------------------------------- */

div.sphinx div.document {
  margin: 30px auto;
  max-width: 1400px;
  padding: 0px 20px;
  width: 100%;
}

div.sphinx div.documentwrapper {
  float: left;
  width: 100%;
}

div.sphinx div.bodywrapper {
  margin: 0 0 0 220px;
}

div.sphinx div.sphinxsidebar {
  width: 220px;
  font-size: 14px;
  line-height: 1.5;
}

div.sphinx hr {
  border: 1px solid #b1b4b6;
}

div.sphinx div.body {
  background-color: #fff;
  color: #3e4349;
  max-width: none;
  padding: 0 60px 0 60px;
}

div.sphinx div.body > .section {
  text-align: left;
}

div.sphinx p.caption {
  font-family: inherit;
  font-size: inherit;
}

div.sphinx div.relations {
  display: none;
}

div.sphinx div.sphinxsidebar a {
  color: #444;
  text-decoration: none;
  border-bottom: 1px dotted #999;
}

div.sphinx div.sphinxsidebar a:hover {
  border-bottom: 1px solid #999;
}

div.sphinx div.sphinxsidebarwrapper {
  padding: 18px 10px;
}

div.sphinx div.sphinxsidebarwrapper p.logo {
  padding: 0;
  margin: -10px 0 0 0px;
  text-align: center;
}

div.sphinx div.sphinxsidebarwrapper h1.logo {
  margin-top: -10px;
  text-align: center;
  margin-bottom: 5px;
  text-align: left;
}

div.sphinx div.sphinxsidebarwrapper h1.logo-name {
  margin-top: 0px;
}

div.sphinx div.sphinxsidebarwrapper p.blurb {
  margin-top: 0;
  font-style: normal;
}

div.sphinx div.sphinxsidebar h3,
div.sphinx div.sphinxsidebar h4 {
  color: #444;
  font-size: 24px;
  font-weight: normal;
  margin: 0 0 5px 0;
  padding: 0;
}

div.sphinx div.sphinxsidebar h4 {
  font-size: 20px;
}

div.sphinx div.sphinxsidebar h3 a {
  color: #444;
}

div.sphinx div.sphinxsidebar p.logo a,
div.sphinx div.sphinxsidebar h3 a,
div.sphinx div.sphinxsidebar p.logo a:hover,
div.sphinx div.sphinxsidebar h3 a:hover {
  border: none;
}

div.sphinx div.sphinxsidebar p {
  color: #555;
  margin: 10px 0;
}

div.sphinx div.sphinxsidebar ul {
  margin: 10px 0;
  padding: 0;
  color: #000;
}

div.sphinx div.sphinxsidebar ul li.toctree-l1 > a {
  font-size: 120%;
}

div.sphinx div.sphinxsidebar ul li.toctree-l2 {
  margin-left: 25px;
}

div.sphinx div.sphinxsidebar ul li.toctree-l2 > a {
  font-size: 110%;
}

div.sphinx div.sphinxsidebar input {
  border: 1px solid #ccc;
  font-size: 1em;
}

div.sphinx div.sphinxsidebar hr {
  border: none;
  height: 1px;
  color: #aaa;
  background: #aaa;
  text-align: left;
  margin-left: 0;
  width: 50%;
}

div.sphinx div.sphinxsidebar .badge {
  border-bottom: none;
}

div.sphinx div.sphinxsidebar .badge:hover {
  border-bottom: none;
}

/* To address an issue with donation coming after search */
div.sphinx div.sphinxsidebar h3.donation {
  margin-top: 10px;
}

/* -- body styles ----------------------------------------------------------- */

div.sphinx a {
  color: #004b6b;
  text-decoration: underline;
}

div.sphinx a:hover {
  color: #6d4100;
  text-decoration: underline;
}

div.sphinx div.body h1,
div.sphinx div.body h2,
div.sphinx div.body h3,
div.sphinx div.body h4,
div.sphinx div.body h5,
div.sphinx div.body h6 {
  font-weight: normal;
  margin: 30px 0px 10px 0px;
  padding: 0;
}

div.sphinx div.body h1 {
  margin-top: 0;
  padding-top: 0;
  font-size: 240%;
}
div.sphinx div.body h2 {
  font-size: 180%;
}
div.sphinx div.body h3 {
  font-size: 150%;
}
div.sphinx div.body h4 {
  font-size: 130%;
}
div.sphinx div.body h5 {
  font-size: 100%;
}
div.sphinx div.body h6 {
  font-size: 100%;
}

div.sphinx a.headerlink {
  color: #ddd;
  padding: 0 4px;
  text-decoration: none;
}

div.sphinx a.headerlink:hover {
  color: #444;
  background: #eaeaea;
}

div.sphinx div.body p,
div.sphinx div.body dd,
div.sphinx div.body li {
  line-height: 1.4em;
}

div.sphinx div.admonition {
  margin: 20px 0px;
  padding: 10px 30px;
  background-color: #eee;
  border: 1px solid #ccc;
}

div.sphinx div.admonition tt.xref,
div.sphinx div.admonition code.xref,
div.sphinx div.admonition a tt {
  background-color: #fbfbfb;
  border-bottom: 1px solid #fafafa;
}

div.sphinx div.admonition p.admonition-title {
  font-weight: normal;
  font-size: 24px;
  margin: 0 0 10px 0;
  padding: 0;
  line-height: 1;
}

div.sphinx div.admonition p.last {
  margin-bottom: 0;
}

div.sphinx div.highlight {
  background-color: #fff;
}

div.sphinx dt:target,
.highlight {
  background: #faf3e8;
}

div.sphinx div.warning {
  background-color: #fcc;
  border: 1px solid #faa;
}

div.sphinx div.danger {
  background-color: #fcc;
  border: 1px solid #faa;
  -moz-box-shadow: 2px 2px 4px #d52c2c;
  -webkit-box-shadow: 2px 2px 4px #d52c2c;
  box-shadow: 2px 2px 4px #d52c2c;
}

div.sphinx div.error {
  background-color: #fcc;
  border: 1px solid #faa;
  -moz-box-shadow: 2px 2px 4px #d52c2c;
  -webkit-box-shadow: 2px 2px 4px #d52c2c;
  box-shadow: 2px 2px 4px #d52c2c;
}

div.sphinx div.caution {
  background-color: #fcc;
  border: 1px solid #faa;
}

div.sphinx div.attention {
  background-color: #fcc;
  border: 1px solid #faa;
}

div.sphinx div.important {
  background-color: #eee;
  border: 1px solid #ccc;
}

div.sphinx div.note {
  background-color: #eee;
  border: 1px solid #ccc;
}

div.sphinx div.tip {
  background-color: #eee;
  border: 1px solid #ccc;
}

div.sphinx div.hint {
  background-color: #eee;
  border: 1px solid #ccc;
}

div.sphinx div.seealso {
  background-color: #eee;
  border: 1px solid #ccc;
}

div.sphinx div.topic {
  background-color: #eee;
}

div.sphinx p.admonition-title {
  display: inline;
}

div.sphinx p.admonition-title:after {
  content: ':';
}

/* Code styling */
div.sphinx pre,
div.sphinx tt,
div.sphinx code {
  font-family: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono',
    'Courier New', monospace;
  font-size: 0.9em;
  background-color: #f5f5f5;
}

div.sphinx .hll {
  background-color: #ffc;
  margin: 0 -12px;
  padding: 0 12px;
  display: block;
}

div.sphinx tt.descname,
div.sphinx tt.descclassname,
div.sphinx code.descname,
div.sphinx code.descclassname {
  font-size: 0.9em;
}

div.sphinx tt.descname,
div.sphinx code.descname {
  font-weight: bold;
  padding-right: 0.08em;
  padding-left: 0px;
}

div.sphinx tt.descclassname,
div.sphinx code.descclassname {
  background-color: transparent;
  padding-right: 0px;
}

/* Screenshot */
div.sphinx img.screenshot {
  -moz-box-shadow: 2px 2px 4px #eee;
  -webkit-box-shadow: 2px 2px 4px #eee;
  box-shadow: 2px 2px 4px #eee;
}

/* Table */
div.sphinx table {
  overflow: hidden;
}

div.sphinx table tr {
  border-top: none;
}

div.sphinx table .field-even {
  background-color: transparent;
}

div.sphinx table.docutils {
  border: 1px solid #888;
  -moz-box-shadow: 2px 2px 4px #eee;
  -webkit-box-shadow: 2px 2px 4px #eee;
  box-shadow: 2px 2px 4px #eee;
}

div.sphinx table.docutils td,
div.sphinx table.docutils th {
  border: 1px solid #888;
  padding: 0.25em 0.7em;
}

div.sphinx table.field-list,
div.sphinx table.footnote {
  border: none;
  -moz-box-shadow: none;
  -webkit-box-shadow: none;
  box-shadow: none;
}

div.sphinx table.footnote {
  margin: 15px 0;
  width: 100%;
  border: 1px solid #eee;
  background: #fdfdfd;
  font-size: 0.9em;
}

div.sphinx table.footnote + div.sphinx table.footnote {
  margin-top: -15px;
  border-top: none;
}

div.sphinx table.field-list th {
  padding: 0 0.8em 0 0;
}

div.sphinx table.field-list td {
  padding: 0;
}

div.sphinx table.field-list p {
  margin-bottom: 0.8em;
}

/* Cloned from
 * https://github.com/sphinx-doc/sphinx/commit/ef60dbfce09286b20b7385333d63a60321784e68
 */
div.sphinx .field-name {
  -moz-hyphens: manual;
  -ms-hyphens: manual;
  -webkit-hyphens: manual;
  hyphens: manual;
}

div.sphinx table.footnote td.label {
  width: 0.1px;
  padding: 0.3em 0 0.3em 0.5em;
}

div.sphinx table.footnote td {
  padding: 0.3em 0.5em;
}

div.sphinx dl {
  margin: 15px 0 0px 0;
  padding: 0;
}

div.sphinx dl.class,
div.sphinx dl.function,
div.sphinx,
dl.exception {
  margin-bottom: 50px;
  padding: 0;
}

div.sphinx dl.class > dt,
div.sphinx dl.function > dt,
div.sphinx dl.exception > dt {
  background-color: #f5f5f5;
  border-top: 3px solid #4872f9;
  padding: 5px 0px 5px 5px;
}

div.sphinx dl.class > dt > em:not(.property),
div.sphinx dl.exception > dt > em:not(.property),
div.sphinx dl.function > dt > em:not(.property),
div.sphinx dl.method > dt > em:not(.property),
div.sphinx dl.staticmethod > dt > em:not(.property) {
  font-family: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono',
    'Courier New', monospace;
  font-size: 0.9em;
}

div.sphinx dl.class > dt > em.property,
div.sphinx dl.exception > dt > em.property,
div.sphinx dl.staticmethod > dt > .property,
div.sphinx dl.classmethod > dt > .property {
  color: #4872f9;
  font-style: normal;
  font-variant: small-caps;
}

div.sphinx dl.method > dt,
div.sphinx dl.attribute > dt,
div.sphinx dl.staticmethod > dt,
div.sphinx dl.classmethod > dt {
  background-color: #f5f5f5;
  border-left: 3px solid #4872f9;
  padding: 3px 0px 3px 5px;
}

div.sphinx dl dd {
  margin-left: 30px;
}

div.sphinx blockquote {
  margin: 0 0 0 30px;
  padding: 0;
}

div.sphinx ul,
div.sphinx ol {
  /* Matches the 30px from the narrow-screen "li > ul" selector below */
  margin: 10px 0 10px 30px;
  padding: 0;
}

div.sphinx pre {
  background: #eee;
  padding: 7px 30px;
  margin: 15px 0px;
  line-height: 1.3em;
}

div.sphinx span.viewcode-link {
  color: #6c6c6c;
  font-size: 0.8em;
  margin-right: 5px;
  margin-top: 2px;
}

div.sphinx a.viewcode-back {
  color: #6c6c6c;
  font-size: 0.8em;
}

div.sphinx div.highlight {
  max-width: 850px;
}

div.sphinx div.highlight pre {
  background: #f5f5f5;
  padding-left: 15px;
  padding-top: 15px;
}

div.sphinx div.viewcode-block:target {
  background: #ffffe3;
  margin: -1px -10px;
  padding: 5px 10px;
}

div.sphinx dl pre,
div.sphinx blockquote pre,
div.sphinx li pre {
  margin-left: 0;
  padding-left: 30px;
}

div.sphinx tt,
div.sphinx code {
  background-color: #f5f5f5;
  color: #222;
}

div.sphinx tt.xref,
div.sphinx code.xref,
div.sphinx a tt {
  background-color: #f5f5f5;
  border-bottom: 1px solid #fff;
}

div.sphinx a.reference {
  text-decoration: none;
  border-bottom: 1px dotted #004b6b;
}

div.sphinx a.reference > code {
  color: #4872f9;
}

/* Don't put an underline on images */
div.sphinx a.image-reference,
div.sphinx a.image-reference:hover {
  border-bottom: none;
}

div.sphinx a.reference:hover {
  border-bottom: 1px solid #6d4100;
}

div.sphinx a.reference:hover > code {
  color: #5b1861;
}

div.sphinx a.footnote-reference {
  text-decoration: none;
  font-size: 0.7em;
  vertical-align: top;
  border-bottom: 1px dotted #004b6b;
}

div.sphinx a.footnote-reference:hover {
  border-bottom: 1px solid #6d4100;
}

div.sphinx a:hover tt,
div.sphinx a:hover code {
  background: #eee;
}

@media screen and (max-width: 870px) {
  div.sphinx div.sphinxsidebar {
    display: none;
  }

  div.sphinx div.document {
    width: 100%;
  }

  div.sphinx div.documentwrapper {
    margin-left: 0;
    margin-top: 0;
    margin-right: 0;
    margin-bottom: 0;
  }

  div.sphinx div.bodywrapper {
    margin-top: 0;
    margin-right: 0;
    margin-bottom: 0;
    margin-left: 0;
  }

  div.sphinx ul {
    margin-left: 0;
  }

  div.sphinx li > ul {
    /* Matches the 30px from the "ul, ol" selector above */
    margin-left: 30px;
  }

  div.sphinx .document {
    width: auto;
  }

  div.sphinx .bodywrapper {
    margin: 0;
  }

  div.sphinx .github {
    display: none;
  }
}

@media screen and (max-width: 875px) {
  div.sphinx div.documentwrapper {
    float: none;
    background: #fff;
  }

  div.sphinx div.sphinxsidebar {
    display: block;
    float: none;
    width: 102.5%;
    margin: 50px -30px -20px -30px;
    padding: 10px 20px;
    background: #333;
    color: #fff;
  }

  div.sphinx div.sphinxsidebar h3,
  div.sphinx div.sphinxsidebar h4,
  div.sphinx div.sphinxsidebar p,
  div.sphinx div.sphinxsidebar h3 a {
    color: #fff;
  }

  div.sphinx div.sphinxsidebar a {
    color: #aaa;
  }

  div.sphinx div.sphinxsidebar p.logo {
    display: none;
  }

  div.sphinx div.document {
    width: 100%;
    margin: 0;
  }

  div.sphinx div.bodywrapper {
    margin: 0;
  }

  div.sphinx .rtd_doc_footer {
    display: none;
  }

  div.sphinx .document {
    width: auto;
  }

  div.sphinx .github {
    display: none;
  }
}

/* misc. */

div.sphinx .revsys-inline {
  display: none !important;
}

/* Make nested-list/multi-paragraph items look better in Releases changelog
 * pages. Without this, docutils' magical list fuckery causes inconsistent
 * formatting between different release sub-lists.
 */
div.sphinx div#changelog > div.section > ul > li > p:only-child {
  margin-bottom: 0;
}

/* Hide fugly table cell borders in ..bibliography:: directive output */
div.sphinx table.docutils.citation,
div.sphinx table.docutils.citation td,
div.sphinx table.docutils.citation th {
  border: none;
  /* Below needed in some edge cases; if not applied, bottom shadows appear */
  -moz-box-shadow: none;
  -webkit-box-shadow: none;
  box-shadow: none;
}

/* relbar */

div.sphinx .related {
  line-height: 30px;
  width: 100%;
  font-size: 0.9rem;
}

div.sphinx .related.top {
  border-bottom: 1px solid #eee;
  margin-bottom: 20px;
}

div.sphinx .related.bottom {
  border-top: 1px solid #eee;
}

div.sphinx .related ul {
  padding: 0;
  margin: 0;
  list-style: none;
}

div.sphinx .related li {
  display: inline;
}

div.sphinx nav#rellinks {
  float: right;
}

div.sphinx nav#rellinks li + li:before {
  content: '|';
}

div.sphinx nav#breadcrumbs li + li:before {
  content: '\00BB';
}

/* Hide certain items when printing */
@media print {
  div.sphinx div.related {
    display: none;
  }
}
