/* Shared graph-first presentation for public data pages. */
.viz-panel{padding:28px;border:1px solid #dce4ec;border-radius:10px;background:#fff;margin:0 0 24px;color:#153b59;min-width:0}
.viz-panel h2,.viz-panel h3{margin:0 0 7px;line-height:1.35;font-family:var(--sans,'DM Sans',sans-serif);font-weight:800}
.viz-panel h2{font-size:23px}.viz-panel h3{font-size:18px}
.viz-panel p{line-height:1.6;color:#617386;font-size:13px;margin:5px 0 18px}
.viz-panel header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px;flex-wrap:wrap}
.viz-controls{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0 22px;align-items:end}
.viz-controls label{display:grid;gap:6px;font-size:11px;font-weight:700;color:#526c80;flex:1;min-width:180px}
.viz-controls input,.viz-controls select{padding:11px;border:1px solid #cbd7e3;border-radius:5px;font:inherit;font-size:13px;background:#fff;color:#153b59;min-width:0;width:100%}
.viz-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}
.viz-tabs button,.viz-action{font:inherit;font-size:12px;font-weight:700;border:1px solid #dce4ec;border-radius:5px;padding:10px 14px;background:#edf2f6;color:#153b59;cursor:pointer}
.viz-tabs button[aria-pressed=true]{background:#153b59;color:#fff;border-color:#153b59}
.viz-action{background:#fff;color:#bd0026}.viz-action:hover{background:#f5f7fa}
.viz-bars{margin-top:12px}.viz-axis{display:flex;justify-content:space-between;margin:0 76px 8px 236px;font-size:11px;color:#617386}
.viz-row{display:grid;grid-template-columns:220px minmax(80px,1fr) 60px;gap:16px;align-items:center;padding:15px 0;border-top:1px solid #e7edf3}
.viz-identity{display:flex;align-items:center;gap:10px;min-width:0}.viz-identity>div{min-width:0}.viz-identity strong,.viz-identity a{font-size:13px;line-height:1.5;color:#153b59;font-weight:700;overflow-wrap:anywhere}.viz-identity a:hover{text-decoration:underline}.viz-identity small{display:block;font-size:11px;color:#617386;margin-top:3px;line-height:1.5}
.viz-logo{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 34px;width:34px;height:34px;border:1px solid #dce4ec;border-radius:8px;font-size:10px;font-weight:700;background:#fff;color:#617386;overflow:hidden}.viz-logo img{position:absolute;inset:3px;width:26px;height:26px;object-fit:contain;background:#fff}.viz-logo.has-logo>span{visibility:hidden}
.viz-track{height:23px;background:#f0f4f8;position:relative;border-radius:2px;min-width:0}.viz-bar{display:block;height:100%;background:#236083;border-radius:2px}.viz-row.is-selected .viz-bar{background:#c8952e}.viz-row>b{text-align:right;font-size:15px;font-variant-numeric:tabular-nums;color:#153b59}.viz-reference{position:absolute;height:31px;top:-4px;border-left:2px dashed #cf0031;z-index:1}
.viz-caption{font-size:11px!important;color:#617386!important;margin:14px 0!important}.viz-evidence{border-top:1px solid #dce4ec;margin-top:20px;padding-top:14px;font-size:12px}.viz-evidence summary{cursor:pointer;color:#315b79;font-weight:700;padding:8px 0}.viz-table-scroll{overflow:auto;margin-top:12px}.viz-table-scroll table{border-collapse:collapse;width:100%;font-size:12px}.viz-table-scroll td,.viz-table-scroll th{padding:12px;text-align:left;border-bottom:1px solid #e7edf3;white-space:nowrap;color:#153b59}.viz-table-scroll th{background:#f5f7fa}.viz-empty{padding:20px;background:#f5f7fa;border-radius:6px}
.viz-trend{position:relative;padding-left:38px;margin-top:24px}.viz-trend svg{width:100%;height:200px;display:block;overflow:visible}.viz-trend-scale{position:absolute;left:0;top:10px;bottom:34px;display:flex;flex-direction:column;justify-content:space-between;font-size:11px;color:#617386}.viz-trend-dates{display:flex;justify-content:space-between;font-size:11px;color:#617386;margin-top:5px}.viz-line{fill:none;stroke:#236083;stroke-width:3;vector-effect:non-scaling-stroke}.viz-grid{fill:none;stroke:#e7edf3;vector-effect:non-scaling-stroke}.viz-dot{fill:#236083;stroke:#fff;stroke-width:1.5;vector-effect:non-scaling-stroke}.viz-dot:focus{outline:2px solid #c8952e;fill:#c8952e}
.viz-insight{padding:14px 18px;border-left:3px solid #c8952e;background:#f5f7fa;font-size:13px;line-height:1.6;margin-bottom:18px}.viz-footer{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:16px;font-size:11px;color:#617386;flex-wrap:wrap}
.viz-compact .viz-row{grid-template-columns:190px minmax(60px,1fr) 55px;gap:10px}.viz-compact .viz-axis{margin-left:200px;margin-right:65px}.viz-compact .viz-identity strong,.viz-compact .viz-identity a{font-size:12px}.viz-compact .viz-row>b{font-size:13px}
.public-meet-card .viz-row{grid-template-columns:minmax(110px,1fr) minmax(60px,1fr) 55px;gap:10px}.public-meet-card .viz-axis{margin-left:0;margin-right:65px}.public-meet-card .viz-logo{flex-basis:28px;width:28px;height:28px}.public-meet-card .viz-logo img{width:20px;height:20px}.public-meet-card .viz-identity strong{font-size:12px}.public-meet-card .viz-row>b{font-size:14px}.public-meet-card .public-result-teams{margin-bottom:16px}
.profile-page .viz-panel{margin-bottom:24px}.profile-page .viz-panel h2{font-size:20px}.profile-page .performance-snapshot .event-highs{display:none}.profile-page .performance-snapshot .viz-panel{border:0;margin:0;padding:24px 28px}.athlete-performance-charts{margin-bottom:24px}.home-data-visual{max-width:1280px;margin:48px auto;padding:0 5%}
@media(max-width:900px){.viz-row{grid-template-columns:180px minmax(60px,1fr) 60px;gap:12px}.viz-axis{margin-left:192px;margin-right:72px}.viz-compact .viz-row{grid-template-columns:150px minmax(55px,1fr) 55px}.viz-compact .viz-axis{margin-left:160px}}
@media(max-width:600px){.viz-panel{padding:18px}.viz-panel h2{font-size:21px}.viz-panel h3{font-size:17px}.viz-panel header{gap:12px}.viz-panel p{font-size:12px}.viz-row,.viz-compact .viz-row,.public-meet-card .viz-row{grid-template-columns:minmax(0,1fr) 65px;gap:9px 12px;padding:15px 0}.viz-axis,.viz-compact .viz-axis,.public-meet-card .viz-axis{margin:0 0 8px}.viz-track{grid-column:1/-1;grid-row:2}.viz-row>b{grid-column:2;grid-row:1}.viz-identity strong,.viz-identity a{font-size:13px}.viz-logo{width:32px;height:32px;flex-basis:32px}.viz-logo img{width:24px;height:24px}.viz-controls{display:grid;grid-template-columns:1fr;width:100%}.viz-controls label{min-width:0}.viz-trend svg{height:180px}.viz-trend-scale{bottom:32px}.profile-page .performance-snapshot .viz-panel{padding:18px}.viz-insight{font-size:12px}.viz-tabs button{padding:10px;font-size:11px}.home-data-visual{padding:0 5%;margin:30px auto}}
.results-list>article>.archive-total-graph{grid-column:1/-1;width:100%;min-width:0}.results-list .viz-identity strong{font-family:var(--sans,'DM Sans',sans-serif);font-size:13px}.results-list .viz-row>b{font-family:var(--sans,'DM Sans',sans-serif);font-size:15px}.results-list .viz-caption{font-size:11px}.results-list .viz-tabs button{color:#153b59}.results-list .viz-tabs button[aria-pressed=true]{color:#fff}.results-list .viz-evidence{color:#153b59}.athlete-history-evidence{margin:0 20px 20px}.performance-snapshot .viz-panel header p{display:flex;align-items:center;gap:9px}.public-meet-card .viz-event-explorer{padding:12px}.public-meet-card .viz-evidence table{font-size:11px}
@media(max-width:600px){.results-list .viz-identity strong{grid-column:auto}.results-list .viz-row>b{grid-column:2}.results-list .viz-identity a{grid-column:auto}.results-list>article{padding:16px}.public-result-teams{padding:12px}.viz-panel .status-chip{font-size:10px}}
/* Keep chart labels readable inside the existing navy page shells. */
.viz-panel a.source-link{color:#235b7c;background:transparent}
.meet-center-page .public-result-teams:has(.viz-bars),.meet-center-page .viz-event-explorer,.meet-center-page .archive-total-graph{background:#fff;color:#153b59;border-radius:6px;margin:12px;padding:16px}
.meet-center-page .archive-total-graph{margin:0;box-sizing:border-box}
.meet-center-page .viz-event-explorer .demo-note,.meet-center-page .viz-event-explorer .viz-caption{color:#617386}
.meet-center-page .viz-event-explorer table td,.meet-center-page .viz-event-explorer table th{color:#153b59;border-color:#dce4ec}
.meet-center-page .viz-event-explorer table th{background:#f5f7fa}
.meet-center-page .viz-event-explorer table td{background:#fff}
.meet-center-page .public-meet-card{align-self:start}
.meet-center-page .results-list .viz-identity a{color:#153b59}
#athlete-performance-visual + .profile-stat-row{margin-top:0}
.athlete-history-evidence>summary{color:#b5ccdf}
.ranking-table-school{display:inline-flex;align-items:center;gap:9px}
@media(max-width:600px){.meet-center-page .public-result-teams:has(.viz-bars),.meet-center-page .viz-event-explorer{margin:8px;padding:12px}}
.meet-center-page .viz-event-explorer h3{color:#153b59}
.meet-center-page .public-result-teams .result-total-insight{margin-bottom:0!important}
.viz-panel>.viz-evidence>.table-wrap table{background:#fff;color:#153b59}.viz-panel>.viz-evidence>.table-wrap th{background:#f5f7fa;color:#526c80}.viz-panel>.viz-evidence>.table-wrap td{background:#fff;color:#153b59;border-color:#dce4ec}

/* Rankings put the standings ahead of supporting records and methodology. */
.rankings-page .page-hero.page-hero-rankings {min-height:210px}
.rankings-page .page-hero-copy {padding:28px 0}
.rankings-page .page-hero-copy h1 {font-size:clamp(36px,4.5vw,60px);line-height:1.08}
.rankings-page .page-hero-copy>p:last-child {margin-top:12px;font-size:14px}
.rankings-page.interior-page .page-shell::before {display:none}
.rankings-page .page-shell {padding-top:26px!important}
.rankings-page .ranking-meta {display:flex;gap:12px 24px;flex-wrap:wrap;justify-content:space-between;max-width:1390px;margin:0 auto 16px;color:#b7c5d2;font-size:12px;line-height:1.5}
.rankings-page .viz-panel {max-width:1390px;margin:0 auto}
.rankings-page .viz-panel>header {margin-bottom:12px}
.rankings-page .viz-panel>header p {margin-bottom:0}
.rankings-page .viz-controls {margin:16px 0}
.rankings-page .viz-row {padding:12px 0}
.rankings-page .ranking-breakdown {border-top:1px solid #e7edf3;padding-top:22px;margin-top:22px}
.rankings-page .ranking-method p {max-width:820px;margin:12px 0 0}
.rankings-page .ranking-method a {color:#153b59;font-weight:700}
@media(max-width:600px){
 .rankings-page .page-hero.page-hero-rankings {min-height:165px}
 .rankings-page .page-hero-copy h1 {font-size:36px}
 .rankings-page .page-shell {padding-top:18px!important}
 .rankings-page .ranking-meta {gap:4px;font-size:11px}
 .rankings-page .viz-panel {padding:18px 14px}
 .rankings-page .viz-panel>header {gap:8px}
 .rankings-page .viz-panel h2 {font-size:21px}
 .rankings-page .viz-controls label {min-width:130px}
 .rankings-page .viz-row {padding:10px 0}
}
