.scan-tool{color:#20334f;max-width:1280px;margin:auto}.scan-intro{text-align:center;padding:30px 16px}.scan-intro h1{font-size:clamp(28px,4vw,40px);margin:9px 0}.scan-intro p{max-width:640px;margin:12px auto;color:#5b697d;line-height:1.7}.scan-eyebrow{font-size:12px;letter-spacing:.16em;font-weight:700;color:#337a82}.scan-start{max-width:780px;margin:0 auto 40px;background:white;border:1px solid #d9e1eb;border-radius:20px;padding:clamp(18px,4vw,36px)}.scan-choice{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.scan-choice label{display:flex;align-items:center;gap:10px;border:1px solid #b9c9d8;border-radius:12px;padding:16px;cursor:pointer}.scan-choice label:has(input:checked){border:2px solid #20396d;background:#edf5fa}.scan-tool button,.scan-tool .scan-link,.scan-dialog button{min-height:44px;border:1px solid #bdcbdc;border-radius:10px;padding:10px 15px;background:#fff;color:#20396d;font:inherit;cursor:pointer}.scan-tool button:disabled{opacity:.48;cursor:not-allowed}.scan-tool button.primary,.scan-dialog button.primary{background:#20396d;color:#fff;border-color:#20396d}.scan-tool button[aria-pressed=true]{background:#e5f2f2;border-color:#257d83}.scan-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:12px 0}.scan-muted{color:#68768a;font-size:14px;line-height:1.6}.scan-notice{padding:12px 16px;background:#eef5fb;border:1px solid #cbdcee;border-radius:12px;line-height:1.6;margin:14px 0}.scan-error{background:#fff2ee;border-color:#e8b5a6;color:#873b29}.scan-status{min-height:25px;font-size:13px;color:#587183;margin:5px 0}.scan-session{background:#edf1f7;border:1px solid #d3deea;border-radius:16px;overflow:hidden}.scan-top{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#fff;border-bottom:1px solid #d3deea}.scan-top strong{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scan-grid{display:grid;grid-template-columns:128px minmax(0,1fr) 240px;min-height:68vh}.scan-thumbnails{padding:10px;background:#f8fafd;overflow:auto;max-height:74vh;display:flex;flex-direction:column;gap:8px}.scan-thumb{position:relative;flex-shrink:0;padding:5px!important;display:grid;gap:3px;font-size:12px!important}.scan-thumb img{width:90px;height:90px;object-fit:contain;background:#e9edf2}.scan-thumb.active{outline:2px solid #287d85}.scan-thumb .scan-warning{position:absolute;top:4px;right:4px;background:#fff4d2;border-radius:50%;padding:3px}.scan-center{min-width:0;padding:12px;display:flex;flex-direction:column}.scan-viewport{overflow:auto;min-height:300px;height:60vh;touch-action:none;overscroll-behavior:contain;display:block;background:#dfe5ed;border-radius:6px}.scan-paper{position:relative;margin:12px auto;background:#fff;box-shadow:0 3px 15px #192a4326;display:flex;align-items:center;justify-content:center;flex:none;overflow:hidden}.scan-paper img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}.scan-side{padding:14px;background:#fff;display:flex;flex-direction:column;gap:8px}.scan-side p{font-size:13px;line-height:1.5}.scan-bottom{padding:10px 14px;background:#fff;border-top:1px solid #d3deea;display:flex;justify-content:center;gap:8px;position:sticky;bottom:0;z-index:5}.scan-bottom button{flex:1;max-width:230px}.scan-hidden-controls .scan-thumbnails,.scan-hidden-controls .scan-side,.scan-hidden-controls .scan-bottom{display:none}.scan-hidden-controls .scan-grid{grid-template-columns:1fr}.scan-camera{background:#111b29;border-radius:12px;padding:12px;color:white}.scan-camera-view{position:relative;margin:auto;max-width:760px}.scan-camera video{width:100%;max-height:65vh;display:block;object-fit:contain}.scan-camera canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}.scan-camera .scan-muted{color:#d8e4f1}.scan-shutter{font-size:25px!important;border-radius:50%!important;width:70px;height:70px!important;background:white!important;border:5px solid #78a9b2!important;color:#20396d!important}.scan-camera .scan-actions{justify-content:center}.scan-camera-thumb{width:44px;height:58px;object-fit:contain;background:#e4eaf2;border-radius:4px}.scan-dialog{border:1px solid #cbd8e5;border-radius:18px;padding:24px;width:min(680px,calc(100vw - 24px));max-height:90dvh;color:#20334f;overflow:auto;box-shadow:0 16px 80px #0c204b40}.scan-dialog::backdrop{background:#152b4a88}.scan-dialog h2{font-size:22px;margin:5px 45px 15px 0}.scan-dialog .scan-close{float:right;min-width:44px;padding:6px}.scan-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.scan-form label{display:flex;flex-direction:column;gap:6px;font-size:14px}.scan-form input,.scan-form select{font:inherit;color:inherit;min-width:0;min-height:44px;border:1px solid #b7c7d8;border-radius:8px;padding:8px;width:100%;box-sizing:border-box}.scan-form .scan-wide{grid-column:1/-1}.scan-dialog hr{border:0;border-top:1px solid #dde3ea;margin:12px 0}.scan-menu-list{display:flex;flex-direction:column;gap:6px}.scan-menu-list button{text-align:left}.scan-crop{position:relative;touch-action:none;max-height:58vh;max-width:100%;margin:auto}.scan-crop img{width:100%;height:100%;display:block;object-fit:fill;pointer-events:none}.scan-crop svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.scan-crop polygon{stroke:#20a7a1;stroke-width:.006;fill:#1b8d8d14;vector-effect:non-scaling-stroke}.scan-crop-handle{position:absolute;transform:translate(-50%,-50%);padding:0!important;min-height:36px!important;width:36px;height:36px;border:3px solid white!important;background:#156e77!important;border-radius:50%!important;color:white!important;touch-action:none;cursor:move!important}.scan-order{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(115px,1fr))}.scan-order article{border:1px solid #c8d4e1;border-radius:10px;padding:8px}.scan-order img{width:100%;height:110px;object-fit:contain}.scan-order input{width:55px;min-height:36px;font:inherit}.scan-result{max-width:820px;margin:20px auto;padding:24px;background:white;border:1px solid #cfdae6;border-radius:16px}.scan-result h2{margin-top:0}.scan-result a{display:inline-flex;text-decoration:none;align-items:center}.scan-parts{margin:15px 0;display:flex;flex-direction:column;gap:8px}.scan-part{display:flex;align-items:center;flex-wrap:wrap;gap:8px;border:1px solid #d3deea;border-radius:8px;padding:10px}.scan-part span{flex:1;min-width:180px}.scan-progress{max-width:650px;margin:30px auto;text-align:center;padding:30px;background:white;border-radius:16px}.scan-progress progress{width:100%;height:20px;accent-color:#227f84}.scan-unsupported{margin:20px;padding:20px}.scan-guide{max-width:850px;margin:40px auto!important}.scan-dialog button:focus-visible,.scan-tool button:focus-visible,.scan-tool a:focus-visible{outline:3px solid #288e96;outline-offset:2px}.scan-dropover{outline:3px dashed #22878c}.scan-session-note{padding:0 14px}.scan-zoom{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px}.scan-zoom output{font-size:13px;min-width:48px;text-align:center}.scan-tool [hidden],.scan-dialog [hidden]{display:none!important}
@media(max-width:850px){.scan-grid{grid-template-columns:1fr;min-height:0}.scan-thumbnails{order:2;flex-direction:row;max-height:none;padding:8px}.scan-thumb img{width:54px;height:66px}.scan-side{display:none}.scan-center{padding:8px}.scan-viewport{height:55dvh;min-height:230px}.scan-intro{padding:20px 12px}.scan-top{padding:8px}.scan-top strong{font-size:15px}.scan-bottom{padding:8px;gap:5px;bottom:env(safe-area-inset-bottom,0px)}.scan-bottom button{font-size:13px;padding:10px 7px}.scan-session{border-radius:10px}.scan-dialog{padding:18px}.scan-form{gap:12px}.scan-hidden-controls .scan-viewport{height:74dvh}.scan-choice label{padding:12px;font-size:14px}.scan-start{padding:18px}.scan-result{padding:18px}.scan-intro p{font-size:15px}}
@media(prefers-reduced-motion:reduce){.scan-tool *{scroll-behavior:auto!important}}
.document-tools:has(.scan-working) .tools-header,.document-tools:has(.scan-working) .tools-footer,.document-tools:has(.scan-working) .scan-guide{display:none}.document-tools:has(.scan-working) .tools-main{padding:10px;max-width:none}.scan-session{height:calc(100dvh - 20px);display:flex;flex-direction:column}.scan-top,.scan-bottom,.scan-session-note{flex-shrink:0}.scan-grid{flex:1;min-height:0}.scan-center{min-height:0}.scan-viewport{height:auto;flex:1;min-height:120px}.scan-thumbnails{max-height:100%}.scan-hidden-controls .scan-viewport{height:auto}.scan-center>.scan-muted{margin:6px 0}.scan-zoom{margin-top:6px}
@media(max-width:850px){.document-tools:has(.scan-working) .tools-main{padding:4px}.scan-session{height:calc(100dvh - 8px)}.scan-grid{grid-template-rows:minmax(0,1fr) auto}.scan-thumbnails{max-height:100px}.scan-center>.scan-muted{font-size:12px;margin:3px 0}.scan-zoom button{min-height:36px;padding:5px 12px}.scan-zoom{margin-top:4px}.scan-hidden-controls .scan-grid{grid-template-rows:1fr}.scan-session-note{font-size:11px;margin:3px 0}}
/* Camera controls stay in fixed columns; review/done cannot move the shutter. */
.scan-camera{height:calc(100dvh - 20px);box-sizing:border-box;display:flex;flex-direction:column;padding:0;background:#101925;overflow:hidden}.scan-camera-top{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px 14px;flex-shrink:0}.scan-camera-top strong{text-align:center;font-size:17px;font-weight:650}.scan-camera-top button{background:transparent;color:#fff;border:0;padding:8px 10px}.scan-camera-top button:last-child{color:#91e2ee;font-weight:700}.scan-camera-top button:first-child{font-size:30px}.scan-camera-view{flex:1;min-height:100px;max-width:none;width:100%;margin:0;overflow:hidden;cursor:crosshair;touch-action:manipulation}.scan-camera-view video{width:100%;height:100%;max-height:none;object-fit:contain}.scan-camera-view canvas{width:100%;height:100%;object-fit:contain}.scan-camera-hint{font-size:13px;line-height:1.4;text-align:center;min-height:36px;margin:8px 16px 0;color:#d9e5f2;flex-shrink:0}.scan-camera-bottom{padding:6px 18px max(8px,env(safe-area-inset-bottom));flex-shrink:0}.scan-camera-buttons{display:grid;grid-template-columns:1fr 82px 1fr;align-items:center;max-width:470px;margin:auto;gap:12px}.scan-tool .scan-shutter{width:78px;height:78px!important;min-height:78px;border-radius:50%;padding:5px;border:3px solid #fff!important;background:transparent!important;justify-self:center;display:grid;place-items:center}.scan-shutter span{display:block;width:100%;height:100%;background:#e9404c;border-radius:50%}.scan-shutter:active span{transform:scale(.93)}.scan-camera-review{justify-self:start;display:flex;align-items:center;flex-direction:column;gap:3px;padding:0!important;border:0!important;background:transparent!important;color:#e1ebf6!important;font-size:11px!important;min-width:52px}.scan-camera-thumb{width:42px;height:50px;object-fit:cover;border:1px solid #9caebf;background:#253448}.scan-page-count{text-align:center;color:#e1ebf6;font-size:13px;margin:7px 0 0}.scan-camera .scan-status{text-align:center;min-height:17px;font-size:11px;color:#a8c1d0;line-height:1.4;margin:4px 0 0}.scan-tap-marker{position:absolute;pointer-events:none;width:44px;height:44px;border:2px solid #ffdf76;border-radius:50%;transform:translate(-50%,-50%)}.scan-document-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:0!important;background:transparent!important;font-weight:650!important;text-align:left}.scan-review-tools{padding:4px 12px;flex-shrink:0}.scan-review-tools button{font-size:13px;min-height:36px;padding:4px 12px}
.scan-crop{margin:24px auto}.scan-crop-mask{fill:#020812b8;pointer-events:none}.scan-crop polygon{fill:none;stroke:#68ddf3;stroke-width:.006;vector-effect:none}.scan-crop-handle{min-height:44px!important;width:44px;height:44px!important;display:grid;place-items:center;border:0!important;background:transparent!important;box-shadow:none!important}.scan-crop-handle span{width:18px;height:18px;border:2px solid #fff;border-radius:50%;background:#167ba7;box-shadow:0 1px 3px #0007}.scan-edge-handle span{width:13px;height:13px}.scan-dialog-footer{justify-content:flex-end;position:sticky;bottom:-24px;background:white;padding:12px 0;margin-bottom:0;z-index:2}.scan-dialog button:disabled{opacity:.45;cursor:not-allowed}
.scan-colour-preview{height:min(39dvh,400px);background:#101925;display:flex;align-items:center;justify-content:center;border-radius:8px;overflow:hidden}.scan-colour-preview img{width:100%;height:100%;object-fit:contain}.scan-colour-status{min-height:18px;font-size:12px;color:#61758a;margin:5px 0}.scan-looks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:8px 0 12px}.scan-looks button{padding:5px;min-width:0;font-size:13px}.scan-looks img{height:66px;width:100%;object-fit:contain;background:#edf1f7;border-radius:5px;display:block;margin-bottom:5px}.scan-looks button[aria-pressed=true]{border:2px solid #20396d;background:#e9f1fa;padding:4px;font-weight:700}.scan-adjustments label{display:flex;gap:12px;align-items:center;font-size:14px}.scan-adjustments select{font:inherit;min-height:40px;border:1px solid #b7c7d8;border-radius:8px;padding:6px;flex:1;background:white;color:inherit}.scan-range{display:flex;align-items:center;gap:14px;padding:5px 0}.scan-range input{flex:1;min-width:0;min-height:36px;accent-color:#20396d}.scan-range output{min-width:35px;text-align:center;font-size:14px;font-variant-numeric:tabular-nums}.scan-colour-actions{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:6px}.scan-colour-actions button{padding:7px;font-size:13px}.scan-colour-actions button[aria-pressed=true]{background:#20396d;color:white}.scan-colour-dialog .scan-muted{font-size:12px;margin:8px 0}.scan-colour-dialog .scan-dialog-footer{margin-top:0}.scan-colour-dialog .scan-dialog-footer button{min-width:110px}
@media(max-width:850px){.scan-camera{height:calc(100dvh - 8px);border-radius:8px}.scan-camera-top{padding:7px 8px;grid-template-columns:44px minmax(0,1fr) auto;gap:2px}.scan-camera-top strong{font-size:16px}.scan-camera-top button{font-size:14px;padding:8px}.scan-camera-hint{font-size:12px;margin-top:7px;min-height:34px}.scan-camera-bottom{padding-top:2px}.scan-camera-buttons{grid-template-columns:1fr 74px 1fr}.scan-tool .scan-shutter{width:70px;height:70px!important;min-height:70px}.scan-dialog-footer{bottom:-18px}.scan-colour-dialog{padding:14px;max-height:96dvh}.scan-colour-dialog h2{font-size:18px;margin-top:10px}.scan-colour-preview{height:29dvh}.scan-looks{gap:5px}.scan-looks img{height:48px}.scan-looks button{font-size:11px}.scan-colour-dialog .scan-dialog-footer{bottom:-14px}.scan-review-tools{padding:3px 8px}.scan-document-name{font-size:14px!important;padding:8px!important}}

.scan-hidden-controls .scan-review-tools,.scan-hidden-controls .scan-zoom{display:none}

/* Start, saved draft and completion actions share predictable widths. */
.scan-start-actions{display:grid;gap:10px;margin:16px 0}.scan-start-actions button{text-align:center;display:flex;align-items:center;justify-content:center;min-height:48px;overflow-wrap:anywhere}.scan-saved{margin:0}.scan-saved p,.scan-result-name{overflow-wrap:anywhere}.scan-details{margin:14px 0;font-size:14px;line-height:1.6}.scan-details summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:8px;color:#20396d}.scan-details summary::before{content:'＋';font-size:18px}.scan-details[open] summary::before{content:'−'}.scan-choice label{min-width:0;min-height:60px;box-sizing:border-box}.scan-choice input{flex-shrink:0}
.scan-capture-modes{display:flex;justify-content:center;gap:6px;padding:0 10px 6px;flex-shrink:0}.scan-capture-modes button{border:1px solid #50647a;color:#e4edf8;background:transparent;min-height:36px;padding:5px 18px;font-size:13px}.scan-capture-modes button[aria-pressed=true]{background:#e7f4f6;color:#123847;border-color:#91e2ee}.scan-camera .scan-shutter{position:relative;box-shadow:none}
.scan-settings-dialog[open]{display:flex;flex-direction:column;overflow:hidden;padding:0;max-height:min(90dvh,calc(var(--scan-visible-height,100dvh) - 16px))}.scan-settings-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0;padding:14px 20px;border-bottom:1px solid #dde3ea}.scan-settings-header h2{margin:0;min-width:0;overflow-wrap:anywhere}.scan-settings-header .scan-close{float:none;flex-shrink:0}.scan-settings-body{overflow:auto;overscroll-behavior:contain;min-height:0;padding:18px 20px}.scan-settings-body .scan-notice{font-size:14px;margin-bottom:0}.scan-settings-body .scan-error{padding:10px;border-radius:8px}.scan-settings-footer{display:grid;grid-template-columns:1fr 1fr;gap:10px;flex-shrink:0;border-top:1px solid #dde3ea;padding:12px 20px max(12px,env(safe-area-inset-bottom,0px));background:white}.scan-settings-footer button{min-width:0;overflow-wrap:anywhere;line-height:1.3}.scan-form input,.scan-form select{background:white}
.scan-complete{text-align:center;max-width:620px}.scan-result-name{margin:12px 0 6px}.scan-complete h2{margin-bottom:12px}.scan-download-actions,.scan-result-followup{display:grid;gap:10px;margin:16px 0}.scan-complete .scan-link{justify-content:center;min-height:48px;box-sizing:border-box}.scan-complete .scan-link.primary{background:#20396d;color:white;border-color:#20396d}.scan-result-secondary{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:10px}.scan-complete button{min-height:48px;overflow-wrap:anywhere}.scan-result-followup{padding-top:16px;border-top:1px solid #dde3ea}.scan-result-more{border-top:1px solid #dde3ea;padding-top:8px;text-align:left}.scan-complete .scan-notice{font-size:14px}.scan-complete [data-save-note]{font-size:12px;color:#63778a}
@media(max-width:850px){.scan-intro{padding:16px 12px 12px}.scan-intro p{margin:8px auto}.scan-start{margin-bottom:24px}.scan-choice{margin-top:0}.scan-camera-active.scan-tool{max-width:none}.document-tools:has(.scan-camera-active) .tools-main{padding:0}.scan-camera{position:fixed;inset:0;height:100dvh;width:100%;border-radius:0;z-index:80;padding-top:env(safe-area-inset-top,0px)}.scan-camera-top{padding:6px 10px}.scan-camera-view{min-height:0}.scan-camera-bottom{padding-bottom:max(8px,env(safe-area-inset-bottom,0px))}.scan-camera-hint{font-size:12px;min-height:32px}.scan-camera .scan-status{max-height:32px;overflow:auto}.scan-settings-dialog{width:calc(100% - 16px);max-width:none;box-sizing:border-box;border-radius:14px;margin:0;position:fixed;left:8px;right:8px;top:calc(var(--scan-visible-top,0px) + 8px)}.scan-settings-dialog[open]{max-height:calc(var(--scan-visible-height,100dvh) - 16px)}.scan-settings-header{padding:10px 14px}.scan-settings-header h2{font-size:20px}.scan-settings-body{padding:14px}.scan-settings-body .scan-form{grid-template-columns:1fr}.scan-settings-body input,.scan-settings-body select{font-size:16px}.scan-settings-footer{padding:10px 14px max(10px,env(safe-area-inset-bottom,0px));gap:8px}.scan-settings-footer button{font-size:14px;padding:10px 8px}.scan-complete{margin:10px auto}.scan-result-secondary{grid-template-columns:1fr}}
@media(max-width:360px){.scan-choice{grid-template-columns:1fr}.scan-choice label{min-height:48px}.scan-settings-footer{grid-template-columns:1fr}.scan-settings-footer .primary{grid-row:1}.scan-camera-top strong{font-size:14px}}
@media(max-width:850px) and (max-height:480px){.scan-camera-top{padding:0 8px}.scan-capture-modes{position:absolute;top:46px;right:6px;z-index:2;flex-direction:column}.scan-capture-modes button{padding:4px 8px;background:#101925d9}.scan-camera-hint{margin:2px 8px;min-height:0;font-size:11px}.scan-tool .scan-shutter{height:48px!important;width:48px;min-height:48px}.scan-camera-thumb{height:32px;width:27px}.scan-camera .scan-status{display:none}.scan-page-count{margin:2px 0;font-size:11px}.scan-camera-bottom{padding-top:0}.scan-camera-buttons{grid-template-columns:1fr 52px 1fr}.scan-camera-review{flex-direction:row}.scan-settings-header{padding:4px 10px}.scan-settings-footer{padding:6px 10px;grid-template-columns:1fr 1fr}.scan-settings-footer .primary{grid-row:auto}}

/* Capture readiness is a ring around the shutter, not an additional timer. */
.scan-capture-ring{position:absolute;inset:-3px;width:calc(100% + 6px);height:calc(100% + 6px);pointer-events:none;transform:rotate(-90deg);overflow:visible}
.scan-capture-ring circle{fill:none;stroke:#91e2ee;stroke-width:4;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:calc(100 - var(--scan-ready,0)*100);transition:stroke-dashoffset .12s linear}
.scan-icon{width:24px;height:24px;flex-shrink:0;display:block}
.scan-review-tools{display:flex;justify-content:flex-end;padding:6px 12px;background:#edf1f7}
.scan-review-tools .scan-return-camera{display:grid;place-items:center;width:48px;height:48px;min-height:48px;padding:10px;border-radius:50%;border:0;background:#20396d;color:#fff;box-shadow:0 2px 7px #172c4d24}
.scan-return-camera .scan-icon{width:28px;height:28px}
.scan-dialog .scan-close{font-size:32px;line-height:1;display:grid;place-items:center;min-width:44px;width:44px;height:44px;min-height:44px;padding:0;border:0;background:transparent;border-radius:50%;flex-shrink:0}
.scan-dialog .scan-close:hover{background:#eef4f9}
.scan-confirm-dialog,.scan-add-dialog{position:fixed;box-sizing:border-box;width:min(500px,calc(100vw - 32px));text-align:center;padding:24px}
.scan-confirm-dialog>.scan-close,.scan-add-dialog>.scan-close{position:absolute;right:10px;top:10px;float:none}
.scan-confirm-dialog h2,.scan-add-dialog h2{font-size:clamp(20px,4.8vw,24px);line-height:1.3;margin:0;padding:4px 32px 14px;overflow-wrap:anywhere}
.scan-confirm-dialog>p{font-size:16px;line-height:1.6;margin:8px 0 20px;overflow-wrap:anywhere}
.scan-confirm-dialog .scan-actions,.scan-add-dialog .scan-actions{display:grid;grid-template-columns:1fr 1fr;justify-content:center;gap:12px;margin:8px 0 0}
.scan-confirm-dialog .scan-actions button,.scan-add-dialog .scan-actions button{min-width:0;min-height:48px;line-height:1.4;overflow-wrap:anywhere;padding:10px}
.scan-dialog .scan-form label:focus-within{outline:none}
.scan-dialog .scan-form input:focus,.scan-dialog .scan-form select:focus{border-color:#287d85;outline:2px solid #287d85;outline-offset:-1px}
.scan-menu-dialog[open]{padding:0;display:flex;flex-direction:column;overflow:hidden;box-sizing:border-box;width:min(520px,calc(100vw - 24px));max-height:90dvh}
.scan-menu-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid #e1e7ee;flex-shrink:0}
.scan-menu-header h2{margin:0;line-height:1.3;min-width:0;overflow-wrap:anywhere}
.scan-menu-header .scan-close{float:none}
.scan-menu-dialog .scan-menu-list{padding:8px 12px 16px;overflow:auto;overscroll-behavior:contain;min-height:0;gap:2px}
.scan-menu-list button{display:flex;align-items:center;gap:14px;border:0;background:transparent;border-radius:8px;min-height:48px;padding:10px 12px;font-size:16px;line-height:1.4}
.scan-menu-list button span{min-width:0;overflow-wrap:anywhere}
.scan-menu-list button:not(:disabled):hover,.scan-menu-list button:not(:disabled):active{background:#edf4fa}
.scan-menu-list button.scan-danger{color:#a62e3d}
.scan-menu-list hr{width:100%;margin:8px 0;flex-shrink:0}
@media(max-width:360px){.scan-confirm-dialog,.scan-add-dialog{padding:22px 16px}.scan-confirm-dialog .scan-actions,.scan-add-dialog .scan-actions{grid-template-columns:1fr}.scan-confirm-dialog h2,.scan-add-dialog h2{padding-left:22px;padding-right:22px}}
@media(max-width:850px){.scan-review-tools{padding:4px 8px}.scan-menu-header{padding:8px 12px}.scan-menu-dialog .scan-menu-list{padding:6px 8px 12px}}
@media(prefers-reduced-motion:reduce){.scan-capture-ring circle{transition:none}}
