.festival-map{margin-top:20px}.festival-map-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.festival-map-toolbar>div:first-child{gap:4px;display:grid}.festival-map-toolbar strong{color:#0a2a52;font-size:14px}.festival-map-toolbar span,.festival-map-help,.festival-map-source{color:#526781;font-size:12px;line-height:1.6}.festival-map-tools{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.festival-map-tools button{color:#134b80;min-width:36px;min-height:36px;font:inherit;cursor:pointer;background:#fff;border:1px solid #cbd9e8;border-radius:7px;padding:8px 10px;font-size:12px}.festival-map-tools button:disabled{opacity:.4;cursor:default}.festival-map-tools output{text-align:center;min-width:36px;font-size:12px}.festival-map-viewport{overscroll-behavior:contain;background:#fff;border:1px solid #d9e3ef;border-radius:10px;max-height:680px;margin-top:12px;overflow:auto}.festival-map-size{margin-inline:auto;position:relative}.festival-map-canvas{transform-origin:0 0;position:relative}.festival-map-stage{color:#153f6b;letter-spacing:5px;background:#e7edf5;border:1px solid #b6c8dc;border-radius:5px 5px 18px 18px;justify-content:center;align-items:center;font-size:19px;font-weight:600;display:flex;position:absolute}.festival-map-row{color:#344e6c;justify-content:center;align-items:center;width:20px;height:20px;font-size:10px;font-weight:600;display:flex;position:absolute}.festival-page .festival-seat.festival-map-seat,.festival-map-unavailable{width:20px;min-width:0;height:20px;min-height:0;box-shadow:none;border-width:1px;border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:9px;line-height:1;display:flex;position:absolute}.festival-map-unavailable{color:#7b889a;cursor:default;background:#e5e9ef;border:1px solid #d6dde6}.festival-page .festival-map .festival-seat.is-mine{outline-offset:1px;outline:2px solid #0054a6}.festival-map-selection{color:#25476c;background:#edf5fd;border-radius:8px;margin-top:12px;padding:12px 14px;font-size:13px;line-height:1.6}.festival-map-source{margin:10px 0 0}.festival-map-source a{color:#0054a6}@media (max-width:640px){.festival-map-viewport{max-height:520px}.festival-map-tools{width:100%}}.festival-page .seat-available{color:#fff;opacity:1;background:#147d43;border-color:#0d5b30!important}.festival-page .seat-held{color:#533900;opacity:1;background:#ffdf74;border-color:#9b6c00!important}.festival-page .seat-pending{color:#fff;opacity:1;background:#743ac7;border-color:#542294!important}.festival-page .seat-approved,.festival-page .seat-blocked{color:#fff;opacity:1;background:#0054a6;border-color:#002f65!important}.festival-page .seat-outside,.festival-map-unavailable{color:#758296;background:repeating-linear-gradient(135deg,#e5e9ef 0 3px,#f6f7f9 3px 6px);border-color:#b8c2cf}.festival-page .festival-legend i{flex-shrink:0;width:20px;height:20px}.festival-map-list{grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:10px;margin-top:14px;display:grid}.festival-map-list .festival-seat{height:auto;min-height:48px;padding:8px;font-size:13px}.festival-map-list .festival-seat span{margin-bottom:4px;font-size:11.5px;display:block}.festival-page .festival-booking .festival-seat.seat-available:not(:disabled):hover{color:#fff;background:#0d5b30}
