/* A stable stage on both platforms; only the bitmap transform changes while zooming. */
#planImageModal{z-index:10050!important;backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(0,0,0,.88)}
#planImageModal .plan-image-dialog{width:min(1180px,calc(100vw - 24px));height:min(90dvh,860px);max-height:90dvh;display:flex;flex-direction:column;overflow:hidden}
#planImageStage{position:relative;display:block;flex:1 1 0;min-height:0;aspect-ratio:auto;max-height:none;overflow:hidden;padding:0;touch-action:none;user-select:none;overscroll-behavior:contain;contain:layout paint}
#planImageFull{position:absolute;display:block;max-width:none;max-height:none;object-fit:contain;transform-origin:center;will-change:transform;touch-action:none;cursor:zoom-in;transition:none}
#planImageStage.is-animated #planImageFull{transition:transform 160ms ease-out}
#planImageStage.is-pannable #planImageFull{cursor:grab}
#planImageStage.is-dragging #planImageFull{cursor:grabbing}
#planImageModal .dialog-head,#planImageModal .plan-image-toolbar{flex-shrink:0}
.plan-image-status{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:#c9d5e3;font-size:14px}
.plan-image-status[hidden]{display:none}
#planImageModal .plan-image-toolbar .btn{min-height:44px;min-width:44px}
@media(max-width:768px){
  #planImageModal{padding:0!important}
  #planImageModal .plan-image-dialog{width:100%!important;height:100dvh!important;max-height:100dvh!important;margin:0!important;border-radius:0!important;padding-top:env(safe-area-inset-top)}
  #planImageModal .plan-image-toolbar{padding-bottom:max(10px,env(safe-area-inset-bottom))}
}
@media(prefers-reduced-motion:reduce){#planImageStage.is-animated #planImageFull{transition:none}}
