.scanner-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172ae0;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:9999;display:flex;align-items:center;justify-content:center;padding:16px;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease}.scanner-modal-backdrop.active{opacity:1;visibility:visible}.scanner-card{background:var(--slate-900);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-xl);width:100%;max-width:480px;overflow:hidden;box-shadow:0 25px 50px -12px #0009;display:flex;flex-direction:column}.scanner-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--slate-800);border-bottom:1px solid rgba(255,255,255,.08)}.scanner-title-wrap{display:flex;flex-direction:column}.scanner-title{font-size:1.0625rem;font-weight:700;color:var(--white)}.scanner-sub{font-size:.75rem;color:var(--slate-400);margin-top:2px}.scanner-close-btn{background:#ffffff1a;border:none;color:var(--slate-200);width:32px;height:32px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.125rem;transition:background .2s}.scanner-close-btn:hover{background:#fff3}.scanner-viewport-box{position:relative;width:100%;height:340px;background:var(--black);overflow:hidden;display:flex;align-items:center;justify-content:center}.scanner-video-element{width:100%!important;height:100%!important;object-fit:cover!important}.scanner-reticle-overlay{position:absolute;width:240px;height:240px;pointer-events:none;z-index:10;display:flex;align-items:center;justify-content:center}.reticle-corner{position:absolute;width:28px;height:28px;border-color:var(--indigo-500);border-style:solid}.reticle-corner.top-left{top:0;left:0;border-width:4px 0 0 4px;border-top-left-radius:8px}.reticle-corner.top-right{top:0;right:0;border-width:4px 4px 0 0;border-top-right-radius:8px}.reticle-corner.bottom-left{bottom:0;left:0;border-width:0 0 4px 4px;border-bottom-left-radius:8px}.reticle-corner.bottom-right{bottom:0;right:0;border-width:0 4px 4px 0;border-bottom-right-radius:8px}.scanner-laser-line{position:absolute;width:100%;height:3px;background:linear-gradient(90deg,rgba(99,102,241,0) 0%,var(--sky-400) 50%,rgba(99,102,241,0) 100%);box-shadow:0 0 12px var(--sky-400);animation:laser-sweep 2.2s infinite ease-in-out}@keyframes laser-sweep{0%{top:4px;opacity:.9}50%{top:calc(100% - 6px);opacity:.9}to{top:4px;opacity:.9}}.scanner-success-flash{position:absolute;top:0;right:0;bottom:0;left:0;background:#10b98166;pointer-events:none;z-index:20;opacity:0;transition:opacity .2s ease}.scanner-success-flash.flash{opacity:1}.scanner-controls-bar{display:flex;align-items:center;justify-content:space-around;padding:14px 16px;background:var(--slate-800);border-top:1px solid rgba(255,255,255,.08)}.scanner-tool-btn{display:inline-flex;flex-direction:column;align-items:center;gap:4px;background:transparent;border:none;color:var(--slate-300);font-size:.75rem;font-weight:500;cursor:pointer;padding:6px 12px;border-radius:var(--radius-md);transition:background .2s,color .2s}.scanner-tool-btn:hover{background:#ffffff14;color:var(--white)}.scanner-tool-btn.active{color:var(--sky-400);background:#38bdf81f}.scanner-tool-icon{font-size:1.25rem}.scanner-reticle-overlay{border-radius:14px;box-shadow:0 0 0 9999px #02061780}.reticle-corner{border-color:var(--sky-400);filter:drop-shadow(0 0 6px rgba(56,189,248,.6));animation:reticleBreathe 2.2s var(--ease-standard) infinite}.reticle-corner.top-left{transform-origin:top left}.reticle-corner.top-right{transform-origin:top right}.reticle-corner.bottom-left{transform-origin:bottom left}.reticle-corner.bottom-right{transform-origin:bottom right}@keyframes reticleBreathe{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.12);opacity:.75}}.scanner-laser-line{top:0;left:8px;right:8px;width:auto;height:2px;border-radius:2px;animation:laserGlide 2.2s var(--ease-standard) infinite alternate}.scanner-laser-line:after{content:"";position:absolute;left:0;right:0;bottom:2px;height:36px;background:linear-gradient(to top,rgba(56,189,248,.22),transparent);pointer-events:none}@keyframes laserGlide{0%{transform:translateY(6px)}to{transform:translateY(232px)}}
