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

/* No line break before first paragraph of descriptions. */
.doc-md-description,
.doc-md-description>p:first-child {
  display: inline;
}

/* No text transformation from Material for MkDocs for H5 headings. */
.md-typeset h5 .doc-object-name {
  text-transform: none;
}

/* Max width for docstring sections tables. */
.doc .md-typeset__table,
.doc .md-typeset__table table {
  display: table !important;
  width: 100%;
}

.doc .md-typeset__table tr {
  display: table-row;
}

/* Defaults in Spacy table style. */
.doc-param-default,
.doc-type_param-default {
  float: right;
}

/* Parameter headings must be inline, not blocks. */
.doc-heading-parameter,
.doc-heading-type_parameter {
  display: inline;
}

/* Default font size for parameter headings. */
.md-typeset .doc-heading-parameter {
  font-size: inherit;
}

/* Prefer space on the right, not the left of parameter permalinks. */
.doc-heading-parameter .headerlink,
.doc-heading-type_parameter .headerlink {
  margin-left: 0 !important;
  margin-right: 0.2rem;
}

/* Backward-compatibility: docstring section titles in bold. */
.doc-section-title {
  font-weight: bold;
}

/* Backlinks crumb separator. */
.doc-backlink-crumb {
  display: inline-flex;
  gap: .2rem;
  white-space: nowrap;
  align-items: center;
  vertical-align: middle;
}
.doc-backlink-crumb:not(:first-child)::before {
  background-color: var(--md-default-fg-color--lighter);
  content: "";
  display: inline;
  height: 1rem;
  --md-path-icon: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.59 16.58 13.17 12 8.59 7.41 10 6l6 6-6 6z"/></svg>');
  -webkit-mask-image: var(--md-path-icon);
  mask-image: var(--md-path-icon);
  width: 1rem;
}
.doc-backlink-crumb.last {
  font-weight: bold;
}

/* Symbols in Navigation and ToC. */
:root, :host,
[data-md-color-scheme="default"] {
  --doc-symbol-parameter-fg-color: #df50af;
  --doc-symbol-type_parameter-fg-color: #df50af;
  --doc-symbol-attribute-fg-color: #953800;
  --doc-symbol-function-fg-color: #8250df;
  --doc-symbol-method-fg-color: #8250df;
  --doc-symbol-class-fg-color: #0550ae;
  --doc-symbol-type_alias-fg-color: #0550ae;
  --doc-symbol-module-fg-color: #5cad0f;

  --doc-symbol-parameter-bg-color: #df50af1a;
  --doc-symbol-type_parameter-bg-color: #df50af1a;
  --doc-symbol-attribute-bg-color: #9538001a;
  --doc-symbol-function-bg-color: #8250df1a;
  --doc-symbol-method-bg-color: #8250df1a;
  --doc-symbol-class-bg-color: #0550ae1a;
  --doc-symbol-type_alias-bg-color: #0550ae1a;
  --doc-symbol-module-bg-color: #5cad0f1a;

  /* Nim-specific symbol colors */
  --doc-symbol-const-fg-color: #cf222e;
  --doc-symbol-const-bg-color: #cf222e1a;
  --doc-symbol-var-fg-color: #953800;
  --doc-symbol-var-bg-color: #9538001a;
  --doc-symbol-let-fg-color: #953800;
  --doc-symbol-let-bg-color: #9538001a;
  --doc-symbol-type-fg-color: #0550ae;
  --doc-symbol-type-bg-color: #0550ae1a;
  --doc-symbol-proc-fg-color: #8250df;
  --doc-symbol-proc-bg-color: #8250df1a;
  --doc-symbol-func-fg-color: #8250df;
  --doc-symbol-func-bg-color: #8250df1a;
  --doc-symbol-iterator-fg-color: #8250df;
  --doc-symbol-iterator-bg-color: #8250df1a;
  --doc-symbol-template-fg-color: #8250df;
  --doc-symbol-template-bg-color: #8250df1a;
  --doc-symbol-macro-fg-color: #8250df;
  --doc-symbol-macro-bg-color: #8250df1a;
  --doc-symbol-converter-fg-color: #8250df;
  --doc-symbol-converter-bg-color: #8250df1a;
}

[data-md-color-scheme="slate"] {
  --doc-symbol-parameter-fg-color: #ffa8cc;
  --doc-symbol-type_parameter-fg-color: #ffa8cc;
  --doc-symbol-attribute-fg-color: #ffa657;
  --doc-symbol-function-fg-color: #d2a8ff;
  --doc-symbol-method-fg-color: #d2a8ff;
  --doc-symbol-class-fg-color: #79c0ff;
  --doc-symbol-type_alias-fg-color: #79c0ff;
  --doc-symbol-module-fg-color: #baff79;

  --doc-symbol-parameter-bg-color: #ffa8cc1a;
  --doc-symbol-type_parameter-bg-color: #ffa8cc1a;
  --doc-symbol-attribute-bg-color: #ffa6571a;
  --doc-symbol-function-bg-color: #d2a8ff1a;
  --doc-symbol-method-bg-color: #d2a8ff1a;
  --doc-symbol-class-bg-color: #79c0ff1a;
  --doc-symbol-type_alias-bg-color: #79c0ff1a;
  --doc-symbol-module-bg-color: #baff791a;

  /* Nim-specific symbol colors (dark mode) */
  --doc-symbol-const-fg-color: #ff7b72;
  --doc-symbol-const-bg-color: #ff7b721a;
  --doc-symbol-var-fg-color: #ffa657;
  --doc-symbol-var-bg-color: #ffa6571a;
  --doc-symbol-let-fg-color: #ffa657;
  --doc-symbol-let-bg-color: #ffa6571a;
  --doc-symbol-type-fg-color: #79c0ff;
  --doc-symbol-type-bg-color: #79c0ff1a;
  --doc-symbol-proc-fg-color: #d2a8ff;
  --doc-symbol-proc-bg-color: #d2a8ff1a;
  --doc-symbol-func-fg-color: #d2a8ff;
  --doc-symbol-func-bg-color: #d2a8ff1a;
  --doc-symbol-iterator-fg-color: #d2a8ff;
  --doc-symbol-iterator-bg-color: #d2a8ff1a;
  --doc-symbol-template-fg-color: #d2a8ff;
  --doc-symbol-template-bg-color: #d2a8ff1a;
  --doc-symbol-macro-fg-color: #d2a8ff;
  --doc-symbol-macro-bg-color: #d2a8ff1a;
  --doc-symbol-converter-fg-color: #d2a8ff;
  --doc-symbol-converter-bg-color: #d2a8ff1a;
}

code.doc-symbol {
  border-radius: .1rem;
  font-size: .85em;
  padding: 0 .3em;
  font-weight: bold;
}

code.doc-symbol-parameter,
a code.doc-symbol-parameter {
  color: var(--doc-symbol-parameter-fg-color);
  background-color: var(--doc-symbol-parameter-bg-color);
}

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

code.doc-symbol-type_parameter,
a code.doc-symbol-type_parameter {
  color: var(--doc-symbol-type_parameter-fg-color);
  background-color: var(--doc-symbol-type_parameter-bg-color);
}

code.doc-symbol-type_parameter::after {
  content: "type-param";
}

code.doc-symbol-attribute,
a code.doc-symbol-attribute {
  color: var(--doc-symbol-attribute-fg-color);
  background-color: var(--doc-symbol-attribute-bg-color);
}

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

code.doc-symbol-function,
a code.doc-symbol-function {
  color: var(--doc-symbol-function-fg-color);
  background-color: var(--doc-symbol-function-bg-color);
}

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

code.doc-symbol-method,
a code.doc-symbol-method {
  color: var(--doc-symbol-method-fg-color);
  background-color: var(--doc-symbol-method-bg-color);
}

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

code.doc-symbol-class,
a code.doc-symbol-class {
  color: var(--doc-symbol-class-fg-color);
  background-color: var(--doc-symbol-class-bg-color);
}

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


code.doc-symbol-type_alias,
a code.doc-symbol-type_alias {
  color: var(--doc-symbol-type_alias-fg-color);
  background-color: var(--doc-symbol-type_alias-bg-color);
}

code.doc-symbol-type_alias::after {
  content: "type";
}

code.doc-symbol-module,
a code.doc-symbol-module {
  color: var(--doc-symbol-module-fg-color);
  background-color: var(--doc-symbol-module-bg-color);
}

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

/* Nim-specific symbol styles */
code.doc-symbol-const,
a code.doc-symbol-const {
  color: var(--doc-symbol-const-fg-color);
  background-color: var(--doc-symbol-const-bg-color);
}

code.doc-symbol-const::after {
  content: "const";
}

code.doc-symbol-var,
a code.doc-symbol-var {
  color: var(--doc-symbol-var-fg-color);
  background-color: var(--doc-symbol-var-bg-color);
}

code.doc-symbol-var::after {
  content: "var";
}

code.doc-symbol-let,
a code.doc-symbol-let {
  color: var(--doc-symbol-let-fg-color);
  background-color: var(--doc-symbol-let-bg-color);
}

code.doc-symbol-let::after {
  content: "let";
}

code.doc-symbol-type,
a code.doc-symbol-type {
  color: var(--doc-symbol-type-fg-color);
  background-color: var(--doc-symbol-type-bg-color);
}

code.doc-symbol-type::after {
  content: "type";
}

code.doc-symbol-proc,
a code.doc-symbol-proc {
  color: var(--doc-symbol-proc-fg-color);
  background-color: var(--doc-symbol-proc-bg-color);
}

code.doc-symbol-proc::after {
  content: "proc";
}

code.doc-symbol-func,
a code.doc-symbol-func {
  color: var(--doc-symbol-func-fg-color);
  background-color: var(--doc-symbol-func-bg-color);
}

code.doc-symbol-func::after {
  content: "func";
}

code.doc-symbol-iterator,
a code.doc-symbol-iterator {
  color: var(--doc-symbol-iterator-fg-color);
  background-color: var(--doc-symbol-iterator-bg-color);
}

code.doc-symbol-iterator::after {
  content: "iter";
}

code.doc-symbol-template,
a code.doc-symbol-template {
  color: var(--doc-symbol-template-fg-color);
  background-color: var(--doc-symbol-template-bg-color);
}

code.doc-symbol-template::after {
  content: "templ";
}

code.doc-symbol-macro,
a code.doc-symbol-macro {
  color: var(--doc-symbol-macro-fg-color);
  background-color: var(--doc-symbol-macro-bg-color);
}

code.doc-symbol-macro::after {
  content: "macro";
}

code.doc-symbol-converter,
a code.doc-symbol-converter {
  color: var(--doc-symbol-converter-fg-color);
  background-color: var(--doc-symbol-converter-bg-color);
}

code.doc-symbol-converter::after {
  content: "conv";
}

.doc-signature .autorefs {
  color: inherit;
  border-bottom: 1px dotted currentcolor;
}

/* Source code blocks (admonitions). */
:root {
  --md-admonition-icon--mkdocstrings-source: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.22 4.97a.75.75 0 0 1 1.06 0l6.5 6.5a.75.75 0 0 1 0 1.06l-6.5 6.5a.749.749 0 0 1-1.275-.326.75.75 0 0 1 .215-.734L21.19 12l-5.97-5.97a.75.75 0 0 1 0-1.06m-6.44 0a.75.75 0 0 1 0 1.06L2.81 12l5.97 5.97a.749.749 0 0 1-.326 1.275.75.75 0 0 1-.734-.215l-6.5-6.5a.75.75 0 0 1 0-1.06l6.5-6.5a.75.75 0 0 1 1.06 0"/></svg>')
}
.md-typeset .admonition.mkdocstrings-source,
.md-typeset details.mkdocstrings-source {
  border: none;
  padding: 0;
}
.md-typeset .admonition.mkdocstrings-source:focus-within,
.md-typeset details.mkdocstrings-source:focus-within {
  box-shadow: none;
}
.md-typeset .mkdocstrings-source > .admonition-title,
.md-typeset .mkdocstrings-source > summary {
  background-color: inherit;
}
.md-typeset .mkdocstrings-source > .admonition-title::before,
.md-typeset .mkdocstrings-source > summary::before {
  background-color: var(--md-default-fg-color);
  -webkit-mask-image: var(--md-admonition-icon--mkdocstrings-source);
          mask-image: var(--md-admonition-icon--mkdocstrings-source);
}

/* Attribution footer for documented modules */
.doc-attribution {
  margin-top: 2rem;
  padding-top: 1rem;
  border-top: 1px solid var(--md-default-fg-color--lightest);
  text-align: right;
  opacity: 0.6;
}

.doc-attribution:hover {
  opacity: 1;
}

.doc-attribution a {
  color: inherit;
}

/* Type field documentation */
.doc-section-fields,
.doc-section-values {
  margin-top: 1rem;
}

.doc-field-list,
.doc-value-list {
  list-style: none;
  padding-left: 0;
  margin: 0.5rem 0;
}

.doc-field,
.doc-value {
  padding: 0.25rem 0;
  border-bottom: 1px solid var(--md-default-fg-color--lightest);
}

.doc-field:last-child,
.doc-value:last-child {
  border-bottom: none;
}

.doc-field-name,
.doc-value-name {
  font-weight: 600;
}

.doc-field-type,
.doc-value-explicit code {
  color: var(--md-code-fg-color);
  background-color: var(--md-code-bg-color);
  padding: 0.1em 0.3em;
  border-radius: 0.2rem;
  margin-left: 0.3em;
}

.doc-field-private {
  opacity: 0.7;
}

.doc-field-private-label {
  color: var(--md-default-fg-color--lighter);
  font-size: 0.85em;
  font-style: italic;
  margin-left: 0.3em;
}

.doc-field-branch {
  color: var(--md-default-fg-color--lighter);
  font-size: 0.85em;
  margin-left: 0.3em;
}

.doc-field-description,
.doc-value-description {
  color: var(--md-default-fg-color--light);
}

/* Doc object container - visual separation between entries */
.doc.doc-object {
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--md-default-fg-color--lightest);
}

.doc.doc-object:last-child {
  border-bottom: none;
}

/* Doc heading - tighter spacing */
.doc.doc-heading {
  margin-bottom: 0.5rem;
}

/* Pragma/label badges - supports both standalone and key:value formats */
.doc-label {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 500;
  padding: 0.1em 0.4em;
  margin-left: 0.5em;
  border-radius: 0.25rem;
  background-color: var(--md-default-fg-color--lightest);
  color: var(--md-default-fg-color--light);
  vertical-align: middle;
  font-family: var(--md-code-font-family);
}

/* Key-value pragma styling (e.g., deprecated: "msg") */
.doc-label[data-label*=":"] {
  background-color: #fff3cd;
  color: #856404;
}

[data-md-color-scheme="slate"] .doc-label[data-label*=":"] {
  background-color: #4a3f0a;
  color: #ffc107;
}

/* Signature block - subtle background */
.doc-signature {
  margin: 0.5rem 0;
  border-radius: 0.25rem;
}

.doc-signature pre {
  margin: 0;
  padding: 0.5rem 0.75rem;
  background-color: var(--md-code-bg-color);
  border-left: 3px solid var(--md-accent-fg-color);
}

/* Doc contents - tighter spacing */
.doc.doc-contents {
  margin-top: 0.75rem;
  padding-left: 0;
}

/* Section headings (Parameters, Returns, etc.) - smaller and muted */
.doc-section h5 {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--md-default-fg-color--light);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin: 0.75rem 0 0.25rem 0;
  border: none;
}

/* Parameters list - more compact */
.doc-section-parameters ul,
.doc-section-returns ul,
.doc-section-raises ul {
  margin: 0.25rem 0;
  padding-left: 1.25rem;
}

.doc-section-parameters li,
.doc-section-returns li,
.doc-section-raises li {
  margin: 0.15rem 0;
  font-size: 0.9rem;
}

/* Returns section - inline when simple */
.doc-section-returns p {
  margin: 0.25rem 0;
  font-size: 0.9rem;
}

/* Raises section - subtle warning styling */
.doc-section-raises {
  border-left: 2px solid #d97706;
  padding-left: 0.75rem;
  margin-top: 0.5rem;
}

.doc-section-raises h5 {
  color: #d97706;
}

[data-md-color-scheme="slate"] .doc-section-raises {
  border-left-color: #fbbf24;
}

[data-md-color-scheme="slate"] .doc-section-raises h5 {
  color: #fbbf24;
}

/* Description - tighter paragraph spacing */
.doc-description p {
  margin: 0.5rem 0;
}

.doc-description p:first-child {
  margin-top: 0;
}

/* Source link styling - footnote-like appearance */
.doc-source {
  font-size: 0.7rem;
  color: var(--md-default-fg-color--lighter);
  margin-top: 0.75rem;
  text-align: right;
  opacity: 0.7;
}

.doc-source:hover {
  opacity: 1;
}

.doc-source-label {
  font-style: italic;
}

.doc-source a {
  color: inherit;
}

.doc-source a:hover {
  color: var(--md-accent-fg-color);
}

.doc-source code {
  font-size: inherit;
  background: none;
  padding: 0;
}
