/* Approved A registration: calendar, paired wheels and a show-card bottom sheet. */
.registration-v8 { --primary:#644fc1; --line:#dde3df; --muted:#6b756f; --surface:#fff; }
.opening-registration.registration-v8 { padding:18px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.registration-v8 .opening-step + .opening-step { border:0; padding-top:0; }
.registration-v8 form { gap:0; }
.registration-v8 .opening-step h2 { font-size:18px; line-height:25px; margin:0 0 14px; }
.registration-v8 .opening-step h2 small { font-size:12px; font-weight:400; color:var(--muted); margin-left:6px; }
.registration-v8 .ticket-calendar { margin:0; padding:0; background:white; border:0; box-shadow:none; }
.registration-v8 .ticket-calendar-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.registration-v8 .ticket-calendar-head button { width:44px; height:44px; font-size:25px; border:0; background:white; color:var(--primary); }
.registration-v8 .ticket-calendar-month { font-size:16px; }
.registration-v8 .ticket-calendar-weekdays, .registration-v8 .ticket-calendar-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:2px; }
.registration-v8 .ticket-calendar-weekdays span { padding:6px 0; font-size:12px; color:var(--muted); }
.registration-v8 .ticket-calendar-days button { height:40px; min-height:40px; width:100%; border:0; background:white; border-radius:50%; font-size:14px; color:#171b19; padding:0; }
.registration-v8 .ticket-calendar-days button:disabled { color:#aeb5b0; opacity:.5; }
.registration-v8 .ticket-calendar-days button.is-selected { background:var(--primary); color:white; font-weight:700; }
.time-wheel-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:14px 0; padding-top:12px; border-top:1px solid var(--line); }
.time-wheel-column { min-width:0; text-align:center; }
.time-wheel-label { display:block; color:var(--muted); font-size:13px; margin-bottom:6px; }
.time-wheel-frame { position:relative; height:132px; background:#f7f8f7; border:1px solid var(--line); border-radius:10px; overflow:hidden; }
.time-wheel-frame::before { content:""; position:absolute; top:44px; height:44px; left:5px; right:5px; border-radius:7px; background:#f1eefb; border:1px solid #b9afe0; pointer-events:none; }
.time-wheel-frame::after { content:""; position:absolute; inset:0; background:linear-gradient(#f7f8f7dd,transparent 37%,transparent 63%,#f7f8f7dd); pointer-events:none; }
.time-wheel { position:relative; height:132px; padding:44px 0; overflow-y:auto; scroll-snap-type:y mandatory; overscroll-behavior-y:contain; scrollbar-width:none; touch-action:pan-y; }
.time-wheel::-webkit-scrollbar { display:none; }
.time-wheel button { position:relative; display:block; width:100%; height:44px; min-height:44px; padding:0; border:0; border-radius:0; background:transparent; scroll-snap-align:center; color:#6b756f; font-size:18px; font-weight:500; font-variant-numeric:tabular-nums; }
.time-wheel button small { font-size:12px; margin-left:5px; font-weight:400; }
.time-wheel button[aria-pressed=true] { color:var(--primary); font-weight:700; }
.registration-v8 .button { min-height:48px; border-radius:9px; font-size:15px; }
.registration-v8 .opening-step > .button { margin-top:16px; }
.opening-selected-date { font-size:14px; font-weight:600; text-align:center; color:var(--primary); margin:12px 0 0; }
.opening-history { margin-top:18px; }
.opening-history:empty { display:none; }
.opening-history button { display:flex; align-items:center; gap:8px; width:100%; padding:14px 0; border:0; border-top:1px solid var(--line); border-radius:0; background:white; text-align:left; }
.opening-history button > span { color:#167c55; }
.opening-history strong { min-width:0; font-size:13px; font-weight:600; line-height:20px; overflow-wrap:anywhere; }
.opening-history small { margin-left:auto; white-space:nowrap; color:var(--primary); font-size:12px; }
.opening-show-launch { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:52px; padding:12px; border:1px solid var(--line); border-radius:9px; background:#fff; text-align:left; font-weight:600; }
.opening-show-launch > span:last-child { font-size:22px; color:var(--primary); }
.opening-show-dialog { position:fixed; inset:auto 0 0; width:min(100%,480px); max-width:480px; max-height:85dvh; margin:0 auto; padding:10px 18px calc(20px + env(safe-area-inset-bottom)); border:0; border-radius:20px 20px 0 0; background:#fff; color:#171b19; box-shadow:0 -6px 28px #171b1914; overflow-y:auto; overscroll-behavior:contain; }
.opening-show-dialog::backdrop { background:#171b1966; }
.opening-show-dialog .opening-sheet-handle { width:36px; height:4px; margin:0 auto 14px; background:#dde3df; border-radius:4px; }
.opening-show-dialog header { display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; }
.opening-show-dialog h2 { margin:0; font-size:20px; line-height:28px; }
.opening-show-dialog header p { margin:5px 0 0; font-size:13px; color:#6b756f; }
.opening-show-dialog header button { width:44px; height:44px; border:0; background:white; color:#6b756f; font-size:26px; }
.opening-show-dialog input { width:100%; min-height:48px; padding:10px 12px; border:1px solid #dde3df; border-radius:9px; background:white; color:#171b19; font:inherit; }
.opening-show-card { display:block; width:100%; padding:16px; margin-top:12px; border:1px solid #dde3df; border-radius:12px; background:white; text-align:left; color:#171b19; }
.opening-show-card > div { display:flex; justify-content:space-between; align-items:start; gap:12px; }
.opening-show-card strong { font-size:16px; line-height:23px; overflow-wrap:anywhere; }
.opening-show-status { background:#eaf8d5; color:#167c55; padding:3px 7px; border-radius:6px; font-size:11px; white-space:nowrap; }
.opening-show-card p { margin:10px 0 5px; color:#644fc1; font-size:14px; font-weight:600; }
.opening-show-card small, .opening-show-material { display:block; font-size:13px; line-height:20px; color:#6b756f; }
.opening-show-card:disabled { opacity:.5; }
.opening-show-card:focus-visible { outline:2px solid #644fc1; outline-offset:2px; }
.opening-show-dialog .button { margin-top:18px; min-height:48px; }
.opening-show-empty { font-size:14px; line-height:23px; padding:20px 0; color:#6b756f; }
.registration-v8 .opening-sites { display:grid; gap:12px; }
.registration-v8 .opening-site { display:flex; gap:8px; align-items:end; padding:0; border:0; }
.registration-v8 .opening-site .field { flex:1; min-width:0; }
.registration-v8 .field input:not([type=hidden]) { min-height:48px; font-size:15px; }
.registration-upload-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:14px 0; }
.registration-upload-slot { min-width:0; }
.registration-upload-label { display:grid; gap:8px; text-align:center; font-size:13px; font-weight:600; cursor:pointer; }
.registration-upload-tile { display:grid; place-items:center; position:relative; width:100%; aspect-ratio:1; border:1px solid #b9c7bf; border-radius:10px; background:white; color:#644fc1; }
.registration-upload-tile b { font-size:30px; line-height:1; font-weight:400; }
.registration-upload-tile input { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.registration-upload-tile:focus-within { outline:2px solid #644fc1; outline-offset:3px; }
.registration-upload-count { display:block; text-align:center; font-size:11px; margin-top:7px; color:#6b756f; }
.registration-upload-previews { display:flex; flex-wrap:wrap; gap:5px; margin-top:8px; }
.registration-upload-previews figure { position:relative; width:100%; max-width:80px; margin:0; }
.registration-upload-previews img { width:100%; height:64px; object-fit:cover; border:1px solid #dde3df; border-radius:6px; }
.registration-upload-previews figure button { position:absolute; top:-4px; right:-4px; width:30px; height:30px; border:1px solid #dde3df; border-radius:50%; background:white; color:#171b19; font-size:18px; }
[data-extra-map-tiles] { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.registration-existing-media { margin:16px 0; display:flex; flex-wrap:wrap; gap:8px; }
.registration-existing-media > span { width:100%; font-size:12px; color:#6b756f; }
.registration-existing-media a { font-size:12px; color:#644fc1; border:1px solid #dde3df; border-radius:7px; padding:7px 10px; }
.registration-v8 .ticket-session-list { display:flex; flex-direction:column; gap:12px; }
.registration-v8 .ticket-session { margin:0; padding:14px; background:white; border:1px solid #dde3df; border-radius:12px; }
.registration-v8 .ticket-session[data-collapsed=true] { order:1; }
.registration-v8 .ticket-session[data-collapsed=true] .ticket-session-fields { display:none; }
.registration-v8 .ticket-session-fields { display:block; margin-top:14px; }
.registration-v8 .ticket-session-heading { flex-wrap:wrap; }
.registration-v8 .ticket-session-date { flex:1; min-width:100px; }
.registration-v8 .ticket-session-count { margin:16px 0; }
.seat-count-chips { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin-top:8px; }
.seat-count-chips button { min-height:44px; border:1px solid #dde3df; border-radius:8px; background:white; color:#171b19; font-size:14px; }
.seat-count-chips button[aria-pressed=true] { border-color:#644fc1; background:#f1eefb; color:#644fc1; font-weight:700; }
.registration-v8 .ticket-quick-show { border:1px solid #dde3df; border-radius:12px; padding:14px; background:white; }
.registration-v8 .ticket-quick-production strong { font-size:16px; line-height:23px; }
.registration-v8 .request-compose-media { margin-top:20px; padding:16px; background:#fff; border:1px solid #dde3df; border-radius:12px; }
.registration-v8 .request-compose-media h2 { font-size:16px; }
.registration-v8 .ticket-quick-confirm { font-size:13px; line-height:20px; }
.registration-v8 .ticket-quick-site-row { display:block; padding:14px; background:white; border:1px solid #dde3df; border-radius:10px; }
@media(max-width:350px) { .opening-registration.registration-v8 { padding:14px; } .registration-upload-grid { gap:8px; } .registration-v8 .ticket-calendar-days button { height:36px; min-height:36px; } .registration-v8 .ticket-session-date { font-size:12px; } }
