/* Editorial refinement of the approved navy/white Player directory world. */
:root { --reading-width: 1080px; --quiet-ink: #536578; }
h1, h2, h3 { letter-spacing: -.025em; }
.page-heading h1 { font-weight: 650; font-size: clamp(30px, 3.5vw, 42px); line-height: 1.16; }
.page-heading p { max-width: 58ch; }
.button, .button-secondary { font-weight: 650; border-radius: 6px; }
.header-actions .button { background: transparent; color: #fff; border-color: #7287a2; }
.header-actions .button:hover { background: #142c4e; border-color: #c1d2e7; }
.point-value, .number, .stat strong, .premium-performance-grid dd { font-variant-numeric: tabular-nums; }
.directory-profile-link > svg, .row-link { color: #526b86; stroke: currentColor; }
.directory-profile-link:hover > svg, .row-link:hover { color: var(--accent); }
.table-scroll-cue[hidden] { display: none; }
.premium-directory, .premium-player { max-width: var(--reading-width); margin-inline: auto; }

/* A compact search leads to people; native disclosure holds refinements. */
.premium-directory-search { margin: 0 0 16px; padding: 0; }
.directory-search-row { display: flex; align-items: flex-end; gap: 12px; }
.directory-search-row .search { flex: 1; min-width: 0; }
.directory-search-row .field label { display: block; margin-bottom: 7px; }
.directory-search-row input { width: 100%; min-height: 48px; }
.directory-search-row > .button { min-height: 48px; padding-inline: 24px; }
.directory-refinements { margin-top: 8px; }
.directory-refinements > summary { width: max-content; max-width: 100%; min-height: 44px; padding: 10px 4px; color: var(--ink); font-size: 14px; font-weight: 500; }
.directory-refinements > summary::marker { color: var(--muted); }
.directory-filter-count { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; margin-left: 5px; background: #edf1f6; color: var(--quiet-ink); border-radius: 50%; font-size: 12px; }
.directory-filter-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); align-items: end; gap: 16px; padding: 14px 0 18px; border-bottom: 1px solid var(--line); }
.directory-filter-fields > * { min-width: 0; }
.directory-filter-fields label { display: block; margin-bottom: 7px; }
.directory-filter-fields select, .directory-filter-fields input { width: 100%; min-height: 46px; }
.directory-filter-fields .button-secondary { min-height: 46px; }
.directory-active-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin: 0 0 20px; font-size: 13px; color: var(--muted); }
.directory-active-filters .text-link { display: inline-flex; align-items: center; min-height: 44px; }
.directory-result-count { margin: 16px 0 12px; }
.directory-entry h2 { font-weight: 600; }
.rankings-empty { padding: 30px 24px; white-space: normal; overflow-wrap: anywhere; text-align: left; }
.rankings-empty strong { display: block; font-size: 18px; line-height: 1.45; }
.rankings-empty p { max-width: 58ch; font-size: 15px; line-height: 1.7; margin: 9px 0 0; }

/* One photographic voice, followed immediately by real community data. */
.premium-home-hero { min-height: 300px; grid-template-columns: 1.3fr .7fr; border-radius: 0; }
.premium-home-copy { padding: 32px 36px; align-self: center; }
.premium-home-copy h1 { font-size: clamp(38px, 3.9vw, 50px); font-weight: 600; line-height: 1.13; letter-spacing: -.03em; margin: 0; }
.premium-home-copy > p { max-width: 52ch; font-size: 16px; line-height: 1.65; color: #d8e5f5; margin: 16px 0 22px; }
.premium-home-copy .actions { gap: 14px 24px; }
.premium-home-copy .hero-link { display: inline-flex; align-items: center; min-height: 44px; color: #fff; font-size: 14px; font-weight: 500; }
.premium-home-copy .hero-link:hover { color: #d4e7ff; text-decoration: underline; text-underline-offset: 5px; }
.premium-home-photo { display: block; width: 100%; height: 100%; min-height: 300px; object-fit: cover; object-position: 62% 70%; }
.premium-home-spotlight { margin-top: 32px; }
.premium-home-section-head { margin: 0 0 18px; }
.premium-home-section-head h2 { font-size: 28px; font-weight: 650; margin: 0; }
.premium-home-section-head p { margin: 7px 0 0; font-size: 13px; color: var(--muted); }
.premium-home-section-head > a { display: inline-flex; gap: 8px; align-items: center; min-height: 44px; flex: none; font-size: 13px; }
.premium-home-table { border-radius: 8px; box-shadow: none; }
.premium-home-workspace { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 28px 0; margin-top: 26px; border-top: 1px solid var(--line); }
.premium-home-workspace h2 { margin: 0; font-size: 23px; font-weight: 600; }
.premium-home-workspace p { margin: 7px 0 0; color: var(--muted); font-size: 14px; }
.premium-home-workspace > a { flex: none; }

/* Form-first entry on phones; context stays with the enquiry. */
.auth-shell { margin: 16px auto; max-width: 1000px; box-shadow: none; }
.auth-art { position: relative; padding: 36px 30px 175px; background: var(--navy); }
.auth-art .court-scene { display: none; }
.auth-art::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 145px; background: url("images/court-blue-detail.webp") center 70% / cover; }
.premium-auth-art-heading { font-family: "DM Sans", sans-serif; font-size: 31px; line-height: 1.24; font-weight: 550; letter-spacing: -.025em; color: #fff; margin: 0 0 18px; }
.auth-art > p { font-size: 15px; line-height: 1.7; color: #d8e5f5; max-width: 32ch; }
.premium-auth-heading { font-family: "DM Sans", sans-serif; font-size: 30px; font-weight: 650; line-height: 1.2; letter-spacing: -.025em; margin: 0 0 14px; }
.auth-body > p { color: var(--muted); font-size: 15px; line-height: 1.65; }
.auth-body .auth-context { color: var(--ink); font-size: 17px; }
.auth-body form p { margin-bottom: 20px; }
.auth-body .form-note { font-size: 12px; line-height: 1.65; }

/* A short player overview, with the evidence appendix available on demand. */
.profile-page.premium-player .profile-top { min-height: 146px; padding: 24px 30px; align-items: center; gap: 20px; }
.premium-player .profile-top > .avatar { margin: 0; width: 60px; height: 60px; font-size: 25px; }
.premium-player .profile-title h1 { font-size: 36px; }
.premium-player .profile-top > .actions:empty { display: none; }
.profile-page.premium-player > .premium-player-layout { display: block; margin-top: 24px; }
.premium-player-main { gap: 24px; }
.premium-player .card-head { padding-top: 0; padding-bottom: 14px; }
.premium-player .card-head h2 { font-size: 23px; font-weight: 600; }
.premium-player .card-head p { margin-top: 7px; }
.premium-player .premium-ranking-summary .stat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 14px; }
.premium-ranking-summary .stat { min-width: 0; padding: 16px 18px; }
.premium-ranking-summary .stat strong { font-size: 29px; line-height: 1.25; }
.premium-ranking-summary .stat .stat-value-unavailable { font-size: 18px; line-height: 1.4; font-weight: 500; }
.premium-ranking-summary .card-pad { padding-top: 16px; padding-bottom: 0; }
.premium-player .premium-player-team { padding-top: 20px; }
.premium-team-row { padding: 13px 0; gap: 15px; }
.premium-team-row h3 { font-size: 18px; margin: 0; font-weight: 600; }
.premium-team-row p { font-size: 14px; margin-top: 5px; }
.premium-team-row a { color: var(--ink); }
.premium-team-row a:hover { color: var(--accent); text-decoration: underline; }
.player-upcoming .card-head { margin-bottom: 0; }
.upcoming-list { padding: 0; margin: 0; list-style: none; }
.upcoming-entry { display: grid; grid-template-columns: 48px minmax(0,1fr) auto; align-items: start; gap: 18px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.upcoming-entry:last-child { border-bottom: 0; }
.upcoming-date { padding-top: 3px; text-align: center; color: var(--ink); font-variant-numeric: tabular-nums; }
.upcoming-date span { display: block; font-size: 12px; color: var(--muted); }
.upcoming-date strong { display: block; font-size: 27px; line-height: 1.3; font-weight: 550; }
.upcoming-content { min-width: 0; }
.upcoming-content h3 { font-size: 17px; line-height: 1.45; font-weight: 600; margin: 0 0 6px; overflow-wrap: anywhere; }
.upcoming-content h3 a { display: flex; align-items: center; min-height: 44px; color: var(--ink); text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: 4px; }
.upcoming-content h3 a:hover { color: var(--accent); text-decoration-color: currentColor; }
.upcoming-content p { font-size: 13px; line-height: 1.65; color: var(--muted); margin: 0; }
.upcoming-content .upcoming-source { font-size: 12px; margin-top: 5px; }
.upcoming-status { display: inline-flex; align-items: center; min-height: 30px; padding: 5px 10px; border: 1px solid var(--line); border-radius: 4px; color: var(--ink); font-size: 12px; font-weight: 600; white-space: nowrap; }
.upcoming-status-main_draw { color: var(--accent); background: var(--ice); border-color: var(--ice); }
.upcoming-status-reserve { color: var(--ink); border-color: var(--muted); }
.upcoming-check { font-size: 12px; line-height: 1.7; margin: 10px 0 0; color: var(--muted); max-width: 78ch; }
.upcoming-notice { font-size: 13px; line-height: 1.65; color: var(--muted); margin: 0 0 10px; }
.premium-performance-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin: 16px 0 0; }
.premium-performance-grid > div { min-width: 0; }
.premium-performance-grid dt { font-size: 13px; line-height: 1.5; color: var(--muted); }
.premium-performance-grid dd { margin: 8px 0 0; font-size: 22px; line-height: 1.4; font-weight: 550; overflow-wrap: anywhere; }
.premium-compact-empty { padding: 12px 0; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.65; }
.premium-player-support .actions form { margin: 0; }
.premium-source-details { border-block: 1px solid var(--line); margin-top: 10px; }
.premium-source-summary { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 20px; min-height: 70px; padding: 17px 0; color: var(--ink); cursor: pointer; }
.premium-source-summary strong { font-size: 17px; font-weight: 600; }
.premium-source-summary > span { color: var(--muted); font-size: 13px; }
.premium-source-summary::after { content: ""; display: block; width: 8px; height: 8px; margin-right: 6px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); }
.premium-source-details[open] > .premium-source-summary::after { transform: rotate(225deg); }
.premium-source-body { padding: 12px 0 28px; }
.premium-source-body > .fine-print { max-width: 76ch; }
.premium-source-body .card-head h2 { font-size: 21px; }
.premium-source-body h3 { font-size: 19px; font-weight: 600; }
.premium-source-body details > summary { min-height: 44px; padding: 10px 0; }
.premium-source-body .premium-source-calculation { margin-block: 22px; }
.premium-source-body .notice-box { margin-bottom: 20px; }
.premium-player .stat small, .premium-player .stat em { font-size: 12px; line-height: 1.5; }

/* The coach's real roster carries proof; missing facts take one quiet line. */
.cp-premium .cp-identity { grid-template-columns: minmax(0,1fr) 27%; min-height: 192px; }
.cp-premium .cp-identity-copy { padding: 25px 32px; }
.cp-premium .cp-identity h1 { font-size: 50px; }
.cp-premium .cp-role { display: flex; gap: 12px; margin-top: 8px; }
.cp-premium .cp-role > span { display: inline; margin: 0; padding-left: 12px; border-left: 1px solid #7084a0; font-size: 13px; }
.cp-premium .cp-court-photo { min-height: 192px; }
.cp-premium .cp-enquire { margin-top: 17px; }
.cp-premium .cp-tabs { justify-content: flex-start; gap: 28px; margin-bottom: 27px; }
.cp-premium .cp-tabs a { min-height: 54px; font-weight: 500; }
.cp-premium .cp-tabs a[aria-current] { font-weight: 650; }
.cp-premium .cp-section-heading h2 { font-size: 30px; font-weight: 650; }
.cp-premium .cp-roster a { min-height: 72px; padding-block: 11px; }
.cp-premium .cp-roster-name { font-size: 20px; font-weight: 550; }
.cp-premium .cp-roster a > svg { color: #526b86; }
.cp-premium .cp-roster a:hover > svg { color: var(--accent); }
.cp-premium .cp-roster-avatar { width: 43px; height: 43px; font-size: 15px; }
.cp-premium .cp-profile-status { max-width: 70ch; color: var(--muted); font-size: 14px; line-height: 1.7; margin: 0; }
.cp-premium .cp-profile-status a { color: var(--accent); text-decoration: underline; text-underline-offset: 4px; }
.cp-premium .cp-detail-section { margin-top: 34px; padding-top: 24px; }
.cp-premium .cp-detail-section h2 { font-size: 23px; font-weight: 600; }

@media (max-width: 900px) {
 .premium-home-copy { padding: 28px; }
 .premium-home-copy h1 { font-size: 38px; }
 .premium-home-photo { object-position: 60% 70%; }
 .premium-performance-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 700px) {
 .main { padding-top: 24px; }
 .page-heading { margin-top: 4px; margin-bottom: 20px; }
 .page-heading h1 { font-size: 31px; margin-bottom: 9px; }
 .page-heading p { font-size: 14px; }
 .directory-tabs { margin-bottom: 18px; }
 .directory-search-row { gap: 9px; }
 .directory-search-row input { min-height: 46px; font-size: 16px; }
 .directory-search-row > .button { min-height: 46px; padding-inline: 16px; font-size: 14px; }
 .directory-search-row .field label { font-size: 12px; margin-bottom: 6px; }
 .directory-filter-fields { grid-template-columns: 1fr; gap: 14px; }
 .directory-filter-fields select { min-width: 0; font-size: 16px; padding-right: 40px; }
 .directory-result-count { margin-top: 13px; }
 .directory-profile-link { min-height: 95px; }
 .rankings-empty { padding: 24px 18px; }
 .rankings-empty strong { font-size: 17px; }
 .premium-home-hero { display: flex; flex-direction: column; min-height: 0; }
 .premium-home-copy { padding: 24px 22px; }
 .premium-home-copy h1 { font-size: clamp(28px,8vw,34px); line-height: 1.17; }
 .premium-home-copy > p { font-size: 14px; line-height: 1.6; margin: 12px 0 17px; }
 .premium-home-copy .actions { gap: 8px 20px; }
 .premium-home-copy .button { min-height: 44px; font-size: 13px; }
 .premium-home-copy .hero-link { font-size: 13px; }
 .premium-home-photo { height: 64px; min-height: 64px; object-position: 50% 72%; }
 .premium-home-spotlight { margin-top: 25px; }
 .premium-home-section-head { align-items: flex-start; gap: 12px; margin-bottom: 12px; }
 .premium-home-section-head h2 { font-size: 23px; }
 .premium-home-section-head p { font-size: 12px; line-height: 1.5; }
 .premium-home-section-head > a { font-size: 12px; gap: 6px; }
 .premium-home-section-head > a > svg { width: 16px; }
 .premium-home-workspace { flex-direction: column; align-items: flex-start; gap: 16px; padding: 24px 0; }
 .premium-home-workspace h2 { font-size: 22px; }
 .auth-shell { display: block; margin-top: 0; border: 0; border-radius: 0; }
 .auth-shell .auth-art { display: none; }
 .auth-shell .auth-body { padding: 10px 0 20px; }
 .premium-auth-heading { font-size: 29px; line-height: 1.2; }
 .auth-body > p { font-size: 14px; }
 .auth-body .auth-context { font-size: 16px; }
 .auth-body input:not([type=checkbox]):not([type=radio]), .auth-body select { font-size: 16px; min-height: 48px; }
 .profile-page.premium-player .profile-top { min-height: 125px; padding: 20px; display: grid; grid-template-columns: 45px minmax(0,1fr); gap: 14px; }
 .premium-player .profile-top > .avatar { width: 45px; height: 45px; margin: 0; font-size: 19px; }
 .premium-player .profile-title h1 { font-size: 27px; }
 .premium-player .profile-title p { font-size: 13px; margin-top: 6px; }
 .premium-player .profile-top > .actions { grid-column: 1 / -1; width: auto; margin: 0; }
 .profile-page.premium-player > .premium-player-layout { margin-top: 23px; }
 .premium-player-main { gap: 20px; }
 .premium-player .card-head h2 { font-size: 21px; }
 .premium-player .card-head p { font-size: 12px; }
 .premium-ranking-summary .stat { padding: 12px 8px; border-right: 1px solid var(--line); }
 .premium-ranking-summary .stat:last-child { border-right: 0; }
 .premium-player .premium-ranking-summary .stat + .stat { border-top: 0; }
 .premium-ranking-summary .stat strong { font-size: 21px; white-space: nowrap; }
 .premium-ranking-summary .stat .stat-value-unavailable { font-size: 14px; line-height: 1.4; white-space: normal; }
 .premium-player .stat small, .premium-player .stat em { font-size: 11px; }
 .premium-ranking-summary .stat small { min-height: 3em; }
 .premium-ranking-summary .card-pad .fine-print { line-height: 1.6; margin-bottom: 10px; }
 .premium-player .card-head { padding-bottom: 12px; }
 .premium-player .premium-player-team { padding-top: 17px; }
 .premium-team-row { padding: 10px 0; }
 .premium-team-row h3 { font-size: 17px; }
 .premium-team-row p { font-size: 13px; }
 .upcoming-entry { grid-template-columns: 36px minmax(0,1fr); gap: 8px 13px; padding-block: 16px; }
 .upcoming-date { grid-row: span 2; }
 .upcoming-date strong { font-size: 24px; }
 .upcoming-content h3 { font-size: 16px; }
 .upcoming-status { grid-column: 2; justify-self: start; }
 .premium-performance-grid { gap: 16px; }
 .premium-performance-grid dt { font-size: 12px; }
 .premium-performance-grid dd { font-size: 20px; margin-top: 6px; }
 .premium-source-summary { min-height: 70px; gap: 5px 12px; padding: 16px 0; }
 .premium-source-summary strong { font-size: 16px; }
 .premium-source-summary > span { font-size: 12px; }
 .premium-source-summary::after { flex: none; }
 .cp-premium .cp-identity { grid-template-columns: 1fr; min-height: 0; }
 .cp-premium .cp-identity-copy { padding: 24px; }
 .cp-premium .cp-identity h1 { font-size: 41px; }
 .cp-premium .cp-role { display: flex; font-size: 14px; flex-wrap: wrap; }
 .cp-premium .cp-role > span { font-size: 12px; }
 .cp-premium .cp-court-photo { display: none; }
 .cp-premium .cp-enquire { margin-top: 17px; font-size: 13px; }
 .cp-premium .cp-tabs { justify-content: flex-start; gap: 25px; margin-bottom: 24px; }
 .cp-premium .cp-tabs a { min-height: 50px; font-size: 14px; }
 .cp-premium .cp-section-heading h2 { font-size: 27px; }
 .cp-premium .cp-roster a { min-height: 66px; padding-block: 10px; }
 .cp-premium .cp-roster-avatar { width: 36px; height: 36px; font-size: 13px; }
 .cp-premium .cp-roster-name { font-size: 17px; }
 .cp-premium .cp-roster a > svg { width: 22px; height: 22px; }
 .cp-premium .cp-detail-section { margin-top: 28px; padding-top: 20px; }
 .cp-premium .cp-detail-section h2 { font-size: 21px; }
}
@media (max-width: 360px) {
 .premium-home-copy { padding: 22px 18px; }
 .premium-home-section-head { flex-direction: column; gap: 2px; }
 .premium-home-section-head > a { min-height: 34px; }
 .premium-ranking-summary .stat strong { font-size: 18px; }
 .premium-ranking-summary .stat .stat-value-unavailable { font-size: 13px; }
 .cp-premium .cp-role > span { font-size: 11px; }
}
@media (prefers-reduced-motion: no-preference) {
 .button, .button-secondary, .directory-profile-link, .cp-roster a { transition: background-color .14s ease-out, color .14s ease-out, border-color .14s ease-out; }
}
