/* Possession Impact — an editorial layer, intentionally isolated for easy iteration. */
:root { --pb-orange: #ef9955; --pb-paper: #f1eee8; --pb-muted: #a4adb7; --pb-rule: #323941; --pb-positive: #83bd99; --pb-negative: #db8d86; }
body::before { background: #101419; }
body::after { opacity: .08; }
.arena { opacity: .16; }
.wrap { max-width: 1180px; padding-top: 36px; }
.site-footer { display: block; max-width: 1180px; margin: 0 auto; padding: 28px 24px 24px; border-top: 1px solid var(--pb-rule); color: #8f99a6; }
.footer-main { display: flex; align-items: center; gap: 28px; padding-bottom: 20px; }
.footer-brand { display: inline-flex; align-items: center; flex-shrink: 0; gap: 10px; color: #d9dee5; text-decoration: none; font: 700 1.1rem/1.3 var(--display); text-transform: uppercase; letter-spacing: .02em; }
.footer-brand img { width: 40px; height: 40px; object-fit: contain; }
.footer-main p { max-width: 600px; margin: 0; color: #a4adb7; font: 400 .78rem/1.7 var(--font); }
.footer-details { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 6px 24px; padding-top: 14px; border-top: 1px solid #262e37; font: 400 .66rem/1.6 var(--font); }
.site-footer .footer-note { margin: 8px 0 0; font: 400 .64rem/1.6 var(--font); }
@media (max-width: 700px) { .site-footer { padding: 24px 18px; } .footer-main { flex-direction: column; align-items: flex-start; gap: 12px; } .footer-details { flex-direction: column; } }
.editorial-kicker, .section-index { font: 600 .68rem/1.5 var(--font); text-transform: uppercase; letter-spacing: .15em; color: var(--pb-orange); }
.section-index { display: block; margin-bottom: 10px; }
.editorial-kicker { display: flex; align-items: center; gap: 10px; }
.editorial-kicker::before { content: ''; width: 20px; height: 1px; background: var(--pb-orange); flex: none; }
.team-identifier { color: var(--team-accent); font-weight: 800; letter-spacing: .04em; }
.edition { color: var(--pb-muted); font-size: .64rem; letter-spacing: .04em; }
.team-opening { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 48px; align-items: start; padding-bottom: 44px; }
.team-story { display: block; padding-top: 6px; }
.team-story h1, .league-intro h1 { font: 800 clamp(3.4rem, 6.2vw, 5.2rem)/.98 var(--display); letter-spacing: -.025em; margin: 24px 0 20px; color: var(--pb-paper); text-transform: uppercase; }
.team-story h1 em, .league-intro h1 em { color: var(--pb-orange); font-style: normal; }
.team-story h1 em { color: var(--team-accent); }
.story-deck { max-width: 440px; font: 400 1rem/1.65 var(--font); color: #c3c9cf; margin: 0 0 26px; }
.story-deck strong { font-weight: 700; color: var(--pb-paper); }
.story-numbers { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: center; padding: 20px 0; border-top: 1px solid var(--pb-rule); border-bottom: 1px solid var(--pb-rule); }
.rating-signature { display: flex; flex-direction: column; align-items: flex-start; position: relative; }
.signature-kicker { display: flex; align-items: center; gap: 7px; font: 500 .68rem/1.4 var(--font); color: #c3c9cf; }
.signature-kicker > span { color: var(--pb-orange); font: 800 .85rem/1 var(--display); letter-spacing: -.04em; padding: 4px 5px; border: 1px solid #7e5b40; border-radius: 0; }
.rating-signature > strong { font: 800 5rem/.95 var(--display); letter-spacing: -.035em; color: var(--pb-paper); margin: 10px 0 6px; }
.rating-signature > small { font: 400 .65rem/1.5 var(--font); color: var(--pb-muted); }
.signature-kicker .rating-help { flex-basis: 17px; height: 17px; width: 17px; font-size: .6rem; }
.rating-signature > small .rating-help { display: inline-flex; align-items: center; justify-content: center; width: 17px; height: 17px; margin-left: 4px; font-size: .6rem; vertical-align: middle; }
.story-context { display: grid; gap: 20px; border-left: 1px solid var(--pb-rule); padding-left: 26px; }
.story-context > div { display: flex; flex-direction: column; gap: 5px; }
.story-context strong { font: 600 1.5rem/1 var(--font); letter-spacing: -.04em; color: var(--pb-paper); font-variant-numeric: tabular-nums; }
.story-context span { font: 400 .67rem/1.5 var(--font); color: var(--pb-muted); }
.story-context .edge-positive { color: var(--pb-positive); }
.story-context .edge-negative { color: var(--pb-negative); }
.edition-note { margin: 12px 0 0; color: var(--pb-muted); font: 400 .68rem/1.5 var(--font); }
.latest-wrap { min-width: 0; padding-top: 6px; }
.latest-wrap .takeaway-game { padding: 22px; border: 1px solid var(--pb-rule); background: #161c23; border-radius: 4px; box-shadow: none; }
.latest-wrap .takeaway-game:hover { border-color: var(--pb-rule); background: #161c23; }
.latest-wrap .takeaway-game::before { display: none; }
.latest-wrap .tg-score { font-size: 2rem; }
.latest-wrap .tg-rating b { font-family: var(--display); font-size: 2.6rem; }
.latest-wrap .tg-stat { font-size: .8rem; }
.latest-wrap .tg-status.won { color: var(--pb-positive); }
.latest-wrap .tg-status.lost { color: var(--pb-negative); }
/* Open, numbered sections rather than a stack of nested panels. */
body[data-team] #app > .section.band { background: none; border: 0; border-top: 1px solid var(--pb-rule); padding: 32px 0 0; margin: 0 0 42px; border-radius: 0; }
body[data-team] #app > .section.band::before { display: none; }
.band-head { margin-bottom: 24px; }
.band-head h2 { font: 700 clamp(1.9rem, 3vw, 2.5rem)/1.05 var(--display); color: var(--pb-paper); text-transform: uppercase; letter-spacing: 0; }
.band-head p { font-size: .85rem; margin-top: 10px; max-width: 540px; }
body[data-team] .colcard { padding: 0; background: none; border: 0; border-radius: 0; box-shadow: none; }
.colcard::before { display: none; }
.colgrid { gap: 0; }
body[data-team] .colgrid .colgroup { border: 0; border-right: 1px solid var(--pb-rule); border-bottom: 1px solid var(--pb-rule); border-radius: 0; background: none; box-shadow: none; padding: 18px 20px; }
body[data-team] .colgrid .colgroup:hover { background: rgba(255,255,255,.015); transform: none; box-shadow: none; }
.colgrid .col-name { font: 600 .8rem/1.4 var(--font); color: #cbd1d6; text-transform: none; letter-spacing: 0; text-align: center; }
.colgrid .col-name:has(.stat-rank) { height: auto; min-height: 3.8em; overflow: visible; }
.stat-rank { display: block; margin: 5px auto 0; padding: 3px 6px; border: 0; border-radius: 3px; background: none; color: #a7b1be; font: 500 .65rem/1.4 var(--font); cursor: pointer; text-decoration: underline; text-decoration-color: #46515f; text-underline-offset: 3px; }
.stat-rank:hover { color: #f0c68b; background: rgb(240 198 139 / .06); }
.stat-rank:focus-visible { outline: 2px solid #e0b686; outline-offset: 2px; }
.stat-rank-dialog { max-width: 620px; }
.stat-rank-dialog .battle-dialog-content { scrollbar-width: thin; scrollbar-color: #56606d transparent; }
.stat-ranking-note { margin: 0 0 18px; color: #a7b1be; font: 400 .75rem/1.7 var(--font); }
.stat-ranking-table { width: 100%; border-collapse: collapse; font: 500 .82rem/1.4 var(--font); font-variant-numeric: tabular-nums; }
.stat-ranking-table th, .stat-ranking-table td { padding: 10px 8px; border-bottom: 1px solid #343c46; text-align: right; }
.stat-ranking-table thead { color: #98a4b4; font-size: .65rem; text-transform: uppercase; letter-spacing: .06em; }
.stat-ranking-table th:nth-child(2), .stat-ranking-table tbody th { text-align: left; }
.stat-ranking-table tbody td:first-child { color: #98a4b4; }
.stat-ranking-table .stat-ranking-current { background: rgb(224 172 128 / .1); }
.stat-ranking-table .stat-ranking-current td:first-child { color: #e6bd76; }
.stat-ranking-table tbody td:last-child { color: #eeeae3; font-weight: 700; }
@media (max-width: 480px) {
  .stat-rank-dialog .battle-dialog-content { padding: 12px; }
  .stat-ranking-table { table-layout: fixed; font-size: .75rem; }
  .stat-ranking-table th, .stat-ranking-table td { padding: 10px 4px; }
  .stat-ranking-table thead th:nth-child(1) { width: 12%; }
  .stat-ranking-table thead th:nth-child(2) { width: 50%; }
  .stat-ranking-table thead th:nth-child(3) { width: 16%; }
  .stat-ranking-table thead th:nth-child(4) { width: 22%; }
  .stat-ranking-table .battle-result-team { gap: 6px; font-size: .75rem; overflow-wrap: anywhere; }
  .stat-ranking-table .battle-result-team .team-badge { width: 28px; height: 28px; flex-basis: 28px; font-size: .8rem; }
}
.colgrid .col-lead { font: 700 1.65rem/1.1 var(--display); }
body[data-team] .colgrid .col-lead.pos { color: var(--pb-positive); }
body[data-team] .colgrid .col-lead.neg { color: var(--pb-negative); }
.colgrid .col-badge, .colgrid .col-badge.won, .colgrid .col-badge.lost { background: none; color: var(--pb-muted); font-size: .62rem; font-weight: 500; border: 0; border-radius: 0; padding: 5px 0 0; text-transform: none; letter-spacing: 0; }
.colgrid .cols { height: 110px; }
.colgrid .col { border-radius: 2px 2px 0 0; background-image: none; box-shadow: none; }
.colgrid .col::before, .colgrid .col::after { display: none; }
.colgrid .col-val { font: 600 .85rem/1.2 var(--font); }
.ppp-strip { grid-template-areas: "label nums"; border-radius: 4px; background: #151b21; border-color: var(--pb-rule); margin-bottom: 24px; }
@media (max-width: 640px) { .ppp-strip { grid-template-areas: "label" "nums"; } }
.ppp-nums b { font-size: 1.4rem; }
.ppp-net.pos b, body[data-team] .ppp-net.pos b { color: var(--pb-positive); }
.ppp-net.neg b, body[data-team] .ppp-net.neg b { color: var(--pb-negative); }
/* Charts: signed area, dates, readable labels and generous point targets. */
.margin-card { border: 0; border-bottom: 1px solid var(--pb-rule); border-radius: 0; background: none; box-shadow: none; }
.margin-card::before { display: none; }
.margin-card .sm-head { padding: 16px 0 0; }
.margin-card h3 { font: 600 .85rem/1.35 var(--font); letter-spacing: 0; text-transform: none; }
.margin-card h3::before { display: none; }
.margin-card .sm-now { font: 800 2.4rem/1 var(--display); background: none; padding: 0; display: inline-flex; gap: 3px; align-items: baseline; }
.sm-now small { font: 400 .65rem/1 var(--font); }
body[data-team] .margin-card .sm-now.pos { color: var(--pb-positive); }
body[data-team] .margin-card .sm-now.neg { color: var(--pb-negative); }
.margin-card .sm-sub { padding: 7px 0 10px; font-size: .68rem; color: var(--pb-muted); }
.margin-card svg { height: 170px; padding: 0; overflow: visible; }
.margin-card svg path.area-positive { fill: var(--pb-positive); opacity: .13; }
.margin-card svg path.area-negative { fill: var(--pb-negative); opacity: .16; }
.margin-card svg path.line-positive { stroke: var(--pb-positive); stroke-width: 2; }
.margin-card svg path.line-negative { stroke: var(--pb-negative); stroke-width: 2; }
.margin-card svg circle.dot-positive { fill: #11171d; stroke: var(--pb-positive); }
.margin-card svg circle.dot-negative { fill: #11171d; stroke: var(--pb-negative); }
.margin-card svg circle.chart-hit { fill: transparent; stroke: none; pointer-events: all; }
.margin-card svg .zero { stroke: #8a949e; stroke-width: 1; opacity: .8; }
.margin-card svg a:focus-visible { outline: none; }
.margin-card svg a:focus-visible circle:not(.chart-hit) { stroke: var(--pb-orange); stroke-width: 4; }
#trends .grid-3 { column-gap: 34px; row-gap: 16px; }
#trends .grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#trends .grid-2 > .card { min-width: 0; }
#trends .scorechart { width: 100%; max-width: 100%; }
#trends .grid-2 > .card { border-radius: 4px; box-shadow: none; background: #151b21; }
.log { border-radius: 4px; box-shadow: none; }
.log .log-rating { color: var(--pb-orange); font-family: var(--display); font-size: 1.3rem; }
/* A single league table and one editorial feature. */
.league-opening { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; padding: 6px 0 40px; }
.league-intro h1 { font-size: clamp(4.2rem, 7.5vw, 6.6rem); margin: 20px 0; }
.league-intro p { color: #c3c9cf; font: 400 1rem/1.6 var(--font); }
.league-edition { display: block; color: var(--pb-muted); font: 500 .65rem/1.5 var(--font); text-transform: uppercase; letter-spacing: .15em; margin-top: 24px; }
.league-feature { display: block; text-decoration: none; border-top: 1px solid var(--pb-rule); border-bottom: 1px solid var(--pb-rule); padding: 22px 0; align-self: center; }
.league-feature .editorial-kicker { justify-content: space-between; }
.league-feature .editorial-kicker::before { display: none; }
.league-feature h2 { font: 700 2.6rem/1.05 var(--display); text-transform: uppercase; color: var(--pb-paper); margin: 20px 0 12px; }
.league-feature > p { color: color-mix(in srgb, var(--team-accent) 70%, white); font: 600 .8rem/1.4 var(--font); margin: 0; }
.feature-bottom { display: flex; justify-content: space-between; gap: 24px; align-items: flex-end; margin-top: 22px; }
.league-feature .rating-signature > strong { font-size: 3.5rem; }
.league-feature:hover h2 { color: var(--pb-orange); }
.feature-edge { display: flex; align-items: center; gap: 9px; margin-bottom: 4px; }
.feature-edge b { font: 700 1.6rem/1 var(--display); color: var(--pb-positive); }
.feature-edge small { font: 400 .65rem/1.5 var(--font); color: var(--pb-muted); }
.league-list-title { display: flex; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--pb-rule); padding-bottom: 14px; align-items: baseline; }
.league-list-title .section-index { margin: 0; }
.league-list-title > span:last-child { color: var(--pb-muted); font: 400 .7rem/1.4 var(--font); }
.league-list { list-style: none; padding: 0; margin: 0; }
.league-list li { margin: 0; }
.league-list .tier-row { display: grid; grid-template-columns: 36px 42px minmax(0, 1fr) 110px 90px 20px; gap: 20px; padding: 5px 12px; border: 0; border-bottom: 1px solid #252d35; border-radius: 0; min-height: 64px; text-decoration: none; }
.league-list .tier-row:hover, .league-list .tier-row:focus-visible { background: #191f26; outline: none; }
.league-list .tier-row:focus-visible { box-shadow: inset 3px 0 var(--pb-orange); }
.league-list .t-rank { font: 500 .9rem/1 var(--font); color: #8e99a5; }
.club-mark { display: grid; place-items: center; color: var(--team-accent); font: 800 1rem/1 var(--display); height: 34px; border-left: 2px solid var(--team-accent); }
.league-list .t-team strong { font-size: 1.1rem; color: var(--pb-paper); font-weight: 600; }
.league-list .t-team small { font-size: .85rem; color: #b9c3ce; margin-top: 6px; line-height: 1.45; }
.league-edge { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.league-edge b { font: 500 1rem/1 var(--font); color: #c7cdd3; font-variant-numeric: tabular-nums; }
.league-edge small { font: 400 .6rem/1 var(--font); color: var(--pb-muted); }
.league-list .t-rating strong { font: 700 2rem/1 var(--display); color: var(--pb-paper); }
.league-list .t-rating small { font: 500 .58rem/1 var(--font); color: var(--pb-orange); text-transform: uppercase; letter-spacing: .08em; margin-top: 6px; }
.row-arrow { color: var(--pb-muted); text-align: right; }
.league-list .tier-row:hover .row-arrow { color: var(--pb-orange); }
/* Consistent rating typography in the detailed game view as well. */
.tile-rating .val, body[data-team] .tile-rating .val { font-family: var(--display); color: var(--pb-paper); }
.tile-rating .eyebrow { color: var(--pb-orange); }
.tile-rating { border-top: 2px solid var(--pb-orange); }
@media (max-width: 900px) {
  .team-opening { gap: 28px; grid-template-columns: 1fr 1fr; }
  .team-story h1 { font-size: 3.3rem; }
  .story-numbers { gap: 14px; }
  .story-context { padding-left: 14px; }
  .signature-kicker { font-size: .6rem; }
  .latest-wrap .takeaway-game { padding: 18px; }
  .league-opening { gap: 36px; }
}
@media (max-width: 700px) {
  .team-opening { grid-template-columns: 1fr; gap: 28px; padding-bottom: 32px; }
  .wrap { padding: 24px 18px 50px; }
  .team-story h1 { font-size: clamp(3.3rem, 12vw, 4.5rem); margin: 20px 0 16px; }
  .editorial-kicker { flex-wrap: wrap; gap: 7px; font-size: .62rem; }
  .edition { margin-left: auto; font-size: .6rem; }
  .story-deck { font-size: .9rem; line-height: 1.6; margin-bottom: 20px; }
  .story-numbers { grid-template-columns: 1fr 1fr; padding: 18px 0; gap: 24px; }
  .rating-signature > strong { font-size: 4.6rem; }
  .signature-kicker { font-size: .65rem; }
  .story-context { padding-left: 24px; }
  .latest-wrap { padding: 0; }
  .latest-wrap .tg-stat { font-size: .78rem; }
  body[data-team] #app > .section.band { padding-top: 24px; }
  #trends .grid-3 { grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 20px; }
  #trends .grid-2 { grid-template-columns: minmax(0, 1fr); }
  .margin-card h3 { font-size: .75rem; }
  .margin-card .sm-now { font-size: 2rem; }
  .margin-card .sm-sub { font-size: .6rem; }
  .margin-card svg { height: 130px; }
  body[data-team] .colgrid .colgroup { padding: 16px 12px; }
  .league-opening { grid-template-columns: 1fr; gap: 18px; padding: 0 0 24px; }
  .league-intro h1 { font-size: 2.85rem; margin: 12px 0; }
  .league-intro h1 br { display: none; }
  .league-intro h1 em { margin-left: .15em; }
  .league-intro p { font-size: .9rem; margin-bottom: 0; }
  .league-edition { margin-top: 12px; }
  .league-feature { padding: 14px 0; }
  .league-feature h2 { font-size: 1.7rem; margin: 12px 0 8px; }
  .feature-bottom { margin-top: 14px; }
  .league-feature .rating-signature > strong { font-size: 2.8rem; margin: 7px 0 3px; }
  .league-list .tier-row { grid-template-columns: 26px minmax(0,1fr) 60px; gap: 12px; padding: 16px 0; min-height: 80px; }
  .club-mark, .league-edge, .row-arrow { display: none; }
  .league-list .t-team { border-left: 2px solid var(--team-accent); padding-left: 12px; }
  .league-list .t-team strong { font-size: .9rem; }
  .league-list .t-team small { font-size: .65rem; }
  .league-list .t-rating strong { font-size: 1.9rem; }
}
@media (max-width: 380px) {
  .edition { display: block; width: 100%; padding-left: 30px; }
  .story-context { padding-left: 14px; }
  .story-numbers { gap: 14px; }
  .signature-kicker { font-size: .6rem; }
  #trends .grid-3 { grid-template-columns: 1fr; }
  .margin-card svg { height: 160px; }
  .margin-card .sm-sub { min-height: 0; }
}
@media (prefers-reduced-motion: reduce) { .league-feature, .league-list .tier-row { transition: none; } }

/* Values lead; dates sit in their own footer, with bright, solid game points. */
.margin-card .sm-head { min-height: 54px; }
.margin-card svg { margin-top: 12px; }
.margin-card svg circle.dot-positive { fill: #c2f5d2; stroke: #83d3a0; stroke-width: 2.5; }
.margin-card svg circle.dot-negative { fill: #ffd0ca; stroke: #ed9690; stroke-width: 2.5; }
.margin-card svg circle:not(.chart-hit):hover { r: 7; stroke-width: 3; }
.margin-card svg circle.chart-hit:hover { r: 9; }
.chart-dates { position: relative; width: 100%; height: 30px; margin: 8px 0 6px; border-top: 1px solid #28313a; color: #c2cbd5; font: 500 .7rem/1.5 var(--font); }
.chart-dates span { position: absolute; top: 8px; transform: translateX(-50%); white-space: nowrap; }
@media (max-width: 700px) { .chart-dates { font-size: .6rem; } }

.margin-card svg circle:not(.chart-hit) { vector-effect: non-scaling-stroke; stroke-width: 2; }

/* Team opening: the numbers are the headline. */
.team-opening { grid-template-columns: minmax(0, 1fr); align-items: start; gap: 28px; }
.team-story h1.team-heading { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 0 0 22px; font: 600 1rem/1.4 var(--font); letter-spacing: .025em; color: var(--pb-paper); text-transform: none; }
.team-heading::before { display: none; }
.team-heading .team-identifier { font: 800 .8rem/1 var(--display); border-left: 2px solid var(--team-accent); padding-left: 10px; }
.team-story .story-numbers { padding: 26px 0; row-gap: 12px; }
.team-story .story-period { grid-column: 1 / -1; margin: 0; font: 700 11px/1.4 var(--font); letter-spacing: 1px; text-transform: uppercase; color: #9ca3b8; text-align: left; }
.team-story .rating-signature { align-items: center; justify-content: center; min-width: 0; text-align: center; }
.team-story .rating-signature > strong { font-size: 7rem; line-height: 1.05; letter-spacing: .012em; margin: 0 0 12px; }
.team-story .rating-signature > small { line-height: 1.7; }
.team-story .rating-signature { align-self: stretch; justify-content: center; }
.team-story .rating-signature > strong:only-child { margin-bottom: 0; }
.team-league-rank { color: #b7c0ca; font: 600 .72rem/1.5 var(--font); letter-spacing: .02em; }
.team-story .story-context { display: flex; flex-direction: column; justify-content: space-between; align-self: stretch; }
.team-story .rating-signature > small, .team-story .story-context > div:last-child > span { display: flex; align-items: center; gap: 6px; font: 400 .65rem/1.7 var(--font); }
.team-story .rating-help { box-sizing: border-box; width: 17px; height: 17px; flex: 0 0 17px; margin: 0; padding: 0; background: none; font: 600 .6rem/1 var(--font); cursor: pointer; }
@supports ((background-clip: text) or (-webkit-background-clip: text)) {
  .team-story .rating-signature > strong { background: linear-gradient(110deg, #e0e4dd 0%, #f1eee8 42%, #fff 49%, color-mix(in srgb, var(--team-accent) 18%, #f1eee8) 56%, #e0e4dd 100%); background-size: 260% 100%; background-position: 100% 50%; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; animation: winning-stat-shine 2.2s ease-out .2s both; }
  @media (prefers-reduced-motion: reduce) { .team-story .rating-signature > strong { animation: none; background: none; -webkit-text-fill-color: currentColor; } }
}
.team-story .story-context strong { font-size: 1.9rem; }
@media (min-width: 901px) {
  .team-opening { grid-template-columns: minmax(0, 1fr); align-items: start; padding-bottom: 28px; }
  .team-story > .ppp-strip { margin: 24px 0 0; grid-template-columns: minmax(0, 1fr); grid-template-areas: "label" "nums"; gap: 14px; }
  .team-story > .ppp-strip .ppp-nums { justify-content: space-between; }
}
body[data-team] .site-header.unified-header { gap: 24px; padding-top: 14px; padding-bottom: 14px; }
.brand-lockup strong { font-size: 1.85rem; }
.brand-lockup small { letter-spacing: .08em; }
.pb-emblem { width: 44px; height: 44px; flex-basis: 44px; }
.pb-emblem { background: transparent; border-radius: 0; overflow: visible; }
.pb-emblem img { position: static; width: 100%; height: 100%; max-width: 100%; object-fit: contain; transform: none; }
body[data-team] .unified-header .team-select select { border-radius: 4px; }
@media (max-width: 800px) {
  body[data-team] .site-header.unified-header { gap: 10px 16px; padding-top: 12px; padding-bottom: 8px; }
  .brand-lockup strong { font-size: 1.6rem; }
  .pb-emblem { width: 38px; height: 38px; flex-basis: 38px; }
}
@media (max-width: 700px) {
  .team-opening { gap: 24px; }
  .team-story h1.team-heading { font-size: .9rem; margin-bottom: 16px; }
  .team-story .story-numbers { padding: 22px 0; }
  .team-story .rating-signature > strong { font-size: 5.5rem; }
  .team-story .story-context strong { font-size: 1.7rem; }
}

/* The featured story opens the league page directly. */
.league-opening { grid-template-columns: minmax(0, 1fr); gap: 0; padding-top: 0; }
.league-opening .league-feature { margin: 0; border-top: 0; padding-top: 0; }

/* Give each club an anchor and each rating a shape, with a quiet alternating rhythm. */
.league-list .tier-row { --row-base: #101419; --gradient-strength: var(--rating-strength); background-color: var(--row-base); background-image: linear-gradient(90deg, color-mix(in srgb, var(--team-accent) var(--gradient-strength), transparent) 0%, color-mix(in srgb, var(--team-accent) var(--gradient-strength), transparent) var(--rating-core), color-mix(in srgb, var(--team-accent) var(--rating-edge-strength), transparent) var(--rating-fill), transparent var(--rating-tail)); padding-left: 14px; padding-right: 14px; }
.league-list li:nth-child(even) .tier-row { --row-base: #11171d; }
.league-list .club-mark { display: grid; height: 38px; border: 1px solid color-mix(in srgb, var(--team-accent) 50%, #303943); border-radius: 5px; background: color-mix(in srgb, var(--team-accent) 13%, #141a21); color: color-mix(in srgb, var(--team-accent) 70%, white); font-size: 1.05rem; }
.league-list .club-mark, .team-badge { position: relative; overflow: hidden; background: linear-gradient(145deg, color-mix(in srgb, var(--badge-primary) 17%, #141a21), #141a21); border-color: color-mix(in srgb, var(--badge-primary) 55%, #48515c); box-shadow: inset 0 1px 0 rgb(255 255 255 / .08); }
.league-list .club-mark > span, .team-badge > span { position: relative; z-index: 1; text-shadow: 0 1px 3px #080b10; }
.league-list .tier-row[href="?team=det#/"] .club-mark, .team-badge[data-team="det"] { border-color: #1d42ba; }
.league-list .club-mark::after, .team-badge::after { content: ''; position: absolute; right: 0; bottom: 0; width: 21px; height: 19px; background: linear-gradient(135deg, transparent 0% 25%, var(--badge-primary) 25% 43%, var(--badge-secondary) 43% 61%, var(--badge-third) 61% 79%, transparent 79%); opacity: .95; pointer-events: none; }
.league-list .t-rating { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0; box-sizing: border-box; min-width: 88px; width: 88px; padding: 4px 7px; border: 1px solid #3a424c; border-radius: 5px; background: #1b222b; text-align: center; }
.league-list .rating-track { height: 5px; margin-top: 4px; visibility: hidden; }
.rating-track { display: block; position: relative; width: 100%; height: 7px; border-radius: 2px; background: #3b4550; margin-top: 8px; overflow: hidden; }
.rating-track::after { content: ''; position: absolute; top: 0; left: 50%; width: 2px; height: 100%; background: rgba(255,255,255,.7); }
.rating-track i { display: block; height: 100%; background: color-mix(in srgb, var(--team-accent) 70%, white); }
.league-list .t-rating small { margin-top: 4px; font-size: .53rem; color: #b7c1cc; line-height: 1; letter-spacing: .1em; }
.league-list .tier-row:hover, .league-list li:nth-child(even) .tier-row:hover, .league-list .tier-row:focus-visible { --row-base: #19212a; --gradient-strength: calc(var(--rating-strength) + 4%); }
@media (max-width: 700px) {
  .league-list .tier-row { grid-template-columns: 22px 34px minmax(0, 1fr) 88px; gap: 10px; padding: 12px 10px; }
  .league-list .club-mark { height: 34px; font-size: .9rem; }
  .league-list .t-team { border: 0; padding-left: 0; }
  .league-list .t-team strong { font-size: 1rem; white-space: normal; line-height: 1.3; }
  .league-list .t-team small { font-size: .8rem; color: #b9c3ce; line-height: 1.45; }
  .league-list .t-rank { font-size: .9rem; }
}

/* Aggregate opponents use a neutral ink, leaving team colors to actual clubs. */
body[data-team]:not(.neutral-shell) .ppp-side b { color: #f5f4f0; }
body[data-team]:not(.neutral-shell) .colgrid .col.opp,
body[data-team]:not(.neutral-shell) .bar.opp .fill,
body[data-team]:not(.neutral-shell) .rate-row .fill.opp,
body[data-team]:not(.neutral-shell) .legend .l-opp::before,
body[data-team]:not(.neutral-shell) .bullet .bullet-opp { background: #d4dbe3; box-shadow: none; }


.tg-score-team { display: inline-flex; flex-direction: column; align-items: center; gap: 5px; }
.latest-wrap .tg-score-team > b { color: #f5f4f0; }
.latest-wrap .tg-badge { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid var(--res); border-radius: 4px; background: color-mix(in srgb, var(--res) 16%, transparent); color: var(--res); font: 800 1.1rem/1 var(--font); transform: translateY(-7px); }
.latest-wrap .takeaway-game.win { --res: #80d899; }
.latest-wrap .takeaway-game.loss { --res: #f08787; }
.tg-score-team small { font: 600 .58rem/1 var(--font); letter-spacing: .09em; color: var(--text-2); }

/* Readable ranking metadata at a glance. */
.league-list .t-rating small { font-size: .62rem; }
.league-list .club-mark { font-size: 1.1rem; }
.league-edge small { font-size: .72rem; }
@media (max-width: 700px) { .league-list .tier-row { min-height: 100px; } .league-list .club-mark { font-size: 1rem; } .league-list .t-rating strong { font-size: 2.1rem; } }
.rating-formula { margin-bottom: 16px; }
.rating-formula dl { margin: 0 0 16px; }
.rating-formula dl > div { padding: 14px 0; border-bottom: 1px solid var(--pb-rule); }
.rating-formula dt { font-size: .75rem; font-weight: 600; color: var(--text-2); margin-bottom: 7px; }
.rating-formula dd { margin: 0; font-size: clamp(1rem, 2.5vw, 1.2rem); font-weight: 600; line-height: 1.6; }
.pb-equation { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; margin: 18px 0 8px; padding: 20px 0; border-top: 1px solid var(--pb-rule); border-bottom: 1px solid var(--pb-rule); font-size: clamp(1.15rem, 3.5vw, 1.7rem); font-weight: 600; line-height: 1.5; color: var(--pb-paper); }
.pb-equation strong { color: #eab581; white-space: nowrap; }
.rating-formula p:last-child { margin-bottom: 0; }
/* Basketball first; the detailed accounting stays available on demand. */
.philosophy-view { max-width: 1040px; margin-inline: auto; }
.philosophy-intro { padding: 10px 0 32px; max-width: 700px; }
.philosophy-intro h1 { font: 800 clamp(2.5rem, 6vw, 4rem)/1.05 var(--display); text-transform: uppercase; margin: 0 0 12px; }
.philosophy-intro .philosophy-lead { color: var(--pb-paper); font-weight: 700; font-size: 1.15rem; margin: 0 0 12px; }
.philosophy-intro p, .rating-example p, .rating-comparison p { color: #b9c2cc; line-height: 1.65; }
.philosophy-view .band-head h2 { color: var(--pb-paper); text-shadow: none; }
.philosophy-view .loop { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr; gap: 10px; }
.philosophy-view .loop-step { min-width: 0; height: 100%; padding: 18px 10px; border-radius: 4px; animation: none; }
.philosophy-view .loop-step strong { font-size: 1.15rem; letter-spacing: 0; }
.philosophy-view .loop-step small { line-height: 1.5; }
.philosophy-note { font-size: .85rem; color: #a7b3c0; line-height: 1.6; margin: 18px 0 0; }
.rating-guide { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; border: 1px solid var(--pb-rule); border-radius: 4px; background: #131a22; }
.rating-guide > div { padding: 22px; }
.rating-guide > div + div { border-left: 1px solid var(--pb-rule); }
.rating-guide dt { font: 700 2rem/1.1 var(--display); color: var(--pb-paper); margin-bottom: 10px; }
.rating-guide > div:first-child dt { color: var(--pb-negative); }
.rating-guide > div:last-child dt { color: var(--pb-positive); }
.rating-guide dd { margin: 0; font-size: .9rem; line-height: 1.5; color: #b9c2cc; }
.rating-not-probability { margin: 16px 0 26px; font-size: .95rem; font-weight: 600; }
.rating-example { background: linear-gradient(115deg, #16241f, #111923 65%); border: 1px solid #34434c; border-radius: 4px; padding: 24px; }
.rating-example h3, .rating-comparison h3, .battle-explainer-group h3 { font: 700 1.4rem/1.2 var(--display); text-transform: uppercase; margin: 0 0 8px; }
.rating-example .philosophy-note { margin-top: 0; }
.rating-example-flow { display: grid; grid-template-columns: 1fr auto 1fr; align-items: start; gap: 24px; margin: 24px 0; }
.rating-example-flow > div { display: flex; flex-direction: column; gap: 10px; }
.rating-example-flow strong { font: 800 clamp(3rem, 7vw, 4.5rem)/1 var(--display); color: var(--pb-positive); }
.rating-example-flow > div:last-child strong { color: #a5e1fa; }
.rating-example-flow span { font-size: .85rem; line-height: 1.5; color: #c4ced8; }
.rating-example-flow .rating-example-arrow { align-self: center; font-size: 1.5rem; color: #7e909e; }
.rating-example > p:last-child { margin-bottom: 0; font-size: .9rem; }
.rating-comparison, .battle-explainer-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.rating-comparison article { padding: 24px; background: #131a22; border-top: 2px solid #5d7387; border-radius: 4px; }
.rating-comparison p { font-size: .95rem; margin: 12px 0; }
.player-credit { list-style: none; padding: 0; margin: 16px 0; }
.player-credit li { display: flex; gap: 10px; font-size: .9rem; padding: 7px 0; }
.player-credit b { color: var(--pb-positive); }
.player-credit .credit-loss b { color: var(--pb-negative); }
.battle-explainer-group { min-width: 0; }
.battle-explainer-group > h3 { font-size: 1.1rem; color: #b9d6ca; margin-bottom: 14px; }
.battle-explainer-group dl { margin: 0; background: #14201e; border-radius: 4px; padding: 0 20px; }
.battle-explainer-group dl > div { padding: 18px 0; }
.battle-explainer-group dl > div + div { border-top: 1px solid #2b3939; }
.battle-explainer-group dt { font: 700 1.15rem/1.2 var(--display); text-transform: uppercase; }
.battle-explainer-group dd { margin: 8px 0 0; color: #b4c0c8; font-size: .88rem; line-height: 1.55; }
.battle-context > h3 { color: #aebcca; }
.battle-context dl { background: #151b23; }
.methodology-details { border: 1px solid var(--pb-rule); border-radius: 4px; }
.methodology-details > summary { padding: 20px; cursor: pointer; color: #d6dfe7; font-weight: 600; line-height: 1.5; }
.methodology-details > summary:hover { background: #19222b; }
.methodology-details > summary:focus-visible { outline: 2px solid #a5e1fa; outline-offset: 3px; }
.methodology-content { padding: 0 20px 20px; }
.methodology-content .card { margin-top: 16px; }
@media (max-width: 700px) {
  .philosophy-view .loop { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .philosophy-view .loop-arrow { display: none; }
  .rating-comparison, .battle-explainer-groups { grid-template-columns: 1fr; gap: 18px; }
  .rating-guide { grid-template-columns: 1fr; }
  .rating-guide > div { display: grid; grid-template-columns: 95px 1fr; gap: 14px; align-items: center; padding: 18px; }
  .rating-guide > div + div { border-left: 0; border-top: 1px solid var(--pb-rule); }
  .rating-guide dt { font-size: 1.6rem; margin: 0; }
  .rating-example { padding: 18px; }
  .rating-example-flow { gap: 12px; }
  .rating-example-flow span { font-size: .78rem; }
  .methodology-content { padding: 0 12px 12px; }
}
.latest-wrap .tg-edges { gap: 0 20px; }
.latest-wrap .tg-stat { justify-content: flex-start; gap: 9px; min-height: 58px; padding: 12px 0; border-bottom: 1px solid rgba(164,173,183,.1); font-size: .92rem; line-height: 1.4; font-weight: 600; color: #e0e3e7; }
.latest-wrap .tg-status { order: -1; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 25px; height: 25px; border-radius: 50%; background: rgba(164,173,183,.07); font-size: 1.05rem; }
.latest-wrap .tg-stat-name { flex: 1; min-width: 0; }
.latest-wrap .tg-stat-margin { flex: 0 0 auto; margin-left: auto; font-variant-numeric: tabular-nums; white-space: nowrap; }
.latest-wrap .tg-stat-margin.won { color: var(--pb-positive); }
.latest-wrap .tg-stat-margin.lost { color: var(--pb-negative); }
@media (max-width: 380px) { .latest-wrap .tg-edges { column-gap: 12px; } .latest-wrap .tg-stat { font-size: .88rem; gap: 7px; } }
.league-outcomes { margin-top: 36px; overflow: hidden; border: 1px solid #29435d; border-radius: 12px 2px; background: #0d1828; }
.outcomes-header { position: relative; isolation: isolate; padding: 18px 22px 16px; background: radial-gradient(ellipse at 10% 0, #65caff12, transparent 70%), #112039; border-top: 2px solid var(--pi-yellow, #FFD84D); }
.outcomes-header::before { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(120deg, transparent 63%, #65caff0d 63% 75%, transparent 75% 78%, #65caff30 78% 80%, transparent 80% 89%, #ffd84d18 89% 95%, transparent 95%); }
.outcomes-tracker { display: table; margin: 0 0 10px auto; padding: 5px 7px; border: 1px solid #65caff40; border-radius: 4px 1px; color: #9cddff; background: #65caff09; font: 700 .58rem/1.2 var(--font); letter-spacing: .04em; text-transform: uppercase; }
.league-outcomes h2 { font: italic 800 clamp(1.8rem, 4vw, 2.3rem)/1 var(--display); margin: 0; color: #f1f6ff; letter-spacing: -.015em; }
.outcomes-vs { font-size: .66em; color: #88a7c4; }
.outcomes-results { color: var(--pi-yellow, #FFD84D); }
.outcomes-intro { margin: 8px 0 0; color: #acbed1; font: 500 .78rem/1.5 var(--font); }
.outcomes-table { width: 100%; border-collapse: separate; border-spacing: 0; table-layout: fixed; font-variant-numeric: tabular-nums; }
.outcomes-table thead th { padding: 10px 16px; background: #0d1828; color: #9cb0c7; font: 700 .6rem/1.3 var(--font); letter-spacing: .07em; text-transform: uppercase; text-align: left; }
.outcomes-table thead th:first-child { width: 26%; }
.outcomes-table thead th:nth-child(2) { width: 22%; text-align: center; }
.outcomes-table thead th:nth-child(3) { width: 36%; }
.outcomes-table thead th:last-child { width: 16%; text-align: right; }
.outcomes-scale { float: right; color: #7188a2; font-size: .55rem; font-weight: 500; letter-spacing: 0; }
.outcomes-table tbody th, .outcomes-table tbody td { padding: 10px 16px; border-top: 1px solid #8ca7c01a; text-align: left; vertical-align: middle; }
.outcomes-table tbody td.outcome-record { text-align: center; }
.outcomes-table tbody td.outcome-sample { text-align: right; }
.outcome-band { --band-color: #dd8b96; background: linear-gradient(118deg, transparent 40%, color-mix(in srgb, var(--band-color) 7%, transparent) 40% 56%, transparent 56% 59%, color-mix(in srgb, var(--band-color) 11%, transparent) 59% 62%, transparent 62%), linear-gradient(90deg, color-mix(in srgb, var(--band-color) 10%, #0d1828), #0d1828); }
.outcome-band.band-1 { --band-color: #baa9c9; }
.outcome-band.band-2 { --band-color: #7dc8f2; }
.outcome-band.band-3 { --band-color: #73d9c2; }
.outcome-band.band-4 { --band-color: #86EFAC; }
.outcomes-table tbody th { font: 700 1.3rem/1.1 var(--display); color: var(--band-color); box-shadow: inset 3px 0 0 color-mix(in srgb, var(--band-color) 50%, transparent); }
.outcomes-table .band-4 th { box-shadow: inset 3px 0 0 var(--band-color); }
.outcome-range { white-space: nowrap; }
.outcome-record { font: 600 1.3rem/1.1 var(--display); color: #dce7f5; }
.outcome-rate { background: linear-gradient(90deg, transparent, #0d18288c 15% 85%, transparent); }
.outcome-rate b { display: block; font: 800 2.5rem/.95 var(--display); letter-spacing: -.015em; color: var(--band-color); }
.outcome-meter { display: block; width: 100%; height: 6px; margin-top: 7px; border-radius: 2px; background: #8fa6c338; box-shadow: inset 0 0 0 1px #8fa6c314; overflow: hidden; }
.outcome-meter i { display: block; width: var(--win-rate); height: 100%; background: var(--band-color); transform-origin: left; animation: outcome-bar-enter .45s ease-out both; }
.outcome-sample { font: 500 .8rem/1.3 var(--font); color: #95abc4; }
.outcomes-review { padding: 10px 18px 14px; background: #0b1524; border-top: 1px solid #65caff20; }
.outcomes-review-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.outcomes-review-heading > strong { color: #b5c9df; font: 700 .65rem/1.2 var(--font); letter-spacing: .1em; text-transform: uppercase; }
.outcomes-review > p { color: #8fa7c1; font: 400 .73rem/1.5 var(--font); margin: 3px 0 0; max-width: 660px; }
.outcomes-review > .outcomes-observations { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 8px; font-size: .68rem; }
.outcomes-observations > span { white-space: nowrap; }
.outcomes-observations b { color: var(--pi-blue, #65CAFF); font-weight: 700; font-variant-numeric: tabular-nums; }
.outcomes-help { position: relative; flex: 0 0 28px; }
.outcomes-help summary { display: grid; place-items: center; width: 28px; height: 28px; cursor: pointer; list-style: none; border-radius: 4px; }
.outcomes-help summary::-webkit-details-marker { display: none; }
.outcomes-help summary span { display: grid; place-items: center; width: 16px; height: 16px; border: 1px solid #65caff70; border-radius: 50%; color: var(--pi-blue, #65CAFF); font: 600 .65rem/1 var(--font); }
.outcomes-help summary:focus-visible { outline: 2px solid var(--pi-blue, #65CAFF); outline-offset: 1px; }
.outcomes-help[open] summary { background: #65caff16; }
.outcomes-tooltip { position: absolute; right: 0; bottom: calc(100% + 6px); z-index: 3; width: min(280px, calc(100vw - 84px)); margin: 0; padding: 13px; box-sizing: border-box; border: 1px solid #65caff70; border-radius: 8px 2px; color: #d4e4f4; background: #14273d; box-shadow: 0 8px 24px #0009; font: 400 .73rem/1.55 var(--font); }
@keyframes outcome-bar-enter { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@media (prefers-reduced-motion: reduce) { .outcome-meter i { animation: none; } }
@media (max-width: 520px) {
  .outcomes-header { padding: 12px; }
  .outcomes-tracker { padding: 4px 5px; font-size: .5rem; }
  .league-outcomes h2 { font-size: 1.8rem; }
  .outcomes-intro { font-size: .65rem; }
  .outcomes-table thead th { padding: 9px 8px; font-size: .5rem; letter-spacing: .02em; }
  .outcomes-scale { font-size: .43rem; line-height: 1.6; }
  .outcomes-table tbody th, .outcomes-table tbody td { padding: 9px 8px; }
  .outcomes-table tbody th { font-size: 1.1rem; }
  .outcome-record { font-size: 1.12rem; }
  .outcome-rate b { font-size: 2.1rem; }
  .outcome-sample { font-size: .68rem; }
  .outcomes-review { padding: 6px 12px 12px; }
  .outcomes-review-heading > strong { font-size: .58rem; }
  .outcomes-review > p { font-size: .65rem; }
  .outcomes-review > .outcomes-observations { font-size: .62rem; }
}
.league-metrics { display: contents; }
@media (max-width: 700px) {
  .league-list .tier-row { grid-template-columns: 22px 38px minmax(0, 1fr); gap: 3px 10px; padding: 5px 12px; min-height: 0; }
  .league-list .t-rank, .league-list .club-mark, .league-list .t-team { grid-row: 1; }
  .league-list .t-team { grid-column: 3; }
  .league-list .t-team strong { font-size: 1.1rem; }
  .league-list .league-metrics { display: grid; grid-template-columns: 1fr 1fr; grid-column: 1 / -1; gap: 12px; padding-top: 3px; border-top: 1px solid rgba(164,173,183,.14); }
  .league-list .t-rating, .league-list .league-edge { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; min-width: 0; width: auto; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; text-align: center; gap: 0; }
  .league-list .league-edge { flex-direction: row; justify-content: center; align-items: center; gap: 8px; border-right: 1px solid rgba(164,173,183,.14); }
  .league-list .league-edge b, .league-list .t-rating strong { font: 700 2.1rem/1 var(--display); color: var(--pb-paper); }
  .league-list .league-edge small, .league-list .t-rating small { font: 500 .65rem/1.3 var(--font); color: #b7c1cc; letter-spacing: .04em; text-transform: uppercase; }
  .league-list .league-edge small { margin-top: 0; max-width: 94px; text-align: left; }
  .league-list .t-rating { display: grid; grid-template-columns: auto auto; justify-content: center; align-items: center; column-gap: 8px; }
  .league-list .t-rating strong { grid-column: 1; grid-row: 1; }
  .league-list .t-rating small { grid-column: 2; grid-row: 1; margin: 0; text-align: left; }
  .league-list .rating-track { grid-column: 1 / -1; grid-row: 2; width: 100%; height: 4px; margin-top: 4px; }
}
.league-list .t-team strong { color: #c6cdd6; font-weight: 500; }
.league-list .t-team small { color: #94a2b2; font-size: 1rem; font-weight: 500; line-height: 1.4; margin-top: 6px; font-variant-numeric: tabular-nums; }
.league-list .t-rank { color: #7f8a96; }
.league-list .t-rating strong { color: var(--team-accent); }
.league-list .league-edge b { color: #929fad; font-size: .9rem; font-weight: 500; }
.league-list .league-edge small { font-size: .65rem; }
.league-list .t-rating small, .league-list .league-edge small { color: #8f9ba9; }
@media (max-width: 700px) {
  .league-list .tier-row { grid-template-columns: 22px 38px minmax(0, 1fr) auto; align-items: center; }
  .league-list .t-team { display: contents; }
  .league-list .t-team strong { grid-column: 3; grid-row: 1; align-self: center; }
  .league-list .t-team small { grid-column: 4; grid-row: 1; align-self: center; margin: 0; max-width: 86px; text-align: right; }
}
@media (max-width: 420px) {
  .league-list .league-edge { flex-direction: column; gap: 4px; }
  .league-list .league-edge small { max-width: none; text-align: center; }
  .league-list .t-rating { grid-template-columns: 1fr; justify-items: center; }
  .league-list .t-rating small { grid-column: 1; grid-row: 3; margin-top: 4px; text-align: center; }
  .league-list .rating-track { grid-column: 1; width: 74px; }
}
.league-list .t-team strong { font-size: 1.02rem; }
.league-list .t-team small { font-size: .92rem; }
.league-list .t-rating strong { font-size: 1.9rem; }
@media (max-width: 700px) {
  .league-list .league-edge b, .league-list .t-rating strong { font-size: 1.95rem; }
  .league-list .league-edge b { font-size: 1.5rem; }
  .league-list .league-edge small { font-size: .6rem; }
}
/* Reserve the existing rating footprint; enlarge only its visible numeral. */
.league-list .tier-row { position: relative; }
.league-list .t-rating { position: relative; border-color: transparent; background: none; }
.league-list .t-rating strong { visibility: hidden; }
.league-list .t-rating::after { content: attr(data-rating); position: absolute; inset: -7px 0 9px; display: flex; align-items: center; justify-content: center; color: var(--team-accent); font: 700 2.6rem/1 var(--display); font-variant-numeric: tabular-nums; pointer-events: none; }
@media (max-width: 700px) {
  .league-list .league-metrics { position: static; border-top-color: transparent; }
  .league-list .league-edge { border-right-color: transparent; }
  .league-list .t-rating { position: static; }
  .league-list .t-rating::after { inset: 0 12px 0 calc(50% + 6px); font-size: 2.8rem; }
}
@media (max-width: 420px) {
  .league-list .league-metrics { position: relative; }
  .league-list .t-rating::after { inset: 0 0 10px 50%; }
}
body[data-team] .unified-header .team-select select {
  min-height: 48px;
  padding: 12px 32px 12px 14px;
  font-size: 1rem;
  font-weight: 600;
  color: #eef0f3;
  background: color-mix(in srgb, var(--selector-accent, #ef9955) 18%, #151a21);
  border: 1px solid color-mix(in srgb, var(--selector-accent, #ef9955) 65%, #3a414b);
  border-left: 4px solid var(--selector-accent, #ef9955);
  border-radius: 7px;
  cursor: pointer;
}
body[data-team] .unified-header .team-select select:focus-visible { outline: 2px solid var(--selector-accent, #ef9955); outline-offset: 3px; }
.team-select select option, .team-select select optgroup { background: #1d222a; color: #eef0f3; }
@media (max-width: 700px) {
  body[data-team] .unified-header .team-select { grid-column: 2; grid-row: 2; }
  body[data-team] .site-header.unified-header .site-nav { grid-column: 1; }
  body[data-team] .unified-header .team-select select { min-height: 52px; font-size: 1rem; }
}
.team-picker-trigger { width: 100%; min-height: 48px; padding: 12px 32px 12px 12px; text-align: left; position: relative; font: 600 .9rem/1.4 var(--font); color: #eef0f3; background: #1d222a; border: 1px solid #9c7254; border-radius: 6px; cursor: pointer; box-shadow: 0 0 12px rgb(239 153 85 / .14), inset 0 0 5px rgb(239 153 85 / .04); }
.team-picker-trigger:hover, .team-picker-trigger:focus-visible { box-shadow: 0 0 16px rgb(239 153 85 / .23), inset 0 0 5px rgb(239 153 85 / .06); }
.team-picker-trigger::after { content: '⌄'; position: absolute; right: 14px; top: 50%; transform: translateY(-60%); font-size: 1.3rem; }
.team-picker-trigger:focus-visible { outline: 2px solid var(--selector-accent, #ef9955); outline-offset: 3px; }
body[data-team] .site-header.unified-header .site-nav a.active[data-route="home"] { position: relative; }
body[data-team] .site-header.unified-header .site-nav a.active[data-route="home"]::after { content: ''; position: absolute; left: 0; right: 0; bottom: -2px; height: 2px; border-radius: 2px; background: #ef9955; box-shadow: 0 0 6px rgb(239 153 85 / .65), 0 0 12px rgb(239 153 85 / .2); pointer-events: none; }
.team-picker-dialog { width: min(1000px, calc(100vw - 32px)); max-width: 1000px; max-height: calc(100dvh - 40px); margin: auto; box-sizing: border-box; padding: 0; border: 1px solid #434b56; border-radius: 10px; color: #eef0f3; background: rgb(23 29 37 / .96); backdrop-filter: blur(16px); box-shadow: 0 24px 80px rgb(0 0 0 / .45); }
.team-picker-dialog::backdrop { background: #05080dc9; }
.team-picker-body { display: flex; flex-direction: column; max-height: calc(100dvh - 42px); padding: 20px; box-sizing: border-box; }
.team-picker-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.team-picker-head h2 { margin: 0; font: 700 1.65rem/1.2 var(--display); }
.team-picker-close { min-width: 44px; min-height: 44px; border: 1px solid #414b58; border-radius: 6px; background: #242d39; color: #eef0f3; font-size: 1.5rem; cursor: pointer; }
.team-picker-results { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px 16px; align-content: start; overflow-y: auto; overscroll-behavior: contain; min-height: 0; padding: 3px; }
.team-picker-results { scrollbar-width: thin; scrollbar-color: #56606d transparent; scrollbar-gutter: stable; }
.team-picker-results::-webkit-scrollbar { width: 8px; }
.team-picker-results::-webkit-scrollbar-track { background: transparent; }
.team-picker-results::-webkit-scrollbar-thumb { background: #56606d; border: 2px solid #171d25; border-radius: 10px; }
.team-picker-results::-webkit-scrollbar-thumb:hover { background: #a78a68; }
.team-picker-dialog { overflow: hidden; }
body:has(.team-picker-dialog[open]) { overflow: hidden; }
.team-picker-group { min-width: 0; }
.team-picker-division { margin: 0 0 10px; color: #a4adb7; font: 600 .68rem/1.4 var(--font); text-transform: uppercase; letter-spacing: .1em; }
.team-picker-choices { display: grid; gap: 6px; }
.team-picker-choice { display: flex; align-items: center; gap: 10px; width: 100%; min-width: 0; min-height: 52px; padding: 8px 10px; margin: 0; border: 1px solid color-mix(in srgb, var(--choice-color) 25%, #303945); border-left: 3px solid var(--choice-color); border-radius: 5px; background: color-mix(in srgb, var(--choice-color) 7%, #171d25); color: #eef0f3; text-align: left; font: 600 .85rem/1.3 var(--font); cursor: pointer; }
.team-picker-selected { margin-left: auto; color: var(--choice-color); }
.team-picker-badge { display: grid; place-items: center; flex: 0 0 38px; width: 38px; height: 34px; color: color-mix(in srgb, var(--choice-color) 70%, white); border: 1px solid color-mix(in srgb, var(--badge-primary) 55%, #48515c); border-radius: 5px; font: 800 1rem/1 var(--display); }
.team-picker-choice:hover, .team-picker-choice:focus-visible, .team-picker-choice[aria-current] { background: color-mix(in srgb, var(--choice-color) 20%, #171d25); outline-color: var(--choice-color); }
@media (max-width: 760px) { .team-picker-results { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .team-picker-body { padding: 14px; } .team-picker-results { gap: 20px 10px; } .team-picker-choice { gap: 7px; padding: 8px 6px; font-size: .78rem; } .team-picker-badge { flex-basis: 32px; width: 32px; height: 32px; font-size: .9rem; } .team-picker-selected { font-size: .7rem; } }
@media (max-width: 700px) { .team-picker-trigger { min-height: 52px; } }
.editorial-rankings > .league-opening { margin: 36px 0 0; }
.tg-game-metrics { margin-left: auto; padding-left: 14px; border-left: 1px solid #39414a; display: flex; flex-direction: column; align-items: flex-end; gap: 12px; flex-shrink: 0; }
.tg-game-metrics .tg-rating { padding: 0; border: 0; margin: 0; }
.tg-game-edge { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.tg-game-edge b { font: 700 1.4rem/1 var(--display); color: var(--pb-paper); }
.tg-game-edge .edge-positive { color: var(--pb-positive); }
.tg-game-edge .edge-negative { color: var(--pb-negative); }
.tg-game-edge small { color: var(--pb-muted); font-size: .6rem; line-height: 1.3; }
@media (max-width: 380px) { .latest-wrap .tg-main { gap: 8px; } .latest-wrap .tg-score { font-size: 1.7rem; } .tg-game-metrics { padding-left: 10px; } }

/* Latest game: the opportunity margin leads, with the rating as context. */
.latest-wrap .tg-game-edge b { font-size: clamp(2.8rem, 5vw, 3.8rem); letter-spacing: .01em; }
.latest-wrap .tg-game-edge small { max-width: 180px; font-size: .75rem; line-height: 1.5; text-align: right; }
.latest-wrap .tg-main { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 16px; margin-top: 14px; }
.tg-score-line { display: flex; align-items: center; gap: 12px; }
.latest-wrap .tg-scoreboard .tg-game-edge { display: flex; flex-direction: row; align-items: baseline; justify-content: flex-start; gap: 6px; margin-top: 10px; white-space: nowrap; }
.latest-wrap .tg-scoreboard .tg-game-edge b { font: 700 1.1rem/1.3 var(--font); letter-spacing: 0; }
.latest-wrap .tg-scoreboard .tg-game-edge small { font: 400 .7rem/1.4 var(--font); text-align: left; }
.latest-wrap .tg-game-metrics { gap: 0; padding-left: 16px; border: 0; margin: 0; }
.latest-wrap .tg-game-metrics .tg-rating { gap: 3px; }
.latest-wrap .tg-game-metrics .tg-rating { position: relative; isolation: isolate; }
.latest-wrap .tg-game-metrics .tg-rating::before { content: ''; position: absolute; z-index: -1; inset: -12px -10px -10px -22px; pointer-events: none; border-radius: 4px; background: linear-gradient(125deg, transparent 24%, rgb(232 177 102 / .09) 24.5%, rgb(232 177 102 / .09) 38%, transparent 38.5%), linear-gradient(125deg, transparent 44%, rgb(232 177 102 / .055) 44.5%, rgb(232 177 102 / .055) 58%, transparent 58.5%), radial-gradient(ellipse at 75% 40%, rgb(232 177 102 / .12), transparent 70%); }
.latest-wrap .tg-game-metrics .tg-rating b { font: 700 clamp(2.8rem, 5vw, 3.6rem)/1 var(--display); letter-spacing: 0; color: var(--pb-orange); text-shadow: none; }
.latest-wrap .tg-rating b small { font: 400 .75rem/1.3 var(--font); color: var(--pb-muted); letter-spacing: 0; }
.latest-wrap .tg-game-metrics .tg-rating > small { margin: 0; font: 400 .68rem/1.4 var(--font); letter-spacing: 0; text-transform: none; }
.tg-season-context { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 12px; color: var(--pb-muted); font: 400 .7rem/1.5 var(--font); }
.tg-season-context > span + span { padding-left: 12px; border-left: 1px solid var(--pb-rule); }
.tg-season-context strong { color: var(--pb-paper); font-variant-numeric: tabular-nums; }
.latest-wrap .tg-when .team-badge { display: grid; place-items: center; width: 29px; height: 27px; flex: 0 0 29px; border: 1px solid color-mix(in srgb, var(--badge-primary) 55%, #48515c); border-radius: 4px; color: color-mix(in srgb, var(--choice-color) 70%, white); font: 800 .8rem/1 var(--display); }
.latest-wrap .tg-when .team-badge::after { width: 16px; height: 15px; }
.latest-wrap .tg-when .team-badge[data-team="det"] { border-color: #1d42ba; }
.latest-wrap .tg-when { display: inline-flex; align-items: center; justify-content: flex-end; gap: 7px; white-space: nowrap; }
.latest-wrap .tg-when > span:first-child { margin-right: 3px; }
.latest-wrap .tg-top { align-items: center; }
.latest-wrap .tg-latest-card { display: grid; grid-template-columns: max-content minmax(0, 1fr); column-gap: 24px; }
.latest-wrap .tg-latest-card > .tg-top { grid-column: 1; grid-row: 1; justify-content: center; gap: 12px; }
.latest-wrap .tg-latest-card > .tg-main { display: contents; }
.tg-latest-card .tg-scoreboard { grid-column: 1; grid-row: 2; margin-top: 14px; }
.tg-latest-card .tg-score-line { justify-content: center; }
.latest-wrap .tg-latest-card .tg-scoreboard .tg-game-edge { justify-content: center; }
.tg-latest-card .tg-score, .tg-latest-card .tg-game-edge b, .tg-latest-card .tg-frame { font-variant-numeric: tabular-nums; }
.latest-wrap .tg-latest-card .tg-game-metrics { grid-column: 2; grid-row: 1 / span 2; align-self: center; justify-self: end; padding: 0; }
.latest-wrap .tg-latest-card .tg-rating { align-items: center; text-align: center; }
.latest-wrap .tg-latest-card .tg-rating b { font-size: clamp(4rem, 7vw, 6rem); line-height: .95; }
.latest-wrap .tg-latest-card .tg-rating b small { display: block; margin-top: 5px; font-size: .65rem; }
.latest-wrap .tg-latest-card .tg-rating > small { font-size: .68rem; }
.tg-latest-card > .tg-edges { grid-column: 1 / -1; }
@media (max-width: 640px) {
  .latest-wrap .tg-latest-card { column-gap: 14px; }
  .latest-wrap .tg-latest-card .tg-rating b { font-size: 4rem; }
}
@media (max-width: 380px) {
  .latest-wrap .tg-latest-card { column-gap: 8px; }
  .latest-wrap .tg-latest-card > .tg-top { gap: 7px; }
  .latest-wrap .tg-latest-card .tg-rating b { font-size: 3.4rem; }
  .latest-wrap .tg-latest-card .tg-rating > small { font-size: .6rem; }
}
@media (max-width: 380px) {
  .latest-wrap .tg-top { gap: 8px; }
  .latest-wrap .tg-when { gap: 4px; font-size: .7rem; }
  .latest-wrap .tg-when .team-badge { width: 24px; height: 24px; flex-basis: 24px; font-size: .7rem; }
}
.latest-wrap .tg-stat { min-height: 64px; gap: 8px; padding: 9px 4px; border-radius: 3px; }
.latest-wrap .tg-stat-name strong { display: block; color: #f5f6f8; font: 700 .94rem/1.35 var(--font); letter-spacing: .005em; text-shadow: 0 1px 3px rgb(0 0 0 / .3); }
.latest-wrap .tg-stat-highlight-gain { background: color-mix(in srgb, var(--pb-positive) 5%, transparent); }
.latest-wrap .tg-stat-highlight-loss { background: color-mix(in srgb, var(--pb-negative) 5%, transparent); }
.latest-wrap .tg-stat-name .tg-stat-callout { color: var(--pb-positive); font-size: .6rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.latest-wrap .tg-stat-name .tg-stat-callout.loss { color: var(--pb-negative); }
.latest-wrap .tg-stat-name small, .latest-wrap .tg-stat-margin small { display: block; margin-top: 3px; color: #b7c1cc; font: 400 .75rem/1.35 var(--font); white-space: normal; }
.latest-wrap .tg-stat-margin { flex: 0 0 145px; max-width: 45%; text-align: right; }
.latest-wrap .tg-stat-margin b { font: 700 1rem/1.4 var(--font); }
.latest-wrap .tg-stat-margin .tg-stat-beneficiary { display: inline-flex; align-items: center; gap: 4px; }
.tg-stat-beneficiary .team-badge, .col-outcome .team-badge { display: inline-grid; place-items: center; width: 23px; height: 21px; flex: 0 0 23px; border: 1px solid color-mix(in srgb, var(--badge-primary) 55%, #48515c); border-radius: 3px; color: color-mix(in srgb, var(--choice-color) 70%, white); font: 800 .65rem/1 var(--display); }
.tg-stat-beneficiary .team-badge::after, .col-outcome .team-badge::after { width: 13px; height: 12px; }
.tg-stat-beneficiary .team-badge[data-team="det"], .col-outcome .team-badge[data-team="det"] { border-color: #1d42ba; }
.col-outcome { gap: 5px; }
.adv-tag { display: inline-block; padding: 2px 1px; color: #9ea9b6; font: 500 .55rem/1.2 var(--font); letter-spacing: .05em; }
.latest-wrap .tg-date-frame { flex-direction: column; gap: 2px; padding-block: 5px; }
.tg-date-frame > small { color: #aeb8c5; font: 500 .5rem/1 var(--font); letter-spacing: .08em; }
@media (max-width: 640px) {
  .latest-wrap .tg-main { flex-wrap: wrap; }
  .latest-wrap .tg-game-metrics { padding: 0; margin: 0; }
  .latest-wrap .tg-game-edge { align-items: flex-end; }
  .latest-wrap .tg-game-edge small { text-align: right; }
  .latest-wrap .tg-edges { column-gap: 14px; }
  .latest-wrap .tg-stat { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: 1fr auto; gap: 5px; min-height: 0; padding: 10px 4px; align-content: stretch; font-size: .84rem; }
  .latest-wrap .tg-status { grid-column: 1; grid-row: 1; width: 18px; height: 18px; font-size: .85rem; }
  .latest-wrap .tg-stat-name { grid-column: 1; grid-row: 1; }
  .latest-wrap .tg-stat-name strong { font-size: .9rem; }
  .latest-wrap .tg-stat-name small { margin-top: 2px; font-size: .7rem; line-height: 1.3; }
  .latest-wrap .tg-stat-name .tg-stat-callout { margin-top: 3px; font-size: .625rem; }
  .latest-wrap .tg-stat-margin { grid-column: 1 / -1; grid-row: 2; display: flex; align-items: center; justify-content: space-between; gap: 5px; margin: 0; max-width: none; text-align: left; }
  .latest-wrap .tg-stat-margin b { flex-shrink: 0; font-size: .9rem; }
  .latest-wrap .tg-stat-margin small { margin: 0; font-size: .7rem; line-height: 1.3; }
  .latest-wrap .tg-stat-margin .tg-stat-beneficiary { flex-shrink: 0; }
}
@media (max-width: 380px) {
  .latest-wrap .tg-main { gap: 8px; }
  .tg-score-line { gap: 7px; }
  .latest-wrap .tg-game-edge b { font-size: 2.5rem; }
  .latest-wrap .tg-game-edge small { font-size: .65rem; }
  .latest-wrap .tg-game-metrics .tg-rating b { font-size: 2.5rem; }
}
.margin-card .sm-explanation { margin: 8px 0 14px; color: #c2cbd5; font: 500 .88rem/1.5 var(--font); }
.pb-scale-note { margin: 18px 0; padding-left: 16px; border-left: 2px solid #ad805b; }
.pb-scale-note h4 { font-size: 1rem; color: #eab581; margin: 0 0 12px; }
.pb-scale-note p { font-size: .9rem; line-height: 1.6; color: #b7c1cc; margin: 0 0 10px; }
.pb-scale-note strong { color: var(--pb-paper); font-weight: 600; }
.ppp-takeaway { text-wrap: balance; }
.col-outcome { position: relative; --outcome-rule: #59636f; display: flex; align-items: center; justify-content: flex-start; min-height: 22px; box-sizing: border-box; margin-bottom: 14px; padding: 7px 0 0; border-radius: 0; border-top: 2px solid transparent; background: none; color: #a4adb7; font: 500 .67rem/1.3 var(--font); text-align: left; }
.col-outcome::before { content: ''; position: absolute; top: -2px; left: 0; width: 50%; height: 2px; background: var(--outcome-rule); }
.colgroup.won .col-outcome { color: color-mix(in srgb, var(--team-accent, #a4adb7) 60%, #cbd1d6); background: none; --outcome-rule: var(--team-accent, #a4adb7); }
.colgroup.lost .col-outcome { color: #a4adb7; background: none; --outcome-rule: #7d8895; }
body[data-team] .colgrid .col-lead.pos { color: color-mix(in srgb, var(--team-accent, #a4adb7) 70%, white); }
body[data-team] .colgrid .col-lead.neg { color: #d8dde5; }
body[data-team] .colgrid .colgroup { grid-template-rows: auto minmax(2.5em, auto) auto auto; }
.colgrid .col-badge { font-size: .75rem; }
body[data-team] .site-header.unified-header { align-items: center; background: linear-gradient(90deg, rgba(22,25,31,.62), rgba(22,25,31,.72)), url('headerbackground.jfif') right center / cover no-repeat, #16191f; }
body[data-team] .site-header.unified-header .site-nav { align-items: center; justify-content: flex-start; }
body[data-team] .site-header.unified-header .site-nav a { display: inline-flex; align-items: center; min-height: 48px; box-sizing: border-box; }
body[data-team] .unified-header .team-select { align-self: center; }
@media (max-width: 800px) { body[data-team] .site-header.unified-header { gap: 10px 16px; padding-left: 14px; padding-right: 14px; padding-bottom: 12px; } .brand-lockup small { font-size: .58rem; letter-spacing: .09em; } }
body[data-team] .site-header.unified-header { row-gap: 10px; }
.header-update-note { grid-column: 1 / -1; grid-row: 2; margin: 0; color: #a4adb7; font: 400 .72rem/1.5 var(--font); text-wrap: balance; }
@media (max-width: 800px) { .header-update-note { grid-row: 3; } }
.log-head { line-height: 1.5; letter-spacing: .06em; }
.log-head > :nth-child(5) { padding-right: 8px; }
.log-head > :nth-child(6) { padding-left: 8px; border-left: 1px solid var(--pb-rule); }
@keyframes winning-stat-shine { from { background-position: 100% 50%; } to { background-position: 0% 50%; } }
@supports ((background-clip: text) or (-webkit-background-clip: text)) {
  body[data-team] .colgrid .colgroup.won .col-lead {
    --stat-shine-color: color-mix(in srgb, var(--team-accent, #a4adb7) 70%, white);
    background-image: linear-gradient(110deg, var(--stat-shine-color) 0%, var(--stat-shine-color) 42%, #fff 49%, var(--stat-shine-color) 56%, var(--stat-shine-color) 100%);
    background-size: 260% 100%;
    background-position: 100% 50%;
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    transition: filter .2s ease;
  }
  body[data-team] .colgrid .colgroup.won.in .col-lead { animation: winning-stat-shine 2.2s ease-out .15s both; }
  @media (hover: hover) { body[data-team] .colgrid .colgroup.won:hover .col-lead { filter: brightness(1.15); } }
  @media (prefers-reduced-motion: reduce) {
    body[data-team] .colgrid .colgroup.won .col-lead { background: none; color: var(--stat-shine-color); -webkit-text-fill-color: currentColor; animation: none; transition: none; filter: none; }
    body[data-team] .colgrid .colgroup.won.in .col-lead { animation: none; }
  }
}
.colgrid .cols { height: 150px; }
.colgrid .colwrap { height: auto; flex-shrink: 0; }
.colgrid .col-plot { display: flex; align-items: flex-end; position: relative; width: 100%; height: 110px; flex: 0 0 110px; }
.colgrid .col-plot .col { flex-shrink: 0; }
.colgrid .colgroup .col-plot .col-val { position: absolute; left: 50%; bottom: calc(100% + 6px); transform: translateX(-50%); margin: 0; white-space: nowrap; }
.colgrid .col.lose { opacity: 1; }
body[data-team] .colgrid .col.bos.lose { background: color-mix(in srgb, var(--team-accent, #a4adb7) 35%, #151a21); }
body[data-team] .colgrid .col.opp.lose { background: #555a64; }
.colgrid .colwrap:has(.col.lose) .col-val { color: #aeb7c3; }

/* Matchup lab */
body[data-team] .site-header.unified-header .site-nav a.battle-nav { color: #f18b80; font: italic 800 1.22rem/1 var(--display); text-transform: uppercase; letter-spacing: .07em; text-shadow: 0 1px 0 #291518; transition: color .18s ease, text-shadow .18s ease; }
body[data-team] .site-header.unified-header .site-nav a.battle-nav:hover,
body[data-team] .site-header.unified-header .site-nav a.battle-nav:focus-visible { color: #ffc1b5; text-shadow: 0 0 12px rgb(239 104 104 / .35); }
body[data-team] .site-header.unified-header .site-nav a.battle-nav.active { border-bottom-color: #f18b80; }
@media (prefers-reduced-motion: reduce) { body[data-team] .site-header.unified-header .site-nav a.battle-nav { transition: none; } }
body[data-team] .site-header.unified-header .site-nav a.nav-help { min-width: 44px; justify-content: center; }
.nav-help-icon { display: inline-flex; align-items: center; justify-content: center; width: 21px; height: 21px; border: 1.5px solid currentColor; border-radius: 50%; font: 600 .8rem/1 var(--font); box-sizing: border-box; }
.battle-page { max-width: 1080px; margin: 48px auto 72px; color: var(--pb-paper, #f4f2ed); }
.battle-opening { max-width: 760px; margin-bottom: 32px; }
.battle-opening .editorial-kicker, .battle-outcome .editorial-kicker { color: #ef9955; letter-spacing: .16em; font-size: .75rem; }
.battle-opening h1 { margin: 18px 0; font: 800 clamp(2.6rem, 6vw, 4.6rem)/1.04 var(--display); letter-spacing: -.025em; }
.battle-opening h1 span { color: #ef9955; }
.battle-opening > p:last-child { max-width: 600px; color: #b8c1cb; font-size: 1rem; line-height: 1.7; }
.battle-arena { border: 1px solid #48505c; background: linear-gradient(120deg, #222832, #171c24); padding: 32px; }
.battle-matchup { display: grid; grid-template-columns: minmax(0, 1fr) 64px minmax(0, 1fr); align-items: center; gap: 20px; }
.battle-team-slot { display: grid; min-width: 0; gap: 14px; }
.battle-team-slot > span { color: #ef9955; font: 700 .72rem var(--font); letter-spacing: .15em; }
.battle-team-slot select { width: 100%; min-height: 58px; padding: 12px 36px 12px 14px; border: 1px solid #697383; border-radius: 4px; background: #111720; color: #fff; font: 600 1rem var(--font); color-scheme: dark; }
.battle-team-slot small { color: #9ba7b6; font-size: .62rem; letter-spacing: .12em; }
.battle-vs { text-align: center; color: #9da7b4; font: 800 1.6rem var(--display); }
.battle-actions { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 30px; padding-top: 24px; border-top: 1px solid #414955; }
.battle-actions strong { font-size: .95rem; }
.battle-actions p { margin: 7px 0 0; color: #acb7c4; font-size: .8rem; line-height: 1.5; }
.battle-run { display: inline-flex; justify-content: space-between; align-items: center; gap: 36px; min-height: 52px; padding: 14px 24px; border: 1px solid #ef9955; border-radius: 4px; background: #ef9955; color: #141820; font: 800 1rem var(--font); cursor: pointer; white-space: nowrap; }
.battle-run:hover { background: #ffb477; }
.battle-run:focus-visible, .battle-team-slot select:focus-visible, .battle-method summary:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
.battle-error { margin: 20px 0 0; color: #ffc1bc; line-height: 1.6; }
.battle-outcome { margin-top: 34px; border-top: 3px solid #ef9955; background: #1c222b; padding: 32px; }
.battle-outcome h2 { font: 800 clamp(2rem, 5vw, 3.4rem)/1.1 var(--display); margin: 16px 0; }
.battle-takeaway { color: #c8d0da; font-size: 1rem; line-height: 1.6; text-align: center; }
.possession-callout { margin: 22px 0; padding: 14px 8px; text-align: center; background: radial-gradient(ellipse at center, color-mix(in srgb, var(--edge-color) 8%, transparent), transparent 72%); }
.possession-callout-label { display: block; color: #9fa9b7; font: 600 .65rem/1.5 var(--font); text-transform: uppercase; letter-spacing: .09em; }
.possession-callout-value { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px; margin: 5px 0; color: var(--edge-color); }
.possession-callout-value > span { font: 600 1rem/1.3 var(--font); }
.possession-callout-value > strong { font: 800 2.6rem/1.1 var(--display); font-variant-numeric: tabular-nums; }
.possession-callout-unit { display: block; color: #bbc4d0; font: 400 .75rem/1.5 var(--font); overflow-wrap: break-word; }
.battle-shares { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 16px; align-items: center; margin-top: 32px; }
.battle-shares > div { display: grid; gap: 8px; }
.battle-shares > div:last-child { text-align: right; }
.battle-shares > div > span { color: #d0d7df; font-size: .85rem; }
.battle-shares strong { font: 800 clamp(2.6rem, 6vw, 4rem)/1 var(--display); }
.battle-shares strong small { font-size: .5em; }
.battle-result-team { display: flex; align-items: center; gap: 10px; min-width: 0; color: #d0d7df; font-size: .85rem; line-height: 1.4; }
.battle-shares > div:last-child .battle-result-team { justify-content: flex-end; }
.battle-result-team .team-badge, .team-heading .team-badge { display: grid; place-items: center; width: 38px; height: 34px; flex: 0 0 38px; border: 1px solid color-mix(in srgb, var(--badge-primary) 55%, #48515c); color: color-mix(in srgb, var(--choice-color) 70%, white); border-radius: 5px; font: 800 1rem/1 var(--display); }
.battle-result-team .team-badge[data-team="det"], .team-heading .team-badge[data-team="det"] { border-color: #1d42ba; }
.battle-share-label { color: #aab5c2; font-size: .65rem; line-height: 1.8; text-align: center; letter-spacing: .08em; }
.battle-meter { display: flex; height: 12px; margin: 20px 0; background: var(--battle-right); border: 1px solid #aab5c2; overflow: hidden; border-radius: 2px; }
.battle-meter > span { background: var(--battle-left); border-right: 2px solid #fff; box-sizing: border-box; }
.battle-sample { color: #bec7d2; font-size: .76rem; line-height: 1.9; }
.battle-limit { color: #e2c4a6; border-left: 2px solid #b48355; padding-left: 14px; margin: 20px 0 28px; font-size: .8rem; line-height: 1.7; }
.battle-breakdown { margin-top: 28px; padding-top: 24px; border-top: 1px solid #414955; }
.battle-breakdown h3 { margin: 0; font: 700 1.5rem var(--display); }
.battle-breakdown p { color: #aeb9c8; font-size: .8rem; line-height: 1.7; }
.battle-table { width: 100%; border-collapse: collapse; margin: 18px 0 4px; font-size: .85rem; }
.battle-table th, .battle-table td { padding: 16px 10px; border-bottom: 1px solid #414955; text-align: right; }
.battle-table th:first-child { text-align: left; padding-left: 0; }
.battle-table tbody th { color: #bbc5d2; font-weight: 500; line-height: 1.5; }
.battle-table thead { font-size: .7rem; letter-spacing: .06em; color: #d1d9e3; }
.battle-table td { width: 22%; font: 700 1.25rem var(--display); font-variant-numeric: tabular-nums; }
.battle-indicator-info { display: inline-grid; place-items: center; width: 36px; height: 36px; padding: 0; margin: -8px 0 -8px 2px; border: 0; background: transparent; color: #aab5c2; vertical-align: middle; cursor: pointer; }
.battle-indicator-info > span { display: grid; place-items: center; width: 20px; height: 20px; border: 1px solid currentColor; border-radius: 50%; font: 600 .75rem/1 var(--font); }
.battle-indicator-info:hover { color: #f0c779; }
.battle-indicator-help { max-width: 560px; }
.battle-indicator-help .battle-dialog-content { padding-bottom: 24px; }
.battle-indicator-help p, .battle-indicator-help dd { color: #bbc4d0; font: 400 .85rem/1.7 var(--font); }
.battle-indicator-help p:first-child { margin-top: 0; }
.battle-indicator-help dl { margin: 22px 0; }
.battle-indicator-help dt { padding-top: 16px; margin-top: 16px; border-top: 1px solid #343c48; color: #eeece6; font: 700 1.2rem/1.3 var(--display); }
.battle-indicator-help dd { margin: 6px 0 0; }
.battle-indicator-help .battle-help-note { color: #98a4b4; font-size: .75rem; }
.opportunity-examples { padding-left: 20px; margin: 12px 0; }
.opportunity-examples li { padding-left: 3px; margin: 10px 0; }
.opportunity-examples strong { color: #eeece6; }
#opportunity-help .battle-dialog-content { padding: 20px 24px 24px; }
#opportunity-help dl { margin: 0; }
#opportunity-help dt:first-child { margin-top: 0; padding-top: 0; padding-right: 36px; border-top: 0; }
#opportunity-help dt { font: 700 1rem/1.5 var(--font); letter-spacing: .01em; }
#opportunity-help dd, #opportunity-help dd p { color: #d0d7df; font-size: .92rem; line-height: 1.8; }
#opportunity-help dd { margin-top: 10px; }
#opportunity-help .opportunity-examples li { margin-block: 14px; }
#opportunity-help-close { position: absolute; top: 5px; right: 8px; display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 0; background: none; color: #c5cbd3; font-size: 1.6rem; cursor: pointer; }
.battle-table th small { display: block; margin-top: 3px; color: #8f99a8; font: 400 .66rem/1.4 var(--font); }
.battle-table .battle-stat-left { --stat-color: var(--battle-left); color: var(--stat-color); }
.battle-table .battle-stat-right { --stat-color: var(--battle-right); color: var(--stat-color); }
.battle-table td > span { display: inline-block; padding: 5px 8px; border-radius: 3px; }
.battle-table .battle-stat-edge > span { background: color-mix(in srgb, var(--stat-color) 14%, transparent); box-shadow: inset 0 -2px color-mix(in srgb, var(--stat-color) 65%, transparent); }
.battle-primary-indicator { background: linear-gradient(90deg, color-mix(in srgb, var(--battle-left) 6%, transparent), color-mix(in srgb, var(--battle-right) 6%, transparent)); }
.battle-primary-indicator th:first-child { padding-left: 10px; color: #eeece6; }
.battle-primary-indicator td { font-size: 1.6rem; }
.battle-breakdown .battle-indicators-note { margin: 8px 0 0; font-size: .72rem; line-height: 1.6; }
.battle-method { margin-top: 28px; padding: 24px 0; border-top: 1px solid #414955; border-bottom: 1px solid #414955; }
.battle-method summary { color: #e8c3a2; cursor: pointer; font-size: .9rem; }
.battle-method p { max-width: 850px; color: #aeb9c8; font-size: .85rem; line-height: 1.8; }
.battle-dialog { width: min(860px, calc(100vw - 32px)); max-width: 860px; max-height: calc(100dvh - 32px); padding: 0; border: 1px solid #49505a; border-radius: 6px; background: #1c222b; color: #f1eee8; box-sizing: border-box; }
.battle-dialog[open] { display: flex; flex-direction: column; }
.battle-dialog::backdrop { background: rgb(0 0 0 / .7); }
.battle-dialog-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 24px; border-bottom: 1px solid #414955; flex-shrink: 0; }
.battle-dialog-head h2 { margin: 0; font: 700 1.5rem var(--display); text-transform: none; }
.battle-dialog-head h2:focus { outline: none; }
.battle-showing-result > .battle-dialog-head { justify-content: flex-end; padding-top: 4px; padding-bottom: 0; border-bottom: 0; }
.battle-showing-result > .battle-dialog-head h2 { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.battle-showing-result > .battle-dialog-content { padding-top: 0; }
.battle-showing-result .possession-callout { margin: 0 0 16px; padding-top: 4px; padding-bottom: 8px; }
.battle-showing-result .battle-shares { margin-top: 20px; }
.battle-showing-result .battle-breakdown { margin-top: 18px; padding-top: 8px; }
.battle-showing-result .battle-table { margin-top: 8px; margin-bottom: 0; }
.battle-showing-result .battle-table tbody tr:last-child > * { border-bottom: 0; }
.battle-dialog-head button { border: 0; background: none; color: #c5cbd3; min-width: 44px; min-height: 44px; font-size: 1.7rem; cursor: pointer; }
.battle-dialog-content { overflow-y: auto; padding: 20px 24px; min-height: 0; overscroll-behavior: contain; }
.battle-picked { color: #aeb9c8; margin: 0 0 18px; font-size: .9rem; line-height: 1.5; }
.battle-team-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.battle-team-grid button { display: flex; align-items: center; gap: 12px; min-width: 0; text-align: left; min-height: 54px; padding: 10px 12px; border: 1px solid color-mix(in srgb, var(--choice-color) 45%, #424b57); border-left: 3px solid var(--choice-color); border-radius: 3px; background: linear-gradient(115deg, color-mix(in srgb, var(--choice-color) 20%, #202731), color-mix(in srgb, var(--choice-color) 5%, #202731)); color: #f1eee8; font: 500 .82rem/1.4 var(--font); cursor: pointer; }
.battle-team-grid button > span { min-width: 34px; color: color-mix(in srgb, var(--choice-color) 70%, white); font: 700 .72rem var(--font); }
.battle-team-grid button > .team-badge { display: grid; place-items: center; width: 38px; min-width: 38px; height: 34px; flex-shrink: 0; border: 1px solid color-mix(in srgb, var(--badge-primary) 55%, #48515c); border-radius: 5px; font: 800 1rem/1 var(--display); }
.battle-team-grid button > .team-badge[data-team="det"] { border-color: #1d42ba; }
.battle-team-grid button:hover:not(:disabled), .battle-team-grid button:focus-visible { background: color-mix(in srgb, var(--choice-color) 25%, #202731); border-color: var(--choice-color); }
.battle-team-grid button:disabled { opacity: .3; cursor: default; }
.battle-dialog button:focus-visible { outline: 2px solid #e3b28b; outline-offset: 2px; }
.battle-dialog-footer { padding: 14px 24px; border-top: 1px solid #414955; flex-shrink: 0; }
.battle-dialog-footer p { color: #9da8b6; font: 400 .72rem/1.5 var(--font); margin: 0; }
.battle-dialog-footer > div:not([hidden]) { display: flex; gap: 8px; margin-top: 12px; }
.battle-dialog-footer button { min-height: 42px; padding: 9px 14px; border: 1px solid #56606d; border-radius: 3px; background: #272e38; color: #f1eee8; font: 600 .8rem var(--font); cursor: pointer; }
.battle-dialog-footer #battle-rerun { background: #e0ac80; color: #16191f; border-color: #e0ac80; }
.battle-dialog .battle-outcome { background: none; border: 0; padding: 0; margin: 0; }
.battle-result-card .tg-latest-card { margin: 0; }
.tg-dual-result .tg-scoreboard { grid-column: 1 / -1; grid-row: 1; justify-self: center; margin-top: 0; }
.latest-wrap .tg-dual-result .tg-dual-metrics { grid-column: 1 / -1; grid-row: 2; justify-self: stretch; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 12px 20px; margin-top: 18px; }
.tg-team-metrics { display: flex; flex-direction: column; align-items: center; gap: 12px; min-width: 0; }
.tg-metric-team { display: flex; align-items: center; gap: 7px; margin-bottom: 12px; color: var(--pb-paper); font: 600 .78rem/1.3 var(--font); }
.tg-metric-team .team-badge { display: grid; place-items: center; width: 29px; height: 27px; border: 1px solid color-mix(in srgb, var(--badge-primary) 55%, #48515c); border-radius: 3px; color: color-mix(in srgb, var(--choice-color) 70%, white); font: 800 .8rem/1 var(--display); }
.tg-metric-team .team-badge[data-team="det"] { border-color: #1d42ba; }
.tg-team-opportunities { display: flex; flex-direction: column; align-items: center; gap: 4px; text-align: center; }
.tg-team-opportunities b { font: 700 1.2rem/1.2 var(--font); font-variant-numeric: tabular-nums; }
.tg-team-opportunities small { color: #b7c1cc; font: 400 .65rem/1.35 var(--font); }
.tg-team-opportunities .edge-positive { color: var(--pb-positive); }
.tg-team-opportunities .edge-negative { color: var(--pb-negative); }
.tg-dual-simulation { grid-column: 1 / -1; color: #efc57e; text-align: center; font: 600 .58rem/1.3 var(--font); letter-spacing: .06em; text-transform: uppercase; }
.battle-model-summary { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 16px; margin-top: 12px; color: #b7c1cc; font: 400 .7rem/1.5 var(--font); }
.battle-model-summary > div, .battle-model-summary > div > span { display: flex; align-items: center; gap: 8px; }
.battle-model-summary > div { gap: 18px; }
.battle-model-summary .team-badge { display: grid; place-items: center; width: 27px; height: 25px; border: 1px solid color-mix(in srgb, var(--badge-primary) 55%, #48515c); border-radius: 3px; color: color-mix(in srgb, var(--choice-color) 70%, white); font: 800 .75rem/1 var(--display); }
.battle-model-summary .team-badge[data-team="det"] { border-color: #1d42ba; }
.battle-model-summary strong { color: var(--pb-paper); font-variant-numeric: tabular-nums; }
.tg-latest-card .tg-stat { position: relative; overflow: hidden; isolation: isolate; padding-inline: 10px; background: linear-gradient(100deg, color-mix(in srgb, var(--stat-team-color, #8792a0) 4%, transparent), color-mix(in srgb, var(--stat-team-color, #8792a0) 18%, transparent)); border-bottom-color: color-mix(in srgb, var(--stat-team-color, #8792a0) 25%, #303640); }
.tg-latest-card .tg-stat-name, .tg-latest-card .tg-stat-margin > b { position: relative; z-index: 1; }
.tg-latest-card .tg-stat .tg-stat-margin { color: #eef1f4; }
.tg-latest-card .tg-stat .tg-stat-margin > b { color: var(--pb-orange); font: 700 1.45rem/1.05 var(--display); letter-spacing: .01em; }
.tg-latest-card .tg-stat .tg-stat-name .tg-stat-callout { color: color-mix(in srgb, var(--stat-team-color, #8792a0) 55%, #f0f3f6); }
.tg-latest-card .tg-stat-margin .tg-stat-beneficiary:has(.team-badge) { position: absolute; inset: 0; display: block; margin: 0; pointer-events: none; }
.tg-latest-card .tg-stat-beneficiary .team-badge { position: absolute; right: -15px; top: -8px; width: auto; height: calc(100% + 16px); aspect-ratio: 1; border-width: 2px; border-radius: 8px; font-size: 3.3rem; opacity: .24; transform: rotate(-8deg); mask-image: linear-gradient(90deg, transparent, #000 35%); }
.tg-latest-card .tg-stat-beneficiary .team-badge::after { width: 62%; height: 58%; }
.battle-dialog .battle-outcome h2 { text-transform: none; font-size: 2.2rem; }
.battle-dialog .battle-shares strong { font-size: 2.8rem; }
.battle-data-details { margin: 0 0 24px; font-size: .8rem; color: #acb7c4; }
.battle-data-details summary { cursor: pointer; padding: 4px 0; }
.battle-loading { padding: 30px 0 36px; text-align: center; }
.battle-loading > p { color: #aeb9c8; font-size: .85rem; }
.battle-loading .battle-shares { margin: 0 0 28px; text-align: left; }
.battle-loading .battle-shares strong { font-variant-numeric: tabular-nums; }
.battle-loading progress { display: block; width: 100%; height: 6px; border: 0; border-radius: 0; background: #39414c; accent-color: #d6aa82; }
.battle-loading progress::-webkit-progress-bar { background: #39414c; }
.battle-loading progress::-webkit-progress-value { background: #d6aa82; }
.battle-loading progress::-moz-progress-bar { background: #d6aa82; }
.battle-loading #battle-progress-count { font-size: .75rem; font-variant-numeric: tabular-nums; }
/* One result and one upcoming matchup; touch, buttons, and arrow keys share the same track. */
.game-carousel { min-width: 0; }
.game-carousel-track { display: flex; width: 100%; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; border-radius: 4px; }
.game-carousel-track::-webkit-scrollbar { display: none; }
.game-carousel-track:focus-visible { outline: 2px solid #c5a17e; outline-offset: 4px; }
.game-carousel-slide { flex: 0 0 100%; min-width: 0; scroll-snap-align: start; scroll-snap-stop: always; box-sizing: border-box; }
.game-carousel-swipe { display: none; }
@media (max-width: 700px) {
  .game-carousel-slide { position: relative; }
  .game-carousel-swipe { position: absolute; z-index: 2; right: 1px; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 26px; height: 48px; padding: 0; border: 1px solid rgb(229 184 113 / .25); border-right: 0; border-radius: 16px 0 0 16px; background: linear-gradient(90deg, rgb(22 28 35 / .7), #262b31); color: #e6bd76; font: 400 1.8rem/1 var(--font); cursor: pointer; }
  .game-carousel-swipe:focus-visible { outline: 2px solid #e6bd76; outline-offset: -3px; }
}
.game-carousel-slide .takeaway-game { height: 100%; box-sizing: border-box; margin: 0; }
.game-carousel-slide:first-child .takeaway-game { height: auto; }
.game-carousel-slide .next-game-card { display: flex; flex-direction: column; overflow: hidden; }
.game-carousel-slide .next-game-card.has-result { padding: 0; border: 0; background: transparent; }
.next-game-card.has-result > .tg-top, .next-game-card.has-result > .next-game-date, .next-game-card.has-result > .next-game-matchup, .next-game-card.has-result > .next-game-opponent { display: none; }
.next-game-card.has-result .next-game-prediction { display: block; padding: 0; margin: 0; }
.next-game-card.has-result .tg-latest-card { height: auto; min-height: 100%; }
.latest-wrap .tg-rating > .tg-simulation-tag { color: #efc57e; font: 600 .58rem/1.3 var(--font); text-transform: uppercase; letter-spacing: .06em; }
.next-game-card.has-result .is-battling { opacity: .55; pointer-events: none; }
.game-carousel-nav #next-game-run { display: inline-block; margin: 0; min-height: 44px; padding: 12px 16px; }
.game-carousel-nav [hidden] { display: none !important; }
.next-game-card > .tg-top, .next-game-card > .next-game-date, .next-game-card > .next-game-matchup, .next-game-card > .next-game-opponent, .next-game-card > .next-game-run { flex-shrink: 0; }
.next-game-card .next-game-date { margin: 10px 0 6px; font-size: .75rem; }
.next-game-card .next-game-matchup { margin: 6px 0; font-size: 2rem; }
.next-game-card .next-game-opponent { margin: 4px 0 12px; font-size: .8rem; }
.next-game-card .next-game-prediction { display: grid; grid-template-rows: auto minmax(54px, 1fr) auto; flex: 1; min-height: 0; padding-top: 10px; overflow: auto; }
.next-game-card .next-game-scoreline { gap: 8px 14px; padding-bottom: 8px; }
.next-game-card .next-game-scoreline .log-rating, .next-game-card .next-game-scoreline .log-extra { font-size: 1.25rem; }
.next-game-card .next-game-columns { width: 100%; min-height: 0; margin: 8px auto 6px; padding-top: 26px; }
.next-game-card .next-game-column { min-height: 0; }
.next-game-card .next-game-column-plot { height: auto; min-height: 0; flex: 1; }
.next-game-card .next-game-column-bar strong { font-size: 1.6rem; }
.next-game-card .possession-callout { margin: 6px 0 0; padding: 4px; }
.next-game-card .possession-callout-value { margin: 3px 0; gap: 8px; }
.next-game-card .possession-callout-value > strong { font-size: 1.7rem; }
.next-game-card .possession-callout-value > span { font-size: .85rem; }
.next-game-card .possession-callout-unit { font-size: .65rem; }
.next-game-card > .next-game-run { min-height: 42px; margin-top: 12px; padding-block: 9px; }
body[data-team]:not(.neutral-shell) .score-marks .on { color: #83bd99; filter: none; }
body[data-team]:not(.neutral-shell) .score-marks .off { color: #db8d86; }
body[data-team]:not(.neutral-shell) .score-marks .tie { color: #bdad83; }
body[data-team]:not(.neutral-shell) .score-marks .pend { color: #58626e; opacity: 1; }
.game-carousel-nav { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.game-carousel-nav button { min-height: 44px; border: 1px solid #3c4550; border-radius: 3px; padding: 10px 15px; background: #171d25; color: #aeb9c7; cursor: pointer; font: 500 .78rem var(--font); }
.game-carousel-nav button[aria-pressed="true"] { color: #f1eee8; border-color: #707b88; }
.game-carousel-nav button:hover { color: #fff; background: #252e39; }
.game-carousel-nav button.game-carousel-cta { background: #e4ad7c; border-color: #e4ad7c; color: #16191f; font-weight: 700; }
.game-carousel-nav button.game-carousel-cta:hover { background: #f0be93; border-color: #f0be93; }
.game-carousel-cta[data-sim-prompt="true"] { animation: next-game-invite 4.5s ease-in-out infinite; }
.game-carousel-cta[data-sim-prompt="true"]:hover, .game-carousel-cta[data-sim-prompt="true"]:focus-visible { animation: none; }
@keyframes next-game-invite { 0%, 78%, 100% { transform: translateY(0); } 84% { transform: translateY(-4px); } 89% { transform: translateY(0); } 93% { transform: translateY(-2px); } 97% { transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .game-carousel-cta[data-sim-prompt="true"] { animation: none; } }
.game-carousel-nav button:focus-visible, .next-game-run:focus-visible { outline: 2px solid #c5a17e; outline-offset: 3px; }
.next-game-date { color: #b1bdca; margin: 22px 0 12px; font-size: .8rem; line-height: 1.5; }
.next-game-matchup { display: flex; align-items: center; gap: 18px; margin: 12px 0 6px; font: 800 2.7rem/1 var(--display); }
.next-game-matchup small { font: 500 .85rem var(--font); color: #9da8b6; }
.next-game-opponent { color: #c2cbd5; font-size: .9rem; margin: 12px 0 22px; }
.next-game-prediction { border-top: 1px solid #39414b; padding-top: 18px; min-height: 170px; }
.next-game-prediction > p:first-child { margin-top: 0; }
.next-game-prediction p { color: #b6c1ce; font-size: .82rem; line-height: 1.6; }
.next-game-prediction .next-game-pick { color: #f1eee8; font: 700 1.5rem/1.2 var(--display); }
.next-game-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px; max-width: 270px; margin: 36px auto 12px; padding-top: 30px; }
.next-game-column { display: flex; flex-direction: column; align-items: center; min-width: 0; }
.next-game-column-plot { display: flex; align-items: flex-end; justify-content: center; width: 100%; height: 130px; border-bottom: 1px solid #53606d; }
.next-game-column-bar { position: relative; width: 64px; max-width: 100%; height: var(--column-share); background: linear-gradient(0deg, color-mix(in srgb, var(--column-color) 65%, #171d25), var(--column-color)); border-top: 1px solid color-mix(in srgb, var(--column-color) 70%, white); box-sizing: border-box; animation: prediction-column-grow .5s ease-out both; }
.next-game-column-bar strong { position: absolute; left: 50%; bottom: calc(100% + 8px); transform: translateX(-50%); color: var(--column-color); white-space: nowrap; font: 800 2.1rem/1 var(--display); font-variant-numeric: tabular-nums; }
.next-game-column-bar strong small { font-size: .5em; }
.next-game-column > span { margin-top: 10px; color: #c2cbd5; font: 600 .72rem var(--font); letter-spacing: .06em; }
.next-game-reason { text-align: center; }
.battle-takeaway, .next-game-reason { max-width: 100%; min-width: 0; white-space: normal; overflow-wrap: break-word; overflow-x: visible; }
@keyframes prediction-column-grow { from { height: 0; } to { height: var(--column-share); } }
@media (prefers-reduced-motion: reduce) { .next-game-column-bar { animation: none; } }
.next-game-prediction .next-game-basis { color: #929fac; font-size: .68rem; }
.next-game-run { display: block; margin: 20px auto 0; min-width: 148px; min-height: 46px; padding: 12px 22px; border: 1px solid #efbd91; border-radius: 4px; background: linear-gradient(135deg, #f1c59d, #d99b66); color: #171b22; font: 700 .85rem var(--font); cursor: pointer; box-shadow: inset 0 1px 0 rgb(255 255 255 / .3), 0 3px 12px rgb(0 0 0 / .18); }
.next-game-run:hover { background: linear-gradient(135deg, #ffdab8, #e6ac7c); }
.next-game-run:disabled { cursor: wait; opacity: .6; }
.log-row.log-upcoming { padding-block: 14px; background: linear-gradient(100deg, rgb(224 172 128 / .11), rgb(224 172 128 / .025)); box-shadow: inset 3px 0 #d8ad72; }
.log-upcoming .log-date small { display: block; margin: 0 0 4px; color: #e3c28a; font-size: .6rem; letter-spacing: .04em; white-space: nowrap; }
.log-upcoming-matchup { display: flex; align-items: center; gap: 9px; font-size: .85rem; }
.log-upcoming-matchup > span { color: #939cab; font-size: .75rem; }
.game-log-head { align-items: center; justify-content: space-between; gap: 12px; }
.log-row[hidden] { display: none; }
.log-pagination { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-top: 14px; }
.log-pagination > span { color: var(--pb-muted); font: 400 .72rem/1.5 var(--font); }
.log-pagination > div:not([hidden]) { display: flex; gap: 8px; }
.log-pagination button { min-height: 40px; padding: 9px 12px; border: 1px solid #424b56; border-radius: 3px; background: #171d25; color: #d0d7df; font: 500 .75rem/1.4 var(--font); cursor: pointer; }
.log-pagination button:hover { background: #242d37; border-color: #74808f; }
.log-pagination button:focus-visible { outline: 2px solid #e0b686; outline-offset: 3px; }
.game-log-head .game-log-sim { display: inline-block; margin: 0; width: auto; min-width: 150px; min-height: 40px; padding: 9px 10px; font-size: .75rem; white-space: normal; }
.log-sim-result { display: contents; }
.log-sim-score { display: flex; flex-direction: column; justify-content: center; gap: 4px; height: 52px; }
.log-sim-label { color: #d8bd94; font: 600 .6rem/1.4 var(--font); text-transform: uppercase; letter-spacing: .06em; }
.log-upcoming .log-date, .log-upcoming .log-sim-score { position: relative; line-height: 20px; }
.log-upcoming .log-date small, .log-upcoming .log-sim-label { position: absolute; left: 0; margin: 0; bottom: calc(50% + 14px); white-space: nowrap; }
.log-upcoming .log-date small { bottom: calc(100% + 4px); }
.log-sim-score .sim-win { color: #80d899; }
.log-sim-score .sim-loss { color: #f08787; }
.next-game-scoreline { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 14px; padding-bottom: 18px; border-bottom: 1px solid #343d48; text-align: left; }
.next-game-scoreline .log-sim-score { height: auto; font-size: 1.05rem; }
.next-game-scoreline .log-rating, .next-game-scoreline .log-extra { font: 700 1.45rem/1.2 var(--display); font-variant-numeric: tabular-nums; text-align: right; }
.next-game-scoreline .log-rating { color: #e6bd76; }
.next-game-scoreline .log-rating::before, .next-game-scoreline .log-extra::before { display: block; margin-bottom: 6px; color: #9da8b6; font: 500 .6rem/1.4 var(--font); }
.next-game-scoreline .log-rating::before { content: 'Rating'; }
.next-game-scoreline .log-extra::before { content: 'Opportunities'; }
.next-game-scoreline .log-edges { grid-column: 1 / -1; display: flex; align-items: center; justify-content: center; gap: 8px; }
@media (max-width: 640px) { .log-sim-result .log-edges { grid-column: 1 / -1; display: flex; align-items: center; justify-content: flex-end; gap: 8px; height: 16px; } }
.simulation-dots { display: inline-flex; gap: 4px; margin-left: 4px; vertical-align: middle; }
.simulation-dots i { width: 4px; height: 4px; border-radius: 50%; background: #d8ad72; animation: simulation-dot 1s ease-in-out infinite; }
.simulation-dots i:nth-child(2) { animation-delay: .15s; }
.simulation-dots i:nth-child(3) { animation-delay: .3s; }
@keyframes simulation-dot { 0%, 80%, 100% { opacity: .3; } 40% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .simulation-dots i { animation: none; } }
.next-game-run, .battle-dialog-footer #battle-rerun { position: relative; overflow: hidden; isolation: isolate; }
.next-game-run::after, .battle-dialog-footer #battle-rerun::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(110deg, transparent 25%, rgb(255 255 255 / .12) 40%, rgb(255 255 255 / .55) 50%, rgb(255 255 255 / .12) 60%, transparent 75%); transform: translateX(-140%); }
.next-game-run:not(:disabled)::after, .battle-dialog-footer #battle-rerun:not(:disabled)::after { animation: team-choice-shine 1.1s ease-out .2s both; }
.next-game-run:hover:not(:disabled)::after, .next-game-run:focus-visible::after, .battle-dialog-footer #battle-rerun:hover:not(:disabled)::after, .battle-dialog-footer #battle-rerun:focus-visible::after { animation: team-choice-hover-shine .7s ease-out both; }
@media (prefers-reduced-motion: reduce) { .next-game-run::after, .battle-dialog-footer #battle-rerun::after { display: none; animation: none !important; } }
.next-game-source { color: #8e9ba9; font-size: .64rem; line-height: 1.6; margin: 14px 0 0; }
.next-game-source a { color: #aab7c5; }
.next-game-empty p { color: #aab7c5; font-size: .9rem; line-height: 1.6; }
body:has(.battle-dialog[open]) { overflow: hidden; }
/* Team colors carry the interaction; the shine makes one pass, then rests. */
.battle-team-grid button, .team-picker-choice { position: relative; overflow: hidden; isolation: isolate; transition: background-color .18s, border-color .18s, box-shadow .18s; }
.battle-team-grid button::after, .team-picker-choice::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(105deg, transparent 25%, rgb(255 255 255 / .03) 38%, rgb(255 255 255 / .17) 49%, rgb(255 255 255 / .03) 60%, transparent 73%); transform: translateX(-140%); }
.battle-team-grid button:not(:disabled) { animation: team-choice-enter .24s ease-out var(--entry-delay, 0ms) backwards; }
.battle-team-grid button:not(:disabled)::after { animation: team-choice-shine .85s ease-out calc(var(--entry-delay, 0ms) + .15s) both; }
.battle-team-grid button:hover:not(:disabled), .battle-team-grid button:focus-visible, .team-picker-choice:hover, .team-picker-choice:focus-visible { box-shadow: inset 0 1px 0 rgb(255 255 255 / .1), 0 0 14px color-mix(in srgb, var(--choice-color) 14%, transparent); }
.battle-team-grid button:hover:not(:disabled)::after, .battle-team-grid button:focus-visible::after, .team-picker-choice:hover::after, .team-picker-choice:focus-visible::after { animation: team-choice-hover-shine .65s ease-out both; }
.battle-team-grid button:active:not(:disabled), .team-picker-choice:active { filter: brightness(1.15); }
.battle-dialog .battle-outcome { animation: battle-result-enter .22s ease-out; }
@keyframes team-choice-enter { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
@keyframes team-choice-shine { from { transform: translateX(-140%); } to { transform: translateX(140%); } }
@keyframes team-choice-hover-shine { from { transform: translateX(-140%); } to { transform: translateX(140%); } }
@keyframes battle-result-enter { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) {
  .battle-team-grid button, .team-picker-choice, .battle-dialog .battle-outcome { animation: none !important; transition: none; }
  .battle-team-grid button::after, .team-picker-choice::after { display: none; animation: none !important; }
}
@media (max-width: 640px) {
  .battle-dialog { width: calc(100vw - 20px); max-height: calc(100dvh - 20px); }
  .battle-dialog-head, .battle-dialog-footer { padding: 12px 16px; }
  .battle-dialog-content { padding: 16px; }
  .battle-team-grid button { flex-direction: column; align-items: flex-start; gap: 4px; padding: 8px; font-size: .76rem; overflow-wrap: anywhere; }
  .battle-page { margin-top: 28px; }
  .battle-arena, .battle-outcome { padding: 22px 16px; }
  .battle-matchup { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .battle-vs { font-size: 1.2rem; }
  .battle-team-slot { gap: 10px; }
  .battle-team-slot small { display: none; }
  .battle-actions { flex-direction: column; align-items: stretch; gap: 18px; }
  .battle-shares { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .battle-share-label { grid-column: 1 / -1; grid-row: 2; }
  .battle-table { font-size: .75rem; }
  .battle-table th, .battle-table td { padding: 14px 6px; }
}

/* Share artwork has its own fixed canvas; this dialog only scales the preview. */
.tg-share-actions { grid-column: 1 / -1; display: flex; justify-content: center; margin-top: 16px; width: 100%; }
.tg-share-actions .btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; width: min(100%, 260px); padding: 12px 24px; min-height: 46px; font-size: .94rem; font-weight: 750; color: #1a1711; background: #d8b571; border: 1px solid #e9c98c; border-radius: 6px; box-shadow: 0 3px 12px #0003; }
.tg-share-actions .btn:hover { background: #e7c589; color: #1a1711; border-color: #f1d8a9; }
.tg-share-actions .btn svg { width: 20px; height: 20px; flex: 0 0 20px; }
.share-dialog { width: min(650px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); padding: 20px; color: #f1eee8; background: #171d26; border: 1px solid #424b58; border-radius: 10px; overflow: auto; scrollbar-width: thin; scrollbar-color: #8f784e #171d26; }
.share-dialog::backdrop { background: #06090dd9; backdrop-filter: blur(5px); }
.share-preview { text-align: center; }
.share-preview img { display: block; width: 100%; max-width: 540px; height: auto; margin: 0 auto; border: 1px solid #35404c; }
.share-preview img:not([src]) { display: none; }
.share-status { color: #c3ccda; margin: 10px 0 0; font-size: .85rem; }
.share-status:empty { display: none; }
.share-dialog footer { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; max-width: 540px; margin: 16px auto 0; }
.share-dialog footer .btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 10px 8px; font-size: .8rem; white-space: nowrap; }
.share-dialog footer svg { width: 19px; height: 19px; flex: 0 0 19px; }
.share-dialog button:disabled { opacity: .5; cursor: wait; }
.share-dialog [hidden] { display: none !important; }
.share-link-note { margin: 12px 0; color: #b8c5d6; font-size: .8rem; line-height: 1.5; }
.share-link-fallback { width: 100%; box-sizing: border-box; padding: 10px; margin-bottom: 16px; color: #f1eee8; background: #111720; border: 1px solid #47505d; }

@media (max-width: 430px) { .share-dialog footer { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Keep desktop margins beneath their labels, clear of the team watermark. */
@media (min-width: 641px) {
  .latest-wrap .tg-latest-card .tg-stat { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: 1fr auto; align-items: stretch; gap: 6px; min-height: 88px; padding-block: 10px; box-sizing: border-box; }
  .latest-wrap .tg-latest-card .tg-stat-name { grid-column: 1; grid-row: 1; }
  .latest-wrap .tg-latest-card .tg-stat-margin { grid-column: 1; grid-row: 2; display: block; margin: 0; max-width: none; text-align: left; }
}
.game-carousel-nav .game-carousel-share { display: inline-flex; align-items: center; gap: 7px; }
.game-carousel-nav .game-carousel-share svg { width: 15px; height: 15px; flex: 0 0 15px; }

/* Players: league ranking of individual extra-possession creators, on the team list's grid. */
.players-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: 0 0 6px; padding: 0 0 14px; border-bottom: 1px solid var(--pb-rule); }
.nav-players { display: inline-flex; align-items: center; gap: 18px; }
.nav-players .players-help-open { margin: 0; flex-shrink: 0; }
.players-help-open { box-sizing: border-box; margin-left: auto; padding: 0; background: none; cursor: pointer; color: #c5cbd3; border-color: #6b7580; }
.players-help-open:hover, .players-help-open:focus-visible { color: #fff; border-color: var(--pb-orange); background: none; }
#players-help .battle-dialog-content { padding: 20px 24px 24px; }
#players-help dl { margin: 0; }
#players-help dt:first-child { margin-top: 0; padding-top: 0; padding-right: 36px; border-top: 0; }
#players-help dt { font: 700 1rem/1.5 var(--font); letter-spacing: .01em; }
#players-help dd { margin-top: 10px; color: #d0d7df; font-size: .92rem; line-height: 1.8; }
#players-help-close { position: absolute; top: 5px; right: 8px; display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 0; background: none; color: #c5cbd3; font-size: 1.6rem; cursor: pointer; }
.players-controls input[type="search"], .players-controls select { box-sizing: border-box; min-height: 44px; padding: 0 12px; border: 1px solid #3a414b; border-radius: 6px; background: #1d222a; color: #eef0f3; font: 500 .88rem/1 var(--font); }
.players-controls input[type="search"] { flex: 1 1 220px; min-width: 0; }
.players-controls input[type="search"]::placeholder { color: #8f99a6; }
.players-controls select { flex: 0 1 220px; }
.players-controls input:focus-visible, .players-controls select:focus-visible { outline: 2px solid var(--pb-orange); outline-offset: 2px; }
.players-minutes { display: inline-flex; align-items: center; gap: 10px; color: var(--pb-muted); font: 500 .76rem/1.3 var(--font); white-space: nowrap; }
.players-minutes b { color: var(--pb-paper); font-weight: 700; font-variant-numeric: tabular-nums; }
.players-minutes input { width: 150px; margin: 0; accent-color: var(--pb-orange); cursor: pointer; }
.league-list .player-row { width: 100%; margin: 0; appearance: none; -webkit-appearance: none; font: inherit; color: inherit; text-align: left; cursor: pointer; }
.player-list .t-team strong { white-space: normal; overflow-wrap: anywhere; }
.player-list .row-arrow { display: grid; place-items: center; color: #8e99a5; font: 500 1.35rem/1 var(--font); transition: transform .2s ease, color .2s ease; }
.player-list .player-row[aria-expanded="true"] { --row-base: #171d25; }
.player-list .player-row[aria-expanded="true"] .row-arrow { transform: rotate(45deg); color: var(--pb-orange); }
.player-detail { padding: 14px 14px 20px; background: #0d1115; border-bottom: 1px solid #252d35; }
.player-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(88px, 1fr)); gap: 14px 10px; margin: 0; }
.player-stats > div { position: relative; display: flex; flex-direction: column; gap: 5px; min-width: 0; border-radius: 4px; cursor: help; outline: none; }
.player-stats > div:focus-visible { outline: 2px solid var(--pb-orange); outline-offset: 3px; }
.player-stats dt { align-self: flex-start; padding-bottom: 2px; border-bottom: 1px dotted #58636f; font: 600 .6rem/1.3 var(--font); text-transform: uppercase; letter-spacing: .1em; color: var(--pb-muted); }
.player-stats dt { display: flex; align-items: baseline; gap: 3px; white-space: nowrap; }
.player-stats dt .stat-label { color: #e2e8f0; font-size: .66rem; font-weight: 700; letter-spacing: .06em; }
.player-stats dt .stat-unit { color: var(--pb-muted); font-size: .6rem; font-weight: 600; }
.player-stats dd { margin: 0; font: 600 1.2rem/1 var(--font); color: var(--pb-paper); font-variant-numeric: tabular-nums; }
.player-stats .stat-extra dd { color: var(--pb-orange); }
/* Instant tooltips: hover on desktop, tap (focus) on touch. */
.stat-tip { position: absolute; left: 0; bottom: calc(100% + 9px); z-index: 6; width: 220px; max-width: calc(100vw - 48px); padding: 10px 12px; border: 1px solid #6b7582; border-radius: 5px; background: #2a323d; color: #f4f6f8; font: 500 .76rem/1.5 var(--font); letter-spacing: 0; text-transform: none; box-shadow: 0 12px 28px rgb(0 0 0 / .6); opacity: 0; visibility: hidden; transform: translateY(4px); transition: opacity .12s ease, transform .12s ease, visibility 0s linear .12s; pointer-events: none; }
.stat-tip::after { content: ''; position: absolute; top: 100%; left: 16px; border: 6px solid transparent; border-top-color: #6b7582; }
.player-stats > div:nth-last-child(-n+2) .stat-tip { left: auto; right: 0; }
.player-stats > div:nth-last-child(-n+2) .stat-tip::after { left: auto; right: 16px; }
.player-stats > div:hover .stat-tip, .player-stats > div:focus .stat-tip, .player-stats > div:focus-within .stat-tip { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
@media (prefers-reduced-motion: reduce) { .stat-tip { transition: none; } }
.player-detail p { margin: 14px 0 0; color: var(--pb-muted); font: 400 .76rem/1.6 var(--font); }
.league-list .players-empty { padding: 28px 0; color: var(--pb-muted); font: 400 .9rem/1.5 var(--font); }
.players-more { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; padding: 18px 0 6px; }
.players-more .btn { cursor: pointer; padding: 10px 18px; border-color: #3a414b; background: #1d222a; color: var(--pb-paper); font: 600 .85rem/1 var(--font); }
.players-more .btn:hover, .players-more .btn:focus-visible { border-color: var(--pb-orange); color: #fff; }
.players-more .muted { color: var(--pb-muted); font-size: .78rem; }
@media (max-width: 700px) {
  .players-controls { gap: 10px; padding: 0 0 12px; }
  .players-controls select { flex: 1 1 160px; }
  .player-list .tier-row { grid-template-columns: 22px 38px minmax(0, 1fr) 26px; }
  .player-list .t-team strong { grid-column: 3; grid-row: 1; }
  .player-list .t-team small { grid-column: 3; grid-row: 2; margin: 0; max-width: none; text-align: left; font-size: .78rem; line-height: 1.35; }
  .player-list .row-arrow { grid-column: 4; grid-row: 1 / 3; align-self: center; justify-self: end; font-size: 1.5rem; }
  .player-list .league-metrics { grid-row: 3; }
  .player-detail { padding: 12px 14px 18px; }
  .player-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px 8px; }
  .player-stats dd { font-size: 1.05rem; }
  .player-stats > div .stat-tip { left: 0; right: auto; }
  .player-stats > div .stat-tip::after { left: 16px; right: auto; }
  .player-stats > div:nth-child(4n) .stat-tip, .player-stats > div:nth-child(4n-1) .stat-tip { left: auto; right: 0; }
  .player-stats > div:nth-child(4n) .stat-tip::after, .player-stats > div:nth-child(4n-1) .stat-tip::after { left: auto; right: 16px; }
}
@media (prefers-reduced-motion: reduce) { .player-list .row-arrow { transition: none; } }
/* Team page roster: the same player rows, ranked by league possession rank. */
.team-roster .band-head { justify-content: space-between; align-items: flex-start; gap: 16px; }
.team-roster .band-head p { color: var(--pb-muted); }
.team-roster .players-help-open { flex: 0 0 22px; margin: 8px 0 0; }
.team-roster .league-list { border-top: 1px solid #252d35; }
.roster-foot { margin: 16px 0 0; font: 500 .82rem/1.4 var(--font); }
.roster-foot a { color: var(--pb-orange); text-decoration: none; }
.roster-foot a:hover, .roster-foot a:focus-visible { text-decoration: underline; }
/* Charges drawn shown as context until a player's hustle coverage is complete. */
.player-stats .stat-context dd { color: #9aa6b4; }
.player-stats .stat-positive dd { color: var(--pb-positive); }
.player-stats .stat-negative dd { color: var(--pb-negative); }
/* Static silver-to-platinum tint for the league top ten, brightest at #1. */
.league-list .tier-row.rank-elite { --metal-alpha: calc(.38 - (var(--elite) - 1) * .03); --metal-hi: #f7f9fb; --metal-mid: #c4cdd7; --metal-lo: #7f8b98; isolation: isolate; box-shadow: inset 3px 0 0 color-mix(in srgb, var(--metal-mid) calc(var(--metal-alpha) * 180%), transparent), inset 0 1px 0 rgb(255 255 255 / .06); }
.league-list .tier-row.rank-elite::before { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(90deg, color-mix(in srgb, var(--metal-mid) calc(var(--metal-alpha) * 55%), transparent), transparent 62%); }
.league-list .tier-row.rank-elite .t-rank { font-weight: 700; color: transparent; background: linear-gradient(180deg, var(--metal-hi) 0%, var(--metal-mid) 42%, var(--metal-lo) 56%, var(--metal-hi) 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; filter: brightness(calc(1.1 - (var(--elite) - 1) * .035)); }
.league-list .tier-row.rank-elite .t-team strong { color: var(--pb-paper); }
/* Phone rows, teams and players alike: identity left, name over "record or MPG · edge", rating (and the expand control) right. */
.edge-inline { display: none; white-space: nowrap; }
.edge-inline b { font-weight: 600; color: #c7cdd3; font-variant-numeric: tabular-nums; }
.row-flag::before { content: ' · '; }
@media (max-width: 700px) {
  .league-list .tier-row { grid-template-columns: 22px 38px minmax(0, 1fr) auto; grid-template-rows: auto auto; align-items: center; gap: 2px 10px; padding: 10px 12px; min-height: 0; }
  .league-list.player-list .tier-row { grid-template-columns: 22px 38px minmax(0, 1fr) auto 26px; }
  .league-list .t-rank { grid-column: 1; grid-row: 1 / 3; }
  .league-list .club-mark { grid-column: 2; grid-row: 1 / 3; }
  .league-list .t-team strong { grid-column: 3; grid-row: 1; align-self: end; font-size: 1.02rem; line-height: 1.25; }
  .league-list .t-team small { grid-column: 3; grid-row: 2; align-self: start; margin: 0; max-width: none; text-align: left; font-size: .78rem; line-height: 1.35; overflow-wrap: anywhere; }
  .league-list .edge-inline { display: inline; }
  .league-list .league-metrics { display: contents; }
  .league-list .league-edge, .league-list .rating-track { display: none; }
  .league-list .t-rating { grid-column: 4; grid-row: 1 / 3; position: relative; display: flex; align-items: center; justify-content: flex-end; min-width: 86px; width: auto; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
  .league-list .t-rating::after { inset: 0; justify-content: flex-end; font-size: 2.2rem; }
  .league-list .player-row .row-arrow { grid-column: 5; grid-row: 1 / 3; align-self: center; }
  .league-list .row-flag { display: block; font-size: .68rem; line-height: 1.3; color: #8f9ba9; }
  .league-list .row-flag::before { content: none; }
}
@media (max-width: 380px) {
  .league-list .tier-row { grid-template-columns: 18px 32px minmax(0, 1fr) auto; gap: 2px 7px; padding: 9px 6px; }
  .league-list.player-list .tier-row { grid-template-columns: 18px 32px minmax(0, 1fr) auto 20px; }
  .league-list .club-mark { height: 30px; font-size: .8rem; }
  .league-list .t-team strong { font-size: .92rem; }
  .league-list .t-team small { font-size: .72rem; }
  .league-list .t-rating { min-width: 64px; }
  .league-list .t-rating::after { font-size: 1.75rem; }
}
/* Team roster on phones: league ranks run to three digits plus the #, so the rank column is wider than the Players page two-digit column. */
@media (max-width: 700px) {
  .team-roster .player-list .tier-row { grid-template-columns: 34px 38px minmax(0, 1fr) auto 26px; }
  .team-roster .player-list .t-rank { font-size: .8rem; white-space: nowrap; font-variant-numeric: tabular-nums; }
}
@media (max-width: 380px) {
  .team-roster .player-list .tier-row { grid-template-columns: 34px 32px minmax(0, 1fr) auto 20px; }
}
/* Narrowest phones: keep the nav and the team picker from colliding. */
@media (max-width: 380px) {
  body[data-team] .site-header.unified-header { grid-template-columns: minmax(0, 1fr) minmax(112px, auto); gap: 8px 10px; }
  body[data-team] .site-header.unified-header .site-nav { gap: 10px; }
  body[data-team] .site-header.unified-header .site-nav a { font-size: .74rem; }
  body[data-team] .site-header.unified-header .site-nav a.battle-nav { font-size: 1rem; }
  body[data-team] .site-header.unified-header .site-nav a.nav-help { min-width: 34px; }
  .team-picker-trigger { padding: 10px 26px 10px 10px; font-size: .8rem; }
  .team-picker-trigger::after { right: 9px; font-size: 1.1rem; }
}
/* The "how it works" help lives in the footer. */
.footer-help { display: inline-flex; align-items: center; gap: 7px; color: #c3cad2; text-decoration: none; font: 600 .7rem/1.3 var(--font); }
.footer-help .nav-help-icon { width: 19px; height: 19px; font-size: .72rem; }
.footer-help:hover, .footer-help:focus-visible { color: var(--pb-orange); }
/* One rating color down both lists, each numeral centered on its row. The league top ten get a metal backsplash: diamond 1-3 with a diamond emblem, gold 4-6 with a star, silver 7-10 plain. */
.league-list .t-rating::after { color: var(--pb-paper); inset: 0; }
[data-tier] { --plate-hi: #d2d8de; --plate-mid: #99a2ab; --plate-lo: #434b54; --plate-base: #2f363e; --plate-edge: #aab3bc; --plate-glow: rgb(170 179 188 / .22); }
[data-tier="gold"] { --plate-hi: #f4d98a; --plate-mid: #c99f3c; --plate-lo: #684d14; --plate-base: #45340f; --plate-edge: #e9c65f; --plate-glow: rgb(233 198 95 / .32);
  --plate-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpolygon points='50,3 62,36 97,36 69,57 80,92 50,71 20,92 31,57 3,36 38,36' fill='%23f8e09a' stroke='%23fff3c4' stroke-width='3' stroke-linejoin='round'/%3E%3C/svg%3E"); }
[data-tier="diamond"] { --plate-hi: #c9e6f3; --plate-mid: #7fc6df; --plate-lo: #3b86a6; --plate-base: #255064; --plate-edge: #bfe3f2; --plate-glow: rgb(166 227 246 / .3);
  --plate-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpolygon points='50,3 79,15 97,39 50,97 3,39 21,15' fill='%23eefbff' stroke='%23ffffff' stroke-width='3' stroke-linejoin='round'/%3E%3Cpath d='M21 15 L50 39 L79 15 M3 39 H97 M50 39 V97' fill='none' stroke='%23255064' stroke-opacity='.75' stroke-width='3'/%3E%3C/svg%3E"); }
.league-list .tier-row[data-tier] .t-rating::after { box-sizing: border-box; inset: 50% 0 auto; height: 44px; transform: translateY(-50%); background: linear-gradient(180deg, var(--plate-hi) 0%, var(--plate-mid) 16%, var(--plate-lo) 46%, var(--plate-base) 100%); border: 1px solid var(--plate-edge); border-radius: 7px; box-shadow: inset 0 1px 0 rgb(255 255 255 / .45), inset 0 -1px 0 rgb(0 0 0 / .4), 0 0 12px var(--plate-glow); text-shadow: 0 1px 2px rgb(0 0 0 / .55); }
.league-list .tier-row[data-tier="diamond"] .t-rating::after, .league-list .tier-row[data-tier="gold"] .t-rating::after { background-image: var(--plate-shape), linear-gradient(180deg, var(--plate-hi) 0%, var(--plate-mid) 16%, var(--plate-lo) 46%, var(--plate-base) 100%); background-size: 18px 18px, 100% 100%; background-repeat: no-repeat; }
/* Desktop: the rating column grows by 18px so the emblem lives inside the plate; every numeral centers on the right 82px, so tier and plain rows stay aligned. */
@media (min-width: 701px) {
  .league-list .tier-row { grid-template-columns: 36px 42px minmax(0, 1fr) 110px 108px 20px; }
  .league-list .t-rating { width: 106px; min-width: 106px; }
  .league-list .t-rating::after { padding-left: 22px; }
  .league-list .tier-row[data-tier="diamond"] .t-rating::after, .league-list .tier-row[data-tier="gold"] .t-rating::after { background-position: 4px center, 0 0; }
  .league-list .tier-row[data-tier="silver"] .t-rating::after { left: 22px; padding-left: 0; }
}
@media (max-width: 700px) {
  .league-list .tier-row[data-tier] .t-rating::after { inset: 50% -8px auto auto; width: max-content; height: auto; padding: 2px 8px; }
  .league-list .tier-row[data-tier="diamond"] .t-rating::after, .league-list .tier-row[data-tier="gold"] .t-rating::after { padding-left: 30px; background-position: 7px center, 0 0; }
}
@media (max-width: 380px) {
  .league-list .tier-row[data-tier] .t-rating::after { right: -5px; padding: 2px 5px; }
  .league-list .tier-row[data-tier="diamond"] .t-rating::after, .league-list .tier-row[data-tier="gold"] .t-rating::after { padding-left: 25px; background-size: 16px 16px, 100% 100%; background-position: 5px center, 0 0; }
  .league-list .tier-row[data-tier="diamond"] .t-rating, .league-list .tier-row[data-tier="gold"] .t-rating { min-width: 80px; }
}
/* Player lists drop the minutes figure; on both lists the X / 100 carries weight and its sign color. */
.player-list .t-team small { margin-top: 0; }
.player-list .t-team small:has(> .row-flag) { margin-top: 4px; }
.player-list .row-flag::before { content: none; }
.league-list .league-edge b { font-size: 1.3rem; font-weight: 700; color: var(--pb-paper); letter-spacing: -.01em; }
.league-list .league-edge small { font-size: .7rem; color: #a4adb7; }
.league-list .league-edge.edge-pos b, .league-list .edge-inline.edge-pos b { color: var(--pb-positive); }
.league-list .league-edge.edge-neg b, .league-list .edge-inline.edge-neg b { color: var(--pb-negative); }
@media (max-width: 700px) {
  .league-list .edge-inline b { font-size: 1.05rem; font-weight: 700; color: var(--pb-paper); }
}
/* A column title over the rating plates on desktop, in the quiet corner of the Players controls row. */
.players-controls { position: relative; }
.rating-col-title { display: none; }
@media (min-width: 701px) {
  .rating-col-title { display: block; position: absolute; right: 54px; bottom: 16px; width: 108px; text-align: center; font: 700 .6rem/1 var(--font); letter-spacing: .14em; text-transform: uppercase; color: var(--pb-muted); }
}
/* Angled team stripes, primary then secondary, faded across the middle-right of every row so teams that share a primary still read apart. */
.league-list .tier-row { background-image: linear-gradient(108deg, transparent 0 51%, color-mix(in srgb, var(--badge-primary) 24%, transparent) 53% 59%, transparent 61% 63%, color-mix(in srgb, var(--badge-secondary) 21%, transparent) 65% 71%, transparent 73%), linear-gradient(90deg, color-mix(in srgb, var(--team-accent) var(--gradient-strength), transparent) 0%, color-mix(in srgb, var(--team-accent) var(--gradient-strength), transparent) var(--rating-core), color-mix(in srgb, var(--team-accent) var(--rating-edge-strength), transparent) var(--rating-fill), transparent var(--rating-tail)); }
@media (max-width: 700px) { .players-minutes { flex: 1 1 auto; } .players-minutes input { flex: 1 1 90px; width: auto; min-width: 80px; } }
/* The team heading wears the ranking-row banner: the team band, a left accent edge and the angled primary and secondary stripes. */
.team-story h1.team-heading { position: relative; isolation: isolate; padding: 11px 14px; border: 1px solid color-mix(in srgb, var(--team-accent) 30%, #252d35); border-radius: 8px; background-color: #11171d; background-image: linear-gradient(108deg, transparent 0 51%, color-mix(in srgb, var(--badge-primary) 34%, transparent) 53% 59%, transparent 61% 63%, color-mix(in srgb, var(--badge-secondary) 30%, transparent) 65% 71%, transparent 73%), linear-gradient(90deg, color-mix(in srgb, var(--team-accent) 26%, transparent) 0%, color-mix(in srgb, var(--team-accent) 18%, transparent) 45%, transparent 85%); box-shadow: inset 3px 0 0 var(--team-accent), inset 0 1px 0 rgb(255 255 255 / .05); font-size: 1.05rem; font-weight: 700; }
@media (max-width: 700px) { .team-story h1.team-heading { padding: 10px 12px; font-size: .95rem; } }
/* With the breakdown header gone, the eight stat cards keep a thin break from the score block. */
.latest-wrap .tg-edges { margin-top: 18px; padding-top: 12px; border-top: 1px solid rgba(164,173,183,.12); }
/* Latest and next-game cards, possessions first: a corner date tab, badges and score beneath it, the rating in a plate that wears its tier, the edge beside it, and one line naming who won the possession battle. */
.latest-wrap .tg-latest-card { position: relative; }
.latest-wrap .tg-latest-card > .tg-top { flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 12px; }
.latest-wrap .tg-latest-card .tg-date-frame { margin: -22px 0 0 -22px; padding: 10px 18px 9px 16px; gap: 3px; align-items: flex-start; border: 0; border-right: 1px solid rgba(234,181,129,.32); border-bottom: 1px solid rgba(234,181,129,.32); border-radius: 3px 0 12px 0; background: linear-gradient(135deg, rgba(234,181,129,.22), rgba(234,181,129,.06)); box-shadow: none; }
.latest-wrap .tg-latest-card .tg-date-frame > small { font-size: .58rem; letter-spacing: .14em; }
.latest-wrap .tg-latest-card .tg-date-frame > span { font: 800 1.15rem/1 var(--display); letter-spacing: .05em; color: #f0bb88; }
.latest-wrap .tg-latest-card .tg-when { justify-content: flex-start; margin-top: 2px; }
.tg-latest-card .tg-scoreboard { margin-top: 10px; }
.tg-latest-card .tg-score-line { justify-content: flex-start; }
.latest-wrap .tg-latest-card .tg-game-metrics { display: flex; flex-direction: column; align-items: flex-end; gap: 12px; align-self: center; }
.latest-wrap .tg-game-metrics .tg-rating::before { content: none; }
.latest-wrap .tg-latest-card .tg-rating { align-items: flex-end; text-align: right; gap: 6px; }
.latest-wrap .tg-latest-card .tg-rating:not([data-tier]) { --plate-hi: #4a535d; --plate-mid: #3a434d; --plate-lo: #262d35; --plate-base: #1c2228; --plate-edge: #4b5664; --plate-glow: transparent; }
.latest-wrap .tg-latest-card .tg-rating b { box-sizing: border-box; display: inline-flex; align-items: baseline; gap: 7px; padding: 8px 14px 6px 42px; border: 1px solid var(--plate-edge); border-radius: 10px; color: var(--pb-paper); font-size: clamp(2.6rem, 6vw, 3.6rem); line-height: 1; letter-spacing: 0; text-shadow: 0 1px 2px rgb(0 0 0 / .55); background-image: var(--plate-shape, none), linear-gradient(180deg, var(--plate-hi) 0%, var(--plate-mid) 16%, var(--plate-lo) 46%, var(--plate-base) 100%); background-size: 24px 24px, 100% 100%; background-position: 11px center, 0 0; background-repeat: no-repeat; box-shadow: inset 0 1px 0 rgb(255 255 255 / .4), inset 0 -1px 0 rgb(0 0 0 / .4), 0 0 16px var(--plate-glow); }
.latest-wrap .tg-latest-card .tg-rating:not([data-tier]) b, .latest-wrap .tg-latest-card .tg-rating[data-tier="silver"] b { padding-left: 14px; }
.latest-wrap .tg-latest-card .tg-rating b small { display: inline; margin: 0; white-space: nowrap; flex-shrink: 0; font: 600 .8rem/1 var(--font); color: color-mix(in srgb, var(--pb-paper) 72%, transparent); letter-spacing: 0; text-shadow: none; }
.latest-wrap .tg-latest-card .tg-rating > small { margin: 0; font: 700 .64rem/1.3 var(--font); letter-spacing: .12em; text-transform: uppercase; color: var(--pb-muted); }
.latest-wrap .tg-latest-card .tg-game-metrics .tg-game-edge { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; margin: 0; }
.latest-wrap .tg-latest-card .tg-game-edge b { font: 800 clamp(1.7rem, 4.5vw, 2.2rem)/1 var(--font); letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.latest-wrap .tg-latest-card .tg-game-edge small { max-width: none; font: 500 .66rem/1.3 var(--font); color: var(--pb-muted); text-align: right; }
.tg-tagline { grid-column: 1 / -1; margin: 16px 0 0; padding: 12px 0 0; border-top: 1px solid rgba(164,173,183,.14); font: 600 1.02rem/1.35 var(--font); color: var(--pb-paper); }
.tg-tagline strong { color: var(--tag-color, var(--pb-paper)); font-weight: 800; }
.latest-wrap .tg-edges { margin-top: 12px; padding-top: 0; border-top: 0; }
@media (max-width: 700px) {
  .latest-wrap .tg-latest-card .tg-date-frame { margin: -18px 0 0 -18px; padding: 9px 14px 8px 13px; }
  .latest-wrap .tg-latest-card .tg-date-frame > span { font-size: 1.05rem; }
  .latest-wrap .tg-latest-card .tg-rating b { font-size: 2.6rem; padding: 7px 12px 5px 38px; background-size: 20px 20px; background-position: 10px center, 0 0; }
  .latest-wrap .tg-latest-card .tg-rating:not([data-tier]) b, .latest-wrap .tg-latest-card .tg-rating[data-tier="silver"] b { padding-left: 12px; }
  .latest-wrap .tg-latest-card .tg-game-edge b { font-size: 1.6rem; }
}
@media (max-width: 380px) {
  .latest-wrap .tg-latest-card .tg-rating b { font-size: 2.1rem; padding: 6px 10px 4px 32px; background-size: 17px 17px; background-position: 8px center, 0 0; }
  .latest-wrap .tg-latest-card .tg-rating:not([data-tier]) b, .latest-wrap .tg-latest-card .tg-rating[data-tier="silver"] b { padding-left: 10px; }
  .latest-wrap .tg-latest-card .tg-game-edge b { font-size: 1.35rem; }
  .tg-tagline { font-size: .92rem; }
}
/* Battle results (both teams): the score centered, two centered columns with each rating in its own tier plate, and the tagline centered beneath. */
.tg-dual-result .tg-scoreboard { margin-top: 0; }
.tg-dual-result .tg-score-line { justify-content: center; }
.latest-wrap .tg-dual-result .tg-dual-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; justify-items: center; justify-self: stretch; gap: 12px; margin-top: 4px; }
.latest-wrap .tg-dual-result .tg-team-metrics { align-items: center; gap: 10px; }
.latest-wrap .tg-dual-result .tg-metric-team { margin-bottom: 2px; }
.latest-wrap .tg-dual-result .tg-rating { align-items: center; text-align: center; }
.latest-wrap .tg-dual-result .tg-team-opportunities b { font: 800 1.5rem/1 var(--font); letter-spacing: -.01em; }
.latest-wrap .tg-dual-result .tg-dual-simulation { grid-column: 1 / -1; }
.tg-dual-result .tg-tagline { text-align: center; }
@media (max-width: 380px) { .latest-wrap .tg-dual-result .tg-dual-metrics { gap: 8px; } }
/* Team story numbers: a top-ten league rank wears its tier chip, the opportunity edge leads and the record steps back. */
.rating-signature .rank-chip[data-tier] { display: inline-flex; align-items: center; margin-right: 3px; padding: 3px 8px 3px 25px; border: 1px solid var(--plate-edge); border-radius: 6px; color: var(--pb-paper); font: 800 .8rem/1 var(--font); letter-spacing: .02em; text-shadow: 0 1px 2px rgb(0 0 0 / .5); background-image: var(--plate-shape, none), linear-gradient(180deg, var(--plate-hi) 0%, var(--plate-mid) 16%, var(--plate-lo) 46%, var(--plate-base) 100%); background-size: 14px 14px, 100% 100%; background-position: 6px center, 0 0; background-repeat: no-repeat; box-shadow: inset 0 1px 0 rgb(255 255 255 / .35), inset 0 -1px 0 rgb(0 0 0 / .4), 0 0 10px var(--plate-glow); vertical-align: middle; }
.rating-signature .rank-chip[data-tier="silver"] { padding-left: 8px; }
.story-context .story-edge strong { font: 800 2.4rem/1 var(--font); letter-spacing: -.02em; }
.story-context .story-record { position: relative; top: -18px; }
.story-context .story-record strong { font: 600 1.3rem/1 var(--font); letter-spacing: -.01em; color: #c6cdd6; }
.story-context span { font: 600 .62rem/1.6 var(--font); letter-spacing: .1em; text-transform: uppercase; color: var(--pb-muted); }
.team-story .team-rating-label { margin-bottom: 4px; font: 600 .62rem/1.6 var(--font); letter-spacing: .1em; text-transform: uppercase; color: var(--pb-muted); }
.story-context .rating-help { text-transform: none; letter-spacing: 0; }
@media (max-width: 700px) { .story-context .story-edge strong { font-size: 2rem; } .story-context .story-record strong { font-size: 1.2rem; } }
@media (max-width: 700px) { .story-context .story-edge > span { letter-spacing: .02em; white-space: nowrap; } }
/* Diamond plates: a softer top highlight and a firmer shadow keep the numeral readable against the ice. */
.league-list .tier-row[data-tier="diamond"] .t-rating::after, .latest-wrap .tg-latest-card .tg-rating[data-tier="diamond"] b, .rating-signature .rank-chip[data-tier="diamond"] { text-shadow: 0 1px 3px rgb(0 0 0 / .8), 0 0 2px rgb(0 0 0 / .45); box-shadow: inset 0 1px 0 rgb(255 255 255 / .22), inset 0 -1px 0 rgb(0 0 0 / .4), 0 0 12px var(--plate-glow); }
/* Expanded player row: the extra-possessions total leads as data points, then three banded rows of tiles in order of importance. */
.player-summary { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px 24px; margin: 0 0 12px; }
.player-summary b { display: block; font: 800 1.25rem/1 var(--font); color: var(--pb-paper); font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.player-summary .summary-lead b { font-size: 2rem; color: var(--pb-orange); }
.player-summary span { display: block; margin-top: 5px; font: 600 .58rem/1.3 var(--font); letter-spacing: .12em; text-transform: uppercase; color: var(--pb-muted); }
.player-summary .summary-note { flex-basis: 100%; margin: 0; font: 400 .74rem/1.5 var(--font); color: var(--pb-muted); }
.stats-band { padding: 8px 10px 11px; border-radius: 0; background: #151a20; }
.stats-band:first-of-type { border-radius: 8px 8px 0 0; }
.stats-band:last-of-type { border-radius: 0 0 8px 8px; }
.stats-band + .stats-band { margin-top: 0; border-top: 1px solid rgb(174 190 208 / .1); }
.stats-caption { margin: 0 0 8px; font: 700 .56rem/1.3 var(--font); letter-spacing: .14em; text-transform: uppercase; color: #8f9ba9; }
.stats-band .player-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px 10px; }
@media (max-width: 380px) { .player-summary { gap: 8px 16px; } .player-summary .summary-lead b { font-size: 1.7rem; } .stats-band { padding: 7px 8px 9px; } }
/* Latest Game and Battle Results only: the rating stands free of any plate, its numerals outlined in the tier color with the emblem beside them (a ring for silver). The lists keep their plates. */
.latest-wrap .tg-latest-card .tg-rating b, .latest-wrap .tg-latest-card .tg-rating:not([data-tier]) b, .latest-wrap .tg-latest-card .tg-rating[data-tier="silver"] b, .latest-wrap .tg-latest-card .tg-rating[data-tier="diamond"] b { padding: 0 0 0 32px; border: 0; border-radius: 0; background-image: var(--plate-shape, none); background-size: 26px 26px; background-position: 0 center; background-repeat: no-repeat; box-shadow: none; text-shadow: 0 1px 3px rgb(0 0 0 / .6); }
.latest-wrap .tg-latest-card .tg-rating:not([data-tier]) b { padding-left: 0; background-image: none; }
.latest-wrap .tg-latest-card .tg-rating[data-tier] b { -webkit-text-stroke: 2px var(--plate-edge); paint-order: stroke fill; text-shadow: 0 0 14px var(--plate-glow), 0 1px 3px rgb(0 0 0 / .6); }
.latest-wrap .tg-latest-card .tg-rating[data-tier] b small { -webkit-text-stroke: 0; text-shadow: none; }
.latest-wrap .tg-latest-card .tg-rating[data-tier="silver"] b { --plate-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='34' fill='none' stroke='%23c9d2da' stroke-width='12'/%3E%3C/svg%3E"); }
@media (max-width: 700px) {
  .latest-wrap .tg-latest-card .tg-rating b, .latest-wrap .tg-latest-card .tg-rating[data-tier="silver"] b, .latest-wrap .tg-latest-card .tg-rating[data-tier="diamond"] b { padding: 0 0 0 27px; background-size: 22px 22px; background-position: 0 center; }
  .latest-wrap .tg-latest-card .tg-rating:not([data-tier]) b { padding-left: 0; }
  .latest-wrap .tg-latest-card .tg-rating[data-tier] b { -webkit-text-stroke: 1.6px var(--plate-edge); }
}
@media (max-width: 380px) {
  .latest-wrap .tg-latest-card .tg-rating b, .latest-wrap .tg-latest-card .tg-rating[data-tier="silver"] b, .latest-wrap .tg-latest-card .tg-rating[data-tier="diamond"] b { padding: 0 0 0 23px; background-size: 18px 18px; background-position: 0 center; }
  .latest-wrap .tg-latest-card .tg-rating:not([data-tier]) b { padding-left: 0; }
  .latest-wrap .tg-latest-card .tg-rating[data-tier] b { -webkit-text-stroke: 1.3px var(--plate-edge); }
}
/* Tapped tiles keep their tooltip open until the next tap; the bands lose their titles. */
.player-stats > div.is-open .stat-tip { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.stats-band { padding: 10px 10px 11px; }
/* The big team rating keeps a sheen passing over it: a brighter band that sweeps across, rests, and comes round again. */
@supports ((background-clip: text) or (-webkit-background-clip: text)) {
  .team-story .rating-signature > strong { background-image: linear-gradient(110deg, #dfe3dc 0%, #eeece6 38%, #fff 46%, #fff 51%, color-mix(in srgb, var(--team-accent) 30%, #fff) 56%, #eeece6 64%, #dfe3dc 100%); background-size: 260% 100%; background-position: 100% 50%; animation: rating-sheen 5.5s ease-in-out .3s infinite; }
  @media (prefers-reduced-motion: reduce) { .team-story .rating-signature > strong { animation: none; background: none; -webkit-text-fill-color: currentColor; } }
}
@keyframes rating-sheen { 0% { background-position: 100% 50%; } 34% { background-position: 0% 50%; } 100% { background-position: 0% 50%; } }
/* Rankings lists: the tier plate sits a little lighter and smaller around the number; the numeral itself is untouched. */
.league-list .tier-row[data-tier="gold"] { --plate-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpolygon points='50,3 62,36 97,36 69,57 80,92 50,71 20,92 31,57 3,36 38,36' fill='%23f8e09a' fill-opacity='.8' stroke='%23fff3c4' stroke-opacity='.8' stroke-width='3' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.league-list .tier-row[data-tier="diamond"] { --plate-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpolygon points='50,3 79,15 97,39 50,97 3,39 21,15' fill='%23eefbff' fill-opacity='.8' stroke='%23ffffff' stroke-opacity='.8' stroke-width='3' stroke-linejoin='round'/%3E%3Cpath d='M21 15 L50 39 L79 15 M3 39 H97 M50 39 V97' fill='none' stroke='%23255064' stroke-opacity='.6' stroke-width='3'/%3E%3C/svg%3E"); }
.league-list .tier-row[data-tier] .t-rating::after { height: 40px; background-image: var(--plate-shape, none), linear-gradient(180deg, color-mix(in srgb, var(--plate-hi) 68%, transparent) 0%, color-mix(in srgb, var(--plate-mid) 68%, transparent) 16%, color-mix(in srgb, var(--plate-lo) 70%, transparent) 46%, color-mix(in srgb, var(--plate-base) 76%, transparent) 100%); background-size: 16px 16px, 100% 100%; background-position: 5px center, 0 0; background-repeat: no-repeat; border-color: color-mix(in srgb, var(--plate-edge) 60%, transparent); box-shadow: inset 0 1px 0 rgb(255 255 255 / .28), inset 0 -1px 0 rgb(0 0 0 / .3), 0 0 10px color-mix(in srgb, var(--plate-glow) 65%, transparent); }
@media (max-width: 700px) {
  .league-list .tier-row[data-tier] .t-rating::after { height: auto; padding: 1px 7px; background-size: 16px 16px, 100% 100%; background-position: 6px center, 0 0; }
  .league-list .tier-row[data-tier="diamond"] .t-rating::after, .league-list .tier-row[data-tier="gold"] .t-rating::after { padding-left: 27px; }
}
@media (max-width: 380px) {
  .league-list .tier-row[data-tier] .t-rating::after { padding: 1px 5px; background-size: 14px 14px, 100% 100%; background-position: 5px center, 0 0; }
  .league-list .tier-row[data-tier="diamond"] .t-rating::after, .league-list .tier-row[data-tier="gold"] .t-rating::after { padding-left: 23px; }
}
/* Latest and next-game cards: no team badges under the tab, and the carved corner tab in the site's slate-blue neutrals instead of orange. */
.latest-wrap .tg-latest-card .tg-when { display: none; }
.latest-wrap .tg-latest-card > .tg-top { gap: 0; }
.latest-wrap .tg-latest-card .tg-date-frame { color: var(--pb-muted); border-right: 1px solid rgba(164,173,183,.3); border-bottom: 1px solid rgba(164,173,183,.3); background: linear-gradient(135deg, #2b3440, #1b2129); box-shadow: inset 0 1px 0 rgb(255 255 255 / .05); }
.latest-wrap .tg-latest-card .tg-date-frame > small { color: #9aa5b2; }
.latest-wrap .tg-latest-card .tg-date-frame > span { color: var(--pb-paper); }
.tg-latest-card .tg-scoreboard { margin-top: 14px; }
/* Rankings lists, frosted pass: rows the arena glows through, crisp 1px separators, monospace data, and a soft orange glow on hover. */
.league-list .tier-row { --row-base: rgba(16, 20, 25, .6); border-bottom: 1px solid rgba(164,173,183,.12); transition: background-color .18s ease, border-color .18s ease; }
.league-list li:nth-child(even) .tier-row { --row-base: rgba(17, 23, 29, .64); }
@supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)) {
  .league-list .tier-row { backdrop-filter: blur(8px) saturate(1.15); -webkit-backdrop-filter: blur(8px) saturate(1.15); }
}
.league-list .tier-row:hover, .league-list li:nth-child(even) .tier-row:hover, .league-list .tier-row:focus-visible { --row-base: rgba(30, 38, 48, .82); border-bottom-color: rgba(239,153,85,.3); }
.player-list .player-row[aria-expanded="true"] { --row-base: rgba(28, 35, 44, .86); }
.league-list .tier-row:hover .t-rating::after, .league-list .tier-row:focus-visible .t-rating::after { text-shadow: 0 0 14px rgb(239 153 85 / .65), 0 1px 2px rgb(0 0 0 / .55); }
.league-list .t-rank, .league-list .league-edge b, .league-list .league-edge small, .league-list .t-team small { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.league-list .row-flag { font-family: var(--font); }
.league-list .league-edge b { letter-spacing: -.02em; }
/* Ghost tier badges on the rankings lists and the team-page chip: a faintly frosted transparent box with a 1px tier border, the number and a hollow line icon in the tier color with a soft glow, and a 2px tier strip at the row's left edge. */
[data-tier] { --tier-ink: #cbd5e1; --tier-edge: rgb(148 163 184 / .7); --tier-glow: rgb(148 163 184 / .4); }
[data-tier="gold"] { --tier-ink: #fbbf24; --tier-edge: rgb(245 158 11 / .75); --tier-glow: rgb(245 158 11 / .5); --tier-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpolygon points='50,8 61,37 93,37 67,56 77,88 50,70 23,88 33,56 7,37 39,37' fill='none' stroke='%23fbbf24' stroke-width='8' stroke-linejoin='round'/%3E%3C/svg%3E"); }
[data-tier="diamond"] { --tier-ink: #22d3ee; --tier-edge: rgb(6 182 212 / .8); --tier-glow: rgb(34 211 238 / .55); --tier-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpolygon points='50,8 78,20 94,42 50,92 6,42 22,20' fill='none' stroke='%2322d3ee' stroke-width='8' stroke-linejoin='round'/%3E%3Cpath d='M22 20 L50 42 L78 20 M6 42 H94 M50 42 V92' fill='none' stroke='%2322d3ee' stroke-opacity='.55' stroke-width='6'/%3E%3C/svg%3E"); }
.league-list .tier-row[data-tier] .t-rating::after { color: var(--tier-ink); background-image: var(--tier-shape, none); background-color: rgba(255,255,255,.035); background-size: 15px 15px; border: 1px solid var(--tier-edge); border-radius: 6px; box-shadow: 0 0 10px color-mix(in srgb, var(--tier-glow) 45%, transparent); text-shadow: 0 0 10px var(--tier-glow); }
.league-list .tier-row[data-tier]:hover .t-rating::after, .league-list .tier-row[data-tier]:focus-visible .t-rating::after { text-shadow: 0 0 16px var(--tier-glow), 0 0 2px var(--tier-glow); }
.league-list .tier-row[data-tier], .league-list .tier-row[data-tier].rank-elite { box-shadow: inset 2px 0 0 var(--tier-ink); }
.rating-signature .rank-chip[data-tier] { color: var(--tier-ink); background-image: var(--tier-shape, none); background-color: rgba(255,255,255,.04); background-size: 13px 13px; background-position: 6px center; border: 1px solid var(--tier-edge); box-shadow: 0 0 8px color-mix(in srgb, var(--tier-glow) 45%, transparent); text-shadow: 0 0 8px var(--tier-glow); }
@media (max-width: 700px) { .league-list .tier-row[data-tier] .t-rating::after { background-size: 15px 15px; } }
@media (max-width: 380px) { .league-list .tier-row[data-tier] .t-rating::after { background-size: 13px 13px; } }
/* Narrow phones: the story labels keep to one line. */
@media (max-width: 380px) { .story-context span { font-size: .56rem; letter-spacing: .06em; } }
/* Header rework: one frosted dark bar with a hairline, a text-only PI mark (orange P, white I) beside the name, and the tabs on the right with a 2px orange underline right under the active one. */
body[data-team] .site-header.unified-header { grid-template-columns: minmax(0, 1fr) auto auto; column-gap: 24px; align-items: center; padding: 14px 24px; background: rgba(10, 10, 10, .8); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid rgba(255, 255, 255, .1); box-shadow: none; overflow: visible; }
.site-wordmark { gap: 10px; align-items: center; }
.pi-mark-text { display: inline-flex; font: 900 1.6rem/1 var(--font); letter-spacing: -.05em; }
.pi-mark-text .pi-p { color: #f97316; }
.pi-mark-text .pi-i { color: #fff; }
.brand-lockup { gap: 0; }
.brand-lockup strong { font: 600 1.05rem/1.1 var(--font); letter-spacing: 0; text-transform: none; color: #e5e7eb; }
.brand-lockup small { display: none; }
body[data-team] .site-header.unified-header .site-nav { grid-column: 2; grid-row: 1; justify-content: flex-end; gap: 24px; }
body[data-team] .unified-header .team-select { grid-column: 3; grid-row: 1; width: auto; min-width: 190px; }
body[data-team] .site-header.unified-header .site-nav a, body[data-team] .site-header.unified-header .site-nav a.battle-nav { position: relative; display: inline-flex; align-items: center; min-height: 44px; padding: 10px 0; border: 0; color: #9ca3af; font: 600 .9rem/1 var(--font); letter-spacing: 0; text-transform: none; text-shadow: none; transition: color .15s ease; }
body[data-team] .site-header.unified-header .site-nav a::after { content: ''; position: absolute; left: 0; right: 0; bottom: 9px; height: 2px; background: transparent; border-radius: 0; box-shadow: none; transition: background .15s ease; }
body[data-team] .site-header.unified-header .site-nav a:hover, body[data-team] .site-header.unified-header .site-nav a:focus-visible, body[data-team] .site-header.unified-header .site-nav a.battle-nav:hover, body[data-team] .site-header.unified-header .site-nav a.battle-nav:focus-visible { color: #fff; text-shadow: none; }
body[data-team] .site-header.unified-header .site-nav a.active, body[data-team] .site-header.unified-header .site-nav a.battle-nav.active { color: #fff; border: 0; }
body[data-team] .site-header.unified-header .site-nav a.active::after, body[data-team] .site-header.unified-header .site-nav a.active[data-route="home"]::after { bottom: 9px; height: 2px; background: #f97316; border-radius: 0; box-shadow: none; }
.team-picker-trigger { border: 1px solid rgba(255, 255, 255, .12); background: rgba(255, 255, 255, .04); box-shadow: none; }
.team-picker-trigger:hover, .team-picker-trigger:focus-visible { border-color: rgba(255, 255, 255, .24); box-shadow: none; }
.team-picker-trigger::after { color: #9ca3af; }
body[data-team] .unified-header .team-select select { background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .12); border-radius: 6px; }
@media (max-width: 800px) {
  body[data-team] .site-header.unified-header { grid-template-columns: minmax(0, 1fr) auto; column-gap: 14px; row-gap: 6px; padding: 12px 16px 8px; }
  .site-wordmark { grid-column: 1 / -1; grid-row: 1; }
  body[data-team] .site-header.unified-header .site-nav { grid-column: 1; grid-row: 2; justify-content: flex-start; gap: 18px; }
  body[data-team] .unified-header .team-select { grid-column: 2; grid-row: 2; min-width: 0; }
  .pi-mark-text { font-size: 1.4rem; }
  .brand-lockup strong { font-size: .98rem; }
}
@media (max-width: 380px) {
  body[data-team] .site-header.unified-header .site-nav a, body[data-team] .site-header.unified-header .site-nav a.battle-nav { font-size: .82rem; }
  body[data-team] .site-header.unified-header .site-nav { gap: 14px; }
}
/* Names on the rankings lists: Space Grotesk semi-bold in paper white, a technical face that bridges to the monospace figures beneath. */
.league-list .t-team strong { font-family: "Space Grotesk", var(--font); font-weight: 600; letter-spacing: -.01em; color: var(--pb-paper); }
.league-list .tier-row.rank-elite .t-team strong { color: #fff; }
/* Larger team marks lead each row, followed by opportunity edge and the rating. */
.team-rankings-head { position: sticky; top: var(--site-header-height, 100px); z-index: 9; display: grid; grid-template-columns: 36px 58px minmax(0, 1fr) 106px 20px; gap: 20px; align-items: center; padding: 12px 14px; color: #fff; background: rgb(16 20 25 / .78); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-bottom: 1px solid rgb(164 173 183 / .18); font: 600 .8rem/1.4 var(--font); }
.rankings-edge-label { grid-column: 1 / 4; }
.rankings-rating-label { grid-column: 4; text-align: center; white-space: nowrap; }
.league-list:not(.player-list) .tier-row { grid-template-columns: 36px 58px minmax(0, 1fr) 106px 20px; grid-template-rows: auto; min-height: 66px; }
.league-list:not(.player-list) .t-rank,
.league-list:not(.player-list) .club-mark { grid-row: 1; align-self: center; }
.league-list:not(.player-list) .club-mark { height: 50px; font-size: 1.55rem; }
.league-list:not(.player-list) .club-mark::after { width: 30px; height: 28px; }
.league-list:not(.player-list) .t-team { display: none; }
.league-list:not(.player-list) .t-team > strong { display: none; }
.league-list:not(.player-list) .t-team > small { align-self: flex-start; text-align: left; flex-shrink: 0; margin: 0; max-width: none; padding: 0; border: 0; background: none; color: #e0e6ed; font-size: .76rem; font-weight: 600; line-height: 1.4; }
.league-list .t-record { white-space: nowrap; }
.league-list:not(.player-list) .t-record { display: inline-block; min-width: 5ch; text-align: right; font-variant-numeric: tabular-nums; }
.league-list:not(.player-list) .league-metrics { display: contents; }
.league-list:not(.player-list) .league-edge { display: flex; flex-direction: row; align-items: baseline; justify-content: center; justify-self: start; grid-column: 3; grid-row: 1; gap: 4px; padding: 2px 4px; border: 1px solid rgb(196 209 222 / .1); border-radius: 4px; background: rgb(17 24 32 / .55); }
.league-list:not(.player-list) .league-edge b { font-size: 1.1rem; }
.league-list:not(.player-list) .league-edge small { margin: 0; font-size: .72rem; }
.league-list:not(.player-list) .league-edge.edge-pos b { color: #a1efb5; }
.league-list:not(.player-list) .league-edge.edge-neg b { color: #ffb1aa; }
.league-list:not(.player-list) .t-rating { position: relative; grid-column: 4; grid-row: 1; width: 106px; height: 40px; }
.league-list:not(.player-list) .tier-row .t-rating { min-width: 0; }
.league-list:not(.player-list) .tier-row .t-rating::after { inset: 0; width: 100%; height: 100%; transform: none; box-sizing: border-box; justify-content: center; padding: 1px 5px; }
.league-list:not(.player-list) .tier-row[data-tier="diamond"] .t-rating::after,
.league-list:not(.player-list) .tier-row[data-tier="gold"] .t-rating::after { padding-left: 23px; background-position: 5px center; }
.league-list:not(.player-list) .rating-track { display: none; }
@media (max-width: 700px) {
  .team-rankings-head { grid-template-columns: 22px 54px minmax(0, 1fr) 90px; gap: 10px; padding: 12px 10px; font-size: .74rem; }
  .league-list:not(.player-list) .tier-row { grid-template-columns: 22px 54px minmax(0, 1fr) 90px; gap: 10px; padding: 8px 10px; }
  .league-list:not(.player-list) .t-rating { flex-basis: 90px; width: 90px; height: 38px; }
  .league-list:not(.player-list) .league-edge { white-space: nowrap; }
}
@media (max-width: 420px) {
  .team-rankings-head { grid-template-columns: 18px 48px minmax(0, 1fr) 74px; gap: 8px; padding: 12px 6px; font-size: .68rem; }
  .league-list:not(.player-list) .tier-row { grid-template-columns: 18px 48px minmax(0, 1fr) 74px; gap: 8px; padding: 8px 6px; }
  .league-list:not(.player-list) .club-mark { height: 48px; font-size: 1.4rem; }
  .league-list:not(.player-list) .t-team > strong { font-size: .85rem; }
  .league-list:not(.player-list) .t-team > small { font-size: .65rem; }
  .league-list:not(.player-list) .league-edge b { font-size: 1rem; }
  .league-list:not(.player-list) .league-edge small { font-size: .68rem; }
  .league-list:not(.player-list) .t-rating { flex-basis: 74px; width: 74px; height: 32px; }
  .league-list:not(.player-list) .t-rating::after { font-size: 1.75rem; }
}
@media (max-width: 380px) {
  .league-list:not(.player-list) .t-team > strong { max-width: 100%; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; }
}
/* A uniform record sits directly beneath each team mark. */
.league-list:not(.player-list) .tier-row { grid-template-rows: 36px 13px; row-gap: 2px; min-height: 64px; padding: 6px 14px; }
.league-list:not(.player-list) .club-mark { width: 44px; height: 36px; justify-self: center; font-size: 1.15rem; }
.league-list:not(.player-list) .club-mark::after { width: 25px; height: 24px; }
.league-list:not(.player-list) .team-record { grid-column: 2; grid-row: 2; justify-self: center; color: #dce4ec; font: 600 .68rem/1.2 var(--mono); font-variant-numeric: tabular-nums; white-space: nowrap; text-shadow: 0 1px 3px rgb(0 0 0 / .8); }
.league-list:not(.player-list) .t-rank,
.league-list:not(.player-list) .league-edge,
.league-list:not(.player-list) .t-rating,
.league-list:not(.player-list) .row-arrow { grid-row: 1 / 3; align-self: center; }
@media (max-width: 700px) {
  .league-list:not(.player-list) .tier-row { min-height: 66px; padding: 7px 10px; }
}
@media (max-width: 420px) {
  .league-list:not(.player-list) .tier-row { padding-inline: 6px; }
}
/* Game-card hierarchy: opportunity margin left, dominant rating panel right, score secondary. */
.latest-wrap .tg-latest-card:not(.tg-dual-result) { grid-template-columns: minmax(0, .95fr) minmax(0, 1.2fr); column-gap: 18px; row-gap: 14px; }
.latest-wrap .tg-latest-card:not(.tg-dual-result) .tg-game-metrics { display: contents; }
.latest-wrap .tg-latest-card:not(.tg-dual-result) .tg-game-metrics .tg-rating { grid-column: 2; grid-row: 1 / 4; align-self: stretch; justify-self: stretch; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; min-width: 0; min-height: 180px; padding: 22px 12px; border: 1px solid color-mix(in srgb, var(--plate-edge, #7d8b9d) 36%, #28313b); border-radius: 12px; background: linear-gradient(125deg, transparent 0 52%, rgb(255 255 255 / .035) 52% 62%, transparent 62% 69%, rgb(255 255 255 / .025) 69% 75%, transparent 75%), radial-gradient(ellipse at 85% 0%, color-mix(in srgb, var(--plate-edge, #7d8b9d) 14%, transparent), transparent 75%), #111820; box-shadow: inset 0 1px 0 rgb(255 255 255 / .06); text-align: center; }
.latest-wrap .tg-latest-card:not(.tg-dual-result) .tg-game-metrics .tg-rating::after { content: ''; position: absolute; right: 12px; bottom: 12px; width: 24px; height: 24px; background: var(--plate-shape, none) center / contain no-repeat; opacity: .6; pointer-events: none; }
.latest-wrap .tg-latest-card:not(.tg-dual-result) .tg-game-metrics .tg-rating b { display: flex; flex-direction: column; align-items: center; gap: 7px; padding: 0; border: 0; background: none; box-shadow: none; color: #f5f4ee; font: 800 clamp(3.8rem, 7vw, 5.2rem)/.95 var(--display); -webkit-text-stroke: 1px var(--plate-edge, transparent); text-shadow: 0 0 24px var(--plate-glow, transparent); }
.latest-wrap .tg-latest-card:not(.tg-dual-result) .tg-rating b small { display: none; }
.latest-wrap .tg-latest-card:not(.tg-dual-result) .tg-rating > small { order: -1; font: 700 .6rem/1.4 var(--font); letter-spacing: .12em; color: #d3dae3; }
.latest-wrap .tg-latest-card:not(.tg-dual-result) .tg-rating > .tg-simulation-tag { order: 2; color: #efc57e; }
.latest-wrap .tg-latest-card:not(.tg-dual-result) .tg-game-metrics .tg-game-edge { grid-column: 1; grid-row: 2; align-self: end; align-items: flex-start; gap: 6px; margin: 0; padding: 0; }
.latest-wrap .tg-latest-card:not(.tg-dual-result) .tg-game-edge b { font: 800 2.3rem/1 var(--font); letter-spacing: -.04em; }
.latest-wrap .tg-latest-card:not(.tg-dual-result) .tg-game-edge .edge-positive { color: #a1efb5; }
.latest-wrap .tg-latest-card:not(.tg-dual-result) .tg-game-edge .edge-negative { color: #ffb1aa; }
.latest-wrap .tg-latest-card:not(.tg-dual-result) .tg-game-edge small { max-width: 140px; text-align: left; color: #bcc7d4; font: 500 .68rem/1.4 var(--font); }
.latest-wrap .tg-latest-card:not(.tg-dual-result) .tg-scoreboard { grid-column: 1; grid-row: 3; align-self: end; margin: 0; padding-top: 10px; border-top: 1px solid rgb(164 173 183 / .18); }
.latest-wrap .tg-latest-card:not(.tg-dual-result) .tg-scoreboard::before { content: none; display: block; margin-bottom: 8px; color: #919eae; font: 600 .56rem/1 var(--font); letter-spacing: .12em; text-transform: uppercase; }
.latest-wrap .next-game-card .tg-latest-card:not(.tg-dual-result) .tg-scoreboard::before { content: 'Projected score'; }
.latest-wrap .tg-latest-card:not(.tg-dual-result) .tg-score-line { gap: 8px; }
.latest-wrap .tg-latest-card:not(.tg-dual-result) .tg-score { font-size: 1.3rem; gap: 5px; }
.latest-wrap .tg-latest-card:not(.tg-dual-result) .tg-score-team { gap: 4px; }
.latest-wrap .tg-latest-card:not(.tg-dual-result) .tg-score-team > b { color: #d4dce5; }
.latest-wrap .tg-latest-card:not(.tg-dual-result) .tg-score-team small { font-size: .52rem; }
.latest-wrap .tg-latest-card:not(.tg-dual-result) .tg-badge { width: 23px; height: 23px; flex-shrink: 0; font-size: .78rem; transform: translateY(-5px); }
.latest-wrap .tg-latest-card:not(.tg-dual-result) .tg-tagline { margin-top: 0; }
.latest-wrap .tg-latest-card:not(.tg-dual-result) > .tg-edges { margin-top: 0; }
@media (max-width: 700px) {
  .latest-wrap .tg-latest-card:not(.tg-dual-result) { column-gap: 14px; row-gap: 12px; }
  .latest-wrap .tg-latest-card:not(.tg-dual-result) .tg-game-metrics .tg-rating { min-height: 174px; padding: 18px 8px; }
  .latest-wrap .tg-latest-card:not(.tg-dual-result) .tg-game-metrics .tg-rating b { font-size: 4.2rem; }
}
@media (max-width: 380px) {
  .latest-wrap .tg-latest-card:not(.tg-dual-result) { column-gap: 10px; }
  .latest-wrap .tg-latest-card:not(.tg-dual-result) .tg-game-metrics .tg-rating b { font-size: 3.5rem; }
  .latest-wrap .tg-latest-card:not(.tg-dual-result) .tg-rating > small { font-size: .52rem; letter-spacing: .07em; }
  .latest-wrap .tg-latest-card:not(.tg-dual-result) .tg-game-edge b { font-size: 1.9rem; }
  .latest-wrap .tg-latest-card:not(.tg-dual-result) .tg-score { font-size: 1.05rem; gap: 3px; }
  .latest-wrap .tg-latest-card:not(.tg-dual-result) .tg-score-line { gap: 5px; }
}
/* Player portraits load only when a name preview or expanded detail needs one. */
.player-portrait { position: relative; flex: 0 0 104px; width: 104px; height: 78px; overflow: hidden; border: 1px solid rgb(164 173 183 / .18); border-radius: 8px; background: radial-gradient(ellipse at 50% 100%, #344453, #171e27 75%); }
.player-portrait img { position: relative; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center bottom; opacity: 0; }
.player-portrait img[hidden] { display: none; }
.player-portrait.is-loaded img { opacity: 1; }
.player-portrait .player-portrait-fallback { position: absolute; inset: 0; display: grid; place-items: center; margin: 0; }
.player-portrait.is-loaded .player-portrait-fallback { display: none; }
.player-portrait .team-badge { display: grid; place-items: center; width: 46px; height: 42px; margin: 0; font: 800 1.2rem/1 var(--display); }
.player-summary { display: grid; grid-template-columns: 104px minmax(0, 1fr) 124px; align-items: center; gap: 14px 20px; }
.player-summary .player-portrait { grid-column: 1; grid-row: 1; }
.player-summary .summary-lead { grid-column: 2; grid-row: 1; }
.player-summary .summary-note { grid-column: 1 / -1; }
.league-list.player-list .player-row[aria-expanded="true"] { grid-template-columns: 22px 38px minmax(0, 1fr) 26px; grid-template-rows: auto; min-height: 66px; }
.league-list .player-row[aria-expanded="true"] .league-metrics { display: none; }
.league-list .player-row[aria-expanded="true"] .t-team { display: contents; }
.league-list .player-row[aria-expanded="true"] .t-team strong { grid-column: 3; grid-row: 1; align-self: center; font-size: 1.25rem; line-height: 1.2; }
.league-list .player-row[aria-expanded="true"] .t-team small:not(:has(.row-flag)),
.league-list .player-row[aria-expanded="true"] .edge-inline { display: none; }
.league-list .player-row[aria-expanded="true"] .t-team small:has(.row-flag) { grid-column: 3; grid-row: 2; }
.league-list .player-row[aria-expanded="true"] .t-rank,
.league-list .player-row[aria-expanded="true"] .club-mark { grid-row: 1; }
.league-list .player-row[aria-expanded="true"] .row-arrow { grid-column: 4; grid-row: 1; }
.player-summary .summary-edge { grid-column: 1 / 3; grid-row: 2; display: flex; align-items: baseline; gap: 6px; }
.player-summary .summary-edge b { font: 700 1.15rem/1.2 var(--mono); color: var(--pb-paper); }
.player-summary .summary-edge.edge-pos b { color: var(--pb-positive); }
.player-summary .summary-edge.edge-neg b { color: var(--pb-negative); }
.player-summary .summary-edge span { margin: 0; font: 600 .72rem/1 var(--mono); letter-spacing: 0; }
.player-summary .summary-rating { grid-column: 3; grid-row: 1 / 3; align-self: stretch; display: flex; flex-direction: column; justify-content: center; align-items: center; border-left: 1px solid rgb(164 173 183 / .16); padding-left: 12px; }
.player-summary .summary-rating b { font: 800 2.5rem/1.15 var(--font); letter-spacing: .01em; font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--tier-ink, #cbd5e1); text-shadow: 0 0 14px var(--tier-glow, transparent); }
.player-summary .summary-rating span { color: #dbe2eb; font-size: .55rem; letter-spacing: .09em; text-align: center; }
/* Team atmosphere stays in the identity panel, clear of the three stat bands. */
.player-detail .player-summary { position: relative; isolation: isolate; overflow: clip; padding: 14px 16px; border: 1px solid rgb(164 173 183 / .12); border-radius: 10px; background: #111820; }
.player-detail .player-summary > * { position: relative; z-index: 1; }
.player-detail .player-summary::before { content: ''; position: absolute; z-index: 0; inset: -30%; pointer-events: none; background: radial-gradient(ellipse at 25% 65%, color-mix(in srgb, var(--player-primary) 30%, transparent), transparent 48%), radial-gradient(ellipse at 65% 20%, color-mix(in srgb, var(--player-secondary) 14%, transparent), transparent 45%), radial-gradient(ellipse at 40% 85%, color-mix(in srgb, var(--player-primary) 18%, transparent), transparent 55%); filter: blur(14px); transform-origin: 30% 60%; }
.player-detail .player-summary::after { content: ''; position: absolute; z-index: 2; inset: 0 auto 0 0; width: 4px; pointer-events: none; background: linear-gradient(180deg, var(--player-primary) 0% 72%, var(--player-secondary) 72% 90%, var(--player-third) 90%); }
.player-summary .player-portrait { border-color: color-mix(in srgb, var(--player-primary) 35%, #455263); background: radial-gradient(ellipse at 50% 75%, color-mix(in srgb, var(--player-primary) 28%, #18222d), #141c25 80%); box-shadow: 0 0 22px color-mix(in srgb, var(--player-primary) 18%, transparent); }
.player-detail:not([hidden]) .player-summary { animation: player-summary-enter .24s ease-out both; }
.player-detail:not([hidden]) .player-summary::before { animation: player-smoke-drift 12s ease-in-out infinite alternate; }
@keyframes player-smoke-drift { from { transform: translate(-3%, 2%) scale(1); opacity: .65; } to { transform: translate(5%, -4%) scale(1.12); opacity: .9; } }
@keyframes player-summary-enter { from { opacity: 0; transform: translateY(3px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) {
  .player-detail:not([hidden]) .player-summary,
  .player-detail:not([hidden]) .player-summary::before { animation: none; }
}
@media (max-width: 700px) {
  .player-summary { grid-template-columns: 72px minmax(0, 1fr) 92px; gap: 12px 10px; }
  .player-summary .player-portrait { width: 72px; height: 72px; }
  .player-summary .summary-rating { padding-left: 8px; }
  .player-summary .summary-rating b { font-size: 2rem; }
}
@media (max-width: 380px) {
  .league-list.player-list .player-row[aria-expanded="true"] { grid-template-columns: 18px 32px minmax(0, 1fr) 20px; }
  .league-list .player-row[aria-expanded="true"] .t-team strong { font-size: 1.12rem; }
  .player-summary { grid-template-columns: 56px minmax(0, 1fr) 76px; column-gap: 8px; }
  .player-detail .player-summary { padding-inline: 12px; }
  .player-summary .player-portrait { width: 56px; height: 64px; }
  .player-summary .summary-rating b { font-size: 1.75rem; }
  .player-summary .summary-lead span { font-size: .52rem; letter-spacing: .06em; }
}
/* Softer top-ten colors; unranked and rank 11+ retain their existing palette. */
:where(.league-list .tier-row, .summary-rating)[data-elite][data-tier="gold"] { --tier-ink: #e8c77a; --tier-edge: rgb(232 199 122 / .75); --tier-glow: rgb(232 199 122 / .5); --tier-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpolygon points='50,8 61,37 93,37 67,56 77,88 50,70 23,88 33,56 7,37 39,37' fill='none' stroke='%23e8c77a' stroke-width='8' stroke-linejoin='round'/%3E%3C/svg%3E"); }
:where(.league-list .tier-row, .summary-rating)[data-elite][data-tier="diamond"] { --tier-ink: #67d9f5; --tier-edge: rgb(103 217 245 / .8); --tier-glow: rgb(103 217 245 / .55); --tier-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpolygon points='50,8 78,20 94,42 50,92 6,42 22,20' fill='none' stroke='%2367d9f5' stroke-width='8' stroke-linejoin='round'/%3E%3Cpath d='M22 20 L50 42 L78 20 M6 42 H94 M50 42 V92' fill='none' stroke='%2367d9f5' stroke-opacity='.55' stroke-width='6'/%3E%3C/svg%3E"); }
:where(.league-list .tier-row, .summary-rating)[data-elite][data-tier="silver"] { --tier-ink: #bcc9da; --tier-edge: rgb(188 201 218 / .7); --tier-glow: rgb(188 201 218 / .4); }
/* Diamond++ belongs to the league leader, including their expanded player card. */
.league-list .tier-row[data-elite="1"], .summary-rating[data-elite="1"] {
  --tier-ink: #d8faff;
  --tier-edge: #a8eeff;
  --tier-glow: rgb(80 218 255 / .7);
  --tier-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpolygon points='40,20 64,30 77,49 40,92 4,49 17,30' fill='%2379e5ff' fill-opacity='.2' stroke='%23d1faff' stroke-width='6' stroke-linejoin='round'/%3E%3Cpath d='M17 30 L40 49 L64 30 M4 49 H77 M40 49 V92' fill='none' stroke='%2379e5ff' stroke-width='4'/%3E%3Cpath d='M80 2 L84 15 L97 19 L84 23 L80 36 L76 23 L63 19 L76 15 Z M91 43 L94 50 L100 53 L94 56 L91 63 L88 56 L82 53 L88 50 Z' fill='%23e6fcff'/%3E%3C/svg%3E");
}
.league-list .tier-row[data-elite="1"].rank-elite { box-shadow: inset 3px 0 0 #d8faff, inset 0 1px 0 rgb(172 240 255 / .45), inset 0 -1px 0 rgb(172 240 255 / .22); }
.league-list .tier-row[data-elite="1"] .t-rating::after { border-color: #a8eeff; background-color: rgb(62 180 215 / .12); box-shadow: 0 0 15px rgb(80 218 255 / .4), inset 0 0 9px rgb(188 245 255 / .12); text-shadow: 0 0 12px var(--tier-glow); }
/* Season and team selectors stay together, with the season immediately to the left. */
body[data-team] .unified-header .header-selectors { grid-column: 3; grid-row: 1; display: flex; align-items: center; gap: 10px; min-width: 0; }
.season-select { min-width: 0; }
.season-picker-trigger { min-width: 160px; }
.season-picker-trigger:disabled { opacity: .55; cursor: wait; }
.season-picker-dialog { position: fixed; inset: auto; margin: 0; padding: 12px; width: min(280px, calc(100vw - 32px)); box-sizing: border-box; border: 1px solid #414b58; border-radius: 10px; background: #171d25; color: #eef0f3; box-shadow: 0 16px 48px rgb(0 0 0 / .5); }
.season-picker-dialog::backdrop { background: rgb(5 8 13 / .3); }
.season-picker-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.season-picker-head h2 { margin: 0; font: 700 .7rem/1 var(--font); letter-spacing: .1em; text-transform: uppercase; color: #aeb9c7; }
.season-picker-head button { width: 28px; height: 28px; border: 0; border-radius: 4px; background: transparent; color: #aeb9c7; font-size: 1.3rem; cursor: pointer; }
.season-picker-options { display: grid; gap: 7px; }
.season-picker-choice { position: relative; min-height: 48px; padding: 12px 38px 12px 12px; border: 1px solid #34404e; border-radius: 6px; background: #1c2530; color: #e3eaf3; text-align: left; font: 600 .88rem/1.3 var(--font); cursor: pointer; }
.season-picker-choice:hover { background: #263240; }
.season-picker-choice[aria-pressed="true"] { border-color: #b9845d; background: #302820; color: #ffe4cf; }
.season-picker-choice[aria-pressed="true"]::after { content: '✓'; position: absolute; right: 14px; color: #ef9955; }
.season-picker-choice:focus-visible, .season-picker-head button:focus-visible { outline: 2px solid #ef9955; outline-offset: 2px; }
.season-select select { box-sizing: border-box; width: 100%; min-height: 48px; padding: 10px 28px 10px 12px; color: #e5e7eb; background: #141414; border: 1px solid rgb(255 255 255 / .12); border-radius: 6px; font: 600 .85rem/1.3 var(--font); color-scheme: dark; cursor: pointer; }
.season-select select:focus-visible { outline: 2px solid #ef9955; outline-offset: 3px; }
@media (max-width: 1050px) {
  body[data-team] .site-header.unified-header { column-gap: 16px; }
  body[data-team] .unified-header .team-select { min-width: 150px; }
}
@media (max-width: 800px) {
  body[data-team] .site-header.unified-header { grid-template-columns: minmax(0, 1fr); row-gap: 2px; }
  body[data-team] .site-header.unified-header .site-wordmark { grid-column: 1; grid-row: 1; }
  body[data-team] .site-header.unified-header .site-nav { grid-column: 1; grid-row: 2; }
  body[data-team] .unified-header .header-selectors { grid-column: 1; grid-row: 3; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); margin-bottom: 4px; }
  body[data-team] .unified-header .header-selectors .team-select { min-width: 0; grid-column: 2; grid-row: 1; width: 100%; }
  .season-select select { min-height: 44px; font-size: .8rem; padding-left: 10px; padding-right: 8px; }
  .season-picker-trigger { min-width: 0; }
  .header-selectors .team-picker-trigger { min-height: 44px; font-size: .8rem; }
}
/* Sliders in neutral gray; the roster slider sits in the band head, on its own row on phones. */
.players-minutes input { accent-color: #9ca3af; }
body[data-team] #app > .section.band.team-roster { padding-top: 14px; }
.team-roster .roster-head { display: grid; grid-template-columns: minmax(0, 1fr) auto 22px; align-items: center; gap: 12px 18px; margin-bottom: 10px; padding: 12px 14px; border: 1px solid rgb(164 173 183 / .12); border-radius: 6px; background: rgb(255 255 255 / .025); }
.team-roster .roster-head p { margin: 0; font-size: .75rem; line-height: 1.4; }
.team-roster .roster-minutes { margin: 0; font-size: .72rem; gap: 12px; }
.team-roster .roster-head .players-help-open { margin: 0; justify-self: end; }
@media (max-width: 700px) {
  .team-roster .roster-head { grid-template-columns: minmax(0, 1fr) 22px; gap: 8px 12px; padding: 10px 12px; }
  .team-roster .roster-head .players-help-open { grid-column: 2; grid-row: 1; }
  .team-roster .roster-minutes { grid-column: 1 / -1; grid-row: 2; display: grid; grid-template-columns: auto minmax(0, 1fr); }
  .team-roster .roster-minutes input { width: 100%; min-width: 0; }
}

/* Team roster medalists show their portraits before expanding. */
.team-roster .league-list .player-row.roster-featured { grid-template-columns: 36px 88px minmax(0, 1fr) 132px 20px; grid-template-rows: auto; gap: 14px; min-height: 110px; padding: 12px 14px; }
.team-roster .roster-featured .player-portrait { display: block; grid-column: 2; grid-row: 1; width: 88px; height: 84px; border-color: var(--tier-edge); background: radial-gradient(ellipse at bottom, color-mix(in srgb, var(--team-accent) 30%, #18222d), #141c25); }
.team-roster .roster-featured .t-rank { grid-column: 1; grid-row: 1; }
.team-roster .league-list .roster-featured .t-team { display: block; grid-column: 3; grid-row: 1; min-width: 0; }
.team-roster .league-list .roster-featured .t-team strong { display: block; font-size: 1.2rem; line-height: 1.25; }
.team-roster .league-list .roster-featured .t-team small { display: block; margin-top: 6px; }
.team-roster .league-list .roster-featured .edge-inline { display: inline; }
.team-roster .league-list .roster-featured .league-metrics { display: contents; }
.team-roster .roster-featured .league-edge { display: none; }
.team-roster .league-list .roster-featured .t-rating { grid-column: 4; grid-row: 1; width: 132px; min-width: 0; height: 56px; }
.team-roster .league-list .roster-featured .t-rating::after { inset: 0; width: 100%; height: 100%; box-sizing: border-box; transform: none; justify-content: center; font-size: 2.8rem; padding: 0 8px 0 26px; background-position: 7px center; }
.team-roster .league-list .roster-featured .row-arrow { grid-column: 5; grid-row: 1; }
@media (max-width: 700px) {
  .team-roster .league-list .player-row.roster-featured { grid-template-columns: 30px 62px minmax(0, 1fr) 102px 14px; gap: 7px; min-height: 96px; padding: 10px 6px; }
  .team-roster .roster-featured .player-portrait { width: 62px; height: 74px; }
  .team-roster .league-list .roster-featured .t-team strong { font-size: 1rem; }
  .team-roster .league-list .roster-featured .t-rating { width: 102px; height: 50px; }
  .team-roster .league-list .roster-featured .t-rating::after { font-size: 2.4rem; padding-left: 22px; background-position: 4px center; background-size: 14px 14px; }
}

/* Compact headshots identify the rest of the team roster. */
.team-roster .player-row:not(.roster-featured) > .player-portrait { display: block; grid-column: 2; grid-row: 1; width: 52px; height: 54px; box-sizing: border-box; border-radius: 5px; }
.team-roster .player-row:not(.roster-featured) .player-portrait .team-badge { width: 30px; height: 30px; font-size: .8rem; }
@media (max-width: 700px) {
  .team-roster .player-row:not(.roster-featured) > .player-portrait { grid-row: 1 / 3; width: 48px; }
  .team-roster .player-row:not(.roster-featured)[aria-expanded="true"] > .player-portrait { grid-row: 1; }
}
@media (max-width: 380px) {
  .team-roster .player-row:not(.roster-featured) > .player-portrait { width: 42px; height: 48px; }
}

/* Equal emphasis for all three featured roster players. */
.team-roster .league-list .player-row.roster-featured { --metal-alpha: .3; box-shadow: inset 2px 0 0 var(--tier-edge), inset 0 1px 0 rgb(255 255 255 / .06); }
.team-roster .league-list .roster-featured .t-rating::after { background-color: rgb(255 255 255 / .035); border-color: var(--tier-edge); box-shadow: 0 0 10px color-mix(in srgb, var(--tier-glow) 45%, transparent); text-shadow: 0 0 10px var(--tier-glow); }
.team-roster .league-list .player-row.roster-featured::before { content: none; }

.team-roster .league-list .player-row:not(.roster-featured) { grid-template-columns: 36px 52px minmax(0, 1fr) 110px 108px 20px; }
.team-roster .league-list .player-row:not(.roster-featured)[aria-expanded="true"] { grid-template-columns: 36px 52px minmax(0, 1fr) 26px; }
@media (max-width: 700px) {
  .team-roster .league-list .player-row:not(.roster-featured) { grid-template-columns: 34px 48px minmax(0, 1fr) auto 26px; }
  .team-roster .league-list .player-row:not(.roster-featured)[aria-expanded="true"] { grid-template-columns: 34px 48px minmax(0, 1fr) 26px; }
}
@media (max-width: 380px) {
  .team-roster .league-list .player-row:not(.roster-featured) { grid-template-columns: 34px 42px minmax(0, 1fr) auto 20px; }
  .team-roster .league-list .player-row:not(.roster-featured)[aria-expanded="true"] { grid-template-columns: 34px 42px minmax(0, 1fr) 20px; }
}

/* Keep possession values clear of rating plates on narrow roster rows. */
.team-roster .league-list .roster-featured .edge-inline { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 4px; white-space: normal; }
.team-roster .roster-featured .edge-inline b,
.team-roster .roster-featured .edge-unit { white-space: nowrap; }
@media (max-width: 420px) {
  .team-roster .league-list .player-row.roster-featured { grid-template-columns: 26px 54px minmax(0, 1fr) 88px 12px; column-gap: 6px; }
  .team-roster .roster-featured .player-portrait { width: 54px; height: 70px; }
  .team-roster .league-list .roster-featured .t-rating { width: 88px; }
  .team-roster .league-list .roster-featured .t-rating::after { font-size: 2.15rem; padding-left: 20px; padding-right: 4px; background-size: 12px 12px; }
  .team-roster .league-list .roster-featured .edge-inline { font-size: .7rem; }
  .team-roster .league-list .roster-featured .edge-inline b { font-size: 1rem; }
}

/* Expanded roster rows leave the rating and possession metrics inside the card. */
.team-roster .league-list .player-row[aria-expanded="true"] .league-metrics,
.team-roster .league-list .player-row[aria-expanded="true"] .edge-inline,
.team-roster .league-list .player-row[aria-expanded="true"] .t-team small:not(:has(.row-flag)) { display: none; }
.team-roster .league-list .roster-featured[aria-expanded="true"] { grid-template-columns: 36px 52px minmax(0, 1fr) 26px; min-height: 66px; padding: 6px 12px; }
.team-roster .league-list .roster-featured[aria-expanded="true"] > .player-portrait { width: 52px; height: 54px; box-sizing: border-box; }
.team-roster .league-list .roster-featured[aria-expanded="true"] .row-arrow { grid-column: 4; }
.team-roster .league-list .roster-featured[aria-expanded="true"] .t-team strong { font-size: 1.25rem; }
@media (max-width: 700px) {
  .team-roster .league-list .roster-featured[aria-expanded="true"] { grid-template-columns: 34px 48px minmax(0, 1fr) 26px; gap: 10px; }
  .team-roster .league-list .roster-featured[aria-expanded="true"] > .player-portrait { width: 48px; }
}
@media (max-width: 380px) {
  .team-roster .league-list .roster-featured[aria-expanded="true"] { grid-template-columns: 34px 42px minmax(0, 1fr) 20px; gap: 7px; padding-inline: 6px; }
  .team-roster .league-list .roster-featured[aria-expanded="true"] > .player-portrait { width: 42px; height: 48px; }
  .team-roster .league-list .roster-featured[aria-expanded="true"] .t-team strong { font-size: 1.12rem; }
}

/* Player rankings: face first, with team and rank anchored beneath it. */
.players-page .league-list .player-row { grid-template-columns: 82px minmax(0, 1fr) 110px 108px 20px; min-height: 80px; padding: 3px 6px 3px 10px; gap: 14px; }
:is(.players-page, .team-roster) .ranking-identity { position: relative; display: block; grid-column: 1; grid-row: 1 / 3; align-self: stretch; width: 82px; min-height: 74px; }
:is(.players-page, .team-roster) .ranking-identity .player-portrait { display: block; position: absolute; inset: 0; width: 100%; height: 100%; border: 0; border-radius: 5px; background: radial-gradient(ellipse at bottom, color-mix(in srgb, var(--team-accent) 32%, #18222d), transparent 85%); }
:is(.players-page, .team-roster) .league-list .ranking-identity .club-mark { position: absolute; left: -10px; top: auto; bottom: 0; z-index: 2; width: 30.6px; height: 28.8px; min-width: 0; font-size: .9rem; opacity: 1; border-radius: 5px; box-shadow: 0 1px 5px rgb(0 0 0 / .7); }
:is(.players-page, .team-roster) .league-list .ranking-identity .club-mark::after { width: 18.9px; height: 17.1px; }
:is(.players-page, .team-roster) .league-list .ranking-identity .t-rank { position: absolute; left: -10px; right: auto; top: -3px; bottom: auto; z-index: 2; min-width: 26px; padding: 3px 5px; box-sizing: border-box; border: 1px solid rgb(164 183 203 / .07); border-radius: 3px; background: linear-gradient(180deg, rgb(24 32 43 / .42), rgb(13 18 25 / .58)); color: var(--tier-ink, #c4ceda); -webkit-text-fill-color: currentColor; filter: none; font: 700 .95rem/1 var(--display); font-variant-numeric: tabular-nums; letter-spacing: .04em; text-shadow: 0 1px 3px #080b10; text-align: center; }
.players-page .league-list .player-row .t-team { grid-column: 2; }
.players-page .league-list .player-row .league-edge { grid-column: 3; }
.players-page .league-list .player-row .t-rating { grid-column: 4; }
.players-page .league-list .player-row .row-arrow { grid-column: 5; }
.players-page .league-list .player-row[aria-expanded="true"] { grid-template-columns: 82px minmax(0, 1fr) 26px; }
.players-page .league-list .player-row[aria-expanded="true"] .t-team strong { grid-column: 2; }
.players-page .league-list .player-row[aria-expanded="true"] .t-team small { grid-column: 2; }
.players-page .league-list .player-row[aria-expanded="true"] .row-arrow { grid-column: 3; }
@media (max-width: 700px) {
  .players-page .league-list .player-row { grid-template-columns: 74px minmax(0, 1fr) auto 20px; gap: 2px 9px; padding: 3px 2px 3px 9px; }
  :is(.players-page, .team-roster) .ranking-identity { width: 74px; }
  .players-page .league-list .player-row .t-team strong,
  .players-page .league-list .player-row .t-team small { grid-column: 2; }
  .players-page .league-list .player-row .t-rating { grid-column: 3; }
  .players-page .league-list .player-row .row-arrow { grid-column: 4; }
  .players-page .league-list .player-row[aria-expanded="true"] { grid-template-columns: 74px minmax(0, 1fr) 20px; }
  .players-page .league-list .player-row[aria-expanded="true"] .row-arrow { grid-column: 3; }
}

@media (min-width: 701px) {
  .players-page .league-list .player-row { grid-template-rows: auto; }
  :is(.players-page, .team-roster) .ranking-identity { grid-row: 1; }
}

@media (max-width: 700px) {
  :is(.players-page, .team-roster) .league-list .ranking-identity .club-mark { left: -9px; }
}

@media (max-width: 700px) {
  :is(.players-page, .team-roster) .league-list .ranking-identity .t-rank { left: -9px; }
}

/* Expanded rankings emphasize rank, team, and name; the card owns the portrait. */
.players-page .league-list .player-row[aria-expanded="true"] { grid-template-columns: max-content 64px minmax(0, 1fr) 26px; min-height: 104px; padding: 12px 14px; gap: 16px; background-image: linear-gradient(115deg, transparent 55%, color-mix(in srgb, var(--badge-primary) 20%, transparent) 55% 67%, transparent 67% 71%, color-mix(in srgb, var(--badge-secondary) 15%, transparent) 71% 82%, transparent 82%), linear-gradient(90deg, color-mix(in srgb, var(--team-accent) 18%, #202631), #151b24); border-bottom-color: color-mix(in srgb, var(--team-accent) 45%, #354150); }
.players-page .player-row[aria-expanded="true"] .ranking-identity { display: contents; }
.players-page .player-row[aria-expanded="true"] .ranking-identity .player-portrait { display: none; }
.players-page .league-list .player-row[aria-expanded="true"] .ranking-identity .t-rank { position: static; grid-column: 1; grid-row: 1 / 3; align-self: center; min-width: 0; padding: 0; border: 0; background: none; min-width: 56px; font-size: 4.5rem; font-weight: 800; letter-spacing: -.025em; background: linear-gradient(160deg, #f1f8ff, var(--tier-ink, #9eb3c8)); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; text-shadow: none; }
.players-page .league-list .player-row[aria-expanded="true"] .ranking-identity .club-mark { position: relative; inset: auto; grid-column: 2; grid-row: 1 / 3; align-self: center; width: 64px; height: 62px; font-size: 1.9rem; opacity: 1; transform: rotate(-5deg); border-radius: 7px; box-shadow: 0 6px 16px rgb(0 0 0 / .3), inset 0 1px 0 rgb(255 255 255 / .12); }
.players-page .league-list .player-row[aria-expanded="true"] .ranking-identity .club-mark::after { width: 38px; height: 36px; }
.players-page .league-list .player-row[aria-expanded="true"] .t-team strong { grid-column: 3; font-size: clamp(1.7rem, 3vw, 2.5rem); font-weight: 800; line-height: 1.08; letter-spacing: -.035em; text-shadow: 0 2px 8px rgb(0 0 0 / .3); }
.players-page .league-list .player-row[aria-expanded="true"] .t-team small { grid-column: 3; }
.players-page .league-list .player-row[aria-expanded="true"] .row-arrow { grid-column: 4; grid-row: 1 / 3; align-self: center; }
@media (max-width: 700px) {
  .players-page .league-list .player-row[aria-expanded="true"] { grid-template-columns: max-content 54px minmax(0, 1fr) 18px; min-height: 98px; gap: 12px; padding: 10px 9px; }
  .players-page .league-list .player-row[aria-expanded="true"] .ranking-identity .t-rank { min-width: 42px; font-size: 3.6rem; }
  .players-page .league-list .player-row[aria-expanded="true"] .ranking-identity .club-mark { width: 54px; height: 54px; font-size: 1.65rem; }
  .players-page .league-list .player-row[aria-expanded="true"] .t-team strong { font-size: clamp(1.45rem, 5.5vw, 1.9rem); }
}

.players-page .league-list .player-row[aria-expanded="true"] .t-team:not(:has(.row-flag)) strong { grid-row: 1 / 3; align-self: center; }

/* Offset collapsed player content without moving its corner markers. */
:is(.players-page, .team-roster) .player-row[aria-expanded="false"] .ranking-identity .player-portrait { transform: translateX(12px); }
:is(.players-page, .team-roster) .league-list .player-row[aria-expanded="false"] .t-team strong,
:is(.players-page, .team-roster) .league-list .player-row[aria-expanded="false"] .t-team small,
:is(.players-page, .team-roster) .league-list .player-row[aria-expanded="false"] .league-edge { position: relative; left: 12px; }

/* Face-first ranking experiment: portrait and rating lead, context sits between. */
:is(.players-page, .team-roster) .league-list .player-row[aria-expanded="false"] { grid-template-columns: 104px minmax(0, 1fr) 124px 18px; grid-template-rows: auto; min-height: 104px; gap: 16px; padding: 4px 8px 4px 10px; }
:is(.players-page, .team-roster) .player-row[aria-expanded="false"] .ranking-identity { grid-row: 1; width: 104px; min-height: 96px; }
:is(.players-page, .team-roster) .player-row[aria-expanded="false"] .ranking-identity .player-portrait { width: 96px; transform: translateX(8px); background: radial-gradient(ellipse at bottom, color-mix(in srgb, var(--team-accent) 38%, #17212d), transparent 85%); }
:is(.players-page, .team-roster) .league-list .player-row[aria-expanded="false"] .t-team { display: block; grid-column: 2; grid-row: 1; min-width: 0; }
:is(.players-page, .team-roster) .league-list .player-row[aria-expanded="false"] .t-team strong { display: block; left: 0; color: #e0e5ec; font-size: 1.08rem; font-weight: 650; line-height: 1.25; }
:is(.players-page, .team-roster) .league-list .player-row[aria-expanded="false"] .t-team small { display: block; left: 0; margin-top: 7px; text-align: left; }
:is(.players-page, .team-roster) .league-list .player-row[aria-expanded="false"] .edge-inline { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 3px; white-space: normal; font-size: .65rem; }
:is(.players-page, .team-roster) .league-list .player-row[aria-expanded="false"] .edge-inline b { font-size: calc(.95rem + 2px); }
:is(.players-page, .team-roster) .league-list .player-row[aria-expanded="false"] .edge-unit { white-space: nowrap; }
:is(.players-page, .team-roster) .league-list .player-row[aria-expanded="false"] .league-metrics { display: contents; }
:is(.players-page, .team-roster) .league-list .player-row[aria-expanded="false"] .league-edge { display: none; }
:is(.players-page, .team-roster) .league-list .player-row[aria-expanded="false"] .t-rating { grid-column: 3; grid-row: 1; width: 124px; min-width: 0; height: 70px; }
:is(.players-page, .team-roster) .league-list .player-row[aria-expanded="false"] .t-rating::after { inset: 0; width: 100%; height: 100%; box-sizing: border-box; transform: none; padding: 0 8px; justify-content: center; font-size: 3.6rem; font-weight: 800; letter-spacing: -.015em; border: 1px solid rgb(180 197 217 / .14); border-radius: 8px; background-color: rgb(9 15 23 / .48); }
:is(.players-page, .team-roster) .league-list .player-row[aria-expanded="false"][data-tier] .t-rating::after { border-color: color-mix(in srgb, var(--tier-edge) 55%, transparent); background-position: 7px 8px; background-size: 13px 13px; }
:is(.players-page, .team-roster) .league-list .player-row[aria-expanded="false"] .row-arrow { grid-column: 4; grid-row: 1; color: #7d8999; }
:is(.players-page, .team-roster) .league-list .player-row .row-arrow { font-weight: 600; }
:is(.players-page, .team-roster) .league-list .player-row[aria-expanded="false"]:is(:hover, :focus-visible) .row-arrow,
:is(.players-page, .team-roster) .league-list .player-row[aria-expanded="true"] .row-arrow { color: #f1f7fc; }
@media (max-width: 700px) {
  :is(.players-page, .team-roster) .league-list .player-row[aria-expanded="false"] { grid-template-columns: 86px minmax(0, 1fr) 100px 16px; gap: 10px; padding: 4px 6px 4px 9px; }
  :is(.players-page, .team-roster) .player-row[aria-expanded="false"] .ranking-identity { width: 86px; }
  :is(.players-page, .team-roster) .player-row[aria-expanded="false"] .ranking-identity .player-portrait { width: 82px; transform: translateX(4px); }
  :is(.players-page, .team-roster) .league-list .player-row[aria-expanded="false"] .t-team strong { font-size: 1rem; }
  :is(.players-page, .team-roster) .league-list .player-row[aria-expanded="false"] .t-rating { width: 100px; height: 66px; }
  :is(.players-page, .team-roster) .league-list .player-row[aria-expanded="false"] .t-rating::after { font-size: 3.1rem; }
}
@media (max-width: 380px) {
  :is(.players-page, .team-roster) .league-list .player-row[aria-expanded="false"] { grid-template-columns: 76px minmax(0, 1fr) 88px 14px; gap: 8px; }
  :is(.players-page, .team-roster) .player-row[aria-expanded="false"] .ranking-identity { width: 76px; }
  :is(.players-page, .team-roster) .player-row[aria-expanded="false"] .ranking-identity .player-portrait { width: 74px; transform: translateX(2px); }
  :is(.players-page, .team-roster) .league-list .player-row[aria-expanded="false"] .t-rating { width: 88px; }
  :is(.players-page, .team-roster) .league-list .player-row[aria-expanded="false"] .t-rating::after { font-size: 2.8rem; }
}

/* Let the rating number and tier color carry the ranking plate. */
:is(.players-page, .team-roster) .league-list .player-row[aria-expanded="false"][data-tier] .t-rating::after { background-image: none; }

/* Team roster expansion study: a nameplate above a portrait/rating hero. */
.team-roster .league-list .player-row[aria-expanded="true"] { grid-template-columns: minmax(0, 1fr) max-content 22px; min-height: 84px; gap: 16px; padding: 14px 18px; background-image: linear-gradient(120deg, transparent 62%, color-mix(in srgb, var(--team-accent) 22%, transparent) 62% 78%, transparent 78%), linear-gradient(90deg, #17222a, #121921); }
.team-roster .league-list .player-row[aria-expanded="true"] > .player-portrait { display: none; }
.team-roster .league-list .player-row[aria-expanded="true"] .t-team { display: contents; }
.team-roster .league-list .player-row[aria-expanded="true"] .t-team strong { grid-column: 1; grid-row: 1; align-self: center; font-size: clamp(1.6rem, 3vw, 2rem); font-weight: 800; line-height: 1.1; letter-spacing: -.035em; }
.team-roster .league-list .player-row[aria-expanded="true"] .t-team small:has(.row-flag) { grid-column: 1; grid-row: 2; }
.team-roster .league-list .player-row[aria-expanded="true"] .t-rank { grid-column: 2; grid-row: 1 / 3; align-self: center; font: 800 2.65rem/1 var(--display); letter-spacing: -.02em; background: none; color: color-mix(in srgb, var(--tier-ink, #dce8f4) 65%, #52606d); -webkit-text-fill-color: currentColor; filter: none; }
.team-roster .league-list .player-row[aria-expanded="true"] .row-arrow { grid-column: 3; grid-row: 1 / 3; }
.team-roster .player-detail { padding: 12px 12px 18px; background: #0c1218; }
.team-roster .player-detail .player-summary { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: 156px auto; gap: 0; padding: 0; border-radius: 12px; background: linear-gradient(115deg, color-mix(in srgb, var(--player-primary) 26%, #14212b) 0% 42%, #19232e 42% 46%, #111923 46%); }
.team-roster .player-summary::before { animation: none; filter: blur(20px); opacity: .45; }
.team-roster .player-summary::after { inset: 0 0 auto; width: auto; height: 3px; background: linear-gradient(90deg, var(--player-primary) 0% 65%, var(--player-secondary) 65% 87%, var(--player-third) 87%); }
.team-roster .player-summary .player-portrait { grid-column: 1; grid-row: 1; justify-self: center; align-self: end; width: 156px; max-width: 100%; height: 148px; border: 0; border-radius: 0; background: none; box-shadow: none; }
.team-roster .player-summary .summary-rating { grid-column: 2; grid-row: 1; padding: 12px; border: 0; gap: 5px; }
.team-roster .player-summary .summary-rating::before { display: none; }
.team-roster .player-summary .summary-rating b { font: 800 4.5rem/1 var(--display); letter-spacing: 0; }
.team-roster .player-summary .summary-rating span { font-size: .62rem; letter-spacing: .15em; color: #aebdcd; }
.team-roster .player-summary .summary-lead,
.team-roster .player-summary .summary-edge { grid-row: 2; align-self: stretch; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 5px; min-height: 77px; padding: 12px 18px; border-top: 1px solid rgb(164 183 203 / .15); background: rgb(7 13 19 / .55); }
.team-roster .player-summary .summary-lead { grid-column: 1; }
.team-roster .player-summary .summary-edge { grid-column: 2; border-left: 1px solid rgb(164 183 203 / .12); }
.team-roster .player-summary .summary-lead b,
.team-roster .player-summary .summary-edge b { font: 800 1.9rem/1 var(--font); letter-spacing: -.03em; }
.team-roster .player-summary .summary-lead span { margin: 0; font-size: .58rem; letter-spacing: .08em; }
.team-roster .player-summary .summary-edge span { font-size: .65rem; }
.team-roster .player-summary .summary-note { grid-row: 3; margin: 0; padding: 10px 18px; }
@media (max-width: 380px) {
  .team-roster .league-list .player-row[aria-expanded="true"] { gap: 10px; padding: 12px; }
  .team-roster .league-list .player-row[aria-expanded="true"] .t-rank { font-size: 2.2rem; }
  .team-roster .player-summary .summary-rating b { font-size: 3.7rem; }
  .team-roster .player-summary .summary-lead,
  .team-roster .player-summary .summary-edge { padding-inline: 12px; }
}

.team-roster .league-list .player-row[aria-expanded="true"] .t-team:not(:has(.row-flag)) strong { grid-row: 1 / 3; }

/* Shared ranking identities collapse into the team-specific expanded nameplate. */
.team-roster .league-list .player-row.player-row[aria-expanded="true"] { grid-template-columns: minmax(0, 1fr) max-content 22px; gap: 16px; padding: 14px 18px; }
.team-roster .player-row[aria-expanded="true"] .ranking-identity { display: contents; }
.team-roster .player-row[aria-expanded="true"] .ranking-identity .player-portrait,
.team-roster .league-list .player-row[aria-expanded="true"] .ranking-identity .club-mark { display: none; }
.team-roster .league-list .player-row[aria-expanded="true"] .ranking-identity .t-rank { position: static; min-width: 0; padding: 0; border: 0; border-radius: 0; text-shadow: none; }
@media (max-width: 380px) {
  .team-roster .league-list .player-row.player-row[aria-expanded="true"] { gap: 10px; padding: 12px; }
}

/* Expanded player portraits span the paired possession statistics. */
.players-page .player-summary { grid-template-columns: 120px minmax(0, 1fr) 124px; grid-template-rows: 1fr 1fr; row-gap: 8px; }
.players-page .player-summary .player-portrait { grid-row: 1 / 3; width: 120px; height: 120px; }
.players-page .player-summary .summary-lead { align-self: end; }
.players-page .player-summary .summary-edge { grid-column: 2; grid-row: 2; align-self: start; flex-wrap: wrap; }
.players-page .player-summary .summary-note { grid-row: 3; }
@media (max-width: 700px) {
  .players-page .player-summary { grid-template-columns: 96px minmax(0, 1fr) 92px; }
  .players-page .player-summary .player-portrait { width: 96px; height: 112px; }
}
@media (max-width: 380px) {
  .players-page .player-summary { grid-template-columns: 80px minmax(0, 1fr) 76px; }
  .players-page .player-summary .player-portrait { width: 80px; height: 104px; }
}

/* Team rankings share the player lists' identity, spacing, and rating panels. */
.team-rankings-table .league-list .tier-row {
  grid-template-columns: 104px max-content minmax(0, 1fr) 124px 18px;
  grid-template-rows: 72px;
  min-height: 96px;
  gap: 6px 16px;
  padding: 12px 8px 12px 10px;
}
.team-rankings-table .league-list .tier-row .t-rank {
  position: absolute; top: 1px; left: 1px; z-index: 2;
  min-width: 26px; padding: 3px 5px; border-radius: 3px;
  background: linear-gradient(180deg, rgb(24 32 43 / .42), rgb(13 18 25 / .58));
  color: var(--tier-ink, #c4ceda); -webkit-text-fill-color: currentColor;
  filter: none; font: 700 .95rem/1 var(--display); letter-spacing: .04em;
  text-shadow: 0 1px 3px #080b10; text-align: center;
}
.team-rankings-table .league-list .club-mark {
  grid-column: 1; grid-row: 1; width: 72px; height: 72px;
  justify-self: center; align-self: center; font-size: 2.15rem;
  border-radius: 9px; box-shadow: 0 5px 15px rgb(0 0 0 / .25);
}
.team-rankings-table .league-list .club-mark::after { width: 43px; height: 42px; }
.team-rankings-table .league-list .league-edge {
  position: absolute; grid-area: auto; left: 50%; top: 50%;
  transform: translate(-50%, -50%); margin: 0;
  padding: 0; gap: 5px; border: 0; background: none;
}
.team-rankings-table .league-list .league-edge b { font-size: 1.8rem; }
.team-rankings-table .league-list .league-edge small { font-size: .75rem; color: #95a0b1; }
.team-rankings-table .league-list .team-record {
  grid-column: auto; grid-row: auto; justify-self: start; margin: 0; display: block;
  font-size: .95rem; color: #c5ced9;
}
.team-rankings-table .team-identity { grid-column: 2; grid-row: 1; min-width: 0; display: grid; gap: 5px; align-self: center; }
.team-rankings-table .team-identity strong { font: 800 1.3rem/1.05 var(--display); text-transform: uppercase; letter-spacing: .015em; color: #f4f7fb; transform: skewX(-6deg); transform-origin: left center; text-shadow: 0 1px 5px rgb(0 0 0 / .3); }
.team-rankings-table .league-list .tier-row[data-elite="1"] { border-top: 1px solid rgb(181 238 255 / .65); }
.team-rankings-table .league-list .tier-row .t-rating {
  grid-column: 4; grid-row: 1; width: 124px; min-width: 0; height: 70px;
}
.team-rankings-table .league-list .tier-row .t-rating::after {
  inset: 0; width: 100%; height: 100%; transform: none;
  box-sizing: border-box; padding: 0 8px; justify-content: center;
  font-size: 3.6rem; font-weight: 800; letter-spacing: -.015em;
  border: 1px solid rgb(180 197 217 / .14); border-radius: 8px;
  background: rgb(9 15 23 / .48);
}
.team-rankings-table .league-list .tier-row[data-tier] .t-rating::after {
  padding: 0 8px;
  border-color: color-mix(in srgb, var(--tier-edge) 55%, transparent);
  background-image: none;
}
.team-rankings-table .league-list .row-arrow { grid-column: 5; grid-row: 1; color: #7d8999; }
.team-rankings-table .team-rankings-head {
  grid-template-columns: 104px max-content minmax(0, 1fr) 124px 18px;
  gap: 16px; padding: 12px 8px 12px 10px;
}
.team-rankings-table .rankings-edge-label { position: absolute; grid-area: auto; left: 50%; top: 50%; transform: translate(-50%, -50%); white-space: nowrap; }
.team-rankings-table .rankings-team-label { grid-column: 1 / 3; justify-self: start; white-space: nowrap; }
.team-rankings-table .rankings-rating-label { grid-column: 4; }
@media (max-width: 700px) {
  .team-rankings-table .league-list .tier-row,
  .team-rankings-table .team-rankings-head { grid-template-columns: 76px minmax(0, 1fr) 90px 100px; column-gap: 10px; padding-inline: 9px 6px; }
  .team-rankings-table .league-list .club-mark { width: 66px; height: 66px; font-size: 1.95rem; }
  .team-rankings-table .team-identity { container-type: inline-size; }
  .team-rankings-table .team-identity strong { font-size: min(1.3rem, calc(94cqw / var(--team-name-width))); }
  .team-rankings-table .league-list .league-edge { position: static; grid-column: 3; grid-row: 1; transform: none; justify-self: center; flex-wrap: wrap; gap: 2px 4px; }
  .team-rankings-table .rankings-edge-label { position: static; grid-column: 3; grid-row: 1; transform: none; text-align: center; }
  .team-rankings-table .league-list .league-edge b { font-size: 1.3rem; }
  .team-rankings-table .league-list .tier-row .t-rating { width: 100px; height: 66px; }
  .team-rankings-table .league-list .tier-row .t-rating::after { font-size: 3.1rem; }
  .team-rankings-table .team-rankings-head { font-size: .68rem; }
}
@media (max-width: 420px) {
  .team-rankings-table .league-list .tier-row,
  .team-rankings-table .team-rankings-head { grid-template-columns: 64px minmax(0, 1fr) 66px 88px; column-gap: 8px; }
  .team-rankings-table .league-list .club-mark { width: 60px; height: 64px; font-size: 1.8rem; }
  .team-rankings-table .league-list .league-edge b { font-size: 1.3rem; }
  .team-rankings-table .league-list .league-edge small { font-size: .65rem; }
  .team-rankings-table .league-list .tier-row .t-rating { width: 88px; }
  .team-rankings-table .league-list .tier-row .t-rating::after { font-size: 2.8rem; }
}

@media (max-width: 700px) {
  .team-rankings-table .league-list .row-arrow { display: none; }
}

/* Jersey-style names make the surname the primary scanning cue. */
:is(.players-page, .team-roster) .league-list .player-row .t-team .player-name {
  display: block; min-width: 0; width: 100%; container-type: inline-size;
  white-space: normal; overflow: visible; text-overflow: clip;
}
.player-name .player-name-first {
  display: block; color: #aeb9c7; font: 500 .84rem/1.25 var(--font);
  letter-spacing: .015em; margin-bottom: 3px;
}
.player-name .player-name-last {
  display: block; color: #f4f7fb; font-family: var(--display); font-weight: 800;
  font-size: min(2.16rem, calc(90cqw / var(--surname-width))); line-height: 1.05;
  letter-spacing: .015em; text-transform: uppercase; overflow-wrap: anywhere;
  transform: skewX(-6deg); transform-origin: left center;
  text-shadow: 0 1px 5px rgb(0 0 0 / .3);
}
.player-name .player-name-suffix { font-size: .5em; letter-spacing: 0; white-space: nowrap; color: #c6d0dd; }
:is(.players-page, .team-roster) .league-list .player-row[aria-expanded="false"] .t-team small { margin-top: 8px; }
.player-row[aria-expanded="true"] .player-name .player-name-last { font-size: min(2.61rem, calc(90cqw / var(--surname-width))); }

/* Quiet sharing action beneath the expanded player's rating. */
.player-summary .summary-rating .player-share-action {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 58px; min-height: 36px; margin: 3px 0 0; padding: 0 6px;
  transform: translate(6px, 8px);
  border: 0; border-radius: 4px; background: transparent; box-shadow: none;
  color: #9aa8b9; font: 500 .72rem/1 var(--font); cursor: pointer;
}
.player-summary .summary-rating .player-share-action:hover { color: #fff; }
.player-share-action:focus-visible { outline: 2px solid #b2d5e7; outline-offset: 2px; }
.player-share-menu { position: fixed; z-index: 100; width: 186px; padding: 8px;
  color: #e7edf5; background: #171e28; border: 1px solid #394453; border-radius: 9px;
  box-shadow: 0 12px 36px rgb(0 0 0 / .4); font-family: var(--font); }
.player-share-menu[hidden] { display: none; }
.player-share-menu > b { display: block; padding: 5px 8px 9px; font-size: .75rem; }
.player-share-menu button { display: block; width: 100%; min-height: 40px; padding: 8px;
  border: 0; border-radius: 4px; background: transparent; color: #c7d2df;
  font: 500 .8rem/1.3 var(--font); text-align: left; cursor: pointer; }
.player-share-menu button:hover, .player-share-menu button:focus-visible { background: #263342; color: #fff; outline: none; }
.player-share-menu p { margin: 0; padding: 0 8px; font-size: .7rem; }
.player-share-menu p:empty { display: none; }
.player-share-menu input { width: 100%; box-sizing: border-box; margin-top: 8px; font-size: .75rem; }
.player-share-dialog h2 { margin: 0 0 12px; font: 700 1.1rem/1.3 var(--font); }
.player-share-dialog footer { display: flex; flex-wrap: wrap; justify-content: center; }
.player-share-dialog footer .btn { flex: 1 1 110px; }

.players-page #player-more[hidden] { display: none; }
@media (max-width: 450px) {
  .players-page .player-detail .player-summary { padding-inline: 12px; column-gap: 8px; }
  .players-page .player-summary .summary-edge { gap: 4px; }
  .players-page .player-summary .summary-edge b { font-size: 1rem; }
  .players-page .player-summary .summary-edge span { font-size: .64rem; }
}

/* Alternate the selected team's palette through its roster banners. */
.team-roster .league-list > li > .player-row {
  --roster-main: var(--roster-primary); --roster-alt: var(--roster-secondary);
  --roster-tint: 24%;
  background-color: #10171f;
  background-image:
    linear-gradient(108deg, transparent 0 51%, color-mix(in srgb, var(--roster-main) 24%, transparent) 53% 59%, transparent 61% 63%, color-mix(in srgb, var(--roster-alt) 18%, transparent) 65% 71%, transparent 73%),
    linear-gradient(90deg, color-mix(in srgb, var(--roster-main) var(--roster-tint), #151c25), color-mix(in srgb, var(--roster-main) 10%, #111821) 60%, #10151d 90%);
}
.team-roster .league-list > li:nth-child(even) > .player-row {
  --roster-main: var(--roster-secondary); --roster-alt: var(--roster-primary);
}
.team-roster .league-list > li > .player-row:hover,
.team-roster .league-list > li > .player-row:focus-visible { --roster-tint: 30%; }

/* Team roster identity and qualification controls. */
.team-roster .roster-head { grid-template-columns: minmax(0, 1fr) 22px; gap: 14px 12px; }
.team-roster .roster-head h2 { margin: 0 0 5px; font: 800 1.45rem/1.15 var(--display); text-transform: uppercase; letter-spacing: .025em; }
.team-roster .roster-head p { font-size: .7rem; color: #aab6c4; }
.team-roster .roster-head .players-help-open { grid-column: 2; grid-row: 1; }
.team-roster .roster-minutes { grid-column: 1 / -1; grid-row: 2; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 12px; }
.team-roster .roster-minutes-label { font: 600 .6rem/1.3 var(--font); letter-spacing: .06em; text-transform: uppercase; color: #aab6c4; }
.team-roster .roster-minutes-selected { font: 700 .75rem/1 var(--mono); color: #e2eaf2; }
.team-roster .roster-minutes-selected b { font-size: 1rem; }
.team-roster .roster-minutes input { grid-column: 1 / -1; width: 100%; min-width: 0; }
.team-roster .league-list .player-row[aria-expanded="false"] .ranking-identity .t-rank { font-size: 1.05rem; color: #edf2f7; }
.team-roster .league-list .player-row[aria-expanded="false"][data-rank-band="muted"] .t-rank { color: #9ba7b6; }
.team-roster .league-list .player-row[aria-expanded="false"][data-rank-band="elite"] .t-rank { padding: 4px 6px; font-size: 1.18rem; color: var(--tier-ink); border-color: color-mix(in srgb, var(--tier-ink) 40%, transparent); background: linear-gradient(145deg, color-mix(in srgb, var(--tier-ink) 13%, #101721), #101721); }
.team-roster .league-list .player-row[data-rank-band="elite"] { border-left-color: var(--tier-ink); }
.team-roster .league-list .player-row .row-arrow { position: relative; min-height: 36px; align-self: center; font-size: 1.5rem; }
.team-roster .league-list .player-row[aria-expanded="false"] .row-arrow { color: #b2bfce; }
.team-roster .league-list .player-row[aria-expanded="true"] .row-arrow { transform: none; color: color-mix(in srgb, var(--team-accent) 45%, #fff); }

.players-page .players-controls { border-bottom: 0; margin-bottom: 0; }
.player-rankings-head {
  position: sticky; top: var(--site-header-height, 100px); z-index: 9;
  display: grid; grid-template-columns: 104px minmax(0, 1fr) 124px 18px;
  gap: 16px; align-items: center; padding: 12px 8px 12px 10px;
  color: #fff; background: rgb(16 20 25 / .78);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid rgb(164 173 183 / .18);
  font: 600 .8rem/1.4 var(--font);
}
.player-rankings-head span:last-child { text-align: center; white-space: nowrap; }
.players-page .player-row { scroll-margin-top: calc(var(--site-header-height, 100px) + 50px); }
@media (max-width: 700px) {
  .player-rankings-head { grid-template-columns: 86px minmax(0, 1fr) 100px 16px; gap: 10px; padding-inline: 9px 6px; font-size: .68rem; }
}
@media (max-width: 380px) {
  .player-rankings-head { grid-template-columns: 76px minmax(0, 1fr) 88px 14px; gap: 8px; }
}

/* Latest and simulated next results share a broadcast scoreboard and supporting tiles. */
.latest-wrap .tg-result-summary.tg-latest-card:not(.tg-dual-result) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 20px; row-gap: 16px; background: linear-gradient(145deg, #1b242e, #11171f 60%); border-color: #343f4c; border-radius: 6px; }
.latest-wrap .tg-result-summary.tg-latest-card:not(.tg-dual-result) .tg-scoreboard { grid-row: 2; align-self: center; border: 0; padding: 0; }
.latest-wrap .tg-result-summary .tg-score-line { justify-content: flex-start; }
.latest-wrap .tg-result-summary.tg-latest-card:not(.tg-dual-result) .tg-score { font: 800 clamp(1.9rem, 3.45vw, 2.53rem)/1 var(--display); gap: 6px; }
.latest-wrap .tg-result-summary.tg-latest-card:not(.tg-dual-result) .tg-score-team small { font: 600 .6rem/1.3 var(--font); letter-spacing: .1em; }
.latest-wrap .tg-result-summary.tg-latest-card:not(.tg-dual-result) .tg-game-metrics .tg-game-edge { grid-row: 3; align-self: start; gap: 5px; }
.latest-wrap .tg-result-summary.tg-latest-card:not(.tg-dual-result) .tg-game-edge b { font: 800 2.15rem/1 var(--mono); letter-spacing: -.05em; }
.latest-wrap .tg-result-summary.tg-latest-card:not(.tg-dual-result) .tg-game-edge small { font: 650 .75rem/1.35 var(--font); color: #d4dee9; text-transform: uppercase; text-align: left; }
.latest-wrap .tg-result-summary.tg-latest-card:not(.tg-dual-result) .tg-game-metrics .tg-rating {
  position: relative; isolation: isolate; min-height: 184px; padding: 16px 8px; gap: 10px;
  border: 1px solid #34414e; border-right-color: #53616c; border-bottom-color: #53616c; border-radius: 4px;
  background: linear-gradient(160deg, rgb(175 205 230 / .04), transparent 45%), radial-gradient(ellipse at 60% 70%, color-mix(in srgb, var(--game-rating-ink, #b6c5d5) 16%, transparent), transparent 78%), #0d131b;
  box-shadow: inset 1px 2px 0 rgb(0 0 0 / .5), inset -1px -1px 0 rgb(180 205 225 / .18), inset -2px -3px 0 rgb(180 205 225 / .07), inset 3px 4px 6px rgb(0 0 0 / .6);
}
.latest-wrap .tg-result-summary.tg-latest-card:not(.tg-dual-result) .tg-game-metrics .tg-rating::after { content: none; }
.tg-result-summary .tg-rating[data-tier="diamond"] { --game-rating-ink: #67d9f5; }
.tg-result-summary .tg-rating[data-tier="gold"] { --game-rating-ink: #e8c77a; }
.tg-result-summary .tg-rating[data-tier="silver"] { --game-rating-ink: #bcc9da; }
.latest-wrap .tg-result-summary.tg-latest-card:not(.tg-dual-result) .tg-game-metrics .tg-rating b { font: 800 clamp(4.7rem, 8vw, 6rem)/1 var(--display); color: var(--game-rating-ink, #edf2f7); -webkit-text-stroke: 0; text-shadow: 0 0 10px color-mix(in srgb, var(--game-rating-ink, #edf2f7) 30%, transparent); }
.latest-wrap .tg-result-summary.tg-latest-card:not(.tg-dual-result) .tg-rating > small { order: 1; max-width: 160px; font-size: .7rem; line-height: 1.45; letter-spacing: .1em; color: #c9d5e2; }
.latest-wrap .tg-result-summary.tg-latest-card:not(.tg-dual-result) .tg-rating > .tg-simulation-tag { order: 2; font-size: .6rem; color: #efc57e; }
.latest-wrap .tg-completed .tg-recap-header { grid-column: 1 / -1; grid-row: 1; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 10px; border-bottom: 1px solid rgb(164 173 183 / .15); }
.latest-wrap .tg-completed .tg-recap-header h3 { margin: 0; font: 800 1.1rem/1.2 var(--display); text-transform: uppercase; transform: skewX(-6deg); transform-origin: left center; letter-spacing: .02em; }
.latest-wrap .tg-completed .tg-recap-header > span { font: 600 .65rem/1.4 var(--font); text-transform: uppercase; letter-spacing: .06em; color: #aab6c6; white-space: nowrap; }
.latest-wrap .tg-result-summary.tg-completed.tg-latest-card:not(.tg-dual-result) .tg-game-metrics .tg-rating { grid-row: 2 / 4; }
.latest-wrap .next-game-card:not(.has-result) { background: linear-gradient(145deg, #1b242e, #11171f 60%); border-color: #343f4c; border-radius: 6px; }
.next-game-card.has-result .next-game-prediction { border-top: 0; overflow: visible; }
.next-game-card.has-result .tg-result-summary { min-height: 0; }
.latest-wrap .tg-result-summary .tg-tagline { font: 700 1.65rem/1.2 var(--display); letter-spacing: .02em; padding-top: 15px; text-transform: uppercase; }
.latest-wrap .tg-result-summary > .tg-edges { gap: 10px; padding-top: 14px; border-top: 1px solid rgb(164 173 183 / .15); }
.tg-result-summary .tg-stat-group { grid-column: 1 / -1; color: #97a7ba; font: 600 .59rem/1.3 var(--font); letter-spacing: .13em; text-transform: uppercase; padding: 4px 0 0; }
.tg-result-summary .tg-stat-group:not(:first-child) { padding-top: 12px; border-top: 1px solid rgb(164 173 183 / .13); margin-top: 4px; }
.latest-wrap .tg-result-summary .tg-stat { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: 1fr auto; gap: 12px; min-height: 112px; padding: 12px; border: 1px solid rgb(164 173 183 / .1); border-radius: 4px; }
.latest-wrap .tg-result-summary .tg-stat-name { grid-column: 1; grid-row: 1; }
.latest-wrap .tg-result-summary .tg-stat-name strong { font: 800 1.18rem/1.1 var(--display); text-transform: uppercase; transform: skewX(-6deg); transform-origin: left center; letter-spacing: .015em; }
.latest-wrap .tg-result-summary .tg-stat-name small { font-size: .62rem; line-height: 1.35; color: #aab7c6; }
.latest-wrap .tg-result-summary .tg-stat .tg-stat-margin { grid-column: 1; grid-row: 2; display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 8px; margin: 0; max-width: none; text-align: left; }
.latest-wrap .tg-result-summary .tg-stat .tg-stat-margin > b { font: 800 1.85rem/1 var(--display); }
.latest-wrap .tg-result-summary .tg-stat-core .tg-stat-margin > b { font-size: 2.15rem; }
.latest-wrap .tg-result-summary .tg-stat .tg-stat-margin.tied > b { font-size: 1.55rem; font-weight: 600; color: #8d9baa; }
.latest-wrap .tg-result-summary .tg-stat-core { background: linear-gradient(110deg, color-mix(in srgb, var(--stat-team-color, #8792a0) 9%, #141c25), color-mix(in srgb, var(--stat-team-color, #8792a0) 23%, #141c25)); }
.latest-wrap .tg-result-summary .tg-stat-context { background: linear-gradient(110deg, #141b24, color-mix(in srgb, var(--stat-team-color, #8792a0) 8%, #141b24)); }
.latest-wrap .tg-result-summary .tg-stat.tg-stat-context .team-badge { opacity: .08; }
.latest-wrap .tg-result-summary .tg-stat-context .tg-stat-name strong { color: #cbd5df; font-size: 1.08rem; }
.latest-wrap .tg-result-summary :is([id$="-stat-fta"], [id$="-stat-oppTpPct"]) .tg-stat-name strong { font-size: 1rem; font-weight: 700; line-height: 1.2; }
.latest-wrap .tg-result-summary .tg-stat-beneficiary .team-badge { opacity: .13; right: -20px; }
.latest-wrap .tg-result-summary .tg-stat-margin .tg-stat-beneficiary:has(.team-badge) { position: static; display: inline; }
.tg-result-summary .tg-beneficiary-label { position: relative; z-index: 1; display: inline-block; padding: 3px 5px; border: 1px solid color-mix(in srgb, var(--stat-team-color) 55%, #8391a1); border-radius: 3px; background: color-mix(in srgb, var(--stat-team-color) 24%, #101720); font: 800 .68rem/1.15 var(--font); color: color-mix(in srgb, var(--stat-team-color) 30%, #fff); letter-spacing: .04em; white-space: nowrap; }
.latest-wrap .tg-result-summary .tg-stat-highlight-gain { border-top: 2px solid #8ac69b; }
.latest-wrap .tg-result-summary .tg-stat-highlight-loss { border-top: 2px solid #c68c80; }
.latest-wrap .tg-result-summary .tg-stat .tg-stat-name .tg-stat-callout.gain { color: #a1d6af; }
.latest-wrap .tg-result-summary .tg-stat .tg-stat-name .tg-stat-callout.loss { color: #d8a296; }
.game-carousel-nav { display: grid; grid-template-columns: 44px minmax(0, 140px) auto 44px; justify-content: space-between; gap: 6px; max-width: 400px; margin: 14px auto 0; }
.game-carousel-nav > button { grid-row: 1; height: 44px; min-height: 44px; min-width: 0; box-sizing: border-box; border-radius: 4px; }
.game-carousel-nav .game-carousel-arrow { display: grid; place-items: center; position: static; transform: none; width: 44px; padding: 0; border: 1px solid #333d49; background: #171d25; color: #bbc7d4; }
.game-carousel-nav [data-game-slide="0"] { grid-column: 1; }
.game-carousel-nav .game-carousel-swipe { grid-column: 4; }
.game-carousel-nav .game-carousel-arrow svg { width: 18px; height: 18px; }
.game-carousel-nav .game-carousel-arrow:is(:hover, [aria-pressed="true"]) { background: #252e39; color: #f2f6fa; border-color: #596575; }
.game-carousel-nav button.game-carousel-cta,
.game-carousel-nav #next-game-run { grid-column: 2; margin: 0; padding: 0 8px; border: 1px solid #776446; background: #1b1e22; color: #d5b77f; box-shadow: none; font-size: 12px; font-weight: 700; white-space: nowrap; animation: none; }
.game-carousel-nav button.game-carousel-cta:hover,
.game-carousel-nav #next-game-run:hover { background: #25282b; border-color: #aa8d5c; color: #e8ca92; }
.game-carousel-nav #next-game-run::after { display: none; }
.game-carousel-nav .game-carousel-share { grid-column: 3; justify-content: center; padding: 0 12px; border-color: transparent; background: #121922; }
.game-carousel-nav .game-carousel-share svg { width: 18px; height: 18px; flex-basis: 18px; }
.game-carousel-nav button:disabled { cursor: wait; opacity: .65; }
@media (max-width: 700px) {
  .game-carousel-nav { grid-template-columns: 44px minmax(0, 140px) 44px 44px; max-width: 310px; }
  .game-carousel-nav .game-carousel-share { width: 44px; padding: 0; }
  .game-carousel-nav .game-carousel-share > span { display: none; }
}
@media (max-width: 450px) {
  .latest-wrap .tg-result-summary.tg-latest-card:not(.tg-dual-result) { column-gap: 12px; row-gap: 13px; }
  .latest-wrap .tg-result-summary.tg-latest-card:not(.tg-dual-result) .tg-game-metrics .tg-rating { min-height: 174px; }
  .latest-wrap .tg-result-summary.tg-latest-card:not(.tg-dual-result) .tg-game-metrics .tg-rating b { font-size: clamp(4rem, 18vw, 4.8rem); }
  .latest-wrap .tg-result-summary.tg-latest-card:not(.tg-dual-result) .tg-game-edge b { font-size: 1.9rem; }
  .latest-wrap .tg-result-summary .tg-stat { padding: 10px; }
}

/* Recessed rating instruments with softly beveled, internally lit housings. */
:is(.players-page, .team-roster, .team-rankings-table) .league-list .tier-row.tier-row .t-rating[data-rating] {
  isolation: isolate; background: none; box-shadow: none; border-radius: 4px;
  /* Scale the number, bevels, and lighting together within the existing column. */
  transform: scale(.85); transform-origin: center;
}
:is(.players-page, .team-roster, .team-rankings-table) .league-list .tier-row.tier-row .t-rating[data-rating]::before {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  border-radius: 4px;
  background: linear-gradient(145deg, #242c35 0%, #29333d 48%, #53616c 100%);
}
:is(.players-page, .team-roster, .team-rankings-table) .league-list .tier-row.tier-row .t-rating[data-rating]::after {
  inset: 1px; width: calc(100% - 2px); height: calc(100% - 2px);
  padding-inline: 6px; border: 0; border-radius: 3px;
  background: linear-gradient(165deg, rgb(185 213 235 / .045), transparent 45%),
    radial-gradient(ellipse at 60% 70%, color-mix(in srgb, var(--tier-ink, #b6c5d5) 13%, transparent), transparent 78%), #0d131b;
  box-shadow:
    inset 1px 2px 0 rgb(0 0 0 / .5),
    inset -1px -1px 0 color-mix(in srgb, var(--tier-ink, #b6c5d5) 27%, transparent),
    inset -2px -3px 0 rgb(180 205 225 / .07),
    inset 3px 4px 6px rgb(0 0 0 / .6),
    inset -3px -4px 7px color-mix(in srgb, var(--tier-ink, #b6c5d5) 7%, transparent);
  text-shadow: 0 0 7px color-mix(in srgb, var(--tier-ink, #b6c5d5) 30%, transparent);
}
