/* Sidebar hierarchy + density for MkDocs Material 9.7.x.
   All rules scoped to the desktop sidebar breakpoint (>= 76.25em), matching
   Material's own scoping for navigation.sections, so the mobile drill-down
   drawer keeps stock styling. Colors use Material tokens, so the light and
   slate schemes both work without extra palette handling. */

@media screen and (min-width: 76.25em) {
  /* Section labels: smaller, uppercase, letter-spaced, muted. Covers both the
     clickable index-page headers and the bare API Reference label. */
  .md-sidebar--primary .md-nav__item--section > .md-nav__link {
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--md-default-fg-color--light);
  }

  /* Indent section children and hang a guide line. Material outdents section
     children with [dir=ltr] ... margin-left: -0.6rem, which is why they sit
     flush under the header; restoring the margin re-exposes the stock 0.6rem
     list padding. The logical property ties Material's physical one at
     (0,3,0) specificity and wins on source order (extra_css loads last),
     while staying direction-agnostic. */
  .md-sidebar--primary .md-nav__item--section > .md-nav {
    margin-inline-start: 0.1rem;
    border-inline-start: 0.05rem solid var(--md-default-fg-color--lightest);
  }

  /* Same guide line for collapsible groups inside the API Reference subtree
     (section items also carry --nested, so exclude them). */
  .md-sidebar--primary .md-nav__item--nested:not(.md-nav__item--section) > .md-nav {
    border-inline-start: 0.05rem solid var(--md-default-fg-color--lightest);
  }

  /* Tighten vertical rhythm (stock: 0.625em link margins, 1.25em sections).
     The child combinator keeps this off anchors inside md-nav__container,
     which carry their own margin-top: 0 stock rule. */
  .md-sidebar--primary .md-nav__item > .md-nav__link {
    margin-top: 0.45em;
  }
  .md-sidebar--primary .md-nav__item--section {
    margin: 1em 0;
  }
  .md-sidebar--primary .md-nav__item--section > .md-nav__link {
    margin-top: 0;
  }

  /* The current page stands out from its siblings. 700 because Material only
     loads Inter at 300/400/700; a 600 would silently substitute the 700 face
     anyway, but render lighter on the system-font fallback stack. */
  .md-sidebar--primary .md-nav__link--active {
    font-weight: 700;
  }

  /* The sidebar repeats the site name right above the homepage nav entry;
     drop the title row on desktop (the mobile drawer still needs it for its
     drill-down back-navigation, hence the media-query scope). */
  .md-sidebar--primary .md-nav--primary > .md-nav__title {
    display: none;
  }
}

/* Headings: Material's 300-weight light-gray defaults read washed out; use
   the full foreground color and a solid weight instead. 700, not 600: the
   Google Fonts request only carries Inter 300/400/700 (see the nav__link
   note above). */
.md-typeset h1,
.md-typeset h2 {
  font-weight: 700;
  color: var(--md-default-fg-color);
}
.md-typeset h3 {
  font-weight: 700;
}
