/* Crown Glory profiles (Claude, 24 Oct 2026; for Codex review after Sunday). Loaded after gametime.css.
   Player, club, court and coach profiles share one hero: a full-bleed cover, an avatar that overlaps it, the
   name set large, one primary action, then a quiet stat strip. People get round avatars; clubs and courts get
   rounded squares. The OG seal, gold ring and founding strip keep their exact artwork and sizes.
   Presentation only: ids, data hooks, requests and bindings are unchanged. */

/* ── Hero ───────────────────────────────────────────────────────────────────────────────────────────────── */
.crown{--crown-cover:320px;--crown-av:132px;--crown-ring:6px;position:relative;margin:8px 0 16px;min-width:0;
 background:var(--r-surface);border-radius:28px;box-shadow:var(--g-e1,0 1px 2px rgba(0,0,0,.06));overflow:hidden;isolation:isolate}
.crown-cover{position:relative;height:var(--crown-cover);overflow:hidden;background:#0a3f8f}
.crown-cover>img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
.crown-cover>.og-cover,.crown-cover>.player-cover{height:100%;margin:0;border-radius:0}
.crown-art,.crown-art>svg{position:absolute;inset:0;display:block;width:100%;height:100%}
.crown-art{background:radial-gradient(120% 140% at 18% 0%,#2b8cff 0%,#0060c9 55%,#0a3f8f 100%)}
/* A soft floor under photos so the overlapping avatar never sits on a busy edge. */
.crown-cover:has(img)::after{content:"";position:absolute;inset:auto 0 0;height:45%;background:linear-gradient(to top,rgba(0,0,0,.22),rgba(0,0,0,0));pointer-events:none;z-index:1}
.crown-cover>.og-cover .og-large-seal{z-index:2}

/* Wrapping row: the name keeps at least 320px; when the actions do not fit beside it they move to their own
   line instead of squeezing the name (an organizer's club page has three buttons). */
.crown-id{position:relative;z-index:2;display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 24px;padding:0 32px 28px}
.crown-avatar{flex:none;align-self:flex-start;margin-top:calc((var(--crown-av) + var(--crown-ring) * 2) / -2);padding:var(--crown-ring);line-height:0;
 background:var(--r-surface);border-radius:50%;box-shadow:0 1px 2px rgba(0,0,0,.08),0 10px 28px -6px rgba(0,0,0,.24)}
.crown-avatar>img,.crown-avatar>.profile-avatar,.crown-avatar>.crown-monogram,.crown-avatar>.crown-court-mark{
 display:grid;place-items:center;width:var(--crown-av);height:var(--crown-av);margin:0;border:0;border-radius:50%;object-fit:cover}
.crown-avatar>.og-avatar{display:block;padding:4px;line-height:0}
.crown-avatar>.og-avatar>img,.crown-avatar>.og-avatar>.profile-avatar{width:calc(var(--crown-av) - 8px);height:calc(var(--crown-av) - 8px);border-radius:50%}
.crown-avatar .og-dot{width:20px;height:20px;right:6px;bottom:6px;border-width:3px}
.crown-avatar .profile-avatar{font-size:calc(var(--crown-av) * .34);font-weight:600;letter-spacing:-.02em;line-height:1;
 color:var(--r-link);background:linear-gradient(160deg,#eef5ff,#d6e7fc)}
.crown-monogram,.crown-court-mark{color:#fff;background:linear-gradient(160deg,#2b8cff 0%,#0060c9 60%,#0a3f8f 100%);
 font-size:calc(var(--crown-av) * .32);font-weight:700;letter-spacing:-.02em;line-height:1}
.crown-court-mark>svg{width:46%;height:46%}
/* Organisations (clubs, courts) read as places, so they get a rounded square instead of a circle. */
.crown-club .crown-avatar,.crown-court .crown-avatar{border-radius:32px}
.crown-club .crown-avatar>*,.crown-court .crown-avatar>*{border-radius:26px}

.crown-who{flex:1 1 320px;min-width:0;padding-top:16px}
.crown-role{display:block;margin:0 0 4px;color:var(--r-link);font-size:13px;font-weight:600;line-height:1.3;letter-spacing:.06em;text-transform:uppercase}
.crown .crown-who h1{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:0;color:var(--r-ink);
 font-size:40px;font-weight:700;line-height:1.1;letter-spacing:-.022em;overflow-wrap:anywhere;text-wrap:balance}
.crown .crown-who h1 .og-name-badge{padding:4px 12px 4px 6px;border-radius:999px;background:var(--r-gold-tint);box-shadow:inset 0 0 0 1px #F0DFAA;
 font-size:14px;letter-spacing:.02em}
.crown-sub{margin:6px 0 0;color:var(--r-ink-2);font-size:17px;line-height:1.4;overflow-wrap:anywhere}
.crown-actions{display:flex;flex:0 1 auto;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-left:auto;padding-bottom:2px}
.crown-actions>.btn,.crown-actions>a.btn,.crown-actions>button{min-height:44px;margin:0;white-space:nowrap}
.crown>.og-founding-strip{margin:0 32px 28px}

/* ── Highlights strip ───────────────────────────────────────────────────────────────────────────────────── */
.crown-stats{--n:3;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));margin:0 0 24px;padding:18px 8px;
 background:var(--r-surface);border-radius:22px;box-shadow:var(--g-e1,0 1px 2px rgba(0,0,0,.06))}
.crown-stats-1{--n:1}.crown-stats-2{--n:2}.crown-stats-4{--n:4}
.crown-stats>div{display:flex;flex-direction:column-reverse;align-items:center;justify-content:flex-end;gap:2px;min-width:0;padding:4px 12px;text-align:center}
.crown-stats>div+div{box-shadow:inset 1px 0 0 var(--g-sep,rgba(60,60,67,.16))}
.crown-stats dd{margin:0;color:var(--r-ink);font-size:28px;font-weight:700;line-height:1.15;letter-spacing:-.02em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.crown-stats dt{margin:0;color:var(--r-ink-2);font-size:13px;line-height:1.35}

/* ── Player ─────────────────────────────────────────────────────────────────────────────────────────────── */
.crown-bio{max-width:720px;margin:8px 4px 24px;color:var(--r-ink);font-size:19px;line-height:1.5;white-space:pre-line;overflow-wrap:anywhere}
.player-facts.crown-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:none;margin:0 0 16px;padding:0;overflow:hidden;
 background:var(--r-surface);border-radius:22px;box-shadow:var(--g-e1,0 1px 2px rgba(0,0,0,.06))}
.crown-facts>div,.crown-facts>div:first-child{display:block;min-width:0;padding:16px 20px;border:0}
.crown-facts>div+div{box-shadow:inset 1px 0 0 var(--g-sep,rgba(60,60,67,.16))}
.crown-facts dt{margin:0 0 4px;color:var(--r-ink-2);font-size:13px}
.crown-facts dd{margin:0;color:var(--r-ink);font-size:17px;font-weight:600;text-align:left;overflow-wrap:anywhere}
.profile-club-links.crown-clubs{flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 8px}
.crown-clubs>span:first-child{margin-right:4px;color:var(--r-ink-2);font-size:13px}
.crown-clubs>a{display:inline-flex;align-items:center;min-height:44px;padding:8px 16px;border-radius:999px;background:var(--r-blue-tint);
 color:var(--r-link);font-size:15px;font-weight:500;text-decoration:none}
.crown-clubs>a:hover{background:#dcebff}
.crown-clubs>a:focus-visible{outline:3px solid var(--r-blue);outline-offset:2px}
/* The same three numbers now lead the page in the highlights strip, so analytics' own summary row is hidden
   there (analytics() itself is unchanged; it still shows the row on My progress). */
.crown-stats~.my-stats{display:none}
/* An empty timeline reads as a quiet note, not a large blank card. */
#player-timeline .timeline{margin:32px 0 24px}
#player-timeline .market-empty.compact{min-height:0;padding:24px;align-items:flex-start;text-align:left;gap:4px;
 background:var(--g-fill-3,rgba(120,120,128,.08));border:0;border-radius:22px;box-shadow:none}
#player-timeline .market-empty.compact h3{font-size:17px;letter-spacing:-.01em}
#player-timeline .market-empty.compact p{font-size:15px;line-height:1.45}

/* ── Photos (club and court) ────────────────────────────────────────────────────────────────────────────── */
.crown~.profile-gallery,.venue-body .profile-gallery{border-radius:22px;overflow:hidden}
.crown~.profile-gallery .gallery-tile,.venue-body .profile-gallery .gallery-tile{border-radius:4px}
/* Court photos were stacked full size (a display:block override); restore the mosaic. Tiles fill their grid
   cell instead of a fixed 384px/256px height, so the columns line up on clubs and courts alike. */
.venue-body .profile-gallery{display:grid}
.crown~.profile-gallery .gallery-tile,.venue-body .profile-gallery .gallery-tile{height:100%}
.crown-intro{margin:0 0 32px}

/* ── Coach ──────────────────────────────────────────────────────────────────────────────────────────────── */
.crown-coach~.coach-profile-layout{margin-top:0}
.crown-coach~.coach-profile-layout .coach-bio h2{margin-top:0}
.crown-coach~.coach-profile-layout .coach-price-panel{background:var(--r-surface);border-radius:22px;box-shadow:var(--g-e1,0 1px 2px rgba(0,0,0,.06))}
.crown-coach~.coach-profile-layout .coach-price-panel>span{color:var(--r-ink-2);font-size:13px;font-weight:600;letter-spacing:.06em}
.crown-coach~.coach-profile-layout .coach-price-panel>strong{margin:8px 0 2px;color:var(--r-ink);font-size:40px;font-weight:700;letter-spacing:-.022em;line-height:1.1}
.crown-coach~.coach-profile-layout .coach-price-panel>p:first-of-type{margin:0 0 16px;color:var(--r-ink-2)}
#coach-lessons,#book-court{scroll-margin-top:96px}

/* ── Tablet and phone ───────────────────────────────────────────────────────────────────────────────────── */
@media(max-width:1000px){
 .crown{--crown-cover:280px;--crown-av:116px}
 .player-facts.crown-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
 .crown-facts>div+div{box-shadow:none}
 .crown-facts>div:nth-child(even){box-shadow:inset 1px 0 0 var(--g-sep,rgba(60,60,67,.16))}
 .crown-facts>div:nth-child(n+3){border-top:.5px solid var(--g-sep,rgba(60,60,67,.16))}
}
@media(max-width:700px){
 .crown{--crown-cover:232px;--crown-av:104px;--crown-ring:5px;margin:4px 0 12px;border-radius:24px}
 .crown-id{flex-direction:column;align-items:stretch;gap:0;padding:0 20px 22px}
 .crown-avatar{align-self:flex-start}
 .crown-who{flex:none}
 .crown-actions{margin-left:0}
 .crown-club .crown-avatar,.crown-court .crown-avatar{border-radius:28px}
 .crown-club .crown-avatar>*,.crown-court .crown-avatar>*{border-radius:23px}
 .crown-who{padding-top:12px}
 .crown .crown-who h1{font-size:30px;gap:6px 10px}
 .crown-sub{font-size:15px}
 .crown-actions{justify-content:stretch;padding:16px 0 0}
 .crown-actions>*{flex:1 1 auto}
 .crown>.og-founding-strip{margin:0 20px 20px}
 .crown-stats{padding:14px 4px;margin-bottom:20px}
 .crown-stats>div{padding:4px 6px}
 .crown-stats dd{font-size:22px}
 .crown-stats dt{font-size:12px}
 .crown-bio{font-size:17px;margin:4px 4px 20px}
 .crown-facts>div,.crown-facts>div:first-child{padding:14px 16px}
 .profile-club-links.crown-clubs{flex-direction:row}
}
@media(max-width:360px){
 .crown .crown-who h1{font-size:26px}
 .crown-stats dd{font-size:19px}
}
@media(prefers-contrast:more){
 .crown,.crown-stats,.player-facts.crown-facts{box-shadow:0 0 0 1px var(--r-line-strong)}
 .crown-cover:has(img)::after{display:none}
}

/* Scoring averages follow the existing explicit public-statistics switch. */
.profile-scoring-note{margin:16px 0 28px}.profile-scoring-note summary{min-height:44px;display:flex;align-items:center;color:var(--r-blue,#0674e8);font-size:15px;cursor:pointer}.profile-scoring-note p{font-size:15px;line-height:1.5;max-width:72ch}.my-stats.profile-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.profile-stat-grid small{display:block;font-size:12px;color:var(--r-muted,#6e6e73)}
@media(max-width:700px){.my-stats.profile-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:20px}.profile-stat-grid>div{min-width:0}}
