:root{
  --ground:#EDEEF1; --panel:#FFFFFF; --panel-2:#F4F5F8; --sunk:#E2E5EA;
  --ink:#15181F; --ink-2:#3F4756; --ink-3:#6E7686;
  --rule:#C9CED8; --rule-2:#DFE3EA;
  --accent:#38507F; --accent-soft:#DDE3F0;
  --warn:#8A6216; --warn-soft:#F4E9CE;
  --alert:#8C332C; --alert-soft:#F4DAD6;
  --ok:#295F45; --ok-soft:#D6E7DC;
  --serif:ui-serif,Georgia,"Iowan Old Style","Times New Roman",serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
}
/* Light is the default regardless of OS: prefers-color-scheme is deliberately not
   consulted. The feed is read alongside the news pages it quotes, which are almost all
   light, and a reader arriving from one of them should not be flipped into a dark page
   mid-comparison. Dark stays one click away and is remembered per browser. */
header{position:relative}
.theme-btn{position:absolute;top:0;right:0;font-family:var(--mono);font-size:11px;
  letter-spacing:.08em;text-transform:uppercase;cursor:pointer;
  background:var(--panel);color:var(--ink-2);border:1px solid var(--rule);
  border-radius:3px;padding:5px 11px}
.theme-btn:hover{color:var(--ink);border-color:var(--ink-3)}
.theme-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
:root[data-theme="dark"]{
  --ground:#0C0E13; --panel:#151922; --panel-2:#1B2029; --sunk:#10141B;
  --ink:#E0E4EC; --ink-2:#A0A9BA; --ink-3:#727C8E;
  --rule:#282F3C; --rule-2:#1F2530;
  --accent:#8CA3D6; --accent-soft:#1A2338;
  --warn:#D0A254; --warn-soft:#2F2410;
  --alert:#D9776B; --alert-soft:#361B18;
  --ok:#6EBB92; --ok-soft:#122C1E;
}
:root[data-theme="light"]{
  --ground:#EDEEF1; --panel:#FFFFFF; --panel-2:#F4F5F8; --sunk:#E2E5EA;
  --ink:#15181F; --ink-2:#3F4756; --ink-3:#6E7686;
  --rule:#C9CED8; --rule-2:#DFE3EA;
  --accent:#38507F; --accent-soft:#DDE3F0;
  --warn:#8A6216; --warn-soft:#F4E9CE;
  --alert:#8C332C; --alert-soft:#F4DAD6;
  --ok:#295F45; --ok-soft:#D6E7DC;
}
*{box-sizing:border-box}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--sans);
  line-height:1.55;-webkit-font-smoothing:antialiased;
  padding:clamp(14px,3vw,40px)}
.wrap{max-width:940px;margin:0 auto;display:flex;flex-direction:column;gap:26px}

.eyebrow{font-family:var(--mono);font-size:10.5px;letter-spacing:.15em;
  text-transform:uppercase;color:var(--ink-3)}
h1{font-family:var(--serif);font-size:clamp(30px,5vw,50px);line-height:1.05;
  margin:8px 0 0;letter-spacing:-.02em;font-weight:600;text-wrap:balance}
.standfirst{font-family:var(--serif);font-size:clamp(16px,2vw,19px);
  color:var(--ink-2);max-width:62ch;margin:14px 0 0;line-height:1.5}
h2{font-family:var(--serif);font-size:clamp(20px,2.6vw,26px);margin:0;
  font-weight:600;letter-spacing:-.015em;text-wrap:balance}
h3{font-size:14px;margin:0;font-weight:660;letter-spacing:.01em}
p{margin:0}

section{background:var(--panel);border:1px solid var(--rule);border-radius:3px;
  padding:clamp(16px,2.6vw,30px);display:flex;flex-direction:column;gap:18px}
.note{font-size:14.5px;color:var(--ink-2);max-width:70ch}
.lede{font-family:var(--serif);font-size:17px;color:var(--ink);max-width:64ch;line-height:1.5}

.pill{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);
  font-size:10px;letter-spacing:.09em;text-transform:uppercase;padding:2.5px 8px;
  border-radius:100px;border:1px solid;white-space:nowrap}
.p-w{background:var(--warn-soft);color:var(--warn);border-color:var(--warn)}
.p-a{background:var(--alert-soft);color:var(--alert);border-color:var(--alert)}
.p-o{background:var(--ok-soft);color:var(--ok);border-color:var(--ok)}
.p-c{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}
.p-n{background:var(--panel-2);color:var(--ink-3);border-color:var(--rule)}

/* story ranking */
.story{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:baseline;
  padding:11px 0;border-bottom:1px solid var(--rule-2)}
.story:last-child{border-bottom:none}
.story .rank{font-family:var(--mono);font-size:11px;color:var(--ink-3);
  font-variant-numeric:tabular-nums;padding-top:3px}
.story .t{font-family:var(--serif);font-size:16px;line-height:1.35}
.story .t a{color:inherit;text-decoration-color:var(--rule)}
.story .m{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap;align-items:center}
.track{height:6px;background:var(--sunk);border-radius:100px;overflow:hidden;
  display:flex;min-width:110px;width:110px}
.track i{display:block;height:100%}
.msm{background:var(--accent)}
.altb{background:var(--ok)}
.cnt{font-family:var(--mono);font-size:11px;color:var(--ink-3);
  font-variant-numeric:tabular-nums;white-space:nowrap}

/* calendar navigator */
.cal-sec{gap:14px}
.cal{display:flex;gap:6px;overflow-x:auto;padding-bottom:3px}
.cal .d{flex:1 0 auto;min-width:58px;border:1px solid var(--rule);border-radius:3px;
  padding:9px 6px;display:flex;flex-direction:column;gap:6px;align-items:center;
  background:var(--panel-2);text-decoration:none;color:inherit}
.cal a.d:hover{border-color:var(--accent)}
.cal .dow{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-3)}
.cal .dom{font-family:var(--mono);font-size:17px;line-height:1;
  font-variant-numeric:tabular-nums}
.cal .band{display:flex;gap:2px}
.cal .band i{width:5px;height:5px;border-radius:1px;background:var(--sunk);
  border:1px solid var(--rule-2)}
.cal .band i.on{background:var(--accent);border-color:var(--accent)}
.cal .n{font-family:var(--mono);font-size:9.5px;color:var(--ink-3);
  font-variant-numeric:tabular-nums}
.cal .d.off{opacity:.45;border-style:dashed;background:transparent}
.cal .d.on{border-color:var(--accent);background:var(--accent-soft);
  box-shadow:inset 0 0 0 1px var(--accent)}
.cal .d.on .dom{font-weight:700}
.daynav{display:flex;justify-content:space-between;align-items:center;gap:12px;
  font-family:var(--mono);font-size:11px;flex-wrap:wrap}
.daynav .lab{color:var(--ink-3)}

/* outlets active */
.ogrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}
.ocell{border:1px solid var(--rule-2);border-radius:3px;padding:9px 11px;
  display:flex;flex-direction:column;gap:5px;align-items:flex-start;
  background:var(--panel-2)}
.ocell .oname{font-size:14px;font-weight:640;line-height:1.25}

.callout-box{border-left:3px solid var(--warn);background:var(--warn-soft);
  padding:15px 17px;border-radius:0 3px 3px 0;display:flex;flex-direction:column;gap:9px}
.callout-box.stop{border-left-color:var(--alert);background:var(--alert-soft)}
.callout-box p{font-size:14.5px;max-width:70ch}

.split{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:640px){.split{grid-template-columns:1fr}}
.box{border:1px solid var(--rule);border-radius:3px;padding:14px;
  display:flex;flex-direction:column;gap:8px;background:var(--panel-2)}
.box .big{font-family:var(--mono);font-size:30px;font-weight:600;
  font-variant-numeric:tabular-nums;line-height:1.1}
.box .lab{font-family:var(--mono);font-size:10px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-3)}

/* empty state */
.empty-feed{border:1px dashed var(--rule);border-radius:3px;padding:34px 22px;
  text-align:center;display:flex;flex-direction:column;gap:11px;align-items:center}
.empty-feed .big{font-family:var(--serif);font-size:23px}
.empty-feed p{color:var(--ink-2);font-size:14px;max-width:52ch}

.receipts{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule-2);
  border:1px solid var(--rule-2);border-radius:2px;overflow:hidden}
@media(max-width:600px){.receipts{grid-template-columns:1fr}}
.rc{background:var(--panel);padding:13px;display:flex;flex-direction:column;gap:6px}
.rc .who{font-weight:650;font-size:13px}
.rc .qt{font-size:14px;line-height:1.45}
.rc .lk{font-family:var(--mono);font-size:10.5px}
a{color:var(--accent)}

table{border-collapse:collapse;width:100%;font-size:13.5px}
.scroll{overflow-x:auto}
th{text-align:left;font-family:var(--mono);font-size:10px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-3);font-weight:500;
  padding:0 11px 7px 0;border-bottom:1px solid var(--rule);white-space:nowrap}
td{padding:9px 11px 9px 0;border-bottom:1px solid var(--rule-2);vertical-align:top}
tr:last-child td{border-bottom:none}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;
  padding-right:15px;white-space:nowrap}
code{font-family:var(--mono);font-size:.88em;background:var(--panel-2);
  padding:1px 4px;border-radius:2px}
.foot{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);
  border-top:1px solid var(--rule);padding-top:14px;line-height:1.75}

figure{margin:0;display:flex;flex-direction:column;gap:10px}
figure svg{max-width:100%;height:auto;display:block}
figcaption{font-size:12.5px;color:var(--ink-3);max-width:70ch;line-height:1.5}
.fig-wrap{background:var(--panel-2);border:1px solid var(--rule-2);
  border-radius:3px;padding:16px;overflow-x:auto}
.sv-lab{font-family:var(--mono);font-size:11px;fill:currentColor;opacity:.62}
.sv-name{font-family:var(--sans);font-size:12px;fill:currentColor;font-weight:600}
.sv-ann{font-family:var(--sans);font-size:11.5px;fill:currentColor;opacity:.72}
.sv-axis{stroke:currentColor;opacity:.24}
.sv-grid{stroke:currentColor;opacity:.11}
.sv-hot{fill:var(--alert);opacity:1}
ul{margin:0;padding-left:19px;display:flex;flex-direction:column;gap:7px;
  font-size:14.5px;color:var(--ink-2);max-width:70ch}
li strong{color:var(--ink);font-weight:640}
