.pbl-shell {
  width: min(100% - 44px, 1280px);
  margin: 0 auto;
  padding: 34px 0 76px;
  color: #eaf1fb;
}
.pbl-shell h1,
.pbl-shell h2,
.pbl-shell h3 { color: #f7faff; }
.pbl-crumb {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 25px;
  color: #849ab2;
  font-size: .75rem;
}
.pbl-crumb a { color: #9fb5ce; text-decoration: none; }
.pbl-crumb a:hover { color: #58baff; }
.pbl-page-heading { margin: 0 0 28px; }
.pbl-kicker {
  margin: 0 0 9px;
  color: #67b7ff;
  font-size: .65rem;
  font-weight: 900;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.pbl-page-heading h1 {
  margin: 0;
  font-size: clamp(2.2rem, 5vw, 3.6rem);
  font-weight: 950;
  letter-spacing: -.055em;
  line-height: .98;
}
.pbl-lede {
  max-width: 670px;
  margin: 12px 0 0;
  color: #a9bfd9;
  font-size: 1rem;
  line-height: 1.55;
}
.pbl-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin: 30px 0 0;
}
.pbl-card {
  display: flex;
  min-height: 216px;
  flex-direction: column;
  padding: 21px;
  border: 1px solid rgba(103, 183, 255, .2);
  border-radius: 14px;
  background: linear-gradient(155deg, rgba(12, 40, 72, .92), rgba(4, 16, 32, .97));
  box-shadow: 0 15px 38px rgba(0, 0, 0, .16);
  transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.pbl-card:hover,
.pbl-card:focus-within {
  transform: translateY(-2px);
  border-color: rgba(83, 183, 255, .55);
  box-shadow: 0 20px 45px rgba(0, 0, 0, .24);
}
.pbl-card-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.pbl-card .pbl-kicker { margin: 0; }
.pbl-status {
  display: inline-flex;
  min-height: 26px;
  align-items: center;
  padding: 4px 10px;
  border: 1px solid rgba(103, 183, 255, .27);
  border-radius: 999px;
  background: rgba(20, 119, 255, .1);
  color: #b9dcff;
  font-size: .66rem;
  font-weight: 800;
  line-height: 1;
  text-transform: uppercase;
}
.pbl-status-active { border-color: rgba(87, 220, 137, .32); background: rgba(87, 220, 137, .1); color: #8ce5ad; }
.pbl-status-upcoming { color: #b9dcff; }
.pbl-card h2 { margin: 20px 0 4px; font-size: 1.23rem; letter-spacing: -.025em; line-height: 1.2; }
.pbl-card h2 a { color: #f7faff; text-decoration: none; }
.pbl-card h2 a:hover { color: #7ccaff; }
.pbl-season-label { margin: 0; color: #92a9c3; font-size: .78rem; }
.pbl-start-date { margin: 17px 0 0; color: #8fa8c3; font-size: .76rem; }
.pbl-start-date strong { margin-left: 5px; color: #d9e8f8; font-variant-numeric: tabular-nums; font-weight: 700; }
.pbl-card-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: auto;
  padding-top: 22px;
  color: #8fa8c3;
  font-size: .72rem;
}
.pbl-card-action { color: #82caff; font-weight: 850; text-decoration: none; white-space: nowrap; }
.pbl-card-action:hover { color: #c2e6ff; }
.pbl-league-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 23px;
}
.pbl-season { display: inline-flex; align-items: center; gap: 10px; color: #9fb5ce; font-size: .76rem; font-weight: 800; }
.pbl-season select {
  min-height: 39px;
  padding: 7px 36px 7px 12px;
  border: 1px solid rgba(103, 183, 255, .26);
  border-radius: 7px;
  background: #071629;
  color: #eaf4ff;
  font: inherit;
}
.pbl-leaderboard {
  max-width: 930px;
  margin-top: 28px;
  padding: 22px;
  border: 1px solid rgba(103, 183, 255, .21);
  border-radius: 14px;
  background: linear-gradient(160deg, rgba(8, 25, 46, .95), rgba(4, 14, 28, .98));
  box-shadow: 0 18px 45px rgba(0, 0, 0, .18);
}
.pbl-leaderboard-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; margin-bottom: 14px; }
.pbl-leaderboard-heading .pbl-kicker { margin-bottom: 5px; }
.pbl-leaderboard-heading h2 { margin: 0; font-size: 1.45rem; letter-spacing: -.035em; }
.pbl-leaderboard-heading>span { color: #849ab2; font-size: .7rem; }
.pbl-player-list { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; counter-reset: pbl-rank; }
.pbl-player-row {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) minmax(105px, 145px) minmax(100px, 125px);
  align-items: center;
  gap: 13px;
  min-height: 72px;
  padding: 10px 14px;
  border: 1px solid rgba(135, 180, 220, .11);
  border-radius: 10px;
  background: rgba(10, 29, 51, .72);
}
.pbl-player-rank { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 9px; background: rgba(20, 119, 255, .14); color: #7fc8ff; font-size: .8rem; font-weight: 950; font-variant-numeric: tabular-nums; }
.pbl-player-name { min-width: 0; color: #f4f8fd; font-size: .94rem; font-weight: 850; }
.pbl-player-name a { color: inherit; text-decoration: none; }
.pbl-player-name a:hover { color: #78c6ff; }
.pbl-player-name small { display: block; margin-top: 3px; color: #7790aa; font-size: .62rem; font-weight: 650; }
.pbl-player-model,.pbl-player-global { display: grid; gap: 3px; text-align: right; }
.pbl-player-model span,.pbl-player-global span { color: #7f96af; font-size: .59rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.pbl-player-model strong { color: #6bc5ff; font-size: 1.02rem; font-variant-numeric: tabular-nums; }
.pbl-player-global strong { color: #e1edf9; font-size: .82rem; font-variant-numeric: tabular-nums; }
.pbl-empty-state {
  margin-top: 28px;
  padding: 25px;
  border: 1px solid rgba(103, 183, 255, .18);
  border-radius: 12px;
  background: rgba(8, 25, 46, .78);
}
.pbl-empty-state h2,.pbl-empty-state h3 { margin: 0 0 6px; font-size: 1.05rem; }
.pbl-empty-state p { margin: 0; color: #92a9c3; font-size: .84rem; line-height: 1.5; }
.pbl-profile-development { margin: 18px 0; padding: 18px; border: 1px solid rgba(103, 183, 255, .2); border-radius: 12px; background: #0b1b30; color: #eaf1fb; }
.pbl-profile-development h2 { margin: 0; color: #f7faff; }
.pbl-profile-development>p { color: #92a9c3; font-size: .82rem; }
.pbl-profile-development article { padding: 12px 0; border-top: 1px solid rgba(147, 197, 253, .14); }
.pbl-profile-development h3 { margin: 0; color: #85ceff; font-size: .92rem; }
.pbl-profile-development article p { margin: 5px 0; color: #c2d1e2; font-size: .8rem; }
.pbl-profile-development a { color: #80caff; }
@media (max-width: 900px) {
  .pbl-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .pbl-shell { width: min(100% - 28px, 1280px); padding: 24px 0 54px; }
  .pbl-grid { grid-template-columns: 1fr; gap: 11px; margin-top: 22px; }
  .pbl-card { min-height: 190px; padding: 18px; }
  .pbl-league-heading { align-items: flex-start; flex-direction: column; gap: 14px; }
  .pbl-leaderboard { margin-top: 20px; padding: 13px; }
  .pbl-player-row { grid-template-columns: 36px minmax(0, 1fr) 78px; gap: 9px; min-height: 66px; padding: 9px; }
  .pbl-player-rank { width: 30px; height: 30px; }
  .pbl-player-name { font-size: .83rem; }
  .pbl-player-model strong { font-size: .94rem; }
  .pbl-player-model span,.pbl-player-global span { font-size: .53rem; }
  .pbl-player-global { grid-column: 2 / -1; display: flex; justify-content: space-between; text-align: left; }
  .pbl-player-global strong { font-size: .72rem; }
}

/* 1.2.0 — status/date header, overview-card leaders, and full league ranks. */
.pbl-card-top { align-items: flex-start; }
.pbl-card-meta { display: inline-flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 7px; }
.pbl-card-date { color: #c5d8eb; font-size: .65rem; font-weight: 850; letter-spacing: .025em; white-space: nowrap; }
.pbl-card-players { display: grid; gap: 2px; margin: 14px 0 0; padding: 0; list-style: none; }
.pbl-card-players li { display: grid; grid-template-columns: 25px minmax(0,1fr) 48px; align-items: center; gap: 8px; min-height: 28px; border-top: 1px solid rgba(147,197,253,.11); }
.pbl-card-player-rank { color: #77c9ff; font-size: .65rem; font-weight: 900; font-variant-numeric: tabular-nums; }
.pbl-card-player-name { overflow: hidden; color: #e8f1fb; font-size: .73rem; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.pbl-card-player-name a { color: inherit; text-decoration: none; }
.pbl-card-player-name a:hover { color: #83ceff; }
.pbl-card-player-score { display: flex; align-items: baseline; justify-content: flex-end; gap: 4px; font-variant-numeric: tabular-nums; }
.pbl-card-player-score small { color: #819ab5; font-size: .49rem; font-weight: 850; }
.pbl-card-player-score strong { color: #70c6ff; font-size: .72rem; }
.pbl-card .pbl-card-foot { padding-top: 14px; }
.pbl-leaderboard-heading>span { text-align: right; }
@media (max-width: 620px) {
  .pbl-card { min-height: 0; }
  .pbl-card-meta { gap: 5px; }
  .pbl-card-date { font-size: .59rem; }
  .pbl-card-players { margin-top: 12px; }
  .pbl-card-player-name { font-size: .78rem; }
}

/* 1.3.0 — league research hub, season context, and compact browsable player board. */
.pbl-explainer,.pbl-understanding { display:grid; gap:6px; margin:18px 0; padding:15px 18px; border:1px solid rgba(103,183,255,.2); border-radius:11px; background:rgba(8,25,46,.72); color:#adbed1; font-size:.82rem; line-height:1.55; }
.pbl-explainer strong { color:#f0f6fc; }
.pbl-location { margin:6px 0 0; color:#95bbd7; font-size:.72rem; font-weight:750; }
.pbl-card-description { margin:10px 0 12px; color:#b4c4d5; font-size:.8rem; line-height:1.5; }
.pbl-card-facts { display:grid; gap:5px; color:#91a8bf; font-size:.68rem; }
.pbl-card-foot { flex-wrap:wrap; }
.pbl-card-foot > span { font-size:.65rem; }
.pbl-season-meta { margin:13px 0 3px; color:#c6d8e9; font-size:.78rem; }
.pbl-h1-season { display:inline-block; color:#9bcff1; font-size:.52em; font-weight:720; letter-spacing:-.015em; vertical-align:.1em; white-space:nowrap; }
.pbl-updated { display:block; margin-top:8px; color:#91a8bf; font-size:.7rem; }
.pbl-facts { display:flex; flex-wrap:wrap; gap:10px; margin:18px 0 32px; }
.pbl-facts > div { display:grid; gap:3px; min-width:150px; padding:13px 16px; border:1px solid rgba(103,183,255,.2); border-radius:10px; background:rgba(8,25,46,.7); }
.pbl-facts strong { color:#eaf4ff; font-size:1.15rem; font-variant-numeric:tabular-nums; }
.pbl-facts span { color:#91a8bf; font-size:.68rem; }
.pbl-watch { margin:28px 0 38px; }
.pbl-section-heading { margin-bottom:15px; }
.pbl-section-heading .pbl-kicker { margin-bottom:5px; }
.pbl-section-heading h2 { margin:0; font-size:1.45rem; letter-spacing:-.03em; }
.pbl-section-heading > p:last-child { max-width:750px; margin:7px 0 0; color:#9eb2c7; font-size:.78rem; line-height:1.5; }
.pbl-team-directory ul { display:grid; gap:8px; margin:12px 0 0; padding:0; list-style:none; }
.pbl-team-directory li { display:grid; gap:4px; padding:11px 13px; border:1px solid rgba(103,183,255,.14); border-radius:8px; background:rgba(7,22,40,.58); }
.pbl-team-directory li strong { color:#eaf4ff; font-size:.8rem; }
.pbl-team-directory li span { color:#91a8bf; font-size:.68rem; line-height:1.45; }
.pbl-watch-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:11px; }
.pbl-watch-card { min-width:0; padding:16px; border:1px solid rgba(103,183,255,.19); border-radius:12px; background:linear-gradient(150deg,rgba(10,37,67,.9),rgba(5,18,33,.94)); }
.pbl-watch-rank { color:#75c4ff; font-size:.66rem; font-weight:800; }
.pbl-watch-card h3 { margin:9px 0 4px; overflow-wrap:anywhere; font-size:1rem; }
.pbl-watch-card p { margin:4px 0; color:#91a8bf; font-size:.7rem; line-height:1.45; }
.pbl-watch-scores { display:flex; flex-wrap:wrap; gap:12px; margin:12px 0!important; }
.pbl-watch-scores span { display:grid; gap:2px; color:#88a0b8; font-size:.58rem; }
.pbl-watch-scores strong { color:#d9ecfc; font-size:.91rem; font-variant-numeric:tabular-nums; }
.pbl-watch-card > a,.pbl-watch-card > span { display:inline-flex; min-height:36px; align-items:center; color:#83caff; font-size:.72rem; font-weight:800; text-decoration:none; }
.pbl-board { margin-top:35px; }
.pbl-filters { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); align-items:end; gap:9px; margin:16px 0; padding:14px; border:1px solid rgba(103,183,255,.17); border-radius:11px; background:rgba(7,22,40,.8); }
.pbl-filters label { display:grid; gap:5px; color:#9db2c8; font-size:.64rem; font-weight:800; }
.pbl-filters input,.pbl-filters select { box-sizing:border-box; width:100%; min-height:42px; padding:8px 10px; border:1px solid rgba(137,177,216,.28); border-radius:7px; background:#061629; color:#edf5fd; font:inherit; font-size:.75rem; }
.pbl-filters button,.pbl-more { min-height:42px; padding:8px 13px; border:1px solid rgba(103,183,255,.3); border-radius:7px; background:rgba(20,119,255,.13); color:#c5e5ff; font:inherit; font-size:.72rem; font-weight:800; cursor:pointer; }
.pbl-filters button:hover,.pbl-more:hover { background:rgba(20,119,255,.24); }
.pbl-player-list { display:grid; gap:7px; margin:0; padding:0; list-style:none; }
.pbl-player-row { grid-template-columns:minmax(145px,1.6fr) minmax(120px,1fr) minmax(90px,.65fr) minmax(100px,.72fr) minmax(100px,.7fr) minmax(78px,.55fr) auto; }
.pbl-participation { grid-column:1/-1; margin-bottom:-5px; color:#86d9ad; font-size:.57rem; font-weight:800; letter-spacing:.045em; text-transform:uppercase; }
.pbl-player-team,.pbl-player-rank,.pbl-player-baseline { display:grid; gap:3px; min-width:0; }
.pbl-player-team span,.pbl-player-rank span,.pbl-player-baseline span { color:#7f96af; font-size:.56rem; font-weight:850; letter-spacing:.05em; text-transform:uppercase; }
.pbl-player-team strong,.pbl-player-rank strong,.pbl-player-baseline strong { overflow-wrap:anywhere; color:#dce8f5; font-size:.72rem; font-weight:750; }
.pbl-player-rank strong,.pbl-player-association-rank strong { font-variant-numeric:tabular-nums; }
.pbl-player-association-rank { display:grid; gap:3px; min-width:0; }
.pbl-player-association-rank span { color:#7f96af; font-size:.56rem; font-weight:850; letter-spacing:.05em; text-transform:uppercase; }
.pbl-player-association-rank strong { overflow-wrap:anywhere; color:#dce8f5; font-size:.72rem; font-weight:750; }
.pbl-player-baseline strong { color:#c1d8ec; font-variant-numeric:tabular-nums; }
.pbl-profile-link,.pbl-unavailable { color:#83caff; font-size:.67rem; font-weight:800; text-decoration:none; }
.pbl-unavailable { color:#7f96af; }
.pbl-results-status { min-height:1.25em; margin:12px 2px; color:#91a8bf; font-size:.7rem; }
.pbl-more { display:block; margin:0 auto; min-width:190px; }
.pbl-filters :focus-visible,.pbl-more:focus-visible,.pbl-player-row a:focus-visible,.pbl-watch-card a:focus-visible { outline:2px solid #82caff; outline-offset:3px; }
@media (max-width:1050px) {
  .pbl-watch-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pbl-filters { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .pbl-player-row { grid-template-columns:minmax(145px,1.4fr) minmax(115px,1fr) repeat(3,minmax(78px,.65fr)); }
  .pbl-player-team,.pbl-player-rank,.pbl-player-association-rank,.pbl-player-model,.pbl-player-baseline { text-align:left; }
  .pbl-profile-link,.pbl-unavailable { grid-column:2/-1; }
}
@media (max-width:620px) {
  .pbl-watch-grid { grid-template-columns:1fr; }
  .pbl-watch-card { padding:14px; }
  .pbl-filters { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding:10px; }
  .pbl-filters label:first-child { grid-column:1/-1; }
  .pbl-filters button { grid-column:1/-1; }
  .pbl-player-row { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8px 12px; padding:12px; }
  .pbl-participation { grid-column:1/-1; }
  .pbl-player-name { grid-column:1/-1; font-size:.91rem; }
  .pbl-player-team { grid-column:1/-1; }
  .pbl-player-rank,.pbl-player-association-rank,.pbl-player-model,.pbl-player-baseline { text-align:left; }
  .pbl-player-rank span,.pbl-player-association-rank span,.pbl-player-model span,.pbl-player-baseline span,.pbl-player-team span { font-size:.57rem; }
  .pbl-profile-link,.pbl-unavailable { grid-column:1/-1; min-height:36px; display:inline-flex; align-items:center; }
  .pbl-facts > div { flex:1 1 135px; min-width:0; }
}

/* 1.4.0 — concise directory cards and season-scoped team browsing. */
.pbl-card { min-height:205px; }
.pbl-card .pbl-card-foot { justify-content:flex-start; }
.pbl-location { margin-top:9px; color:#a9bfd4; font-size:.78rem; line-height:1.45; }
.pbl-team-tabs { display:flex; gap:8px; margin:18px 0 24px; padding:2px 2px 8px; overflow-x:auto; overscroll-behavior-inline:contain; scrollbar-width:thin; scrollbar-color:rgba(112,190,246,.4) transparent; }
.pbl-team-tabs button { flex:0 0 auto; min-height:44px; max-width:280px; padding:8px 14px; border:1px solid rgba(103,183,255,.23); border-radius:8px; background:#091b30; color:#d6e5f5; font:inherit; font-size:.75rem; font-weight:750; line-height:1.25; cursor:pointer; white-space:normal; }
.pbl-team-tabs button[aria-pressed="true"] { border-color:#64c5ff; background:rgba(48,139,194,.2); color:#f4faff; }
.pbl-team-tabs button:hover { border-color:rgba(109,197,255,.65); }
.pbl-team-tabs button:focus-visible { outline:2px solid #8bd5ff; outline-offset:3px; }
.pbl-performance-leaders { margin:26px 0; }
.pbl-performance-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.pbl-performance-grid article { min-width:0; padding:16px; border:1px solid rgba(103,183,255,.17); border-radius:10px; background:rgba(8,25,46,.68); }
.pbl-performance-grid h3 { margin:0 0 7px; color:#eaf4ff; font-size:.94rem; }
.pbl-performance-grid p { margin:0; color:#9eb2c7; font-size:.75rem; line-height:1.5; }
.pbl-model-associated { margin:28px 0; }
.pbl-model-associated ul { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:0; padding:0; list-style:none; }
.pbl-model-associated li { display:grid; gap:5px; min-width:0; padding:12px; border:1px solid rgba(103,183,255,.15); border-radius:9px; background:rgba(7,22,40,.55); }
.pbl-model-associated li>span { color:#b8c9d9; font-size:.61rem; font-weight:800; }
.pbl-model-associated li strong { overflow-wrap:anywhere; color:#edf5ff; font-size:.81rem; }
.pbl-model-associated li strong a { color:inherit; text-decoration:none; }
.pbl-model-associated li small { color:#91a8bf; font-size:.64rem; line-height:1.4; }
.pbl-board { margin-top:28px; }
.pbl-shell :is(button,a,select,input):focus-visible { outline:2px solid #8bd5ff; outline-offset:3px; }
@media(max-width:900px) {
  .pbl-model-associated ul { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:620px) {
  .pbl-team-tabs { margin:14px -4px 19px; padding:2px 4px 8px; }
  .pbl-team-tabs button { min-height:46px; max-width:210px; padding-inline:12px; }
  .pbl-performance-grid,.pbl-model-associated ul { grid-template-columns:1fr; }
  .pbl-card { min-height:0; }
}
