.wa-modal.wa-photo-zoom {
 width: min(1440px, 98vw);
 max-width: 98vw;
 height: 94vh;
 height: 94dvh;
 max-height: 94vh;
 max-height: 94dvh;
 padding: 0;
 overflow: hidden;
 background: #20152a;
}
.wa-photo-zoom > .wa {
 display: flex;
 flex-direction: column;
 height: 100%;
 min-height: 0;
 background: #20152a;
}
.wa-photo-zoom > .wa > .wa-modal-header { flex: 0 0 auto; }
.wa-photo-zoom > .wa > .wa-modal-content {
 display: flex;
 flex: 1 1 0;
 min-height: 0;
 padding: 0;
 overflow: hidden;
}
.wpv-viewer {
 display: flex;
 flex-direction: column;
 width: 100%;
 min-height: 0;
 color: #f7f0fb;
 background: #20152a;
}
.wpv-stage {
 position: relative;
 flex: 1 1 0;
 min-height: 0;
 overflow: hidden;
 touch-action: none;
 overscroll-behavior: contain;
 user-select: none;
 -webkit-user-select: none;
 outline-offset: -3px;
}
.wpv-stage:focus-visible { outline: 2px solid #e7cbff; }
.wpv-stage.is-zoomed { cursor: grab; }
.wpv-stage.is-dragging { cursor: grabbing; }
.wpv-stage .wpv-image {
 position: absolute;
 left: 0;
 top: 0;
 display: block;
 width: auto;
 height: auto;
 max-width: none;
 max-height: none;
 margin: 0;
 border: 0;
 border-radius: 0;
 object-fit: contain;
 transform-origin: 0 0;
 cursor: inherit;
 user-select: none;
 -webkit-user-select: none;
 -webkit-user-drag: none;
}
.wa-photo-zoom [hidden] { display: none !important; }
.wpv-message {
 position: absolute;
 inset: 0;
 display: flex;
 flex-direction: column;
 justify-content: center;
 align-items: center;
 gap: 12px;
 padding: 24px;
 color: #f7f0fb;
 text-align: center;
}
.wpv-message p { margin: 0; color: inherit; }
.wpv-controls {
 display: flex;
 flex: 0 0 auto;
 justify-content: center;
 align-items: center;
 gap: 10px;
 padding: 10px 12px 0;
}
.wpv-controls button {
 min-width: 44px;
 min-height: 44px;
 padding: 8px 12px;
 border: 1px solid #d3c1e1;
 border-radius: 8px;
 background: #fff;
 color: #512678;
 font: inherit;
 font-size: 1.2rem;
 font-weight: 700;
 line-height: 1;
 cursor: pointer;
}
.wpv-controls button:focus-visible { outline: 3px solid #d9b6ff; outline-offset: 2px; }
.wpv-controls button:disabled { opacity: .45; cursor: default; }
.wpv-controls .wpv-reset { font-size: .85rem; font-weight: 600; }
.wpv-controls output { min-width: 62px; text-align: center; font-size: .85rem; font-variant-numeric: tabular-nums; }
.wpv-hint {
 flex: 0 0 auto;
 margin: 0;
 padding: 9px 14px 12px;
 color: #f7f0fb;
 font-size: .8rem;
 line-height: 1.4;
 text-align: center;
}
@media (max-width: 600px) {
 .wa-modal.wa-photo-zoom {
  width: 100vw;
  max-width: 100vw;
  height: 100vh;
  height: 100dvh;
  max-height: 100vh;
  max-height: 100dvh;
  margin: 0;
  border-radius: 0;
 }
 .wa-photo-zoom .wa-modal-header { padding: 12px; }
 .wpv-controls { gap: 8px; padding-top: 8px; }
 .wpv-hint { padding-bottom: max(12px, env(safe-area-inset-bottom)); }
}
@media (max-height: 480px) {
 .wa-photo-zoom .wa-modal-header { padding-top: 7px; padding-bottom: 7px; }
 .wpv-controls { padding-top: 5px; }
 .wpv-controls button { min-height: 38px; }
 .wpv-hint { padding-top: 5px; padding-bottom: 6px; font-size: .72rem; }
}
