@scope (#athleteDialogRuntime) {
/* =========================
1) Design tokens
========================= */
 :scope{
     --portrait-size: 60px;          /* table portrait size */
     --portrait-hover-scale: 1.1;    /* table hover scale */
     --arrow-left: -15px;            /* base arrow position */
     --arrow-hover-shift: calc((var(--portrait-size) * (var(--portrait-hover-scale) - 1)) / 2);
     --arrow-cover-extra: 24px;      /* arrow width (20) + ~4px safety */
     /* Amateur (pheno age) tier styling only */
     --tier-amateur-bg: rgba(59, 130, 246, 0.06);
     --tier-amateur-bg-even: rgba(59, 130, 246, 0.11);
     --tier-amateur-border: 4px solid rgba(37, 99, 235, 0.45);
     --tier-amateur-hover: rgba(59, 130, 246, 0.12);
     /* Preserve the pre-visual-system attention cue for changed filters and
        clear actions without reintroducing it as a general page accent. */
     --leaderboard-change-cue: #ff4081;
 }

 /* =========================
    2) Utilities / helpers
    ========================= */
 .visually-hidden{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0; }
 .highlight{
     background:var(--lwc-accent-soft, rgba(0,188,212,.16)); color:var(--lwc-ink, var(--dark-text-color)); border-radius:.28em; padding:0 .12em;
     box-shadow:inset 0 -0.12em 0 rgba(8,118,133,.34);
 }
 .fade-out{ opacity:0; transition:opacity var(--lwc-duration-normal, 220ms) var(--lwc-ease, ease); }
 .no-results{ color:var(--primary-color); font-weight:bold; text-align:center; padding:1rem; font-size:1.2rem; }
 .leaderboard table tbody tr.no-results{ cursor:default; }
 .leaderboard table tbody tr.no-results:hover{ transform:none; box-shadow:none; }
 .leaderboard table tbody tr.no-results td{ cursor:default; padding:1.5rem 1rem; }
 .no-results-empty-state{
     display:flex; flex-direction:column; align-items:center; gap:.85rem; width:min(100%, 380px); margin:0 auto;
     padding:1.15rem 1rem; border:1px solid rgba(0,188,212,.18); border-radius:14px; background:rgba(0,188,212,.045);
     box-sizing:border-box;
 }
 .no-results-empty-state p{ margin:0; font-size:var(--lwc-type-body); line-height:1.5; font-weight:400; }
 .show-all-athletes-btn,
 .leaderboard-retry-button{
     min-height:44px; border:1px solid var(--primary-color); border-radius:999px; background:var(--card-bg); color:var(--primary-color);
     font:inherit; font-size:.9rem; font-weight:700; padding:.55rem 1rem; cursor:pointer; transform:none !important;
     appearance:none; -webkit-appearance:none; box-shadow:none;
     transition:border-color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), background-color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), box-shadow var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease);
 }
 .show-all-athletes-btn:hover,
 .show-all-athletes-btn:active,
 .leaderboard-retry-button:hover,
 .leaderboard-retry-button:active{
     background:rgba(8,118,133,.08); color:var(--secondary-color); border-color:var(--secondary-color);
     outline:none; box-shadow:none; transform:none !important; font:inherit; font-size:.9rem; font-weight:700;
 }
 .show-all-athletes-btn:focus-visible,
 .leaderboard-retry-button:focus-visible{
     background:rgba(0,188,212,.08); color:var(--primary-color); border-color:var(--primary-color);
     outline:3px solid rgba(0,188,212,.45); outline-offset:3px; box-shadow:none; transform:none !important;
 }
 .leaderboard-status{
     position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
     clip:rect(0,0,0,0); white-space:nowrap; border:0;
 }
 .leaderboard-recovery{
     display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:.75rem;
     width:min(100%, 400px); margin:0 auto; color:var(--dark-text-color); font-size:1rem; font-weight:400;
 }
 .leaderboard-recovery p{ margin:0; }
 #comingSoon{ font-size:.5rem; font-weight:normal; }

 /* Common transition for table rows and podium items */
 .leaderboard table tbody tr, .podium-item{ transition:opacity var(--lwc-duration-normal, 220ms) var(--lwc-ease, ease), transform var(--lwc-duration-normal, 220ms) var(--lwc-ease, ease); }
 .leaderboard table tbody tr.fade-in{ animation:filterRowFade var(--lwc-duration-normal, 220ms) var(--lwc-ease, ease) both; }
 .podium-item.fade-in{ animation:filterPodiumFade var(--lwc-duration-normal, 220ms) var(--lwc-ease, ease) both; }

 @keyframes filterRowFade{
     from{ opacity:.82; }
     to{ opacity:1; }
 }

 @keyframes filterPodiumFade{
     from{ opacity:.82; transform:translateY(1px); }
     to{ opacity:1; transform:translateY(0); }
 }

 @media (prefers-reduced-motion: reduce){
     .leaderboard table tbody tr.fade-in,
     .podium-item.fade-in{ animation:none; }
 }

 /* =========================
    3) Global layout / shell
    ========================= */
 .main-container{ display:flex; align-items:flex-start; }
 .content{ flex-grow:1; transition:margin-left var(--lwc-duration-normal, 220ms) var(--lwc-ease, ease); }

 .leaderboard{
     --leaderboard-table-height: calc(100vh - 2rem);
     --leaderboard-sidebar-sticky-top: 4rem;
     display:flex; align-items:flex-start; background-color:var(--card-bg);
     min-height:max(var(--leaderboard-table-height), var(--leaderboard-title-height, 0px));
     border-radius:15px; box-shadow:0 10px 30px rgba(0,0,0,.1); overflow:clip; flex-grow:1;
 }

 @keyframes skeletonShimmer{
     0%{ background-position:200% 0; }
     100%{ background-position:-200% 0; }
 }

 .skeleton-shimmer{
     background:linear-gradient(90deg, rgba(0,0,0,.06) 25%, rgba(255,255,255,.7) 50%, rgba(0,0,0,.06) 75%);
     background-size:200% 100%;
     animation:skeletonShimmer 1.4s ease-in-out infinite;
 }

 .podium-skeleton-item{
     pointer-events:none;
     cursor:default;
 }

 .podium-skeleton-item:hover,
 .leaderboard table tbody tr.leaderboard-skeleton-row:hover{
     transform:none;
     box-shadow:none;
 }

 .podium-skeleton-item .athlete-name,
 .podium-skeleton-item .podium-skeleton-line,
 .podium-skeleton-item .podium-skeleton-portrait,
 .leaderboard-portrait-skeleton,
 .leaderboard-skeleton-block{
     border-radius:999px;
 }

 .podium-skeleton-item .podium-skeleton-portrait{
     width:var(--podium-portrait-size);
     height:var(--podium-portrait-size);
     margin:1.5rem auto .75rem;
 }

 .podium-skeleton-item .name-row{
     width:100%;
 }

 .podium-skeleton-item .athlete-name{
     display:block;
     width:75%;
     height:18px;
     margin:0 auto;
 }

 .podium-skeleton-item .podium-skeleton-line{
     height:14px;
     width:66%;
     margin:.6rem auto 0;
 }

 .leaderboard table tbody.loading-skeleton tr{
     cursor:default;
     pointer-events:none;
 }

 .leaderboard table tbody.loading-skeleton .rank{
     display:inline-block;
     width:28px;
     height:16px;
     border-radius:999px;
     color:transparent;
 }

 .leaderboard table tbody.loading-skeleton .portrait-wrapper{
     display:inline-flex;
     align-items:center;
     justify-content:center;
 }

 .leaderboard-portrait-skeleton{
     width:60px;
     height:60px;
     border-radius:50%;
     display:inline-block;
     border:none !important;
     box-shadow:none !important;
 }

 .leaderboard table tbody.loading-skeleton .pro-badge,
 .leaderboard table tbody.loading-skeleton .badge-section{
     display:none !important;
 }

 .leaderboard table tbody.loading-skeleton .athlete-name{
     display:inline-block;
     width:160px;
     max-width:70%;
     height:16px;
     margin-left:.75rem;
     border-radius:999px;
     color:transparent;
 }

 .leaderboard table tbody.loading-skeleton .sponsor-td,
 .leaderboard table tbody.loading-skeleton .age-reduction,
 .leaderboard table tbody.loading-skeleton .media-contact-td{
     color:transparent;
 }

 .leaderboard-skeleton-block{
     display:inline-block;
     height:16px;
     min-width:72px;
 }

 @media (prefers-reduced-motion:reduce){
     .skeleton-shimmer{
         animation:none;
         background:rgba(0,0,0,.08);
     }
 }

 /* Scope table styles to the leaderboard table only */
 .leaderboard > table{ flex-grow:1; width:auto; border-collapse:separate; border-spacing:0; align-self:flex-start; }

 .leaderboard td{ text-align:center; }

 /* Scoped header styles – do NOT affect the modal info table */
 .leaderboard table th{
     padding:1rem 1rem; text-align:center; background-color:rgba(0,188,212,.1);
     color:var(--primary-color); font-weight:700; text-transform:uppercase; font-size:.9rem; letter-spacing:1px;
 }
 .leaderboard table th a{
     display:inline-flex;
     align-items:center;
     justify-content:center;
     min-height:2rem;
     padding:0 .25rem;
     box-sizing:border-box;
     border-radius:6px;
 }
 .leaderboard table th:nth-child(2){ text-align:left; }
 .leaderboard table tr:nth-child(even){ background-color:var(--lwc-surface-muted, rgba(240,244,248,.5)); }

 /* Amateur (pheno age) tier – blueish hue; pro (Bortz) rows use default table styling */
 .leaderboard table tbody tr.tier-amateur{
     background-color: var(--tier-amateur-bg);
     border-left: var(--tier-amateur-border);
 }
 .leaderboard table tbody tr.tier-amateur:nth-child(even){
     background-color: var(--tier-amateur-bg-even);
 }
 .leaderboard table tbody tr.tier-amateur:hover{
     background-color: var(--tier-amateur-hover);
     box-shadow: 0 4px 10px rgba(37, 99, 235, 0.15);
 }
 .leaderboard table tbody tr.tier-separator{
     background: linear-gradient(90deg, rgba(240, 244, 248, 0.6), rgba(59, 130, 246, 0.12));
     border-left: none;
     cursor: default;
     pointer-events: none;
 }
 .leaderboard table tbody tr.tier-separator .tier-separator-link{ pointer-events: auto; }
 .leaderboard table tbody tr.tier-separator:hover{ transform: none; box-shadow: none; }
 .leaderboard table tbody tr.tier-separator .tier-separator-cell{
     padding: 0.5rem 1rem;
     text-align: left;
     font-size: 0.8rem;
     font-weight: 600;
     text-transform: uppercase;
     letter-spacing: 0.05em;
     color: var(--primary-color);
     border-top: 1px solid rgba(0, 0, 0, 0.06);
     border-bottom: 1px solid rgba(0, 0, 0, 0.06);
 }
 .tier-separator-label{ display: inline-flex; align-items: center; gap: 0.35rem; }
 .tier-separator-cell .tier-separator-link{
     display: inline-flex;
     align-items: center;
     justify-content: center;
     min-height: 2rem;
     padding: 0 0.45rem;
     margin: -0.5rem -0.15rem;
     border-radius: 999px;
     box-sizing: border-box;
     color: var(--primary-color);
     text-decoration: underline;
     cursor: pointer;
 }
 .tier-separator-cell .tier-separator-link:hover,
 .tier-separator-cell .tier-separator-link:focus-visible{
     color: var(--secondary-color);
     background: rgba(0,188,212,.08);
 }

 .leaderboard table tbody tr{ cursor:pointer; }
 .leaderboard table tbody tr:hover{
     transform:translateY(-1px);
     box-shadow:0 5px 14px rgba(0,0,0,.08);
 }

 /* Let the Rank column auto-size (override old 15px rule) */
 .leaderboard table th:nth-child(1){ width:auto; }

 /* Inner spacing: 17px left/right on all Rank cells while keeping text centered */
 .leaderboard table td.rank-td,
 .leaderboard table th:nth-child(1){
     padding-left:17px;
     padding-right:17px;
     text-align:center;
     white-space:nowrap;
 }

 /* =========================
    4) Sidebar & filters
    ========================= */
 .sidebar{
     position:relative; width:50px; height:max(var(--leaderboard-table-height), var(--leaderboard-title-height, 0px)); min-height:max(var(--leaderboard-table-height), var(--leaderboard-title-height, 0px)); max-height:max(var(--leaderboard-table-height), var(--leaderboard-title-height, 0px)); padding:0; background:var(--card-bg); border-radius:15px; box-shadow:0 10px 30px rgba(0,0,0,.1);
     margin-right:.2rem; display:flex; flex-direction:column; align-items:center; transition:width var(--lwc-duration-normal, 220ms) var(--lwc-ease, ease), padding var(--lwc-duration-normal, 220ms) var(--lwc-ease, ease);
     overflow:hidden; flex-shrink:0;
 }
 /* Closing a mobile drawer must also suppress hover during its slide-out. */
 .sidebar:hover:not(.button-collapsed):not([aria-hidden="true"]), .sidebar.expanded{
     position:sticky; top:var(--leaderboard-sidebar-sticky-top); width:auto; height:auto; min-height:0; max-height:min(calc(100vh - 2rem), max(var(--leaderboard-table-height), var(--leaderboard-title-height, 0px))); padding:1rem; align-items:flex-start;
     overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable;
     scrollbar-width:thin; scrollbar-color:rgba(0,188,212,.55) transparent;
 }
 .sidebar:hover:not(.button-collapsed):not([aria-hidden="true"])::-webkit-scrollbar,
 .sidebar.expanded::-webkit-scrollbar{ width:8px; }
 .sidebar:hover:not(.button-collapsed):not([aria-hidden="true"])::-webkit-scrollbar-track,
 .sidebar.expanded::-webkit-scrollbar-track{ background:transparent; }
 .sidebar:hover:not(.button-collapsed):not([aria-hidden="true"])::-webkit-scrollbar-thumb,
 .sidebar.expanded::-webkit-scrollbar-thumb{ background:rgba(0,188,212,.45); border-radius:999px; border:2px solid var(--card-bg); }
 .sidebar:hover:not(.button-collapsed):not([aria-hidden="true"])::-webkit-scrollbar-thumb:hover,
 .sidebar.expanded::-webkit-scrollbar-thumb:hover{ background:rgba(0,188,212,.68); }
 .sidebar .filter-section{ display:none; }
 .sidebar:hover .filter-section, .sidebar.expanded .filter-section{ display:block; }

 .sidebar.partially-expanded{ width:80px; }
 .sidebar-toggle{
     background:var(--card-bg); border:2px solid var(--primary-color); border-radius:50%; width:44px; height:44px;
     display:flex; align-items:center; justify-content:center; cursor:pointer; transition:background-color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), border-color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), box-shadow var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), transform var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease); margin-right:1rem; position:relative;
 }
 .sidebar-toggle.active{ background:var(--primary-color); transform:scale(1); }
 .sidebar-toggle.active i{ color:var(--card-bg); }
 .sidebar-toggle.has-active-state:not(.active){
     background:var(--lwc-accent-soft, rgba(8,118,133,.07)); border-color:var(--secondary-color);
     box-shadow:0 0 0 3px rgba(8,118,133,.14), 0 8px 18px rgba(0,0,0,.1);
 }
 .sidebar-toggle.has-active-state:not(.active) i{ color:var(--secondary-color); }
 .sidebar-toggle:hover{ background:var(--primary-color); transform:scale(1.05); }
 .sidebar-toggle i{ color:var(--primary-color); font-size:1.5rem; transition:color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease); }
 .sidebar-toggle:hover i{ color:var(--card-bg); }
 .sidebar-toggle:focus-visible,
 .sidebar-toggle.is-keyboard-focus{
     outline:2px solid var(--secondary-color); outline-offset:3px;
     box-shadow:0 0 0 4px rgba(8,118,133,.16), 0 8px 18px rgba(0,0,0,.12);
 }
 .sidebar-toggle:focus-visible i,
 .sidebar-toggle.is-keyboard-focus i{ color:var(--secondary-color); }
 .sidebar-toggle.active:focus-visible,
 .sidebar-toggle.active.is-keyboard-focus{
     border-color:var(--secondary-color);
     box-shadow:0 0 0 4px rgba(8,118,133,.18), 0 8px 18px rgba(8,118,133,.16);
 }
 .sidebar-toggle.active:focus-visible i,
 .sidebar-toggle.active.is-keyboard-focus i{ color:var(--card-bg); }
 .sidebar-toggle.has-active-state:not(.active):hover{
     background:var(--secondary-color); border-color:var(--secondary-color); box-shadow:0 10px 22px rgba(8,118,133,.24);
 }
 .sidebar-toggle.has-active-state:not(.active):hover i{ color:var(--card-bg); }
 .sidebar-toggle.has-active-state::after{
     content:''; position:absolute; top:-4px; right:-4px; width:12px; height:12px; border-radius:50%;
     background:var(--secondary-color); border:2px solid var(--card-bg); box-shadow:0 1px 4px rgba(0,0,0,.2);
 }

 .sidebar-close{
     display:none; align-items:center; justify-content:center; background:rgba(0,188,212,.08); border:1px solid rgba(0,188,212,.22);
     font-size:1rem; color:var(--primary-color); cursor:pointer; position:absolute; top:.9rem; right:.9rem; z-index:10;
     transition:background-color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), border-color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), box-shadow var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), transform var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease);
     width:44px; height:44px; border-radius:50%; box-sizing:border-box;
 }
 .sidebar.expanded .sidebar-close{ display:block; }
 .sidebar-close i{ font-size:.95rem; line-height:1; }
 .sidebar-close:hover{
     background:var(--primary-color); border-color:var(--primary-color); color:var(--card-bg); box-shadow:0 8px 18px rgba(0,188,212,.22);
     outline:none; transform:scale(1.04);
 }
 .sidebar-close:focus-visible,
 .sidebar-close.is-keyboard-focus{
     background:var(--card-bg); border-color:var(--secondary-color); color:var(--secondary-color);
     outline:none; transform:scale(1.04); box-shadow:0 0 0 4px rgba(8,118,133,.16), 0 8px 18px rgba(8,118,133,.16);
 }

 .collapsed-title{
     display:block; position:sticky; top:calc(var(--leaderboard-sidebar-sticky-top) + .75rem); z-index:1; writing-mode:vertical-rl; transform:rotate(180deg); text-align:center; font-size:1.8rem; color:var(--primary-color);
     flex-shrink:0; box-sizing:border-box; white-space:nowrap;
     padding:15px 0; letter-spacing:1px; word-spacing:10px; font-family:'Orbitron', sans-serif;
     background:linear-gradient(45deg, var(--primary-color), var(--secondary-color)); background-size:200%;
     -webkit-background-clip:text; -webkit-text-fill-color:transparent; text-shadow:none; border-radius:5px;
 }
 .sidebar:hover .collapsed-title, .sidebar.expanded .collapsed-title{ display:none; }
 .sidebar-heading{ display:flex; align-items:center; gap:var(--lwc-space-2); width:100%; border-bottom:1px solid var(--lwc-border); }
 .sidebar:hover .sidebar-title, .sidebar.expanded .sidebar-title{ width:auto; }
 .sidebar:hover:not(.button-collapsed):not([aria-hidden="true"]) .sidebar-title,
 .sidebar.expanded .sidebar-title{ position:static; justify-content:flex-start; }

 .sidebar-title{
     flex:1; min-width:0; box-sizing:border-box;
     margin:0; padding:1rem 0; text-align:center; font-size:1.2rem; color:var(--primary-color);
     display:flex; align-items:center; justify-content:center;
 }
 .sidebar .sidebar-title .sidebar-icon{
     display:inline-flex; align-items:center; justify-content:center; flex:0 0 2.25rem; width:2.25rem; height:2.25rem;
     font-size:2rem; line-height:1; position:relative;
 }
 .sidebar .sidebar-title .sidebar-icon i{ line-height:1; }
 .sidebar.has-active-state .sidebar-title .sidebar-icon::after{
     content:''; position:absolute; top:0; right:-4px; width:12px; height:12px; border-radius:50%;
     background:var(--secondary-color); border:2px solid var(--card-bg); box-shadow:0 1px 4px rgba(0,0,0,.2);
 }
 .sidebar .sidebar-title .sidebar-title-text{ display:none; margin-left:var(--lwc-space-2); font-size:1.5rem; }
 .sidebar:hover .sidebar-title .sidebar-title-text,
 .sidebar.expanded .sidebar-title .sidebar-title-text{ display:inline-block; }
 .clear-sidebar-filters{
     display:none; align-items:center; justify-content:center; flex:0 0 44px; width:44px; height:44px; margin:0; padding:0;
     color:#777; background:rgba(0,0,0,.035); border:1px solid rgba(0,0,0,.07); border-radius:999px;
     font-size:.85rem; font-weight:700; cursor:pointer; line-height:1.2; visibility:hidden; pointer-events:none;
     font-family:inherit; appearance:none; -webkit-appearance:none; box-sizing:border-box;
     transition:background-color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), border-color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), box-shadow var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease);
 }
 .clear-sidebar-filters .clear-sidebar-filters-icon{
     display:inline-block; width:.85rem; color:inherit; font-size:.85rem; line-height:1; text-align:center; vertical-align:-.05em;
 }
 .clear-sidebar-filters > span{ position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
 .sidebar:hover:not(.button-collapsed):not([aria-hidden="true"]) .clear-sidebar-filters,
 .sidebar.expanded .clear-sidebar-filters{ display:inline-flex; }
 .sidebar-heading .sidebar-close{ position:static; flex:0 0 44px; margin:0; }
 .clear-sidebar-filters:hover,
 .clear-sidebar-filters:focus,
 .clear-sidebar-filters:active{
     color:var(--primary-color); background:rgba(0,188,212,.08); border-color:rgba(0,188,212,.24); outline:none;
 }
 .sidebar.has-active-state:hover .clear-sidebar-filters,
 .sidebar.has-active-state.expanded .clear-sidebar-filters{
     display:inline-flex; visibility:visible; pointer-events:auto; color:var(--secondary-color); background:var(--lwc-accent-soft); border-color:var(--lwc-border);
 }
 .clear-sidebar-filters:focus-visible{
     color:var(--secondary-color); background:var(--lwc-accent-soft, rgba(8,118,133,.1));
     border-color:rgba(8,118,133,.42); outline:none; box-shadow:0 0 0 4px rgba(8,118,133,.14), 0 6px 14px rgba(8,118,133,.1);
 }

 .sidebar:hover:not([aria-hidden="true"]) ~ .content, .sidebar.expanded ~ .content{ margin-left:200px; }

 .filter-section{ margin-bottom:1.5rem; width:100%; }
 .filter-section h3{
     display:flex; align-items:center; gap:var(--lwc-space-2); margin-bottom:var(--lwc-space-2); color:var(--lwc-ink); font-size:var(--lwc-type-body);
     transition:color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease);
 }
 .filter-section.has-active-filter h3{ color:var(--secondary-color); }
 .filter-section ul{ list-style:none; padding:0; margin:0; display:grid; gap:.35rem; }
 #flag-filter-section ul::after{
     content:''; display:block; height:3px; margin-top:.15rem; border-radius:999px;
     background:linear-gradient(90deg, rgba(0,188,212,.68), rgba(0,188,212,.18));
 }
 .filter-section li{ margin:0; }
 .filter-section label{
     display:flex; align-items:center; min-height:44px; padding:.42rem .55rem; border:1px solid rgba(0,0,0,.045);
     border-radius:8px; box-sizing:border-box; cursor:pointer; color:var(--lwc-ink, #555); line-height:1.25;
     background:var(--lwc-surface-muted, rgba(0,0,0,.025)); transition:background-color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), border-color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), box-shadow var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease);
 }
 .filter-section label.is-zero-count:not(.active){
     color:var(--lwc-muted, #526373); background:var(--lwc-surface-muted, rgba(0,0,0,.012)); border-color:var(--lwc-border, rgba(0,0,0,.055)); border-style:dashed;
     cursor:not-allowed; box-shadow:none; filter:grayscale(.65);
 }
 .filter-section label.is-zero-count:not(.active) input[type="checkbox"]{
     pointer-events:none; opacity:.45; cursor:not-allowed;
 }
 .filter-section input[type="checkbox"]{
     flex:0 0 auto; width:18px; height:18px; margin:0 .55rem 0 0; accent-color:var(--primary-color); cursor:inherit;
 }
 .filter-section .filter-label-copy{ min-width:0; }
 .lwc-flag-icon{
     flex:0 0 auto; margin-right:.4rem; border-radius:2px; box-shadow:0 0 0 1px rgba(0,0,0,.08);
 }
 #athleteFlag .lwc-flag-icon{ margin-right:.45rem; vertical-align:-.08em; }
 .filter-section label:hover{ color:var(--primary-color); background:rgba(0,188,212,.06); border-color:rgba(0,188,212,.18); }
 .filter-section label.is-zero-count:not(.active):hover{
     color:var(--lwc-muted, #526373); background:var(--lwc-surface-muted, rgba(0,0,0,.012)); border-color:var(--lwc-border, rgba(0,0,0,.055));
 }
 .filter-section label.active{
     font-weight:bold; color:var(--secondary-color);
     background:var(--lwc-accent-soft, rgba(0,188,212,.1));
     border-color:var(--lwc-accent, var(--primary-color));
     box-shadow:inset 4px 0 0 var(--lwc-accent, var(--primary-color));
 }
 .filter-section label.active input[type="checkbox"]{ accent-color:var(--secondary-color); }
 .filter-section .filter-count{
     color:var(--lwc-muted, #526373); font-size:.95em; font-weight:700; font-variant-numeric:tabular-nums;
 }
 .filter-section .filter-count-group{ white-space:nowrap; }
 .filter-section label.active .filter-count{ color:var(--secondary-color); }
 .filter-section label.is-zero-count:not(.active) .filter-count{ color:var(--lwc-muted, #526373); }
 .filter-section label:has(input[type="checkbox"]:focus-visible){
     color:var(--secondary-color); border-color:rgba(8,118,133,.42);
     background:var(--lwc-accent-soft, rgba(8,118,133,.08));
     box-shadow:0 0 0 4px rgba(8,118,133,.14);
 }
 .filter-section input[type="checkbox"]:focus-visible{ outline:2px solid var(--secondary-color); outline-offset:2px; }

 /* =========================
    5) Search & toolbar (search + view badges on one line on desktop)
    ========================= */
 .leaderboard-toolbar{
     display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem;
 }
 .leaderboard-toolbar .search-wrapper{ margin-bottom:0; }
 .leaderboard-toolbar .leaderboard-view-switcher{ margin-bottom:0; }
 @media (min-width: 769px){
     .leaderboard-toolbar{ flex-wrap:nowrap; }
 }
 .ranking-explanation{
     display:none; width:100%; box-sizing:border-box; margin:.25rem 0 1rem; padding:.72rem .9rem;
     color:var(--lwc-ink, #4d5963); background:var(--lwc-surface-muted, rgba(255,255,255,.78)); border:1px solid var(--lwc-border, rgba(0,188,212,.18));
     border-left:4px solid var(--primary-color); border-radius:8px; box-shadow:0 6px 14px rgba(0,0,0,.06);
     font-size:.95rem; line-height:1.42;
 }
 .ranking-explanation.is-visible{ display:block; }
 .ranking-explanation strong{ color:var(--primary-color); }
 .search-wrapper{ display:flex; justify-content:flex-end; margin-bottom:1rem; }
 .search-container{ position:relative; max-width:250px; width:100%; min-height:44px; margin-right:.5rem; }
 #athleteSearch{
     width:100%; min-height:44px; padding:.55rem 5.4rem .55rem 1rem; border:2px solid var(--lwc-border-strong, #71808d); border-radius:8px; font-family:inherit; font-size:1rem; color:var(--dark-text-color);
     transition:border-color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), box-shadow var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease); outline:none; box-sizing:border-box;
 }
 #athleteSearch::placeholder{ color:var(--lwc-muted, #56666f); opacity:1; }
 #athleteSearch:not(:placeholder-shown){ border-color:var(--primary-color); }
 #athleteSearch:focus{
     border-color:var(--secondary-color);
     box-shadow:0 0 0 4px rgba(8,118,133,.16), 0 4px 10px rgba(0,0,0,.08);
 }
 .search-icon{ position:absolute; right:1rem; top:50%; transform:translateY(-50%); color:var(--primary-color); font-size:1.2rem; pointer-events:none; z-index:2; transition:color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease); }
 .search-container:focus-within .search-icon{ color:var(--secondary-color); }
 .clear-icon{
     position:absolute; right:2.2rem; top:50%; transform:translateY(-50%); width:2.75rem; height:2.75rem;
     display:inline-flex; align-items:center; justify-content:center; color:var(--primary-color); font-size:1.05rem; cursor:pointer; z-index:2;
     appearance:none; padding:0; font:inherit; line-height:1; background:transparent; border:1px solid transparent; border-radius:50%; box-sizing:border-box; opacity:0; visibility:hidden;
     transition:opacity var(--lwc-duration-normal, 220ms) var(--lwc-ease, ease), visibility var(--lwc-duration-normal, 220ms) var(--lwc-ease, ease), color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), background-color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), border-color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), box-shadow var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease);
 }
 .clear-icon.visible{
     opacity:1; visibility:visible; background:rgba(0,188,212,.09); border-color:rgba(0,188,212,.24);
 }
 .clear-icon:hover,
 .clear-icon:focus-visible{
     transform:translateY(-50%);
     color:var(--secondary-color); background:rgba(8,118,133,.08); border-color:rgba(8,118,133,.22);
     box-shadow:0 3px 8px rgba(0,0,0,.08);
 }
 .clear-icon:focus-visible{
     outline:2px solid var(--secondary-color); outline-offset:2px;
     box-shadow:0 0 0 4px rgba(8,118,133,.16), 0 4px 10px rgba(0,0,0,.1);
 }

 /* =========================
    5b) Leaderboard view switcher (Bortz / Pheno / Crowd) – optional toggles
    ========================= */
 .leaderboard-view-switcher{
     display:flex; align-items:center; gap:.5rem; margin-bottom:1rem; flex-wrap:wrap;
 }
 .leaderboard-view-switcher .view-switcher-label{
     font-size:.8rem; font-weight:600; text-transform:uppercase; letter-spacing:.05em; color:var(--lwc-muted, #526373); margin-right:.25rem;
 }
 .leaderboard-view-switcher .view-switcher-chips{
     display:inline-flex; align-items:stretch; min-height:44px; background:var(--lwc-surface-muted, rgba(0,0,0,.04)); border:1px solid var(--lwc-border, rgba(0,0,0,.08)); border-radius:8px;
     padding:0; gap:0; box-sizing:border-box;
 }
 .leaderboard-view-switcher .view-badge{
     display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:.45rem 1rem; border-radius:6px;
     border:none; background:transparent; color:var(--lwc-muted, #526373);
     font-size:.85rem; font-weight:600; line-height:1.3; white-space:normal; overflow-wrap:anywhere; box-sizing:border-box; cursor:pointer; transition:background var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), box-shadow var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease);
 }
 .leaderboard-view-switcher .view-badge-suffix{
     margin-left:.25em;
 }
 .leaderboard-view-switcher .view-badge:hover{
     background:rgba(0,188,212,.06); color:var(--primary-color);
 }
 .leaderboard-view-switcher input[name="leaderboardView"]{ position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); border:0; }
 .leaderboard-view-switcher input[name="leaderboardView"]:checked + .view-badge{
     background:var(--lwc-surface-accent, #e7f7f8); color:var(--primary-color);
     box-shadow:inset 0 -3px 0 var(--primary-color);
 }
 .leaderboard-view-switcher input[name="leaderboardView"]:checked + .view-badge.is-clearable{
     padding-right:.42rem;
 }
 .leaderboard-view-switcher input[name="leaderboardView"]:checked + .view-badge.is-clearable::after{
     content:'×'; display:inline-flex; align-items:center; justify-content:center; width:1.1rem; height:1.1rem; margin-left:.4rem;
     border-radius:50%; background:rgba(0,188,212,.12); color:var(--primary-color); font-size:.85rem; line-height:1; opacity:.88; font-weight:700;
 }
 .leaderboard-view-switcher input[name="leaderboardView"]:checked + .view-badge.is-clearable:hover::after{
     opacity:1;
 }
 .leaderboard-view-switcher input[name="leaderboardView"]:focus-visible + .view-badge,
 .leaderboard-view-switcher input[name="leaderboardView"].is-keyboard-focus + .view-badge{
     outline:2px solid var(--secondary-color); outline-offset:2px;
     color:var(--secondary-color); background:var(--lwc-surface, var(--card-bg));
     box-shadow:0 0 0 4px rgba(8,118,133,.16), 0 4px 10px rgba(0,0,0,.08);
 }
 .leaderboard-view-switcher input[name="leaderboardView"]:focus-visible + .view-badge.is-clearable::after,
 .leaderboard-view-switcher input[name="leaderboardView"].is-keyboard-focus + .view-badge.is-clearable::after{
     background:rgba(8,118,133,.12); color:var(--secondary-color);
 }

 /* =========================
    6) Portraits & rank indicators
    ========================= */
 /* TABLE portrait (fixed 60x60) */
 .portrait{
     width: var(--portrait-size);
     height: var(--portrait-size);
     border-radius: 50%;
     object-fit: cover;
     border: 3px solid var(--secondary-color);
     margin: .5rem 0;
     cursor: pointer;
     transition:transform var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease);
 }
 .portrait:hover{ transform: scale(var(--portrait-hover-scale)); }
 .portrait.portrait-fallback,
 #modalProfilePic.portrait-fallback,
 .podium-item .podium-portrait.portrait-fallback{
     object-fit:contain;
     background:#fff;
     padding:.35rem;
 }

 /* PODIUM portrait (bounded even if not wrapped) */
 .podium-item .podium-portrait{
     width:var(--podium-portrait-size); height:var(--podium-portrait-size); aspect-ratio:1 / 1; border-radius:50%; object-fit:cover;
     border:3px solid var(--secondary-color); margin:.68rem 0 .55rem; cursor:pointer; transition:transform var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease); will-change:transform;
     flex:0 0 auto; box-sizing:border-box; /* include border in the height */
 }
 .podium-item .podium-portrait:hover{ transform: scale(1.1); }

 /* When wrapped on podium: wrapper defines circle, img fills it */
 .podium-item .rank-change{ display:block; width:var(--podium-portrait-size); height:var(--podium-portrait-size); margin:.68rem 0 .55rem; flex:0 0 auto; }
 .podium-item .rank-change img.podium-portrait{
     width:100%; height:100%; border-radius:50%; object-fit:cover; transition:transform var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease); box-sizing:border-box;
 }
 .podium-item .rank-change img.podium-portrait:hover{ transform: scale(1.1); }

 .podium .name-row {
     display: flex;
     align-items: center;
     gap: .25rem;
     max-width: 100%
 }
 .podium .name-row .athlete-name {
     flex: 1;
     min-width: 0;
     white-space: normal;
     overflow-wrap: anywhere;
     line-height: 1.25
 }

 /* Rank-change wrapper */
 .rank-change{ position: relative; display: inline-block; z-index: 0; }
 .rank-change img{ display:block; position:relative; z-index:1; }

 /* Rings (green = rank-up only in table, blue = new athlete) */
 .rank-change.rank-up img.portrait{ border-color:#2ecc71; }     /* no green ring on podium */
 img.portrait.is-new,
 .rank-change img.portrait.is-new,
 img.podium-portrait.is-new{
     border-color:#3B82F6;
     box-shadow:0 0 0 2px rgba(59,130,246,.16);
 }
 .leaderboard tr.is-new-athlete.is-new-revealed,
 .leaderboard tr.is-rank-up-athlete.is-rank-up-revealed{
     --leaderboard-change-duration:calc(var(--lwc-duration-normal, 220ms) * 4);
 }
 .leaderboard tr.is-new-athlete.is-new-revealed > td{
     animation:newAthleteEntrySlide var(--leaderboard-change-duration) var(--lwc-ease, ease) 1 both;
 }
 .leaderboard tr.is-rank-up-athlete.is-rank-up-revealed > td{
     animation:rankUpAthleteClimb var(--leaderboard-change-duration) var(--lwc-ease, ease) 1 both;
 }
 @keyframes newAthleteEntrySlide{
     0%{
         transform:translateX(-24px);
         opacity:.72;
     }
     100%{
         transform:translateX(0);
         opacity:1;
     }
 }
 @keyframes rankUpAthleteClimb{
     0%{
         transform:translateY(16px);
         opacity:.72;
     }
     100%{
         transform:translateY(0);
         opacity:1;
     }
 }
 @media (prefers-reduced-motion: reduce){
     .leaderboard tr.is-new-athlete.is-new-revealed > td,
     .leaderboard tr.is-rank-up-athlete.is-rank-up-revealed > td{ animation:none; }
 }

 /* Rank-up and new-athlete arrow bubbles */
 .rank-change .rank-arrow,
 .rank-change .new-bubble{
     position:absolute; z-index:-1; left:var(--arrow-left); top:50%; transform:translateY(-50%);
     width:20px; height:20px; border-radius:50% 0 0 50%;
     color: rgb(255 255 255 / 80%); display:flex; align-items:center; justify-content:center;
     font-size:12px; cursor:default; transition:left var(--lwc-duration-normal, 220ms) var(--lwc-ease, ease);
 }
 .rank-change .rank-arrow{ background:#2ecc71; }  /* green up arrow */
 .rank-change .new-bubble{ background:#3B82F6; }  /* blue new-athlete arrow */
 .rank-change img:hover + .rank-arrow,
 .rank-change img:hover + .new-bubble{
     left: calc(var(--arrow-left) + var(--arrow-cover-extra) + var(--arrow-hover-shift));
 }
 /* Never show arrow bubbles on the podium */
 .podium .rank-arrow, .podium-item .rank-arrow{ display:none !important; }
 .podium .new-bubble, .podium-item .new-bubble{ display:none !important; }

 /* PRO badge overlay – table only (not on podium); white text, black frame */
 .portrait-wrapper{ position:relative; display:inline-block; }
 .leaderboard .athlete-td .portrait-wrapper{
     position:relative;
     display:inline-block;
     flex:0 0 var(--portrait-size);
     width:var(--portrait-size);
     min-width:var(--portrait-size);
 }
 .leaderboard .athlete-td .portrait-wrapper .rank-change{
     width:var(--portrait-size);
     min-width:var(--portrait-size);
 }
 .pro-badge{
     display:none;
     position:absolute;
     right:2px; bottom:2px;
     padding:2px 6px;
     font-size:9px; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
     color:#fff;
     text-shadow: 0 0 1px #000, 0 0 2px #000, 1px 1px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000;
     background:linear-gradient(145deg, rgba(0,0,0,.78), rgba(0,0,0,.92));
     border:1px solid #000;
     border-radius:2px;
     box-shadow: 0 1px 3px rgba(0,0,0,.35);
     align-items:center; justify-content:center;
     pointer-events:none;
     z-index:2;
     line-height:1.2;
     transform:rotate(-8deg);
 }
 tr.tier-pro .pro-badge{ display:flex; }
 /* Hide PRO ribbon on leaderboard/podium; show only in modal when profile is opened */
 .leaderboard .pro-badge{ display:none !important; }
 .podium .pro-badge{ display:none !important; }
 @media (min-width: 768px){
     .pro-badge{ right:2px; bottom:8px; font-size:11px; padding:3px 8px; }
 }
 /* Modal: PRO ribbon on profile picture – on-image, scaled, premium look */
 #athlete-profile .pro-badge{ display:none; }
 /* Badge scales with portrait size (container); desktop cap at 2.25rem */
 #athlete-profile.is-pro .pro-badge{
     display:inline-flex;
     right:6%; bottom:-8%;
     font-size:2.25rem;
     font-size:min(2.25rem, 11cqw);
     font-weight:800;
     letter-spacing:0.12em;
     padding:0.4em 0.85em;
     color:rgba(12,16,16,.94);
     text-shadow:none;
     background:linear-gradient(160deg, rgba(246,244,237,.96) 0%, rgba(210,215,212,.86) 100%);
     border:2px solid rgba(255,255,255,.2);
     border-radius:0.5em;
     box-shadow:0 2px 8px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.08);
     transform:rotate(-12deg);
     line-height:1.2;
     z-index:2;
     pointer-events:auto;
     user-select:none;
 }
 @media (min-width: 768px){
     #athlete-profile.is-pro .pro-badge{ bottom:-7%; }
 }

 /* =========================
    7) Podium cards
    ========================= */
 .podium{
     --podium-gold-surface:#fff9db;
     --podium-silver-surface:#e9eef2;
     --podium-bronze-surface:#f3e8da;
     display:flex; justify-content:center; align-items:stretch; margin-bottom:1.2rem;
 }
 @media (prefers-color-scheme:dark){
     .podium{
         --podium-gold-surface:#3a3320;
         --podium-silver-surface:#29333d;
         --podium-bronze-surface:#382e26;
     }
 }
 .podium-item{
     --podium-prize-panel-height: 82px;
     --podium-portrait-size: 112px;
     position:relative; text-align:center; padding:.9rem 1rem calc(var(--podium-prize-panel-height) + 1rem); background:var(--card-bg); border-radius:15px;
     box-shadow:0 10px 30px rgba(0,0,0,.1); margin:0 1rem; display:flex; flex-direction:column; align-items:center;
     justify-content:flex-start; width:190px; min-height:230px; box-sizing:border-box; transition:opacity var(--lwc-duration-normal, 220ms) var(--lwc-ease, ease), transform var(--lwc-duration-normal, 220ms) var(--lwc-ease, ease); cursor:pointer;
 }
 .podium .podium-item:hover,
 .podium .podium-item:focus-within{
     border-color:var(--lwc-border-strong, #71808d);
     box-shadow:var(--shadow-sm, 0 1px 2px rgba(15,23,42,.08));
 }
 .podium-item.blurred{ filter: blur(5px); pointer-events:none; }
 .podium-item.first{ --podium-portrait-size: 116px; order:2; min-height:340px; margin-top:0; }
 .podium-item.second{ --podium-portrait-size: 102px; order:1; min-height:322px; margin-top:18px; }
 .podium-item.third{ --podium-portrait-size: 92px; order:3; min-height:306px; margin-top:34px; }

 .podium-item-lower{
     position:absolute; bottom:0; width:100%; min-height:var(--podium-prize-panel-height); padding:10px 0; border-radius:0 0 var(--radius-lg, 12px) var(--radius-lg, 12px);
     display:flex; flex-direction:column; align-items:center; clip-path:polygon(0 0, 100% 0, 100% 100%, 0% 100%);
     transition:clip-path var(--lwc-duration-normal, 220ms) var(--lwc-ease, ease); pointer-events:auto; cursor:pointer; color:var(--lwc-ink, #17212b); text-decoration:none;
     box-sizing:border-box;
 }
 .podium-item-lower:hover{ clip-path:polygon(0 0, 100% 0, 100% 100%, 0% 100%); }
 .podium-item.first .podium-item-lower{ background:var(--podium-gold-surface); }
 .podium-item.second .podium-item-lower{ background:var(--podium-silver-surface); }
 .podium-item.third .podium-item-lower{ background:var(--podium-bronze-surface); }
 .prize-money{ font-weight:bold; font-size:1.55rem; color:var(--lwc-success, #1f7a38); margin-top:1px; font-variant-numeric:tabular-nums; }
 .btc-amount{ margin-top:.62rem; font-weight:normal; font-size:.72rem; color:inherit; line-height:1.2; }

 .podium-rank{
     position:absolute; top:-6px; left:10%; transform:translateX(-50%); background:var(--lwc-surface, #fff); color:var(--lwc-ink, #17212b);
     padding:2px; border-radius:50%; width:60px; height:60px; display:flex; justify-content:center; align-items:center;
     font-size:2rem; box-shadow:0 4px 8px rgba(0,0,0,.1);
 }

 /* =========================
    8) Table row bits
    ========================= */
 .rank{ font-weight:700; font-size:1.2rem; color:var(--primary-color); }
 .age-reduction{ font-weight:700; color:var(--lwc-success, #1f7a38); text-align:left; }
 .athlete-td{
     display:flex;
     align-items:center;
     text-align:left;
     gap:.5rem;
     min-width:0;
 }
 .athlete-td .badge-section{ flex:0 0 auto; flex-wrap:nowrap; }

 .athlete-name{
     color:var(--primary-color); text-decoration:underline; text-decoration-thickness:.08em; text-underline-offset:.18em; text-align:left; cursor:pointer;
     transition:color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), background-color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), box-shadow var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease);
     display:inline-flex; align-items:center; min-height:44px; padding:.5rem .45rem; white-space:pre-wrap; overflow-wrap:normal; word-break:normal; hyphens:none; border-radius:8px;
     border:0; background:transparent; font:inherit; appearance:none; -webkit-appearance:none; box-sizing:border-box;
 }
 .athlete-name:hover{
     color:var(--secondary-color); background-color:rgba(8,118,133,.08); box-shadow:inset 0 0 0 1px rgba(8,118,133,.12);
 }
 .athlete-name:focus-visible{
     color:var(--secondary-color); background-color:rgba(8,118,133,.08); outline:3px solid rgba(0,188,212,.38); outline-offset:2px;
 }
 .athlete-profile-link:focus-visible{ outline:3px solid var(--primary-color); outline-offset:3px; border-radius:8px; }
 .podium .athlete-name{ font-size:1.1rem; font-weight:700; padding-bottom:.2rem; }

 .media-contact{
     color:var(--lwc-accent, #087685); text-decoration:none; transition:color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease); font-size:1.5rem; padding:.5rem; margin:10px 0;
 }
 .media-contact:hover{ color:var(--primary-color); }
 .media-contact i{ font-size:2rem; width:2rem; height:2rem; line-height:2rem; display:inline-block; text-align:center; vertical-align:middle; }
 .media-contact-handle{ display:inline-block; max-width:100%; overflow-wrap:anywhere; }

 .personal-link-icon{
     display:inline-flex; align-items:center; justify-content:center; width:2rem; height:2rem;
     color:var(--primary-color); font-size:1rem; text-decoration:none; transition:color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), background-color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease);
     margin-left:.15rem; border-radius:50%; box-sizing:border-box; vertical-align:middle;
 }
 .personal-link-icon:first-of-type{ margin-left:0; }
 .personal-link-icon:hover,
 .personal-link-icon:focus-visible{ color:var(--secondary-color); background-color:rgba(0,188,212,.08); }
 .podium-link-row{ display:inline-flex; align-items:center; justify-content:center; gap:var(--space-1, .25rem); }
 .podium-link-row .personal-link-icon{
     width:44px;
     height:44px;
     flex:0 0 44px;
     margin-left:0;
     margin-right:0;
 }
 .podium-link-row .personal-link-icon i{ width:auto; }

 .leaderboard table tbody tr{ scroll-margin-top:0; }
 .leaderboard table tbody tr:target{ background:var(--lwc-accent-soft, rgba(8,118,133,.16)); transition:background-color var(--lwc-duration-normal, 220ms) var(--lwc-ease, ease); }

 /* =========================
    10) Modal
    ========================= */
 .modal{
     display:none; position:fixed; z-index:var(--athlete-dialog-layer, 3); left:0; top:0; width:100%; height:100%;
     overflow:hidden; background-color:rgba(0,0,0,.4); backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);
 }
 .modal.fade-out .modal-content,
 .modal.fade-out .modal-sticky-header{
     visibility:hidden;
 }
 .modal-content.is-loading:not([data-server-rendered-profile]) #athleteBio,
 .modal-content.is-loading:not([data-server-rendered-profile]) #athleteRank,
 .modal-content.is-loading:not([data-server-rendered-profile]) #athleteDivision,
 .modal-content.is-loading:not([data-server-rendered-profile]) #athleteGeneration,
 .modal-content.is-loading:not([data-server-rendered-profile]) #athleteFlag,
 .modal-content.is-loading:not([data-server-rendered-profile]) #chronologicalAge,
 .modal-content.is-loading:not([data-server-rendered-profile]) #lowestBortzAge,
 .modal-content.is-loading:not([data-server-rendered-profile]) #lowestPhenoAge,
 .modal-content.is-loading:not([data-server-rendered-profile]) #bortzAgeReduction,
 .modal-content.is-loading:not([data-server-rendered-profile]) #bortzAgeReductionPercent,
 .modal-content.is-loading:not([data-server-rendered-profile]) #ageReduction,
 .modal-content.is-loading:not([data-server-rendered-profile]) #ageReductionPercent,
 .modal-content.is-loading:not([data-server-rendered-profile]) #paceOfAging,
 .modal-content.is-loading:not([data-server-rendered-profile]) #paceOfAgingRank,
 .modal-content.is-loading:not([data-server-rendered-profile]) #bortzPaceOfAging,
 .modal-content.is-loading:not([data-server-rendered-profile]) #bortzPaceOfAgingRank,
 .modal-content.is-loading:not([data-server-rendered-profile]) #crowdAge,
 .modal-content.is-loading:not([data-server-rendered-profile]) #crowdCount,
 .modal-content.is-loading:not([data-server-rendered-profile]) #yourGuess,
 .modal-content.is-loading:not([data-server-rendered-profile]) #modalBadgeStrip,
 .modal-content.is-loading:not([data-server-rendered-profile]) #proofsGallery{
     visibility:hidden;
 }
 #detailsModal .modal-content.has-load-error #athlete-profile > :not(#athleteName):not(#athleteLoadError),
 #detailsModal .modal-content.has-load-error #athlete-biomarkers,
 #detailsModal .modal-content.has-load-error .events-embed,
 #detailsModal .modal-content.has-load-error #athlete-proofs{
     display:none !important;
 }
 #athleteLoadError{
     width:min(100%, var(--athlete-modal-section-width));
     box-sizing:border-box;
     margin:.5rem auto 0;
     padding:.8rem;
     border:1px solid var(--athlete-modal-cream-border);
     border-radius:var(--lwc-radius-md, 8px);
     background:rgba(255,255,255,.08);
 }
 #athleteLoadError[hidden]{ display:none; }
 #athleteLoadError p{ margin:0 0 .65rem; }
 .modal-content{
     background:#fefefe; margin:1% auto; padding:20px; border:none; width:80%; height:88%; max-width:900px;
     border-radius:15px; box-shadow:0 4px 6px rgba(0,0,0,.1); overflow-y:auto; max-height:90vh; animation:fadeIn var(--lwc-duration-normal, 220ms) var(--lwc-ease, ease);
     -webkit-overflow-scrolling:touch; scroll-behavior:smooth; overscroll-behavior:contain;
     position:relative;
 }
 #detailsModal{
     --athlete-modal-surface: var(--background-color, linear-gradient(120deg, #000000, #555555));
     --athlete-modal-card: linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.035));
     --athlete-modal-card-strong: linear-gradient(180deg, rgba(255,255,255,.09), rgba(255,255,255,.045));
     --athlete-modal-card-hover: rgba(255,255,255,.16);
     --athlete-modal-text: rgba(255,255,255,.94);
     --athlete-modal-cream: rgba(246,244,237,.92);
     --athlete-modal-cream-soft: rgba(246,244,237,.18);
     --athlete-modal-cream-border: rgba(246,244,237,.52);
     --athlete-modal-link: rgba(246,244,237,.9);
     --athlete-modal-muted: rgba(255,255,255,.68);
     --athlete-modal-subtle: rgba(255,255,255,.48);
     --athlete-modal-border: rgba(246,244,237,.34);
     --athlete-modal-border-strong: rgba(246,244,237,.48);
     --athlete-modal-shadow: 0 22px 60px rgba(0,0,0,.48);
     --athlete-modal-focus: 0 0 0 3px rgba(246,244,237,.28);
     --athlete-modal-chart-grid: rgba(255,255,255,.16);
     --athlete-modal-chart-bortz: rgba(154,232,178,.96);
     --athlete-modal-chart-pheno: rgba(135,229,229,.96);
     --athlete-modal-chart-biomarker: rgba(255,125,125,.96);
     --athlete-modal-chart-panel: rgba(8,10,10,.28);
     --athlete-modal-section-width: 640px;
 }
 #detailsModal.modal{
     background-color: rgba(0,0,0,.72);
     backdrop-filter: blur(10px) saturate(.8);
     -webkit-backdrop-filter: blur(10px) saturate(.8);
 }
 #detailsModal .modal-content{
     background: var(--athlete-modal-surface);
     background-clip: padding-box;
     color: var(--athlete-modal-text);
     border: 1px solid var(--athlete-modal-border);
     box-shadow: var(--athlete-modal-shadow), inset 0 0 0 1px rgba(246,244,237,.08);
     isolation: isolate;
 }
 #detailsModal .modal-content::before{
     content:"";
     position:absolute;
     inset:1px;
     pointer-events:none;
     border-radius:14px;
     z-index:0;
     background:
         radial-gradient(circle at 50% 0%, rgba(246,244,237,.11), transparent 32%),
         radial-gradient(circle at 72% 8%, rgba(181,226,226,.06), transparent 26%),
         linear-gradient(180deg, rgba(255,255,255,.065), transparent 18%);
     opacity:.64;
 }
 #detailsModal .modal-content > *{
     position:relative;
     z-index:1;
 }
 #detailsModal .modal-scroll-progress,
 #detailsModal .modal-sticky-header{
     position: sticky;
 }
 /* Remove border-radius on mobile immediately (before animation) */
 @media (max-width: 768px) {
     .modal-content{
         border-radius:0 !important;
     }
     .modal-content.guess-mode{
         border-radius:0 !important;
     }
     #detailsModal .modal-content::before{
         border-radius:0;
     }
 }
 @media (prefers-reduced-motion: reduce) {
     .modal-content{ scroll-behavior:auto; animation:none; }
 }

 /* Sticky header with athlete name */
 .modal-sticky-header{
     position:sticky; top:0; left:0; right:0; z-index:5;
     background:#fefefe; padding:0.75rem 1rem; margin:-20px -20px 1rem -20px;
     border-bottom:1px solid rgba(0,0,0,0.1); box-shadow:0 2px 4px rgba(0,0,0,0.05);
     display:none; align-items:center; justify-content:space-between;
     transition:opacity var(--lwc-duration-normal, 220ms) var(--lwc-ease, ease), transform var(--lwc-duration-normal, 220ms) var(--lwc-ease, ease);
 }
 .modal-sticky-header.visible{ display:flex; }
 /* Blur overlay above sticky header */
 .modal-sticky-header.visible::before{
     content:''; position:absolute; top:-40px; left:0; right:0; height:40px;
     background:linear-gradient(to bottom, rgba(254,254,254,0.8), rgba(254,254,254,0.95));
     backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px);
     pointer-events:none; z-index:-1;
 }
 .modal-sticky-header .sticky-header-left{
     display:flex; align-items:center; gap:0.5rem; min-width:0; flex:1;
 }
 .modal-sticky-header .sticky-athlete-name{
     font-size:1.1rem; font-weight:600; color:var(--dark-text-color);
     white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0;
 }
 .modal-sticky-header .sticky-pro-badge{
     display:none;
     flex-shrink:0;
     font-size:0.7rem; font-weight:800; letter-spacing:0.1em; text-transform:uppercase;
     padding:0.25em 0.5em;
     color:#fff;
     background:linear-gradient(160deg, rgba(0,0,0,.85) 0%, rgba(0,0,0,.75) 100%);
     border:1px solid rgba(255,255,255,.2);
     border-radius:4px;
     box-shadow:0 1px 3px rgba(0,0,0,.3);
     user-select:none;
 }
 .modal-sticky-header.is-pro .sticky-pro-badge{ display:inline-flex; }
 .modal-sticky-header .sticky-close-btn{
     background:none; border:none; font-size:1.5rem; color:#999;
     cursor:pointer; padding:0.5rem; margin-left:1rem; flex-shrink:0;
     line-height:1; min-width:44px; min-height:44px;
     border-radius:50%; transition:color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), background-color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), transform var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease);
     display:flex; align-items:center; justify-content:center;
 }
 .modal-sticky-header .sticky-close-btn:hover{
     color:var(--dark-text-color);
     background:rgba(0,0,0,0.05);
     transform:scale(1.1);
 }
 .modal-sticky-header .sticky-close-btn:active{
     transform:scale(0.95);
     background:rgba(0,0,0,0.1);
 }
 #detailsModal .modal-sticky-header{
     top: -20px;
     margin: -20px -20px 1.25rem -20px;
     padding: 1.25rem 1.25rem .85rem;
     z-index: 30;
     isolation: isolate;
     background: linear-gradient(180deg, rgba(17,19,19,.96), rgba(9,10,10,.92));
     color: var(--athlete-modal-text);
     border-bottom: 1px solid var(--athlete-modal-border);
     box-shadow: 0 12px 28px rgba(0,0,0,.22), inset 0 -1px 0 rgba(246,244,237,.06);
     backdrop-filter: blur(14px);
     -webkit-backdrop-filter: blur(14px);
 }
 #detailsModal .modal-sticky-header.visible::before{
     top: -80px;
     height: 80px;
     background: linear-gradient(180deg, rgba(4,5,5,.98), rgba(17,19,19,.96));
 }
 #detailsModal .modal-sticky-header .sticky-athlete-name{
     color: var(--athlete-modal-text);
 }
 #detailsModal .modal-sticky-header .sticky-pro-badge{
     background: linear-gradient(145deg, rgba(246,244,237,.96), rgba(210,215,212,.82));
     color: rgba(12,16,16,.92);
     border-color: rgba(255,255,255,.72);
     text-shadow: none;
     box-shadow: 0 12px 26px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.7);
 }
 #detailsModal .modal-sticky-header .sticky-close-btn,
 #detailsModal #closeAthleteDetailsModal{
     position:absolute;
     top:24px;
     left:24px;
     z-index:60;
     width:44px;
     height:44px;
     min-width:44px;
     min-height:44px;
     padding:0;
     display:inline-flex;
     align-items:center;
     justify-content:center;
     color: rgba(255,255,255,.78);
     background: rgba(255,255,255,.08);
     border: 1px solid var(--athlete-modal-border);
 }
 #detailsModal .modal-sticky-header .sticky-close-btn{
     position:static;
     width:auto;
 }
 #detailsModal .modal-sticky-header .sticky-close-btn:hover,
 #detailsModal .modal-sticky-header .sticky-close-btn:focus-visible,
 #detailsModal #closeAthleteDetailsModal:hover,
 #detailsModal #closeAthleteDetailsModal:focus-visible{
     color: #fff;
     background: rgba(246,244,237,.16);
     border-color: rgba(246,244,237,.56);
     box-shadow: 0 0 0 3px rgba(246,244,237,.18), 0 10px 22px rgba(0,0,0,.26);
     outline: none;
 }
 .athlete-profile{ display:flex; flex-direction:column; align-items:center; text-align:center; }

 /* Modal portrait: wrapper defines picture bounds so PRO badge sits on the image */
 #athlete-profile .portrait-wrapper{
     position:relative;
     display:block;
     width:62%;
     aspect-ratio:1/1;
     max-width:292px;
     margin:0 auto;
     container-type:inline-size;
     container-name:portrait;
 }
 #modalProfilePic{
     position:absolute;
     inset:0;
     width:100%; height:100%;
     border-radius:50%;
     object-fit:cover;
     cursor:pointer;
     transition:transform var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), border-color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease);
 }
 #athlete-profile .portrait-wrapper:hover #modalProfilePic{ transform: scale(1.05); }
 #athlete-profile.is-pro .pro-badge{ transition:transform var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease); }
 #athlete-profile .portrait-wrapper:hover .pro-badge{ transform:rotate(-12deg) scale(1.05); }

 #detailsModal #athlete-profile{
     color: var(--athlete-modal-text);
     z-index: 2;
 }
 #detailsModal #athlete-profile .portrait-wrapper{
     filter: drop-shadow(0 18px 28px rgba(0,0,0,.42));
 }
 #detailsModal #modalProfilePic{
     border: 3px solid rgba(246,244,237,.62);
     box-shadow: inset 0 0 0 1px rgba(255,255,255,.16), 0 12px 30px rgba(0,0,0,.38);
 }
 #detailsModal #athleteName{
     color: var(--athlete-modal-text);
     margin-bottom: .25rem;
     text-shadow: 0 2px 16px rgba(0,0,0,.45);
 }
 #detailsModal #athleteRankings{
     display:flex;
     width:min(100%, var(--athlete-modal-section-width));
     margin:var(--lwc-space-3) auto var(--lwc-space-2);
 }
 #detailsModal #athleteRankings[hidden]{ display:none; }
 #detailsModal [data-profile-pending][hidden]{ display:none; }
 #detailsModal [data-server-rendered-profile] #guessAgeContainer{ display:none; }
 #detailsModal #athleteRankings a{
     display:flex;
     flex:1 1 0;
     flex-direction:column;
     align-items:center;
     justify-content:space-between;
     gap:var(--lwc-space-1);
     min-width:0;
     min-height:44px;
     padding:var(--lwc-space-2);
     color:var(--athlete-modal-muted);
     font-size:var(--lwc-type-sm);
     text-decoration:none;
 }
 #detailsModal #athleteRankings a + a{ border-left:1px solid var(--athlete-modal-border); }
 #detailsModal #athleteRankings strong{
     color:var(--athlete-modal-link);
     font-size:var(--lwc-type-h3);
     line-height:1.2;
     text-decoration:underline;
     text-underline-offset:.18em;
 }
 #detailsModal #athleteRankings a:hover,
 #detailsModal #athleteRankings a:focus-visible{
     background:var(--athlete-modal-card-hover);
 }
 #detailsModal #athleteRankings a:focus-visible{
     outline:2px solid var(--athlete-modal-link);
     outline-offset:2px;
 }
 #detailsModal #athleteBio{
     width: min(100%, var(--athlete-modal-section-width));
     color: var(--athlete-modal-muted);
     line-height: 1.6;
     margin: 1rem auto 1.45rem;
     padding: .9rem 1.1rem;
     box-sizing: border-box;
     background: rgba(246,244,237,.065);
     border: 1px solid rgba(246,244,237,.18);
     border-radius: 18px;
     box-shadow: inset 0 1px 0 rgba(255,255,255,.055), 0 12px 28px rgba(0,0,0,.16);
     font-weight: 400;
     letter-spacing: normal;
     overflow-wrap:anywhere;
     word-break:normal;
 }

 .athlete-info {
     text-align: left;
     width: 100%;
     max-width: 600px;
     margin: 1.5rem auto;
     min-width: 0; /* allow shrinking inside flex so content doesn't overflow */
 }
 .athlete-info p{ margin:.3rem 0; }

 /* Athlete info — clean two-column table (labels right, values left); uniform row spacing */
 .athlete-info-table {
     width: 100%;
     max-width: 100%;
     margin: 0 auto;
     border-collapse: separate;
     border-spacing: 0.3rem 0;
     table-layout: fixed; /* prevents table from overflowing; columns share space */
 }
 .athlete-info-table th,
 .athlete-info-table td{
     text-align:left;
     padding: 0.35rem 0 0.35rem 0.5rem;
     min-width:0;
     overflow-wrap:break-word;
     word-break:break-word;
     background:none !important;
     border:0;
     font-weight:400;
     color: inherit !important;
     opacity: 1 !important;
     line-height: 1.25;
 }

 .athlete-info-table th{
     width: 38%; /* leaves room for values; long labels wrap */
     text-align:left;
     white-space:normal; /* wrap long labels so they never get cut off */
     padding: 0.35rem 0.5rem 0.35rem 0;
     font-weight:700;
     color:inherit !important;
     background:none !important;
     text-transform:none !important;
     letter-spacing:normal !important;
     border:0 !important;
     box-shadow:none !important;
 }
 .athlete-info-table td{
     text-align:left;
     padding: 0.35rem 0 0.35rem 0.5rem;
     min-width:0;
     overflow-wrap:break-word;
     word-break:break-word;
     background:none !important;
     border:0;
     font-weight:400;
     color: inherit !important;
     opacity: 1 !important;
     line-height: 1.25;
 }


 .athlete-info-table .unit{
     opacity: 1 !important;
     white-space: nowrap;
     margin-left: .25ch;
 }
 .athlete-info-table .detail-muted,
 .athlete-info-table .detail-value{
     opacity: 1 !important;
 }
 #detailsModal .athlete-info,
 #detailsModal .biomarkers-section,
 #detailsModal .proofs-section,
 #detailsModal .events-embed{
     background: var(--athlete-modal-card);
     border: 1px solid var(--athlete-modal-border);
     border-radius: 22px;
     box-shadow: 0 16px 42px rgba(0,0,0,.26), inset 0 1px 0 rgba(255,255,255,.06);
 }
 #detailsModal .athlete-info{
     padding: 1.1rem 1.25rem;
     max-width: var(--athlete-modal-section-width);
     box-sizing:border-box;
 }
 #detailsModal .athlete-info-table th,
 #detailsModal .athlete-info-table td{
     color: var(--athlete-modal-text) !important;
 }
 #detailsModal .athlete-info-table th{
     color: var(--athlete-modal-muted) !important;
 }
 #detailsModal .athlete-info-table .unit{
     color: var(--athlete-modal-muted);
 }
 #detailsModal .athlete-info-table .detail-muted{
     color: var(--athlete-modal-muted);
 }
 #detailsModal .athlete-info-table .detail-value{
     color: var(--athlete-modal-text);
 }
 #detailsModal .athlete-info-table tr{
     border-color: var(--athlete-modal-border);
 }
 #detailsModal .athlete-info-table tr:not(.athlete-info-divider-row) th,
 #detailsModal .athlete-info-table tr:not(.athlete-info-divider-row) td{
     padding-top: .48rem;
     padding-bottom: .48rem;
 }
 #detailsModal .athlete-info-table tr:not(:first-child):not(.athlete-info-divider-row) th,
 #detailsModal .athlete-info-table tr:not(:first-child):not(.athlete-info-divider-row) td{
     border-top: 1px solid rgba(246,244,237,.085);
 }
 #detailsModal .athlete-info-table tr.athlete-info-group-first th,
 #detailsModal .athlete-info-table tr.athlete-info-group-first td{
     border-top: 0 !important;
 }

 /* Visual break between profile basics and age/performance details. */
 .athlete-info-divider-row td {
     padding: 0.35rem 0 0.35rem 0.5rem !important;
     vertical-align: middle;
     border: 0;
     line-height: 0;
 }
 .athlete-info-divider {
     display: block;
     height: 1px;
     min-width: 12rem;
     max-width: 100%;
     background: var(--border-color, rgba(0,0,0,.14));
     border: 0;
 }
 #detailsModal .athlete-info-divider{
     background: var(--athlete-modal-border);
 }

 /* === FIX: Pace of aging sor biztosan egy sorban === */
 #bortzPaceOfAgingContainer td{ white-space: nowrap; }
 #paceOfAgingContainer td{ white-space: nowrap; }


 #ageReduction,
 #ageReductionPercent,
 #lowestBortzAge,
 #bortzAgeReduction,
 #bortzAgeReductionPercent{ white-space: nowrap; }

 .athlete-links{ display:flex; align-items:center; flex-direction:column; gap:.5rem; }
 .athlete-share-wrapper{ position:relative; display:inline-flex; }
 .athlete-links a,
 .athlete-links button{ display:flex; align-items:center; text-decoration:none; color:var(--primary-color); transition:color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease); }
 .athlete-links a:hover,
 .athlete-links button:hover{ color:var(--secondary-color); }
 #detailsModal .athlete-links{
     flex-direction: row;
     justify-content: center;
     flex-wrap: wrap;
     gap: .65rem;
     width: min(100%, var(--athlete-modal-section-width));
     margin: 1rem auto 1.35rem;
     padding: .6rem;
     box-sizing: border-box;
     background: rgba(246,244,237,.055);
     border: 1px solid rgba(246,244,237,.16);
     border-radius: var(--lwc-radius-lg);
     box-shadow: none;
 }
 #detailsModal .athlete-links a,
 #detailsModal .athlete-links button,
 #detailsModal .modal-link,
 #detailsModal .league-link{
     color: var(--athlete-modal-link);
 }
 #detailsModal .athlete-links a,
 #detailsModal .athlete-links button{
     min-height: 44px;
     padding: .55rem 1rem;
     border: 1px solid var(--athlete-modal-border);
     border-radius: var(--lwc-radius-md);
     background: var(--athlete-modal-card);
     box-shadow: none;
     font-size: .95rem;
     font-weight: 700;
     font-family: inherit;
     cursor: pointer;
     gap: .4rem;
     line-height: 1.15;
 }
 #detailsModal .athlete-links > a > i,
 #detailsModal .athlete-share-wrapper > button > i {
     flex: 0 0 1.25rem;
     width: 1.25rem;
     text-align: center;
 }
 #detailsModal .athlete-links button{
     appearance: none;
     -webkit-appearance: none;
 }
 #detailsModal .athlete-links button:disabled{
     cursor: default;
     opacity: .82;
 }
 #detailsModal .athlete-share-menu{
     position:absolute;
     top:calc(100% + .45rem);
     left:0;
     z-index:80;
     min-width:12.5rem;
     max-height:calc(100dvh - 6rem);
     overflow-y:auto;
     overscroll-behavior:contain;
     padding:.35rem;
     border:1px solid var(--athlete-modal-border-strong);
     border-radius:var(--lwc-radius-lg);
     background:var(--athlete-modal-card);
     box-shadow:0 20px 42px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.06);
 }
 #detailsModal .athlete-share-menu.is-above{
     top:auto;
     bottom:calc(100% + .45rem);
 }
 #detailsModal .athlete-share-menu[hidden]{ display:none; }
 #detailsModal .athlete-share-menu a,
 #detailsModal .athlete-share-menu button{
     width:100%;
     min-height:44px;
     padding:.55rem .7rem;
     border:0;
     border-radius:var(--lwc-radius-md);
     background:transparent;
     box-shadow:none;
     color:var(--athlete-modal-link);
     font:inherit;
     justify-content:flex-start;
     text-align:left;
     gap:.55rem;
     box-sizing:border-box;
 }
 #detailsModal .athlete-share-menu a:hover,
 #detailsModal .athlete-share-menu a:focus-visible,
 #detailsModal .athlete-share-menu button:hover,
 #detailsModal .athlete-share-menu button:focus-visible{
     color:#fff;
     background:rgba(246,244,237,.12);
     outline:none;
     box-shadow:var(--athlete-modal-focus);
 }
 #detailsModal .athlete-share-menu i{
     width:1.25rem;
     text-align:center;
     font-size:1rem;
     flex:0 0 1.25rem;
 }
 #detailsModal .athlete-share-recovery{
     display:grid;
     gap:.4rem;
     padding:.55rem .7rem .75rem;
     color:var(--athlete-modal-text);
     text-align:left;
     font-size:.9rem;
     line-height:1.4;
 }
 #detailsModal .athlete-share-recovery[hidden]{ display:none; }
 #detailsModal .athlete-share-recovery p{ margin:0; }
 #detailsModal .athlete-share-recovery label{ color:inherit; }
 #detailsModal #athleteShareLink{
     width:100%;
     min-width:0;
     min-height:44px;
     box-sizing:border-box;
     padding:.55rem;
     border:1px solid var(--athlete-modal-border-strong);
     border-radius:var(--lwc-radius-sm);
     background:var(--athlete-modal-card);
     color:var(--athlete-modal-text);
     font:inherit;
 }
 #detailsModal .athlete-links button[aria-disabled="true"]{
     cursor:progress;
     opacity:.82;
 }
 #detailsModal .modal-link i{
     font-size: 1.15rem;
 }
 #detailsModal .athlete-links a:hover,
 #detailsModal .athlete-links a:focus-visible,
 #detailsModal .athlete-links button:hover,
 #detailsModal .athlete-links button:focus-visible,
 #detailsModal .modal-link:hover,
 #detailsModal .modal-link:focus-visible,
 #detailsModal .league-link:hover,
 #detailsModal .league-link:focus-visible{
     color: #fff;
     outline: none;
     text-shadow: none;
     background: rgba(246,244,237,.15);
     border-color: rgba(246,244,237,.72);
 }
 #detailsModal .modal-rank-icon{
     display:inline-flex;
     align-items:center;
     justify-content:center;
     width:1.05em;
     height:1.05em;
     margin-left:.25em;
     border-radius:50%;
     color:rgba(15,18,18,.9);
     background:var(--athlete-modal-cream);
     box-shadow:0 4px 10px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.72);
     font-size:.7em;
     vertical-align:.12em;
 }

 /* Scroll progress indicator */
 .modal-scroll-progress{
     position:absolute;
     top:.45rem;
     left:1.25rem;
     right:1.25rem;
     width:auto;
     height:3px;
     margin:0;
     background:var(--primary-color);
     z-index:70;
     transform:scaleX(var(--modal-scroll-progress, 0));
     transform-origin:left center;
     transition:transform var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease);
     opacity:0;
     pointer-events:none;
     border-radius:0 2px 2px 0;
 }
 .modal-scroll-progress.visible{ opacity:1; }
 #detailsModal .modal-scroll-progress{
     background: linear-gradient(90deg, rgba(246,244,237,.45), rgba(246,244,237,.9));
     box-shadow: 0 0 16px rgba(246,244,237,.22);
     position:absolute;
     z-index:70;
 }
 .modal-content{ position:relative; }

 /* =========================
    11) Proofs & enlarged overlay
    ========================= */
 .proofs-gallery{ display:flex; flex-direction:column; align-items:stretch; gap:1rem; justify-content:center; padding:0; width:100%; }
 .proof-item{ width:100%; height:auto; border-radius:10px; overflow:hidden; cursor:pointer; transition:transform var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease); background:#fff; box-shadow:0 1px 8px rgba(0,0,0,.08); }
 .proof-item:hover{ transform: scale(1.05); }
 .proof-item img{ display:block; width:auto; max-width:100%; height:auto; max-height:72vh; object-fit:contain; margin:0 auto; background:#fff; }
 .proof-item img:focus-visible,
 #modalProfilePic:focus-visible{ outline:3px solid rgba(0,188,212,.58); outline-offset:-3px; }
 .proofs-empty{ margin:.5rem 0 0; color:var(--athlete-modal-muted); text-align:center; font-size:.95rem; }
 #detailsModal .biomarkers-section,
 #detailsModal .proofs-section,
 #detailsModal .events-embed{
     background: var(--athlete-modal-card-strong);
     width: min(100%, var(--athlete-modal-section-width));
     box-sizing: border-box;
     margin-left: auto;
     margin-right: auto;
     padding: 1rem;
     color: var(--athlete-modal-text);
 }
 #detailsModal .events-embed{
     position:relative;
     padding:.75rem;
     overflow:hidden;
 }
 #detailsModal .events-embed::before{
     content:none;
     display:none;
 }
 #detailsModal #events-frame{
     position:relative;
     z-index:1;
     display:block;
     border-radius:16px;
 }
 #detailsModal .biomarkers-section h3,
 #detailsModal .proofs-section h3{
     margin:0 0 .85rem;
     padding:0 0 .7rem;
     color:var(--athlete-modal-link);
     border-bottom:1px solid rgba(246,244,237,.16);
     text-align:left;
     text-transform:uppercase;
     font-size:.85rem;
     font-weight:800;
     letter-spacing:.06em;
 }
 #detailsModal .biomarkers-section{
     overflow:hidden;
     margin-top:1.15rem;
     margin-bottom:1.6rem;
 }
 #detailsModal .biomarkers-section::after{
     content:none;
     display:none;
 }
 #detailsModal .biomarker-chart-controls{
     display:flex;
     justify-content:center;
     align-items:center;
     position:relative;
     width:min(100%, 320px);
     max-width:100%;
     margin:.75rem auto 1.25rem;
     padding:0;
     background:none;
     border:0;
     box-shadow:none;
     color:var(--athlete-modal-text);
 }
 #detailsModal .biomarker-chart-controls::after{
     content:"";
     position:absolute;
     right:1.05rem;
     top:50%;
     width:.42rem;
     height:.42rem;
     border-right:2px solid currentColor;
     border-bottom:2px solid currentColor;
     transform:translateY(-65%) rotate(45deg);
     opacity:.9;
     pointer-events:none;
 }
 #detailsModal .biomarker-chart-controls select{
     appearance:none;
     -webkit-appearance:none;
     width:100%;
     min-height:44px;
     color:var(--athlete-modal-text);
     background:var(--athlete-modal-card);
     border:1px solid var(--athlete-modal-border);
     border-radius:var(--lwc-radius-md);
     padding:.65rem 2.35rem .65rem 1.05rem;
     box-shadow:none;
     font-size:.88rem;
     font-weight:700;
     line-height:1.15;
 }
 #detailsModal .biomarker-chart-controls option{
     color:#f6f4ed;
     background:#202323;
     font-weight:500;
 }
 #detailsModal .biomarker-chart-controls option:checked{
     color:#fff;
     background:#1f6fe5;
 }
 #detailsModal .biomarker-chart-controls select:focus-visible{
     outline:none;
     box-shadow:var(--athlete-modal-focus);
 }
 #detailsModal #biomarkerChart{
     display:block;
     max-height:360px;
     margin-top:.15rem;
     border:1px solid rgba(246,244,237,.09);
     border-radius:16px;
     background:var(--athlete-modal-chart-panel);
     box-shadow:inset 0 1px 0 rgba(255,255,255,.035), 0 10px 24px rgba(0,0,0,.15);
     box-sizing:border-box;
 }
 #detailsModal .proofs-section{
     margin-top:1.9rem;
     overflow:hidden;
 }
 #detailsModal .proofs-gallery{
     display:grid;
     grid-template-columns:repeat(3, minmax(0, 1fr));
     gap:var(--lwc-space-3);
     max-height:none;
     overflow:visible;
     justify-content:stretch;
     padding:0;
     scrollbar-gutter:auto;
 }
 #detailsModal .proofs-gallery[data-proof-count="1"]{
     grid-template-columns:minmax(0, 1fr);
     max-width:420px;
     margin-inline:auto;
 }
 #detailsModal .proofs-gallery[data-proof-count="2"]{
     grid-template-columns:repeat(2, minmax(0, 1fr));
 }
 #detailsModal .proofs-heading{
     display:flex;
     align-items:center;
     justify-content:space-between;
     gap:var(--lwc-space-3);
     min-height:44px;
     margin-bottom:var(--lwc-space-3);
     border-bottom:1px solid var(--athlete-modal-border);
 }
 #detailsModal .proofs-heading h3{
     margin:0;
     padding:0;
     border:0;
 }
 #detailsModal .proofs-toggle{
     min-height:44px;
     padding:var(--lwc-space-2);
     border:0;
     border-radius:var(--lwc-radius-sm);
     background:transparent;
     color:var(--athlete-modal-link);
     font:inherit;
     font-size:var(--lwc-type-sm);
     text-align:right;
     text-decoration:underline;
     cursor:pointer;
 }
 #detailsModal .proofs-toggle:hover{
     background:rgba(255,255,255,.06);
 }
 #detailsModal .proofs-toggle:focus-visible{
     outline:2px solid var(--athlete-modal-link);
     outline-offset:2px;
 }
 #detailsModal .proofs-toggle[hidden],
 #detailsModal .proof-item[hidden]{
     display:none;
 }
 #detailsModal .proof-item{
     display:flex;
     flex-direction:column;
     align-items:stretch;
     justify-content:center;
     gap:var(--lwc-space-2);
     padding:var(--lwc-space-2);
     min-height:0;
     aspect-ratio:auto;
     box-sizing:border-box;
     background:var(--athlete-modal-card-strong);
     border: 1px solid var(--athlete-modal-border);
     border-radius:var(--lwc-radius-md);
     box-shadow:var(--lwc-shadow-sm);
 }
 #detailsModal .proof-item img{
     width:100%;
     height:auto;
     aspect-ratio:4 / 3;
     max-height:none;
     object-fit:contain;
     border-radius:var(--lwc-radius-sm);
     background:rgba(255,255,255,.04);
 }
 #detailsModal .proof-number{
     color:var(--athlete-modal-muted);
     font-size:var(--lwc-type-sm);
     line-height:1.4;
     text-align:center;
 }
 #detailsModal .proof-item:hover{
     transform:none;
     border-color:var(--lwc-accent);
     box-shadow:var(--lwc-shadow-sm);
 }
 #detailsModal .proofs-empty{
     grid-column:1 / -1;
     color: var(--athlete-modal-muted);
 }

 .enlarged-portrait{
     --image-viewer-entry-scale:.98;
     position:absolute; inset:0; width:100%; height:100%; background:rgba(0,0,0,.92);
     display:flex; flex-direction:column; justify-content:center; align-items:center; gap:.65rem; z-index:1000; cursor:default;
     box-sizing:border-box;
     padding:max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
     opacity:0; transform:scale(var(--image-viewer-entry-scale)); transition:opacity var(--lwc-duration-normal, 220ms) var(--lwc-ease, ease), transform var(--lwc-duration-normal, 220ms) var(--lwc-ease, ease);
 }
 .enlarged-portrait[hidden]{ display:none; }
 .enlarged-portrait.show{ opacity:1; transform:scale(1); filter:blur(0); }
 .enlarged-portrait .close-btn{
     position:absolute; top:max(16px, env(safe-area-inset-top)); left:max(16px, env(safe-area-inset-left)); font-size:1.9rem; color:rgba(255,255,255,.9); background:rgba(12,14,14,.78);
     width:48px; height:48px; display:flex; align-items:center; justify-content:center; border-radius:50%; cursor:pointer;
     border:1px solid rgba(246,244,237,.26); box-shadow:0 10px 28px rgba(0,0,0,.38), inset 0 1px 0 rgba(255,255,255,.08);
     transition:color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), background-color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), transform var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease); padding:0; z-index:1;
 }
 .enlarged-portrait .close-btn:hover{ color:var(--light-text-color); background:rgba(0,0,0,.9); transform:scale(1.1); }
 .enlarged-portrait .close-btn:focus-visible{ color:var(--light-text-color); background:rgba(0,0,0,.9); outline:3px solid rgba(0,188,212,.68); outline-offset:3px; }
 .enlarged-portrait .image-nav{
     position:absolute;
     top:50%;
     width:48px;
     height:48px;
     display:flex;
     align-items:center;
     justify-content:center;
     padding:0 0 .15rem;
     border:1px solid rgba(246,244,237,.26);
     border-radius:50%;
     color:rgba(255,255,255,.92);
     background:rgba(12,14,14,.78);
     box-shadow:0 10px 28px rgba(0,0,0,.38), inset 0 1px 0 rgba(255,255,255,.08);
     font:inherit;
     font-size:2.2rem;
     line-height:1;
     cursor:pointer;
     transform:translateY(-50%);
     transition:color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), background-color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease), transform var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease);
     z-index:1;
 }
 .enlarged-portrait .image-nav--previous{ left:max(16px, env(safe-area-inset-left)); }
 .enlarged-portrait .image-nav--next{ right:max(16px, env(safe-area-inset-right)); }
 .enlarged-portrait .image-navigation{ display:contents; }
 .enlarged-portrait .image-nav:not(:disabled):hover{
     color:var(--light-text-color);
     background:rgba(0,0,0,.9);
     transform:translateY(-50%) scale(1.08);
 }
 .enlarged-portrait .image-nav:focus-visible{
     color:var(--light-text-color);
     background:rgba(0,0,0,.9);
     outline:3px solid rgba(0,188,212,.68);
     outline-offset:3px;
 }
 .enlarged-portrait .image-nav:disabled{
     opacity:.35;
     cursor:default;
 }
 .enlarged-portrait .image-position{
     position:absolute;
     top:max(16px, env(safe-area-inset-top));
     left:50%;
     padding:.4rem .7rem;
     border:1px solid rgba(246,244,237,.2);
     border-radius:999px;
     color:rgba(255,255,255,.92);
     background:rgba(12,14,14,.78);
     box-shadow:0 10px 24px rgba(0,0,0,.3);
     font-size:.9rem;
     font-variant-numeric:tabular-nums;
     line-height:1;
     pointer-events:none;
     transform:translateX(-50%);
     z-index:1;
 }
 .enlarged-portrait .image-navigation[hidden],
 .enlarged-portrait .image-nav[hidden],
 .enlarged-portrait .image-position[hidden],
 .enlarged-portrait .image-zoom-controls[hidden],
 .enlarged-portrait .image-viewer-hint[hidden]{ display:none; }
 .enlarged-portrait .image-viewer-stage{
     display:flex;
     align-items:center;
     justify-content:center;
     width:min(900px, calc(100vw - 2rem));
     max-width:100%;
     max-height:calc(100vh - 2rem);
     overflow:hidden;
     overscroll-behavior:contain;
     scrollbar-color:rgba(255,255,255,.58) rgba(255,255,255,.12);
 }
 .enlarged-portrait .image-viewer-stage:focus-visible{
     outline:3px solid var(--lwc-accent-bright, #19c3d1);
     outline-offset:3px;
 }
 .enlarged-portrait .image-viewer-stage img{
     width:auto;
     height:auto;
     max-width:min(900px, calc(100vw - 2rem));
     max-height:calc(100vh - 2rem);
     object-fit:contain;
     cursor:default;
     box-shadow:0 24px 70px rgba(0,0,0,.42);
 }
 .enlarged-portrait .image-viewer-stage img[hidden],
 .enlarged-portrait .image-load-feedback[hidden],
 .enlarged-portrait .image-load-retry[hidden]{ display:none; }
 .enlarged-portrait .image-load-feedback{
     box-sizing:border-box;
     flex:0 0 auto;
     width:min(100%, 24rem);
     padding:var(--lwc-space-6);
     border:1px solid #465360;
     border-radius:var(--lwc-radius-lg);
     background:#17212b;
     color:#e6edf3;
     text-align:left;
 }
 .enlarged-portrait .image-load-title{
     display:block;
     font-size:var(--lwc-type-h3);
     line-height:1.35;
 }
 .enlarged-portrait .image-load-message{
     margin:var(--lwc-space-2) 0 0;
     color:#a4b1bf;
     font-size:var(--lwc-type-sm);
     line-height:1.5;
 }
 .enlarged-portrait .image-load-retry{
     display:inline-flex;
     align-items:center;
     justify-content:center;
     min-height:46px;
     margin-top:var(--lwc-space-5);
     padding:var(--lwc-space-3) var(--lwc-space-5);
     border:1px solid transparent;
     border-radius:var(--lwc-radius-md);
     background:#19c3d1;
     color:#06252d;
     font:inherit;
     font-weight:700;
     cursor:pointer;
 }
 .enlarged-portrait .image-load-retry:hover{ background:#65dce6; }
 .enlarged-portrait .image-load-retry:focus-visible{
     outline:3px solid #e6edf3;
     outline-offset:3px;
 }
 .enlarged-portrait.is-proof-gallery{
     background:#0e171f;
 }
 .enlarged-portrait.is-proof-gallery .image-viewer-stage{
     height:calc(100% - 8rem);
     max-height:calc(100vh - 8rem);
     overflow:auto;
     align-items:flex-start;
     justify-content:flex-start;
     touch-action:pan-x pan-y pinch-zoom;
 }
 .enlarged-portrait.is-proof-gallery .image-viewer-stage img{
     flex:0 0 auto;
     width:calc(100% * var(--proof-viewer-zoom, 1));
     max-width:none;
     max-height:none;
     object-fit:initial;
 }
 .enlarged-portrait[data-image-state="loading"] .image-viewer-stage,
 .enlarged-portrait[data-image-state="error"] .image-viewer-stage{
     align-items:center;
     justify-content:center;
     overflow:auto;
 }
 .enlarged-portrait .image-zoom-controls{
     position:absolute;
     bottom:max(16px, env(safe-area-inset-bottom));
     left:50%;
     display:flex;
     align-items:center;
     gap:.35rem;
     transform:translateX(-50%);
     z-index:2;
 }
 .enlarged-portrait .image-zoom-controls button{
     display:inline-flex;
     align-items:center;
     justify-content:center;
     min-width:45px;
     min-height:45px;
     padding:.45rem .65rem;
     border:1px solid rgba(246,244,237,.42);
     border-radius:8px;
     background:rgba(12,14,14,.9);
     color:rgba(255,255,255,.96);
     font:inherit;
     font-weight:700;
     line-height:1;
     cursor:pointer;
 }
 .enlarged-portrait .image-zoom-controls button:hover:not(:disabled){
     border-color:var(--lwc-accent-bright, #19c3d1);
     background:#17212b;
 }
 .enlarged-portrait .image-zoom-controls button:focus-visible{
     outline:3px solid var(--lwc-accent-bright, #19c3d1);
     outline-offset:2px;
 }
 .enlarged-portrait .image-zoom-controls button:disabled{
     opacity:1;
     color:#a4b1bf;
     background:#17212b;
     border-color:#465360;
     cursor:not-allowed;
 }
 .enlarged-portrait .image-zoom-status{
     min-width:3.75rem;
     color:rgba(255,255,255,.96);
     font-size:var(--lwc-type-sm);
     font-variant-numeric:tabular-nums;
     font-weight:700;
     text-align:center;
 }
 .enlarged-portrait .image-viewer-hint{
     position:absolute;
     bottom:max(68px, calc(env(safe-area-inset-bottom) + 68px));
     left:50%;
     max-width:calc(100% - 2rem);
     margin:0;
     padding:.35rem .65rem;
     border-radius:var(--lwc-radius-sm);
     background:rgba(12,14,14,.88);
     color:rgba(255,255,255,.92);
     font-size:var(--lwc-type-sm);
     line-height:1.25;
     text-align:center;
     transform:translateX(-50%);
     z-index:2;
 }

 @media (max-width:768px){
     .enlarged-portrait{
         padding:max(4.4rem, calc(env(safe-area-inset-top) + 4.4rem)) max(.75rem, env(safe-area-inset-right)) max(7.2rem, calc(env(safe-area-inset-bottom) + 7.2rem)) max(.75rem, env(safe-area-inset-left));
     }
     .enlarged-portrait.is-proof-gallery:not([hidden]){
         display:grid;
         grid-template-rows:minmax(0, 1fr) auto auto;
         justify-items:center;
         align-items:stretch;
         padding-bottom:max(1rem, env(safe-area-inset-bottom));
     }
     .enlarged-portrait.is-proof-gallery .image-viewer-stage{
         grid-row:1;
         min-height:0;
         width:100%;
         height:100%;
         max-height:100%;
     }
     .enlarged-portrait.is-proof-gallery .image-viewer-hint{
         grid-row:2;
         position:static;
         max-width:100%;
         transform:none;
     }
     .enlarged-portrait.is-proof-gallery .image-zoom-controls{
         grid-row:3;
         position:static;
         transform:none;
     }
     .enlarged-portrait .image-navigation{
         position:absolute;
         top:max(16px, env(safe-area-inset-top));
         left:calc(max(16px, env(safe-area-inset-left)) + 56px);
         right:max(16px, env(safe-area-inset-right));
         display:flex;
         align-items:center;
         gap:.5rem;
         z-index:1;
     }
     .enlarged-portrait .image-nav{
         position:static;
         flex:0 0 48px;
         transform:none;
     }
     .enlarged-portrait .image-nav:not(:disabled):hover{
         transform:none;
     }
     .enlarged-portrait .image-position{
         order:-1;
         position:static;
         min-width:0;
         margin-right:auto;
         padding:.4rem .5rem;
         line-height:1.2;
         transform:none;
     }
 }

 /* =========================
    12) Links & animations / stamps
    ========================= */
 .league-link{ color:var(--primary-color); text-decoration:underline; transition:color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease); }
 .league-link:hover{ color:var(--secondary-color); }

 .modal-link{ display:flex; align-items:center; gap:.5rem; font-size:1.2rem; color:var(--primary-color); text-decoration:none; transition:color var(--lwc-duration-fast, 140ms) var(--lwc-ease, ease); }
 .modal-link[href]:hover{ color:var(--secondary-color); }
 .modal-link:not([href]){ color:inherit; overflow-wrap:anywhere; }
 .modal-link i{ font-size:1.8rem; line-height:1; }

 .fade-in-element{ animation:fadeIn var(--lwc-duration-normal, 220ms) var(--lwc-ease, ease); }

 /* Guess-My-Age stamps — applied to the value span inside the table so the row stays aligned */
 .athlete-info-table .first-guess-stamp{
     display:inline-block; padding:.2rem .5rem; border:1px solid currentColor; border-radius:4px; background:transparent;
     letter-spacing:.5px; margin:0; box-shadow:0 1px 2px rgba(0,0,0,.08);
 }
 .athlete-info-table .primary-stamp{
     display:inline-block; padding:.2rem .5rem; border:1px solid var(--primary-color); border-radius:4px; background:rgba(0,188,212,.08);
     letter-spacing:.5px; margin:0; box-shadow:0 1px 2px rgba(0,0,0,.08); color:var(--primary-color);
 }
 .athlete-info-table .golden-stamp{
     display:inline-block; padding:.2rem .5rem; border:1px solid #c9a227; border-radius:4px; background:rgba(255,215,0,.2);
     letter-spacing:.5px; margin:0; box-shadow:0 1px 2px rgba(0,0,0,.08); color:inherit;
 }
 #detailsModal .athlete-info-table .first-guess-stamp,
 #detailsModal .athlete-info-table .primary-stamp,
 #detailsModal .athlete-info-table .golden-stamp{
     background: rgba(255,255,255,.08);
     box-shadow: 0 6px 14px rgba(0,0,0,.2);
 }

 @keyframes fadeIn{ from{ opacity:0; transform:translateY(10px);} to{ opacity:1; transform:translateY(0);} }
 @keyframes expandCircle{ from{ transform:scale(.5); opacity:0;} to{ transform:scale(1); opacity:1;} }
 @keyframes pop{ 0%{ transform:scale(0); opacity:0;} 100%{ transform:scale(1); opacity:1;} }

 /* Fail-safe: if AOS doesn't initialize, don't hide critical UI */
 .leaderboard [data-aos]:not(.aos-animate),
 .podium [data-aos]:not(.aos-animate),
 .search-wrapper [data-aos]:not(.aos-animate),
 .sidebar [data-aos]:not(.aos-animate) {
     opacity: 1 !important;
     transform: none !important;
 }

 /* =========================
    13) Mobile
    ========================= */
 @media (min-width: 769px) and (max-width: 900px){
     .content{
         padding-left:max(1rem, env(safe-area-inset-left));
         padding-right:max(1rem, env(safe-area-inset-right));
         box-sizing:border-box;
         width:100%;
         max-width:100%;
     }
     .leaderboard{ overflow:visible; }
     .leaderboard table{
         width:100%;
         max-width:100%;
         table-layout:auto;
     }
     .leaderboard table tbody tr:hover{
         transform:none;
     }
     .leaderboard table .sponsor-th,
     .leaderboard table .sponsor-td,
     .leaderboard table .media-contact-th,
     .leaderboard table .media-contact-td{
         display:none;
     }
     .leaderboard table td .badge-section{ display:none; }
 }

 @media (max-width: 768px), (max-width: 932px) and (max-height: 480px) and (orientation: landscape){
     .content{
         padding-left:max(1rem, env(safe-area-inset-left));
         padding-right:max(1rem, env(safe-area-inset-right));
         box-sizing:border-box;
         width:100%;
         max-width:100%;
     }
     .leaderboard-toolbar{
         flex-direction:column; align-items:stretch; gap:.75rem; margin-top:1.25rem;
         width:100%;
         max-width:none;
         margin-left:auto;
         margin-right:auto;
     }
     body.sidebar-drawer-open{
         overflow:hidden;
     }
     body.sidebar-drawer-open::before{
         content:''; position:fixed; inset:0; z-index:1000; background:rgba(0,0,0,.38);
         backdrop-filter:blur(2px); -webkit-backdrop-filter:blur(2px); pointer-events:auto; cursor:pointer;
     }
     .leaderboard-view-switcher{
         margin-left:0; order:1; align-items:stretch; width:min(100%, 26rem); max-width:100%; min-width:0; gap:.35rem;
     }
     .leaderboard-view-switcher .view-switcher-label{
         flex:0 0 100%; margin-right:0;
     }
     .leaderboard-view-switcher .view-switcher-chips{
         display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); width:100%; max-width:26rem; min-width:0; flex:0 0 100%;
         gap:1px; padding:1px;
     }
     .leaderboard-view-switcher .view-badge{
         min-width:0; padding:.45rem .55rem;
     }
     .leaderboard-view-switcher .view-badge-suffix{
         display:none;
     }
     .search-container{ flex:1 1 auto; min-width:0; width:auto; max-width:none; margin-top:0; margin-right:0; }
     #athleteSearch{ padding:.5rem 5.4rem .5rem 1rem; font-size:1rem; }
     #athleteSearch:placeholder-shown{ padding-right:2.55rem; }
     .search-icon{ right:1rem; }
     .clear-icon{ right:2.2rem; }
     .search-wrapper{
         display:flex; align-items:center; gap:.45rem; flex:0 1 auto; min-width:0;
         width:min(100%, 26rem); max-width:100%; order:2;
     }

     .sidebar-toggle{ align-self:center; width:44px; height:44px; box-sizing:border-box; flex-shrink:0; margin-right:0; }

     .main-container{ flex-direction:column; }
     .leaderboard{ overflow:visible; min-height:0; }
     .sidebar{
         width:min(82vw, 320px); max-width:calc(100vw - 2rem); margin-right:0; margin-bottom:1rem;
         padding:1rem 1rem 1.75rem; padding-bottom:calc(env(safe-area-inset-bottom) + 1.75rem);
         position:fixed; top:0; left:0; height:100dvh; min-height:0; max-height:100dvh; align-items:stretch; border-radius:0 18px 18px 0;
         background:var(--card-bg); z-index:1002; box-shadow:0 18px 42px rgba(0,0,0,.26); overflow-x:hidden; overflow-y:auto; transform:translateX(-105%);
         visibility:hidden; pointer-events:none;
     transition:transform var(--lwc-duration-normal, 220ms) var(--lwc-ease, ease), visibility 0s linear var(--lwc-duration-normal, 220ms); box-sizing:border-box; overscroll-behavior:contain;
         -webkit-overflow-scrolling:touch; scrollbar-gutter:stable; scrollbar-width:thin; scrollbar-color:rgba(0,188,212,.55) transparent;
     }
     .sidebar::-webkit-scrollbar{ width:8px; }
     .sidebar::-webkit-scrollbar-track{ background:transparent; }
     .sidebar::-webkit-scrollbar-thumb{ background:rgba(0,188,212,.45); border-radius:999px; border:2px solid var(--card-bg); }
     .sidebar::-webkit-scrollbar-thumb:hover{ background:rgba(0,188,212,.68); }
     .sidebar.expanded::after{
         content:''; position:fixed; top:5.4rem; left:calc(min(82vw, 320px) - .7rem); bottom:1rem; width:3px; border-radius:999px;
         background:linear-gradient(to bottom, rgba(0,188,212,.08), rgba(0,188,212,.42), rgba(0,188,212,.08));
         pointer-events:none;
     }
     .sidebar:hover:not(.button-collapsed):not([aria-hidden="true"]),
     .sidebar.expanded{
         display:block; width:min(82vw, 320px); max-width:calc(100vw - 2rem);
         padding:1rem 1rem 1.75rem; padding-bottom:calc(env(safe-area-inset-bottom) + 1.75rem);
         position:fixed; top:0; left:0; height:100dvh; min-height:0; max-height:100dvh;
         transform:translateX(0); visibility:visible; pointer-events:auto; transition-delay:0s;
     }
     .sidebar.expanded .filter-section{ display:block; }
     .sidebar .collapsed-title{ display:none; }
     .sidebar .sidebar-close{
         position:static; margin:0;
     }
     .sidebar-heading{ position:sticky; top:-1rem; z-index:10; background:var(--card-bg); }
     .sidebar .sidebar-title{ width:auto; padding:.75rem 0; }
     .sidebar .sidebar-title .sidebar-title-text{ display:inline-block; font-size:1.25rem; }
     .sidebar .sidebar-title .sidebar-icon{ flex-basis:1.5rem; width:1.5rem; height:1.5rem; font-size:1.5rem; }
     .sidebar.has-active-state.expanded .clear-sidebar-filters{
         display:flex; background:var(--lwc-accent-soft); box-shadow:none;
     }
     .sidebar.has-active-state.expanded .clear-sidebar-filters:focus-visible{
         outline:3px solid var(--lwc-accent); outline-offset:2px; box-shadow:none;
     }
     .filter-section label{ min-height:44px; padding:.52rem .65rem; }
     .content{ margin-left:0; }

     .podium{
         display:flex; flex-direction:row; justify-content:center; align-items:flex-end; gap:1.6rem; margin:0; padding:0; flex-wrap:wrap; width:100%;
     }
     .podium .athlete-name{ font-size:1.32rem; }
     .podium-item{ width:100%; max-width:320px; padding:.85rem .85rem calc(var(--podium-prize-panel-height) + .7rem); }
     .podium-item.first{ --podium-portrait-size: 142px; order:1; height:auto; min-height:386px; }
     .podium-item.second{ --podium-portrait-size: 124px; order:2; height:auto; min-height:366px; }
     .podium-item.third{ --podium-portrait-size: 110px; order:3; height:auto; min-height:348px; }
     .podium-item.first,
     .podium-item.second,
     .podium-item.third{ margin-top:0; }
     .podium-item .podium-portrait,
     .podium-item .rank-change{ margin:.65rem 0 .55rem; }
     .podium-item .name-row{ justify-content:center; }
     .podium-item-lower{ padding:8px 0; }
     .podium-rank{ left:2rem; width:54px; height:54px; font-size:1.75rem; }
     .podium .btc-amount{ margin-top:.75rem; font-size:.76rem; }
     .podium .prize-money{ font-size:1.8rem; }

     .leaderboard table{ width:100%; table-layout:auto; }
     .leaderboard table th:last-child,
     .leaderboard table td:last-child{ padding-right:0.5rem; }
     .leaderboard table .sponsor-th,
     .leaderboard table .sponsor-td{ display:none; }
     .leaderboard table .media-contact-th,
     .leaderboard table .media-contact-td{ display:none; }
     .leaderboard table th:nth-child(4),
     .leaderboard table td:nth-child(4){ padding-right:0.5rem; }
     .leaderboard table td .badge-section{ display:none; }
     .leaderboard table th{
         font-size:.66rem;
         line-height:1.05;
         letter-spacing:.05em;
         padding:.82rem .55rem;
     }
     .leaderboard table td{ font-size:.8rem; }
     .leaderboard table th:nth-child(4),
     .leaderboard table td.age-reduction-td{
         width:6.4rem;
         min-width:6.4rem;
         text-align:right;
         padding-left:.4rem;
         padding-right:1.1rem;
     }
     .leaderboard table td.rank-td{
         padding-left:1rem;
         padding-right:.65rem;
     }
     .leaderboard table tbody tr:not(.no-results):not(.tier-separator) .athlete-td{
         gap:.35rem;
         min-width:0;
     }
     .leaderboard table tbody .athlete-name{
         max-width:100%;
         padding-left:.24rem;
         padding-right:.24rem;
         line-height:1.15;
         white-space:normal;
         word-break:keep-all;
     }

     @media (min-width: 601px) and (max-width: 932px) and (max-height: 480px) and (orientation: landscape) {
         .leaderboard table th:nth-child(4),
         .leaderboard table td.age-reduction-td{
             width:7.2rem;
             min-width:7.2rem;
         }

         .leaderboard table th:nth-child(4) a{
             white-space:nowrap;
             letter-spacing:.02em;
             padding-left:.1rem;
             padding-right:.1rem;
         }
     }

     /* Size the portrait and both wrappers together at each breakpoint. */
     .leaderboard{ --portrait-size:40px; }
     .leaderboard .portrait{ width:var(--portrait-size); height:var(--portrait-size); }

     /* =========================
        Athlete info table — stacked layout so nothing is cut off
        ========================= */
     .athlete-info-table {
         font-size: 0.9rem;
         border-spacing: 0;
         table-layout: auto;
         display: block;
     }
     .athlete-info-table tbody {
         display: block;
     }
     .athlete-info-table tr {
         display: block;
         padding: 0.18rem 0;
     }
     #detailsModal .athlete-info-table tr:not(:first-child):not(.athlete-info-divider-row) {
         border-top: 1px solid rgba(246,244,237,.085);
         margin-top: 0.08rem;
         padding-top: 0.45rem;
     }
     #detailsModal .athlete-info-table tr.athlete-info-group-first {
         border-top: 0 !important;
         margin-top: 0;
     }
     .athlete-info-table tr.athlete-info-divider-row {
         padding: 0.25rem 0;
     }
     .athlete-info-table tr.athlete-info-divider-row td {
         padding: 0 !important;
     }
     .athlete-info-table th,
     .athlete-info-table td {
         display: block;
         width: 100%;
         padding: 0.08rem 0 0.12rem 0;
         white-space: normal;
         overflow-wrap: break-word;
         word-break: break-word;
         line-height: 1.25;
     }
     #detailsModal .athlete-info-table th,
     #detailsModal .athlete-info-table td {
         border-top: 0 !important;
         padding-top: 0.08rem;
         padding-bottom: 0.12rem;
     }
     .athlete-info-table th {
         padding-bottom: 0.04rem;
         font-size: var(--lwc-type-sm);
         letter-spacing: normal;
         color: var(--secondary-color, #555);
     }
     .athlete-info-table td {
         padding-top: 0;
         padding-left: 0;
         margin: 0;
         font-size: 0.96rem;
         line-height: 1.5;
     }
     /* Keep label-to-content gap consistent: no extra space from links or inline content */
     .athlete-info-table td * {
         margin-top: 0;
         margin-bottom: 0;
     }
     .athlete-info-table td .league-link {
         display: inline;
         vertical-align: baseline;
     }
     /* Pace/age rows: allow wrapping on mobile instead of nowrap */
     #bortzPaceOfAgingContainer td,
     #paceOfAgingContainer td,
     #ageReduction,
     #ageReductionPercent,
     #lowestBortzAge,
     #bortzAgeReduction,
     #bortzAgeReductionPercent {
         white-space: normal;
     }

     @media (min-width: 361px) and (max-width: 480px) {
         .leaderboard table th {
             padding-left: 0.4rem;
             padding-right: 0.4rem;
             font-size: 0.66rem;
             letter-spacing: 0.04em;
         }

         .leaderboard table td {
             font-size: 0.76rem;
         }

         .leaderboard table th:nth-child(4),
         .leaderboard table td.age-reduction-td {
             width: 5.5rem;
             min-width: 5.5rem;
             padding-left: 0.25rem;
             padding-right: 0.55rem;
         }

         .leaderboard table th:nth-child(4) {
             text-align: center;
             padding-right: 0.25rem;
         }

         .leaderboard table th:nth-child(4) a {
             display: inline-flex;
             max-width: 5.4rem;
             line-height: 1.12;
             text-align: center;
             white-space: normal;
         }

         .leaderboard table td.rank-td {
             padding-left: 0.7rem;
             padding-right: 0.45rem;
         }
     }

     @media (max-width: 360px) {
         .main-container {
             margin-left: -0.5rem;
             margin-right: -0.5rem;
         }

         .content {
             padding-left: 0;
             padding-right: 0;
         }

         .leaderboard-toolbar {
             width: 100%;
             max-width: 100%;
         }

         .leaderboard table th {
             padding-left: 0.4rem;
             padding-right: 0.4rem;
             font-size: 0.66rem;
             letter-spacing: 0.04em;
         }

         .leaderboard table td {
             font-size: 0.76rem;
         }

         .leaderboard table th:nth-child(4),
         .leaderboard table td.age-reduction-td {
             width: 5.5rem;
             min-width: 5.5rem;
             padding-left: 0.25rem;
             padding-right: 0.55rem;
         }

         .leaderboard table th:nth-child(4) {
             text-align: center;
             padding-right: 0.25rem;
         }

         .leaderboard table th:nth-child(4) a {
             display: inline-flex;
             max-width: 5.4rem;
             line-height: 1.12;
             text-align: center;
             white-space: normal;
         }

         .leaderboard table td.rank-td {
             padding-left: 0.7rem;
             padding-right: 0.45rem;
         }
     }

     @media (max-width: 480px) {
         .leaderboard { --portrait-size: 44px; }

         .leaderboard table {
             border-spacing: 0 0.45rem;
             table-layout: auto;
         }

         .leaderboard .portrait {
             margin-block: .25rem;
         }

         .leaderboard table tbody .athlete-name {
             font-size: var(--lwc-type-sm, .875rem);
             font-weight: 700;
             line-height: 1.35;
         }

         .leaderboard table thead {
             display: none;
         }

         .leaderboard table tbody {
             display: block;
         }

         .leaderboard table tbody tr:not(.no-results):not(.tier-separator) {
             display: grid;
             grid-template-columns: 2.35rem minmax(0, 1fr);
             grid-template-areas:
                 "rank athlete"
                 "rank score";
             align-items: center;
             column-gap: 0.55rem;
             row-gap: 0.12rem;
             padding: 0.5rem 0.65rem;
         }

         .leaderboard table tbody tr.tier-separator {
             display: block;
             padding: 0;
         }

         .leaderboard table tbody tr.tier-separator .tier-separator-cell {
             display: block;
         }

         .leaderboard table td.rank-td {
             grid-area: rank;
             display: flex;
             align-items: center;
             justify-content: center;
             width: auto;
             min-width: 0;
             padding: 0;
         }

         .leaderboard table tbody tr td.athlete-td {
             grid-area: athlete;
             gap: 0.35rem;
             min-width: 0;
             padding: 0;
         }
         .leaderboard table td.age-reduction-td {
             grid-area: score;
             display: flex;
             align-items: baseline;
             gap: 0.35rem;
             width: auto;
             min-width: 0;
             padding: 0.1rem 0 0;
             text-align: left;
         }

         .leaderboard table td.age-reduction-td::before {
             content: attr(data-label);
             display: inline-block;
             color: var(--lwc-muted, #52606d);
             font-size: var(--lwc-type-xs, 0.75rem);
             font-weight: 700;
             letter-spacing: 0.04em;
             text-transform: uppercase;
             white-space: normal;
         }

         .leaderboard table td.age-reduction-td .age-reduction {
             display: inline-block;
             font-size: var(--lwc-type-sm, .875rem);
             line-height: 1.2;
             white-space: nowrap;
         }

         .athlete-name {
             padding-left: 0.25rem;
             padding-right: 0.25rem;
         }
     }

     @media (max-width: 300px) {
         .leaderboard { --portrait-size: 40px; }
     }

     @media (max-width: 420px) {
         .leaderboard table th:nth-child(2),
         .leaderboard table td.athlete-td {
             padding-left: 0.7rem;
         }
     }

     /* Mobile modal improvements */
     .modal-content{
         width:100%; padding:15px; margin:0; max-height:100dvh; height:100dvh; box-sizing:border-box;
         border-radius:0 !important; /* Remove rounded corners on mobile immediately */
         padding-top:max(15px, env(safe-area-inset-top));
         padding-bottom:max(15px, env(safe-area-inset-bottom));
         padding-left:max(15px, env(safe-area-inset-left));
         padding-right:max(15px, env(safe-area-inset-right));
     }
     .modal-content.guess-mode{
         border-radius:0 !important; /* Also remove rounded corners in guess-mode on mobile */
     }
     #athlete-profile .portrait-wrapper{
         width:min(46vw, 188px);
     }
     #detailsModal #athleteName{
         font-size:clamp(1.9rem, 7.5vw, 2.35rem);
         line-height:1.08;
         margin-top:.75rem;
     }
     #detailsModal #athleteBio,
     #detailsModal .athlete-info,
     #detailsModal .age-visualization,
     #detailsModal .events-embed,
     #detailsModal .biomarkers-section,
     #detailsModal .proofs-section{
         width:calc(100% - 1.5rem) !important;
         max-width:calc(100% - 1.5rem) !important;
         margin-left:auto;
         margin-right:auto;
         box-sizing:border-box;
     }
     #detailsModal #athleteBio{
         margin:.75rem auto 1rem;
         padding:.85rem 1rem;
         border-radius:16px;
         text-wrap:balance;
     }
     #detailsModal .athlete-links{
         width:calc(100% - 1.5rem);
         max-width:calc(100% - 1.5rem);
         margin:.85rem auto 1rem;
         padding:.55rem;
         border-radius:18px;
         gap:.55rem;
     }
     #detailsModal .athlete-share-wrapper{
         flex:1 1 10rem;
     }
     #detailsModal .athlete-share-wrapper > #shareAthleteProfile{
         width:100%;
         justify-content:center;
     }
     #detailsModal .athlete-share-menu{
         left:0;
         right:0;
         min-width:0;
     }
     #detailsModal .athlete-links a,
     #detailsModal .athlete-links button{
         flex:1 1 10rem;
         padding:.55rem .85rem;
     }
     #detailsModal .athlete-share-menu a,
     #detailsModal .athlete-share-menu button{
         flex:0 0 auto;
         padding:.55rem .7rem;
         justify-content:flex-start;
     }
     #detailsModal .age-visualization{
         margin-top:1.25rem;
     }
     #detailsModal .proofs-gallery{
         grid-template-columns:repeat(2, minmax(0, 1fr));
     }
     .modal-scroll-progress{
         left:1rem;
         right:1rem;
         width:auto;
         height:2px;
         margin:0;
     }

     /* Ensure minimum touch target sizes */
     .modal-content a, .modal-content button, .close{
         min-height:44px; min-width:44px;
         display:inline-flex; align-items:center; justify-content:center;
     }
     #detailsModal #closeAthleteDetailsModal{
         top:max(18px, env(safe-area-inset-top));
         left:max(18px, env(safe-area-inset-left));
     }

     /* Sticky header adjustments for mobile */
     .modal-sticky-header{
         margin:-15px -15px 1rem -15px; padding:0.75rem 1rem;
     }
     .modal-sticky-header.visible::before{
         top:-30px; height:30px;
     }
 }

 @media (max-width: 932px) and (max-height: 480px) and (orientation: landscape){
     #leaderboardTitle{
         margin:.35rem 0 .65rem;
         font-size:1.75rem;
         line-height:1.05;
         letter-spacing:.06em;
     }

     .content{
         padding-left:max(.75rem, env(safe-area-inset-left));
         padding-right:max(.75rem, env(safe-area-inset-right));
     }

     .leaderboard-toolbar{
         flex-direction:row;
         align-items:center;
         justify-content:space-between;
         gap:.55rem;
         margin-top:.35rem;
         margin-bottom:.55rem;
     }

     .leaderboard-view-switcher{
         width:auto;
         min-width:0;
         flex:1 1 19rem;
         order:0;
         gap:.35rem;
     }

     .leaderboard-view-switcher .view-switcher-label{
         display:none;
     }

     .leaderboard-view-switcher .view-switcher-chips{
         width:auto;
         max-width:none;
         flex:1 1 auto;
         grid-template-columns:repeat(4, minmax(0, 1fr));
     }

     .leaderboard-view-switcher .view-badge{
         min-height:44px;
         padding:.35rem .55rem;
         font-size:.78rem;
     }

     .search-wrapper{
         width:auto;
         flex:1 1 17rem;
         order:0;
         justify-content:flex-end;
     }

     .search-container{
         min-height:44px;
     }

     #athleteSearch{
         min-height:44px;
         padding-top:.42rem;
         padding-bottom:.42rem;
     }

     .sidebar-toggle{
         width:44px;
         height:44px;
         min-height:44px;
     }

     .leaderboard table th{
         padding:.55rem .45rem;
         font-size:.64rem;
         line-height:1.05;
     }

     .leaderboard table td{
         font-size:.78rem;
     }

     .leaderboard{ --portrait-size:34px; }
     .leaderboard .portrait{
         margin:.28rem 0;
     }

     .athlete-name{
         padding:.35rem .32rem;
     }

     #detailsModal .modal-content:not(.guess-mode){
         width:calc(100vw - .75rem);
         height:calc(100dvh - .75rem);
         max-height:calc(100dvh - .75rem);
         margin:.375rem auto;
         padding:12px;
         border-radius:14px;
     }

     #detailsModal .modal-content:not(.guess-mode)::before{
         border-radius:12px;
     }

     #detailsModal #closeAthleteDetailsModal{
         top:12px;
         left:12px;
     }

     #detailsModal .modal-sticky-header{
         top:-12px;
         margin:-12px -12px .8rem -12px;
         padding:.8rem .8rem .55rem;
     }

     #detailsModal #athlete-profile .portrait-wrapper{
         width:clamp(94px, 28vh, 128px);
     }

     #detailsModal #athleteName{
         font-size:clamp(1.55rem, 7vh, 2rem);
         line-height:1.05;
         margin-top:.3rem;
         margin-bottom:.1rem;
     }

     #detailsModal #athleteBio,
     #detailsModal .athlete-links,
     #detailsModal .athlete-info,
     #detailsModal .age-visualization,
     #detailsModal .events-embed,
     #detailsModal .biomarkers-section,
     #detailsModal .proofs-section{
         width:calc(100% - 1rem) !important;
         max-width:calc(100% - 1rem) !important;
     }

     #detailsModal .modal-badge-strip{
         max-height:40vh;
         overflow:auto;
         padding:.6rem;
     }
 }

 .athlete-info-table th > strong{
     display:inline-block;
     text-align:left;
 }

 /* Shared-system alignment: comparison first, decoration second. */
 .leaderboard {
     border: 1px solid var(--border-color);
     border-radius: var(--radius-lg, 12px);
     background: var(--card-bg);
     box-shadow: var(--shadow-sm, 0 1px 2px rgba(15,23,42,.08));
 }

 .leaderboard table {
     color: var(--dark-text-color);
     font-variant-numeric: tabular-nums;
 }

 .leaderboard table th {
     background: var(--surface-accent);
     color: var(--lwc-accent-hover, #065d68);
     font-size: .875rem;
     letter-spacing: .02em;
     text-transform: none;
 }

 .leaderboard table tbody tr,
 .leaderboard table tbody tr.tier-amateur,
 .leaderboard table tbody tr.tier-amateur:nth-child(even) {
     border-color: var(--border-color);
     box-shadow: none;
 }

 .leaderboard table tbody tr:hover,
 .leaderboard table tbody tr.tier-amateur:hover {
     background: var(--surface-accent);
     box-shadow: none;
     transform: none;
 }

 .leaderboard table tbody tr.tier-separator {
     background: var(--surface-muted);
 }

 .leaderboard table tbody tr.tier-separator .tier-separator-cell {
     border-color: var(--border-color);
     color: var(--primary-color);
     font-weight: 700;
     letter-spacing: .02em;
 }

 .tier-separator-cell .tier-separator-link,
 .show-all-athletes-btn,
 .leaderboard-retry-button {
     border-radius: var(--radius-md, 8px);
 }

 .show-all-athletes-btn:hover,
 .show-all-athletes-btn:active,
 .leaderboard-retry-button:hover,
 .leaderboard-retry-button:active {
     border-color: var(--primary-color);
     background: var(--primary-color-soft);
     color: var(--primary-color-hover);
 }

 .sidebar {
     border: 0;
     border-inline-end: 1px solid var(--border-color);
     border-radius: var(--radius-lg, 12px) 0 0 var(--radius-lg, 12px);
     background: var(--card-bg);
     box-shadow: none;
 }

 .collapsed-title {
     padding-block: var(--space-4, 1rem);
     border-radius: 0;
     background: none;
     color: var(--primary-color);
     font-family: 'Roboto', sans-serif;
     font-size: 1rem;
     letter-spacing: .04em;
     word-spacing: normal;
     -webkit-text-fill-color: currentColor;
 }

 .sidebar-toggle,
 .sidebar-close,
 .clear-sidebar-filters,
 .search-container,
 .view-switcher-chips,
 .view-badge {
     border-radius: var(--radius-md, 8px);
     box-shadow: none;
 }

 .sidebar-toggle,
 .sidebar-close {
     border: 1px solid var(--border-color);
     background: var(--card-bg);
 }

 .sidebar-toggle:hover,
 .sidebar-close:hover,
 .sidebar-toggle.active,
 .sidebar-toggle.has-active-state:not(.active),
 .sidebar-toggle.has-active-state:not(.active):hover {
     border-color: var(--primary-color);
     background: var(--primary-color-soft);
     box-shadow: none;
     transform: none;
 }

 .sidebar-toggle:hover i,
 .sidebar-close:hover i,
 .sidebar-toggle.active i,
 .sidebar-toggle.has-active-state:not(.active) i {
     color: var(--primary-color-hover);
 }

 .sidebar-toggle:focus-visible,
 .sidebar-toggle.is-keyboard-focus,
 .sidebar-close:focus-visible,
 .sidebar-close.is-keyboard-focus {
     outline: 3px solid var(--primary-color-bright);
     outline-offset: 3px;
     border-color: var(--primary-color);
     box-shadow: none;
     transform: none;
 }

 .sidebar-toggle.has-active-state::after {
     top: -3px;
     right: -3px;
     width: 9px;
     height: 9px;
     border: 2px solid var(--card-bg);
     background: var(--primary-color);
     box-shadow: none;
 }

 .filter-section {
     border: 0;
     border-top: 1px solid var(--border-color);
     border-radius: 0;
     background: transparent;
     box-shadow: none;
 }

 .filter-section label {
     min-height: 44px;
     border-radius: var(--radius-sm, 4px);
     box-shadow: none;
 }

 .filter-section label:hover,
 .filter-section label:has(input:checked) {
     background: var(--primary-color-soft);
     color: var(--primary-color-hover);
     box-shadow: none;
     transform: none;
 }

 .search-container,
 .view-switcher-chips {
     border: 1px solid var(--border-color);
     background: var(--surface-muted);
 }

 .leaderboard-view-switcher input:checked + .view-badge {
     background: var(--card-bg);
     color: var(--primary-color-hover);
     box-shadow: inset 0 -3px 0 var(--primary-color);
 }

 .sidebar-toggle.has-active-state::after,
 .sidebar.has-active-state .sidebar-title .sidebar-icon::after {
     background: var(--leaderboard-change-cue);
     box-shadow: 0 1px 4px rgba(0, 0, 0, .2);
 }

 #athleteSearch:focus {
     border-color:var(--lwc-accent);
     box-shadow:0 0 0 3px var(--lwc-accent-soft);
 }

 .search-container:focus-within .search-icon,
 .clear-icon:hover,
 .clear-icon:focus-visible {
     color:var(--lwc-accent);
 }

 .clear-icon:hover,
 .clear-icon:focus-visible {
     background:var(--lwc-accent-soft);
     border-color:var(--lwc-border);
 }

 .clear-icon:focus-visible {
     outline-color:var(--lwc-accent);
     box-shadow:none;
 }

 .ranking-explanation,
 .no-results-empty-state {
     border: 0;
     border-inline-start: 4px solid var(--primary-color-bright);
     border-radius: var(--radius-md, 8px);
     background: var(--surface-muted);
     box-shadow: none;
     color: var(--muted-text-color);
 }

 .sponsor-coming-soon,
 .leaderboard-metric-link {
     min-height: 44px;
     color: var(--lwc-muted, #52606d);
     text-decoration: underline;
     text-underline-offset: .15em;
 }

 #comingSoon {
     color: var(--lwc-muted, #405261);
     font-size: .75rem;
     line-height: 1.2;
 }

 .sponsor-coming-soon:hover,
 .leaderboard-metric-link:hover {
     color: var(--primary-color-hover);
 }

 .podium-item {
     border: 1px solid var(--border-color);
     border-radius: var(--radius-lg, 12px);
     background: var(--card-bg);
     box-shadow: none;
 }

 .podium-item:hover {
     box-shadow: none;
     transform: none;
 }

 .leaderboard .age-reduction,
 .leaderboard .media-contact,
 .leaderboard .personal-link-icon {
     color: var(--primary-color-hover);
 }

 .leaderboard .media-contact:hover,
 .leaderboard .media-contact:focus-visible,
 .leaderboard .personal-link-icon:hover,
 .leaderboard .personal-link-icon:focus-visible,
 .leaderboard .athlete-name:hover,
 .leaderboard .athlete-name:focus-visible {
     color: var(--primary-color-hover);
     background: var(--primary-color-soft);
     box-shadow: none;
 }

 #detailsModal {
     background: rgba(11, 15, 20, .72);
     backdrop-filter: none;
     -webkit-backdrop-filter: none;
 }

 #detailsModal .modal-content {
     --athlete-modal-surface: #101820;
     --athlete-modal-card: #17212b;
     --athlete-modal-card-strong: #1c2933;
     --athlete-modal-card-hover: #253641;
     --athlete-modal-muted: #b8c5cf;
     --athlete-modal-accent: #7bdde3;
     border: 1px solid #42515e;
     border-radius: var(--radius-lg, 12px);
     background: var(--athlete-modal-surface);
     box-shadow: var(--shadow-md, 0 10px 28px rgba(0,0,0,.3));
 }

 #detailsModal .athlete-profile,
 #detailsModal .proofs-section,
 #detailsModal .events-embed,
 #detailsModal .athlete-info-table,
 #detailsModal .proof-item {
     box-shadow: none;
 }

 @media (prefers-color-scheme: dark) {
     .leaderboard table th {
         background: var(--surface-accent);
         color: #a9edf0;
     }

     .sponsor-coming-soon,
     .leaderboard-metric-link,
     .ranking-explanation {
         color: var(--muted-text-color);
     }
 }

 .leaderboard-selection-summary { margin: 0 0 var(--lwc-space-4); }
 .leaderboard-selection-summary[hidden] { display: none; }
 .leaderboard-selection-heading { display: flex; justify-content: space-between; align-items: center; gap: var(--lwc-space-3); min-height: 44px; }
 #leaderboardResultCount { color: var(--lwc-muted); font-size: var(--lwc-type-sm); font-variant-numeric: tabular-nums; }
 .leaderboard-selection-chips { display: flex; flex-wrap: wrap; gap: var(--lwc-space-2); }
 .leaderboard-selection-chip,
 .leaderboard-clear-all,
 .sidebar-show-results {
     min-height: 44px; padding: var(--lwc-space-2) var(--lwc-space-3); border: 1px solid var(--lwc-border);
     border-radius: var(--lwc-radius-md); background: var(--lwc-surface); color: var(--lwc-ink);
     font: inherit; font-size: var(--lwc-type-sm); font-weight: 700; cursor: pointer; box-shadow: none; transform: none;
 }
 .leaderboard-selection-chip { display: inline-flex; align-items: center; gap: var(--lwc-space-2); max-width: 100%; background: var(--lwc-accent-soft); border-color: transparent; }
 .leaderboard-selection-chip span:first-child { min-width: 0; max-width: 18rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
 .leaderboard-selection-chip span:last-child { flex: 0 0 auto; color: var(--lwc-accent); font-size: 1.1rem; }
 .leaderboard-clear-all { padding-inline: var(--lwc-space-2); border-color: transparent; color: var(--lwc-accent); background: transparent; }
 .leaderboard-clear-all[hidden] { display: none; }
 .leaderboard-selection-chip:hover,
 .leaderboard-clear-all:hover { background: var(--lwc-surface-accent); }
 .leaderboard-selection-chip:focus-visible,
 .leaderboard-clear-all:focus-visible,
 .sidebar-show-results:focus-visible { outline: 3px solid var(--lwc-accent); outline-offset: 2px; }
 .sidebar-filter-list { display: contents; }
 .sidebar-results { display: none; }
 .sidebar-toggle.has-active-state::after { content: attr(data-filter-count); display: grid; place-items: center; width: 18px; height: 18px; top: -7px; right: -7px; background: var(--lwc-accent); color: var(--lwc-on-accent); font: 700 11px Roboto, sans-serif; border: 2px solid var(--lwc-surface); box-sizing: content-box; }
 @media (max-width: 768px), (max-width: 932px) and (max-height: 480px) and (orientation: landscape) {
     .sidebar,
     .sidebar:hover:not(.button-collapsed):not([aria-hidden="true"]),
     .sidebar.expanded { display: flex; flex-direction: column; align-items: stretch; overflow: hidden; padding: var(--lwc-space-4) var(--lwc-space-4) 0; }
     .sidebar-heading { position: static; flex: 0 0 auto; }
     .sidebar-filter-list { display: block; flex: 1 1 auto; min-height: 0; padding-block: var(--lwc-space-2) var(--lwc-space-4); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
     .sidebar.expanded::after { display: none; }
     .sidebar-results { display: block; flex: 0 0 auto; padding: var(--lwc-space-3) 0 max(var(--lwc-space-3), env(safe-area-inset-bottom)); border-top: 1px solid var(--lwc-border); background: var(--lwc-surface); }
     .sidebar-show-results { width: 100%; background: var(--lwc-accent); color: var(--lwc-on-accent); border-color: transparent; }
     .sidebar-show-results:hover { background: var(--lwc-accent-hover); }
 }
}
