
/* Swiss grid: grotesk type, numbered sections, heavy rules, flat blocks, flush left. */

:root { --md-text-font: "Inter Tight"; }

[data-md-color-scheme="default"] {
  --bt-muted: #5A6B77;
  --bt-radius: 0;
  --t-rule: #17303F;
  --t-flat: #F4F6F8;
  --md-typeset-a-color: #C4411F;
}
[data-md-color-scheme="slate"] {
  --bt-radius: 0;
  --t-rule: #C9D4DB;
  --t-flat: var(--d-surface);
}

[data-md-color-scheme="default"] :is(.md-header, .md-tabs) {
  --md-primary-bg-color: #17303F;
  --md-primary-bg-color--light: rgba(23, 48, 63, .7);
  background-color: var(--md-default-bg-color);
  color: #17303F;
}
[data-md-color-scheme="default"] .md-header__button.md-logo img { content: url("../logo.svg"); }
[data-md-color-scheme="default"] .md-search__input { background-color: var(--t-flat); }
.md-header { box-shadow: none; }
.md-tabs { border-bottom: 3px solid var(--t-rule); }
.md-header__topic:first-child { font-family: "Inter Tight", sans-serif; font-weight: 800; letter-spacing: -.02em; }
.md-tabs__link { font-weight: 700; letter-spacing: -.005em; font-size: .7rem; opacity: .75; }
.md-tabs__item--active .md-tabs__link { opacity: 1; text-decoration: underline 3px; text-underline-offset: .5em; }

.md-grid { max-width: 68rem; }
.md-nav__item--section > .md-nav__link { letter-spacing: -.005em; font-weight: 800; font-size: .7rem; }
.md-nav__link--active { font-weight: 700; }

.md-typeset { font-size: .8rem; line-height: 1.55; counter-reset: bt-h2; }
.md-typeset h1 {
  font-family: "Inter Tight", sans-serif;
  font-weight: 800;
  font-size: 2.8em;
  line-height: 1;
  letter-spacing: -.035em;
  color: var(--md-default-fg-color);
  padding-bottom: .4em;
  border-bottom: 6px solid var(--t-rule);
}
.md-typeset h2 {
  counter-increment: bt-h2;
  font-family: "Inter Tight", sans-serif;
  font-weight: 800;
  font-size: 1.6em;
  letter-spacing: -.02em;
  line-height: 1.1;
  margin-top: 2.2em;
  padding-top: .5em;
  border-top: 3px solid var(--t-rule);
}
.md-typeset h2::before {
  content: counter(bt-h2, decimal-leading-zero);
  display: block;
  margin-bottom: .3em;
  font-size: .5em;
  font-weight: 700;
  letter-spacing: .1em;
  color: var(--bt-ember);
}
.md-typeset h3 { font-weight: 700; font-size: 1.15em; letter-spacing: -.01em; }

/* Flat blocks: filled, square, a colored top rule, no icon inset */
.md-typeset :is(.admonition, details) {
  font-size: .72rem;
  background: var(--t-flat);
  border-width: 4px 0 0;
  border-radius: 0;
  box-shadow: none;
  padding: 0 .9rem;
}
.md-typeset :is(.admonition, details) > :is(.admonition-title, summary) {
  background: none;
  margin: 0 -.9rem;
  padding: .6rem .9rem .2rem 2.2rem;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: -.005em;
}
.md-typeset :is(.admonition, details) > :is(.admonition-title, summary)::before { left: .9rem; top: .62rem; width: .8rem; height: .8rem; }
.md-typeset details details { background: var(--md-default-bg-color); }

.md-typeset figure.bt-figure { border: 0; border-top: 1px solid var(--t-rule); padding: 1rem 0 0; background: none; }
.md-typeset figure.bt-figure figcaption { font-size: .68rem; }
.md-typeset figure.bt-figure figcaption b { font-weight: 800; }

.md-typeset table:not([class]) { border: 0; border-radius: 0; font-size: .7rem; }
.md-typeset table:not([class]) th {
  background: none;
  border-bottom: 3px solid var(--t-rule);
  letter-spacing: -.005em;
  font-size: .85em;
  font-weight: 800;
}
.md-typeset table:not([class]) td { border-top: 1px solid var(--bt-grid); }

.md-typeset pre > code { border-radius: 0; }
.md-typeset .highlight { border-left: 4px solid var(--t-rule); }

.md-typeset .grid.cards > ul > li {
  border: 0;
  border-top: 4px solid var(--t-rule);
  border-radius: 0;
  background: var(--t-flat);
  box-shadow: none;
}
.md-typeset .grid.cards.bt-api-map > ul > li { border-top-color: var(--bt-ember); }
.md-typeset .grid.cards > ul > li > hr { display: none; }

.md-typeset .bt-trail a,
.md-typeset .bt-trail span { border-radius: 0; font-weight: 700; }

/* Dark: page-colored header like light mode, hairlines for structure, heavy rules kept but softened. */
[data-md-color-scheme="slate"] :is(.md-header, .md-tabs) { background-color: var(--d-bg); color: var(--d-text); }
[data-md-color-scheme="slate"] .md-header { border-bottom: 1px solid var(--d-hairline); }
[data-md-color-scheme="slate"] .md-search__input { background-color: var(--d-surface); }
[data-md-color-scheme="slate"] .md-search__input:hover { background-color: var(--d-raised); }
[data-md-color-scheme="slate"] .md-search__form { background-color: var(--d-surface); }
[data-md-color-scheme="slate"] .md-sidebar .md-nav__link--active,
[data-md-color-scheme="slate"] .md-nav__link:is(:hover, :focus) { color: var(--d-ember); }
[data-md-color-scheme="slate"] .md-typeset h2 { border-top-color: var(--d-hairline); }
[data-md-color-scheme="slate"] .md-typeset h1 { border-bottom-color: var(--t-rule); }
[data-md-color-scheme="slate"] .md-typeset :is(.admonition, details) { background: var(--d-surface); }
[data-md-color-scheme="slate"] .md-typeset details details { background: var(--d-raised); }
[data-md-color-scheme="slate"] .md-typeset .grid.cards > ul > li { background: var(--d-surface); }
[data-md-color-scheme="slate"] .md-typeset .grid.cards > ul > li:hover { background: var(--d-raised); }
[data-md-color-scheme="slate"] .md-typeset .highlight { border-left-color: var(--d-hairline); }
[data-md-color-scheme="slate"] .md-typeset table:not([class]) th { border-bottom-color: var(--t-rule); }
[data-md-color-scheme="slate"] .md-typeset table:not([class]) td { border-top-color: var(--d-hairline); }
[data-md-color-scheme="slate"] .md-typeset :is(.md-button) { color: var(--d-ember); border-color: var(--d-ember); }
[data-md-color-scheme="slate"] .md-typeset .md-button--primary { background: var(--d-flame); border-color: var(--d-flame); color: var(--d-bg); }
[data-md-color-scheme="slate"] ::selection { background: rgba(255, 106, 77, .3); }
/* Gallery figures are white PNGs: frame them as plates instead of letting them glare. */
[data-md-color-scheme="slate"] .md-typeset img[src$=".png"] { background: #F4F6F8; padding: .5rem; border: 1px solid var(--d-hairline); }

/* Lowercase aesthetic for the theme's own short labels (search, table of contents, back to top, previous/next).
   Headings and prose stay as written: CSS lowercasing would break acronyms and API names. */
.md-search__input::placeholder,
.md-nav__title,
.md-top,
.md-footer__direction,
.md-source__repository,
.md-search-result__meta,
.md-clipboard::after,
.md-typeset .bt-replay { text-transform: lowercase; }
