/* Generated by autoform render. Edits are overwritten. */
/* Material requests 300/400/700 only, and the display sizes here are set in
   600 and 800. Without this the browser synthesises them, which on a
   geometric face reads as smeared rather than bold. */
@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap");

/* Facebook's product surfaces, not Material's defaults: the greys are the
   ones Facebook ships in dark mode, the blue is Meta blue, and the accent
   sweep is the brand gradient. A blueprint should look like it came from
   here rather than from any documentation generator. */
:root {
  --bp-fg: #050505;
  --bp-muted: #65676B;
  --bp-rule: #CED0D4;
  --bp-surface: #FFFFFF;
  --bp-sunken: #F0F2F5;
  --bp-link: #0064E0;
  --bp-link-hover: #0082FB;
  --bp-blue: #0064E0;
  --bp-violet: #7B3FE4;
  --bp-magenta: #E0447B;
  --bp-sweep: linear-gradient(95deg, #0082FB 0%, #0064E0 32%, #7B3FE4 68%, #E0447B 100%);
  --bp-radius: 12px;
}
[data-md-color-scheme=slate] {
  --bp-fg: #E4E6EB;
  --bp-muted: #B0B3B8;
  --bp-rule: #3E4042;
  --bp-surface: #242526;
  --bp-sunken: #1C1D1F;
  --bp-link: #2D88FF;
  --bp-link-hover: #7FB8FF;
  --bp-blue: #2D88FF;
  --bp-violet: #9B6BFF;
  --bp-magenta: #FF6B9D;
}

body { font-family: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--bp-fg); }
.md-typeset {
  max-width: 72ch;
  font-family: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.7;
  font-size: 0.8rem;
}
/* One family throughout, separated by weight rather than by a second face.
   Optimistic, Meta's own, is not public; Plus Jakarta Sans is the nearest
   geometric humanist with the range to carry both display and body. */
h1, h2, h3, h4, h5, h6 { font-family: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-weight: 700; letter-spacing: -0.021em; }
.md-typeset h1 { font-weight: 800; letter-spacing: -0.032em; }
code, kbd, pre, samp { font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; }
code, pre { background: var(--bp-sunken); border-radius: 6px; }
a, a:visited { color: var(--bp-link); }
a:hover, a:visited:hover { color: var(--bp-link-hover); text-decoration: underline; }

[data-md-color-scheme=slate] body { background-color: #18191A; }
[data-md-color-scheme=slate] .md-main,
[data-md-color-scheme=slate] .md-container { background-color: #18191A; }
[data-md-color-scheme=slate] pre, [data-md-color-scheme=slate] code { color: var(--bp-fg); }

/* The brand sweep as a hairline under the header ties every page together
   without spending any vertical space on decoration. */
.md-header { box-shadow: none; border-bottom: 1px solid var(--bp-rule); }
.md-header::after {
  content: "";
  display: block;
  height: 3px;
  background: var(--bp-sweep);
}
[data-md-color-scheme=slate] .md-header,
[data-md-color-scheme=slate] .md-tabs { background-color: #242526; }
.md-tabs { border-bottom: 1px solid var(--bp-rule); }
.md-tabs__link { font-weight: 600; opacity: 0.72; }
.md-tabs__link--active, .md-tabs__link:hover { opacity: 1; }

/* The landing page is a dashboard, not a chapter, so it drops the reading
   column the rest of the book keeps. :has() is how a single generated
   stylesheet can tell the two apart without a second page template; where it
   is unsupported the page simply stays at reading width. */
.md-typeset:has(.bp-landing) { max-width: 62rem; }

.bp-hero { margin: 0 0 2.5rem; }
.bp-hero-rule {
  height: 4px;
  width: 84px;
  border-radius: 4px;
  background: var(--bp-sweep);
}
.bp-hero-kicker {
  margin-top: 1.1rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--bp-muted);
}
.md-typeset .bp-hero-title {
  margin: 0.35rem 0 0;
  font-size: 2.6rem;
  line-height: 1.08;
  font-weight: 800;
  letter-spacing: -0.035em;
}
.md-typeset .bp-hero-lead {
  margin: 0.9rem 0 0;
  max-width: 54ch;
  font-size: 1.05rem;
  line-height: 1.55;
  color: var(--bp-muted);
}

/* Counts set as figures. The reader should get "how far along?" from the
   shape of the numbers before reading any of the words around them. */
.bp-hero-figures {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 1px;
  margin-top: 2rem;
  background: var(--bp-rule);
  border: 1px solid var(--bp-rule);
  border-radius: var(--bp-radius);
  overflow: hidden;
}
.bp-figure { padding: 1.1rem 1.25rem; background: var(--bp-surface); }
.bp-figure-value {
  font-size: 2.1rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.04em;
  background: var(--bp-sweep);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.bp-figure-label {
  margin-top: 0.45rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.01em;
}
.bp-figure-note { margin-top: 0.15rem; font-size: 0.7rem; color: var(--bp-muted); }

.bp-hero-bar {
  margin-top: 1rem;
  height: 6px;
  border-radius: 6px;
  background: var(--bp-sunken);
  border: 1px solid var(--bp-rule);
  overflow: hidden;
}
.bp-hero-bar > span { display: block; height: 100%; background: var(--bp-sweep); }

/* The map is the page's subject, so it gets a panel of its own and the
   legend rides with it instead of becoming a section further down. */
.bp-map {
  margin: 2.5rem 0;
  border: 1px solid var(--bp-rule);
  border-radius: var(--bp-radius);
  background: var(--bp-surface);
  overflow: hidden;
}
.bp-map-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.75rem;
  padding: 0.9rem 1.25rem;
  border-bottom: 1px solid var(--bp-rule);
  background: var(--bp-sunken);
}
.bp-map-title { font-size: 0.82rem; font-weight: 700; letter-spacing: -0.01em; }
.bp-map-hint { font-size: 0.7rem; color: var(--bp-muted); }
.bp-map .mermaid { margin: 0; padding: 1.75rem 1.25rem; text-align: center; }
.bp-map-legend {
  padding: 1rem 1.25rem;
  border-top: 1px solid var(--bp-rule);
  background: var(--bp-sunken);
}

/* One grid for the whole legend. The cells are emitted in reading order with
   no row wrapper, so every swatch, label and count sits on the same axis
   however long the text beside it runs. */
.bp-legend-grid {
  display: grid;
  grid-template-columns: auto auto auto minmax(0, 1fr);
  align-items: baseline;
  gap: 0.5rem 0.9rem;
  font-size: 0.72rem;
}
.bp-legend-label { font-weight: 700; white-space: nowrap; }
.bp-legend-count {
  justify-self: end;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  color: var(--bp-muted);
}
.bp-legend-meaning { color: var(--bp-muted); }
.md-typeset .bp-legend-grid .bp-swatch { align-self: center; }

/* The book opens with a compact progress summary. It reports only decomposed
   blueprint items, leaving source-wide coverage to the dedicated page. */
.bp-progress-overview {
  margin: 1.5rem 0 2rem;
  font-family: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  padding: 1rem 1.15rem;
  border: 1px solid var(--bp-rule);
  border-radius: 6px;
  background: var(--bp-surface);
}
.bp-progress-kicker {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--bp-muted);
}
.bp-progress-total { margin-top: 0.2rem; font-family: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 1.05rem; }
.bp-progress-states {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1rem;
  margin-top: 0.55rem;
  font-size: 0.85rem;
}
.bp-progress-state { display: inline-flex; align-items: center; gap: 0.35rem; }

/* Reading order belongs to the book itself, not to MkDocs' global navbar. */
.bp-book-nav {
  display: flex;
  font-family: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  gap: 1.5rem;
  margin: 3rem 0 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--bp-rule);
}
.bp-book-nav-link {
  display: flex;
  flex-direction: column;
  max-width: 48%;
  text-decoration: none;
}
.bp-book-nav-link:hover { text-decoration: none; }
.bp-book-nav-next { margin-left: auto; text-align: right; }
.bp-book-nav-direction {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--bp-muted);
}
.bp-book-nav-title { margin-top: 0.15rem; font-family: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 1rem; }

/* Theorem environments, following leanblueprint's amsthm markup. */
.bp-thmwrapper { margin: 2rem 0 2.25rem; }

.bp-thmheading {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  font-family: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-weight: 700;
  line-height: 150%;
  color: var(--bp-fg);
}
.bp-thmlabel { margin-left: 0.4rem; margin-right: 0.5rem; }
.bp-thmtitle::before { content: "("; }
.bp-thmtitle::after { content: ")"; }

/* With sticky tabs Material renders them inside <header>, so the title, the
   repository link and the tabs are one bar. These rules only remove the seam
   between the two rows of that bar. */
.md-header { box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35); }
.md-tabs { background-color: transparent; box-shadow: none; }
.md-tabs__list { padding-left: 0.2rem; }
.md-tabs__item { height: 1.9rem; }
.md-tabs__link { font-size: 0.72rem; opacity: 0.9; margin-top: 0; }
.md-tabs__link--active, .md-tabs__link:hover { opacity: 1; }

/* "Next up" is the one card a visitor reads first, so it gets real hierarchy
   and a way into the mathematics rather than three stacked words. */
.bp-next-target {
  border: 1px solid var(--bp-rule);
  border-left: 3px solid var(--bp-link);
  border-radius: 6px;
  padding: 0.75rem 1rem;
  margin: 1rem 0 1.5rem;
  background: var(--bp-surface);
}
.bp-next-kicker {
  font-family: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--bp-muted);
}
.bp-next-title { font-family: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 1.15rem; margin-top: 0.15rem; }
.bp-next-why, .bp-next-rests {
  font-family: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 0.85rem;
  color: var(--bp-muted);
  margin-top: 0.2rem;
}
.bp-next-actions { font-family: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 0.85rem; margin-top: 0.5rem; }

/* On a graph page the legend hangs off an icon at the end of the lead. It
   opens on hover and on focus, so the button is reachable by keyboard; there
   is no script behind it. */
.bp-legend-tip { position: relative; display: inline-block; }
.bp-legend-icon {
  display: inline-flex;
  padding: 0;
  border: 0;
  background: none;
  color: var(--bp-muted);
  cursor: help;
  vertical-align: -0.14em;
}
.bp-legend-icon svg {
  width: 1em;
  height: 1em;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.4;
  stroke-linecap: round;
}
.bp-legend-icon .bp-legend-dot { fill: currentColor; stroke: none; }
.bp-legend-icon:hover, .bp-legend-icon:focus-visible { color: var(--bp-link); }
.bp-legend-note {
  position: absolute;
  z-index: 5;
  left: 0;
  top: calc(100% + 0.5rem);
  width: max-content;
  max-width: min(30rem, 78vw);
  padding: 0.85rem 1rem;
  border: 1px solid var(--bp-rule);
  border-radius: var(--bp-radius);
  background: var(--bp-surface);
  box-shadow: 0 8px 28px rgb(0 0 0 / 22%);
  /* Hidden without display:none, so the description stays announceable. */
  opacity: 0;
  visibility: hidden;
  transition: opacity 90ms ease;
}
.bp-legend-tip:hover .bp-legend-note,
.bp-legend-tip:focus-within .bp-legend-note { opacity: 1; visibility: visible; }
/* The structure page is about paths, so it is set in the mono face and the
   three columns are a grid: filenames stay on their indent, and the states
   line up down the page where a mismatch is easy to spot. */
.bp-tree {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: baseline;
  gap: 0.3rem 1.25rem;
  margin: 1.5rem 0;
  padding: 1rem 1.25rem;
  border: 1px solid var(--bp-rule);
  border-radius: var(--bp-radius);
  background: var(--bp-surface);
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.68rem;
}
.bp-tree-path { overflow-wrap: anywhere; }
.bp-tree-title { font-family: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--bp-muted); margin-left: 0.5rem; }
.bp-tree-kind { color: var(--bp-muted); }
.bp-tree-mark { display: inline-flex; align-items: center; gap: 0.4rem; white-space: nowrap; }
.bp-tree-state { color: var(--bp-muted); }
.bp-tree-warn {
  margin: 1rem 0;
  padding: 0.8rem 1rem;
  border: 1px solid var(--bp-rule);
  border-left: 3px solid #F7B928;
  border-radius: var(--bp-radius);
  background: var(--bp-sunken);
  font-size: 0.75rem;
}

.bp-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.bp-source-link { color: var(--bp-muted); margin-left: 0.3rem; }
.bp-source-link:hover { color: var(--bp-link-hover); text-decoration: none; }
.bp-source-icon { width: 0.95em; height: 0.95em; fill: none; stroke: currentColor;
  stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; vertical-align: -0.12em; }
.bp-code-links { display: inline-flex; align-items: center; gap: 0.2rem; margin-left: 0.45rem; }
.bp-code-link {
  display: inline-flex;
  align-items: center;
  color: var(--bp-muted);
  text-decoration: none;
}
.bp-code-link:visited { color: var(--bp-muted); }
.bp-code-link:hover, .bp-code-link:visited:hover { color: var(--bp-link-hover); text-decoration: none; }
.bp-code-icon {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.bp-context-link {
  display: inline-flex;
  align-items: center;
  margin-left: 0.3rem;
  color: var(--bp-muted);
  text-decoration: none;
}
.bp-context-link:visited { color: var(--bp-muted); }
.bp-context-link:hover, .bp-context-link:visited:hover { color: var(--bp-link-hover); text-decoration: none; }
.bp-context-icon {
  width: 1rem;
  height: 1rem;
  fill: var(--bp-surface);
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
}

.bp-permalink {
  margin-left: 0.5rem;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-weight: 400;
  text-decoration: none;
  color: var(--bp-muted);
  opacity: 0;
  transition: opacity 0.1s ease;
}
.bp-thmwrapper:hover .bp-permalink { opacity: 1; }

.bp-mark { margin-left: auto; font-weight: 400; padding-left: 1rem; }
.bp-mark-label {
  margin-left: 0.3rem;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.78rem;
  letter-spacing: 0.02em;
  color: var(--bp-muted);
}

.bp-thmcontent {
  font-family: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-weight: 400;
  line-height: 1.75;
  margin-left: 0.5rem;
  padding: 0.15rem 0 0.15rem 1rem;
  border-left: 3px solid var(--bp-rule);
}
.theorem-style-plain > .bp-thmcontent { font-style: italic; }
.theorem-style-definition > .bp-thmcontent { font-style: normal; }
.bp-thmcontent > p:first-child { margin-top: 0; }
.bp-thmcontent > p:last-child { margin-bottom: 0; }

.bp-thmnotes {
  font-family: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 0.85rem;
  line-height: 1.7;
  margin: 0.6rem 0 0 2rem;
  color: var(--bp-muted);
}
.bp-thmnotes h6 {
  font-family: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--bp-muted);
  margin: 0.5rem 0 0.15rem;
}
.bp-thmnotes ul { margin: 0; padding-left: 1.1rem; }

.bp-meta {
  font-family: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 0.85rem;
  line-height: 1.8;
  margin: 0.6rem 0 0 2rem;
}
.bp-dependencies {
  margin: 0.65rem 0 0 2rem;
  font-family: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 0.82rem;
  color: var(--bp-muted);
}
.bp-dependencies summary {
  width: fit-content;
  cursor: pointer;
  color: var(--bp-link);
  user-select: none;
}
.bp-dependencies summary:hover { color: var(--bp-link-hover); text-decoration: underline; }
.bp-dependency-body { margin-top: 0.35rem; color: var(--bp-fg); }
.bp-row { display: flex; gap: 0.75rem; }
.bp-key {
  flex: 0 0 7.5rem;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--bp-muted);
}
.bp-value { flex: 1; }
.bp-lean { font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; }
.bp-where { color: var(--bp-muted); }
.bp-missing { color: #b91c1c; }
[data-md-color-scheme=slate] .bp-missing { color: #ff7b72; }
.bp-ref::before {
  content: "";
  display: inline-block;
  width: 0.6rem;
  height: 0.6rem;
  margin-right: 0.35rem;
  border: 1px solid var(--bp-rule);
  border-radius: 2px;
}
.bp-swatch {
  display: inline-block;
  width: 0.9rem;
  height: 0.9rem;
  border: 1px solid var(--bp-rule);
  border-radius: 3px;
  vertical-align: middle;
}

.bp-mathlib .bp-mark { color: #134426; }
.bp-mathlib > .bp-thmcontent { border-left-color: #134426; }
.bp-ref-mathlib::before, .bp-swatch-mathlib { background: #1C5C33; border-color: #134426; }
.mermaid g.node.mathlib > rect, .mermaid g.node.mathlib > path, .mermaid g.node.mathlib > polygon { fill: #1C5C33; stroke: #134426; }
.bp-fully_proved .bp-mark { color: #22773A; }
.bp-fully_proved > .bp-thmcontent { border-left-color: #22773A; }
.bp-ref-fully_proved::before, .bp-swatch-fully_proved { background: #31A24C; border-color: #22773A; }
.mermaid g.node.fully_proved > rect, .mermaid g.node.fully_proved > path, .mermaid g.node.fully_proved > polygon { fill: #31A24C; stroke: #22773A; }
.bp-proved .bp-mark { color: #22773A; }
.bp-proved > .bp-thmcontent { border-left-color: #22773A; }
.bp-ref-proved::before, .bp-swatch-proved { background: #8ED4A2; border-color: #22773A; }
.mermaid g.node.proved > rect, .mermaid g.node.proved > path, .mermaid g.node.proved > polygon { fill: #8ED4A2; stroke: #22773A; }
.bp-defined .bp-mark { color: #22773A; }
.bp-defined > .bp-thmcontent { border-left-color: #22773A; }
.bp-ref-defined::before, .bp-swatch-defined { background: #C3E9CE; border-color: #22773A; }
.mermaid g.node.defined > rect, .mermaid g.node.defined > path, .mermaid g.node.defined > polygon { fill: #C3E9CE; stroke: #22773A; }
.bp-can_prove .bp-mark { color: #0064E0; }
.bp-can_prove > .bp-thmcontent { border-left-color: #0064E0; }
.bp-ref-can_prove::before, .bp-swatch-can_prove { background: #FFFFFF; border-color: #0064E0; }
.mermaid g.node.can_prove > rect, .mermaid g.node.can_prove > path, .mermaid g.node.can_prove > polygon { fill: #FFFFFF; stroke: #0064E0; }
.bp-stated .bp-mark { color: #31A24C; }
.bp-stated > .bp-thmcontent { border-left-color: #31A24C; }
.bp-ref-stated::before, .bp-swatch-stated { background: #FFFFFF; border-color: #31A24C; }
.mermaid g.node.stated > rect, .mermaid g.node.stated > path, .mermaid g.node.stated > polygon { fill: #FFFFFF; stroke: #31A24C; }
.bp-can_state .bp-mark { color: #0082FB; }
.bp-can_state > .bp-thmcontent { border-left-color: #0082FB; }
.bp-ref-can_state::before, .bp-swatch-can_state { background: #FFFFFF; border-color: #0082FB; }
.mermaid g.node.can_state > rect, .mermaid g.node.can_state > path, .mermaid g.node.can_state > polygon { fill: #FFFFFF; stroke: #0082FB; }
.bp-not_ready .bp-mark { color: #B77900; }
.bp-not_ready > .bp-thmcontent { border-left-color: #B77900; }
.bp-ref-not_ready::before, .bp-swatch-not_ready { background: #FFF3D6; border-color: #B77900; }
.mermaid g.node.not_ready > rect, .mermaid g.node.not_ready > path, .mermaid g.node.not_ready > polygon { fill: #FFF3D6; stroke: #B77900; }
.bp-planned .bp-mark { color: #CED0D4; }
.bp-planned > .bp-thmcontent { border-left-color: #CED0D4; }
.bp-ref-planned::before, .bp-swatch-planned { background: #FFFFFF; border-color: #CED0D4; }
.mermaid g.node.planned > rect, .mermaid g.node.planned > path, .mermaid g.node.planned > polygon { fill: #FFFFFF; stroke: #CED0D4; }

/* The graph is an SVG Mermaid builds from the fence, so the dark scheme has
   to reach into it rather than restyle a stylesheet it never wrote. */
[data-md-color-scheme=slate] .mermaid .edgePath path,
[data-md-color-scheme=slate] .mermaid .flowchart-link { stroke: #8b949e !important; }
[data-md-color-scheme=slate] .mermaid marker path {
  fill: #8b949e !important;
  stroke: #8b949e !important;
}
[data-md-color-scheme=slate] .mermaid .edgeLabel,
[data-md-color-scheme=slate] .mermaid .edgeLabel rect {
  background: #0d1117 !important;
  fill: #0d1117 !important;
  color: var(--bp-fg) !important;
}

[data-md-color-scheme=slate] .bp-mathlib .bp-mark { color: #42B72A; }
[data-md-color-scheme=slate] .bp-mathlib > .bp-thmcontent { border-left-color: #42B72A; }
[data-md-color-scheme=slate] .bp-ref-mathlib::before, [data-md-color-scheme=slate] .bp-swatch-mathlib { background: #10281A; border-color: #42B72A; }
[data-md-color-scheme=slate] .mermaid g.node.mathlib > rect, [data-md-color-scheme=slate] .mermaid g.node.mathlib > path, [data-md-color-scheme=slate] .mermaid g.node.mathlib > polygon { fill: #10281A !important; stroke: #42B72A !important; }
[data-md-color-scheme=slate] .mermaid g.node.mathlib .nodeLabel, [data-md-color-scheme=slate] .mermaid g.node.mathlib .nodeLabel p { color: #8BE78B !important; fill: #8BE78B !important; }
[data-md-color-scheme=slate] .bp-fully_proved .bp-mark { color: #42B72A; }
[data-md-color-scheme=slate] .bp-fully_proved > .bp-thmcontent { border-left-color: #42B72A; }
[data-md-color-scheme=slate] .bp-ref-fully_proved::before, [data-md-color-scheme=slate] .bp-swatch-fully_proved { background: #13301E; border-color: #42B72A; }
[data-md-color-scheme=slate] .mermaid g.node.fully_proved > rect, [data-md-color-scheme=slate] .mermaid g.node.fully_proved > path, [data-md-color-scheme=slate] .mermaid g.node.fully_proved > polygon { fill: #13301E !important; stroke: #42B72A !important; }
[data-md-color-scheme=slate] .mermaid g.node.fully_proved .nodeLabel, [data-md-color-scheme=slate] .mermaid g.node.fully_proved .nodeLabel p { color: #8BE78B !important; fill: #8BE78B !important; }
[data-md-color-scheme=slate] .bp-proved .bp-mark { color: #31A24C; }
[data-md-color-scheme=slate] .bp-proved > .bp-thmcontent { border-left-color: #31A24C; }
[data-md-color-scheme=slate] .bp-ref-proved::before, [data-md-color-scheme=slate] .bp-swatch-proved { background: #122A1B; border-color: #31A24C; }
[data-md-color-scheme=slate] .mermaid g.node.proved > rect, [data-md-color-scheme=slate] .mermaid g.node.proved > path, [data-md-color-scheme=slate] .mermaid g.node.proved > polygon { fill: #122A1B !important; stroke: #31A24C !important; }
[data-md-color-scheme=slate] .mermaid g.node.proved .nodeLabel, [data-md-color-scheme=slate] .mermaid g.node.proved .nodeLabel p { color: #6BD97F !important; fill: #6BD97F !important; }
[data-md-color-scheme=slate] .bp-defined .bp-mark { color: #2B8F44; }
[data-md-color-scheme=slate] .bp-defined > .bp-thmcontent { border-left-color: #2B8F44; }
[data-md-color-scheme=slate] .bp-ref-defined::before, [data-md-color-scheme=slate] .bp-swatch-defined { background: #122A1B; border-color: #2B8F44; }
[data-md-color-scheme=slate] .mermaid g.node.defined > rect, [data-md-color-scheme=slate] .mermaid g.node.defined > path, [data-md-color-scheme=slate] .mermaid g.node.defined > polygon { fill: #122A1B !important; stroke: #2B8F44 !important; }
[data-md-color-scheme=slate] .mermaid g.node.defined .nodeLabel, [data-md-color-scheme=slate] .mermaid g.node.defined .nodeLabel p { color: #6BD97F !important; fill: #6BD97F !important; }
[data-md-color-scheme=slate] .bp-can_prove .bp-mark { color: #2D88FF; }
[data-md-color-scheme=slate] .bp-can_prove > .bp-thmcontent { border-left-color: #2D88FF; }
[data-md-color-scheme=slate] .bp-ref-can_prove::before, [data-md-color-scheme=slate] .bp-swatch-can_prove { background: #101F33; border-color: #2D88FF; }
[data-md-color-scheme=slate] .mermaid g.node.can_prove > rect, [data-md-color-scheme=slate] .mermaid g.node.can_prove > path, [data-md-color-scheme=slate] .mermaid g.node.can_prove > polygon { fill: #101F33 !important; stroke: #2D88FF !important; }
[data-md-color-scheme=slate] .mermaid g.node.can_prove .nodeLabel, [data-md-color-scheme=slate] .mermaid g.node.can_prove .nodeLabel p { color: #7FB8FF !important; fill: #7FB8FF !important; }
[data-md-color-scheme=slate] .bp-stated .bp-mark { color: #31A24C; }
[data-md-color-scheme=slate] .bp-stated > .bp-thmcontent { border-left-color: #31A24C; }
[data-md-color-scheme=slate] .bp-ref-stated::before, [data-md-color-scheme=slate] .bp-swatch-stated { background: #18191A; border-color: #31A24C; }
[data-md-color-scheme=slate] .mermaid g.node.stated > rect, [data-md-color-scheme=slate] .mermaid g.node.stated > path, [data-md-color-scheme=slate] .mermaid g.node.stated > polygon { fill: #18191A !important; stroke: #31A24C !important; }
[data-md-color-scheme=slate] .mermaid g.node.stated .nodeLabel, [data-md-color-scheme=slate] .mermaid g.node.stated .nodeLabel p { color: #E4E6EB !important; fill: #E4E6EB !important; }
[data-md-color-scheme=slate] .bp-can_state .bp-mark { color: #2D88FF; }
[data-md-color-scheme=slate] .bp-can_state > .bp-thmcontent { border-left-color: #2D88FF; }
[data-md-color-scheme=slate] .bp-ref-can_state::before, [data-md-color-scheme=slate] .bp-swatch-can_state { background: #18191A; border-color: #2D88FF; }
[data-md-color-scheme=slate] .mermaid g.node.can_state > rect, [data-md-color-scheme=slate] .mermaid g.node.can_state > path, [data-md-color-scheme=slate] .mermaid g.node.can_state > polygon { fill: #18191A !important; stroke: #2D88FF !important; }
[data-md-color-scheme=slate] .mermaid g.node.can_state .nodeLabel, [data-md-color-scheme=slate] .mermaid g.node.can_state .nodeLabel p { color: #E4E6EB !important; fill: #E4E6EB !important; }
[data-md-color-scheme=slate] .bp-not_ready .bp-mark { color: #F7B928; }
[data-md-color-scheme=slate] .bp-not_ready > .bp-thmcontent { border-left-color: #F7B928; }
[data-md-color-scheme=slate] .bp-ref-not_ready::before, [data-md-color-scheme=slate] .bp-swatch-not_ready { background: #2E2205; border-color: #F7B928; }
[data-md-color-scheme=slate] .mermaid g.node.not_ready > rect, [data-md-color-scheme=slate] .mermaid g.node.not_ready > path, [data-md-color-scheme=slate] .mermaid g.node.not_ready > polygon { fill: #2E2205 !important; stroke: #F7B928 !important; }
[data-md-color-scheme=slate] .mermaid g.node.not_ready .nodeLabel, [data-md-color-scheme=slate] .mermaid g.node.not_ready .nodeLabel p { color: #FFD772 !important; fill: #FFD772 !important; }
[data-md-color-scheme=slate] .bp-planned .bp-mark { color: #4E4F50; }
[data-md-color-scheme=slate] .bp-planned > .bp-thmcontent { border-left-color: #4E4F50; }
[data-md-color-scheme=slate] .bp-ref-planned::before, [data-md-color-scheme=slate] .bp-swatch-planned { background: #18191A; border-color: #4E4F50; }
[data-md-color-scheme=slate] .mermaid g.node.planned > rect, [data-md-color-scheme=slate] .mermaid g.node.planned > path, [data-md-color-scheme=slate] .mermaid g.node.planned > polygon { fill: #18191A !important; stroke: #4E4F50 !important; }
[data-md-color-scheme=slate] .mermaid g.node.planned .nodeLabel, [data-md-color-scheme=slate] .mermaid g.node.planned .nodeLabel p { color: #B0B3B8 !important; fill: #B0B3B8 !important; }
