/* STADYUM PRO V8.03
   LOCAL stadyum planını FTP kombine satışında birebir gösterir.
   Yalnız UI/sunum katmanıdır; koltuk/hold/satış kuralları değişmez. */

/* ===== GERÇEK LOCAL STADYUM KROKİSİ ===== */
[data-vip-seat-app] .vip-map-viewport,
[data-vip-seat-app] .vip-map-viewport-v687{
  position:relative!important;
  height:clamp(500px,61dvh,690px)!important;
  min-height:500px!important;
  overflow:hidden!important;
  padding:12px!important;
  background:linear-gradient(180deg,#f2f7fb,#e7f0f7)!important;
}
[data-vip-seat-app] .vip-map-canvas{
  position:absolute!important;
  width:min(1180px,calc(100% - 26px))!important;
  min-width:880px!important;
  height:auto!important;
  min-height:0!important;
  padding:0!important;
  transform-origin:center center!important;
  will-change:transform,left,top!important;
}
[data-vip-seat-app] .vip-stadium-layout--exact{
  position:relative!important;
  display:block!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  aspect-ratio:1.82/1!important;
  overflow:hidden!important;
  isolation:isolate!important;
  border:1px solid #cbdbe7!important;
  border-radius:24px!important;
  background:
    linear-gradient(rgba(255,255,255,.30) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.30) 1px,transparent 1px),
    linear-gradient(180deg,#eaf3fa,#dce9f3)!important;
  background-size:24px 24px,24px 24px,auto!important;
  box-shadow:inset 0 0 0 8px rgba(255,255,255,.40),0 18px 45px rgba(22,61,94,.09)!important;
}
[data-vip-seat-app] .vip-stadium-layout--exact::before{
  content:""!important;
  position:absolute!important;
  inset:6.5%!important;
  z-index:1!important;
  border:11px solid rgba(142,169,191,.48)!important;
  border-radius:24%!important;
  background:rgba(255,255,255,.18)!important;
  box-shadow:inset 0 0 0 4px rgba(255,255,255,.88),inset 0 0 0 12px rgba(120,151,177,.07)!important;
  pointer-events:none!important;
}
[data-vip-seat-app] .vip-stadium-layout--exact.plan-rectangle::before{border-radius:16%!important}
[data-vip-seat-app] .vip-stadium-layout--exact.plan-horseshoe::before{border-bottom-color:transparent!important}
[data-vip-seat-app] .vip-stadium-layout--exact .vip-stadium-orbit{
  position:absolute!important;inset:4.5%!important;z-index:2!important;
  border:1px solid rgba(89,119,145,.16)!important;border-radius:25%!important;pointer-events:none!important
}
[data-vip-seat-app] .vip-stadium-layout--exact .vip-stadium-plan-image{
  position:absolute!important;
  inset:6%!important;
  z-index:2!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
  background-size:contain!important;
  opacity:.33!important;
  transform:scale(var(--vip-plan-scale,1)) rotate(var(--vip-plan-rotation,0deg))!important;
  transform-origin:center!important;
  pointer-events:none!important;
}
[data-vip-seat-app] .vip-stadium-layout--exact:not(.has-plan) .vip-stadium-plan-image{display:none!important}
[data-vip-seat-app] .vip-stadium-layout--exact .vip-pitch-wrap{
  position:absolute!important;
  left:50%!important;top:50%!important;
  width:40%!important;height:43%!important;
  min-width:0!important;min-height:0!important;
  transform:translate(-50%,-50%)!important;
  z-index:3!important;
  display:block!important;
  pointer-events:none!important;
}
[data-vip-seat-app] .vip-stadium-layout--exact .vip-pitch{
  position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
  min-height:0!important;border-radius:8px!important;border:3px solid rgba(255,255,255,.92)!important;
  background:repeating-linear-gradient(90deg,#37b66d 0 12.5%,#31aa65 12.5% 25%)!important;
  box-shadow:0 18px 34px rgba(19,96,58,.20),inset 0 0 0 1px rgba(15,107,62,.2)!important;
  transform:none!important;
}

/* Tribün: LOCAL editörde kaydedilmiş x/y/w/h/rotation/shape/color değerleri birebir */
[data-vip-seat-app] .vip-stadium-layout--exact>.vip-zone-card--exact:not(.is-modal-active){
  position:absolute!important;
  left:var(--vip-zone-x,50%)!important;
  top:var(--vip-zone-y,15%)!important;
  width:var(--vip-zone-w,14%)!important;
  height:var(--vip-zone-h,9%)!important;
  min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;
  margin:0!important;padding:8px 9px 7px!important;
  transform:translate(-50%,-50%) rotate(var(--vip-zone-r,0deg))!important;
  transform-origin:center center!important;
  border:1px solid color-mix(in srgb,var(--vip-zone-color,#19d3ae) 52%,#b8ccdc)!important;
  border-radius:11px!important;
  background:linear-gradient(180deg,#fff 0%,color-mix(in srgb,var(--vip-zone-color,#19d3ae) 9%,#f4f8fb) 100%)!important;
  box-shadow:0 7px 17px rgba(25,58,88,.13)!important;
  display:grid!important;place-content:center!important;gap:2px!important;
  overflow:visible!important;cursor:pointer!important;z-index:7!important;
  color:#133552!important;text-align:center!important;
  clip-path:none;
}
[data-vip-seat-app] .vip-stadium-layout--exact>.vip-zone-card--exact:not(.is-modal-active)::before{
  content:""!important;position:absolute!important;left:7px!important;right:7px!important;top:0!important;height:4px!important;
  border-radius:0 0 7px 7px!important;background:var(--vip-zone-color,#19d3ae)!important
}
[data-vip-seat-app] .vip-stadium-layout--exact>.vip-zone-card--exact:not(.is-modal-active)::after{
  content:""!important;position:absolute!important;left:8px!important;right:8px!important;bottom:5px!important;height:4px!important;
  border-radius:999px!important;background:color-mix(in srgb,var(--vip-zone-color,#19d3ae) 48%,#d9e6ef)!important;opacity:.75!important
}
[data-vip-seat-app] .vip-stadium-layout--exact>.vip-zone-card--exact[data-shape="TRAPEZOID_LEFT"]{clip-path:polygon(9% 0,100% 0,92% 100%,0 100%)!important}
[data-vip-seat-app] .vip-stadium-layout--exact>.vip-zone-card--exact[data-shape="TRAPEZOID_RIGHT"]{clip-path:polygon(0 0,91% 0,100% 100%,8% 100%)!important}
[data-vip-seat-app] .vip-stadium-layout--exact>.vip-zone-card--exact[data-shape="TRIANGLE_LEFT"]{clip-path:polygon(14% 0,100% 0,86% 100%,0 100%)!important}
[data-vip-seat-app] .vip-stadium-layout--exact>.vip-zone-card--exact[data-shape="TRIANGLE_RIGHT"]{clip-path:polygon(0 0,86% 0,100% 100%,14% 100%)!important}
[data-vip-seat-app] .vip-stadium-layout--exact>.vip-zone-card--exact[data-shape="ARC"]{border-radius:999px 999px 12px 12px!important}
[data-vip-seat-app] .vip-stadium-layout--exact>.vip-zone-card--exact:not(.is-modal-active):hover,
[data-vip-seat-app] .vip-stadium-layout--exact>.vip-zone-card--exact:not(.is-modal-active):focus-visible,
[data-vip-seat-app] .vip-stadium-layout--exact>.vip-zone-card--exact:not(.is-modal-active).is-active{
  /* V8.04: hover/focus/aktif durumda tribün koordinatı ASLA değişmez. */
  transform:translate(-50%,-50%) rotate(var(--vip-zone-r,0deg))!important;
  z-index:20!important;filter:brightness(1.015)!important;box-shadow:0 12px 25px rgba(25,58,88,.20)!important;outline:3px solid rgba(38,111,213,.20)!important;outline-offset:2px!important
}
[data-vip-seat-app] .vip-stadium-layout--exact>.vip-zone-card--exact:not(.is-modal-active) .vip-zone-card__head{
  display:grid!important;place-items:center!important;gap:1px!important;padding:0!important;border:0!important;background:transparent!important;text-align:center!important
}
[data-vip-seat-app] .vip-stadium-layout--exact>.vip-zone-card--exact:not(.is-modal-active) .vip-zone-card__head>div{min-width:0!important;max-width:100%!important}
[data-vip-seat-app] .vip-stadium-layout--exact>.vip-zone-card--exact:not(.is-modal-active) .vip-zone-card__head>div>small{display:none!important}
[data-vip-seat-app] .vip-stadium-layout--exact>.vip-zone-card--exact:not(.is-modal-active) .vip-zone-card__head h3{
  display:block!important;max-width:100%!important;margin:0!important;color:#123654!important;
  font-size:clamp(8px,.84vw,12px)!important;line-height:1.12!important;font-weight:950!important;
  white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;text-transform:none!important
}
[data-vip-seat-app] .vip-stadium-layout--exact>.vip-zone-card--exact:not(.is-modal-active) .vip-zone-stock{
  display:block!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;color:#698197!important;font-size:7.5px!important;line-height:1!important;white-space:nowrap!important
}
[data-vip-seat-app] .vip-stadium-layout--exact>.vip-zone-card--exact:not(.is-modal-active) .vip-zone-stock b{color:#315a79!important;font-size:8px!important}
[data-vip-seat-app] .vip-stadium-layout--exact>.vip-zone-card--exact:not(.is-modal-active) .vip-zone-type-chip{
  position:absolute!important;right:5px!important;top:5px!important;display:inline-flex!important;padding:2px 5px!important;border-radius:999px!important;
  background:#edf4f8!important;color:#46647e!important;font-size:6.5px!important;font-weight:950!important;line-height:1!important
}
[data-vip-seat-app] .vip-stadium-layout--exact>.vip-zone-card--exact:not(.is-modal-active) .vip-zone-rows,
[data-vip-seat-app] .vip-stadium-layout--exact>.vip-zone-card--exact:not(.is-modal-active) .vip-zone-open-button,
[data-vip-seat-app] .vip-stadium-layout--exact>.vip-zone-card--exact:not(.is-modal-active) [data-vip-low-stock]{display:none!important}
[data-vip-seat-app] .vip-stadium-layout--exact>.vip-zone-card--exact[data-kind="VIP"]{border-color:#d1a83d!important;background:linear-gradient(180deg,#fffef7,#fff3cf)!important}
[data-vip-seat-app] .vip-stadium-layout--exact>.vip-zone-card--exact[data-kind="VIP"]::before{background:#d4aa3c!important}

/* ===== MODAL: BODY PORTAL + VIEWPORT GARANTİSİ ===== */
body>.vip-zone-modal[hidden]{display:none!important}
body>.vip-zone-modal{
  position:fixed!important;inset:0!important;top:0!important;left:0!important;right:0!important;bottom:0!important;
  width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;
  z-index:2147483646!important;margin:0!important;padding:clamp(6px,1.1vw,14px)!important;
  display:grid!important;place-items:center!important;overflow:hidden!important;transform:none!important;filter:none!important;contain:none!important;isolation:isolate!important
}
body>.vip-zone-modal .vip-zone-modal__backdrop{position:absolute!important;inset:0!important;z-index:0!important}
body>.vip-zone-modal .vip-zone-modal__panel{
  position:relative!important;inset:auto!important;z-index:2!important;
  width:min(1240px,calc(100vw - 20px))!important;
  height:min(900px,calc(100dvh - 20px))!important;
  min-height:0!important;max-height:calc(100dvh - 20px)!important;
  margin:0!important;transform:none!important;
  display:grid!important;grid-template-rows:auto auto minmax(0,1fr) auto!important;
  overflow:hidden!important;border-radius:20px!important;contain:none!important
}
body>.vip-zone-modal .vip-zone-modal__header{position:relative!important;flex:0 0 auto!important;min-height:0!important}
body>.vip-zone-modal .vip-zone-modal__legend{position:relative!important;flex:0 0 auto!important;min-height:0!important;overflow-x:auto!important}
body>.vip-zone-modal .vip-zone-modal__body{position:relative!important;min-height:0!important;overflow:auto!important;overscroll-behavior:contain!important}
body>.vip-zone-modal .vip-zone-modal__footer{position:relative!important;bottom:auto!important;flex:0 0 auto!important;min-height:0!important}

/* Haritadaki mutlak tribün modal içine taşınınca normal tam genişlik kart olur. */
body>.vip-zone-modal .vip-zone-card--exact.is-modal-active{
  position:relative!important;left:auto!important;top:auto!important;right:auto!important;bottom:auto!important;
  width:100%!important;height:auto!important;min-height:0!important;max-width:none!important;max-height:none!important;
  margin:0!important;transform:none!important;clip-path:none!important;border-radius:17px!important;overflow:visible!important
}
body>.vip-zone-modal .vip-zone-card--exact.is-modal-active .vip-zone-type-chip{display:none!important}
body>.vip-zone-modal .vip-zone-card--exact.is-modal-active .vip-zone-rows{display:grid!important}

/* Düşük ekran yüksekliğinde başlık/footer ASLA ekran dışına çıkmaz. */
@media (max-height:760px) and (min-width:761px){
  body>.vip-zone-modal{padding:4px!important}
  body>.vip-zone-modal .vip-zone-modal__panel{width:calc(100vw - 8px)!important;height:calc(100dvh - 8px)!important;max-height:calc(100dvh - 8px)!important;border-radius:14px!important}
  body>.vip-zone-modal .vip-zone-modal__header{padding:8px 12px 6px!important}
  body>.vip-zone-modal .vip-zone-modal__header h2{font-size:18px!important;margin:1px 0!important}
  body>.vip-zone-modal .vip-zone-modal__header p{display:none!important}
  body>.vip-zone-modal .vip-zone-modal__legend{padding:5px 12px!important}
  body>.vip-zone-modal .vip-zone-modal__body{padding:6px!important}
  body>.vip-zone-modal .vip-zone-card.is-modal-active .vip-zone-card__head{padding:7px 10px!important}
  body>.vip-zone-modal .vip-zone-card.is-modal-active .vip-zone-rows{padding:6px!important;gap:4px!important}
  body>.vip-zone-modal .vip-seat-row{padding:4px 5px!important}
  body>.vip-zone-modal .vip-zone-modal__footer{padding:6px 10px!important}
  body>.vip-zone-modal .vip-zone-modal__actions .btn{min-height:36px!important}
}

@media (max-width:760px){
  [data-vip-seat-app] .vip-map-viewport,[data-vip-seat-app] .vip-map-viewport-v687{height:440px!important;min-height:440px!important;padding:6px!important;overflow:auto!important}
  [data-vip-seat-app] .vip-map-canvas{position:relative!important;left:0!important;top:0!important;width:760px!important;min-width:760px!important;transform:none!important;margin:0 auto!important}
  [data-vip-seat-app] .vip-stadium-layout--exact{aspect-ratio:1.82/1!important}
  body>.vip-zone-modal{padding:0!important;place-items:stretch!important}
  body>.vip-zone-modal .vip-zone-modal__panel{width:100vw!important;height:100dvh!important;max-height:100dvh!important;border-radius:0!important;border:0!important}
}

@media (max-width:460px){
  body>.vip-zone-modal .vip-zone-modal__header{padding:9px 10px 7px!important}
  body>.vip-zone-modal .vip-zone-modal__header p{display:none!important}
  body>.vip-zone-modal .vip-zone-modal__legend{padding:6px 9px!important}
  body>.vip-zone-modal .vip-zone-modal__body{padding:5px!important}
  body>.vip-zone-modal .vip-zone-modal__footer{padding:7px 8px calc(7px + env(safe-area-inset-bottom))!important}
}

/* V8.04 sabit tribün garantisi: eski tema hover transformlarını kesin olarak bastırır. */
[data-vip-seat-app] .vip-stadium-layout--exact>.vip-zone-card--exact:not(.is-modal-active),
[data-vip-seat-app] .vip-stadium-layout--exact>.vip-zone-card--exact:not(.is-modal-active):hover,
[data-vip-seat-app] .vip-stadium-layout--exact>.vip-zone-card--exact:not(.is-modal-active):active,
[data-vip-seat-app] .vip-stadium-layout--exact>.vip-zone-card--exact:not(.is-modal-active):focus{transition:box-shadow .14s ease,border-color .14s ease,filter .14s ease!important;transform:translate(-50%,-50%) rotate(var(--vip-zone-r,0deg))!important}

/* V8.07 anlik coklu koltuk secimi */
.vip-seat.v807-seat-pending{position:relative;isolation:isolate;box-shadow:0 0 0 3px rgba(37,99,235,.18),0 8px 20px rgba(15,61,120,.16)!important;animation:v807SeatPulse .55s ease both}
.vip-seat.v807-seat-pending::after{content:'';position:absolute;inset:4px;border:2px solid rgba(255,255,255,.88);border-top-color:transparent;border-radius:999px;animation:v807SeatSpin .62s linear infinite;pointer-events:none}
@keyframes v807SeatSpin{to{transform:rotate(360deg)}}
@keyframes v807SeatPulse{0%{transform:scale(.94)}55%{transform:scale(1.06)}100%{transform:scale(1)}}

/* V8.07 ortak POS pending görünümü */
.pos-seat.v807-seat-pending{position:relative;overflow:hidden;box-shadow:0 0 0 3px rgba(20,110,210,.16),0 8px 18px rgba(18,61,108,.12)!important;animation:v807PosSeatPulse .5s ease both}
.pos-seat.v807-seat-pending::after{content:'';position:absolute;width:16px;height:16px;right:5px;top:5px;border-radius:50%;border:2px solid rgba(255,255,255,.95);border-top-color:transparent;animation:v807PosSpin .6s linear infinite}
@keyframes v807PosSpin{to{transform:rotate(360deg)}}
@keyframes v807PosSeatPulse{0%{transform:scale(.95)}60%{transform:scale(1.045)}100%{transform:scale(1)}}
