/* mkdocs-eocube — Material for MkDocs on the EOCube tokens.
   Load order: Material main.css, palette.css, tokens.css (which also re-declares the colour
   tokens under [data-md-color-scheme="default"|"slate"]), eo.css, then this file. Colours and
   faces only ever come from the tokens; lengths from the spacing/radius/size tokens, with the
   type sizes the DocsPage component fixes (body-lg 16/26, title-1 26/34, title-2 20/28,
   title-3 16/24, body-sm 13/20, label 12/16, code 13/20, code-sm 12/18). */

/* ---- 1 · Material's variables → the tokens (both schemes, since the tokens switch per scheme) */
body[data-md-color-scheme], body:not([data-md-color-scheme]) {
  --md-text-font: "IBM Plex Sans";
  --md-code-font: "IBM Plex Mono";
  --md-text-font-family: var(--font-sans);
  --md-code-font-family: var(--font-mono);

  --md-primary-fg-color: var(--brand-navy);
  --md-primary-fg-color--light: var(--brand-navy-hover);
  --md-primary-fg-color--dark: var(--brand-navy);
  --md-primary-bg-color: var(--on-brand);
  --md-primary-bg-color--light: var(--on-brand-muted);
  --md-accent-fg-color: var(--accent);
  --md-accent-fg-color--transparent: var(--accent-tint);
  --md-accent-bg-color: var(--on-accent);
  --md-accent-bg-color--light: var(--on-accent);

  --md-default-bg-color: var(--page);
  --md-default-bg-color--light: color-mix(in srgb, var(--page) 70%, transparent);
  --md-default-bg-color--lighter: color-mix(in srgb, var(--page) 30%, transparent);
  --md-default-bg-color--lightest: color-mix(in srgb, var(--page) 12%, transparent);
  --md-default-fg-color: var(--ink);
  --md-default-fg-color--light: var(--ink-2);
  --md-default-fg-color--lighter: var(--ink-muted);
  --md-default-fg-color--lightest: var(--border);

  --md-typeset-color: var(--ink);
  --md-typeset-a-color: var(--link);
  --md-typeset-mark-color: var(--warning-tint);
  --md-typeset-del-color: var(--danger-tint);
  --md-typeset-ins-color: var(--success-tint);
  --md-typeset-kbd-color: var(--surface-2);
  --md-typeset-kbd-accent-color: var(--surface);
  --md-typeset-kbd-border-color: var(--border-strong);
  --md-typeset-table-color: var(--border);
  --md-typeset-table-color--light: var(--surface-2);

  --md-code-fg-color: var(--ink);
  --md-code-bg-color: var(--surface-2);
  --md-code-bg-color--light: var(--surface-2);
  --md-code-bg-color--lighter: var(--surface-3);
  --md-code-hl-color: var(--accent-tint);
  --md-code-hl-color--light: var(--accent-tint);
  --md-code-hl-keyword-color: var(--code-keyword);
  --md-code-hl-string-color: var(--code-string);
  --md-code-hl-number-color: var(--code-number);
  --md-code-hl-function-color: var(--code-function);
  --md-code-hl-comment-color: var(--code-comment);
  --md-code-hl-constant-color: var(--code-keyword);
  --md-code-hl-special-color: var(--danger);
  --md-code-hl-name-color: var(--ink);
  --md-code-hl-operator-color: var(--ink-2);
  --md-code-hl-punctuation-color: var(--ink-2);
  --md-code-hl-variable-color: var(--ink);
  --md-code-hl-generic-color: var(--ink-2);

  --md-admonition-fg-color: var(--ink);
  --md-admonition-bg-color: var(--info-tint);
  --md-warning-fg-color: var(--warning);
  --md-warning-bg-color: var(--warning-tint);

  --md-footer-fg-color: var(--ink-muted);
  --md-footer-fg-color--light: var(--ink-muted);
  --md-footer-fg-color--lighter: var(--ink-faint);
  --md-footer-bg-color: var(--surface);
  --md-footer-bg-color--dark: var(--surface-2);

  --md-shadow-z1: var(--shadow-sm);
  --md-shadow-z2: var(--shadow-md);
  --md-shadow-z3: var(--shadow-lg);

  --md-mermaid-font-family: var(--font-sans);
  --md-mermaid-edge-color: var(--ink-2);
  --md-mermaid-node-bg-color: var(--accent-tint);
  --md-mermaid-node-fg-color: var(--accent);
  --md-mermaid-label-bg-color: var(--surface);
  --md-mermaid-label-fg-color: var(--ink);
}
body[data-md-color-scheme="slate"] { color-scheme: dark; }
body { background: var(--page); color: var(--ink); font-family: var(--font-sans); -webkit-font-smoothing: antialiased; }
.md-grid { max-width: var(--content-max); }

/* ---- 2 · PlatformHeader: Material's header is the eo-header --------------------------------- */
.md-header.eo-header { display: flex; box-shadow: none; }
.md-header.eo-header[hidden] { transform: none; }
.md-header--shadow.eo-header { box-shadow: var(--shadow-md); }
.eo-header .eo-nav { display: flex; gap: var(--space-1); margin-left: var(--space-2); }
.eo-header .eo-menu-btn { display: none; margin: 0; }
/* Material's header title stays in the DOM for its JS, never shown: the band carries the product name */
.eo-header .eo-topic { display: none; }
.eo-header .md-header__button { margin: 0; padding: 0; }
.eo-header .eo-hbtn-lang { font-family: var(--font-mono); font-weight: 600; letter-spacing: .04em; }
.eo-header .eo-hbtn.eo-btn-icon { width: var(--control-height-sm); height: var(--control-height-sm); }
.eo-header .eo-hbtn .eo-icon, .eo-header .eo-hbtn eo-icon svg { width: 16px; height: 16px; }
.eo-header .eo-theme-sun { display: none; }
[data-md-color-scheme="slate"] .eo-header .eo-theme-moon { display: none; }
[data-md-color-scheme="slate"] .eo-header .eo-theme-sun { display: inline-flex; }
.eo-header form[data-md-component="palette"] { display: none; }
.eo-header .eo-search-btn { display: none; }
/* Material's search, as an outlined header control */
.eo-header .md-search { margin: 0; }
.eo-header .md-search__inner { padding: 0; }
.eo-header .md-search__form { height: var(--control-height-sm); border: 1px solid var(--on-brand-border); border-radius: var(--radius-md); background: transparent; box-shadow: none; }
.eo-header .md-search__form:hover { background: var(--brand-navy-hover); }
.eo-header .md-search__input { height: 100%; padding-left: calc(var(--control-height-sm) + 2px); font-family: var(--font-sans); font-size: 14px; color: var(--on-brand); }
.eo-header .md-search__input::placeholder { color: var(--on-brand-muted); }
.eo-header .md-search__input + .md-search__icon { color: var(--on-brand); display: flex; align-items: center; justify-content: center; width: var(--control-height-sm); height: var(--control-height-sm); top: 0; left: 0; margin: 0; padding: 0; }
.eo-header .md-search__icon svg { width: 16px; height: 16px; }
.eo-header .md-search__options { top: 0; height: var(--control-height-sm); align-items: center; }
[data-md-toggle="search"]:checked ~ .md-header .md-search__form { background: var(--surface); border-color: var(--surface); }
[data-md-toggle="search"]:checked ~ .md-header .md-search__input { color: var(--ink); }
[data-md-toggle="search"]:checked ~ .md-header .md-search__input::placeholder { color: var(--ink-muted); }
[data-md-toggle="search"]:checked ~ .md-header .md-search__input + .md-search__icon,
[data-md-toggle="search"]:checked ~ .md-header .md-search__options { color: var(--ink-muted); }
.md-search__output { border-radius: 0 0 var(--radius-md) var(--radius-md); box-shadow: var(--shadow-md); }
.md-search__scrollwrap { background: var(--surface); }
.md-search-result__meta { background: var(--surface-2); color: var(--ink-muted); font-size: 12px; }
.md-search-result__item { border-bottom: 1px solid var(--border); }
.md-search-result__link:is(:hover, :focus) { background: var(--surface-2); }
.md-search-result .md-typeset { font-size: 13px; line-height: 20px; }
.md-search-result .md-typeset h1 { font-size: 14px; line-height: 22px; font-weight: 600; margin: 0; color: var(--ink); }
.md-search-result__more > summary > div { color: var(--accent); font-size: 13px; }
.md-search-result__article { padding: var(--space-2) var(--space-4) var(--space-2) var(--space-12); }
@media screen and (max-width: 59.9375em) {
  .eo-header .eo-search-btn { display: inline-flex; }
  .eo-header .md-search { position: static; }
  .eo-header .md-search__form { border: 0; border-radius: 0; height: auto; background: var(--surface); }
  .eo-header .md-search__input { color: var(--ink); padding-left: 2.2rem; }
  .eo-header .md-search__input::placeholder { color: var(--ink-muted); }
  .eo-header .md-search__input + .md-search__icon, .eo-header .md-search__options { color: var(--ink-muted); top: .1rem; height: auto; }
  .eo-header .md-search__options { top: .3rem; }
  .eo-header .md-search__inner { padding: 0; }
  [data-md-toggle="search"]:checked ~ .md-header .md-search__form { background: var(--surface); }
}
@media screen and (max-width: 76.1875em) {
  .eo-header .eo-menu-btn { display: inline-flex; }
}
@media screen and (max-width: 719px) {
  .eo-header { gap: var(--space-2); padding: 0 var(--space-3); }
  .eo-header .eo-nav, .eo-header .eo-product { display: none; }
  .eo-header .eo-brand img { height: 32px; }
  .eo-header .eo-hbtn-accent span { display: none; }
}
/* The platform links inside Material's drawer (copied there by eocube-mkdocs.js) */
.eo-drawer-links { display: none; }
@media screen and (max-width: 76.1875em) {
  .eo-drawer-links { display: flex; flex-direction: column; gap: 2px; padding: var(--space-3) var(--space-4); border-top: 1px solid var(--border); }
  .eo-drawer-links a { display: flex; align-items: center; min-height: var(--control-height-sm); padding: 4px var(--space-2); border-radius: var(--radius-sm); color: var(--ink-2); font-size: 13px; line-height: 20px; text-decoration: none; }
  .eo-drawer-links a:hover { background: var(--surface-2); color: var(--ink); }
  .eo-drawer-links a[aria-current="page"] { background: var(--accent-tint); color: var(--accent); font-weight: 500; }
}
/* Material's drawer chrome on narrow screens */
@media screen and (max-width: 76.1875em) {
  .md-nav--primary .md-nav__title { background: var(--surface); color: var(--ink); font-size: 14px; font-weight: 600; box-shadow: none; border-bottom: 1px solid var(--border); }
  .md-nav--primary .md-nav__title[for="__drawer"] { background: var(--brand-navy); color: var(--on-brand); }
  .md-nav--primary .md-nav__title .md-logo { display: none; }
  .md-nav--primary .md-nav__title .md-nav__button { color: var(--on-brand); }
  .md-nav--primary .md-nav__item { border-top: 1px solid var(--border); }
  .md-nav--primary .md-nav__link { font-size: 14px; }
}

/* ---- 3 · Tabs (navigation.tabs), on surface rather than a second navy band ------------------ */
.md-tabs { background: var(--surface); color: var(--ink-2); border-bottom: 1px solid var(--border); }
.md-tabs__list { max-width: var(--content-max); padding: 0 var(--space-4); }
.md-tabs__item { padding: 0; margin-right: var(--space-4); }
.md-tabs__link { font-size: 14px; line-height: 22px; font-weight: 500; opacity: 1; margin-top: 0; height: var(--control-height-sm); align-items: center; color: var(--ink-2); border-bottom: 2px solid transparent; }
.md-tabs__link:is(:hover, :focus) { color: var(--ink); opacity: 1; }
.md-tabs__link--active, .md-tabs__item--active .md-tabs__link { color: var(--accent); border-bottom-color: var(--accent); }

/* ---- 4 · Layout: the sticky header is header-height tall ----------------------------------- */
.md-container { background: var(--page); }
.md-sidebar { top: var(--header-height); }
.md-sidebar--primary { width: var(--nav-width); }
.md-main__inner { margin-top: var(--space-6); }
@media screen and (min-width: 76.25em) {
  .md-sidebar { top: calc(var(--header-height) + var(--control-height-sm) + 1px); }
  .md-header--lifted ~ .md-container .md-sidebar { top: calc(var(--header-height) + var(--control-height-sm) + 1px); }
  .md-header ~ .md-container .md-sidebar--no-tabs { top: var(--header-height); }
  .md-header--lifted ~ .md-container .md-typeset :target { --md-scroll-margin: calc(var(--header-height) + var(--control-height-sm) + var(--space-6)); }
  .md-sidebar--primary:not([hidden]) ~ .md-content > .md-content__inner { margin-left: var(--space-6); }
}
.md-typeset :target { --md-scroll-margin: calc(var(--header-height) + var(--space-6)); }
.md-top { background: var(--surface); color: var(--ink); border: 1px solid var(--border); box-shadow: var(--shadow-md); font-size: 13px; }
.md-top:is(:hover, :focus) { background: var(--accent); color: var(--on-accent); }

/* ---- 5 · Navigation (DocsPage nav: body-sm links, label group headings) -------------------- */
@media screen and (min-width: 76.25em) {
  .md-nav--primary { font-size: 13px; line-height: 20px; }
  .md-nav--primary .md-nav__title { display: none; }
  .md-nav--primary .md-nav__link { margin-top: 2px; padding: 4px var(--space-2); border-radius: var(--radius-sm); color: var(--ink-2); min-height: var(--control-height-sm); align-items: center; }
  .md-nav--primary .md-nav__link:is(:hover, :focus) { background: var(--surface-2); color: var(--ink); }
  .md-nav--primary .md-nav__link--active, .md-nav--primary .md-nav__link--active:is(:hover, :focus) { background: var(--accent-tint); color: var(--accent); font-weight: 500; }
  .md-nav--primary .md-nav__link--active code { background: transparent; }
  .md-nav__item--section > .md-nav__link, .md-nav--lifted > .md-nav__list > .md-nav__item--active > .md-nav__link { margin: var(--space-4) 0 var(--space-2); padding: 0 var(--space-2); font-size: 12px; line-height: 16px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-muted); background: transparent; box-shadow: none; min-height: 0; }
  .md-nav__item--section:first-child > .md-nav__link { margin-top: 0; }
  .md-nav__item--section > .md-nav__link[for], .md-nav__item--section > .md-nav__link[for]:hover { color: var(--ink-muted); }
  .md-nav__item--nested > .md-nav__link .md-nav__icon { color: var(--ink-muted); }
  .md-nav--primary .md-nav__list .md-nav__list { margin-left: var(--space-2); border-left: 1px solid var(--border); padding-left: var(--space-1); }
  /* table of contents */
  .md-nav--secondary { font-size: 13px; line-height: 20px; }
  .md-nav--secondary .md-nav__title { font-size: 12px; line-height: 16px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-muted); background: var(--page); box-shadow: none; padding: 0 var(--space-3) var(--space-2); }
  .md-nav--secondary .md-nav__link { color: var(--ink-2); margin-top: var(--space-1); }
  .md-nav--secondary .md-nav__link:is(:hover, :focus) { color: var(--ink); }
  .md-nav--secondary .md-nav__link--active { color: var(--accent); font-weight: 500; }
  .md-nav--secondary .md-nav__list { border-left: 1px solid var(--border); }
  .md-nav--secondary .md-nav__list .md-nav__list { border: 0; }
  .md-sidebar--secondary .md-nav__list .md-nav__item { padding-left: var(--space-3); }
  .md-sidebar__scrollwrap { scrollbar-color: var(--border-strong) transparent; }
}

/* ---- 6 · Prose (body-lg inside prose-measure; title-1 / title-2 / title-3 semibold) -------- */
.md-typeset { font-size: 16px; line-height: 26px; }
.md-content__inner { padding-top: var(--space-2); margin-bottom: var(--space-12); }
.md-content__inner > :is(p, ul, ol, dl, h1, h2, h3, h4, h5, h6, blockquote, .admonition, details, .eo-eyebrow) { max-width: var(--prose-measure); }
.md-typeset .eo-eyebrow { display: block; margin: 0 0 var(--space-2); font-family: var(--font-sans); font-size: 12px; line-height: 16px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-muted); }
.md-typeset h1 { font-size: 26px; line-height: 34px; font-weight: 600; letter-spacing: -.01em; color: var(--ink); margin: 0 0 var(--space-4); text-wrap: balance; }
.md-typeset h2 { font-size: 20px; line-height: 28px; font-weight: 600; letter-spacing: 0; margin: var(--space-8) 0 var(--space-3); }
.md-typeset h3 { font-size: 16px; line-height: 24px; font-weight: 600; margin: var(--space-6) 0 var(--space-2); }
.md-typeset h4, .md-typeset h5, .md-typeset h6 { font-size: 16px; line-height: 24px; font-weight: 600; margin: var(--space-4) 0 var(--space-2); letter-spacing: 0; text-transform: none; color: var(--ink); }
.md-typeset :is(h1, h2, h3, h4, h5, h6) .headerlink { color: var(--ink-faint); }
.md-typeset :is(h1, h2, h3, h4, h5, h6):is(:hover, :target) .headerlink { color: var(--accent); }
.md-typeset p { margin: 0 0 var(--space-4); }
.md-typeset :is(ul, ol) { margin: 0 0 var(--space-4); }
.md-typeset :is(ul, ol) li { margin-bottom: var(--space-1); }
.md-typeset :is(ul, ol) li :is(ul, ol) { margin: var(--space-1) 0 0; }
.md-typeset hr { border-bottom: 1px solid var(--border); margin: var(--space-8) 0; }
.md-typeset blockquote { border-left: 2px solid var(--border-strong); color: var(--ink-2); padding-left: var(--space-4); }
.md-typeset strong, .md-typeset b { font-weight: 600; }
.md-typeset small, .md-typeset .caption, .md-typeset figcaption { font-size: 12px; line-height: 16px; color: var(--ink-muted); }
.md-typeset figcaption { max-width: none; margin: var(--space-2) 0 0; text-align: left; }
.md-typeset img { border-radius: var(--radius-md); }
.md-typeset img.eo-screenshot { background: var(--surface); border: 1px solid var(--border); }
/* links in running text are underlined, never colour alone */
.md-content .md-typeset a:not(.md-button):not(.headerlink):not(.md-clipboard):not(.eo-btn):not(.glightbox):not(.md-source-file *) { text-decoration: underline; text-underline-offset: 2px; text-decoration-color: color-mix(in srgb, currentColor 55%, transparent); }
.md-content .md-typeset a:not(.md-button):not(.headerlink):not(.md-clipboard):not(.eo-btn):hover { color: var(--accent-hover); text-decoration-color: currentColor; }
.md-typeset .grid.cards a, .md-typeset .eo-btn { text-decoration: none !important; }
/* keyboard keys */
.md-typeset kbd { font-family: var(--font-mono); font-size: 12px; border-radius: var(--radius-sm); box-shadow: 0 1px 0 var(--md-typeset-kbd-border-color), 0 1px 0 var(--md-typeset-kbd-accent-color) inset; }
.md-typeset mark { border-radius: var(--radius-sm); }
/* footnotes, revision date */
.md-typeset .footnote { color: var(--ink-muted); font-size: 13px; }
.md-source-file { font-size: 12px; line-height: 16px; color: var(--ink-muted); }
.md-source-file__fact { color: var(--ink-muted); }

/* ---- 7 · Inline code and code blocks (CodeBlock) ------------------------------------------- */
.md-typeset code { font-family: var(--font-mono); font-size: 14px; line-height: 20px; background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 1px 5px; color: var(--ink); word-break: normal; }
.md-typeset :is(h1, h2, h3) code { font-size: .85em; }
.md-typeset a code { color: inherit; }
.md-typeset pre { margin: 0 0 var(--space-4); }
.md-typeset pre > code { font-size: 13px; line-height: 20px; padding: var(--space-3) var(--space-4); border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface-2); }
.md-typeset .highlight { margin: 0 0 var(--space-4); }
.md-typeset .highlight > pre { margin: 0; }
.md-typeset .highlight span.filename { font-family: var(--font-sans); font-size: 12px; line-height: 16px; font-weight: 400; color: var(--ink-muted); background: var(--surface-2); border: 1px solid var(--border); border-bottom: 0; border-radius: var(--radius-md) var(--radius-md) 0 0; padding: 6px var(--space-4); margin: 0; }
.md-typeset .highlight span.filename + pre > code { border-top-left-radius: 0; border-top-right-radius: 0; }
.md-typeset .highlight .md-clipboard { color: var(--ink-faint); top: 6px; right: 6px; }
.md-typeset .highlight .md-clipboard:hover { color: var(--accent); }
.md-typeset .highlighttable .linenos { background: var(--surface-3); color: var(--ink-muted); border-radius: var(--radius-md) 0 0 var(--radius-md); }
.md-typeset .highlight :is(.c, .c1, .cm, .ch, .cs, .cp) { font-style: italic; }
.md-typeset .highlight :is(.k, .kd, .kn, .kr, .kt, .kc) { font-weight: 500; }
.md-typeset .highlight .hll { background: var(--accent-tint); }
.md-typeset .md-annotation__index { background: var(--accent); }
.md-code__content { font-size: 13px; }
/* mermaid */
.md-typeset .mermaid { margin: 0 0 var(--space-4); }

/* ---- 8 · Admonitions are Callouts (note/info → info-tint, tip → success, warning, danger) --- */
.md-content .md-typeset :is(.admonition, details) { display: block; border: 1px solid transparent; border-radius: var(--radius-md); box-shadow: none; font-size: 14px; line-height: 22px; margin: 0 0 var(--space-4); padding: var(--space-3) var(--space-4); background: var(--info-tint); color: var(--ink); }
.md-content .md-typeset :is(.admonition, details) > :last-child { margin-bottom: 0; }
.md-content .md-typeset :is(.admonition, details) p { margin: 0 0 var(--space-2); }
.md-content .md-typeset :is(.admonition-title, summary) { position: relative; margin: 0 0 var(--space-1); padding: 0 0 0 26px; font-weight: 600; font-size: 14px; line-height: 22px; background: transparent; border: 0; border-radius: 0; color: var(--ink); }
.md-content .md-typeset :is(.admonition-title, summary)::before { position: absolute; top: 2px; left: 0; width: 18px; height: 18px; background-color: var(--info); }
.md-content .md-typeset :is(.admonition-title, summary):last-child { margin-bottom: 0; }
.md-content .md-typeset :is(.admonition, details) code { background: color-mix(in srgb, var(--ink) 8%, transparent); border: 0; font-size: 13px; }
.md-content .md-typeset :is(.admonition, details):is(.tip, .success, .check, .done) { background: var(--success-tint); }
.md-content .md-typeset :is(.tip, .success, .check, .done) > :is(.admonition-title, summary)::before { background-color: var(--success); }
.md-content .md-typeset :is(.admonition, details):is(.warning, .caution, .attention) { background: var(--warning-tint); }
.md-content .md-typeset :is(.warning, .caution, .attention) > :is(.admonition-title, summary)::before { background-color: var(--warning); }
.md-content .md-typeset :is(.admonition, details):is(.danger, .error, .failure, .fail, .missing, .bug) { background: var(--danger-tint); }
.md-content .md-typeset :is(.danger, .error, .failure, .fail, .missing, .bug) > :is(.admonition-title, summary)::before { background-color: var(--danger); }
.md-content .md-typeset details > summary::after { color: var(--ink-muted); top: 2px; }

/* ---- 9 · Tables are DataTable without the footer ------------------------------------------- */
.md-typeset__table { display: block; padding: 0; margin: 0; }
.md-typeset__scrollwrap { margin: 0 0 var(--space-4); }
.md-typeset table:not([class]) { display: table; width: 100%; font-size: 13px; line-height: 20px; border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; background: var(--surface); }
.md-typeset table:not([class]) th { font-size: 12px; line-height: 16px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-muted); background: var(--surface-2); padding: 6px var(--space-3); border-bottom: 1px solid var(--border); vertical-align: middle; min-width: 0; }
.md-typeset table:not([class]) td { padding: var(--space-2) var(--space-3); border-top: 0; border-bottom: 1px solid var(--border); vertical-align: middle; }
.md-typeset table:not([class]) tr:last-child td { border-bottom: 0; }
.md-typeset table:not([class]) tbody tr:hover { background: var(--surface-2); box-shadow: none; }
.md-typeset table:not([class]) :is(th, td):first-child { padding-left: var(--space-4); }
.md-typeset table:not([class]) :is(th, td)[align="right"], .md-typeset table:not([class]) :is(th, td)[style*="text-align: right"] { font-variant-numeric: tabular-nums; }
.md-typeset table:not([class]) code { font-size: 13px; background: transparent; border: 0; padding: 0; }

/* ---- 10 · Content tabs as the segmented eo-btn-group -------------------------------------- */
.md-typeset .tabbed-set { margin: 0 0 var(--space-4); }
.md-typeset .tabbed-labels { box-shadow: none; gap: 0; margin: 0 0 var(--space-3); padding: 0; overflow: visible; flex-wrap: wrap; }
.md-typeset .tabbed-labels::before { display: none; }
.md-typeset .tabbed-labels > label { display: inline-flex; align-items: center; height: var(--control-height-sm); margin: 0 0 0 -1px; padding: 0 10px; border: 1px solid var(--border-strong); border-radius: 0; background: var(--surface); color: var(--ink); font-size: 13px; font-weight: 500; line-height: 1; width: auto; }
.md-typeset .tabbed-labels > label:first-child { margin-left: 0; border-radius: var(--radius-md) 0 0 var(--radius-md); }
.md-typeset .tabbed-labels > label:last-child { border-radius: 0 var(--radius-md) var(--radius-md) 0; }
.md-typeset .tabbed-labels > label:hover { background: var(--surface-2); color: var(--ink); }
.md-typeset .tabbed-set > input:nth-child(1):checked ~ .tabbed-labels > :nth-child(1),
.md-typeset .tabbed-set > input:nth-child(2):checked ~ .tabbed-labels > :nth-child(2),
.md-typeset .tabbed-set > input:nth-child(3):checked ~ .tabbed-labels > :nth-child(3),
.md-typeset .tabbed-set > input:nth-child(4):checked ~ .tabbed-labels > :nth-child(4),
.md-typeset .tabbed-set > input:nth-child(5):checked ~ .tabbed-labels > :nth-child(5),
.md-typeset .tabbed-set > input:nth-child(6):checked ~ .tabbed-labels > :nth-child(6),
.md-typeset .tabbed-set > input:nth-child(7):checked ~ .tabbed-labels > :nth-child(7),
.md-typeset .tabbed-set > input:nth-child(8):checked ~ .tabbed-labels > :nth-child(8) { background: var(--accent-tint); color: var(--accent); border-color: var(--accent); position: relative; z-index: 1; }
.md-typeset .tabbed-content { padding: 0; }
.md-typeset .tabbed-block > :last-child { margin-bottom: 0; }

/* ---- 11 · Buttons, cards, chips ------------------------------------------------------------ */
.md-typeset .md-button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: var(--control-height); padding: 0 var(--space-3); border: 1px solid var(--border-strong); border-radius: var(--radius-md); background: var(--surface); color: var(--ink); font-size: 14px; font-weight: 500; line-height: 1; text-decoration: none; }
.md-typeset .md-button:is(:hover, :focus) { background: var(--surface-2); border-color: var(--border-strong); color: var(--ink); }
.md-typeset .md-button--primary { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.md-typeset .md-button--primary:is(:hover, :focus) { background: var(--accent-hover); border-color: var(--accent-hover); color: var(--on-accent); }
.md-typeset a.eo-btn { color: var(--ink); }
.md-typeset li > a.eo-btn { vertical-align: middle; margin: 2px 0; }
.md-typeset .eo-btn eo-icon svg, .md-typeset .md-button eo-icon svg { width: 16px; height: 16px; }
.md-typeset .grid.cards > :is(ul, ol) > li, .md-typeset .grid > .card { border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); padding: var(--space-4); font-size: 14px; line-height: 22px; transition: border-color .15s ease-out; }
.md-typeset .grid.cards > :is(ul, ol) > li:is(:hover, :focus-within), .md-typeset .grid > .card:hover { border-color: var(--border-strong); box-shadow: none; }
.md-typeset .grid.cards > :is(ul, ol) > li > hr { border-bottom: 1px solid var(--border); margin: var(--space-3) 0; }
.md-typeset .grid.cards > :is(ul, ol) > li > :is(p, ul) { color: var(--ink-2); }
.md-typeset .grid.cards > :is(ul, ol) > li > p:first-child { color: var(--ink); font-size: 16px; line-height: 24px; font-weight: 600; }
.md-typeset .grid.cards > :is(ul, ol) > li .twemoji { color: var(--brand-text); }
.md-typeset .grid.cards > :is(ul, ol) > li > p:first-child a { color: var(--ink); }
.md-typeset .task-list-indicator::before { background: var(--border-strong); }
.md-typeset .task-list-control [type="checkbox"]:checked + .task-list-indicator::before { background: var(--accent); }

/* ---- 12 · Notebook pages (mkdocs-jupyter): inputs as CodeBlock, outputs on surface --------- */
.jupyter-wrapper { font-family: var(--font-sans); }
.jupyter-wrapper .jp-Notebook { padding: 0; }
.jupyter-wrapper .jp-Cell { padding: 0; margin: 0 0 var(--space-4); }
.jupyter-wrapper .jp-Collapser { display: none; }
.jupyter-wrapper .jp-InputPrompt, .jupyter-wrapper .jp-OutputPrompt { font-family: var(--font-mono); font-size: 11px; line-height: 16px; color: var(--ink-faint); width: 56px; flex: 0 0 56px; padding: var(--space-3) 0 0; text-align: left; opacity: 1; }
.jupyter-wrapper .jp-OutputPrompt { padding-top: var(--space-2); }
.jupyter-wrapper .jp-Cell-inputWrapper, .jupyter-wrapper .jp-Cell-outputWrapper { margin: 0; }
.jupyter-wrapper .jp-InputArea-editor, .jupyter-wrapper .jp-CodeMirrorEditor { background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius-md); overflow: auto; }
.jupyter-wrapper .jp-InputArea { min-width: 0; }
.jupyter-wrapper .jp-OutputArea-output { overflow: auto; }
.jupyter-wrapper .jp-InputArea-editor .highlight, .jupyter-wrapper .jp-InputArea-editor .highlight-ipynb { background: transparent; margin: 0; }
.jupyter-wrapper .jp-InputArea-editor pre, .jupyter-wrapper .highlight-ipynb pre { margin: 0; padding: var(--space-3) var(--space-4); font-family: var(--font-mono); font-size: 13px; line-height: 20px; background: transparent; border: 0; color: var(--ink); }
.jupyter-wrapper .CodeMirror.cm-s-jupyter { font-family: var(--font-mono); font-size: 13px; line-height: 20px; background: transparent; }
.jupyter-wrapper .jp-OutputArea-output { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); padding: var(--space-2) var(--space-4); color: var(--ink); font-size: 14px; line-height: 22px; }
.jupyter-wrapper .jp-OutputArea-child { margin: 0 0 var(--space-2); }
.jupyter-wrapper .jp-RenderedText pre, .jupyter-wrapper .jp-OutputArea-output pre { font-family: var(--font-mono); font-size: 13px; line-height: 20px; color: var(--ink); background: transparent; margin: 0; padding: 0; border: 0; }
.jupyter-wrapper .jp-RenderedText[data-mime-type="application/vnd.jupyter.stderr"] { background: var(--warning-tint); }
.jupyter-wrapper .jp-RenderedImage { text-align: left; }
.jupyter-wrapper .jp-RenderedImage img { max-width: 100%; height: auto; border-radius: var(--radius-sm); }
.jupyter-wrapper .jp-MarkdownCell .jp-InputArea-editor { background: transparent; border: 0; }
.jupyter-wrapper .jp-RenderedHTMLCommon, .jupyter-wrapper .jp-RenderedMarkdown { font-family: var(--font-sans); font-size: 16px; line-height: 26px; color: var(--ink); padding: 0; max-width: var(--prose-measure); }
.jupyter-wrapper .jp-OutputArea-output.jp-RenderedHTMLCommon { max-width: none; font-size: 14px; line-height: 22px; }
.jupyter-wrapper .jp-RenderedHTMLCommon :is(h1, h2, h3) { font-weight: 600; color: var(--ink); margin: var(--space-6) 0 var(--space-2); }
.jupyter-wrapper .jp-RenderedHTMLCommon h1 { font-size: 26px; line-height: 34px; letter-spacing: -.01em; margin-top: 0; }
.jupyter-wrapper .jp-RenderedHTMLCommon h2 { font-size: 20px; line-height: 28px; }
.jupyter-wrapper .jp-RenderedHTMLCommon h3 { font-size: 16px; line-height: 24px; }
.jupyter-wrapper .jp-RenderedHTMLCommon a { color: var(--link); text-decoration: underline; text-underline-offset: 2px; }
.jupyter-wrapper .jp-RenderedHTMLCommon code { font-family: var(--font-mono); font-size: 14px; background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 1px 5px; color: var(--ink); }
.jupyter-wrapper .jp-RenderedHTMLCommon pre code { border: 0; padding: 0; background: transparent; }
/* DataFrames as DataTable */
.jupyter-wrapper .jp-RenderedHTMLCommon table, .jupyter-wrapper table.dataframe { font-family: var(--font-sans); font-size: 13px; line-height: 20px; border-collapse: collapse; border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); color: var(--ink); margin: var(--space-2) 0; margin-left: 0; margin-right: 0; }
.jupyter-wrapper .jp-RenderedHTMLCommon th, .jupyter-wrapper table.dataframe th { font-size: 12px; line-height: 16px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-muted); background: var(--surface-2); padding: 6px var(--space-3); border-bottom: 1px solid var(--border); text-align: left; vertical-align: middle; }
.jupyter-wrapper .jp-RenderedHTMLCommon td, .jupyter-wrapper table.dataframe td { padding: var(--space-2) var(--space-3); border-bottom: 1px solid var(--border); vertical-align: middle; font-family: var(--font-mono); font-variant-numeric: tabular-nums; text-align: right; }
.jupyter-wrapper .jp-RenderedHTMLCommon tbody tr:nth-child(2n), .jupyter-wrapper table.dataframe tbody tr:nth-child(2n) { background: transparent; }
.jupyter-wrapper .jp-RenderedHTMLCommon tbody tr:hover, .jupyter-wrapper table.dataframe tbody tr:hover { background: var(--surface-2); }
/* xarray's HTML repr */
.jupyter-wrapper .xr-wrap { font-family: var(--font-mono); font-size: 12px; --xr-font-color0: var(--ink); --xr-font-color2: var(--ink-2); --xr-font-color3: var(--ink-muted); --xr-border-color: var(--border); --xr-disabled-color: var(--ink-faint); --xr-background-color: var(--surface); --xr-background-color-row-even: var(--surface); --xr-background-color-row-odd: var(--surface-2); }
/* the notebook's own copy button and cell tags */
.jupyter-wrapper .zeroclipboard-container { top: 6px; right: 6px; }
.jupyter-wrapper .clipboard-copy-icon { color: var(--ink-faint); }
.jupyter-wrapper .celltag_hide_input, .jupyter-wrapper .celltoolbar { display: none; }
.jupyter-wrapper .jp-Cell.jp-mod-noOutputs .jp-Cell-outputWrapper { display: none; }
/* the "download notebook" affordance mkdocs-jupyter renders */
.md-typeset .jupyter-download, .md-typeset a.download-notebook { font-size: 13px; }

/* ---- 13 · glightbox captions ---------------------------------------------------------------- */
.glightbox-clean .gslide-description { background: var(--surface); }
.glightbox-clean .gslide-title { font-family: var(--font-sans); font-size: 14px; line-height: 22px; font-weight: 600; color: var(--ink); }
.glightbox-clean .gslide-desc { font-family: var(--font-sans); font-size: 12px; line-height: 16px; color: var(--ink-muted); }
.glightbox-clean .gdesc-inner { padding: var(--space-3) var(--space-4); }

/* ---- 14 · Footer: the PlatformFooter, with Material's previous/next when enabled ----------- */
.md-footer.eo-footer { background: var(--surface); color: var(--ink-muted); }
.eo-footer .eo-pager { max-width: var(--content-max); margin: 0 auto var(--space-4); padding: 0; border-bottom: 1px solid var(--border); }
.eo-footer .md-footer__link { color: var(--ink-2); padding: var(--space-2) 0 var(--space-4); }
.eo-footer .md-footer__link:is(:hover, :focus) { color: var(--accent); opacity: 1; }
.eo-footer .md-footer__direction { font-size: 12px; line-height: 16px; color: var(--ink-muted); }
.eo-footer .md-footer__title { font-size: 14px; line-height: 22px; font-weight: 500; }
.eo-footer .md-footer__button { color: var(--ink-muted); }
.eo-footer .eo-partner.eo-pending { display: inline-flex; align-items: center; }
@media screen and (max-width: 899px) {
  .eo-footer .eo-footer-meta { align-items: flex-start; }
}

/* ---- 15 · Search-page and misc Material bits that would otherwise show indigo -------------- */
.md-dialog { background: var(--brand-navy); color: var(--on-brand); border-radius: var(--radius-md); box-shadow: var(--shadow-md); font-size: 13px; }
.md-typeset .md-annotation__index::after { color: var(--on-accent); }
.md-progress { background: var(--brand-teal); }
.md-consent__inner { background: var(--surface); }
::selection { background: var(--accent-tint); }
