*[hidden],[hidden]{display:none !important}
*{box-sizing:border-box}html{scroll-behavior:smooth;overscroll-behavior:none;overscroll-behavior-y:none;overflow-x:hidden;max-width:100%}:root{--page:#07121c;--page2:#091824;--surface:rgba(18,38,52,.68);--raised:rgba(28,51,66,.78);--gold:#f4ba1d;--gold2:#ffd568;--gold-soft:rgba(244,186,29,.12);--text:#f7f9fb;--muted:#8999a8;--line:rgba(255,255,255,.075);--green:#69dc9a;--red:#ff7380;--shadow:0 30px 80px rgba(0,0,0,.28)}body{margin:0;min-height:100vh;min-height:100dvh;background:radial-gradient(circle at 80% 10%,#112c3c 0,transparent 28%),linear-gradient(180deg,var(--page),#081621 55%,#050e16);color:var(--text);font:15px/1.5 Arial,sans-serif;overflow-x:hidden;max-width:100%;overscroll-behavior:none;overscroll-behavior-y:none}.topbar,main,footer{width:min(1240px,calc(100% - 48px));margin:auto}.topbar{height:64px;display:flex;align-items:center;border-bottom:1px solid var(--line);position:relative;z-index:5}.brand{display:flex;align-items:center;gap:11px;color:var(--text);text-decoration:none;font-weight:900;letter-spacing:.08em}.brand img{width:38px;height:38px;object-fit:contain}.nav-tabs{display:flex;gap:4px;margin:auto;background:rgba(255,255,255,.035);border:1px solid var(--line);border-radius:99px;padding:4px}.tab{border:0;background:none;color:var(--muted);padding:8px 18px;border-radius:99px;cursor:pointer;font:700 11px Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}.tab.active{background:var(--gold);color:#09141c}.tab-panel{padding:6px 0 12px}.retry{border:1px solid var(--gold);background:transparent;color:var(--gold);padding:6px 12px;border-radius:99px;cursor:pointer;font:700 11px Arial,sans-serif;margin-left:10px}.retry:hover{background:var(--gold);color:#09141c}.live{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px;letter-spacing:.12em}.live i{width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 14px var(--gold)}.live.stale i{background:var(--red)}main{position:relative;z-index:1}button{font:700 12px Arial,sans-serif;letter-spacing:.06em}.record-panel{position:absolute;left:0;right:0;bottom:24px;min-height:105px;background:linear-gradient(110deg,rgba(21,43,57,.84),rgba(13,30,42,.74));backdrop-filter:blur(22px);border:1px solid var(--line);border-radius:26px;display:grid;grid-template-columns:1.3fr repeat(4,1fr);align-items:center;padding:18px 24px;box-shadow:var(--shadow)}.record-main{display:flex;align-items:baseline;gap:14px;padding-right:28px;border-right:1px solid var(--line)}.record-main strong{font-size:54px;letter-spacing:-.05em}.record-main span,.record-stat span{color:var(--muted);font-size:10px;letter-spacing:.13em}.record-stat{padding:0 28px}.record-stat strong{display:block;font-size:25px;white-space:nowrap;letter-spacing:-.03em}.record-stat em{font-style:normal;color:var(--muted);font-size:12px}.skeleton>div:not(.form-dots){height:60px;border-radius:14px;background:linear-gradient(90deg,#102432,#1b3849,#102432);background-size:200%;animation:pulse 1.4s infinite}.muted{color:var(--muted)}.filters{display:flex;padding:4px;background:rgba(255,255,255,.035);border:1px solid var(--line);border-radius:99px}.filters button{border:0;background:none;color:var(--muted);padding:9px 15px;border-radius:99px;cursor:pointer}.filters button.active{background:var(--text);color:var(--page)}#filters button[data-filter="league"]{color:var(--gold);font-weight:800}#filters button[data-filter="league"].active{background:var(--gold);color:#09141c}.match-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.match{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:128px;padding:22px 24px;background:var(--surface);border:1px solid var(--line);border-radius:21px;overflow:hidden;transition:.22s;cursor:pointer}.match:hover{transform:translateY(-3px);background:var(--raised);box-shadow:0 20px 45px rgba(0,0,0,.18)}.match:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.match.open{grid-column:1/-1}.match:after{content:"";position:absolute;inset:auto 0 0;height:2px;background:transparent}.match.win:after{background:linear-gradient(90deg,transparent,var(--gold),transparent)}.match .meta{position:absolute;top:12px;left:20px;display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.match-date{color:var(--muted);font-size:11px;font-weight:700}.match-tag{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:99px;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;line-height:1.2}.match-league-logo{height:13px;max-width:20px;object-fit:contain;vertical-align:middle}.match-tag.tag-league{background:rgba(244,186,29,.14);border:1px solid rgba(244,186,29,.4);color:var(--gold)}.match-tag.tag-season{background:rgba(78,168,222,.14);border:1px solid rgba(78,168,222,.35);color:#64b5f6}.match-tag.tag-friendly{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);color:#b0bec5}.match-tag.tag-playoff{background:rgba(255,159,67,.14);border:1px solid rgba(255,159,67,.4);color:#ff9f43}.chev{position:absolute;right:18px;bottom:12px;color:var(--muted);font-size:14px;transition:transform .22s}.match.open .chev{transform:rotate(180deg);color:var(--gold)}.match .team{font-weight:800;font-size:15px;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:18px 14px 0}.match .virtua{color:var(--gold);text-align:right}.score{margin-top:18px;padding:8px 14px;border-radius:12px;background:rgba(255,255,255,.055);font-size:20px;font-weight:900;font-variant-numeric:tabular-nums}.badge{position:absolute;top:12px;right:18px;font-size:12px;font-weight:800;padding:2px 8px;border-radius:6px}.badge.W{background:rgba(105,220,154,.15);color:var(--green)}.badge.L{background:rgba(255,115,128,.15);color:var(--red)}.badge.D{background:rgba(255,255,255,.08);color:var(--muted)}.match-detail{grid-column:1/-1;display:none;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.match.open .match-detail{display:block;animation:fadeSlide .24s ease}.official-match-link-bar{margin-top:12px;display:flex;justify-content:flex-end}.official-link{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:8px;background:rgba(244,186,29,.12);border:1px solid rgba(244,186,29,.35);color:var(--gold);font-size:11px;font-weight:800;text-decoration:none;letter-spacing:.06em;transition:.18s}.official-link:hover{background:var(--gold);color:#09141c;box-shadow:0 0 12px rgba(244,186,29,.3)}.detail-strip{display:flex;gap:24px;flex-wrap:wrap;margin-bottom:16px;padding:12px 16px;background:rgba(255,255,255,.02);border-radius:14px;border:1px solid var(--line)}.strip-item span{display:block;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px}.strip-item strong{font-size:18px;font-weight:900;font-variant-numeric:tabular-nums;color:var(--text)}.strip-item strong.opp-motm{color:#ff9f43}.strip-item strong.our-motm{color:var(--green)}.detail-table{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:14px;border:1px solid var(--line);background:rgba(12,29,40,.4)}.dt-head,.dt-row{display:grid;grid-template-columns:2fr 1fr repeat(6,.8fr);gap:10px;align-items:center;min-width:620px;padding:10px 14px}.dt-head{color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;background:rgba(255,255,255,.03);border-bottom:1px solid var(--line)}.dt-row{background:transparent;margin-top:0;border-bottom:1px solid rgba(255,255,255,.03);font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;transition:background .15s}.dt-row:last-child{border-bottom:none}.dt-row:hover{background:rgba(255,255,255,.03)}.dt-row.mom{background:rgba(244,186,29,.14);box-shadow:inset 3px 0 0 var(--gold)}.dt-row.red .dt-name{color:var(--red)}.dt-name{font-weight:700;font-size:14px;color:var(--text)}.dt-pos{color:var(--muted);text-transform:uppercase;font-size:13px}.dt-stat{font-size:14px;font-variant-numeric:tabular-nums}.dt-row.mom .dt-name:before{content:"★ ";color:var(--gold)}@keyframes fadeSlide{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.podium{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.player-card{position:relative;min-height:210px;padding:26px;border-radius:24px;background:linear-gradient(145deg,var(--raised),var(--surface));border:1px solid var(--line);overflow:hidden}.player-card:first-child{background:linear-gradient(145deg,rgba(244,186,29,.18),var(--surface));border-color:rgba(244,186,29,.3)}.rank{font-size:76px;line-height:.8;font-weight:900;color:rgba(255,255,255,.045);position:absolute;right:14px;top:17px}.player-card p{color:var(--muted);font-size:10px;letter-spacing:.12em;margin:0}.player-card h3{font-size:24px;margin:10px 0 28px;position:relative}.player-numbers{display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px 28px}.player-numbers>div{text-align:center}.player-numbers strong{font-size:25px;display:block}.player-numbers span{color:var(--muted);font-size:9px;letter-spacing:.1em}.squad-list{border:1px solid var(--line);border-radius:22px;overflow:hidden;background:rgba(12,29,40,.6)}.squad-head,.squad-row{display:grid;grid-template-columns:2fr 1.2fr repeat(4,.65fr);align-items:center;padding:14px 22px}.squad-head{color:var(--muted);font-size:9px;letter-spacing:.12em;background:rgba(255,255,255,.025)}.squad-head .sort-btn{font:inherit;letter-spacing:inherit;text-transform:inherit;background:none;border:0;padding:0;margin:0;color:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:5px;font-weight:800}.squad-head .sort-btn:hover{color:var(--text)}.squad-head .sort-btn.active{color:var(--gold)}.squad-head .sort-btn:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}.sort-arrow{font-size:8px;line-height:1;opacity:.9}.squad-row{border-top:1px solid var(--line);transition:.15s}.squad-row:hover{background:rgba(255,255,255,.025)}.squad-row strong{color:var(--text)}.squad-row span:not(:first-child){font-variant-numeric:tabular-nums}.position{color:var(--muted);text-transform:capitalize}footer{border-top:1px solid var(--line);min-height:56px;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:10px;letter-spacing:.12em}.error{margin-top:20px;padding:16px 20px;border-radius:15px;background:rgba(255,115,128,.1);border:1px solid rgba(255,115,128,.22);color:#ffc7cc}.empty{grid-column:1/-1;padding:40px;text-align:center;border:1px dashed var(--line);border-radius:20px;color:var(--muted)}@keyframes pulse{to{background-position:-200%}}.topbar-right{display:flex;align-items:center;gap:10px;margin-left:auto}.topbar-right select{background:#0b1723;color:var(--text);border:1px solid var(--line);border-radius:10px;padding:7px 10px;font:600 11px Arial,sans-serif;cursor:pointer}.topbar-right button{border:1px solid var(--gold);background:transparent;color:var(--gold);padding:7px 12px;border-radius:99px;cursor:pointer;font:700 11px Arial,sans-serif}.topbar-right button:hover{background:var(--gold);color:#09141c}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding:18px 0 12px;border-bottom:1px solid var(--line)}.page-head-main h1{font-size:24px;letter-spacing:.04em;margin:0;font-weight:900;color:var(--text);text-transform:uppercase}.page-desc{margin:3px 0 0;color:var(--muted);font-size:12px;letter-spacing:.02em}.page-meta .meta-line{margin:0;color:var(--muted);font-size:11px;letter-spacing:.08em;text-align:right}#squad-source button[data-source="league"]{color:var(--gold);font-weight:800}#squad-source button[data-source="league"].active{background:var(--gold);color:#09141c}.hero-grid{display:grid;grid-template-columns:1.3fr 1.15fr 1fr;gap:12px;margin-top:14px}.cell{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:14px 16px;min-height:144px;display:flex;flex-direction:column;justify-content:space-between}.record-cell{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:14px 16px;min-height:144px;display:flex;flex-direction:column;justify-content:space-between}.record-content{display:flex;flex-direction:column;justify-content:space-between;gap:10px;flex:1;margin-top:2px}.rc-hero{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 2px 4px}.rc-metric-hero{display:flex;flex-direction:column;gap:3px}.rc-metric-hero.rc-rec-box{align-items:flex-end;text-align:right}.rc-wr{font-size:32px;font-weight:900;line-height:1;letter-spacing:-.04em;color:var(--text);font-variant-numeric:tabular-nums}.rc-rec{font-size:15px;font-weight:800;color:var(--gold);letter-spacing:-.01em;font-variant-numeric:tabular-nums;white-space:nowrap}.rc-lbl{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);line-height:1.2}.rc-divider{width:1px;height:32px;background:var(--line)}.rc-stats-grid{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:8px;background:rgba(255,255,255,.028);border:1px solid var(--line);border-radius:12px;padding:8px 12px;align-items:center}.rc-stat{display:flex;flex-direction:column;gap:3px;text-align:left}.rc-stat-center{text-align:center}.rc-stat-right{text-align:right}.rc-val{font-size:15px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.rc-gd.positive{color:var(--green)}.rc-gd.negative{color:var(--red)}.rc-form-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:2px}.form-dots{display:flex;gap:4.5px;align-items:center;flex-wrap:nowrap}.form-dots .dot{width:18px;height:18px;border-radius:5px;font-size:9px;font-weight:800;display:grid;place-items:center;line-height:1}.form-dots .dot.W{background:rgba(105,220,154,.18);color:var(--green);border:1px solid rgba(105,220,154,.3)}.form-dots .dot.L{background:rgba(255,115,128,.18);color:var(--red);border:1px solid rgba(255,115,128,.3)}.form-dots .dot.D{background:rgba(255,255,255,.08);color:var(--muted);border:1px solid rgba(255,255,255,.12)}.dot-label{color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.12em;white-space:nowrap}.cell-title{font-size:9px;letter-spacing:.14em;color:var(--muted);margin:0 0 8px;display:flex;align-items:center;justify-content:space-between}.form-rows{display:flex;flex-direction:column;justify-content:space-between;gap:6px;flex:1;margin-top:2px}.form-row-item{display:grid;grid-template-columns:22px 1fr 46px;gap:8px;align-items:center;font-size:12px;padding:1px 0}.opp-wrap{display:flex;align-items:center;gap:7px;min-width:0;overflow:hidden}.opp-wrap .opp{color:var(--text);font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.form-league-logo{height:14px;max-width:22px;object-fit:contain;flex-shrink:0;opacity:.9}.form-row-item .badge{position:static;width:20px;height:20px;line-height:20px;text-align:center;border-radius:6px;font-size:10px;font-weight:700}.form-row-item .badge.W{background:rgba(105,220,154,.15);color:var(--green)}.form-row-item .badge.L{background:rgba(255,115,128,.15);color:var(--red)}.form-row-item .badge.D{background:rgba(255,255,255,.08);color:var(--muted)}.form-row-item .score{font-size:12px;font-weight:600;margin:0;padding:0;background:none;border-radius:0;text-align:right;font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap}.head-row{display:flex;align-items:center;gap:16px;margin:10px 0 14px}.head-title{font-size:15px;letter-spacing:.1em;margin:0}.head-row .muted{margin-left:auto}.hero-grid .record-panel{position:relative;inset:auto;min-height:144px;display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:20px}.hero-grid .record-panel .record-main{display:flex;align-items:baseline;gap:10px;padding-right:14px;border-right:1px solid var(--line)}.hero-grid .record-panel .record-main strong{font-size:38px}.hero-grid .record-panel .record-stat{padding:0 14px}.hero-grid .record-panel .record-stat strong{font-size:19px}.hero-grid .record-panel .record-stat span{font-size:9px}.band-label{font-size:9px;letter-spacing:.16em;color:var(--gold);margin:18px 0 -4px;font-weight:800}.leagues-band{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:12px}.league-squircle{background:var(--surface);border:1px solid var(--line);border-radius:28px;padding:12px 14px;min-height:245px;display:flex;flex-direction:column}.lg-title{font-size:10px;letter-spacing:.12em;color:var(--gold);margin:0 0 8px;font-weight:800}.mini-table{display:flex;flex-direction:column;gap:2px;flex:1}.mini-head,.mini-row{display:grid;grid-template-columns:22px 1fr 24px 44px 28px;gap:3px;align-items:center;padding:3px 5px;border-radius:7px;font-size:11px}.mini-head{color:var(--muted);font-size:8px;letter-spacing:.1em;font-weight:800}.mini-row .mpts{text-align:right;font-weight:800}.mini-row{min-width:0}.mini-row .mpos{color:var(--muted);font-variant-numeric:tabular-nums}.mini-row .mclub{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase}.mini-row .mwd{color:var(--muted);font-variant-numeric:tabular-nums}.mini-row.us{background:rgba(244,186,29,.14);border:1px solid rgba(244,186,29,.35)}.mini-row.us .mclub{color:var(--gold);font-weight:800}.as-of{margin-top:auto;padding-top:8px;color:var(--muted);font-size:8px;letter-spacing:.1em}.badge-league{display:inline-block;border:1px solid rgba(244,186,29,.4);background:var(--gold-soft);border-radius:99px;padding:1px 7px;font-size:8px;letter-spacing:.08em;font-weight:800;color:var(--gold);vertical-align:middle}.badge-career{display:inline-block;border:1px solid var(--line);background:rgba(255,255,255,.04);border-radius:99px;padding:1px 7px;font-size:8px;letter-spacing:.08em;font-weight:700;color:var(--muted);vertical-align:middle}.record-career-badge{position:absolute;top:10px;right:12px;margin:0}.form-dots{display:flex;gap:4px;margin-top:10px;align-items:center;flex-basis:100%}.form-dots .dot{width:16px;height:16px;border-radius:5px;font-size:9px;font-weight:800;display:grid;place-items:center}.form-dots .dot.W{background:rgba(105,220,154,.16);color:var(--green)}.form-dots .dot.L{background:rgba(255,115,128,.16);color:var(--red)}.form-dots .dot.D{background:rgba(255,255,255,.09);color:var(--muted)}.form-dots .dot-label{margin-left:6px;color:var(--muted);font-size:8px;letter-spacing:.12em}.performers{display:flex;flex-direction:column;justify-content:space-between;gap:6px;flex:1;margin-top:2px}.performer{display:grid;grid-template-columns:24px 1fr auto;gap:8px;align-items:center;background:rgba(255,255,255,.03);border-radius:12px;padding:9px 11px}.performer:first-child{background:rgba(244,186,29,.12);border:1px solid rgba(244,186,29,.3)}.performer-rank{font-size:15px;font-weight:900;color:var(--muted)}.performer:first-child .performer-rank{color:var(--gold)}.performer-name{font-weight:800;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.performer-role{color:var(--muted);font-weight:600}.performer-stats{text-align:right;font-size:12px;color:var(--gold);font-weight:800;white-space:nowrap;font-variant-numeric:tabular-nums}.stats-squircle-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:12px}.stat-squircle{background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:14px 16px;min-height:104px;display:flex;flex-direction:column;justify-content:space-between;transition:.22s}.stat-squircle:hover{transform:translateY(-2px);background:var(--raised)}.sq-head{display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:.12em;color:var(--muted);font-weight:800}.sq-value{display:block;font-size:26px;font-weight:900;letter-spacing:-.03em;color:var(--text);font-variant-numeric:tabular-nums;margin:4px 0 2px}.sq-sub{display:block;font-size:10px;color:var(--muted);letter-spacing:.04em}.standings-table{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:10px;margin-top:10px;box-shadow:var(--shadow)}.stale-chip{color:var(--red);border:1px solid rgba(255,115,128,.35);background:rgba(255,115,128,.1);border-radius:99px;padding:3px 10px;font-size:10px;font-weight:800;letter-spacing:.1em;margin-left:8px}.st-head,.st-row{display:grid;grid-template-columns:52px minmax(200px,2.5fr) repeat(7,minmax(46px,.72fr)) 64px;gap:6px;align-items:center;padding:14px 18px;border-radius:12px;min-width:740px}.st-head{color:var(--muted);font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;background:rgba(255,255,255,.025);border-bottom:1px solid var(--line);margin-bottom:4px}.st-head .st-col-pos{text-align:center}.st-head .st-col-club{text-align:left}.st-head .st-col-stat{text-align:center}.st-head .st-col-pts{text-align:right;color:var(--text);font-weight:900}.st-row{background:transparent;margin-top:2px;font-size:15px;font-variant-numeric:tabular-nums;transition:background .15s}.st-row:hover{background:rgba(255,255,255,.035)}.st-row .st-pos{text-align:center;font-weight:700;color:var(--muted);font-size:15px}.st-row .st-club{font-weight:800;font-size:15px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;letter-spacing:.02em}.st-row .st-stat{text-align:center;font-weight:600;color:#bac8d5;font-size:15px}.st-row .st-pts{text-align:right;font-weight:900;font-size:17px;color:var(--text)}.st-row.us{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.22);box-shadow:0 2px 10px rgba(0,0,0,.25)}.st-row.us .st-pos{font-weight:800;color:var(--text)}.st-row.us .st-club{font-weight:800;color:var(--gold)}.st-row.us .st-stat{font-weight:700;color:var(--text)}.st-row.us .st-pts{font-weight:800;font-size:15px;color:var(--text)}.hero-grid .record-panel .form-dots{flex-basis:100%}@media(max-width:1100px){.hero-grid .record-panel{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 14px;align-items:stretch;min-height:0}.hero-grid .record-panel .record-main{grid-column:1/-1;display:flex;justify-content:space-between;align-items:baseline;border:0;border-bottom:1px solid var(--line);padding:0 0 10px}.hero-grid .record-panel .record-stat{padding:6px 0}.hero-grid .record-panel .record-stat strong{font-size:18px}}@media(max-width:900px){.record-panel{grid-template-columns:1fr 1fr}.record-main{grid-column:1/-1;border:0;border-bottom:1px solid var(--line);padding:0 0 13px}.record-stat{padding:12px 8px}.match-grid{grid-template-columns:1fr}.hero-grid{grid-template-columns:1fr}.leagues-band{grid-template-columns:1fr 1fr}.stats-squircle-grid{grid-template-columns:1fr 1fr}.form-row-item{grid-template-columns:20px 1fr 40px}.opp-wrap .opp{font-size:11px}.form-league-logo{height:12px;max-width:18px}.hero-grid .record-panel{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 14px;align-items:stretch;min-height:0}.hero-grid .record-panel .record-main{grid-column:1/-1;display:flex;justify-content:space-between;align-items:baseline;border:0;border-bottom:1px solid var(--line);padding:0 0 10px}.hero-grid .record-panel .record-stat{padding:6px 0}.hero-grid .record-panel .record-stat strong{font-size:18px}.hero-grid .record-panel .form-dots{grid-column:1/-1}}@media(max-width:640px){.topbar,main,footer{width:calc(100% - 28px)}.topbar{height:60px}.record-panel{bottom:12px;border-radius:20px;padding:16px}.record-main strong{font-size:42px}.record-stat{padding:8px}.match{padding:20px 14px;min-height:115px}.match .meta{top:10px;left:14px;gap:6px}.match-tag{font-size:9px;padding:1px 6px;gap:4px}.match-league-logo{height:11px;max-width:16px}.match .team{font-size:13px;padding-inline:6px}.score{font-size:16px;padding:6px 10px}.podium{grid-template-columns:1fr}.player-card{min-height:150px}footer{flex-wrap:wrap;gap:10px;padding:25px 0}.page-head{flex-direction:column;align-items:flex-start;gap:6px;padding:14px 0 10px}.page-head-main h1{font-size:20px}.page-meta .meta-line{text-align:left}.topbar-right .live{font-size:0}.brand span{display:none}.tab{padding:6px 10px;font-size:10px}.topbar-right{gap:6px}.topbar-right button{padding:6px 9px}.topbar-right select{display:none}.leagues-band{grid-template-columns:1fr}.stats-squircle-grid{grid-template-columns:1fr}.mini-head,.mini-row{grid-template-columns:18px 1fr 24px 40px 26px}.tab{padding:5px 7px;font-size:9px}.topbar-right{gap:4px}.topbar-right button{padding:5px 8px}}@media(max-width:640px){.dt-head,.dt-row{min-width:620px;font-size:12px;padding:8px 10px}.dt-name,.dt-pos,.dt-stat{font-size:12px}.detail-strip{gap:16px;padding:10px 12px}.strip-item strong{font-size:16px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}/* === v2 design system (desktop pass) — appended by Hermes 2026-08-16 === */
:root{
  --page:#050d15; --page2:#0a1622;
  --surface:#0e1f2e; --raised:#122636;
  --text:#eef3f8; --muted:#9fb1c4;
  --line:rgba(148,178,204,.14);
  --accent:#69dc9a; --danger:#ff7380; --text-3:#7d93ab;
  --zone-up:rgba(105,220,154,.08); --zone-down:rgba(255,115,128,.08);
  --pos-gk:#f4ba1d; --pos-def:#6aa9ff; --pos-mid:#69dc9a; --pos-fwd:#ff7380;
  --font:'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --s4:4px;--s8:8px;--s12:12px;--s16:16px;--s20:20px;--s24:24px;--s32:32px;--s40:40px;--s48:48px;
  --r6:6px;--r8:8px;--r10:10px;
  --topbar-h:56px;
}
@media(max-width:640px){
  .concept-matchup{font-size:15px;gap:7px}.concept-strip-row{grid-template-columns:auto auto auto minmax(0,1fr);gap:6px}.concept-strip-row .concept-time{grid-column:1/-1;text-align:left}.concept-split{display:flex;flex-direction:column;align-items:stretch}.split-timer{gap:5px}
  :root{
    --topbar-h:calc(env(safe-area-inset-top) + 56px);
  }
}
html,body{font-family:var(--font);font-size:14px;line-height:1.5;font-weight:400;color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;text-size-adjust:100%}
.title-short{display:none}
.title-full{display:inline}
h1{font-size:24px;font-weight:700;letter-spacing:-.01em;line-height:1.25}
h2{font-size:20px;font-weight:700;letter-spacing:-.01em;line-height:1.25}
h3{font-size:16px;font-weight:600}
/* data numerics stay column-aligned */
.sq-value,.record-content,.form-rows,.performers,.mini-table,.standings-table,#squad-body,.match-grid{font-variant-numeric:tabular-nums}

.page-head-main h1{font-size:24px;font-weight:700;letter-spacing:-.01em}
/* === Topbar & Header Navigation Styling === */
.topbar{position:fixed;top:0;left:0;right:0;width:100%;height:var(--topbar-h);background:rgba(5,13,21,.85);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border-bottom:1px solid rgba(148,178,204,.12);box-shadow:0 4px 24px rgba(0,0,0,.35);z-index:50;touch-action:none;overscroll-behavior:none;-webkit-user-select:none;user-select:none;display:flex;align-items:center}
main{margin-top:var(--topbar-h)}

/* Brand Identity Lockup */
.topbar .brand{display:inline-flex;align-items:center;gap:12px;margin-left:max(24px,calc((100vw - 1240px)/2));text-decoration:none;transition:opacity .18s ease}
.brand-crest-wrap{position:relative;width:34px;height:34px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.brand-crest{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 8px rgba(0,0,0,.5));transition:transform .22s cubic-bezier(.34,1.56,.64,1)}
.brand-crest-glow{position:absolute;inset:-4px;background:radial-gradient(circle,rgba(244,186,29,.35) 0%,transparent 70%);border-radius:50%;opacity:0;transition:opacity .25s ease;pointer-events:none}
.topbar .brand:hover .brand-crest{transform:scale(1.08)}
.topbar .brand:hover .brand-crest-glow{opacity:1}
.brand-titles{display:flex;align-items:center;gap:8px}
.brand-name{font-size:14px;font-weight:800;letter-spacing:.08em;color:var(--text);text-shadow:0 1px 3px rgba(0,0,0,.4)}
.brand-sub-badge{font-size:9px;font-weight:800;letter-spacing:.08em;color:var(--gold);background:rgba(244,186,29,.12);border:1px solid rgba(244,186,29,.32);padding:1px 6px;border-radius:99px;text-transform:uppercase}

/* Desktop Segmented Pill Tabstrip */
.nav-tabs{display:inline-flex;align-items:center;gap:3px;margin:0 auto;padding:4px;background:rgba(9,22,35,.72);border:1px solid rgba(148,178,204,.14);border-radius:99px;box-shadow:inset 0 1px 2px rgba(0,0,0,.35),0 4px 16px rgba(0,0,0,.25);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.tab{display:inline-flex;align-items:center;gap:7px;border:0;background:transparent;color:var(--muted);padding:7px 15px;border-radius:99px;cursor:pointer;font:600 12px/1 var(--font);letter-spacing:.03em;transition:color .18s ease,background .18s ease,box-shadow .18s ease,transform .12s ease;white-space:nowrap;user-select:none;-webkit-user-select:none}
.nav-tab-icon{width:14px;height:14px;stroke:currentColor;stroke-width:2;opacity:.72;flex-shrink:0;transition:stroke .18s ease,opacity .18s ease,transform .18s ease}
.tab:hover:not(.active){color:var(--text);background:rgba(255,255,255,.06)}
.tab:hover:not(.active) .nav-tab-icon{opacity:1;stroke:var(--text);transform:translateY(-1px)}
.tab.active{background:linear-gradient(135deg,#f7c948 0%,#dca206 100%);color:#061019;font-weight:700;box-shadow:0 3px 12px rgba(244,186,29,.35),inset 0 1px 0 rgba(255,255,255,.45)}
.tab.active .nav-tab-icon{stroke:#061019;opacity:1;stroke-width:2.2}
.tab:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

.topbar .topbar-right{margin-right:max(24px,calc((100vw - 1240px)/2));display:flex;align-items:center;gap:10px}

/* Desktop relay health indicator */
.desktop-relay-status{display:inline-flex;align-items:center;gap:7px;min-width:82px;padding:5px 10px;background:rgba(12,28,44,.7);border:1px solid rgba(148,178,204,.16);border-radius:99px;color:var(--muted);box-shadow:inset 0 1px 2px rgba(0,0,0,.2),0 2px 8px rgba(0,0,0,.15);transition:background .2s ease,border-color .2s ease,color .2s ease}
.desktop-relay-copy{display:flex;flex-direction:column;gap:1px;line-height:1}
.desktop-relay-label{font-size:8px;font-weight:800;letter-spacing:.1em;color:var(--text-3)}
.desktop-relay-state{font-size:10px;font-weight:700;color:var(--accent)}
.desktop-relay-state.is-checking{color:var(--gold)}
.desktop-relay-state.is-offline{color:var(--danger)}
.desktop-relay-status:has(.relay-status-dot.is-offline){border-color:rgba(255,115,128,.35);background:rgba(255,115,128,.08)}
.relay-status-dot.is-checking .pulse-core{background:var(--gold)}
.relay-status-dot.is-checking .pulse-ring{border-color:var(--gold)}
.relay-status-dot.is-offline .pulse-core{background:var(--danger)}
.relay-status-dot.is-offline .pulse-ring{border-color:var(--danger)}
.relay-status-dot.is-offline .pulse-ring,.relay-status-dot.is-offline .pulse-core{animation:none}

/* Sync & Freshness Indicator Pill */
.sync-pill{display:inline-flex;align-items:center;gap:7px;padding:6px 13px;background:rgba(12,28,44,.7);border:1px solid rgba(148,178,204,.16);border-radius:99px;color:var(--muted);font:600 11px/1 var(--font);letter-spacing:.03em;cursor:default;user-select:none;-webkit-user-select:none;box-shadow:inset 0 1px 2px rgba(0,0,0,.2),0 2px 8px rgba(0,0,0,.15);transition:background .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease,transform .12s ease}
.sync-icon{width:12px;height:12px;stroke:currentColor;flex-shrink:0;display:block;transition:stroke .2s ease,transform .3s ease}

/* Pulsing Status Dot */
.status-pulse-dot{position:relative;width:8px;height:8px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.pulse-core{width:6px;height:6px;border-radius:50%;background:var(--accent)}
.pulse-ring{position:absolute;inset:-3px;border-radius:50%;border:1.5px solid var(--accent);opacity:0;animation:radar-pulse 2.2s cubic-bezier(.24,0,.38,1) infinite}

@keyframes radar-pulse{0%{transform:scale(.6);opacity:.9}100%{transform:scale(2.4);opacity:0}}

/* Admin Interactive State (only enabled when authenticated as admin) */
.sync-pill.is-admin-clickable{cursor:pointer}
.sync-pill.is-admin-clickable:hover{background:rgba(20,44,66,.88);border-color:rgba(244,186,29,.4);color:var(--text);box-shadow:0 2px 12px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.1)}
.sync-pill.is-admin-clickable:hover .sync-icon{stroke:var(--gold)}
.sync-pill.is-admin-clickable:active{transform:scale(.97)}
.sync-pill.is-admin-clickable:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

/* Ongoing Syncing State */
.sync-pill.is-syncing{pointer-events:none;border-color:rgba(244,186,29,.4);background:rgba(244,186,29,.1);color:var(--gold2)}
.sync-pill.is-syncing .pulse-core{background:var(--gold)}
.sync-pill.is-syncing .pulse-ring{border-color:var(--gold)}
.sync-pill.is-syncing .sync-icon{stroke:var(--gold);animation:sync-spin .75s cubic-bezier(.4,0,.2,1) infinite}

/* Failed Sync / Offline State */
.sync-pill.is-failed,.sync-pill.stale{border-color:rgba(255,115,128,.4);background:rgba(255,115,128,.1);color:var(--red)}
.sync-pill.is-failed .pulse-core,.sync-pill.stale .pulse-core{background:var(--red)}
.sync-pill.is-failed .pulse-ring,.sync-pill.stale .pulse-ring{border-color:var(--red)}
.sync-pill.is-failed .sync-icon,.sync-pill.stale .sync-icon{stroke:var(--red)}

@keyframes sync-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
/* === Page & Section Headers Styling === */
.page-head{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:6px;padding:16px 0 10px;border-bottom:1px solid rgba(148,178,204,.1);margin-bottom:8px}
.page-head-main{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:3px;width:100%}
.page-head-main h1{font-size:26px;font-weight:800;letter-spacing:-.02em;line-height:1.15;color:#ffffff;margin:0;text-align:left;text-shadow:0 2px 8px rgba(0,0,0,.35)}
.page-desc{font-size:13.5px;line-height:1.45;color:var(--muted);margin:0;text-align:left;max-width:680px}
.page-meta{display:flex;align-items:center;justify-content:flex-start;gap:8px;flex-wrap:wrap;margin-top:1px;width:100%}
.page-meta-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:99px;background:rgba(12,28,44,.6);border:1px solid rgba(148,178,204,.14);color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.02em;backdrop-filter:blur(8px)}
.meta-chip-icon{stroke:var(--muted);opacity:.8;flex-shrink:0}
.head-title{font-size:20px;font-weight:700;letter-spacing:-.01em;line-height:1.25}
.band-label{font-size:11px;font-weight:600;letter-spacing:.08em}
.filters button{font:600 13px var(--font);letter-spacing:.06em}
/* meta + controls legibility floor */
.badge-league{font-size:10px;font-weight:600;letter-spacing:.08em}
footer{margin:36px auto 0;padding:20px 0 24px;display:flex;justify-content:center;align-items:center;text-align:center;color:var(--muted);border-top:1px solid var(--line);font-size:11px;letter-spacing:.08em}

/* normalize filter-pill weight (ID rules below set 800) — keep gold emphasis, kill the weight jump */
#filters button,#filters button[data-filter="league"],#squad-source button,#squad-source button[data-source="league"]{font-weight:600}
/* === v2 overview hero/cards/league band (Task 3) — appended by Hermes 2026-08-16 === */
/* card system: 10px radius, 16px padding */
.record-cell,.form-cell,.hero-upcoming-cell,.performers-cell,.cell{border-radius:10px;padding:16px}
.rc-stats-grid{border-radius:8px}
.performer{border-radius:8px}
.league-squircle{border-radius:10px;min-height:200px;padding:14px 16px}
.stat-squircle{border-radius:10px}
/* legibility floor: lift 8-10px labels to >=11px */
.cell-title{font-size:11px;font-weight:600;letter-spacing:.1em}
.rc-lbl{font-size:11px;font-weight:600;letter-spacing:.1em}
.lg-title{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.1em}
.lg-logo{width:32px;height:24px;object-fit:contain;flex:0 0 32px}
.sq-head{font-size:11px;font-weight:600;letter-spacing:.1em}
.sq-sub{font-size:12px;display:flex;align-items:center;flex-wrap:wrap;gap:4px}
.sq-sub-logo{height:16px;width:auto;max-width:26px;object-fit:contain;vertical-align:middle;display:inline-block;flex-shrink:0}
.sq-standings-link{margin-left:auto;white-space:nowrap}
.sq-standings-link:hover{color:var(--gold2);text-decoration:underline}
.dot-label{font-size:11px;font-weight:600;letter-spacing:.1em}
.mini-head{font-size:11px;font-weight:600;letter-spacing:.08em}
/* data rows: 13px, weight hierarchy instead of all-800 */
.rc-rec{font-size:16px;font-weight:700}
.sq-value{font-size:24px;font-weight:700}
.form-row-item{font-size:13px}
.form-row-item .badge{font-size:11px;font-weight:700}
.opp-wrap .opp{font-size:13px;font-weight:600}
.form-row-item .score{font-size:13px;font-weight:600}
.performer-name{font-weight:600}
.mini-head,.mini-row{font-size:12px}
.mpts{font-weight:700}

/* lift remaining sub-11 overview text: as-of timestamps + W/D/L dots */
.as-of{font-size:11px;font-weight:600;letter-spacing:.08em}
.dot{font-size:11px;font-weight:700}

.form-dots .dot{font-size:11px;font-weight:700}
.form-dots .dot-label{font-size:11px;font-weight:600}
/* === v2 matches cards (Task 4) — appended by Hermes 2026-08-16 === */
.match-grid{display:flex;flex-direction:column;max-width:860px;margin:0 auto;gap:12px}
.match{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:84px;padding:16px 20px;background:var(--surface);border:1px solid var(--line);border-radius:10px;border-left:3px solid transparent;scroll-margin-top:calc(var(--topbar-h) + 12px);transition:background .2s ease,border-color .2s ease,box-shadow .2s ease,transform .18s ease;cursor:pointer}
.match:hover{transform:translateY(-2px);background:var(--raised);border-color:rgba(255,255,255,.16);box-shadow:0 8px 24px rgba(0,0,0,.25)}
.match.open{grid-column:auto;background:linear-gradient(180deg,var(--raised),var(--surface));border-color:rgba(244,186,29,.42);box-shadow:0 14px 36px rgba(0,0,0,.35),0 0 20px rgba(244,186,29,.08)}
.match.open:hover{transform:none}
.match:has(.badge.W){border-left-color:var(--accent)}
.match:has(.badge.L){border-left-color:var(--danger)}
.match:has(.badge.D){border-left-color:rgba(148,178,204,.4)}
.match .score{font-size:20px;font-weight:700}
.match .team{font-size:13px;font-weight:600}
.match-tag{font-size:11px;font-weight:600}
.match-tag.tag-awarded{background:rgba(105,220,154,.14);border:1px solid rgba(105,220,154,.35);color:var(--green);font-size:9.5px;font-weight:800;letter-spacing:.08em;padding:2px 7px;border-radius:99px}
.badge{font-weight:700}
.match-incomplete-banner{grid-column:1 / -1;margin:0 0 12px;padding:7px 10px;border:1px solid rgba(244,186,29,.38);border-radius:7px;background:rgba(244,186,29,.1);color:var(--gold2);font-size:10px;font-weight:800;letter-spacing:.1em;text-align:center}
.match-incomplete-banner.awarded{border-color:rgba(105,220,154,.35);background:rgba(105,220,154,.12);color:var(--green)}

/* Smooth Accordion Height Interpolation */
.match-detail-wrap{grid-column:1 / -1;display:grid;grid-template-rows:0fr;transition:grid-template-rows .32s cubic-bezier(.16,1,.3,1)}
.match.open .match-detail-wrap{grid-template-rows:1fr}
.match-detail{min-height:0;overflow:hidden;opacity:0;transform:translateY(-6px);transition:opacity .2s ease,transform .2s ease}
.match.open .match-detail{opacity:1;transform:translateY(0);margin-top:14px;padding-top:14px;border-top:1px solid var(--line);transition:opacity .26s cubic-bezier(.16,1,.3,1) .05s,transform .26s cubic-bezier(.16,1,.3,1) .05s}

.chev{position:absolute;right:18px;bottom:12px;color:var(--muted);font-size:13px;line-height:1;transition:transform .28s cubic-bezier(.16,1,.3,1),color .18s ease}
.match.open .chev{transform:rotate(180deg);color:var(--gold)}
.strip-item strong{font-size:16px;font-weight:700}
.dt-head{font-weight:600;letter-spacing:.08em}
.dt-stat{font-size:13px;font-weight:600}
.official-link{font-weight:600}
.editor-display-options{display:flex;flex-wrap:wrap;gap:8px 14px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.025)}
.editor-display-options legend{padding:0 5px;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.display-option-check{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:11px;font-weight:600}
.display-option-check input{accent-color:var(--gold)}
.display-option-banner{flex-basis:100%;color:var(--gold2)}
/* === v2 squad table + toolbar (Task 5) — appended by Hermes 2026-08-16 === */
.col-mobile,.col-mobile-chev{display:none !important}
.col-desktop{display:inline-flex !important}
.squad-list{border-radius:10px;border:1px solid var(--line);background:rgba(12,29,40,.6);overflow:hidden}
.squad-head{font-size:11px;font-weight:700;letter-spacing:.08em;border-bottom:1px solid var(--line);background:rgba(255,255,255,.025)}
.squad-head,.squad-row{display:grid;grid-template-columns:2.2fr repeat(7,1fr) 1.6fr;align-items:center;padding:12px 20px}
.squad-head .sort-btn{position:relative;width:100%;color:var(--muted);font:700 11px var(--font);letter-spacing:.04em;background:none;border:0;padding:0;margin:0;cursor:pointer;display:flex;align-items:center;justify-content:center;text-align:center;transition:color .15s ease}
.squad-head .sort-btn[data-sort="name"]{justify-content:flex-start;text-align:left}
.squad-head .sort-btn:hover{color:var(--text)}
.squad-head .sort-btn.active{color:var(--text)}
.squad-head .sort-arrow{position:absolute;left:calc(50% + 14px);font-size:8px;line-height:1;color:var(--muted);margin:0;pointer-events:none}
.squad-head .sort-btn[data-sort="name"] .sort-arrow{position:static;margin-left:4px}
.squad-head .sort-btn.active .sort-arrow{color:var(--text)}
#squad-body{font-size:13px}
.squad-row-wrapper{border-top:1px solid var(--line)}
.squad-row-wrapper:first-child{border-top:none}
.squad-row{border-top:none;transition:background .15s;font-size:13px;font-weight:600;cursor:default}
.squad-row:hover{background:rgba(255,255,255,.03)}
.squad-row strong.col-name{display:block;color:var(--text);font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}
.squad-row span{width:100%;display:flex;align-items:center;justify-content:center;text-align:center;margin:0;padding:0;font-variant-numeric:tabular-nums}
.squad-row .col-rating{color:var(--gold);font-weight:700}
.squad-row-detail{display:none !important}
.podium{gap:12px}
.player-card{border-radius:12px;padding:20px}
.rank{font-size:48px;font-weight:800}
.squad-leaders-head{display:flex;align-items:end;margin:18px 0 8px;padding:0 2px}
.squad-leaders-head h3{margin:0;color:var(--text);font-size:12px;font-weight:800;letter-spacing:.12em}
.squad-leaders-head span{display:block;margin-top:2px;color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.08em}
.podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:20px}
.player-card{min-width:0;background:var(--surface);border:1px solid var(--line);box-shadow:none;transition:background .15s,border-color .15s,transform .15s}
.player-card:hover{background:var(--raised);border-color:rgba(255,255,255,.16);transform:translateY(-2px)}
.player-card.leader{border-color:rgba(244,186,29,.42);background:linear-gradient(135deg,rgba(244,186,29,.1),var(--surface) 55%)}
.player-card .rank{display:block;margin-bottom:10px;color:var(--gold);font-size:14px;line-height:1;font-weight:800;letter-spacing:.08em}
.player-card p{margin:0 0 4px;color:var(--muted)}
.player-card h3{margin:0 0 16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:18px}
.player-numbers{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding-top:12px;border-top:1px solid var(--line)}
.player-numbers div{min-width:0}
.player-numbers strong,.player-numbers span{display:block}
.player-numbers strong{font-size:18px}
.player-numbers span{color:var(--muted);font-size:9px;letter-spacing:.08em}
.squad-head .sort-btn{font-weight:700}
/* === v2 standings table (Task 6) — updated for clear club focus & zone separation === */
.standings-table{border-radius:10px;box-shadow:none}
.st-head{font-size:12px;font-weight:600;letter-spacing:.08em}
.st-head,.st-row{padding:10px 18px}
.st-row{font-size:13px;font-weight:600}
.st-col-pts{font-weight:700}
.st-row .st-pos{font-size:13px;font-weight:600}
.st-row .st-club{font-size:13px;font-weight:700;display:inline-flex;align-items:center;min-width:0}
.st-club-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-row .st-stat{font-size:13px;font-weight:600}
.st-row .st-pts{font-size:14px;font-weight:700}

/* Tracked Club Highlight (.st-row.us) — Clean elevated frame with gold club branding */
.st-row.us{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.22);box-shadow:0 2px 10px rgba(0,0,0,.25)}
.st-row.us .st-club{font-size:13px;font-weight:800;color:var(--gold)}
.st-row.us .st-club-name{color:var(--gold)}
.st-row.us .st-pos{font-weight:800;color:var(--text)}
.st-row.us .st-stat{font-size:13px;font-weight:700;color:var(--text)}
.st-row.us .st-pts{font-size:14px;font-weight:800;color:var(--text)}
.st-you-badge{display:inline-flex;align-items:center;justify-content:center;padding:1px 6px;border-radius:4px;font-size:10px;font-weight:800;letter-spacing:.06em;background:var(--gold);color:#07121c;margin-left:8px;line-height:1.2;vertical-align:middle;flex-shrink:0}
.st-dsq{display:inline-flex;align-items:center;justify-content:center;padding:1px 5px;border-radius:4px;font-size:9px;font-weight:800;letter-spacing:.08em;background:rgba(255,82,82,.14);border:1px solid rgba(255,82,82,.45);color:#ff8a80;margin-left:6px;line-height:1.2;vertical-align:middle;flex-shrink:0}
.mclub .st-dsq{margin-left:5px;padding:0 4px;font-size:8px}

/* Task 8: tokenize the draw accent edge */
:root{--draw:rgba(148,178,204,.4)}
.match:has(.badge.D){border-left-color:var(--draw)}

/* lift podium player-card text to the design-scale floor */
.player-card p{font-size:11px;font-weight:600;letter-spacing:.1em}
.player-numbers span{font-size:11px;font-weight:600;letter-spacing:.08em}
.player-numbers strong{font-size:24px;font-weight:700}

/* === v2-mobile: Task 1 — topbar (≤640px, mobile pass; tab strip superseded by sidebar drawer) === */
@media(max-width:640px){
  .topbar{position:fixed;top:0;left:0;right:0;width:100%;height:var(--topbar-h);background:rgba(8,19,30,.92);backdrop-filter:blur(18px) saturate(180%);-webkit-backdrop-filter:blur(18px) saturate(180%);display:flex;flex-wrap:nowrap;align-items:center;padding-top:env(safe-area-inset-top);padding-bottom:0;border-bottom:1px solid rgba(148,178,204,.14);touch-action:none;overscroll-behavior:none}
  .topbar .brand{margin-left:14px;gap:9px;flex-shrink:0}
  .topbar .brand .brand-crest-wrap{width:30px;height:30px}
  .topbar .brand .brand-name{font-size:13.5px}
  .topbar .brand .brand-sub-badge{display:none}
  .topbar .topbar-right{margin-right:12px;margin-left:auto;gap:8px}
  .topbar-right .sync-pill{padding:5px 9px;font-size:10.5px;gap:5px}
  .topbar-right .sync-icon{width:11px;height:11px}
}

/* === v2-mobile: Task 2 — Overview stacking + 2-up squircles (≤640px) === */
@media(max-width:640px){
  main{width:calc(100% - 32px)}
  .tab-panel{padding:2px 0 10px}
  .page-head{padding:12px 0 8px;gap:5px;margin-bottom:6px;border-bottom:1px solid rgba(148,178,204,.1)}
  .page-head-main h1{font-size:22px}
  .page-desc{font-size:12.5px;line-height:1.4}
  .page-meta{gap:6px;margin-top:1px}
  .page-meta-chip{font-size:10px;padding:2px 8px}
  .standings-head-row{margin:2px 0 6px;gap:8px}
  .hero-grid{grid-template-columns:1fr;gap:10px;margin-top:2px}
  .cell{min-height:auto}
  .leagues-band{grid-template-columns:1fr}
  .league-squircle{min-height:auto}
  .stats-squircle-grid{grid-template-columns:1fr 1fr;gap:10px}
  .stat-squircle{min-height:96px}
}

/* === v2-mobile: Task 3 — Matches filters scroll + card fit (≤640px) === */
@media(max-width:640px){
  .filters{max-width:100%;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .filters::-webkit-scrollbar{display:none}
  .filters button{flex:0 0 auto;font:600 12px var(--font);padding:10px 14px;min-height:44px}
  #filters button,#filters button[data-filter="league"],#squad-source button,#squad-source button[data-source="league"]{font-weight:600}
  .match-grid{max-width:100%;gap:10px}
  .match{padding:14px 12px;min-height:78px;border-left-width:3px}
  .match .score{font-size:16px;padding:6px 10px}
  .match .team{font-size:12px}
  .match-tag{font-size:10px}
  .detail-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 10px;padding:10px 12px;margin-bottom:12px}
  .strip-item strong{font-size:15px}
  .match-roster-toggle-bar{max-width:100%;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .match-roster-toggle-bar::-webkit-scrollbar{display:none}
  .match-roster-toggle-group{min-width:max-content}
  .mrt-btn{min-height:40px;padding:8px 10px;font-size:10px;white-space:nowrap}
  .squad-leaders-head{margin-top:14px}
  .podium{grid-template-columns:repeat(3,minmax(164px,1fr));overflow-x:auto;margin-right:-16px;padding-right:16px;padding-bottom:4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .podium::-webkit-scrollbar{display:none}
  .player-card{padding:14px}
  .player-card h3{font-size:16px;margin-bottom:12px}
  .player-numbers{gap:6px}
}

/* === v2-mobile: Task 4 — Squad table 100% viewport fit + expandable tile drawer (≤640px) === */
@media(max-width:640px){
  .col-desktop{display:none !important}
  .col-mobile{display:inline-flex !important}
  .col-mobile-chev{display:inline-flex !important;justify-content:center;color:var(--muted);font-size:11px;line-height:1;transition:transform .24s cubic-bezier(.16,1,.3,1),color .18s ease}

  .squad-list{border-radius:12px;overflow:hidden}
  .squad-head,.squad-row{display:grid;grid-template-columns:minmax(0,1.4fr) 36px 32px 34px 44px 14px;gap:6px;align-items:center;padding:11px 12px;font-size:12px;min-width:0}
  .squad-head{background:rgba(255,255,255,.03);border-bottom:1px solid var(--line)}
  .squad-head .sort-btn{font:700 10px var(--font);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:0;min-height:auto;border-radius:0;background:none;border:0;display:inline-flex;align-items:center;gap:2px}
  .squad-head .sort-btn:hover,.squad-head .sort-btn.active{color:var(--text)}
  .squad-head .sort-btn.active .sort-arrow{color:var(--text)}

  .squad-row{cursor:pointer;transition:background .15s ease}
  .squad-row strong.col-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800;color:var(--text)}
  .squad-row .col-pos{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
  .squad-row .col-app,.squad-row .col-ga{font-variant-numeric:tabular-nums;text-align:center}
  .squad-row .col-rating{font-variant-numeric:tabular-nums;font-weight:800;color:var(--gold);text-align:right}

  .squad-row-wrapper.open{background:rgba(244,186,29,.04);border-left:3px solid var(--gold)}
  .squad-row-wrapper.open .col-mobile-chev{transform:rotate(180deg);color:var(--gold)}

  .squad-row-detail{display:none !important}
  .squad-row-wrapper.open .squad-row-detail{display:block !important;background:rgba(8,20,30,.92);border-top:1px dashed var(--line);padding:10px 12px;min-width:0;animation:fadeSlide .18s ease}

  .squad-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
  .sd-item{background:rgba(255,255,255,.025);border:1px solid var(--line);border-radius:6px;padding:6px 8px;display:flex;flex-direction:column;gap:2px}
  .sd-lbl{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
  .sd-val{font-size:12px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums}
}

/* === v2-mobile: Standings condensed table & tap-to-expand (≤640px) === */
.st-mobile-hint{display:none}
@media(max-width:640px){
  .standings-table{
    overflow-x:hidden;
    padding:8px;
    cursor:pointer;
    user-select:none;
    -webkit-tap-highlight-color:transparent;
  }
  .standings-table:focus-visible{
    outline:2px solid var(--gold);
    outline-offset:2px;
  }
  .st-mobile-hint{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:7px 12px;
    margin-bottom:8px;
    border-radius:8px;
    background:rgba(244,186,29,.08);
    border:1px dashed rgba(244,186,29,.32);
    color:var(--gold);
    font-size:11px;
    font-weight:700;
    letter-spacing:.04em;
    transition:all .18s ease;
  }
  .st-mobile-hint.is-expanded{
    background:rgba(255,255,255,.04);
    border-color:var(--line);
    color:var(--muted);
  }
  .st-hint-text{display:inline-flex;align-items:center;gap:6px}
  .st-hint-icon{font-size:13px;font-weight:800;color:var(--gold)}
  .st-mobile-hint.is-expanded .st-hint-icon{color:var(--muted)}

  /* Condensed view: shows only POS, CLUB, P, PTS */
  .st-head,.st-row{
    min-width:0;
    width:100%;
    display:grid;
    grid-template-columns:28px minmax(0,1fr) 34px 44px;
    gap:8px;
    align-items:center;
    padding:9px 10px;
    font-size:12px;
  }
  .st-col-extra{
    display:none !important;
  }
  .st-head .st-col-pos{text-align:center}
  .st-head .st-col-club{text-align:left}
  .st-head .st-col-p,.st-row .st-col-p{text-align:center}
  .st-head .st-col-pts,.st-row .st-pts{text-align:right}
  .st-row .st-club{min-width:0;overflow:hidden}
  .st-row .st-club-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

  /* Expanded full table view on tap with smooth horizontal touch scroll */
  .standings-table.is-expanded{
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch !important;
    touch-action:auto !important;
    overscroll-behavior-x:contain;
  }
  .standings-table.is-expanded .st-mobile-hint,
  .standings-table.is-expanded .st-legend{
    position:sticky;
    left:0;
    width:calc(100vw - 48px);
    max-width:100%;
    box-sizing:border-box;
  }
  .standings-table.is-expanded .st-head,
  .standings-table.is-expanded .st-row{
    min-width:740px;
    width:max-content;
    grid-template-columns:52px minmax(200px,2.5fr) repeat(7,minmax(46px,.72fr)) 64px;
    gap:6px;
    padding:10px 18px;
  }
  .standings-table.is-expanded .st-col-extra{
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
  }
  .standings-table.is-expanded .st-head .st-col-extra{
    display:block !important;
    text-align:center;
  }
}

/* === v2-mobile: Task 8 — safe-area insets + dvh (≤640px) === */
@media(max-width:640px){
  html{min-height:100dvh;scroll-padding-top:calc(var(--topbar-h) + 16px);overscroll-behavior:none;overscroll-behavior-y:none}
  body{overscroll-behavior:none;overscroll-behavior-y:none}
  main{margin-top:var(--topbar-h);padding-bottom:env(safe-area-inset-bottom)}
  footer{display:flex;justify-content:center;align-items:center;text-align:center;padding:16px 0 calc(16px + env(safe-area-inset-bottom))}
  .topbar{padding-left:calc(env(safe-area-inset-left) + 4px);padding-right:calc(env(safe-area-inset-right) + 4px)}
  .head-row{flex-wrap:wrap;gap:6px 10px}
  .head-row .muted{flex-basis:100%;margin-left:2px}
}

/* === v2: VPL playoff qualification zones & club focus combinations === */
.st-row.zone-playoff-guaranteed{background:rgba(105,220,154,.07)}
.st-row.zone-playoff-guaranteed .st-pos{box-shadow:inset 3.5px 0 0 var(--accent)}
.st-row.zone-playoff-conditional{background:rgba(255,166,60,.08)}
.st-row.zone-playoff-conditional .st-pos{box-shadow:inset 3.5px 0 0 #ffa63c}

/* Tracked club combined with qualification zones */
.st-row.us.zone-playoff-guaranteed{background:rgba(105,220,154,.13);border-color:rgba(105,220,154,.38)}
.st-row.us.zone-playoff-conditional{background:rgba(255,166,60,.14);border-color:rgba(255,166,60,.42)}


/* Standings Dynamic Zone Legend */
.st-legend{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:14px 20px;
  padding:12px 16px;
  margin-top:8px;
  background:rgba(255,255,255,.02);
  border-top:1px solid var(--line);
  border-radius:0 0 8px 8px;
  font-size:11px;
  font-weight:600;
  color:var(--muted);
  letter-spacing:.04em;
}
.st-legend-item{display:inline-flex;align-items:center;gap:8px}
.st-legend-bar{width:10px;height:10px;border-radius:3px;display:inline-block}
.st-legend-bar.zone-playoff-guaranteed{background:var(--accent)}
.st-legend-bar.zone-playoff-conditional{background:#ffa63c}
.st-you-badge.mini{font-size:9px;padding:1px 5px;margin-left:0}

@media(max-width:640px){
  .st-legend{padding:10px 12px;gap:10px 14px;font-size:10px}
}

/* === Responsive Nav Adjustments === */
@media(min-width:641px) and (max-width:880px){
  .nav-tabs .tab span{display:none}
  .nav-tabs .tab{padding:8px 11px}
  .nav-tab-icon{width:16px;height:16px}
  .brand-sub-badge{display:none}
  .desktop-relay-status{min-width:0;padding-inline:8px}
  .desktop-relay-state{display:none}
}

/* === Mobile Navigation Drawer & Toggle (≤640px) === */
.nav-toggle,.side-nav,.nav-backdrop{display:none}
@media(max-width:640px){
  .desktop-relay-status{display:none}
  .nav-tabs{display:none}
  .nav-toggle{display:flex;align-items:center;justify-content:center;width:38px;height:38px;margin-right:0;flex:0 0 auto;background:rgba(255,255,255,.05);border:1px solid rgba(148,178,204,.15);border-radius:10px;cursor:pointer;transition:all .18s ease}
  .nav-toggle:active{background:rgba(255,255,255,.12);border-color:rgba(244,186,29,.4)}
  .nav-toggle-box{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:18px;height:14px}
  .nav-toggle-box .bar{display:block;width:18px;height:2px;border-radius:2px;background:var(--text);transition:transform .22s ease,opacity .2s ease,width .2s ease}
  .nav-toggle-box .bar-2{width:13px;margin-right:auto}
  
  body.nav-open .nav-toggle{background:rgba(244,186,29,.12);border-color:rgba(244,186,29,.4)}
  body.nav-open .nav-toggle-box .bar-1{transform:translateY(6px) rotate(45deg)}
  body.nav-open .nav-toggle-box .bar-2{opacity:0;transform:translateX(6px)}
  body.nav-open .nav-toggle-box .bar-3{transform:translateY(-6px) rotate(-45deg)}

  .side-nav{display:flex;flex-direction:column;position:fixed;
    top:calc(env(safe-area-inset-top) + 10px);
    bottom:calc(env(safe-area-inset-bottom) + 10px);
    right:calc(env(safe-area-inset-right) + 10px);
    width:min(312px,calc(90vw - 20px));
    max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 20px);
    background:rgba(9,22,35,.96);
    border:1px solid rgba(148,178,204,.18);
    border-radius:24px;
    box-shadow:none;
    overflow:hidden;
    backdrop-filter:blur(24px) saturate(180%);
    -webkit-backdrop-filter:blur(24px) saturate(180%);
    padding:0;
    z-index:70;
    transform:translateX(calc(100% + 50px));
    visibility:hidden;
    transition:transform .28s cubic-bezier(.16,1,.3,1),box-shadow .28s ease,visibility .28s;
    touch-action:pan-y;
    will-change:transform}

  .side-nav-header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 14px;border-bottom:1px solid rgba(255,255,255,.07);background:rgba(5,13,21,.45);border-radius:24px 24px 0 0}
  .side-nav-brand{display:flex;align-items:center;gap:11px}
  .side-nav-brand .brand-crest-wrap{width:36px;height:36px}
  .side-nav-brand .brand-text-group{display:flex;flex-direction:column;gap:1px}
  .side-nav-brand .brand-title{font-size:14px;font-weight:800;letter-spacing:.08em;color:var(--text)}
  .brand-caption{font-size:10.5px;font-weight:500;color:var(--muted);letter-spacing:.02em}

  .nav-close-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);color:var(--muted);cursor:pointer;transition:all .18s ease;flex-shrink:0}
  .nav-close-btn:active{background:rgba(255,255,255,.15);color:var(--text);border-color:rgba(244,186,29,.4)}

  .side-nav-body{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;padding:12px 10px;display:flex;flex-direction:column}
  .side-nav-tabs{display:flex;flex-direction:column;gap:3px}
  .side-nav-divider{height:1px;background:rgba(148,178,204,.12);margin:8px 8px}

  .side-nav .tab{position:relative;display:flex;align-items:center;width:100%;min-height:46px;padding:9px 12px;border:1px solid transparent;border-radius:11px;background:none;color:var(--muted);text-align:left;cursor:pointer;font:500 13px/1.3 var(--font);letter-spacing:.01em;outline:none;-webkit-tap-highlight-color:transparent;transition:all .15s ease}
  .side-nav .tab:focus,.side-nav .tab:focus-visible{outline:none;box-shadow:none}
  .side-nav .tab .tab-icon-box{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:9px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06);margin-right:11px;flex-shrink:0;color:var(--muted);transition:all .16s ease}
  .side-nav .tab .tab-label{font-weight:600;font-size:13px;color:var(--muted);flex:1 1 auto;transition:color .16s ease}
  .side-nav .tab .tab-badge{font-size:9px;font-weight:700;letter-spacing:.06em;padding:2px 6px;border-radius:99px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:var(--muted);margin-right:6px;flex-shrink:0}
  .side-nav .tab .tab-badge-accent{background:rgba(105,220,154,.12);border-color:rgba(105,220,154,.3);color:var(--accent)}
  .side-nav .tab .tab-arrow{color:rgba(159,177,196,.35);flex-shrink:0;transition:transform .16s ease,color .16s ease}

  .side-nav .tab:active{background:rgba(255,255,255,.06);transform:translateX(2px)}
  .side-nav .tab:active .tab-label{color:var(--text)}

  .side-nav .tab.active{background:linear-gradient(90deg,rgba(244,186,29,.14) 0%,rgba(244,186,29,.02) 100%);border-color:rgba(244,186,29,.28);box-shadow:inset 3px 0 0 var(--gold),0 4px 14px rgba(0,0,0,.25);outline:none}
  .side-nav .tab.active:focus,.side-nav .tab.active:focus-visible{outline:none;box-shadow:inset 3px 0 0 var(--gold),0 4px 14px rgba(0,0,0,.25)}
  .side-nav .tab.active .tab-icon-box{background:rgba(244,186,29,.18);border-color:rgba(244,186,29,.4);color:var(--gold);box-shadow:0 0 10px rgba(244,186,29,.25)}
  .side-nav .tab.active .tab-label{color:#ffffff;font-weight:700}
  .side-nav .tab.active .tab-arrow{color:var(--gold);transform:translateX(2px)}

  .side-nav-footer{padding:12px 14px 14px;border-top:1px solid rgba(255,255,255,.07);background:rgba(5,13,21,.55);display:flex;flex-direction:column;gap:10px;border-radius:0 0 24px 24px}
  .drawer-status-card{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;border-radius:11px;background:rgba(12,28,44,.65);border:1px solid rgba(148,178,204,.14)}
  .drawer-status-left{display:flex;align-items:center;gap:10px}
  .drawer-status-info{display:flex;flex-direction:column;gap:1px}
  .drawer-status-title{font-size:11px;font-weight:700;color:var(--text);letter-spacing:.02em}
  .drawer-status-time{font-size:10px;font-weight:500;color:var(--muted)}
  .drawer-relay-status{display:flex;align-items:center;gap:7px;margin-left:auto;padding-left:10px;border-left:1px solid rgba(148,178,204,.14)}
  .drawer-relay-info{display:flex;flex-direction:column;gap:1px;min-width:44px}
  .drawer-relay-title{font-size:8px;font-weight:800;letter-spacing:.1em;color:var(--text-3)}
  .drawer-relay-state{font-size:10px;font-weight:700;color:var(--accent)}
  .relay-status-dot.is-checking .pulse-core{background:var(--gold)}
  .relay-status-dot.is-checking .pulse-ring{border-color:var(--gold)}
  .relay-status-dot.is-offline .pulse-core{background:var(--danger)}
  .relay-status-dot.is-offline .pulse-ring{border-color:var(--danger)}
  .relay-status-dot.is-offline .pulse-ring,.relay-status-dot.is-offline .pulse-core{animation:none}
  .drawer-relay-state.is-checking{color:var(--gold)}
  .drawer-relay-state.is-offline{color:var(--danger)}
  .drawer-meta-foot{display:flex;align-items:center;justify-content:space-between;font-size:9.5px;font-weight:700;letter-spacing:.08em;color:rgba(159,177,196,.45);padding:0 4px}

  .nav-backdrop{display:block;position:fixed;inset:0;background:rgba(2,8,14,.65);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;visibility:hidden;
    transition:opacity .28s ease,visibility .28s;z-index:60;will-change:opacity}
  .side-nav.is-dragging,.nav-backdrop.is-dragging{transition:none !important}
  body.nav-open .side-nav{transform:none;visibility:visible;box-shadow:0 24px 60px rgba(0,0,0,.7),0 0 0 1px rgba(255,255,255,.06)}
  body.nav-open .nav-backdrop{opacity:1;visibility:visible}
  body.nav-open{overflow:hidden}
}

/* === v2-mobile: Task D4 — iOS canvas skin: top-bounce matches topbar navy, bottom-bounce matches body navy === */
@media(max-width:640px){
  html{background:#0a1622 linear-gradient(180deg,#0a1622 0,#0a1622 140px,#050d15 260px)}
}

/* === v2: Upcoming Matches & Broadcast Poster Framing === */
.upcoming-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:24px;align-items:start;margin-top:14px}
.upcoming-info-col{grid-column:1;grid-row:1}
.upcoming-poster-col{grid-column:2;grid-row:1}
.poster-frame{background:linear-gradient(170deg,#102434 0%,#091724 100%);border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.45);display:flex;flex-direction:column}
.poster-frame-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;background:rgba(255,255,255,.025);border-bottom:1px solid var(--line)}
.poster-badge-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.poster-badge-mw{background:rgba(244,186,29,.14);border:1px solid rgba(244,186,29,.4);color:var(--gold);font-size:10px;font-weight:800;letter-spacing:.08em;padding:2px 8px;border-radius:99px;text-transform:uppercase}
.poster-badge-hd{background:rgba(255,255,255,.06);border:1px solid var(--line);color:var(--text);font-size:10px;font-weight:700;letter-spacing:.06em;padding:2px 8px;border-radius:99px}
.poster-badge-cache{background:rgba(105,220,154,.12);border:1px solid rgba(105,220,154,.3);color:var(--accent);font-size:9px;font-weight:800;letter-spacing:.08em;padding:2px 7px;border-radius:99px}
.poster-frame-actions{display:flex;align-items:center;gap:8px}
.poster-action-btn{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.05);border:1px solid var(--line);color:var(--text);padding:6px 12px;border-radius:8px;font:600 11px var(--font);letter-spacing:.04em;text-decoration:none;cursor:pointer;transition:all .18s ease}
.poster-action-btn:hover{background:var(--gold);color:#09141c;border-color:var(--gold);box-shadow:0 0 14px rgba(244,186,29,.35)}
.poster-action-btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

.poster-stage-wrap{position:relative;padding:16px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.poster-ambient-glow{position:absolute;inset:10%;background:radial-gradient(circle,rgba(244,186,29,.15) 0%,rgba(14,31,46,.4) 50%,transparent 80%);filter:blur(36px);pointer-events:none;z-index:0}
.poster-stage{position:relative;z-index:1;width:100%;max-width:540px;aspect-ratio:1/1;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.12);box-shadow:0 18px 45px rgba(0,0,0,.5);background:#07121c;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .24s cubic-bezier(.2,0,0,1),box-shadow .24s,border-color .24s}
.poster-stage:hover{transform:scale(1.015);border-color:rgba(244,186,29,.5);box-shadow:0 24px 60px rgba(0,0,0,.6),0 0 25px rgba(244,186,29,.15)}
.poster-stage:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.poster-img{width:100%;height:100%;object-fit:contain;display:block;background:#0b1723;transition:opacity .2s}
.poster-overlay-hint{position:absolute;inset:auto 0 0;padding:10px;background:linear-gradient(180deg,transparent 0%,rgba(5,13,21,.85) 100%);color:var(--text);font-size:11px;font-weight:600;letter-spacing:.06em;text-align:center;opacity:0;transform:translateY(6px);transition:all .2s ease;pointer-events:none}
.poster-stage:hover .poster-overlay-hint{opacity:1;transform:translateY(0)}

.poster-frame-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 16px;background:rgba(255,255,255,.02);border-top:1px solid var(--line);font-size:10px;font-weight:600;letter-spacing:.08em;color:var(--muted)}
.p-foot-brand{color:var(--muted)}
.p-foot-meta{color:var(--text-3);font-variant-numeric:tabular-nums}

/* Countdown & Fixtures Side Column */
.upcoming-info-col{display:flex;flex-direction:column;gap:18px}
.countdown-card{position:relative;background:linear-gradient(145deg,rgba(21,48,66,.96),rgba(9,24,36,.98));border:1px solid rgba(148,178,204,.2);border-radius:22px;padding:22px 24px 24px;box-shadow:0 24px 50px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.06);display:flex;flex-direction:column;gap:16px;overflow:hidden}
.countdown-card::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:linear-gradient(180deg,var(--gold2),var(--gold) 50%,rgba(244,186,29,.2));box-shadow:0 0 18px rgba(244,186,29,.35)}
.countdown-concepts{display:flex;flex-direction:column;gap:8px}
.concept-label{color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.12em;padding:4px 2px 0}
.countdown-concepts .countdown-card{gap:14px}
.concept-matchup{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px;align-items:center;padding:8px 0;font-size:18px;font-weight:800}
.concept-team{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}
.concept-home{text-align:left}.concept-away{text-align:right}.concept-home.virtua,.concept-strip .concept-home.virtua,.concept-split .concept-home.virtua{color:var(--gold)}
.concept-vs{color:var(--gold);font-size:12px;font-weight:900}
.concept-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:4px}
.concept-venue{font-size:10px;font-weight:800;letter-spacing:.08em;color:var(--green);background:rgba(105,220,154,.14);border:1px solid rgba(105,220,154,.3);border-radius:6px;padding:4px 8px}
.concept-venue.away{color:var(--red);background:rgba(255,115,128,.14);border-color:rgba(255,115,128,.3)}
.concept-time{min-width:0;color:var(--muted);font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.concept-strip-row{display:grid;grid-template-columns:auto auto auto minmax(0,1fr) auto;align-items:center;gap:9px;padding:12px 14px;border:1px solid rgba(148,178,204,.16);border-radius:10px;background:rgba(255,255,255,.025)}
.concept-strip-row .concept-team{text-align:left}.concept-strip-row .concept-time{text-align:right}
.concept-split{display:grid;grid-template-columns:1.1fr 1fr;gap:16px;align-items:center}
.split-context{display:grid;grid-template-columns:auto 1fr;gap:8px 12px;align-items:center}.split-context .countdown-status{grid-column:1/-1}.split-context .countdown-league-chip{grid-column:1/-1;justify-self:start}.split-context .concept-home{text-align:left}.split-context .concept-away{text-align:left}.split-context .concept-meta{grid-column:1/-1}
.split-timer{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}
.split-timer .timer-segment{padding:11px 4px 9px}.split-timer .timer-segment strong{font-size:25px}
.countdown-head{display:flex;align-items:center;justify-content:space-between;gap:14px;min-width:0;padding-left:2px}
.countdown-status{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--gold);white-space:nowrap;flex-shrink:0}
#countdown-league-chip{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;min-width:0;flex-shrink:1;padding:2px 8px;font-size:10px;font-weight:700;letter-spacing:.04em;line-height:1.3;text-align:center}
.radar-dot{width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 12px var(--gold);animation:pulse-radar 1.6s infinite}
@keyframes pulse-radar{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.4);opacity:.6}}

.countdown-timer{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:0;background:none;border:0;border-radius:0}
.timer-segment{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;padding:14px 8px 12px;background:rgba(5,13,21,.42);border:1px solid rgba(148,178,204,.13);border-radius:12px;box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}
.timer-segment strong{font-size:34px;font-weight:800;line-height:1;letter-spacing:-.04em;color:var(--text);font-variant-numeric:tabular-nums}
.timer-segment span{font-size:9px;font-weight:700;letter-spacing:.14em;color:var(--muted)}

.countdown-preview{display:flex;flex-direction:column;gap:12px;padding:16px 18px;background:rgba(255,255,255,.025);border-radius:14px;border:1px solid rgba(148,178,204,.18)}
.cd-matchup{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;font-size:17px;font-weight:800}
.cd-club{display:flex;align-items:center;gap:10px;min-width:0}.cd-home-club{justify-content:flex-start}.cd-away-club{justify-content:flex-end}
.cd-crest{width:38px;height:38px;object-fit:contain;flex:0 0 38px;filter:drop-shadow(0 3px 8px rgba(0,0,0,.3))}.cd-away-club .cd-crest{order:2}
.cd-team{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}
.cd-team:first-child{text-align:left}
.cd-team:last-child{text-align:right}
.cd-team.virtua{color:var(--gold)}
.cd-vs{color:var(--gold);font-size:12px;font-weight:900;padding:0 5px}
.cd-meta-row{display:flex;align-items:center;justify-content:center;gap:12px;min-width:0}
.cd-venue-tag{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:4px 9px;border-radius:6px;font-size:10px;font-weight:800;letter-spacing:.08em;line-height:1}
.cd-venue-tag.home{color:var(--green);background:rgba(105,220,154,.15);border:1px solid rgba(105,220,154,.35)}
.cd-venue-tag.away{color:var(--red);background:rgba(255,115,128,.15);border:1px solid rgba(255,115,128,.35)}
.cd-time-label{font-size:11px;font-weight:600;color:var(--muted);letter-spacing:.04em}
.cd-meta-row .cd-time-label{text-align:center}.cd-meta-row .cd-venue-tag{order:2}

.upcoming-fixtures-box{display:flex;flex-direction:column;gap:10px}
.upcoming-fixture-list{display:flex;flex-direction:column;gap:8px}
.upcoming-fixture-card{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 16px;background:var(--surface);border:1px solid var(--line);border-radius:12px;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease;overflow:hidden}
.upcoming-fixture-card:hover{background:var(--raised);border-color:rgba(244,186,29,.3);transform:translateY(-1px)}
.upcoming-fixture-card.next-match{border-color:rgba(244,186,29,.42);background:linear-gradient(100deg,rgba(244,186,29,.09),rgba(244,186,29,.035) 42%,var(--surface));box-shadow:0 8px 20px rgba(0,0,0,.18),0 0 0 1px rgba(244,186,29,.06),inset 0 1px 0 rgba(255,213,104,.18)}
.upcoming-fixture-card.next-match::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:linear-gradient(180deg,var(--gold2),var(--gold));box-shadow:0 0 12px rgba(244,186,29,.42)}
.upcoming-fixture-card.next-match:hover{background:linear-gradient(100deg,rgba(244,186,29,.13),rgba(244,186,29,.05) 42%,var(--raised));transform:translateY(-2px)}
.upcoming-fixture-card.completed{opacity:.72;border-style:dashed}
.upcoming-fixture-card.completed:hover{opacity:1}
.uf-status-tag{font-size:9px;font-weight:800;color:var(--muted);background:rgba(255,255,255,.06);padding:2px 6px;border-radius:4px;letter-spacing:.06em}
.uf-status-tag.today{color:#09141c;background:var(--gold)}
.uf-left{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:76px}
.uf-date{font-size:10px;font-weight:700;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}
.uf-time{font-size:13px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums}
.uf-center{display:flex;flex-direction:column;gap:3px;min-width:0}
.uf-teams{display:flex;align-items:center;gap:8px;min-width:0;font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.uf-team{min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--text)}
.uf-opponent{flex:1 1 auto}
.uf-team.virtua{color:var(--gold);font-weight:800}
.uf-vs{color:var(--muted);font-size:10px;font-weight:700}
.uf-ha-tag{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;min-width:18px;font-size:10px;font-weight:800;color:var(--muted);background:rgba(255,255,255,.06);border-radius:4px;line-height:1;flex-shrink:0}
.uf-ha-tag.H{background:rgba(105,220,154,.18);color:var(--green);border:1px solid rgba(105,220,154,.3)}
.uf-ha-tag.A{background:rgba(255,115,128,.18);color:var(--red);border:1px solid rgba(255,115,128,.3)}
.uf-comp{font-size:12px;font-weight:600;color:var(--muted)}
.uf-right{display:flex;align-items:center;justify-content:flex-end;min-width:44px}
.uf-league-logo{height:36px;width:36px;max-width:42px;object-fit:contain;filter:drop-shadow(0 2px 6px rgba(0,0,0,.35))}

/* Lightbox Modal */
.poster-lightbox{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px}
.poster-lightbox[hidden]{display:none}
.lightbox-backdrop{position:absolute;inset:0;background:rgba(3,9,15,.88);backdrop-filter:blur(16px);animation:fadeIn .2s ease}
.lightbox-dialog{position:relative;z-index:1;max-width:min(90vw,880px);max-height:min(90vh,880px);aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;animation:scaleUp .22s cubic-bezier(.16,1,.3,1)}
.lightbox-close{position:absolute;top:-44px;right:0;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.1);border:1px solid var(--line);color:var(--text);font-size:18px;display:grid;place-items:center;cursor:pointer;transition:all .18s}
.lightbox-close:hover{background:var(--gold);color:#09141c;border-color:var(--gold)}
.lightbox-dialog img{width:100%;height:100%;object-fit:contain;border-radius:14px;border:1px solid rgba(255,255,255,.15);box-shadow:0 30px 80px rgba(0,0,0,.7)}

@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes scaleUp{from{transform:scale(.94);opacity:0}to{transform:scale(1);opacity:1}}

/* Responsive Breakpoints for Upcoming Tab */
@media(max-width:1024px){
  .upcoming-grid{grid-template-columns:1fr;gap:20px}
  .upcoming-info-col,.upcoming-poster-col{grid-column:1;grid-row:auto}
  .upcoming-info-col{order:1}
  .upcoming-poster-col{order:2}
  .poster-stage{max-width:480px;margin:auto}
}
@media(max-width:640px){
  .upcoming-grid{gap:16px}
  .poster-frame{border-radius:14px}
  .poster-stage-wrap{padding:10px}
  .poster-stage{max-width:100%;border-radius:10px}
  .countdown-card{padding:16px 14px 18px;border-radius:16px;gap:12px}
  .countdown-head{gap:8px}
  #countdown-league-chip{font-size:10px;padding:2px 8px;max-width:none}
  .countdown-timer{gap:5px}
  .timer-segment{padding:11px 4px 9px;border-radius:9px}
  .timer-segment strong{font-size:25px}
  .cd-matchup{gap:6px;font-size:14px}
  .cd-meta-row{gap:8px}
  .cd-venue-tag{padding:4px 7px;font-size:9px}
  .cd-club{gap:6px}.cd-crest{width:30px;height:30px;flex-basis:30px}.cd-matchup{font-size:15px}
  .countdown-preview{padding:13px 12px}
  .upcoming-fixture-card{padding:10px 12px;gap:8px}
  .uf-time{font-size:12px}
  .uf-teams{font-size:13px;gap:6px}
  .uf-comp{font-size:11px}
  .uf-right{min-width:34px}
  .uf-league-logo{height:28px;width:28px}
  .lightbox-close{top:-38px}
}

/* Center recent-form result badges within their fixed cells. */
.form-row-item .badge{display:grid;place-items:center;padding:0;line-height:1}

/* Keep mini standings values centered beneath their headers. */
.mini-head>span:not(:nth-child(2)),.mini-row>span:not(:nth-child(2)){text-align:center}
.mini-row .mpts{text-align:center}
.mini-head{border-bottom:1px solid rgba(148,178,204,.12)}

/* Equal-size logo tabs for the standings league selector. */
.standings-head-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 8px}
.standings-meta-group{display:inline-flex;align-items:center;gap:8px;margin-left:auto}
#league-pills button{width:64px;height:40px;padding:6px 10px;display:grid;place-items:center;border-radius:99px}
#league-pills .league-pill-logo{display:block;width:40px;height:26px;object-fit:contain;pointer-events:none}
#league-pills button.active{background:rgba(244,186,29,.12);color:var(--text);box-shadow:inset 0 0 0 1px rgba(244,186,29,.7),0 0 12px rgba(244,186,29,.12)}

/* Standings unreachable warning banner & fallback indicators */
.standings-banner{display:flex;align-items:center;gap:10px;background:rgba(244,186,29,.08);border:1px solid rgba(244,186,29,.28);border-radius:10px;padding:10px 14px;margin-top:10px;margin-bottom:6px;color:var(--gold2);font-size:12px;font-weight:600;line-height:1.4}
.standings-banner[hidden]{display:none}
.standings-banner .banner-icon{font-size:15px;flex-shrink:0}
.stale-chip.warning{color:var(--gold);border-color:rgba(244,186,29,.35);background:rgba(244,186,29,.12)}

/* Overview Hero Cards & Form List */
.hero-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:6px}
.hero-grid > .cell{display:flex;flex-direction:column;justify-content:flex-start;min-height:220px}
.hero-grid > .record-cell{justify-content:space-between}

.form-rows{display:flex;flex-direction:column;gap:5px;margin-top:8px;flex:1}
.form-row-item{display:grid;grid-template-columns:20px minmax(0,1.4fr) auto minmax(40px,auto);gap:8px;align-items:center;font-size:13px;padding:3px 0}
.form-row-item .badge{grid-column:1}
.form-row-item .opp-wrap{grid-column:2}
.form-row-item .form-mvp,.form-row-item .form-awarded{grid-column:3;justify-self:end}
.form-row-item .score{grid-column:4;justify-self:end;width:100%}
.form-row-item .badge{width:20px;height:20px;border-radius:4px;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1;flex-shrink:0}
.opp-wrap{display:flex;align-items:center;gap:6px;min-width:0;overflow:hidden}
.opp-wrap .opp{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.form-league-logo{width:15px;height:15px;object-fit:contain;flex-shrink:0}
.form-mvp{font-size:11px;font-weight:600;color:var(--gold);white-space:nowrap;display:inline-flex;align-items:center;gap:3px;padding:2px 6px;background:rgba(244,186,29,.08);border:1px solid rgba(244,186,29,.22);border-radius:4px;line-height:1.2;flex-shrink:0}
.form-mvp.empty,.form-mvp:empty{display:none}
.form-awarded{display:inline-flex;align-items:center;justify-content:center;padding:2px 7px;border:1px solid rgba(105,220,154,.35);border-radius:4px;background:rgba(105,220,154,.1);color:var(--green);font-size:10px;font-weight:800;letter-spacing:.08em;line-height:1.2;white-space:nowrap}
.form-row-item .score{font-size:13px;font-weight:700;color:var(--text);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;flex-shrink:0}

/* Overview Hero: Upcoming Matches Widget */
.cell-head-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px;gap:12px}
.cell-head-row .cell-title{white-space:nowrap;margin:0;letter-spacing:.1em}
.cell-head-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}
.cell-head-actions .badge-league{margin:0}
.cell-action-btn{border:none;background:rgba(244,186,29,.1);color:var(--gold);font:600 11px var(--font);padding:4px 12px;border-radius:99px;cursor:pointer;letter-spacing:.04em;transition:all .15s ease;white-space:nowrap}
.cell-action-btn:hover{background:var(--gold);color:#09141c}
.hero-upcoming-list{display:flex;flex-direction:column;gap:8px;margin-top:8px;flex:1}
.hero-fixture-row{position:relative;display:grid;grid-template-columns:72px 20px minmax(0,1fr) auto;gap:10px;align-items:center;background:rgba(255,255,255,.025);border:1px solid var(--line);border-radius:8px;padding:8px 10px;transition:background .15s,border-color .15s,box-shadow .15s,transform .15s;overflow:hidden}
.hero-fixture-row:hover{background:rgba(255,255,255,.05)}
.hero-fixture-row.next-match{border-color:rgba(244,186,29,.42);background:linear-gradient(100deg,rgba(244,186,29,.09),rgba(244,186,29,.035) 42%,rgba(255,255,255,.025));box-shadow:0 8px 20px rgba(0,0,0,.18),0 0 0 1px rgba(244,186,29,.06),inset 0 1px 0 rgba(255,213,104,.18)}
.hero-fixture-row.next-match::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:linear-gradient(180deg,var(--gold2),var(--gold));box-shadow:0 0 12px rgba(244,186,29,.42)}
.hero-fixture-row.next-match:hover{background:linear-gradient(100deg,rgba(244,186,29,.13),rgba(244,186,29,.05) 42%,rgba(255,255,255,.05));transform:translateY(-1px)}
.hfix-time-col{display:flex;flex-direction:column;width:72px;min-width:72px;flex-shrink:0}
.hfix-date{font-size:10px;font-weight:700;color:var(--muted);letter-spacing:.04em;white-space:nowrap}
.hfix-date.highlight{color:var(--gold)}
.hfix-time{font-size:12px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}
.hfix-ha-tag{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;min-width:18px;font-size:10px;font-weight:800;color:var(--muted);background:rgba(255,255,255,.06);padding:0;border-radius:4px;line-height:1;flex-shrink:0;margin:0 auto}
.hfix-ha-tag.H{background:rgba(105,220,154,.18);color:var(--green);border:1px solid rgba(105,220,154,.3)}
.hfix-ha-tag.A{background:rgba(255,115,128,.18);color:var(--red);border:1px solid rgba(255,115,128,.3)}
.hfix-matchup-col{display:flex;flex-direction:column;gap:2px;min-width:0;overflow:hidden}
.hfix-opp-name{font-size:12px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hfix-comp-lbl{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hfix-logo-col{display:flex;align-items:center;gap:10px;flex-shrink:0}
.hfix-league-logo{width:22px;height:22px;object-fit:contain;flex-shrink:0}
.hero-upcoming-empty{font-size:12px;padding:16px 0;text-align:center}

/* League Top Player Squircles (Player Centric Layout) */
.player-squircle-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:12px}
.player-squircle{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px;min-height:124px;display:flex;flex-direction:column;justify-content:space-between;transition:.22s}
.player-squircle:hover{transform:translateY(-2px);background:var(--raised);border-color:rgba(244,186,29,.25)}
.player-sq-hero{display:flex;justify-content:space-between;align-items:center;margin-top:4px;gap:8px}
.player-sq-name{font-size:15px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.01em}
.player-sq-role{display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:2px 7px;border-radius:4px;flex-shrink:0}
.player-sq-role.role-fwd{background:rgba(255,115,128,.14);color:#ff8592;border:1px solid rgba(255,115,128,.3)}
.player-sq-role.role-mid{background:rgba(105,220,154,.14);color:#69dc9a;border:1px solid rgba(105,220,154,.3)}
.player-sq-role.role-def{background:rgba(106,169,255,.14);color:#7cb3ff;border:1px solid rgba(106,169,255,.3)}
.player-sq-role.role-gk{background:rgba(244,186,29,.14);color:#f4ba1d;border:1px solid rgba(244,186,29,.3)}
.player-sq-value{display:block;font-size:24px;font-weight:800;letter-spacing:-.02em;color:var(--gold);font-variant-numeric:tabular-nums;margin:4px 0 2px;line-height:1.15}
.player-squircle [id$="-name"]{color:var(--gold)}
.player-squircle .sq-sub{display:block;font-size:11.5px;color:var(--muted);letter-spacing:.02em}

@media(max-width:900px){
  .player-squircle-grid{grid-template-columns:1fr 1fr;gap:10px}
}
@media(max-width:540px){
  .player-squircle-grid{grid-template-columns:1fr 1fr;gap:8px}
  .player-sq-name{font-size:13px}
  .player-sq-value{font-size:20px}
}

/* Compact rating leaderboard: keep the three leaders readable at every width. */
.podium{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin-bottom:20px;
}
.player-card{
  display:grid;
  grid-template-columns:40px minmax(0,1fr) auto;
  grid-template-rows:auto auto;
  grid-template-areas:
    "rank name rating"
    "rank role rating";
  align-items:center;
  min-width:0;
  min-height:0;
  height:auto;
  padding:10px 14px;
  border-radius:10px;
}
.player-card .rank{grid-area:rank;margin:0;font-size:14px}
.player-card p{grid-area:role;margin:0;font-size:10px}
.player-card h3{grid-area:name;margin:0;font-size:15px;line-height:1.25}
.player-numbers{
  grid-area:rating;
  display:flex;
  align-items:flex-start;
  gap:22px;
  padding:0 0 0 18px;
  border:0;
  text-align:left;
}
.player-numbers div{display:flex;flex-direction:column;align-items:flex-start;gap:1px}
.player-numbers strong{font-size:18px;line-height:1;color:var(--gold);white-space:nowrap}
.player-numbers span{font-size:8px;line-height:1;color:var(--muted);white-space:nowrap;letter-spacing:.06em}

/* Keep the overview cards inside the mobile viewport. This block follows the
   desktop hero rules so the one-column layout cannot be overwritten. */
@media(max-width:640px){
  .hero-grid{grid-template-columns:minmax(0,1fr);gap:10px}
  .hero-grid > .cell{min-width:0;width:100%}
  .cell-head-row,.cell-head-actions{min-width:0}
  .title-full{display:none}
  .title-short{display:inline}
  .cell-head-actions{gap:6px}
  .cell-action-btn{padding:3px 8px;font-size:10px}
  .form-row-item{min-width:0;grid-template-columns:20px minmax(0,1.2fr) minmax(0,auto) minmax(36px,auto);gap:6px}
  .opp-wrap .opp{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .form-mvp{min-width:0;max-width:100px;font-size:10px;padding:1.5px 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .hero-fixture-row{min-width:0;grid-template-columns:68px 18px minmax(0,1fr) auto;gap:8px}
  .hfix-time-col{width:68px;min-width:68px}
  .hfix-date{font-size:9.5px;letter-spacing:.02em}
  .hfix-logo-col{gap:6px}
}

/* === SETTINGS & ADMIN MANAGEMENT STYLES === */
.settings-auth-card{max-width:440px;margin:40px auto;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:32px 24px;text-align:center;box-shadow:var(--shadow);position:relative;transition:border-color .2s ease,box-shadow .2s ease}
.settings-auth-card:focus-within{border-color:rgba(244,186,29,.4);box-shadow:0 0 24px rgba(244,186,29,.15),var(--shadow)}
.auth-lock-icon{font-size:38px;margin-bottom:8px;filter:drop-shadow(0 0 16px var(--gold));line-height:1}
.auth-badge{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.12em;color:var(--gold);background:rgba(244,186,29,.12);border:1px solid rgba(244,186,29,.25);border-radius:99px;padding:3px 10px;margin-bottom:12px;text-transform:uppercase}
.auth-title{font-size:18px;font-weight:900;letter-spacing:.06em;color:var(--text);margin:0 0 8px}
.auth-desc{font-size:12.5px;color:var(--muted);line-height:1.5;margin:0 0 24px}
.auth-form{display:flex;flex-direction:column;gap:14px}
.input-group{position:relative;display:flex;align-items:center}
.auth-input{width:100%;height:46px;background:rgba(0,0,0,.35);border:1px solid var(--line);border-radius:10px;padding:0 46px 0 14px;color:var(--text);font-size:16px;letter-spacing:.04em;outline:none;transition:border-color .2s}
.auth-input:focus{border-color:var(--gold);box-shadow:0 0 12px rgba(244,186,29,.25)}
 .toggle-pw-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--muted);cursor:pointer;font:700 10px Arial,sans-serif;letter-spacing:.02em;padding:5px 4px;border-radius:6px;opacity:.9}
.toggle-pw-btn:hover{opacity:1}
.auth-submit-btn{height:46px;font-size:13px;font-weight:800;letter-spacing:.06em;border-radius:10px}
.auth-error{background:rgba(255,115,128,.12);border:1px solid rgba(255,115,128,.35);color:var(--red);padding:10px;border-radius:8px;font-size:12px;font-weight:700}
.auth-shake{animation:auth-shake-anim .4s cubic-bezier(.36,.07,.19,.97) both}
@keyframes auth-shake-anim{10%,90%{transform:translate3d(-2px,0,0)}20%,80%{transform:translate3d(4px,0,0)}30%,50%,70%{transform:translate3d(-6px,0,0)}40%,60%{transform:translate3d(6px,0,0)}}

/* === Toast Notification System === */
.toast-container{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:10px;pointer-events:none;max-width:380px;width:calc(100vw - 48px)}
.toast{pointer-events:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-radius:12px;font:700 12.5px var(--font);box-shadow:0 12px 32px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.08);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);opacity:0;transform:translateY(16px) scale(.96);transition:all .25s cubic-bezier(.16,1,.3,1)}
.toast.show{opacity:1;transform:translateY(0) scale(1)}
.toast.hide{opacity:0;transform:translateY(-8px) scale(.95);pointer-events:none}
.toast-success{background:rgba(12,32,24,.92);color:var(--green);border:1px solid rgba(105,220,154,.35)}
.toast-error{background:rgba(36,14,18,.92);color:#ff8592;border:1px solid rgba(255,115,128,.35)}
.toast-info{background:rgba(14,28,42,.92);color:var(--text);border:1px solid rgba(244,186,29,.35)}
.toast-icon{font-size:16px;line-height:1;flex-shrink:0}
.toast-msg{flex:1;line-height:1.4}
.toast-close{background:none;border:none;color:currentColor;cursor:pointer;font-size:14px;padding:2px 4px;opacity:.75;transition:opacity .15s}
.toast-close:hover{opacity:1}

/* Buttons */
.btn-primary{background:var(--gold);color:#09141c;border:1px solid var(--gold);padding:8px 18px;border-radius:8px;font:700 12px var(--font);cursor:pointer;transition:all .18s ease;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.btn-primary:hover{background:#ffd568;box-shadow:0 0 14px rgba(244,186,29,.4)}
.btn-primary:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}
.btn-secondary{background:rgba(255,255,255,.07);color:var(--text);border:1px solid var(--line);padding:8px 16px;border-radius:8px;font:700 12px var(--font);cursor:pointer;transition:all .18s ease;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.btn-secondary:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.25)}
.btn-danger{background:rgba(255,115,128,.12);color:#ff8592;border:1px solid rgba(255,115,128,.35);padding:8px 16px;border-radius:8px;font:700 12px var(--font);cursor:pointer;transition:all .18s ease}
.btn-danger:hover{background:rgba(255,115,128,.25);color:#fff}

/* Settings Unlocked Dashboard */
.settings-dashboard{display:flex;flex-direction:column;gap:16px}
.settings-head-bar{display:flex;justify-content:space-between;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 18px}
.settings-status-info{display:flex;align-items:center;gap:12px}
.settings-head-actions{display:flex;align-items:center;gap:10px}
/* === Telemetry Loading Screen (EA Servers Sync HUD) === */
.refresh-overlay{position:fixed;inset:0;z-index:90;display:grid;place-items:center;background:rgba(4,10,16,.88);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);padding:20px;overflow:hidden;animation:overlay-fade-in .25s ease}
.refresh-overlay[hidden]{display:none}

.refresh-overlay-ambient-halo{position:absolute;width:min(500px,90vw);height:min(500px,90vw);background:radial-gradient(circle,rgba(148,178,204,.09) 0%,rgba(14,31,46,.3) 50%,transparent 75%);filter:blur(40px);pointer-events:none;z-index:0;animation:halo-breathe 4s ease-in-out infinite}

.refresh-overlay-card{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding:36px 28px;background:rgba(10,22,34,.75);border:1px solid rgba(148,178,204,.16);border-radius:28px;box-shadow:0 30px 80px rgba(0,0,0,.65),0 0 0 1px rgba(255,255,255,.05);max-width:380px;width:100%;gap:16px}

/* Crest Stage & Counter-Rotating Orbital Rings */
.refresh-crest-stage{position:relative;width:120px;height:120px;display:flex;align-items:center;justify-content:center;margin-bottom:4px}

.orbital-ring{position:absolute;border-radius:50%;pointer-events:none}
.orbital-ring-outer{inset:0;border:1.5px dashed rgba(148,178,204,.25);animation:orbit-spin 12s linear infinite}
.orbital-ring-inner{inset:10px;border:2px solid transparent;border-top-color:var(--gold);border-right-color:rgba(244,186,29,.3);animation:orbit-spin-rev 2.5s cubic-bezier(.45,0,.55,1) infinite;filter:drop-shadow(0 0 8px rgba(244,186,29,.4))}

.refresh-crest-capsule{position:relative;width:68px;height:68px;display:flex;align-items:center;justify-content:center;background:rgba(11,24,36,.92);border:1px solid rgba(148,178,204,.2);border-radius:50%;box-shadow:0 10px 30px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.1)}
.refresh-overlay-logo{width:46px;height:46px;object-fit:contain;filter:drop-shadow(0 4px 12px rgba(0,0,0,.6));animation:crest-pulse 2.8s ease-in-out infinite}

/* Status Badge */
.refresh-status-badge{display:inline-flex;align-items:center;gap:7px;padding:4px 12px;background:rgba(12,28,44,.8);border:1px solid rgba(148,178,204,.18);border-radius:99px}
.refresh-badge-text{font-size:10px;font-weight:800;letter-spacing:.1em;color:var(--muted);text-transform:uppercase}

/* Text Content */
.refresh-text-block{display:flex;flex-direction:column;gap:5px}
.refresh-title{font-size:17px;font-weight:800;letter-spacing:-.01em;color:#ffffff;margin:0;text-shadow:0 2px 8px rgba(0,0,0,.4)}
.refresh-subtitle{font-size:12px;font-weight:500;line-height:1.45;color:var(--muted);margin:0;max-width:280px}

/* Liquid Gold Progress Shimmer Beam */
.refresh-progress-track{position:relative;width:100%;max-width:240px;height:3px;background:rgba(255,255,255,.08);border-radius:99px;overflow:hidden;margin-top:6px}
.refresh-progress-beam{position:absolute;top:0;bottom:0;width:45%;background:linear-gradient(90deg,transparent 0%,var(--gold) 50%,transparent 100%);border-radius:99px;box-shadow:0 0 10px var(--gold);animation:progress-shimmer 1.4s cubic-bezier(.4,0,.2,1) infinite}

@keyframes overlay-fade-in{from{opacity:0}to{opacity:1}}
@keyframes orbit-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
@keyframes orbit-spin-rev{0%{transform:rotate(360deg)}100%{transform:rotate(0deg)}}
@keyframes crest-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
@keyframes halo-breathe{0%,100%{transform:scale(.95);opacity:.6}50%{transform:scale(1.05);opacity:1}}
@keyframes progress-shimmer{0%{left:-50%}100%{left:110%}}

/* Sub-Navigation Pills */
.admin-sub-nav{display:flex;gap:6px;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;padding-bottom:4px}
.admin-sub-nav button{background:rgba(255,255,255,.05);border:1px solid var(--line);color:var(--muted);padding:8px 16px;border-radius:99px;font:700 12px var(--font);cursor:pointer;white-space:nowrap;transition:all .18s ease;display:inline-flex;align-items:center;gap:6px}
.admin-sub-nav button:hover{background:rgba(255,255,255,.12);color:var(--text)}
.admin-sub-nav button.active{background:var(--gold);color:#09141c;border-color:var(--gold);box-shadow:0 0 12px rgba(244,186,29,.35)}
.sub-nav-count{font-size:10px;font-weight:900;background:rgba(0,0,0,.3);color:currentColor;padding:1px 6px;border-radius:99px}
.admin-sub-nav button.active .sub-nav-count{background:rgba(9,20,28,.4);color:#09141c}

/* Admin Section & Sub-Panels */
.admin-sub-panel[hidden]{display:none !important}
.admin-section{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:16px}
.admin-search-wrap{position:relative;width:min(320px,100%)}
.admin-search-input{width:100%;height:36px;background:rgba(0,0,0,.3);border:1px solid var(--line);border-radius:8px;padding:0 12px;color:var(--text);font-size:13px;outline:none}
.admin-search-input:focus{border-color:var(--gold)}

/* Match Filters Bar */
.admin-filter-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:10px 14px;background:rgba(0,0,0,.22);border:1px solid var(--line);border-radius:10px}
.filter-chip-group{display:inline-flex;background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:99px;padding:2px;gap:2px}
.filter-chip{background:transparent;border:none;color:var(--muted);padding:4px 10px;border-radius:99px;font:700 11px var(--font);cursor:pointer;transition:all .15s ease;white-space:nowrap}
.filter-chip:hover{color:var(--text);background:rgba(255,255,255,.06)}
.filter-chip.active{background:rgba(244,186,29,.2);color:var(--gold);font-weight:800}

.admin-matches-list{display:flex;flex-direction:column;gap:8px}
.admin-match-row{display:grid;grid-template-columns:90px 1.5fr 1fr 90px 210px;gap:12px;align-items:center;background:rgba(12,29,40,.6);border:1px solid var(--line);border-radius:10px;padding:12px 16px;transition:background .15s}
.admin-match-row:hover{background:rgba(18,44,60,.7);border-color:rgba(255,255,255,.15)}
.amr-date-comp{display:contents}
.amr-date{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.amr-matchup{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:800;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.amr-comp{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:6px}
.amr-score{font-size:15px;font-weight:900;color:var(--gold);font-variant-numeric:tabular-nums;text-align:center;white-space:nowrap}
.amr-actions{display:flex;justify-content:flex-end;gap:6px}
.badge-merged{background:rgba(244,186,29,.15);border:1px solid rgba(244,186,29,.35);color:var(--gold);font-size:9px;font-weight:800;padding:2px 6px;border-radius:4px;letter-spacing:.04em}
.badge-forfeit{background:rgba(105,220,154,.15);border:1px solid rgba(105,220,154,.35);color:var(--green);font-size:9px;font-weight:800;padding:2px 6px;border-radius:4px;letter-spacing:.04em}
.badge-manual{background:rgba(148,178,204,.15);border:1px solid rgba(148,178,204,.3);color:var(--muted);font-size:9px;font-weight:800;padding:2px 6px;border-radius:4px;letter-spacing:.04em}
.btn-danger.amr-delete-confirm{background:var(--red);color:#09141c;font-weight:900;border-color:var(--red);animation:pulse-delete .8s infinite alternate}
@keyframes pulse-delete{from{transform:scale(1)}to{transform:scale(1.04)}}
.btn-mini{padding:4px 10px;font-size:11px;border-radius:6px}

/* Forms in Inline Panels */
.modal-title-wrap h2{margin:0;font-size:16px;font-weight:900;letter-spacing:-.01em;color:var(--text)}
.modal-tip{font-size:12.5px;color:var(--muted);margin:0;line-height:1.5}
.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.form-grid-4{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}
.form-group{display:flex;flex-direction:column;gap:5px;min-width:0;max-width:100%}
.form-group label{font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--muted);text-transform:uppercase}
.form-control{width:100%;max-width:100%;min-width:0;box-sizing:border-box;height:38px;background:rgba(0,0,0,.35);border:1px solid var(--line);border-radius:8px;padding:0 12px;color:var(--text);font:13px var(--font);outline:none;transition:border-color .15s;text-overflow:ellipsis;overflow:hidden}
select.form-control{white-space:nowrap}
.form-control:focus{border-color:var(--gold)}

/* Squad Sub-Tabs & Crest Previews */
.squad-subtab-group{display:inline-flex;background:rgba(0,0,0,.4);border:1px solid var(--line);border-radius:8px;padding:3px;gap:4px}
.squad-subtab-btn{background:transparent;border:none;color:var(--muted);padding:6px 14px;border-radius:6px;font:700 11.5px var(--font);cursor:pointer;transition:all .15s ease}
.squad-subtab-btn:hover{color:var(--text);background:rgba(255,255,255,.05)}
.squad-subtab-btn.active{background:rgba(255,255,255,.12);color:var(--text);box-shadow:0 2px 6px rgba(0,0,0,.3)}
.squad-subtab-btn.active#editor-tab-virtua,.squad-subtab-btn.active#merge-tab-virtua{background:rgba(0,214,143,.15);color:var(--green);border:1px solid rgba(0,214,143,.3)}
.squad-subtab-btn.active#editor-tab-opponent,.squad-subtab-btn.active#merge-tab-opponent{background:rgba(255,115,128,.15);color:var(--red);border:1px solid rgba(255,115,128,.3)}

.opp-logo-badge-preview{width:38px;height:38px;border-radius:8px;background:rgba(0,0,0,.4);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:18px;overflow:hidden;flex-shrink:0}
.opp-logo-badge-preview img{width:100%;height:100%;object-fit:contain}

/* Public Match Card Lineup Toggle */
.match-roster-toggle-bar{display:flex;justify-content:space-between;align-items:center;margin-top:12px;margin-bottom:8px;padding-top:10px;border-top:1px solid rgba(255,255,255,.06)}
.match-roster-toggle-group{display:inline-flex;background:rgba(0,0,0,.4);border:1px solid var(--line);border-radius:8px;padding:3px;gap:4px}
.mrt-btn{background:transparent;border:none;color:var(--muted);padding:5px 12px;border-radius:6px;font:700 11px var(--font);cursor:pointer;transition:all .15s ease;text-transform:uppercase}
.mrt-btn.mrt-virtua{color:var(--green)}
.mrt-btn.mrt-opp{color:var(--red)}
.mrt-btn:hover{color:var(--text);background:rgba(255,255,255,.05)}
.mrt-btn.active{background:rgba(255,255,255,.12);color:var(--text)}
.mrt-btn.active.mrt-virtua{background:rgba(0,214,143,.15);color:var(--green);border:1px solid rgba(0,214,143,.3)}
.mrt-btn.active.mrt-opp{background:rgba(255,115,128,.15);color:var(--red);border:1px solid rgba(255,115,128,.3)}

/* Merge Preview & Roster Tables */
.merge-selectors-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;background:rgba(0,0,0,.2);border:1px solid var(--line);border-radius:10px;padding:14px;min-width:0;max-width:100%}
.merge-score-banner{display:flex;align-items:center;justify-content:space-around;background:linear-gradient(135deg,rgba(244,186,29,.12),rgba(0,0,0,.4));border:1px solid rgba(244,186,29,.3);border-radius:12px;padding:16px}
.msb-item{display:flex;flex-direction:column;align-items:center}
.msb-label{font-size:10px;font-weight:800;letter-spacing:.1em;color:var(--muted)}
.msb-val{font-size:32px;font-weight:900;color:var(--gold);font-variant-numeric:tabular-nums;line-height:1}
.msb-vs{font-size:14px;font-weight:900;color:var(--muted)}

.merge-roster-wrap{max-height:440px;overflow:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:10px;background:rgba(0,0,0,.3)}
.admin-table{width:100%;border-collapse:collapse;font-size:12.5px;font-variant-numeric:tabular-nums;text-align:left}
.admin-table th{background:rgba(255,255,255,.05);color:var(--muted);font-weight:800;font-size:10.5px;letter-spacing:.08em;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.admin-table td{padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.04);color:var(--text)}
.admin-table tr:last-child td{border-bottom:none}
.admin-table input[type="number"],.admin-table input[type="text"],.admin-table select{height:30px;background:rgba(0,0,0,.4);border:1px solid var(--line);border-radius:6px;color:var(--text);padding:0 6px;font-size:12px}
.admin-table input[type="number"]{width:56px;text-align:center}

.admin-panel-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px}

/* Correlation Wizard & Badges */
.amr-correlate-btn{background:rgba(244,186,29,.08);border:1px solid rgba(244,186,29,.3);color:var(--gold)}
.amr-correlate-btn:hover{background:rgba(244,186,29,.2);border-color:var(--gold);color:var(--gold)}
.correlate-suggestion-notice{background:rgba(244,186,29,.08);border:1px solid rgba(244,186,29,.28);border-radius:8px;padding:10px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;max-width:100%}
.correlate-fixture-card{background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:16px;min-width:0;max-width:100%;overflow:hidden}

/* Grouped Player Aliases Cards */
.aliases-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.player-alias-card{background:rgba(12,29,40,.65);border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:10px;transition:all .18s ease}
.player-alias-card:hover{background:rgba(18,44,60,.75);border-color:rgba(244,186,29,.35);box-shadow:0 8px 20px rgba(0,0,0,.3)}
.pac-head{display:flex;justify-content:space-between;align-items:center}
.pac-name{font-size:14px;font-weight:800;color:var(--text);display:flex;align-items:center;gap:6px}
.pac-count{font-size:10.5px;font-weight:700;color:var(--muted);background:rgba(255,255,255,.05);padding:2px 8px;border-radius:99px}
.pac-tags{display:flex;flex-wrap:wrap;gap:6px;min-height:28px;align-items:center}
.pac-empty-hint{font-size:11.5px;color:var(--muted);font-style:italic}
.alias-tag-pill{display:inline-flex;align-items:center;gap:6px;background:rgba(244,186,29,.12);border:1px solid rgba(244,186,29,.3);color:var(--gold);padding:3px 8px;border-radius:6px;font-size:11.5px;font-weight:700}
.atp-del{background:none;border:none;color:var(--muted);font-size:12px;cursor:pointer;padding:0 2px;line-height:1}
.atp-del:hover{color:var(--red)}
.pac-add-form{display:flex;gap:6px;margin-top:auto}
.pac-add-input{flex:1;height:28px;background:rgba(0,0,0,.35);border:1px solid var(--line);border-radius:6px;padding:0 8px;font-size:11.5px;color:var(--text);outline:none}
.pac-add-input:focus{border-color:var(--gold)}
.pac-add-btn{padding:0 10px;height:28px;font-size:11px;border-radius:6px;white-space:nowrap}

/* Mobile Adjustments for Settings & Sub-Panels (<=640px) */
@media(max-width:640px){
  .settings-auth-card{margin:20px auto;padding:24px 16px}
  .settings-head-bar{flex-direction:column;gap:12px;align-items:stretch;padding-inline:12px}
  .settings-status-info{flex-wrap:wrap;gap:6px 10px}
  .settings-status-info .muted{flex-basis:100%}
  .settings-head-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:8px}
  .settings-head-actions button{width:100%;min-height:44px;padding-inline:8px}
  #admin-logout-btn{grid-column:1 / -1}
  .admin-search-wrap{width:100%}
  .admin-match-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"matchup score" "meta meta" "actions actions";gap:8px;padding:12px}
  .amr-date-comp{grid-area:meta;display:flex;align-items:center;min-width:0;gap:8px;font-size:11px;color:var(--muted)}
  .amr-date,.amr-comp{min-width:0}
  .amr-comp{display:block}
  .amr-matchup{grid-area:matchup}
  .amr-score{grid-area:score;text-align:right}
  .amr-actions{grid-area:actions;justify-content:flex-start;flex-wrap:wrap;min-width:0;width:100%}
  .amr-actions button{min-height:40px;flex:1 1 auto;white-space:nowrap}
  .aliases-grid{grid-template-columns:1fr}
  .merge-selectors-grid,.form-grid-2,.form-grid-3,.form-grid-4{grid-template-columns:minmax(0, 1fr);gap:10px}
  .merge-selectors-grid > *,.form-group{min-width:0;max-width:100%}
  .form-grid-4 .form-group{grid-column:auto !important}
}

/* Mobile admin workspace: keep dense tools usable without page overflow. */
@media(max-width:640px){
  .admin-section{padding:14px;border-radius:12px;gap:14px}
  .head-row > *{min-width:0}
  .head-row .head-title{overflow-wrap:anywhere}

  .admin-sub-nav{scroll-padding-inline:8px;mask-image:linear-gradient(90deg,transparent 0,#000 10px,#000 calc(100% - 18px),transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 10px,#000 calc(100% - 18px),transparent 100%)}
  .admin-sub-nav button{min-height:44px}

  .admin-filter-bar{flex-direction:column;align-items:stretch;gap:8px;padding:8px 10px;min-width:0}
  .filter-chip-group{display:flex;align-items:center;min-width:0;width:100%;overflow-x:auto;flex:0 0 auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;border-radius:10px;padding:3px;scroll-snap-type:x proximity}
  .filter-chip-group::-webkit-scrollbar{display:none}
  .filter-chip-group::before{content:attr(data-filter-label);position:relative;z-index:1;display:inline-flex;align-items:center;align-self:stretch;flex:0 0 auto;padding:0 9px;border-right:1px solid var(--line);background:var(--surface);color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
  .filter-chip{min-height:40px;padding:8px 12px;scroll-snap-align:start}

  .admin-panel-actions{flex-direction:column;align-items:stretch;width:100%;gap:8px}
  .admin-panel-actions button{width:100%;min-height:44px}
  .new-player-actions{flex-wrap:wrap}
  .new-player-actions button{min-height:44px;flex:1 1 140px}
  .editor-toolbar-actions{width:100%;flex-wrap:wrap;justify-content:flex-start}
  .editor-toolbar-actions > *{min-height:40px}

  .form-control,.admin-search-input{height:44px;min-height:44px;width:100%;max-width:100%;min-width:0;box-sizing:border-box}
  .form-group{min-width:0;max-width:100%;width:100%}
  .admin-section,.settings-dashboard,.admin-sub-panel{min-width:0;max-width:100%}
  .toggle-pw-btn{right:2px;min-width:44px;min-height:44px;padding:8px}
  .auth-input{padding-right:58px}

  /* Convert the data-heavy desktop tables into labelled mobile cards. */
  .merge-roster-wrap{max-height:none;overflow:visible;border:0;background:transparent}
  .admin-table,.admin-table tbody{display:block;width:100%}
  .admin-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  .admin-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px;background:rgba(12,29,40,.65);border:1px solid var(--line);border-radius:10px;margin-bottom:8px}
  .admin-table td{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;padding:0;border:0;color:var(--text);font-size:12px}
  .admin-table td::before{content:attr(data-label);flex:0 1 auto;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
  .admin-table td[data-label="Player"]{grid-column:1 / -1;padding-bottom:4px;border-bottom:1px solid var(--line)}
  #merge-roster-table td[data-label="Player"]::before,#correlate-roster-table td[data-label="Player"]::before{display:none}
  .admin-table td[data-label="Player"] strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .admin-table td[data-label="Role"] select{min-width:0;flex:1}
  .admin-table td[data-label="Passes"]>div,.admin-table td[data-label="Tackles"]>div{display:flex;align-items:center;flex:1;justify-content:flex-end}
  .admin-table td[data-label="MOM"] input{width:20px;height:20px;min-width:20px}
  .admin-table input[type="number"],.admin-table input[type="text"],.admin-table select{height:40px;min-height:40px;min-width:0;max-width:100%;font-size:13px}
  .admin-table input[type="number"]{width:56px}
  .admin-table td[data-label="Actions"]{justify-content:flex-end}
  .admin-table td[data-label="Actions"]::before{display:none}
  .admin-table td[data-label="Actions"] button{min-height:40px}

  .correlate-suggestion-notice{flex-direction:column;align-items:stretch;gap:8px}
  .correlate-suggestion-notice button{width:100%;min-height:40px}
  .correlate-fixture-card > div{min-width:0}
  #correlate-preview-home-name,#correlate-preview-away-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px}

  .toast-container{right:12px;bottom:calc(12px + env(safe-area-inset-bottom));width:calc(100vw - 24px)}
}

/* Match sides stay aligned toward the scoreline; Virtua color is independent. */
.match .virtua{text-align:initial}
.match .match-home-team{text-align:right}
.match .match-away-team{text-align:left}

/* Final performer leaderboard overrides for the mobile cascade. */
@media(max-width:640px){
  .podium{
    display:flex;
    flex-direction:column;
    overflow:visible;
    margin-right:0;
    padding-right:0;
    padding-bottom:0;
  }
  .player-card{
    grid-template-columns:34px minmax(0,1fr) auto;
    min-height:0;
    height:auto;
    padding:10px 12px;
  }
  .player-card h3{font-size:15px;margin:0}
  .player-numbers{display:flex;align-items:flex-start;gap:10px;padding-left:8px}
  .player-numbers strong{font-size:16px}
  .player-numbers span{font-size:7px}
}

/* Keep the club name visible beside the logo on mobile. */
@media(max-width:640px){
  .topbar .brand span{display:inline;font-size:14px;font-weight:800;letter-spacing:.08em;color:var(--text)}
}

/* === Rate-limit request gate === */
.rate-limit-page{position:relative;min-height:calc(100vh - var(--topbar-h) - 92px);display:grid;place-items:center;padding:42px 0 56px;overflow:hidden}
.rate-limit-page[hidden]{display:none}
.rate-limit-ambient{position:absolute;width:min(620px,100vw);height:min(620px,100vw);border-radius:50%;background:radial-gradient(circle,rgba(244,186,29,.1) 0,rgba(255,115,128,.045) 34%,rgba(14,31,46,.18) 58%,transparent 73%);filter:blur(24px);animation:rate-limit-breathe 5s ease-in-out infinite;pointer-events:none}
.rate-limit-card{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;width:min(100%,560px);padding:38px 42px 30px;background:linear-gradient(145deg,rgba(15,34,48,.9),rgba(8,20,31,.88));border:1px solid rgba(244,186,29,.23);border-radius:28px;box-shadow:0 30px 90px rgba(0,0,0,.45),0 0 0 1px rgba(255,255,255,.035),0 0 55px rgba(244,186,29,.06);text-align:center}
.rate-limit-crest-stage{position:relative;width:126px;height:126px;display:grid;place-items:center;margin-bottom:18px}
.rate-limit-ring{position:absolute;border-radius:50%;pointer-events:none}
.rate-limit-ring-outer{inset:0;border:1px dashed rgba(148,178,204,.3);animation:rate-limit-orbit 16s linear infinite}
.rate-limit-ring-inner{inset:11px;border:2px solid transparent;border-top-color:var(--gold);border-left-color:rgba(255,115,128,.5);filter:drop-shadow(0 0 9px rgba(244,186,29,.35));animation:rate-limit-orbit-reverse 4s cubic-bezier(.45,0,.55,1) infinite}
.rate-limit-crest-capsule{width:74px;height:74px;display:grid;place-items:center;background:rgba(8,20,31,.96);border:1px solid rgba(148,178,204,.24);border-radius:50%;box-shadow:0 12px 32px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.1)}
.rate-limit-logo{width:50px;height:50px;object-fit:contain;filter:drop-shadow(0 4px 14px rgba(0,0,0,.6))}
.rate-limit-badge{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border:1px solid rgba(255,115,128,.35);border-radius:99px;background:rgba(255,115,128,.1);color:#ff9aa5;font-size:10px;font-weight:800;letter-spacing:.1em}
.rate-limit-badge .pulse-core{background:var(--red)}
.rate-limit-badge .pulse-ring{border-color:var(--red)}
.rate-limit-copy{max-width:430px;margin-top:20px}
.rate-limit-eyebrow{margin:0 0 7px;color:var(--gold);font-size:10px;font-weight:800;letter-spacing:.14em}
.rate-limit-copy h1{margin:0;color:#fff;font-size:30px;font-weight:800;letter-spacing:-.035em;line-height:1.12;text-shadow:0 2px 10px rgba(0,0,0,.4)}
.rate-limit-copy p:not(.rate-limit-eyebrow){margin:10px auto 0;color:var(--muted);font-size:13px;line-height:1.55;max-width:390px}
.rate-limit-countdown{display:flex;flex-direction:column;gap:1px;margin-top:25px}
.rate-limit-countdown-label{color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.14em}
.rate-limit-countdown strong{color:var(--gold2);font-size:42px;font-weight:800;letter-spacing:.04em;line-height:1.15;font-variant-numeric:tabular-nums;text-shadow:0 0 22px rgba(244,186,29,.2)}
.rate-limit-progress{position:relative;width:min(100%,300px);height:3px;margin-top:12px;overflow:hidden;border-radius:99px;background:rgba(255,255,255,.09)}

/* Keep horizontal overflow clipped without turning the page into nested touch scroll containers. */
html,body{overflow-x:clip;max-width:none;overscroll-behavior:auto;overscroll-behavior-y:auto}
html{background:var(--page);overscroll-behavior-y:none}
@media(max-width:640px){html{background:#0a1622 linear-gradient(180deg,#0a1622 0,#0a1622 140px,#050d15 260px)}}
.rate-limit-progress span{display:block;width:100%;height:100%;transform-origin:left center;background:linear-gradient(90deg,var(--red),var(--gold));box-shadow:0 0 12px rgba(244,186,29,.55);transition:transform .8s linear}
.rate-limit-facts{display:grid;grid-template-columns:repeat(3,1fr);width:100%;margin-top:27px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.rate-limit-facts span{display:flex;flex-direction:column;gap:3px;padding:12px 8px}
.rate-limit-facts span+span{border-left:1px solid var(--line)}
.rate-limit-facts strong{color:var(--text);font-size:9px;font-weight:800;letter-spacing:.08em}
.rate-limit-facts small{color:var(--muted);font-size:10px}
.rate-limit-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;margin-top:23px}
.rate-limit-actions button{min-height:40px;padding-inline:20px}
.rate-limit-footnote{margin:16px 0 0;color:var(--text-3);font-size:10px;letter-spacing:.02em}
body.rate-limit-active main> :not(#rate-limit-page),body.rate-limit-active footer{display:none}
body.rate-limit-active .rate-limit-page{display:grid}
@keyframes rate-limit-orbit{to{transform:rotate(360deg)}}
@keyframes rate-limit-orbit-reverse{to{transform:rotate(-360deg)}}
@keyframes rate-limit-breathe{0%,100%{transform:scale(.94);opacity:.7}50%{transform:scale(1.04);opacity:1}}
@media(max-width:640px){
  .rate-limit-page{min-height:calc(100vh - var(--topbar-h) - 40px);padding:24px 0 36px}
  .rate-limit-card{padding:28px 18px 24px;border-radius:22px}
  .rate-limit-copy h1{font-size:26px}
  .rate-limit-copy p:not(.rate-limit-eyebrow){font-size:12.5px}
  .rate-limit-countdown strong{font-size:38px}
  .rate-limit-facts small{font-size:9px}
  .rate-limit-actions{width:100%;flex-direction:column}
  .rate-limit-actions button{width:100%}
}
@media(prefers-reduced-motion:reduce){
  .rate-limit-ambient,.rate-limit-ring-outer,.rate-limit-ring-inner{animation:none}
  .rate-limit-progress span{transition:none}
}

/* Upcoming fixture surfaces use full wordmarks without changing card geometry. */
.form-league-logo{width:auto;height:15px;object-fit:contain;flex-shrink:0}
.hfix-league-logo{width:auto;height:14px;max-width:60px;object-fit:contain;flex-shrink:0}
.hfix-logo-slot{position:relative;width:64px;height:30px;display:grid;place-items:center;justify-items:end;overflow:hidden;flex-shrink:0}
.uf-league-logo{width:auto;height:21px;max-width:72px;object-fit:contain;filter:drop-shadow(0 2px 6px rgba(0,0,0,.35))}
.hfix-league-logo[src*="vpg_logo.png"]{width:42px;height:42px;max-width:none;position:absolute;left:auto;right:0;top:50%;transform:translateY(-50%)}
.hfix-league-logo[src*="vpl_logo.png"]{width:30px;height:30px;max-width:none;position:absolute;left:auto;right:0;top:50%;transform:translateY(-50%)}
.uf-right{width:96px;height:36px;min-width:96px;overflow:hidden;position:relative;justify-content:flex-end}
.uf-league-logo[src*="vpg_logo.png"]{width:54px;height:54px;max-width:none;position:absolute;left:auto;right:0;top:50%;transform:translateY(-50%)}
.uf-league-logo[src*="vpl_logo.png"]{width:38px;height:38px;max-width:none;position:absolute;left:auto;right:0;top:50%;transform:translateY(-50%)}
.match-league-logo{width:auto;height:15px;max-width:32px;object-fit:contain;vertical-align:middle;margin-right:4px}
.match-tag.tag-league{display:inline-flex;align-items:center;gap:2px}
@media(max-width:640px){
  .hfix-league-logo{height:12px;max-width:48px}
  .hfix-logo-slot{width:54px;height:28px}
  .uf-league-logo{height:17px;max-width:62px}
  .uf-right{width:82px;min-width:82px;height:30px}
  .uf-league-logo[src*="vpg_logo.png"]{width:48px;height:48px}
  .hfix-league-logo[src*="vpg_logo.png"]{width:36px;height:36px}
  .uf-league-logo[src*="vpl_logo.png"]{width:34px;height:34px}
  .hfix-league-logo[src*="vpl_logo.png"]{width:26px;height:26px}
  .match-league-logo{height:14px;max-width:30px}
}
