:root{
  --navy:#1F3864; --ink:#23272e; --paper:#f6f7f5; --card:#ffffff;
  --bronze:#A9712F; --silver:#7E8894; --gold:#C9A227; --champs:#7A3B4F; --british:#2F5597; --camp:#2E7D6B; --block:#5C7050;
  --t-bronze:#EFDCC3; --t-silver:#D8DDE2; --t-gold:#F0E3B2; --t-champs:#E3CCD4; --t-british:#C9D6EE; --t-camp:#CBE3DC; --t-block:#DDE5D5;
  --jack:#1F3864; --alex:#0F766E;
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;background:var(--paper);color:var(--ink)}
a{color:var(--british)}
header.site{position:sticky;top:0;z-index:10;background:var(--navy);color:#fff;padding:14px 20px 12px;box-shadow:0 2px 10px rgba(0,0,0,.25)}
header.site .wrap{max-width:1180px;margin:0 auto}
header.site h1{margin:0;font-size:22px;letter-spacing:.3px}
header.site h1 a{color:#fff;text-decoration:none}
header.site .sub{opacity:.85;font-size:12.5px;margin-top:2px}
#nextup{margin-top:9px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);border-radius:8px;padding:7px 11px;font-size:13px}
#nextup b{color:#FFD968}
.bar{display:flex;flex-wrap:wrap;gap:14px;align-items:center;padding:10px 20px;background:var(--card);border-bottom:1px solid #e2e5e0}
.bar .in{max-width:1180px;margin:0 auto;display:flex;flex-wrap:wrap;gap:14px;align-items:center;width:100%}
.legend{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px}
.sw{display:inline-block;padding:2.5px 9px;border-radius:20px;color:#fff;font-weight:600}
.sw.bronze{background:var(--bronze)} .sw.silver{background:var(--silver)} .sw.gold{background:var(--gold);color:#2E2400}
.sw.champs{background:var(--champs)} .sw.british{background:var(--british)} .sw.camp{background:var(--camp)} .sw.block{background:var(--block)}
.sw.tent{background:var(--t-silver);color:#333;font-style:italic;border:1px dashed #8a939c}
.sw.jackb{background:var(--jack)} .sw.alexb{background:var(--alex)}
.filters{margin-left:auto;display:flex;gap:6px}
.filters button{border:1.5px solid var(--navy);background:#fff;color:var(--navy);border-radius:20px;padding:4px 14px;font-size:12.5px;font-weight:600;cursor:pointer}
.filters button.on{background:var(--navy);color:#fff}
.filters button.on[data-f="Jack"]{background:var(--jack);border-color:var(--jack)}
.filters button.on[data-f="Alex"]{background:var(--alex);border-color:var(--alex)}
main{max-width:1180px;margin:0 auto;padding:18px 14px 40px}
.intro{font-size:15.5px;line-height:1.6;max-width:760px}
.intro p{margin:0 0 10px}
.hero-band{line-height:0}
.hero-band img{display:block;width:100%;height:auto}
.boycards{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0 6px}
.boycard{background:var(--card);border:1px solid #e3e6e2;border-radius:12px;padding:16px 18px}
.boycard h2{margin:0 0 2px;font-size:19px;color:var(--navy)}
.boycard .cat{font-size:12.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:#7a8288}
.boycard p{font-size:13.5px;line-height:1.55;margin:8px 0}
.boycard .next{font-size:13.5px;background:var(--paper);border-radius:8px;padding:8px 11px;margin:10px 0}
.boycard .next b{color:var(--navy)}
.btn{display:inline-block;background:var(--navy);color:#fff;text-decoration:none;font-weight:600;font-size:13.5px;border-radius:20px;padding:7px 16px;margin:2px 4px 2px 0}
.btn.light{background:#fff;color:var(--navy);border:1.5px solid var(--navy)}
.btn.gold{background:var(--gold);color:#2E2400}
.subscribe{background:var(--navy);color:#fff;border-radius:12px;padding:16px 18px;margin:18px 0}
.subscribe h2{margin:0 0 4px;font-size:17px}
.subscribe p{margin:0 0 10px;font-size:13.5px;opacity:.9;line-height:1.55;max-width:720px}
.subscribe .btn{background:#fff;color:var(--navy)}
section.month{margin-bottom:30px}
section.month h2,.sechead{margin:0 0 8px;font-size:17px;color:var(--navy);letter-spacing:.4px}
.grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.dow{font-size:11px;font-weight:700;color:#7a8288;text-transform:uppercase;letter-spacing:.6px;padding:2px 4px}
.day{background:var(--card);border:1px solid #e3e6e2;border-radius:8px;min-height:96px;padding:5px 5px 6px;display:flex;flex-direction:column;gap:3px}
.day.empty{background:transparent;border:none}
.day.weekend{background:#fbfaf7}
.day.today{border:2px solid var(--gold);box-shadow:0 0 0 2px rgba(201,162,39,.25)}
.dnum{font-size:12px;font-weight:700;color:#6a7278;display:flex;justify-content:space-between;align-items:center}
.todaytag{background:var(--gold);color:#2E2400;font-size:9.5px;font-weight:800;border-radius:10px;padding:1px 6px;letter-spacing:.4px}
.chip{font-size:11px;line-height:1.25;border-radius:5px;padding:3px 6px 3px 5px;color:#fff;font-weight:600;border-left:4px solid rgba(0,0,0,.35);word-break:break-word}
.chip .who{display:inline-block;font-size:9.5px;font-weight:800;letter-spacing:.3px;color:#fff;background:#555;border-radius:8px;padding:1px 7px 1.5px;margin-right:5px;vertical-align:1px;white-space:nowrap}
.chip.jack .who{background:var(--jack)} .chip.alex .who{background:var(--alex)}
.chip.bronze{background:var(--bronze)} .chip.silver{background:var(--silver)} .chip.gold{background:var(--gold);color:#2E2400}
.chip.champs{background:var(--champs)} .chip.british{background:var(--british)} .chip.camp{background:var(--camp)} .chip.block{background:var(--t-block);color:#33402C;border-left-color:var(--block)}
.chip.tentative{background:var(--t-silver);color:#3c434a;font-style:italic;font-weight:500;border:1px dashed #8a939c;border-left-width:4px}
.chip.tentative.bronze{background:var(--t-bronze)} .chip.tentative.gold{background:var(--t-gold)}
.chip.tentative.champs{background:var(--t-champs)} .chip.tentative.british{background:var(--t-british)}
.chip.cont{opacity:.82;font-weight:500}
.chip.jack{border-left-color:var(--jack)} .chip.alex{border-left-color:var(--alex)}
.racelist{display:flex;flex-direction:column;gap:8px;margin-bottom:26px}
.race{display:flex;gap:12px;align-items:flex-start;background:var(--card);border:1px solid #e3e6e2;border-radius:10px;padding:10px 14px}
.race .when{flex:0 0 118px;font-weight:700;color:var(--navy);font-size:13.5px;line-height:1.4}
.race .what{font-size:14px;line-height:1.45}
.race .meta{font-size:12.5px;color:#6a7278;margin-top:2px}
.tag{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;border-radius:10px;padding:1.5px 8px;margin-left:6px;vertical-align:1px}
.tag.tier-bronze{background:var(--t-bronze);color:#6b4416} .tag.tier-silver{background:var(--t-silver);color:#39424c}
.tag.tier-gold{background:var(--t-gold);color:#5c4a00} .tag.tier-champs{background:var(--t-champs);color:#5e2c3d}
.tag.tier-british{background:var(--t-british);color:#24457c} .tag.tier-camp{background:var(--t-camp);color:#1d5748}
.tag.tier-block{background:var(--t-block);color:#33402C}
.tag.tent{background:#fff;border:1px dashed #8a939c;color:#3c434a;font-style:italic;text-transform:none;letter-spacing:0}
table.results{width:100%;border-collapse:collapse;background:var(--card);border:1px solid #e3e6e2;border-radius:10px;overflow:hidden;font-size:13.5px;margin-bottom:26px}
table.results th{background:var(--navy);color:#fff;text-align:left;padding:8px 10px;font-size:12px;letter-spacing:.5px;text-transform:uppercase}
table.results td{padding:8px 10px;border-top:1px solid #eceee9;vertical-align:top}
table.results tr:nth-child(even) td{background:#fafbf9}
.empty-note{background:var(--card);border:1px dashed #c4cbc2;border-radius:10px;padding:14px 18px;font-size:13.5px;line-height:1.55;margin-bottom:26px}
.notes{background:var(--card);border:1px solid #e3e6e2;border-radius:10px;padding:14px 18px;font-size:13px;line-height:1.55;margin-top:26px}
.notes h3{margin:0 0 6px;color:var(--navy);font-size:14.5px}
.notes li{margin-bottom:4px}
footer{border-top:1px solid #e2e5e0;background:var(--card);padding:16px 20px;font-size:12.5px;color:#6a7278}
footer .in{max-width:1180px;margin:0 auto;line-height:1.6}
@media (max-width:760px){
  .day{min-height:74px} .chip{font-size:9.5px;padding:2px 4px} .chip .who{display:block;text-align:center;font-size:9px;padding:1.5px 2px;margin:0 0 2.5px} header.site h1{font-size:18px} .dnum{font-size:10.5px}
  .boycards{grid-template-columns:1fr} .race .when{flex-basis:92px;font-size:12.5px}
  table.results{font-size:12.5px} table.results th,table.results td{padding:6px 7px}
}
@media print{ header.site{position:static} .filters,.subscribe{display:none} body{background:#fff} }
