/* shared by the public booking page and admin seat tools */
/* ===== event page & seat map ===== */
.evhero{position:relative;padding:52px 0 34px;border-bottom:1px solid var(--line2);overflow:hidden}
.evhero .bgimg{position:absolute;inset:0;background-size:cover;background-position:center 20%;opacity:.22;filter:saturate(.8);-webkit-mask-image:linear-gradient(90deg,transparent,#000 70%);mask-image:linear-gradient(90deg,transparent,#000 70%)}
.evhero .wrap{position:relative;display:grid;grid-template-columns:1fr auto;gap:30px;align-items:end}
.evhero h1{font:400 clamp(2.6rem,6.4vw,4.8rem)/.95 var(--disp);letter-spacing:.03em;text-transform:uppercase;margin:6px 0 10px;background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.evhero .facts{display:flex;gap:8px 28px;flex-wrap:wrap;color:#d6c8a5}.evhero .facts span{display:inline-flex;align-items:center}
.evhero .poster{width:150px;border-radius:8px;border:1px solid var(--gold);box-shadow:0 14px 40px rgba(0,0,0,.6);transform:rotate(2deg)}
@media(max-width:700px){.evhero .wrap{grid-template-columns:1fr}.evhero .poster{display:none}}
.booking{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:28px;align-items:start;padding:36px 0 80px}
@media(max-width:980px){.booking{grid-template-columns:1fr;padding-bottom:140px}}
.mapcard{background:#0c0905;border:1px solid var(--line);border-radius:var(--r);padding:14px;position:relative}
.maptools{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.legend{display:flex;gap:6px 18px;flex-wrap:wrap;font-size:.82rem;color:var(--muted)}.legend i{display:inline-block;width:14px;height:14px;border-radius:4px;margin-right:6px;vertical-align:-2px}
.zoom{display:flex;gap:6px}.zoom button{width:36px;height:36px;border-radius:8px;border:1px solid var(--line);background:#15100a;color:var(--gold-l);font-size:1.2rem;cursor:pointer}.zoom button:hover{background:var(--gold);color:#1b1306}
.mapsvg{width:100%;height:auto;display:block;max-height:78vh;user-select:none;-webkit-user-select:none}
.hint{font-size:.82rem;color:var(--muted);margin:8px 2px 0}
.zones{display:grid;gap:8px;margin:0 0 18px}.zone{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--line2);border-radius:8px;background:rgba(255,255,255,.02)}
.zone i{width:16px;height:16px;border-radius:4px;flex:none}.zone b{flex:1;font-weight:500}.zone em{font-style:normal;font:400 1.4rem/1 var(--disp);letter-spacing:.05em;color:var(--gold-l)}.zone .vip{font:700 .6rem var(--serif);letter-spacing:.16em;background:var(--gold);color:#1b1306;padding:.25em .6em;border-radius:99px;margin-left:8px;vertical-align:2px}
.zone.off{opacity:.45}
.summary{position:sticky;top:96px;background:linear-gradient(180deg,#17110a,#100c07);border:1px solid var(--gold);border-radius:var(--r);padding:20px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.summary h3{font:700 .85rem var(--serif);letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}
.sel{list-style:none;margin:0 0 14px;padding:0;max-height:300px;overflow:auto}.sel li{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line2);font-size:.94rem}.sel li span{flex:1}.sel li small{display:block;color:var(--muted);font-size:.78rem}.sel li b{font-weight:500;color:var(--gold-l);white-space:nowrap}
.sel button{border:0;background:none;color:#a89874;cursor:pointer;font-size:1.2rem;padding:2px 6px}.sel button:hover{color:#fff}
.qty{display:inline-flex;align-items:center;gap:4px}.qty button{width:28px;height:28px;border-radius:50%;border:1px solid var(--line);background:#1d160c;color:var(--gold-l);cursor:pointer;font-size:1rem;padding:0}.qty span{min-width:22px;text-align:center;flex:none}
.total{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--gold);padding-top:14px;margin-bottom:16px}.total span{font:600 .76rem var(--serif);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}.total strong{font:400 2.4rem/1 var(--disp);letter-spacing:.05em;color:var(--gold-l)}
.emptysel{color:var(--muted);font-size:.93rem;padding:6px 0 14px}
.secure{display:flex;gap:8px;align-items:center;justify-content:center;margin-top:12px;font-size:.78rem;color:var(--muted)}
@media(max-width:980px){.summary{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:40;border-radius:16px 16px 0 0;border-width:1px 0 0;padding:12px 16px 14px}.summary h3,.summary .secure{display:none}.summary .sel{max-height:30vh;margin-bottom:8px}.summary .total{margin-bottom:10px;padding-top:8px}.summary .total strong{font-size:1.8rem}.summary.collapsed .sel{display:none}}
.seat{stroke:rgba(0,0,0,.45);stroke-width:1;cursor:pointer;transition:fill .12s,opacity .12s}
.seat:hover{stroke:#fff;stroke-width:2}
.seat.taken{fill:#2b2620!important;stroke:#3d362b;cursor:not-allowed;opacity:.85}.seat.held{fill:#5a4a24!important}.seat.reserved{fill:#4a3a52!important}.seat.blocked{fill:#3a1f1f!important;stroke:#7a3a3a}
.seat.off{opacity:.22;cursor:not-allowed}
.seat.selected{fill:#fff!important;stroke:var(--gold);stroke-width:3}
.sec.vip .seat:not(.taken):not(.selected){stroke:#fff3b8;stroke-width:1.4}
.sectitle{fill:var(--gold-l);font:700 11px 'Cinzel',serif;letter-spacing:.2em;text-transform:uppercase}.rowlbl{fill:#85795f;font:10px 'Jost',sans-serif}
.stage rect{fill:url(#stg);fill:#2a2010;stroke:var(--gold);stroke-width:1.5}.stage text{fill:var(--gold-l);font:700 15px 'Cinzel',serif;letter-spacing:.5em}
.tbl{fill:#17110a;stroke:#6b5522;stroke-width:1.5}.tbltxt{fill:#a89260;font:700 12px 'Jost',sans-serif}
.ga{stroke-width:1.5;stroke-dasharray:6 5;cursor:pointer}.ga.off{opacity:.25;cursor:not-allowed}.ga.selected{stroke-dasharray:none;stroke-width:3}.ga.soldout{opacity:.3;cursor:not-allowed}.gatext{fill:var(--text);font:600 14px 'Jost',sans-serif;pointer-events:none}
.sec.active .sectitle{fill:#fff}


#hidden{display:none}

/* X marker on sold / reserved seats */
.seatx{display:none;fill:none;stroke-width:2.6;stroke-linecap:round;pointer-events:none}.seatx.sold{display:block;stroke:#ff4d3d}.seatx.reserved{display:block;stroke:#c79bff}
