/* Shared viewer controls. Keep the shop copy byte-identical to this file. */
:is(.image-modal, .bank-image-modal) .image-modal-buttons {
  position: fixed;
  top: max(20px, env(safe-area-inset-top, 0px));
  right: max(30px, env(safe-area-inset-right, 0px));
  z-index: 10000;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
}
:is(.image-modal, .bank-image-modal) .image-modal-buttons :is(.image-modal-close, .image-modal-download) {
  position: relative;
  inset: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  min-width: 0;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 10px;
  background: linear-gradient(135deg,rgba(0,0,0,.7),rgba(0,0,0,.6));
  color: #fff;
  box-shadow: 0 6px 20px rgba(0,0,0,.3);
  backdrop-filter: blur(10px);
  font-size: 0;
  line-height: 0;
  text-decoration: none;
  text-shadow: none;
  cursor: pointer;
  user-select: none;
  -webkit-appearance: none;
  appearance: none;
  -webkit-tap-highlight-color: transparent;
  transition: all .4s cubic-bezier(.4,0,.2,1);
}
:is(.image-modal, .bank-image-modal) .image-modal-buttons :is(.image-modal-close, .image-modal-download) svg {
  display: block;
  flex: none;
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
}
:is(.image-modal, .bank-image-modal) .image-modal-buttons :is(.image-modal-close, .image-modal-download):hover {
  background: linear-gradient(135deg,rgba(0,0,0,.8),rgba(0,0,0,.7));
  /* Override the shop's global mobile button transform reset. */
  transform: scale(1.05) !important;
  border-color: rgba(255,255,255,.3);
  box-shadow: 0 8px 25px rgba(0,0,0,.4);
  color: #fff;
}
:is(.image-modal, .bank-image-modal) .image-modal-buttons :is(.image-modal-close, .image-modal-download):focus-visible {
  outline: 2px solid #ffb05c;
  outline-offset: 3px;
}
@media (hover: hover) and (pointer: fine) {
  :is(.image-modal, .bank-image-modal) .image-modal-buttons :is(.image-modal-close, .image-modal-download):active { transform: scale(.98) !important; }
}
@media (max-width: 768px) {
  :is(.image-modal, .bank-image-modal) .image-modal-buttons {
    top: max(15px, env(safe-area-inset-top, 0px));
    right: max(20px, env(safe-area-inset-right, 0px));
    gap: 8px;
  }
  :is(.image-modal, .bank-image-modal) .image-modal-buttons :is(.image-modal-close, .image-modal-download) { width: 40px; height: 40px; }
  :is(.image-modal, .bank-image-modal) .image-modal-buttons :is(.image-modal-close, .image-modal-download) svg { width: 18px; height: 18px; }
}
@media (max-width: 480px) {
  :is(.image-modal, .bank-image-modal) .image-modal-buttons {
    top: max(10px, env(safe-area-inset-top, 0px));
    right: max(15px, env(safe-area-inset-right, 0px));
    gap: 6px;
  }
  :is(.image-modal, .bank-image-modal) .image-modal-buttons :is(.image-modal-close, .image-modal-download) { width: 35px; height: 35px; }
}
@media (prefers-reduced-motion: reduce) {
  :is(.image-modal, .bank-image-modal) .image-modal-buttons :is(.image-modal-close, .image-modal-download) { transition: none; }
}
