/* Shared progressive signup; route copy follows native radio state without JS. */
.event-signup { --signup-border: var(--color-base-300); }
.event-signup h3,.event-signup legend { font-size:1.2rem; font-weight:700; margin-bottom:.7rem; }
.event-signup .signup-section { display:flex; flex-direction:column; gap:.75rem; min-width:0; border-top:1px solid var(--signup-border); padding-top:1rem; }
.event-signup legend { float:left; width:100%; padding:0; }
.signup-prices { display:flex; gap:.5rem; }
.signup-price { flex:1; min-width:0; padding:.75rem; border:1px solid var(--signup-border); border-radius:.6rem; display:flex; flex-direction:column; gap:.2rem; }
.signup-price strong { font-size:1.7rem; }
.signup-price small { font-size:.75rem; }
.signup-price.is-current { border-color:var(--color-primary); background:var(--color-primary); color:var(--color-primary-content); }
.signup-price.is-ended strong { text-decoration:line-through; opacity:.65; }
.signup-availability { margin-top:.8rem; font-size:.85rem; }
.signup-availability progress { display:block; width:100%; height:.4rem; margin:.5rem 0; accent-color:var(--color-primary); border:0; border-radius:1rem; overflow:hidden; }
.signup-availability progress::-webkit-progress-bar { background:var(--signup-border); }
.signup-availability progress::-webkit-progress-value { background:var(--color-primary); }
.signup-payment-choice { display:flex; align-items:flex-start; gap:.75rem; padding:1rem; border:1px solid var(--signup-border); border-radius:.6rem; cursor:pointer; }
.signup-payment-choice:has(input:checked) { border-color:var(--color-primary); outline:1px solid var(--color-primary); }
.signup-payment-choice input { margin-top:.3rem; accent-color:var(--color-primary); }
.signup-payment-choice small { display:block; margin-top:.3rem; font-size:.85rem; line-height:1.4; }
.signup-option { padding:.65rem 0; }
.signup-option p { font-size:.8rem; line-height:1.4; margin:.3rem 0 0 2.1rem; opacity:.8; }
.signup-check { display:flex; gap:.75rem; align-items:flex-start; cursor:pointer; }
.signup-check input { flex-shrink:0; }
.signup-required,.signup-optional { display:block; font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; margin-bottom:.4rem; }
.signup-total { display:flex; align-items:center; justify-content:space-between; padding:1rem; border-radius:.6rem; background:var(--color-base-200); color:var(--color-base-content); }
.signup-total strong { font-size:1.5rem; }
.event-signup:has(input[name=payment_route][value=online]:checked) .signup-direct-only { display:none; }
.event-signup:not(:has(input[name=payment_route][value=online]:checked)) .signup-online-only { display:none; }
.event-signup summary { cursor:pointer; font-size:.85rem; }
@media(max-width:380px) { .signup-price { padding:.5rem; } .signup-price strong { font-size:1.4rem; } }
