#campDialog { width: min(760px, 94vw); max-height: 92dvh; overflow-y: auto; }
#campForm [hidden] { display: none !important; }
#campForm, #campForm fieldset, #campForm label, #campForm .form-row { min-width: 0; max-width: 100%; }
#campForm { width: 100%; }
#campForm fieldset { margin-inline: 0; }
#campForm input, #campForm select { min-width: 0; width: 100%; }
#campForm input[type="checkbox"] { width: auto; }
#campForm legend { max-width: 100%; white-space: normal; }
.payment-summary { background: #eef2f8; border: 1px solid #b8c5dd; padding: 22px; border-radius: 12px; margin: 20px 0; color: #0a205a; overflow-wrap: anywhere; }
.payment-summary h3 { font-size: clamp(22px, 4vw, 30px); margin: 16px 0; }
.payment-summary p { margin: 14px 0; line-height: 1.65; }
.bank-details { font-family: 'DM Mono', monospace; font-size: 15px; overflow-wrap: anywhere; user-select: all; }
.additional-person { padding: 16px; border: 1px solid #c7cfdb; border-radius: 8px; margin-top: 12px; }
.additional-person label { display: grid; gap: 8px; margin-bottom: 12px; }
.transfer-instructions { border-top: 1px solid #b8c5dd; margin-top: 20px; padding-top: 4px; }
.transfer-reference { display: block; padding: 12px; border: 1px solid #b8c5dd; border-radius: 6px; background: #fff; overflow-wrap: anywhere; user-select: all; }
.currency-choice { display: grid; gap: 10px; padding: 18px; border: 2px solid #b59b13; border-radius: 10px; background: #fffbea; color: #0a205a; margin: 16px 0; font-weight: 700; }
.currency-choice select { width: 100%; min-height: 48px; font: inherit; background: #fff; color: #0a205a; border: 1px solid #7788a5; border-radius: 6px; padding: 10px; }
.currency-choice small { font-size: 14px; line-height: 1.5; font-weight: 400; }
.reservation-notice { border-left: 3px solid #b59b13; padding: 12px 16px; background: #fffbea; color: #0a205a; font-weight: 500; }
@media(max-width: 540px) { #campDialog { padding: 24px 16px; } #campForm .form-row { grid-template-columns: 1fr; } .payment-summary { padding: 16px; } }
