.scanner-dialog{--background:#242424;--card:#242424;--card-foreground:#fff;--foreground:#fff;--muted-foreground:#c2c2c2;--border:#505050;--input:#505050;--secondary:#303030;--secondary-foreground:#fff;--accent:#303030;--accent-foreground:#fff;--ring:#07c160;--primary:#07c160;--primary-foreground:#052e16;width:100%;max-width:640px;height:100dvh;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);overscroll-behavior:contain;color:#fff;color-scheme:dark;background:#111;border-radius:0;flex-direction:column;gap:0;scroll-padding-top:76px;display:flex;overflow-y:auto}.scanner-dialog>*{flex-shrink:0}.scanner-header{z-index:2;background:#111;flex-direction:row;justify-content:space-between;align-items:center;padding:12px 16px;position:sticky;top:0}.scanner-close{place-items:center;width:44px;height:44px;display:grid}.scanner-stage{background:#191919;flex:1 0 300px;min-height:300px;position:relative;overflow:hidden}.scanner-viewfinder{aspect-ratio:2.6;width:min(82%,420px);position:absolute;top:46%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 100vmax #0005}.scanner-shelf .scanner-viewfinder{aspect-ratio:1;width:min(72%,300px)}.scanner-viewfinder>span{border:0 solid #07c160;width:22px;height:22px;position:absolute}.scanner-viewfinder>span:first-child{border-top-width:3px;border-left-width:3px;top:0;left:0}.scanner-viewfinder>span:nth-child(2){border-top-width:3px;border-right-width:3px;top:0;right:0}.scanner-viewfinder>span:nth-child(3){border-bottom-width:3px;border-left-width:3px;bottom:0;left:0}.scanner-viewfinder>span:nth-child(4){border-bottom-width:3px;border-right-width:3px;bottom:0;right:0}.scanner-line{background:#07c160;height:1px;animation:2.4s ease-in-out infinite alternate scanner-sweep;position:absolute;inset:10% 3% auto;box-shadow:0 0 12px #07c160}.scanner-start,.scanner-progress{flex-direction:column;align-items:center;gap:12px;padding:20px;display:flex;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)}.scanner-start{background:#111b;border-radius:12px}.scanner-progress{background:#111e;border-radius:12px}.scanner-hint{text-align:center;color:#e5e5e5;text-shadow:0 1px 4px #000;width:100%;padding:0 20px;font-size:13px;position:absolute;bottom:22px}.scanner-status{text-align:center;color:#c2c2c2;min-height:52px;padding:16px 24px 4px;font-size:13px;line-height:1.6}.scanner-actions{grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:4px;padding:12px 12px 20px;display:grid}.scanner-actions button{border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-width:0;min-height:64px;padding:8px 2px;font-size:13px;transition:background .15s,transform .15s;display:flex}.scanner-actions button[aria-pressed=true]{color:#07c160}.scanner-actions svg{stroke-width:1.5px;width:28px;height:28px}.scanner-dialog button:disabled{opacity:.45}.scanner-dialog button:focus-visible{outline-offset:3px;outline:2px solid #07c160}.scanner-actions button:active{background:#ffffff12;transform:scale(.96)}.scanner-details{background:#242424;border-top:1px solid #383838;padding:20px}.scanner-panel{flex:1;align-self:center;width:100%;max-width:440px;padding:28px 24px}.scanner-result{flex-direction:column;display:flex}.scanner-result-actions{margin-top:auto;padding-top:28px}.scanner-clear{color:#c2c2c2;border-radius:8px;place-items:center;width:48px;height:48px;display:grid;position:absolute;top:0;right:0}.scanner-dialog input[data-slot=input]{min-height:48px;font-size:16px}.scanner-panel [data-slot=button]{min-height:48px}.scanner-preference{color:#c2c2c2;align-items:center;gap:10px;min-height:48px;padding:8px 24px;font-size:13px;display:flex}.scanner-preference input{accent-color:#07c160;width:20px;height:20px}.scanner-dialog select{min-height:44px}.scanner-mode{color:#c2c2c2;justify-content:center;align-items:center;gap:12px;padding:8px 20px 16px;font-size:13px;display:flex}.scanner-mode select{color:#fff;background:#242424;border:1px solid #505050;border-radius:6px;padding:8px 12px}@keyframes scanner-sweep{to{top:90%}}@media (width>=640px){.scanner-dialog{border-radius:12px;height:min(900px,96dvh)}}@media (prefers-reduced-motion:reduce){.scanner-line{animation:none;top:50%}.scanner-actions button{transition:none}}
