.brand .platform-logo{background:transparent;border-radius:10px;overflow:hidden;aspect-ratio:1}
.platform-logo img{display:block;width:100%;height:100%;object-fit:contain}
.portal-sidebar .platform-logo{width:36px;height:36px}
.brand.yalligo-brand{display:grid;justify-items:start;gap:4px}
.yalligo-wordmark{display:block;width:184px;height:auto;max-width:100%;direction:ltr;unicode-bidi:isolate}
.yalligo-brand>.brand-subtitle{margin:0;max-width:none}
.club-profile-shortcut{display:block;min-width:0;max-width:100%;border-radius:4px;text-underline-offset:3px}
.club-profile-shortcut>strong{display:block;font-size:11px;font-weight:700;line-height:1.8;max-width:310px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.club-profile-shortcut:hover strong,.club-profile-shortcut:focus-visible strong{text-decoration:underline}
.home-hero a[data-page]{color:var(--forest);font-weight:650;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.page-heading .eyebrow{overflow-wrap:anywhere}
.nav-item .icon{width:20px;height:20px;stroke-width:1.55}
.install-browser-choices .icon{width:20px;height:20px;stroke-width:1.6}
.home-install-card>.install-app-icon{display:block;width:46px;height:46px;flex:0 0 46px;border-radius:12px}
[data-linked-partners]{margin-bottom:28px}
[data-linked-partners] .avatar{overflow:hidden}
[data-linked-partners] .avatar>img{display:block;width:100%;height:100%;min-width:0;min-height:0;object-fit:cover;border-radius:inherit}
[data-linked-partners]+h2{font-size:20px;margin-bottom:14px}
[data-club-coach-reservations]{margin-block:6px 28px}
/* Keep court photography clear; court lines never sit behind booking text. */
.own-booking-hero{--booking-photo-height:clamp(160px,22vw,240px);padding:calc(var(--booking-photo-height) - 22px) 14px 14px;min-height:0;background:var(--tint);color:var(--ink)}
.own-booking-photo{height:var(--booking-photo-height);object-position:center 50%}
.own-booking-hero:before{display:none}
.own-booking-hero-content{padding:22px;background:var(--white);border:1px solid var(--line);border-radius:12px;text-shadow:none;box-shadow:0 6px 20px #074b3a10}
.own-booking-hero-content>.eyebrow{color:var(--forest);margin-bottom:16px}
.own-booking-hero h3{color:var(--ink);font-size:clamp(23px,2.6vw,30px)}
.own-booking-hero .own-booking-time{color:var(--forest)}
.own-booking-hero .next-own-booking>p:not(.own-booking-time){color:var(--muted)}
.own-booking-hero .own-booking-court-description{margin-inline-start:0;color:var(--forest)}
.own-booking-hero .button.primary{background:var(--forest);color:var(--white);border-color:var(--forest)}
.own-booking-hero .button.primary:hover{background:var(--forest-deep);border-color:var(--forest-deep)}
.own-booking-hero .button.secondary{background:var(--white);color:var(--forest);border-color:var(--control)}
.own-booking-hero .button.secondary:hover{background:var(--tint);color:var(--forest-deep);border-color:var(--forest)}
.own-booking-hero .button:focus-visible{outline-color:var(--forest)}
@media(max-width:600px){
  .home-install-card>div{flex-basis:calc(100% - 58px)}
  .portal-nav .nav-item[data-page="home"]{display:none}
  .portal-sidebar>.brand{min-height:44px}
}

.public-coach-portrait{overflow:hidden;flex-shrink:0}
.public-coach-portrait>img{display:block;width:100%;height:100%;min-width:0;min-height:0;object-fit:cover;border-radius:inherit}
.public-coach-identity{display:flex;align-items:center;gap:20px;margin-block:0 24px}
.public-coach-identity .public-coach-portrait{width:96px;height:96px;font-size:30px}
.public-coach-identity>div{min-width:0;overflow-wrap:anywhere}
.public-coach-identity p{margin:4px 0}

[data-student-list] .avatar{overflow:hidden}
[data-student-list] .avatar>img{display:block;width:100%;height:100%;min-width:0;min-height:0;object-fit:cover;border-radius:inherit}
[data-student-candidates] .avatar{width:31px;height:31px;flex:0 0 31px;overflow:hidden}
[data-student-candidates] .avatar>img{display:block;width:100%;height:100%;min-width:0;min-height:0;object-fit:cover;border-radius:inherit}
