:root{
  --bg:#fbfbfa; --fg:#1c1b19; --muted:#6b6862; --line:#dfdcd6;
  --card:#ffffff; --accent:#1c5d8f; --accent-fg:#ffffff;
  --q:#0b63c5; --nq:#8a2b2b; --abs:#6b6862; --wd:#6b6862; --nt:#8a5a1b;
  --zebra:#f5f4f1;
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#16181a; --fg:#e8e6e3; --muted:#9a9691; --line:#2e3236;
    --card:#1d2023; --accent:#5aa6dd; --accent-fg:#10171d;
    --q:#6fd3ff; --nq:#e08585; --abs:#9a9691; --wd:#9a9691; --nt:#e0b070;
    --zebra:#1a1d20;
  }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bg); color:var(--fg);
  font:16px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
header,main,footer{max-width:70rem;margin:0 auto;padding:0 .75rem}
header{padding-top:1rem}
h1{font-size:1.35rem;margin:0 0 .15rem;font-weight:600;line-height:1.2}
.sub{margin:0 0 .75rem;color:var(--muted);font-size:.9rem}
h2{font-size:1.1rem;margin:1.5rem 0 .5rem;font-weight:600}
h3{font-size:1rem;margin:1.5rem 0 .35rem;font-weight:600;
   border-bottom:2px solid var(--line);padding-bottom:.25rem}
h4{font-size:.9rem;margin:1rem 0 .35rem;font-weight:600;color:var(--muted)}
h4 .course{font-weight:400;font-size:.85em}
nav{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.5rem}
nav.classes{margin-bottom:1rem}
.btn{
  display:inline-block;padding:.3rem .7rem;border:1px solid var(--line);
  border-radius:999px;background:var(--card);color:var(--fg);
  text-decoration:none;font-size:.85rem;white-space:nowrap;
}
.btn:hover{border-color:var(--accent);color:var(--accent)}
.btn.on{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
.btn.alt{border-style:dashed}
/* Wide content scrolls inside its own box; the page body never does. */
.tw{overflow-x:auto;border:1px solid var(--line);border-radius:6px;background:var(--card)}
table{border-collapse:collapse;width:100%;font-size:.88rem}
th,td{padding:.35rem .5rem;text-align:left;white-space:nowrap}
th{
  background:var(--zebra);font-weight:600;font-size:.78rem;
  text-transform:uppercase;letter-spacing:.03em;color:var(--muted);
  position:sticky;top:0;
}
tbody tr:nth-child(even){background:var(--zebra)}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}
td.c,th.c{text-align:center}
td.f{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.85em}
.s-q{color:var(--q);font-weight:700}
.s-nq{color:var(--nq)}
.s-abs{color:var(--abs)}
.s-wd{color:var(--wd)}
.s-nt{color:var(--nt)}
a{color:var(--accent)}
.empty{color:var(--muted);padding:1.5rem 0}
.warn{
  border-left:3px solid var(--nt);background:var(--card);
  padding:.5rem .75rem;margin:.5rem 0;font-size:.85rem;color:var(--muted);
}
footer{color:var(--muted);font-size:.8rem;margin:2rem auto 3rem;
       border-top:1px solid var(--line);padding-top:.75rem}
@media (max-width:30rem){
  body{font-size:15px}
  th,td{padding:.3rem .4rem}
  table{font-size:.82rem}
}
