.cameraPrimer{margin:1.5rem 0;padding:1.25rem;border-radius:1rem;background:var(--scan-status-bg,#1f2733);border:1px solid var(--scan-border,#3a3a3d)}.cameraPrimerRow{display:flex;align-items:flex-start;gap:.75rem;min-height:44px;margin-bottom:1rem}.cameraPrimerRow:last-of-type{margin-bottom:1.25rem}.cameraPrimerBadge{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-weight:700;font-size:.875rem}.cameraPrimerText{margin:0;line-height:1.5;padding-top:.25rem}.cameraPaperToggle{display:flex;align-items:center;gap:.75rem;margin:0 0 1.25rem;font-size:.875rem;color:var(--scan-muted,#b5b5bd)}.cameraPaperToggleButtons{display:inline-flex;gap:.375rem}.cameraPaperToggleButton{min-height:36px;padding:.375rem .875rem;border:1px solid var(--scan-border,#3a3a3d);border-radius:999px;background:transparent;color:var(--scan-fg,#f5f5f7);font:inherit;cursor:pointer}.cameraPaperToggleButton.selected{background:var(--button-primary-bg);border-color:var(--button-primary-bg);color:var(--on-button-primary)}.cameraPaperToggleButton.selected:active{background:var(--button-primary-pressed);border-color:var(--button-primary-pressed)}.cameraNotice{margin:.75rem 0 0;font-size:.8125rem;color:var(--scan-muted,#b5b5bd);text-align:center}.cameraErrorCard{margin:1.5rem 0;padding:1.25rem;border-radius:1rem;background:var(--scan-warning-bg,#3a2e07);border:1px solid var(--scan-warning-fg,#f0c34d);color:var(--scan-fg,#f5f5f7);line-height:1.5}.cameraErrorCard p{margin:0 0 .75rem}.cameraErrorCard ol{margin:0 0 .75rem;padding-left:1.25rem}.cameraViewfinder{position:fixed;inset:0;z-index:50;background:#12161c;color:#fff;display:flex;flex-direction:column;overflow:hidden}.cameraTopBar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:.875rem 1rem}.cameraCloseButton{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:#fff;font-size:1.5rem;line-height:1;cursor:pointer}.cameraStepLabel{color:rgba(255,255,255,.75);font-size:.875rem;font-weight:600}.cameraFrameWrap{flex:1 1;min-height:0;display:flex;align-items:center;justify-content:center;padding:.5rem 1.25rem}.cameraFrame{position:relative;width:100%;max-height:100%;border-radius:.75rem;overflow:hidden;background:#050607;box-shadow:0 0 0 1px rgba(255,255,255,.08)}.cameraVideo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.cameraOverlay{position:absolute;inset:0;pointer-events:none}.cameraCornerDot{position:absolute;width:26px;height:26px;margin-left:-13px;margin-top:-13px;border-radius:50%;background:rgba(255,255,255,.12);border:2px solid rgba(255,255,255,.85);transition:left .16s ease,top .16s ease,background .16s ease,border-color .16s ease}.cameraCornerDot.found{background:#2f9e5c;border-color:#2f9e5c}.cameraCornerDot svg{width:100%;height:100%}.cameraCornerDot path{fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.cameraHandGhostSvg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.cameraHandGhost{opacity:.7}.cameraHandGhostOutline{fill:var(--accent-pressed);stroke:var(--accent-pressed);stroke-linecap:round;stroke-linejoin:round}.cameraHandGhostFill{fill:#e7f0fd;stroke:#e7f0fd;stroke-linecap:round;stroke-linejoin:round}.cameraFlash{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none;z-index:3;animation:cameraFlashPulse .26s ease-out}@keyframes cameraFlashPulse{0%{opacity:.9}to{opacity:0}}.cameraChips{flex-shrink:0;display:flex;justify-content:center;gap:.5rem;flex-wrap:wrap;padding:.75rem 1rem 0}.cameraChip{padding:.25rem .625rem;border-radius:999px;font-size:.75rem;font-weight:600;background:rgba(255,255,255,.08);border:1.5px solid rgba(255,255,255,.35);color:#fff}.cameraChip.pass{border-color:#2f9e5c;background:rgba(47,158,92,.28)}.cameraCueWrap{flex-shrink:0;display:flex;justify-content:center;width:100%;padding:.75rem 1rem 0}.cameraCue{padding:.625rem 1.125rem;border-radius:999px;background:rgba(255,255,255,.08);color:#fff;font-size:1.0625rem;font-weight:600;text-align:center}.cameraCue.perfect{background:#237a48;color:#f0fff6}.cameraShutterRow{flex-shrink:0;display:flex;justify-content:center;padding:1rem 0 1.5rem}.cameraShutter{position:relative;width:92px;height:92px;border-radius:50%;border:none;background:transparent;cursor:pointer;padding:0}.cameraShutterInner{position:absolute;inset:8px;border-radius:50%;background:#fff}.cameraShutterRing{position:absolute;inset:0}.cameraShutterRing circle{fill:none;stroke:#2f9e5c;stroke-width:5;stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset .12s linear}.cameraResumeCard{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1rem;text-align:center;padding:1.5rem}.cameraResumeButton{min-height:3rem;padding:0 1.5rem;border:none;border-radius:999px;background:var(--button-primary-bg);color:var(--on-button-primary);font:inherit;font-weight:600;cursor:pointer}.cameraReviewPage{position:fixed;inset:0;z-index:50;background:var(--bg);color:var(--scan-fg,#f5f5f7);overflow-y:auto;padding:.75rem 1.25rem 1.5rem}.cameraReviewTopBar{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.cameraReviewBack{min-height:44px;display:inline-flex;align-items:center;gap:.125rem;border:none;background:transparent;color:var(--accent-text);font:inherit;font-weight:600;cursor:pointer;padding:0}.cameraReviewStepLabel{color:var(--scan-muted,#b5b5bd);font-size:.875rem}.cameraReviewHeading{font-size:clamp(1.5rem,6vw,1.875rem);letter-spacing:-.02em;line-height:1.1;margin:.5rem 0 .375rem}.cameraReviewSubtitle{color:var(--scan-muted,#b5b5bd);line-height:1.5;margin:0 0 1rem}.cameraReviewCard{position:relative;width:100%;aspect-ratio:3/4;border-radius:1rem;overflow:hidden;background:#12161c}.cameraReviewImg{object-fit:contain}.cameraReviewImg,.cameraReviewSvg{position:absolute;inset:0;width:100%;height:100%}.reviewCornerDot{fill:#2f9e5c;stroke:#fff;stroke-width:3;vector-effect:non-scaling-stroke}.cameraReviewStatus{display:flex;align-items:center;gap:.375rem;margin:.875rem 0 0;padding:.625rem .875rem;border-radius:.625rem;background:var(--scan-ok-bg,#103522);color:var(--scan-ok-fg,#6fe39c);font-weight:600;font-size:.9375rem}.cameraReviewActions{display:flex;flex-direction:column;gap:.75rem;margin-top:1.25rem}.cameraReviewActions button{min-height:3.25rem;border-radius:.75rem;font:inherit;font-weight:600;cursor:pointer;width:100%}.cameraUsePhoto{order:1;border:none;border-radius:999px;background:var(--button-primary-bg);color:var(--on-button-primary)}.cameraResumeButton:active,.cameraUsePhoto:active{background:var(--button-primary-pressed)}.cameraResumeButton:focus-visible,.cameraUsePhoto:focus-visible{outline:2px solid var(--accent-text);outline-offset:3px}.cameraRetake{order:2;border:1.5px solid transparent;background:transparent;color:var(--accent-text);text-decoration:none}.cameraRetake:focus-visible{outline:2px solid var(--accent-text);outline-offset:3px}.cameraReviewPage .cameraNotice{margin-top:1rem}.visuallyHiddenLive{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (prefers-reduced-motion:reduce){.cameraCornerDot{transition:none}.cameraFlash{animation:none;display:none}.cameraShutterRing circle{transition:none}}@media (prefers-contrast:more){.cameraChip,.cameraCloseButton,.cameraCornerDot,.cameraCue,.cameraStepLabel{border:2px solid #fff}.cameraRetake{border-width:2px;border-color:currentColor}}@media print{.cameraPaperToggleButton.selected,.cameraResumeButton,.cameraUsePhoto{background:none;color:var(--text-primary);border:1px solid}}