/* ForeScorps - built on the B-Sharp AI design system (styles.css tokens) */
*{box-sizing:border-box;margin:0;padding:0}
/* scroll-padding reserves space for the fixed nav+page-header (196px) and fixed footer (52px+buffer)
   so the browser's native focus-scroll-into-view doesn't land a Tab-focused element underneath them
   (WCAG 2.4.11 Focus Not Obscured) -- reset to 0 on mobile where header/footer go position:static */
html{scrollbar-gutter:stable;overflow-y:scroll;scroll-padding-top:196px;scroll-padding-bottom:64px}
:root{
  --r:#C00000;        /* B-Sharp brand red */
  --rh:#a00000;
  --bg:#121212;       /* dark chrome */
  --w:#fff;
  --hf:'Plus Jakarta Sans',sans-serif;
  --bf:'DM Sans',sans-serif;
  --nh:72px;
  --hh:196px;
  /* functional status (contest pins) */
  --up:#7a869a; --hit:#1a7f37; --miss:#C07000; --rce:#6f42c1;
}
body{font-family:var(--bf);background:var(--w);color:#1a1a1a}
a{color:var(--r);text-decoration:none}
a:hover,a:active{text-decoration:underline}
.elink:hover,.elink:active{color:var(--r);text-decoration:underline}
.corpslink{color:#222;text-decoration:none}
.corpslink:hover,.corpslink:active{color:var(--r);text-decoration:underline}

/* ── NAV (dark) ── */
nav#mainnav{position:fixed;top:0;left:0;right:0;z-index:200;background:var(--bg);height:var(--nh);
  display:flex;align-items:center;padding:0 48px;border-bottom:1px solid var(--bg)}
nav#mainnav .wm{font-family:var(--hf);font-weight:800;font-size:23px;color:var(--w);letter-spacing:-.02em;text-decoration:none}
nav#mainnav .wm b{color:var(--r);font-weight:800}
.nl{margin-left:auto;display:flex;align-items:center;gap:26px}
.nl a{color:var(--w);text-decoration:none;font-family:var(--hf);font-size:19px;font-weight:500;white-space:nowrap}
.nl a:hover,.nl a:active{color:var(--r);text-decoration:underline}
.nl a.act{background:var(--r);color:#fff;padding:5px 14px;border-radius:6px;text-decoration:none}
.nl a.act:focus-visible{text-decoration:underline;text-decoration-color:#fff}
.priv{background:transparent;color:#ffb3b3;border:1px solid var(--r);padding:6px 14px;border-radius:5px;font-family:var(--hf);font-size:19px;font-weight:500;letter-spacing:.04em}
.hamburger{display:none}

/* ── PAGE HEADER (dark) ── */
#page-header{position:fixed;top:var(--nh);left:0;right:0;z-index:100;background:var(--bg);border-bottom:1px solid var(--bg);
  display:flex;align-items:center;justify-content:flex-end;padding:16px 48px}
.ph1{font-family:var(--hf);font-size:clamp(26px,3.4vw,46px);font-weight:800;color:var(--w);line-height:1.05}
.sub{margin-top:7px;font-family:var(--hf);font-size:19px;color:#aaa;line-height:1.55}

/* ── CONTENT (white) ── */
main.scroll-content{background:var(--w);min-height:60vh}
.ca{padding:40px 48px}
.ci{max-width:1160px;margin:0 auto}
h2{font-family:var(--hf);font-size:23px;font-weight:700;margin:28px 0 12px;color:#111}
h2:first-child{margin-top:0}
h3{font-family:var(--hf);font-size:17px;font-weight:600;margin:18px 0 6px;color:#111}
p{font-size:16px;line-height:1.75;margin-bottom:12px;color:#222}
.muted{color:#666} .faint{color:#616161}
.dl{font-family:var(--hf);font-size:11px;font-weight:700;letter-spacing:.1em;color:#5d5d5d;text-transform:uppercase;margin:14px 0 6px}

/* cards */
.scard{border:1px solid #e0e0e0;border-radius:10px;padding:22px;margin-bottom:18px;transition:border-color .2s,box-shadow .2s;background:#fff}
.scard.hoverable:hover{border-color:var(--r);box-shadow:0 2px 12px rgba(192,0,0,.08)}
.scard:hover{border-color:var(--r);box-shadow:0 2px 12px rgba(192,0,0,.08)}
.grid{display:grid;gap:16px}
.g2{grid-template-columns:repeat(2,1fr)} .g3{grid-template-columns:repeat(3,1fr)} .g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:820px){.g2,.g3,.g4{grid-template-columns:1fr}}

/* buttons */
.btn-primary{background:var(--r);color:var(--w)!important;padding:12px 26px;border-radius:6px;font-family:var(--hf);font-size:15px;font-weight:600;display:inline-block;min-height:44px}
.btn-primary:hover,.btn-primary:active{background:var(--rh);text-decoration:underline}
.btn-outline{background:transparent;color:#111!important;padding:12px 26px;border-radius:6px;border:1px solid #cfcfcf;font-family:var(--hf);font-size:15px;font-weight:500;display:inline-block;min-height:44px}
.btn-outline:hover,.btn-outline:active{border-color:var(--r);color:var(--r)!important;text-decoration:underline}

/* pill / badges */
.snum{display:inline-block;background:#fce8e8;color:var(--r);font-family:var(--hf);font-weight:700;font-size:12px;padding:3px 12px;border-radius:20px;border:1px solid var(--r)}
.badge{display:inline-block;font-family:var(--hf);font-size:11px;font-weight:700;padding:2px 9px;border-radius:5px;letter-spacing:.02em;border:1px solid transparent}
.b-wc{background:#fce8e8;color:var(--r);border-color:#f0c4c4}
.b-oc{background:#eef1f6;color:#334155;border-color:#dde3ec}
.b-aa{background:#fbf1df;color:#8a5a00;border-color:#f0dcae}
.b-intl{background:#eef1f6;color:#475569;border-color:#dde3ec}

/* score tables */
table.scores{width:100%;border-collapse:collapse;font-size:14px}
table.scores th{text-align:center;font-family:var(--hf);color:#5d5d5d;font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.05em;padding:8px 10px;border-bottom:1px solid #e0e0e0}
table.scores td{padding:9px 10px;border-bottom:1px solid #eee;vertical-align:middle;color:#222;text-align:center}
table.scores tr:hover td{background:#faf7f7}
.corpscell{display:flex;align-items:center;gap:10px;justify-content:center}
/* metric boxes: center metrics + labels */
.metric{text-align:center;border-color:var(--r);background:#fce8e8}
.metric div[style*="flex"]{justify-content:center}
.logo{width:26px;height:26px;border-radius:5px;object-fit:contain;background:#f3f3f3;flex:0 0 26px}
.mono{width:26px;height:26px;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;font-family:var(--hf);font-weight:800;font-size:10px;color:#fff;flex:0 0 26px}
.num{font-variant-numeric:tabular-nums;font-weight:600}
.interval{color:#999;font-size:12px;font-variant-numeric:tabular-nums}
.kpi{font-family:var(--hf);font-weight:800;color:#111;font-variant-numeric:tabular-nums}

/* status dots / pills */
.dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex:0 0 10px}
.dot.up{background:var(--up)} .dot.hit{background:var(--hit)} .dot.miss{background:var(--miss)} .dot.rce{background:var(--rce)}
.pill{font-family:var(--hf);font-size:11px;font-weight:700;padding:2px 9px;border-radius:20px}
.pill.up{background:#eef1f6;color:#556}.pill.hit{background:#e6f4ea;color:#177232}.pill.miss{background:#fbeeda;color:#8a5a00}.pill.rce{background:#f1eafa;color:#5b2d90}

/* event rows */
.evrow{display:flex;align-items:center;gap:12px;padding:12px 6px;border-bottom:1px solid #eee;cursor:pointer}
.evrow:hover{background:#faf7f7}
.chip{display:inline-flex;align-items:center;gap:6px;background:#f5f5f5;border:1px solid #e6e6e6;border-radius:20px;padding:4px 11px;font-family:var(--hf);font-size:12.5px;font-weight:600;color:#555}
.loading{color:#999;padding:26px;text-align:center}
.bar{height:6px;border-radius:4px;background:#eee;overflow:hidden;min-width:64px}
.bar>i{display:block;height:100%;background:var(--r)}

/* ── FOOTER (dark) ── */
footer.site{position:fixed;bottom:0;left:0;right:0;z-index:150;height:52px;background:var(--bg);padding:0 48px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-top:1px solid var(--bg);gap:16px}
.powered{display:flex;align-items:center;gap:9px;color:#9a9a9a;font-family:var(--hf);font-size:13px;justify-self:start}
.powered img{height:26px;width:auto;mix-blend-mode:screen;transition:transform .2s}
.powered:hover{text-decoration:none}
.powered:hover span{color:var(--r)}
.powered:hover img{transform:scale(1.28)}
.smallprint{justify-self:center;color:#bbb;font-family:var(--hf);font-size:13px}
.smallprint:hover,.smallprint:active{color:var(--r);text-decoration:underline}
.copyr{justify-self:end;color:#7e7e7e;font-family:var(--hf);font-size:12.5px;text-align:right}

/* map */
#map{height:calc(100vh - 472px);min-height:250px;border-radius:10px;border:1px solid #e0e0e0;overflow:hidden;position:relative;z-index:1}
.legend{display:flex;gap:18px;flex-wrap:wrap;margin:10px 0;font-family:var(--hf);font-size:13px;color:#555}
.legend span{display:inline-flex;align-items:center;gap:7px}
select.ctl{font-family:var(--hf);font-size:14px;padding:9px 12px;border:1px solid #d8d8d8;border-radius:6px;background:#fff;color:#222}
.leaflet-interactive:focus-visible{outline:3px solid var(--r);outline-offset:2px}

/* disclosure list toggle (shared: home page "expand list", map page "show list view") */
.listtoggle{text-align:center;color:var(--r);font-family:var(--hf);font-weight:600;font-size:13px;cursor:pointer;padding:9px 0 3px;margin-top:6px;border-top:1px solid #eee;user-select:none}
.listtoggle:hover{text-decoration:underline}
button.listtoggle{background:none;border:none;border-top:1px solid #eee;width:100%;display:block;appearance:none;-webkit-appearance:none}
.rdate{min-width:74px;font-family:var(--hf);font-weight:700;color:#111;font-size:12.5px}

/* map list view (keyboard-accessible alternative to map pins) */
#maplist{margin-top:2px}

/* content top offset for fixed nav+header */
main.scroll-content{padding-top:212px;padding-bottom:72px}
/* (mobile layout block moved to end of file so it wins the cascade) */
/* ── FOOTER CENTER (Small Print · Cookie Settings) ── */
.fcenter{justify-self:center;display:flex;align-items:center;gap:10px}
.fsep{color:#555}
#cookie-settings-link{color:#bbb;font-family:var(--hf);font-size:13px;cursor:pointer}
#cookie-settings-link:hover,#cookie-settings-link:active{color:var(--r);text-decoration:underline}

/* ── COOKIE CONSENT BANNER (ported from b-sharp.ai) ── */
#cookie-banner{display:none;position:fixed;bottom:0;left:0;right:0;z-index:500;background:#1a1a1a;border-top:1px solid #2e2e2e;outline:none}
#cookie-banner-inner{max-width:1160px;margin:0 auto;padding:14px 48px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
#cookie-banner p{font-family:var(--hf);font-size:13px;color:#aaa;margin:0;line-height:1.5;flex:1;min-width:200px}
#cookie-banner p a{color:var(--r);text-decoration:none}
#cookie-banner p a:hover{text-decoration:underline}
#cookie-btns{display:flex;gap:10px;flex-shrink:0;flex-wrap:wrap}
#cookie-reject-all,#cookie-manage{background:transparent;color:var(--w);border:1px solid rgba(255,255,255,0.35);border-radius:5px;padding:7px 18px;font-family:var(--hf);font-size:13px;font-weight:500;cursor:pointer;min-height:44px}
#cookie-reject-all:hover,#cookie-manage:hover{border-color:var(--r);color:var(--r);text-decoration:underline}
#cookie-accept-all{background:var(--r);color:#fff;border:none;border-radius:5px;padding:7px 18px;font-family:var(--hf);font-size:13px;font-weight:600;cursor:pointer;min-height:44px}
#cookie-accept-all:hover{background:var(--rh);text-decoration:underline}
#cookie-prefs{display:none;width:100%;padding:12px 0 4px;border-top:1px solid #2e2e2e;margin-top:10px}
.cookie-pref-row{display:flex;align-items:center;gap:12px;padding:6px 0;min-height:44px}
.cookie-pref-row input[type="checkbox"]{accent-color:var(--r);width:18px;height:18px;flex-shrink:0;cursor:pointer}
.cookie-pref-row input[disabled]{cursor:default;opacity:.6}
.cookie-pref-row label{color:#ccc;font-family:var(--hf);font-size:13px;flex:1;cursor:pointer;line-height:1.4}
.cookie-pref-desc{display:block;color:#888;font-size:12px;margin-top:1px}
#cookie-save{background:var(--r);color:#fff;border:none;border-radius:5px;padding:7px 18px;width:100%;margin-top:10px;font-family:var(--hf);font-size:13px;font-weight:600;cursor:pointer;min-height:44px}
#cookie-save:hover{background:var(--rh);text-decoration:underline}
#cookie-accept-all:focus-visible,#cookie-save:focus-visible{outline:2px solid #fff;outline-offset:2px}
#cookie-reject-all:focus-visible,#cookie-manage:focus-visible{outline:2px solid #aaa;outline-offset:2px}
@media(max-width:768px){
  #cookie-banner-inner{padding:14px 16px;flex-direction:column;align-items:stretch;gap:12px}
  #cookie-btns{flex-direction:column;width:100%}
  #cookie-reject-all,#cookie-manage,#cookie-accept-all{width:100%}
}

/* ── NAV LOGO (image wordmark, hover-grow like b-sharp) ── */
.navlogo{height:138px;width:auto;display:block;transition:transform .2s}
.logo-link{position:fixed;left:48px;top:0;height:var(--hh);display:flex;align-items:center;z-index:201}
.logo-link:hover .navlogo,.logo-link:active .navlogo{transform:scale(1.12)}

/* list bullet spacing in cards */
.scard li{margin-bottom:9px;line-height:1.65}
.scard li:last-child{margin-bottom:0}

/* compact chips inside metric card */
.metric .chip{font-size:10px;padding:2px 7px}

/* class-crest logos (replace WC/OC pills) */
.clslogo{height:30px;width:auto;vertical-align:middle;object-fit:contain;flex:0 0 auto}

/* bullets left-align with card titles */
.scard ul{padding-left:1.15em;margin:8px 0 12px}

.leaflet-popup-content .clslogo{height:18px}

/* metric-box labels +50% */
.metric .faint,.metric .dl{font-size:15px!important}

/* == MOBILE (<=768px): static header, small logo, wrapping nav (must stay AFTER base .navlogo/.logo-link rules) == */
@media(max-width:768px){
  html{scroll-padding-top:0;scroll-padding-bottom:0}
  nav#mainnav{position:static;height:auto;min-height:56px;flex-wrap:wrap;padding:8px 16px;row-gap:6px}
  .logo-link{position:static;height:auto;left:auto}
  .navlogo{height:44px}
  .nl{margin-left:auto;flex-wrap:wrap;justify-content:flex-end;gap:6px 14px}
  .nl a{font-size:14px;padding:12px 4px;display:inline-flex;align-items:center;min-height:44px}
  select.ctl{min-height:44px}
  .priv{padding:4px 10px;font-size:14px}
  #page-header{position:static;padding:12px 16px}
  .ca{padding:24px 16px}
  main.scroll-content{padding-top:0;padding-bottom:0}
  footer.site{position:static;height:auto;grid-template-columns:1fr;justify-items:center;row-gap:8px;padding:14px 16px;text-align:center}
  .powered{justify-self:center}
  .copyr{justify-self:center;text-align:center}
}

/* horizontal-scroll wrapper for data tables (auto-added by common.js) */
.twrap{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}
.twrap table.scores{min-width:520px}
/* mobile-only hint above scrollable class tables (event pages); mirrors the recap page note */
.scrollhint{display:none;font-size:12.5px;color:#616161;margin:2px 0 8px}
@media(max-width:760px){.scrollhint{display:block}}

/* inline prose links get a non-color cue (WCAG 1.4.1) – scoped to running text, not nav/buttons/tables */
main.scroll-content p a{text-decoration:underline}
main.scroll-content p a.il{text-decoration:none}
main.scroll-content p a.il:hover,main.scroll-content p a.il:active{text-decoration:underline}

/* visually-hidden but screen-reader-readable (table captions, etc.) */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* == ACCESSIBILITY: skip link + visible focus == */
.skip-link{position:absolute;left:-9999px;top:0;z-index:600;background:var(--r);color:#fff !important;padding:12px 20px;font-family:var(--hf);font-size:14px;border-radius:0 0 6px 0}
.skip-link:focus{left:0}
a:focus-visible,button:focus-visible,select:focus-visible,[tabindex="0"]:focus-visible{outline:2px solid var(--r);outline-offset:2px}
nav#mainnav a:focus-visible,footer.site a:focus-visible,#cookie-settings-link:focus-visible{outline-color:#fff}

/* corps logo -> official website link + hover zoom (2026-07-05) */
.clogo{display:inline-flex;flex:0 0 auto;position:relative;border-radius:5px}
.clogo .logo,.clogo .mono,.clogo .clslogo{transition:transform .15s ease}
.clogo:hover,.clogo:focus-visible{z-index:30}
.clogo:hover .logo,.clogo:focus-visible .logo,.clogo:hover .mono,.clogo:focus-visible .mono{transform:scale(2.1)}
.clogo:hover .clslogo,.clogo:focus-visible .clslogo{transform:scale(1.6)}
.clogo:focus-visible{outline:2px solid #1558d6;outline-offset:2px}

/* == Season archive (/archive), 2026-07-24 == */
.archface{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.archszn{font-family:var(--hf);font-weight:800;font-size:20px;color:#111;min-width:64px}
.archmeta{color:#616161;font-size:14px;flex:1 1 auto}
.archchev{color:var(--r);font-size:40px;transition:transform .15s ease;flex:0 0 auto}
/* DCI/DCA section titles above the card groups match the cards' own year-title size (2026-07-25) */
.archsectitle{font-size:20px}
.archgapnote{color:#616161;font-size:13px;margin:-4px 0 14px;max-width:640px}
button.archtoggle{display:block;width:100%;text-align:left;background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer}
button.archtoggle[aria-expanded="true"] .archchev{transform:rotate(180deg)}
.archbody{margin-top:16px}
a.archcard{display:block;text-decoration:none;color:inherit}
.pill.soon{background:#f1eafa;color:#5b2d90}
