:root {
      color-scheme: light;
      --paper: #f7f5ee;
      --ink: #18312a;
      --muted: #4c5e55;
      --accent: #175741;
      --rule: #c8d2c8;
    }
    * { box-sizing: border-box; }
    body { margin: 0; background: var(--paper); color: var(--ink); font: 1rem/1.65 "Source Sans 3", "Segoe UI", sans-serif; }
    main, footer { width: min(43rem, calc(100% - 2rem)); margin-inline: auto; }
    main { padding-block: clamp(2rem, 7vw, 4rem) 2rem; }
    h1, h2 { font-family: "Spectral", Georgia, serif; line-height: 1.15; }
    h1 { max-width: 20ch; margin: .4rem 0 1rem; font-size: clamp(2.4rem, 7vw, 4.1rem); font-weight: 600; }
    h2 { margin: 1.8rem 0 .6rem; font-size: 1.6rem; }
    p { margin: 0 0 1rem; }
    a { color: var(--accent); text-underline-offset: .18em; }
    a:focus-visible { outline: 3px solid #a75625; outline-offset: 4px; }
    table { width: 100%; border-collapse: collapse; background: #fffefa; font-variant-numeric: tabular-nums; }
    caption { padding: .25rem 0 .45rem; text-align: left; color: var(--muted); }
    th, td { padding: .65rem clamp(.35rem, 2.2vw, .8rem); border-bottom: 1px solid var(--rule); text-align: left; }
    tbody th { font-weight: 600; }
    td:last-child, thead th:last-child { text-align: right; white-space: nowrap; }
    tfoot { font-weight: 700; }
    footer { padding-block: 1rem 2.5rem; border-top: 1px solid var(--rule); color: var(--muted); }
    @media print {
      :root { --paper: white; --ink: black; }
      main { width: 100%; padding: 0; }
      h1 { font-size: 2.1rem; }
      tr { break-inside: avoid; }
    }
