/* Gesture styles apply only to the full-screen photo surface. */
.imgview-head-actions { display:flex;align-items:center;gap:10px;flex-shrink:0; }
.imgview-download { align-items:center;justify-content:center;min-height:44px;padding:0 12px;border:1px solid #ffffff65;border-radius:10px;color:#fff;font-size:14px;font-weight:600;text-decoration:none; }
.imgview-download:not([hidden]) { display:inline-flex; }
.imgview-download:focus-visible { outline:2px solid #e0af3c;outline-offset:2px; }
#imgviewStage {
  overflow: hidden;
  touch-action: none;
  overscroll-behavior: contain;
  user-select: none;
  -webkit-user-select: none;
  -webkit-touch-callout: none;
  cursor: zoom-in;
}
#imgviewStage:focus-visible { outline: 2px solid #e0af3c; outline-offset: -3px; }
#imgviewStage.photo-is-zoomed { cursor: grab; }
#imgviewStage.photo-is-dragging { cursor: grabbing; }
#imgviewStage #imgviewImg {
  flex: 0 0 auto;
  min-width: 0;
  min-height: 0;
  max-width: none;
  max-height: none;
  object-fit: contain;
  transform-origin: center center;
  will-change: transform;
  pointer-events: none;
  -webkit-user-drag: none;
}
.photo-zoom-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 0 0 10px;
}
.photo-zoom-controls button {
  min-width: 44px;
  min-height: 44px;
  border: 1px solid #8fa79b;
  border-radius: 9px;
  padding: 8px 12px;
  background: #ffffff18;
  color: #fff;
  font: inherit;
  font-size: 16px;
  touch-action: manipulation;
  cursor: pointer;
}
.photo-zoom-controls button:disabled { opacity: .4; cursor: default; }
.photo-zoom-controls button:focus-visible { outline: 2px solid #e0af3c; outline-offset: 2px; }
.photo-zoom-controls output { min-width: 48px; color: #fff; text-align: center; font-variant-numeric: tabular-nums; }
