/****************************************************
 * mkdocs + Material + mkdocstrings — Typography controls
 * - Class vs method signature sizes (requires your JS that tags
 *   headings with .is-class-header / .is-method-header)
 * - Body text sizing
 * - Parameters tables (robust selectors incl. Material wrappers)
 * - Code (inline + fenced blocks)
 * - Admonitions (??? blocks)
 ****************************************************/

/* ================================
 * Knobs (edit these)
 * ================================ */
.md-typeset {
  --sig-class-font-size: 1.2rem;   /* class signature size */
  --sig-method-scale: 0.9;        /* methods relative to class */
  --sig-line-height: 1.4;

  --body-font-size: 0.8rem;        /* doc body */
  --body-line-height: 1.6;

  /* Parameters table sizing */
  --params-table-font-size: 0.75rem;
  --param-name-font-size: 0.75rem;

  /* Code sizing */
  --code-inline-font-size: 0.8em; /* inline `code` relative to surrounding text */
  --code-block-font-size: 0.7rem; /* fenced code blocks */

  /* Admonitions (??? blocks) */
  --admonition-font-size: 0.7rem;       /* text inside ??? blocks */
  --admonition-title-font-size: 0.7rem;  /* the summary/title line */
}

/* ================================
 * Doc body text
 * ================================ */
.md-typeset .doc .doc-contents {
  font-size: var(--body-font-size);
  line-height: var(--body-line-height);
}

/* ================================
 * Tagged headings (from your JS)
 * ================================ */
.md-typeset .is-class-header,
.md-typeset .is-method-header {
  line-height: var(--sig-line-height);
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}
.md-typeset .is-class-header {
  font-size: var(--sig-class-font-size);
}
.md-typeset .is-method-header {
  font-size: calc(var(--sig-class-font-size) * var(--sig-method-scale));
}

/* ================================
 * Parameters table sizing — ROBUST
 * Material wraps tables with .md-typeset__table.
 * mkdocstrings may or may not add .doc-params.
 * We set the size on BOTH the wrapper and the table.
 * ================================ */

/* Common wrappers/tables inside docstrings */
.md-typeset .doc .doc-contents .md-typeset__table,
.md-typeset .doc .doc-contents .md-typeset__table table,
.md-typeset .doc .doc-contents table.doc-params,
.md-typeset .doc .doc-contents table.parameters,
.md-typeset .doc .doc-contents table.doc-attributes {
  font-size: var(--params-table-font-size);
}

/* Inside admonitions (??? blocks) too */
.md-typeset .doc .doc-contents .admonition .md-typeset__table,
.md-typeset .doc .doc-contents .admonition .md-typeset__table table,
.md-typeset .doc .doc-contents details .md-typeset__table,
.md-typeset .doc .doc-contents details .md-typeset__table table,
.md-typeset .doc .doc-contents .admonition table.doc-params,
.md-typeset .doc .doc-contents details table.doc-params {
  font-size: var(--params-table-font-size);
}

/* Parameter-name token (several fallbacks) */
.md-typeset .doc .doc-contents .doc-param-name,
.md-typeset .doc .doc-contents table td.name code,
.md-typeset .doc .doc-contents table td:first-child code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
               "Liberation Mono", "Courier New", monospace;
  font-size: var(--param-name-font-size);
}

/* Optional: denser padding (uncomment if you want tighter tables) */
/*
.md-typeset .doc .doc-contents .md-typeset__table table th,
.md-typeset .doc .doc-contents .md-typeset__table table td {
  padding: 0.3em 0.5em;
}
*/

/* ================================
 * Code font sizing
 * Inline code vs fenced code blocks
 * ================================ */

/* Inline code (not inside a <pre>) */
.md-typeset .doc .doc-contents :not(pre) > code {
  font-size: var(--code-inline-font-size);
}

/* Code blocks (fenced) – pygments/highlight.js */
.md-typeset pre code,
.md-typeset .highlight code {
  font-size: var(--code-block-font-size);
}

/* ================================
 * Admonitions (??? tip/example/… blocks)
 * ================================ */

/* The admonition container (both classic .admonition and <details>) */
.md-typeset .doc .doc-contents .admonition,
.md-typeset .doc .doc-contents details {
  font-size: var(--admonition-font-size);
  line-height: var(--body-line-height);
}

/* Title/summary line of the admonition */
.md-typeset .doc .doc-contents .admonition > .admonition-title,
.md-typeset .doc .doc-contents details > summary {
  font-size: var(--admonition-title-font-size);
}

/* Tables inside admonitions already covered above by the wrapper selectors */
