.registration-planner {
  margin-top: 2rem;
  padding: clamp(1.1rem, 3vw, 2rem);
  border: 1px solid var(--border);
  border-radius: 24px;
  background: var(--mist);
}
.registration-planner h3 { margin-bottom: .4rem; }
.registration-planner .planner-intro { color: var(--muted); max-width: 70ch; }
.planner-layout { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr); gap: clamp(1rem, 3vw, 2rem); margin-top: 1.25rem; align-items: start; }
.planner-layout[hidden] { display: none; }
.planner-options { display: grid; gap: .85rem; min-width: 0; }
.planner-option { display: grid; gap: .3rem; padding: .8rem 1rem; border: 1px solid var(--border); border-radius: 14px; background: color-mix(in srgb, var(--mist) 72%, var(--sky)); }
.planner-option[hidden] { display: none; }
.planner-option label, .planner-option .option-title { font-weight: 700; color: var(--ink); }
.planner-option small { color: var(--muted); line-height: 1.4; }
.planner-option select, .planner-option input[type="number"] { width: 100%; min-height: 42px; border: 1px solid var(--border); border-radius: 8px; padding: .4rem .65rem; color: var(--ink); background: var(--mist); font: inherit; }
.planner-option input[type="number"] { max-width: 9rem; }
.planner-option-check { grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: .3rem .75rem; }
.planner-option-check input { width: 1.25rem; height: 1.25rem; margin: .2rem 0 0; accent-color: var(--burgundy); }
.planner-option-check small { grid-column: 2; }
.planner-summary { border: 1px solid var(--border); border-radius: 16px; padding: 1rem; background: color-mix(in srgb, var(--mist) 45%, var(--sky)); }
.planner-summary h4 { margin-bottom: .2rem; }
.planner-period { color: var(--muted); font-size: .9rem; }
.planner-summary ul { padding: 0; margin: 1rem 0; list-style: none; }
.planner-summary li { display: flex; justify-content: space-between; gap: .7rem; padding: .45rem 0; border-bottom: 1px solid var(--border); }
.planner-summary li strong { text-align: right; white-space: nowrap; }
.planner-total { display: flex; justify-content: space-between; align-items: baseline; gap: .6rem; padding-top: .45rem; font-weight: 700; }
.planner-total strong { font-size: 1.5rem; color: var(--ink); }
.planner-notice { color: var(--muted); font-size: .88rem; margin: .5rem 0 1rem; }
.planner-payments { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--border); }
.planner-payments h5 { margin-bottom: .35rem; color: var(--ink); }
.planner-payments p { font-size: .88rem; color: var(--muted); }
.planner-payments ul { margin: .5rem 0 0 1.2rem; padding: 0; list-style: disc; font-size: .88rem; color: var(--muted); }
.planner-payments li { display: list-item; padding: .1rem 0; border: 0; }
.planner-summary .button-disabled { width: 100%; justify-content: center; margin-top: 1rem; }
[data-registration-closed][hidden] { display: none; }
.registration-live { margin-top: 1.5rem; padding: clamp(1rem, 2.5vw, 1.5rem); border: 1px solid var(--border); border-radius: 16px; background: color-mix(in srgb, var(--mist) 45%, var(--sky)); }
.registration-live[hidden], .registration-form [hidden] { display: none; }
.registration-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.25rem; }
.registration-form > h5, .registration-form > fieldset, .registration-form > .registration-companions, .registration-form > .registration-consent, .registration-form > .registration-legal, .registration-form > [data-turnstile], .registration-form > .registration-feedback, .registration-form > .button { grid-column: 1 / -1; }
.registration-form h5 { color: var(--ink); margin: 0; }
.registration-form > label:not(.registration-consent) { display: grid; gap: .25rem; font-weight: 650; color: var(--ink); }
.registration-form input:not([type="radio"]):not([type="checkbox"]) { width: 100%; min-width: 0; min-height: 42px; border: 1px solid var(--border); border-radius: 8px; padding: .45rem .65rem; color: var(--ink); background: var(--mist); font: inherit; }
.registration-companions { display: grid; gap: .65rem; }
.registration-companion { display: grid; gap: .5rem; padding: .75rem; border: 1px solid var(--border); border-radius: 10px; }
.registration-companion > label:first-child { display: grid; gap: .25rem; font-weight: 650; color: var(--ink); }
.registration-companion-gala { display: flex; gap: .5rem; align-items: flex-start; color: var(--ink); }
.registration-form fieldset { margin: 0; padding: .75rem; border: 1px solid var(--border); border-radius: 10px; }
.registration-form legend { padding: 0 .35rem; color: var(--ink); font-weight: 700; }
.registration-presenting-choices { display: flex; flex-wrap: wrap; gap: .65rem 1.5rem; }
.registration-presenting-choices label { display: flex; gap: .5rem; align-items: center; color: var(--ink); }
.registration-paper-ids { display: grid; gap: .3rem; margin-top: .75rem; color: var(--ink); font-weight: 650; }
.registration-paper-ids small { font-weight: 400; color: var(--muted); }
.registration-form [data-payment-methods] { display: grid; gap: .4rem; }
.registration-form [data-payment-methods] label, .registration-consent { display: flex; gap: .5rem; align-items: flex-start; color: var(--ink); }
.registration-form input[type="radio"], .registration-form input[type="checkbox"] { flex: none; width: 1.1rem; height: 1.1rem; margin-top: .2rem; accent-color: var(--burgundy); }
.registration-legal, .registration-feedback { margin: 0; font-size: .88rem; line-height: 1.45; }
.registration-feedback { color: var(--ink); white-space: pre-line; overflow-wrap: anywhere; }
.registration-feedback:not(:empty) { padding: 1rem; border-left: 3px solid var(--border); background: var(--mist); border-radius: 8px; }
.registration-demo-outcome { grid-column: 1 / -1; }
.registration-demo-outcome select { width: 100%; min-width: 0; min-height: 44px; padding: .5rem; font: inherit; color: var(--ink); background: var(--mist); border: 1px solid var(--border); border-radius: 8px; }
.registration-form .button { width: 100%; justify-content: center; }
.registration-form .button:disabled { opacity: .58; cursor: not-allowed; }
@media (max-width: 760px) { .planner-layout, .registration-form { grid-template-columns: 1fr; } }
.sponsorship-section { padding-bottom: 0; }
[data-sponsor-panel][hidden] { display: none; }
.sponsor-form .sponsor-wide { grid-column: 1 / -1; }
.registration-form.sponsor-form > [hidden] { display: none; }
.sponsor-form select, .sponsor-form textarea { width: 100%; min-width: 0; padding: .6rem; border: 1px solid var(--border); border-radius: 8px; background: var(--mist); color: var(--ink); font: inherit; }
.sponsor-form textarea { resize: vertical; min-height: 110px; }
.sponsor-quote { padding: 1rem; border: 1px solid var(--border); border-radius: 12px; overflow-wrap: anywhere; }
.sponsor-quote strong { color: var(--ink); font-size: 1.35rem; }
.sponsor-quote ul { margin-bottom: 0; }
.sponsor-demo { color: var(--muted); font-weight: 600; }
