.img-preview-overlay {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 3000;
  width: min(420px, calc(100vw - 32px));
  background: color-mix(in srgb, white 92%, var(--paper, #f4f1ea));
  border: 1px solid color-mix(in srgb, var(--paper-line, #d9d2c6) 70%, white);
  border-radius: 18px;
  box-shadow: 0 22px 50px rgba(16, 24, 40, .22);
  overflow: hidden;
}

.img-preview-overlay[hidden] {
  display: none;
}

.img-preview-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border-bottom: 1px solid color-mix(in srgb, var(--paper-line, #d9d2c6) 55%, white);
  background: color-mix(in srgb, white 70%, transparent);
}

.img-preview-title {
  min-width: 0;
  font: 600 .82rem/1.2 "DM Sans", sans-serif;
  color: var(--ink, #233127);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.img-preview-close {
  width: 30px;
  height: 30px;
  border: 1px solid color-mix(in srgb, var(--paper-line, #d9d2c6) 70%, white);
  border-radius: 999px;
  background: color-mix(in srgb, white 85%, transparent);
  color: var(--ink-soft, #607061);
  cursor: pointer;
}

.img-preview-body {
  padding: 10px;
}

.img-preview-image {
  display: block;
  width: 100%;
  max-height: min(70vh, 560px);
  object-fit: contain;
  border-radius: 12px;
  background: color-mix(in srgb, white 65%, var(--mist, #edf1eb));
}

@media (max-width: 700px) {
  .img-preview-overlay {
    right: 12px;
    left: 12px;
    bottom: 12px;
    width: auto;
  }
}
