:root{--color-background:#090b0f;--color-surface:#11151c;--color-text:#f6f7f9;--color-muted:#a9b0bc;--color-border:#dfe5ee;--color-action:#fff;--color-action-text:#11151c;--color-danger:#f1f5f9;--shadow-focus:0 0 0 3px #ffffff57;--font-family-base:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--control-height:2.375rem;color:var(--color-text);background:var(--color-background);font-family:var(--font-family-base);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.4}*{box-sizing:border-box}body{min-width:320px;min-height:100svh}body,h1,p{margin:0}button,a{font:inherit}.quick-follow{background:var(--color-background);flex-direction:column;min-height:100svh;display:flex}.scanner{flex:auto;justify-content:center;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden}.scanner__title{z-index:3;font-size:.875rem;font-weight:700;position:absolute;top:.5rem;left:.75rem}.scanner__video{object-fit:cover;background:#000;width:100%;height:100%;position:absolute;inset:0}.scanner__shade{z-index:1;background:#0000006b;position:absolute;inset:0}.scanner__preview{z-index:1;justify-content:center;align-items:center;padding:.5rem;display:flex;position:absolute;inset:0}.scanner__preview[hidden]{display:none}.scanner__preview-frame{max-width:100%;max-height:100%;transform-origin:var(--preview-origin-x,50%) var(--preview-origin-y,50%);transform:scale(var(--preview-scale,1)) translate(var(--preview-translate-x,0), var(--preview-translate-y,0));transition:transform .22s ease-out,filter .16s ease-out;display:block;position:relative}.scanner__preview-image{max-width:100%;max-height:calc(100svh - var(--control-height) - 1rem);object-fit:contain;display:block}.scanner__preview-overlay{position:absolute;inset:0}.scanner__preview-frame--zoomed .scanner__preview-overlay:before{clip-path:polygon(0 0, 100% 0, 100% 100%, 0 100%, 0 var(--focus-top,0), var(--focus-left,0) var(--focus-top,0), var(--focus-left,0) calc(100% - var(--focus-bottom,0)), calc(100% - var(--focus-right,0)) calc(100% - var(--focus-bottom,0)), calc(100% - var(--focus-right,0)) var(--focus-top,0), 0 var(--focus-top,0));content:"";opacity:0;background:#0000009e;animation:.18s ease-out forwards preview-focus-fade;position:absolute;inset:0}@keyframes preview-focus-fade{to{opacity:1}}.scanner__preview-box{display:block;position:absolute}.scanner__preview-box--phone{background:#00e5ff1f;border:2px solid #00e5ff;box-shadow:0 0 0 2px #000000bf}.scanner__preview-box--ocr-line{background:#ffcc0029;border:2px solid #fc0;box-shadow:0 0 0 1px #000000bf}.scanner__guide{z-index:2;aspect-ratio:9/19.5;border:2px solid var(--color-border);border-radius:1.25rem;width:min(68vw,19rem);position:relative;box-shadow:0 0 0 999rem #0000002e}.scanner__guide:before,.scanner__guide:after{content:"";background:#ffffffa3;width:76%;height:1px;position:absolute;left:12%}.scanner__guide:before{top:19%}.scanner__guide:after{top:50%}.scanner__status{z-index:3;color:var(--color-text);text-align:center;text-overflow:ellipsis;white-space:nowrap;background:#090b0fb8;border:1px solid #ffffff4d;border-radius:.5rem;padding:.375rem .5rem;font-size:.875rem;position:absolute;bottom:.75rem;left:.75rem;right:.75rem;overflow:hidden}.control{background:var(--color-surface);border-top:1px solid #ffffff24;flex:none;justify-content:center;align-items:center;gap:.375rem;padding:.5rem;display:flex}.control__button,.control__link,.control__file{min-width:5.5rem;min-height:var(--control-height);background:var(--color-action);color:var(--color-action-text);border:1px solid #0000;border-radius:.5rem;justify-content:center;align-items:center;gap:.375rem;padding:.375rem .625rem;font-size:.875rem;font-weight:700;line-height:1;text-decoration:none;transition:scale .16s,box-shadow .16s;display:inline-flex}.control__input{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.control__button:disabled{opacity:.45}.control__button:focus-visible,.control__link:focus-visible,.control__file:focus-within{box-shadow:var(--shadow-focus)}.control__icon{flex:none;width:1rem;height:1rem}@media (any-hover:hover){.control__button:hover:enabled,.control__link:hover,.control__file:hover{box-shadow:var(--shadow-focus);scale:.97}}@media (width<=480px){.scanner__guide{width:min(76vw,18rem)}.control{justify-content:stretch}.control__button,.control__link,.control__file{flex:1 1 0;min-width:0}}
