:root { --ink: #1c1d21; --muted: #555a64; --paper: #ffffff; --rule: #d9dce1;
  --accent: #1f5fbf; }
@media (prefers-color-scheme: dark) {
  :root { --ink: #e8e9ec; --muted: #a8adb7; --paper: #141518; --rule: #34373e;
    --accent: #8fb6ff; }
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--paper); color: var(--ink);
  font: 16px/1.6 Georgia, "Times New Roman", serif; }
header, main, footer { max-width: 46rem; margin: 0 auto; padding: 0 1rem; }
header { padding-top: 1.25rem; font-family: system-ui, sans-serif; }
.brand { margin: 0 0 .5rem; font-weight: 700; }
nav.documents { display: flex; flex-wrap: wrap; gap: .25rem 1rem; font-size: .9rem; }
nav.documents a[aria-current] { font-weight: 700; text-decoration: none; }
a { color: var(--accent); }
h1 { margin: 1.5rem 0 .25rem; font-size: 1.9rem; line-height: 1.2; }
.meta { margin: 0 0 1rem; color: var(--muted); font-family: system-ui, sans-serif;
  font-size: .9rem; }
.summary { font-size: 1.05rem; }
nav.contents { border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule);
  margin: 1.25rem 0; padding: .5rem 0; font-family: system-ui, sans-serif; font-size: .9rem; }
nav.contents ol { margin: .25rem 0; padding-left: 1.5rem; }
section { margin: 0 0 1.25rem; }
h2 { margin: 1.5rem 0 .4rem; font-size: 1.15rem; line-height: 1.3; }
footer { margin-top: 2rem; padding-bottom: 2rem; border-top: 1px solid var(--rule);
  color: var(--muted); font-family: system-ui, sans-serif; font-size: .85rem; }
@media print {
  :root { --ink: #000; --muted: #333; --paper: #fff; --accent: #000; }
  nav.documents, nav.contents { display: none; }
  body { font-size: 11pt; }
  section { break-inside: avoid-page; }
}
