* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--ui-page); color: var(--ui-text); font-family: var(--ui-font-body); line-height: 1.65; }
a { color: inherit; text-decoration-color: color-mix(in srgb, currentColor 35%, transparent); text-underline-offset: .2em; }
a:hover { color: var(--ui-accent); }
:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 3px; }
img, svg, video { max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; }
h1, h2, h3, h4 { line-height: 1.15; letter-spacing: -.025em; }
h1 { font-size: clamp(2.25rem, 5vw, 4.25rem); margin: .35em 0; }
h2 { margin-top: 2.4em; }
code, pre { font-family: var(--ui-font-mono); }
pre { overflow: auto; padding: 1rem; background: var(--ui-surface); border: 1px solid var(--ui-border); border-radius: var(--ui-radius); }
table { width: 100%; border-collapse: collapse; }
th, td { padding: .65rem; border: 1px solid var(--ui-border); text-align: left; vertical-align: top; }
blockquote { margin-left: 0; padding-left: 1rem; border-left: 3px solid var(--ui-border); color: var(--ui-text-muted); }

.ui-skip-link { position: absolute; left: 1rem; top: -5rem; z-index: 20; padding: .65rem 1rem; background: var(--ui-text); color: var(--ui-page); }
.ui-skip-link:focus { top: 1rem; }
.ui-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.ui-header, .ui-footer { display: flex; align-items: center; gap: 2rem; padding: 1rem var(--ui-space-page); border-bottom: 1px solid var(--ui-border); }
.ui-header { min-height: var(--ui-header-height); }
.ui-brand { font-weight: 700; text-decoration: none; }
.ui-primary-nav, .ui-footer-links { display: flex; align-items: center; gap: 1.5rem; margin-left: auto; }
.ui-primary-nav a, .ui-footer a { text-decoration: none; }
.ui-actions { display: flex; align-items: center; gap: .65rem; margin-left: auto; }
.ui-primary-nav + .ui-actions { margin-left: 0; }
.ui-search { position: relative; }
.ui-search #search-field { display: flex; position: relative; }
.ui-search-input-wrap { position: relative; }
.ui-search #search-input { width: clamp(8.5rem, 12vw, 11rem); min-height: 2.35rem; border: 1px solid var(--ui-border); border-radius: var(--ui-radius) 0 0 var(--ui-radius); background: var(--ui-surface); color: var(--ui-text); padding: .4rem 3.5rem .4rem .7rem; }
.ui-search #search-input::placeholder { color: var(--ui-text-muted); }
.ui-search #search-field .filter { max-width: 5.5rem; border-color: var(--ui-border); border-radius: 0 var(--ui-radius) var(--ui-radius) 0; background: var(--ui-surface); color: var(--ui-text-muted); padding-inline: .45rem; }
.ui-search #search-field .filter span { overflow: hidden; text-overflow: ellipsis; }
.ui-search-shortcut { position: absolute; right: .5rem; top: 50%; transform: translateY(-50%); border: 1px solid var(--ui-border); border-radius: .2rem; background: var(--ui-page); color: var(--ui-text-muted); font: .65rem var(--ui-font-mono); line-height: 1; padding: .22rem .3rem; pointer-events: none; }
.ui-theme-toggle { display: inline-flex; align-items: center; gap: .4rem; min-height: 2.35rem; border: 1px solid var(--ui-border); border-radius: var(--ui-radius); background: transparent; color: var(--ui-text); padding: .4rem .65rem; cursor: pointer; }
.ui-theme-toggle:hover { border-color: var(--ui-accent); color: var(--ui-accent); }
.ui-search .search-result-dropdown-menu { left: auto; right: 0; top: calc(100% + .45rem); width: min(40rem, calc(100vw - 2rem)); min-width: min(30rem, calc(100vw - 2rem)); max-width: calc(100vw - 2rem); }
.ui-search .search-result-dataset { max-height: min(32rem, calc(100dvh - var(--ui-header-height) - 1rem)); overflow-x: hidden; border-color: var(--ui-border); border-radius: calc(var(--ui-radius) * 2); background: var(--ui-page); color: var(--ui-text); box-shadow: 0 .75rem 2rem rgb(0 0 0 / 18%); padding: .75rem; }
.ui-search .search-result-component-header, .ui-search .search-result-document-title, .ui-search .search-result-document-hit, .ui-search .search-result-document-hit .search-result-section-title { color: var(--ui-text); border-color: var(--ui-border); }
.ui-search .search-result-document-hit > a:hover { background: var(--ui-surface); }
.ui-search .search-result-document-hit .search-result-highlight { background: var(--ui-surface-strong); color: var(--ui-accent); }
.ui-menu-button { display: none; margin-left: auto; border: 1px solid var(--ui-border); border-radius: var(--ui-radius); background: transparent; color: inherit; padding: .45rem .7rem; }
.ui-main { min-height: calc(100vh - var(--ui-header-height)); padding: clamp(3rem, 8vw, 7rem) var(--ui-space-page); }
.ui-article { max-width: var(--ui-content-width); margin: 0 auto; }
.ui-article p, .ui-article li { max-width: 70ch; }
.ui-lead { color: var(--ui-text-muted); font-size: clamp(1.1rem, 2vw, 1.35rem); }
.ui-eyebrow { color: var(--ui-text-muted); font-size: .76rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.ui-button { display: inline-flex; gap: .5rem; padding: .7rem 1rem; border: 1px solid var(--ui-border); border-radius: var(--ui-radius); text-decoration: none; }
.ui-button-primary { background: var(--ui-text); color: var(--ui-page); border-color: var(--ui-text); }
.ui-footer { border-top: 1px solid var(--ui-border); border-bottom: 0; color: var(--ui-text-muted); }
.ui-footer .ui-brand { color: var(--ui-text); }

.admonitionblock { margin: 1.5rem 0; padding: 1rem; background: var(--ui-surface); border-left: 4px solid var(--ui-accent); }
.admonitionblock table, .admonitionblock td { border: 0; }
.admonitionblock .title { font-weight: 700; }

@media (max-width: 44rem) {
  .ui-header { align-items: center; flex-wrap: wrap; }
  .ui-primary-nav { display: none; }
  .ui-primary-nav.is-open { display: flex; flex: 0 0 100%; flex-direction: column; align-items: flex-start; gap: .75rem; margin-left: 0; padding-top: .75rem; }
  .ui-menu-button { display: block; }
  .ui-actions { order: 3; flex: 1 0 100%; margin-left: 0; }
  .ui-search { flex: 1; }
  .ui-search #search-field { width: 100%; }
  .ui-search-input-wrap { flex: 1; min-width: 0; }
  .ui-search #search-input { width: 100%; }
  .ui-search #search-field .filter span { display: none; }
  .ui-search-shortcut { display: none; }
  .ui-footer { align-items: flex-start; flex-direction: column; }
  .ui-footer-links { margin-left: 0; flex-wrap: wrap; }
}

@media print {
  .ui-header, .ui-footer, .ui-menu-button, .ui-actions { display: none; }
  .ui-main { padding: 0; }
  .ui-article { max-width: none; }
  a { color: inherit; text-decoration: underline; }
}
