/* Installation photo viewer only; the source image and ticket form stay intact. */
.ticket-photo-viewer-placeholder{display:block;width:100%;height:130px;flex-shrink:0;border-radius:8px;background:#eef4f8}
.ticket-photo-viewer-error{margin:6px 0;color:#a52e43;font-size:.8rem;line-height:1.4}
dialog.ticket-photo-viewer{box-sizing:border-box;width:min(1200px,calc(100vw - 24px));height:92vh;height:92dvh;max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);padding:0;border:1px solid #b9d4e8;border-radius:14px;color:#173b55;background:#f3f8fc;box-shadow:0 24px 90px #0e294d66;overflow:hidden}
dialog.ticket-photo-viewer[open]{display:grid;grid-template-rows:auto minmax(0,1fr)}
dialog.ticket-photo-viewer::backdrop{background:#10263bd6;backdrop-filter:blur(3px)}
.ticket-photo-viewer-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding:10px 12px;border-bottom:1px solid #cbddea;background:#fff}
.ticket-photo-viewer-title{min-width:0;font-size:.95rem;line-height:1.35;overflow-wrap:anywhere}
.ticket-photo-viewer-controls{display:flex;align-items:center;gap:5px;flex-shrink:0}
.ticket-photo-viewer-control{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;padding:7px 10px;border:1px solid #c7dbea;border-radius:9px;background:#fff;color:#225278;font:inherit;font-weight:600;line-height:1;cursor:pointer}
.ticket-photo-viewer-control:hover{border-color:#497dcb;background:#edf4ff;color:#244bc5}
.ticket-photo-viewer-control:focus-visible,.ticket-photo-viewer-viewport:focus-visible{outline:3px solid #3e70e8;outline-offset:2px}
.ticket-photo-viewer-control:disabled{opacity:.4;cursor:default}
.ticket-photo-viewer-close{color:#364bb2;background:#eef1ff;border-color:#d7dcff;font-size:25px;font-weight:400}
.ticket-photo-viewer-zoom{min-width:34px;text-align:center;font-size:.8rem;color:#557187;font-variant-numeric:tabular-nums}
.ticket-photo-viewer-viewport{box-sizing:border-box;min-width:0;min-height:0;overflow:auto;padding:12px;overscroll-behavior:contain;touch-action:pan-x pan-y pinch-zoom;-webkit-overflow-scrolling:touch}
.ticket-photo-viewer-canvas{box-sizing:content-box;position:relative;margin-right:auto;margin-left:auto;flex-shrink:0}
.ticket-photo-viewer-canvas>img{display:block;box-sizing:border-box;width:100%;height:100%;max-width:none;max-height:none;margin:0;object-fit:contain;border:0;border-radius:4px}
@media(max-width:600px){dialog.ticket-photo-viewer{width:calc(100vw - 12px);max-width:calc(100vw - 12px);height:96vh;height:96dvh;max-height:calc(100vh - 12px);max-height:calc(100dvh - 12px);border-radius:11px}.ticket-photo-viewer-heading{align-items:flex-start;flex-direction:column;gap:7px;padding:9px}.ticket-photo-viewer-controls{align-self:flex-end}.ticket-photo-viewer-title{font-size:.85rem}.ticket-photo-viewer-viewport{padding:12px}}
@media(prefers-reduced-motion:reduce){dialog.ticket-photo-viewer::backdrop{backdrop-filter:none}}

.ticket-photo-grid .ticket-photo-open{display:flex;flex-direction:column;gap:5px;box-sizing:border-box;width:100%;min-width:0;padding:0;border:0;background:transparent;box-shadow:none;color:inherit;font:inherit;text-align:left;cursor:zoom-in}
.ticket-photo-grid .ticket-photo-open:focus-visible{outline:3px solid #3e70e8;outline-offset:3px;border-radius:8px}
