/* For pieces of Markdown rendered in table cells. */
.doc-contents td p {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}


/* Hide documentation strings from source code blocks */
.doc-contents details .highlight code {
  line-height: 0;
}

.doc-contents details .highlight code > * {
  line-height: initial;
}

.doc-contents details .highlight code > .sd {
  display: none;
}


/* Avoid breaking parameters name, etc. in table cells. */
.doc-contents td code {
  word-break: normal !important;
}

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

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

/* Fancier color for built-in types (only useful when cross-references are used). */
.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);
}

/* Indentation. */
div.doc-contents:not(.first) {
  padding-left: 25px;
  border-left: .05rem solid var(--md-typeset-table-color);
}

/* Mark external links as such. */
a.external::after,
a.autorefs-external::after {
  /* 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"></path></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"></path></svg>');
  content: ' ';

  display: inline-block;
  vertical-align: middle;
  position: relative;

  height: 1em;
  width: 1em;
  background-color: currentColor;
}

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

/* Tree-like output for backlinks. */
.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 > span:first-child {
  text-indent: .3rem;
}

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

  &:last-child {
    border-color: transparent;
  }

  &::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-left: var(--tree-thickness) var(--tree-style) var(--tree-clr);
    border-bottom: var(--tree-thickness) var(--tree-style) var(--tree-clr);
  }

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


h2 {
  padding-top: 1.3rem !important;
}

h3 {
  padding-top: 1.2rem !important;
}

h4 {
  padding-top: 1.1rem !important;
}

.doc-symbol-parameter::after {
  content: "P";
}

.doc-symbol-attribute::after {
  content: "A";
}

.doc-symbol-function::after {
  content: "F";
}

.doc-symbol-method::after {
  content: "M";
}

.doc-symbol-class::after {
  content: "C";
}

.doc-symbol-module::after {
  content: "M";
}
