:root{font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;color:#173254;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:#112b77}button,input{font:inherit}button{cursor:pointer;touch-action:manipulation}button:focus-visible,input:focus-visible{outline:3px solid #f0bd58;outline-offset:3px}[hidden]{display:none!important}.event-page{max-width:680px;margin:auto;min-height:100vh;background:#123684 url("background.webp") center top/100% auto no-repeat;padding-bottom:32px}.brand-header{width:100%;aspect-ratio:852/580}main{padding:20px 12px 0;display:grid;gap:22px}.panel{background:#fff;border-radius:18px;padding:14px;box-shadow:0 10px 32px #05184330}.search-panel label{font-size:18px;font-weight:700;display:block;margin-bottom:12px}.search-row{display:flex;gap:9px}.search-row input{min-width:0;flex:1;height:52px;font-size:18px;padding:0 12px;border:1px solid #aabbd1;border-radius:10px;background:#fff;color:#173254}.search-row button{background:#153f96;color:#fff;border:0;border-radius:10px;padding:0 18px;font-weight:700;min-width:76px}.search-row button:disabled{opacity:.65}.examples{font-size:14px;color:#63758e;line-height:1.7;margin:12px 0 0}.examples button{background:none;border:0;padding:3px 0;color:#244e9a;text-decoration:underline;text-underline-offset:3px}#message{color:#a3382d;font-size:15px;line-height:1.5;margin:12px 0 0}#message:empty{display:none}.result-panel{scroll-margin-top:12px}.details{width:100%;border-collapse:separate;border-spacing:0;border:1px solid #dce5ef;border-radius:12px;overflow:hidden;font-size:17px;line-height:1.55;table-layout:fixed}.details th{width:104px;color:#586f8c;background:#f3f6fb;text-align:left;font-weight:500;padding:12px}.details td{padding:12px;font-weight:650;overflow-wrap:anywhere}.details tr+tr>*{border-top:1px solid #dce5ef}.seat-code{font-size:52px;letter-spacing:1px;line-height:1.15;color:#143e91;text-align:center;margin:24px 0 16px}.main-map{width:100%;background:#f2f6fc;border-radius:14px;padding:6px;overflow:hidden}.main-map svg,.overview-map svg,#large-map svg{display:block;width:100%;height:auto}.overview-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:24px;padding-top:18px;border-top:1px solid #e0e7ef}.overview-heading h2{margin:0;font-size:18px}.secondary{border:1px solid #becde0;background:#f6f9ff;border-radius:9px;color:#16428d;font-size:15px;padding:10px 12px;min-height:44px}.overview-map{margin-top:12px;background:#f7f9fc;border:1px solid #dce5ef;border-radius:12px;padding:8px 3px}svg text{font-family:"Microsoft YaHei","PingFang SC",sans-serif}svg .seat{fill:#fff;stroke:#8ca8ca;stroke-width:1.3}svg .seat-number{fill:#264669;font-weight:700;font-size:10.8px;text-anchor:middle;dominant-baseline:central}svg .selected{fill:#f5b82e;stroke:#8b5700;stroke-width:2}svg .selected-number{fill:#342000}svg .zone-label{fill:#244d86;font-size:36px;font-weight:700;text-anchor:middle}svg .stage{fill:#d9e5f4}svg .stage-label{fill:#315985;font-size:30px;font-weight:700;text-anchor:middle;dominant-baseline:central}svg .direction{font-size:11px;fill:#567496;text-anchor:middle}.choices{display:grid;gap:10px;margin-top:12px}.choice{width:100%;display:grid;gap:6px;text-align:left;border:1px solid #b4c9e4;background:#f5f8fd;border-radius:12px;padding:14px;color:#173254;overflow-wrap:anywhere}.choice strong{font-size:17px}.choice span{font-size:14px;color:#60738c}dialog{border:0;border-radius:16px;padding:14px;width:calc(100vw - 16px);max-width:1200px;height:90vh;max-height:90dvh;color:#173254}dialog::backdrop{background:#091b3ccc}.dialog-header{display:flex;justify-content:space-between;align-items:center;gap:10px}.dialog-header h2{font-size:20px;margin:0}.map-controls{display:flex;gap:10px;margin:12px 0}.map-controls button{min-width:48px}.map-scroll{overflow:auto;height:calc(100% - 112px);border:1px solid #dce5ef;background:#f4f7fc;border-radius:12px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}#large-map{width:3000px}.overview-map .seat-number{font-size:11px}@media(min-width:700px){.event-page{margin:24px auto;border-radius:20px;overflow:hidden}.main-map{max-width:460px;margin:auto}}@media(max-width:350px){.details{font-size:16px}.details th{width:94px}.details th,.details td{padding:10px}.search-row button{padding:0 13px;min-width:65px}}

/* Keep the nearby seats compact and make the full-stage map easy to find. */
.panel{min-width:0}
.seat-summary{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px 6px;margin:14px 0 10px}
.seat-summary .seat-code{display:flex;align-items:baseline;justify-content:center;flex-wrap:wrap;gap:4px;font-size:clamp(32px,10vw,36px);line-height:1.15;margin:0;overflow-wrap:anywhere;min-width:0;max-width:100%}
.seat-description{font-size:1em;line-height:1.15;letter-spacing:0;font-weight:700;white-space:nowrap}
.map-jump{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0;color:#16428d;font-size:14px;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.main-map{width:min(100%,260px);margin-inline:auto}
.overview-heading{margin-top:12px;padding-top:10px;scroll-margin-top:12px}
@media(min-width:700px){.main-map{width:320px;max-width:100%}}

.map-jump{font-size:16px;font-weight:700}
.overview-viewport{overflow:hidden;max-height:clamp(220px,43vh,360px);border:1px solid #dce5ef;border-radius:12px;background:#f7f9fc;touch-action:pan-y;overflow-anchor:none}
.overview-viewport.is-zoomed{overflow:auto;touch-action:none}
.overview-viewport:focus-visible,.map-scroll:focus-visible{outline:3px solid #b26900;outline-offset:2px}
.overview-map{width:100%;margin:0;padding:0;background:none;border:0}
.overview-viewport:not(.is-zoomed) .seat-marker{stroke-width:2.5px;vector-effect:non-scaling-stroke}
.overview-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.overview-actions #overview-locate{font-weight:700}
.overview-heading + .map-gesture-hint{margin-top:4px}
#map-dialog[open]{display:grid;grid-template-rows:auto auto auto minmax(0,1fr)}
.map-controls{margin:12px 0 6px}
.map-gesture-hint{margin:0 0 10px;font-size:16px;color:#486380}
.map-scroll{height:auto;touch-action:none}
.overview-viewport,.map-scroll{user-select:none;-webkit-user-select:none}
.overview-viewport > div,.map-scroll > div{pointer-events:none}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
