/* app.css: layouts for account, profile, admin and the merged athlete page. Site chrome (header, footer, nav) is in brand.css since 2026-10-30; the header.site/nav.main/ribbon/footer.site rules below match nothing and can go in a later pass. Accent follows data/brand.json (#D41111). The token is still named --orange from the AG era; it is the TTG red. */
/* Shared stylesheet (header, footer, boards). */
:root{--orange:#D41111;--orange-bright:#EF4444;--gunmetal:#2D2D2D;--carbon:#1C1C1C;--carbon-2:#161616;
--line:rgba(255,255,255,.08);--line-2:rgba(255,255,255,.14);--paper:#fff;--muted:#9a9a9a;--muted-2:#6f6f6f;
--mg:#D41111;--ttg:#D41111;--hh:64px;}
*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}
body{background:var(--carbon);color:var(--paper);font-family:"protipo","Inter",Arial,sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}.wrap{max-width:1180px;margin:0 auto;padding:0 22px}.mono{font-variant-numeric:tabular-nums}

/* data-source / fallback banner */
.flag{background:repeating-linear-gradient(45deg,#3a2a14 0 14px,#2e2210 14px 28px);border-bottom:1px solid var(--line);color:#e8c79a;font-size:12.5px;letter-spacing:.06em;text-align:center;padding:8px 12px;font-family:'Rajdhani',sans-serif}
.flag b{color:var(--orange)}
select{color-scheme:dark}

/* header / nav */
header.site{position:sticky;top:0;z-index:900;height:var(--hh);background:rgba(20,20,20,.85);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center}
.hdr{display:flex;align-items:center;justify-content:space-between;width:100%}
.brand{display:flex;align-items:center;gap:11px;font-family:'Rajdhani',sans-serif}
.brand .mark{width:30px;height:30px;border:2px solid var(--orange);border-radius:50%;display:grid;place-items:center;position:relative;flex:0 0 auto}
.brand .mark::before{content:"";width:3px;height:3px;background:var(--orange);border-radius:50%}
.brand .mark::after{content:"";position:absolute;width:14px;height:14px;border:1px solid var(--orange);border-radius:50%}
.brand .brandlogo{height:34px;width:auto;max-width:150px;object-fit:contain;display:block;flex:0 0 auto}
.brand .name{font-weight:700;font-size:18px;letter-spacing:.08em;text-transform:uppercase;line-height:1}
.brand .name small{display:block;font-size:10px;letter-spacing:.30em;color:var(--orange);font-weight:500;margin-top:3px}
nav.main{display:flex;gap:26px;font-family:'Rajdhani',sans-serif;font-size:14px;letter-spacing:.10em;text-transform:uppercase;color:var(--muted)}
nav.main a:hover,nav.main a.active{color:var(--paper)}
.nav-auth{display:none}
.hdr-cta{font-family:'Rajdhani',sans-serif;font-size:13px;letter-spacing:.10em;text-transform:uppercase;border:1px solid var(--line-2);padding:8px 15px}
.hdr-cta:hover{border-color:var(--orange);color:var(--orange)}
/* mobile hamburger nav */
.hamburger{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:40px;height:38px;cursor:pointer;border:1px solid var(--line-2);border-radius:3px}
.hamburger span{display:block;width:20px;height:2px;background:var(--paper);transition:transform .2s,opacity .2s}
.navtoggle:checked~.hamburger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.navtoggle:checked~.hamburger span:nth-child(2){opacity:0}
.navtoggle:checked~.hamburger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* sponsor ribbon + footer */
.ribbon{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--carbon-2);padding:26px 0}
.ribbon .lab{font-family:'Rajdhani',sans-serif;font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--muted-2);text-align:center;margin-bottom:18px}
.ribbon .row{display:flex;align-items:center;justify-content:center;gap:40px;flex-wrap:wrap}
.ribbon .sp{font-family:'Rajdhani',sans-serif;font-weight:600;font-size:18px;letter-spacing:.10em;text-transform:uppercase;color:#cfcfcf;opacity:.85}
.ribbon .sp:hover{opacity:1;color:var(--paper)}
footer.site{padding:34px 0 52px;border-top:1px solid var(--line);background:var(--carbon-2);color:var(--muted)}
footer .grid{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center}
footer .by{font-family:'Rajdhani',sans-serif;font-size:13px;letter-spacing:.10em;text-transform:uppercase}footer .by b{color:var(--orange)}
footer .fnav{display:flex;gap:20px;font-family:'Rajdhani',sans-serif;font-size:13px;letter-spacing:.08em;text-transform:uppercase}
footer .fnav a:hover{color:var(--paper)}

/* shared leaderboard table */
table.lb{width:100%;border-collapse:collapse;font-size:14.5px}
table.lb th{font-family:'Rajdhani',sans-serif;font-weight:500;font-size:10.5px;letter-spacing:.10em;text-transform:uppercase;color:var(--muted-2);text-align:left;padding:9px 16px;border-bottom:1px solid var(--line)}
table.lb th.r,table.lb td.r{text-align:right}table.lb th.c,table.lb td.c{text-align:center}
table.lb td{padding:9px 16px;border-bottom:1px solid rgba(255,255,255,.05);vertical-align:middle}
table.lb tr:last-child td{border-bottom:0}
.pl{font-family:'Rajdhani',sans-serif;font-weight:700;color:var(--muted);width:40px}
tr.top1 .pl{color:var(--orange)}tr.top1 .nm{color:#fff}
tr.prov{opacity:.5}tr.prov .pl{color:var(--muted-2);font-weight:400}
.nm{font-weight:600}.avg{font-family:'Rajdhani',sans-serif;font-weight:700;font-size:16px}tr.top1 .avg{color:var(--orange)}
.best{font-family:'Rajdhani',sans-serif;color:#cfcfcf}.mcell{font-family:'Rajdhani',sans-serif;font-variant-numeric:tabular-nums;color:#bdbdbd;font-size:13px}.mcell.no{color:#444}
.badge{display:inline-block;font-family:'Rajdhani',sans-serif;font-size:9.5px;letter-spacing:.10em;text-transform:uppercase;color:var(--orange);border:1px solid rgba(212,17,17,.5);border-radius:2px;padding:1px 5px;margin-left:8px;vertical-align:1px}
/* DQ markers */
.badge.dq{color:#e88;border-color:rgba(200,70,70,.6)}
/* provisional tag (homepage board previews) */
.provtag{display:inline-block;font-family:'Rajdhani',sans-serif;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);border:1px solid var(--line-2);border-radius:2px;padding:1px 4px;margin-left:6px;vertical-align:1px}
/* rotating homepage division boards */
.rot-board .meta,.rot-board table.lb tbody{transition:opacity .17s}
.rot-board.rfade .meta,.rot-board.rfade table.lb tbody{opacity:0}
.rot-board tr.pad td{border:0;height:38px;padding:0}
.board .foot .dots{display:flex;gap:7px;align-items:center}
.dot{width:7px;height:7px;border-radius:50%;border:0;background:var(--line-2);cursor:pointer;padding:0;transition:background .15s}
.dot.on{background:var(--accent,var(--orange))}
.dot:hover{background:var(--muted)}
tr.dqrow{opacity:.5}
tr.dqrow .nm a{color:var(--muted)!important}
.divlabel{font-family:'Rajdhani',sans-serif;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.prov-sep td{background:#202020;color:var(--muted-2);font-family:'Rajdhani',sans-serif;font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:8px 14px}
.empty{padding:34px 16px;text-align:center;color:var(--muted);font-family:'Rajdhani',sans-serif;letter-spacing:.04em}

/* eyebrow (shared) */
.eyebrow{font-family:'Rajdhani',sans-serif;font-size:12px;letter-spacing:.34em;text-transform:uppercase;color:var(--orange);margin-bottom:14px}

/* ===== homepage ===== */
.page-home section{padding:52px 0}
.hero{position:relative;padding:72px 0 56px;background:radial-gradient(1100px 380px at 78% -10%,rgba(212,17,17,.16),transparent 60%),linear-gradient(180deg,#191919,var(--carbon) 70%);border-bottom:1px solid var(--line);overflow:hidden}
.hero::after{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:46px 46px;opacity:.35;-webkit-mask-image:linear-gradient(180deg,transparent,#000 40%,transparent);mask-image:linear-gradient(180deg,transparent,#000 40%,transparent);pointer-events:none}
.hero .wrap{position:relative;z-index:2}
.hero h1{font-family:'Rajdhani',sans-serif;font-weight:700;text-transform:uppercase;font-size:clamp(40px,7vw,80px);line-height:.96;letter-spacing:.005em;max-width:15ch}
.hero h1 span{color:var(--orange)}
.hero p.sub{margin-top:18px;max-width:58ch;color:#cfcfcf;font-size:18px}
.stat-strip{display:flex;gap:40px;margin-top:34px;flex-wrap:wrap}
.stat .n{font-family:'Rajdhani',sans-serif;font-size:38px;font-weight:700;line-height:1}
.stat .l{font-family:'Rajdhani',sans-serif;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-top:7px}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:24px;gap:16px;flex-wrap:wrap}
.sec-head h2{font-family:'Rajdhani',sans-serif;font-weight:700;text-transform:uppercase;font-size:28px;letter-spacing:.04em;display:flex;align-items:center;gap:13px}
.sec-head h2 .bar{width:5px;height:25px;background:var(--orange);display:inline-block}
.sec-head a.more,.sec-head .more{font-family:'Rajdhani',sans-serif;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.sec-head a.more:hover{color:var(--orange)}
.boards{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px}
.board{background:linear-gradient(180deg,var(--gunmetal),#262626);border:1px solid var(--line);border-radius:3px;overflow:hidden;display:flex;flex-direction:column}
.board .top{padding:16px 16px 13px;border-bottom:1px solid var(--line);position:relative}
.board .top::before{content:"";position:absolute;left:0;top:0;height:100%;width:4px;background:var(--accent)}
.board .top h3{font-family:'Rajdhani',sans-serif;font-weight:600;text-transform:uppercase;font-size:18px;letter-spacing:.05em}
.board .top .meta{font-size:12.5px;color:var(--muted);margin-top:3px;font-family:'Rajdhani',sans-serif;letter-spacing:.04em}
.board table.lb tr.t1 .pl{color:var(--accent)}.board table.lb tr.t1 .av{color:var(--accent)}
.board .av{font-family:'Rajdhani',sans-serif;font-weight:600;font-size:15px}
.board .foot{margin-top:auto;padding:11px 16px;border-top:1px solid var(--line);font-family:'Rajdhani',sans-serif;font-size:12px;letter-spacing:.10em;text-transform:uppercase;color:var(--muted);display:flex;justify-content:space-between;align-items:center}
.board .foot a:hover{color:var(--orange)}.board.empty-board .foot{justify-content:center}
.emptyrow{padding:24px 16px;text-align:center;color:var(--muted);font-family:'Rajdhani',sans-serif;font-size:13px}
.events{display:flex;flex-direction:column;gap:10px}
.ev{display:grid;grid-template-columns:70px 1fr auto auto;align-items:center;gap:18px;background:var(--carbon-2);border:1px solid var(--line);border-radius:3px;padding:13px 18px}
.ev:hover{border-color:var(--line-2)}
.ev .date{font-family:'Rajdhani',sans-serif;text-align:center;line-height:1.05}
.ev .date .mo{font-size:13px;letter-spacing:.10em;text-transform:uppercase;color:var(--orange)}
.ev .info h4{font-family:'Rajdhani',sans-serif;font-weight:600;font-size:16px;letter-spacing:.02em;text-transform:uppercase}
.ev .info .loc{color:var(--muted);font-size:13px}
.ev .chip{font-family:'Rajdhani',sans-serif;font-size:11px;letter-spacing:.10em;text-transform:uppercase;padding:4px 10px;border:1px solid var(--line-2);border-radius:2px;color:#ddd;display:inline-flex;gap:7px;align-items:center;white-space:nowrap}
.ev .chip::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--c,#888)}
.ev .res{font-family:'Rajdhani',sans-serif;font-size:12.5px;letter-spacing:.10em;text-transform:uppercase;border:1px solid var(--line-2);padding:7px 13px;color:var(--paper)}
.ev .res:hover{border-color:var(--orange);color:var(--orange)}

/* ===== standings ===== */
.page-standings section{padding:26px 0 60px}
.phero{position:relative;padding:42px 0 22px;background:radial-gradient(900px 300px at 80% -20%,rgba(212,17,17,.15),transparent 60%),linear-gradient(180deg,#191919,var(--carbon));border-bottom:1px solid var(--line)}
.phero h1{font-family:'Rajdhani',sans-serif;font-weight:700;text-transform:uppercase;font-size:clamp(30px,5vw,50px);line-height:1;letter-spacing:.01em}
.phero h1 span{color:var(--orange)}
.serieswitch{display:flex;gap:8px;margin-top:18px;flex-wrap:wrap}
.sbtn{font-family:'Rajdhani',sans-serif;font-size:14px;letter-spacing:.08em;text-transform:uppercase;padding:9px 16px;border:1px solid var(--line-2);color:var(--muted);background:none;cursor:pointer}
.sbtn:hover{color:var(--paper)}.sbtn.on{background:var(--orange);border-color:var(--orange);color:#fff}
.scorebar{margin-top:14px;font-size:13px;color:var(--muted);font-family:'Rajdhani',sans-serif;letter-spacing:.04em}
.scorebar b{color:#cfcfcf;font-weight:600}
.tabs{position:sticky;top:var(--hh);z-index:80;background:rgba(20,20,20,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);overflow-x:auto}
.tabs .wrapt{display:flex;gap:2px;max-width:1180px;margin:0 auto;width:100%;padding:0 12px}
.tab{font-family:'Rajdhani',sans-serif;font-size:13.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);padding:14px 14px;border-bottom:3px solid transparent;white-space:nowrap;cursor:pointer;background:none;border-top:none;border-left:none;border-right:none}
.tab:hover{color:var(--paper)}.tab.on{color:var(--paper);border-bottom-color:var(--orange)}
.tab.special.on{border-bottom-color:var(--orange-bright)}
.tab .ct{color:var(--muted-2);font-size:11.5px;margin-left:5px}
.board-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:8px}
.board-head h2{font-family:'Rajdhani',sans-serif;font-weight:700;text-transform:uppercase;font-size:24px;letter-spacing:.04em;display:flex;align-items:center;gap:12px}
.board-head h2 .bar{width:5px;height:22px;background:var(--orange)}
.board-head .note{font-size:12.5px;color:var(--muted)}
.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:3px;background:linear-gradient(180deg,var(--gunmetal),#262626)}
.tbl-wrap table.lb{min-width:680px}
.tbl-wrap table.lb th{padding:11px 14px;background:#2a2a2a;position:sticky;top:0}
.tbl-wrap table.lb td{padding:10px 14px}
.info{margin-top:22px;border:1px solid var(--line);border-left:3px solid var(--orange);background:var(--carbon-2);border-radius:3px;padding:14px 18px;font-size:13px;color:#cdcdcd}
.info b{color:#fff;font-family:'Rajdhani',sans-serif;letter-spacing:.03em}
.mo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px}
.mo-card{border:1px solid var(--line);border-left:3px solid var(--orange-bright);border-radius:3px;background:var(--carbon-2);overflow:hidden}
.mo-card h3{font-family:'Rajdhani',sans-serif;font-weight:600;text-transform:uppercase;font-size:16px;letter-spacing:.04em;padding:12px 14px 4px}
.mo-card .meta{font-family:'Rajdhani',sans-serif;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);padding:0 14px 10px;border-bottom:1px solid var(--line)}
.mo-card table{width:100%;border-collapse:collapse;font-size:13.5px}
.mo-card td{padding:7px 14px;border-bottom:1px solid rgba(255,255,255,.05)}
.mo-card tr:last-child td{border-bottom:0}.mo-card .pl{width:30px}

@media(max-width:920px){.hamburger{display:flex}.hdr-cta{display:none}nav.main{position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:rgba(20,20,20,.97);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:none;z-index:899}.navtoggle:checked~nav.main{display:flex}nav.main a{padding:14px 22px;border-top:1px solid var(--line)}.nav-auth{display:block}.ev{grid-template-columns:60px 1fr;row-gap:10px}.ev .chip,.ev .res{grid-column:1/-1;justify-self:start}}

/* pagination */
.pager{display:flex;align-items:center;justify-content:center;gap:18px;padding:18px 8px;font-family:'Rajdhani',sans-serif;font-size:12.5px;letter-spacing:.06em;color:var(--muted)}
.pager button{font-family:'Rajdhani',sans-serif;font-size:12px;letter-spacing:.10em;text-transform:uppercase;background:none;border:1px solid var(--line-2);color:var(--paper);padding:7px 14px;cursor:pointer}
.pager button:hover:not(:disabled){border-color:var(--orange);color:var(--orange)}
.pager button:disabled{opacity:.35;cursor:default}

/* search bar (competitor directory) */
.searchbar{display:flex;gap:8px;margin-top:18px;flex-wrap:wrap;align-items:center}
.searchbar input{font-family:"protipo","Inter",sans-serif;font-size:15px;padding:10px 14px;background:var(--carbon-2);border:1px solid var(--line-2);color:var(--paper);border-radius:2px;min-width:260px}
.searchbar input:focus{outline:none;border-color:var(--orange)}
.searchbar button{font-family:'Rajdhani',sans-serif;font-size:13px;letter-spacing:.10em;text-transform:uppercase;background:var(--orange);border:1px solid var(--orange);color:#fff;padding:10px 18px;cursor:pointer}
.searchbar button:hover{background:var(--orange-bright)}
.searchbar .clearq{font-family:'Rajdhani',sans-serif;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.searchbar .clearq:hover{color:var(--paper)}
/* anchor-style pager buttons (server-side pages) */
.pager a.pgbtn,.pager span.pgbtn{font-family:'Rajdhani',sans-serif;font-size:12px;letter-spacing:.10em;text-transform:uppercase;border:1px solid var(--line-2);color:var(--paper);padding:7px 14px}
.pager a.pgbtn:hover{border-color:var(--orange);color:var(--orange)}
.pager span.pgbtn.off{opacity:.35}

/* prose (about page) */
.prose{max-width:780px}
.prose h2{font-family:'Rajdhani',sans-serif;font-weight:600;text-transform:uppercase;font-size:21px;letter-spacing:.03em;margin:30px 0 10px;color:#fff}
.prose h2:first-child{margin-top:0}
.prose p{color:#cfcfcf;margin-bottom:12px}
.prose b{color:#fff}
.prose ul{margin:6px 0 14px 22px;color:#cfcfcf}
.prose li{margin-bottom:6px}
.prose a{color:var(--orange)}

/* ===== match listing (matches.php) ===== */
.match-list{display:flex;flex-direction:column;gap:16px}
.match-card{position:relative;display:block;border:1px solid var(--line);border-radius:4px;overflow:hidden;min-height:148px;background:linear-gradient(135deg,#242424,var(--carbon));isolation:isolate}
.match-card .mc-bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:-2;opacity:.9}
.match-card .mc-overlay{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(20,20,20,.45) 0%,rgba(20,20,20,.78) 62%,rgba(20,20,20,.92) 100%)}
.match-card::after{content:"";position:absolute;left:0;top:0;width:4px;height:100%;background:var(--accent);z-index:1}
.match-card .mc-type{position:absolute;top:14px;left:18px;font-family:'Rajdhani',sans-serif;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:rgba(20,20,20,.6);border:1px solid var(--line-2);border-radius:2px;padding:5px 11px;display:inline-flex;align-items:center;gap:7px}
.match-card .mc-type::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--c,var(--orange))}
.match-card .mc-row{position:absolute;left:0;right:0;bottom:0;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:20px;padding:16px 18px}
.match-card .mc-date{font-family:'Rajdhani',sans-serif;text-align:center;line-height:1;border:1px solid var(--line-2);background:rgba(20,20,20,.55);border-radius:3px;padding:8px 14px}
.match-card .mc-date .mo{display:block;font-size:12px;letter-spacing:.12em;color:var(--orange)}
.match-card .mc-date .dy{display:block;font-size:26px;font-weight:700;margin-top:2px}
.match-card .mc-info h3{font-family:'Rajdhani',sans-serif;font-weight:700;text-transform:uppercase;font-size:clamp(17px,2.6vw,22px);letter-spacing:.02em;line-height:1.05}
.match-card .mc-info .mc-loc{font-size:13px;color:#cfcfcf;margin-top:3px}
.match-card .mc-view{font-family:'Rajdhani',sans-serif;font-size:12.5px;letter-spacing:.10em;text-transform:uppercase;border:1px solid var(--line-2);background:rgba(20,20,20,.5);padding:9px 15px;color:#fff;white-space:nowrap}
.match-card:hover .mc-view{border-color:var(--orange);color:var(--orange)}
.match-card:hover .mc-bg{opacity:1}
/* upcoming = static placeholder card: muted, no hover affordance, no link cursor */
.match-card.upcoming{cursor:default;opacity:.82}
.match-card.upcoming::after{background:var(--line-2)}
.match-card.upcoming .mc-info h3{color:#dcdcdc}
.match-card.upcoming:hover .mc-bg{opacity:.9}
.match-card .mc-view.upc{border-color:var(--line-2);color:#bdbdbd;background:rgba(20,20,20,.55)}
.match-card.upcoming:hover .mc-view.upc{border-color:var(--line-2);color:#bdbdbd}
@media(max-width:620px){.match-card{min-height:170px}.match-card .mc-row{grid-template-columns:auto 1fr;row-gap:10px}.match-card .mc-view{grid-column:1/-1;text-align:center}}

/* ===== profile / event banner + avatar ===== */
.profile-hero{position:relative;overflow:hidden}
.profile-hero .ph-banner{position:absolute;inset:0;z-index:0;background-image:var(--banner);background-size:cover;background-position:center;opacity:.28}
.profile-hero::after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,rgba(20,20,20,.5),rgba(20,20,20,.9))}
.profile-hero > .wrap{position:relative;z-index:1}
.phead{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.avatar{width:300px;height:300px;flex:0 0 auto;border:2px solid #595959;border-radius:2px;overflow:hidden;background:var(--gunmetal);display:grid;place-items:center}
.avatar img{width:100%;height:100%;object-fit:cover;display:block}
.avatar-mono{width:100%;height:100%;align-items:center;justify-content:center;font-family:'Rajdhani',sans-serif;font-weight:700;font-size:104px;color:var(--orange);letter-spacing:.02em}
.phead-meta{min-width:0}
@media(max-width:860px){.avatar{width:200px;height:200px}.avatar-mono{font-size:70px}}
@media(max-width:560px){.avatar{width:130px;height:130px}.avatar-mono{font-size:46px}}

/* ===== 1:1 sponsor logo boxes ===== */
.ribbon .row{gap:22px}
.sponsor-box{width:118px;aspect-ratio:1/1;border:1px solid var(--line-2);border-radius:3px;background:var(--carbon);display:grid;place-items:center;padding:14px;overflow:hidden}
.sponsor-box img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block;opacity:.9}
.sponsor-box:hover img{opacity:1}
.sponsor-box .sp-wordmark{font-family:'Rajdhani',sans-serif;font-weight:600;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:#cfcfcf;text-align:center;padding:6px;line-height:1.2}
.sponsor-box:hover{border-color:var(--orange)}
/* ===== competitor stage detail ===== */
.stage-detail{display:grid;gap:18px;margin-top:8px}
.sd-event{border:1px solid var(--line);border-radius:4px;overflow:hidden;background:var(--carbon)}
.sd-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;padding:12px 16px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,#242424,var(--carbon))}
.sd-head a{font-family:'Rajdhani',sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.02em;font-size:15px;color:var(--paper)}
.sd-head a:hover{color:var(--orange)}
.sd-sub{font-size:12.5px;color:var(--muted)}
.sd-tbl{width:100%}
.sd-tbl thead th{font-size:11px;letter-spacing:.06em}
.sd-tbl td,.sd-tbl th{padding:7px 16px}
.sd-tbl tbody tr:not(:last-child){border-bottom:1px solid var(--line)}
@media(min-width:760px){.stage-detail{grid-template-columns:1fr 1fr}}

/* stage win badge (green) */
.badge.win{color:#73d27c;border-color:rgba(95,190,105,.55)}

/* match-history placement + podium colors */
.plc{font-family:'Rajdhani',sans-serif;white-space:nowrap}
.place{font-weight:700}
.place.pl-1{color:#e8c14a}
.place.pl-2{color:#cfd3d6}
.place.pl-3{color:#cd9b6a}
.ofn{color:var(--muted-2);font-size:11px;margin-left:3px}

/* competitor id next to eyebrow (photo filename helper) */
.eyebrow .cid{color:#b3b3b3;font-weight:500}
/* competitor social links */
.socials{display:flex;gap:10px;margin-top:14px}
.soc{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--line-2);border-radius:50%;color:#cfcfcf;transition:color .15s,border-color .15s}
.soc:hover{color:var(--orange);border-color:var(--orange)}
.soc svg{width:17px;height:17px;display:block}
.pbio{margin-top:12px;color:#cfcfcf;max-width:62ch;font-size:15px;line-height:1.55}

/* standings row avatar (shown only when a photo file exists) */
.rname{display:inline-flex;align-items:center;gap:11px;vertical-align:middle}
.ravatar{width:25px;height:25px;border-radius:2px;object-fit:cover;border:1px solid #595959;flex:0 0 auto}

/* hide standings row avatar on mobile */
@media(max-width:620px){.ravatar{display:none}}

/* ---- account dropdown (desktop) - matches the Login button ---- */
.acctmenu{position:relative}
.acct-trigger{font-family:'Rajdhani',sans-serif;font-size:13px;letter-spacing:.10em;text-transform:uppercase;border:1px solid var(--line-2);padding:8px 15px;background:transparent;color:var(--paper);cursor:pointer;display:inline-flex;align-items:center;gap:8px;line-height:1;transition:border-color .15s,color .15s}
.acctmenu:hover .acct-trigger,.acct-trigger:hover,.acct-trigger:focus-visible{border-color:var(--orange);color:var(--orange)}
.acct-trigger .caret{font-size:8px;line-height:1;transition:transform .18s}
.acctmenu:hover .acct-trigger .caret{transform:rotate(180deg)}
.acct-dd{position:absolute;right:0;top:calc(100% + 9px);min-width:194px;background:var(--carbon);border:1px solid var(--line-2);border-radius:3px;display:none;flex-direction:column;z-index:950;overflow:hidden;box-shadow:0 16px 38px rgba(0,0,0,.5)}
.acctmenu:hover .acct-dd,.acct-dd:hover,.acct-trigger:focus + .acct-dd{display:flex}
.acct-dd a{padding:12px 17px;font-family:'Rajdhani',sans-serif;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--line);text-decoration:none;white-space:nowrap;transition:color .12s,background .12s}
.acct-dd a:first-child{border-top:0}
.acct-dd a:hover{color:var(--paper);background:rgba(212,17,17,.14)}
@media(max-width:920px){.acctmenu{display:none}}

/* ---- claim-this-profile CTA on competitor page ---- */
.claimcta{margin-top:16px}
.claimcta a{display:inline-flex;align-items:center;gap:7px;font-family:'Rajdhani',sans-serif;font-size:13px;font-weight:500;letter-spacing:.05em;color:var(--muted);border:1px solid var(--line-2);border-radius:3px;padding:9px 15px;text-decoration:none;transition:border-color .15s,color .15s,background .15s}
.claimcta a:hover{border-color:var(--orange);color:var(--paper);background:rgba(214,103,42,.08)}
.claimcta a span{color:var(--orange);font-weight:600;text-transform:uppercase;letter-spacing:.08em}

/* ---- competitor page: gear loadouts ---- */
.gearwrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:16px;margin-top:6px}
.gcard{border:1px solid var(--line-2);border-radius:5px;padding:16px 17px;background:rgba(255,255,255,.015)}
.gcard-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px;padding-bottom:11px;border-bottom:1px solid var(--line)}
.gcard-h h3{font-family:'Rajdhani',sans-serif;font-size:16px;font-weight:600;letter-spacing:.02em;color:var(--paper);margin:0}
.gchip{font-family:'Rajdhani',sans-serif;font-size:10px;letter-spacing:.10em;text-transform:uppercase;color:#ddd;border:1px solid var(--line-2);border-radius:2px;padding:2px 8px}
.gdiv{font-family:'Rajdhani',sans-serif;font-size:10px;letter-spacing:.10em;text-transform:uppercase;color:var(--orange);border:1px solid rgba(212,17,17,.45);border-radius:2px;padding:2px 8px}
.gplatrow{margin-top:12px}
.gplatrow:first-of-type{margin-top:4px}
.gplat-name{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;margin-bottom:6px}
.gplat-cls{font-family:'Rajdhani',sans-serif;font-size:11px;letter-spacing:.10em;text-transform:uppercase;color:var(--orange)}
.gplat-make{font-size:14px;font-weight:600;color:var(--paper)}
.gpartlist{display:flex;flex-direction:column;gap:5px;padding-left:2px}
.gpartitem{display:flex;gap:10px;font-size:13.5px;line-height:1.4}
.gcat-label{flex:0 0 116px;color:var(--muted-2);font-family:'Rajdhani',sans-serif;font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding-top:1px}
.gpart-val{color:#d7d7d7}
.gsponsor{font-family:'Rajdhani',sans-serif;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--orange);border:1px solid rgba(212,17,17,.5);border-radius:2px;padding:0 4px;vertical-align:1px;margin-left:3px}
.gpart-note{color:var(--muted-2);font-style:italic}
.ghist{margin-top:18px;border-top:1px solid var(--line);padding-top:12px}
.ghist summary{font-family:'Rajdhani',sans-serif;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);cursor:pointer}
.ghist summary:hover{color:var(--paper)}
.ghist ul{list-style:none;margin:12px 0 2px;padding:0;display:flex;flex-direction:column;gap:7px}
.ghist li{font-size:13px;color:#cfcfcf;line-height:1.4}
.ghist-d{font-family:'Rajdhani',sans-serif;font-size:11px;letter-spacing:.05em;color:var(--muted-2);margin-right:6px}
.ghist-a{font-family:'Rajdhani',sans-serif;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line-2);border-radius:2px;padding:0 5px;margin-right:5px;color:var(--muted)}
.ghist-create{color:#4ea36b;border-color:rgba(78,163,107,.5)}
.ghist-delete{color:#b06a3a;border-color:rgba(176,106,58,.5)}
@media(max-width:540px){.gearwrap{grid-template-columns:1fr}.gcat-label{flex-basis:96px}}

/* ---- legal / privacy page ---- */
.legalwrap{padding:46px 0 60px}
.legalwrap h1{font-family:'Rajdhani',sans-serif;font-size:34px;letter-spacing:.01em;margin:0 0 14px}
.legalwrap .legal-lead{font-size:16px;color:var(--muted);line-height:1.6;max-width:720px;margin-bottom:26px}
.legalwrap h2{font-family:'Rajdhani',sans-serif;font-size:16px;letter-spacing:.04em;text-transform:uppercase;color:var(--orange);margin:26px 0 8px}
.legalwrap p{font-size:15px;color:#d2d2d2;line-height:1.65;max-width:720px}
.legalwrap a{color:var(--orange)}

/* ---- Phase 3: live match UI ---- */
.livedot { color:#ff4d3d; font-family:'Rajdhani',sans-serif; letter-spacing:.08em; font-weight:700; }
.livedot::before { content:''; display:inline-block; width:8px; height:8px; border-radius:50%; background:#ff4d3d; margin-right:6px; vertical-align:1px; animation:aglive 1.4s ease-in-out infinite; }
@keyframes aglive { 0%,100%{opacity:1} 50%{opacity:.25} }
.livebar { display:block; background:#160d0c; border-bottom:1px solid #3a1815; color:var(--paper,#eee); text-align:center; padding:10px 16px; font-size:14px; text-decoration:none; }
.livebar:hover { background:#1e100e; }
.match-card.islive { box-shadow:0 0 0 1px #ff4d3d33 inset; }
.stagebk { margin:8px 0 4px; }
.stagebk > summary { cursor:pointer; color:var(--muted,#999); font-family:'Rajdhani',sans-serif; letter-spacing:.05em; padding:8px 4px; }
.stagebk > summary:hover { color:var(--paper,#eee); }
.stagebk[open] > summary { color:var(--paper,#eee); }

/* ---- Division tab bar: arrows instead of a scrollbar ---- */
.tabs{overflow:visible}
.tabs .wrapt{overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth}
.tabs .wrapt::-webkit-scrollbar{display:none}
.tabarrow{position:absolute;top:0;bottom:0;width:46px;display:flex;align-items:center;justify-content:center;
  border:0;cursor:pointer;z-index:3;color:var(--muted);font-size:26px;line-height:1;
  font-family:'Rajdhani',sans-serif;padding:0 0 4px}
.tabarrow.left{left:0;background:linear-gradient(90deg,rgba(20,20,20,.97) 55%,rgba(20,20,20,0))}
.tabarrow.right{right:0;background:linear-gradient(270deg,rgba(20,20,20,.97) 55%,rgba(20,20,20,0))}
.tabarrow:hover{color:var(--orange)}
.tabarrow[hidden]{display:none}

/* ---- Division stage tabs (event page) ---- */
.stagenav-box{position:relative;margin:12px 0 14px}
.stagenav{display:flex;gap:6px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth}
.stagenav::-webkit-scrollbar{display:none}
.stagenav-box .tabarrow{width:34px;font-size:20px}
.stagenav-box .tabarrow.left{background:linear-gradient(90deg,rgba(28,28,28,.97) 55%,rgba(28,28,28,0))}
.stagenav-box .tabarrow.right{background:linear-gradient(270deg,rgba(28,28,28,.97) 55%,rgba(28,28,28,0))}
.snbtn{font-family:'Rajdhani',sans-serif;font-size:12px;letter-spacing:.07em;text-transform:uppercase;
  padding:7px 13px;border:1px solid var(--line-2);color:var(--muted);background:none;cursor:pointer}
.snbtn:hover{color:var(--paper)}
.snbtn.on{background:var(--orange);border-color:var(--orange);color:#fff}
.stagepanel[hidden]{display:none}

/* ---------- Phase 5: sub-series + affiliate switcher ---------- */
.sbtn.sub{font-size:11px;opacity:.75;padding:7px 12px}
.sbtn.sub.on{opacity:1}
.affswitch{flex-basis:100%;display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}

/* ---------- Phase 5: live progress + projection ---------- */
.stg-done{color:#4ade80;font-weight:600}
.stg-part{color:var(--muted)}
.proj-cell{color:var(--muted);font-style:italic}
.proj-cell .proj-pl{color:var(--orange-bright,#ff8a3d);font-style:normal;font-size:11px;margin-left:4px}

/* ---------- Phase 5: sticky table headers on mobile ----------
   .tbl-wrap's overflow-x:auto makes it the scroll container, so the existing
   th{position:sticky;top:0} can only stick against INTERNAL scroll. On small
   screens we bound the wrapper's height so long division tables scroll inside
   it (both axes) and the header row stays pinned. Short tables are unaffected
   (content shorter than the cap = no inner scroll). */
@media(max-width:760px){
  .tbl-wrap{max-height:72vh;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
  .tbl-wrap table.lb th{z-index:3;box-shadow:0 1px 0 var(--line)}
}

/* ---------- Phase 6: team rows ---------- */
.nm .teamname{display:block;font-weight:600}
.nm .teammembers{display:block;font-size:11px;color:var(--muted);margin-top:1px}
/* Phase 7: Match Staff separator on live boards */
table.lb tr.staffsep td{padding:14px 10px 8px;border-top:2px solid var(--line-2);background:transparent}
table.lb tr.staffsep .staffsep-label{font-family:'Rajdhani',sans-serif;font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--orange)}
table.lb tr.staffsep .staffsep-note{margin-left:12px;font-size:12px;color:var(--muted-2)}
table.lb tr.staffrow td{color:var(--muted)}
table.lb tr.staffrow td.nm a{color:var(--muted)!important}
