html.doccam-open, html.doccam-open body { overflow: hidden; }
.doccam { position: fixed; inset: 0; z-index: 2147483000; background: #000; color: #fff; height: 100dvh; touch-action: manipulation; -webkit-user-select: none; user-select: none; font-family: inherit; }
.doccam-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.doccam-guide { position: absolute; left: 50%; top: 47%; transform: translate(-50%, -50%); border: 3px solid rgba(255, 255, 255, 0.95); border-radius: 18px; box-shadow: 0 0 0 100vmax rgba(0, 0, 0, 0.45); pointer-events: none; }
.doccam-guide.guide-card { width: min(88vw, calc(62dvh * 1.586)); aspect-ratio: 1.586; }
.doccam-guide.guide-page { width: min(84vw, calc(66dvh * 0.773)); aspect-ratio: 0.773; border-radius: 8px; }
.doccam-guide.guide-none { display: none; }
.doccam-top, .doccam-bottom { position: absolute; left: 0; right: 0; display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 0.75rem max(1rem, env(safe-area-inset-right)) 0.75rem max(1rem, env(safe-area-inset-left)); }
.doccam-top { top: 0; padding-top: max(0.75rem, env(safe-area-inset-top)); background: linear-gradient(rgba(0, 0, 0, 0.55), transparent); }
.doccam-bottom { bottom: 0; padding-bottom: max(1.1rem, env(safe-area-inset-bottom)); background: linear-gradient(transparent, rgba(0, 0, 0, 0.6)); }
.doccam-title { flex: 1; text-align: center; font-weight: 600; font-size: 1.05rem; }
.doccam-btn { min-height: 44px; min-width: 88px; padding: 0.5rem 1rem; border: 0; border-radius: 999px; background: rgba(255, 255, 255, 0.18); color: #fff; font: inherit; font-weight: 600; font-size: 1rem; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.doccam-btn:disabled { opacity: 0.5; }
.doccam-primary { background: #fff; color: #111; }
.doccam-torch.is-on { background: #ffd54a; color: #111; }
.doccam-shutter { width: 76px; height: 76px; flex: none; border-radius: 50%; border: 5px solid #fff; background: rgba(255, 255, 255, 0.85); box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.35); }
.doccam-shutter:active { transform: scale(0.94); background: #fff; }
.doccam.no-live .doccam-shutter::after { content: "Camera"; display: block; color: #111; font-weight: 700; font-size: 0.75rem; }
.doccam-hint { position: absolute; left: 1rem; right: 1rem; bottom: calc(110px + env(safe-area-inset-bottom)); text-align: center; font-size: 0.95rem; text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8); }
.doccam-review { position: absolute; inset: 0; background: #000; }
.doccam-review-img { position: absolute; left: 1rem; right: 1rem; top: calc(1rem + env(safe-area-inset-top)); bottom: calc(6.2rem + env(safe-area-inset-bottom)); width: calc(100% - 2rem); height: calc(100% - 7.2rem - env(safe-area-inset-top) - env(safe-area-inset-bottom)); object-fit: contain; }
.doccam-crop { position: absolute; inset: 0; background: #000; z-index: 1; }
.doccam-crop-stage { position: absolute; left: 1rem; right: 1rem; top: calc(4.2rem + env(safe-area-inset-top)); bottom: calc(6.2rem + env(safe-area-inset-bottom)); overflow: hidden; touch-action: none; }
.doccam-crop-img { position: absolute; }
.doccam-crop-box { position: absolute; border: 2px solid #fff; box-shadow: 0 0 0 100vmax rgba(0, 0, 0, 0.55); cursor: move; touch-action: none; }
.doccam-crop-handle { position: absolute; width: 44px; height: 44px; touch-action: none; }
.doccam-crop-handle::after { content: ""; position: absolute; width: 22px; height: 22px; border: 0 solid #fff; }
.doccam-crop-handle.h-nw { left: -4px; top: -4px; cursor: nwse-resize; } .h-nw::after { left: 0; top: 0; border-left-width: 5px; border-top-width: 5px; }
.doccam-crop-handle.h-ne { right: -4px; top: -4px; cursor: nesw-resize; } .h-ne::after { right: 0; top: 0; border-right-width: 5px; border-top-width: 5px; }
.doccam-crop-handle.h-sw { left: -4px; bottom: -4px; cursor: nesw-resize; } .h-sw::after { left: 0; bottom: 0; border-left-width: 5px; border-bottom-width: 5px; }
.doccam-crop-handle.h-se { right: -4px; bottom: -4px; cursor: nwse-resize; } .h-se::after { right: 0; bottom: 0; border-right-width: 5px; border-bottom-width: 5px; }
.doccam-toast { position: absolute; left: 50%; top: calc(4.2rem + env(safe-area-inset-top)); transform: translateX(-50%); max-width: calc(100% - 2rem); padding: 0.55rem 1rem; border-radius: 12px; background: rgba(20, 20, 20, 0.85); font-size: 0.95rem; text-align: center; z-index: 2; }
.doccam-toast.is-error { background: #b42318; }
.doccam-flash { position: absolute; inset: 0; background: #fff; opacity: 0; pointer-events: none; }
.doccam-flash.go { animation: doccam-flash 0.35s ease-out; }
@keyframes doccam-flash { from { opacity: 0.85; } to { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .doccam-flash.go { animation: none; } }
    html:has(.pos-pane.open) .doccam, html:has(.pos-pane.open) .doccam *, html:has(.pos-pane.open) .nav-progress,
