.athlete-profile-page { background: #f5f5f7; color: #272830; }
.profile-main { padding-top: 30px; padding-bottom: 55px; }
.profile-page-heading { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 22px; }
.profile-eyebrow { color: #777781; font-size: .67rem; font-weight: 700; letter-spacing: .16em; margin-bottom: 7px; }
.profile-page-heading h1 { font-size: 1.8rem; letter-spacing: -.04em; margin: 0; }
.profile-page-heading > a { font-size: .82rem; color: #656571; }
.profile-page-heading > a span { margin-left: 8px; }
.profile-athlete-picker { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; padding: 16px 20px; background: #fff; border: 1px solid #e1e1e7; border-radius: 12px; margin-bottom: 24px; }
.profile-athlete-picker > label:not(.visually-hidden) { font-size: .8rem; font-weight: 700; }
.profile-athlete-picker input { width: 230px; }
.profile-athlete-picker select { flex: 1; min-width: 200px; }
.athlete-profile-page :is(input[type=search],select,input[type=file]) { border: 1px solid #d8d8df; border-radius: 7px; background: #fafafb; color: #30313a; padding: 11px 12px; font: inherit; font-size: .82rem; min-height: 44px; }
.profile-button { display: inline-flex; justify-content: center; align-items: center; gap: 16px; padding: 12px 18px; min-height: 44px; border: 0; border-radius: 7px; background: #b31927; color: #fff; font: inherit; font-size: .8rem; font-weight: 700; cursor: pointer; }
.profile-button:hover { background: #8c1420; }
.profile-hero { display: flex; align-items: center; gap: 26px; padding: 36px; border-radius: 18px; background: radial-gradient(ellipse at 100% 0%, #454752 0, transparent 65%), #24252d; color: #fff; position: relative; overflow: hidden; }
.profile-avatar { width: 122px; height: 122px; flex-shrink: 0; border: 4px solid #ffffff25; border-radius: 50%; background: #3a3b44; display: grid; place-items: center; }
.profile-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.profile-avatar > span { font-weight: 900; font-size: 2.6rem; color: #edcf83; }
.profile-identity { flex: 1; min-width: 0; }
.profile-hero .profile-eyebrow { color: #e4c475; }
.profile-identity h2 { color: #fff; font-size: clamp(1.8rem, 4vw, 2.8rem); letter-spacing: -.045em; margin-bottom: 6px; overflow-wrap: anywhere; }
.profile-identity-meta { color: #c1c1ca; font-size: .85rem; margin-bottom: 13px; overflow-wrap: anywhere; }
.profile-identity-meta span { margin: 0 8px; }
.profile-sport-chips { display: flex; gap: 6px; flex-wrap: wrap; }
.profile-sport-chips span { padding: 4px 9px; border: 1px solid #ffffff30; border-radius: 20px; color: #e5e5eb; font-size: .65rem; }
.profile-career { display: flex; flex-direction: column; text-align: right; padding-left: 26px; border-left: 1px solid #ffffff25; flex-shrink: 0; }
.profile-career strong { font-size: 3rem; font-weight: 900; line-height: 1.1; letter-spacing: -.05em; }
.profile-career > span { font-size: .8rem; color: #e1e1e8; margin: 7px 0 5px; }
.profile-career small { font-size: .7rem; color: #bdbdc8; }
.profile-photo-settings { margin: 12px 0; font-size: .8rem; color: #656571; }
.profile-photo-settings summary { cursor: pointer; }
.profile-photo-settings form { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 10px; }
.profile-section-nav { display: flex; flex-wrap: wrap; gap: 6px; padding: 16px 0; margin-bottom: 12px; border-bottom: 1px solid #dedee5; }
.profile-section-nav a { font-size: .78rem; color: #595963; padding: 8px 14px; border-radius: 20px; }
.profile-section-nav a:hover { color: #981c28; background: #fae9ec; }
.profile-stat-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin: 24px 0 36px; }
.profile-stat-grid > div { display: flex; flex-direction: column; background: #fff; border: 1px solid #e1e1e7; border-radius: 12px; padding: 20px; }
.profile-stat-grid span { font-size: .74rem; color: #71717b; }
.profile-stat-grid strong { font-size: 2.1rem; letter-spacing: -.05em; color: #292a33; margin: 6px 0; line-height: 1.2; }
.profile-stat-grid em { font-style: normal; font-size: .85rem; font-weight: 400; letter-spacing: normal; }
.profile-stat-grid small { color: #797984; font-size: .67rem; }
.profile-section { margin-bottom: 38px; scroll-margin-top: 95px; }
.profile-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.profile-section-heading h2 { font-size: 1.6rem; letter-spacing: -.03em; margin: 0; }
.profile-section-heading > span { font-size: .72rem; color: #777781; text-align: right; }
.profile-discipline-title { font-size: .95rem; margin: 22px 0 12px; color: #585862; }
.profile-pb-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.profile-pb-card { display: flex; flex-direction: column; padding: 20px; border: 1px solid #e5dfd1; border-radius: 12px; background: linear-gradient(125deg,#fffaf0,#fff); }
.profile-pb-top { display: flex; justify-content: space-between; align-items: start; gap: 10px; }
.profile-pb-top h4 { font-size: .85rem; margin: 0; color: #4b4140; }
.profile-pb-top i { color: #bd9140; }
.profile-pb-mark { font-size: 2rem; letter-spacing: -.055em; line-height: 1.2; color: #3b3030; margin: 14px 0 4px; font-variant-numeric: tabular-nums; }
.profile-pb-pace { color: #868078; font-size: .7rem; margin-bottom: 14px; }
.profile-pb-card > a { margin-top: auto; padding-top: 10px; font-size: .72rem; line-height: 1.45; color: #6e6260; }
.profile-pb-card > a:hover { text-decoration: underline; color: #9c1b27; }
.profile-pb-card time { font-size: .67rem; margin-top: 4px; color: #88818a; }
.profile-note { color: #777781; font-size: .72rem; line-height: 1.7; margin: 12px 0; }
.profile-panel { background: #fff; border: 1px solid #e1e1e7; border-radius: 12px; padding: 24px; }
.profile-panel h3 { font-size: 1rem; margin-bottom: 15px; }
.profile-race-filters { display: flex; flex-wrap: wrap; gap: 12px; align-items: end; margin: 0 0 16px; }
.profile-race-filters > div { flex: 1; min-width: 160px; }
.profile-race-filters label { display: block; font-size: .73rem; font-weight: 700; color: #656571; margin-bottom: 5px; }
.profile-race-filters select { display: block; width: 100%; }
.profile-race-filters > div:nth-of-type(3) { flex: 1.5; }
.profile-trend-summary { display: flex; justify-content: space-between; align-items: start; gap: 20px; }
.profile-trend-summary h3 { margin: 0 0 5px; font-size: .95rem; }
.profile-trend-summary p { font-size: .72rem; color: #777781; margin: 0; }
.profile-trend-summary > div:last-child { text-align: right; }
.profile-trend-summary strong { display: block; font-size: 1.5rem; color: #a41d2a; }
.profile-trend-summary span { font-size: .68rem; color: #777781; }
.profile-trend-chart { width: 100%; display: block; margin-top: 20px; overflow: visible; }
.profile-trend-chart text { font-size: 12px; fill: #777781; }
.profile-chart-grid { stroke: #eaeaf0; stroke-dasharray: 4 4; }
.profile-chart-line { fill: none; stroke: #b31927; stroke-width: 3; stroke-linejoin: round; }
.profile-chart-point { fill: #fff; stroke: #b31927; stroke-width: 3; }
.profile-trend-chart a:hover .profile-chart-point { fill: #b31927; }
.profile-results-panel { padding: 0; overflow: hidden; }
.profile-results-table { border-collapse: collapse; width: 100%; text-align: left; font-size: .8rem; }
.profile-results-table th { padding: 14px 20px; background: #fafafa; color: #777781; font-size: .65rem; letter-spacing: .06em; text-transform: uppercase; border-bottom: 1px solid #e7e7ed; }
.profile-results-table td { padding: 16px 20px; border-bottom: 1px solid #efeff3; vertical-align: middle; }
.profile-results-table td:first-child { width: 40%; }
.profile-results-table time, .profile-results-table td:nth-child(2) > span { display: block; font-size: .68rem; color: #868690; margin-top: 4px; }
.profile-meet-link { color: #383943; font-weight: 500; line-height: 1.45; }
.profile-meet-link:hover { color: #a51b27; text-decoration: underline; }
.profile-result-mark { white-space: nowrap; font-variant-numeric: tabular-nums; }
.profile-result-mark > strong { font-size: 1rem; }
.profile-tag { display: inline-block; margin-left: 7px; padding: 2px 5px; border-radius: 4px; color: #9a1d29; background: #fbe9eb; font-size: .6rem; font-weight: 700; }
.profile-sb { color: #876329; background: #fbf2df; }
.profile-like { display: inline-flex; align-items: center; gap: 7px; padding: 7px 10px; min-height: 36px; border: 1px solid #e1e1e7; border-radius: 20px; color: #757580; background: #fff; cursor: pointer; font-size: .75rem; }
.profile-like:hover,.profile-like.is-liked { color: #a01b28; background: #fff1f3; border-color: #e3b9bf; }
.profile-like:disabled { opacity: .6; cursor: wait; }
.profile-pagination { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 16px 20px; font-size: .73rem; color: #81818b; }
.profile-pagination a { color: #a01b28; }
.profile-mobile-label { display: none; }
#profile-like-status { font-size: .8rem; color: #686873; margin: 8px 0; }
.profile-milestone-progress { display: flex; align-items: center; gap: 30px; justify-content: space-between; margin-bottom: 18px; }
.profile-milestone-progress h3 { margin-bottom: 4px; }
.profile-milestone-progress p { font-size: .76rem; color: #81818b; margin: 0; }
.profile-progress-track { flex: 1; max-width: 380px; }
.profile-progress-track progress { display: block; appearance: none; width: 100%; height: 10px; border: none; border-radius: 10px; overflow: hidden; background: #f0edf0; }
.profile-progress-track progress::-webkit-progress-bar { background: #f0edf0; }
.profile-progress-track progress::-webkit-progress-value { background: #b31927; border-radius: 10px; }
.profile-progress-track progress::-moz-progress-bar { background: #b31927; }
.profile-progress-track span { display: block; text-align: right; margin-top: 8px; color: #81818b; font-size: .7rem; }
.profile-badge-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(150px,1fr)); gap: 14px; }
.profile-badge { display: flex; align-items: center; flex-direction: column; background: #fff; border: 1px solid #e1e1e7; border-radius: 12px; padding: 20px 12px; text-align: center; }
.profile-badge-image { width: 82px; height: 82px; display: grid; place-items: center; margin-bottom: 12px; }
.profile-badge-image img { width: 100%; height: 100%; object-fit: contain; }
.profile-badge-image i { font-size: 3.5rem; color: #ba913e; }
.profile-badge strong { font-size: .9rem; color: #44444e; }
.profile-badge > span { font-size: .64rem; color: #868690; margin-top: 5px; }
.profile-training-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin-bottom: 15px; }
.profile-training-stats > div { padding: 18px; border-radius: 10px; background: #eaeaee; display: flex; flex-direction: column; }
.profile-training-stats strong { font-size: 1.45rem; letter-spacing: -.025em; color: #484854; }
.profile-training-stats span { color: #777781; font-size: .7rem; margin-top: 3px; }
.profile-training-columns { display: grid; grid-template-columns: 1.4fr 1fr; gap: 20px; }
.profile-activity { display: flex; justify-content: space-between; align-items: center; gap: 15px; padding: 13px 0; border-bottom: 1px solid #efeff3; font-size: .8rem; }
.profile-activity > div:nth-child(2) { text-align: right; }
.profile-activity > div :is(time,span) { display: block; color: #81818b; font-size: .67rem; margin-top: 4px; }
.profile-training-columns .profile-pagination { padding: 18px 0 0; }
.profile-highlight { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; }
.profile-highlight > span { background: #f2f2f5; padding: 5px 11px; border-radius: 50%; color: #878792; font-size: .7rem; }
.profile-highlight strong { font-size: .9rem; }
.profile-highlight small { display: block; font-size: .66rem; color: #81818b; margin-top: 4px; }
.profile-training-highlights > h3:not(:first-child) { margin-top: 25px; }
.profile-month { display: flex; justify-content: space-between; gap: 20px; margin: 12px 0; font-size: .78rem; color: #72727f; }
.profile-month strong { color: #444451; }
.profile-season-totals { margin-top: 20px; }
.profile-season-totals summary { cursor: pointer; font-weight: 700; font-size: .85rem; }
.profile-season-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin-top: 20px; }
.profile-season-grid article { border: 1px solid #eaeaf0; border-radius: 8px; padding: 16px; }
.profile-season-grid h4 { font-size: .8rem; color: #72727f; margin-bottom: 8px; }
.profile-season-grid strong { display: block; font-size: 1.2rem; }
.profile-season-grid span { display: block; margin-top: 4px; font-size: .65rem; color: #81818b; }
.profile-empty { text-align: center; padding: 45px 24px; }
.profile-empty h2 { font-size: 1.7rem; }
.profile-empty h3 { margin-bottom: 10px; }
.profile-empty p { color: #777781; font-size: .85rem; max-width: 550px; margin: 0 auto; }
.profile-welcome { background: linear-gradient(120deg,#fff,#efeff4); border: 1px solid #e1e1e7; border-radius: 18px; padding: 70px 25px; }
.profile-welcome > i { font-size: 3rem; color: #ad2631; margin-bottom: 25px; }
.profile-footer { padding: 26px 0; background: #272830; color: #b7b7c4; font-size: .75rem; }
.profile-footer .container { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; }
.profile-footer span { margin-right: auto; }
.profile-footer a { color: #dedee6; }
.profile-message { border: 1px solid #c7ddd0; background: #f1fbf4; border-radius: 8px; padding: 12px 16px; color: #335b43; font-size: .85rem; }
.profile-error { background: #fff1f3; border-color: #edc7cc; color: #9a1d29; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.athlete-profile-page :is(a,button,input,select,summary):focus-visible { outline: 3px solid #bd941f; outline-offset: 4px; }
.athlete-profile-page .navbar-logo,.athlete-profile-page .navbar-link { color: #fff; }
.athlete-profile-page .navbar-link.active { color: #ffe189; }
@media(max-width:1000px) {
    .profile-pb-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .profile-athlete-picker input { width: 180px; }
    .profile-results-table td,.profile-results-table th { padding: 15px 12px; }
}
@media(max-width:768px) {
    .athlete-profile-page .navbar-menu.show { display: flex; background: #272830; padding: 10px; }
    .profile-main { padding-top: 20px; }
    .profile-page-heading { align-items: start; }
    .profile-page-heading > a { text-align: right; font-size: .72rem; }
    .profile-page-heading h1 { font-size: 1.6rem; }
    .profile-athlete-picker label:not(.visually-hidden) { flex-basis: 100%; }
    .profile-athlete-picker input { width: 100%; }
    .profile-athlete-picker select { min-width: 0; }
    .profile-hero { padding: 28px 24px; gap: 20px; flex-wrap: wrap; }
    .profile-avatar { width: 85px; height: 85px; }
    .profile-avatar > span { font-size: 2rem; }
    .profile-career { flex-direction: row; gap: 8px; padding: 16px 0 0; border-left: 0; border-top: 1px solid #ffffff25; align-items: center; width: 100%; text-align: left; flex-wrap: wrap; }
    .profile-career strong { font-size: 1.5rem; }
    .profile-career small { margin-left: auto; }
    .profile-stat-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .profile-pb-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .profile-training-columns { grid-template-columns: 1fr; }
    .profile-training-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .profile-section-heading { align-items: start; }
    .profile-section-heading h2 { font-size: 1.4rem; }
    .profile-section-heading > span { max-width: 140px; }
    .profile-results-table thead { display: none; }
    .profile-results-table tbody { display: block; }
    .profile-results-table tr { display: grid; grid-template-columns: minmax(0,1fr) auto; padding: 18px 20px; gap: 9px 15px; border-bottom: 1px solid #eaeaf0; }
    .profile-results-table td { display: block; padding: 0; border: 0; }
    .profile-results-table td:first-child { grid-column: 1 / -1; width: auto; }
    .profile-results-table td:nth-child(2) { grid-column: 1; }
    .profile-results-table td:nth-child(3) { grid-column: 2; grid-row: 2; text-align: right; }
    .profile-results-table td:nth-child(4) { grid-column: 1; }
    .profile-results-table td:last-child { grid-column: 2; grid-row: 3; justify-self: end; }
    .profile-mobile-label { display: inline; color: #777781; }
    .profile-milestone-progress { flex-direction: column; align-items: stretch; gap: 20px; }
    .profile-progress-track { max-width: none; }
    .profile-season-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(max-width:480px) {
    .profile-athlete-picker { padding: 16px; }
    .profile-athlete-picker select { flex-basis: 100%; }
    .profile-athlete-picker .profile-button { width: 100%; }
    .profile-hero { gap: 14px; padding: 24px 20px; }
    .profile-identity h2 { font-size: 1.65rem; }
    .profile-avatar { width: 72px; height: 72px; }
    .profile-hero .profile-eyebrow { font-size: .55rem; }
    .profile-career small { width: 100%; margin: 0; }
    .profile-stat-grid { gap: 10px; }
    .profile-stat-grid > div { padding: 16px 13px; }
    .profile-stat-grid strong { font-size: 1.8rem; }
    .profile-pb-grid { gap: 10px; }
    .profile-pb-card { padding: 16px 12px; }
    .profile-pb-mark { font-size: 1.7rem; }
    .profile-race-filters > div { flex-basis: 100%; }
    .profile-race-filters .profile-button { width: 100%; }
    .profile-panel { padding: 20px 16px; }
    .profile-results-panel { padding: 0; }
    .profile-trend-summary { flex-direction: column; gap: 12px; }
    .profile-trend-summary > div:last-child { text-align: left; }
    .profile-section-nav a { padding: 7px 9px; }
    .profile-pagination { gap: 12px; padding: 16px 12px; font-size: .68rem; }
    .profile-season-grid { grid-template-columns: 1fr; }
    .profile-page-heading .profile-eyebrow { font-size: .6rem; }
    .profile-page-heading > a { max-width: 95px; }
}

.profile-pb-like { margin-top: 12px; }
.profile-like { flex-shrink: 0; }
.profile-activity > div:first-child, .profile-highlight > div { flex: 1; min-width: 0; }
.profile-trend-summary .profile-like { margin-top: 8px; }
.profile-trend-summary .profile-like span { display: inline; margin: 0; }
