:root{--scan-paper:#f7f7f2;--scan-surface:#fff;--scan-ink:#202a27;--scan-muted:#67736d;--scan-green:#174c40;--scan-line:#dce1d8}
.scan-viewer{background:var(--scan-surface);border:1px solid var(--scan-line);border-radius:12px;overflow:hidden;color:var(--scan-ink);font:14px/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.scan-viewer button,.scan-viewer select,.scan-viewer input{font:inherit;touch-action:manipulation}
.scan-viewer button:focus-visible,.scan-viewer select:focus-visible,.scan-viewer input:focus-visible,.scan-stage:focus-visible{outline:3px solid #72948b;outline-offset:3px}
.scan-selectors{display:flex;gap:20px;padding:18px 20px}
.scan-selector{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0;color:var(--scan-muted);font-size:11px;font-weight:600}
.scan-selector select{width:100%;min-width:0;border:1px solid var(--scan-line);border-radius:6px;background:white;color:var(--scan-ink);padding:9px 10px;font-size:13px}
.scan-stage{width:100%;position:relative;display:flex;justify-content:center;align-items:center;background:#101612;aspect-ratio:4/3;max-height:650px;overflow:hidden;overscroll-behavior:contain;touch-action:pan-y}
.scan-stage.is-zoomed{touch-action:none;cursor:grab}
.scan-stage.is-dragging{cursor:grabbing}
.scan-image{display:block;width:100%;height:100%;object-fit:contain;user-select:none;pointer-events:none;transform-origin:center}
.scan-orientation{position:absolute;z-index:2;color:#f5faf6;background:#101612b3;padding:1px 6px;border-radius:4px;font:600 13px/1.5 system-ui,sans-serif;letter-spacing:.04em;text-shadow:0 1px 3px #000;user-select:none}
.scan-orientation-top{top:10px;left:50%;transform:translateX(-50%)}
.scan-orientation-bottom{bottom:10px;left:50%;transform:translateX(-50%)}
.scan-orientation-left{left:10px;top:50%;transform:translateY(-50%)}
.scan-orientation-right{right:10px;top:50%;transform:translateY(-50%)}
.scan-message{position:absolute;color:#dae1da;text-align:center;font-size:13px;padding:24px;margin:0}
.scan-controls{padding:16px 20px 18px}
.scan-position{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:9px}
.scan-counter{font-size:12px;font-variant-numeric:tabular-nums;color:var(--scan-muted)}
.scan-step-buttons,.scan-zoom{display:flex;align-items:center;gap:7px}
.scan-viewer button{background:#fff;color:var(--scan-green);border:1px solid var(--scan-line);border-radius:6px;padding:7px 11px;cursor:pointer;font-size:12px;line-height:1.4;min-height:34px}
.scan-viewer button:hover:enabled{background:#f0f3ec}
.scan-viewer button:disabled{opacity:.4;cursor:default}
.scan-slider{display:block;width:100%;margin:0;accent-color:var(--scan-green);cursor:pointer;min-height:30px}
.scan-bottom{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:11px}
.scan-hint{font-size:11px;color:var(--scan-muted);margin:0}
.scan-zoom-label{font-size:11px;color:var(--scan-muted);font-variant-numeric:tabular-nums;min-width:36px;text-align:center}
.scan-empty{font:13px/1.7 system-ui,sans-serif;color:var(--scan-muted);padding:25px;text-align:center;border:1px solid var(--scan-line);border-radius:12px}
.scan-note{font-size:11px;color:var(--scan-muted);margin:12px 20px 16px}
.scan-orientation-legend{font-size:11px;color:var(--scan-muted);margin:-6px 20px 16px}
.scan-viewer [hidden]{display:none!important}
.scan-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:600px){.scan-selectors{flex-direction:column;gap:12px;padding:15px}.scan-stage{aspect-ratio:1/1}.scan-controls{padding:14px 15px}.scan-bottom{align-items:flex-start;flex-wrap:wrap;gap:12px}.scan-note{margin:10px 15px 14px}}

.scan-section{padding:35px 0;border-bottom:1px solid var(--line)}

@media(max-width:600px){.scan-orientation-legend{margin-left:15px;margin-right:15px}}
