/* TractCue — shared stylesheet for the public pages.
   Tokens mirror the TractCue design system: editorial and documentary, ink on
   warm paper, hairline rules instead of elevation, square corners.
   Served with a long immutable cache (see Caddyfile), so pages stay small. */

:root{
  --paper:#FAF9F6;--surface:#F2F0EA;--ink:#0A0A0A;--muted:#55514A;
  --signal:#B83A0C;--signal-bright:#E85C1A;--signal-wash:#FBEDE6;
  --rule:#D8D4CC;--rule-strong:#6F6A61;
  --green:#2E6B3E;--amber:#8A5A00;--red:#9B2C2C;
  --display:"Newsreader","Iowan Old Style",Georgia,serif;
  --text:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --record:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,monospace;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --paper:#121110;--surface:#1C1A18;--ink:#F3F0EA;--muted:#A9A39A;
  --signal:#FF7A45;--signal-bright:#FF9466;--signal-wash:#2B1A12;
  --rule:#2A2724;--rule-strong:#7A746A;
  --green:#6FBF84;--amber:#E0A33A;--red:#E57373;}}
:root[data-theme="dark"]{
  --paper:#121110;--surface:#1C1A18;--ink:#F3F0EA;--muted:#A9A39A;
  --signal:#FF7A45;--signal-bright:#FF9466;--signal-wash:#2B1A12;
  --rule:#2A2724;--rule-strong:#7A746A;
  --green:#6FBF84;--amber:#E0A33A;--red:#E57373;}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--text);
  font-size:15px;line-height:1.55}
.wrap{max-width:70rem;margin:0 auto;padding:40px 16px 64px}
.narrow{max-width:46rem}
a{color:var(--signal)}
a:hover{text-decoration-thickness:2px}

/* masthead ---------------------------------------------------------------- */
.mast{display:flex;align-items:center;gap:8px;margin-bottom:28px;
  padding-bottom:12px;border-bottom:1px solid var(--rule)}
.mast a.brand{font-family:var(--display);font-weight:600;font-size:18px;
  color:var(--ink);text-decoration:none;letter-spacing:-.01em}
.mast .sep{color:var(--rule-strong)}
.mast nav{margin-left:auto;display:flex;gap:18px;font-size:13px}
.mast nav a{text-decoration:none}
.crumb{font-size:13px;color:var(--muted);margin:0 0 4px}
.crumb a{text-decoration:none}

h1{font-family:var(--display);font-weight:600;font-size:40px;line-height:44px;
  margin:6px 0 10px;letter-spacing:-.01em}
h2{font-family:var(--display);font-weight:600;font-size:21px;line-height:28px;
  margin:36px 0 10px}
h3{font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;
  color:var(--muted);margin:0 0 8px}
.lede{color:var(--muted);max-width:46rem;margin:0 0 24px;font-size:16px}

/* stat strip -------------------------------------------------------------- */
.stats{display:flex;flex-wrap:wrap;margin:0 0 4px;border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);padding:0}
.stats>div{padding:12px 28px 12px 0;margin-right:20px}
.stats dt{color:var(--muted);font-size:12px;font-weight:500;letter-spacing:.03em;
  text-transform:uppercase;margin:0 0 2px}
.stats dd{margin:0;font-family:var(--record);font-size:19px}
.stats .sub{color:var(--muted);font-size:12px}

/* honest coverage note ---------------------------------------------------- */
.caveat{border-left:3px solid var(--amber);background:var(--surface);
  padding:12px 16px;margin:20px 0;font-size:14px;color:var(--muted)}
.caveat b{color:var(--ink);font-weight:600}
.caveat ul{margin:6px 0 0;padding-left:18px}
.caveat li{margin:2px 0}

/* tables ------------------------------------------------------------------ */
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;font-size:12px;font-weight:600;letter-spacing:.03em;
  text-transform:uppercase;color:var(--muted);padding:10px 12px 8px 0;
  border-bottom:1px solid var(--rule-strong);white-space:nowrap}
td{padding:8px 12px 8px 0;border-bottom:1px solid var(--rule);vertical-align:top}
th.n,td.n{text-align:right;padding-right:18px;font-family:var(--record);white-space:nowrap}
td.m,.m{font-family:var(--record);font-size:13px;white-space:nowrap}
td.mu{font-family:var(--record);font-size:13px;color:var(--muted);white-space:nowrap}
td.w{min-width:12rem}
tbody tr:hover{background:var(--surface)}

/* month trend ------------------------------------------------------------- */
.trend{display:flex;align-items:flex-end;gap:3px;height:76px;margin:6px 0 4px}
.trend .b{flex:1;background:var(--signal-bright);min-height:2px}
.trend .b:last-child{background:var(--rule-strong)}
.trendx{display:flex;gap:3px;font-family:var(--record);font-size:10px;
  color:var(--muted);margin-bottom:24px}
.trendx span{flex:1;text-align:center;overflow:hidden}

/* trade chips ------------------------------------------------------------- */
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px}
.chip{border:1px solid var(--rule-strong);padding:3px 9px;font-size:13px;
  border-radius:3px;white-space:nowrap}
.chip b{font-family:var(--record);font-weight:400;color:var(--muted);margin-left:5px}

/* the single call to action ----------------------------------------------- */
.cta{border:1px solid var(--rule-strong);padding:20px;margin:40px 0 0;
  border-radius:3px;background:var(--surface)}
.cta h2{margin:0 0 6px}
.cta p{margin:0 0 14px;color:var(--muted);max-width:40rem}
.btn{display:inline-block;background:var(--signal);color:var(--paper);
  text-decoration:none;font-weight:600;font-size:14px;padding:10px 18px;
  border-radius:3px}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:0 24px}
.grid a.county{display:block;padding:12px 0;border-bottom:1px solid var(--rule);
  text-decoration:none;color:var(--ink)}
.grid a.county .n{font-family:var(--record);font-size:13px;color:var(--muted);float:right}
.grid a.county:hover{color:var(--signal)}

.dot{display:inline-block;width:8px;height:8px;margin-right:7px}
.dot.green{background:var(--green)}.dot.yellow{background:var(--amber)}
.dot.red{background:var(--red)}

footer{margin-top:48px;padding-top:16px;border-top:1px solid var(--rule);
  color:var(--muted);font-size:12px}
footer a{color:var(--muted)}

@media (max-width:760px){
  h1{font-size:29px;line-height:33px}
  .wrap{padding:28px 16px 48px}
  table{font-size:13px}
  .hide-sm{display:none}
  .stats>div{padding-right:20px;margin-right:12px}
}
