/* Shared with the existing four-theme M3E surfaces. */
.registration-section { min-width:0; margin-block:20px; padding:clamp(16px,3vw,26px); color:var(--md-on-surface); background:var(--md-surface-container); border-radius:32px; }
.registration-section h2,.registration-inline h3 { margin:0 0 12px; font-size:20px; line-height:1.4; }
.registration-section p,.registration-inline p { font-size:14px; line-height:1.65; overflow-wrap:anywhere; color:var(--md-muted); }
.registration-section label { display:grid; gap:8px; min-width:0; font-size:14px; }
.registration-section label .site-date-field { flex:none; width:100%; min-width:0; height:48px; }
.registration-section input,.registration-section select,.registration-section button { min-height:48px; max-width:100%; box-sizing:border-box; border:1px solid var(--md-outline); border-radius:14px; padding:10px 14px; background:var(--md-surface); color:var(--md-on-surface); font:inherit; font-size:16px; }
.registration-section button,.registration-inline button,.registration-inline a { cursor:pointer; min-height:48px; padding:12px 18px; border-radius:24px; border:1px solid var(--md-outline); font:inherit; font-size:14px; background:var(--md-surface); color:var(--md-primary); }
.registration-section button[type=submit],#registrationConfirm { background:var(--md-primary); color:var(--md-on-primary); border-color:transparent; }
.registration-section button:disabled { opacity:.55; cursor:default; }
.registration-section :is(button,input,select,summary):focus-visible,.registration-inline :is(button,a):focus-visible { outline:3px solid var(--md-primary); outline-offset:3px; }
.registration-section input[type=file] { width:100%; font-size:14px; }
.registration-section input[type=file]::file-selector-button { min-height:40px; border:0; border-radius:20px; padding:8px 16px; margin-right:12px; font:inherit; background:var(--md-primary-container); color:var(--md-on-primary-container); }
.registration-form { display:flex; align-items:end; flex-wrap:wrap; gap:14px; }
.registration-form label { flex:1 1 160px; min-width:0; }
.registration-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin:18px 0; }
.registration-facts div { min-width:0; }
.registration-facts dt { font-size:14px; color:var(--md-muted); }
.registration-facts dd { margin:6px 0 0; font-size:20px; font-weight:650; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.registration-facts small { display:block; font-size:14px; font-weight:400; margin-top:5px; }
.registration-section summary { display:flex; gap:12px; justify-content:space-between; align-items:center; min-height:48px; padding:12px 4px; cursor:pointer; font-size:16px; }
.registration-section summary::before { content:'＋'; color:var(--md-primary); }
.registration-section details[open]>summary::before { content:'−'; }
.registration-section summary strong { margin-right:auto; }
.registration-section summary span { font-size:14px; color:var(--md-muted); }
.registration-section details { border-top:1px solid var(--md-outline); }
.registration-person { margin-left:12px; }
.registration-table { max-width:100%; overflow:auto; }
.registration-table table { width:100%; border-collapse:collapse; font-size:14px; }
.registration-table :is(th,td) { text-align:left; padding:12px; white-space:nowrap; border-bottom:1px solid var(--md-outline); }
.registration-table caption { text-align:left; font-size:14px; padding:8px 0; }
.registration-check { display:flex!important; align-items:center; min-height:48px; margin:14px 0; }
.registration-check input { min-height:24px; width:24px; accent-color:var(--md-primary); }
.registration-actions { display:flex; gap:12px; flex-wrap:wrap; }
.registration-inline { border-top:1px solid var(--md-outline); padding-top:20px; margin-top:20px; min-width:0; }
.registration-inline a { display:inline-flex; align-items:center; text-decoration:none; }
.registration-inline .registration-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
[data-phase=error]#registrationImportStatus { color:var(--md-error); }
@media(max-width:599px) { .registration-facts { grid-template-columns:repeat(2,minmax(0,1fr)); } .registration-section summary { align-items:flex-start; flex-wrap:wrap; } .registration-section summary span { width:100%; padding-left:24px; } .registration-person { margin-left:0; } }

.registration-section summary strong small { display:block; margin-top:6px; font-size:13px; color:var(--md-muted); font-weight:400; }
.registration-section summary span b { color:var(--md-primary); font-size:17px; }
.registration-ticket-list { list-style:none; padding:0 0 12px; }
.registration-ticket-list li { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; padding:14px 8px; border-top:1px solid var(--md-outline); font-size:14px; }
#registrationView { width:min(100%,320px); margin-bottom:16px; }
#registrationRoutes { margin-top:14px; }
#registrationRoutes>details { margin:6px 0; padding:4px 20px; border:0; border-radius:12px; background:var(--m3e-surface); }
#registrationRoutes>details:first-child { border-top-left-radius:28px; border-top-right-radius:28px; }
#registrationRoutes>details:last-child { border-bottom-left-radius:28px; border-bottom-right-radius:28px; }
#registrationRoutes>details[open] { padding-bottom:16px; }
#registrationRoutes>details>summary::before { display:none; }
#registrationRoutes>details>summary>.registration-toggle-icon { width:24px; padding:0; color:var(--md-primary); font-size:24px; line-height:1; }
#registrationRoutes>details[open]>summary>.registration-toggle-icon { transform:rotate(180deg); }
.registration-trip-list { list-style:none; margin:12px 0 20px; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr)); gap:12px; }
.registration-trip-list>li { min-width:0; padding:18px 20px; border-radius:24px; background:var(--md-surface-container); }
.registration-trip-list header { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 16px; align-items:baseline; }
.registration-trip-list header strong { font-size:16px; line-height:1.5; overflow-wrap:anywhere; }
.registration-trip-time { font-size:13px; color:var(--md-muted); }
.registration-trip-list dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:16px 0; }
.registration-trip-list dt { font-size:13px; color:var(--md-muted); }
.registration-trip-list dd { margin:6px 0 0; font-size:16px; font-variant-numeric:tabular-nums; line-height:1.5; }
.registration-trip-list dd strong { font-size:24px; color:var(--md-primary); }
.registration-trip-quality { display:flex; flex-wrap:wrap; gap:6px 20px; padding-top:12px; border-top:1px solid var(--md-surface-high); font-size:13px; color:var(--md-muted); }
.registration-trip-quality b { margin-left:6px; color:var(--md-on-surface); font-weight:500; }
@media(max-width:599px) {
 .registration-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
 .registration-form>button { grid-column:1/-1; }
 .registration-section summary { gap:8px; }
 .registration-section summary span { line-height:1.7; }
 .registration-trip-list { grid-template-columns:1fr; }
 .registration-trip-list>li { padding:16px; }
 .registration-trip-list header { display:grid; gap:6px; }
 #registrationRoutes>details { padding-inline:12px; }
}
