/* The viewer owns its chrome; no page header/footer styles enter this dialog. */
dialog.photo-viewer#lightbox-dialog,dialog.photo-viewer#admin-photo-viewer{--pv-header-height:52px;--pv-footer-height:40px;width:var(--pv-width,700px);height:var(--pv-height,86dvh);max-width:calc(100vw - 144px);max-height:calc(100dvh - 32px);padding:0;margin:auto;border:1px solid #e5e5e5;border-radius:16px;background:#fff;overflow:hidden;color:#222;box-shadow:0 24px 80px #0002;box-sizing:border-box}
dialog.photo-viewer[open]{display:flex;flex-direction:column}.photo-viewer::backdrop{background:#15151570;backdrop-filter:blur(5px)}
.photo-viewer .pv-header{position:static;display:flex;align-items:center;justify-content:space-between;gap:12px;height:var(--pv-header-height);min-height:0;flex:0 0 var(--pv-header-height);padding:0 14px;margin:0;border-bottom:1px solid #eee;background:#fff;box-sizing:border-box}
.photo-viewer .pv-heading{min-width:0}.photo-viewer .pv-heading h2{font-size:14px;line-height:1.3;margin:0;font-weight:550;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.photo-viewer .pv-heading p{display:flex;gap:9px;font-size:10px;line-height:1.3;color:#86868b;margin:3px 0 0;white-space:nowrap}.pv-heading [data-pv-counter]{font-variant-numeric:tabular-nums;color:#555}
.photo-viewer .pv-tools{display:flex;align-items:center;gap:8px;flex-shrink:0}.photo-viewer button{cursor:pointer;font:inherit;margin:0;min-height:0;box-sizing:border-box}.pv-zoom-control{display:flex;align-items:center;gap:0;border:1px solid #eee;border-radius:999px;height:30px}.pv-zoom-control [data-pv-scale]{font:10px/1 ui-sans-serif,system-ui,sans-serif;font-variant-numeric:tabular-nums;text-align:center;min-width:37px;color:#666}.photo-viewer [data-pv-minus],.photo-viewer [data-pv-plus]{border:0;background:none;color:#555;font-size:16px;padding:0;width:28px;height:28px;border-radius:50%}.photo-viewer [data-pv-fit]{border:0;border-radius:999px;font-size:11px;line-height:1;padding:0 10px;height:30px;background:#f5f5f5;color:#555;white-space:nowrap}.photo-viewer .pv-close{width:30px;height:30px;flex:none;border:0;border-radius:50%;background:#f5f5f5;font-size:24px;line-height:1;padding:0;color:#777}.photo-viewer button:disabled{opacity:.3;cursor:default}.photo-viewer button:focus-visible,.photo-viewer a:focus-visible,.pv-viewport:focus-visible{outline:2px solid #777;outline-offset:-3px}
.photo-viewer .pv-canvas{position:relative;min-height:0;flex:1;background:#f6f6f7}.pv-viewport{width:100%;height:100%;overflow:auto;overscroll-behavior:contain;touch-action:none;scrollbar-width:thin;cursor:zoom-in}.is-zoomed .pv-viewport{cursor:grab}.is-zoomed .pv-viewport:active{cursor:grabbing}.pv-plane{position:relative;min-width:100%;min-height:100%}.photo-viewer .pv-image{display:block;position:absolute;margin:0;max-width:none;max-height:none;object-fit:contain;user-select:none;-webkit-user-select:none;-webkit-user-drag:none}.photo-viewer .pv-state{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;color:#86868b;font-size:13px;text-align:center;pointer-events:none}.pv-state[hidden]{display:none}
.photo-viewer .pv-arrow{position:absolute;top:50%;transform:translateY(-50%);width:32px;height:42px;border:1px solid #e5e5e599;border-radius:11px;background:#ffffffed;color:#333;font-size:29px;line-height:1;box-shadow:0 3px 16px #0000000a;padding:0}.pv-arrow[hidden]{display:none}.pv-previous{left:6px}.pv-next{right:6px}
.photo-viewer .pv-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:0 0 var(--pv-footer-height);height:var(--pv-footer-height);min-height:0;margin:0;padding:0 14px;border-top:1px solid #eee;background:#fff;box-sizing:border-box}.photo-viewer .pv-filename{display:block;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#86868b;font-size:10px;line-height:1.2}.photo-viewer .pv-hint{font-size:10px;color:#929292;margin:0;white-space:nowrap}.photo-viewer .pv-download{flex-shrink:0;display:block;padding:7px 12px;border-radius:999px;background:#222;color:#fff;text-decoration:none;font-size:10px;line-height:1.2;white-space:nowrap}
@media(max-width:700px){dialog.photo-viewer#lightbox-dialog,dialog.photo-viewer#admin-photo-viewer{--pv-header-height:48px;max-width:calc(100vw - 20px);border-radius:14px}.photo-viewer .pv-header{padding:0 10px;gap:8px}.photo-viewer .pv-heading h2{font-size:13px}.photo-viewer .pv-heading p{font-size:9px;gap:6px}.photo-viewer .pv-tools{gap:5px}.photo-viewer .pv-heading [data-pv-section]{display:none}.photo-viewer [data-pv-fit]{font-size:10px;padding:0 8px}.photo-viewer .pv-close{width:30px;height:30px;font-size:23px}.photo-viewer .pv-arrow{width:30px;height:38px;font-size:27px}.pv-previous{left:5px}.pv-next{right:5px}.photo-viewer .pv-footer{padding:0 10px;gap:10px}.photo-viewer .pv-hint{display:none}.photo-viewer .pv-filename{font-size:10px}.photo-viewer .pv-download{font-size:10px;padding:7px 12px}}
.admin-photo-open{display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in}

/* Anchor navigation to the viewport so changing image shape never moves it. */
.photo-viewer .pv-arrow{position:fixed;top:50dvh;z-index:2;width:40px;height:48px;border-radius:12px;box-shadow:0 4px 20px #0002}
.photo-viewer .pv-previous{left:24px;right:auto}.photo-viewer .pv-next{right:24px;left:auto}
@media(max-width:700px){.photo-viewer .pv-arrow{width:36px;height:44px}.photo-viewer .pv-previous{left:max(12px,env(safe-area-inset-left))}.photo-viewer .pv-next{right:max(12px,env(safe-area-inset-right))}}

.photo-viewer[open]{animation:pv-viewer-fade .16s ease-out}
@keyframes pv-viewer-fade{from{opacity:0}to{opacity:1}}
