/* ========================================
   Theme tokens
   ======================================== */

:root > * {
  --md-primary-fg-color: #040406;
  --md-primary-fg-color--dark: #90030c;
  --md-default-bg-color: #1a1a1b;
  --md-typeset-color: #ddd;
  --md-typeset-a-color: #90030c;
}

[data-md-color-scheme="slate"] {
  --doc-symbol-parameter-fg-color: #ffa8cc;
  --doc-symbol-type_parameter-fg-color: #ffa8cc;
  --doc-symbol-attribute-fg-color: #963fb8;
  --doc-symbol-function-fg-color: #6d67e4;
  --doc-symbol-method-fg-color: #6d67e4;
  --doc-symbol-class-fg-color: #46c2cb;
  --doc-symbol-type_alias-fg-color: #46c2cb;
  --doc-symbol-module-fg-color: #f2f7a1;

  --doc-symbol-parameter-bg-color: #ffa8cc1a;
  --doc-symbol-type_parameter-bg-color: #ffa8cc1a;
  --doc-symbol-attribute-bg-color: #963fb81a;
  --doc-symbol-function-bg-color: #6d67e41a;
  --doc-symbol-method-bg-color: #6d67e41a;
  --doc-symbol-class-bg-color: #46c2cb1a;
  --doc-symbol-type_alias-bg-color: #46c2cb1a;
  --doc-symbol-module-bg-color: #f2f7a11a;
}

/* ========================================
   Layout
   ======================================== */

.wy-nav-content {
  max-width: 1000px;
}

.md-nav__item--section {
  margin: 1.5rem 0;
}

.md-nav__link .md-nav__icon {
  margin-left: 0 !important;
}

/* ========================================
   Tables
   ======================================== */

td,
th {
  padding: 5px;
  vertical-align: middle;
}

/* ========================================
   Typography
   ======================================== */

p {
  margin-top: 0.1rem;
}

.md-typeset h1 {
  margin: 1.25rem 0 0.25em;
  color: var(--md-typeset-a-color);
  font-weight: 700;
}

.md-typeset h1:first-child {
  margin-top: 0;
}

.md-typeset h2 {
  margin: 1rem 0 0.25em;
  font-weight: 400;
}

.md-typeset h2 :not(.doc-class-name, .doc-symbol-class) {
  color: var(--md-typeset-a-color);
}


/* ========================================
   mkdocstrings signatures
   ======================================== */

/* Operators such as * and | */
.doc-signature .o {
  color: var(--md-code-hl-special-color);
}

/* Constants such as None, True, False */
.doc-signature .kc {
  color: var(--md-code-hl-constant-color);
}

/* Built-in types when cross-referenced to Python docs */
.doc-signature .n > a[href^="https://docs.python.org/"][href*="/functions.html#"],
.doc-signature .n > a[href^="https://docs.python.org/"][href*="/stdtypes.html#"] {
  color: var(--md-code-hl-constant-color);
}

/* Nested doc contents indentation */
.doc-children:not(:first-child) {
  margin-left: 1rem;
  padding-left: 1rem;
  border-left: 0.05rem solid var(--md-typeset-table-color);
}

/* Code object margin */
.doc-attribute, .doc-class {
    margin-top: 2.5rem;
}

/* ========================================
   External links
   ======================================== */

a.external::after,
a.autorefs-external::after {
  content: "";
  display: inline-block;
  position: relative;
  vertical-align: middle;
  width: 1em;
  height: 1em;
  background-color: currentColor;

  /* https://primer.style/octicons/arrow-up-right-24 */
  mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.25 15.5a.75.75 0 00.75-.75v-9a.75.75 0 00-.75-.75h-9a.75.75 0 000 1.5h7.19L6.22 16.72a.75.75 0 101.06 1.06L17.5 7.56v7.19c0 .414.336.75.75.75z"/></svg>');
  -webkit-mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.25 15.5a.75.75 0 00.75-.75v-9a.75.75 0 00-.75-.75h-9a.75.75 0 000 1.5h7.19L6.22 16.72a.75.75 0 101.06 1.06L17.5 7.56v7.19c0 .414.336.75.75.75z"/></svg>');
}

a.external:hover::after,
a.autorefs-external:hover::after {
  background-color: var(--md-accent-fg-color);
}

/* ========================================
   Backlink tree
   ======================================== */

.doc-backlink-list {
  --tree-clr: var(--md-default-fg-color);
  --tree-font-size: 1rem;
  --tree-item-height: 1;
  --tree-offset: 1rem;
  --tree-thickness: 1px;
  --tree-style: solid;

  display: grid;
  list-style: none !important;
}

.doc-backlink-list li {
  position: relative;
  margin-left: 0 !important;
  padding-inline-start: var(--tree-offset);
  border-left: var(--tree-thickness) var(--tree-style) var(--tree-clr);
}

.doc-backlink-list li:last-child {
  border-color: transparent;
}

.doc-backlink-list li::before {
  content: "";
  position: absolute;
  top: calc(var(--tree-item-height) / 2 * -1 * var(--tree-font-size) + var(--tree-thickness));
  left: calc(var(--tree-thickness) * -1);
  width: calc(var(--tree-offset) + var(--tree-thickness) * 2);
  height: calc(var(--tree-item-height) * var(--tree-font-size));
  border-bottom: var(--tree-thickness) var(--tree-style) var(--tree-clr);
  border-left: var(--tree-thickness) var(--tree-style) var(--tree-clr);
}

.doc-backlink-list li::after {
  content: "";
  position: absolute;
  top: calc(var(--tree-item-height) / 2 * 1rem);
  left: var(--tree-offset);
  border-radius: 50%;
  background-color: var(--tree-clr);
  translate: calc(var(--tree-thickness) * -1) calc(var(--tree-thickness) * -1);
}

.doc-backlink-list li > span:first-child {
  text-indent: 0.3rem;
}
