.vhb-stats-hub-page{background:#07090b;color:#f6f7f8}.vhb-stats-hub-shell{min-height:100vh;background:radial-gradient(circle at 15% 0%,rgba(255,130,0,.08),transparent 30%),linear-gradient(180deg,#0a0d10 0,#07090b 100%)}
.vhb-stats-hub{width:min(1360px,calc(100% - 48px));margin:0 auto;padding:34px 0 64px}.vhb-stats-hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(430px,.95fr);gap:28px;align-items:end;margin-bottom:24px}.vhb-stats-hero h1{font-size:34px;line-height:1;margin:0 0 10px;font-weight:800}.vhb-stats-hero p{margin:0;color:#aeb4bb;font-size:15px}.vhb-stats-seasonbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:28px}.vhb-stats-seasonbar>span{text-transform:uppercase;color:#b9bec4;font-weight:700;font-size:13px;margin-right:6px}.vhb-season-btn,.vhb-stats-mode,.vhb-stats-tools button,.vhb-stats-tools label,.vhb-stats-load,.vhb-player-links button,.vhb-recent-games>button{font:inherit}.vhb-season-btn{border:1px solid #30363d;background:#171b20;color:#f3f3f3;border-radius:5px;padding:12px 18px;font-weight:700;cursor:pointer}.vhb-season-btn.is-active{background:#ff8200;border-color:rgba(255,130,0,.90);color:#fff;box-shadow:0 0 18px rgba(255,130,0,.28)}.vhb-season-all{padding-inline:19px}.vhb-stats-modes{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.vhb-stats-mode{min-height:134px;border:1px solid #293038;background:linear-gradient(180deg,#11161b,#0d1115);border-radius:7px;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer}.vhb-stats-mode b{font-size:28px;font-weight:500}.vhb-stats-mode strong{font-size:15px}.vhb-stats-mode span{font-size:13px;color:#9ea5ad}.vhb-stats-mode.is-active{border-color:#3d4650;box-shadow:inset 0 -2px 0 #ff8200}.vhb-stats-layout{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(340px,.95fr);gap:18px;align-items:start}.vhb-stats-table-card,.vhb-player-card,.vhb-recent-games,.vhb-bdl-attribution{border:1px solid #333a42;background:linear-gradient(180deg,#101418,#0b0f12);border-radius:7px;overflow:hidden}.vhb-stats-table-card>header{padding:20px 20px 18px;display:flex;justify-content:space-between;gap:16px;align-items:center;border-bottom:1px solid #2b3138}.vhb-stats-table-card h2{margin:0;font-size:24px}.vhb-stats-table-card header p{margin:4px 0 0;color:#aeb4bb}.vhb-stats-tools{display:flex;gap:12px;align-items:center}.vhb-stats-tools button,.vhb-stats-tools label{height:42px;border:1px solid #343b43;border-radius:6px;background:#10151a;color:#dfe3e7;display:flex;align-items:center;gap:9px;padding:0 14px}.vhb-stats-tools input{background:transparent;border:0;outline:0;color:#fff;width:170px;font:inherit}.vhb-stats-tools input::placeholder{color:#727982}.vhb-stats-table-wrap{overflow-x:auto;overscroll-behavior-inline:contain}.vhb-stats-table-card table{width:100%;border-collapse:collapse;min-width:780px;font-size:14px}.vhb-stats-table-card th,.vhb-stats-table-card td{padding:13px 14px;border-bottom:1px solid #272d33;text-align:center;white-space:nowrap}.vhb-stats-table-card th{text-transform:uppercase;font-size:12px;color:#e9ecef;background:#0c1013}.vhb-stats-table-card th:nth-child(2),.vhb-stats-table-card td:nth-child(2){text-align:left}.vhb-stats-table-card th.is-sort{color:rgba(255,130,0,.90);background:#15120f}.vhb-player-row{cursor:pointer;transition:background .15s ease}.vhb-player-row:hover,.vhb-player-row.is-selected{background:linear-gradient(90deg,rgba(255,130,0,.10),rgba(255,255,255,.025))}.vhb-num,.vhb-player-name{color:rgba(255,130,0,.90);font-weight:700}.vhb-row-go{font-size:24px;color:#dce0e4}.vhb-stats-load{width:100%;padding:14px 18px;text-align:left;background:#0c1013;border:0;color:#eee;cursor:pointer}.vhb-bdl-attribution{display:flex;gap:20px;align-items:center;margin-top:18px;padding:20px 24px}.vhb-bdl-t{font-size:58px;font-weight:900;color:rgba(255,130,0,.90);line-height:1}.vhb-bdl-attribution p{margin:0 0 7px;color:#d9dde1}.vhb-bdl-attribution small{color:#9ca3aa}.vhb-player-rail{display:grid;gap:16px}.vhb-player-hero{min-height:220px;position:relative;display:grid;grid-template-columns:46% 1fr;align-items:stretch;border-bottom:1px solid #30363d}.vhb-player-hero img{width:100%;height:100%;object-fit:cover;object-position:center top;filter:saturate(.92) contrast(1.03)}.vhb-player-identity{padding:28px 18px 20px}.vhb-player-identity span{color:#d8dde2;font-size:13px}.vhb-player-identity h2{margin:8px 0 10px;font-size:28px;line-height:1.05}.vhb-player-identity p{margin:4px 0;color:#c7ccd1}.vhb-player-t{position:absolute;right:18px;top:16px;color:rgba(255,130,0,.90);font-size:52px;font-weight:900}.vhb-player-averages{padding:16px 18px;border-bottom:1px solid #30363d}.vhb-player-averages>small{display:block;text-align:center;text-transform:uppercase;color:#aab1b8;font-size:11px;margin-bottom:14px}.vhb-player-averages>div{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.vhb-player-averages span{text-align:center}.vhb-player-averages b{display:block;color:rgba(255,130,0,.90);font-size:23px}.vhb-player-averages em{display:block;font-style:normal;text-transform:uppercase;color:#aeb4bb;font-size:11px;margin-top:4px}.vhb-player-links button{display:flex;justify-content:space-between;width:100%;padding:12px 16px;background:#0c1013;border:0;border-bottom:1px solid #2a3036;color:#f0f2f3;text-align:left;cursor:pointer}.vhb-player-links button:last-child{border-bottom:0}.vhb-player-links b{font-size:22px}.vhb-recent-games{padding:0}.vhb-recent-games h3{font-size:13px;text-transform:uppercase;margin:0;padding:15px 16px 12px}.vhb-recent-head,.vhb-recent-row{display:grid;grid-template-columns:1.1fr 1.25fr repeat(4,.62fr);gap:6px;padding:8px 14px}.vhb-recent-head{color:#aeb4bb;text-transform:uppercase;font-size:10px;font-weight:700}.vhb-recent-row{font-size:12px;border-top:1px solid #242a30}.vhb-recent-games>button{width:100%;border:0;border-top:1px solid #2b3137;background:#0d1115;color:#f4f4f4;padding:14px;text-align:left;cursor:pointer}.vhb-recent-games>button b{float:right;font-size:18px}.vhb-stats-hub .vhb-site-header{position:relative}
@media (max-width:1100px){.vhb-stats-hub{width:min(100% - 30px,1080px)}.vhb-stats-hero{grid-template-columns:1fr}.vhb-stats-modes{max-width:720px}.vhb-stats-layout{grid-template-columns:minmax(0,1.55fr) minmax(300px,.9fr)}.vhb-player-identity h2{font-size:24px}}
@media (max-width:820px){.vhb-stats-hub{width:min(100% - 24px,760px);padding-top:22px}.vhb-stats-hero{gap:20px}.vhb-stats-hero h1{font-size:30px}.vhb-stats-modes{grid-template-columns:repeat(2,1fr)}.vhb-stats-mode{min-height:105px}.vhb-stats-layout{display:flex;flex-direction:column}.vhb-stats-maincol,.vhb-player-rail{width:100%}.vhb-player-rail{order:2}.vhb-stats-table-card{order:1}.vhb-stats-table-card>header{align-items:flex-start;flex-direction:column}.vhb-stats-tools{width:100%}.vhb-stats-tools label{flex:1}.vhb-stats-tools input{width:100%}.vhb-player-card{display:grid;grid-template-columns:1fr}.vhb-player-hero{min-height:260px;grid-template-columns:42% 1fr}.vhb-player-averages>div{gap:4px}.vhb-bdl-attribution{order:3}}
@media (max-width:560px){.vhb-stats-hub{width:calc(100% - 20px);padding:16px 0 40px}.vhb-stats-hero h1{font-size:28px}.vhb-stats-hero p{font-size:14px}.vhb-stats-seasonbar{gap:8px;margin-top:20px}.vhb-stats-seasonbar>span{width:100%}.vhb-season-btn{padding:10px 12px;font-size:13px}.vhb-stats-modes{gap:8px}.vhb-stats-mode{min-height:92px;padding:10px}.vhb-stats-mode b{font-size:23px}.vhb-stats-mode strong{font-size:13px}.vhb-stats-mode span{font-size:11px}.vhb-stats-table-card>header{padding:16px}.vhb-stats-table-card h2{font-size:21px}.vhb-stats-tools{gap:8px}.vhb-stats-tools button{padding:0 11px;font-size:13px}.vhb-stats-tools label{min-width:0}.vhb-stats-table-card table{min-width:660px;font-size:13px}.vhb-stats-table-card th,.vhb-stats-table-card td{padding:11px 10px}.vhb-player-hero{min-height:230px;grid-template-columns:45% 1fr}.vhb-player-identity{padding:23px 12px 16px}.vhb-player-identity h2{font-size:25px;padding-right:25px}.vhb-player-t{font-size:40px;right:12px}.vhb-player-averages{padding-inline:10px}.vhb-player-averages b{font-size:20px}.vhb-recent-head,.vhb-recent-row{grid-template-columns:1.05fr 1.25fr repeat(4,.58fr);padding-inline:10px;font-size:10px}.vhb-bdl-attribution{padding:16px;gap:14px}.vhb-bdl-t{font-size:46px}}
.vhb-recent-empty{padding:18px 14px;border-top:1px solid #242a30;color:#8f979f;font-size:12px}
/* t645 — 2025-26 jersey placeholder library */
.vhb-player-name{display:flex;align-items:center;gap:9px}.vhb-player-jersey-thumb{width:34px;height:42px;object-fit:contain;object-position:center;flex:0 0 auto}.vhb-player-hero img[data-player-image]{object-fit:contain;object-position:center;background:radial-gradient(circle at 50% 38%,#1a2025 0,#0b0f12 72%);padding:10px;box-sizing:border-box;filter:none}
@media(max-width:560px){.vhb-player-jersey-thumb{width:30px;height:37px}}
/* t649 — finished photorealistic 2025-26 jersey assets; numbers are baked into each image */
.vhb-jersey-art{position:relative;display:inline-block;overflow:hidden;background:#0b0f12;line-height:0;isolation:isolate}
.vhb-jersey-art img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;filter:none}
.vhb-jersey-art--thumb{width:34px;height:42px;flex:0 0 auto;border-radius:2px}
.vhb-jersey-art--thumb img{object-fit:cover;object-position:center 18%}
.vhb-jersey-art--hero{display:block;width:100%;height:100%;min-height:220px;background:radial-gradient(circle at 50% 38%,#1a2025 0,#0b0f12 72%)}
.vhb-jersey-art--hero img{box-sizing:border-box;padding:0;object-fit:contain;object-position:center top;background:transparent;filter:none}
.vhb-player-name .vhb-player-jersey-thumb{display:none!important}
.vhb-player-hero>.vhb-jersey-art--hero{grid-column:1}
.vhb-player-hero>.vhb-player-identity{grid-column:2}
@media(max-width:820px){.vhb-jersey-art--hero{min-height:260px}}
@media(max-width:560px){.vhb-jersey-art--thumb{width:30px;height:37px}.vhb-jersey-art--hero{min-height:230px}}
.vhb-player-hero .vhb-jersey-art--hero img[data-player-image]{width:100%;height:100%;padding:0;box-sizing:border-box;object-fit:contain;object-position:center top;background:transparent;filter:none}

/* t651 — asset-level jersey normalization; all finished files share the #34 canvas/framing */
.vhb-player-hero{height:220px;min-height:220px;overflow:hidden}
.vhb-jersey-art--hero,.vhb-jersey-art--thumb{position:relative;overflow:hidden}
.vhb-jersey-art--hero img,.vhb-jersey-art--thumb img{position:static!important;display:block!important;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;object-position:center center!important}
@media(max-width:820px){.vhb-player-hero{height:260px;min-height:260px}}
@media(max-width:560px){.vhb-player-hero{height:230px;min-height:230px}}

/* t654 — universal hero jersey render contract. No player-specific transforms are permitted; #34 remains the framing master for every numbered asset. */
.vhb-player-hero .vhb-jersey-art--hero img[data-player-image]{transform:none!important;transform-origin:50% 50%!important;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;object-position:center center!important;margin:0!important;padding:0!important}

/* t655 — freeze Stats Hub player-rail geometry across player selections.
 * The selected player's identity/recent-game content must never expand the rail
 * and therefore must never change the jersey stage width or apparent scale. */
.vhb-stats-layout,
.vhb-player-rail,
.vhb-player-card,
.vhb-player-hero,
.vhb-player-identity,
.vhb-recent-games{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
.vhb-player-rail,
.vhb-player-card,
.vhb-player-hero{
  width:100%!important;
}
.vhb-player-hero{
  grid-template-columns:minmax(0,46%) minmax(0,54%)!important;
}
.vhb-player-hero>.vhb-jersey-art--hero,
.vhb-player-hero>.vhb-player-identity{
  min-width:0!important;
  max-width:100%!important;
}
.vhb-jersey-art--hero{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}
.vhb-player-identity,
.vhb-player-identity h2,
.vhb-player-identity p,
.vhb-player-identity span,
.vhb-recent-head>*,
.vhb-recent-row>*{
  min-width:0!important;
  max-width:100%!important;
  overflow-wrap:anywhere;
}
.vhb-recent-head,
.vhb-recent-row{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
@media(max-width:820px){
  .vhb-player-hero{grid-template-columns:minmax(0,42%) minmax(0,58%)!important;}
}
@media(max-width:560px){
  .vhb-player-hero{grid-template-columns:minmax(0,45%) minmax(0,55%)!important;}
}

/* t657 — desktop-only immutable jersey stage.
 * Desktop is the only breakpoint where the #6 presentation drift remained.
 * Remove the jersey stage from percentage-based track sizing entirely so
 * player/content changes cannot alter the rendered jersey dimensions.
 * 600x760 source ratio at a 220px hero height = 173.684px wide. */
@media (min-width:821px){
  .vhb-player-hero{
    grid-template-columns:174px minmax(0,1fr)!important;
  }
  .vhb-player-hero>.vhb-jersey-art--hero{
    width:174px!important;
    min-width:174px!important;
    max-width:174px!important;
    height:220px!important;
    min-height:220px!important;
    max-height:220px!important;
    justify-self:start!important;
    align-self:start!important;
  }
  .vhb-player-hero .vhb-jersey-art--hero img[data-player-image]{
    width:174px!important;
    min-width:174px!important;
    max-width:174px!important;
    height:220px!important;
    min-height:220px!important;
    max-height:220px!important;
    object-fit:contain!important;
    object-position:center center!important;
    transform:none!important;
  }
}

/* t658: mobile player detail round-trip navigation */
.vhb-mobile-back-to-list{display:none}
@media (max-width:820px){
  .vhb-mobile-back-to-list{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:44px;padding:10px 14px;border:1px solid #343b43;border-radius:7px;background:#0d1115;color:#f4f4f4;font:inherit;font-size:13px;font-weight:700;cursor:pointer;position:sticky;top:calc(var(--vhb-mobile-header-height,72px) + 8px);z-index:14;box-shadow:0 6px 18px rgba(0,0,0,.28)}
  .vhb-mobile-back-to-list span{color:rgba(255,130,0,.90);font-size:18px;line-height:1}
  .vhb-player-row:focus{outline:2px solid rgba(255,130,0,.72);outline-offset:-2px}
}

/* t659 — BDL-backed Team Stats mode */
.vhb-team-stats-view[hidden]{display:none!important}
.vhb-team-stats-view{display:block;min-width:0}
.vhb-team-stats-toolbar{display:flex;align-items:center;gap:18px;margin:0 0 18px;padding:18px 20px;border:1px solid #333a42;border-radius:7px;background:linear-gradient(180deg,#101418,#0b0f12)}
.vhb-team-stats-toolbar button{flex:0 0 auto;border:1px solid #3a424b;border-radius:6px;background:#0e1317;color:#f5f6f7;padding:10px 14px;font:inherit;font-size:13px;font-weight:750;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease}
.vhb-team-stats-toolbar button:hover{border-color:rgba(255,130,0,.90);color:rgba(255,130,0,.90);background:#15110e}
.vhb-team-stats-toolbar h2{margin:0;font-size:24px;line-height:1.1}.vhb-team-stats-toolbar p{margin:5px 0 0;color:#9fa6ae;font-size:13px}
.vhb-team-stats-grid{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(300px,.8fr);gap:18px;align-items:start}.vhb-team-stats-main{display:grid;gap:18px;min-width:0}
.vhb-team-summary-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border:1px solid #333a42;border-radius:7px;overflow:hidden;background:linear-gradient(180deg,#11161a,#0c1014)}
.vhb-team-summary-strip>div{min-width:0;padding:18px 12px;text-align:center;border-right:1px solid #2a3036}.vhb-team-summary-strip>div:last-child{border-right:0}.vhb-team-summary-strip span{display:block;text-transform:uppercase;letter-spacing:.04em;color:#9199a1;font-size:10px;font-weight:750}.vhb-team-summary-strip strong{display:block;margin-top:7px;color:rgba(255,130,0,.90);font-size:25px;line-height:1;font-weight:800}
.vhb-team-stat-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.vhb-team-stat-card{border:1px solid #333a42;border-radius:7px;overflow:hidden;background:linear-gradient(180deg,#101418,#0b0f12)}.vhb-team-stat-card h3{margin:0;padding:15px 17px;border-bottom:1px solid #2c333a;font-size:14px;text-transform:uppercase;letter-spacing:.035em}.vhb-team-stat-card>div{padding:4px 0}.vhb-team-stat-card p{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0;padding:10px 17px;border-bottom:1px solid #20262c;color:#aab1b8;font-size:13px}.vhb-team-stat-card p:last-child{border-bottom:0}.vhb-team-stat-card strong{color:#f3f5f6;font-size:14px;white-space:nowrap}
.vhb-team-game-table-card{border:1px solid #333a42;border-radius:7px;overflow:hidden;background:linear-gradient(180deg,#101418,#0b0f12)}.vhb-team-game-table-card>header{padding:17px 18px;border-bottom:1px solid #2c333a}.vhb-team-game-table-card h3{margin:0;font-size:17px}.vhb-team-game-table-card header p{margin:4px 0 0;color:#959da5;font-size:12px}.vhb-team-game-table-wrap{overflow-x:auto;overscroll-behavior-inline:contain}.vhb-team-game-table-card table{width:100%;min-width:760px;border-collapse:collapse;font-size:12px}.vhb-team-game-table-card th,.vhb-team-game-table-card td{padding:11px 12px;border-bottom:1px solid #272d33;text-align:center;white-space:nowrap}.vhb-team-game-table-card th{text-transform:uppercase;color:#aeb5bc;font-size:10px;background:#0c1013}.vhb-team-game-table-card th:nth-child(2),.vhb-team-game-table-card td:nth-child(2){text-align:left}.vhb-team-game-table-card tbody tr:last-child td{border-bottom:0}.vhb-team-result.is-win{color:#71d69b;font-weight:800}.vhb-team-result.is-loss{color:#e38b8b;font-weight:800}
.vhb-team-glance{position:sticky;top:20px;border:1px solid #333a42;border-radius:7px;overflow:hidden;background:radial-gradient(circle at 80% 5%,rgba(255,130,0,.12),transparent 35%),linear-gradient(180deg,#11161a,#0b0f12);padding:22px}.vhb-team-glance-kicker{display:block;color:rgba(255,130,0,.90);text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:800}.vhb-team-glance h3{margin:7px 0 18px;font-size:22px}.vhb-team-glance-record{display:flex;align-items:end;justify-content:space-between;padding:17px 0;border-top:1px solid #2a3036;border-bottom:1px solid #2a3036}.vhb-team-glance-record strong{font-size:40px;line-height:.95;color:#fff}.vhb-team-glance-record span{text-transform:uppercase;color:#979fa7;font-size:10px;font-weight:750}.vhb-team-glance-list{padding-top:7px}.vhb-team-glance-list p{display:flex;justify-content:space-between;gap:16px;margin:0;padding:10px 0;border-bottom:1px solid #22282e;font-size:12px}.vhb-team-glance-list span{color:#9fa6ad}.vhb-team-glance-list strong{color:#f2f3f4;text-align:right}.vhb-team-glance>small{display:block;margin-top:15px;color:#7f878f;font-size:10px;line-height:1.45}.vhb-team-bdl-attribution{margin-top:18px}.vhb-team-stats-empty{border:1px solid #333a42;border-radius:7px;background:#0d1115;padding:32px;text-align:center}.vhb-team-stats-empty strong,.vhb-team-stats-empty span{display:block}.vhb-team-stats-empty span{margin-top:8px;color:#9da5ac}
@media(max-width:1100px){.vhb-team-stats-grid{grid-template-columns:minmax(0,1.7fr) minmax(270px,.8fr)}.vhb-team-summary-strip strong{font-size:22px}}
@media(max-width:820px){.vhb-team-stats-toolbar{align-items:flex-start;flex-direction:column}.vhb-team-stats-grid{display:flex;flex-direction:column}.vhb-team-stats-main,.vhb-team-glance{width:100%;box-sizing:border-box}.vhb-team-glance{position:static;order:-1}.vhb-team-summary-strip{grid-template-columns:repeat(3,1fr)}.vhb-team-summary-strip>div:nth-child(3){border-right:0}.vhb-team-summary-strip>div:nth-child(-n+3){border-bottom:1px solid #2a3036}.vhb-team-stat-groups{grid-template-columns:1fr}.vhb-team-stats-toolbar button{min-height:44px}}
@media(max-width:560px){.vhb-team-stats-toolbar{padding:14px}.vhb-team-stats-toolbar h2{font-size:21px}.vhb-team-summary-strip>div{padding:15px 8px}.vhb-team-summary-strip strong{font-size:21px}.vhb-team-stat-card h3{padding:14px}.vhb-team-stat-card p{padding:10px 14px}.vhb-team-glance{padding:18px}.vhb-team-glance h3{font-size:20px}.vhb-team-glance-record strong{font-size:36px}.vhb-team-game-table-card table{min-width:680px}}

/* t672 — Stats Hub structural app-shell parity.
 * Header/nav geometry now comes from the real #vhb-app -> .vhb-shell contract.
 * At tablet/desktop widths, let Stats Hub content occupy that same shell width
 * instead of applying its former additional 24px-per-side inset. */
@media (min-width:681px){
  body.vhb-stats-hub-page #vhb-app > .vhb-stats-hub-shell > .vhb-stats-hub{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
  }
}


/* t685 — dual-source attribution + near-real-time Stats Hub live overlay. */
.vhb-stats-attribution{margin-top:22px;border:1px solid #333a42;background:linear-gradient(180deg,#101418,#0b0f12);border-radius:7px;padding:12px 16px;display:block}
.vhb-stats-attribution p{margin:0;color:#d9dde1;line-height:1.4;font-size:13px}.vhb-stats-attribution strong{display:inline;font-size:13px;letter-spacing:0;text-transform:none}.vhb-stats-attribution a{color:rgba(255,130,0,.90);text-decoration:none}.vhb-stats-attribution a:hover{text-decoration:underline}
@media (max-width:560px){.vhb-stats-attribution{padding:11px 13px}.vhb-stats-attribution p{font-size:12px}}

/* t688 — photoreal blank-template + stitched numeral renderer.
 * The photographic masters contain NO baked jersey number. Numerals are transparent
 * stitched-image assets derived from researched Tennessee uniform references. No
 * masking patch is permitted: this prevents the visible rectangle regression.
 * t657 remains the immutable display-geometry authority. */
.vhb-jersey-number-patch{display:none!important}
.vhb-jersey-number-layer{position:absolute;z-index:3;pointer-events:none;box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:0;overflow:visible}
.vhb-jersey-number-glyph{display:block;height:100%;width:50%;flex:0 0 50%;background-repeat:no-repeat;background-size:1000% 100%;filter:drop-shadow(0 1px 1px rgba(0,0,0,.18))}
.vhb-jersey-number-layer.is-single .vhb-jersey-number-glyph{width:54%;flex-basis:54%}
.vhb-jersey-art--hero[data-jersey-style="white-primary"] .vhb-jersey-number-layer,
.vhb-jersey-art--hero[data-jersey-style="white-2021"] .vhb-jersey-number-layer{left:28%;top:44%;width:44%;height:25%}
.vhb-jersey-art--hero[data-jersey-style="white-primary"] .vhb-jersey-number-glyph,
.vhb-jersey-art--hero[data-jersey-style="white-2021"] .vhb-jersey-number-glyph{background-image:url('../img/stats-hub/uniforms/numerals-orange-photo.png')}
.vhb-jersey-art--hero[data-jersey-style="orange-road"] .vhb-jersey-number-layer{left:29%;top:42%;width:42%;height:22%}
.vhb-jersey-art--hero[data-jersey-style="orange-road"] .vhb-jersey-number-glyph{background-image:url('../img/stats-hub/uniforms/numerals-white-photo.png')}
.vhb-jersey-art--hero[data-jersey-style="cream-vols"] .vhb-jersey-number-layer{left:31%;top:49%;width:38%;height:21%}
.vhb-jersey-art--hero[data-jersey-style="cream-vols"] .vhb-jersey-number-glyph{background-image:url('../img/stats-hub/uniforms/numerals-orange-photo.png')}

/* t689 — jersey-number geometry calibration against the approved real-uniform reference.
 * Keep the t657 stage geometry immutable; only the number artwork placement changes.
 * Numerals are intentionally large, tight-set, and sit directly beneath the chest wordmark.
 * Cream Vols master is line-free per the 2024-25 reference. */
.vhb-jersey-number-layer{gap:0!important}
.vhb-jersey-number-glyph{width:47%!important;flex:0 0 47%!important;margin-inline:-1.7%!important;background-size:1000% 100%!important}
.vhb-jersey-number-layer.is-single .vhb-jersey-number-glyph{width:62%!important;flex-basis:62%!important;margin-inline:0!important}
.vhb-jersey-art--hero[data-jersey-style="white-primary"] .vhb-jersey-number-layer,
.vhb-jersey-art--hero[data-jersey-style="white-2021"] .vhb-jersey-number-layer{left:25%!important;top:38.5%!important;width:50%!important;height:31%!important}
.vhb-jersey-art--hero[data-jersey-style="orange-road"] .vhb-jersey-number-layer{left:26%!important;top:34.5%!important;width:48%!important;height:29%!important}
.vhb-jersey-art--hero[data-jersey-style="cream-vols"] .vhb-jersey-number-layer{left:25%!important;top:41.5%!important;width:50%!important;height:30%!important}


/* t690 — final-bitmap jersey renderer. Browser-side numeral layers are retired. */
.vhb-jersey-number-patch,.vhb-jersey-number-layer,.vhb-jersey-number-glyph{display:none!important}

/* t705: functional All Seasons menu. Older historical seasons remain compact in the hero. */
.vhb-season-dropdown{position:relative;display:inline-flex}.vhb-season-menu{position:absolute;z-index:40;top:calc(100% + 8px);right:0;min-width:150px;padding:6px;background:#101418;border:1px solid #343b43;border-radius:7px;box-shadow:0 14px 34px rgba(0,0,0,.45)}.vhb-season-menu[hidden]{display:none}.vhb-season-menu-item{display:block;width:100%;border:0;border-radius:4px;background:transparent;color:#e9ecef;text-align:left;padding:10px 12px;font:inherit;font-weight:700;cursor:pointer}.vhb-season-menu-item:hover,.vhb-season-menu-item:focus{background:#1a2026;outline:none}.vhb-season-menu-item.is-active{background:#ff8200;color:#fff}

/* t707: historical/current player log expansion */
.vhb-recent-games>button[aria-expanded="true"]{color:rgba(255,130,0,.90)}.vhb-recent-games>button[hidden]{display:none!important}.vhb-recent-empty{padding:14px;color:#9fa7b0;font-size:12px;border-top:1px solid #242a30}

/* t709: selected-player profile anchor and actionable Game Log control */
.vhb-player-profile-anchor{display:block;position:relative;height:0;scroll-margin-top:84px}
.vhb-player-links button[data-vhb-player-game-log-link]{cursor:pointer}
.vhb-player-links button[data-vhb-player-game-log-link]:hover,.vhb-player-links button[data-vhb-player-game-log-link]:focus-visible{background:#141a20;color:#fff;outline:none}

/* t710: on-demand player detail workspace */
.vhb-player-links button.is-active{background:#141a20;color:#fff;box-shadow:inset 3px 0 0 #ff8200}
.vhb-player-detail-panel{border-top:1px solid #30363d;background:#0d1115}
.vhb-player-detail-panel[hidden]{display:none!important}
.vhb-player-detail-panel>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid #2b3138}
.vhb-player-detail-panel>header h3{margin:0;font-size:15px}
.vhb-player-detail-panel>header button{border:0;background:transparent;color:#cfd4d8;font-size:24px;line-height:1;cursor:pointer;padding:2px 4px}
.vhb-player-detail-panel>[data-vhb-player-detail-body]{padding:16px}
.vhb-player-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.vhb-player-profile-grid>div{border:1px solid #283038;border-radius:6px;background:#10151a;padding:11px 12px}
.vhb-player-profile-grid span{display:block;color:#8f98a1;text-transform:uppercase;font-size:10px;font-weight:700;margin-bottom:4px}
.vhb-player-profile-grid strong{display:block;color:#f4f5f6;font-size:14px}
.vhb-player-career-wrap{overflow-x:auto}
.vhb-player-career-wrap table{width:100%;border-collapse:collapse;min-width:640px;font-size:11px}
.vhb-player-career-wrap th,.vhb-player-career-wrap td{padding:8px 7px;border-bottom:1px solid #262d33;text-align:center;white-space:nowrap}
.vhb-player-career-wrap th:first-child,.vhb-player-career-wrap td:first-child{text-align:left}
.vhb-player-career-wrap th{color:#9da5ad;text-transform:uppercase;font-size:9px}
.vhb-player-career-wrap td:first-child{color:rgba(255,130,0,.90);font-weight:700}
.vhb-player-highs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.vhb-player-highs-grid article{border:1px solid #293139;border-radius:6px;background:#10151a;padding:12px}
.vhb-player-highs-grid span{display:block;color:#9aa2aa;text-transform:uppercase;font-size:10px;font-weight:700}
.vhb-player-highs-grid strong{display:block;color:rgba(255,130,0,.90);font-size:25px;line-height:1.1;margin:4px 0 6px}
.vhb-player-highs-grid small{display:block;color:#c5cbd0;font-size:10px;line-height:1.35}
.vhb-player-news-list{display:grid;gap:10px}
.vhb-player-news-list article{border-bottom:1px solid #293038;padding-bottom:10px}
.vhb-player-news-list article:last-child{border-bottom:0;padding-bottom:0}
.vhb-player-news-list span{display:block;color:#8f98a1;text-transform:uppercase;font-size:9px;font-weight:700;margin-bottom:4px}
.vhb-player-news-list a{display:block;color:#f4f4f4;text-decoration:none;font-weight:700;font-size:13px;line-height:1.35}
.vhb-player-news-list a:hover{color:rgba(255,130,0,.90)}
.vhb-player-news-list p{margin:5px 0 0;color:#adb4bb;font-size:11px;line-height:1.4}
.vhb-player-detail-empty,.vhb-player-detail-loading{margin:0;color:#aeb4bb;font-size:12px;line-height:1.5}
@media(max-width:560px){.vhb-player-profile-grid,.vhb-player-highs-grid{grid-template-columns:1fr}.vhb-player-detail-panel>[data-vhb-player-detail-body]{padding:14px}}

/* t727 — Stats Hub release-candidate: functional Team Leaders + scoped Records workspaces. */
.vhb-stats-secondary-view[hidden]{display:none!important}.vhb-stats-secondary-view{max-width:1180px;margin:22px auto 0;padding:0 20px}.vhb-leaders-grid,.vhb-records-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.vhb-leader-card,.vhb-record-card{background:#0e1318;border:1px solid #293139;border-radius:9px;overflow:hidden}.vhb-leader-card>header,.vhb-record-card>header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:#151b21;border-bottom:1px solid #2a3239}.vhb-leader-card>header span,.vhb-record-card>header span{font-size:15px;font-weight:800;color:#f4f5f6}.vhb-leader-card>header strong,.vhb-record-card>header strong{font-size:10px;color:rgba(255,130,0,.90);letter-spacing:.08em}.vhb-leader-card ol,.vhb-record-card ol{list-style:none;margin:0;padding:0}.vhb-leader-card li,.vhb-record-card li{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 14px;border-bottom:1px solid #232a30}.vhb-leader-card li:last-child,.vhb-record-card li:last-child{border-bottom:0}.vhb-leader-card li>b,.vhb-record-card li>b{color:#6f7881;font-size:11px}.vhb-leader-card li span strong,.vhb-record-card li span strong{display:block;color:#f1f3f4;font-size:13px}.vhb-leader-card li small,.vhb-record-card li small{display:block;color:#89929b;font-size:10px;margin-top:2px}.vhb-leader-card li em,.vhb-record-card li em{font-style:normal;color:rgba(255,130,0,.90);font-size:18px;font-weight:900}.vhb-records-intro{display:flex;gap:16px;align-items:center;margin:0 0 16px;padding:14px 16px;border:1px solid #3a332d;border-left:3px solid #ff8200;border-radius:7px;background:#15120f}.vhb-records-intro strong{color:#fff;white-space:nowrap}.vhb-records-intro span{color:#b7bec4;font-size:12px;line-height:1.45}
@media(max-width:760px){.vhb-stats-secondary-view{padding:0 12px}.vhb-leaders-grid,.vhb-records-grid{grid-template-columns:1fr}.vhb-records-intro{align-items:flex-start;flex-direction:column;gap:5px}}

/* t728 — visible Records qualification thresholds. */
.vhb-record-card header .vhb-record-threshold{display:block;margin-top:3px;font-size:10px;line-height:1.25;font-weight:600;letter-spacing:0;text-transform:none;opacity:.68;max-width:245px}


/* t730 — release-candidate filters, qualified leaders, and all-time record book. */
.vhb-stats-filter-panel[hidden],.vhb-record-panel[hidden]{display:none!important}
.vhb-stats-filter-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:12px;align-items:end;padding:14px 16px;border-top:1px solid #252c33;border-bottom:1px solid #252c33;background:#0c1014}
.vhb-stats-filter-panel label{display:grid;gap:6px;min-width:0}.vhb-stats-filter-panel label>span{color:#8f98a2;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.055em}.vhb-stats-filter-panel select{width:100%;min-height:38px;border:1px solid #343c45;border-radius:6px;background:#11161b;color:#eef1f3;padding:7px 30px 7px 10px;font:inherit;font-size:12px}.vhb-filter-reset{min-height:38px;border:1px solid #3b434c;border-radius:6px;background:#11161b;color:#c7cdd3;padding:8px 13px;font:inherit;font-size:12px;font-weight:750;cursor:pointer}.vhb-filter-reset:hover{border-color:rgba(255,130,0,.90);color:rgba(255,130,0,.90)}
.vhb-leader-threshold{display:block;margin-top:3px;color:#919aa4;font-size:9px;font-weight:500;line-height:1.25;text-transform:none;letter-spacing:0}.vhb-leader-empty{display:block!important;padding:18px!important;color:#8f98a2!important;text-align:center!important;font-size:11px!important}
.vhb-record-tabs{display:flex;gap:8px;margin:14px 0 18px}.vhb-record-tabs button{min-width:92px;min-height:38px;border:1px solid #343c45;border-radius:6px;background:#10151a;color:#b5bdc6;padding:8px 14px;font:inherit;font-size:12px;font-weight:800;cursor:pointer}.vhb-record-tabs button.is-active{border-color:rgba(255,130,0,.90);background:#ff8200;color:#fff;box-shadow:0 5px 16px rgba(255,130,0,.18)}
.vhb-record-source-note{margin:16px 0 0;padding:11px 14px;border:1px solid #2d343b;border-radius:6px;background:#0c1014;color:#858f99;font-size:10px;line-height:1.45}
@media(max-width:720px){.vhb-stats-filter-panel{grid-template-columns:1fr 1fr}.vhb-filter-reset{width:100%}.vhb-record-tabs{display:grid;grid-template-columns:repeat(3,1fr)}.vhb-record-tabs button{min-width:0}}
@media(max-width:480px){.vhb-stats-filter-panel{grid-template-columns:1fr}.vhb-record-tabs{gap:6px}.vhb-record-tabs button{padding-inline:8px}}

/* t733 — integrated, touch-friendly Stats Hub filters. */
.vhb-stats-filter-panel{grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:14px;align-items:end;padding:16px 20px 20px;border-top:0;border-bottom:1px solid #2b3138;background:transparent}
.vhb-stats-filter-panel label{gap:7px}.vhb-stats-filter-panel label>span{font-size:11px}
.vhb-stats-filter-panel select{min-height:50px;border-radius:8px;padding:10px 38px 10px 14px;font-size:14px;font-weight:650;background:#141a20}
.vhb-filter-reset{min-height:50px;border-radius:8px;padding:10px 16px;font-size:13px}
@media(max-width:720px){.vhb-stats-table-card>header{align-items:flex-start;flex-direction:column}.vhb-stats-tools{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr)}.vhb-stats-tools label{min-width:0}.vhb-stats-tools input{width:100%;min-width:0}.vhb-stats-filter-panel{grid-template-columns:1fr 1fr;padding:4px 20px 20px}.vhb-stats-filter-panel select,.vhb-filter-reset{min-height:52px}.vhb-filter-reset{width:100%}}
@media(max-width:480px){.vhb-stats-filter-panel{grid-template-columns:1fr;gap:12px}.vhb-stats-filter-panel select{font-size:16px}.vhb-stats-tools{gap:9px}.vhb-stats-tools button{padding-inline:12px}}


/* t734 — single-card filter composition + stronger app-like controls. */
.vhb-stats-table-card>header{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:16px 20px;
  align-items:center;
  padding:20px;
}
.vhb-stats-heading{min-width:0}
.vhb-stats-filter-panel{
  grid-column:1/-1;
  grid-template-columns:repeat(3,minmax(0,1fr)) auto;
  gap:14px;
  align-items:end;
  padding:4px 0 2px;
  margin-top:2px;
  border:0;
  background:transparent;
}
.vhb-stats-filter-panel label{gap:8px}
.vhb-stats-filter-panel label>span{font-size:11px}
.vhb-stats-filter-panel select{
  min-height:56px;
  border-radius:10px;
  padding:12px 42px 12px 16px;
  font-size:15px;
  font-weight:700;
  background:#171d23;
  border-color:#3a434c;
}
.vhb-filter-reset{
  min-height:56px;
  border-radius:10px;
  padding:12px 18px;
  font-size:14px;
}
@media(max-width:720px){
  .vhb-stats-table-card>header{grid-template-columns:1fr;gap:15px;padding:18px 16px}
  .vhb-stats-tools{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr)}
  .vhb-stats-tools label{min-width:0}
  .vhb-stats-tools input{width:100%;min-width:0}
  .vhb-stats-filter-panel{grid-column:1;grid-template-columns:1fr;gap:12px;padding:2px 0 0;margin:0}
  .vhb-stats-filter-panel select,.vhb-filter-reset{min-height:56px;width:100%}
  .vhb-stats-filter-panel select{font-size:16px}
}
@media(max-width:480px){
  .vhb-stats-tools{gap:9px}
  .vhb-stats-tools button{padding-inline:12px}
}


/* t735 — force desktop/mobile filter controls to season-button vertical proportions. */
.vhb-stats-filter-panel select{
  height:58px!important;
  min-height:58px!important;
  box-sizing:border-box!important;
  padding-top:0!important;
  padding-bottom:0!important;
  line-height:58px!important;
}
.vhb-filter-reset{
  height:58px!important;
  min-height:58px!important;
  box-sizing:border-box!important;
}
@media(max-width:720px){
  .vhb-stats-filter-panel select,.vhb-filter-reset{height:58px!important;min-height:58px!important}
}

/* t736 — mobile player-detail width containment.
 * Career Stats owns its horizontal overflow; it must never widen the player rail/page. */
.vhb-stats-layout,.vhb-stats-maincol,.vhb-player-rail,.vhb-player-card,
.vhb-player-detail-panel,.vhb-player-detail-panel>[data-vhb-player-detail-body],
.vhb-player-career-wrap{min-width:0;max-width:100%;box-sizing:border-box}
.vhb-player-career-wrap{display:block;width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}
@media(max-width:820px){
  .vhb-stats-layout,.vhb-stats-maincol,.vhb-player-rail,.vhb-player-card{min-width:0;max-width:100%}
  .vhb-player-detail-panel>[data-vhb-player-detail-body]{min-width:0;max-width:100%;overflow:hidden}
  .vhb-player-career-wrap{max-width:100%;overflow-x:auto}
}

/* t814: transparent Stats Hub accuracy notice. */
.vhb-stats-accuracy{margin:12px 0 0;padding:14px 16px;border:1px solid #333a42;border-radius:7px;background:#0d1115;color:#aeb4bb;font-size:12px;line-height:1.55}.vhb-stats-accuracy>strong{display:block;margin-bottom:3px;color:#e6e9ec;font-size:12px;letter-spacing:.02em}.vhb-stats-accuracy p{margin:0}.vhb-stats-accuracy a{color:rgba(255,130,0,.90);text-decoration:none;font-weight:700}.vhb-stats-accuracy a:hover,.vhb-stats-accuracy a:focus{text-decoration:underline}

/* t824 — global player search + overflow-season selector state */
.vhb-player-search-wrap{position:relative;display:block;min-width:0;flex:1}.vhb-player-search-control{width:100%;box-sizing:border-box;overflow:visible!important}
.vhb-player-search-results{position:absolute;z-index:80;top:calc(100% + 7px);right:0;width:min(360px,92vw);max-height:310px;overflow:auto;padding:6px;background:#0d1115;border:1px solid #343b43;border-radius:7px;box-shadow:0 16px 38px rgba(0,0,0,.5)}
.vhb-player-search-results[hidden]{display:none!important}
.vhb-player-search-result{display:flex!important;width:100%;height:auto!important;min-height:52px!important;flex-direction:column;align-items:flex-start!important;justify-content:center;gap:3px!important;border:0!important;border-radius:5px!important;background:transparent!important;color:#f1f3f4!important;padding:9px 11px!important;text-align:left;cursor:pointer}
.vhb-player-search-result:hover,.vhb-player-search-result:focus{background:#1a2026!important;outline:none!important}
.vhb-player-search-result strong{font-size:13px;line-height:1.25}
.vhb-player-search-result small{color:#9ca5ad;font-size:10px;line-height:1.25}
.vhb-player-search-empty{display:block;padding:11px 12px;color:#9ca5ad;font-size:11px}
.vhb-season-menu-item{display:grid!important;grid-template-columns:18px 1fr;align-items:center;gap:5px}
.vhb-season-menu-check{display:inline-block;width:18px;color:currentColor;font-weight:900;text-align:center}
@media(max-width:720px){.vhb-player-search-results{left:0;right:auto;width:min(100%,420px)}.vhb-season-menu{left:0;right:auto}}

.vhb-stats-table-card.is-search-open{overflow:visible}
