.magic-scan{--brand:#0072ff;--brand-dark:#0057c8;--brand-light:#e6f0ff;--brand-mid:#3d91ff;--brand-glow:rgba(0, 114, 255, .18);--brand-soft:rgba(0, 114, 255, .08);--brand-press:#0053b9;--shadow-ring:0 2px 3px -1px rgba(0, 0, 0, .10),0 1px 0 0 rgba(25, 28, 33, .02),0 0 0 1px rgba(25, 28, 33, .08);--btn-gradient:linear-gradient(180deg, #4c9aff 0%, var(--brand) 45%, var(--brand-dark) 100%);--btn-edge:var(--brand-press);--btn-shadow:inset 0 -3px 0 var(--btn-edge),var(--shadow-ring);--ink-900:#0c0d0f;--ink-800:#1a1d24;--ink-700:#2d3140;--ink-600:#4a5068;--ink-500:#636b82;--ink-400:#8891a8;--ink-300:#b0b6c8;--ink-200:#d4d8e4;--ink-100:#eceef4;--ink-50:#fafafa;--white:#ffffff;--correct:#00a878;--correct-bg:#e6f7f2;--incorrect:#e8403c;--incorrect-bg:#fdf0ef;--warning:#f59e0b;--warning-bg:#fef8ec;--surface:var(--white);--surface-raised:var(--white);--surface-inset:var(--ink-50);--card:var(--white);--border:var(--ink-200);--border-mid:rgba(17, 19, 24, .12);--border-focus:var(--brand);--font-sans:'Google Sans Flex',system-ui,-apple-system,sans-serif;--font-display:'Unbounded','Google Sans Flex',system-ui,sans-serif;--font-prose:'Charter',Georgia,'Times New Roman',serif;--font-mono:'Fira Code',monospace;--font-hand:'Kalam','Caveat',cursive;--text-xs:10px;--text-sm:12px;--text-base:13px;--text-md:15px;--text-lg:17px;--text-xl:20px;--text-2xl:24px;--leading-tight:1.3;--leading-normal:1.55;--leading-relaxed:1.7;--r-xs:4px;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-xl:20px;--r-2xl:28px;--r-3xl:32px;--r-4xl:50px;--r-pill:999px;--spring:cubic-bezier(.34, 1.56, .64, 1);--smooth:cubic-bezier(.25, .46, .45, .94);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--dur-fast:150ms;--dur-med:280ms;--dur-morph:320ms;--dur-slow:420ms;--shadow-sm:0 1px 3px rgba(12, 13, 15, .06),0 1px 2px rgba(12, 13, 15, .04);--shadow-md:0 4px 16px rgba(12, 13, 15, .08),0 2px 4px rgba(12, 13, 15, .04);--shadow-lg:0 12px 40px rgba(12, 13, 15, .12),0 4px 8px rgba(12, 13, 15, .06);--shadow-border:rgba(9, 30, 66, 0.25) 0px 1px 1px,rgba(9, 30, 66, 0.13) 0px 0px 1px 1px;--shadow-card:rgba(14, 63, 126, 0.06) 0px 0px 0px 1px,rgba(42, 51, 70, 0.03) 0px 1px 1px -0.5px,rgba(42, 51, 70, 0.04) 0px 2px 2px -1px,rgba(42, 51, 70, 0.04) 0px 3px 3px -1.5px,rgba(42, 51, 70, 0.03) 0px 5px 5px -2.5px,rgba(42, 51, 70, 0.03) 0px 10px 10px -5px,rgba(42, 51, 70, 0.03) 0px 24px 24px -8px;--page-bg:#e8e8ec;--card-bg:var(--white);--card-border:0.5px solid rgba(0, 0, 0, .08);--gap:12px;--chat-w:380px;--spring-linear:linear(0 0%, 0.2688 9.91%, 0.3859 15%, 0.4917 20.19%, 0.5865 25.5%, 0.6705 30.93%, 0.7441 36.51%, 0.8075 42.26%, 0.8593 47.98%, 0.9022 53.93%, 0.9366 60.13%, 0.963 66.67%, 0.9812 73.4%, 0.9929 80.76%, 0.9986 88.89%, 1 100%);--spring-bouncy:linear(0 0%, 0.5571 7.53%, 0.8252 11.98%, 0.9337 14.38%, 1.0166 16.8%, 1.0765 19.31%, 1.1146 21.97%, 1.1263 23.47%, 1.1325 25.06%, 1.133 26.76%, 1.128 28.62%, 1.1094 31.9%, 1.0484 39.77%, 1.0218 43.85%, 1.0011 48.42%, 0.9895 53.23%, 0.9861 59.8%, 1 81.27% 100%);--max-w:780px;--progress-h:3px;--icon-xs:10px;--icon-sm:12px;--icon-md:16px;--icon-lg:20px;--tier-lite-bg:var(--ink-200);--tier-lite-text:var(--ink-600);--tier-pro-from:#0a1628;--tier-pro-to:#0a3d8f;--tier-pro-plus-from:#1a0a3d;--tier-pro-plus-to:#4a1a8f;--tier-educator-from:#0c0d0f;--tier-educator-to:#1a6b3d;--badge-test-bg:rgba(194, 65, 12, .08);--badge-test-text:#c2410c;--badge-test-shimmer:rgba(194, 65, 12, .15);--badge-progress-bg:rgba(180, 83, 9, .08);--badge-progress-text:#92400e;--badge-progress-ring:#b45309;--badge-progress-track:rgba(180, 83, 9, .15);--badge-completed-bg:rgba(0, 168, 120, .1);--badge-completed-text:#047857;--badge-assigned-bg:var(--brand-soft);--badge-assigned-text:var(--brand);--badge-locked-bg:var(--ink-100);--badge-locked-text:var(--ink-500);--badge-score-high-bg:rgba(0, 168, 120, .1);--badge-score-high-text:#047857;--badge-score-mid-bg:#fef8ec;--badge-score-mid-text:#b45309;--badge-score-low-bg:rgba(232, 64, 60, .08);--badge-score-low-text:#dc2626}:where(.magic-scan) *,:where(.magic-scan) ::after,:where(.magic-scan) ::before,:where(body.magic-scan){box-sizing:border-box;margin:0;padding:0}:where(body.magic-scan){-webkit-font-smoothing:antialiased;font-family:var(--font-sans);background:var(--ink-50);color:var(--ink-800);min-height:100vh;line-height:1.6}:where(.magic-scan) img{max-width:100%;height:auto;display:block;border-radius:var(--r-md)}:where(.magic-scan) button{font-family:inherit;cursor:pointer;border:none;background:0 0}:where(.magic-scan) :is(textarea,input){font-family:inherit}@supports (corner-shape:squircle){.magic-scan{--r-xs:9px;--r-sm:13px;--r-md:22px;--r-lg:31px;--r-xl:44px;--r-2xl:62px;--r-3xl:70px;--r-4xl:110px}}:where(.magic-scan) *,:where(.magic-scan) ::after,:where(.magic-scan) ::before{corner-shape:squircle}.magic-scan .btn-face{background:var(--btn-gradient);background-origin:border-box;background-clip:border-box;border-color:transparent;color:var(--white);box-shadow:var(--btn-shadow);transition:filter var(--dur-fast) var(--smooth),transform var(--dur-fast) var(--smooth)}.magic-scan .btn-face:hover{background:var(--btn-gradient);background-origin:border-box;background-clip:border-box;border-color:transparent;box-shadow:var(--btn-shadow);filter:brightness(1.06);transform:none}.magic-scan .btn-face:active{border-color:transparent;box-shadow:var(--btn-shadow);transform:scale(.985)}@media (prefers-reduced-motion:reduce){.magic-scan .btn-face{transition-duration:1ms}}.scan-body{background:var(--white);color:var(--ink-800);font-family:var(--font-sans);-webkit-tap-highlight-color:transparent}.scan-body [hidden]{display:none!important}.scan-body.scan-noscroll{overflow:hidden}.scan-body .ic{width:18px;height:18px;flex:none}body.magic-scan .nn-hdr{background:var(--card-bg);border-bottom:var(--card-border)}@media (min-width:640px){body.magic-scan .nn-hdr{margin:0 var(--gap);border:var(--card-border);border-top:none;border-radius:0 0 var(--r-3xl) var(--r-3xl)}}body.magic-scan .nn-hdr .nn-hdr-menu-btn{color:var(--ink-600)}body.magic-scan .nn-hdr .nn-hdr-brand{flex:0 1 auto}body.magic-scan .nn-hdr .nn-hdr-end{flex:1 1 0;justify-content:flex-end}.scan-eyebrow{display:flex;align-items:center;gap:6px;margin-bottom:8px;color:var(--brand);font-size:12px;font-weight:700;line-height:1}.scan-eyebrow .ic{width:14px;height:14px}.scan-eyebrow .scan-beta{height:18px;padding:0 6px;font-size:10px}.scan-grading .scan-eyebrow,.scan-result .scan-eyebrow{justify-content:center}.scan-beta{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:var(--r-pill);background:var(--brand-soft);color:var(--brand-dark);font-family:var(--font-sans);font-size:11px;font-weight:700;line-height:1}.scan-d-only{display:none}.scan-rail{display:none}.scan-app{display:flex;flex-direction:column;max-width:480px;min-height:calc(100dvh - var(--scan-hdr-h,70px));margin:0 auto;padding:0 16px}.scan-view{flex:1;padding-bottom:12px}.scan-boot{display:grid;place-items:center;min-height:50vh}@media (min-width:640px){.scan-body{background:var(--page-bg)}.scan-app{min-height:calc(100dvh - var(--scan-hdr-h,70px) - 64px);margin:32px auto;padding:8px 32px 0;background:var(--white);border:var(--card-border);border-radius:var(--r-3xl);box-shadow:var(--shadow-card)}.scan-actions{border-radius:0 0 var(--r-3xl) var(--r-3xl)}}.scan-view.is-enter>*{animation:scanIn .38s var(--ease-out) both}.scan-view.is-enter>:nth-child(2){animation-delay:40ms}.scan-view.is-enter>:nth-child(3){animation-delay:80ms}.scan-view.is-enter>:nth-child(4){animation-delay:120ms}.scan-view.is-enter>:nth-child(n+5){animation-delay:160ms}@keyframes scanIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.scan-top{display:flex;align-items:center;gap:12px;padding:14px 0 2px}.scan-back{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:50%;corner-shape:round;background:var(--white);box-shadow:inset 0 0 0 1px var(--ink-200);color:var(--ink-700);transition:background var(--dur-fast)}.scan-back:hover{background:var(--ink-50)}.scan-back:active{transform:scale(.96)}.scan-steps{display:flex;flex-direction:column;gap:6px;flex:1}.scan-steps-label{font-size:12px;font-weight:600;color:var(--ink-500);line-height:1}.scan-steps-bar{display:flex;gap:4px}.scan-steps-bar i{flex:1;height:4px;border-radius:var(--r-pill);background:var(--ink-100);transition:background var(--dur-med) var(--smooth)}.scan-steps-bar i.is-done,.scan-steps-bar i.is-now{background:var(--brand)}.scan-head{margin:18px 0 18px}.scan-h1{font-size:24px;line-height:1.2;font-weight:650;letter-spacing:-.02em;color:var(--ink-900);text-wrap:balance}.scan-sub{margin-top:6px;font-size:15px;line-height:1.5;color:var(--ink-500);text-wrap:pretty}.scan-pill{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 10px;border-radius:var(--r-pill);background:var(--ink-100);color:var(--ink-700);font-size:12px;font-weight:600;white-space:nowrap}.scan-pill .ic{width:13px;height:13px}.scan-pill.is-soft{background:var(--brand-soft);color:var(--brand-dark)}.scan-pill.is-two{height:24px;margin-left:2px;background:var(--white);box-shadow:inset 0 0 0 1px var(--ink-300);color:var(--ink-700);font-size:11px}.scan-pill.is-wait{background:var(--warning-bg);color:#92400e}.scan-actions{position:sticky;bottom:0;z-index:5;display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:14px 0 calc(14px + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--white) 78%,rgba(255,255,255,0))}.scan-actions:empty{display:none}.scan-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:52px;border:1px solid transparent;border-radius:var(--r-pill);font-size:16px;font-weight:600;text-decoration:none;user-select:none}.scan-btn[aria-disabled=true]{cursor:not-allowed;opacity:.45;filter:saturate(.7)}.scan-btn[aria-disabled=true]:active{transform:none}.scan-btn.is-busy{opacity:.85;filter:none}.scan-link{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;height:44px;border-radius:var(--r-pill);color:var(--ink-600);font-size:14px;font-weight:600;text-decoration:none;transition:background var(--dur-fast),color var(--dur-fast)}.scan-link .ic{width:16px;height:16px}.scan-link:hover{background:var(--ink-50);color:var(--ink-800)}.scan-hint{margin-bottom:4px;text-align:center;font-size:13px;color:var(--ink-500)}.scan-card{margin-top:14px;padding:16px;border-radius:var(--r-xl);background:var(--ink-50);box-shadow:inset 0 0 0 1px rgba(17,19,24,.05);list-style:none}.scan-card-h{font-size:13px;font-weight:600;color:var(--ink-500)}.scan-card-top{display:flex;align-items:center;justify-content:space-between}.scan-card-meta{margin:2px 0 12px;font-size:15px;font-weight:600;color:var(--ink-900)}.scan-edit{display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 10px;margin-right:-8px;border-radius:var(--r-pill);color:var(--brand);font-size:13px;font-weight:600}.scan-edit .ic{width:14px;height:14px}.scan-edit:hover{background:var(--brand-soft)}.scan-alert{display:flex;gap:10px;margin:14px 0;padding:12px 14px;border-radius:var(--r-lg);font-size:13px;line-height:1.45;color:var(--ink-700)}.scan-alert .ic{width:20px;height:20px;margin-top:1px}.scan-alert-t{font-size:14px;font-weight:600;color:var(--ink-900)}.scan-alert-b{margin-top:2px;text-wrap:pretty}.scan-alert.is-error{background:var(--incorrect-bg)}.scan-alert.is-error .ic{color:var(--incorrect)}.scan-alert.is-warn{background:var(--warning-bg)}.scan-alert.is-warn .ic{color:#b45309}.scan-alert.is-ok{background:var(--correct-bg)}.scan-alert.is-ok .ic{color:var(--correct)}.scan-alert.is-info{background:var(--brand-soft)}.scan-alert.is-info .ic{color:var(--brand)}.scan-note{display:flex;align-items:flex-start;gap:10px;margin-top:14px;padding:12px 14px;border-radius:var(--r-lg);background:var(--brand-soft);font-size:13px;line-height:1.45;color:var(--ink-700)}.scan-note .ic{color:var(--brand);margin-top:1px}.scan-fine{margin-top:12px;font-size:12px;line-height:1.45;color:var(--ink-400)}.scan-spin{display:inline-block;flex:none;width:16px;height:16px;border:2px solid var(--ink-200);border-top-color:var(--brand);border-radius:50%;corner-shape:round;animation:scanSpin .7s linear infinite}.scan-spin.is-light{border-color:rgba(255,255,255,.35);border-top-color:var(--white)}@keyframes scanSpin{to{transform:rotate(360deg)}}.scan-dormant{padding-top:32px}.scan-dormant-ic{display:grid;place-items:center;width:56px;height:56px;margin-bottom:18px;border-radius:var(--r-lg);background:var(--brand-soft);color:var(--brand)}.scan-dormant-ic .ic{width:28px;height:28px}.scan-dormant-h{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;font-family:var(--font-display);font-size:28px;line-height:1.15;font-weight:700;color:var(--ink-900)}.scan-dormant-h .scan-beta{height:24px;font-size:12px}.scan-dormant-test{margin-top:20px}.scan-dormant-id{margin-top:4px;font-size:16px;color:var(--ink-600);font-variant-numeric:tabular-nums}.scan-dormant-id b{font-weight:700;color:var(--ink-900)}.scan-dormant-how{margin-top:22px}.scan-entry{display:grid;gap:16px}.scan-field label{display:block;margin-bottom:6px;font-size:13px;font-weight:600;color:var(--ink-700)}.scan-field input{width:100%;height:54px;padding:0 16px;border:none;border-radius:var(--r-lg);outline:0;background:var(--white);box-shadow:inset 0 0 0 1.5px var(--ink-200);color:var(--ink-900);font-family:var(--font-sans);font-size:18px;font-weight:600;font-variant-numeric:tabular-nums;transition:box-shadow var(--dur-fast)}.scan-field input::placeholder{color:var(--ink-300);font-weight:500}.scan-field input:focus{box-shadow:inset 0 0 0 2px var(--brand),0 0 0 4px var(--brand-glow)}.scan-field.is-bad input{box-shadow:inset 0 0 0 2px var(--incorrect)}.scan-field-err{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:13px;line-height:1.35;color:#c0262d}.scan-field-err .ic{width:15px;height:15px}.scan-where{margin-top:22px;padding:14px 16px;border-radius:var(--r-lg);background:var(--ink-50);text-align:center}.scan-where-print{display:inline-block;padding:5px 12px;border:1px dashed var(--ink-300);border-radius:6px;background:var(--white);color:var(--ink-700);font-size:13px}.scan-where-print b{font-weight:700;color:var(--ink-900)}.scan-where-cap{margin-top:8px;font-size:12px;color:var(--ink-500)}.scan-intro{padding-top:28px}.scan-pills{display:flex;flex-wrap:wrap;gap:6px}.scan-title{margin:14px 0 8px;font-family:var(--font-prose);font-size:30px;line-height:1.15;font-weight:700;color:var(--ink-900);text-wrap:balance}.scan-intro .scan-sub{margin-top:0}.scan-intro+.scan-card{margin-top:22px}.scan-need{list-style:none;margin-top:4px}.scan-need li{display:flex;align-items:center;gap:12px;padding:10px 0}.scan-need li+li{border-top:1px solid var(--ink-100)}.scan-need .ic{width:40px;height:40px;padding:10px;border-radius:var(--r-md);background:var(--white);box-shadow:inset 0 0 0 1px var(--ink-100);color:var(--brand)}.scan-need b{display:block;font-size:15px;font-weight:600;color:var(--ink-900);line-height:1.3}.scan-need span{font-size:13px;color:var(--ink-500)}.scan-how{list-style:none;display:grid;gap:10px;margin:20px 4px 0}.scan-how li{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--ink-600)}.scan-how span{display:grid;place-items:center;flex:none;width:24px;height:24px;border-radius:50%;corner-shape:round;background:var(--ink-100);color:var(--ink-600);font-size:12px;font-weight:700}.scan-who{margin:22px 4px 0;font-size:13px;color:var(--ink-400)}.scan-who b{font-weight:600;color:var(--ink-600)}.scan-frame{position:relative;display:block;height:min(46vh,440px);aspect-ratio:3/4;max-width:100%;margin:0 auto;overflow:hidden;border-radius:var(--r-xl)}.scan-frame.is-empty{display:grid;place-items:center;background:var(--ink-50);box-shadow:inset 0 0 0 1.5px var(--ink-200);transition:background var(--dur-fast)}.scan-frame.is-empty:hover{background:var(--brand-soft)}.scan-frame.is-empty:active{transform:scale(.99)}.scan-corners{position:absolute;inset:16px;--c:var(--brand);background:linear-gradient(var(--c),var(--c)) top left/24px 3px no-repeat,linear-gradient(var(--c),var(--c)) top left/3px 24px no-repeat,linear-gradient(var(--c),var(--c)) top right/24px 3px no-repeat,linear-gradient(var(--c),var(--c)) top right/3px 24px no-repeat,linear-gradient(var(--c),var(--c)) bottom left/24px 3px no-repeat,linear-gradient(var(--c),var(--c)) bottom left/3px 24px no-repeat,linear-gradient(var(--c),var(--c)) bottom right/24px 3px no-repeat,linear-gradient(var(--c),var(--c)) bottom right/3px 24px no-repeat;opacity:.9}.scan-mini{display:flex;flex-direction:column;gap:9px;width:50%;aspect-ratio:8.5/11;padding:16% 12%;margin-top:-24px;border-radius:6px;background:var(--white);box-shadow:var(--shadow-md);transform:rotate(-2deg)}.scan-mini::before{content:'';width:64%;height:7px;margin-bottom:6px;border-radius:4px;background:var(--ink-200)}.scan-mini i{display:flex;gap:8%}.scan-mini b{width:13%;aspect-ratio:1;border-radius:50%;corner-shape:round;box-shadow:inset 0 0 0 1.5px var(--ink-300)}.scan-mini i:first-child b:nth-child(2),.scan-mini i:nth-child(2) b:nth-child(3),.scan-mini i:nth-child(3) b:first-child,.scan-mini i:nth-child(4) b:nth-child(4),.scan-mini i:nth-child(5) b:nth-child(2),.scan-mini i:nth-child(6) b:nth-child(3){background:var(--ink-700);box-shadow:none}.scan-frame-cta{position:absolute;left:50%;bottom:18px;display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-radius:var(--r-pill);background:var(--white);box-shadow:var(--shadow-sm),inset 0 0 0 1px var(--ink-100);color:var(--brand);font-size:13px;font-weight:600;white-space:nowrap;transform:translateX(-50%)}.scan-frame-cta .ic{width:16px;height:16px}.scan-frame.has-photo{background:#1b1d22}.scan-frame.is-bad{height:min(40vh,380px)}.scan-tabs~.scan-capture .scan-frame{height:min(41vh,400px)}.scan-tabs~.scan-capture .scan-frame.is-bad{height:min(36vh,340px)}.scan-frame.has-photo img{width:100%;height:100%;object-fit:contain;border-radius:0;transition:filter var(--dur-med)}.scan-frame.is-bad::after{content:'';position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 2px var(--incorrect);pointer-events:none}.scan-frame.is-bad img{filter:saturate(.7) brightness(.85)}.scan-chip{position:absolute;top:12px;left:12px;display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border-radius:var(--r-pill);background:rgba(12,13,15,.72);backdrop-filter:blur(8px);color:var(--white);font-size:12px;font-weight:600}.scan-chip .ic{width:14px;height:14px}.scan-chip.is-ok .ic{color:#4fe0b0}.scan-chip .scan-spin{width:13px;height:13px;border-color:rgba(255,255,255,.3);border-top-color:var(--white)}.scan-frame-zoom{position:absolute;top:10px;right:10px;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;corner-shape:round;background:rgba(12,13,15,.6);backdrop-filter:blur(8px);color:var(--white)}.scan-frame.is-reading img{filter:brightness(.8)}.scan-sweep{position:absolute;left:0;right:0;top:0;height:28%;background:linear-gradient(to bottom,rgba(0,114,255,0),rgba(0,114,255,.32));border-bottom:2px solid var(--brand-mid);animation:scanSweep 1.5s var(--smooth) infinite alternate}@keyframes scanSweep{from{transform:translateY(-100%)}to{transform:translateY(357%)}}.scan-reading{position:absolute;left:50%;bottom:16px;display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-radius:var(--r-pill);background:var(--white);color:var(--brand-dark);font-size:13px;font-weight:600;white-space:nowrap;transform:translateX(-50%)}.scan-reading .ic{width:16px;height:16px;color:var(--brand)}.scan-tips{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}.scan-tips li{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;font-size:12px;line-height:1.3;color:var(--ink-500)}.scan-tips .ic{width:18px;height:18px;color:var(--ink-400)}.scan-tips b{font-weight:400}.scan-tips small{display:none}.scan-tabs{display:flex;gap:4px;margin:-2px 0 14px;padding:4px;border-radius:var(--r-pill);background:var(--ink-50);box-shadow:inset 0 0 0 1px var(--ink-100)}.scan-tab{display:inline-flex;flex:1;align-items:center;justify-content:center;gap:6px;height:38px;border-radius:var(--r-pill);color:var(--ink-600);font-size:13px;font-weight:600;transition:background var(--dur-fast),color var(--dur-fast)}.scan-tab .ic{width:15px;height:15px}.scan-tab .ic.is-ok{color:var(--correct)}.scan-tab .ic.is-bad{color:var(--incorrect)}.scan-tab .scan-spin{width:13px;height:13px}.scan-tab.is-on{background:var(--white);color:var(--ink-900);box-shadow:var(--shadow-sm)}.scan-ref{display:flex;align-items:center;gap:12px;width:100%;padding:8px 14px 8px 8px;border-radius:var(--r-lg);background:var(--white);box-shadow:inset 0 0 0 1px var(--ink-100);text-align:left;transition:background var(--dur-fast)}.scan-ref{gap:8px}.scan-ref span{margin-left:4px}.scan-ref-img{flex:none;border-radius:var(--r-xs)}.scan-ref img{flex:none;width:42px;height:56px;object-fit:cover;border-radius:var(--r-xs);outline:1px solid rgba(0,0,0,.08);outline-offset:-1px}.scan-ref span{flex:1;min-width:0}.scan-ref b{display:block;font-size:14px;font-weight:600;color:var(--ink-800);line-height:1.3}.scan-ref small{font-size:12px;color:var(--ink-500)}.scan-ref>.ic{color:var(--ink-400)}.scan-grid{display:flex;flex-direction:column}.scan-row{display:grid;grid-template-columns:26px 1fr;align-items:center;column-gap:8px;padding:8px 10px;border-radius:var(--r-lg);transition:background var(--dur-med) var(--smooth),box-shadow var(--dur-med)}.scan-row+.scan-row{margin-top:2px}.scan-row-n{font-size:15px;font-weight:700;color:var(--ink-800);font-variant-numeric:tabular-nums}.scan-bubs{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.scan-bub{position:relative;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;corner-shape:round;background:var(--white);box-shadow:inset 0 0 0 1.5px var(--ink-300);color:var(--ink-500);font-size:14px;font-weight:600;transition:transform var(--dur-fast) var(--smooth),box-shadow var(--dur-fast),color var(--dur-fast)}.scan-bub::after{content:'';position:absolute;inset:-3px;border-radius:50%}.scan-bub:hover{box-shadow:inset 0 0 0 1.5px var(--ink-500);color:var(--ink-700)}.scan-bub:active{transform:scale(.92)}.scan-bub.is-on{background:var(--btn-gradient);box-shadow:inset 0 -2px 0 var(--btn-edge),0 1px 2px rgba(0,87,200,.25);color:var(--white)}.scan-row.is-flagged{background:var(--warning-bg);box-shadow:inset 0 0 0 1px rgba(245,158,11,.35)}.scan-row-flag{grid-column:2;display:flex;align-items:center;gap:6px;margin-top:8px;font-size:13px;line-height:1.35;color:#92400e}.scan-row-flag .ic{width:16px;height:16px}.scan-row-flag span{flex:1}.scan-row-flag.is-done{margin-top:6px;color:#047857;font-weight:600}.scan-row-flag.is-done .ic{width:14px;height:14px}.scan-keep{flex:none;height:34px;padding:0 14px;border-radius:var(--r-pill);background:var(--white);box-shadow:inset 0 0 0 1px rgba(180,83,9,.35);color:#92400e;font-size:13px;font-weight:600;white-space:nowrap}.scan-keep:active{transform:scale(.97)}.scan-body .is-nudge{animation:scanNudge .45s var(--smooth)}@keyframes scanNudge{20%{transform:translateX(-5px)}40%{transform:translateX(5px)}60%{transform:translateX(-3px)}80%{transform:translateX(2px)}}.scan-count{display:flex;align-items:center;gap:12px;margin-bottom:12px}.scan-count>span:first-child{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--ink-600);white-space:nowrap;font-variant-numeric:tabular-nums}.scan-count .ic{width:16px;height:16px;color:var(--brand)}.scan-count-bar{flex:1;height:6px;border-radius:var(--r-pill);background:var(--ink-100);overflow:hidden}.scan-count-bar i{display:block;width:100%;height:100%;border-radius:var(--r-pill);background:var(--brand);transform:scaleX(var(--p,0));transform-origin:left;transition:transform var(--dur-slow) var(--ease-out)}.scan-slots{list-style:none;display:flex;flex-direction:column;gap:10px}.scan-slot{display:flex;align-items:flex-start;gap:14px;padding:12px;border-radius:var(--r-xl);background:var(--white);box-shadow:inset 0 0 0 1px var(--ink-100);transition:box-shadow var(--dur-med),background var(--dur-med)}.scan-slot.is-failed,.scan-slot.is-wrong{box-shadow:inset 0 0 0 1.5px rgba(232,64,60,.45)}.scan-slot.is-blank{background:var(--ink-50)}.scan-slot-thumb{position:relative;display:grid;place-items:center;flex:none;width:64px;height:84px;overflow:hidden;border-radius:var(--r-md);background:var(--ink-50)}.scan-slot-thumb img{width:100%;height:100%;object-fit:cover;border-radius:0}.scan-slot-thumb.is-empty{box-shadow:inset 0 0 0 1.5px var(--ink-200);color:var(--brand);transition:background var(--dur-fast)}.scan-slot-thumb.is-empty:hover{background:var(--brand-soft)}.scan-slot-thumb.is-empty .ic{width:22px;height:22px}.scan-slot-thumb.is-blank{background:var(--ink-100);color:var(--ink-400)}.scan-slot-busy{position:absolute;inset:0;display:grid;place-items:center;background:rgba(12,13,15,.45)}.scan-slot-body{flex:1;min-width:0;padding-top:2px}.scan-slot-title{font-size:15px;font-weight:650;color:var(--ink-900);line-height:1.3}.scan-slot-title span{font-weight:500;color:var(--ink-500)}.scan-slot-parts{margin-top:2px;font-family:var(--font-prose);font-size:14px;color:var(--ink-600)}.scan-slot-status{display:flex;align-items:flex-start;gap:5px;margin-top:6px;font-size:13px;font-weight:600;line-height:1.35;color:var(--ink-500)}.scan-slot-status .ic{width:15px;height:15px;margin-top:1px}.scan-slot-status.is-ok{color:#047857}.scan-slot-status.is-bad{color:#c0262d}.scan-slot-acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.scan-cbtn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 13px;border-radius:var(--r-pill);background:var(--white);box-shadow:inset 0 0 0 1px var(--ink-200);color:var(--ink-700);font-size:13px;font-weight:600;white-space:nowrap;transition:background var(--dur-fast),transform var(--dur-fast)}.scan-cbtn .ic{width:15px;height:15px}.scan-cbtn:hover{background:var(--ink-50)}.scan-cbtn:active{transform:scale(.97)}.scan-cbtn.is-brand{background:var(--brand-soft);box-shadow:none;color:var(--brand-dark)}.scan-cbtn.is-brand:hover{background:var(--brand-light)}.scan-cbtn.is-icon{width:36px;padding:0}.scan-answers{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(58px,1fr));gap:6px}.scan-answers li{display:flex;align-items:baseline;gap:6px;padding:7px 10px;border-radius:var(--r-md);background:var(--white);box-shadow:inset 0 0 0 1px var(--ink-100);font-size:15px;font-weight:650;color:var(--ink-900)}.scan-answers b{font-size:12px;font-weight:600;color:var(--ink-400);font-variant-numeric:tabular-nums}.scan-answers li.is-blank{font-size:12px;font-weight:500;color:var(--ink-400)}.scan-thumbs{list-style:none;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}.scan-thumbs li{flex:none;width:58px;text-align:center}.scan-thumbs button,.scan-thumbs span{display:grid;place-items:center;width:58px;height:76px;overflow:hidden;border-radius:var(--r-sm)}.scan-thumbs img{width:100%;height:100%;object-fit:cover;border-radius:0}.scan-thumbs span{background:var(--ink-100);color:var(--ink-400)}.scan-thumbs small{display:block;margin-top:4px;font-size:11px;color:var(--ink-500)}.scan-choices{display:grid;gap:8px}.scan-choice{display:flex;align-items:flex-start;gap:12px;width:100%;padding:14px;border-radius:var(--r-lg);background:var(--white);box-shadow:inset 0 0 0 1.5px var(--ink-200);text-align:left;transition:box-shadow var(--dur-fast),background var(--dur-fast)}.scan-choice b{display:block;font-size:15px;font-weight:600;color:var(--ink-900);line-height:1.3}.scan-choice small{display:block;margin-top:2px;font-size:13px;line-height:1.4;color:var(--ink-500)}.scan-choice.is-on{background:var(--brand-soft);box-shadow:inset 0 0 0 1.5px var(--brand)}.scan-radio{flex:none;width:20px;height:20px;margin-top:1px;border-radius:50%;corner-shape:round;box-shadow:inset 0 0 0 2px var(--ink-300);transition:box-shadow var(--dur-fast)}.scan-choice.is-on .scan-radio{box-shadow:inset 0 0 0 6px var(--brand)}.scan-grading{padding:44px 0 4px;text-align:center}.scan-orbit{position:relative;display:block;width:72px;height:72px;margin:0 auto 22px;border-radius:50%;corner-shape:round;box-shadow:inset 0 0 0 5px var(--brand-light)}.scan-orbit i{position:absolute;inset:0;border-radius:50%;corner-shape:round;border:5px solid transparent;border-top-color:var(--brand);animation:scanSpin 1s linear infinite}.scan-grading .scan-sub{max-width:300px;margin-left:auto;margin-right:auto}.scan-progress{list-style:none;margin-top:26px;padding:4px 16px;border-radius:var(--r-xl);background:var(--ink-50)}.scan-progress li{display:flex;align-items:center;gap:12px;padding:13px 0;font-size:15px;color:var(--ink-800)}.scan-progress li+li{border-top:1px solid var(--ink-100)}.scan-progress li.is-todo{color:var(--ink-400)}.scan-step-ic{display:grid;place-items:center;flex:none;width:24px;height:24px;border-radius:50%;corner-shape:round}.scan-step-ic .ic{width:14px;height:14px}.is-done .scan-step-ic{background:var(--correct);color:var(--white)}.is-todo .scan-step-ic{box-shadow:inset 0 0 0 2px var(--ink-200)}.is-wait .scan-step-ic{background:var(--warning-bg);color:#b45309}.is-now .scan-step-ic .scan-spin{width:20px;height:20px}.scan-result{padding-top:28px;text-align:center}.scan-result-quiz{margin-top:4px;font-size:14px;color:var(--ink-500)}.scan-ring{position:relative;width:176px;height:176px;margin:26px auto 6px}.scan-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.scan-ring circle{fill:none;stroke-width:10}.scan-ring .trk{stroke:var(--ink-100)}.scan-ring .val{stroke:var(--brand);stroke-linecap:round;stroke-dashoffset:var(--off);animation:scanRing 1.1s var(--ease-out) both .15s}@keyframes scanRing{from{stroke-dashoffset:326.7}}.scan-ring>span{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.scan-ring b{font-size:40px;line-height:1;font-weight:700;letter-spacing:-.03em;color:var(--ink-900);font-variant-numeric:tabular-nums}.scan-ring small{margin-top:6px;font-size:13px;color:var(--ink-500)}.scan-result .scan-sub{max-width:320px;margin-left:auto;margin-right:auto}.scan-breakdown{margin-top:22px;padding:4px 16px}.scan-breakdown li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;font-size:15px;color:var(--ink-600)}.scan-breakdown li+li:not(.is-sub){border-top:1px solid var(--ink-100)}.scan-breakdown b{font-weight:650;color:var(--ink-900);font-variant-numeric:tabular-nums}.scan-breakdown li.is-sub{padding:0 0 10px 14px;font-size:14px;color:var(--ink-500);font-variant-numeric:tabular-nums}.scan-breakdown li.is-sub:nth-child(2){margin-top:-4px}.scan-gate{display:flex;flex-direction:column;align-items:center;padding:72px 8px 24px;text-align:center}.scan-gate-ic{display:grid;place-items:center;width:64px;height:64px;margin-bottom:20px;border-radius:50%;corner-shape:round;background:var(--ink-50);box-shadow:inset 0 0 0 1px var(--ink-100);color:var(--ink-400)}.scan-gate-ic .ic{width:28px;height:28px}.scan-gate-quiz{margin-bottom:8px;font-size:13px;font-weight:600;color:var(--ink-500)}.scan-gate-h{margin-bottom:10px;font-family:var(--font-prose);font-style:italic;font-size:24px;line-height:1.25;font-weight:400;color:var(--ink-900);text-wrap:balance}.scan-gate-b{max-width:340px;font-size:15px;line-height:1.55;color:var(--ink-500);text-wrap:pretty}.scan-toast{position:fixed;top:72px;left:50%;z-index:100;padding:10px 16px;border-radius:var(--r-pill);background:var(--ink-900);color:var(--white);font-size:13px;font-weight:600;opacity:0;transform:translate(-50%,-8px);transition:opacity var(--dur-med),transform var(--dur-med) var(--ease-out);pointer-events:none}.scan-toast.is-on{opacity:1;transform:translate(-50%,0)}.scan-lightbox{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:60px 12px 24px;background:rgba(12,13,15,.92);animation:scanFade var(--dur-med) var(--ease-out)}@keyframes scanFade{from{opacity:0}}.scan-lightbox-fig{display:flex;flex-direction:column;align-items:center;max-width:100%;max-height:100%;margin:0}.scan-lightbox-fig img{max-height:calc(100dvh - 130px);width:auto;object-fit:contain;border-radius:var(--r-sm)}.scan-lightbox-fig figcaption{margin-top:12px;font-size:13px;color:var(--ink-200);text-align:center}.scan-lightbox-close{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;corner-shape:round;background:rgba(255,255,255,.12);color:var(--white)}.scan-body :focus-visible{outline:2px solid var(--brand);outline-offset:2px}@media (min-width:900px){.scan-body{background:var(--page-bg)}.scan-m-only{display:none}.scan-d-only{display:block}.scan-shell{--fill-h:calc(100dvh - var(--scan-hdr-h, 70px) - 2 * var(--gap));display:grid;grid-template-columns:clamp(320px,25vw,360px) minmax(0,1fr);align-items:start;gap:var(--gap);padding:var(--gap)}.scan-shell[data-rail=off]{grid-template-columns:minmax(0,1fr)}.scan-shell[data-rail=off] .scan-rail{display:none}.scan-rail{display:block;position:sticky;top:calc(var(--scan-hdr-h,70px) + var(--gap));height:var(--fill-h);overflow-y:auto;scrollbar-width:none;padding:28px 24px 18px;border:var(--card-border);border-radius:var(--r-3xl);background:var(--white);box-shadow:var(--shadow-card)}.scan-rail-title{margin:14px 0 6px;font-family:var(--font-prose);font-size:22px;line-height:1.2;font-weight:700;color:var(--ink-900);text-wrap:balance}.scan-rail-who{font-size:13px;color:var(--ink-500)}.scan-rail-who b{font-weight:600;color:var(--ink-700)}.scan-rail-steps{list-style:none;display:grid;gap:2px;margin-top:20px;padding-top:16px;border-top:1px solid var(--ink-100)}.scan-rail-steps li{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:var(--r-lg);transition:background var(--dur-med) var(--smooth)}.scan-rail-steps b{display:block;font-size:14px;font-weight:600;line-height:1.3;color:var(--ink-600)}.scan-rail-steps small{display:block;font-size:12px;color:var(--ink-400)}.scan-rail-dot{display:grid;place-items:center;flex:none;width:26px;height:26px;border-radius:50%;corner-shape:round;box-shadow:inset 0 0 0 1.5px var(--ink-200);color:var(--ink-500);font-size:12px;font-weight:700}.scan-rail-dot .ic{width:14px;height:14px}.scan-rail-dot .scan-spin{width:16px;height:16px}.scan-rail-steps li.is-now{background:var(--brand-soft)}.scan-rail-steps li.is-now b{color:var(--ink-900)}.scan-rail-steps li.is-now .scan-rail-dot{background:var(--brand);box-shadow:none;color:var(--white)}.scan-rail-steps li.is-done .scan-rail-dot{background:var(--brand-light);box-shadow:none;color:var(--brand)}.scan-rail-steps li.is-done b{color:var(--ink-800)}.scan-app{max-width:none;min-height:var(--fill-h);margin:0;padding:10px clamp(32px,3.5vw,56px) 0;border:var(--card-border);border-radius:var(--r-3xl);background:var(--white);box-shadow:var(--shadow-card)}.scan-steps-bar{display:none}.scan-head{margin:18px 0 22px}.scan-h1{font-size:28px}.scan-actions{flex-direction:row;justify-content:flex-end;align-items:center;gap:12px;padding:18px 0 26px;border-radius:0 0 var(--r-3xl) var(--r-3xl)}.scan-actions .scan-btn{order:2;width:auto;min-width:220px;padding:0 28px}.scan-actions .scan-link{order:1;width:auto;padding:0 16px}.scan-actions .scan-hint{order:0;margin:0 auto 0 0;text-align:left}.scan-intro{padding-top:20px}.scan-intro .scan-sub{margin-top:6px}.scan-how{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0 0}.scan-how li{flex-direction:column;align-items:flex-start;gap:10px;padding:16px;border-radius:var(--r-xl);box-shadow:inset 0 0 0 1px var(--ink-100)}.scan-capture{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:32px}.scan-frame{height:min(58vh,560px);margin:0}.scan-frame.is-bad{height:min(48vh,460px)}.scan-tabs~.scan-capture .scan-frame{height:min(54vh,520px)}.scan-tabs~.scan-capture .scan-frame.is-bad{height:min(44vh,420px)}.scan-tips{grid-template-columns:1fr;gap:20px;margin-top:6px}.scan-tips li{flex-direction:row;align-items:flex-start;gap:12px;text-align:left;font-size:14px}.scan-tips .ic{width:36px;height:36px;padding:9px;border-radius:var(--r-md);background:var(--ink-50);color:var(--ink-500)}.scan-tips b{display:block;font-weight:600;color:var(--ink-800)}.scan-tips small{display:block;margin-top:2px;font-size:13px;color:var(--ink-500)}.scan-tabs{max-width:420px}.scan-ref img{width:54px;height:72px}.scan-grid{display:block;columns:2;column-gap:28px}.scan-row{break-inside:avoid}.scan-slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.scan-slot-thumb{width:76px;height:100px}.scan-answers{grid-template-columns:repeat(auto-fill,minmax(66px,1fr))}.scan-thumbs button,.scan-thumbs li,.scan-thumbs span{width:74px}.scan-thumbs button,.scan-thumbs span{height:98px}.scan-app[data-screen=grading] .scan-view>*,.scan-app[data-screen=results] .scan-view>*{max-width:540px;margin-left:auto;margin-right:auto}.scan-app[data-screen=gate] .scan-actions,.scan-app[data-screen=grading] .scan-actions,.scan-app[data-screen=results] .scan-actions{justify-content:center}.scan-app[data-screen=gate] .scan-gate{padding-top:14vh}.scan-app[data-screen=entry] .scan-view{padding-top:8vh}.scan-app[data-screen=entry] .scan-actions,.scan-app[data-screen=entry] .scan-view>*{width:100%;max-width:440px;margin-left:auto;margin-right:auto}.scan-app[data-screen=entry] .scan-actions{flex-direction:column;align-items:stretch}.scan-app[data-screen=entry] .scan-actions .scan-btn,.scan-app[data-screen=entry] .scan-actions .scan-link{width:100%}.scan-app[data-screen=entry] .scan-actions .scan-link{order:3}.scan-app[data-screen=dormant] .scan-view{padding-top:6vh}.scan-app[data-screen=dormant] .scan-actions,.scan-app[data-screen=dormant] .scan-view>*{width:100%;max-width:520px;margin-left:auto;margin-right:auto}.scan-app[data-screen=dormant] .scan-actions{flex-direction:column;align-items:stretch}.scan-app[data-screen=dormant] .scan-actions .scan-btn,.scan-app[data-screen=dormant] .scan-actions .scan-link{width:100%}.scan-app[data-screen=dormant] .scan-actions .scan-hint{margin:0 0 4px;text-align:center}.scan-app[data-screen=dormant] .scan-actions .scan-link{order:3}.scan-dormant-how{grid-template-columns:repeat(2,minmax(0,1fr))}}.scan-capture .scan-frame.is-flat,.scan-tabs~.scan-capture .scan-frame.is-flat{width:100%;height:auto;aspect-ratio:auto;padding:60px 10px 10px;background:var(--white);box-shadow:inset 0 0 0 1px var(--ink-200)}.scan-frame.is-flat img{height:auto}.scan-frame.is-flat.is-bad{height:auto}@media (min-width:900px){.scan-capture:has(.scan-frame.is-flat){grid-template-columns:minmax(0,1fr) 240px}}.scan-ref-img.is-flat img{object-position:left top}.scan-manual{margin-top:14px;font-size:13px;color:var(--ink-500);text-align:center}.scan-inline{padding:0;border:0;background:0 0;color:var(--brand);font:inherit;font-weight:600;cursor:pointer}.scan-inline:hover{text-decoration:underline}.scan-phy{display:flex;align-items:center;gap:12px;margin:14px 0;padding:12px 12px 12px 14px;border-radius:var(--r-lg);background:var(--brand-soft);font-size:13px;line-height:1.45;color:var(--ink-700)}.scan-phy>.ic{flex:none;width:20px;height:20px;color:var(--brand)}.scan-phy>span:not(.scan-spin){flex:1;min-width:0}.scan-phy b{display:block;font-size:14px;font-weight:600;color:var(--ink-900)}.scan-phy small{display:block;font-size:13px;color:var(--ink-600);text-wrap:pretty}.scan-phy .scan-spin{flex:none}.scan-phy.is-done{background:var(--correct-bg)}.scan-phy.is-done>.ic{color:var(--correct)}.scan-phy.is-failed{background:var(--incorrect-bg)}.scan-phy.is-failed>.ic{color:var(--incorrect)}.scan-phy-btn{flex:none;padding:9px 14px;border:0;border-radius:var(--r-pill);background:var(--brand);color:var(--white);font:600 13px/1 var(--font-sans);white-space:nowrap;cursor:pointer;transition:background var(--dur-fast)}.scan-phy-btn:hover{background:var(--brand-dark)}html.scan-cam-open,html.scan-cam-open body{overflow:hidden}.scan-cam{position:fixed;inset:0;z-index:100;background:#000;color:var(--white)}.scan-cam-overlay,.scan-cam-video{position:absolute;inset:0;width:100%;height:100%}.scan-cam-video{object-fit:cover}.scan-cam-overlay{pointer-events:none}.scan-cam-top{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;gap:10px;padding:max(12px,env(safe-area-inset-top)) 16px 28px;background:linear-gradient(rgba(0,0,0,.55),rgba(0,0,0,0))}.scan-cam-close{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:var(--r-pill);background:rgba(255,255,255,.16);color:var(--white);cursor:pointer;corner-shape:round}.scan-cam-close .ic{width:22px;height:22px}.scan-cam-title{font-size:15px;font-weight:600}.scan-cam-guide{position:absolute;inset:13% 7% 21%;pointer-events:none;--c:rgba(255, 255, 255, .85)}.scan-cam-guide i{position:absolute;width:34px;height:34px;border:3px solid var(--c);transition:border-color var(--dur-fast)}.scan-cam-guide i:first-child{top:0;left:0;border-right:0;border-bottom:0;border-top-left-radius:12px}.scan-cam-guide i:nth-child(2){top:0;right:0;border-left:0;border-bottom:0;border-top-right-radius:12px}.scan-cam-guide i:nth-child(3){bottom:0;right:0;border-left:0;border-top:0;border-bottom-right-radius:12px}.scan-cam-guide i:nth-child(4){bottom:0;left:0;border-right:0;border-top:0;border-bottom-left-radius:12px}.scan-cam.is-found .scan-cam-guide{--c:var(--warning)}.scan-cam.is-ready .scan-cam-guide{--c:var(--correct)}.scan-cam-hint{position:absolute;left:50%;bottom:calc(118px + env(safe-area-inset-bottom));max-width:calc(100% - 32px);padding:9px 14px;border-radius:var(--r-pill);background:rgba(12,13,15,.72);font-size:14px;font-weight:600;line-height:1.3;text-align:center;transform:translateX(-50%)}.scan-cam[data-tone=warn] .scan-cam-hint{background:rgba(146,64,14,.85)}.scan-cam[data-tone=bad] .scan-cam-hint{background:rgba(185,28,28,.85)}.scan-cam[data-tone=ok] .scan-cam-hint{background:rgba(0,120,86,.9)}.scan-cam-bar{position:absolute;left:0;right:0;bottom:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:18px 16px max(22px,env(safe-area-inset-bottom));background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.6))}.scan-cam-lib{justify-self:start;display:inline-flex;align-items:center;gap:6px;padding:10px 12px;border:0;border-radius:var(--r-pill);background:rgba(255,255,255,.16);color:var(--white);font:600 13px/1 var(--font-sans);white-space:nowrap;cursor:pointer;corner-shape:round}.scan-cam-lib .ic{width:18px;height:18px}.scan-cam-shutter{display:grid;place-items:center;width:74px;height:74px;padding:0;border:4px solid var(--white);border-radius:50%;corner-shape:round;background:0 0;cursor:pointer}.scan-cam-shutter i{width:58px;height:58px;border-radius:50%;corner-shape:round;background:var(--white);transition:transform var(--dur-fast) var(--ease-out)}.scan-cam-shutter:active i{transform:scale(.92)}.scan-cam-shutter:disabled{opacity:.6}.scan-cam.is-ready .scan-cam-shutter{border-color:var(--correct)}.scan-cam::after{content:'';position:absolute;inset:0;background:var(--white);opacity:0;pointer-events:none}.scan-cam.is-flash::after{animation:scanFlash .35s var(--ease-out)}@keyframes scanFlash{from{opacity:.85}to{opacity:0}}@media (prefers-reduced-motion:reduce){.scan-cam.is-flash::after{animation:none}}