.registration-shell { width: min(100% - 2rem, 58rem); margin-inline: auto; }
.registration-header { background: var(--color-ink); border-bottom: 4px solid var(--color-highlight); }
.registration-header > div { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding-block: 1.25rem; }
.registration-header .brand { width: min(17rem, 55%); }
.registration-header a { color: var(--color-paper); font-weight: 700; }
.registration-header :focus-visible { outline-color: var(--color-highlight); }
.registration-intro { padding-block: 3rem 1rem; max-width: 46rem; }
.registration-intro h1 { font-size: clamp(2.25rem, 5vw, 3.8rem); margin-block: .5rem 1rem; }
.registration-intro > p { max-width: 44rem; }
.registration-help { font-size: .95rem; }
.registration-notice, .registration-errors { padding: 1.25rem; margin-block: 1rem; border-left: 4px solid var(--color-highlight); background: #fff2b8; }
.registration-errors { border-color: var(--color-accent-strong); background: #fff0f1; }
.registration-errors h2 { font-size: 1.25rem; }
.registration-errors ul { margin-bottom: 0; }
.registration-form { margin-block: 1.5rem 3rem; }
.registration-form fieldset { border: 0; padding: 1.5rem 0 2.5rem; margin: 0; min-width: 0; }
.registration-form legend { font-size: 1.4rem; font-weight: 850; padding-right: 1rem; }
.registration-fields, .registration-classes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 2.5rem; }
.registration-field--wide { grid-column: 1 / -1; }
.registration-form label { display: block; font-weight: 750; }
.registration-form input:not([type=hidden]), .registration-form select { width: 100%; min-height: 3rem; padding: .7rem; border: 1px solid #807b88; border-radius: var(--radius-sm); background: white; color: var(--color-ink); font: inherit; }
.registration-form input[aria-invalid=true], .registration-form select[aria-invalid=true] { border: 2px solid #a11b31; }
.registration-hint { font-size: .95rem; color: var(--color-ink-soft); margin-block: .4rem 1rem; }
.registration-field-error { color: #a11b31; font-size: .95rem; margin-block: .3rem; }
.registration-field-error:empty { display: none; }
[data-club-picker] { margin-top: 1rem; }
.registration-class-group h2 { font-size: 1.2rem; margin-block: 0 .75rem; }
.registration-class-row { display: grid; grid-template-columns: 1fr 6rem; align-items: center; gap: 1rem; padding-block: .65rem; border-bottom: 1px solid var(--color-border); }
.registration-class-row label span { display: block; font-size: .85rem; font-weight: 400; color: var(--color-ink-soft); }
.registration-class-row:has(select[data-selected=true]) { background: #e3f3e7; }
.registration-summary__details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 2.5rem; margin: 0; }
.registration-summary__details div { min-width: 0; }
.registration-summary__details dt { margin-bottom: .2rem; color: var(--color-ink-soft); font-size: .8rem; font-weight: 700; text-transform: uppercase; }
.registration-summary__details dd { margin: 0; font-weight: 700; }
.registration-summary__teams { margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid var(--color-border); }
.registration-summary__teams h2 { margin-bottom: .75rem; font-size: 1rem; }
.registration-summary__team-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 2rem; }
.registration-summary__team-groups h3 { margin: 0 0 .75rem; font-size: 1rem; }
.registration-summary__teams ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; margin: 0; padding: 0; list-style: none; }
.registration-summary__teams li { display: flex; justify-content: space-between; gap: .75rem; padding: .65rem .75rem; background: #f5f3f6; color: var(--color-ink-soft); }
.registration-shell :is(button, .button):not(:disabled) { cursor: pointer; }
.registration-form .button:disabled { opacity: .65; cursor: not-allowed; }
.registration-receipt { padding-block: 2rem 4rem; overflow-wrap: anywhere; }
.registration-footer { display: flex; gap: 1.5rem; flex-wrap: wrap; border-top: 1px solid var(--color-border); padding-block: 1.5rem; font-size: .9rem; }
.registration-duplicate-dialog { width: min(52rem, calc(100% - 2rem)); max-height: calc(100% - 2rem); padding: 0; border: 0; border-radius: var(--radius-sm); color: var(--color-ink); box-shadow: 0 1rem 4rem rgb(18 14 24 / .35); }
.registration-duplicate-dialog::backdrop { background: rgb(18 14 24 / .68); }
.registration-duplicate-dialog__body { padding: clamp(1.25rem, 4vw, 2.25rem); }
.registration-duplicate-dialog__body h2 { margin-block: .35rem 1rem; }
.registration-duplicate-match { padding: 1rem; margin-block: .75rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: #fff8d8; }
.registration-duplicate-match label { display: grid; grid-template-columns: auto 1fr; gap: .75rem; align-items: start; font-weight: 750; }
.registration-duplicate-match input { width: 1.25rem; height: 1.25rem; margin-top: .15rem; }
.registration-duplicate-match p { margin: .45rem 0 0 2rem; font-size: .95rem; }
.registration-duplicate-dialog__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }
@media (max-width: 38rem) {
    .registration-fields, .registration-classes { grid-template-columns: 1fr; }
    .registration-intro { padding-top: 2rem; }
    .registration-header > div { gap: 1rem; }
    .registration-header a:last-child { font-size: .8rem; }
    .registration-form legend { font-size: 1.2rem; }
    .registration-summary__details { grid-template-columns: 1fr; }
    .registration-summary__team-groups { grid-template-columns: 1fr; gap: 1.25rem; }
    .registration-summary__teams ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .registration-summary__header { align-items: start; flex-direction: column; }
}

/* Focused registration flow, using the public site's spacing and profile. */
body:has(.registration-header--form) { letter-spacing: 0; }
body:has(.registration-header--form) :is(h1,h2,h3,legend,label,button,.button,.section-heading__kicker) { letter-spacing: 0; }
.registration-header--form { border: 0; }
.registration-header--form > .site-shell { min-height: 5rem; padding-block: .75rem; width: min(calc(100% - 4rem), var(--content-width)); }
.registration-header--form .brand { width: auto; flex-shrink: 0; }
.registration-header--form .brand img { width: clamp(11rem, 18vw, 14rem); filter: brightness(0) invert(1); }
.registration-exit { position: relative; color: var(--color-paper); }
.registration-exit > summary { cursor: pointer; padding: .65rem .9rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); font-weight: 700; list-style: none; }
.registration-exit > summary::-webkit-details-marker { display: none; }
.registration-exit__panel { position: absolute; right: 0; z-index: 20; top: calc(100% + .75rem); width: min(24rem, calc(100vw - 2rem)); padding: 1.5rem; background: var(--color-paper); color: var(--color-ink); border: 1px solid var(--color-border); border-radius: 1.5rem var(--radius-sm) 1.5rem var(--radius-sm); }
.registration-exit__panel h2 { font: 800 1.5rem/1.15 var(--font-profile); }
.registration-exit__panel .button { display: flex; width: 100%; margin-top: .75rem; justify-content: center; }
.registration-exit__panel .button[hidden] { display: none; }
.registration-header .registration-exit__panel a { color: var(--color-ink); }
.registration-header .registration-exit__panel :focus-visible { outline-color: var(--color-focus); }
.registration-form legend { font-family: var(--font-profile); }
.registration-form fieldset { padding: 1.5rem 0 0; margin-bottom: 3rem; }
.registration-form .registration-field > label { margin-bottom: .5rem; }
.registration-form [data-club-picker] > label { margin-bottom: .5rem; }
.registration-class-row { grid-template-columns: minmax(0, 1fr) 6rem; padding: 1rem .75rem; gap: 1.25rem; }
.registration-class-row label span { margin-top: .35rem; }
.registration-class-group h2 { margin-bottom: 1rem; font-family: var(--font-profile); font-size: 1.4rem; }
@media (max-width: 38rem) {
    .registration-header--form > .site-shell { width: calc(100% - 2rem); min-height: 4.5rem; gap: .75rem; }
    .registration-header--form .brand img { width: 8rem; }
    .registration-exit > summary { font-size: .8rem; padding: .6rem; }
    .registration-classes { gap: 2rem; }
}

.registration-form legend { padding: 0; font-size: clamp(1.5rem, 3vw, 1.8rem); font-weight: 800; line-height: 1.2; }
.registration-intro { padding-bottom: .5rem; }
.registration-form { margin-top: 2rem; }
.registration-fields { row-gap: 1.5rem; }
[data-registration-region], [data-club-fallback] { margin-top: 1.25rem; }
[data-club-picker] { margin-top: 1.25rem; }
.registration-form [data-registration-region] > label { margin-bottom: .5rem; }
.registration-form fieldset > .registration-hint { margin-top: 0; }
.registration-form fieldset:last-child { margin-bottom: 0; }
.registration-summary__details dt { text-transform: none; }
@media (max-width: 38rem) {
    .registration-form fieldset { margin-bottom: 2.5rem; }
    .registration-fields { row-gap: 1.25rem; }
}
.registration-steps { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; padding: 0; margin: 0 0 2.5rem; list-style: none; font-size: .9rem; color: var(--color-ink-soft); }
.registration-steps li { padding-block: .5rem; border-bottom: 2px solid transparent; }
.registration-steps [aria-current="step"] { color: var(--color-ink); border-color: var(--color-ink); font-weight: 700; }
.registration-form [data-registration-step][hidden] { display: none; }
.registration-step-actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; }
.registration-step-actions .button { min-width: 8rem; }
@media (max-width: 38rem) { .registration-steps { gap: .35rem 1rem; font-size: .8rem; margin-bottom: 2rem; } }

.registration-summary { margin-bottom: 2.5rem; padding: .5rem 0; background: transparent; border: 0; box-shadow: none; overflow-wrap: anywhere; }
.registration-summary__details { gap: 2rem 3rem; }
.registration-summary__teams { margin-top: 2.75rem; padding-top: 2rem; }
.registration-summary__teams h2 { font-family: var(--font-profile); font-size: 1.35rem; margin-bottom: 1rem; }
.registration-summary__teams li { border-radius: var(--radius-sm); }
.registration-summary__teams .registration-summary__class--active { background: #e3f3e7; color: #174f29; }
.registration-request-note { margin-block: 2.5rem 2rem; padding: 1.5rem 1.75rem; background: #fff2b8; border-radius: 1.5rem var(--radius-sm) 1.5rem var(--radius-sm); }
.registration-request-note h2 { font: 800 1.35rem/1.2 var(--font-profile); margin: 0 0 .65rem; }
.registration-request-note p { margin: 0; }
.registration-terms-note { margin-block: 2rem 2.5rem; padding: 1.5rem 1.75rem; border: 0; border-radius: var(--radius-sm); background: var(--color-surface-tint); }
.registration-terms-note h2 { margin: 0 0 .75rem; font: 800 1.2rem/1.2 var(--font-profile); }
.registration-terms-note p { margin: 0; }
.registration-terms-note p + p { margin-top: .65rem; color: var(--color-ink-soft); }
@media (max-width: 38rem) {
    .registration-summary { margin-bottom: 2rem; }
    .registration-summary__details { gap: 1.5rem; }
    .registration-summary__teams { margin-top: 2.25rem; padding-top: 1.75rem; }
    .registration-request-note, .registration-terms-note { padding: 1.25rem; }
}
