.scanner-card[data-v-04f15ff2]{max-width:500px;margin:0 auto;overflow:hidden}.scanner-wrapper[data-v-04f15ff2]{position:relative;padding:16px}.scanner-viewport[data-v-04f15ff2]{position:relative;width:100%;height:0;padding-bottom:37.5%;overflow:hidden;background:#000;border-radius:8px}.scanner-video[data-v-04f15ff2]{position:absolute;top:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.scan-guide[data-v-04f15ff2]{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.scan-frame[data-v-04f15ff2]{position:absolute;top:50%;left:50%;width:80%;height:60%;transform:translate(-50%,-50%);border:2px solid rgba(0,255,0,.7);border-radius:8px;box-shadow:0 0 0 100vmax rgba(0,0,0,.7);transition:box-shadow .3s}.corner[data-v-04f15ff2]{position:absolute;width:20px;height:20px;border-color:#0f0;border-style:solid;border-width:0}.corner.top-left[data-v-04f15ff2]{top:-2px;left:-2px;border-top-width:4px;border-left-width:4px;border-top-left-radius:8px}.corner.top-right[data-v-04f15ff2]{top:-2px;right:-2px;border-top-width:4px;border-right-width:4px;border-top-right-radius:8px}.corner.bottom-left[data-v-04f15ff2]{bottom:-2px;left:-2px;border-bottom-width:4px;border-left-width:4px;border-bottom-left-radius:8px}.corner.bottom-right[data-v-04f15ff2]{bottom:-2px;right:-2px;border-bottom-width:4px;border-right-width:4px;border-bottom-right-radius:8px}.scan-line[data-v-04f15ff2]{position:absolute;top:0;left:10%;width:80%;height:3px;background:linear-gradient(180deg,transparent,#0f0,transparent);-webkit-animation:scanLine-data-v-04f15ff2 2s linear infinite;animation:scanLine-data-v-04f15ff2 2s linear infinite;opacity:.8}@-webkit-keyframes scanLine-data-v-04f15ff2{0%{top:0;opacity:.8}50%{opacity:.2}to{top:100%;opacity:.8}}@keyframes scanLine-data-v-04f15ff2{0%{top:0;opacity:.8}50%{opacity:.2}to{top:100%;opacity:.8}}.scan-result[data-v-04f15ff2]{padding:8px;background:rgba(0,0,0,.7);color:#fff;border-radius:4px;text-align:center;word-break:break-all}.scanner-controls[data-v-04f15ff2]{background:rgba(0,0,0,.05);border-top:1px solid #eee}.instruction[data-v-04f15ff2]{background:rgba(0,150,255,.1);border-top:1px solid rgba(0,150,255,.2)}@media (max-width:600px){.scanner-viewport[data-v-04f15ff2]{padding-bottom:50%}.scan-frame[data-v-04f15ff2]{width:90%;height:60%}}