/* API components only. Material owns fonts, content width and global rhythm. */
.md-typeset .api-signature {
  border: 1px solid var(--md-default-fg-color--lightest);
  border-inline-start: 3px solid var(--md-accent-fg-color);
  border-radius: .3rem;
  background: var(--md-code-bg-color);
  margin-block: 1.2em;
  overflow: hidden;
  position: relative;
  box-shadow: 0 2px 8px rgb(25 45 70 / 6%);
}
.md-typeset .api-signature pre { margin: 0; }
.md-typeset .api-signature pre > code {
  padding: 1.1em 3.1rem 1.1em 1.25em;
  background: transparent;
  line-height: 1.7;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.md-typeset .api-signature .api-sig-name {
  color: var(--api-input-ink, var(--md-accent-fg-color));
  font-weight: 700;
}
.md-typeset .api-signature .api-sig-module {
  color: var(--api-type-ink, var(--md-default-fg-color--light));
  font-weight: 400;
}
.md-typeset .api-signature .api-sig-keyword {
  color: var(--md-default-fg-color--light);
  font-weight: 400;
}
.md-typeset .api-signature .api-sig-return,
.md-typeset .api-signature .api-sig-return span {
  color: var(--api-output-ink, var(--md-code-hl-name-color));
}
.md-typeset .api-signature button[data-clipboard-target] {
  color: var(--api-input-ink, var(--md-accent-fg-color));
  opacity: .8;
  background-color: var(--md-default-bg-color);
  border: 1px solid var(--api-input-edge, var(--md-default-fg-color--lightest));
  border-radius: .2rem;
}
.md-typeset .api-signature button[data-clipboard-target]:is(:hover, :focus-visible) {
  opacity: 1;
  border-color: currentColor;
}
.md-typeset :is(.api-parameters, .api-other-parameters, .api-returns, .api-raises, .api-attributes, .api-fields) {
  /* Shared root-relative inset: a smaller title font must not shrink its bleed. */
  --api-panel-inset: .8rem;
  border: 1px solid var(--md-default-fg-color--lightest);
  border-radius: .2rem;
  box-shadow: none;
  background: transparent;
  font-size: inherit;
  padding-inline: var(--api-panel-inset);
  margin-block: 1em;
  overflow: hidden;
}
.md-typeset :is(.api-parameters, .api-other-parameters, .api-returns, .api-raises, .api-attributes, .api-fields) > .admonition-title {
  background: var(--md-code-bg-color);
  border-bottom: 1px solid var(--md-default-fg-color--lightest);
  padding: .65em var(--api-panel-inset);
  margin-inline: calc(-1 * var(--api-panel-inset));
  border-radius: 0;
  font-size: .85em;
}
.md-typeset :is(.api-parameters, .api-other-parameters, .api-returns, .api-raises, .api-attributes, .api-fields) > .admonition-title::before {
  display: none;
}
.md-typeset :is(.api-parameters, .api-other-parameters, .api-returns, .api-raises, .api-attributes, .api-fields) dl {
  margin-block: .75em 1em;
}
.md-typeset :is(.api-parameters, .api-other-parameters, .api-returns, .api-raises, .api-attributes, .api-fields) dt {
  border-top: 1px solid var(--md-default-fg-color--lightest);
  padding-top: .8em;
  margin-top: .8em;
  font-weight: 600;
  overflow-wrap: anywhere;
}
.md-typeset :is(.api-parameters, .api-other-parameters, .api-returns, .api-raises, .api-attributes, .api-fields) dt:first-child {
  border-top: 0;
  padding-top: 0;
  margin-top: 0;
}
.md-typeset :is(.api-parameters, .api-other-parameters, .api-returns, .api-raises, .api-attributes, .api-fields) dt :is(em, .field-type, .api-field-type) {
  color: var(--md-default-fg-color--light);
  font-style: normal;
  font-weight: normal;
}
.md-typeset .api-field-name { background: transparent; padding: 0; }
.md-typeset :is(.api-parameters, .api-other-parameters, .api-returns, .api-raises, .api-attributes, .api-fields) dd {
  margin: .35em 0 0;
}
.md-typeset :is(.api-parameters, .api-other-parameters, .api-returns, .api-raises, .api-attributes, .api-fields) dd > p:first-child { margin-top: 0; }
.md-typeset .api-meta, .md-typeset .source-note {
  color: var(--md-default-fg-color--light);
  font-size: .8em;
  overflow-wrap: anywhere;
}
.md-typeset .api-meta code { background: transparent; }
.md-typeset .field-type { margin-inline-start: .5em; }
.md-typeset .method-detail {
  background: transparent;
  border: 1px solid var(--md-default-fg-color--lightest);
  border-radius: .2rem;
  box-shadow: none;
  font-size: inherit;
  padding-inline: 1em;
  scroll-margin-top: 4rem;
}
.md-typeset .method-detail > summary {
  background: transparent;
  margin-inline: -1em;
  padding: .8em 2.5em .8em 1em;
}
.md-typeset .method-detail > summary::before { display: none; }
.md-typeset .method-detail > summary code { background: transparent; }
.md-typeset .method-detail > summary span {
  display: block;
  color: var(--md-default-fg-color--light);
  font-size: .85em;
  font-weight: normal;
  margin-top: .35em;
}
.md-typeset .method-detail[open] > summary { border-bottom: 1px solid var(--md-default-fg-color--lightest); }
.md-typeset .method-tools { display: flex; gap: 1em; align-items: end; }
.md-typeset .method-tools label { flex: 1; font-size: .85em; color: var(--md-default-fg-color--light); }
.md-typeset .method-tools input {
  display: block;
  width: 100%;
  border: 1px solid var(--md-default-fg-color--lightest);
  border-radius: .2rem;
  padding: .6em .75em;
  margin-top: .35em;
  color: var(--md-default-fg-color);
  background: var(--md-default-bg-color);
}
.md-typeset .method-tools button {
  padding: .6em .75em;
  font-size: .85em;
  border: 1px solid var(--md-default-fg-color--lightest);
  border-radius: .2rem;
  cursor: pointer;
}
.md-typeset .method-tools button:hover { color: var(--md-accent-fg-color); border-color: currentColor; }
.md-typeset .member-anchor { scroll-margin-top: 4rem; }
@media print {
  .md-typeset .method-tools { display: none; }
  .md-typeset .tabbed-block { display: block !important; }
  .md-typeset .method-detail > * { display: block !important; }
}

/* Shared skin renderer. Each skin supplies tokens, never page-specific rules. */
.md-typeset :is(.api-parameters, .api-other-parameters, .api-attributes, .api-raises, .api-fields) {
  --api-section-ink: var(--api-input-ink);
  --api-section-tint: var(--api-input-tint);
  --api-section-edge: var(--api-input-edge);
  --api-name-ink: var(--api-input-name-ink);
  --api-name-fill: var(--api-input-name-fill);
}
.md-typeset .api-returns {
  --api-section-ink: var(--api-output-ink);
  --api-section-tint: var(--api-output-tint);
  --api-section-edge: var(--api-output-edge);
  --api-name-ink: var(--api-output-name-ink);
  --api-name-fill: var(--api-output-name-fill);
}
.md-typeset :is(.api-parameters, .api-other-parameters, .api-attributes, .api-raises, .api-returns, .api-fields) {
  border-color: var(--api-section-edge);
}
.md-typeset :is(.api-parameters, .api-other-parameters, .api-attributes, .api-raises, .api-returns, .api-fields) > .admonition-title {
  color: var(--api-section-ink);
  background: var(--api-section-tint);
  border-bottom-color: var(--api-section-edge);
  box-shadow: none;
}
.md-typeset :is(.api-parameters, .api-other-parameters, .api-attributes, .api-raises, .api-returns, .api-fields) dt {
  border-top-color: var(--api-section-edge);
}
.md-typeset :is(.api-parameters, .api-other-parameters, .api-attributes, .api-raises, .api-returns, .api-fields) dt > code {
  color: var(--api-name-ink);
  background: var(--api-name-fill);
  box-shadow: 0 0 0 .16em var(--api-name-fill);
  border-radius: .12em;
  font-weight: 700;
}
.md-typeset :is(.api-parameters, .api-other-parameters, .api-attributes, .api-raises, .api-returns, .api-fields) dt :is(.api-field-type, .field-type, em) {
  color: var(--api-type-ink);
}
.md-typeset .api-field-type { margin-inline-start: .35em; }
.md-typeset .api-signature {
  border-color: var(--api-input-edge);
  border-inline-start-color: var(--api-input-ink);
  background: linear-gradient(110deg, var(--api-input-tint), var(--api-signature-fill) 65%);
}
.md-typeset .api-signature pre > code { background: transparent; }
.md-typeset .method-detail > summary code { color: var(--api-input-ink); font-weight: 700; }
.md-typeset .method-detail[open] { border-color: var(--api-input-edge); }
.md-typeset .method-detail[open] > summary { background: var(--api-input-tint); border-bottom-color: var(--api-input-edge); }

/* G — blue inputs and teal outputs; meaning encoded at the component level. */
.md-typeset {
  --api-input-ink: #1459a6;
  --api-input-tint: #eef5ff;
  --api-input-edge: #ccdff4;
  --api-input-name-ink: #1459a6;
  --api-input-name-fill: #eaf3ff;
  --api-output-ink: #00685f;
  --api-output-tint: #ebf7f3;
  --api-output-edge: #bfdfd5;
  --api-output-name-ink: #00685f;
  --api-output-name-fill: #e5f5ef;
  --api-type-ink: #4c5968;
  --api-signature-fill: #f7faff;
}

.md-typeset .api-note { margin-block: 1.4em; }
.md-typeset .api-note h4, .md-typeset .api-examples h4 { font-weight: 700; }
.md-typeset .api-class-tabs .doc-signature { margin-block: 1em; }
/* Attributes are compact reference entries, not callable signatures. */
.md-typeset .doc-object.doc-attribute { margin-block: 1em; }
.md-typeset .doc-attribute + .doc-attribute {
  border-top: 1px solid var(--md-default-fg-color--lightest);
  padding-top: 1em;
}
.md-typeset .doc-attribute > .doc-heading {
  margin: 0 0 .4em;
  font-size: 1em;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: normal;
}
.md-typeset .doc-attribute > .doc-heading > .api-field-name {
  color: var(--api-input-name-ink);
  background: var(--api-input-name-fill);
  font-weight: 700;
}
.md-typeset .api-attribute-type {
  color: var(--api-type-ink);
  font-weight: 400;
  overflow-wrap: anywhere;
}
.md-typeset .api-attribute-type code {
  color: inherit;
  background: none;
  padding: 0;
}
.md-typeset .doc-attribute > .doc-contents > p:first-child { margin-top: 0; }
.md-typeset .doc-attribute > .doc-contents > p:last-child { margin-bottom: 0; }

/* Short source summary and related APIs stay above the function's tabs. */
.md-typeset .api-function-related .api-note { margin-block: .65em 1em; }
.md-typeset .api-function-related h4 {
  color: var(--api-type-ink);
  font-size: .85em;
  margin-block: 0 .35em;
}
.md-typeset .api-function-related ul { margin-block: .35em; }
.md-typeset .api-function-related li { margin-block: .2em; }

/* Keep navigation compact; full labels remain in the DOM and native tooltips. */
.md-nav--primary .md-nav__link > svg {
  width: 1.1em;
  height: 1.1em;
  flex: 0 0 1.1em;
  margin-top: .15em;
}
.md-nav--primary .md-nav__link .md-ellipsis {
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
