.lb-overlay { position: fixed; inset: 0; background: rgba(0, 0, 0, 0.92); z-index: 9999; display: none; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.2s ease; }
.lb-overlay.open { display: flex; opacity: 1; }
.lb-stage { max-width: 92vw; max-height: 86vh; display: flex; align-items: center; justify-content: center; }
.lb-img { max-width: 92vw; max-height: 86vh; object-fit: contain; box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5); border-radius: 4px; user-select: none; }
.lb-caption { position: absolute; bottom: 28px; left: 0; right: 0; text-align: center; color: rgba(255, 255, 255, 0.85); font-size: 13px; padding: 0 60px; pointer-events: none; }
.lb-counter { position: absolute; top: 18px; left: 24px; color: rgba(255, 227, 173, 0.85); font-size: 13px; font-weight: 600; }
.lb-close, .lb-prev, .lb-next { position: absolute; background: rgba(0, 0, 0, 0.4); color: #ffe3ad; border: 1px solid rgba(255, 227, 173, 0.3); border-radius: 50%; cursor: pointer; transition: background 0.15s ease, color 0.15s ease; display: flex; align-items: center; justify-content: center; line-height: 1; }
.lb-close { top: 18px; right: 24px; width: 38px; height: 38px; font-size: 26px; }
.lb-prev, .lb-next { top: 50%; transform: translateY(-50%); width: 44px; height: 44px; font-size: 32px; }
.lb-prev { left: 24px; }
.lb-next { right: 24px; }
.lb-close:hover, .lb-prev:hover, .lb-next:hover { background: rgba(239, 170, 61, 0.2); color: #fff; }
@media (max-width: 600px) { .lb-prev, .lb-next { width: 36px; height: 36px; font-size: 26px; } .lb-close { width: 32px; height: 32px; font-size: 22px; } .lb-caption { padding: 0 40px; font-size: 12px; } }
