:root {
  --sb-ink: #142326;
  --sb-muted: #49666b;
  --sb-line: #d7e4e2;
  --sb-paper: #f8fbfa;
  --sb-panel: #ffffff;
  --sb-teal: #0f766e;
  --sb-amber: #d97706;
  --sb-indigo: #4f46e5;
  --sb-red: #be123c;
  --sb-green: #15803d;
  --sb-violet: #7c3aed;
  --sb-cyan: #0891b2;
  --sb-grid: rgba(15, 118, 110, 0.08);
}

[data-md-color-scheme="slate"] {
  --sb-ink: #e5f4f1;
  --sb-muted: #abc8c4;
  --sb-line: #294447;
  --sb-paper: #10191b;
  --sb-panel: #162426;
  --sb-teal: #5eead4;
  --sb-amber: #fbbf24;
  --sb-indigo: #a5b4fc;
  --sb-red: #fb7185;
  --sb-green: #86efac;
  --sb-violet: #c4b5fd;
  --sb-cyan: #67e8f9;
  --sb-grid: rgba(94, 234, 212, 0.1);
}

.md-header,
.md-tabs {
  background: #0d3f45;
}

[data-md-color-scheme="slate"] .md-header,
[data-md-color-scheme="slate"] .md-tabs {
  background: #071416;
}

.md-main {
  background:
    linear-gradient(180deg, rgba(15, 118, 110, 0.06), transparent 18rem),
    var(--md-default-bg-color);
}

.md-typeset {
  color: var(--sb-ink);
}

.md-typeset h1 {
  max-width: 15ch;
  margin-bottom: 0.75rem;
  color: var(--sb-ink);
  font-weight: 780;
  letter-spacing: 0;
  line-height: 0.98;
}

.md-typeset h1 + p {
  max-width: 48rem;
  color: var(--sb-muted);
  font-size: 1.05rem;
  line-height: 1.65;
}

.md-typeset h2 {
  margin-top: 2.1rem;
  color: var(--sb-ink);
  font-weight: 720;
  letter-spacing: 0;
}

.md-typeset h2::before {
  display: inline-block;
  width: 0.58rem;
  height: 0.58rem;
  margin-right: 0.52rem;
  border: 0.12rem solid var(--sb-teal);
  border-radius: 50%;
  content: "";
  vertical-align: 0.08rem;
}

.md-typeset h2:nth-of-type(4n + 1)::before {
  border-color: var(--sb-amber);
}

.md-typeset h2:nth-of-type(4n + 2)::before {
  border-color: var(--sb-indigo);
}

.md-typeset h2:nth-of-type(4n + 3)::before {
  border-color: var(--sb-green);
}

.md-typeset a {
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.16em;
}

.md-typeset code {
  border: 1px solid color-mix(in srgb, var(--sb-line) 74%, transparent);
  border-radius: 0.25rem;
}

.md-typeset pre > code {
  border: 0;
}

.md-typeset table:not([class]),
.md-typeset table.sb-source-posture-table,
.md-typeset table.sb-source-confidence-table,
.md-typeset table.sb-anatomy-table,
.md-typeset table.sb-message-format-table {
  overflow: hidden;
  border: 1px solid var(--sb-line);
  border-radius: 0.45rem;
  box-shadow: 0 0.35rem 1.25rem rgba(20, 35, 38, 0.06);
}

.md-typeset table:not([class]) th,
.md-typeset table.sb-source-posture-table th,
.md-typeset table.sb-source-confidence-table th,
.md-typeset table.sb-anatomy-table th,
.md-typeset table.sb-message-format-table th {
  background:
    linear-gradient(90deg, rgba(15, 118, 110, 0.12), rgba(217, 119, 6, 0.1)),
    var(--sb-paper);
  color: var(--sb-ink);
  font-weight: 720;
}

.md-typeset table:not([class]) td,
.md-typeset table:not([class]) th,
.md-typeset table.sb-source-posture-table td,
.md-typeset table.sb-source-posture-table th,
.md-typeset table.sb-source-confidence-table td,
.md-typeset table.sb-source-confidence-table th,
.md-typeset table.sb-anatomy-table td,
.md-typeset table.sb-anatomy-table th,
.md-typeset table.sb-message-format-table td,
.md-typeset table.sb-message-format-table th {
  border-color: var(--sb-line);
}

.md-typeset table:not([class]) tr:hover td,
.md-typeset table.sb-source-posture-table tr:hover td,
.md-typeset table.sb-source-confidence-table tr:hover td,
.md-typeset table.sb-anatomy-table tr:hover td,
.md-typeset table.sb-message-format-table tr:hover td {
  background: color-mix(in srgb, var(--sb-teal) 7%, transparent);
}

.md-typeset table.sb-source-posture-table td:first-child,
.md-typeset table.sb-source-confidence-table td:first-child,
.md-typeset table.sb-anatomy-table td:first-child,
.md-typeset table.sb-message-format-table td:first-child {
  color: var(--sb-muted);
  font-weight: 700;
}

.md-typeset table.sb-source-posture-table {
  font-size: 0.76rem;
}

.md-typeset table.sb-source-posture-table code,
.md-typeset table.sb-source-confidence-table code {
  white-space: nowrap;
}

.md-typeset .sb-table-shell {
  position: relative;
  padding-top: 1.4rem;
}

.md-typeset .sb-table-shell::before {
  position: absolute;
  top: 0;
  left: 0;
  display: inline-flex;
  align-items: center;
  min-height: 1.05rem;
  padding: 0.06rem 0.42rem;
  border: 1px solid color-mix(in srgb, var(--sb-teal) 55%, var(--sb-line));
  border-radius: 999rem;
  background: color-mix(in srgb, var(--sb-panel) 88%, var(--sb-teal));
  color: var(--sb-muted);
  content: attr(data-table-kind);
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  line-height: 1;
  text-transform: uppercase;
}

.md-typeset .sb-source-posture-table-shell::before,
.md-typeset .sb-source-confidence-table-shell::before {
  border-color: color-mix(in srgb, var(--sb-indigo) 58%, var(--sb-line));
  background: color-mix(in srgb, var(--sb-panel) 84%, var(--sb-indigo));
}

.md-typeset .sb-anatomy-table-shell::before {
  border-color: color-mix(in srgb, var(--sb-amber) 58%, var(--sb-line));
  background: color-mix(in srgb, var(--sb-panel) 84%, var(--sb-amber));
}

.md-typeset .sb-message-format-table-shell::before {
  border-color: color-mix(in srgb, var(--sb-green) 58%, var(--sb-line));
  background: color-mix(in srgb, var(--sb-panel) 84%, var(--sb-green));
}

.md-typeset .admonition,
.md-typeset details {
  border-radius: 0.45rem;
  box-shadow: 0 0.4rem 1.4rem rgba(20, 35, 38, 0.07);
}

.md-typeset .admonition.sb-admonition-semantic {
  border-left-color: var(--sb-indigo);
}

.md-typeset .admonition.sb-admonition-synthetic {
  border-left-color: var(--sb-amber);
}

.md-typeset .admonition.sb-admonition-simplification {
  border-left-color: var(--sb-cyan);
}

.md-typeset .admonition.sb-admonition-tier {
  border-left-color: var(--sb-violet);
}

.md-typeset .admonition.sb-admonition-semantic > .admonition-title {
  background: color-mix(in srgb, var(--sb-indigo) 12%, transparent);
}

.md-typeset .admonition.sb-admonition-synthetic > .admonition-title {
  background: color-mix(in srgb, var(--sb-amber) 12%, transparent);
}

.md-typeset .admonition.sb-admonition-simplification > .admonition-title {
  background: color-mix(in srgb, var(--sb-cyan) 12%, transparent);
}

.md-typeset .schoolbus-mermaid,
.md-typeset .sb-diagram {
  position: relative;
  overflow-x: auto;
  margin: 1.35rem 0 1.65rem;
  padding: 2.05rem 1.05rem 1.05rem;
  border: 1px solid var(--sb-line);
  border-left: 0.28rem solid var(--sb-teal);
  border-radius: 0.45rem;
  background:
    linear-gradient(90deg, var(--sb-grid) 1px, transparent 1px),
    linear-gradient(180deg, var(--sb-grid) 1px, transparent 1px),
    linear-gradient(180deg, color-mix(in srgb, var(--sb-teal) 8%, transparent), transparent),
    var(--sb-panel);
  background-size:
    1.65rem 1.65rem,
    1.65rem 1.65rem,
    auto,
    auto;
  box-shadow: 0 0.55rem 1.8rem rgba(20, 35, 38, 0.08);
}

.md-typeset .sb-diagram::before {
  position: absolute;
  top: 0.58rem;
  left: 0.72rem;
  display: inline-flex;
  align-items: center;
  min-height: 1.1rem;
  padding: 0.05rem 0.45rem;
  border: 1px solid color-mix(in srgb, var(--sb-teal) 55%, var(--sb-line));
  border-radius: 999rem;
  background: color-mix(in srgb, var(--sb-panel) 88%, var(--sb-teal));
  color: var(--sb-muted);
  content: attr(data-diagram-kind);
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  line-height: 1;
  text-transform: uppercase;
}

.md-typeset .sb-diagram--packet {
  border-left-color: var(--sb-amber);
}

.md-typeset .sb-diagram--sequence {
  border-left-color: var(--sb-indigo);
}

.md-typeset .sb-diagram--flow {
  border-left-color: var(--sb-teal);
}

.md-typeset .sb-diagram--timeline,
.md-typeset .sb-diagram--state {
  border-left-color: var(--sb-green);
}

.md-typeset .sb-diagram--packet::before {
  border-color: color-mix(in srgb, var(--sb-amber) 58%, var(--sb-line));
  background: color-mix(in srgb, var(--sb-panel) 84%, var(--sb-amber));
}

.md-typeset .sb-diagram--sequence::before {
  border-color: color-mix(in srgb, var(--sb-indigo) 58%, var(--sb-line));
  background: color-mix(in srgb, var(--sb-panel) 84%, var(--sb-indigo));
}

.md-typeset .sb-diagram--timeline::before,
.md-typeset .sb-diagram--state::before {
  border-color: color-mix(in srgb, var(--sb-green) 58%, var(--sb-line));
  background: color-mix(in srgb, var(--sb-panel) 84%, var(--sb-green));
}

.md-typeset .schoolbus-mermaid svg,
.md-typeset .sb-diagram svg {
  display: block;
  max-width: none;
  height: auto;
}

.md-typeset .highlight {
  border: 1px solid color-mix(in srgb, var(--sb-line) 80%, transparent);
  border-radius: 0.45rem;
  box-shadow: 0 0.35rem 1rem rgba(20, 35, 38, 0.05);
}

.md-typeset ul li::marker {
  color: var(--sb-teal);
}

.md-typeset ol li::marker {
  color: var(--sb-amber);
  font-weight: 700;
}

.md-typeset blockquote {
  border-left-color: var(--sb-indigo);
  color: var(--sb-muted);
}

.md-typeset .tabbed-set {
  border: 1px solid var(--sb-line);
  border-radius: 0.45rem;
  background: var(--sb-panel);
}

.md-typeset .tabbed-labels {
  box-shadow: inset 0 -1px 0 var(--sb-line);
}

@media screen and (max-width: 44.984375em) {
  .md-typeset h1 {
    max-width: 100%;
    font-size: 2rem;
  }

  .md-typeset h1 + p {
    font-size: 1rem;
  }

  .md-typeset .schoolbus-mermaid,
  .md-typeset .sb-diagram {
    margin-inline: -0.8rem;
    border-right: 0;
    border-left-width: 0.22rem;
    border-radius: 0;
  }
}
