/* ZIROMIND — shared image viewer (static/js/zm_lightbox.js). Self-contained: no page variables. */
img.zm-lb-can { cursor: zoom-in; }
.zm-lb-open, .zm-lb-open body { overflow: hidden; }
.zm-lb[hidden], .zm-lb-hint[hidden], .zm-lb-btn[hidden] { display: none !important; }
.zm-lb { position: fixed; inset: 0; z-index: 2147483000; background: rgba(6, 6, 10, .92); display: flex;
         align-items: center; justify-content: center; font-family: system-ui, -apple-system, "Segoe UI", sans-serif; }
.zm-lb-stage { position: absolute; inset: 56px 64px 24px; display: flex; align-items: center; justify-content: center;
               overflow: hidden; touch-action: none; }
.zm-lb-img { max-width: 100%; max-height: 100%; object-fit: contain; user-select: none; -webkit-user-drag: none;
             transform-origin: center center; transition: transform .08s ease-out; cursor: zoom-in; }
.zm-lb-zoomed .zm-lb-img { cursor: grab; transition: none; }
.zm-lb-zoomed .zm-lb-img:active { cursor: grabbing; }
.zm-lb-bar { position: absolute; top: 10px; right: 12px; display: flex; align-items: center; gap: 6px; }
.zm-lb-count { color: #c9c9d6; font-size: 14px; min-width: 52px; text-align: center; font-variant-numeric: tabular-nums; }
.zm-lb-btn { min-width: 40px; height: 40px; padding: 0 10px; border-radius: 10px; border: 1px solid rgba(255, 255, 255, .18);
             background: rgba(20, 20, 30, .85); color: #f2f2f7; font-size: 20px; line-height: 1; cursor: pointer; }
.zm-lb-btn:hover, .zm-lb-btn:focus-visible { border-color: #00c896; outline: none; }
.zm-lb-reset { font-size: 13px; }
.zm-lb-close { font-size: 26px; }
.zm-lb-prev, .zm-lb-next { position: absolute; top: 50%; transform: translateY(-50%); width: 48px; height: 64px; font-size: 34px; }
.zm-lb-prev { left: 8px; }
.zm-lb-next { right: 8px; }
.zm-lb-hint { position: fixed; z-index: 2147482999; width: 32px; height: 32px; border-radius: 8px; padding: 5px;
              border: 1px solid rgba(255, 255, 255, .25); background: rgba(10, 10, 16, .78); color: #fff; cursor: zoom-in;
              display: flex; align-items: center; justify-content: center; }
.zm-lb-hint:focus-visible { outline: 2px solid #00c896; }
.zm-lb-hint-passive { pointer-events: none; }
.zm-lb-hint svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.zm-lb-hint-sm { width: 22px; height: 22px; padding: 3px; border-radius: 6px; }
.zm-lb-hint-sm svg { width: 15px; height: 15px; }
@media (max-width: 640px) {
    .zm-lb-stage { inset: 56px 8px 16px; }
    .zm-lb-prev, .zm-lb-next { top: auto; bottom: 14px; transform: none; height: 48px; }
}
