/* Shared web/native public athlete controls. */
.profile-logo-button[data-athlete-photo]{padding:0;overflow:hidden;cursor:zoom-in;display:block;aspect-ratio:1}
.profile-logo-button[data-athlete-photo] img{display:block;width:100%;height:100%;border-radius:inherit;object-fit:cover}
.skate-live-native-parity .native-athlete-detail-page .athlete-avatar[data-athlete-photo]{display:block;padding:0;overflow:hidden}
.skate-live-native-parity .native-athlete-detail-page .athlete-avatar[data-athlete-photo] img{width:100%;height:100%;border-radius:inherit;object-fit:cover}
.sl-athlete-photo-dialog{box-sizing:border-box;width:min(640px,calc(100vw - 32px));max-height:85vh;overflow:auto;padding:20px;border:1px solid #34473a;border-radius:20px;background:#0b1711;color:#edf5ef;font-family:inherit}
.sl-athlete-photo-dialog::backdrop{background:#000b}
.sl-athlete-photo-dialog h2{margin:0 0 16px;font-size:20px;overflow-wrap:anywhere}
.sl-athlete-photo-dialog img{display:block;max-width:100%;max-height:60vh;object-fit:contain;margin:16px auto 0}
.sl-athlete-photo-dialog .button{min-height:44px;padding:10px 14px;border:1px solid #3b5144;border-radius:12px;background:#182820;color:#eaf4ed;font:inherit;cursor:pointer}
.sl-followed-athlete .nv2-athlete-identity .nv2-actions{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
[data-fisr-global-followed-page] .nv2-athlete{margin:12px 0}
[data-fisr-global-followed-page] .nv2-profile-link{display:inline;color:#9bf769;background:transparent;border:0;padding:0;border-radius:0;font-weight:700}
[data-fisr-global-followed-page] .nv2-participation-row .nv2-race-link{display:block;padding:0;background:transparent;border:0;color:#9bf769}
[data-fisr-global-followed-page] .nv2-athlete-name h3{margin:0 0 8px}
.profile-logo-button[data-athlete-photo]:focus-visible,.sl-athlete-photo-dialog .button:focus-visible{outline:2px solid #9bf769;outline-offset:3px}

/* Legacy web shell uses the same card spacing/actions as the native source. */
.native-followed-athletes-page [data-fisr-global-followed-page]{background:transparent;border:0;padding:0;box-shadow:none;margin-top:28px}
.native-followed-athletes-page [data-fisr-global-followed-page] .fisr-public-followed-card__head,.native-followed-athletes-page [data-fisr-global-followed-page] [data-fisr-followed-help]{display:none}
.native-followed-athletes-page [data-fisr-global-followed-page] .fisr-public-followed-card__body{padding:0}
.native-followed-athletes-page [data-fisr-global-followed-page] .fisr-public-followed-card__list{gap:0;padding:0}
.nv2-athlete .nv2-actions a.nv2-profile-link{display:inline;min-height:0;color:#9bf769;background:transparent;border:0;padding:0;border-radius:0;font-size:14px;font-weight:700;box-shadow:none}
.nv2-athlete .nv2-athlete-identity .nv2-actions .button{background:transparent;border:0;border-radius:0;padding:8px 0;color:#b8c7be;font-size:13px;font-weight:500;box-shadow:none;text-align:left}
.nv2-athlete .nv2-participation-row a.nv2-race-link{background:transparent;border:0;padding:0;box-shadow:none}

/* Real athlete photographs fill their frame; placeholder logos retain their own sizing. */
.fisr-live-athlete-photo.is-approved{display:block;width:64px;height:64px;border-radius:50%;object-fit:cover;overflow:hidden}

/* The 70% square has a diagonal below the circle diameter, so rectangular artwork is never clipped. */
.profile-logo-button--team:has(img[src*="/profilo-societa/logo/pubblico/"]),
.skate-live-native-parity .teams-rules-exact .profile-logo-button--team:has(img[src*="/profilo-societa/logo/pubblico/"]),
.fisr-native-team-logo:has(img[src*="/profilo-societa/logo/pubblico/"]){box-sizing:border-box;aspect-ratio:1;display:flex;align-items:center;justify-content:center;padding:0!important;overflow:hidden;background:#fff!important;border-radius:50%;flex-shrink:0}
.profile-logo-button--team:has(img[src*="/profilo-societa/logo/pubblico/"]) img,
.skate-live-native-parity .teams-rules-exact .profile-logo-button--team:has(img[src*="/profilo-societa/logo/pubblico/"]) img,
.fisr-native-team-logo:has(img[src*="/profilo-societa/logo/pubblico/"]) img{box-sizing:border-box;display:block;width:70%!important;height:70%!important;max-width:70%;max-height:70%;margin:0!important;padding:0;border-radius:0!important;object-fit:contain!important;object-position:50% 50%;filter:none;transform:none}
.sl-club-identity{display:inline-flex;align-items:center;gap:8px;min-width:0;max-width:100%;vertical-align:middle}
.sl-club-identity>span{min-width:0;overflow-wrap:anywhere}
.sl-club-logo{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;aspect-ratio:1;flex:0 0 32px;border-radius:50%;overflow:hidden;background:var(--background-elevated,#152019);border:1px solid #678270;box-sizing:border-box}
.sl-club-logo.is-approved{background:#fff}
.sl-club-logo img{display:block;width:70%;height:70%;object-fit:contain;object-position:center;border-radius:0;filter:none}
.sl-live-identity{display:flex;align-items:center;gap:10px;min-width:0}
.sl-live-identity>.sl-live-avatar{width:40px;height:40px;flex:0 0 40px;border-radius:50%;object-fit:cover;display:block}
.sl-live-identity>b{min-width:0;overflow-wrap:anywhere}

/* Supplied vertical photograph: keep Onesti's face in the profile thumbnail. */
.profile-logo-button[data-athlete-photo$="/foto/editoriale/22"] img{object-position:center top}

/* Supplied vertical photograph: keep Melissa's face in the profile thumbnail. */
.profile-logo-button[data-athlete-photo$="/foto/editoriale/24"] img{transform:scale(2.3);transform-origin:center top;border-radius:0}

/* Supplied Senior portraits: focus each athlete in her profile thumbnail. */
.profile-logo-button[data-athlete-photo$="/foto/editoriale/25"] img{transform:scale(1.8);transform-origin:center 20%;border-radius:0}
.profile-logo-button[data-athlete-photo$="/foto/editoriale/26"] img{transform:scale(3.2);transform-origin:center 20%;border-radius:0}
.profile-logo-button[data-athlete-photo$="/foto/editoriale/27"] img{transform:scale(2.5);transform-origin:center top;border-radius:0}
/* Original helmets and decentered face in supplied Senior portraits. */
.profile-logo-button[data-athlete-photo$="/foto/editoriale/28"] img{object-position:center top}
.profile-logo-button[data-athlete-photo$="/foto/editoriale/30"] img{object-position:70% center}