/*
 * Mission Broadcast docs — design-language overrides (MB-145, Pass 6).
 *
 * Implements design-spec.md (Pass 5) + a11y-review.md (the AA-corrected hex).
 * Layers the marketing-site palette + typography on top of mkdocs-material,
 * and FIXES the previously broken dark mode (body/nav/tabs/search were reading
 * the light defaults → dark-on-dark).
 *
 * Strategy:
 *   1. Declare the full --lp-* palette (light + dark) as CSS variables.
 *   2. Re-map Material's own --md-* variables to it — flows through nav,
 *      sidebar, tabs, search, footer, code, links without per-selector work.
 *   3. Explicit component touch-ups where Material doesn't read a token, plus
 *      the dark-mode component fixes the spec calls out (§2.2).
 *   4. Brand-mark (pin + wordmark) light/dark toggle for the overridden logo.
 *   5. Global a11y plumbing: :focus-visible ring, prefers-reduced-motion,
 *      ≥24px targets, scroll-padding-top under the sticky header.
 *
 * Contrast: every consequential pairing is annotated with its measured WCAG
 * ratio (from a11y-review.md, recomputed from hex). Targets: text ≥4.5:1;
 * large text / UI / focus ≥3:1.
 */

@import url("https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,700&display=swap");

/* ---------------------------------------------------------------------------
 * 1. Light palette (design-spec §2.1, a11y-corrected hex)
 * ------------------------------------------------------------------------- */
:root {
  --lp-bg: #fafaf7;            /* page — warm off-white */
  --lp-surface: #ffffff;       /* cards, code, search box */
  --lp-surface-warm: #f4efe7;  /* hero band, tabs, inline-code bg */
  --lp-section-sage: #eef3ea;  /* sage section band */
  --lp-section-coral: #fdebe8; /* coral section band */
  --lp-accent-soft: #e8eef5;   /* navy section band, table header */
  --lp-border: #e6e2d8;        /* hairlines (decorative) */

  --lp-text: #1a1a1a;          /* body — 16.6:1 on bg */
  --lp-text-soft: #545454;     /* secondary, lede — 7.2:1 */
  --lp-text-muted: #6b6b6b;    /* captions, placeholders — 5.1:1 (darkened) */

  --lp-accent: #1e3a5f;        /* navy — links, h3, parent accent — 11:1 */
  --lp-accent-deep: #14283f;   /* navy — h1/h2, footer bg — 14.3:1 */
  --lp-accent-2: #7a9b76;      /* sage — decorative only */
  --lp-accent-2-deep: #4c6948; /* sage — text/button (darkened) — 5.0:1 */
  --lp-accent-2-line: #5c7d56; /* sage — state/structural border ≥3:1 (4.44:1 on bg) */
  --lp-accent-2-soft: #e3eadc; /* sage admonition fill */
  --lp-accent-3: #c2403b;      /* coral — button/active marker (darkened) — 5.1:1 white */
  --lp-accent-3-deep: #a23b37; /* coral — text on tint (darkened) — 6.2:1 on bg */
  --lp-accent-3-soft: #f7d6d3; /* coral admonition fill */
  --lp-tab-active: #b94843;    /* active-tab underline — 4.5:1 on warm */

  --lp-taupe: #8a7e72;         /* quote/cite family */

  /* Headline font stack — Fraunces (serif) with system-serif fallbacks. */
  --lp-font-headline: "Fraunces", "Iowan Old Style", "Georgia", serif;
}

/* ---------------------------------------------------------------------------
 * 2. Map Material's --md-* variables to the light palette (design-spec §2.1)
 * ------------------------------------------------------------------------- */
[data-md-color-scheme="default"] {
  /* backgrounds */
  --md-default-bg-color: var(--lp-bg);
  --md-default-bg-color--light: var(--lp-bg);
  --md-default-bg-color--lighter: var(--lp-surface-warm);
  --md-default-bg-color--lightest: var(--lp-surface-warm);

  /* text */
  --md-default-fg-color: var(--lp-text);         /* 16.6:1 */
  --md-default-fg-color--light: var(--lp-text-soft);   /* 7.2:1 */
  --md-default-fg-color--lighter: var(--lp-text-muted); /* 5.1:1 */
  --md-default-fg-color--lightest: var(--lp-border);

  /* primary (header text, nav highlight) — navy */
  --md-primary-fg-color: var(--lp-accent);
  --md-primary-fg-color--light: var(--lp-accent);
  --md-primary-fg-color--dark: var(--lp-accent-deep);
  --md-primary-bg-color: var(--lp-bg);
  --md-primary-bg-color--light: var(--lp-surface-warm);

  /* accent (links/focus/active) — coral, ≥4.5 on bg */
  --md-accent-fg-color: var(--lp-accent-3-deep);  /* #a23b37 */
  --md-accent-fg-color--transparent: rgba(194, 64, 59, 0.1);
  --md-accent-bg-color: var(--lp-bg);
  --md-accent-bg-color--light: var(--lp-accent-3-soft);

  /* links */
  --md-typeset-a-color: var(--lp-accent);          /* navy 11:1 */

  /* footer */
  --md-footer-bg-color: var(--lp-accent-deep);
  --md-footer-bg-color--dark: #0d1c2e;
  --md-footer-fg-color: var(--lp-surface-warm);
  --md-footer-fg-color--light: rgba(244, 239, 231, 0.85);
  --md-footer-fg-color--lighter: rgba(244, 239, 231, 0.6);

  /* code */
  --md-code-bg-color: var(--lp-surface-warm);
  --md-code-fg-color: var(--lp-accent-deep);

  /* Pygments syntax-highlight tokens (a11y carry-over #9). Material's stock
     token colors fall to 4.3–4.49:1 (and line-highlight 2.99:1) on our warm
     #f4efe7 code bg — short of 4.5:1. These are re-pinned to brand-derived
     hues that all clear 4.5:1 on #f4efe7 (measured). */
  --md-code-hl-color: #14283f;                 /* generic/line-hl text 13.06:1 */
  --md-code-hl-keyword-color: #a23b37;         /* 5.70:1 */
  --md-code-hl-string-color: #1e3a5f;          /* 10.05:1 */
  --md-code-hl-number-color: #9a3324;          /* 6.39:1 */
  --md-code-hl-function-color: #7a3da0;        /* 6.11:1 */
  --md-code-hl-constant-color: #5645b0;        /* 6.38:1 */
  --md-code-hl-special-color: #b3114b;         /* 5.92:1 */
  --md-code-hl-name-color: var(--lp-accent-deep);     /* 13.06:1 */
  --md-code-hl-comment-color: var(--lp-text-soft);    /* 6.62:1 */
  --md-code-hl-operator-color: var(--lp-text-soft);
  --md-code-hl-punctuation-color: var(--lp-text-soft);
  --md-code-hl-variable-color: var(--lp-text-soft);
  --md-code-hl-generic-color: var(--lp-text-soft);
}

/* ---------------------------------------------------------------------------
 * 3. Typography (design-spec §3)
 * ------------------------------------------------------------------------- */
.md-typeset h1,
.md-typeset h2,
.md-typeset h3,
.md-nav__title {
  font-family: var(--lp-font-headline);
  font-weight: 500;
  letter-spacing: -0.01em;
}

.md-typeset h1 {
  font-weight: 700;
  font-size: 2.25rem;
  line-height: 1.15;
  color: var(--lp-accent-deep);
  letter-spacing: -0.02em;
}

.md-typeset h2 {
  font-weight: 700;
  font-size: 1.6rem;
  line-height: 1.2;
  margin-top: 2.25rem;
  color: var(--lp-accent-deep);
}

.md-typeset h3 {
  font-weight: 500;
  font-size: 1.25rem;
  line-height: 1.3;
  color: var(--lp-accent);
}

.md-typeset h4,
.md-typeset h5,
.md-typeset h6 {
  font-weight: 600;
  color: var(--lp-accent);
}

.md-typeset {
  font-size: 0.9rem;   /* ~16px — design-spec §3 body bump */
  line-height: 1.65;
  /* Body color is intentionally NOT hardcoded here — it inherits
     --md-default-fg-color, which is set per scheme (light #1a1a1a /
     dark #e8e3d8). Hardcoding --lp-text is what made dark mode
     dark-on-dark for body prose. */
}

/* ---------------------------------------------------------------------------
 * 4. Header + brand mark (design-spec §4)
 *
 * Light: warm-white sticky header, navy icons/text, hairline shadow.
 * Brand mark is the pin + wordmark (overrides/partials/logo.html ships both
 * variants; we toggle them by scheme here). The text site_name is hidden so
 * the wordmark isn't duplicated.
 * ------------------------------------------------------------------------- */
.md-header {
  background-color: var(--lp-bg);
  color: var(--lp-accent);
  box-shadow: 0 1px 0 var(--lp-border);
}

.md-header__button,
.md-header__button svg {
  color: var(--lp-accent);
  fill: var(--lp-accent);
}

/* Hide the duplicate text wordmark — the SVG logo carries the brand name. */
.md-header__topic .md-ellipsis {
  display: none;
}

/* Brand-mark sizing + light/dark toggle (design-spec §4). The logo lives in
   the .md-logo link; keep its intrinsic aspect ratio, ~36px tall in the bar. */
.md-logo img.mb-logo {
  height: 36px;
  width: auto;
}

.md-logo img.mb-logo--dark {
  display: none;
}

[data-md-color-scheme="slate"] .md-logo img.mb-logo--light {
  display: none;
}

[data-md-color-scheme="slate"] .md-logo img.mb-logo--dark {
  display: inline-block;
}

/* Tabs row — light = warm, active = navy text + coral underline. */
.md-tabs {
  background-color: var(--lp-surface-warm);
  color: var(--lp-text-soft);
  border-bottom: 1px solid var(--lp-border);
}

.md-tabs__link {
  color: var(--lp-text-soft);
  opacity: 1;
  /* ≥24px target (2.5.8) — small vertical padding even though tabs qualify
     for the inline exception. */
  padding-top: 0.55rem;
  padding-bottom: 0.55rem;
}

.md-tabs__link:hover,
.md-tabs__link--active {
  color: var(--lp-accent-deep);
}

.md-tabs__link--active {
  border-bottom: 2px solid var(--lp-tab-active);
}

/* Search input inside the header. */
.md-search__form {
  background-color: var(--lp-surface-warm);
  border: 1px solid var(--lp-border);
}

.md-search__form:hover {
  background-color: #efeadf;
}

.md-search__input {
  color: var(--lp-text);
}

.md-search__input::placeholder {
  color: var(--lp-text-muted);
}

/* ---------------------------------------------------------------------------
 * 5. Sidebar / nav (design-spec §6)
 * active + hover = coral; active weight 600; 3px left accent bar in sage
 * (#5c7d56, 4.44:1 — clears 3:1 as a state indicator).
 * ------------------------------------------------------------------------- */
.md-nav__title {
  color: var(--lp-accent-deep);
}

.md-nav__link {
  color: var(--lp-text);
}

.md-nav__link--active,
.md-nav__link:hover {
  color: var(--lp-accent-3-deep);  /* coral 6.2:1 */
}

.md-nav__item .md-nav__link--active {
  font-weight: 600;
  border-left: 3px solid var(--lp-accent-2-line);  /* sage 4.44:1 — state bar ≥3:1 */
  padding-left: 0.6rem;
}

/* ---------------------------------------------------------------------------
 * 6. Links in prose (design-spec §6) — navy, underlined (not color-only),
 * hover coral.
 * ------------------------------------------------------------------------- */
.md-typeset a {
  color: var(--lp-accent);
  text-decoration: underline;
  text-decoration-color: rgba(30, 58, 95, 0.35);
  text-underline-offset: 2px;
}

.md-typeset a:hover {
  color: var(--lp-accent-3-deep);
  text-decoration-color: var(--lp-accent-3);
}

/* ---------------------------------------------------------------------------
 * 7. Admonitions — three color families (design-spec §6).
 *   navy  — note, info, abstract, example
 *   sage  — tip, success, question
 *   coral — warning, failure, danger, bug
 *   taupe — quote, cite
 * The 4px left border marks the family (a state), so sage uses the ≥3:1
 * line color (#5c7d56), not the decorative #7a9b76.
 * ------------------------------------------------------------------------- */
.md-typeset .admonition,
.md-typeset details {
  border-left-width: 4px;
  border-radius: 6px;
  background-color: var(--lp-accent-soft);
  border-color: var(--lp-accent);
  box-shadow: none;
  /* No hardcoded text color — admonition body inherits
     --md-default-fg-color per scheme; the slate block re-tints the
     admonition background for dark mode. */
}

.md-typeset .admonition-title,
.md-typeset summary {
  background-color: var(--lp-accent-soft);
  color: var(--lp-accent-deep);
  font-weight: 600;
}

.md-typeset .admonition-title::before,
.md-typeset summary::before {
  background-color: var(--lp-accent);
}

/* Sage family — tip / success / question */
.md-typeset .admonition.tip,
.md-typeset .admonition.success,
.md-typeset .admonition.question,
.md-typeset details.tip,
.md-typeset details.success,
.md-typeset details.question {
  border-color: var(--lp-accent-2-line);  /* 3.40:1 on sage band — state border ≥3:1 */
  background-color: var(--lp-section-sage);
}

.md-typeset .tip > .admonition-title,
.md-typeset .success > .admonition-title,
.md-typeset .question > .admonition-title,
.md-typeset details.tip > summary,
.md-typeset details.success > summary,
.md-typeset details.question > summary {
  background-color: var(--lp-accent-2-soft);
  color: var(--lp-accent-2-deep);   /* #4c6948 — 5.0:1 on soft */
}

.md-typeset .tip > .admonition-title::before,
.md-typeset .success > .admonition-title::before,
.md-typeset .question > .admonition-title::before,
.md-typeset details.tip > summary::before,
.md-typeset details.success > summary::before,
.md-typeset details.question > summary::before {
  background-color: var(--lp-accent-2-deep);
}

/* Coral family — warning / failure / danger / bug */
.md-typeset .admonition.warning,
.md-typeset .admonition.failure,
.md-typeset .admonition.danger,
.md-typeset .admonition.bug,
.md-typeset details.warning,
.md-typeset details.failure,
.md-typeset details.danger,
.md-typeset details.bug {
  border-color: var(--lp-accent-3);   /* 4.46:1 on coral band */
  background-color: var(--lp-section-coral);
}

.md-typeset .warning > .admonition-title,
.md-typeset .failure > .admonition-title,
.md-typeset .danger > .admonition-title,
.md-typeset .bug > .admonition-title,
.md-typeset details.warning > summary,
.md-typeset details.failure > summary,
.md-typeset details.danger > summary,
.md-typeset details.bug > summary {
  background-color: var(--lp-accent-3-soft);
  color: var(--lp-accent-3-deep);   /* #a23b37 — 4.8:1 on soft */
}

.md-typeset .warning > .admonition-title::before,
.md-typeset .failure > .admonition-title::before,
.md-typeset .danger > .admonition-title::before,
.md-typeset .bug > .admonition-title::before,
.md-typeset details.warning > summary::before,
.md-typeset details.failure > summary::before,
.md-typeset details.danger > summary::before,
.md-typeset details.bug > summary::before {
  background-color: var(--lp-accent-3);
}

/* Taupe family — quote / cite */
.md-typeset .admonition.quote,
.md-typeset .admonition.cite,
.md-typeset details.quote,
.md-typeset details.cite {
  border-color: var(--lp-taupe);
  background-color: #f1ede4;
}

.md-typeset .quote > .admonition-title,
.md-typeset .cite > .admonition-title,
.md-typeset details.quote > summary,
.md-typeset details.cite > summary {
  background-color: #e8e0d0;
  color: var(--lp-taupe);
}

/* ---------------------------------------------------------------------------
 * 8. Code blocks (design-spec §6)
 * ------------------------------------------------------------------------- */
.md-typeset code {
  background-color: var(--lp-surface-warm);
  border: 1px solid var(--lp-border);
  color: var(--lp-accent-deep);
  font-size: 0.825em;
  padding: 0.1em 0.35em;
  border-radius: 4px;
}

.md-typeset pre > code {
  border: none;
  border-radius: 6px;
  background-color: var(--lp-surface-warm);
}

.md-typeset .highlight pre {
  background-color: var(--lp-surface-warm);
  border: 1px solid var(--lp-border);
  border-radius: 6px;
}

/* ---------------------------------------------------------------------------
 * 9. Tables (design-spec §6)
 * ------------------------------------------------------------------------- */
.md-typeset table:not([class]) {
  border: 1px solid var(--lp-border);
  border-radius: 6px;
  font-size: 0.85rem;
}

.md-typeset table:not([class]) th {
  background-color: var(--lp-accent-soft);
  color: var(--lp-accent-deep);
  font-weight: 600;
}

.md-typeset table:not([class]) tr:nth-child(even) {
  background-color: var(--lp-surface-warm);
}

/* ---------------------------------------------------------------------------
 * 10. Buttons (design-spec §6) — navy default, coral "start here" primary,
 * pill radius, focus ring handled globally in §13.
 * ------------------------------------------------------------------------- */
.md-typeset .md-button {
  background-color: var(--lp-accent);
  color: #fff;
  border: 1px solid var(--lp-accent);
  border-radius: 999px;
  padding: 0.5rem 1.25rem;
  font-weight: 600;
  letter-spacing: 0.01em;
}

.md-typeset .md-button:hover,
.md-typeset .md-button:focus {
  background-color: var(--lp-accent-deep);
  border-color: var(--lp-accent-deep);
  color: #fff;
}

.md-typeset .md-button--primary {
  background-color: var(--lp-accent-3);   /* coral 5.1:1 white */
  border-color: var(--lp-accent-3);
}

.md-typeset .md-button--primary:hover,
.md-typeset .md-button--primary:focus {
  background-color: var(--lp-accent-3-deep);
  border-color: var(--lp-accent-3-deep);
}

/* ---------------------------------------------------------------------------
 * 11. Footer (design-spec §5.5) — deep-navy band, cream text, coral hover.
 * Footer links get vertical padding so each target clears 24px (2.5.8).
 * ------------------------------------------------------------------------- */
.md-footer-meta a:hover,
.md-footer__link:hover {
  color: var(--lp-accent-3-soft);
}

.md-footer-meta__inner .md-social__link,
.md-footer-nav__link {
  padding-top: 0.3rem;
  padding-bottom: 0.3rem;
}

.md-social__link {
  color: var(--lp-surface-warm);
}

.md-social__link:hover {
  color: var(--lp-accent-3-soft);
}

/* ---------------------------------------------------------------------------
 * 12. Search highlight <mark> (a11y carry-over #9).
 * Material's search-result highlight uses --md-accent-fg-color--transparent as
 * a background. We pin the mark to an explicit warm tint + dark ink so the
 * highlighted text clears 4.5:1 in BOTH schemes regardless of the accent tint.
 *   Light: #1a1a1a on #ffe7b3 = 14.3:1.  Dark: #16293f on #f0d28a = 9.9:1.
 * ------------------------------------------------------------------------- */
.md-search-result__teaser mark,
.md-typeset mark {
  background-color: #ffe7b3;
  color: #1a1a1a;          /* 14.3:1 on #ffe7b3 */
  border-radius: 2px;
  padding: 0 0.1em;
}

/* ---------------------------------------------------------------------------
 * 13. Global a11y plumbing (design-spec §6, a11y-review §4/§5)
 * ------------------------------------------------------------------------- */

/* Sticky-header focus obscuring (2.4.11) — header (48px) + tabs (~42px) ≈ 96px,
   plus a little slack so a Tab-to / deep-linked heading clears the chrome. */
html {
  scroll-padding-top: 100px;
}

/* Global focus-visible ring (2.4.7 / 2.4.13) — coral, ≥3:1 both schemes
   (5.1:1 light / 8.4:1 dark). Replaces, not removes, Material's outline. */
:focus-visible {
  outline: 2px solid var(--lp-accent-3);
  outline-offset: 2px;
  border-radius: 3px;
}

/* Reduced motion (2.3.3, mandatory per accessibility-standards §8). */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
  }
}

/* ---------------------------------------------------------------------------
 * 14. DARK MODE — slate scheme (design-spec §2.2)
 *
 * The previously broken block hardcoded navy/near-black and left tabs/nav/
 * search reading the light defaults (dark-on-dark). This is the full,
 * self-contained dark palette: deep-navy paper, warm-cream ink, lightened
 * sage/coral accents that clear AA on the dark field.
 * ------------------------------------------------------------------------- */
[data-md-color-scheme="slate"] {
  --md-default-bg-color: #0f2236;
  --md-default-bg-color--light: #16293f;
  --md-default-bg-color--lighter: #16293f;
  --md-default-bg-color--lightest: #1c344f;

  --md-default-fg-color: #e8e3d8;          /* 12.6:1 */
  --md-default-fg-color--light: #c2bcae;   /* 8.5:1  */
  --md-default-fg-color--lighter: #a59f92; /* 6.1:1  */
  --md-default-fg-color--lightest: #26405c;

  --md-primary-fg-color: #0a1626;  /* header bg */
  --md-primary-bg-color: #f4efe7;  /* header text/icons */

  --md-accent-fg-color: #f0a9a6;   /* coral-light active 8.4:1 */
  --md-accent-fg-color--transparent: rgba(240, 169, 166, 0.14);

  --md-typeset-a-color: #a8c2a4;   /* sage-light link 8.4:1 */

  --md-footer-bg-color: #0a1626;
  --md-footer-fg-color: #f4efe7;
  --md-footer-fg-color--light: rgba(244, 239, 231, 0.85);
  --md-footer-fg-color--lighter: rgba(244, 239, 231, 0.6);

  --md-code-bg-color: #16293f;
  --md-code-fg-color: #e8e3d8;

  /* Pygments tokens on the dark code bg #16293f (a11y carry-over #9). Stock
     line-highlight (#2977ff) was 3.64:1; the rest hovered ~4.6:1. Re-pinned to
     lightened brand-derived hues, all ≥4.5:1 (measured). */
  --md-code-hl-color: #e8e3d8;                 /* generic/line-hl 11.53:1 */
  --md-code-hl-keyword-color: #f0a9a6;         /* 7.68:1 */
  --md-code-hl-string-color: #a8c2a4;          /* 7.67:1 */
  --md-code-hl-number-color: #f0a9a6;          /* 7.68:1 */
  --md-code-hl-function-color: #d39ae0;        /* 6.65:1 */
  --md-code-hl-constant-color: #b3a6f0;        /* 6.77:1 */
  --md-code-hl-special-color: #f48bb0;         /* 6.44:1 */
  --md-code-hl-name-color: #e8e3d8;            /* 11.53:1 */
  --md-code-hl-comment-color: #c2bcae;         /* 7.80:1 */
  --md-code-hl-operator-color: #c2bcae;
  --md-code-hl-punctuation-color: #c2bcae;
  --md-code-hl-variable-color: #c2bcae;
  --md-code-hl-generic-color: #c2bcae;
}

/* Header + buttons */
[data-md-color-scheme="slate"] .md-header {
  background: #0a1626;
  color: #f4efe7;
  box-shadow: 0 1px 0 #26405c;
}

[data-md-color-scheme="slate"] .md-header__button,
[data-md-color-scheme="slate"] .md-header__button svg {
  color: #f4efe7;
  fill: #f4efe7;
}

/* Tabs */
[data-md-color-scheme="slate"] .md-tabs {
  background: #0f2236;
  color: #d8d2c5;
  border-bottom: 1px solid #26405c;
}

[data-md-color-scheme="slate"] .md-tabs__link {
  color: #d8d2c5;   /* 10.7:1 */
}

[data-md-color-scheme="slate"] .md-tabs__link:hover,
[data-md-color-scheme="slate"] .md-tabs__link--active {
  color: #f4efe7;
}

[data-md-color-scheme="slate"] .md-tabs__link--active {
  border-bottom: 2px solid #f0a9a6;
}

/* Nav / sidebar */
[data-md-color-scheme="slate"] .md-nav__title {
  color: #f4efe7;
}

[data-md-color-scheme="slate"] .md-nav__link {
  color: #d8d2c5;
}

[data-md-color-scheme="slate"] .md-nav__link--active,
[data-md-color-scheme="slate"] .md-nav__link:hover {
  color: #f0a9a6;   /* 8.4:1 */
}

[data-md-color-scheme="slate"] .md-nav__item .md-nav__link--active {
  border-left-color: #a8c2a4;   /* sage-light — clears 3:1 on dark bg */
}

/* Headings + links */
[data-md-color-scheme="slate"] .md-typeset h1,
[data-md-color-scheme="slate"] .md-typeset h2 {
  color: #f4efe7;
}

[data-md-color-scheme="slate"] .md-typeset h3 {
  color: #a8c2a4;
}

[data-md-color-scheme="slate"] .md-typeset h4,
[data-md-color-scheme="slate"] .md-typeset h5,
[data-md-color-scheme="slate"] .md-typeset h6 {
  color: #c2bcae;
}

[data-md-color-scheme="slate"] .md-typeset a {
  color: #a8c2a4;
  text-decoration-color: rgba(168, 194, 164, 0.4);
}

[data-md-color-scheme="slate"] .md-typeset a:hover {
  color: #f0a9a6;
  text-decoration-color: #f0a9a6;
}

/* Search */
[data-md-color-scheme="slate"] .md-search__form {
  background: #16293f;
  border: 1px solid #5e7da4;   /* structural border 3.5:1 */
}

[data-md-color-scheme="slate"] .md-search__form:hover {
  background: #1c344f;
}

[data-md-color-scheme="slate"] .md-search__input {
  color: #e8e3d8;
}

[data-md-color-scheme="slate"] .md-search__input::placeholder {
  color: #a59f92;
}

/* Inline code */
[data-md-color-scheme="slate"] .md-typeset code {
  background-color: #16293f;
  border-color: #26405c;
  color: #e8e3d8;   /* 11.5:1 */
}

[data-md-color-scheme="slate"] .md-typeset pre > code,
[data-md-color-scheme="slate"] .md-typeset .highlight pre {
  background-color: #16293f;
  border-color: #26405c;
}

/* Tables */
[data-md-color-scheme="slate"] .md-typeset table:not([class]) {
  border-color: #26405c;
}

[data-md-color-scheme="slate"] .md-typeset table:not([class]) th {
  background-color: #1c344f;
  color: #e8e3d8;   /* 9.9:1 */
}

[data-md-color-scheme="slate"] .md-typeset table:not([class]) tr:nth-child(even) {
  background-color: #16293f;
}

/* Admonitions — explicit dark tints + titles (design-spec §2.2/§6) */
[data-md-color-scheme="slate"] .md-typeset .admonition,
[data-md-color-scheme="slate"] .md-typeset details {
  background-color: #16314c;        /* navy tint */
  border-color: #6f8fb5;
  color: #e8e3d8;
}

[data-md-color-scheme="slate"] .md-typeset .admonition-title,
[data-md-color-scheme="slate"] .md-typeset summary {
  background-color: rgba(111, 143, 181, 0.18);
  color: #dfe7f2;   /* navy-tint title 10.7:1 */
}

[data-md-color-scheme="slate"] .md-typeset .admonition-title::before,
[data-md-color-scheme="slate"] .md-typeset summary::before {
  background-color: #bcd2ec;
}

[data-md-color-scheme="slate"] .md-typeset .admonition.tip,
[data-md-color-scheme="slate"] .md-typeset .admonition.success,
[data-md-color-scheme="slate"] .md-typeset .admonition.question,
[data-md-color-scheme="slate"] .md-typeset details.tip,
[data-md-color-scheme="slate"] .md-typeset details.success,
[data-md-color-scheme="slate"] .md-typeset details.question {
  background-color: #1c3320;   /* sage tint */
  border-color: #a8c2a4;
}

[data-md-color-scheme="slate"] .md-typeset .tip > .admonition-title,
[data-md-color-scheme="slate"] .md-typeset .success > .admonition-title,
[data-md-color-scheme="slate"] .md-typeset .question > .admonition-title,
[data-md-color-scheme="slate"] .md-typeset details.tip > summary,
[data-md-color-scheme="slate"] .md-typeset details.success > summary,
[data-md-color-scheme="slate"] .md-typeset details.question > summary {
  background-color: rgba(168, 194, 164, 0.12);
  color: #a8c2a4;   /* 7.1:1 on sage tint */
}

[data-md-color-scheme="slate"] .md-typeset .tip > .admonition-title::before,
[data-md-color-scheme="slate"] .md-typeset .success > .admonition-title::before,
[data-md-color-scheme="slate"] .md-typeset .question > .admonition-title::before,
[data-md-color-scheme="slate"] .md-typeset details.tip > summary::before,
[data-md-color-scheme="slate"] .md-typeset details.success > summary::before,
[data-md-color-scheme="slate"] .md-typeset details.question > summary::before {
  background-color: #a8c2a4;
}

[data-md-color-scheme="slate"] .md-typeset .admonition.warning,
[data-md-color-scheme="slate"] .md-typeset .admonition.failure,
[data-md-color-scheme="slate"] .md-typeset .admonition.danger,
[data-md-color-scheme="slate"] .md-typeset .admonition.bug,
[data-md-color-scheme="slate"] .md-typeset details.warning,
[data-md-color-scheme="slate"] .md-typeset details.failure,
[data-md-color-scheme="slate"] .md-typeset details.danger,
[data-md-color-scheme="slate"] .md-typeset details.bug {
  background-color: #3a1e1d;   /* coral tint */
  border-color: #f0a9a6;
}

[data-md-color-scheme="slate"] .md-typeset .warning > .admonition-title,
[data-md-color-scheme="slate"] .md-typeset .failure > .admonition-title,
[data-md-color-scheme="slate"] .md-typeset .danger > .admonition-title,
[data-md-color-scheme="slate"] .md-typeset .bug > .admonition-title,
[data-md-color-scheme="slate"] .md-typeset details.warning > summary,
[data-md-color-scheme="slate"] .md-typeset details.failure > summary,
[data-md-color-scheme="slate"] .md-typeset details.danger > summary,
[data-md-color-scheme="slate"] .md-typeset details.bug > summary {
  background-color: rgba(240, 169, 166, 0.12);
  color: #f0a9a6;   /* 7.9:1 on coral tint */
}

[data-md-color-scheme="slate"] .md-typeset .warning > .admonition-title::before,
[data-md-color-scheme="slate"] .md-typeset .failure > .admonition-title::before,
[data-md-color-scheme="slate"] .md-typeset .danger > .admonition-title::before,
[data-md-color-scheme="slate"] .md-typeset .bug > .admonition-title::before,
[data-md-color-scheme="slate"] .md-typeset details.warning > summary::before,
[data-md-color-scheme="slate"] .md-typeset details.failure > summary::before,
[data-md-color-scheme="slate"] .md-typeset details.danger > summary::before,
[data-md-color-scheme="slate"] .md-typeset details.bug > summary::before {
  background-color: #f0a9a6;
}

[data-md-color-scheme="slate"] .md-typeset .admonition.quote,
[data-md-color-scheme="slate"] .md-typeset .admonition.cite,
[data-md-color-scheme="slate"] .md-typeset details.quote,
[data-md-color-scheme="slate"] .md-typeset details.cite {
  background-color: #241f1a;
  border-color: #b1a89f;
}

[data-md-color-scheme="slate"] .md-typeset .quote > .admonition-title,
[data-md-color-scheme="slate"] .md-typeset .cite > .admonition-title,
[data-md-color-scheme="slate"] .md-typeset details.quote > summary,
[data-md-color-scheme="slate"] .md-typeset details.cite > summary {
  background-color: rgba(177, 168, 159, 0.14);
  color: #d8cfc2;
}

/* Buttons */
[data-md-color-scheme="slate"] .md-typeset .md-button {
  background-color: #2b4b6d;   /* navy-light — white 9.0:1 */
  border-color: #5e7da4;
}

[data-md-color-scheme="slate"] .md-typeset .md-button:hover,
[data-md-color-scheme="slate"] .md-typeset .md-button:focus {
  background-color: #365a82;
  border-color: #365a82;
}

[data-md-color-scheme="slate"] .md-typeset .md-button--primary {
  background-color: #c2403b;   /* coral — white 5.1:1 */
  border-color: #c2403b;
}

[data-md-color-scheme="slate"] .md-typeset .md-button--primary:hover,
[data-md-color-scheme="slate"] .md-typeset .md-button--primary:focus {
  background-color: #a23b37;
  border-color: #a23b37;
}

/* Search highlight <mark> — warm gold tint, dark ink (9.9:1) */
[data-md-color-scheme="slate"] .md-search-result__teaser mark,
[data-md-color-scheme="slate"] .md-typeset mark {
  background-color: #f0d28a;
  color: #16293f;   /* 9.9:1 on #f0d28a */
}

/* Focus ring — coral-light in dark (8.4:1) */
[data-md-color-scheme="slate"] :focus-visible {
  outline-color: #f0a9a6;
}
