/* Override the "warning" admonition icon to a clock — we use the
   warning flavor for tabled/postponed dispositions, where the article
   isn't being warned about, just deferred. The amber color stays so
   the provisional nature is still legible at a glance. */
:root {
  --md-admonition-icon--warning: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 20c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-18A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m.5 5H11v6l5.25 3.15.75-1.23-4.5-2.67Z'/></svg>");
}

/* Disposition icons in the sidebar.
 *
 * extra.js reads index.json and tags each article's nav link with
 * a data-disposition-type matching the admonition flavor on that
 * article's summary page. The icon is pinned to the right edge of
 * the link and color-coded the same way Material colors admonitions
 * (success green / failure red / warning amber / info cyan / note
 * blue), so the sidebar doubles as an at-a-glance status overview. */
.md-nav__link[data-disposition-type] {
  display: flex;
  align-items: center;
}
.md-nav__link[data-disposition-type]::after {
  content: "";
  display: inline-block;
  width: 0.85rem;
  height: 0.85rem;
  margin-left: -0.1rem;
  flex: none;
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: contain;
          mask-size: contain;
}
.md-nav__link[data-disposition-type="success"]::after {
  background-color: #00c853;
  -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M9,20.42L2.79,14.21L5.62,11.38L9,14.77L18.88,4.88L21.71,7.71L9,20.42Z'/></svg>");
          mask-image: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M9,20.42L2.79,14.21L5.62,11.38L9,14.77L18.88,4.88L21.71,7.71L9,20.42Z'/></svg>");
}
.md-nav__link[data-disposition-type="failure"]::after {
  background-color: #ff5252;
  -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z'/></svg>");
          mask-image: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z'/></svg>");
}
.md-nav__link[data-disposition-type="warning"]::after {
  background-color: #ff9100;
  -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 20c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-18A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m.5 5H11v6l5.25 3.15.75-1.23-4.5-2.67Z'/></svg>");
          mask-image: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 20c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-18A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m.5 5H11v6l5.25 3.15.75-1.23-4.5-2.67Z'/></svg>");
}
.md-nav__link[data-disposition-type="info"]::after {
  background-color: #00b8d4;
  -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,17H13V11H11V17Z'/></svg>");
          mask-image: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,17H13V11H11V17Z'/></svg>");
}
.md-nav__link[data-disposition-type="note"]::after {
  background-color: #448aff;
  -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12,2C17.5,2 22,6.5 22,12C22,17.5 17.5,22 12,22C6.5,22 2,17.5 2,12C2,6.5 6.5,2 12,2M12,4C7.58,4 4,7.58 4,12C4,16.42 7.58,20 12,20C16.42,20 20,16.42 20,12C20,7.58 16.42,4 12,4M7,11V13H17V11H7Z'/></svg>");
          mask-image: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12,2C17.5,2 22,6.5 22,12C22,17.5 17.5,22 12,22C6.5,22 2,17.5 2,12C2,6.5 6.5,2 12,2M12,4C7.58,4 4,7.58 4,12C4,16.42 7.58,20 12,20C16.42,20 20,16.42 20,12C20,7.58 16.42,4 12,4M7,11V13H17V11H7Z'/></svg>");
}

/* Sidebar nav: hide the disclosure chevron entirely. With
   `navigation.expand` enabled in mkdocs.yml, every section starts
   open and stays open — indentation alone communicates nesting,
   so the chevron toggle is visual noise we don't need. */
.md-nav__container > .md-nav__link[for] {
  display: none !important;
}

/* Label-only nav groups (like "Disposed Articles" — a section with
   no backing index page) don't go through .md-nav__container, so
   the rule above misses them. Their toggle label is still rendered
   with a trailing chevron; hide just the icon while leaving the
   label itself in place as a clickable section header. */
.md-nav__item--nested > .md-nav__link[for] > .md-nav__icon {
  display: none !important;
}

/* Mobile: render the primary nav as an in-place tree instead of
   Material's default drill-down behavior. Drill-down replaces the
   visible nav with each child level (with a back button), forcing
   the user to go back-back-back to switch articles; a tree keeps
   the parent context visible at all times. We do this by undoing
   the absolute-positioning Material applies to nested navs at
   narrow viewports, hiding the per-level title bars, and falling
   back to checkbox-state-driven show/hide (the same pattern the
   desktop layout uses). */
@media screen and (max-width: 76.1875em) {
  .md-nav--primary .md-nav__item--nested .md-nav {
    position: static !important;
    transform: none !important;
    background: transparent !important;
    height: auto !important;
    width: auto !important;
  }

  .md-nav--primary .md-nav__title {
    display: none !important;
  }

  .md-nav--primary .md-nav__toggle ~ .md-nav {
    display: none;
  }

  .md-nav--primary .md-nav__toggle:checked ~ .md-nav {
    display: block;
  }
}


/* Sidebar nav: subtly subordinate the leaf children of any expanded
   section. Indent + small leading icon carry the hierarchy; size and
   line-height match the parent label so the layout reads as one
   cohesive list rather than two competing scales. */

/* Sub-items under an article. We hit two distinct DOM shapes at the
   same logical level:
     • leaf items (Summary, simple attachments, URI links) — their
       link is a direct child of .md-nav__item.
     • nested items (attachments that have URI children) — their
       link sits inside .md-nav__container, alongside the (hidden)
       chevron toggle.
   Both get the same indent and typography so they read as peers,
   and we *also* force the URI links under an attachment to use the
   same indent as their attachment parent — Material's default would
   nudge level-2 deeper, but the user prefers a flat list under the
   article header. */
/* Use absolute units (rem) for both font-size and the icon dimensions
   so cascading em context can't make the icons diverge between
   adjacent rows. Padding-left is also explicit per nesting level. */
.md-nav__item--nested
  .md-nav__item:not(.md-nav__item--nested)
  > .md-nav__link,
.md-nav__item--nested
  .md-nav__item--nested
  > .md-nav__container
  > a.md-nav__link {
  font-size: 0.7rem !important;
  line-height: 1.4;
  padding-top: 0.25rem !important;
  padding-bottom: 0.25rem !important;
  padding-left: 0 !important;
  color: var(--md-default-fg-color--light);
}

/* Level-2 leaves (URI links beneath an attachment): deeper indent than
   their attachment parent — possibly to counteract some default Material indent */
.md-nav__item--nested
  .md-nav__item--nested
  .md-nav__item:not(.md-nav__item--nested)
  > .md-nav__link {
  padding-left: 0.2 rem !important;
}

/* Document icon (file-document-outline) for internal pages — Summary,
   Full Text, attachment overview pages — whether the attachment is a
   leaf or has URI children of its own. Inline so it flows with the
   text regardless of indent level. */
.md-nav__item--nested
  .md-nav__item:not(.md-nav__item--nested)
  > .md-nav__link:not([href^="http"]):not([href^="https"]):not([href^="mailto"])::before,
.md-nav__item--nested
  .md-nav__item--nested
  > .md-nav__container
  > a.md-nav__link::before {
  content: "";
  display: inline-block;
  /* `flex: none` (same as `flex: 0 0 auto`) prevents the link's flex
     layout from shrinking the icon when long labels wrap to two
     lines and put squeeze pressure on inline siblings. */
  flex: none;
  width: 0.85rem;
  height: 0.85rem;
  margin-right: 0.15rem;
  vertical-align: -0.15rem;
  background-color: currentColor;
  opacity: 0.55;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6m4 18H6V4h7v5h5v11M8 12v2h8v-2H8m0 4v2h5v-2H8z'/></svg>") center / contain no-repeat;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6m4 18H6V4h7v5h5v11M8 12v2h8v-2H8m0 4v2h5v-2H8z'/></svg>") center / contain no-repeat;
}

/* Suppress the document icon on article-level links (tagged by
   extra.js with data-article-level). The icon is meant for attachment
   children inside an article — articles inside the Disposed and
   Tabled-and-Postponed groups would otherwise inherit it via the
   nested-within-nested selector above. */
.md-nav__link[data-article-level]::before {
  content: none !important;
}

/* Link icon (chain link) for external nav children — /URI annotations
   surfaced from the attachment PDFs. */
.md-nav__item--nested
  .md-nav__item:not(.md-nav__item--nested)
  > .md-nav__link[href^="http"]::before,
.md-nav__item--nested
  .md-nav__item:not(.md-nav__item--nested)
  > .md-nav__link[href^="https"]::before,
.md-nav__item--nested
  .md-nav__item:not(.md-nav__item--nested)
  > .md-nav__link[href^="mailto"]::before {
  content: "";
  display: inline-block;
  /* `flex: none` (same as `flex: 0 0 auto`) prevents the link's flex
     layout from shrinking the icon when long labels wrap to two
     lines and put squeeze pressure on inline siblings. */
  flex: none;
  width: 0.85rem;
  height: 0.85rem;
  margin-right: 0.15rem;
  vertical-align: -0.15rem;
  background-color: currentColor;
  opacity: 0.55;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7a5 5 0 0 0 0 10h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1M8 13h8v-2H8v2m9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4a5 5 0 0 0 0-10z'/></svg>") center / contain no-repeat;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7a5 5 0 0 0 0 10h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1M8 13h8v-2H8v2m9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4a5 5 0 0 0 0-10z'/></svg>") center / contain no-repeat;
}

/* Layout: pin the primary nav near the viewport's left edge (with a
   small breathing margin) and let the content area consume all
   remaining horizontal space. Material's default centers the
   .md-grid at a max-width (~61rem), which on wide monitors leaves a
   big margin on both sides — we'd rather use that space for the
   inlined PDF renders, which can be wider than the readable column.
   Markdown body text is kept readable by capping .md-content__inner;
   PDF pages opt out of that cap below. */
.md-grid {
  max-width: none !important;
  margin-left: 1rem;
  margin-right: 0;
}

/* Drop the sidebar's right gutter — the link items have their own
   padding, so an extra column-edge buffer just bleeds whitespace
   between the nav and the content. */
.md-sidebar--primary {
  padding-right: 0 !important;
}

.md-content__inner {
  max-width: 61rem;
}

/* Pages that embed a pdf2htmlEX render let the full content area be
   used, so wide PDF pages aren't clipped. */
.md-content__inner:has(.pdf-rendered) {
  max-width: none;
}

/* And on those same pages, suppress the right-edge TOC sidebar so
   the PDF render gets the whole column. A full-text page is just
   the inlined PDF + an "Open in new window" link, so the TOC would
   only ever list one or two headings — not worth giving up ~25% of
   the iPad-portrait viewport (where the layout still includes the
   secondary sidebar). Material sets the sidebar's layout with
   !important inside its tablet/desktop media queries, so we need
   !important here too. */
.md-main__inner:has(.pdf-rendered) .md-sidebar--secondary {
  display: none !important;
}

/* pdf2htmlEX-rendered PDF content. The generator outputs a viewport-
   filling page-container (position: absolute over the whole window) and
   a stacked set of fixed-size .pf page divs inside. Without overrides,
   the absolute-positioned container escapes Material's content column
   and covers the entire page (including the sidebar). The block below
   reins it back into normal flow inside .pdf-rendered, hides the
   pdf2htmlEX sidebar (which is for in-PDF outline navigation we don't
   ship anyway), and gives each page card a thin shadow so successive
   pages read as separate sheets. */
.pdf-rendered {
  position: relative;
  max-width: 100%;
  overflow-x: auto;
  margin: 1em 0;
  /* pdf2htmlEX renders each text span with font-size:1px and a CSS
     transform that scales it to the real size. iOS Safari's text
     autosizer sees the 1px font and boosts it independently of the
     transform — text gets bigger while its absolute position stays
     put, so neighboring columns smoosh into each other. Pinning the
     adjustment to 100% disables the boost on this subtree. */
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

.pdf-rendered #page-container {
  position: static;
  margin: 0;
  padding: 0;
  border: 0;
  overflow: visible;
}

.pdf-rendered #sidebar {
  display: none;
}

.pdf-rendered .pf {
  margin: 0 auto 1em;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
}

/* Active leaf returns to full strength. */
.md-nav__item--nested
  .md-nav__item:not(.md-nav__item--nested)
  > .md-nav__link--active {
  color: var(--md-typeset-a-color);
}
.md-nav__item--nested
  .md-nav__item:not(.md-nav__item--nested)
  > .md-nav__link--active::before {
  opacity: 0.9;
}
