/* Shared accessible screenshot viewer. */
.screenshot-link { display: block; position: relative; cursor: zoom-in; }
.screenshot-link img { display: block; width: 100%; height: auto; }
.screenshot-hint { display: flex; justify-content: center; gap: 0.75rem; padding: 0.75rem; font-size: 0.8125rem; font-weight: 600; color: #1477be; background: #f1f5f9; border-top: 1px solid #e2e8f0; }
.screenshot-link:hover .screenshot-hint { background: #e5f2fc; }
.screenshot-dialog { margin: auto; width: 96vw; max-width: 96vw; height: 94vh; height: 94dvh; max-height: 94vh; max-height: 94dvh; padding: 0; overflow: hidden; border: 1px solid #e2e8f0; border-radius: 16px; box-shadow: 0 24px 80px #0006; background: white; color: #0f172a; }
.screenshot-dialog[open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.screenshot-dialog::backdrop { background: rgba(8,17,31,0.85); }
.screenshot-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; border-bottom: 1px solid #e2e8f0; }
.screenshot-toolbar h2 { min-width: 0; font-size: 1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.screenshot-close { flex-shrink: 0; padding: 0.75rem 1rem; border-radius: 8px; background: #edf5fc; color: #0f172a; font-weight: 600; }
.screenshot-scroll { display: grid; place-items: center; min-width: 0; min-height: 0; overflow: hidden; padding: 8px; background: #08111f; }
.screenshot-scroll img { display: block; width: 100%; height: 100%; min-width: 0; min-height: 0; max-width: 100%; max-height: 100%; object-fit: contain; }
.screenshot-caption { padding: 0.75rem 1rem; font-size: 0.8125rem; color: #475569; }

.screenshot-link:focus-visible, .screenshot-close:focus-visible { outline: 3px solid #2196e0; outline-offset: -3px; }
