: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;
}
.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%}

.card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:14px 14px 10px;
  border-bottom:1px solid rgba(255,255,255,0.06);
}

.card-title{font-weight:800}
.card-help{font-size:12px; 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%;
  height:clamp(720px, 82vh, 1040px);
  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;
}

.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;
}

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

.mini-map{
  position:absolute;
  right:16px;
  bottom:16px;
  width:160px;
  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%}

.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 .picked,
.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);
}

.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);
}

.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:pointer;
  font-family:inherit;
  appearance:none;
  pointer-events:auto;
  transition:transform .15s ease,filter .15s ease,box-shadow .15s ease;
}
.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--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__category{
  max-width:118px;
  overflow:hidden;
  color:inherit;
  font-size:10px;
  line-height:1;
  font-weight:900;
  letter-spacing:.25px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.ballroom-table__number{
  font-size:19px;
  line-height:1;
  font-weight:900;
}

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

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

.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);
}

.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:#168b5b;border:1px solid #73e2b0}
.dot.hold{background:#d6a719;border:1px solid #ffe27a}
.dot.taken{background:#c83f49;border:1px solid #ff9da4}
.dot.vip{background:#d4af37;border:1px solid #fff0a6}

.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}

.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, 76vh, 820px)}
}

@media (max-width: 600px){
  .container{min-width:0;max-width:100%;padding:12px 6px 28px}
  .topbar{padding:14px}
  .hero{padding:18px 8px 14px}
  .hero h1{font-size:30px}
  .subtitle{font-size:14px}
  .card-head{align-items:center;flex-wrap:wrap}
  .card-head>div:first-child{min-width:0}
  .map-card{border-radius:14px}
  .map-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:0 8px 8px}
  .chip{width:100%;padding:9px 10px;font-size:13px}
  .map-scroll{height:max(500px, 68svh);min-height:0;max-height:680px}
  .map-stage{border-radius:12px}
  .mini-map{width:112px;height:84px;right:8px;bottom:8px}
  .legend{gap:10px 14px}
  .reservation-modal{align-items:end;padding:0}
  .reservation-dialog{width:100%;max-height:92vh;border-radius:20px 20px 0 0}
  .reservation-summary{display:block}
  .reservation-summary .total{display:inline-block;margin-top:12px}
  .toast{left:12px;right:12px;min-width:0}
}
