.ocr-camera-dialog { width:min(94vw,520px); max-height:94dvh; padding:18px; box-sizing:border-box; border:0; border-radius:16px; background:#fff; color:#27332f; box-shadow:0 20px 80px #0006; overflow:auto; }
.ocr-camera-dialog::backdrop { background:#000b; }
.ocr-camera-dialog header { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.ocr-camera-dialog h2 { margin:0; font-size:20px; }
.ocr-camera-dialog button,.ocr-camera-phone button { font:inherit; min-height:44px; padding:10px 16px; border:0; border-radius:8px; background:#286454; color:#fff; cursor:pointer; }
.ocr-camera-dialog button:disabled,.ocr-camera-phone button:disabled { opacity:.5; cursor:default; }
.ocr-camera-dialog header button { background:transparent; color:inherit; font-size:26px; }
.ocr-camera-stage { margin-top:12px; display:flex; justify-content:center; background:#111; border-radius:8px; overflow:hidden; }
.ocr-crop-wrap { position:relative; flex:none; overflow:hidden; touch-action:none; user-select:none; }
.ocr-crop-wrap canvas { display:block; width:100%; height:100%; }
.ocr-crop-box { position:absolute; box-sizing:border-box; border:2px solid #fff; outline:1px solid #286454; box-shadow:0 0 0 2000px #0008; cursor:move; touch-action:none; }
.ocr-crop-box:focus-visible { border-color:#81efbc; }
.ocr-crop-box span { position:absolute; width:48px; height:48px; border:0; touch-action:none; }
.ocr-crop-box span::after { content:""; position:absolute; inset:14px; background:#fff; border:1px solid #286454; box-shadow:0 1px 4px #0003; border-radius:50%; }
.ocr-crop-box [data-handle="nw"] { left:-24px; top:-24px; cursor:nwse-resize; }
.ocr-crop-box [data-handle="ne"] { right:-24px; top:-24px; cursor:nesw-resize; }
.ocr-crop-box [data-handle="sw"] { left:-24px; bottom:-24px; cursor:nesw-resize; }
.ocr-crop-box [data-handle="se"] { right:-24px; bottom:-24px; cursor:nwse-resize; }
.ocr-camera-qr { width:min(100%,280px); height:auto; object-fit:contain; background:#fff; }
.ocr-camera-dialog [hidden] { display:none!important; }
.ocr-camera-status { line-height:1.6; margin:12px 0; }
.ocr-camera-note { color:#617168; line-height:1.6; font-size:13px; }
.ocr-camera-actions { display:flex; gap:10px; flex-wrap:wrap; }
.ocr-camera-phone { margin:0; background:#f5f2ea; color:#27332f; font-family:system-ui,-apple-system,sans-serif; }
.ocr-camera-intro { max-width:480px; margin:8vh auto; padding:24px; }
.ocr-camera-intro h1 { font-size:26px; }
.english-zitie-page .ez-ocr-buttons { display:flex; flex-wrap:wrap; gap:6px; }
.english-zitie-page .ez-ocr-buttons .ez-btn-ocr { margin:0; }

.english-zitie-page .ez-mode-bar { flex-wrap:wrap; }
.english-zitie-page .ez-ocr-buttons { width:100%; }
.english-zitie-page .ez-ocr-buttons .ez-btn-ocr { flex:1; width:auto; justify-content:center; }

.ocr-camera-choices { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:24px 0; }
.ocr-camera-phone .ocr-camera-choices button { display:flex; flex-direction:column; align-items:center; gap:10px; padding:24px 12px; min-width:0; border:1px solid #cfdbd3; border-radius:16px; background:#fff; color:#27332f; }
.ocr-camera-choices button > span { font-size:32px; color:#286454; line-height:1; }
.ocr-camera-choices strong { font-size:17px; }
.ocr-camera-choices small { color:#617168; font-size:12px; line-height:1.5; }
.ocr-camera-choices button:focus-visible { outline:3px solid #286454; outline-offset:3px; }

/* Restrained utility dialog: QR uses a white surface; crop keeps its dark canvas. */
.ocr-camera-dialog { padding:24px; border:1px solid #e5e5e2; border-radius:12px; box-shadow:0 12px 48px #0003; font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif; }
.ocr-camera-dialog::backdrop { background:rgba(20,24,22,.46); }
.ocr-camera-dialog header { min-height:32px; }
.ocr-camera-dialog h2 { font-size:19px; line-height:1.5; font-weight:600; letter-spacing:0; }
.ocr-camera-dialog header button { margin:-6px -8px -6px 8px; padding:6px; width:36px; height:36px; min-height:36px; color:#747974; border-radius:6px; line-height:1; }
.ocr-camera-dialog header button:hover { background:#f1f2f0; }
.ocr-camera-dialog button:focus-visible { outline:2px solid #58665d; outline-offset:3px; }
.ocr-camera-dialog .ocr-camera-lead { color:#737873; font-size:14px; line-height:1.7; margin:10px 0 0; }
/* Scan-card composition inspired by Huaban pin 6384218215; site-native artwork. */
.ocr-camera-art { display:none; }
.ocr-camera-dialog[data-mode="qr"] {
 width:min(calc(100vw - 32px),460px); padding:30px 32px 24px; border:0;
 border-radius:22px; color:#46372b; background:linear-gradient(#fff1dc 0,#fff8ed 148px,#fff 148px);
 box-shadow:0 24px 90px #28170d33; letter-spacing:0;
}
.ocr-camera-dialog[data-mode="qr"][open] {
 display:grid; grid-template-columns:minmax(0,1fr) auto; gap:0 12px;
 grid-template-areas:"head head" "lead lead" "code code" "state action" "steps steps" "note note";
}
.ocr-camera-dialog[data-mode="qr"] .ocr-camera-art { display:block; position:absolute; width:106px; height:101px; top:32px; right:18px; pointer-events:none; }
.ocr-camera-dialog[data-mode="qr"] header { grid-area:head; margin:0; min-height:40px; position:relative; z-index:1; }
.ocr-camera-dialog[data-mode="qr"] h2 { max-width:270px; padding-right:48px; font-size:23px; line-height:1.4; font-weight:650; color:#483225; }
.ocr-camera-dialog[data-mode="qr"] header button { position:absolute; right:-20px; top:-20px; margin:0; width:44px; height:44px; min-height:44px; color:#967e67; }
.ocr-camera-dialog[data-mode="qr"] header button:hover { background:#f3e4d2; }
.ocr-camera-dialog[data-mode="qr"] .ocr-camera-lead { grid-area:lead; max-width:235px; margin:7px 70px 26px 0; font-size:13px; font-weight:400; line-height:1.8; color:#967657; }
.ocr-camera-dialog[data-mode="qr"] .ocr-camera-stage {
 grid-area:code; position:relative; justify-self:center; width:248px; height:248px; min-height:248px;
 padding:8px; margin:0; box-sizing:border-box; border:0; border-radius:14px; background:#fff;
 box-shadow:0 7px 28px #8053260d; overflow:hidden;
}
.ocr-camera-dialog[data-mode="qr"] .ocr-camera-stage::after {
 content:""; position:absolute; inset:8px; border:1px solid #ebd5b9; border-radius:8px; pointer-events:none;
}
.ocr-camera-dialog[data-mode="qr"] .ocr-camera-qr { width:232px; height:232px; object-fit:contain; padding:6px; box-sizing:border-box; }
.ocr-camera-dialog[data-mode="qr"] .ocr-camera-status { grid-area:state; align-self:center; margin:18px 0 20px; color:#927b67; font-size:11px; font-weight:400; line-height:1.7; }
.ocr-camera-dialog[data-mode="qr"] .ocr-camera-actions { grid-area:action; align-self:center; justify-content:flex-end; margin:0 0 2px; padding:0; border:0; }
.ocr-camera-dialog[data-mode="qr"] button[data-camera="refresh"] { background:transparent; color:#a15b2e; font-size:12px; font-weight:500; line-height:1.5; padding:8px 0 8px 8px; min-height:44px; text-decoration:none; white-space:nowrap; }
.ocr-camera-dialog[data-mode="qr"] button[data-camera="refresh"]:hover { color:#713916; text-decoration:underline; text-underline-offset:4px; }
.ocr-camera-steps { grid-area:steps; display:flex; list-style:none; counter-reset:scan-step; gap:16px; margin:0 -32px; padding:22px 32px 18px; background:#fcf8f1; color:#665546; font-size:12px; font-weight:400; }
.ocr-camera-steps li { flex:1; min-width:0; line-height:1.7; }
.ocr-camera-steps li::before { counter-increment:scan-step; content:"0" counter(scan-step); display:block; color:#ba8657; font-size:11px; font-weight:600; line-height:1.5; margin-bottom:5px; }
.ocr-camera-dialog[data-mode="qr"] .ocr-camera-note { grid-area:note; margin:0 -32px -24px; padding:0 32px 20px; max-width:none; background:#fcf8f1; color:#a08d7d; font-size:11px; font-weight:400; line-height:1.7; }
@media(max-width:380px) {
 .ocr-camera-dialog[data-mode="qr"] { padding:26px 20px 20px; }
 .ocr-camera-dialog[data-mode="qr"] h2 { font-size:20px; padding-right:38px; }
 .ocr-camera-dialog[data-mode="qr"] .ocr-camera-art { width:80px; height:76px; right:10px; top:42px; }
 .ocr-camera-dialog[data-mode="qr"] .ocr-camera-lead { margin-right:48px; max-width:175px; font-size:12px; }
 .ocr-camera-dialog[data-mode="qr"] .ocr-camera-stage { width:228px; height:228px; min-height:228px; }
 .ocr-camera-dialog[data-mode="qr"] .ocr-camera-qr { width:212px; height:212px; }
 .ocr-camera-dialog[data-mode="qr"] .ocr-camera-status { margin-right:0; }
 .ocr-camera-steps { margin:0 -20px; padding:18px 20px 14px; gap:12px; }
 .ocr-camera-dialog[data-mode="qr"] .ocr-camera-note { margin:0 -20px -20px; padding:0 20px 18px; }
}
.ocr-camera-dialog[data-mode="crop"] .ocr-camera-actions button { font-size:14px; }
.ocr-camera-dialog[data-mode="crop"] button[data-camera="retry"],.ocr-camera-dialog[data-mode="crop"] button[data-camera="reset"] { background:#f0f2ef; color:#445044; }
@media(max-width:380px) { .ocr-camera-dialog { padding:18px; } .ocr-camera-steps { gap:10px; font-size:11px; } }

/* Phone OCR success: scoped, finite CSS animation; no external assets. */

.ocr-camera-dispatch{--paper:var(--card);--shade:color-mix(in srgb,var(--card) 90%,var(--foreground));--edge:color-mix(in srgb,var(--card) 80%,var(--foreground));color:var(--foreground);text-align:center;padding-bottom:22px}
.ocr-camera-dispatch .scene{position:relative;height:310px;overflow:hidden;perspective:700px}
.ocr-camera-dispatch .motion{position:absolute;left:calc(50% - 85px);top:151px;width:170px;height:106px}
.ocr-camera-dispatch .sheet{position:absolute;left:34px;top:-74px;width:102px;height:128px;box-sizing:border-box;padding:17px 14px;border-radius:7px;background:linear-gradient(130deg,var(--paper),color-mix(in srgb,var(--paper) 97%,var(--orange)));border:1px solid var(--edge);box-shadow:0 9px 23px color-mix(in srgb,var(--foreground) 10%,transparent);transform:translate(var(--x),var(--y)) rotate(var(--r));z-index:2}
.ocr-camera-dispatch .sheet.a{--x:-70px;--y:7px;--r:-12deg}.ocr-camera-dispatch .sheet.b{--x:70px;--y:7px;--r:12deg}.ocr-camera-dispatch .sheet.c{--x:0px;--y:-16px;--r:0deg}
.ocr-camera-dispatch .mark{display:block;width:17px;height:19px;border-radius:4px;background:var(--shade);margin-bottom:15px}.ocr-camera-dispatch .c .mark{background:color-mix(in srgb,var(--orange) 75%,var(--paper))}
.ocr-camera-dispatch .sheet b{display:block;height:3px;width:100%;border-radius:3px;background:var(--edge);margin:8px 0}.ocr-camera-dispatch .sheet b:nth-last-child(2){width:85%}.ocr-camera-dispatch .sheet b:last-child{width:55%;background:var(--shade)}
.ocr-camera-dispatch .back{position:absolute;inset:0;background:var(--shade);border-radius:7px;opacity:0;box-shadow:0 13px 24px color-mix(in srgb,var(--foreground) 12%,transparent)}
.ocr-camera-dispatch .face{position:absolute;inset:0;opacity:0;z-index:3;background:var(--paper)}
.ocr-camera-dispatch .left{clip-path:polygon(0 0,50% 51%,0 100%);background:linear-gradient(130deg,var(--paper),var(--shade))}
.ocr-camera-dispatch .right{clip-path:polygon(100% 0,50% 51%,100% 100%);background:var(--shade)}
.ocr-camera-dispatch .bottom{clip-path:polygon(0 100%,50% 42%,100% 100%);background:linear-gradient(160deg,var(--paper),var(--shade))}
.ocr-camera-dispatch .flap{position:absolute;inset:0;z-index:4;opacity:0;clip-path:polygon(0 0,100% 0,50% 56%);background:linear-gradient(160deg,var(--paper),var(--shade));transform-origin:50% 0;transform:rotateX(180deg)}
.ocr-camera-dispatch .band{position:absolute;z-index:5;left:72px;top:45px;width:26px;height:11px;border-radius:2px;background:color-mix(in srgb,var(--orange) 65%,var(--paper));opacity:0}
.ocr-camera-dispatch .plane{position:absolute;inset:-24px -16px;opacity:0;z-index:6;filter:drop-shadow(0 8px 7px color-mix(in srgb,var(--foreground) 9%,transparent))}
.ocr-camera-dispatch .wing{position:absolute;inset:0;background:linear-gradient(135deg,var(--paper) 40%,var(--shade));clip-path:polygon(0 0,100% 20%,36% 51%)}
.ocr-camera-dispatch .fold{position:absolute;inset:0;background:var(--edge);clip-path:polygon(36% 51%,100% 20%,28% 83%)}
.ocr-camera-dispatch .wing2{position:absolute;inset:0;background:linear-gradient(150deg,var(--paper),var(--shade));clip-path:polygon(39% 56%,100% 20%,46% 100%)}
.ocr-camera-dispatch .stripe{position:absolute;left:18px;top:15px;width:27px;height:3px;transform:rotate(9deg);background:var(--orange);opacity:.65}
.ocr-camera-dispatch .ground{position:absolute;left:calc(50% - 70px);top:272px;width:140px;height:9px;border-radius:50%;background:color-mix(in srgb,var(--foreground) 10%,transparent);filter:blur(6px)}
.ocr-camera-dispatch .run .sheet{animation:qd-gather 4s cubic-bezier(.45,0,.2,1) both}
.ocr-camera-dispatch .run .b{animation-delay:.12s}.ocr-camera-dispatch .run .c{animation-delay:.24s}
.ocr-camera-dispatch .run .back,.ocr-camera-dispatch .run .face{animation:qd-envelope 4s both}
.ocr-camera-dispatch .run .flap{animation:qd-flap 4s both}
.ocr-camera-dispatch .run .band{animation:qd-band 4s both}
.ocr-camera-dispatch .run .plane{animation:qd-plane 4s cubic-bezier(.45,0,.2,1) both}
.ocr-camera-dispatch .run .motion{animation:qd-flight 4s linear both}
.ocr-camera-dispatch .run .ground{animation:qd-shadow 4s both}
@keyframes qd-gather{0%,7%{transform:translate(var(--x),var(--y)) rotate(var(--r));opacity:1}28%{transform:translate(0,0) rotate(0);opacity:1}38%{opacity:1}43%,100%{transform:translate(0,79px) rotate(0) scale(.94);opacity:0}}
@keyframes qd-envelope{0%,22%{opacity:0;transform:translateY(15px)}33%,52%{opacity:1;transform:translateY(0)}62%,100%{opacity:0;transform:scale(.8,.16) rotate(-8deg)}}
@keyframes qd-flap{0%,28%{opacity:0;transform:rotateX(180deg)}34%,40%{opacity:1;transform:rotateX(180deg)}48%,52%{opacity:1;transform:rotateX(0)}62%,100%{opacity:0;transform:scale(.8,.16) rotate(-8deg)}}
@keyframes qd-band{0%,47%{opacity:0;transform:scaleX(.2)}51%,54%{opacity:1;transform:scaleX(1)}61%,100%{opacity:0;transform:scale(.4)}}
@keyframes qd-plane{0%,53%{opacity:0;transform:scale(.8,.16) rotate(-8deg)}63%,100%{opacity:1;transform:scale(1) rotate(-8deg)}}
@keyframes qd-flight{0%,53%{transform:translate(0,0)}61%,63%{transform:translate(0,-20px) rotate(27.01deg) scale(1);opacity:1}63.42%{transform:translate(3.43px,-20.39px) rotate(25.87deg) scale(0.9998);opacity:1.00}63.83%{transform:translate(9.61px,-21.28px) rotate(23.70deg) scale(0.9984);opacity:1.00}64.25%{transform:translate(17.35px,-22.75px) rotate(20.76deg) scale(0.9947);opacity:1.00}64.67%{transform:translate(26.03px,-24.93px) rotate(16.98deg) scale(0.9874);opacity:1.00}65.08%{transform:translate(35.06px,-27.93px) rotate(12.12deg) scale(0.9757);opacity:1.00}65.50%{transform:translate(43.84px,-31.82px) rotate(5.72deg) scale(0.9588);opacity:1.00}65.92%{transform:translate(51.70px,-36.62px) rotate(-3.11deg) scale(0.9361);opacity:1.00}66.33%{transform:translate(57.98px,-42.27px) rotate(-15.89deg) scale(0.9076);opacity:1.00}66.75%{transform:translate(62.03px,-48.63px) rotate(-34.66deg) scale(0.8733);opacity:1.00}67.17%{transform:translate(63.28px,-55.49px) rotate(-59.46deg) scale(0.8341);opacity:1.00}67.58%{transform:translate(61.32px,-62.53px) rotate(-84.49deg) scale(0.7907);opacity:1.00}68.00%{transform:translate(55.94px,-69.41px) rotate(-103.79deg) scale(0.7442);opacity:1.00}68.42%{transform:translate(47.22px,-75.71px) rotate(-117.26deg) scale(0.6959);opacity:1.00}68.83%{transform:translate(35.54px,-81.04px) rotate(-127.00deg) scale(0.6469);opacity:1.00}69.25%{transform:translate(21.60px,-85.03px) rotate(-134.67deg) scale(0.5983);opacity:1.00}69.67%{transform:translate(6.40px,-87.42px) rotate(-141.36deg) scale(0.5510);opacity:1.00}70.08%{transform:translate(-8.83px,-88.06px) rotate(-147.92deg) scale(0.5057);opacity:1.00}70.50%{transform:translate(-22.74px,-86.98px) rotate(-155.36deg) scale(0.4629);opacity:1.00}70.92%{transform:translate(-34.04px,-84.39px) rotate(-165.60deg) scale(0.4229);opacity:1.00}71.33%{transform:translate(-41.59px,-80.69px) rotate(-184.25deg) scale(0.3859);opacity:1.00}71.75%{transform:translate(-44.62px,-76.41px) rotate(-228.87deg) scale(0.3518);opacity:1.00}72.17%{transform:translate(-42.83px,-72.20px) rotate(-283.47deg) scale(0.3207);opacity:1.00}72.58%{transform:translate(-36.48px,-68.72px) rotate(-307.91deg) scale(0.2924);opacity:1.00}73.00%{transform:translate(-26.42px,-66.57px) rotate(-320.49deg) scale(0.2667);opacity:1.00}73.42%{transform:translate(-13.96px,-66.21px) rotate(-329.70deg) scale(0.2434);opacity:1.00}73.83%{transform:translate(-0.76px,-67.84px) rotate(-338.53deg) scale(0.2224);opacity:1.00}74.25%{transform:translate(11.42px,-71.44px) rotate(-349.04deg) scale(0.2034);opacity:1.00}74.67%{transform:translate(20.96px,-76.68px) rotate(-364.15deg) scale(0.1863);opacity:1.00}75.08%{transform:translate(26.68px,-83.03px) rotate(-388.94deg) scale(0.1709);opacity:1.00}75.50%{transform:translate(28.00px,-89.78px) rotate(-424.68deg) scale(0.1570);opacity:1.00}75.92%{transform:translate(25.04px,-96.22px) rotate(-455.82deg) scale(0.1444);opacity:1.00}76.33%{transform:translate(18.64px,-101.70px) rotate(-474.83deg) scale(0.1330);opacity:1.00}76.75%{transform:translate(10.15px,-105.81px) rotate(-486.60deg) scale(0.1227);opacity:1.00}77.17%{transform:translate(1.24px,-108.38px) rotate(-494.94deg) scale(0.1134);opacity:1.00}77.58%{transform:translate(-6.50px,-109.57px) rotate(-501.76deg) scale(0.1049);opacity:1.00}78.00%{transform:translate(-11.80px,-109.78px) rotate(-508.41deg) scale(0.0973);opacity:1.00}78.42%{transform:translate(-14.03px,-109.59px) rotate(-523.28deg) scale(0.0903);opacity:1.00}78.83%{transform:translate(-13.22px,-109.60px) rotate(-694.86deg) scale(0.0839);opacity:1.00}79.25%{transform:translate(-10.07px,-110.32px) rotate(-703.70deg) scale(0.0781);opacity:1.00}79.67%{transform:translate(-5.70px,-112.03px) rotate(-713.27deg) scale(0.0728);opacity:1.00}80.08%{transform:translate(-1.36px,-114.78px) rotate(-726.04deg) scale(0.0680);opacity:1.00}80.50%{transform:translate(1.92px,-118.33px) rotate(-743.82deg) scale(0.0635);opacity:1.00}80.92%{transform:translate(3.57px,-122.33px) rotate(-765.88deg) scale(0.0595);opacity:1.00}81.33%{transform:translate(3.62px,-126.36px) rotate(-785.90deg) scale(0.0557);opacity:1.00}81.75%{transform:translate(2.58px,-130.12px) rotate(-797.39deg) scale(0.0523);opacity:0.75}82.17%{transform:translate(1.22px,-133.53px) rotate(-798.02deg) scale(0.0491);opacity:0.50}82.58%{transform:translate(0.27px,-136.71px) rotate(-788.00deg) scale(0.0462);opacity:0.25}83.00%{transform:translate(0.00px,-140.00px) rotate(-777.01deg) scale(0.0435);opacity:0.00}84%,100%{transform:translate(0,-140px) rotate(-777.01deg) scale(0);opacity:0}}
@keyframes qd-shadow{0%,55%{opacity:1}72%{opacity:.4;transform:scaleX(.75)}90%,100%{opacity:0;transform:scaleX(.2)}}
@keyframes qd-first{0%,37%{opacity:1}41%,100%{opacity:0}}
@keyframes qd-second{0%,40%{opacity:0}44%,66%{opacity:1}70%,100%{opacity:0}}
@keyframes qd-third{0%,70%{opacity:0}76%,100%{opacity:1}}

.ocr-camera-dispatch .tail{position:absolute;left:calc(50% - 100px);top:0;pointer-events:none;overflow:visible}
.ocr-camera-dispatch .tail path{fill:none;stroke:var(--orange);stroke-width:1;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100;opacity:0}
.ocr-camera-dispatch .run .tail path{animation:qd-trace 4s linear both}
@keyframes qd-trace{0%,63%{stroke-dashoffset:100;opacity:0}63.42%{stroke-dashoffset:99.090;opacity:.32}63.83%{stroke-dashoffset:97.446;opacity:.32}64.25%{stroke-dashoffset:95.369;opacity:.32}64.67%{stroke-dashoffset:93.011;opacity:.32}65.08%{stroke-dashoffset:90.503;opacity:.32}65.50%{stroke-dashoffset:87.974;opacity:.32}65.92%{stroke-dashoffset:85.547;opacity:.32}66.33%{stroke-dashoffset:83.321;opacity:.32}66.75%{stroke-dashoffset:81.334;opacity:.32}67.17%{stroke-dashoffset:79.498;opacity:.32}67.58%{stroke-dashoffset:77.570;opacity:.32}68.00%{stroke-dashoffset:75.270;opacity:.32}68.42%{stroke-dashoffset:72.435;opacity:.32}68.83%{stroke-dashoffset:69.052;opacity:.32}69.25%{stroke-dashoffset:65.231;opacity:.32}69.67%{stroke-dashoffset:61.178;opacity:.32}70.08%{stroke-dashoffset:57.161;opacity:.32}70.50%{stroke-dashoffset:53.483;opacity:.32}70.92%{stroke-dashoffset:50.429;opacity:.32}71.33%{stroke-dashoffset:48.212;opacity:.32}71.75%{stroke-dashoffset:46.831;opacity:.32}72.17%{stroke-dashoffset:45.625;opacity:.32}72.58%{stroke-dashoffset:43.718;opacity:.32}73.00%{stroke-dashoffset:41.006;opacity:.32}73.42%{stroke-dashoffset:37.721;opacity:.32}73.83%{stroke-dashoffset:34.216;opacity:.32}74.25%{stroke-dashoffset:30.871;opacity:.32}74.67%{stroke-dashoffset:28.002;opacity:.32}75.08%{stroke-dashoffset:25.751;opacity:.32}75.50%{stroke-dashoffset:23.938;opacity:.32}75.92%{stroke-dashoffset:22.071;opacity:.32}76.33%{stroke-dashoffset:19.849;opacity:.32}76.75%{stroke-dashoffset:17.365;opacity:.32}77.17%{stroke-dashoffset:14.921;opacity:.32}77.58%{stroke-dashoffset:12.859;opacity:.32}78.00%{stroke-dashoffset:11.459;opacity:.32}78.42%{stroke-dashoffset:10.870;opacity:.32}78.83%{stroke-dashoffset:10.657;opacity:.32}79.25%{stroke-dashoffset:9.806;opacity:.32}79.67%{stroke-dashoffset:8.569;opacity:.32}80.08%{stroke-dashoffset:7.216;opacity:.32}80.50%{stroke-dashoffset:5.941;opacity:.32}80.92%{stroke-dashoffset:4.802;opacity:.32}81.33%{stroke-dashoffset:3.741;opacity:.32}81.75%{stroke-dashoffset:2.711;opacity:.32}82.17%{stroke-dashoffset:1.744;opacity:.32}82.58%{stroke-dashoffset:0.870;opacity:.32}83.00%{stroke-dashoffset:0.000;opacity:.32}93%,100%{stroke-dashoffset:0;opacity:0}}
.ocr-camera-dispatch{position:relative;padding-bottom:50px}
.ocr-camera-dispatch{--card:#fffdf8;--foreground:#27332f;--orange:#c88443;--border:#d9dcd6;padding:0!important;width:100%;overflow:hidden}
.ocr-camera-dispatch .scene{height:285px}
.ocr-camera-dispatch[hidden]{display:none!important}
.ocr-camera-dialog[data-dispatch] .ocr-camera-stage{background:transparent}

/* Pending OCR only: a local scan band, not a progress/accuracy indicator. */
.ocr-camera-dialog[data-dispatch="pending"] .ocr-camera-dispatch .sheet.c::after {
 content:""; position:absolute; left:8px; right:8px; top:10px; height:22px;
 pointer-events:none; border-bottom:1px solid rgba(57,128,97,.8); border-radius:2px;
 background:linear-gradient(180deg,rgba(89,159,119,0),rgba(89,159,119,.08) 45%,rgba(89,159,119,.26));
 box-shadow:0 3px 7px -3px rgba(57,128,97,.35);
 animation:ocr-document-scan 1.65s ease-in-out infinite alternate;
}
@keyframes ocr-document-scan {
 from { transform:translateY(0); }
 to { transform:translateY(83px); }
}
@media(prefers-reduced-motion:reduce) {
 .ocr-camera-dialog[data-dispatch="pending"] .ocr-camera-dispatch .sheet.c::after {
  animation:none; transform:translateY(42px);
 }
}
