/* Data-dense player layout derived from reviewed Savant / Prospect Savant screens. */
body[data-view="player"] main { padding-top: 15px; max-width: 1500px; }
body[data-view="player"] .player-controls { margin: 0 0 12px; padding: 0; background: transparent; border: 0; }
body[data-view="player"] .player-controls .tab { height: 33px; min-width: 73px; font-weight: 600; }
body[data-view="player"] .player-controls select { height: 33px; background-color: #fff; }
.player-section-tabs { margin: 0 0 12px; background: #e7f0fb; border: 1px solid #ccddf0; border-radius: 5px; padding: 4px; }
.player-section-tabs button { min-width: 100px; min-height: 29px; }
.section-tab-label-short { display: none; }
#player-content { margin: 0; }
.version-notice { margin: 0 0 12px; padding: 8px 12px; color: #4b7098; background: #e6f1fc; border: 1px solid #bfd6eb; border-radius: 4px; font-size: 12px; }
.version-notice a { margin-left: 8px; font-weight: 600; }
.player-summary-grid { display: grid; grid-template-columns: minmax(248px, .78fr) minmax(345px, 1.07fr) minmax(318px, 1fr); gap: 14px; align-items: start; }
.player-summary-grid.no-pitch-profile { grid-template-columns: minmax(260px, .78fr) minmax(380px, 1.07fr); max-width: 880px; margin: 0 auto; }
.player-summary-grid > * { min-width: 0; }
.swing-sample-note { font-size: 10px; color: #577fa7; margin: 9px 0 4px; }
.swing-method-note { font-size: 10px; line-height: 1.6; margin: 0; }
.pitch-result-type .pitch-name { white-space: nowrap; flex-wrap: nowrap; }
.pitch-outcome-table .pitch-result-type small { display: inline; font-size: 9px; color: #70899e; font-weight: 400; margin: 0; }
.pitch-result-shell .pitch-outcome-table .pitch-result-type { position: sticky; left: 0; z-index: 2; background: #f5f9fc; min-width: 132px; }
.player-profile-card { position: relative; padding: 0; overflow: hidden; border: 1px solid #c3d8ee; border-radius: 6px; box-shadow: 0 3px 9px #0b3c6b0d; background-color: #fff; background-image: none; }
.profile-cover { height: 105px; background: #0c243d url('visual-assets-v2/hero-batting-v2.png') right center/auto 100% no-repeat; }
.profile-pitching .profile-cover { background-image: url('visual-assets-v2/hero-pitching-v2.png'); }
.profile-topline { position: absolute; top: 14px; left: 14px; right: 14px; display: flex; justify-content: space-between; align-items: center; color: #c8deed; font-size: 10px; letter-spacing: .6px; }
.profile-topline span:first-child { font-size: 12px; font-weight: 700; background: #0865ed; padding: 2px 7px; border-radius: 3px; color: #fff; }
.profile-photo-v3 { height: 136px; width: 140px; position: relative; margin: -61px auto 0; border-radius: 7px; background: linear-gradient(#edf5fc, #d7e6f5); border: 3px solid #fff; overflow: hidden; box-shadow: 0 2px 8px #071b3530; display: flex; align-items: flex-end; justify-content: center; }
.profile-photo-v3 img { width: 136px; height: 133px; object-fit: contain; object-position: center bottom; }
.profile-photo-v3 img[hidden], .profile-photo-v3 .portrait-fallback[hidden] { display: none; }
.profile-photo-v3 .portrait-fallback { color: #506c88; }
.profile-v3-identity { text-align: center; padding: 10px 13px 14px; }
.profile-v3-kicker { font-size: 9px; font-weight: 600; letter-spacing: 1.65px; color: #7d96b1; margin-bottom: 3px; }
.profile-v3-identity h1 { font-size: clamp(24px, 2vw, 29px); line-height: 1.12; color: #102f50; letter-spacing: -.7px; font-family: var(--font); font-weight: 700; margin: 0; }
.profile-v3-team { font-size: 12px; line-height: 1.5; color: #426382; margin: 7px 0 10px; }
.profile-v3-team span { display: inline-block; margin-left: 6px; padding: 0 5px; font-size: 10px; border: 1px solid #b7cfe8; border-radius: 3px; color: #265982; white-space: nowrap; }
.profile-v3-facts { display: flex; gap: 4px 7px; justify-content: center; flex-wrap: wrap; font-size: 11px; color: #52708b; font-variant-numeric: tabular-nums; }
.profile-v3-facts span + span { border-left: 1px solid #cfdeed; padding-left: 7px; }
.profile-v3-facts span:first-child { color: #164576; font-weight: 700; }
.profile-v3-bio { padding: 0 15px; margin: 0; font-size: 11px; }
.profile-v3-bio > div { display: grid; grid-template-columns: 63px minmax(0,1fr); gap: 7px; padding: 8px 0; border-top: 1px solid #e0eaf4; line-height: 1.45; }
.profile-v3-bio dt { color: #6b85a0; font-size: 10px; }
.profile-v3-bio dd { margin: 0; color: #193e61; font-weight: 600; overflow-wrap: anywhere; }
.profile-v3-bio small { color: #7c8fa3; font-size: 9px; }
.profile-v3-bio .foreign-origin { display: inline-block; margin: 2px 0 0 4px; padding: 0 4px; border: 1px solid #b6cdeb; border-radius: 3px; font-size: 9px; color: #245887; white-space: nowrap; }
.profile-v3-links { display: flex; align-items: center; justify-content: space-between; padding: 6px 15px; font-size: 10px; }
.profile-v3-links a { text-decoration: none; color: #3e73a2; }
.profile-v3-links button { border: 0; background: transparent; color: #6b94bd; min-height: 24px; padding: 0 3px; }
.profile-v3-actions { display: flex; gap: 6px; padding: 10px 13px 13px; }
.profile-v3-actions button { flex: 1; font-size: 11px; min-height: 30px; padding: 4px 6px; }
.unified-percentiles { padding: 11px 14px 13px; border: 1px solid #c3d8ee; background-image: none; box-shadow: 0 3px 9px #0b3c6b0d; }
.unified-percentiles .card-heading { padding-bottom: 5px; margin-bottom: 6px; border-bottom: 2px solid #1469b9; }
.unified-percentiles .card-heading h2 { border: 0; padding: 0; font-size: 15px; }
.unified-percentiles .pct-axis { grid-template-columns: 112px minmax(70px,1fr) 62px; margin: 2px 0 3px; column-gap: 10px; font-size: 9px; height: 16px; color: #8495a6; }
.unified-percentiles .pct-row { grid-template-columns: 112px minmax(70px,1fr) 62px; column-gap: 10px; min-height: 25px; height: 25px; border-bottom: 1px solid #e9eff5; }
.unified-percentiles .pct-label { font-size: 11px; min-height: 25px; height: 25px; color: #274b6c; padding: 0; text-align: right; }
.unified-percentiles .pct-rail { height: 16px; margin: 0 11px; }
.unified-percentiles .p-marker { width: 22px; height: 22px; font-size: 10px; }
.unified-percentiles .pct-raw { color: #324b64; font-size: 11px; padding: 0; font-variant-numeric: tabular-nums; }
.unified-percentiles .pct-missing { min-height: 20px; height: 20px; padding: 0; background: repeating-linear-gradient(135deg, #f5f8fc, #f5f8fc 3px, #eaf0f7 3px, #eaf0f7 4px); border-radius: 0; border: 0; color: #7a8fa7; font-size: 10px; text-align: center; margin: 0 11px; }
.pct-section { margin: 0; padding: 0; }
.pct-section + .pct-section { margin-top: 9px; }
.pct-section-heading { display: flex; align-items: center; gap: 6px; min-height: 25px; border-bottom: 1px solid #b8d0e9; margin-bottom: 2px; padding: 0; }
.pct-section-heading h3 { font-size: 11px; color: #163f68; font-weight: 700; line-height: 1.3; border: 0; padding: 0; margin-right: auto; white-space: nowrap; }
.pct-section-heading .pct-cohort-context { color: #7c90a5; font-size: 9px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 65%; }
.pct-section-heading select { min-height: 23px; padding: 1px 4px; border: 0; color: #71879f; background: #f4f8fc; font-size: 10px; max-width: 70%; width: auto; }
.pct-section-heading .panel-info { color: #6f96bd; border: 0; background: transparent; padding: 0 2px; min-height: 21px; font-size: 12px; }
.pct-scale-key { font-size: 9px; display: flex; justify-content: space-between; align-items: center; margin-top: 8px; gap: 6px; color: #728ca5; }
.pct-scale-key .scale-tone { display: inline-flex; align-items: center; gap: 4px; }
.scale-tone i { width: 7px; height: 7px; border-radius: 50%; background-color: #c43a55; }
.scale-tone:first-child i { background-color: #408ac9; }
.scale-tone:nth-child(2) i { background-color: #95a6b8; }
.pitch-profile-card { border: 1px solid #c3d8ee; background-image: none; box-shadow: 0 3px 9px #0b3c6b0d; padding: 11px 12px 12px; }
.pitch-profile-card .card-heading { margin-bottom: 2px; }
.pitch-profile-card .card-heading h2 { font-size: 14px; padding-left: 8px; }
.pitch-profile-card .panel-context { font-size: 10px; margin-bottom: 3px; }
.movement-chart-v3 { display: block; width: 100%; max-width: 510px; height: auto; margin: 0 auto; }
.movement-tick { fill: #6e8b9f; font-size: 10px; font-family: var(--font); }
.movement-axis-label { fill: #53778f; font-size: 11px; font-family: var(--font); }
.pitch-point-label { fill: #173e5b; font-size: 12px; font-weight: 700; font-family: var(--font); paint-order: stroke; stroke: #f4f9fc; stroke-width: 3px; }
.ai-pitch-marker { border-radius: 50%; clip-path: circle(50%); }
.pitch-swatch { display: inline-block; width: 13px; height: 13px; border-radius: 50%; flex: none; }
.pitch-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 5px; margin: 1px 0 3px; }
.pitch-legend button { display: inline-flex; align-items: center; gap: 5px; min-height: 26px; padding: 2px 7px; font-size: 10px; font-weight: 600; border: 1px solid #d4e2f0; color: #3b6084; background: #fff; border-radius: 3px; }
.pitch-legend button[aria-pressed="true"] { border-color: #176ad3; background: #e9f3ff; }
.pitch-chart-caption { text-align: center; font-size: 9px; color: #7c92a9; margin: 3px 0 9px; }
.pitch-profile-card [data-pitch] { transition: opacity .15s; }
.pitch-profile-card [data-pitch].pitch-dim { opacity: .17; }
.pitch-overview-table { border: 0; border-radius: 0; }
.pitch-overview-table table { table-layout: fixed; width: 100%; border-collapse: collapse; }
.pitch-overview-table thead th:first-child { width: 16%; }
.pitch-overview-table thead th:nth-child(2) { width: 17%; }
.pitch-overview-table thead th:nth-child(3) { width: 14%; }
.pitch-overview-table thead th { font-size: 9px; color: #6f87a0; padding: 6px 3px; font-weight: 600; background: #f1f6fd; border-bottom: 1px solid #cbdff2; }
.pitch-preview-short-label { display: none; }
.pitch-overview-table td { font-size: 10px; font-variant-numeric: tabular-nums; height: 29px; padding: 6px 4px; border-bottom: 1px solid #e2ebf5; text-align: right; }
.pitch-overview-table tbody th { padding: 7px 4px; background: transparent; border-bottom: 1px solid #e2ebf5; font-size: 10px; }
.pitch-name { display: flex; align-items: center; gap: 5px; }
.pitch-name b { font-size: 10px; }
.pitch-name small { display: block; font-size: 8px; font-weight: 400; color: #8396aa; line-height: 1.3; }
.pitch-overview-table .pitch-name small { display: none; }
.player-detail-layout { display: grid; grid-template-columns: 255px minmax(0,1fr); gap: 14px; align-items: start; }
.player-detail-layout > * { min-width: 0; }
.player-detail-content { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; min-width: 0; }
.season-stats-panel { padding: 11px 12px 13px; border: 1px solid #c3d8ee; background-image: none; }
.season-row-count { margin-left: auto; font-size: 10px; color: #8297af; }
.season-table-shell { margin-top: 8px; border: 0; border-radius: 0; overflow-x: auto; overscroll-behavior-x: contain; }
.season-stats-table { width: 100%; border-collapse: collapse; table-layout: auto; font-variant-numeric: tabular-nums; }
.season-stats-table thead th { background: #e9f1fb; color: #355b83; border-top: 1px solid #cbddf0; border-bottom: 1px solid #b6cfe7; font-weight: 600; font-size: 10px; padding: 8px 6px; white-space: nowrap; }
.season-stats-table thead button { background: transparent; border: 0; min-height: 20px; padding: 0; color: inherit; font-size: inherit; font-weight: inherit; }
.season-stats-table td, .season-stats-table tbody th { font-size: 11px; padding: 8px 6px; border-bottom: 1px solid #e0eaf5; white-space: nowrap; text-align: right; }
.season-stats-table tbody th { color: #294e73; font-weight: 600; }
.season-stats-table .season-year { position: sticky; left: 0; z-index: 1; background: #fff; min-width: 44px; text-align: left; }
.season-stats-table thead .season-year { z-index: 4; background: #e9f1fb; }
.season-stats-table .selected-season > * { background-color: #f0f7ff; }
.season-stats-table tbody tr:hover > * { background-color: #e9f3ff; }
.season-stats-table .season-team { text-align: left; min-width: 115px; max-width: 190px; }
.season-team > span { display: block; overflow: hidden; text-overflow: ellipsis; max-width: 190px; font-weight: 500; }
.season-team small { display: block; font-size: 9px; color: #8a9aac; }
.season-team-head { text-align: left; }
.stats-scope-intro { font-size: 10px; color: #7c90a7; margin: 0 0 3px; }
.player-detail-content .profile-data-details { margin: 0; }
.player-detail-content .table-shell table { max-width: 100%; }
.pitch-data-panel { padding: 11px 12px 13px; border: 1px solid #c3d8ee; background-image: none; }
.pitch-data-panel .card-heading { margin-bottom: 8px; }
.pitch-data-panel .card-heading h2 { font-size: 14px; }
.pitch-data-shell { border: 0; border-radius: 0; overflow-x: auto; overscroll-behavior-x: contain; }
.pitch-data-table { width: 100%; min-width: 680px; table-layout: fixed; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.pitch-col-name { width: 7%; }
.pitch-col-physical { width: 7.9%; }
.pitch-col-score { width: 10.5%; }
.pitch-col-rank { width: 4.7%; }
.pitch-data-table thead th { position: static; z-index: auto; height: auto; font-size: 11px; line-height: 1.3; font-weight: 600; padding: 6px 5px; background: #edf4fc; border-top: 1px solid #c9dced; border-bottom: 1px solid #b5cde4; color: #355779; white-space: nowrap; }
.pitch-physical-header small { display: block; font-size: 9px; font-weight: 400; margin-top: 2px; color: #748ca4; }
.pitch-data-table thead .pitch-model-header { border-left: 1px solid #c9dced; padding: 5px 3px 2px; border-bottom: 0; text-align: center; }
.pitch-model-header button { background: transparent; border: 0; min-height: 18px; padding: 0; font-size: 11px; line-height: 1.3; color: #244b75; font-weight: 700; }
.pitch-data-table thead .pitch-model-subhead { font-size: 9px; padding: 2px 4px 5px; border-top: 0; color: #6d859e; text-align: right; font-weight: 400; }
.pitch-data-table thead .pitch-pct-head { text-align: center; }
.pitch-data-table tbody td, .pitch-data-table tbody th { height: 33px; padding: 5px; border-bottom: 1px solid #e0eaf4; font-size: 12px; line-height: 1.3; background: #fff; text-align: right; white-space: nowrap; }
.pitch-data-table tbody tr:nth-child(even) > * { background: #f7faff; }
.pitch-data-table tbody tr:hover > * { background: #ebf4fe; }
.pitch-data-table .pitch-bucket { position: sticky; left: 0; z-index: 1; text-align: left; box-shadow: 1px 0 #d4e2ef; }
.pitch-data-table thead .pitch-bucket { z-index: 4; background: #edf4fc; }
.pitch-data-table .pitch-name { gap: 5px; }
.pitch-data-table .pitch-name b { font-size: 11px; color: #20486c; }
.pitch-data-table .pitch-model-value { border-left: 1px solid #dce7f2; font-weight: 700; color: #193f64; }
.pitch-data-table .pitch-model-rank { text-align: center; padding-left: 0; padding-right: 2px; }
.pitch-data-percentile { display: inline-block; min-width: 25px; padding: 2px 3px; border-radius: 3px; font-size: 10px; font-weight: 700; color: #60768b; background: #e9eff5; }
.pitch-data-percentile.upper { color: #c02f46; background: #fce8ed; }
.pitch-data-percentile.lower { color: #1a6aaf; background: #e5f1fc; }
.pitch-rank-missing { color: #9cabb9; }
.player-pitch-analysis .pitch-profile-card .movement-chart-v3 { max-width: 380px; }
.player-pitch-analysis .pitch-profile-card { padding-bottom: 11px; }
.data-audit-toggle { font-size: 12px; color: #577fa7; }
.player-unavailable-profile { max-width: 315px; margin: 15px 0; }

@media (max-width: 1270px) and (min-width: 961px) {
  .player-summary-grid { grid-template-columns: 252px minmax(350px,1fr); }
  .player-summary-grid .pitch-profile-card { grid-column: 1; grid-row: 2; }
  .player-summary-grid .swing-percentiles { grid-column: 1; grid-row: 2; }
  .player-summary-grid .unified-percentiles { grid-column: 2; grid-row: 1 / span 2; }
  .player-summary-grid.no-pitch-profile { grid-template-columns: 270px minmax(345px,1fr); }
  .player-detail-layout { grid-template-columns: 220px minmax(0,1fr); }
  .profile-v3-identity h1 { font-size: 25px; }
}
@media (max-width: 960px) {
  .player-summary-grid { grid-template-columns: minmax(245px,.8fr) minmax(340px,1.15fr); gap: 12px; }
  .player-summary-grid .pitch-profile-card { grid-column: 1; grid-row: 2; }
  .player-summary-grid .swing-percentiles { grid-column: 1; grid-row: 2; }
  .player-summary-grid .unified-percentiles { grid-column: 2; grid-row: 1 / span 2; }
  .player-summary-grid.no-pitch-profile { grid-template-columns: minmax(245px,.8fr) minmax(340px,1.15fr); }
  .player-detail-layout { grid-template-columns: 220px minmax(0,1fr); }
  body[data-view="player"] .player-controls { gap: 8px; }
}
@media (max-width: 1200px) and (min-width: 701px) {
  .player-pitch-analysis .player-detail-content { display: contents; }
  .player-pitch-analysis .pitch-data-panel { grid-column: 1 / -1; grid-row: 1; }
  .player-pitch-analysis .player-profile-card { grid-column: 1; grid-row: 2; }
  .player-pitch-analysis .pitch-profile-card { grid-column: 2; grid-row: 2; }
  .player-pitch-analysis .pitch-outcome-panel, .player-pitch-analysis .pitch-history { grid-column: 1 / -1; }
}
@media (max-width: 700px) {
  body[data-view="player"] main { padding: 10px 10px 65px; }
  body[data-view="player"] .player-controls { margin: 0 0 10px; }
  body[data-view="player"] .player-controls .domain-tabs { width: 100%; gap: 2px; }
  body[data-view="player"] .player-controls .tab { min-width: 0; flex: 1; min-height: 32px; height: 32px; font-size: 11px; padding: 3px; }
  body[data-view="player"] .player-controls .filters { flex-wrap: nowrap; width: 100%; }
  body[data-view="player"] .player-controls .scope-picker { min-width: 0; flex: 1; }
  body[data-view="player"] .player-controls .scope-picker select { width: 100%; max-width: none; }
  body[data-view="player"] .player-controls select { max-width: 100%; font-size: 10px; }
  .mobile-profile-actions { display: none !important; }
  .player-summary-grid, .player-summary-grid.no-pitch-profile, .player-detail-layout { display: flex; flex-direction: column; gap: 11px; margin: 0; }
  .player-summary-grid > *, .player-detail-layout > * { width: 100%; }
  .player-profile-card { display: grid; grid-template-columns: 94px minmax(0,1fr); padding: 12px; gap: 0 12px; background-color: #fff; }
  .profile-cover, .profile-topline { display: none; }
  .profile-photo-v3 { margin: 0; height: 97px; width: 94px; grid-column: 1; grid-row: 1 / span 2; border-width: 2px; box-shadow: none; background: #e4eef8; }
  .profile-photo-v3 img { width: 90px; height: 94px; }
  .profile-v3-identity { text-align: left; grid-column: 2; padding: 0 0 4px; }
  .profile-v3-kicker { font-size: 8px; letter-spacing: 1.2px; }
  .profile-v3-identity h1 { font-size: 24px; letter-spacing: -.6px; }
  .profile-v3-team { font-size: 10px; margin: 4px 0 5px; }
  .profile-v3-team span { font-size: 8px; }
  .profile-v3-facts { justify-content: flex-start; font-size: 9px; gap: 3px 5px; }
  .profile-v3-facts span + span { padding-left: 5px; }
  .profile-v3-bio { grid-column: 1 / -1; padding: 0; margin-top: 9px; }
  .profile-v3-bio > div { grid-template-columns: 64px minmax(0,1fr); padding: 5px 0; font-size: 10px; }
  .profile-v3-bio dt { font-size: 9px; }
  .profile-v3-bio > div:last-child dt, .profile-v3-bio > div:last-child dd { font-size: 9px; }
  .profile-v3-links { grid-column: 2; grid-row: 2; padding: 1px 0; align-self: start; font-size: 8px; }
  .profile-v3-links button { min-height: 18px; }
  .profile-v3-actions { grid-column: 1 / -1; padding: 8px 0 0; }
  .profile-v3-actions button { font-size: 10px; min-height: 28px; }
  .player-section-tabs { flex-wrap: nowrap; gap: 2px; margin-bottom: 10px; }
  .player-section-tabs button { flex: 1; min-width: 0; padding: 3px 5px; font-size: 10px; white-space: nowrap; }
  .section-tab-label { display: none; }
  .section-tab-label-short { display: inline; }
  .unified-percentiles { padding: 10px 11px 12px; }
  .unified-percentiles .pct-row { grid-template-columns: 86px minmax(55px,1fr) 52px; column-gap: 7px; min-height: 27px; height: 27px; }
  .unified-percentiles .pct-axis { grid-template-columns: 86px minmax(55px,1fr) 52px; column-gap: 7px; }
  .unified-percentiles .pct-label, .unified-percentiles .pct-raw { font-size: 10px; }
  .unified-percentiles .pct-rail { margin: 0 10px; height: 15px; }
  .unified-percentiles .p-marker { width: 21px; height: 21px; }
  .unified-percentiles .pct-section-heading { min-height: 27px; }
  .pitch-profile-card .movement-chart-v3 { max-width: 380px; }
  .pitch-preview-full-label { display: none; }
  .pitch-preview-short-label { display: inline; }
  .season-stats-panel { padding: 10px; }
  .pitch-data-panel { padding: 10px; }
  .pitch-data-table tbody td, .pitch-data-table tbody th { height: 32px; }
  .season-stats-table td, .season-stats-table tbody th { font-size: 10px; padding: 7px 5px; }
  .season-stats-table .season-team { max-width: 140px; }
  .season-team > span { max-width: 140px; }
}
@media (pointer: coarse) {
  .unified-percentiles .pct-label, .unified-percentiles .pct-missing { position: relative; }
  .unified-percentiles .pct-label::after, .unified-percentiles .pct-missing::after { content: ''; position: absolute; inset: -7px 0; }
  .pitch-legend button { min-height: 35px; }
}

/* Search and numeric tables share the same compact player-card typography. */
#header-search { position: relative; overflow: visible; }
.global-suggestions { position: absolute; top: calc(100% + 7px); right: 0; width: min(480px,calc(100vw - 24px)); max-height: 440px; overflow-y: auto; padding: 5px; background: #fff; border: 1px solid #8fb8ed; border-radius: 5px; box-shadow: 0 8px 25px #17355335; z-index: 120; }
.global-suggestions[hidden] { display: none; }
.site-header form .search-suggestion { display: flex; width: 100%; margin: 0; text-align: left; border: 0; border-radius: 3px; padding: 9px 10px; color: #173653; background: #fff; min-height: 53px; }
.site-header form .search-suggestion:hover, .site-header form .search-suggestion.keyboard-active { background: #eaf3ff; }
.search-player-copy { min-width: 0; display: grid; gap: 4px; text-align: left; flex: 1; }
.search-player-copy strong { font-size: 14px; font-weight: 700; }
.search-player-copy small { font-size: 11px; color: #526c8b; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.search-player-id { color: #59728e; font-size: 11px; align-self: flex-start; white-space: nowrap; }
.player-search-form .search-field { flex: 1; min-width: 230px; }
.player-search-form .search-field input { width: 100%; }
.player-search-results { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.search-player-card { display: flex; align-items: center; gap: 9px; min-width: 0; min-height: 76px; padding: 11px; border: 1px solid #b4d0f1; background: #fff; border-radius: 5px; }
.search-player-card:hover { border-color: #0070ef; background: #f0f7ff; }
.search-headshot { width: 43px; height: 51px; object-fit: contain; flex: none; }
.search-result-count { margin: 17px 0 10px; font-size: 13px; color: #315b84; }
.search-no-match { margin: 8px; font-size: 13px; color: #526c8b; }
.player-support-tables { display: grid; gap: 14px; min-width: 0; }
.hand-splits-panel .season-stats-table th:first-child { position: sticky; left: 0; z-index: 1; background: #fff; text-align: left; }
.hand-splits-panel .season-stats-table thead th:first-child { z-index: 4; background: #0b2b48; color: #fff; }
.pitch-outcome-panel { margin-top: 14px; min-width: 0; }
.pitch-outcome-table { min-width: 930px; width: 100%; font-size: 11px; font-variant-numeric: tabular-nums; }
.pitch-outcome-table td, .pitch-outcome-table th { padding: 6px; height: 32px; white-space: nowrap; }
.pitch-outcome-table th:first-child { position: sticky; left: 0; background: #edf5ff; z-index: 1; min-width: 65px; }
.pitch-outcome-note { font-size: 11px; margin-top: 8px; }
@media(max-width:1100px) { .player-search-results { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:650px) {
  .player-search-results { grid-template-columns: minmax(0,1fr); }
  .player-search-form .search-field { min-width: 100%; }
  .global-suggestions { right: -4px; max-height: 360px; }
  .site-header form .search-suggestion { display: flex; }
  .player-support-tables { gap: 10px; }
  .pitch-outcome-panel { padding: 10px; }
}

/* The language control remains available beside the brand on narrow screens. */
.language-switch { display: inline-flex; flex: none; padding: 2px; gap: 1px; border: 1px solid #6b8bad; border-radius: 5px; }
.site-header .language-switch button { min-height: 27px; border: 0; padding: 3px 7px; font-size: 11px; color: #dbe9f7; background: transparent; border-radius: 3px; white-space: nowrap; }
.site-header .language-switch button[aria-pressed="true"] { background: #edf5ff; color: #174d7b; font-weight: 700; }
.site-header .language-switch button:hover { background: #355471; color: #fff; }
.site-header .language-switch button[aria-pressed="true"]:hover { background: #fff; color: #174d7b; }
.language-short { display: none; }
.competition-tabs { display: flex; gap: 3px; width: max-content; padding: 3px; margin: 0 0 10px; background: #e9f0f6; border: 1px solid #cad7e4; border-radius: 6px; }
.competition-tabs button { min-width: 67px; min-height: 31px; padding: 5px 16px; border: 0; border-radius: 4px; background: transparent; color: #4c657d; font-weight: 650; }
.competition-tabs button[aria-pressed="true"] { color: #fff; background: #1e5788; box-shadow: 0 1px 3px #173c5a24; }
.competition-tabs button:hover { filter: brightness(.93); }
.card-actions { display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.card-actions > button:not(.panel-info):not(.panel-add) { padding:5px 8px; font-size:10px; white-space:nowrap; }
.date-range-form { margin-bottom:6px; padding:12px; border:1px solid #cbddea; background:#f5f9fd; border-radius:7px; }
.date-range-form input { min-height:34px; width:160px; color:#193e61; }
.date-range-hint { margin:5px 0 16px; }
.period-player-name { margin:15px 0; font-size:24px; color:#193e61; }
.period-rating-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.period-rating-grid .percentile-panel { width:100%; grid-column:auto; }
.period-stats .card-heading span { font-size:12px; color:#667f98; }
.game-log-shell { max-height:650px; overflow:auto; }
.game-log-table thead { position:sticky; top:0; z-index:1; }
.game-log-table td, .game-log-table th { white-space:nowrap; }
.pitch-history > h2 { margin-bottom:8px; }
.png-preview { display:block; width:100%; max-height:480px; object-fit:contain; background:#eef4fa; margin-top:10px; }
@media(max-width:850px) { .period-rating-grid { grid-template-columns:minmax(0,1fr); } }
@media(max-width:600px) { .date-range-form { gap:10px; } .date-range-form label { flex:1; } .date-range-form input { width:100%; min-width:125px; } }
.site-header { gap: clamp(10px,1.9vw,27px); }
@media(max-width:1100px) { .site-header .header-nav { gap: 15px; } .site-header input { width: clamp(150px,22vw,260px); } }
@media(max-width:700px) {
  .site-header { height: 91px; display: grid; grid-template-columns: 25px minmax(0,1fr) auto; grid-template-rows: 34px 30px; gap: 6px 7px; padding: 9px 10px; }
  .site-header .menu-toggle { grid-column: 1; grid-row: 1; display: block; min-width: 25px; width: 25px; padding: 0; }
  .site-header .wordmark { grid-column: 2; grid-row: 1; min-width: 0; gap: 5px; font-size: 15px; }
  .site-header .wordmark img { width: 26px; height: 26px; }
  .site-header .wordmark small { font-size: 7px; letter-spacing: 1.2px; margin-top: 4px; }
  .site-header .language-switch { grid-column: 3; grid-row: 1; }
  .site-header .language-switch button { min-height: 25px; padding: 3px 6px; font-size: 10px; }
  .language-full { display: none; } .language-short { display: inline; }
  .site-header #header-search { grid-column: 1 / -1; grid-row: 2; width: 100%; margin: 0; min-width: 0; }
  .site-header #global-search { width: 100%; min-width: 0; flex: 1; height: 30px; border-radius: 4px; }
  .site-header #header-search > button { display: none; }
  .site-header .header-nav { display: none; }
  .global-suggestions { left: 0; right: auto; width: 100%; }
  .site-sidebar #nav { top: 91px; }
  html { scroll-padding-top: 102px; }
  body[data-language="en"] .profile-v3-bio > div { grid-template-columns: 74px minmax(0,1fr); }
  body[data-language="en"] .unified-percentiles .pct-label { white-space: normal; line-height: 1.1; font-size: 9px; }
  body[data-language="en"] .player-controls .domain-tabs .tab { font-size: 9px; }
}
.compare-table .compare-section th { background:#dce9f5; color:#193e61; padding:12px 16px; font-weight:700; }
.compare-player-heading { display:flex; gap:10px; align-items:center; margin-bottom:7px; }
.compare-player-heading > div:last-child { min-width:0; }
.compare-player-heading button { font-weight:700; text-align:left; }
.compare-player-heading p { font-size:11px; margin:4px 0; white-space:normal; }
.compare-portrait { width:54px; height:66px; flex:none; background:#f4f8fc; border-radius:4px; overflow:hidden; display:grid; place-items:center; }
.compare-headshot { width:54px; height:66px; object-fit:contain; }
.compare-portrait .portrait-fallback { padding:4px; font-size:9px; white-space:normal; }

/* Comparison uses a single compact value/percentile row per metric. */
body[data-view="compare"] main { padding-top:12px; }
body[data-view="compare"] .heading { display:inline-flex; vertical-align:middle; margin:0 16px 7px 0; }
body[data-view="compare"] .heading h1 { font-size:18px; margin:0; }
body[data-view="compare"] .toolbar { display:inline-flex; vertical-align:middle; margin:0 0 7px; gap:7px; }
body[data-view="compare"] .toolbar button, body[data-view="compare"] .toolbar a { min-height:28px; padding:3px 8px; font-size:11px; }
body[data-view="compare"] .date-range-form { padding:6px 9px; gap:8px; margin-bottom:7px; }
body[data-view="compare"] .date-range-form input { min-height:28px; height:28px; width:145px; font-size:11px; }
body[data-view="compare"] .date-range-form button { min-height:28px; padding:3px 8px; font-size:11px; }
body[data-view="compare"] .date-range-form label { font-size:10px; gap:2px; }
.compare-table thead th { padding:5px 8px; vertical-align:middle; }
.compare-table th, .compare-table td { min-width:190px; }
.compare-table .metric-sticky { min-width:145px; width:145px; font-size:11px; }
.compare-table tr[data-compare-metric] > th, .compare-table tr[data-compare-metric] > td { height:24px; padding:0 8px; vertical-align:middle; }
.compare-table .metric-sticky button { min-height:24px; font-size:11px; line-height:1.2; }
.compare-table .pct-row { grid-template-columns:minmax(75px,1fr) 54px; gap:4px; min-width:0; height:24px; min-height:24px; }
.compare-table .pct-rail { height:18px; margin:0 10px; }
.compare-table .p-track, .compare-table .p-fill { top:4px; height:10px; }
.compare-table .p-marker { width:18px; height:18px; font-size:9px; line-height:18px; }
.compare-table .pct-raw { font-size:11px; line-height:1.2; }
.compare-table .compare-section th { height:24px; padding:3px 8px; font-size:11px; }
.compare-player-heading { gap:6px; margin-bottom:3px; }
.compare-player-heading button { min-height:24px; padding:0; font-size:12px; }
.compare-player-heading p { margin:2px 0; font-size:10px; line-height:1.25; }
.compare-portrait, .compare-headshot { width:40px; height:48px; }
.compare-table thead th > button { min-height:23px; padding:1px 6px; font-size:10px; }
@media(max-width:600px) {
  .compare-table th, .compare-table td { min-width:170px; }
  .compare-table .metric-sticky { min-width:125px; width:125px; max-width:125px; }
}
@media(pointer:coarse) {
  .compare-table tr[data-compare-metric] > th, .compare-table tr[data-compare-metric] > td,
  .compare-table .pct-row, .compare-table .metric-sticky button { min-height:30px; height:30px; }
}
.player-controls .date-range-form { margin-top:7px; padding:6px 9px; gap:8px; }
.player-controls .date-range-form input { min-height:29px; height:29px; font-size:11px; }
.player-controls .date-range-form button { min-height:29px; padding:3px 8px; font-size:11px; }
.player-controls .date-range-form label { font-size:10px; gap:2px; }
.game-log-table .game-date { background:transparent; border:0; min-height:24px; padding:0; font-size:inherit; color:#1e5788; text-decoration:underline; }
.local-game-detail h2 { font-size:19px; margin-right:55px; }
.local-game-detail h3 { font-size:15px; margin:12px 0 5px; }
.local-game-detail h4 { font-size:12px; margin:7px 0 4px; }
.game-box-table th, .game-box-table td { padding:3px 8px; height:27px; }
.game-box-table tbody th { text-align:left; font-size:11px; white-space:nowrap; }
.game-box-table small { font-weight:400; color:#637b90; }
.selected-game-player { background:#e5f0fa; font-weight:700; }
.game-plays { margin-top:7px; max-height:340px; overflow:auto; }
.game-plays td:last-child { white-space:normal; text-align:left; }
@media(max-width:600px) { .player-controls .date-range-form { flex-wrap:wrap; } }
.compare-tray { left:auto; right:12px; bottom:12px; transform:none; padding:5px; gap:5px; }
.compare-tray button { min-height:28px; padding:3px 9px; font-size:11px; }
body:has(dialog[open]) .compare-tray { display:none; }
.player-context-filters{display:contents}.filters .player-context-filters select{max-width:190px}.filters .age-filter>span{display:flex;align-items:center;gap:4px}.filters .age-filter input{width:64px;min-width:0}.filters .age-filter>span>span{color:var(--muted)}
.filters .search-field { min-width:160px; }
