.waiver-page { padding-bottom: 0; background:#07090d; color:#f6f8fa; }
.review-header { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1rem; padding:1.2rem clamp(1rem,5vw,5rem); border-bottom:1px solid #2b3541; }
.review-header > a:last-child { color:#b7dbef; min-height:44px; display:flex; align-items:center; }
.review-main { max-width:70rem; margin:auto; padding:clamp(2rem,6vw,5rem) clamp(1rem,5vw,3rem); }
.review-main h1 { font-size:clamp(2.8rem,7vw,5.5rem); line-height:1; letter-spacing:-.025em; }
.review-main h1 span { color:#079ffc; }
.intro { font-size:1.2rem; color:#c7d0d8; margin:1.5rem 0; }
.draft-notice { padding:1.1rem 1.3rem; border:1px solid #536270; border-left:4px solid #7bcaff; background:#121c27; line-height:1.6; }
.draft-notice p { margin:.4rem 0 0; color:#c7d0d8; }
.plan-options { display:flex; flex-wrap:wrap; gap:1rem; margin:1.5rem 0 3rem; }
.plan-options .button { white-space:normal; min-height:3.7rem; font-size:1rem; cursor:pointer; }
.waiver-page[data-form-kind="waiver"] .plan-options .button { min-height:4rem; padding:1rem 1.4rem; border-width:2px; border-radius:4px; font-size:1.05rem; font-weight:850; line-height:1.4; }
.waiver-page[data-form-kind="waiver"] .plan-options .button-outline { background:#101d29; border-color:#8dccf7; color:#fff; }
.waiver-page[data-form-kind="waiver"] .plan-options .button:disabled { opacity:1; cursor:not-allowed; transform:none; }
.waiver-page[data-form-kind="waiver"] .plan-options .button-blue:disabled { background:#143f5d; border-color:#477ca0; color:#fff; }
.waiver-page[data-form-kind="waiver"] .plan-options .button-outline:disabled { background:#101d29; border-color:#8195a8; color:#fff; }
.owner-review { border-top:1px solid #2b3541; padding-top:2rem; }
.owner-review h2 { font-size:1.9rem; line-height:1.2; }
.owner-review h3 { font-size:1.25rem; margin:1.6rem 0 .5rem; }
.owner-review p,.owner-review li { color:#c7d0d8; line-height:1.7; }
.owner-review ul { padding-left:1.5rem; }
.owner-review details { border:1px solid #3b4b59; padding:1rem; margin:1.5rem 0; }
.owner-review summary { cursor:pointer; padding:.4rem 0; font-size:1rem; font-weight:700; color:#8bd2ff; }
.comparison { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem; }
.review-note { font-size:.9rem; }
#registration-dialog { padding:0; border:1px solid #3b4b59; border-radius:12px; background:#0b1119; color:#f6f8fa; width:min(48rem,calc(100% - 2rem)); max-width:none; max-height:calc(100dvh - 2rem); margin:auto; overflow:auto; overscroll-behavior:contain; }
#registration-dialog::backdrop { background:rgba(0,0,0,.82); }
.dialog-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.25rem 1.5rem; border-bottom:1px solid #334151; }
.dialog-header .section-label { margin:0 0 .35rem; font-size:.875rem; }
.dialog-header h2 { font-size:clamp(1.5rem,5vw,2rem); line-height:1.1; }
#close-dialog { flex:none; width:44px; height:44px; border:1px solid #536577; border-radius:4px; color:white; background:#1a2532; font-size:1.2rem; cursor:pointer; }
.dialog-body { padding:1.5rem; }
.draft-tag { color:#addcff; background:#13293b; padding:.65rem .85rem; margin:0; font-size:.875rem; }
.step-list { display:flex; flex-wrap:wrap; gap:.5rem 1rem; padding:0; list-style:none; border-bottom:1px solid #334151; margin:1.25rem 0 1.5rem; padding-bottom:1rem; font-size:.9rem; color:#a9b6c5; }
.step-list [aria-current] { color:#fff; font-weight:800; }
#registration-form fieldset { min-width:0; border:0; padding:0; margin:0; }
#registration-form legend { font-weight:800; font-size:1.5rem; margin-bottom:1rem; }
#registration-form [hidden],#registration-dialog [hidden] { display:none !important; }
.field-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.2rem; margin:1rem 0; }
#registration-form label:not(.check) { display:grid; gap:.5rem; color:#dce7f1; font-size:1rem; font-weight:650; }
#registration-form input:not([type=checkbox]):not([type=radio]) { width:100%; min-width:0; border:1px solid #637587; border-radius:4px; color:#fff; background:#070d14; font:inherit; font-weight:400; font-size:1rem; padding:.8rem; min-height:48px; }
#registration-form input[type=date] { color-scheme:dark; }
#registration-form input:focus-visible, #registration-dialog button:focus-visible, .owner-review summary:focus-visible { outline:3px solid #8dd4ff; outline-offset:3px; }
.field-help { font-size:.9rem; color:#b9c6d3; line-height:1.6; }
.plan-summary { background:#142332; color:#e4f4ff; border-left:3px solid #079ffc; padding:.9rem; line-height:1.6; }
#registration-form #guardian-fields { border:1px solid #4b5b6b; padding:1rem; margin:1.5rem 0; }
#registration-form #guardian-fields legend { font-size:1.1rem; padding:0 .3rem; }
.check { display:flex; align-items:flex-start; gap:.75rem; margin:1rem 0; color:#e1eaf3; font-size:1rem; line-height:1.6; padding:.3rem 0; cursor:pointer; }
.check input { flex:none; width:22px; height:22px; margin:.15rem 0 0; accent-color:#069cff; }
.agreement { padding:1.3rem 0; border-bottom:1px solid #354453; }
.agreement:first-of-type { padding-top:0; }
.agreement h3 { font-size:1.25rem; line-height:1.35; }
.agreement h3 span { font-size:1rem; color:#b9c6d3; }
.legal-copy { color:#cfdae4; font-size:1rem; line-height:1.75; overflow-wrap:anywhere; }
.legal-copy p { margin:1rem 0; }
.initials { max-width:11rem; }
.proposed-label { background:#13293b; color:#addcff; font-size:.9rem; padding:.6rem; }
.details-summary { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:.6rem 1rem; background:#142332; padding:1rem; margin:0 0 1.5rem; overflow-wrap:anywhere; }
.details-summary dt { color:#b9c6d3; }.details-summary dd { margin:0; }
#registration-form .signature-options { margin:1.5rem 0 1rem; }
#registration-form .signature-options legend { font-size:1rem; margin:0; }
#signature-pad { display:block; width:100%; aspect-ratio:10/3; background:#fff; border:2px solid #7996ae; border-radius:4px; touch-action:none; }
.small-button { min-height:44px; border:1px solid #637587; background:#142332; color:#fff; padding:.6rem 1rem; font:inherit; cursor:pointer; margin-top:.6rem; }
.form-actions { display:flex; flex-wrap:wrap; gap:1rem; justify-content:space-between; padding-top:1.5rem; margin-top:1rem; border-top:1px solid #334151; }
.form-actions .button { font-size:1rem; white-space:normal; }
.form-error { color:#ffd0c9; background:#3a1d1d; border:1px solid #a87870; padding:.8rem; }
#preview-finished h3 { font-size:1.6rem; line-height:1.3; }#preview-finished p { color:#c7d0d8; line-height:1.7; }
@media(max-width:600px) { .comparison,.field-grid { grid-template-columns:minmax(0,1fr); }.plan-options .button { width:100%; }#registration-dialog { width:100%; max-height:100dvh; height:100dvh; border-radius:0; }.dialog-body,.dialog-header { padding:1.15rem; }.form-actions .button { flex:1; padding:1rem; }.details-summary { grid-template-columns:minmax(0,1fr); gap:.25rem; }.details-summary dd { margin-bottom:.75rem; } }

#registration-form select, #cancellation-form select, #cancellation-form input, #cancellation-form textarea { box-sizing:border-box; width:100%; min-height:48px; border:1px solid #637587; border-radius:4px; color:#fff; background:#070d14; font:inherit; font-size:1rem; padding:.8rem; }
#cancellation-form label { display:grid; gap:.5rem; margin:1rem 0; color:#dce7f1; }
#cancellation-form :focus-visible { outline:3px solid #8dd4ff; outline-offset:3px; }
.cancellation-draft { max-width:42rem; }
.intake-trap{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}[data-open-plan]:disabled{opacity:.5;cursor:wait}#registration-dialog{max-width:min(850px,calc(100vw - 24px))}#registration-dialog .button{white-space:normal}#submission-receipt{overflow-wrap:anywhere}

/* Compact membership signup; the separate training waiver keeps its layout. */
[data-form-kind="membership"] .full-terms,
[data-form-kind="membership"] .registration-review,
[data-form-kind="membership"] .registration-optional { margin:.8rem 0; }
[data-form-kind="membership"] details > summary { width:fit-content; min-height:44px; padding:.6rem 0; color:#8dd4ff; cursor:pointer; font-size:.95rem; font-weight:650; }
[data-form-kind="membership"] .full-terms .legal-copy { padding:.5rem 1rem; border-left:2px solid #506579; background:#101923; }
[data-form-kind="membership"] .term-summary { margin:.5rem 0; color:#d1dce6; line-height:1.6; }
[data-form-kind="membership"] .agreement h3,
[data-form-kind="membership"] .membership-signing h3 { margin:0 0 .6rem; font-size:1.25rem; }
[data-form-kind="membership"] .agreement-confirmation { display:grid; grid-template-columns:minmax(0,1fr) 8rem; align-items:end; gap:1rem; margin:.7rem 0; }
[data-form-kind="membership"] .agreement-confirmation .check { margin:0; }
[data-form-kind="membership"] .agreement-confirmation .initials { font-size:.9rem; }
[data-form-kind="membership"] .membership-signing { padding-top:1.5rem; }
[data-form-kind="membership"] .signature-options { display:flex; flex-wrap:wrap; gap:0 1.5rem; }
[data-form-kind="membership"] .signature-options .check { margin:.4rem 0; }
@media(max-width:600px){[data-form-kind="membership"] .agreement-confirmation{grid-template-columns:minmax(0,1fr);gap:.6rem}[data-form-kind="membership"] .agreement-confirmation .initials{max-width:8rem}}
