:root { --navy:#061b38; --blue:#0063a6; --ice:#f1f6f9; --ink:#16263a; --muted:#5b6b7d; --line:#d6e0e8; --white:#fff; }
* { box-sizing:border-box; }
body { margin:0; background:#f6f8fa; color:var(--ink); font:16px/1.5 Arial,Helvetica,sans-serif; }
.issue-shell { width:min(1180px,calc(100% - 48px)); margin:0 auto; padding:36px 0 72px; }
.masthead { padding:30px 42px; border-top:8px solid #7cc8f5; background:var(--navy); color:var(--white); }
.eyebrow,.section-label { margin:0; color:#7cc8f5; font-size:.75rem; font-weight:700; letter-spacing:.12em; }
h1,h2,h3 { font-family:Georgia,'Times New Roman',serif; }
h1 { max-width:800px; margin:10px 0; font-size:clamp(2.3rem,5vw,4.4rem); line-height:1.04; }
.issue-title { display:block; }
h2 { margin:4px 0 22px; font-size:2rem; line-height:1.15; }
h3 { margin:5px 0 8px; font-size:1.2rem; }
.dek { margin:0; color:#d5e6f1; }
.preview-status { margin:8px 0 0; padding:0; color:#c3d4e5; font-size:.76rem; }
.masthead .sources:empty { display:none; }
.player-filter.section { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:end; gap:12px 16px; margin:14px 0; padding:10px 16px; border:1px solid var(--line); background:#fff; }
.player-filter h2 { margin:0; font:700 .85rem/1.3 Arial,sans-serif; }
.player-filter .filter-buttons { margin:0; gap:6px; }
.tracker-filter-group { display:flex; flex-direction:column; align-items:flex-start; gap:6px; min-width:0; font-size:.85rem; font-weight:700; }
.tracker-stat-controls { min-width:0; }
.tracker-select { width:100%; min-width:0; min-height:40px; padding:8px 10px; border:1px solid #aac0d1; border-radius:4px; background:#fff; color:var(--ink); font:400 .85rem Arial,sans-serif; }
.player-filter [data-tracker-empty] { grid-column:1 / -1; margin:0; font-size:.85rem; color:var(--muted); }
.player-filter button { min-height:34px; padding:5px 10px; font-size:.78rem; border-color:#aac0d1; border-radius:4px; }
@media (max-width:699px) { .player-filter.section { grid-template-columns:1fr; } .player-filter button { min-height:44px; } .tracker-select { min-height:44px; font-size:16px; } }
.byu-flow { margin:0 0 22px; padding:16px; border:1px solid var(--line); border-radius:8px; background:#f8fbfd; }
.byu-stat-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 20px; margin-bottom:12px; }
.byu-stat-heading h2 { margin:0; }
.byu-stat-heading [data-byu-stat-controls] { width:220px; max-width:100%; }
@media (max-width:699px) { .byu-stat-heading [data-byu-stat-controls] { width:100%; } }
.byu-flow-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; }
.byu-flow-heading h3 { margin:0; font:700 1rem/1.3 Arial,sans-serif; }
.byu-flow-switch { display:flex; flex-wrap:wrap; gap:4px; }
.byu-flow-switch button { padding:7px 12px; min-height:40px; border:1px solid #9eb6c9; border-radius:5px; font-size:.8rem; }
.byu-flow-score { margin:10px 0 2px; font-size:.88rem; font-weight:700; }
.byu-flow-caption { margin:0 0 8px; color:var(--muted); font-size:.76rem; }
.byu-flow-canvas { min-width:0; }
.byu-flow-svg { width:100%; height:auto; display:block; touch-action:pan-y; }
.byu-flow-svg text { fill:#4b6275; font:12px Arial,sans-serif; }
.byu-flow-grid { stroke:#d9e4eb; stroke-dasharray:3 4; }
.byu-flow-zero { stroke:#687f92; stroke-width:1.4; }
.byu-flow-cursor { stroke:#6d8091; stroke-dasharray:3 3; pointer-events:none; }
.byu-flow-legend { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:6px 14px; margin:0 0 12px; padding:0; list-style:none; font-size:.76rem; }
.byu-flow-legend li { min-width:0; }
.byu-flow-player { display:inline-flex; align-items:center; gap:6px; min-height:30px; padding:3px 5px; border:0; border-radius:4px; background:transparent; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.byu-flow-player:hover,.byu-flow-player[data-flow-highlight="active"] { color:#003da5; background:#dcebf8; }
.byu-flow-player:focus-visible { outline:2px solid #003da5; outline-offset:2px; }
.byu-flow-svg g[data-flow-highlight="muted"] { opacity:.16; }
.byu-flow-svg g[data-flow-highlight="active"] .byu-contribution-line { stroke-width:4; }
.byu-flow-svg g[data-flow-highlight="active"] .byu-contribution-dot { stroke:#003da5; stroke-width:2; }
.byu-flow-swatch { width:10px; height:10px; border-radius:50%; flex:none; }
.byu-flow-inspect { display:block; box-sizing:border-box; margin-bottom:10px; font-size:.75rem; color:var(--muted); }
.byu-flow-inspect input { display:block; box-sizing:border-box; appearance:none; width:100%; height:36px; min-height:36px; padding:0; border:0; margin:0; background:transparent; cursor:ew-resize; }
.byu-flow-inspect input::-webkit-slider-runnable-track { height:4px; border-radius:2px; background:#a9bed3; }
.byu-flow-inspect input::-webkit-slider-thumb { appearance:none; width:16px; height:16px; margin-top:-6px; border:2px solid #fff; border-radius:50%; background:#003da5; box-shadow:0 0 0 1px #003da5; }
.byu-flow-inspect input::-moz-range-track { height:4px; border-radius:2px; background:#a9bed3; }
.byu-flow-inspect input::-moz-range-thumb { box-sizing:border-box; width:16px; height:16px; border:2px solid #fff; border-radius:50%; background:#003da5; box-shadow:0 0 0 1px #003da5; }
.byu-game-summary { display:flex; flex-wrap:wrap; align-items:center; gap:8px 18px; margin:-8px 0 18px; color:var(--muted); font-size:.86rem; }
.byu-game-result { color:var(--ink); font-weight:700; }
.box-score-controls { display:flex; flex-wrap:wrap; align-items:center; gap:10px 18px; margin-bottom:8px; }
.box-score-controls label { display:flex; align-items:center; gap:8px; font-size:.86rem; font-weight:700; }
.box-score-controls select { min-height:44px; max-width:100%; padding:8px 30px 8px 10px; border:1px solid #9eb6c9; border-radius:4px; background:#fff; color:var(--ink); font:inherit; }
.box-score-sort-help { margin:0 0 16px; color:var(--muted); font-size:.8rem; }
@media (max-width:699px) { .box-score-controls { flex-direction:column; align-items:stretch; } .box-score-controls label { justify-content:space-between; } .box-score-controls select { flex:1; min-width:0; } }
#byu-week .performance-game-row:has(.player-name-link:hover) td,#byu-week .performance-game-row:has(.player-name-link:focus-visible) td { background:#dcebf8; }
.byu-flow-detail { padding:10px 12px; border-radius:5px; background:#eaf2f8; font-size:.8rem; }
.byu-flow-detail p { margin:3px 0 0; }
.byu-flow-play { color:var(--muted); }
.byu-flow-player-totals { display:flex; flex-wrap:wrap; gap:4px 14px; margin-top:7px; font-size:.75rem; }
@media (max-width:699px) { .byu-flow { padding:12px 8px; } .byu-flow-switch button,.byu-flow-player { min-height:44px; } .byu-game-summary { flex-direction:column; align-items:flex-start; gap:7px; } }
.view-switcher { display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin-top:12px; padding:7px; border:1px solid var(--line); background:#e9f1f6; }
.view-link { display:inline-flex; min-height:40px; padding:7px 14px; border-radius:3px; color:#174666; font-size:.88rem; font-weight:700; text-decoration:none; }
.view-link:hover,.view-link[aria-current="page"],.view-link-current { background:#123a60; color:#fff; }
.suggest-player-button { margin-left:auto; min-height:40px; padding:7px 12px; border:1px solid #7c9cb4; border-radius:4px; background:#fff; color:#174666; font:700 .85rem Arial,sans-serif; cursor:pointer; }
.suggest-player-button:hover { background:#dcecf7; }
.player-suggestion-dialog { width:min(560px,calc(100% - 32px)); max-height:85vh; max-height:85dvh; padding:24px; overflow:auto; border:1px solid #91afc3; border-top:4px solid var(--blue); border-radius:8px; background:#fff; color:var(--ink); box-shadow:0 15px 60px #061b3850; }
.player-suggestion-dialog::backdrop { background:#061b3870; }
.suggestion-dialog-heading { display:flex; align-items:start; gap:12px; }
.suggestion-dialog-heading h2 { margin:0; flex:1; font-size:1.6rem; }
.suggestion-dialog-heading button { min-height:40px; padding:5px 8px; background:#eef4f8; border:1px solid var(--line); border-radius:4px; cursor:pointer; }
.player-suggestion-dialog p { font-size:.86rem; }
.suggestion-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:12px; }
.player-suggestion-dialog label { display:block; font-size:.84rem; font-weight:700; }
.player-suggestion-dialog label span { color:var(--muted); font-weight:400; }
.player-suggestion-dialog input,.player-suggestion-dialog select,.player-suggestion-dialog textarea { display:block; width:100%; min-height:44px; margin-top:4px; padding:9px; border:1px solid #9db3c3; border-radius:4px; background:#fff; color:var(--ink); font:16px/1.4 Arial,sans-serif; }
.player-suggestion-dialog textarea { resize:vertical; }
.player-suggestion-dialog [aria-invalid="true"] { border:2px solid #ab3323; }
.player-suggestion-dialog .suggestion-help { color:var(--muted); font-size:.76rem; }
.suggestion-primary { min-height:44px; padding:9px 14px; border:0; border-radius:4px; background:#123a60; color:#fff; font-weight:700; cursor:pointer; }
.suggestion-status { color:#274b68; }
[data-suggestion-result] .suggestion-primary { margin-top:10px; }
@media (max-width:480px) { .suggestion-fields { grid-template-columns:1fr; } .player-suggestion-dialog { padding:16px; } }
.view-intro { max-width:850px; margin:-8px 0 18px; color:var(--muted); font-size:.9rem; }
.timeline-view { padding-bottom:40px; }
.timeline-intro { max-width:900px; margin:-7px 0 14px; color:#40566c; font-size:.91rem; }
.timeline-method { margin:10px 0 22px; color:var(--muted); font-size:.78rem; }
.timeline-legend { display:flex; flex-wrap:wrap; gap:8px 18px; font-size:.77rem; font-weight:700; color:#35536c; }
.timeline-legend span { display:inline-flex; align-items:center; gap:6px; }
.timeline-key { width:15px; height:13px; border-radius:3px; border:1px solid #afc1d0; }
.timeline-key-byu { background:#1b6395; border-color:#1b6395; }
.timeline-key-destination { background:#ccece8; border-color:#6aa9a1; }
.timeline-key-empty { background:#f4f7f9; }
.timeline-key-retired { background:#e2e5eb; border-color:#7f899a; }
.timeline-key-college { background:#d9eaf8; border-color:#749fbe; }
.timeline-key-d2 { background:#eee1ff; border-color:#ae8ecb; }
.timeline-key-juco { background:#fff0cb; border-color:#c5a152; }
.timeline-key-developmental { background:#e4eef0; border-color:#7a999e; }
.timeline-key-nba { background:#16445c; border-color:#16445c; }
.timeline-key-gleague { background:#f5dbbd; border-color:#bf955e; }
.timeline-key-3x3 { background:#fadce9; border-color:#b56d94; }
.timeline-method summary { cursor:pointer; padding:4px 0; }
.timeline-wrap { width:100%; max-height:72vh; overflow:auto; border:1px solid var(--line); background:#fff; }
.timeline-table { width:max-content; min-width:100%; table-layout:fixed; font-size:.72rem; border-collapse:separate; border-spacing:0; }
.timeline-table th,.timeline-table td { padding:6px 5px; border-right:1px solid #e4edf2; text-align:center; vertical-align:middle; }
.timeline-table thead th { position:sticky; top:0; z-index:2; background:#eff5f8; color:#436078; font-size:.62rem; letter-spacing:.025em; height:38px; }
.timeline-table .timeline-group-label,.timeline-table .timeline-group-head { position:sticky; left:0; z-index:3; width:76px; min-width:76px; max-width:76px; background:#e4edf4; white-space:normal; border-right:2px solid #b6cadb; }
.timeline-group-label span,.timeline-group-label strong { display:block; }
.timeline-table .timeline-group-label { vertical-align:top; padding-top:12px; }
.timeline-group-label strong { font-size:.7rem; letter-spacing:0; white-space:nowrap; }
.timeline-table .timeline-player { position:sticky; left:76px; z-index:1; width:160px; min-width:160px; max-width:160px; background:#fff; text-align:left; white-space:normal; border-right:2px solid #b6cadb; }
.timeline-table thead .timeline-group-head,.timeline-table thead .timeline-player { z-index:4; background:#eff5f8; }
.timeline-table .timeline-number { position:sticky; left:236px; z-index:1; width:48px; min-width:48px; max-width:48px; background:#f4f8fb; border-right:2px solid #b6cadb; }
.timeline-table.timeline-table-lds .timeline-player { left:0; width:178px; min-width:178px; max-width:178px; }
.timeline-table thead .timeline-number { z-index:4; white-space:normal; line-height:1.2; }
.timeline-table td[data-season] { width:86px; min-width:86px; }
.timeline-table tbody.timeline-group + tbody.timeline-group tr:first-child > * { border-top:3px solid #a9bfd0; }
.timeline-table tbody tr:nth-child(even) .timeline-player { background:#f7fafc; }
.timeline-table tbody tr:hover .timeline-player { background:#e7f3f9; }
.timeline-table tbody td { height:49px; }
.timeline-player-name { display:block; font-size:.76rem; font-weight:700; line-height:1.18; }
.timeline-player-name a { min-height:24px; min-width:0; }
.timeline-status { display:block; margin-top:3px; color:#526c7e; font-size:.61rem; font-weight:400; line-height:1.2; text-transform:none; letter-spacing:0; }
.timeline-status a { min-height:24px; min-width:0; }
.timeline-number { color:#294960; font-weight:700; }
.timeline-chip { display:block; max-width:78px; margin:auto; padding:4px 3px; border-radius:3px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.63rem; font-weight:700; }
.timeline-chip-byu { background:#1b6395; color:#fff; }
.timeline-chip-destination { background:#ccece8; color:#154e4b; white-space:normal; overflow:visible; line-height:1.15; overflow-wrap:anywhere; }
.timeline-chip-retired { background:#e2e5eb; color:#465264; white-space:normal; }
.timeline-chip-injured { background:#fff0d9; color:#704819; white-space:normal; line-height:1.2; }
.timeline-chip-unknown { background:#eef1f4; color:#465264; white-space:normal; }
.timeline-player .injury-indicator { margin-top:4px; text-transform:none; letter-spacing:0; }
.profile-status-note { max-width:680px; margin:8px 0; font-size:.83rem; line-height:1.5; color:#40566c; }
.current-map-status-note { display:block; margin:4px 0; max-width:760px; color:#4b6171; font-size:.76rem; line-height:1.4; }
.current-map-player-list .injury-indicator { margin-left:6px; }
.timeline-chip-college { background:#d9eaf8; color:#214b6a; }
.timeline-chip-d2 { background:#eee1ff; color:#5b337c; }
.timeline-chip-juco { background:#fff0cb; color:#725015; }
.timeline-chip-developmental { background:#e4eef0; color:#38565b; }
.timeline-chip-nba { background:#16445c; color:#fff; }
.timeline-chip-gleague { background:#f5dbbd; color:#714418; }
.timeline-chip-international { background:#ccece8; color:#154e4b; }
.timeline-chip-3x3 { background:#fadce9; color:#742c57; }
.timeline-chip-college,.timeline-chip-d2,.timeline-chip-juco,.timeline-chip-nba,.timeline-chip-gleague,.timeline-chip-international,.timeline-chip-3x3,.timeline-chip-developmental { white-space:normal; overflow:visible; line-height:1.15; overflow-wrap:anywhere; }
.timeline-level { display:block; margin-top:3px; font-size:.54rem; letter-spacing:.02em; opacity:.85; }
.timeline-cell-source + .timeline-cell-source { margin-top:3px; }
.timeline-cell-source { display:block; color:inherit; text-decoration:none; min-height:24px; }
.timeline-cell-source:hover .timeline-chip,.timeline-cell-source:focus-visible .timeline-chip { outline:2px solid #00749a; outline-offset:1px; }
.timeline-empty { color:#9eb0bb; }
.compact-table-wrap { border:1px solid var(--line); }
.compact-table { min-width:1100px; table-layout:fixed; font-size:.7rem; }
.compact-table th,.compact-table td { padding:6px 4px; }
.compact-table th:nth-child(1),.compact-table td:nth-child(1) { width:145px; }
.compact-table th:nth-child(2),.compact-table td:nth-child(2) { width:135px; }
.compact-table th:nth-child(3),.compact-table td:nth-child(3) { width:150px; }
.compact-table th:nth-child(4),.compact-table td:nth-child(4) { width:205px; }
.compact-table th:nth-child(5),.compact-table td:nth-child(5) { width:32px; text-align:center; }
.compact-table thead th { position:sticky; top:0; z-index:2; background:#e8f0f5; }
.compact-table td[data-label="League"],.compact-table td[data-label="Team"],.compact-table td[data-label="Player"],.compact-table td[data-label="Opponent / result"] { white-space:normal; line-height:1.25; }
.compact-table td[data-label="Player"] { font-weight:700; }
.compact-table .profile-link { min-height:0; font-weight:700; }
.compact-section-heading th { padding:8px 10px; background:#123a60; color:#fff; font-size:.76rem; letter-spacing:.04em; }
.box-score-average-button { margin:0 0 12px; }
.box-score-section { margin:12px 0 24px; }
.box-score-section h3 { margin:8px 0; color:var(--navy); }
.box-score-section .compact-table { width:100%; min-width:0; table-layout:fixed; font-size:.68rem; }
.box-score-section .compact-table th,.box-score-section .compact-table td { padding:7px 3px; }
.box-score-section .compact-table th:nth-child(1),.box-score-section .compact-table td:nth-child(1) { width:12%; min-width:0; white-space:normal; }
.box-score-section .compact-table th:nth-child(2),.box-score-section .compact-table td:nth-child(2) { width:12%; min-width:0; white-space:normal; }
.box-score-section .compact-table th:nth-child(3),.box-score-section .compact-table td:nth-child(3) { width:15%; min-width:0; white-space:normal; }
.box-score-section .compact-table th:nth-child(n+4),.box-score-section .compact-table td:nth-child(n+4) { width:auto; min-width:0; text-align:right; }
.box-score-section .player-badges { gap:4px; margin:2px 0 0; min-height:0; }
.box-score-section .map-player-badge { font-size:.6rem; }
@media (min-width:700px) and (max-width:1099px) {
  .box-score-section .compact-table-wrap { overflow:visible; border:0; }
  .box-score-section .compact-table,.box-score-section .compact-table tbody { display:block; width:100%; }
  .box-score-section .compact-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .box-score-section .compact-table tbody tr { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin:12px 0; border:1px solid var(--line); border-radius:6px; overflow:hidden; }
  .box-score-section .compact-table td:nth-child(n) { display:block; width:auto; min-width:0; padding:10px; text-align:left; white-space:normal; }
  .box-score-section .compact-table td:nth-child(-n+3) { grid-column:1 / -1; }
  .box-score-section .compact-table td[data-label]::before { content:attr(data-label); display:block; margin-bottom:4px; font-size:.7rem; font-weight:700; color:var(--muted); }
}
.rank-hover { cursor:help; }
.rank-hover:focus-visible { outline:2px solid var(--blue); outline-offset:-2px; }
.rank-tooltip { position:fixed; z-index:100; max-width:min(310px,calc(100vw - 16px)); padding:10px 12px; border-radius:5px; background:#15374e; color:#fff; box-shadow:0 4px 12px #0003; white-space:pre-line; font-size:.78rem; line-height:1.5; pointer-events:none; }
.matchup-line { display:block; min-height:1.4em; line-height:1.4; }
.matchup-opponent,.team-record-line { color:#486376; }
.performance-table td,.box-score-section .compact-table td { vertical-align:top; }
.performance-table .player-badges { margin:0; min-height:1.4em; align-items:center; }
.performance-table .player-cell { gap:0; line-height:1.4; }
.performance-table .player-name-link { line-height:1.4; }
.shooting-count,.shooting-percentage { display:block; white-space:nowrap; }
.shooting-percentage { margin-top:2px; color:#536b7d; font-size:.9em; line-height:1.25; font-variant-numeric:tabular-nums; }
.section[hidden] { display:none; }
.box-score-section .compact-table tbody:nth-of-type(even) td { background:#edf7f9; }
.compact-game-row.is-head-to-head td { background:#eef8fc; }
.sheet-inline-record { display:block; margin-top:3px; color:#486376; font-size:.68rem; font-weight:700; white-space:nowrap; }
.sheet-badge-row { display:block; margin-top:3px; }
.sheet-badges { display:inline-flex; gap:3px; vertical-align:middle; }
.sheet-badge { display:inline-grid; min-width:15px; min-height:15px; padding:1px 2px; place-items:center; border-radius:3px; font-size:.55rem; font-weight:800; line-height:1; white-space:nowrap; }
.sheet-badge-byu-current,.sheet-badge-byu-former { width:22px; height:14px; padding:0; background:transparent; }
.sheet-badge-byu-current img,.sheet-badge-byu-former img { display:block; width:100%; height:100%; object-fit:contain; }
.sheet-badge-byu-former img { filter:grayscale(1); }
.sheet-badge-lds { background:#d7efe2; color:#225c40; }
.sheet-opponent-main { display:block; }
.sheet-result { display:block; color:#244c69; font-weight:700; white-space:nowrap; }
.sheet-date { color:#526779; }
.sheet-appearance { display:block; color:#7a4e13; font-size:.72rem; }
.logo-credit { margin:9px 0 0; color:var(--muted); font-size:.67rem; }
.player-profile { padding:0; border:0; background:transparent; }
.profile-hero { display:grid; grid-template-columns:88px minmax(0,1fr); gap:20px; padding:28px 32px; border:1px solid var(--line); border-top:4px solid var(--blue); background:#fff; }
.profile-monogram { position:relative; overflow:hidden; display:grid; place-items:center; width:88px; height:88px; border-radius:16px; background:#d7ecf8; color:#123a60; font:700 1.8rem/1 Arial,Helvetica,sans-serif; }
.profile-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center top; background:#fff; }
.profile-stats-links { display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:12px; font-size:.85rem; }
.profile-stat-toggle { display:flex; flex-wrap:wrap; gap:6px; margin:12px 0; }
.profile-stat-toggle button { min-height:44px; padding:8px 16px; border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--navy); font-weight:700; cursor:pointer; }
.profile-stat-toggle button[aria-pressed="true"] { background:var(--navy); color:#fff; border-color:var(--navy); }
.profile-stat-section h4 { margin:20px 0 10px; }
.profile-hero h2 { margin:3px 0 5px; }
.profile-team-line { margin:0; color:var(--muted); }
.profile-tags,.profile-back-links { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.profile-tag { padding:3px 8px; border-radius:3px; font-size:.72rem; font-weight:700; }
.profile-tag-byu { background:#d7ecff; color:#124675; }
.profile-tag-lds { background:#e2f4e9; color:#20563c; }
.profile-back-links a { min-height:32px; padding:3px 8px; }
.profile-block { margin-top:16px; padding:22px 28px; border:1px solid var(--line); background:#fff; }
.profile-block h3 { margin:0 0 14px; font-family:Arial,Helvetica,sans-serif; font-size:1.2rem; }
.profile-block h4 { margin:20px 0 6px; font-size:.93rem; }
.profile-help,.profile-map-note { margin:4px 0 12px; color:var(--muted); font-size:.83rem; }
.profile-unavailable { padding:14px; border-left:3px solid #9ab6c9; background:var(--ice); color:#375266; }
.profile-stats-table,.profile-games-table { min-width:1120px; font-size:.78rem; }
.profile-stats-table th,.profile-stats-table td,.profile-games-table th,.profile-games-table td { padding:8px 9px; }
.profile-stats-table tbody tr:nth-child(even),.profile-games-table tbody tr:nth-child(even) { background:#f7fafc; }
.profile-stats-table tbody tr.profile-season-combined { background:#e6f0f7; font-weight:700; border-top:2px solid #97b2c7; }
.profile-season-combined td,.profile-season-combined th { background:inherit; }
.profile-map { display:grid; grid-template-columns:minmax(0,2fr) minmax(210px,1fr); gap:16px; align-items:start; }
.profile-career-controls { grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:12px; }
.profile-career-controls label { display:grid; gap:4px; font-size:.82rem; font-weight:700; }
.profile-career-controls select { max-width:100%; min-height:40px; padding:8px; border:1px solid var(--line); background:white; color:var(--ink); font:inherit; }
.profile-career-canvas { min-width:0; }
.profile-career-detail { margin-top:12px; padding:12px; border-left:3px solid var(--blue); background:var(--ice); }
.profile-career-detail h4,.profile-career-detail p { margin:4px 0; }
.profile-career-choice { display:block; width:100%; min-height:44px; margin:6px 0; text-align:left; font:inherit; }
.profile-map-pin { cursor:pointer; }
.profile-map-pin:focus { outline:none; }
.profile-map-pin:focus-visible .profile-map-number-label,.profile-map-pin[aria-pressed="true"] .profile-map-number-label { stroke:#db9900; stroke-width:3; }
.profile-map .profile-map-hit { fill:transparent; stroke:none; pointer-events:all; cursor:pointer; }
.profile-map svg { display:block; width:100%; height:auto; border:1px solid var(--line); background:#f1f6f9; }
.profile-map-land { fill:#dbe7ef; stroke:#839aab; stroke-width:.55; fill-rule:evenodd; }
.profile-map-state { fill:none; stroke:#839aab; stroke-width:.55; fill-rule:evenodd; }
.profile-map-number-label { fill:#074f7c; stroke:#fff; stroke-width:1.5; }
.profile-map-pin circle { fill:#074f7c; stroke:#fff; stroke-width:2; }
.profile-map-pin text { fill:#fff; font:700 11px Arial,sans-serif; text-anchor:middle; dominant-baseline:middle; pointer-events:none; }
.profile-path-list { display:grid; gap:7px; max-height:340px; overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; margin:0; padding:2px 6px 2px 2px; list-style:none; }
.profile-path-list li { display:flex; gap:9px; align-items:start; padding:7px 9px; border:1px solid var(--line); background:#f8fbfd; }
.profile-path-number { display:grid; flex:none; place-items:center; width:23px; height:23px; border-radius:50%; background:#074f7c; color:#fff; font-size:.73rem; font-weight:700; }
.profile-path-list .profile-path-number { min-width:32px; min-height:32px; padding:0; border:0; }
.profile-path-list .profile-path-number[aria-pressed="true"] { box-shadow:0 0 0 3px #db9900; }
.profile-path-list strong,.profile-path-list small { display:block; }
.profile-path-list small { color:var(--muted); font-size:.73rem; }
.profile-map-note { grid-column:1 / -1; margin:0; }
.profile-source-list { display:grid; gap:4px; margin:0; padding-left:20px; font-size:.85rem; }
.section { margin-top:24px; padding:32px; background:var(--white); border:1px solid var(--line); }
.sources { margin:12px 0 0; color:var(--muted); font-size:.86rem; }
a { display:inline-flex; align-items:center; min-width:44px; min-height:44px; color:var(--blue); overflow-wrap:anywhere; }
.source-link { text-decoration-thickness:1px; text-underline-offset:2px; }
.masthead .source-link { color:#a9ddf8; }
.game-grid,.matchup-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.game-card { padding:20px; background:var(--ice); border-top:3px solid var(--blue); }
.game-card p { margin:8px 0; }
.score { display:flex; flex-wrap:wrap; gap:12px; align-items:baseline; font-size:1.2rem; }
.score strong:first-child { color:var(--navy); }
.score span { color:#176a42; font-weight:700; }
[hidden] { display:none !important; }
.table-wrap { overflow-x:auto; }
table { width:100%; border-collapse:collapse; font-variant-numeric:tabular-nums; }
th,td { padding:11px 10px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; white-space:nowrap; }
th { color:var(--muted); font-size:.72rem; letter-spacing:.07em; text-transform:uppercase; }
tbody tr:hover { background:var(--ice); }
.status-label { display:inline-block; padding:2px 6px; font:700 .68rem/1.4 Arial,Helvetica,sans-serif; letter-spacing:.05em; text-transform:uppercase; }
.verified { color:#195e43; background:#e8f4ed; }
.illustrative { color:#704f09; background:#fcf1d0; }
.matchup-list { margin:0; padding:0; list-style:none; }
.matchup-list li { padding:18px; border:1px solid var(--line); }
.matchup-list p { margin:8px 0 0; }
.matchup-players { margin:12px 0; padding-left:20px; }
.player-season-toggle { display:block; margin-top:10px; font-size:.82rem; }
.controls { border-left:4px solid var(--blue); }
.season-toggle { display:inline-flex; gap:8px; align-items:center; min-height:44px; font-weight:700; }
.filter-buttons { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
button { min-height:44px; min-width:44px; max-width:100%; padding:9px 12px; border:1px solid var(--navy); background:var(--white); color:var(--navy); font:inherit; font-weight:700; overflow-wrap:anywhere; }
button[aria-pressed="true"] { background:var(--navy); color:var(--white); }
.selection-detail { margin-bottom:0; color:var(--muted); }
a:focus-visible,button:focus-visible,input:focus-visible { outline:3px solid #efb84a; outline-offset:3px; }
@media (max-width:720px) { .issue-shell { width:min(100% - 24px,1180px); padding-top:12px; } .masthead,.section { padding:26px 22px; } .game-grid,.matchup-list { grid-template-columns:1fr; } }

/* The same table cells become labeled groups; no duplicate mobile dataset. */
.tracker-table { table-layout:fixed; font-size:.82rem; }
.tracker-table th,.tracker-table td { white-space:normal; overflow-wrap:anywhere; padding:10px 6px; }
.tracker-table th { letter-spacing:.02em; }
.tracker-table th:nth-child(1) { width:9%; }
.tracker-table th:nth-child(2) { width:12%; }
.tracker-table th:nth-child(3) { width:10%; }
.tracker-table th:nth-child(6),.tracker-table th:nth-child(7),.tracker-table th:nth-child(8) { width:6%; }
.tracker-table th:nth-child(9) { width:7%; }
.tracker-table th:nth-child(10) { width:13%; }
.tracker-table th:nth-child(11) { width:13%; }
.tracker-table .status-label { font-size:.6rem; padding:2px; }
.tracker-table button { padding:8px 5px; }
dl.mobile-stat-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; margin:10px 0 0; }
.mobile-stat-grid dt { color:var(--muted); font-size:.68rem; font-weight:700; }
.mobile-stat-grid dd { margin:0; font-variant-numeric:tabular-nums; }
.season-row { background:var(--ice); }
.matchup-list li,.game-card { min-width:0; overflow-wrap:anywhere; }
.section-label { color:#0063a6; }
.performance-table-wrap { margin-top:0; }
.league-separator { margin:32px 0 18px; border:0; border-top:3px solid #9ab6c9; }
.league-heading { margin:22px 0 14px; padding:12px 14px; border-left:5px solid var(--blue); background:#eaf2f7; color:var(--navy); }
.team-separator { margin:20px 0 16px; border:0; border-top:1px solid #b9c9d4; }
.team-heading { margin:0 0 8px; padding:9px 12px; background:#123a60; color:#fff; font:700 .95rem/1.35 Arial,Helvetica,sans-serif; }
.season-popover { position:fixed; z-index:100; width:min(820px,calc(100vw - 16px)); padding:12px 14px; border:1px solid #95adbe; border-top:3px solid var(--blue); border-radius:6px; background:#fff; box-shadow:0 12px 30px rgb(6 27 56 / 25%); overflow:auto; color:var(--ink); }
.season-popover-heading { display:block; font-size:1rem; }
.season-popover-period { margin:2px 0 10px; color:var(--muted); font-size:.78rem; }
.season-popover-scroll { overflow-x:auto; }
.season-popover-table { width:100%; min-width:max-content; table-layout:auto; font-size:.82rem; }
.season-popover-table th,.season-popover-table td { padding:8px 10px; }
.season-popover-table thead th { min-width:145px; white-space:normal; line-height:1.3; }
.season-popover-table thead th:first-child,.season-popover-table tbody th { position:sticky; left:0; z-index:1; min-width:82px; background:#fff; }
.season-popover-table tbody th { color:#075b78; }
.season-popover-table tbody td { min-width:145px; white-space:nowrap; }
.performance-table { min-width:1040px; font-size:.78rem; }
.performance-table th,.performance-table td { padding:9px 7px; }
.performance-table th:first-child { min-width:190px; white-space:normal; }
.performance-table td[data-label="Player"] { min-width:190px; white-space:normal; }
.performance-table .competition-group th { background:#e8f0f5; color:var(--navy); }
.performance-table .tracker-stat-headings th { background:#eff5f8; color:#28455c; border-bottom:2px solid #9ab6c9; }
@media (max-width:699px) {
  .performance-table .tracker-stat-headings { display:none; }
}
.player-cell { position:relative; display:grid; gap:2px; }
.player-cell .player-name-link,.player-cell .player-name { width:max-content; min-height:0; font-weight:700; text-decoration-thickness:1px; text-underline-offset:2px; }
.player-badges { display:flex; flex-wrap:wrap; gap:4px; margin:2px 0; }
.player-team-meta { color:var(--muted); font-size:.72rem; line-height:1.35; }
.player-status-line { display:flex; flex-wrap:wrap; align-items:center; gap:4px 7px; }
.player-selection-status { color:#195e43; font-size:.65rem; line-height:1.3; }
.injury-indicator,.head-to-head-indicator { display:inline-block; padding:2px 6px; border-radius:3px; font-size:.65rem; font-weight:700; line-height:1.3; }
.injury-indicator { background:#fff0d9; color:#875110; }
.injury-note { color:#704819; font-size:.66rem; }
.head-to-head-indicator { background:#d7eef6; color:#075b78; }
.player-performance-group.is-head-to-head .performance-game-row td { background:#eef8fc; }
.player-performance-group.is-head-to-head .performance-game-row td:first-child { border-left:3px solid #0c8fb2; }
.player-performance-group.is-head-to-head .performance-game-row.is-selected td { background:#fff2d4; }
.player-performance-group .performance-game-row + .performance-game-row td { border-top:1px dashed #b9c9d4; }
.player-performance-group + .player-performance-group td { border-top:1px solid #b9c9d4; }
.performance-table .season-row { background:var(--ice); }
.performance-table .season-total-row { background:#e7f0f6; }
.performance-table .season-row.is-selected td { background:var(--ice); }
.performance-table .season-total-row.is-selected td { background:#e7f0f6; }
.performance-table .season-row td { color:#28455c; font-size:.74rem; }
.season-label { font-weight:700; color:#075b78; }
.map-legend { display:flex; flex-wrap:wrap; gap:6px 16px; margin:8px 0; color:var(--muted); font-size:.78rem; }
.map-legend-item { display:inline-flex; align-items:center; gap:6px; }
.legend-dot { display:inline-block; width:10px; height:10px; border-radius:50%; }
.identity-former { --identity-color:#087f8c; }
.identity-lds { --identity-color:#ce6d13; }
.identity-both { --identity-color:#7b4ab1; }
.identity-none { --identity-color:#536b7b; }
.identity-mixed { --identity-color:#354d5b; }
.legend-dot.identity-former { background:#087f8c; }
.legend-dot.identity-lds { background:#ce6d13; }
.legend-dot.identity-both { background:#7b4ab1; }
.legend-dot.identity-none { background:#536b7b; }
.league-symbol { display:inline-block; width:13px; color:#254f68; font-style:normal; font-size:13px; line-height:1; text-align:center; }
.gleague-symbol { font-size:12px; }
.map-marker.identity-former .map-single-dot,.map-marker.identity-former .map-cluster-dot { fill:#087f8c; }
.map-marker.identity-lds .map-single-dot,.map-marker.identity-lds .map-cluster-dot { fill:#ce6d13; }
.map-marker.identity-both .map-single-dot,.map-marker.identity-both .map-cluster-dot { fill:#7b4ab1; }
.map-marker.identity-none .map-single-dot,.map-marker.identity-none .map-cluster-dot { fill:#536b7b; }
.map-marker { cursor:pointer; color:#284b61; }
.map-land.is-tracked-region { fill:#81b5c4; stroke:#49768c; stroke-width:.8; }
.map-region-label { fill:#183f53; stroke:#f5fafc; stroke-width:2.4px; paint-order:stroke; font:700 9px Arial,sans-serif; text-anchor:middle; dominant-baseline:middle; pointer-events:none; }
.map-leader-line { stroke:#526b7c; stroke-width:1; stroke-opacity:.82; pointer-events:none; }
.map-hit-target { fill:transparent; stroke:transparent; pointer-events:all; }
.map-single-dot { stroke:#fff; stroke-width:1; }
.map-cluster-dot { stroke:#fff; stroke-width:1; }
.map-marker.map-marker-cluster.identity-mixed .map-cluster-dot { fill:#354d5b; }
.map-marker.map-marker-dot.identity-mixed .map-single-dot { fill:#354d5b; }
.map-marker.map-marker-cluster text[data-cluster-count] { fill:#fff; font:700 8px Arial,sans-serif; text-anchor:middle; dominant-baseline:central; pointer-events:none; }
.map-marker.is-selected .map-single-dot,.map-marker.is-selected .map-cluster-dot { stroke:#132b3b; stroke-width:2; }
.map-marker:focus-visible { outline:none; }
.map-marker:focus-visible .map-hit-target { fill:rgb(255 255 255 / 55%); stroke:#132b3b; stroke-width:1; }
.map-detail { position:fixed; z-index:90; width:min(390px,calc(100vw - 16px)); max-height:min(46vh,340px); overflow:auto; margin:0; padding:12px; border:1px solid #9ab6c9; border-left:3px solid var(--blue); border-radius:5px; background:#fff; box-shadow:0 10px 28px rgb(6 27 56 / 23%); color:var(--ink); }
.regional-map-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.regional-map { margin:0; padding:12px; border:1px solid var(--line); background:#fbfdff; }
.regional-map h3 { margin:0 0 8px; font-size:1.05rem; }
.regional-map svg { max-height:300px; }
.map-unplaced { display:grid; gap:5px; margin:8px 0; padding:0; list-style:none; }
.map-unplaced-heading { color:var(--muted); font-size:.72rem; font-weight:700; text-transform:uppercase; }
.map-unplaced .map-location-select { width:100%; text-align:left; font-size:.76rem; }
.map-detail:empty { display:none; }
.map-team-heading { display:block; font-size:.94rem; line-height:1.3; }
.map-team-context { margin:3px 0 8px; color:var(--muted); font-size:.75rem; }
.map-team-game { margin:4px 0; font-size:.78rem; line-height:1.35; }
.cluster-player-list { margin:10px 0 0; padding:9px 0 0; border-top:1px solid var(--line); list-style:none; }
.cluster-player-list li + li { margin-top:4px; }
.cluster-player-select { display:flex; flex-wrap:wrap; align-items:center; gap:4px 6px; width:100%; min-height:38px; padding:6px 8px; border:1px solid var(--line); background:#fff; text-align:left; font-size:.82rem; line-height:1.25; }
.map-player-name { margin-right:auto; font-weight:700; }
.map-player-badge { flex:none; padding:2px 5px; border-radius:3px; font-size:.65rem; font-weight:700; letter-spacing:.03em; }
.badge-byu { background:#d7ecff; color:#124675; }
.badge-lds { background:#e2f4e9; color:#20563c; }
.badge-class { background:#edf0f4; color:#344c5c; }
.map-player-note { flex-basis:100%; color:var(--muted); font-size:.72rem; }
.cluster-player-select:hover,.cluster-player-select:focus-visible { border-color:var(--blue); background:var(--ice); }

@media (max-width:699px) {
  .profile-hero { grid-template-columns:56px minmax(0,1fr); gap:12px; padding:19px; }
  .profile-monogram { width:56px; height:56px; border-radius:10px; font-size:1.2rem; }
  .profile-block { padding:18px; }
  .profile-map { grid-template-columns:1fr; }
  .profile-map-note { grid-column:auto; }
  .regional-map-grid { grid-template-columns:1fr; }
  .season-popover { width:calc(100vw - 16px); }
  .season-popover-table { display:table; min-width:max-content; }
  .season-popover-table thead { display:table-header-group; }
  .season-popover-table tbody { display:table-row-group; }
  .season-popover-table tr { display:table-row; }
  .season-popover-table th,.season-popover-table td { display:table-cell; }
  .table-wrap { overflow:visible; }
  .compact-table-wrap,.profile-stats-wrap,.profile-games-wrap { overflow-x:auto; }
  .compact-table,.profile-stats-table,.profile-games-table { display:table; }
  .compact-table tbody,.profile-stats-table tbody,.profile-games-table tbody { display:table-row-group; }
  .compact-table thead,.profile-stats-table thead,.profile-games-table thead { display:table-header-group; }
  .compact-table tr,.profile-stats-table tr,.profile-games-table tr { display:table-row; margin:0; border:0; }
  .compact-table th,.compact-table td,.profile-stats-table th,.profile-stats-table td,.profile-games-table th,.profile-games-table td { display:table-cell; white-space:nowrap; }
  .compact-table td[data-label]::before { display:none; }
  table,tbody { display:block; }
  thead { display:none; }
  tr.mobile-stat-grid,.game-row,.season-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin:16px 0; border:1px solid var(--line); }
  td,.tracker-table td { display:block; min-width:0; padding:10px; white-space:normal; overflow-wrap:anywhere; }
  td[data-label]::before { content:attr(data-label); display:block; margin-bottom:4px; color:var(--muted); font-size:.68rem; font-weight:700; letter-spacing:.03em; }
  tr.mobile-stat-grid td:first-child { grid-column:1 / -1; font-weight:700; background:var(--ice); }
  tr.mobile-stat-grid td:first-child::before { display:none; }
  .tracker-table { font-size:1rem; }
  .tracker-table td[data-label="Status"],.tracker-table td[data-label="Player"],.tracker-table td[data-label="Team"],.tracker-table td[data-label="Statistics"],.tracker-table td[data-label="Source"] { grid-column:1 / -1; }
  .tracker-table .status-label { font-size:.68rem; padding:2px 6px; }
  .tracker-table td[data-label="Player"] button { width:100%; text-align:left; }
  dl.mobile-stat-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .season-row { margin-top:-16px; border-top:3px solid var(--blue); }
  .performance-table { min-width:0; }
  .performance-table-wrap { overflow:visible; }
  .performance-table tr.performance-game-row,.performance-table tr.season-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin:12px 0; border:1px solid var(--line); }
  .performance-table td[data-label="Player"] { grid-column:1 / -1; min-width:0; background:var(--ice); font-weight:700; }
  .player-performance-group { display:block; margin:0; padding:0; border:0; }
  .player-performance-group tr.performance-game-row { margin:12px 0; border:1px solid var(--line); }
  .player-performance-group tr.season-row { margin:-12px 0 12px; border-top:3px solid var(--blue); }
  .league-heading { font-size:1.08rem; }
  .team-heading { font-size:.9rem; }
  .player-performance-group tr.performance-game-row + tr.performance-game-row { margin-top:-12px; border-top:0; }
  .map-marker-dot .map-hit-target { r:7; }
  .map-marker-cluster .map-hit-target { r:8; }
  .timeline-wrap { overflow-x:auto; }
  .timeline-table { display:table; width:max-content; }
  .timeline-table thead { display:table-header-group; }
  .timeline-table tbody { display:table-row-group; }
  .timeline-table tr { display:table-row; }
  .timeline-table th,.timeline-table td { display:table-cell; padding:6px 5px; white-space:nowrap; }
  .timeline-table tbody th { white-space:normal; }
  .timeline-table .timeline-group-label,.timeline-table .timeline-group-head { width:59px; min-width:59px; max-width:59px; }
  .timeline-group-label strong { font-size:.6rem; }
  .timeline-table .timeline-player { left:59px; width:135px; min-width:135px; max-width:135px; }
  .timeline-table .timeline-number { left:194px; width:40px; min-width:40px; max-width:40px; }
  .timeline-table td[data-season] { width:82px; min-width:82px; }
}

.current-map-controls { display:flex; flex-wrap:wrap; gap:12px; align-items:end; margin:20px 0 12px; }
.current-map-controls label { display:grid; gap:5px; font-size:.78rem; font-weight:700; }
.current-map-controls label[hidden] { display:none; }
.current-map-controls select,.current-map-controls button { min-height:42px; padding:8px 12px; border:1px solid #a9bac9; border-radius:5px; background:white; color:#12324b; font:inherit; }
.current-map-count-summary { color:#40576a; font-size:.82rem; }
.current-map-legend { display:flex; flex-wrap:wrap; gap:14px; font-size:.76rem; margin:12px 0; }
.current-map-legend span { display:flex; gap:6px; align-items:center; }
.current-map-legend i { width:9px; height:9px; border-radius:50%; background:currentColor; }
.current-map-legend i.current-map-previous-symbol { border-radius:0; background:white; border:1.8px solid #40576a; }
.current-map-byu { color:#1470af; }.current-map-lds { color:#16865c; }.current-map-both { color:#d55e00; }.current-map-unclassified { color:#777; }
.current-map-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr)); gap:16px; }
.current-map-panel { min-width:0; border:1px solid #ccd8e2; border-radius:8px; overflow:hidden; background:#f2f6f9; }
.current-map-panel h3 { font-size:.88rem; padding:12px 16px 0; margin:0; }
.current-map-panel svg { display:block; width:100%; height:auto; max-height:420px; }
.current-map-panel.current-map-inset { width:var(--hawaii-inset-width,220px); max-width:100%; margin-top:12px; }
.current-map-grid:has([data-region="mainland"]) { display:block; position:relative; }
.current-map-grid[data-hawaii-placement="overlay"] .current-map-inset { position:absolute; left:12px; bottom:12px; margin:0; z-index:1; box-shadow:0 2px 10px #12324b16; }
.current-map-inset h3 { padding:6px 9px 0; font-size:.7rem; }
.current-map-land { fill:#e3e9ee; stroke:#a1afba; stroke-width:.7; fill-rule:evenodd; }
.current-map-occupied { fill:#accddd; stroke:#62899d; }
.current-map-place-label { font:12px Arial,sans-serif; fill:#4b6171; text-anchor:middle; pointer-events:none; paint-order:stroke; stroke:#f4f8fb; stroke-width:2.5px; }
.current-map-marker { cursor:pointer; }.current-map-dot { fill:currentColor; stroke:white; stroke-width:1.2; }
.current-map-dot-unconfirmed { fill:white; stroke:currentColor; stroke-width:1.8; }
.current-map-leader { stroke:currentColor; stroke-width:.7; pointer-events:none; }
.current-map-label-leader { stroke:#8297a5; stroke-width:.6; pointer-events:none; }
.current-map-count { fill:white; font:700 7px Arial,sans-serif; text-anchor:middle; dominant-baseline:middle; pointer-events:none; }
.current-map-unconfirmed .current-map-count { fill:currentColor; }
.current-map-marker:focus-visible .current-map-dot { stroke:#112f48; stroke-width:1.2; }
.current-map-popup { position:fixed; z-index:110; width:320px; max-width:calc(100vw - 16px); max-height:calc(100vh - 24px); overflow:auto; padding:14px; background:#fff; color:#12324b; border:1px solid #8caabd; border-top:3px solid #1470af; border-radius:6px; box-shadow:0 8px 28px #17394d30; font-size:.85rem; }
.current-map-popup h3 { margin:0 48px 8px 0; font-size:1rem; }.current-map-dismiss { float:right; border:0; background:#eef4f8; padding:5px; cursor:pointer; }
.current-map-team-context { font-size:.76rem; color:#4b6171; margin:6px 0; }
.current-map-location-status { display:inline-block; font-size:.73rem; font-weight:700; color:#40576a; margin:0 0 3px; }
.current-map-popup-players { list-style:none; padding:0; margin:6px 0 0; }.current-map-popup-players li { margin:0; padding:4px 0; line-height:1.35; border-top:1px solid #e1e8ee; }
.current-map-popup-players a { display:inline; min-height:0; min-width:0; }
.current-map-badges { font-size:.65rem; font-weight:700; color:#526576; }.current-map-source { font-size:.75rem; }
.current-map-directory { margin-top:18px; font-size:.8rem; }.current-map-directory summary { cursor:pointer; }.current-map-player-list { padding-left:20px; }.current-map-player-list li { margin:7px 0; }
@media (max-width:680px) {
  .current-map-controls label { flex:1 1 130px; min-width:0; }
  .current-map-controls select { width:100%; }
}

/* Touch access is independent of viewport width; layout changes stay phone-only. */
.mobile-map-picker,.mobile-timeline-cards { display:none; }
.current-map-touch-target { fill:transparent; pointer-events:none; }
.map-detail-dismiss { float:right; cursor:pointer; padding:8px; border:1px solid var(--line); background:var(--ice); }
@media (hover:none), (pointer:coarse) {
  .current-map-touch-target { pointer-events:all; }
  .map-marker .map-hit-target { r:22; }
  .mobile-map-picker { display:grid; gap:8px; margin:12px; font-size:1rem; }
  .mobile-map-picker select { width:100%; min-height:44px; font:inherit; }
  .map-fallback { display:grid !important; position:static !important; width:auto !important; height:auto !important; clip:auto !important; clip-path:none !important; overflow:visible !important; gap:8px; padding:0; list-style:none; }
  .map-fallback button,.map-location-select,.cluster-player-select,.map-detail-dismiss,.current-map-dismiss { min-height:44px; }
}
@media (max-width:699px) {
  .issue-shell { width:calc(100% - 16px); padding-top:8px; }
  .masthead,.section,.profile-block { padding:16px 12px; }
  .view-switcher { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .view-switcher a { display:flex; align-items:center; justify-content:center; text-align:center; }
  .view-switcher a,button,select,summary { min-height:44px; }
  input,select { font-size:16px; }
  .current-map-controls { display:grid; grid-template-columns:1fr; }
  .current-map-controls label,.current-map-controls button { width:100%; }
  .mobile-map-picker { display:grid; gap:8px; margin:12px; }
  .mobile-map-picker select { width:100%; min-height:44px; font-size:16px; }
  .current-map-touch-target { pointer-events:all; }
  .map-marker .map-hit-target { r:22; }
  .current-map-popup,.map-detail { left:8px !important; right:8px !important; top:auto !important; bottom:calc(8px + env(safe-area-inset-bottom)) !important; width:auto; max-width:none; max-height:65vh !important; max-height:65dvh !important; padding:16px; font-size:1rem; overscroll-behavior:contain; }
  .current-map-dismiss,.map-detail-dismiss { min-width:64px; min-height:44px; }
  .current-map-popup-players a { display:inline-flex; align-items:center; min-height:44px; }
  .current-map-player-list { padding:0; list-style:none; }
  .current-map-player-list li { display:grid; padding:12px; border:1px solid var(--line); font-size:1rem; }
  .current-map-player-list a { display:flex; align-items:center; min-height:44px; }
  .compact-table-wrap,.profile-stats-wrap,.profile-games-wrap { overflow:visible; border:0; }
  .box-score-section .compact-table,.compact-table,.profile-stats-table,.profile-games-table { display:block; min-width:0; width:100%; font-size:1rem; }
  .compact-table tbody,.profile-stats-table tbody,.profile-games-table tbody { display:block; margin:0; padding:0; border:0; }
  .compact-table thead,.profile-stats-table thead,.profile-games-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .compact-table tr,.profile-stats-table tr,.profile-games-table tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin:12px 0; border:1px solid var(--line); border-radius:6px; overflow:hidden; }
  .box-score-section .compact-table th,.box-score-section .compact-table td,.compact-table th,.compact-table td,.profile-stats-table th,.profile-stats-table td,.profile-games-table th,.profile-games-table td { display:block; width:auto; min-width:0; max-width:none; white-space:normal; text-align:left; padding:10px; overflow-wrap:anywhere; line-height:1.4; }
  .box-score-section .compact-table th:nth-child(n),.box-score-section .compact-table td:nth-child(n),.compact-table th:nth-child(n),.compact-table td:nth-child(n) { width:auto; min-width:0; max-width:none; text-align:left; }
  .compact-table td[data-label]::before,.profile-stats-table [data-label]::before,.profile-games-table [data-label]::before { content:attr(data-label); display:block; margin-bottom:4px; color:var(--muted); font-size:.75rem; font-weight:700; }
  .compact-table td[data-label="Name"],.compact-table td[data-label="Player"],.compact-table td[data-label="League"],.compact-table td[data-label="Division"],.compact-table td[data-label="Team"],.compact-table td[data-label="Opponent / result"],.profile-stats-table th,.profile-stats-table td[data-label="Team"],.profile-stats-table td[data-label="League"],.profile-games-table th,.profile-games-table td[data-label="Team / competition"],.profile-games-table td[data-label="Opponent"] { grid-column:1 / -1; }
  .compact-table td[data-label="Name"],.compact-table td[data-label="Player"],.profile-stats-table th,.profile-games-table th { background:var(--ice); font-weight:700; }
  .compact-table .profile-link,.compact-table .player-name-link { display:inline-flex; align-items:center; min-height:44px; }
  .timeline-wrap.has-mobile-cards { display:none; }
  .mobile-timeline-cards { display:grid; gap:12px; }
  .mobile-timeline-card { padding:14px; border:1px solid var(--line); border-radius:8px; background:white; line-height:1.5; }
  .mobile-timeline-card h3 { margin:0; font-size:1.1rem; }
  .mobile-timeline-card h3 a,.mobile-timeline-card summary { display:flex; align-items:center; min-height:44px; }
  .mobile-timeline-stop { padding:10px 0; border-top:1px solid var(--line); }
  .mobile-timeline-stop p { margin:4px 0; }
  .mobile-timeline-stop .source-link { display:inline-flex; align-items:center; min-height:44px; margin-right:12px; }
  .profile-career-controls { display:grid; grid-template-columns:1fr; }
  .profile-career-controls select { width:100%; min-height:44px; font-size:16px; }
  .profile-path-list .profile-path-number { min-width:44px; min-height:44px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms !important; transition-duration:.01ms !important; } }

.ncaa-ladder-heading { margin:-16px -20px 20px; padding:24px 20px; background:#102d47; color:#fff; border-radius:8px; }
.ncaa-ladder-heading h2 { margin:4px 0 10px; color:white; font-size:clamp(1.5rem,3vw,2.2rem); letter-spacing:-.03em; }
.ncaa-ladder-heading p { margin:0; max-width:760px; line-height:1.5; }
.ncaa-ladder-eyebrow { color:#b8d5e7; font-size:.72rem; font-weight:800; letter-spacing:.12em; }
.ncaa-ladder-controls { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.ncaa-ladder-controls label { display:grid; gap:7px; font-size:.85rem; font-weight:700; min-width:0; }
.ncaa-ladder-controls select { width:100%; min-height:44px; font:inherit; padding:9px; border:1px solid #a8bac8; border-radius:6px; background:#fff; color:#16334b; }
.ncaa-ladder-mobile-conference { display:none !important; }
.ncaa-ladder-legend { display:flex; flex-wrap:wrap; align-items:center; gap:10px 22px; margin:20px 0 12px; font-size:.84rem; }
.ncaa-ladder-legend span { display:inline-flex; align-items:center; gap:9px; }
.ncaa-ladder-legend i { display:inline-block; width:18px; height:18px; border:3px solid #003da5; border-radius:50%; background:white; }
.ncaa-ladder-legend .ncaa-ring-lds { border-color:#b88013; }
.ncaa-ladder-legend .ncaa-ring-both { border-color:#003da5; outline:2px solid #b88013; outline-offset:2px; }
.ncaa-ladder-status { color:#486173; font-size:.85rem; line-height:1.5; }
.ncaa-ladder-scroll { overflow-x:auto; overscroll-behavior-x:contain; border:1px solid #d5e1e9; border-radius:8px; background:white; padding:16px 0 4px; }
.ncaa-ladder-scroll > svg { display:block; max-width:none; }
.ncaa-ladder-band { fill:transparent; stroke:#dce5ec; stroke-width:.6; }
.ncaa-ladder-band.alternate { fill:#edf3f8; fill-opacity:.58; }
.ncaa-ladder-gridline { stroke:#cbd9e3; stroke-width:.75; stroke-dasharray:3 4; }
.ncaa-ladder-tick { fill:#60778a; font:11px system-ui; text-anchor:end; }
.ncaa-ladder-axis-title { fill:#60778a; font:11px system-ui; }
.ncaa-ladder-conference { fill:#183c5b; font:800 13px system-ui; text-anchor:middle; }
.ncaa-ladder-mean { stroke:#274f6c; stroke-width:2.5; opacity:.7; }
.ncaa-ladder-mean-label { fill:#4a6578; font:11px system-ui; text-anchor:middle; }
.ncaa-ladder-marker { cursor:pointer; }
.ncaa-ladder-hit { fill:transparent; pointer-events:all; }
.ncaa-ladder-team-disc { fill:white; stroke:#b5c6d3; stroke-width:1.2; filter:drop-shadow(0 1px 2px #18324b20); }
.ncaa-ladder-byu-ring { fill:none; stroke:#003da5; stroke-width:2.7; pointer-events:none; }
.ncaa-ladder-lds-ring { fill:none; stroke:#b88013; stroke-width:2.5; pointer-events:none; }
.ncaa-ladder-marker:focus { outline:none; }
.ncaa-ladder-marker:focus-visible .ncaa-ladder-team-disc { stroke:#111; stroke-width:3; }
.ncaa-ladder-initials { fill:#23455e; font:700 9px system-ui; text-anchor:middle; pointer-events:none; }
.ncaa-ladder-detail { position:fixed; right:auto; bottom:auto; z-index:120; box-sizing:border-box; width:min(320px,calc(100vw - 16px)); max-height:calc(100dvh - 16px); overflow:auto; overscroll-behavior:contain; padding:14px; border:1px solid #99afc1; border-top:3px solid #003da5; border-radius:8px; background:white; box-shadow:0 8px 32px #0e294b38; font-size:.85rem; }
.ncaa-ladder-detail[hidden] { display:none; }
.ncaa-ladder-detail > button { float:right; margin:0 0 8px 12px; }
.ncaa-ladder-detail h3 { font-size:1.25rem; margin:8px 0; }
.ncaa-ladder-detail ul { margin:8px 0; padding-left:20px; }
.ncaa-ladder-detail li { margin:0; padding:2px 0; line-height:1.35; }
.ncaa-ladder-detail li a { min-width:0; min-height:24px; line-height:1.35; vertical-align:middle; }
.ncaa-ladder-connection-note { color:#284d6c; font-weight:700; }
.ncaa-ladder-directory { margin:20px 0 0; }
.ncaa-ladder-directory summary { display:flex; align-items:center; min-height:44px; cursor:pointer; font-weight:700; }
.ncaa-ladder-directory > div { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:20px; }
.ncaa-ladder-list-team { display:block; width:100%; min-height:44px; margin:4px 0; text-align:left; font-size:.86rem; border-color:#c4d3de; }
.ncaa-ladder-credit,.ncaa-ladder-date { font-size:.78rem; color:#516a7e; line-height:1.6; }
.ncaa-ladder-empty { padding:24px; line-height:1.6; }
@media (max-width:699px) {
 .ncaa-ladder-heading { margin:-4px -4px 18px; padding:20px 16px; }
 .ncaa-ladder-controls { grid-template-columns:1fr; gap:12px; }
 .ncaa-ladder-controls select { font-size:16px; }
 .ncaa-ladder-scope { display:none !important; }
 .ncaa-ladder-mobile-conference { display:grid !important; }
 .ncaa-ladder-scroll { padding-top:12px; }
 .ncaa-ladder-scroll > svg { min-width:100%; }
 .ncaa-ladder-detail { font-size:1rem; }
 .ncaa-ladder-detail li a { display:inline-flex; align-items:center; min-height:32px; vertical-align:middle; }
 .ncaa-ladder-directory > div { grid-template-columns:1fr; }
}
