:root{
  --paper:#EDF0F3;
  --card:#FBFCFD;
  --ink:#141A20;
  --ink-soft:#4E5964;
  --ink-faint:#78848F;
  --rule:#C6CFD8;
  --rule-soft:#DCE2E8;
  --accent:#1B5E8C;
  --accent-bg:#E1EBF3;
  --g-pass:#1C6B47;   --g-pass-bg:#E0EDE6;
  --g-fair:#1B5E8C;   --g-fair-bg:#E1EBF3;
  --g-padded:#87590A; --g-padded-bg:#F2E9D8;
  --g-junk:#93262B;   --g-junk-bg:#F2E0E0;
  --serif:ui-serif,Georgia,"Iowan Old Style","Times New Roman",serif;
  --mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --measure:37rem;
  --wide:52rem;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#10141A; --card:#171D24; --ink:#E2E8EF; --ink-soft:#98A5B2;
    --ink-faint:#6C7985; --rule:#2B333C; --rule-soft:#212831;
    --accent:#77AFD8; --accent-bg:#16242F;
    --g-pass:#63C193;   --g-pass-bg:#132A20;
    --g-fair:#77AFD8;   --g-fair-bg:#16242F;
    --g-padded:#D6A550; --g-padded-bg:#2A2113;
    --g-junk:#E48186;   --g-junk-bg:#2C1618;
  }
}
:root[data-theme="dark"]{
  --paper:#10141A; --card:#171D24; --ink:#E2E8EF; --ink-soft:#98A5B2;
  --ink-faint:#6C7985; --rule:#2B333C; --rule-soft:#212831;
  --accent:#77AFD8; --accent-bg:#16242F;
  --g-pass:#63C193;   --g-pass-bg:#132A20;
  --g-fair:#77AFD8;   --g-fair-bg:#16242F;
  --g-padded:#D6A550; --g-padded-bg:#2A2113;
  --g-junk:#E48186;   --g-junk-bg:#2C1618;
}
*{box-sizing:border-box}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--serif); font-size:17px; line-height:1.62;
  -webkit-font-smoothing:antialiased;
}
.doc{max-width:var(--wide); margin:0 auto; padding:0 1.5rem 6rem}
.col{max-width:var(--measure)}
p,li{color:var(--ink-soft)}
p{margin:0 0 1.1rem}
strong{color:var(--ink); font-weight:600}
a{color:var(--accent); text-underline-offset:.18em; text-decoration-thickness:.06em}
a:focus-visible{outline:2px solid var(--accent); outline-offset:3px; border-radius:2px}

/* ---- masthead ---- */
.mast{border-bottom:2px solid var(--ink); padding:2.75rem 0 1rem; margin-bottom:.75rem}
.org{
  font-family:var(--mono); font-size:.7rem; letter-spacing:.19em; text-transform:uppercase;
  color:var(--ink); font-weight:600; margin:0 0 1.9rem;
}
.org span{color:var(--ink-faint); font-weight:400}
h1{
  font-family:var(--serif); font-size:clamp(2rem,5.5vw,2.9rem); line-height:1.1;
  font-weight:400; letter-spacing:-.015em; margin:0 0 .9rem; text-wrap:balance; color:var(--ink);
}
.sub{font-size:1.05rem; color:var(--ink-soft); margin:0 0 1.6rem; max-width:34rem}
.meta{
  display:flex; flex-wrap:wrap; gap:0 2.2rem; font-family:var(--mono);
  font-size:.7rem; letter-spacing:.06em; color:var(--ink-faint); padding-bottom:.4rem;
}
.meta b{color:var(--ink-soft); font-weight:500}

/* ---- sections ---- */
section{padding-top:3.2rem}
h2{
  font-family:var(--serif); font-size:1.5rem; font-weight:400; line-height:1.25;
  margin:0 0 1.2rem; color:var(--ink); letter-spacing:-.01em; text-wrap:balance;
}
h2 .num{
  font-family:var(--mono); font-size:.72rem; letter-spacing:.1em; color:var(--ink-faint);
  display:block; margin-bottom:.5rem; font-weight:500;
}
h3{font-family:var(--serif); font-size:1.08rem; font-weight:600; margin:0 0 .5rem; color:var(--ink)}
.lede{font-size:1.06rem; color:var(--ink-soft)}
.rule{border:0; border-top:1px solid var(--rule); margin:0}

/* ---- tests ---- */
.tests{display:flex; flex-direction:column; gap:0; border-top:1px solid var(--rule)}
.test{
  display:grid; grid-template-columns:2.6rem 1fr; gap:0 1.1rem;
  padding:1.5rem 0; border-bottom:1px solid var(--rule-soft);
}
.test-n{
  font-family:var(--mono); font-size:1.3rem; font-weight:500; color:var(--accent);
  line-height:1.2; font-variant-numeric:tabular-nums;
}
.test q{quotes:none; display:block; font-size:1.15rem; color:var(--ink); margin-bottom:.7rem; font-style:italic}
.test p{margin:0 0 .7rem; font-size:.95rem; max-width:36rem}
.test p:last-child{margin-bottom:0}
.pf{font-family:var(--mono); font-size:.7rem; letter-spacing:.11em; text-transform:uppercase; font-weight:600}
.pf.p{color:var(--g-pass)} .pf.f{color:var(--g-junk)}

/* ---- grades ---- */
.grades{display:grid; gap:.9rem; grid-template-columns:1fr; margin-bottom:1.4rem}
@media(min-width:44rem){.grades{grid-template-columns:1fr 1fr}}
.grade{background:var(--card); border:1px solid var(--rule-soft); border-left:4px solid; padding:1.15rem 1.25rem}
.grade h3{
  font-family:var(--mono); font-size:.78rem; letter-spacing:.15em; text-transform:uppercase;
  margin:0 0 .55rem; font-weight:600;
}
.grade p{margin:0; font-size:.93rem; line-height:1.55}
.grade.pass{border-left-color:var(--g-pass)}   .grade.pass h3{color:var(--g-pass)}
.grade.fair{border-left-color:var(--g-fair)}   .grade.fair h3{color:var(--g-fair)}
.grade.padded{border-left-color:var(--g-padded)} .grade.padded h3{color:var(--g-padded)}
.grade.junk{border-left-color:var(--g-junk)}   .grade.junk h3{color:var(--g-junk)}

/* ---- ledger table ---- */
.scroll{overflow-x:auto; margin:0 0 1.2rem; border:1px solid var(--rule-soft); background:var(--card)}
table{border-collapse:collapse; width:100%; font-family:var(--mono); font-size:.82rem}
th,td{padding:.62rem .9rem; text-align:left; border-bottom:1px solid var(--rule-soft); white-space:nowrap}
th{
  font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint);
  font-weight:600; border-bottom:1px solid var(--rule);
}
td{color:var(--ink-soft); font-variant-numeric:tabular-nums}
td.k{color:var(--ink); white-space:normal}
tr:last-child td{border-bottom:0}

/* ---- callout ---- */
.note{
  background:var(--card); border:1px solid var(--rule-soft); border-left:4px solid var(--accent);
  padding:1.15rem 1.3rem; margin:0 0 1.3rem;
}
.note p{margin:0 0 .7rem; font-size:.95rem} .note p:last-child{margin-bottom:0}
.note .lbl{
  font-family:var(--mono); font-size:.66rem; letter-spacing:.13em; text-transform:uppercase;
  color:var(--accent); font-weight:600; margin-bottom:.5rem; display:block;
}

ul,ol{margin:0 0 1.1rem; padding-left:1.15rem}
li{margin-bottom:.5rem}
li::marker{color:var(--ink-faint)}

/* ---- signatory ---- */
.sig{border-top:1px solid var(--rule); padding-top:1.3rem; margin-top:1.3rem}
.sig:first-of-type{border-top:0; padding-top:0; margin-top:0}
.tag{
  display:inline-block; font-family:var(--mono); font-size:.64rem; letter-spacing:.13em;
  text-transform:uppercase; font-weight:600; padding:.2rem .5rem; margin-bottom:.6rem;
  background:var(--accent-bg); color:var(--accent);
}

footer{margin-top:4rem; padding-top:1.4rem; border-top:2px solid var(--ink)}
footer p{font-family:var(--mono); font-size:.72rem; line-height:1.7; color:var(--ink-faint); max-width:38rem}
