
:root{
  /* WAC club palette from the approved league prototype. --brass is the fill
     value; --accent-ink uses the palette's darker brass for readable text on
     white, then switches back to brass inside navy regions below. */
  --navy:#002E4C; --navy2:#02456F; --brass:#C89D6F; --brass-d:#8A6634;
  --accent-ink:var(--brass-d);
  --cyan:#20A4C9; --slate:#49697E; --pale:#E4E7F2;
  --ink:#333333; --ink2:#5F6E79; --ink3:#8A98A3;
  --rule:#D5DCE3; --rule2:#B3C0CB; --white:#FFFFFF; --ground:#FFFFFF;
  --in:#1F6B54; --in-bg:#E4EFEA; --out:#9E3B32; --out-bg:#F5E5E3; --may:#9A6C1C; --may-bg:#F6EEDE;
  /* Shades of the palette above, hand-tuned for WAC and written once here so a
     tenant can re-derive them (js/brand.js paletteVars). WAC sets none of them. */
  --brass-rgb:200,157,111; --brass-hover:#B98C5E;
  --on-navy-muted:#bdccd5; --on-navy-soft:#AFC4D2; --footer-ink:#8FA8B8;
}
*{box-sizing:border-box}
body{margin:0;background:var(--ground);color:var(--ink);font-family:"Inter",-apple-system,"Segoe UI",Roboto,sans-serif;font-size:16px;line-height:1.6}
h1,h2,h3,h4{margin:0;font-family:"Archivo","Helvetica Neue",Arial,sans-serif;font-weight:800;font-stretch:125%;letter-spacing:-.015em;text-transform:uppercase;line-height:1.08;color:var(--navy);text-wrap:balance}
h1{font-size:clamp(30px,4.6vw,54px)}
h2{font-size:clamp(24px,3.2vw,38px)}
h3{font-size:20px}
h4{font-size:16px}
p{margin:0}
a{color:var(--cyan);text-decoration:none}
button{font:inherit;border:0;background:none;color:inherit;cursor:pointer;border-radius:0}
:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
.eyebrow{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:2px;font-size:12px;color:var(--accent-ink);margin:0}
.wrap{max-width:1440px;margin:0 auto;padding:0 80px}
@media(max-width:900px){.wrap{padding:0 22px}}

.topbar{background:var(--navy);position:sticky;top:0;z-index:50;border-bottom:1px solid rgba(255,255,255,.14)}
.topbar .wrap{display:flex;align-items:center;gap:26px;height:66px}
.brand{display:flex;align-items:center;gap:11px;flex-shrink:0}
.brand span{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:2.4px;font-size:14px;color:#fff;white-space:nowrap}
.nav{display:flex;gap:4px;margin-left:auto;flex-wrap:wrap}
.nav button{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:2px;font-size:12.5px;color:#B6C9D6;padding:9px 15px;border-bottom:3px solid transparent}
.nav button:hover{color:#fff}
.nav button[aria-current="true"]{color:#fff;border-bottom-color:var(--brass)}
@media(max-width:720px){.topbar .wrap{height:auto;padding-top:12px;padding-bottom:0;flex-wrap:wrap;gap:10px}.nav{margin-left:0;width:100%}.nav button{flex:1;padding:9px 6px;font-size:11px;letter-spacing:1.2px}}
.hero{background:var(--navy);color:#fff;padding:46px 0 42px;border-bottom:5px solid var(--brass)}
.hero h1{color:#fff;margin:9px 0 0}
.hero .sub{color:var(--on-navy-soft);margin-top:12px;max-width:60ch;font-size:15.5px}
.hero .demo{display:inline-block;margin-top:18px;border:1px solid rgba(var(--brass-rgb),.55);color:var(--accent-ink);font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:2px;font-size:11px;padding:5px 11px}

main{padding:44px 0 80px;min-height:60vh}
.sec{margin-bottom:44px}
.sec-h{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:20px;padding-bottom:12px;border-bottom:2px solid var(--navy)}
.btn{display:inline-block;background:var(--brass);color:var(--navy);font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:2px;font-size:15px;padding:12px 18px}
.btn:hover{background:var(--brass-hover)}
.btn.ghost{background:transparent;border:1px solid var(--rule2);color:var(--navy)}
.btn.ghost:hover{background:var(--pale)}
.btn.sm{font-size:12px;padding:8px 13px;letter-spacing:1.6px}
.back{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:2px;font-size:12px;color:var(--slate);margin-bottom:16px;display:inline-block}
.back:hover{color:var(--navy)}

.tabs{display:flex;gap:0;border-bottom:1px solid var(--rule);margin-bottom:26px;overflow-x:auto}
.tabs button{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:2px;font-size:13px;color:var(--ink2);padding:12px 20px;border-bottom:3px solid transparent;white-space:nowrap}
.tabs button[aria-current="true"]{color:var(--navy);border-bottom-color:var(--brass)}

.grid{display:grid;gap:1px;background:var(--rule)}
.g2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.cell{background:#fff;padding:22px}
.cell:hover{background:#FAFCFD}
button.cell{text-align:left;width:100%;display:block}
.cell .k{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:1.8px;font-size:11px;color:var(--accent-ink);display:block;margin-bottom:7px}
.cell .m{color:var(--ink2);font-size:14px;margin-top:8px}

.scroller{overflow-x:auto;border:1px solid var(--rule)}
table{border-collapse:collapse;width:100%;min-width:600px;font-size:14.5px}
th,td{padding:11px 14px;text-align:left;border-bottom:1px solid var(--rule)}
thead th{background:var(--navy);color:#fff;font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:1.4px;font-size:11.5px;font-weight:400;white-space:nowrap}
tbody tr:last-child td{border-bottom:0}
tbody tr:nth-child(even){background:#F7F9FB}
.num{text-align:right;font-variant-numeric:tabular-nums}
.tname{font-weight:600;color:var(--navy)}

.wk{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:2px;font-size:12px;color:var(--white);background:var(--slate);padding:7px 14px;margin-top:0}
.game{display:flex;align-items:center;gap:14px;padding:13px 14px;border-bottom:1px solid var(--rule);background:#fff}
.game:last-child{border-bottom:0}
.gwhen{width:104px;flex-shrink:0;font-size:12.5px;color:var(--ink2);font-variant-numeric:tabular-nums;line-height:1.4}
.gt{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.side{display:flex;align-items:center;gap:9px;font-size:14.5px}
.side b{font-weight:600;color:var(--navy)}
.jer{width:15px;height:15px;flex-shrink:0;border:1.5px solid var(--rule2)}
.jd{background:var(--navy);border-color:var(--navy)}
.jw{background:#fff}
.gsc{font-variant-numeric:tabular-nums;font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;font-size:17px;color:var(--navy);width:34px;text-align:right}
.gff{display:flex;flex-direction:column;gap:5px}.gff .gsc{font-size:14px}
.gact{flex-shrink:0}
@media(max-width:640px){.gwhen{width:80px;font-size:11.5px}.side{font-size:13.5px}}
/* A narrow schedule gives the Matchup link its own line, under the names.
   Left to fit beside a short "W 58-71" chip, it won the row and squeezed the
   team name to one letter per line. Keyed to the list's own width, not the
   screen's: from 641px the team page sets the schedule beside the roster, and
   that column is narrower than a phone (iPad portrait). */
div:has(>.game){container:wacsched/inline-size}
@container wacsched (max-width:480px){.game{flex-wrap:wrap;gap:10px}.game .gwhen{width:75px}.game .gmore{flex-basis:calc(100% - 85px);margin-left:85px;padding-left:0;text-align:left}}
/* Narrower still (a 320px phone, an iPhone with Display Zoom, or the 641-720px
   two-column tablet layout at its larger type), the team
   schedule's chip can't share the names' line either; it drops beneath them. */
@container wacsched (max-width:320px){.game:has(>.gt+.chip)>.gt{flex-basis:calc(100% - 85px)}.game>.gt+.chip{margin-left:85px}}

.chip{display:inline-block;font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;font-size:11px;padding:4px 10px;border:1px solid var(--rule2);color:var(--ink2)}
.chip.nav{background:var(--navy);color:#fff;border-color:var(--navy)}
.chip.br{background:var(--brass);color:var(--navy);border-color:var(--brass)}
.chip.in{background:var(--in-bg);color:var(--in);border-color:transparent}
.chip.out{background:var(--out-bg);color:var(--out);border-color:transparent}
.chip.may{background:var(--may-bg);color:var(--may);border-color:transparent}
.chips{display:flex;flex-wrap:wrap;gap:7px}

.rsvp{display:flex;gap:1px;background:var(--rule2);border:1px solid var(--rule2)}
.rsvp button{background:#fff;font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;font-size:11.5px;padding:8px 13px;color:var(--ink2)}
.rsvp button[aria-pressed="true"]{background:var(--navy);color:#fff}
.rsvp button:hover:not([aria-pressed="true"]){background:var(--pale)}

.banner{padding:20px;text-align:center;border:1px solid var(--rule)}
.banner.warn{background:var(--may-bg);border-color:#E3CFA4}
.banner.ok{background:var(--in-bg);border-color:#BFD9CF}
.banner .bt{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:2px;font-size:17px;color:var(--navy)}
.banner .bs{font-size:13.5px;color:var(--ink2);margin-top:4px}

.plist{border:1px solid var(--rule)}
.prow{display:flex;align-items:center;gap:12px;padding:11px 14px;border-bottom:1px solid var(--rule);background:#fff;width:100%;text-align:left}
.prow:last-child{border-bottom:0}
.prow:hover{background:#F7F9FB}
.av{position:relative;overflow:hidden;width:34px;height:34px;flex-shrink:0;background:var(--pale);color:var(--navy);font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center;letter-spacing:.5px}
.av.cap{background:var(--brass);color:var(--navy)}
.pn{flex:1;min-width:0}
.pn b{font-weight:600;color:var(--navy);display:block;font-size:14.5px}
.pn small{color:var(--ink3);font-size:12px}

.stepper{display:flex;border:1px solid var(--rule);margin-bottom:24px;overflow-x:auto}
.step{flex:1;min-width:132px;padding:13px 15px;border-right:1px solid var(--rule);background:#fff}
.step:last-child{border-right:0}
.step[data-on="1"]{background:var(--navy);color:#fff}
.step .sn{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;letter-spacing:2px;font-size:10.5px;color:var(--accent-ink);display:block}
.step .sl{font-size:13.5px;font-weight:600;margin-top:2px}
.step[data-on="0"] .sl{color:var(--ink2)}

.sheet{background:var(--pale);border:1px solid var(--rule);padding:18px;min-height:250px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px}
.sheet .ph{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;letter-spacing:2px;font-size:12px;color:var(--slate)}
input[type=text]{font:inherit;padding:10px 12px;border:1px solid var(--rule2);border-radius:0;width:100%;background:#fff;color:var(--ink)}
input[type=text]:focus{outline:2px solid var(--brass);outline-offset:-1px}
td input.st{font:inherit;font-size:14px;width:56px;padding:5px 7px;border:1px solid var(--rule2);border-radius:0;text-align:right;font-variant-numeric:tabular-nums;background:#fff;color:var(--ink)}
td input.st.flag{border-color:var(--may);background:var(--may-bg)}
.legend{font-size:13px;color:var(--ink2);margin-top:10px}
.muted{color:var(--ink2);font-size:14.5px}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.stat{background:#fff;padding:14px}
.stat .sv{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;font-size:25px;color:var(--navy);font-variant-numeric:tabular-nums;line-height:1.1}
.stat .sk{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;font-size:10.5px;color:var(--accent-ink);margin-top:3px}
.bar{display:flex;align-items:center;gap:11px;padding:9px 0;border-bottom:1px solid var(--rule)}
.bar:last-child{border-bottom:0}
.bar .r{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;font-size:12px;color:var(--accent-ink);width:18px}
.bar .bn{flex:1;font-size:14px;color:var(--navy);min-width:0}
.bar .bv{font-variant-numeric:tabular-nums;font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;font-size:15px;color:var(--navy)}
.bar .track{width:34%;height:7px;background:var(--pale);flex-shrink:0}
.bar .fill{height:100%;background:var(--brass)}
footer{background:var(--navy);color:var(--footer-ink);padding:30px 0;font-size:13px}
footer .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
:root{--a3-glow-a:rgba(var(--brass-rgb),.075);--a3-glow-b:rgba(32,164,201,.030)}
body{background:var(--navy)}
/* On navy, use the prototype's full brass accent. */
.topbar,.hero{--accent-ink:var(--brass)}
.wrap{max-width:1320px;padding-inline:56px}
main{background:#fff;padding-top:38px}
.hero{background:transparent;padding:44px 0 40px;border-bottom:4px solid var(--brass)}
.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.hero h1{font-size:clamp(34px,4.2vw,60px);max-width:9ch;line-height:1.03}
.hero .sub{font-size:16px;max-width:31ch}
.hero .demo{font-size:12px;letter-spacing:1.4px}
.hero-game{border-top:1px solid var(--brass);border-bottom:1px solid #526c7c;padding:17px 0 14px}
.game-heading,.game-footer{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--on-navy-muted)}
.game-heading{margin-bottom:18px;text-transform:uppercase;letter-spacing:1.5px;font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700}
.matchup{display:grid;grid-template-columns:1fr 32px 1fr;gap:12px;align-items:center}
.jersey-block{aspect-ratio:1;max-width:130px;width:100%;display:grid;place-items:center;border:2px solid var(--brass);font:800 54px "Archivo","Arial Narrow",Impact,sans-serif;font-stretch:110%;color:var(--accent-ink);margin-bottom:12px}
.jersey-block.white{background:#fff;color:var(--navy);border-color:#fff}
.match-team b{font-size:15px;color:#fff}.match-team small{display:block;font-size:12px;color:var(--on-navy-muted);margin-top:3px}
.versus{color:var(--accent-ink);font:700 14px "Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;align-self:center}
.game-footer{margin-top:20px;align-items:center}.game-footer button{color:#fff;border-bottom:1px solid var(--brass);padding:6px 0;font-size:13px}
/* The club's own mark, white on the navy bar. Height-driven with width:auto, so
   the 240x121 sprite keeps its ratio at every breakpoint. */
.brand-logo{display:block;height:36px;width:auto;flex-shrink:0}
.topbar .wrap{height:76px}.brand span{font-size:16px;letter-spacing:2px}.nav button{font-size:14px;padding:12px 17px}.nav button[aria-current="true"]{border-bottom-color:var(--brass)}
h2{font-size:30px}h3{font-size:22px}.eyebrow,.cell .k{font-size:12px}.sec-h .eyebrow,.cell .k,.stat .sk,.bar .r{color:var(--accent-ink)}
.grid{gap:16px;background:transparent}.grid>*{min-width:0}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.cell{border:1px solid var(--rule);padding:24px}.league-card{position:relative;border-top:3px solid var(--navy);min-height:268px;display:flex!important;flex-direction:column;text-align:left}.league-card:hover{border-color:var(--brass);background:#f5f8fa}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;width:100%}.league-token{width:44px;height:44px;background:var(--navy);color:#fff;display:grid;place-items:center;font:800 25px "Archivo","Arial Narrow",Impact,sans-serif;font-stretch:105%}.league-token.wide{font-size:19px;letter-spacing:-.5px}.league-card:nth-child(even) .league-token{background:#fff;color:var(--navy);border:2px solid var(--navy)}.league-card .m{font-size:14px;line-height:1.6}.card-foot{margin-top:auto;padding-top:22px;display:flex;justify-content:space-between;gap:15px;width:100%;font:700 12px "Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;letter-spacing:1px;text-transform:uppercase;color:var(--slate)}.card-foot span:last-child{color:var(--navy)}
.team-token{display:inline-block;width:12px;height:12px;background:var(--navy);margin-right:9px;vertical-align:middle}.team-token:after{content:"";display:block;width:5px;height:5px;background:white;transform:translate(6px,6px)}
.jer{width:20px;height:20px;border-width:2px}.jw{border-color:var(--navy)}
.tabs button{font-size:14px;min-height:48px}.tabs button[aria-selected="true"]{color:var(--navy);border-bottom-color:var(--brass)}
.rsvp button{min-height:44px;font-size:13px}.btn{min-height:44px}.back{padding:8px 0;font-size:13px}.chip{font-size:12px}.chip.nav{margin:0}.scroller{max-width:100%;background:#fff}.scroller:focus-visible{outline-offset:3px}.fill{display:block}.legend{line-height:1.8;max-width:88ch}.stepper{list-style:none;padding:0}.step{min-width:0}.step .sn{font-size:12px}.step .sl{font-size:14px}.intake-note{margin-bottom:24px}.sheet{background:#eef2f5;min-height:265px}.sheet h3{font-size:22px}.sheet p{max-width:40ch}.st{min-height:40px;width:65px!important}.error{color:var(--out);margin-top:12px}.field-label{display:block;font-size:14px;font-weight:600;margin-bottom:8px}.empty{padding:28px;border:1px solid var(--rule)}.sample-note{font-size:12px;color:var(--ink2);margin-top:8px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.skip{position:fixed;top:8px;left:12px;z-index:100;background:white;color:var(--navy);padding:12px;transform:translateY(-150%)}.skip:focus{transform:none}:focus-visible{outline:3px solid var(--brass);outline-offset:3px}button:focus-visible{position:relative;z-index:3}footer{color:var(--on-navy-muted)}
@media(max-width:1000px){.wrap{padding-inline:30px}.hero-grid{gap:32px}.hero h1{font-size:44px}.g3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.wrap{padding-inline:20px}.topbar .wrap{height:auto;padding-top:16px;gap:14px}.brand span{font-size:14px}.nav{gap:0}.nav button{font-size:13px;padding:12px 5px;letter-spacing:1px}.hero{padding:28px 0}.hero-grid{grid-template-columns:1fr;gap:26px}.hero h1{font-size:40px;max-width:14ch}.hero .sub{max-width:32ch;font-size:14px}.hero .demo{margin-top:14px}.jersey-block{width:82px;font-size:38px;margin-bottom:8px}.matchup{grid-template-columns:1fr 28px 1fr;gap:8px}.match-team b{font-size:13px}.game-heading{margin-bottom:12px}.game-footer{margin-top:14px}.hero-game{padding-top:12px}.g3,.g2{grid-template-columns:minmax(0,1fr)}main{padding-top:28px}h2{font-size:26px}h3{font-size:20px}.league-card{min-height:235px}.cell{padding:20px}.game{flex-wrap:wrap;gap:10px}.gwhen{width:75px}.gact{margin-left:85px}.game .chip{font-size:11px;padding:4px 6px}.side{font-size:13px}.step{padding:12px 7px}.step .sl{font-size:12px}.step .sn{font-size:11px}.stepper{overflow:visible}.tabs button{padding:12px 14px}.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.sec-h{gap:14px}.hero-title{min-width:0}.sheet{padding:20px 14px}footer .wrap{font-size:12px}}
@media print{.hero-title{opacity:1!important;transform:none!important}.topbar{position:static}}

.nav-sample{font-size:11px;color:var(--accent-ink);border-left:1px solid #526c7c;padding-left:12px;white-space:nowrap}caption{text-align:left;padding:12px 14px;font-weight:600;color:var(--navy);background:#eef2f5}th[scope="row"]{font-weight:600;color:var(--navy)}
@media(max-width:640px){.brand{gap:8px}.nav-sample{padding-left:8px;font-size:10px}.brand-logo{height:26px}.brand span{font-size:13px;letter-spacing:1.3px}}

.a3-glow{inset:auto;top:0;left:0;width:1240px;height:1240px;margin:-620px;background:radial-gradient(circle at center,var(--a3-glow-a),var(--a3-glow-b) 42%,transparent 70%)}
/* The two tokens keep their literal jersey meaning on a light scoresheet. */
.hero-game{background:#f4f7f9;border:0;border-top:3px solid var(--brass);padding:22px 26px;color:var(--navy)}
.hero-game .game-heading,.hero-game .game-footer,.hero-game .match-team small{color:var(--slate)}
.hero-game .match-team b,.hero-game .game-footer button{color:var(--navy)}
.hero-game .jersey-block{background:var(--navy);color:#fff;border:2px solid var(--navy)}
.hero-game .jersey-block.white{background:#fff;color:var(--navy);border:2px solid var(--navy)}
.hero-game .versus{color:var(--slate)}
@media(max-width:640px){.hero-game{padding:16px}.game-footer{font-size:11px}.game-footer button{font-size:12px}}


/* Direction A: soft controls, hard data. Pills on the things you press;
   tables, cells and the box score keep their square corners. */
.btn{border-radius:4px}
.chip{border-radius:999px}
.rsvp{border-radius:999px;overflow:hidden}
.rsvp button:first-child{border-radius:999px 0 0 999px}
.rsvp button:last-child{border-radius:0 999px 999px 0}


/* 8-bit intro overlay. The canvas is a 160x90 buffer scaled up, so it must be
   left un-smoothed or the whole point is lost. The ground matches --navy, so
   the letterboxing around a non-16:9 viewport is invisible. */
html.intro-on{overflow:hidden}
#intro{position:fixed;inset:0;z-index:999;background:var(--navy);display:grid;place-items:center;transition:opacity .32s ease-out}
/* Capped: uncapped, a 160x80 buffer on a 2560px monitor gives 16px pixels,
   which stops reading as 8-bit and starts reading as broken. */
#intro canvas{width:100%;height:100%;max-width:1120px;max-height:560px;object-fit:contain;image-rendering:pixelated}
/* Reduced motion: loader.js never builds this, but belt and braces. */
@media (prefers-reduced-motion:reduce){#intro{display:none!important}html.intro-on{overflow:auto}}

/* ---------------------------------------------------------------- Stats tab
   Charts stay within the club palette: dark brass above the team average,
   secondary navy below it, and brass for a single series. */
:root{--up:var(--brass-d);--down:var(--navy2)}
/* Four season cards on one row. .g3 resolves to 3 columns at this width, which
   wraps the fourth and leaves two empty white cells reading as a dead gap. */
.sgrid{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:1100px){.sgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.sgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.sgrid{grid-template-columns:1fr}}
.th-sort{background:none;border:0;padding:0;margin:0;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:5px}
th.num .th-sort{width:100%;justify-content:flex-end}
th[aria-sort] .th-sort{border-bottom:2px solid var(--brass)}
.sort-ind::after{display:inline-block;font-size:9px;line-height:1}
th[aria-sort="descending"] .sort-ind::after{content:"▼"}
th[aria-sort="ascending"] .sort-ind::after{content:"▲"}
.sort-select{display:none}
.sort-reset{font-size:13px;color:var(--navy);text-decoration:underline;text-underline-offset:3px;min-height:44px;padding:0}
td.uq{color:var(--ink2)} td .sub{display:block;font-size:11px;color:var(--ink2);font-variant-numeric:tabular-nums}
.ldr .bar .bn small{display:block;color:var(--ink3);font-size:12px}
.card-more{display:inline-block;margin-top:12px;font-size:13px;font-weight:600;color:var(--navy);text-decoration:underline;text-underline-offset:3px;min-height:44px}

.scopebar{border:1px solid var(--rule);border-top:3px solid var(--navy);background:#FAFBFC;padding:14px 16px}
.sbrow{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;padding:5px 0}
.sblabel{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;
  letter-spacing:1.6px;font-size:10.5px;color:var(--accent-ink);width:56px;flex-shrink:0}
.sbchip{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;
  letter-spacing:1.2px;font-size:11px;padding:6px 12px;border-radius:999px;border:1px solid var(--rule2);
  background:#fff;color:var(--ink2);cursor:pointer}
.sbchip:hover{border-color:var(--brass);color:var(--navy)}
.sbchip.on{background:var(--navy);color:#fff;border-color:var(--navy)}

.rail{display:flex;gap:6px;flex-wrap:wrap}
.rail button{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;
  letter-spacing:1.4px;font-size:11px;padding:6px 13px;border-radius:999px;border:1px solid var(--rule2);
  background:#fff;color:var(--ink2);cursor:pointer}
.rail button[aria-pressed="true"]{background:var(--brass);color:var(--navy);border-color:var(--brass)}

.chart{border:1px solid var(--rule);border-top:0;background:#fff;padding:22px 20px 16px}
.gbars{display:flex;gap:2px;align-items:flex-end}
.gcol{flex:1;text-align:center;min-width:0}
.gslot{height:140px;display:flex;align-items:flex-end}
/* 4px rounded data-end, anchored to the baseline; 2px surface gap between bars */
.gbar{width:100%;background:var(--brass);border-radius:4px 4px 0 0}
.ggap{width:100%;height:100%;border-radius:4px 4px 0 0;border:1px dashed var(--rule2);
  background:repeating-linear-gradient(45deg,#EEF1F4,#EEF1F4 5px,#F8FAFB 5px,#F8FAFB 10px)}
.gval{font-family:"Archivo",Arial,sans-serif;font-stretch:112%;font-weight:800;font-size:13px;
  font-variant-numeric:tabular-nums;color:var(--navy);margin-top:8px}
.gwk{font-size:11px;color:var(--ink3)}

.hbars{display:flex;flex-direction:column;gap:7px}
.hrow{display:grid;grid-template-columns:minmax(96px,150px) 1fr 50px;align-items:center;gap:12px}
.hname{font-size:13.5px;font-weight:600;color:var(--navy);text-align:left;padding:0;cursor:pointer}
.hname:hover{color:var(--accent-ink);text-decoration:underline}
.htrack{background:#F1F3F5;height:16px;border-radius:4px;overflow:hidden}
.hfill{display:block;height:100%;border-radius:4px}
.hfill.up{background:var(--up)}.hfill.down{background:var(--down)}
.hval{font-family:"Archivo",Arial,sans-serif;font-stretch:112%;font-weight:800;font-size:13px;
  font-variant-numeric:tabular-nums;text-align:right;color:var(--navy)}
.legend-row{font-size:12px;color:var(--ink2);margin:16px 0 0;display:flex;align-items:center;flex-wrap:wrap;gap:4px}
.key{width:11px;height:11px;border-radius:3px;display:inline-block;margin:0 6px 0 10px}
.key.up{background:var(--up);margin-left:0}.key.down{background:var(--down)}

 /* .jer is a flex child elsewhere; in a table cell it needs an explicit box or
   the dark/white jersey square collapses to a sliver. */
td .jer{display:inline-block;vertical-align:middle}
tr.norow td{color:var(--ink3);font-style:italic}

/* Director tab: how a result gets in. */
.flow{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:14px}
.flow li{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start}
.flow .sn{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;color:var(--accent-ink);letter-spacing:1px;padding-top:2px}
.flow b{color:var(--navy)}
.flow .m{margin-top:2px}
.notentered{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;font-size:9.5px;
  letter-spacing:1.1px;text-transform:uppercase;color:#7A3B06;background:#FFF1E2;padding:3px 8px;
  border-radius:999px;font-style:normal;white-space:nowrap}
@media(max-width:720px){.hrow{grid-template-columns:minmax(80px,110px) 1fr 44px}.gslot{height:100px}.sblabel{width:100%}}

/* ------------------------------------------------------------------ Topbar
   Six nav items. Below ~1100px the brand and the nav share a 76px bar and the
   last item wrapped underneath it; give the nav its own full-width row. */
.nav button{padding:12px 14px}
@media(max-width:1100px){.topbar .wrap{height:auto;padding-top:14px;padding-bottom:0;flex-wrap:wrap;gap:10px}.nav{margin-left:0;width:100%;gap:0;justify-content:flex-start}.nav button{flex:1;text-align:center;padding:12px 6px;font-size:12.5px;letter-spacing:1.4px}}

/* -------------------------------------------------------- Hero: today's court
   Every game on the current Seattle date across every league. */
.night-date{font:800 22px "Archivo",Arial,sans-serif;font-stretch:112%;color:var(--navy);margin:0 0 10px}
.night-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.night-list li{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--rule)}
.night-league{flex:0 0 106px;font:700 10px "Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;letter-spacing:1px;text-transform:uppercase;color:var(--accent-ink)}
.night-teams{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0;font-size:14.5px;color:var(--navy)}
.night-teams b{font-weight:600}
.night-teams em{font:700 11px "Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;letter-spacing:1.5px;color:var(--slate);font-style:normal;margin:0 2px}
.night-list time{font:700 14px "Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;letter-spacing:1px;color:var(--navy);white-space:nowrap;font-variant-numeric:tabular-nums}
.night-empty{color:var(--slate);font-size:14.5px;margin:6px 0 4px}
.hero-game .night-list .jer{width:14px;height:14px;border-width:2px}
/* The third column used to be max-content, but each <li> is its own grid
   container, so max-content is computed per row: a <time> row (min-width
   9ch) and a .night-score row (wider — two digits, an em dash, two more
   digits, plus the "FINAL" tag with its border and padding) got different
   column widths, and their right edges did not line up on a mixed day. A
   fixed width shared by every row fixes that. 8rem fits the widest
   realistic content ("99–99" + the FINAL tag, measured in the browser
   harness at 1280px) with a little room to spare; the narrower <time> rows
   right-align inside it via the min-width-9ch,
   justify-self:end rule below, so every row's right edge lands on the same
   column edge regardless of its own content. */
.night-list li{display:grid;grid-template-columns:106px minmax(0,30rem) 8rem;justify-content:start;align-items:center;column-gap:24px}
.night-list time,.night-score{justify-self:end;text-align:right;min-width:9ch}
.night-score{font-variant-numeric:tabular-nums;white-space:nowrap}
.night-num{font:700 14px "Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;color:var(--slate)}
.night-num.won{font-weight:800;color:var(--navy)}
.night-dash{color:var(--slate);margin:0 1px}
.night-final{font:700 10px "Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;letter-spacing:1.5px;text-transform:uppercase;color:var(--slate);border:1px solid var(--rule);padding:2px 5px;margin-left:8px;font-style:normal}
@media(max-width:640px){.night-teams{font-size:13px;gap:6px}.night-date{font-size:18px}}

/* Club identity lives after page content; the Leagues header is schedule-only. */
.hero .hero-grid{grid-template-columns:1fr;padding-top:24px;padding-bottom:24px}.hero .hero-game{width:100%;justify-self:stretch}
footer .wrap.club-footer{display:block}.club-footer-content{max-width:900px;margin-inline:auto;text-align:center}.club-footer-content .club-winged-logo{margin:0 auto 8px}.club-footer-content .eyebrow{color:var(--brass)}.club-footer-content .club-mission-text,.club-footer-content .club-principles dd,.club-footer-content .club-principles ul{font:400 18px/1.6 'Open Sans',sans-serif;color:#fff}.club-footer-content .club-mission-text{margin:0}.club-footer-content .club-principles{max-width:none;margin-top:18px;padding-top:0;border:0}.club-footer-content .club-principles ul{justify-content:center}.footer-meta{margin-top:28px;padding-top:18px;border-top:1px solid rgba(var(--brass-rgb),.4)}

/* Today's schedule uses a blue scoreboard header above the white game list. */
.hero-game .game-heading{background:var(--navy);color:#fff;margin:-22px -26px 18px;padding:15px 26px}.hero-game .game-heading span{color:inherit}
@media(max-width:640px){.club-footer-content .club-mission-text,.club-footer-content .club-principles dd,.club-footer-content .club-principles ul{font-size:16px}.hero-game .game-heading{margin:-16px -16px 14px;padding:13px 16px}.night-list li{display:grid;grid-template-columns:1fr auto;gap:4px 10px}.night-league{grid-column:1/-1;flex-basis:auto}.night-teams{min-width:0}}

/* --------------------------------------------------- Pickup court in its tab
   main.js moves the #pickup section into the 1v1 tab. The section keeps its
   own heading for the bottom-of-page placement; in the tab the hero has it. */
.pickup.in-tab{padding:0 0 12px;border-top:0}
.pickup.in-tab>.wrap{padding:0;max-width:none}
.pickup.in-tab>.wrap>.eyebrow,.pickup.in-tab>.wrap>h2,.pickup.in-tab>.wrap>.pickup-sub{display:none}
.game-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 18px}
.game-choice{min-height:132px;padding:18px;text-align:left;border:1px solid var(--rule);background:#fff;color:var(--navy);display:grid;grid-template-columns:1fr auto;align-content:start;gap:6px 12px;cursor:pointer}
.game-choice[aria-pressed="true"]{border:2px solid var(--brass);padding:17px;background:#fbf6ef;box-shadow:inset 0 0 0 2px #fff}
.game-choice-status{grid-column:2;grid-row:1;color:var(--accent-ink);font:800 10px Archivo,sans-serif;letter-spacing:1.2px}
.game-choice strong{grid-column:1;grid-row:1;font:800 24px Archivo,sans-serif;letter-spacing:.5px;text-transform:uppercase}
.game-choice small,.game-choice em{grid-column:1/-1;font:500 13px/1.5 Inter,sans-serif;color:var(--ink2)}
.game-choice em{color:var(--navy);font-weight:800;font-style:normal;text-transform:uppercase;letter-spacing:.7px}
/* Phones keep both cards side by side and short, so the court starts higher. */
@media(max-width:640px){.game-picker{gap:8px;margin-bottom:12px}.game-choice{min-height:0;padding:12px;gap:4px 8px;grid-template-columns:1fr}.game-choice[aria-pressed="true"]{padding:11px}.game-choice-status{grid-column:1;grid-row:1;font-size:9px;letter-spacing:.8px}.game-choice strong{grid-row:2;font-size:17px}.game-choice small{font-size:12px;line-height:1.4}.game-choice em{font-size:11px}}
@media(max-width:360px){.game-choice strong{font-size:14px;letter-spacing:0}.game-choice{padding:10px}.game-choice[aria-pressed="true"]{padding:9px}}

/* ------------------------------------------------- Stats: shot mix, 100% bars
   Threes in dark brass, twos in navy — the site's existing two-colour pair
   (CVD ΔE 19, contrast ≥3:1 on white). Both values sit beside the track, so
   colour never carries the number; a 2px surface gap parts the segments. */
.mix{display:flex;flex-direction:column;gap:7px}
.mixrow{display:grid;grid-template-columns:minmax(96px,150px) 44px 1fr 44px;align-items:center;gap:10px}
.mixrow.me .hname{color:var(--accent-ink)}
.mixrow.me .hname:before{content:"";display:inline-block;width:8px;height:8px;background:var(--brass);margin-right:7px;vertical-align:middle}
.mixval{font-family:"Archivo",Arial,sans-serif;font-stretch:112%;font-weight:800;font-size:13px;font-variant-numeric:tabular-nums;color:var(--navy)}
.mixval.l{text-align:right}
.mixval small{display:block;font:500 10px "Inter",sans-serif;font-stretch:100%;color:var(--ink2);text-transform:uppercase;letter-spacing:.5px}
.mixtrack{display:flex;height:16px;gap:2px;border-radius:4px;overflow:hidden;background:#F1F3F5}
.seg{display:block;height:100%}
.seg3{background:var(--up)}.seg2{background:var(--down)}
.mixna{font-size:11px;color:var(--ink3);padding:0 6px;line-height:16px}
.mixname{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;font-size:10.5px;color:var(--accent-ink)}
tr.me td{background:#FBF6EF}
.hrow.arc{grid-template-columns:minmax(96px,150px) 1fr 96px}
.hval small{display:block;font:500 11px "Inter",sans-serif;font-stretch:100%;color:var(--ink2);letter-spacing:0}
.pscout{margin-top:14px;border:1px solid var(--rule);padding:14px 16px;background:#FAFBFC}
.pscout .mixrow{grid-template-columns:82px 48px 1fr 48px}
.pscout .m{margin-top:10px}
@media(max-width:720px){.mixrow{grid-template-columns:minmax(80px,110px) 40px 1fr 40px;gap:6px}.hrow.arc{grid-template-columns:minmax(80px,110px) 1fr 84px}.pscout .mixrow{grid-template-columns:70px 44px 1fr 44px}}
/* A side (square + name) never splits across lines; a game wraps between sides. */
.night-side{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.game-footer button{white-space:nowrap;flex-shrink:0}
/* Six nav items on one row at phone width. */
@media(max-width:640px){.nav{flex-wrap:nowrap}.nav button{font-size:11.5px;letter-spacing:.8px;padding:12px 3px}}

/* Phone scouting: compact chrome, thumb-size controls, names stay with data. */
#app{scroll-margin-top:100px}
.archive-note{font-size:12px;color:var(--on-navy-muted);max-width:42ch;margin-top:10px}
.archive-note span{display:block}
.data-context{font-size:14px;line-height:1.6;color:var(--ink2);margin:-6px 0 20px;max-width:85ch}
.table-hint{display:none}

@media(max-width:640px){
  .th-sort{min-height:44px;min-width:44px}.sort-select{display:grid;gap:6px;margin:0 0 10px;font-size:12px;font-weight:700;color:var(--slate)}.sort-select select{min-height:44px;font-size:16px;width:100%}
  .wrap{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
  .topbar .wrap{padding-top:max(10px,env(safe-area-inset-top));gap:6px}
  .brand span{font-size:12px;letter-spacing:1px}.nav-sample{font-size:11px}
  .nav button{font-size:12px;letter-spacing:.2px;padding:10px 1px;min-height:44px;min-width:44px}
  .hero{padding:20px 0}.hero-grid{gap:16px}.hero h1{font-size:30px;max-width:none;line-height:1.08;margin-top:6px}
  .hero .sub{font-size:14px;max-width:none;margin-top:8px}.hero .demo{margin-top:12px;font-size:11px;padding:5px 8px}
  .archive-note{margin-top:8px;line-height:1.5}.hero-game{padding:12px 14px}
  .game-heading{font-size:11px;letter-spacing:.7px;gap:8px}.game-heading span:last-child{flex-shrink:0}
  .hero-game .game-heading{margin:-12px -14px 14px;padding:13px 14px}
  .night-list li{gap:10px}.night-teams{gap:5px;font-size:14px}.night-side{white-space:normal}.night-side .jer{flex-shrink:0}
  .night-list time{font-size:13px;letter-spacing:0}.game-footer{align-items:flex-start;flex-direction:column;gap:6px;font-size:12px}
  .game-footer button{min-height:44px;font-size:13px}
  main{padding-top:24px}.sec{margin-bottom:30px}.sec-h{margin-bottom:16px}h2{font-size:25px;overflow-wrap:anywhere}
  .league-card{min-height:208px}.cell{padding:18px}.card-top{margin-bottom:12px}.card-foot{padding-top:14px}
  .back,.sbchip,.rail button,.hname{min-height:44px}.back{display:inline-flex;align-items:center}
  .sbrow{gap:6px}.sbchip{font-size:12px;letter-spacing:.4px;padding:8px 11px}.scopebar{padding:12px}
  .sgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.sgrid .cell{padding:14px 12px}
  .sgrid .k{font-size:11px;letter-spacing:.6px;min-height:32px}.sgrid .m{font-size:13px;line-height:1.5}
  .sgrid .sv{font-size:26px;font-weight:800;color:var(--navy);font-variant-numeric:tabular-nums}
  .chart{padding:12px}.mix{gap:10px}.mixrow{grid-template-columns:44px minmax(0,1fr) 44px;gap:6px}
  .mixrow>.hname{grid-column:1/-1;text-align:left}.mixval{font-size:14px}.mixtrack{height:20px}
  .hrow.arc{grid-template-columns:minmax(0,1fr) 88px;gap:6px}.hrow.arc .hname{grid-column:1/-1}
  .hname{font-size:14px}.hval small{font-size:12px}.legend-row{font-size:13px}
  .pscout .mixrow{grid-template-columns:44px minmax(0,1fr) 44px}.pscout .mixname{grid-column:1/-1;font-size:12px}
  .table-hint{display:block;font-size:12px;color:var(--slate);margin:10px 0 6px}
  .scroller{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
  .scroller th:first-child,.scroller td:first-child{position:sticky;left:0;z-index:1;background:#f4f7f9;max-width:130px;white-space:normal}
  .scroller thead th:first-child{background:var(--navy)}
  .scroller td button{min-height:44px;text-align:left}.scroller th,.scroller td{padding:10px}
  td input.st{font-size:16px;min-height:44px;width:56px!important;padding:8px 4px}
  input,select,textarea{font-size:16px}.step .sn{font-size:10px;letter-spacing:.3px}.step .sl{font-size:12px}
  .step{padding:10px 6px}.sheet{min-height:220px}.gwhen{font-size:12px}.stat .sk{font-size:11px;letter-spacing:.5px}
  footer{padding-bottom:calc(24px + env(safe-area-inset-bottom))}
}

@media(max-width:640px){
  .scroller table{min-width:720px}.scroller .num{white-space:nowrap}
  .scroller.ranked th:first-child,.scroller.ranked td:first-child{min-width:36px;width:36px}
  .scroller.ranked th:nth-child(2),.scroller.ranked td:nth-child(2){position:sticky;left:36px;z-index:1;background:#f4f7f9}
  .scroller.ranked thead th:nth-child(2){background:var(--navy)}
}

/* Player scouting: ranked bars, scoring shares and per-league benchmarks. */
.player-chart{border:1px solid var(--rule);border-top:3px solid var(--navy);padding:22px;margin:0 0 24px;min-width:0;background:var(--white)}
.player-chart h3{margin:6px 0 18px}.player-chart .sec-h{margin-bottom:18px}.player-chart .legend{margin:16px 0 0}
.player-chart-controls{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:18px}.player-chart-controls label{display:grid;gap:6px;flex:1;min-width:140px;font-size:12px;font-weight:700;color:var(--slate)}.player-chart-controls select{width:100%;min-height:44px;font-size:16px}
.player-rank{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:8px 26px}
.player-rank li{min-width:0}.player-rank button{width:100%;display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:5px 10px;align-items:center;text-align:left;padding:12px 0;background:none;color:var(--navy);border:0;min-height:64px}.rank-number{font-size:12px;color:var(--slate)}.rank-label b,.rank-label small{display:block;overflow-wrap:anywhere}.rank-label small{font-size:11px;color:var(--slate);margin-top:3px}.rank-track{grid-column:2/-1;height:6px;background:#e3eaf0}.rank-track i{display:block;height:100%;background:var(--navy)}
.player-chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:24px}.player-chart-grid .player-chart{margin-bottom:0}
.player-points-track{display:flex;height:32px;gap:2px;margin:24px 0}.player-points-track span{min-width:0}.player-points-key{padding:0;list-style:none;margin:0}.player-points-key li{display:grid;grid-template-columns:1fr auto auto;gap:14px;padding:12px 0;border-bottom:1px solid var(--rule);align-items:center}.player-points-key small{color:var(--slate)}.player-points-key i{display:inline-block;width:10px;height:10px;margin-right:8px}.player-points-track .two,.player-points-key .two{background:var(--navy)}.player-points-track .three,.player-points-key .three{background:var(--brass)}.player-points-track .free,.player-points-key .free{background:#547783}
.player-benchmarks{display:grid;gap:22px;margin-top:22px}.player-benchmark>div:first-child{display:flex;justify-content:space-between;gap:8px;font-size:13px}.player-benchmark small{color:var(--slate)}.player-benchmark-track{position:relative;height:10px;background:#e3eaf0;margin-top:9px}.player-benchmark-track i{display:block;height:100%;background:var(--navy)}.player-benchmark-track>span{position:absolute;top:-4px;width:3px;height:18px;background:var(--brass);transform:translateX(-50%)}
@media(max-width:700px){.player-rank,.player-chart-grid{grid-template-columns:1fr}.player-chart{padding:18px 14px}.player-points-key li{gap:8px}.player-rank{gap:0}}
@media(max-width:480px){.player-chart-controls{display:grid;grid-template-columns:1fr;gap:12px}}

/* Calendar: one game when a member says they're in; a team or league schedule by subscription. */
/* One-tap subscribe (views/calendar.js subscribeBar): the buttons are always in view. */
.calendar-subscribe{border-top:3px solid var(--brass);background:var(--pale);padding:14px 16px 4px;margin-bottom:24px}
.calendar-subscribe-h{font-weight:700;color:var(--navy)}
.calendar-subscribe .calendar-actions{margin:10px 0 6px}
.calendar-subscribe .btn,.mh-sub .btn{display:inline-flex;align-items:center;line-height:1.2}
.calendar-subscribe .legend{margin:0 0 6px}
.calendar-link summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-size:14px;color:var(--navy);text-decoration:underline}
.calendar-link p{font-size:14px;margin:6px 0}
.calendar-link a{color:var(--navy);text-decoration:underline}
.calendar-link label{display:grid;gap:6px;margin:10px 0;font-size:13px}
.calendar-link input,.calendar-copy{min-width:0;width:100%;font-size:16px}
.calendar-copy{flex-basis:100%}
.calendar-actions{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}
.calendar-prompt{position:relative;margin:0 16px 14px;padding:14px 16px;border:1px solid var(--rule);border-left:4px solid var(--brass);background:#FBF8F3}
.calendar-prompt-h{padding-right:84px;color:var(--navy)}
.calendar-prompt .m{margin-top:4px}
.linkish{padding:0;color:var(--navy);font-weight:600;text-decoration:underline}
.calendar-dismiss{position:absolute;top:12px;right:14px;font-size:13px;color:var(--slate);text-decoration:underline}
@media(max-width:640px){.calendar-prompt{margin:0 0 14px}.calendar-prompt-h{padding-right:0}.calendar-dismiss{position:static;margin-top:8px;min-height:44px}}

/* Club plaque copy: Leagues hero only, inherited with the hero's visibility. */
.club-principles{border-top:1px solid rgba(var(--brass-rgb),.5);margin-top:28px;padding-top:22px;max-width:560px}
.club-principles dl{display:grid;gap:18px;margin:0}.club-principles dt{color:var(--brass);font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;margin-bottom:6px}.club-principles dd{margin:0;color:#fff;font-size:17px;line-height:1.5}.club-principles ul{display:flex;flex-wrap:wrap;gap:4px 0;list-style:none;padding:0;margin:0;font-size:14px}.club-principles li:not(:last-child)::after{content:' · ';color:var(--brass);margin:0 8px}
@media(max-width:640px){.club-principles{margin-top:20px;padding-top:18px}.club-principles dl{gap:14px}.club-principles dd{font-size:16px}.club-principles ul{font-size:13px}}

/* Equal hierarchy for the club's mission, vision and values. */
.club-winged-logo{display:block;width:100px;height:100px;object-fit:contain;filter:brightness(0) invert(1);margin:0 0 14px}
.club-mission-label{color:var(--brass);font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;margin:20px 0 6px}
/* "I can sub" on upcoming schedule rows: a quiet second line under the answer. */
.gact>.rsvp{width:fit-content;margin-left:auto}
.gsub{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px;margin-top:8px}
.gsub .btn[aria-disabled="true"]{opacity:.6;cursor:progress}
.sub-note{flex-basis:100%;text-align:right;line-height:1.4;font-size:12px;color:var(--ink2)}
.sub-link{display:block;margin-top:8px;text-align:right;font-size:12px;text-decoration:underline}
@media(max-width:640px){.gact:has(.gsub){flex-shrink:1;min-width:0}.gact>.rsvp{margin-left:0}.gsub{justify-content:flex-start}.sub-note,.sub-link{text-align:left}.sub-link{min-height:24px}}

/* Member home (js/views/home.js): a signed-in member's own panel, first inside
   the home hero on navy. White cards, the jersey squares, 44px targets. Guests
   never see it: #memberHome stays hidden and empty. No motion of its own. */
.member-home{padding-bottom:34px;margin-bottom:34px;border-bottom:1px solid rgba(var(--brass-rgb),.45)}
.member-home[hidden]{display:none}
.member-home h2{color:#fff;margin:6px 0 0;font-size:clamp(24px,2.6vw,34px)}
.mh-teams{color:var(--on-navy-muted);font-size:14px;margin-top:8px;max-width:80ch}
.mh-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:20px}
.mh-card{background:#fff;color:var(--ink);border-top:3px solid var(--brass);padding:22px 24px;min-width:0}
.mh-card h3{font-size:16px;letter-spacing:.02em;margin-bottom:12px}
.mh-when{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;font-size:26px;line-height:1.15;color:var(--navy)}
.mh-meta,.mh-jerseys{font-size:13px;color:var(--slate);margin-top:4px}
.mh-match{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:14px}
.mh-match em{font-style:normal;font-size:13px;color:var(--slate)}
.mh-side{display:flex;align-items:center;gap:9px;min-width:0}
.mh-side b{display:block;color:var(--navy);font-size:17px;line-height:1.2;overflow-wrap:anywhere}
.mh-side small{display:block;font-size:12px;color:var(--ink2)}
.mh-side.you small{color:var(--brass-d);font-weight:700}
.mh-card .mh-side .jer{width:22px;height:22px}
.mh-empty{font-size:16px;color:var(--navy);font-weight:600}
.mh-note{font-size:14px;color:var(--ink2);margin-top:10px}
.mh-result{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:12px}
.mh-result b{color:var(--navy);font-size:17px}
.mh-line{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;margin:16px 0 0;background:var(--rule);border:1px solid var(--rule)}
.mh-line div{background:#fff;padding:8px 6px;text-align:center}
.mh-line dt{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;font-size:12px;letter-spacing:1.2px;color:var(--slate)}
.mh-line abbr{text-decoration:none}
.mh-line dd{margin:0;font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-weight:800;font-size:24px;line-height:1.2;color:var(--navy);font-variant-numeric:tabular-nums}
.mh-cal{margin-top:14px;border-top:1px solid var(--rule)}
.mh-cal summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--navy);font-weight:600;text-decoration:underline}
.mh-cal .calendar-actions{margin:4px 0 0}
.mh-links{display:flex;flex-wrap:wrap;gap:0 24px;margin-top:12px}
.mh-link{min-height:44px;padding:0;display:inline-flex;align-items:center;color:#fff;text-decoration:underline;font-size:14px}
.mh-link:hover{color:var(--brass)}
.mh-claim{max-width:720px;margin-top:18px}
.mh-claim .mh-status{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:1.6px;font-size:12px;color:var(--brass-d);margin-bottom:6px}
.mh-claim .btn{margin-top:16px}
@media(max-width:720px){.mh-grid{grid-template-columns:minmax(0,1fr);gap:14px}.mh-card{padding:18px}.mh-when{font-size:22px}.member-home{padding-bottom:26px;margin-bottom:26px}.mh-line dd{font-size:20px}}
@media(prefers-reduced-motion:reduce){.member-home,.member-home *{transition:none!important;animation:none!important}}
/* ---- Open runs calendar (views/runs.js). One block; no transitions or
   animation anywhere in it, so reduced motion has nothing to switch off. ---- */
.runs .run-series{margin-bottom:24px}
/* The weekly schedule's lines are buttons to that series' next run. */
.run-series-list{list-style:none;margin:6px 0 0;padding:0}
.run-series-pick{display:flex;flex-wrap:wrap;align-items:baseline;align-content:center;justify-content:space-between;gap:2px 12px;width:100%;min-height:44px;margin:0 -8px;padding:6px 8px;box-sizing:content-box;text-align:left;color:var(--ink);border-radius:4px}
.run-series-pick:hover{background:var(--pale)}
.run-series-pick:hover .run-series-next{color:var(--navy);text-decoration:underline}
.run-series-next{font:700 11px "Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;text-transform:uppercase;letter-spacing:1.6px;color:var(--accent-ink);white-space:nowrap}
.runcal{border:1px solid var(--rule);background:var(--white);padding:18px}
.runcal-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.runcal-head h3{flex:1;text-align:center;font-size:22px}
.runcal-head .runcal-today{order:-1}
.runcal-grid{min-width:0;table-layout:fixed;border-collapse:separate;border-spacing:4px;margin:0 -4px;width:calc(100% + 8px)}
.runcal-grid th{font:700 11px "Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;letter-spacing:1.6px;text-transform:uppercase;color:var(--slate);padding:4px 0;text-align:center;border:0;background:none}
.runcal-grid td{padding:0;border:0;vertical-align:top}
.runday{display:flex;flex-direction:column;align-items:flex-start;gap:3px;width:100%;min-height:78px;padding:6px 8px;border:1px solid var(--rule);background:var(--white);text-align:left;color:var(--ink)}
.runday:hover{background:var(--pale)}
.runday-n{font:700 15px "Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;line-height:1}
.runday.has-run{border-color:var(--navy);border-left:4px solid var(--brass)}
.runday-run{display:flex;flex-direction:column;line-height:1.25}
.runday-name{font-size:12px;font-weight:700;color:var(--navy)}
.runday-count{font-size:12px;color:var(--ink2)}
.runday-mine{margin-top:auto;font:700 10px "Archivo","Arial Narrow",Impact,sans-serif;letter-spacing:1.2px;text-transform:uppercase;padding:2px 7px;border-radius:999px;background:var(--in-bg);color:var(--in)}
.runday-mine.maybe{background:var(--may-bg);color:var(--may)}
.runday-mine.out{background:var(--out-bg);color:var(--out)}
.runday.past{background:#F4F6F8;color:var(--ink3)}
.runday.past .runday-name,.runday.past .runday-count{color:var(--ink3)}
.runday.past.has-run{border-color:var(--rule2)}
.runday.cancelled .runday-name{color:var(--out);text-decoration:line-through}
.runday.today .runday-n{background:var(--navy);color:#fff;border-radius:999px;padding:4px 7px;margin:-3px 0 0 -5px}
.runcal-grid td[aria-selected="true"] .runday{outline:3px solid var(--navy);outline-offset:-3px;background:#FBF8F3}
.runcal-grid td[aria-selected="true"] .runday:focus-visible,.runday:focus-visible{outline:3px solid var(--brass);outline-offset:2px}
.runcal-agenda{display:none;list-style:none;margin:14px 0 0;padding:0}
.runcal-agenda-empty{display:none;margin-top:12px;color:var(--ink2)}
.run-agenda-item{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;width:100%;min-height:48px;padding:10px 12px;border:1px solid var(--rule);border-left:4px solid var(--brass);margin-top:6px;text-align:left;background:var(--white)}
.run-agenda-item b{color:var(--navy)}
.run-agenda-item .run-agenda-count{margin-left:auto;color:var(--ink2);font-size:14px}
.run-agenda-item[aria-pressed="true"]{background:#FBF8F3;border-color:var(--navy);border-left-color:var(--brass)}
.run-agenda-item.past{color:var(--ink3);border-left-color:var(--rule2)}
.run-agenda-item.past b{color:var(--ink2)}
.run-agenda-item.cancelled b{text-decoration:line-through}
.runcal-key{display:flex;align-items:center;gap:6px;margin:12px 0 0;font-size:12px;color:var(--ink2)}
.runcal-key span{display:inline-block;width:14px;height:14px;border:1px solid var(--navy)}
.runcal-key .key-run{border-left:4px solid var(--brass)}
.runcal-key .key-today{background:var(--navy);border-radius:999px;margin-left:12px}
.run-count{font-size:15px;color:var(--navy)}
.run-count b{font:800 28px "Archivo","Arial Narrow",Impact,sans-serif;vertical-align:-3px}
.run-count.m{font-size:14px;color:var(--ink2)}
.run-answer{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;margin-top:16px;padding-top:14px;border-top:1px solid var(--rule)}
.run-as{flex-basis:100%;color:var(--navy)}
.run-as span{color:var(--ink2);font-size:14px}
.run-rsvp{display:flex;gap:1px;background:var(--rule2);border:1px solid var(--rule2);border-radius:999px;overflow:hidden}
.run-rsvp button{min-height:44px;min-width:76px;background:#fff;font:700 13px "Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;text-transform:uppercase;letter-spacing:1.5px;padding:8px 16px;color:var(--ink2)}
.run-rsvp button[aria-pressed="true"]{background:var(--navy);color:#fff}
.run-rsvp button:hover:not([aria-pressed="true"]){background:var(--pale)}
.run-rsvp button:focus-visible{outline-offset:-4px}
.run-answer [aria-disabled="true"]{opacity:.6;cursor:progress}
.run-note{flex-basis:100%;font-size:14px;color:var(--navy);font-weight:600}
.run-closed{margin-top:14px;padding-top:12px;border-top:1px solid var(--rule);color:var(--ink2)}
.run-signin{margin-top:14px;padding-top:12px;border-top:1px solid var(--rule);display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center}
.run-signin a{color:var(--navy);font-weight:700;text-decoration:underline;min-height:44px;display:inline-flex;align-items:center}
.run-signin span{color:var(--ink2);font-size:14px}
.run-calendar{margin:14px 0 0}
/* The top card (views/runs.js topCard): the next run, or the one picked. It
   sits under the sticky nav when scrolled to, hence the scroll margin. */
.run-top{border:1px solid var(--rule);border-top:5px solid var(--brass);background:var(--white);padding:22px 24px;margin-bottom:28px;scroll-margin-top:140px}
.run-top.cancelled{border-top-color:var(--out)}
.run-top-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px 32px;flex-wrap:wrap}
.run-top-what{min-width:0}
.run-top h3{font-size:30px;margin:6px 0 8px}
.run-top h3:focus{outline:none}
.run-top h3:focus-visible{outline:3px solid var(--brass);outline-offset:3px}
.run-top-name{color:var(--navy)}
.run-top-when{margin-top:2px;font:700 12px "Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;text-transform:uppercase;letter-spacing:1.8px;color:var(--accent-ink)}
.run-top-count{min-width:220px}
.run-meter{margin-top:10px}
.run-pips{display:flex;gap:4px}
.run-pip{flex:1;max-width:22px;height:10px;border-radius:2px;background:var(--pale);border:1px solid var(--rule)}
.run-pip.in{background:var(--navy);border-color:var(--navy)}
.run-pip.maybe{background:var(--may-bg);border-color:var(--may)}
.run-meter.full .run-pip.in{background:var(--in);border-color:var(--in)}
.run-meter-text{margin-top:6px;font-size:14px;color:var(--ink2)}
.run-meter.full .run-meter-text{color:var(--in);font-weight:700}
.run-top-foot{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:16px}
.run-top-also{flex-basis:100%;font-size:14px;color:var(--ink2)}
.run-top-also .linkish{min-height:44px}
.run-top-actions{display:flex;flex-wrap:wrap;gap:8px}
.run-top-foot .run-note{flex-basis:100%;overflow-wrap:anywhere}
/* Your runs and turnout history. */
.run-mine{margin-bottom:28px}
.run-mine h3,.run-history h3{font-size:20px;margin-bottom:10px}
.run-mine ul,.run-history ul{list-style:none;margin:0;padding:0}
.run-mine-item{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;width:100%;min-height:48px;padding:10px 12px;border:1px solid var(--rule);border-left:4px solid var(--in);margin-top:6px;text-align:left;background:var(--white)}
.run-mine-item b{color:var(--navy)}
.run-mine-item .run-agenda-count{margin-left:auto;color:var(--ink2);font-size:14px}
.run-mine-item[aria-pressed="true"]{background:var(--pale);border-color:var(--navy);border-left-color:var(--in)}
.run-mine-item.cancelled b{text-decoration:line-through}
.run-history{margin-top:28px}
.run-history li{display:grid;grid-template-columns:minmax(0,1fr) auto 92px;align-items:end;gap:16px;padding:10px 0;border-bottom:1px solid var(--rule)}
.run-history-name b{color:var(--navy)}
.run-history-avg{text-align:right;font-size:13px;color:var(--ink2)}
.run-history-avg b{font:800 20px "Archivo","Arial Narrow",Impact,sans-serif;color:var(--navy)}
.run-spark .slot{fill:var(--pale)}
.run-spark .bar{fill:var(--navy)}
.run-spark line{stroke:var(--brass);stroke-width:2;stroke-dasharray:3 3}
.run-history>.m{margin-top:10px;font-size:13px;color:var(--ink2)}
@media(max-width:640px){
  .runcal{padding:12px}
  .runcal-head{gap:6px}
  .runcal-head h3{font-size:18px;min-width:0}
  .runcal-btn-text{display:none}
  .runcal-grid{border-spacing:2px;margin:0 -2px;width:calc(100% + 4px)}
  .runday{min-height:44px;padding:4px;align-items:center;justify-content:center}
  .runday-run,.runday-mine{display:none}
  .runday.has-run{border-left-width:1px;box-shadow:inset 0 -4px 0 var(--brass)}
  .runday.today .runday-n{margin:0}
  .runcal-agenda,.runcal-agenda-empty{display:block}
  .run-top{padding:16px 14px}
  .run-top h3{font-size:24px}
  .run-top-count{min-width:0;flex-basis:100%}
  .run-top-actions .btn{flex:1}
  .run-history li{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px}
  .run-history-name{grid-column:1/-1}
  .run-rsvp{width:100%}
  .run-rsvp button{flex:1;min-width:0;padding:8px 6px}
  .run-count b{font-size:24px}
}
/* Calendar sync (views/calendar-connect.js): the member page's Calendar panel
   and the one-tap add in the "You're in" prompt. */
.cal-panel{margin-top:40px;padding-top:8px;border-top:2px solid var(--navy)}
.cal-panel>p{line-height:1.6;margin:10px 0}
.cal-note:empty{display:none}
.cal-note{color:var(--navy);font-weight:700}
.cal-list{list-style:none;padding:0;margin:16px 0}
.cal-row{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:16px;border:1px solid var(--rule);padding:16px 18px;margin:12px 0;background:var(--white)}
.cal-row.cal-connected{border-left:4px solid var(--in)}
.cal-row.cal-broken{border-left:4px solid var(--out)}
.cal-mark{display:block;flex-shrink:0}
.cal-what b{color:var(--navy)}
.cal-what p{margin:4px 0 0;font-size:14px;overflow-wrap:anywhere}
.cal-msg{color:var(--ink2)}
.cal-row.cal-broken .cal-msg{color:var(--out)}
.cal-badge{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:var(--pale);color:var(--navy)}
.cal-badge.on{background:var(--in-bg);color:var(--in)}
.cal-badge.warn{background:var(--out-bg);color:var(--out)}
.cal-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.cal-actions .btn{min-height:44px;display:inline-flex;align-items:center}
.cal-actions .btn[aria-disabled="true"]{opacity:.6;cursor:progress}
.cal-actions button:disabled{opacity:.55;cursor:not-allowed}
.cal-direct{margin:10px 0 0}
.cal-direct .calendar-actions{margin:8px 0}
.cal-add{display:inline-flex;align-items:center;gap:8px;min-height:40px}
.cal-add .cal-mark{width:20px;height:20px}
.cal-add[aria-disabled="true"]{opacity:.6;cursor:progress}
.cal-direct-note{font-size:13px;color:var(--ink2)}
@media(max-width:560px){.cal-row{grid-template-columns:28px 1fr}.cal-actions{grid-column:1/-1;justify-content:flex-start}}

/* Club management left; member destinations and account controls right. */
.topbar .wrap{max-width:1600px;padding-left:24px;padding-right:24px;gap:18px}
.brand-management{display:flex;align-items:center;gap:16px;flex-shrink:0}
.management-link{border-left:1px solid #526c7c;padding-left:16px;color:#b6c9d6;font-size:12px;font-weight:700;min-height:44px;display:flex;align-items:center}
.management-link:hover,.management-link[aria-current="page"]{color:var(--brass)}
.account-nav{display:flex;gap:4px;align-items:center;border-left:1px solid #526c7c;padding-left:12px;flex-shrink:0}
.account-nav a,.nav a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;color:#b6c9d6;font-size:12px;font-weight:700;padding:9px 10px;border-bottom:3px solid transparent}
.account-nav a:hover,.nav a:hover{color:white}
.account-nav a[aria-current="page"]{color:white;border-bottom-color:var(--brass)}
.topbar .nav{margin-left:auto;gap:0}.topbar .nav button{letter-spacing:1px;padding-left:10px;padding-right:10px}
.topbar .nav-sample{display:none}
.member-back{display:inline-flex;align-items:center;min-height:44px;margin-bottom:14px;font-size:13px}
@media(max-width:1100px){.topbar .wrap{height:auto;flex-wrap:wrap;gap:6px 12px;padding-top:8px}.account-nav{margin-left:auto}.topbar .nav{order:3;width:100%;margin:0;justify-content:center}.topbar .nav a{flex:1}.brand-management{gap:12px}}
@media(max-width:640px){.topbar .wrap{padding-left:16px;padding-right:16px}.brand-management{flex:1}.management-link{padding-left:12px}.account-nav{border-left:0;padding-left:0;justify-content:flex-end;width:100%;margin-top:-4px}.account-nav a{padding:6px 10px}.topbar .nav{border-top:1px solid #34566a}.topbar .nav button,.topbar .nav a{min-height:44px}.brand span{font-size:12px}}

/* Studio attribution uses UC brand tokens, not the club palette. */
@font-face{font-family:"UC Space Grotesk";src:url('/wac/fonts/space-grotesk-bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
.studio-credit{padding:24px 20px;background:#fff;text-align:center;border-top:1px solid #e5e7eb}
.studio-credit a{display:inline-flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 16px;min-height:44px;color:#e23222;font:700 16px/1.5 "UC Space Grotesk",sans-serif;text-decoration:none}
.studio-credit img{display:block;width:64px;height:64px;object-fit:contain}
.studio-credit a:hover{text-decoration:underline;text-underline-offset:4px}
.studio-credit a:focus-visible{outline:2px solid #e23222;outline-offset:5px}
@media(max-width:480px){.studio-credit a{flex-direction:column;gap:4px}.studio-credit img{width:56px;height:56px}}

/* Five nav words on a 320px phone: LEAGUES, STATS, PLAYERS and GAME must not touch. Sits after the topbar rules that set 10px padding. */
@media(max-width:360px){.topbar .nav button{padding:10px 2px;font-size:10.5px;letter-spacing:.5px;min-width:0}}

/* ------------------------------------------------------------ matchup page */
/* Who you are actually playing: the face-off, the head-to-head, both rosters
   (views/matchup.js). Two columns with the score between them on desktop, one
   column on a phone with the score in the middle of the stack. */
.mu-jerseys{font-size:13px;color:var(--ink2);margin-top:10px}
.mu-faceoff{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:start;gap:18px;margin-top:20px;padding-bottom:26px;border-bottom:1px solid var(--rule)}
.mu-team{min-width:0;border-top:3px solid var(--rule2);padding-top:14px}
.mu-team.mine{border-top-color:var(--brass)}
.mu-jersey{display:flex;align-items:center;gap:8px;font-size:12px;letter-spacing:1.6px;text-transform:uppercase;font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;color:var(--slate)}
.mu-jersey .jer{width:20px;height:20px}
.mu-name{margin-top:8px;font-size:22px;text-transform:none;overflow-wrap:anywhere}
.mu-team-link{color:var(--navy);font:inherit;text-align:left;padding:0}
.mu-team-link:hover,.mu-team-link:focus-visible{text-decoration:underline;text-underline-offset:3px}
.mu-cap{font-size:13px;color:var(--ink2);margin-top:4px}
.mu-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:14px 0 0;background:var(--rule);border:1px solid var(--rule)}
.mu-stats div{background:#fff;padding:8px 10px}
.mu-stats dt{font-size:11px;letter-spacing:1.1px;text-transform:uppercase;color:var(--slate);font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700}
.mu-stats dd{margin:0;font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-weight:800;font-size:20px;color:var(--navy);font-variant-numeric:tabular-nums}
.mu-vs{align-self:center;text-align:center;padding-top:14px}
.mu-vs em{font-style:normal;font-size:13px;letter-spacing:1.5px;text-transform:uppercase;color:var(--slate)}
.mu-score{display:flex;align-items:baseline;gap:6px;font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-weight:800;font-size:30px;color:var(--ink3);font-variant-numeric:tabular-nums}
.mu-score .won{color:var(--navy)}
.mu-ff{font-size:13px;color:var(--ink2);text-align:center;max-width:18ch}
.mu-lead{margin-top:8px;font-size:20px;text-transform:none}
.mu-empty{font-size:16px;color:var(--navy);font-weight:600;margin-top:8px}
.mu-h2h{border:1px solid var(--rule);margin-top:14px}
.mu-meeting{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:11px 14px;border-bottom:1px solid var(--rule);background:#fff;min-height:44px}
.mu-meeting:last-child{border-bottom:0}
.mu-meeting:hover{background:#F7F9FB}
.mu-meeting-when{width:130px;flex-shrink:0;font-size:12.5px;color:var(--ink2)}
.mu-meeting-when small{display:block;color:var(--ink3);font-size:11.5px}
.mu-meeting-score{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-weight:700;font-size:17px;color:var(--navy);font-variant-numeric:tabular-nums;width:70px}
.mu-meeting-who{font-size:13px;color:var(--ink2)}
.mu-links{margin-top:18px}
@media(max-width:720px){
  .mu-faceoff{grid-template-columns:minmax(0,1fr);gap:14px}
  .mu-vs{padding-top:0;text-align:left}
  .mu-score{font-size:26px}
  .mu-name{font-size:20px}
  .mu-meeting-when{width:112px}
}

/* The member panel's team names and its link to the matchup page. */
.mh-team{color:var(--navy);font:inherit;padding:0;text-align:left;overflow-wrap:anywhere}
.mh-team:hover,.mh-team:focus-visible{text-decoration:underline;text-underline-offset:3px}
.mh-more{margin-top:14px}
/* More than one game of mine: a count by the heading, then one row per game
   that opens its matchup page (views/home.js alsoLists). */
.mh-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 12px;margin-bottom:12px}
.mh-head h3{margin-bottom:0}
.mh-count{margin:0;background:var(--navy);color:#fff;font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;text-transform:uppercase;letter-spacing:1.4px;font-size:12px;padding:4px 10px}
.mh-count-n{color:var(--brass);font-size:14px}
.mh-also-block{margin-top:16px;border-top:1px solid var(--rule);padding-top:12px}
.mh-also-block h4{font-size:12px;letter-spacing:1.4px;font-stretch:88%;color:var(--brass-d)}
.mh-also-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}
.mh-also{width:100%;min-height:44px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;align-items:center;text-align:left;font:inherit;color:var(--ink);background:var(--pale);border:0;border-left:3px solid var(--brass);padding:10px 12px}
button.mh-also{cursor:pointer}
button.mh-also:hover,button.mh-also:focus-visible{background:#d6dbea}
.mh-also>span:not(.mh-also-go){grid-column:1}
.mh-also-when{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;font-size:17px;color:var(--navy)}
.mh-also-what{font-size:14px;overflow-wrap:anywhere}
.mh-also-what b{color:var(--navy)}
.mh-also-lg{font-size:12px;color:var(--slate)}
.mh-also-go{grid-column:2;grid-row:1/span 3;font-size:20px;color:var(--navy)}
/* Subscribe to each of my teams (views/calendar.js memberCalendars). */
.mh-subs{margin-top:16px;border-top:1px solid var(--rule);padding-top:12px}
.mh-subs h4{font-size:12px;letter-spacing:1.4px;font-stretch:88%;color:var(--brass-d)}
.mh-sub-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}
.mh-sub{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;background:var(--pale);border-left:3px solid var(--brass);padding:8px 12px}
.mh-sub b{color:var(--navy)}
.mh-sub span{font-size:14px}
.mh-sub .calendar-actions{margin:0;gap:6px;align-items:stretch}
.mh-sub .btn.sm{padding:8px 9px;letter-spacing:.8px}
@media(max-width:720px){.mh-sub{padding:8px 10px}.mh-sub .calendar-actions{gap:5px}}
/* "Matchup →" on a schedule row: last in the row, and its own line on a phone. */
.gmore{flex-shrink:0;color:var(--navy);font-size:13px;font-weight:600;min-height:44px;padding:0 0 0 4px;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.gmore:hover{color:var(--accent-ink)}
@media(max-width:640px){.gmore{margin-left:85px;padding-left:0}}
#intro .intro-studio-mark{position:absolute;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));width:clamp(56px,8vw,80px);height:auto;object-fit:contain;pointer-events:none}

/* ------------------------------------------------------------- day cycle */
/* The home page's week panel (views/day.js). It sits inside the navy hero,
   so headings are white and every block of facts is a white card, matching
   the member panel above it. */
.day-cycle{padding-top:30px}
.day-cycle[hidden]{display:none}
.dc-head{margin-bottom:18px}
.day-cycle h2{color:#fff;margin:6px 0 0;font-size:clamp(24px,2.6vw,34px)}
.dc-sub{color:var(--on-navy-muted);font-size:14px;margin-top:8px;max-width:80ch}
.dc-block{background:#fff;color:var(--ink);border-top:3px solid var(--brass);padding:20px 22px;margin-top:18px}
.dc-block h3{font-size:16px;letter-spacing:.02em;margin-bottom:12px}
.dc-empty{color:var(--on-navy-muted);font-size:15px;margin-top:16px}

.dc-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.dc-list li{display:flex;align-items:center;gap:14px;padding:11px 0;border-bottom:1px solid var(--rule)}
.dc-lg{flex:0 0 auto;font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;
  font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--slate);min-width:82px}
.dc-teams{flex:1 1 auto;display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap;min-width:0}
.dc-teams em{font-style:normal;font-size:13px;color:var(--slate)}
.dc-side{display:flex;align-items:center;gap:8px;min-width:0}
.dc-side b{color:var(--navy);font-size:16px;font-weight:600;overflow-wrap:anywhere}
.dc-side em{font-style:normal;font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-weight:800;
  font-size:19px;color:var(--ink3);font-variant-numeric:tabular-nums}
.dc-side.won b{font-weight:800}
.dc-side.won em{color:var(--navy)}
.dc-result .dc-teams{flex-direction:column;align-items:stretch;gap:4px}
.dc-result .dc-side{justify-content:flex-start}
.dc-result .dc-side em{margin-left:auto;padding-left:14px}
.dc-state{flex:0 0 auto;font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;
  font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--brass-d)}
.dc-list time{flex:0 0 auto;font:700 14px "Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;
  letter-spacing:1px;color:var(--navy);white-space:nowrap;font-variant-numeric:tabular-nums}

.dc-lines{list-style:none;margin:0;padding:0;counter-reset:dc}
.dc-lines li{display:flex;align-items:center;gap:14px;padding:10px 0;border-top:1px solid var(--rule)}
.dc-lines li:first-child{border-top:none}
.dc-who{flex:1 1 auto;min-width:0}
.dc-who b{display:block;color:var(--navy);font-size:16px;font-weight:600;overflow-wrap:anywhere}
.dc-who small{display:block;font-size:12px;color:var(--ink2)}
.dc-pts{flex:0 0 auto;text-align:right}
.dc-pts b{display:block;font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-weight:800;font-size:24px;
  line-height:1.1;color:var(--navy);font-variant-numeric:tabular-nums}
.dc-pts small{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;
  font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--slate)}

.dc-kpis{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:0;padding:0;
  background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.22)}
.dc-kpis li{background:var(--navy);padding:14px 10px;text-align:center}
.dc-kpis b{display:block;font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-weight:800;font-size:28px;
  line-height:1.1;color:#fff;font-variant-numeric:tabular-nums}
.dc-kpis span{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;font-size:11px;
  letter-spacing:1.3px;text-transform:uppercase;color:var(--on-navy-muted)}

/* The global table rule sets min-width:600px and a navy thead, which a card
   inside the hero cannot hold — on a phone it pushed PF and PA off the edge.
   This table is a summary, so it shrinks instead of scrolling sideways. */
.dc-table{width:100%;border-collapse:collapse;font-size:15px;min-width:0;table-layout:auto}
.dc-table thead th{background:transparent}
/* The card's own edge closes the table; a last-row rule leaves a stub once the
   secondary columns are hidden. */
.dc-table tbody tr:last-child th,.dc-table tbody tr:last-child td{border-bottom:none}
.dc-table th,.dc-table td{padding:8px 6px;border-bottom:1px solid var(--rule);text-align:right;
  font-variant-numeric:tabular-nums}
.dc-table thead th{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700;
  font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--slate)}
.dc-table th:first-child,.dc-table tbody th{text-align:left;color:var(--navy);font-weight:600}
.dc-table abbr{text-decoration:none}
.day-cycle .legend{color:var(--on-navy-muted);margin-top:14px}

.dc-claim{background:#fff;color:var(--ink);border-top:3px solid var(--brass);padding:20px 22px;margin-top:18px}
.dc-claim b{display:block;font-family:"Archivo","Helvetica Neue",Arial,sans-serif;font-weight:800;font-stretch:125%;
  text-transform:uppercase;letter-spacing:-.015em;color:var(--navy);font-size:18px}
.dc-claim p{font-size:14px;color:var(--ink2);margin:6px 0 14px;max-width:60ch}

/* Points for and against are reference, not the story; below this width the
   card keeps Team and W-L rather than clipping all four columns. */
@media(max-width:560px){ .dc-2nd{display:none} }
@media(max-width:720px){
  .dc-list li{flex-wrap:wrap;gap:6px 12px}
  .dc-lg{min-width:0}
  .dc-block{padding:18px 16px}
}

/* A member's own game, and their own team's row. The mark never moves a row on
   its own — day-cycle.js does the ordering — so this is emphasis, not layout. */
.dc-list li.mine{background:#fffdf6;box-shadow:inset 3px 0 0 var(--brass);padding-left:11px}
.dc-block.mine{border-top-width:5px}
.dc-mine{display:inline-block;font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;
  font-weight:700;font-size:10px;letter-spacing:1.3px;text-transform:uppercase;color:var(--brass-d);
  margin-right:8px;white-space:nowrap}
.dc-block h3 .dc-mine{margin-left:6px;margin-right:0}
.dc-when{flex:0 0 auto;display:flex;align-items:center;gap:0}
.dc-table tbody tr.mine th,.dc-table tbody tr.mine td{background:#fffdf6;font-weight:700}

/* A row on the Today's games card opens that game's matchup page. The button
   carries the row grid so the three columns still line up; the li becomes a
   plain block around it. */
.night-list li:has(.night-open){display:block;padding:0;border-bottom:1px solid var(--rule)}
.night-open{display:grid;grid-template-columns:106px minmax(0,30rem) 8rem;justify-content:start;
  align-items:center;column-gap:24px;width:100%;padding:11px 0;margin:0;border:0;background:none;
  font:inherit;color:inherit;text-align:left;cursor:pointer}
.night-open:hover{background:rgba(var(--brass-rgb),.10)}
.night-open:focus-visible{outline:2px solid var(--brass);outline-offset:-2px}
/* Score and time in one trailing cell, so a final row keeps both. */
.night-end{justify-self:end;display:flex;align-items:center;justify-content:flex-end;gap:12px;
  min-width:9ch;text-align:right}
.night-end time{min-width:0}
@media(max-width:640px){
  .night-open{grid-template-columns:1fr auto;gap:4px 10px;padding:10px 0}
  .night-open .night-league{grid-column:1/-1}
  .night-end{gap:8px;flex-wrap:wrap}
}

/* Every game on the site opens its game page (views/matchup.js). The day
   panel's rows become one button each; the button takes over the row layout
   the <li> used to carry. */
.dc-list li.dc-link,.dc-lines li.dc-link{display:block;padding:0}
.dc-list li.mine.dc-link{padding-left:0}
.dc-open{display:flex;align-items:center;gap:14px;width:100%;min-height:44px;padding:11px 0;text-align:left;font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.dc-lines .dc-open{padding:10px 0}
.dc-list li.mine .dc-open{padding-left:11px}
.dc-open:hover{background:rgba(var(--brass-rgb),.10)}
.dc-open:focus-visible{outline:2px solid var(--brass);outline-offset:-2px}
@media(max-width:640px){.dc-list .dc-open{flex-wrap:wrap;gap:6px 12px}}

/* One game's box score (views/matchup.js boxScore). */
.box-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:22px;margin-top:14px}
@media(min-width:1100px){.box-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.box-table{min-width:0;font-size:14px}
.box-scroll table.box-table{min-width:520px}
.box-table th,.box-table td{padding:8px 10px}
.box-table tbody th,.box-table tfoot th{font-weight:600;color:var(--navy);white-space:nowrap}
.box-table tfoot th,.box-table tfoot td{font-weight:800;border-top:2px solid var(--navy);border-bottom:0;background:#F7F9FB}
.box-table abbr{text-decoration:none}
.box-table tr.mine th,.box-table tr.mine td{background:#fffdf6}
.box-player{color:var(--navy);font:inherit;font-weight:600;padding:0;text-align:left;min-height:32px}
.box-player:hover,.box-player:focus-visible{text-decoration:underline;text-underline-offset:3px}

/* A player's game log: every game they played, each opening its box score. */

.glog-row:hover th,.glog-row:hover td{background:rgba(var(--brass-rgb),.10)}
.glog-open{color:var(--navy);font:inherit;font-weight:600;padding:0;text-align:left;white-space:nowrap;min-height:32px}
@media(pointer:coarse){.glog-open,.box-player{min-height:44px}}
.glog-open:hover,.glog-open:focus-visible{text-decoration:underline;text-underline-offset:3px}

/* Find (views/finder.js): the header button, "My last game", and the panel. */
.account-nav .find-open,.account-nav .my-game{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:9px 10px;color:#fff;font-size:12px;font-weight:700;border-bottom:3px solid transparent}
.account-nav .find-open:hover,.account-nav .my-game:hover{color:var(--brass)}
.account-nav .my-game{color:var(--brass)}
.account-nav .my-game[aria-current="page"]{border-bottom-color:var(--brass)}
.account-nav .my-game[hidden]{display:none}
.finder{width:min(640px,calc(100vw - 24px));max-height:min(80vh,720px);margin:72px auto auto;padding:0;border:0;border-top:4px solid var(--brass);background:#fff;color:var(--ink);box-shadow:0 18px 60px rgba(0,20,35,.45)}
.finder::backdrop{background:rgba(0,26,44,.62)}
.finder-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 8px}
.finder-head h2{font-size:18px}
.finder-close{min-width:44px;min-height:44px;font-size:18px;color:var(--navy)}
.finder input[type=search]{display:block;width:calc(100% - 36px);margin:0 18px 10px;font:inherit;font-size:17px;padding:12px 14px;border:2px solid var(--navy);border-radius:0}
.finder-results{padding:0 18px 18px;overflow:auto;max-height:calc(min(80vh,720px) - 140px)}
.fd-sec{margin-top:12px}
.fd-sec h3{font-size:12px;letter-spacing:1.4px;text-transform:uppercase;color:var(--slate);margin-bottom:6px}
.fd-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.fd-list>li{border-bottom:1px solid var(--rule)}
.fd-game{display:flex;align-items:center;gap:14px;width:100%;min-height:52px;padding:10px 6px;text-align:left}
.fd-game:hover,.fd-main:hover,.fd-side-link:hover{background:rgba(var(--brass-rgb),.12)}
.fd-when{flex:0 0 110px;font-size:12px;font-weight:700;color:var(--slate);text-transform:uppercase;letter-spacing:.8px}
.fd-when small{display:block;text-transform:none;letter-spacing:0;font-weight:400;color:var(--ink2)}
.fd-teams{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.fd-side{display:flex;justify-content:space-between;gap:10px;color:var(--ink2)}
.fd-side b{font-weight:600;color:var(--navy);overflow-wrap:anywhere}
.fd-side em{font-style:normal;font-weight:700;font-variant-numeric:tabular-nums}
.fd-side.won b,.fd-side.won em{font-weight:800;color:var(--navy)}
.fd-go{flex:0 0 auto;font-size:12.5px;font-weight:700;color:var(--navy);white-space:nowrap}
.fd-row{display:flex;align-items:stretch}
.fd-main{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 6px;text-align:left;min-height:52px}
.fd-main b{color:var(--navy);font-size:15.5px}
.fd-main small{color:var(--ink2);font-size:12.5px}
.fd-main .fd-go{margin-top:2px}
.fd-side-link{flex:0 0 132px;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;padding:8px 6px;border-left:1px solid var(--rule);font-size:12.5px;font-weight:700;color:var(--navy);text-align:right}
.fd-side-link small{display:block;font-weight:400;color:var(--ink2);font-variant-numeric:tabular-nums;white-space:nowrap}
.fd-none{color:var(--ink3);font-weight:400}
.fd-hint{margin-top:14px;font-size:13.5px;color:var(--ink2)}
.fd-more{margin-top:8px;font-size:14px}
@media(max-width:640px){.finder{margin-top:12px;max-height:88vh}.finder-results{max-height:calc(88vh - 140px)}.fd-when{flex-basis:84px}.fd-game .fd-go{display:none}.fd-side-link{flex-basis:108px}}

/* The player page's "Last game" card (views/players.js lastGameCard). */
.last-game{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,2fr) auto;align-items:center;gap:18px;margin:18px 0 8px;padding:16px 18px;border:1px solid var(--rule);border-top:3px solid var(--brass);background:#fff}
.lg-match{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:6px}
.lg-match b{color:var(--navy);font-size:16px}
.lg-match small{flex-basis:100%;color:var(--ink2);font-size:12.5px}
.lg-line{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;margin:0;background:var(--rule);border:1px solid var(--rule)}
.lg-line div{background:#fff;padding:6px 8px;text-align:center}
.lg-line dt{font-size:10.5px;letter-spacing:1px;color:var(--slate);font-weight:700}
.lg-line dd{margin:0;font-weight:800;font-size:18px;color:var(--navy);font-variant-numeric:tabular-nums}
@media(max-width:760px){.last-game{grid-template-columns:minmax(0,1fr)}.lg-line{grid-template-columns:repeat(3,minmax(0,1fr))}.last-game .btn{justify-self:start}}
/* ---------------------------------------------------------------- All-time
   A name the club cannot yet resolve to ONE person. Yellow is a warning about
   attribution, never about the numbers: the games and points are exactly what
   was recorded. Colour never carries it alone — every flag also has a ⚑ glyph,
   a title, and visually-hidden text saying why, so the meaning survives
   greyscale, a screen reader and a colour-blind reader. */
.amb { margin-left: .35rem; color: #8a6100; font-size: .85em; vertical-align: baseline; }
.amb[data-amb="proven_different"] { color: #8a3b00; }
tr.amb-row > td { background: #fff8d6; }
tr.amb-row > td.amb-cell { box-shadow: inset 3px 0 0 #e3b341; }
@media (prefers-color-scheme: dark) {
  .amb { color: #f2cc60; }
  .amb[data-amb="proven_different"] { color: #ffa657; }
  tr.amb-row > td { background: #2b2415; }
  tr.amb-row > td.amb-cell { box-shadow: inset 3px 0 0 #bb8009; }
}
/* Darin's review filter. Reads as an action, not a scope chip, and keeps the
   pressed state the other chips use so it is obviously a toggle. */
.sbchip.review-chip { border-color: #e3b341; background: #fff8d6; color: #5c4300; font-weight: 600; }
.sbchip.review-chip.on { background: #e3b341; color: #2b2100; }
@media (prefers-color-scheme: dark) {
  .sbchip.review-chip { border-color: #bb8009; background: #2b2415; color: #f2cc60; }
  .sbchip.review-chip.on { background: #bb8009; color: #1a1400; }
}
/* Seven tabs since Live joined the bar: on phones each tab sizes to its label
   (equal widths ran "Leagues"/"Players" into their neighbours). */
@media(max-width:640px){.topbar .nav button{flex:1 1 auto;min-width:0;letter-spacing:.3px;padding-left:2px;padding-right:2px}}
/* A school program (views/program.js): a team's record strip, and the card for
   a level whose schedule is not published yet. Palette variables only, so a
   tenant's brand colours (brand.js) apply. WAC never renders these classes. */
.prog-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;margin:0 0 22px;background:var(--rule);border:1px solid var(--rule)}
.prog-strip div{background:var(--white);padding:10px 14px}
.prog-strip dt{font-size:11px;letter-spacing:1.1px;text-transform:uppercase;color:var(--slate);font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-stretch:88%;font-weight:700}
.prog-strip dd{margin:0;font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-weight:800;font-size:22px;color:var(--navy);font-variant-numeric:tabular-nums}
@media(max-width:640px){.prog-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}
.league-card.prog-pending{border-top-color:var(--rule2);color:var(--ink2)}
.league-card.prog-pending h3{color:var(--ink2)}
@media(max-width:640px){.prog-strip div:last-child:nth-child(3n+2){grid-column:span 2}}
.prog-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.prog-stats .sv{font-family:"Archivo","Arial Narrow",Impact,sans-serif;font-weight:800;font-size:30px;line-height:1.15;margin:8px 0 4px;color:var(--navy);font-variant-numeric:tabular-nums}
@media(max-width:900px){.prog-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
