/* Navy and blue accents ported from the MASA-Safe-RL docs theme.
   Use public theme variables and semantic content classes, not copied templates. */
:root {
  --md-text-font: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --md-code-font: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --site-radius: .85rem;
}
[data-md-color-scheme="default"] {
  --md-primary-fg-color: #15599c;
  --md-primary-fg-color--light: #2f7cc4;
  --md-primary-fg-color--dark: #0b283b;
  --md-accent-fg-color: #0f62c9;
  --md-accent-fg-color--transparent: #0f62c918;
  --md-default-bg-color: #fdfdfe;
  --site-surface: #f2f6fb;
  --site-border: #d3dfea;
  --site-ink: #0b283b;
  --site-shadow: 0 .5rem 1.8rem #0b283b0b;
}
/* Material's slate palette derives every grey from --md-hue at 15% saturation,
   which reads as blue. Override the derived values with the neutral dark greys
   the dark build uses, and keep teal/green only as accents. */
[data-md-color-scheme="slate"] {
  --md-primary-fg-color: #7ab6f0;
  --md-primary-fg-color--light: #a3cdf7;
  --md-primary-fg-color--dark: #0d0e10;
  --md-accent-fg-color: #8fc6ff;
  --md-accent-fg-color--transparent: #8fc6ff18;
  --md-default-fg-color: #ffffffd6;
  --md-default-fg-color--light: #ffffff8f;
  --md-default-fg-color--lighter: #ffffff52;
  --md-default-fg-color--lightest: #ffffff1f;
  --md-default-bg-color: #131416;
  --md-default-bg-color--light: #1314168a;
  --md-default-bg-color--lighter: #13141642;
  --md-default-bg-color--lightest: #13141612;
  --md-code-fg-color: #d6d8db;
  --md-code-bg-color: #1a1c1e;
  --md-code-bg-color--light: #1a1c1ee6;
  --md-code-bg-color--lighter: #1a1c1e8a;
  --md-typeset-kbd-color: #ffffff1f;
  --md-typeset-kbd-accent-color: #ffffff33;
  --md-typeset-kbd-border-color: #26282b;
  --md-typeset-table-color: #ffffff1f;
  --md-typeset-table-color--light: #ffffff09;
  --md-typeset-mark-color: #7ab6f04d;
  --md-code-hl-color: #7ab6f0;
  --md-code-hl-color--light: #7ab6f01a;
  --md-footer-bg-color: #0d0e10;
  --md-footer-bg-color--dark: #08090a;
  --site-surface: #1a1c1e;
  --site-border: #303335;
  --site-ink: #e7e9ea;
  --site-shadow: 0 .5rem 1.8rem #00000059;
}
.md-header, .md-tabs { color: #f2faf8; background: #0b283b; }
[data-md-color-scheme="slate"] :is(.md-header, .md-tabs) { color: #e7e9ea; background: #0d0e10; }
.md-header { box-shadow: 0 1px 0 #ffffff18; }
[data-md-color-scheme="slate"] .md-header { box-shadow: 0 1px 0 #ffffff14; }
.md-header__button.md-logo img { height: 1.7rem; width: auto; }
/* The search trigger is centred on the header. It is taken out of the flex flow
   so the palette toggle and repo link keep their place in the right-hand group;
   the title is capped short of the box so a long page topic ellipsises instead
   of running underneath it. */
@media screen and (min-width: 60em) {
  .md-header__inner { position: relative; }
  .md-header__inner > .md-header__title {
    flex-grow: 0; min-width: 0; max-width: calc(50% - 17rem);
  }
  .md-header__inner > .md-search {
    position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  }
  .md-header__inner > .md-header__option { order: 2; margin-left: auto; }
  .md-header__inner > .md-header__source { order: 3; }
}
/* The header is navy in both palettes, so the search trigger cannot inherit the
   theme's page-background colours -- they are unreadable on navy in light mode. */
.md-search__button {
  width: 28rem; height: 2rem; font-size: .78rem;
  color: #bdd3dc; background-color: #ffffff1c;
  border: 1px solid #ffffff26; border-radius: .5rem;
}
.md-search__button:hover, .md-search__button:focus {
  color: #f2faf8; background-color: #ffffff2e; border-color: #ffffff45;
}
[dir="ltr"] .md-search__button { padding-left: 2.2rem; padding-right: 2.9rem; }
[dir="rtl"] .md-search__button { padding-right: 2.2rem; padding-left: 2.9rem; }
.md-search__button::before {
  top: .5rem; width: 1rem; height: 1rem; background-color: currentcolor;
}
[dir="ltr"] .md-search__button::before { left: .6rem; }
[dir="rtl"] .md-search__button::before { right: .6rem; }
.md-search__button::after {
  top: .5rem; color: #cfe0e6; background: #ffffff1f; border: 1px solid #ffffff26;
}
[dir="ltr"] .md-search__button::after { right: .5rem; }
[dir="rtl"] .md-search__button::after { left: .5rem; }
@media screen and (max-width: 76.234375em) {
  .md-search__button { width: 20rem; }
}
.md-grid { max-width: 86rem; }
.md-typeset { line-height: 1.7; }
.md-typeset h1, .md-typeset h2, .md-typeset h3 {
  color: var(--site-ink); font-weight: 650; letter-spacing: -.025em;
}
.md-typeset h1 { font-weight: 750; }
.md-typeset h2:not(.doc-heading) { padding-bottom: .3rem; border-bottom: 1px solid var(--site-border); }
.md-typeset a:not(.md-button):hover { text-decoration: underline; text-underline-offset: .2em; }
.md-nav__link--active { font-weight: 700; }
/* The original title card stays legible in both palettes. */
.site-hero {
  padding: clamp(1rem, 3vw, 2rem); margin: 0 0 2rem;
  border: 1px solid var(--site-border); border-radius: 1.1rem;
  background: linear-gradient(135deg, var(--site-surface), var(--md-default-bg-color));
  box-shadow: var(--site-shadow);
}
.site-hero .site-wordmark {
  /* The wordmark is 1024x415 art; cap it so it stays a header, not a banner. */
  display: block; width: 100%; max-width: 26rem; height: auto; margin: 0 auto 1.2rem;
  border-radius: .65rem; background: #ffffff;
}
.site-hero .site-eyebrow {
  margin: 1rem 0 .65rem; text-align: center; color: var(--md-primary-fg-color);
  font-size: .65rem; font-weight: 750; letter-spacing: .14em; text-transform: uppercase;
}
.md-typeset .md-button { padding: .55em 1.05em; border-radius: .45rem; font-size: .8rem; }
.site-hero .md-button { margin: .3rem .5rem .3rem 0; }
[data-md-color-scheme="slate"] .md-typeset .md-button--primary { color: #0d1a26; }
.site-cards {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
  gap: .85rem; margin: 1.3rem 0 2rem;
}
.site-cards > div {
  padding: 1rem 1.1rem; border: 1px solid var(--site-border);
  border-radius: var(--site-radius); background: var(--site-surface);
  box-shadow: var(--site-shadow); transition: border-color .15s ease;
}
.site-cards > div:hover, .site-cards > div:focus-within { border-color: var(--md-primary-fg-color); }
.site-cards p { margin: .4rem 0; }
.site-cards strong { font-size: .9rem; }
/* Bordered API signatures to mkdocstrings' semantic classes. */
.md-typeset .doc-heading, .md-typeset .doc-signature {
  border-inline: 3px solid var(--md-primary-fg-color); border-radius: .3rem;
  background: var(--site-surface); padding: .55rem .7rem; margin-bottom: .35rem;
  overflow-wrap: anywhere;
}
.md-typeset .doc-heading { font-weight: 650; }
.md-typeset .doc-signature pre { margin: 0; }
.md-typeset .doc-object { margin-bottom: 1.8rem; }
.md-typeset .doc-contents { padding-inline-start: .65rem; }
.md-typeset pre > code { border-radius: .45rem; }
.md-typeset .admonition, .md-typeset details { border-radius: .55rem; }
.md-typeset table:not([class]) { border-radius: .45rem; }
.md-typeset figure { margin: 1.5rem auto; }
.md-typeset figure img { max-width: 100%; height: auto; border-radius: .4rem; }
.md-typeset figcaption { color: var(--md-default-fg-color--light); font-size: .75rem; }
.md-typeset .arithmatex { overflow-x: auto; }
:focus-visible { outline: 3px solid var(--md-accent-fg-color); outline-offset: 3px; }
@media (max-width: 44.9375em) {
  .site-hero { padding: 1rem; }
  .md-typeset .doc-contents { padding-inline-start: 0; }
  .md-typeset .doc-heading { font-size: .9rem; }
}
@media (prefers-reduced-motion: reduce) {
  .site-cards > div { transition: none; }
  html { scroll-behavior: auto; }
}
