/* v4.6.0 — mobile booking + salon plan viewer hard reset */

/* STEP 1: clean, spacious hall cards. */
#seat-modal .floor-stage-intro,
#seat-modal .category-stage-intro{
  max-width:760px;
  margin:8px auto 22px!important;
  color:#66717b!important;
  font:500 13px/1.55 "DM Sans",Arial,sans-serif!important;
  text-align:center!important;
}

#seat-modal .floor-options-v460{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:18px!important;
  margin:0!important;
  padding:0!important;
}

#seat-modal .floor-card-v460{
  position:relative!important;
  display:grid!important;
  grid-template-columns:150px minmax(0,1fr)!important;
  grid-template-areas:
    "visual copy"
    "actions actions"!important;
  align-items:center!important;
  gap:16px 18px!important;
  width:100%!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:18px!important;
  border:1px solid #dde3e8!important;
  border-radius:20px!important;
  background:#fff!important;
  box-shadow:0 10px 28px rgba(7,41,77,.06)!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}

#seat-modal .floor-card-v460 .floor-card-visual{
  grid-area:visual!important;
  display:grid!important;
  place-items:center!important;
  width:150px!important;
  height:128px!important;
  padding:8px!important;
  border-radius:15px!important;
  background:#f7f8f8!important;
  box-sizing:border-box!important;
}
#seat-modal .floor-card-v460 .floor-card-visual img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  max-width:100%!important;
  object-fit:contain!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
}
#seat-modal .floor-card-v460 .floor-card-copy{
  grid-area:copy!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:center!important;
  gap:5px!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  text-align:left!important;
}
#seat-modal .floor-card-v460 .floor-card-copy small{
  color:#b4843f!important;
  font:800 9px/1.15 Manrope,"DM Sans",sans-serif!important;
  letter-spacing:.12em!important;
}
#seat-modal .floor-card-v460 .floor-card-copy b{
  color:#101820!important;
  font:800 26px/1.08 Manrope,"DM Sans",sans-serif!important;
  letter-spacing:-.04em!important;
}
#seat-modal .floor-card-v460 .floor-card-copy em{
  color:#59646e!important;
  font:500 13px/1.35 "DM Sans",sans-serif!important;
  font-style:normal!important;
}
#seat-modal .floor-card-v460 .floor-card-copy strong{
  color:#07294D!important;
  font:800 14px/1.3 Manrope,"DM Sans",sans-serif!important;
}
#seat-modal .floor-card-actions{
  grid-area:actions!important;
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:10px!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
}
#seat-modal .floor-card-actions button{
  min-width:0!important;
  min-height:46px!important;
  margin:0!important;
  padding:11px 12px!important;
  border-radius:12px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  font:800 10px/1.15 Manrope,"DM Sans",sans-serif!important;
  letter-spacing:.025em!important;
  cursor:pointer!important;
  box-sizing:border-box!important;
}
#seat-modal .floor-plan-button{
  border:1px solid #bfcbd6!important;
  background:#f7fafc!important;
  color:#07294D!important;
}
#seat-modal .floor-select-button{
  border:1px solid #07294D!important;
  background:#07294D!important;
  color:#fff!important;
}
#seat-modal .floor-card-actions .ui-glyph{font-size:16px!important;color:currentColor!important}

/* STEP 2: only one compact plan action, no embedded/hidden giant plan. */
#seat-modal .selected-hall-plan-card{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:16px!important;
  margin:4px 0 20px!important;
  padding:16px 17px!important;
  border:1px solid #dce3e9!important;
  border-radius:16px!important;
  background:#f8fafc!important;
  box-shadow:none!important;
}
#seat-modal .selected-hall-plan-card>div{
  display:grid!important;
  gap:4px!important;
  min-width:0!important;
}
#seat-modal .selected-hall-plan-card small{
  color:#b4843f!important;
  font:800 8px/1.15 Manrope,sans-serif!important;
  letter-spacing:.14em!important;
}
#seat-modal .selected-hall-plan-card b{
  color:#101820!important;
  font:800 17px/1.15 Manrope,"DM Sans",sans-serif!important;
}
#seat-modal .selected-hall-plan-card>button{
  flex:0 0 auto!important;
  min-height:44px!important;
  padding:10px 14px!important;
  border:1px solid #07294D!important;
  border-radius:11px!important;
  background:#07294D!important;
  color:#fff!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  font:800 10px/1.15 Manrope,"DM Sans",sans-serif!important;
  cursor:pointer!important;
}
#seat-modal .selected-hall-plan-card>button .ui-glyph{font-size:16px!important}

/* Native top-layer dialog. It can never sit underneath the ticket dialog. */
#plan-viewer.plan-viewer{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  max-width:none!important;
  height:100dvh!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  overflow:hidden!important;
  color:#101820!important;
}
#plan-viewer.plan-viewer::backdrop{
  background:rgba(2,16,29,.78)!important;
  backdrop-filter:blur(8px)!important;
}
#plan-viewer.plan-viewer:not([open]){display:none!important}
#plan-viewer .plan-viewer-shell{
  position:absolute!important;
  inset:0!important;
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr) auto!important;
  width:100%!important;
  height:100%!important;
  margin:0!important;
  padding:0!important;
  background:#f4f2ee!important;
  overflow:hidden!important;
  box-shadow:none!important;
}
#plan-viewer .plan-viewer-head{
  position:relative!important;
  inset:auto!important;
  min-height:68px!important;
  margin:0!important;
  padding:12px 16px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  border:0!important;
  border-bottom:1px solid #dde2e5!important;
  background:#fff!important;
  color:#101820!important;
  box-sizing:border-box!important;
}
#plan-viewer .plan-viewer-head>div{display:grid!important;gap:4px!important}
#plan-viewer .plan-viewer-head small{
  color:#b4843f!important;
  font:800 8px/1.1 Manrope,sans-serif!important;
  letter-spacing:.16em!important;
}
#plan-viewer .plan-viewer-head b{
  color:#101820!important;
  font:800 19px/1.1 Manrope,"DM Sans",sans-serif!important;
}
#plan-viewer .plan-viewer-head>button{
  flex:0 0 42px!important;
  width:42px!important;
  height:42px!important;
  margin:0!important;
  padding:0!important;
  border:1px solid #d7dde2!important;
  border-radius:50%!important;
  background:#fff!important;
  color:#07294D!important;
  display:grid!important;
  place-items:center!important;
  cursor:pointer!important;
}
#plan-viewer .plan-viewer-head>button .ui-glyph{font-size:19px!important}

#plan-viewer .plan-viewer-viewport{
  position:relative!important;
  display:grid!important;
  place-items:center!important;
  width:100%!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:22px!important;
  overflow:hidden!important;
  background:#e9ecee!important;
  background-image:linear-gradient(rgba(7,41,77,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(7,41,77,.035) 1px,transparent 1px)!important;
  background-size:22px 22px!important;
  touch-action:none!important;
  user-select:none!important;
  -webkit-user-select:none!important;
  cursor:grab!important;
  box-sizing:border-box!important;
}
#plan-viewer .plan-viewer-viewport.dragging{cursor:grabbing!important}
#plan-viewer #plan-viewer-image{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:calc(100% - 4px)!important;
  max-height:calc(100% - 4px)!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  object-fit:contain!important;
  transform:translate3d(0,0,0) scale(1);
  transform-origin:center center!important;
  will-change:transform!important;
  pointer-events:none!important;
  user-select:none!important;
  -webkit-user-drag:none!important;
}
#plan-viewer .plan-viewer-hint{
  position:absolute!important;
  left:50%!important;
  bottom:12px!important;
  transform:translateX(-50%)!important;
  max-width:calc(100% - 28px)!important;
  padding:7px 11px!important;
  border-radius:999px!important;
  background:rgba(7,41,77,.88)!important;
  color:#fff!important;
  font:700 9px/1.2 Manrope,"DM Sans",sans-serif!important;
  white-space:nowrap!important;
  pointer-events:none!important;
}

#plan-viewer .plan-viewer-tools{
  position:relative!important;
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:10px!important;
  width:100%!important;
  max-height:none!important;
  margin:0!important;
  padding:12px 14px calc(12px + env(safe-area-inset-bottom))!important;
  border:0!important;
  border-top:1px solid #dde2e5!important;
  background:#fff!important;
  overflow:visible!important;
  box-sizing:border-box!important;
}
#plan-viewer .plan-zoom-presets{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:8px!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
}
#plan-viewer .plan-zoom-presets button{
  width:100%!important;
  min-width:0!important;
  height:48px!important;
  margin:0!important;
  padding:0 4px!important;
  border:1px solid #cfd8df!important;
  border-radius:12px!important;
  background:#f7f9fb!important;
  color:#07294D!important;
  font:800 13px/1 Manrope,"DM Sans",sans-serif!important;
  box-shadow:none!important;
  cursor:pointer!important;
}
#plan-viewer .plan-zoom-presets button.active,
#plan-viewer .plan-zoom-presets button:focus-visible{
  border-color:#07294D!important;
  background:#07294D!important;
  color:#fff!important;
}
#plan-viewer .plan-viewer-actions{
  display:grid!important;
  grid-template-columns:minmax(150px,.72fr) minmax(210px,1.28fr)!important;
  gap:9px!important;
  width:100%!important;
}
#plan-viewer .plan-reset-button,
#plan-viewer .plan-return{
  width:100%!important;
  min-height:46px!important;
  margin:0!important;
  padding:11px 12px!important;
  border-radius:12px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  font:800 10px/1.15 Manrope,"DM Sans",sans-serif!important;
  cursor:pointer!important;
}
#plan-viewer .plan-reset-button{
  border:1px solid #cfd8df!important;
  background:#fff!important;
  color:#07294D!important;
}
#plan-viewer .plan-return{
  border:1px solid #07294D!important;
  background:#07294D!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}
#plan-viewer .plan-reset-button .ui-glyph,
#plan-viewer .plan-return .ui-glyph{font-size:16px!important;color:currentColor!important}
body.plan-viewer-open{overflow:hidden!important}

@media(max-width:760px){
  #seat-modal .booking-stage[data-stage="floor"]{
    padding-top:18px!important;
  }
  #seat-modal .floor-stage-intro,
  #seat-modal .category-stage-intro{
    margin:6px 5px 22px!important;
    padding:0 7px!important;
    font-size:12px!important;
    line-height:1.55!important;
  }
  #seat-modal .floor-options-v460{
    grid-template-columns:1fr!important;
    gap:16px!important;
    padding:0 2px 16px!important;
  }
  #seat-modal .floor-card-v460{
    grid-template-columns:110px minmax(0,1fr)!important;
    gap:14px!important;
    padding:15px!important;
    border-radius:18px!important;
  }
  #seat-modal .floor-card-v460 .floor-card-visual{
    width:110px!important;
    height:105px!important;
    padding:7px!important;
    border-radius:14px!important;
  }
  #seat-modal .floor-card-v460 .floor-card-copy{gap:4px!important}
  #seat-modal .floor-card-v460 .floor-card-copy b{font-size:22px!important}
  #seat-modal .floor-card-v460 .floor-card-copy em{font-size:11px!important;line-height:1.35!important}
  #seat-modal .floor-card-v460 .floor-card-copy strong{font-size:12px!important}
  #seat-modal .floor-card-actions{gap:8px!important}
  #seat-modal .floor-card-actions button{min-height:44px!important;padding:10px 7px!important;font-size:9px!important}

  #seat-modal .booking-stage[data-stage="block"]{padding-top:14px!important}
  #seat-modal .selected-hall-plan-card{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:12px!important;
    margin:4px 2px 18px!important;
    padding:15px!important;
    border-radius:15px!important;
  }
  #seat-modal .selected-hall-plan-card>button{
    width:100%!important;
    min-height:48px!important;
    font-size:10px!important;
  }

  #plan-viewer .plan-viewer-head{
    min-height:60px!important;
    padding:9px 12px!important;
  }
  #plan-viewer .plan-viewer-head b{font-size:17px!important}
  #plan-viewer .plan-viewer-head>button{width:40px!important;height:40px!important;flex-basis:40px!important}
  #plan-viewer .plan-viewer-viewport{
    padding:12px 10px 34px!important;
  }
  #plan-viewer .plan-viewer-hint{bottom:8px!important;font-size:8px!important;padding:6px 9px!important}
  #plan-viewer .plan-viewer-tools{
    gap:8px!important;
    padding:9px 10px calc(10px + env(safe-area-inset-bottom))!important;
  }
  #plan-viewer .plan-zoom-presets{gap:6px!important}
  #plan-viewer .plan-zoom-presets button{height:46px!important;font-size:12px!important;border-radius:10px!important}
  #plan-viewer .plan-viewer-actions{
    grid-template-columns:1fr!important;
    gap:7px!important;
  }
  #plan-viewer .plan-reset-button,
  #plan-viewer .plan-return{min-height:44px!important;font-size:9px!important}
}

@media(max-width:370px){
  #seat-modal .floor-card-v460{grid-template-columns:96px minmax(0,1fr)!important;padding:12px!important;gap:11px!important}
  #seat-modal .floor-card-v460 .floor-card-visual{width:96px!important;height:96px!important}
  #seat-modal .floor-card-actions{grid-template-columns:1fr!important}
  #plan-viewer .plan-zoom-presets{gap:4px!important}
  #plan-viewer .plan-zoom-presets button{font-size:11px!important}
}
#seat-modal .selected-hall-plan-card>button:disabled{opacity:.45!important;cursor:wait!important}
