/* Issue #143: /register/ – on top of ../SessionPicker/duties.css (colors, cards, buttons, messages, dark mode); the conference theme
   (Theme.ashx) comes after it. No inline styles (CSP style-src 'self'). */
main.reg { max-width: 720px; }
.reg-head { margin: 0 0 18px; }
.reg-head .kicker { margin: 0 0 4px; font-size: .85rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); }
.reg-head .lang { margin: 4px 0 0; font-size: .9rem; }
.card.intro p { margin: 0 0 10px; }
.card.intro p:last-child { margin-bottom: 0; }
.card.small { padding: 12px 18px; }
.card.small summary { cursor: pointer; font-weight: 600; }
.card.small form.row { display: flex; flex-wrap: wrap; gap: 8px 10px; align-items: center; margin-top: 10px; }
.card.small form.row label { font-weight: 600; }
.card.small form.row input { flex: 1 1 200px; }
.card.danger { border-color: var(--err); }
.regform h2 { margin: 6px 0 12px; font-size: 1.15rem; }
.regform h2 ~ h2 { margin-top: 24px; }
fieldset.tickets { border: 0; padding: 0; margin: 0; display: grid; gap: 10px; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
label.ticket { display: grid; grid-template-columns: auto 1fr auto; gap: 2px 10px; align-items: center; border: 1px solid var(--line); border-radius: 10px;
               padding: 12px 14px; cursor: pointer; background: var(--soft); }
label.ticket:has(input:checked) { border-color: var(--accent); outline: 2px solid var(--accent); outline-offset: -1px; }
label.ticket input { grid-row: span 2; margin: 0; width: 18px; height: 18px; }
label.ticket .t-name { font-weight: 700; }
label.ticket .t-price { font-weight: 600; color: var(--ok); text-align: right; }
label.ticket .t-state { grid-column: 2 / 4; font-size: .88rem; color: var(--muted); }
label.ticket.full .t-state { color: var(--warn); font-weight: 600; }
label.ticket .t-desc { grid-column: 2 / 4; font-size: .92rem; }
.field { margin: 0 0 14px; }
.field label { display: block; font-weight: 600; margin: 0 0 5px; }
.field input[type=text], .field input[type=email], .field select, .field textarea, .card.small input {
    width: 100%; font: inherit; font-size: 1rem; color: var(--text); background: var(--bg); border: 1px solid var(--line); border-radius: 8px; padding: 9px 11px; }
.field textarea { resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus, .card.small input:focus { outline: 2px solid var(--accent); outline-offset: 1px; border-color: var(--accent); }
.field p.fixed { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
label.check { display: flex; gap: 8px; align-items: flex-start; font-weight: 400; margin: 8px 0; }
label.check input { margin-top: 3px; flex: none; width: 17px; height: 17px; }
.consents { margin: 18px 0 0; padding: 12px 0 0; border-top: 1px solid var(--line); }
.req { color: var(--err); font-weight: 700; }
.note { color: var(--muted); font-size: .88rem; margin: 6px 0 0; }
p.actions { margin: 18px 0 0; }
dl.facts { display: grid; grid-template-columns: max-content 1fr; gap: 6px 16px; margin: 0; }
dl.facts dt { color: var(--muted); }
dl.facts dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
form.signout { text-align: right; margin: 0 0 16px; }
/* Issue #189: add-ons and payments */
fieldset.addons { border: 1px solid var(--line); border-radius: 10px; padding: 8px 14px 10px; margin: 18px 0 0; }
fieldset.addons legend { font-weight: 700; padding: 0 6px; }
label.check.addon { flex-wrap: wrap; }
label.check.addon .t-name { font-weight: 600; }
label.check.addon .t-price { font-weight: 600; color: var(--ok); }
label.check.addon .t-state { font-size: .88rem; color: var(--muted); }
label.check.addon.full { opacity: .65; }
label.check.addon .t-desc { flex-basis: 100%; padding-left: 25px; font-size: .92rem; }
ul.addons-list { list-style: none; margin: 0 0 12px; padding: 0; }
ul.addons-list li { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: center; padding: 6px 0; border-bottom: 1px solid var(--line); }
ul.addons-list li .t-name { font-weight: 600; }
form.inline { display: inline; margin-left: auto; }
.regform h3 { margin: 10px 0 6px; font-size: 1rem; }
.hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 520px) {
    label.ticket { grid-template-columns: auto 1fr; }
    label.ticket .t-price { grid-column: 2; text-align: left; }
    label.ticket .t-state, label.ticket .t-desc { grid-column: 2; }
}
