.sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.space-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:18px;margin:20px 0 32px}
.space-grid .panel {margin:0;min-width:0}
.space-card {border-top:3px solid var(--orange);display:flex;flex-direction:column;align-items:start}
.space-card .button {margin-top:auto}
.invite {display:flex;align-items:center;gap:25px;justify-content:space-between;background:linear-gradient(120deg, rgba(212,255,63,0.10), rgba(79,209,255,0.08))}
.invite .button {flex-shrink:0}
.manage-nav {display:flex;gap:10px 20px;flex-wrap:wrap;margin:10px 0 25px;padding-bottom:15px;border-bottom:1px solid var(--line)}
.metrics {display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:18px;margin:20px 0}
.metrics article {padding:15px;background:var(--paper);border:1px solid var(--line);border-radius:12px;min-width:0}
.metrics strong {display:block;font-size:clamp(22px,2.5vw,32px);overflow-wrap:anywhere;line-height:1.2;margin-bottom:8px}
.metrics span,.metrics a {display:block;font-size:13px;color:var(--muted)}
.page-top form {display:flex;align-items:center;gap:8px}.page-top select {width:auto;max-width:110px;padding:5px;font-size:13px;margin:0}
.panel label {display:block;margin:12px 0 5px}.panel .row-actions {margin-top:14px}.panel form select {margin-bottom:14px}
.panel,.member-row {overflow-wrap:anywhere}.member-row>div {min-width:0}.row-actions {flex-wrap:wrap}
@media(max-width:600px){.invite{align-items:stretch;flex-direction:column;gap:12px}.space-grid{gap:12px}.page-top>span{font-size:9px}.page-top{gap:10px}.heading-action{flex-wrap:wrap}.metrics{gap:10px}.member-row{align-items:start}.member-row .row-actions{width:100%}.row-actions button{white-space:normal}}

/* Athlete profiles and teams reuse the existing mobile navigation and panels. */
.sports-level{display:flex;flex-wrap:wrap;gap:24px;align-items:center;margin-bottom:32px}.sports-level>div{flex:1;min-width:110px}.sports-level strong,.sports-metrics strong{display:block;font-size:28px}.sports-level span,.sports-metrics span{display:block;font-size:13px;color:var(--muted,#626b76)}.sports-badges{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:14px;margin-bottom:32px}.sports-badge{display:flex;gap:14px;margin:0!important}.sports-badge.earned{border-color:var(--orange);background:rgba(212,255,63,0.08)}.sports-badge h3{margin:4px 0 8px}.sports-badge p{font-size:13px}.sports-medal{display:flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;border-radius:50%;background:rgba(212,255,63,0.14);color:var(--orange);font-weight:800}.earned .sports-medal{background:var(--orange);color:var(--bg)}.sports-badge>div{min-width:0;flex:1}progress{width:100%;height:7px;accent-color:var(--orange)}.sports-roster{display:grid;gap:4px;padding:14px 0;border-bottom:1px solid var(--line)}.sports-roster small{color:var(--muted)}.sports-metrics{display:flex;flex-wrap:wrap;gap:20px;margin:18px 0}.sports-match{margin-bottom:14px}.sports-match h3{overflow-wrap:anywhere}input[type=checkbox]{width:auto!important}

/* Club photo gallery and covers. */
.space-card-cover {width:100%;height:160px;object-fit:cover;border-radius:8px;margin:0 0 18px}
.space-card-cover.placeholder {display:flex;align-items:center;justify-content:center;background:#1c2438;color:#d4ff3f;font-size:28px}
.gallery figcaption {display:flex;gap:12px;align-items:center;margin-top:6px}

/* Provider weekly schedule grid, 24 rows x 7 days. */
.week-nav {align-items:center;margin-bottom:14px}
.week-nav .button {margin:0}
.schedule-scroll {overflow-x:auto;margin:14px 0}
.schedule-grid {width:100%;min-width:640px;border-collapse:collapse;font-size:13px}
.schedule-grid th,.schedule-grid td {border:1px solid var(--line);padding:4px 6px;text-align:left;vertical-align:top}
.schedule-grid thead th {background:var(--paper);white-space:nowrap}
.schedule-grid thead th.today {color:var(--orange)}
.schedule-grid tbody th {white-space:nowrap;color:var(--muted);font-weight:600}
.schedule-cell {min-width:110px;height:34px}
.schedule-item {display:block;border-radius:7px;background:rgba(212,255,63,0.08);border-left:3px solid var(--orange);padding:3px 6px;margin:2px 0;overflow-wrap:anywhere}
.schedule-item:hover {background:rgba(212,255,63,0.16)}
@media(max-width:600px){.schedule-grid{font-size:12px}.schedule-cell{min-width:86px}}

/* Profile avatar in the sidebar. */
.nav-avatar {display:inline-block;width:28px;height:28px;border-radius:50%;object-fit:cover;vertical-align:middle;margin-right:6px}
.nav-avatar.placeholder {background:rgba(212,255,63,0.14);color:#0e1220;text-align:center;line-height:28px;font-size:12px}


/* ===================== DARK VOLT THEME ===================== */
.panel {background: var(--paper);}
.space-card {border-top:3px solid var(--orange)}
.invite .button:not(.secondary) {background: var(--grad); border: 0; color: #0e1220; font-weight: 750}
.metrics article {background: var(--paper)}
.schedule-grid th,.schedule-grid td {border-color: var(--line)}
.schedule-grid thead th {background: var(--paper)}
.schedule-grid thead th.today {color: var(--orange)}
.status {background: rgba(212,255,63,0.10); color: var(--orange); border-radius: 6px}
.roster-guest {padding: 6px 0 2px 14px; border-left: 2px dashed var(--line); margin: 4px 0}
.autobook {border-top: 1px dashed var(--line); padding-top: 10px; margin-top: 8px}
input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea {background: var(--paper-2, #1b2338); color: var(--ink); border-color: var(--line)}
select option {background: var(--paper); color: var(--ink)}
progress {accent-color: var(--orange)}

/* ===================== Showcase carousel ===================== */
.showcase {margin: 6px 0 26px}
.showcase-track {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  border-radius: var(--radius);
}
.showcase-track::-webkit-scrollbar {display: none}
.showcase-slide {
  flex: 0 0 100%;
  scroll-snap-align: start;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 0 0 18px;
  overflow: hidden;
}
.showcase-slide img {
  display: block;
  width: 100%;
  aspect-ratio: 21 / 9;
  object-fit: cover;
}
.showcase-slide h2 {margin: 14px 18px 4px; font-size: 22px}
.showcase-slide p {margin: 4px 18px 12px; color: var(--muted); font-size: 14px}
.showcase-slide a {margin: 0 18px; display: inline-block}
.showcase-nav {display: flex; align-items: center; gap: 12px; margin-top: 10px}
.showcase-dots {display: flex; gap: 7px}
.showcase-dot {
  width: 9px; height: 9px; padding: 0;
  border-radius: 50%;
  border: 1px solid var(--orange);
  background: transparent;
}
.showcase-dot.active {background: var(--orange)}
.showcase-arrow {
  border: 1px solid var(--line);
  background: var(--paper);
  color: var(--ink);
  border-radius: 8px;
  padding: 6px 12px;
}
.showcase-arrow:hover {border-color: var(--orange); color: var(--orange)}
.showcase-art {
  aspect-ratio: 21 / 9;
  display: grid;
  place-items: center;
  background:
    radial-gradient(400px 200px at 70% 30%, rgba(79, 209, 255, 0.16), transparent 65%),
    linear-gradient(120deg, #10162a, #1c2438);
  color: var(--orange);
  font-size: 64px;
  font-weight: 800;
}

/* Notifications are independent cards, with room for device controls above. */
.notification-list {display:grid;gap:18px;margin-top:22px}
#push-settings [role="status"]:not(:empty) {margin-top:16px}

/* Provider setup and forms: useful next steps before optional reporting. */
.setup-actions {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0}
.setup-actions .button {justify-content:flex-start;text-align:left;min-height:58px;padding:15px 18px}
.provider-setup > p {padding:12px 0 0;border-top:1px solid var(--line)}
.provider-stats {margin:24px 0;padding:0;border:1px solid var(--line);border-radius:var(--radius)}
.provider-stats > summary {min-height:52px;padding:15px 20px;color:var(--muted)}
.provider-stats > .metrics {margin:0 20px 20px}
.provider-stats > .panel {border:0;border-top:1px solid var(--line);border-radius:0 0 var(--radius) var(--radius)}
.provider-section {margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}
.section-heading {display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.section-heading h2 {margin:0}
.section-heading > a {display:inline-flex;align-items:center;min-height:44px}
.provider-section > .rows {border:1px solid var(--line);border-radius:var(--radius);background:var(--paper)}
.photo-gallery-panel .gallery {margin:0}
.gallery.space-photo-gallery {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:24px}
.space-photo-gallery figure {width:auto;min-width:0;margin:0}
.space-photo-gallery img {width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;display:block}
.space-photo-gallery figcaption {justify-content:flex-start;gap:10px;margin-top:12px}
.space-photo-gallery .text-button {min-height:44px;padding:10px}
.photo-empty {margin:0;color:var(--muted);padding:8px 0}
.profile-heading {display:flex;align-items:center;gap:20px}
.profile-heading > div {min-width:0}
.profile-heading p {overflow-wrap:anywhere}
.profile-photo {display:block;flex:none;width:80px;height:80px;border-radius:50%;object-fit:cover}
.profile-initials {display:grid;place-items:center;background:var(--paper-2);color:var(--orange);font-size:25px;font-weight:700;border:1px solid var(--line)}
.profile-links {display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:26px 0 20px;padding-top:22px;border-top:1px solid var(--line)}
.session-form-panel {max-width:900px}
.form-section {border:0;padding:0;margin:0 0 28px;min-width:0}
.form-section + .form-section {padding-top:24px;border-top:1px solid var(--line)}
.form-section legend {padding:0;font-size:19px;font-weight:700;color:var(--ink);margin-bottom:12px}
.form-section > div {margin-bottom:16px}
.form-columns {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.form-columns > div {min-width:0}
.form-submit {margin:24px 0 0!important;padding-top:20px;border-top:1px solid var(--line)}
.form-section textarea {min-height:110px;height:140px}
.weekday-options fieldset {border:0;padding:0;margin:0;min-width:0}
.weekday-options legend {font-size:12px;color:var(--muted);margin-bottom:7px}
.weekday-options #id_weekdays {display:flex;flex-wrap:wrap;gap:8px 18px}
.weekday-options #id_weekdays > div {min-width:100px}
.weekday-options label {display:flex;align-items:center;gap:8px;min-height:44px;margin:0}
.weekday-options input[type="checkbox"] {flex:none}
input[type="file"]::file-selector-button {border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink);font:inherit;padding:7px 10px;margin-right:10px;cursor:pointer}
@media(max-width:600px) {
  .setup-actions,.form-columns {grid-template-columns:minmax(0,1fr);gap:10px}
  .setup-actions .button {min-height:50px}
  .profile-heading {align-items:flex-start;gap:14px}
  .profile-photo {width:64px;height:64px}
  .profile-heading h1 {font-size:28px}
  .provider-stats > .metrics {margin:0 14px 14px}
  .form-section legend {font-size:18px}
}

.avatar-current {display:flex;align-items:center;gap:12px 24px;flex-wrap:wrap;margin-bottom:10px}
.avatar-current > a {display:inline-flex;align-items:center;min-height:44px}
.panel .avatar-clear {display:flex;align-items:center;gap:8px;min-height:44px;margin:0;color:var(--muted);font-size:13px}
.avatar-clear input[type="checkbox"] {flex:none}

/* Sport detail: each event keeps its terms and booking action together. */
.sport-detail {display:grid;gap:32px}
.sport-section > h2 {margin:0 0 16px}
.sport-event-list {display:grid;gap:14px}
.sport-event-card {display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,230px);gap:24px;padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper)}
.sport-event-main,.sport-event-action {min-width:0;overflow-wrap:anywhere}
.sport-event-time {font-size:14px;font-weight:650;color:var(--ink);margin:0 0 14px}
.sport-event-time > span {display:block;margin-top:3px;font-size:11px;font-weight:400;color:var(--muted)}
.sport-event-main h3 {font-size:22px;line-height:1.3;margin:0 0 8px}
.sport-event-main h3 > a {color:var(--ink)}
.sport-event-place {font-size:14px;color:var(--muted);margin:0 0 16px}
.sport-event-tags {display:flex;flex-wrap:wrap;gap:8px;margin:0}
.sport-event-tags > span {display:inline-flex;padding:4px 9px;border-radius:6px;background:var(--paper-2);color:var(--muted);font-size:12px}
.sport-event-action {display:flex;flex-direction:column;justify-content:center;align-items:stretch;border-left:1px solid var(--line);padding-left:24px}
.sport-event-places {margin:0 0 5px;font-size:13px;color:var(--muted)}
.sport-event-price {margin:0 0 18px;font-size:18px;font-weight:650;line-height:1.3}
.sport-event-action > .button {width:100%;min-height:44px}
.sport-empty {padding:20px 24px;border:1px dashed var(--line);border-radius:var(--radius);background:var(--paper);color:var(--muted)}
.sport-empty > p {margin:0 0 6px}
.sport-empty > a {display:inline-flex;align-items:center;min-height:44px;font-size:14px}
@media(max-width:760px) {
  .sport-detail {gap:26px}
  .sport-event-card {grid-template-columns:minmax(0,1fr);gap:18px;padding:20px 18px}
  .sport-event-main h3 {font-size:20px}
  .sport-event-action {display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 12px;border-left:0;border-top:1px solid var(--line);padding:16px 0 0}
  .sport-event-places,.sport-event-price {margin:0}
  .sport-event-price {text-align:right;font-size:16px}
  .sport-event-action > .button {grid-column:1/-1;margin-top:4px}
  .sport-empty {padding:18px}
}

/* Venue evidence belongs to the location; organizer branding stays separate. */
.session-layout {display:grid;grid-template-columns:minmax(300px,1fr) minmax(0,1.35fr);gap:24px;align-items:start}
.session-overview {display:grid;gap:22px;min-width:0}
.session-booking-panel {min-width:0}
.location-heading {display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.location-heading h2 {font-size:25px;margin:0}
.location-heading .eyebrow {margin:0 0 8px}
.location-heading .button {flex:none}
.location-address {margin:16px 0 20px;color:var(--muted);font-size:15px;overflow-wrap:anywhere}
.location-cover-link {display:block}
.location-cover {display:block;width:100%;height:auto;aspect-ratio:5/3;object-fit:cover;border-radius:10px}
.location-illustration {object-fit:contain;background:#0e1220}
.location-photo-empty {margin:0}
.location-photo-empty > p {margin:10px 0 0;color:var(--muted);font-size:12px}
.location-no-photo {padding:24px;border:1px dashed var(--line);border-radius:10px;background:var(--paper-2)}
.location-no-photo > p {margin:0}
.location-thumbnails {display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:10px;margin-top:12px}
.location-thumbnails img {display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:7px}
.location-photo-manage {display:inline-flex;align-items:center;margin-top:12px}
.provider-identity {display:flex;align-items:center;gap:16px;min-width:0;color:var(--ink)}
.provider-identity > span {min-width:0}
.provider-identity strong {display:block;font-size:21px;line-height:1.3;overflow-wrap:anywhere}
.provider-logo {display:block;flex:none;width:80px;height:80px;object-fit:contain;border-radius:12px;padding:6px;background:#fff;border:1px solid var(--line)}
.provider-logo-empty {display:grid;place-items:center;background:var(--paper-2);color:var(--orange);font-size:28px;font-weight:700}
.provider-kind {display:block;margin-top:6px;font-size:13px;color:var(--muted)}
.provider-contact {margin-top:18px;color:var(--muted);overflow-wrap:anywhere}
.provider-page-heading {display:flex;align-items:center;gap:20px;margin-bottom:20px}
.provider-page-heading h1 {margin:0;min-width:0}
.provider-page-heading .provider-logo {width:96px;height:96px}
.provider-gallery {margin:0 0 28px}
.provider-gallery img {object-fit:contain;background:var(--paper-2)}
@media(max-width:1000px) {
  .session-layout {grid-template-columns:minmax(0,1fr)}
}
@media(max-width:600px) {
  .session-layout,.session-overview {gap:18px}
  .location-heading h2 {font-size:23px}
  .location-heading .button {min-height:44px;padding:10px 14px}
  .location-address {margin:14px 0 18px;font-size:14px}
  .provider-identity {gap:12px}
  .provider-logo {width:64px;height:64px}
  .provider-identity strong {font-size:19px}
  .provider-page-heading {gap:14px;align-items:flex-start}
  .provider-page-heading .provider-logo {width:72px;height:72px}
}
.session-booking-jump {margin-top:18px}
.session-booking-panel {scroll-margin-top:20px}
.sport-event-with-media {grid-template-columns:minmax(128px,170px) minmax(0,1fr) minmax(150px,190px);gap:20px}
.sport-event-media {display:block;min-width:0;align-self:start;border-radius:9px;overflow:hidden;background:#0e1220}
.sport-event-media > img {display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.sport-event-fallback > img {object-fit:contain}
.sport-event-fallback > span {display:block;padding:8px 10px;font-size:10px;line-height:1.4;color:#98a4bf}
.sport-event-provider {display:flex;align-items:center;gap:8px;margin:0 0 14px;font-size:12px;color:var(--muted);min-width:0}
.sport-event-provider > img {flex:none;display:block;width:28px;height:28px;object-fit:contain;border-radius:5px;background:#fff;padding:2px;border:1px solid var(--line)}
.sport-event-provider > span {overflow-wrap:anywhere}
.sport-event-main .sport-event-place {margin-bottom:10px}
@media(max-width:1100px) {
  .sport-event-with-media {grid-template-columns:128px minmax(0,1fr)}
  .sport-event-with-media .sport-event-action {grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;border-left:0;border-top:1px solid var(--line);padding:16px 0 0;align-items:center}
  .sport-event-with-media .sport-event-places,.sport-event-with-media .sport-event-price {margin:0}
  .sport-event-with-media .sport-event-price {text-align:right}
  .sport-event-with-media .sport-event-action > .button {grid-column:1/-1;margin-top:4px}
}
@media(max-width:600px) {
  .sport-event-with-media {grid-template-columns:minmax(0,1fr);gap:16px}
  .sport-event-media > img {aspect-ratio:16/9}
  .sport-event-fallback > span {padding:7px 12px;font-size:11px}
}

.location-map {display:block;width:100%;height:300px;border:0;border-radius:10px;margin:0 0 20px;background:var(--paper-2)}
@media(max-width:600px){.location-map{height:260px}}

/* Booking first, venue second: same reading order on every screen. */
.session-schedule {display:flex;flex-wrap:wrap;gap:20px 32px;align-items:flex-end;margin:24px 0 8px}
.session-schedule > div {display:flex;flex-direction:column;gap:5px;min-width:0}
.session-day {font-size:14px;color:var(--muted)}
.session-date,.session-time {font-size:clamp(26px,3vw,38px);font-weight:750;line-height:1.2;letter-spacing:-.025em;color:var(--ink)}
.session-venue-jump {display:inline-flex;align-items:center;min-height:44px}
.session-extra {display:grid;gap:22px;margin-top:24px}
.session-location {min-width:0;scroll-margin-top:20px}
.session-booking-panel > form + form {margin-top:14px}
.session-availability {font-weight:650}
.session-attend-form {display:grid;gap:12px;margin-top:22px}
.session-attend-form label {margin:0}
.session-attend-form .row-actions {margin-top:6px}
.session-attend-form .row-actions > .button {width:100%}
.session-cancellation-note {margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}
.session-guest-booking {display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:12px 0;color:var(--muted)}
@media(max-width:600px) {
  .session-schedule {gap:14px 24px;margin-top:20px}
  .session-date,.session-time {font-size:28px}
  .session-extra {gap:18px;margin-top:18px}
}

/* One public event card across the organizer and sport directories. */
.event-card-schedule {display:flex;flex-wrap:wrap;gap:12px 24px;margin-bottom:18px;color:var(--ink)}
.event-card-schedule time,.event-card-schedule strong {display:block;font-size:22px;line-height:1.25;font-weight:750;letter-spacing:-.02em}
.event-card-schedule span {display:block;margin-top:5px;font-size:11px;font-weight:400;letter-spacing:0;color:var(--muted)}
.event-provider-initial {display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:5px;background:var(--paper-2);color:var(--orange);font-weight:700}
.provider-event-search {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;align-items:end;margin:20px 0 24px;max-width:840px}
.provider-event-search label {grid-column:1/-1;margin:0}
.provider-event-search input {min-width:0;margin:0}
.provider-event-search button {margin:0;min-height:46px}
@media(max-width:600px){.event-card-schedule time,.event-card-schedule strong{font-size:23px}.provider-event-search{gap:8px 10px}}

/* Provider forms and account lists use explicit spacing, never collapsed margins. */
.provider-content-stack {display:flex;flex-direction:column;gap:22px;min-width:0}
.provider-content-stack > * {margin-top:0;margin-bottom:0}
.provider-content-stack > .provider-event-search {width:100%}
.provider-content-stack > .lower {margin-top:8px}
.provider-inline-form {display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}
.provider-inline-form > label {flex:1 1 200px;min-width:0;margin:0}
.provider-inline-form > label > input {margin-top:6px}
.provider-inline-form > .button,.provider-inline-form > .text-button {flex:none;min-height:46px;margin:0}
.autobook-current {display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}
.autobook-current > p {margin:0}
.autobook-form {display:grid;grid-template-columns:minmax(0,1fr) minmax(90px,.7fr);gap:12px;align-items:end}
.panel .autobook-form > label {margin:0;min-width:0}
.autobook-form label > input,.panel .autobook-form label > select {margin:6px 0 0}
.autobook-form > .button {grid-column:1/-1;margin:0;justify-self:start}
.schedule-scroll:focus-visible {outline:2px solid var(--orange);outline-offset:4px;border-radius:4px}
@media(max-width:600px){.provider-content-stack{gap:20px}.provider-inline-form>.button{max-width:100%;white-space:normal}}

.booking-payment {margin:20px 0;padding:20px;border:1px solid var(--orange);border-radius:10px;background:var(--paper-2);overflow-wrap:anywhere}
.booking-payment h3 {margin:0 0 14px;font-size:20px;line-height:1.3}
.booking-payment p {margin:12px 0;font-size:14px}
.booking-payment p > strong {font-size:22px;color:var(--ink)}
.booking-payment-instructions {margin:16px 0;line-height:1.65}

.avatar-choices {display:grid;grid-template-columns:repeat(auto-fit,minmax(95px,1fr));gap:12px;max-width:650px;margin:12px 0}
.panel .avatar-choices .avatar-option {position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;margin:0;padding:12px 8px;border:1px solid var(--line);border-radius:12px;cursor:pointer;text-align:center;font-size:12px}
.avatar-option img,.avatar-upload-symbol {width:72px;height:72px;border-radius:50%;object-fit:cover}
.avatar-upload-symbol {display:grid;place-items:center;background:var(--paper-2);font-size:30px}
.avatar-option input[type=radio] {position:absolute;top:8px;left:8px;width:16px;height:16px;margin:0;accent-color:var(--orange)}
.avatar-option:has(input:checked) {outline:2px solid var(--orange);outline-offset:1px;background:var(--paper-2)}
.avatar-option:focus-within {box-shadow:0 0 0 3px var(--orange)}

/* Native fieldsets otherwise impose a min-content width on the avatar grid. */
.profile-form-panel fieldset {min-width:0;min-inline-size:0;width:100%;margin:0;padding:0;border:0}
.profile-form-panel legend {max-width:100%;padding:0;white-space:normal}
.profile-form-panel .avatar-choices {width:100%;min-width:0}
.avatar-option {min-width:0}
@media(max-width:600px) {
  .profile-form-panel .avatar-choices {grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
  .avatar-option img,.avatar-upload-symbol {width:64px;height:64px;max-width:100%}
}
@media(max-width:350px) {
  .profile-form-panel .avatar-choices {grid-template-columns:repeat(2,minmax(0,1fr))}
}

.roster-list .roster-booking {display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.2fr) minmax(0,1fr);align-items:start;gap:24px}
.roster-booking h4 {margin:0 0 12px;font-size:13px;color:var(--muted)}
.roster-profile-link {display:inline-flex;align-items:center;gap:6px;color:var(--ink);min-height:44px}
.roster-booking .row-actions {justify-content:flex-start;max-width:none}
.roster-booking .roster-guest {grid-column:1/-1}
.roster-payment > form {margin-top:12px}
@media(max-width:1050px){.roster-list .roster-booking{grid-template-columns:minmax(0,1fr);gap:20px}.roster-attendance,.roster-payment{padding-top:16px;border-top:1px solid var(--line)}}

/* Avatar selection is compact in the profile and scrolls inside its own window. */
.profile-avatar-picker {margin:18px 0 24px;border:1px solid var(--line);border-radius:10px}
.profile-avatar-picker > summary {cursor:pointer;padding:14px 16px;min-height:48px;font-weight:600;color:var(--ink)}
.profile-avatar-picker > summary:focus-visible {outline:2px solid var(--orange);outline-offset:3px}
.profile-avatar-content {padding:20px}
.profile-avatar-content h2 {font-size:22px;margin:0 0 16px}
.profile-avatar-scroll {max-height:340px;max-height:min(50vh,420px);overflow-y:auto;overscroll-behavior:contain;padding:4px 6px 12px}
.profile-avatar-scroll > label {margin-top:20px}
.profile-avatar-content .avatar-choices {grid-template-columns:repeat(3,minmax(0,1fr));max-width:none}
.profile-avatar-dialog {height:fit-content;min-height:0;margin:auto;inset:0;width:calc(100% - 28px);max-width:520px;max-height:calc(100dvh - 32px);padding:0;border:1px solid var(--line);border-radius:16px;background:var(--paper);color:var(--ink);overflow:auto}
.profile-avatar-dialog::backdrop {background:rgba(5,10,20,.65)}
.profile-avatar-content > .muted {font-size:13px;line-height:1.5;margin:16px 0}
@media(max-width:350px){.profile-avatar-content .avatar-choices{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Keep the date and clock on one baseline; narrow phones stack the whole clock. */
.session-clock {flex-shrink:0}
.session-time {white-space:nowrap}
@media(max-width:420px){.session-schedule{flex-direction:column;align-items:flex-start;gap:12px}}
