:root{
  --bg1:#0b1020;
  --bg2:#070a12;
  --card:rgba(255,255,255,0.06);
  --stroke:rgba(255,255,255,0.12);
  --text:rgba(255,255,255,0.92);
  --muted:rgba(255,255,255,0.70);
  --accent:#f4c542;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  background:
    radial-gradient(1100px 700px at 20% 30%, rgba(120,80,255,0.18), transparent 60%),
    radial-gradient(900px 700px at 80% 50%, rgba(0,170,255,0.16), transparent 55%),
    linear-gradient(180deg,var(--bg1),var(--bg2));
}
.public-event{max-width:100%;overflow-x:hidden}

.topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:18px 24px;
  border-bottom:1px solid rgba(255,255,255,0.06);
  backdrop-filter: blur(10px);
}
.brand-title{font-weight:800; letter-spacing:0.2px}
.brand-sub{font-size:12px; color:var(--muted); margin-top:2px}
.lang{display:flex; gap:8px}
.pill{
  padding:7px 11px;
  border:1px solid var(--stroke);
  border-radius:999px;
  background:rgba(255,255,255,.05);
  color:var(--text);
}

.container{
  width:100%;
  max-width:none;
  margin:0 auto;
  padding:18px clamp(10px, 1.25vw, 24px) 36px;
}
.hero{
  max-width:1680px;
  margin:0 auto;
  padding:24px 4px 18px;
}
.public-event .hero{display:none}
.public-event .container{padding:10px clamp(8px, 0.9vw, 16px) 24px}
.hero h1{margin:0 0 6px; font-size:clamp(32px, 4vw, 44px); letter-spacing:0.2px}
.subtitle{max-width:760px; color:var(--muted); line-height:1.55}
.eyebrow{margin:0 0 7px;color:var(--accent);font-size:12px;font-weight:900;letter-spacing:1.5px;text-transform:uppercase}
.muted{color:var(--muted); margin:0}

.payment-page{
  min-height:100%;
}

.payment-shell{
  width:min(760px, calc(100% - 24px));
  margin:0 auto;
  padding:clamp(24px, 7vh, 72px) 0;
}

.payment-card{
  padding:clamp(22px, 5vw, 42px);
}

.payment-card h1{
  margin:0 0 10px;
  font-size:clamp(30px, 6vw, 48px);
}

.payment-total{
  margin:24px 0;
  color:var(--accent);
  font-size:clamp(34px, 8vw, 58px);
  font-weight:900;
}

.payment-options{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
  margin-top:24px;
}

.payment-option{
  display:grid;
  gap:9px;
  min-height:150px;
  padding:22px;
  border:2px solid var(--stroke);
  border-radius:16px;
  color:var(--text);
  background:rgba(0,0,0,.22);
  text-align:left;
}

.payment-option strong{
  font-size:23px;
}

.payment-option span{
  color:var(--muted);
  line-height:1.5;
}

.payment-option:hover,
.payment-option.is-selected{
  border-color:var(--accent);
  background:rgba(244,197,66,.12);
}

.payment-message{
  min-height:24px;
  margin-top:18px;
  font-weight:700;
}

.payment-message--ok{color:#73e2b0}
.payment-message--error{color:#ff9da4}
.payment-back{display:inline-block;margin-top:18px;color:var(--accent)}

.payment-proof-card{max-width:680px;margin:auto}
.payment-proof-form{display:grid;gap:10px;margin-top:24px}
.payment-proof-form label{margin-top:8px;font-weight:800}
.payment-proof-form input,
.payment-proof-form textarea{
  width:100%;
  padding:12px;
  border:1px solid var(--stroke);
  border-radius:10px;
  color:var(--text);
  background:rgba(0,0,0,.25);
  font:inherit;
}
.payment-proof-form small{color:var(--muted)}
.payment-proof-form .btn{margin-top:12px;justify-self:start}
.payment-proof-success,
.payment-proof-message,
.payment-proof-error{
  margin-top:24px;
  padding:16px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:12px;
  background:rgba(255,255,255,.05);
}
.payment-proof-success{border-color:rgba(46,204,113,.45)}
.payment-proof-error{border-color:rgba(231,76,60,.5);color:#ffb8b2}

@media (max-width: 560px){
  .payment-options{grid-template-columns:1fr}
  .payment-option{min-height:120px}
}

.card{
  background:var(--card);
  border:1px solid var(--stroke);
  border-radius:18px;
  box-shadow: 0 18px 55px rgba(0,0,0,0.35);
  overflow:hidden;
}
.public-event .map-card{
  width:100%;
  min-width:0;
  max-width:100%;
  margin-top:0;
  display:flex;
  flex-direction:column;
  min-height:0;
}
.map-card__intro{
  padding:12px 14px 6px;
  border-bottom:1px solid rgba(255,255,255,0.06);
}
.map-card__intro .title{
  margin:0 0 6px;
  font-size:clamp(28px, 3.4vw, 40px);
  line-height:1.05;
}
.map-card__intro .subtitle{
  margin:0;
  max-width:920px;
}

.card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:10px 14px 4px;
  border-bottom:1px solid rgba(255,255,255,0.06);
}

.card-title{font-weight:900; font-size:17px}
.card-help{font-size:13px; color:var(--muted); margin-top:3px}
.picked,.total{
  background:rgba(0,0,0,.22);
  border:1px solid var(--stroke);
  border-radius:999px;
  padding:7px 11px;
  font-size:12px;
  white-space:nowrap;
}

.chip{
  background:rgba(0,0,0,0.25);
  border:1px solid rgba(255,255,255,0.10);
  border-radius:999px;
  min-height:42px;
  padding:10px 16px;
  font-size:14px;
  font-weight:700;
  white-space:nowrap;
}

#zoomFitBtn{
  background:linear-gradient(180deg, rgba(66,133,244,.98), rgba(29,87,196,.94));
  border-color:rgba(66,133,244,.8);
  color:#fff;
}

#fullMapBtn{
  background:linear-gradient(180deg, rgba(244,197,66,.98), rgba(181,137,27,.95));
  border-color:rgba(244,197,66,.85);
  color:#171308;
  font-weight:800;
}

.map-scroll{
  width:100%;
  min-width:0;
  max-width:100%;
  flex:1 1 auto;
  min-height:0;
  height:min(84vh, calc(100vh - 220px));
  max-height:none;
  overflow:hidden;
  padding:0;
  scrollbar-color:rgba(244,197,66,.5) rgba(0,0,0,.18);
  background:
    radial-gradient(circle at 50% 0%, rgba(244,197,66,.08), transparent 38%),
    rgba(0,0,0,.14);
  position:relative;
  touch-action:none;
  cursor:grab;
}
.map-scroll.is-panning{cursor:grabbing}

.map-stage{
  position:relative;
  width:100%;
  height:100%;
  margin:0;
  overflow:hidden;
  border:1px solid rgba(244,197,66,.18);
  border-radius:20px;
  background:
    linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px),
    radial-gradient(circle at 50% 35%, rgba(88,62,120,.18), transparent 52%),
    #0d1220;
  background-size:32px 32px, 32px 32px, auto, auto;
  box-shadow:inset 0 0 60px rgba(0,0,0,.42);
  transform-origin:0 0;
  will-change:transform;
  transition:transform 120ms ease-out;
  cursor:grab;
}
.map-stage.is-panning{cursor:grabbing}

.map-controls{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding:0 14px 4px;
}

.mini-map{
  position:absolute;
  right:16px;
  bottom:16px;
  width:120px;
  height:120px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(4,8,16,.82);
  backdrop-filter:blur(6px);
  box-shadow:0 14px 30px rgba(0,0,0,.35);
  overflow:hidden;
  z-index:20;
  cursor:pointer;
}

.mini-map.is-dragging{
  cursor:grabbing;
}

.mini-map__world{
  position:absolute;
  inset:10px;
  border:1px solid rgba(255,255,255,.12);
  background:
    linear-gradient(rgba(255,255,255,.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.02) 1px, transparent 1px),
    rgba(255,255,255,.02);
}

.mini-map__viewport{
  position:absolute;
  border:2px solid #f4c542;
  background:rgba(244,197,66,.12);
  box-shadow:0 0 0 1px rgba(0,0,0,.35);
  pointer-events:auto;
  cursor:grab;
}

.mini-item{
  position:absolute;
  border-radius:4px;
  opacity:.9;
}
.mini-stage{background:rgba(255,145,103,.7)}
.mini-dance{background:rgba(110,180,255,.58)}
.mini-table{background:rgba(244,197,66,.68); border-radius:50%}
.mini-theatre-row{background:rgba(111,90,50,.82);border:1px solid rgba(212,175,55,.55);border-radius:3px}
.mini-theatre-row--vip{background:rgba(212,175,55,.9);border-color:#ffe49a}
.mini-theatre-seat{background:#1E6F5C;border-radius:50%}
.mini-theatre-seat--vip{background:#D4AF37}
.mini-theatre-aisle{background:rgba(2,7,12,.95);border-left:1px solid rgba(212,175,55,.4);border-right:1px solid rgba(212,175,55,.4)}
.theatre-seat-legend{display:flex;align-items:center;justify-content:center;gap:22px;flex-wrap:wrap;margin:8px 0 12px;padding:10px 14px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:rgba(8,13,22,.72);font-size:13px;font-weight:800}
.theatre-seat-legend span{display:inline-flex;align-items:center;gap:7px}
.theatre-seat-legend i{width:14px;height:14px;border-radius:50%;display:inline-block}
.theatre-seat-legend .is-free{background:#1E6F5C;border:1px solid #63b7a2}
.theatre-seat-legend .is-reserved{background:#D4AF37;border:1px solid #f6dc83}
.theatre-seat-legend .is-paid{background:#8B1E3F;border:1px solid #c95a78}
.theatre-row-label{position:absolute;right:calc(100% + 20px);top:50%;transform:translateY(-50%);min-width:86px;text-align:right;color:#f4f7fb;font-size:21px;font-weight:900;line-height:1;white-space:nowrap;pointer-events:none}
.theatre-row-label--vip{color:#f4c542;font-weight:900;text-shadow:0 0 14px rgba(212,175,55,.35)}
.theatre-aisle-gap{position:absolute;top:-10px;height:calc(100% + 20px);border-left:2px solid rgba(212,175,55,.42);border-right:2px solid rgba(212,175,55,.42);background:repeating-linear-gradient(135deg,rgba(2,7,12,.92) 0 8px,rgba(212,175,55,.08) 8px 10px);box-shadow:inset 0 0 14px rgba(0,0,0,.5);pointer-events:none}
.map-stage--theatre .ballroom-stage{transform:none;font-size:30px;letter-spacing:.16em;border-width:3px;box-shadow:0 16px 34px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.18)}
.theatre-row--curved{border-radius:50% 50% 16px 16px / 42% 42% 16px 16px!important}
.theatre-row--amphitheatre{box-shadow:0 10px 22px rgba(0,0,0,.25),inset 0 1px rgba(255,255,255,.05)!important}

.event-full-map .layout{
  grid-template-columns:1fr;
  gap:0;
}

.event-full-map .container{
  padding:0;
}

.event-full-map .topbar,
.event-full-map .hero,
.event-full-map .map-card__intro,
.event-full-map .picked,
.event-full-map .seat-selection-panel,
.event-full-map .res-card{
  display:none;
}

.event-full-map .map-card{
  width:100%;
  height:100vh;
  border-radius:0;
}

.event-full-map .map-scroll{
  height:100vh;
  max-height:none;
  border-radius:0;
  border-left:0;
  border-right:0;
}

.event-full-map .map-controls .chip{
  background:rgba(255,255,255,.08);
}

.ballroom-stage,
.ballroom-dancefloor{
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:14px;
  font-size:13px;
  font-weight:900;
  letter-spacing:1.6px;
  text-align:center;
}

.ballroom-stage{
  color:#ffe7db;
  border:1px solid rgba(255,145,103,.65);
  background:linear-gradient(180deg, rgba(179,67,43,.72), rgba(104,35,29,.78));
  box-shadow:0 12px 28px rgba(0,0,0,.28), inset 0 1px rgba(255,255,255,.15);
  transform:scale(.84);
  transform-origin:center;
}

.ballroom-dancefloor{
  color:#e8f6ff;
  border:1px solid rgba(110,180,255,.52);
  background:
    linear-gradient(45deg, rgba(255,255,255,.045) 25%, transparent 25%) 0 0 / 26px 26px,
  linear-gradient(-45deg, rgba(255,255,255,.045) 25%, transparent 25%) 0 0 / 26px 26px,
  linear-gradient(180deg, rgba(49,105,163,.42), rgba(31,63,111,.5));
  box-shadow:0 12px 28px rgba(0,0,0,.24), inset 0 1px rgba(255,255,255,.12);
  transform:scale(.75);
  transform-origin:center;
}

.table-group,
.ballroom-table-group{
  pointer-events:none;
  overflow:visible;
}

.table-circle,
.ballroom-table{
  z-index:2;
  width:144px;
  height:144px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  border-radius:50%;
  padding:14px;
  transform:translate(-50%,-50%);
  color:#fff8de;
  text-align:center;
  border:2px solid var(--category-color, rgba(244,197,66,.62));
  background:
    radial-gradient(circle at 36% 28%, rgba(255,255,255,.12), transparent 34%),
    linear-gradient(145deg, color-mix(in srgb, var(--category-color) 48%, #26201a), #151515);
  box-shadow:
    0 12px 25px rgba(0,0,0,.42),
  inset 0 0 0 5px color-mix(in srgb, var(--category-color) 14%, transparent);
  cursor:default;
  font-family:inherit;
  appearance:none;
  pointer-events:auto;
  transition:transform .15s ease,filter .15s ease,box-shadow .15s ease;
  position:absolute;
}
.ballroom-table:hover,.ballroom-table:focus-visible{filter:brightness(1.15);box-shadow:0 15px 34px rgba(0,0,0,.5),0 0 0 4px rgba(255,255,255,.18)}
.ballroom-table--shape-square{border-radius:14px}
.ballroom-table--shape-rectangle{border-radius:16px}

.ballroom-table--regular{
  border-color:rgba(255,220,132,.86);
  box-shadow:
    0 0 18px rgba(244,197,66,.22),
    0 12px 25px rgba(0,0,0,.42),
    inset 0 0 0 5px rgba(255,238,155,.10);
  color:#fffdf4;
}

.ballroom-table--vip{
  border-color:rgba(255,232,147,.95);
  box-shadow:
    0 0 0 1px rgba(255,239,171,.65),
    0 0 28px rgba(244,197,66,.35),
    0 12px 25px rgba(0,0,0,.42),
    inset 0 0 0 5px rgba(255,238,155,.18);
}

.ballroom-table--vip_pokrovitelj{
  color:#fff4bd;
  box-shadow:
    0 0 22px color-mix(in srgb, var(--category-color) 40%, transparent),
    0 12px 25px rgba(0,0,0,.42),
    inset 0 0 0 5px rgba(255,238,155,.12);
}

.ballroom-table--vip_zvanica{color:#f4f8fb}
.ballroom-table--vip_sponzor{color:#ffe2c2}

.ballroom-table__vip{
  position:absolute;
  top:10px;
  right:12px;
  z-index:3;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:30px;
  min-height:18px;
  padding:2px 7px;
  border-radius:999px;
  border:1px solid rgba(255,236,151,.65);
  background:linear-gradient(180deg, rgba(244,197,66,.96), rgba(176,132,24,.92));
  color:#171308;
  font-size:10px;
  font-weight:900;
  letter-spacing:.6px;
  box-shadow:0 6px 12px rgba(0,0,0,.28);
}

.ballroom-table__category{
  max-width:118px;
  overflow:hidden;
  color:inherit;
  font-size:9px;
  line-height:1;
  font-weight:900;
  letter-spacing:.25px;
  text-overflow:ellipsis;
  white-space:nowrap;
  opacity:.88;
}

.ballroom-table__number{
  font-size:20px;
  line-height:1;
  font-weight:900;
  letter-spacing:.2px;
}

.ballroom-table__availability{
  color:#eaf7ef;
  font-size:10px;
  line-height:1.1;
  font-weight:800;
  opacity:.94;
}

.ballroom-table__price{
  color:rgba(255,245,205,.78);
  font-size:10px;
  line-height:1;
  font-weight:700;
  opacity:.9;
}

.ballroom-table--regular .ballroom-table__availability,
.ballroom-table--regular .ballroom-table__price{
  color:rgba(255,252,232,.86);
}

.seat,
.ballroom-seat{
  z-index:4;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  color:#fff;
  font-size:13px;
  line-height:1;
  font-weight:900;
  user-select:none;
  box-shadow:0 5px 12px rgba(0,0,0,.42);
  transition:transform .14s ease, filter .14s ease, box-shadow .14s ease;
}

#zoomInBtn,
#zoomOutBtn,
#zoomResetBtn,
#zoomFitBtn{
  color:#fff;
  font-size:14px;
  font-weight:700;
  text-shadow:0 1px 2px rgba(0,0,0,.45);
}

.ballroom-seat:hover{
  transform:scale(1.12);
  filter:brightness(1.18);
  box-shadow:0 7px 16px rgba(0,0,0,.5);
}

.ballroom-seat:disabled{
  opacity:1;
  filter:none;
}

.ballroom-seat:disabled:hover{
  transform:none;
  filter:none;
}

.ballroom-seat.is-selected{
  transform:scale(1.14);
  box-shadow:0 0 0 3px rgba(255,255,255,.78),0 8px 18px rgba(31,122,224,.55);
}

.legend{
  display:flex;
  flex-wrap:wrap;
  gap:12px 24px;
  padding:14px 16px 16px;
  color:var(--muted);
  font-size:12px;
}
.legend__item{display:inline-flex;align-items:center}
.legend .dot{
  width:12px;height:12px;border-radius:50%;
  display:inline-block;margin-right:8px;
}
.dot.free{background:#047857;border:1px solid #34d399}
.dot.hold{background:#d6a719;border:1px solid #ffe27a}
.dot.taken{background:#c83f49;border:1px solid #ff9da4}
.dot.vip{background:#d4af37;border:1px solid #fff0a6}

.seat-selection-panel{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:12px 18px;
  align-items:end;
  padding:16px;
  border-top:1px solid rgba(255,255,255,.08);
  background:rgba(7,12,22,.82);
}

.seat-selection-panel__head{
  grid-column:1 / -1;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}

.seat-selection-panel__head strong,
.seat-selection-panel__head span{
  display:block;
}

.seat-selection-panel__head > div:first-child span{
  margin-top:3px;
  color:var(--muted);
  font-size:13px;
}

.seat-selection-panel .selectedList{
  max-height:126px;
  margin:0;
}

.seat-selection-panel__action{
  min-width:260px;
  margin:0;
}

.seat-selection-panel__action:disabled{
  cursor:not-allowed;
  filter:saturate(.25);
  opacity:.62;
}

.seat-selection-panel__actions{
  display:grid;
  gap:8px;
}

.seat-selection-panel__actions[hidden]{display:none}

.seat-selection-panel__action--secondary{
  border:1px solid rgba(241,202,112,.55);
  background:transparent;
  color:#f1ca70;
  box-shadow:none;
}

.seat-selection-panel__action--secondary[hidden]{display:none}

.reservation-modal[hidden]{display:none}
.reservation-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px}
.reservation-modal__backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(2,5,12,.76);backdrop-filter:blur(7px);cursor:default}
.reservation-dialog{position:relative;width:min(680px,100%);max-height:calc(100vh - 40px);overflow:auto;padding-bottom:16px;background:#111827;border-color:rgba(244,197,66,.32)}
.reservation-dialog__head{position:sticky;top:0;z-index:3;background:#111827}
.modal-close{width:42px;height:42px;border:1px solid var(--stroke);border-radius:50%;background:rgba(255,255,255,.07);color:#fff;font-size:26px;line-height:1;cursor:pointer}
.modal-seat-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(44px,1fr));gap:10px;padding:16px 14px;border-bottom:1px solid rgba(255,255,255,.08)}
.modal-seat{min-height:44px;border:2px solid;border-radius:12px;color:#fff;font-size:14px;font-weight:900;cursor:pointer}
.modal-seat:hover:not(:disabled){filter:brightness(1.14)}
.modal-seat:disabled{cursor:not-allowed;opacity:.82}
.modal-seat.is-selected{box-shadow:0 0 0 3px rgba(255,255,255,.24)}
.reservation-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px 14px 0}
.reservation-summary>div:first-child{flex:1;min-width:0}
.modal-open{overflow:hidden}

.selectedList{
  margin:8px 0 0;
  padding:12px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:12px;
  background:rgba(0,0,0,.14);
  font-size:13px;
  color:var(--muted);
  max-height:140px;
  overflow:auto;
  padding-right:6px;
}
.selItem{
  display:flex;
  justify-content:space-between;
  gap:8px;
  padding:6px 0;
  border-bottom:1px dashed rgba(255,255,255,0.10);
}
.selItem:last-child{border-bottom:0}

.form{padding:10px 14px 0}
label{display:block; font-size:12px; color:var(--muted); margin:10px 0 6px}
input{
  width:100%;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,0.10);
  background:rgba(0,0,0,0.25);
  color:var(--text);
  outline:none;
}
input:focus{border-color: rgba(244,197,66,0.55); box-shadow:0 0 0 3px rgba(244,197,66,0.12)}

.btn{
  width:100%;
  margin-top:12px;
  padding:12px 14px;
  border-radius:12px;
  border:none;
  background:var(--accent);
  color:#111;
  font-weight:900;
  cursor:pointer;
}
.btn:disabled{opacity:0.6; cursor:not-allowed}

.pay{
  margin:14px 14px 0;
  padding:12px 12px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,0.08);
  background:rgba(0,0,0,0.22);
}
.pay-title{font-weight:900; margin-bottom:6px}
.pay-text{font-size:12px; color:var(--muted); line-height:1.45}
.pay-note{
  display:block;
  margin-top:8px;
  color:rgba(255,255,255,.82);
  font-size:11px;
}
.mobile-sticky-bar[hidden]{display:none !important}

.toast{
  position:fixed;
  top:18px;
  right:18px;
  min-width:280px;
  max-width:420px;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,0.12);
  background:rgba(0,0,0,0.75);
  color:var(--text);
  opacity:0;
  transform:translateY(-10px);
  transition:all .20s ease;
  pointer-events:none;
  z-index:9999;
}
.toast.show{opacity:1; transform:translateY(0)}
.toast:not(.hide){opacity:1; transform:translateY(0)}
.toast.hide{opacity:0}
.toast.ok{border-color:rgba(46,204,113,0.55)}
.toast.err{border-color:rgba(231,76,60,0.55)}

@media (max-width: 980px){
  .map-scroll{height:clamp(600px, 74vh, 860px)}
}

@media (max-width: 768px){
  .topbar{
    flex-wrap:wrap;
    align-items:flex-start;
    gap:10px;
    padding:12px 12px 10px;
  }
  .brand-title{font-size:15px}
  .brand-sub{font-size:11px; line-height:1.35; max-width:calc(100vw - 32px)}
  .container{padding:10px 8px 96px}
  .public-event .container{padding:8px 8px 96px}
  .map-card__intro{padding:10px 12px 6px}
  .map-card__intro .title{font-size:24px}
  .subtitle{font-size:14px; line-height:1.45}
  .legend{
    gap:8px 12px;
    padding:10px 12px 12px;
    font-size:11px;
  }
  .legend .dot{width:10px;height:10px;margin-right:7px}
  .card-head{
    padding:10px 12px 6px;
    align-items:center;
    gap:10px;
  }
  .card-title{font-size:16px}
  .card-help{font-size:12px}
  .picked,.total{
    padding:6px 10px;
    font-size:11px;
  }
  .map-controls{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    padding:0 8px 8px;
  }
  .chip{
    width:100%;
    min-height:46px;
    padding:10px 8px;
    font-size:13px;
  }
  .map-scroll{
    height:max(540px, 68svh);
    min-height:0;
    max-height:760px;
    border-radius:16px;
  }
  .map-stage{border-radius:16px}
  .mini-map{display:none}
  .seat-selection-panel{
    grid-template-columns:1fr;
    gap:10px;
    padding:12px;
  }
  .seat-selection-panel__head{display:block}
  .seat-selection-panel__head strong{font-size:15px}
  .seat-selection-panel__head > div:first-child span{font-size:12px}
  .seat-selection-panel__head .total{
    display:inline-block;
    margin-top:10px;
  }
  .seat-selection-panel .selectedList{
    max-height:144px;
  }
  .seat-selection-panel__action{
    width:100%;
    min-width:0;
  }
  .reservation-modal{
    align-items:end;
    padding:0;
  }
  .reservation-dialog{
    width:100%;
    max-height:92dvh;
    border-radius:20px 20px 0 0;
  }
  .reservation-dialog__head{
    padding-top:12px;
    border-top-left-radius:20px;
    border-top-right-radius:20px;
  }
  .modal-seat-picker{
    grid-template-columns:repeat(auto-fit,minmax(52px,1fr));
    gap:8px;
    padding:14px 12px;
  }
  .modal-seat{
    min-height:50px;
    font-size:15px;
  }
  .reservation-summary{
    display:block;
    padding:12px 12px 0;
  }
  .reservation-summary .total{
    display:inline-block;
    margin-top:12px;
  }
  .form{padding:10px 12px 0}
  .btn{
    min-height:50px;
    font-size:16px;
  }
  .pay{
    margin:12px 12px 0;
  }
  .toast{
    left:12px;
    right:12px;
    min-width:0;
  }
  .mobile-sticky-bar{
    position:fixed;
    left:8px;
    right:8px;
    bottom:8px;
    z-index:1200;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:12px;
    border:1px solid rgba(244,197,66,.35);
    border-radius:16px;
    background:rgba(7,12,22,.94);
    backdrop-filter:blur(10px);
    box-shadow:0 16px 40px rgba(0,0,0,.38);
  }
  .mobile-sticky-bar__meta{
    display:grid;
    gap:4px;
    min-width:0;
    font-size:12px;
    color:var(--muted);
  }
  .mobile-sticky-bar__meta strong{
    color:#fff;
    font-size:14px;
  }
  .mobile-sticky-bar__action{
    width:auto;
    min-width:128px;
    margin:0;
    flex:0 0 auto;
  }
  .public-event .map-card{
    overflow:visible;
  }
}

input,
select,
textarea{
  font-size:16px;
}

@media (max-width: 600px){
  .map-card{border-radius:14px}
  .map-card__intro .title{font-size:22px}
  .map-scroll{height:max(500px, 64svh);max-height:700px}
  .mobile-sticky-bar{
    left:6px;
    right:6px;
    bottom:6px;
    padding:10px 11px;
    gap:10px;
  }
  .mobile-sticky-bar__meta{
    font-size:11px;
  }
  .mobile-sticky-bar__meta strong{
    font-size:13px;
  }
  .mobile-sticky-bar__action{
    min-width:112px;
  }
}
.footer{display:flex;justify-content:center;gap:22px;padding:28px 20px 38px;color:#8c93a3;font-size:13px}
@media(max-width:600px){.footer{flex-direction:column;align-items:center;gap:6px}}

/* Public reservation map: premium ticketing experience */
.public-event{--map-navy:#07101e;--map-panel:#0d1728;--map-gold:#e0b858;background:radial-gradient(circle at 18% 8%,rgba(40,79,132,.24),transparent 28%),linear-gradient(180deg,#08111f,#050913 72%)}
.public-event .topbar{padding:13px clamp(16px,3vw,42px);background:rgba(5,10,19,.76);border-color:rgba(224,184,88,.14)}
.public-event .brand-title{color:#f3d88e;font-size:18px;letter-spacing:.04em}
.public-event .container{max-width:1540px;padding:22px clamp(12px,2.2vw,32px) 48px}
.event-map-hero{display:grid;grid-template-columns:minmax(220px,31%) 1fr;min-height:250px;margin-bottom:22px;overflow:hidden;border:1px solid rgba(224,184,88,.24);border-radius:24px;background:linear-gradient(135deg,rgba(18,31,51,.98),rgba(8,15,27,.98));box-shadow:0 24px 65px rgba(0,0,0,.34)}
.event-map-hero__cover{position:relative;min-height:250px;background:radial-gradient(circle at 45% 32%,rgba(224,184,88,.25),transparent 48%),linear-gradient(145deg,#17263d,#080e19)}
.event-map-hero__cover:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 65%,rgba(10,18,31,.9))}
.event-map-hero__cover img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.event-map-hero__content{display:flex;flex-direction:column;justify-content:center;padding:26px clamp(24px,4vw,58px)}
.event-map-hero__topline{display:flex;align-items:center;justify-content:space-between;gap:16px}.event-map-hero__topline .eyebrow{margin:0}
.event-status{display:inline-flex;padding:6px 10px;border:1px solid rgba(76,213,151,.34);border-radius:999px;background:rgba(37,164,107,.12);color:#85e5b8;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.08em}
.event-map-hero h1{margin:9px 0 16px;font-size:clamp(27px,3.2vw,46px);line-height:1.05;letter-spacing:-.03em}
.event-facts{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:19px}.event-facts>span{display:grid;gap:3px;min-width:116px;padding:9px 13px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(255,255,255,.035)}
.event-facts small{color:#8e9caf;font-size:10px;text-transform:uppercase;letter-spacing:.08em}.event-facts strong{font-size:13px;color:#f5f7fa}
.event-map-hero__cta{color:#f1d17c;font-size:18px}.event-map-hero__content>p{margin:5px 0 0;color:#aeb9c9;font-size:13px;line-height:1.5}
.map-page-head{display:flex;align-items:end;justify-content:space-between;gap:22px;margin:0 2px 16px}.map-page-head h2{margin:0;font-size:clamp(25px,2.4vw,34px);letter-spacing:-.025em}.map-page-head p:not(.eyebrow){margin:6px 0 0;color:#96a3b6;font-size:13px}
.map-stats{display:grid;grid-template-columns:repeat(4,minmax(92px,1fr));gap:8px}.map-stats>span{display:grid;gap:2px;padding:9px 12px;border:1px solid rgba(255,255,255,.09);border-radius:12px;background:rgba(255,255,255,.035)}
.map-stats small{color:#8997aa;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.map-stats strong{font-size:16px}.map-stat--selected{border-color:rgba(48,139,255,.42)!important;background:rgba(31,122,224,.12)!important}
.reservation-workspace{display:grid;grid-template-columns:minmax(0,1fr) 330px;align-items:start;gap:16px}.reservation-sidebar{display:grid;gap:14px;position:sticky;top:16px}.public-event .map-card{border-color:rgba(224,184,88,.17);border-radius:20px;background:#090f1b;box-shadow:0 25px 65px rgba(0,0,0,.34)}
.map-selection-instruction{margin:0;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.07);color:#f2d582;font-size:13px;font-weight:800;line-height:1.45}
.legend{gap:9px;padding:13px 14px;border-bottom:1px solid rgba(255,255,255,.07);color:#dce3ec;font-size:12px;font-weight:750}.legend__item{gap:7px;padding:7px 10px;border:1px solid rgba(255,255,255,.08);border-radius:999px;background:rgba(255,255,255,.035)}
.legend .dot{width:11px;height:11px;margin:0;box-shadow:0 0 9px currentColor}.dot.selected{background:#1f7ae0;border:1px solid #9bc8ff}
.map-controls{flex-wrap:nowrap;padding:10px 12px;overflow-x:auto;border-bottom:1px solid rgba(255,255,255,.07);scrollbar-width:thin}
.chip,#zoomFitBtn,#fullMapBtn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:7px 12px;border:1px solid rgba(255,255,255,.11);border-radius:10px;background:rgba(255,255,255,.055);color:#e8edf5;font-size:12px;font-weight:750;text-shadow:none;cursor:pointer;transition:.16s ease}.chip:hover{border-color:rgba(224,184,88,.45);background:rgba(224,184,88,.1);transform:translateY(-1px)}#fullMapBtn{margin-left:auto;border-color:rgba(224,184,88,.25);color:#f0d486}
.map-scroll{height:clamp(620px,72vh,850px);background:radial-gradient(ellipse at 50% 35%,rgba(43,82,132,.18),transparent 47%),#060b13}.map-stage{border:0;border-radius:0;background:linear-gradient(rgba(126,153,187,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(126,153,187,.035) 1px,transparent 1px),radial-gradient(ellipse at 50% 40%,rgba(70,106,151,.17),transparent 56%),#080f1b;background-size:30px 30px,30px 30px,auto,auto;box-shadow:inset 0 0 100px rgba(0,0,0,.56)}
.ballroom-table{border-width:2px;background:radial-gradient(circle at 35% 24%,rgba(255,255,255,.2),transparent 28%),linear-gradient(145deg,color-mix(in srgb,var(--category-color) 50%,#2b2b2b),#10151d);box-shadow:0 13px 26px rgba(0,0,0,.46),inset 0 1px rgba(255,255,255,.2),inset 0 0 0 5px color-mix(in srgb,var(--category-color) 12%,transparent)}
.ballroom-table:hover,.ballroom-table:focus-visible{filter:brightness(1.12);transform:translate(-50%,-53%) scale(1.02)!important;box-shadow:0 19px 38px rgba(0,0,0,.52),0 0 0 3px rgba(255,255,255,.12)}.table-group.is-active .ballroom-table{filter:brightness(1.12);box-shadow:0 0 0 4px rgba(31,122,224,.38),0 0 30px rgba(31,122,224,.45),0 16px 35px rgba(0,0,0,.5)}
.ballroom-table--vip{border-color:#e6bd56;box-shadow:0 0 0 1px rgba(255,232,151,.65),0 0 34px rgba(224,184,88,.32),0 15px 30px rgba(0,0,0,.48),inset 0 1px rgba(255,255,255,.25)}
.ballroom-seat:hover:not(:disabled){transform:scale(1.08)!important;filter:brightness(1.18)}.ballroom-seat:disabled{opacity:.62;filter:saturate(.42)}.ballroom-seat.is-selected{z-index:8!important;transform:scale(1.12)!important;border:2px solid #cfe5ff!important;box-shadow:0 0 0 3px rgba(31,122,224,.32),0 0 20px #1f7ae0,0 8px 18px rgba(0,0,0,.52)}
.seat-selection-panel{display:flex;flex-direction:column;gap:0;padding:20px;border:1px solid rgba(224,184,88,.2);border-radius:20px;background:linear-gradient(180deg,rgba(16,28,47,.98),rgba(8,15,27,.98));box-shadow:0 24px 60px rgba(0,0,0,.35)}
.seat-selection-panel__head{display:grid;grid-template-columns:1fr;gap:11px}.selection-kicker{display:block;margin-bottom:4px;color:#d9b660;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.12em}.seat-selection-panel__head strong{font-size:18px;line-height:1.25}
.selection-count{display:flex;justify-content:space-between;padding:9px 11px;border:1px solid rgba(31,122,224,.25);border-radius:10px;background:rgba(31,122,224,.1);color:#aab7ca;font-size:12px}.selection-count strong{color:#8fc3ff;font-size:12px}
.selection-hint{margin:12px 0;color:#95a3b7;font-size:12px;line-height:1.5}.active-table-details{padding:12px;border:1px solid rgba(224,184,88,.2);border-radius:12px;background:rgba(224,184,88,.065)}.active-table-details>div{display:flex;justify-content:space-between;gap:10px;color:#f2d582;font-size:13px}.active-table-details p{margin:8px 0 0;color:#aeb9c8;font-size:11px;line-height:1.5}
.reservation-cta{display:grid;gap:9px;padding:16px;border:1px solid rgba(224,184,88,.28);border-radius:18px;background:linear-gradient(180deg,rgba(16,28,47,.98),rgba(8,15,27,.98));box-shadow:0 18px 45px rgba(0,0,0,.3)}.reservation-cta .btn{width:100%;min-height:46px}.reservation-cta__primary{background:linear-gradient(135deg,#f1ca70,#d9a63d);color:#101722}.reservation-cta__secondary{border:1px solid rgba(241,202,112,.55);background:transparent;color:#f1ca70;box-shadow:none}.reservation-cta .btn:disabled{cursor:not-allowed;filter:saturate(.2);opacity:.5}.reservation-cta__prompt{margin:2px 0;color:#f1c36c;font-size:11px;line-height:1.4;text-align:center}
.reservation-deadline-info,.reservation-deadline-alert{padding:14px 16px;border-radius:16px}.reservation-deadline-info{display:grid;gap:4px;border-color:rgba(224,184,88,.28);background:rgba(224,184,88,.07)}.reservation-deadline-info span{color:#aeb8c7;font-size:11px}.reservation-deadline-info strong{color:#f1ca70;font-size:15px}.reservation-deadline-info p{margin:5px 0 0;color:#ffce72;font-size:12px;font-weight:800}.reservation-deadline-alert{border-color:rgba(255,174,76,.45);background:rgba(130,76,15,.22);color:#ffd392;font-size:13px;line-height:1.5}.reservation-deadline-alert--closed{display:grid;gap:8px;margin:18px 0;border-color:rgba(231,76,60,.5);background:rgba(122,29,37,.28);color:#ffb8b2;font-size:16px;font-weight:850;text-align:center}.reservation-deadline-alert--closed span{font-size:13px;font-weight:650}.reservation-workspace[hidden],.reservation-deadline-info[hidden],.reservation-deadline-alert[hidden],.reservation-deadline-alert [hidden],#openReservationBtn[hidden],#mobileOpenReservationBtn[hidden]{display:none!important}
.selection-empty-message{margin:0;color:#c5cedb;font-size:14px;line-height:1.55;text-align:center}.selection-empty-message[hidden],.selection-details[hidden],.reservation-cta[hidden]{display:none!important}.selection-details{display:contents}
.seat-selection-panel .selectedList{max-height:190px;margin:12px 0;padding:10px;background:rgba(0,0,0,.18)}.selection-totals{display:grid;gap:8px;padding:12px 0;border-top:1px solid rgba(255,255,255,.08)}.selection-totals span{display:flex;justify-content:space-between;color:#95a3b7;font-size:12px}.selection-totals strong{color:#f1f4f8}.selection-totals__total{margin-top:3px;padding-top:10px;border-top:1px dashed rgba(255,255,255,.12);font-size:14px!important}.selection-totals__total strong{color:#f1cf72;font-size:19px}
.seat-selection-panel__action{min-width:0;margin-top:8px;background:linear-gradient(135deg,#f1ca70,#d9a63d);box-shadow:0 11px 24px rgba(190,133,28,.23)}.seat-selection-panel__action--secondary{background:transparent;box-shadow:none}.selection-expiry{margin:0;color:#aeb9c8;font-size:11px;line-height:1.45;text-align:center}
.event-full-map .event-map-hero,.event-full-map .map-page-head,.event-full-map .seat-selection-panel,.event-full-map .footer{display:none}.event-full-map .reservation-workspace{display:block}.event-full-map .map-card{height:100vh}.event-full-map .map-controls{position:absolute;top:12px;left:12px;right:12px;z-index:30;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:rgba(5,10,18,.88);backdrop-filter:blur(10px)}
@media(max-width:1050px){.reservation-workspace{grid-template-columns:minmax(0,1fr) 300px}.map-stats{grid-template-columns:repeat(2,minmax(100px,1fr))}}
@media(max-width:820px){.public-event .container{padding:10px 8px 96px}.event-map-hero{grid-template-columns:1fr;min-height:0;border-radius:18px}.event-map-hero__cover{min-height:190px}.event-map-hero__cover:after{background:linear-gradient(0deg,rgba(10,18,31,.85),transparent 60%)}.event-map-hero__content{padding:20px}.event-map-hero h1{margin-bottom:13px}.event-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.event-facts>span{min-width:0}.map-page-head{display:block}.map-stats{margin-top:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.reservation-workspace{display:block}.seat-selection-panel{display:none}.legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.legend__item{justify-content:flex-start;padding:8px;font-size:10px}.map-controls{display:flex;gap:7px;padding:9px;overflow-x:auto}.chip,#zoomFitBtn,#fullMapBtn{width:auto;min-width:max-content;min-height:38px}.map-controls #fullMapBtn{margin-left:0}.map-scroll{height:max(520px,66svh);max-height:720px;border-radius:0}.mobile-sticky-bar{border-color:rgba(224,184,88,.38);background:rgba(8,15,27,.96)}}

/* Reservation panel seat picker V2 */
.table-picker__heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:11px}
.table-picker__heading strong{color:#f5d77f;font-size:15px}
.table-picker__heading span{color:#aeb9c8;font-size:10px;text-align:right}
.table-seat-picker{display:grid;grid-template-columns:repeat(5,minmax(34px,1fr));gap:8px}
.panel-seat{display:flex;align-items:center;justify-content:center;min-width:0;min-height:32px;border:1px solid #34d399;border-radius:8px;background:#047857;color:#fff;font:800 11px/1 inherit;cursor:pointer;transition:transform .16s ease,filter .16s ease,box-shadow .16s ease}
.panel-seat--neutral{border-color:#667085;background:#3d4654;color:#d6dae1;cursor:default}.table-picker__empty{color:#aeb9c8!important;font-size:11px!important;line-height:1.4;text-align:left!important}
.event-full-map .reservation-sidebar{display:none}
.panel-seat:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.16)}
.panel-seat--hold,.panel-seat--reserved{border-color:#ffe27a;background:#d6a719}
.panel-seat--sold,.panel-seat--taken,.panel-seat--paid,.panel-seat--unavailable{border-color:#ff9da4;background:#c83f49}
.panel-seat.is-selected{border-color:#d9ebff;background:#1f7ae0;box-shadow:0 0 0 2px rgba(117,181,255,.3),0 0 16px rgba(31,122,224,.9)}
.panel-seat:disabled{cursor:not-allowed;filter:saturate(.35);opacity:.55}
.mobile-table-picker{width:100%;padding-bottom:11px;border-bottom:1px solid rgba(255,255,255,.09)}
.mobile-sticky-bar__actions{display:grid;gap:6px}
.mobile-sticky-bar__action--secondary{border:1px solid rgba(241,202,112,.55);background:transparent;color:#f1ca70;box-shadow:none}
.selItem--seat{display:grid;grid-template-columns:.55fr .75fr .9fr 1.4fr;align-items:start;gap:8px}
.selItem--seat span{display:grid;gap:2px;min-width:0}.selItem--seat small{color:#78869b;font-size:9px;text-transform:uppercase;letter-spacing:.05em}.selItem--seat b{overflow:hidden;color:#eef2f7;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:820px){
  .reservation-sidebar{position:static;margin-top:14px}
  .public-event .container{padding-bottom:230px}
  .mobile-sticky-bar{flex-wrap:wrap}
  .mobile-sticky-bar__meta{flex:1}
  .mobile-sticky-bar__actions{flex:1 1 190px}
  .mobile-sticky-bar__action{width:100%}
}
@media(max-width:480px){.event-map-hero__cover{min-height:160px}.event-map-hero__content{padding:17px}.event-map-hero__topline{align-items:flex-start}.event-status{font-size:9px}.event-map-hero__cta{font-size:16px}.map-page-head{padding:0 4px}.map-page-head h2{font-size:25px}.map-stats>span{padding:8px 10px}.map-stats strong{font-size:14px}.legend{padding:9px}.legend__item{border-radius:10px;line-height:1.25}.map-scroll{height:max(500px,65svh)}}

/* World-class reservation polish */
.reservation-steps{display:grid;gap:7px;margin:0;padding:13px 15px;list-style:none;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(8,15,27,.76);color:#aeb8c7;font-size:11px;line-height:1.3}
.reservation-steps li{display:flex;align-items:center;gap:9px}
.reservation-steps li span{display:grid;place-items:center;flex:0 0 20px;height:20px;border:1px solid rgba(224,184,88,.32);border-radius:50%;background:rgba(224,184,88,.08);color:#e8c86f;font-size:10px;font-weight:900}
.map-stats>span{position:relative;overflow:hidden;min-height:62px;padding:11px 14px;border-color:rgba(255,255,255,.12);background:linear-gradient(145deg,rgba(255,255,255,.065),rgba(255,255,255,.025));box-shadow:0 10px 24px rgba(0,0,0,.16)}
.map-stats>span:before{position:absolute;inset:0 auto 0 0;width:3px;content:"";background:#34d399}
.map-stats>span:nth-child(2):before{background:#d6a719}.map-stats>span:nth-child(3):before{background:#c83f49}.map-stats>span:nth-child(4):before{background:#1f7ae0}
.map-stats small{font-size:12px}.map-stats strong{font-size:20px;line-height:1.1}.map-stats>span:nth-child(1) strong{color:#52e1a8}.map-stats>span:nth-child(2) strong{color:#f0cc51}.map-stats>span:nth-child(3) strong{color:#ff7f88}.map-stats>span:nth-child(4) strong{color:#80baff}
.ballroom-table:hover,.ballroom-table:focus-visible{border-color:#e6bd56!important;transform:translate(-50%,-53%) scale(1.03)!important;box-shadow:0 19px 38px rgba(0,0,0,.52),0 0 0 3px rgba(230,189,86,.3),0 0 22px rgba(224,184,88,.25)}
.table-group.is-active .ballroom-table{border-width:4px!important;border-color:#f2cf72!important;filter:brightness(1.17);animation:active-table-glow 1.8s ease-in-out infinite;box-shadow:0 0 0 5px rgba(224,184,88,.28),0 0 38px rgba(224,184,88,.75),0 17px 38px rgba(0,0,0,.55)}
@keyframes active-table-glow{0%,100%{box-shadow:0 0 0 4px rgba(224,184,88,.24),0 0 25px rgba(224,184,88,.55),0 17px 38px rgba(0,0,0,.55)}50%{box-shadow:0 0 0 7px rgba(224,184,88,.14),0 0 44px rgba(242,207,114,.9),0 17px 38px rgba(0,0,0,.55)}}
@media(prefers-reduced-motion:reduce){.table-group.is-active .ballroom-table{animation:none}}
.active-table-details>.table-picker__heading{display:grid;grid-template-columns:1fr auto;align-items:center;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.09)}
.table-picker__heading strong{grid-row:1 / 3;color:#f5d77f;font-size:19px;letter-spacing:.04em}.table-picker__heading span{display:block;color:#d6dce5;font-size:11px;line-height:1.35;text-align:right}.table-picker__heading span:last-child{color:#f1ca70;font-weight:800}
.active-table-details>.table-seat-picker{display:grid;width:100%;min-width:0}
.table-seat-picker--premium{grid-template-columns:1fr;gap:10px}
.premium-table-picker{position:relative;width:min(246px,100%);aspect-ratio:1;margin:0 auto 2px}
.premium-table-picker__core{position:absolute;left:50%;top:50%;display:grid;place-items:center;width:105px;height:105px;transform:translate(-50%,-50%);border:2px solid rgba(242,207,114,.75);border-radius:50%;background:radial-gradient(circle at 35% 25%,rgba(255,255,255,.13),transparent 30%),linear-gradient(145deg,#3a3222,#15191e);box-shadow:inset 0 0 0 5px rgba(242,207,114,.08),0 10px 25px rgba(0,0,0,.38);pointer-events:none}
.premium-table-picker__core small{color:#c7ad68;font-size:8px;font-weight:900;letter-spacing:.08em}.premium-table-picker__core strong{color:#fff2c7;font-size:25px;line-height:1}.premium-table-picker__core span{color:#abb5c3;font-size:9px}
.panel-seat.premium-table-picker__seat{position:absolute;left:var(--seat-x);top:var(--seat-y);width:34px;height:34px;min-height:34px;transform:translate(-50%,-50%);border-radius:50%;box-shadow:0 5px 12px rgba(0,0,0,.36)}
.panel-seat.premium-table-picker__seat:hover:not(:disabled){transform:translate(-50%,-50%) scale(1.09)}
.table-seat-picker__quick-label{color:#8f9caf;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.table-seat-picker__grid{display:grid;grid-template-columns:repeat(5,minmax(32px,1fr));gap:6px;width:100%}
.panel-seat{height:34px;min-height:34px;border-radius:9px;font-size:12px}
.mini-map{width:136px;height:136px;border-color:rgba(224,184,88,.38);box-shadow:0 16px 34px rgba(0,0,0,.45),0 0 20px rgba(224,184,88,.08)}
.reservation-sidebar,.seat-selection-panel,.active-table-details,.table-seat-picker{min-width:0;max-width:100%}
.reservation-sidebar{overflow:visible}.seat-selection-panel{overflow:hidden}
@media(max-width:1050px){.seat-selection-panel{padding:16px}.active-table-details{padding:10px}.premium-table-picker{width:min(224px,100%)}.panel-seat.premium-table-picker__seat{width:32px;height:32px;min-height:32px}.premium-table-picker__core{width:94px;height:94px}.table-seat-picker__grid{gap:5px}}
@media(max-width:820px){.reservation-steps,.reservation-cta{display:none}}
