/* Player identity and stat modules; shared topic controls live in team.css. */
.player-page .pp-banner-image {width:100%;height:100%;object-fit:cover!important;display:block}
.player-page .pp-identity {position:relative;padding:0 0 10px}
.player-page .pp-photo {position:relative;display:grid;place-items:center;width:100px;height:100px;border-radius:50%;overflow:hidden;border:4px solid var(--team-bg);margin:-42px 0 12px;background:#176da1;color:white;font-size:36px;font-weight:850}
.player-page .pp-photo img {width:100%;height:100%;object-fit:cover}
.player-page .pp-identity h1 {font-size:32px;font-weight:900;letter-spacing:-.7px;line-height:1.2;margin-bottom:8px}
.player-page .pp-meta {display:flex;gap:8px;align-items:center;font-size:14px;color:rgba(var(--team-rgb),.6);font-weight:750;flex-wrap:wrap}
.player-page .pp-meta .team-crest {width:21px;height:21px}
.player-page .pp-facts {display:flex;gap:20px;overflow-x:auto;padding:5px 0 22px;border-bottom:1px solid rgba(var(--team-rgb),.15)}
.player-page .pp-fact {flex:none;padding-right:20px;border-right:1px solid rgba(var(--team-rgb),.15)}
.player-page .pp-fact:last-child {border:0;padding:0}
.player-page .pp-fact small {display:block;font-size:10px;font-weight:850;letter-spacing:.8px;color:rgba(var(--team-rgb),.48);margin-bottom:7px}
.player-page .pp-fact b,.player-page .pp-fact a {display:flex;align-items:center;gap:7px;font-size:15px;font-weight:850;white-space:nowrap}
.player-page .pp-fact .team-crest {height:19px;width:19px}
.player-page .pp-hooks {padding:24px 0;border-bottom:1px solid rgba(var(--team-rgb),.15);touch-action:pan-y}
.player-page .pp-hooks p {font-size:19px;line-height:1.65;margin:9px 0}
.player-page .pp-last-game {max-width:850px;margin-top:22px}
.player-page .pp-last-stats {width:100%;display:flex;align-items:center;justify-content:flex-start;text-align:left;gap:12px;padding:13px 0;line-height:1.6}
.player-page .pp-last-stats strong {font-size:11px;letter-spacing:.5px;white-space:nowrap}
.player-page .pp-last-stats span {font-size:14px;color:rgba(var(--team-rgb),.6);font-weight:750}
.player-page .pp-last-stats .team-row-arrow {margin-left:auto}
.player-page .pp-stat-row {display:flex;justify-content:space-between;gap:20px;padding:13px 7px;border-bottom:1px solid rgba(var(--team-rgb),.1);font-size:16px;transition:background .18s ease}
.player-page .pp-stat-row span {color:rgba(var(--team-rgb),.7)}
.player-page .pp-stat-row b {font-size:17px;font-weight:850;white-space:nowrap}
.player-page .pp-stat-row:hover {background:rgba(var(--team-rgb),.045)}
.player-page .pp-game-log {margin-top:32px}
.player-page .pp-log-row {display:flex;align-items:center;gap:15px;min-height:76px;padding:15px 8px;border-bottom:1px solid rgba(var(--team-rgb),.1);transition:background .18s ease}
.player-page a.pp-log-row:hover {background:rgba(var(--team-rgb),.045)}
.player-page .pp-log-copy {flex:1;min-width:0}
.player-page .pp-log-title {display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;font-size:16px;font-weight:800}
.player-page .pp-log-copy p {font-size:13px;font-weight:700;line-height:1.65;color:rgba(var(--team-rgb),.5);margin-top:5px}
.player-page .pp-log-row time {font-size:12px;font-weight:750;color:rgba(var(--team-rgb),.5);white-space:nowrap}
.player-page .pp-result-win {color:#15803d}.player-page .pp-result-loss {color:#dc2626}
.player-page .pp-paywall {display:flex;flex-direction:column;align-items:center;gap:15px;padding:70px 20px;text-align:center}
.player-page .pp-paywall svg {height:24px;width:24px;fill:none;stroke:rgba(var(--team-rgb),.45);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.player-page .pp-paywall button {font-size:17px;font-weight:850;line-height:1.6;color:rgba(var(--team-rgb),.75)}
.player-page .pp-paywall u {color:var(--team-ink);text-underline-offset:3px}
.player-page .pp-no-stats {grid-column:1/-1;text-align:center;padding:70px 0}
@media(max-width:600px){.player-page .pp-photo{width:82px;height:82px;margin-top:-32px}.player-page .pp-identity h1{font-size:27px}.player-page .pp-meta{font-size:12px}.player-page .pp-last-stats{flex-wrap:wrap;gap:5px 8px}.player-page .pp-last-stats span{font-size:12px}.player-page .pp-log-row{gap:10px}.player-page .pp-log-title{font-size:14px}.player-page .pp-log-copy p{font-size:12px}.player-page .pp-facts{gap:16px}.player-page .pp-fact{padding-right:16px}}
.player-page .pp-paywall button {display:block}
.player-page .pp-banner {z-index:0}
.player-page .pp-identity {z-index:1}
.player-page .pp-photo img {opacity:1!important}

/* Identity sits inside the integrated banner, using the team masthead. */
#playerPage .pp-identity {position:absolute;left:max(32px,calc((100% - 1396px)/2));right:max(32px,calc((100% - 1396px)/2));bottom:26px;padding:0;display:flex;gap:18px;align-items:center;color:white}
#playerPage .pp-photo {width:82px;height:82px;flex:none;margin:0;border:0;border-radius:16px;background:var(--team-bg);color:var(--team-ink)}
#playerPage .pp-photo img,#playerPage .pp-banner-image {display:block;width:100%;height:100%;max-width:none;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;background:transparent;object-fit:cover!important}
#playerPage .pp-who {min-width:0}
#playerPage .pp-identity h1 {margin:0;color:white;font-size:36px;line-height:1.15;font-weight:var(--si-type-display,800);letter-spacing:-1px;overflow-wrap:anywhere}
#playerPage .pp-meta {color:rgba(255,255,255,.9);margin:0 0 7px}
#playerPage .pp-meta img {padding:0;border:0;background:transparent}
@media(max-width:800px){#playerPage .pp-identity{left:20px;right:20px;bottom:22px}#playerPage .pp-photo{width:68px;height:68px}#playerPage .pp-identity h1{font-size:30px}}
@media(max-width:520px){#playerPage .pp-identity{left:14px;right:14px;gap:12px}#playerPage .pp-identity h1{font-size:28px}#playerPage .pp-meta{font-size:11px}}

/* Home = team-page shape: two mastheads up top (Latest | Rankings), Content below. */
.player-page .pp-home-top {margin-top:26px}
.player-page .pp-home-top .pp-hooks {padding:0 0 20px;border-bottom:1px solid rgba(var(--team-rgb),.15)}
.player-page .pp-home-top .pp-last-game {max-width:none;margin-top:18px}
.player-page .pp-home-top .pp-hooks[hidden]+.pp-last-game {margin-top:0}
.player-page .pp-home-top .pp-last-stats {padding-top:0}
.player-page .pp-rank {display:flex;flex-direction:column;min-width:0}
.team-home-top:has(#playerRank[data-expanded="true"]) {align-items:start}
.player-page .pp-rank-summary {font-size:14px;line-height:1.6;color:rgba(var(--team-rgb),.62);margin:-6px 0 14px}
.player-page .pp-rank-summary b {color:var(--team-ink);font-weight:850}
.player-page .pp-rank-head {grid-template-columns:1fr 34px 56px}
.player-page .pp-rank-row {grid-template-columns:26px 30px minmax(0,1fr) 34px 56px;gap:9px;min-height:58px}
.player-page .pp-rank-row .team-rank {font-size:12px}
.player-page .pp-rank-row b {min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3}
.player-page .pp-rank-row b small {display:block;font-size:11px;font-weight:700;color:rgba(var(--team-rgb),.52);margin-top:2px;overflow:hidden;text-overflow:ellipsis}
.player-page .pp-rank-row .pp-rank-photo {width:30px;height:30px;border-radius:50%;object-fit:cover!important;background:rgba(var(--team-rgb),.06);font-size:11px;font-weight:800}
.player-page .pp-rank-row .pp-rank-team {width:22px;height:22px;margin-left:auto}
.player-page .pp-rank-row>span:nth-child(4) {display:flex;justify-content:flex-end;font-size:11px;color:rgba(var(--team-rgb),.55)}
.player-page .pp-rank-row>span:last-child {font-size:15px;font-weight:850;text-align:right;white-space:nowrap}
.player-page .pp-rank-gap {text-align:center;font-size:12px;letter-spacing:2px;line-height:1;padding:6px 0 4px;color:rgba(var(--team-rgb),.35)}
.player-page .pp-rank .team-standings-toggle {height:26px;min-height:26px;padding:0;margin-top:14px;flex:none}
.player-page .team-content-section .pp-paywall {padding:52px 20px}
@media(max-width:800px){.player-page .pp-home-top{margin-top:22px}.player-page .pp-rank-row{flex:none}.player-page .pp-rank-row b{white-space:normal}}
