/* Photos lightbox overlay */ .photos-lightbox { position: fixed; inset: 0; z-index: 10000; background: var(--color-lightbox-overlay); display: flex; flex-direction: column; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.2s ease; pointer-events: none; } .photos-lightbox.active { opacity: 1; pointer-events: auto; } /* Main content area */ .lightbox-content { position: relative; max-width: 90vw; max-height: 85vh; display: flex; align-items: center; justify-content: center; } .lightbox-content img, .lightbox-content video { max-width: 90vw; max-height: 85vh; object-fit: contain; border-radius: var(--radius-sm); user-select: none; } /* Navigation arrows */ .lightbox-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 48px; height: 48px; border-radius: 50%; border: none; background: var(--color-lightbox-btn-bg); color: var(--color-lightbox-btn-text); font-size: var(--text-xl); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background 0.15s; z-index: 10001; } .lightbox-nav:hover { background: var(--color-lightbox-btn-hover); } .lightbox-prev { left: 20px; } .lightbox-next { right: 20px; } /* Close button */ .lightbox-close { position: absolute; top: 16px; right: 16px; width: 40px; height: 40px; border-radius: 50%; border: none; background: var(--color-lightbox-btn-bg); color: var(--color-lightbox-btn-text); font-size: var(--text-lg); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background 0.15s; z-index: 10001; } .lightbox-close:hover { background: var(--color-lightbox-btn-hover); } /* Top info bar */ .lightbox-info { position: absolute; top: 0; left: 0; right: 0; padding: var(--space-4) 70px var(--space-4) var(--space-5); background: var(--color-lightbox-gradient-top); color: var(--color-lightbox-btn-text); z-index: 10001; } .lightbox-filename { font-size: 15px; font-weight: var(--weight-semibold); margin-bottom: var(--space-0-5); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .lightbox-meta { font-size: var(--text-xs); color: var(--color-lightbox-text-muted); display: flex; gap: var(--space-3); flex-wrap: wrap; } /* Bottom toolbar */ .lightbox-toolbar { position: absolute; bottom: 0; left: 0; right: 0; padding: var(--space-4) var(--space-5); background: var(--color-lightbox-gradient-bottom); display: flex; align-items: center; justify-content: center; gap: var(--space-2); z-index: 10001; } .lightbox-toolbar button { background: var(--color-lightbox-btn-bg); border: none; color: var(--color-lightbox-btn-text); width: 40px; height: 40px; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: var(--text-md); transition: background 0.15s; } .lightbox-toolbar button:hover { background: var(--color-lightbox-btn-hover); } .lightbox-toolbar button.active { color: var(--color-accent); } /* Counter */ .lightbox-counter { position: absolute; bottom: 16px; left: 20px; color: var(--color-lightbox-text-faint); font-size: var(--text-sm); z-index: 10001; } /* EXIF info panel */ .lightbox-infopanel { position: absolute; top: 64px; right: var(--space-4); max-width: 320px; display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-3) var(--space-4); background: var(--color-lightbox-btn-bg); color: var(--color-lightbox-btn-text); border-radius: var(--radius-lg); font-size: var(--text-sm); z-index: 10001; } .lightbox-infopanel.hidden { display: none; } .lb-info-row { display: flex; align-items: center; gap: var(--space-2); word-break: break-word; } .lb-info-row i { width: 18px; text-align: center; opacity: 0.8; } /* Zoomed photo shows a grab cursor for panning */ .lightbox-content img.is-zoomed { cursor: grab; } /* Responsive */ @media (max-width: 768px) { .lightbox-nav { width: 36px; height: 36px; font-size: var(--text-md); } .lightbox-prev { left: 8px; } .lightbox-next { right: 8px; } .lightbox-content img, .lightbox-content video { max-width: 100vw; max-height: 80vh; } }