/* Mobile document and contact readers have one scroll surface and fixed controls. */
#viewer.pdf-viewer{position:fixed;inset:0;width:100vw;max-width:none;height:100vh;height:100dvh;max-height:none;margin:0;border-radius:0;overflow:hidden;display:flex;flex-direction:column;background:#161618}
#viewer.pdf-viewer>.viewer-head{flex:0 0 auto;min-height:56px;padding:8px 16px;padding-top:max(8px,env(safe-area-inset-top));gap:12px;border-bottom:1px solid #ffffff12}
#viewer.pdf-viewer>.viewer-head>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.pdf-reader{flex:1;min-height:0;display:flex;flex-direction:column}
.pdf-tools{display:flex;align-items:center;justify-content:space-between;flex:0 0 auto;min-height:42px;padding:0 18px;font-size:12px;color:#d4d4d8;border-bottom:1px solid #ffffff0c}
.pdf-original{padding:10px 0}.pdf-position{font-variant-numeric:tabular-nums}
.pdf-scroll{min-height:0;flex:1;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y pinch-zoom;padding:12px 0 24px}
.pdf-page{width:min(100%,1440px);margin:0 auto 14px;background:#fff;position:relative;box-shadow:0 2px 16px #0004}
.pdf-page img{display:block;width:100%;height:100%;object-fit:contain;touch-action:pan-y pinch-zoom}
.pdf-page:not([data-loaded]) img{visibility:hidden}
.pdf-page figcaption{position:absolute;right:8px;bottom:6px;background:#1119;color:#fff;padding:2px 5px;border-radius:3px;font-size:10px}
.pdf-unavailable{padding:25px 18px;color:#ddd;text-align:center;line-height:1.8}
.pdf-navigation{flex:0 0 auto;display:flex;justify-content:center;gap:28px;border-top:1px solid #ffffff16;padding:4px 12px max(4px,env(safe-area-inset-bottom));background:#19191c}
.pdf-navigation button{min-width:100px;font-size:13px;min-height:42px}.pdf-navigation button:disabled{opacity:.3;cursor:default}
.contact-qr-preview{display:block;padding:0;min-height:0;width:100%;cursor:zoom-in}.contact-pop .contact-qr-preview img{width:100%;height:auto;max-height:240px;object-fit:contain}
#viewer.qr-viewer{width:min(92vw,520px);max-height:calc(100dvh - 24px);background:#fff;color:#222;overflow:auto;border-radius:16px}
.qr-viewer .viewer-head{padding:14px 18px;border-bottom:1px solid #eee}.qr-viewer .close{background:#f2f2f3;color:#333}
.qr-sheet{position:relative;padding:72px 24px 22px;text-align:center}.qr-sheet>img{object-fit:contain;width:100%;max-height:58vh;height:auto;touch-action:pinch-zoom}
.qr-download{position:absolute;right:14px;top:12px;min-height:48px;display:inline-flex;align-items:center;gap:8px;padding:0 16px;border-radius:24px;background:#1d1d1f;color:#fff;font-size:14px;font-weight:550}
.qr-download svg{width:20px;height:20px;flex:0 0 auto}.qr-hint{font-size:12px;color:#777;line-height:1.6;margin-top:18px}
@media(max-width:700px){#viewer.qr-viewer{width:calc(100vw - 24px);max-width:none}.qr-sheet{padding:72px 20px 22px}.qr-download{min-height:48px;padding:0 16px}.pdf-tools{padding:0 14px}.pdf-scroll{padding-top:8px}.pdf-page{margin-bottom:10px}}
