:root { color-scheme: light dark; --bg:#fff; --surface:#fff; --text:#111; --muted:#606060; --line:#d7d7d7; --accent:#d62828; --soft:#f3f3f3; --warn:#76551b; --heat:#d62828; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--text); font:16px/1.7 system-ui,-apple-system,"Segoe UI",sans-serif; }
a { color:var(--accent); text-underline-offset:4px; }
a:hover { text-decoration-thickness:2px; }
:focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
header, main, footer { max-width:1240px; margin:auto; padding-inline:40px; }
header { padding-top:26px; }
.masthead { display:flex; justify-content:space-between; align-items:center; gap:20px; padding-bottom:24px; }
.brand { color:var(--text); font-weight:750; font-size:25px; text-decoration:none; letter-spacing:.1em; }
.brand span { display:block; font-size:11px; font-weight:400; letter-spacing:.2em; color:var(--muted); }
.edition { font-size:12px; color:var(--muted); }
nav { display:flex; gap:32px; border-block:1px solid var(--line); }
nav a { color:var(--muted); text-decoration:none; padding-block:14px; font-size:14px; }
nav [aria-current] { color:var(--accent); box-shadow:inset 0 -3px var(--accent); font-weight:700; }
main { padding-top:50px; padding-bottom:70px; min-height:70vh; }
.hero { max-width:820px; padding-block:8px 48px; }
.brief-title { font-size:clamp(54px,8vw,92px); line-height:.98; font-weight:900; letter-spacing:-.055em; }
.brief-title em { color:var(--accent); font-style:normal; }
.eyebrow { font-size:12px; letter-spacing:.16em; color:var(--accent); font-weight:650; }
h1 { font-size:clamp(32px,5vw,62px); line-height:1.25; letter-spacing:-.035em; margin:20px 0 24px; }
h2 { font-size:25px; line-height:1.4; margin:16px 0; }
p { max-width:75ch; }
.intro { font-size:18px; color:var(--muted); max-width:650px; }
.button { display:inline-flex; gap:38px; padding:12px 24px; margin-top:20px; background:var(--accent); color:var(--surface); text-decoration:none; border-radius:3px; }
.stats { display:grid; grid-template-columns:repeat(4,1fr); border-block:1px solid var(--line); padding:25px 0; }
.stat { padding-inline:24px; border-right:1px solid var(--line); }
.stat:first-child { padding-left:0; }.stat:last-child { border:0; }
.stat strong { display:block; font-size:40px; line-height:1.3; font-weight:500; }
.stat span { color:var(--muted); font-size:13px; }
.split { display:grid; grid-template-columns:1fr 1fr; gap:80px; padding-block:45px; }
.split h2 { font-size:34px; }.muted { color:var(--muted); }
.topics { list-style:none; display:grid; grid-template-columns:1fr 1fr; padding:0; gap:10px; }
.topics li { border-bottom:1px solid var(--line); padding-bottom:10px; font-size:15px; }
.note, .empty { border:1px solid var(--line); background:var(--surface); padding:28px; }
.brief-meta { display:flex; flex-wrap:wrap; justify-content:space-between; border-block:2px solid var(--text); padding:10px 0; font-size:12px; font-weight:750; letter-spacing:.07em; }
.section-head { display:flex; justify-content:space-between; align-items:end; gap:24px; }
.section-head h2 { margin:0; }.section-head>p { max-width:52ch; margin:0; font-size:13px; color:var(--muted); }
.heat-section,.monthly { padding-block:38px; border-top:1px solid var(--line); }
.legend { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:11px; }
.legend i { width:18px; height:12px; background:var(--heat); display:inline-block; }
.legend .level-1 { opacity:.14; }.legend .level-2 { opacity:.3; }.legend .level-3 { opacity:.52; }.legend .level-4 { opacity:.8; }
.matrix-wrap { width:100%; overflow:auto; border-block:1px solid var(--line); }
.heatmap { border-collapse:collapse; width:100%; min-width:950px; font-size:12px; font-variant-numeric:tabular-nums; }
.heatmap th { padding:10px 7px; white-space:nowrap; color:var(--muted); text-align:center; border-bottom:2px solid var(--text); }
.heatmap th:first-child { text-align:left; }.heatmap tbody th { text-align:left; color:var(--text); }
.heatmap td { padding:3px; text-align:center; border:2px solid var(--bg); height:38px; }
.heatmap td span { display:block; padding:5px 3px; }.heatmap .heat-0 span { color:var(--muted); }
.heat-1 { background:color-mix(in srgb,var(--heat) 12%,var(--bg)); }.heat-2 { background:color-mix(in srgb,var(--heat) 28%,var(--bg)); }
.heat-3 { background:color-mix(in srgb,var(--heat) 48%,var(--bg)); }.heat-4 { background:color-mix(in srgb,var(--heat) 74%,var(--bg)); color:#fff; font-weight:750; }
.month-chips { display:flex; flex-wrap:wrap; gap:10px; }.month-chips a { display:flex; gap:14px; align-items:center; padding:10px 14px; border:1px solid var(--line); text-decoration:none; }
.month-chips span { color:var(--muted); font-size:12px; }.empty-hint { margin:0; padding:20px; color:var(--muted); background:var(--soft); }
.month-block { border-top:2px solid var(--text); margin-top:32px; }.month-block h2 { font-size:30px; }.month-block h3 { font-size:19px; }
.note h2 { font-size:21px; margin-top:0; }
.notice { border-left:3px solid var(--accent); padding:12px 18px; background:var(--soft); font-size:14px; }
label { display:flex; flex-direction:column; gap:6px; font-size:13px; font-weight:600; min-width:0; }
input, select, button { font:inherit; color:var(--text); background:var(--surface); border:1px solid var(--line); border-radius:3px; min-height:44px; padding:9px 12px; max-width:100%; }
input { font-size:16px; width:100%; }.search { max-width:680px; margin-block:26px 18px; }
.filters { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }.filters button { align-self:end; width:fit-content; cursor:pointer; }
#result-count { font-size:14px; color:var(--muted); margin-block:28px 12px; }
.table-wrap { overflow:auto; border:1px solid var(--line); width:100%; background:var(--surface); }
table { border-collapse:collapse; width:100%; min-width:1250px; text-align:left; font-size:13px; }
th, td { padding:16px; vertical-align:top; border-bottom:1px solid var(--line); }
thead th { background:var(--soft); white-space:nowrap; font-weight:650; }
tbody th { width:270px; font-weight:500; }td.purpose { min-width:280px; max-width:370px; }
tbody tr:hover { background:var(--soft); }small { display:block; color:var(--muted); font-size:11px; margin-block:3px; }
.badge { display:inline-block; white-space:nowrap; padding:2px 8px; border:1px solid var(--line); border-radius:3px; font-size:11px; }
.candidate { color:var(--warn); }.audited { color:var(--accent); }
.reading { max-width:780px; }.reading section { padding-block:18px; border-bottom:1px solid var(--line); }
dt { font-weight:700; margin-top:20px; }dd { margin:6px 0 20px; color:var(--muted); }
.empty { margin-top:40px; padding:50px; }.report-list { list-style:none; padding:0; }.report-list li { padding:25px 0; border-bottom:1px solid var(--line); }
footer { display:flex; justify-content:space-between; gap:20px; border-top:1px solid var(--line); padding-block:24px; font-size:11px; color:var(--muted); }
.skip { position:absolute; top:-100px; left:15px; background:var(--surface); padding:10px; z-index:10; }.skip:focus { top:10px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
[hidden] { display:none !important; }
@media (max-width:650px) {
 header,main,footer { padding-inline:20px; }.edition { display:none; }nav { gap:24px; }nav a { font-size:13px; }
 main { padding-top:30px; }.hero { padding-bottom:28px; }.intro { font-size:16px; }
 .stats { grid-template-columns:repeat(2,1fr); gap:22px; }.stat { padding-left:0; border:0; }.stat strong { font-size:32px; }
 .split { grid-template-columns:1fr; gap:22px; padding-block:30px; }.filters { grid-template-columns:repeat(2,1fr); gap:12px; }
 footer { flex-direction:column; gap:5px; }.empty { padding:24px; }
}
@media (prefers-color-scheme:dark) {
 :root { --bg:#151515; --surface:#1d1d1d; --text:#f0ece5; --muted:#aaa29a; --line:#49443f; --accent:#ff6657; --soft:#282421; --warn:#e4c483; --heat:#ff6657; }
 .button { color:var(--bg); }
}
