@import url('/styles/tickets.css');
.reg-header{padding:14px 0;border-bottom:1px solid var(--line)}.reg-controls{display:flex;gap:10px;flex-wrap:wrap}.reg-controls label{margin:0;font-size:.75rem}.reg-controls select{min-height:44px;font-size:16px;max-width:160px}.registration-hero{padding:40px 30px;border:1px solid var(--line);border-radius:28px;background:linear-gradient(110deg,#241009ef,#773707a8),url('/assets/festival/2026-halloween/aki-chan-960.webp') center/cover;color:#fff;margin:28px 0}.registration-hero h1{font-size:clamp(2.5rem,6vw,4.8rem);line-height:1.02;letter-spacing:-.045em}.registration-hero p{color:#ffe3c5;max-width:760px}.registration-hero .eyebrow{color:#ffbf79}.reg-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:26px 0}.reg-option{display:flex;flex-direction:column;gap:10px;padding:24px;background:var(--paper);border:1px solid var(--line);border-radius:22px;min-width:0}.reg-option h2{margin:0}.reg-option p{flex:1}.reg-option .number{color:var(--accent);font-weight:900;letter-spacing:.16em}.reg-section{margin:34px 0;scroll-margin-top:20px}.reg-form{background:var(--paper);border:1px solid var(--line);padding:26px;border-radius:24px}.reg-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.reg-fields>*{min-width:0}.reg-full{grid-column:1/-1}.reg-form fieldset{border:1px solid var(--line);border-radius:16px;padding:16px;margin:18px 0;min-width:0}.reg-form legend{font-weight:800;padding:0 8px}.reg-form input,.reg-form textarea{min-width:0}.reg-form input[type=file]{max-width:100%;font-size:14px}.reg-note{padding:16px;border-radius:14px;background:var(--soft);color:var(--muted);border:1px solid var(--line)}.reg-map{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;max-width:620px;margin:20px auto;padding:20px;border:2px dashed var(--line);border-radius:24px;background:var(--paper)}.reg-table{display:flex;flex-direction:column;min-height:82px;gap:3px;border-width:2px;background:#daf5e4;border-color:#2b8751;color:#155e32;opacity:1!important}.reg-table span{font-size:.7rem;line-height:1.2}.reg-table.pending{background:#fff0cb;border-color:#b57516;color:#774506}.reg-table.approved{background:#ffe0dd;border-color:#b44940;color:#852820}.reg-table[aria-pressed=true]{outline:3px solid var(--ink);outline-offset:3px}.reg-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:.85rem}.reg-legend span{padding:5px 10px;border-radius:30px;border:1px solid var(--line)}.reg-legend [data-state=free]{border-color:#2b8751}.reg-legend [data-state=pending]{border-color:#b57516}.reg-legend [data-state=approved]{border-color:#b44940}.reg-media{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:12px;margin:12px 0}.reg-media figure{min-width:0;margin:0;padding:10px;background:var(--soft);border:1px solid var(--line);border-radius:14px}.reg-media img,.reg-media video{display:block;width:100%;height:140px;object-fit:contain;border-radius:8px;background:#21130c}.reg-media a{overflow-wrap:anywhere;display:block;margin:8px 0}.reg-media button{font-size:.8rem;width:100%}.reg-band-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.reg-band{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:24px;overflow-wrap:anywhere;min-width:0}.reg-band strong{font-size:2rem;color:var(--accent)}.reg-band h3{font-size:1.35rem;line-height:1.2}.reg-band p{white-space:pre-wrap}.reg-status{display:inline-block;font-size:.8rem;padding:5px 12px;background:var(--soft);border:1px solid var(--line);border-radius:30px}.reg-status.approved{border-color:#2b8751}.reg-status.declined,.reg-status.cancelled{border-color:#b44940}.reg-record{margin:16px 0;padding:22px;background:var(--paper);border:1px solid var(--line);border-radius:20px;overflow-wrap:anywhere}.reg-record dl{display:grid;grid-template-columns:180px minmax(0,1fr);gap:10px}.reg-record dt{font-weight:800}.reg-record dd{margin:0;white-space:pre-wrap}.reg-message{position:sticky;bottom:12px;z-index:5;border-radius:14px;background:var(--paper);padding:12px 16px;box-shadow:0 6px 25px #0002;border:1px solid var(--line);color:var(--ink)}.reg-message:empty{display:none}.reg-consent{display:flex;align-items:flex-start;gap:10px;font-size:.9rem}.reg-consent input{flex:0 0 20px;margin-top:4px}.reg-actions{display:flex;gap:12px;flex-wrap:wrap}.reg-actions>*{min-height:44px}.reg-toolbar{display:flex;gap:12px;flex-wrap:wrap}.reg-toolbar select{max-width:100%}body.night .reg-table{background:#163d26;color:#c8fadd}body.night .reg-table.pending{background:#483010;color:#ffe3a1}body.night .reg-table.approved{background:#4b201d;color:#ffccc7}.reg-muted{font-size:.88rem;color:var(--muted)}
@media(max-width:700px){.reg-options,.reg-band-grid,.reg-fields{grid-template-columns:1fr}.reg-form{padding:18px}.registration-hero{padding:25px 20px}.reg-map{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:12px}.reg-table{padding:8px 2px;min-height:76px;font-size:.9rem}.reg-record dl{grid-template-columns:1fr;gap:4px}.reg-record dd{margin-bottom:10px}.reg-actions>*{flex:1}.reg-option{padding:20px}.reg-header .brand{font-size:.9rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
.reg-file-picker{position:relative;display:flex;align-items:center;justify-content:center;min-height:48px;margin-top:8px;padding:12px;border:1px dashed var(--accent);border-radius:14px;color:var(--ink);background:var(--soft);cursor:pointer}.reg-file-picker input[type=file]{position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.reg-file-picker:focus-within{outline:3px solid var(--accent);outline-offset:3px}
/* The real venue map scales without cropping; open it for full-resolution detail. */
.festival-floor-map{display:block;width:100%;max-width:100%;height:auto;object-fit:contain;border-radius:16px;margin:16px 0}
#tableSection{min-width:0;max-width:100%}#tableSection>a{display:block;min-width:0;max-width:100%;overflow:hidden}
.booking-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0}
.booking-options button{display:flex;flex-direction:column;gap:8px;white-space:normal;text-align:center;min-width:0}
.booking-options button[aria-pressed=true]{border:2px solid var(--accent);background:var(--soft);outline:2px solid var(--accent);outline-offset:2px}
.booking-options small{font-weight:400;line-height:1.4}
@media(max-width:420px){.booking-options{grid-template-columns:1fr}}
.reg-table{overflow-wrap:anywhere;min-width:0}
#bookingType{width:100%;min-height:48px;font:inherit;color:inherit;background:transparent;border:1px solid currentColor;border-radius:12px;padding:10px;margin:8px 0 18px}
.reg-map{grid-template-columns:repeat(5,minmax(0,1fr));max-width:760px}.reg-table.zone-better{background:#fff0df!important;color:#74300b}.reg-table.zone-normal{background:#fff4c9!important;color:#6c4900}.reg-table.zone-food{background:#daf5e4!important;color:#155e32}.reg-table.free{border-color:#228a4c}.reg-table.pending{border-color:#c28710}.reg-table.approved{border-color:#c14940}.reg-table-state{font-weight:800}.reg-market-name{font-size:.68rem!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}body.night .reg-table.zone-better{background:#522810!important;color:#ffd1a0}body.night .reg-table.zone-normal{background:#483010!important;color:#ffe3a1}body.night .reg-table.zone-food{background:#163d26!important;color:#c8fadd}@media(max-width:700px){.reg-map{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;padding:9px}.reg-table{min-height:58px;padding:6px 2px}.reg-table-state{font-size:.64rem!important;line-height:1.05!important}.reg-market-name{display:none}.reg-legend{gap:6px;font-size:.74rem}.reg-legend span{padding:4px 7px}}
