/* Isocenter docs site: the "clinical ledger" system (#350).
 *
 * Warm off-white ground, one muted teal accent, Newsreader on headings,
 * Source Sans 3 body (loaded by mkdocs.yml's theme.font), JetBrains Mono
 * code (same). Newsreader is loaded here because Material's font setting
 * only covers text and code. The design canvas this implements is the
 * "Isocenter Docs Site" artifact; the values below are lifted from it.
 */
@import url("https://fonts.googleapis.com/css2?family=Newsreader:opsz,wght@6..72,400;6..72,500&display=swap");

/* Material defines its palette on body[data-md-color-scheme], which
 * outranks :root, so the remap is scoped to that selector as well. */
:root, [data-md-color-scheme="default"] {
  --ledger-ground: #f6f3ec;
  --ledger-paper: #fbfaf6;
  --ledger-band: #efebe1;
  --ledger-ink: #1f1d19;
  --ledger-body: #3d3a33;
  --ledger-muted: #6b665c;
  --ledger-rule: #d9d3c5;
  --ledger-accent: #2e6b66;
  --ledger-accent-dark: #1f4d49;
  --ledger-accent-rule: #b9cfcc;
  --ledger-review: #8a4b1c;
  --ledger-review-bg: #f3e6d6;
  --ledger-review-rule: #e2c9a8;
  --ledger-serif: "Newsreader", Georgia, "Times New Roman", serif;

  /* Material's own variables, remapped. */
  --md-default-bg-color: var(--ledger-ground);
  --md-default-fg-color: var(--ledger-ink);
  --md-default-fg-color--light: var(--ledger-body);
  --md-default-fg-color--lighter: var(--ledger-muted);
  --md-default-fg-color--lightest: var(--ledger-rule);
  --md-primary-fg-color: var(--ledger-ground);
  --md-primary-fg-color--light: var(--ledger-paper);
  --md-primary-fg-color--dark: var(--ledger-band);
  --md-primary-bg-color: var(--ledger-ink);
  --md-primary-bg-color--light: var(--ledger-muted);
  --md-accent-fg-color: var(--ledger-accent);
  --md-accent-fg-color--transparent: rgba(46, 107, 102, 0.08);
  --md-accent-bg-color: var(--ledger-ground);
  --md-typeset-color: var(--ledger-ink);
  --md-typeset-a-color: var(--ledger-accent);
  --md-code-bg-color: var(--ledger-ink);
  --md-code-fg-color: #efebe1;
  --md-code-hl-comment-color: #9aa39b;
  --md-code-hl-string-color: #b9cfcc;
  --md-code-hl-keyword-color: #9aa39b;
  --md-code-hl-name-color: #efebe1;
  --md-code-hl-function-color: #efebe1;
  --md-code-hl-number-color: #d8c9ad;
  --md-code-hl-operator-color: #c9c3b6;
  --md-code-hl-punctuation-color: #c9c3b6;
  --md-code-hl-constant-color: #d8c9ad;
  --md-code-hl-special-color: #d8c9ad;
  --md-code-hl-variable-color: #efebe1;
  --md-code-hl-generic-color: #efebe1;
  --md-code-hl-color: rgba(46, 107, 102, 0.35);
  --md-footer-bg-color: var(--ledger-ground);
  --md-footer-bg-color--dark: var(--ledger-ground);
  --md-footer-fg-color: var(--ledger-muted);
  --md-footer-fg-color--light: var(--ledger-muted);
  --md-footer-fg-color--lighter: var(--ledger-rule);
  --md-admonition-bg-color: var(--ledger-paper);
  --md-typeset-table-color: var(--ledger-rule);
  --md-typeset-kbd-color: var(--ledger-paper);
}

/* Header and tabs: paper on the ground colour, ruled rather than shadowed. */
.md-header { background: var(--ledger-ground); color: var(--ledger-ink); box-shadow: none; border-bottom: 1px solid var(--ledger-rule); }
.md-header--shadow { box-shadow: none; }
.md-header__title { font-family: var(--ledger-serif); font-weight: 500; font-size: 1.15rem; letter-spacing: -0.01em; }
.md-header__button.md-logo { display: none; }
.md-tabs { background: var(--ledger-ground); color: var(--ledger-ink); border-bottom: 1px solid var(--ledger-rule); }
.md-tabs__link { color: var(--ledger-ink); opacity: 1; font-weight: 600; font-size: 0.72rem; }
.md-tabs__link--active, .md-tabs__link:hover { color: var(--ledger-accent); }
.md-search__form { background: var(--ledger-paper); border: 1px solid var(--ledger-rule); border-radius: 3px; box-shadow: none; }
.md-search__form:hover { background: var(--ledger-paper); }
.md-search__input { color: var(--ledger-ink); }
.md-search__input::placeholder, .md-search__icon { color: var(--ledger-muted); }
[data-md-toggle="search"]:checked ~ .md-header .md-search__form { background: var(--ledger-paper); }

/* Type. */
.md-typeset { font-size: 0.85rem; line-height: 1.6; text-wrap: pretty; }
.md-typeset h1, .md-typeset h2, .md-typeset h3, .md-typeset h4 { font-family: var(--ledger-serif); font-weight: 500; color: var(--ledger-ink); letter-spacing: -0.01em; }
.md-typeset h1 { font-size: 2.2rem; line-height: 1.12; margin-bottom: 1rem; }
.md-typeset h2 { font-size: 1.5rem; margin-top: 2.2rem; }
.md-typeset h3 { font-size: 1.1rem; }
.md-typeset a { border-bottom: 1px solid var(--ledger-accent-rule); }
.md-typeset a:hover { color: var(--ledger-accent-dark); border-bottom-color: var(--ledger-accent); }
.md-typeset code { background: rgba(31, 29, 25, 0.06); color: var(--ledger-ink); border-radius: 2px; padding: 0 0.3em; }
.md-typeset pre > code { background: var(--ledger-ink); color: #efebe1; border-radius: 4px; }
/* Inline highlighted code -- mkdocstrings signatures (`code.highlight
 * language-python`) and pymdownx.inlinehilite -- carries Pygments spans
 * whose colours above are chosen for the dark block background. Give it
 * the same dark ground, or the spans paint light-on-light and vanish. */
.md-typeset code.highlight { background: var(--ledger-ink); color: #efebe1; padding: 0.15em 0.5em; border-radius: 3px; }
.md-typeset .highlight { border-radius: 4px; }
.md-typeset hr { border-bottom: 1px solid var(--ledger-rule); }
.md-typeset table:not([class]) { border: 1px solid var(--ledger-rule); font-size: 0.75rem; }
.md-typeset table:not([class]) th { background: var(--ledger-band); color: var(--ledger-ink); }

/* Admonitions: the left-rule card from the canvas, not Material's coloured box. */
.md-typeset .admonition, .md-typeset details { border: 0; border-left: 2px solid var(--ledger-accent); border-radius: 0 4px 4px 0; box-shadow: none; background: var(--ledger-paper); font-size: 0.78rem; }
.md-typeset .admonition-title, .md-typeset summary { background: transparent; color: var(--ledger-accent); font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; font-size: 0.66rem; padding-left: 0.8rem; }
.md-typeset .admonition-title::before, .md-typeset summary::before { display: none; }
.md-typeset .admonition.warning, .md-typeset details.warning { border-left-color: var(--ledger-review); }
.md-typeset .warning > .admonition-title, .md-typeset .warning > summary { color: var(--ledger-review); }

/* Sidebars. */
.md-nav__title { font-size: 0.62rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ledger-muted); }
.md-nav__link--active, .md-nav__link:hover { color: var(--ledger-accent); }
.md-nav__item--active > .md-nav__link { font-weight: 600; }
.md-sidebar--secondary .md-nav { border-left: 1px solid var(--ledger-rule); padding-left: 0.6rem; }

/* Footer. */
.md-footer, .md-footer-meta { background: var(--ledger-ground); border-top: 1px solid var(--ledger-rule); }
.md-footer__inner { display: none; }
.md-copyright { color: var(--ledger-muted); }

/* ---- Home page (template: home.html) ------------------------------- */
.ledger-hero { background: var(--ledger-ground); border-bottom: 1px solid var(--ledger-rule); }
.ledger-hero__inner { max-width: 61rem; margin: 0 auto; padding: 4rem 1rem 3rem; display: grid; grid-template-columns: 7fr 5fr; gap: 2rem; align-items: start; }
.ledger-eyebrow { font-size: 0.66rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ledger-accent); }
.ledger-hero__copy { display: flex; flex-direction: column; gap: 1.2rem; }
.ledger-hero__copy h1 { font-family: var(--ledger-serif); font-weight: 500; font-size: 2.6rem; line-height: 1.08; letter-spacing: -0.01em; margin: 0; color: var(--ledger-ink); }
.ledger-hero__lede { font-size: 1.05rem; line-height: 1.5; color: var(--ledger-body); max-width: 28rem; margin: 0; }
.ledger-hero__actions { display: flex; flex-direction: row; align-items: center; gap: 1rem; flex-wrap: wrap; }
.ledger-install { display: inline-flex; align-items: center; gap: 0.6rem; background: var(--ledger-ink); color: var(--ledger-ground); padding: 0.6rem 0.9rem; border-radius: 3px; font-family: var(--md-code-font-family); font-size: 0.75rem; }
.ledger-install span { color: #a9b7b4; }
.ledger-hero__actions a { font-weight: 600; color: var(--ledger-accent); border-bottom: 1px solid var(--ledger-accent-rule); padding: 0.6rem 0; font-size: 0.85rem; }
.ledger-hero__note { font-size: 0.75rem; color: var(--ledger-muted); max-width: 28rem; margin: 0; }

.ledger-report { background: var(--ledger-paper); border: 1px solid var(--ledger-rule); border-radius: 4px; box-shadow: 0 1px 0 #e8e3d7; font-size: 0.78rem; }
.ledger-report__head { display: flex; justify-content: space-between; align-items: baseline; gap: 0.8rem; flex-wrap: wrap; padding: 0.7rem 1.1rem; border-bottom: 1px solid var(--ledger-rule); }
.ledger-report__head strong { white-space: nowrap; }
.ledger-report__head strong { font-family: var(--ledger-serif); font-weight: 500; font-size: 0.95rem; }
.ledger-report__head code { background: transparent; color: var(--ledger-muted); font-size: 0.66rem; padding: 0; }
.ledger-report__rows { display: flex; flex-direction: column; gap: 0.55rem; padding: 0.9rem 1.1rem; }
.ledger-report__row { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px dotted var(--ledger-rule); padding-bottom: 0.4rem; color: var(--ledger-muted); }
.ledger-report__row:last-child { border-bottom: 0; padding-bottom: 0; }
.ledger-report__row code { background: transparent; color: var(--ledger-ink); padding: 0; font-size: 0.72rem; }
.ledger-report__grade { font-family: var(--md-code-font-family); font-size: 0.68rem; color: var(--ledger-review); background: var(--ledger-review-bg); border: 1px solid var(--ledger-review-rule); padding: 0.15rem 0.5rem; border-radius: 2px; }
.ledger-report__foot { padding: 0.7rem 1.1rem; border-top: 1px solid var(--ledger-rule); font-size: 0.7rem; color: var(--ledger-muted); line-height: 1.45; }

.ledger-pipeline { background: var(--ledger-band); border-bottom: 1px solid var(--ledger-rule); }
.ledger-pipeline__inner { max-width: 61rem; margin: 0 auto; padding: 2.2rem 1rem 2rem; display: flex; flex-direction: column; gap: 1rem; }
.ledger-pipeline__head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap; }
.ledger-pipeline__head h2 { font-family: var(--ledger-serif); font-weight: 500; font-size: 1.5rem; margin: 0; }
.ledger-pipeline__head span { font-size: 0.75rem; color: var(--ledger-muted); }
.ledger-pipeline svg { width: 100%; height: auto; display: block; }

/* The markdown body of index.md, styled as the ledger sections. */
.ledger-home .md-content__inner { max-width: 61rem; padding-top: 1rem; }
.ledger-home .md-content__inner::before { display: none; }
/* index.md has no H1 of its own (the hero carries it), so Material injects
 * the page title as one; hide that duplicate. */
.ledger-home .md-content__inner > h1 { display: none; }
.ledger-home .md-typeset h2 { display: flex; justify-content: space-between; align-items: baseline; font-size: 1.5rem; margin-top: 2.6rem; }
.ledger-home .md-typeset h2 + ul { list-style: none; margin: 1.4rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.6rem 2.4rem; }
.ledger-home .md-typeset h2 + ul > li { margin: 0; border-top: 1px solid var(--ledger-rule); padding-top: 0.8rem; color: var(--ledger-body); }
.ledger-home .md-typeset h2#what-it-refuses-to-do + ul > li { border-top: 2px solid var(--ledger-ink); counter-increment: clause; }
.ledger-home .md-typeset h2#what-it-refuses-to-do + ul { counter-reset: clause; }
.ledger-home .md-typeset h2#what-it-refuses-to-do + ul > li::before { content: "§ " counter(clause); display: block; font-family: var(--ledger-serif); font-size: 0.72rem; color: var(--ledger-muted); margin-bottom: 0.3rem; }
.ledger-home .md-typeset h2 + ul > li > strong { display: block; font-family: var(--ledger-serif); font-weight: 500; font-size: 1.15rem; color: var(--ledger-ink); margin-bottom: 0.3rem; }
.ledger-home .md-typeset h2#what-it-refuses-to-do + ul > li > strong { font-size: 1.3rem; }
.ledger-home .md-typeset .highlight { max-width: 24rem; }
.ledger-home .md-typeset h2#license-and-citation { margin-top: 3rem; }

@media screen and (max-width: 60em) {
  .ledger-hero__inner { grid-template-columns: minmax(0, 1fr); padding-top: 2.5rem; }
  .ledger-hero__copy h1 { font-size: 1.9rem; }
  .ledger-home .md-typeset h2 + ul { grid-template-columns: minmax(0, 1fr); }
}
