/* Trinh xem anh trong app (phong to bang con lan chuot) */
.image-viewer { position: fixed; inset: 0; z-index: 200; background: rgba(8, 12, 20, .95); user-select: none; animation: iv-in .15s ease; }
@keyframes iv-in { from { opacity: 0; } }
.iv-stage { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; overflow: hidden; cursor: zoom-in; }
.image-viewer.zoomed .iv-stage { cursor: grab; }
.image-viewer.dragging .iv-stage { cursor: grabbing; }
.iv-img { max-width: none; max-height: none; transform-origin: center center; transition: transform .12s ease-out; box-shadow: 0 10px 60px rgba(0, 0, 0, .5); }
.image-viewer.dragging .iv-img { transition: none; }
.image-viewer.loading .iv-img { opacity: .3; }
.iv-top {
  position: absolute; top: 0; left: 0; right: 0; display: flex; align-items: center; gap: 12px; padding: 12px 16px;
  color: rgba(255, 255, 255, .85); font-size: 13px; background: linear-gradient(180deg, rgba(0, 0, 0, .55), transparent); pointer-events: none;
}
.iv-top > * { pointer-events: auto; }
.iv-count { font-weight: 700; }
.iv-caption { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; opacity: .8; }
.iv-btn, .iv-zoom {
  border: none; cursor: pointer; color: #fff; background: rgba(255, 255, 255, .12); border-radius: 10px;
  min-width: 36px; height: 36px; padding: 0 10px; font-size: 17px; display: inline-flex; align-items: center; justify-content: center;
  transition: background .15s;
}
.iv-btn:hover, .iv-zoom:hover { background: rgba(255, 255, 255, .26); }
.iv-zoom { font-size: 12.5px; font-weight: 700; min-width: 62px; font-variant-numeric: tabular-nums; }
.iv-bar {
  position: absolute; bottom: 22px; left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: 6px;
  padding: 6px; border-radius: 14px; background: rgba(20, 24, 32, .75); backdrop-filter: blur(8px); box-shadow: 0 8px 30px rgba(0, 0, 0, .4);
}
.iv-sep { width: 1px; height: 22px; background: rgba(255, 255, 255, .2); margin: 0 4px; }
.iv-nav {
  position: absolute; top: 50%; transform: translateY(-50%); width: 48px; height: 72px; border: none; cursor: pointer;
  border-radius: 12px; background: rgba(255, 255, 255, .08); color: #fff; font-size: 40px; line-height: 1;
}
.iv-nav:hover { background: rgba(255, 255, 255, .22); }
.iv-prev { left: 16px; }
.iv-next { right: 16px; }
.image-viewer.single .iv-nav, .image-viewer.single .iv-count { display: none; }
.iv-hint { position: absolute; bottom: 74px; left: 50%; transform: translateX(-50%); color: rgba(255, 255, 255, .45); font-size: 12px; pointer-events: none; white-space: nowrap; }
.image-viewer.zoomed .iv-hint { display: none; }
.msg-image { cursor: zoom-in; }
@media (max-width: 760px) { .iv-nav { width: 38px; height: 56px; font-size: 30px; } .iv-hint { display: none; } }
