:root {
  --bg: #0c1017;
  --panel: #141a24;
  --panel2: #1a2230;
  --line: #26303f;
  --ink: #e9eef6;
  --ink2: #aab6c6;
  --ink3: #7d8b9e;
  --guilty: #e5484d;
  --ok: #21c07a;
  --pl: #4c9aff;
  --city: #6cc4ff;
  --money: #21c07a;
  --warn: #f0b429;
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; background: var(--bg); color: var(--ink);
  font: 16px/1.55 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased; }
a { color: #7fc0ff; text-decoration: none; }
a:hover { text-decoration: underline; }
h1, h2, h3 { line-height: 1.25; margin: 0 0 .5em; }
.wrap { max-width: 1240px; margin: 0 auto; padding: 0 18px 60px; }

header.top { border-bottom: 1px solid var(--line); background:
  radial-gradient(900px 240px at 12% -40%, rgba(76,154,255,.16), transparent 70%),
  radial-gradient(700px 200px at 88% -30%, rgba(229,72,77,.14), transparent 70%);
  padding: 34px 0 26px; }
header.top h1 { font-size: clamp(24px, 3.6vw, 40px); letter-spacing: -.02em; }
header.top .sub { color: var(--ink2); max-width: 76ch; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.hchip { border: 1px solid var(--line); background: #101724; border-radius: 999px;
  padding: 5px 12px; font-size: 13px; color: var(--ink2); }
.hchip b { color: var(--ink); }
.hchip.bad { border-color: rgba(229,72,77,.5); color: #ffb9bb; }
.hchip.ok { border-color: rgba(33,192,122,.45); color: #a6ecc9; }

nav.tabs { border-bottom: 1px solid var(--line); position: sticky; top: 0;
  background: rgba(12,16,23,.96); backdrop-filter: blur(8px); z-index: 20; }
.tabsrow { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; padding: 0 18px; }
.tabsrow::-webkit-scrollbar { display: none; }
.tab { background: none; border: 0; color: var(--ink3); padding: 14px 14px 12px; cursor: pointer;
  font: inherit; font-size: 14.5px; white-space: nowrap; border-bottom: 2px solid transparent; }
.tab:hover { color: var(--ink2); }
.tab.active { color: var(--ink); border-bottom-color: var(--pl); }

.view { display: none; padding-top: 26px; }
.view.active { display: block; }

/* ---------- tour ---------- */
.tourwrap { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 26px; align-items: start; }
.tourcard { background: var(--panel); border: 1px solid var(--line); border-radius: 14px; padding: 22px; }
.stepcount { font-size: 12.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--ink3); margin-bottom: 10px; }
.tourcard h2 { font-size: clamp(19px, 2.4vw, 25px); }
.tourcard p { color: var(--ink2); }
.tournav { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.btn { background: #1d2735; border: 1px solid var(--line); color: var(--ink); border-radius: 9px;
  padding: 9px 14px; font: inherit; font-size: 14px; cursor: pointer; }
.btn:hover:not(:disabled) { background: #243146; }
.btn:disabled { opacity: .4; cursor: default; }
.btn.primary { background: #1c4f8f; border-color: #2a6cb8; }
.btn.primary:hover { background: #2260a8; }
.btn.ghost { background: none; }
.chips { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 14px; }
.chip { display: inline-flex; align-items: center; gap: 7px; background: #101724; border: 1px solid var(--line);
  color: var(--ink2); border-radius: 999px; padding: 5px 12px; font: inherit; font-size: 13px; cursor: pointer; }
.chip:hover { border-color: #3a4a63; color: var(--ink); }
.chip em { font-style: normal; color: var(--ink3); font-size: 11.5px; }
.ctype { width: 9px; height: 9px; border-radius: 50%; background: var(--c, #888); display: inline-block; flex: 0 0 auto; }
.mapnote { display: flex; align-items: center; gap: 10px; color: var(--ink3); font-size: 13.5px;
  border: 1px dashed var(--line); border-radius: 12px; padding: 12px 14px; margin-top: 14px; }
.steplist { display: flex; flex-direction: column; gap: 6px; }
.stepbtn { text-align: left; background: none; border: 1px solid transparent; border-radius: 8px; color: var(--ink3);
  padding: 8px 10px; font: inherit; font-size: 13.5px; cursor: pointer; }
.stepbtn:hover { color: var(--ink2); background: #131a25; }
.stepbtn.on { color: var(--ink); border-color: var(--line); background: #16202e; }

/* ---------- graph ---------- */
.graphwrap { position: relative; }
.graphbar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 12px; }
#search, input[type=search] { background: #101724; border: 1px solid var(--line); color: var(--ink);
  border-radius: 9px; padding: 9px 12px; font: inherit; font-size: 14px; min-width: 220px; flex: 1 1 220px; }
#filters { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.filter { display: inline-flex; align-items: center; gap: 7px; background: #101724; border: 1px solid var(--line);
  color: var(--ink3); border-radius: 999px; padding: 5px 12px; font: inherit; font-size: 13px; cursor: pointer; }
.filter.on { color: var(--ink); border-color: #3a4a63; }
.filter .dot { width: 9px; height: 9px; border-radius: 50%; background: var(--c); }
.stage { position: relative; height: min(72vh, 720px); background:
  radial-gradient(700px 400px at 50% 40%, #121a26, #0c1017); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
#graph { display: block; touch-action: none; cursor: grab; }
#detail { position: absolute; top: 0; right: 0; width: min(400px, 92%); height: 100%; overflow-y: auto;
  background: rgba(18,24,34,.98); border-left: 1px solid var(--line); transform: translateX(102%);
  transition: transform .18s ease; padding: 20px 20px 40px; }
#detail.open { transform: none; }
#detail .close { position: absolute; top: 12px; right: 14px; background: none; border: 0; color: var(--ink3);
  font-size: 22px; cursor: pointer; line-height: 1; }
.dhead { border-left: 3px solid var(--c); padding-left: 12px; margin-bottom: 14px; }
.dtype { font-size: 11.5px; text-transform: uppercase; letter-spacing: .07em; color: var(--ink3); }
.dhead h2 { font-size: 21px; margin: 4px 0 2px; }
.dshort { color: var(--ink2); font-size: 14px; margin: 0 0 10px; }
.ddesc { color: var(--ink2); }
.badge { display: inline-block; font-size: 11.5px; border-radius: 6px; padding: 3px 8px;
  color: var(--c); border: 1px solid color-mix(in srgb, var(--c) 45%, transparent); background: color-mix(in srgb, var(--c) 12%, transparent); }
.dh3 { font-size: 13px; text-transform: uppercase; letter-spacing: .07em; color: var(--ink3); margin: 20px 0 8px; }
.fact { display: grid; grid-template-columns: 40% 1fr; gap: 8px; padding: 8px 0; border-top: 1px solid #1e2734; font-size: 14px; }
.fk { color: var(--ink3); }
.fv { color: var(--ink); }
blockquote { margin: 14px 0; padding: 12px 14px; background: #101724; border-left: 3px solid var(--pl);
  border-radius: 0 8px 8px 0; color: var(--ink); font-size: 14.5px; }
blockquote cite { display: block; margin-top: 8px; color: var(--ink3); font-style: normal; font-size: 12.5px; }
.srclist { list-style: none; padding: 0; margin: 0; font-size: 14px; }
.srclist li { padding: 7px 0; border-top: 1px solid #1e2734; }
.srcmeta { color: var(--ink3); font-size: 12.5px; }
.hint { color: var(--ink3); font-size: 13px; margin: 10px 2px 0; }

/* ---------- cards, scoreboard, money, people, args, timeline ---------- */
.scoreboard { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin-bottom: 20px; }
.score { background: var(--panel); border: 1px solid var(--line); border-radius: 12px; padding: 16px; }
.score b { display: block; font-size: 30px; letter-spacing: -.02em; }
.score span { color: var(--ink3); font-size: 13.5px; }
.score.bad b { color: var(--guilty); }
.cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 12px; }
.card { background: var(--panel); border: 1px solid var(--line); border-radius: 12px; padding: 16px; cursor: pointer; }
.card:hover { border-color: #3a4a63; background: var(--panel2); }
.cardtop { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-bottom: 6px; }
.cardtop .ref { font-size: 13px; color: var(--ink3); text-transform: uppercase; letter-spacing: .05em; }
.verdict { font-size: 12px; border-radius: 6px; padding: 2px 8px; }
.card.guilty { border-left: 3px solid var(--guilty); }
.card.guilty .verdict { color: #ffb9bb; background: rgba(229,72,77,.14); }
.card.failed { border-left: 3px solid var(--ok); }
.card.failed .verdict { color: #a6ecc9; background: rgba(33,192,122,.14); }
.card p { color: var(--ink2); font-size: 14.5px; margin: 0; }
.note { color: var(--ink2); font-size: 14.5px; background: #101724; border: 1px solid var(--line);
  border-radius: 12px; padding: 14px 16px; margin: 16px 0; }
.note strong { color: var(--ink); }

.mhead, .mrow { display: grid; grid-template-columns: 88px minmax(0,1fr) 180px; gap: 12px; align-items: center; }
.mhead { color: var(--ink3); font-size: 12.5px; text-transform: uppercase; letter-spacing: .05em; padding: 0 0 6px; }
.mrow { padding: 7px 0; border-top: 1px solid #1e2734; }
.mseason { color: var(--ink2); font-size: 13.5px; }
.mbars { display: flex; flex-direction: column; gap: 3px; }
.mbar { background: var(--pl); height: 15px; border-radius: 3px; min-width: 3px; position: relative; }
.mbar.base { background: var(--money); }
.mbar span { position: absolute; left: 6px; top: 0; font-size: 10.5px; line-height: 15px; color: #04140c;
  white-space: nowrap; }
.mbar:not(.base) span { color: #03101f; }
.mtag { color: #ffb9bb; font-size: 13px; text-align: right; }
.mtotals { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 12px; margin: 22px 0; }
.mtot { background: var(--panel); border: 1px solid var(--line); border-radius: 12px; padding: 16px; }
.mtot b { display: block; font-size: 26px; }
.mtot span { color: var(--ink3); font-size: 13.5px; }
.mtot.good b { color: var(--ok); }
.mtot.bad b { color: var(--guilty); }

.pgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 12px; margin-bottom: 8px; }
.pcard { background: var(--panel); border: 1px solid var(--line); border-radius: 12px; padding: 16px; cursor: pointer; }
.pcard:hover { border-color: #3a4a63; }
.pname { display: flex; align-items: center; gap: 8px; font-weight: 600; }
.prole { color: var(--ink3); font-size: 13px; margin: 3px 0 8px; }
.pcard p { color: var(--ink2); font-size: 14px; margin: 0 0 10px; }

.arggrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 16px; }
.argcol h3 { font-size: 15px; color: var(--ink2); text-transform: uppercase; letter-spacing: .06em; }
.arg { background: var(--panel); border: 1px solid var(--line); border-radius: 12px; padding: 14px; margin-bottom: 10px; cursor: pointer; }
.arg:hover { border-color: #3a4a63; }
.arg b { color: var(--ink); }
.arg p { color: var(--ink2); font-size: 14px; margin: 6px 0 0; }

.timeline { border-left: 2px solid var(--line); margin-left: 6px; padding-left: 18px; }
.titem { position: relative; padding: 10px 0; cursor: pointer; }
.titem::before { content: ""; position: absolute; left: -25px; top: 17px; width: 10px; height: 10px;
  border-radius: 50%; background: var(--pl); }
.titem .tyear { display: inline-block; font-size: 12.5px; color: var(--pl); margin-right: 10px; }
.titem b { font-size: 15px; }
.titem p { color: var(--ink2); font-size: 14px; margin: 4px 0 0; }

footer.site { border-top: 1px solid var(--line); margin-top: 40px; padding-top: 18px; color: var(--ink3); font-size: 13px; }

/* ---- clubs and claims ---- */
.ohbanner { border: 1px solid rgba(240,180,41,.45); background: rgba(240,180,41,.08); color: #ffe6b0;
  border-radius: 10px; padding: 14px 16px; font-size: 14px; line-height: 1.6; margin-bottom: 8px; }
.rgwrap { margin: 12px 0 6px; }
.rgbar { position: relative; height: 12px; background: #1d2532; border-radius: 7px; overflow: hidden; }
.rgfill { position: absolute; top: 0; bottom: 0; background: linear-gradient(90deg, rgba(33,192,122,.55), rgba(240,180,41,.75)); border-radius: 7px; }
.rgmark { position: absolute; top: -3px; bottom: -3px; width: 3px; background: #fff; border-radius: 2px; }
.rgscale { display: flex; justify-content: space-between; font-size: 12px; color: var(--ink3); margin-top: 5px; }
.rgmid { color: var(--ink2); }
.clubgrid { display: grid; gap: 12px; }
.clubcard { background: var(--panel); border: 1px solid var(--line); border-radius: 10px; padding: 14px 16px; cursor: pointer; }
.clubcard:hover { border-color: #35435a; }
.clubhead { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; flex-wrap: wrap; }
.clubname { font-weight: 650; font-size: 16.5px; }
.clubsub { color: var(--ink3); font-size: 12.5px; margin-top: 2px; }
.clubbadges { display: flex; gap: 6px; flex-wrap: wrap; }
.clubwhy { color: var(--ink2); font-size: 14px; margin: 10px 0 0; line-height: 1.55; }
.clubdetail { display: none; margin-top: 12px; border-top: 1px solid var(--line); padding-top: 10px; }
.clubcard.expanded .clubdetail { display: block; }
.clubdetail h4 { font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: var(--ink3); margin: 14px 0 6px; }
.clubdetail p { font-size: 14px; color: var(--ink2); margin: 0 0 6px; line-height: 1.55; }
.seasontable { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.seasontable th { text-align: left; color: var(--ink3); font-weight: 500; font-size: 12px;
  text-transform: uppercase; letter-spacing: .05em; padding: 6px 8px 6px 0; border-bottom: 1px solid var(--line); }
.seasontable td { padding: 7px 8px 7px 0; border-bottom: 1px solid rgba(38,48,63,.6); color: var(--ink2); vertical-align: top; }
.summarybars { display: grid; gap: 7px; margin-top: 10px; }
.sumbar { display: grid; grid-template-columns: minmax(120px, 210px) 1fr 64px; gap: 10px; align-items: center; cursor: pointer; }
.sumbar:hover .sbname { color: var(--ink); }
.sbname { font-size: 13.5px; color: var(--ink2); }
.sbtrack { height: 10px; background: #1d2532; border-radius: 6px; overflow: hidden; }
.sbfill { display: block; height: 100%; background: linear-gradient(90deg, rgba(76,154,255,.5), rgba(108,196,255,.9)); }
.sbval { font-size: 13px; color: var(--ink3); text-align: right; }
.tierrow { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; }
.srclist.nested { margin: 4px 0 6px 14px; }
.disclaimer { background: rgba(240,180,41,0.07); border-bottom: 1px solid var(--line); }
.disclaimer .wrap { padding: 12px 16px; }
.disclaimer p { margin: 0; font-size: 13px; line-height: 1.55; color: var(--ink2); }
.disclaimer p.made { margin-top: 8px; color: var(--ink3); font-size: 12.5px; }
.disclaimer b { color: var(--ink); }
.clubopen { color: var(--pl); font-size: 13.5px; margin: 10px 0 0; }
.backbtn { background: var(--panel2); border: 1px solid var(--line); color: var(--ink2); border-radius: 8px;
  padding: 9px 14px; font: inherit; font-size: 14px; cursor: pointer; }
.backbtn:hover { border-color: #43536d; color: var(--ink); }
.focushead { margin: 16px 0 14px; }
.focushead .clubname { font-size: 24px; }
.focushead .clubsub { margin-top: 4px; }
.focushead .clubbadges { margin-top: 10px; }
.focuscard { padding: 18px 20px; }
.focuscard h4 { font-size: 12.5px; text-transform: uppercase; letter-spacing: .07em; color: var(--ink3); margin: 18px 0 8px; }
.focuscard h4:first-child { margin-top: 0; }
.focuscard p { font-size: 14.5px; color: var(--ink2); line-height: 1.6; margin: 0 0 8px; }
.focusnav { display: flex; gap: 8px; flex-wrap: wrap; margin: 24px 0 40px; }

@media (max-width: 860px) {
  .tourwrap { grid-template-columns: 1fr; }
  .mhead, .mrow { grid-template-columns: 76px minmax(0,1fr); }
  .mtag { grid-column: 2; text-align: left; }
  .mhead span:last-child { display: none; }
  .stage { height: 64vh; }
  #detail { width: 100%; }
}

/* --- latest development strip (fed by the Worker at /latest.json) --- */
#latest-strip{border-top:1px solid #22303f;border-bottom:1px solid #22303f;background:#111a24}
#latest-strip[hidden]{display:none}
#latest-strip .wrap{padding:12px 24px}
#latest-strip .lsthead{margin:0 0 6px;font-size:14px;color:#ffd479}
#latest-strip .lstwhen{color:#8fa3b8;font-weight:400;font-size:13px}
#latest-strip .lstlist{margin:0;padding-left:18px;font-size:14px;line-height:1.5}
#latest-strip .lstlist li{margin:4px 0}
#latest-strip .lstlist a{color:#e9eef6;text-decoration:none;border-bottom:1px solid #2f4a63}
#latest-strip .lstlist a:hover{color:#6cc4ff}
#latest-strip .lstmeta{color:#7d8fa3;font-size:13px}
#latest-strip .lstnote{margin:8px 0 0;font-size:12.5px;color:#7d8fa3}

/* --- claims summary (top of the clubs tab) --- */
.claimsum{border:1px solid #22303f;background:#0f1720;border-radius:14px;padding:18px 20px 16px;margin:0 0 24px}
.csgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.csstat{border:1px solid #24374b;background:#111a24;border-radius:12px;padding:14px 16px}
.csstat-mid{border-color:#6cc4ff;background:#12202e}
.cslab{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:#8fa3b8}
.csval{font-size:30px;font-weight:700;margin:8px 0 4px;letter-spacing:-.01em}
.cssub{font-size:13px;line-height:1.45;color:#93a5b8}
.csbadge{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#0c1017;background:#f0b429;border-radius:99px;padding:2px 8px;font-weight:700}
.csmidtag{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#f0b429;font-weight:700}
.cstiers{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 8px}
.csrange{padding-top:26px;margin:10px 0 4px}
.csbar{position:relative;height:14px;border-radius:99px;background:#16202c;border:1px solid #24374b}
.csfill{position:absolute;left:0;top:0;bottom:0;border-radius:99px;background:linear-gradient(90deg,#6cc4ff,#8ee6a8)}
.csfloor{position:absolute;top:-2px;bottom:-2px;width:2px;background:#8fa3b8;opacity:.7}
.csmark{position:absolute;top:-6px;bottom:-6px;width:3px;background:#fff;border-radius:2px;box-shadow:0 0 0 2px rgba(12,16,23,.75)}
.csmarklab{position:absolute;top:-22px;transform:translateX(-50%);font-size:12px;color:#fff;white-space:nowrap}
.csticks{display:flex;justify-content:space-between;font-size:12px;color:#8fa3b8;margin-top:7px}
.csrow2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:6px}
.csh3{margin:18px 0 8px;font-size:15px;color:#dbe6f2}
.cschips{display:flex;flex-wrap:wrap;gap:10px}
.cschip{flex:1 1 300px;max-width:430px;border:1px solid #24374b;background:#111a24;border-radius:10px;padding:11px 13px;font-size:13px;line-height:1.5;color:#c9d6e4}
.cschip b{color:#e9eef6}
.cschip a{color:#6cc4ff}
.csread{margin:14px 0 0;padding-top:12px;border-top:1px solid #22303f;font-size:13px;line-height:1.55;color:#93a5b8}
@media (max-width:860px){.csgrid,.csrow2{grid-template-columns:1fr}}
