.saas-qr-scanner{gap:var(--saas-space-sm);flex-direction:column;display:flex}.saas-qr-scanner__view{aspect-ratio:4/3;border:1px solid var(--saas-border-default);border-radius:var(--saas-radius-md);background:var(--saas-bg-sunken);justify-content:center;align-items:center;max-block-size:360px;display:flex;position:relative;overflow:hidden}.saas-qr-scanner[data-state=scanning] .saas-qr-scanner__view{background:var(--saas-inverse-surface)}.saas-qr-scanner__video{object-fit:cover;block-size:100%;inline-size:100%}.saas-qr-scanner__frame{aspect-ratio:1;border:3px solid var(--saas-bg-surface);border-radius:var(--saas-radius-lg);inline-size:58%;box-shadow:0 0 0 999px color-mix(in srgb, var(--saas-inverse-surface) 45%, transparent);position:absolute;overflow:hidden;container-type:size}.saas-qr-scanner__frame:after{content:"";background:var(--saas-brand-primary);block-size:2px;animation:saas-qr-scanner-sweep 1.8s var(--saas-ease-standard) infinite alternate;position:absolute;inset-block-start:0;inset-inline:0}@keyframes saas-qr-scanner-sweep{0%{transform:translateY(0)}to{transform:translateY(calc(100cqb - 2px))}}@media (prefers-reduced-motion:reduce){.saas-qr-scanner__frame:after{animation:none}}.saas-qr-scanner__idle{color:var(--saas-text-secondary)}.saas-qr-scanner__message{color:var(--saas-text-secondary);font-size:var(--saas-font-body-sm);margin:0}.saas-qr-scanner[data-state=denied] .saas-qr-scanner__message,.saas-qr-scanner[data-state=unavailable] .saas-qr-scanner__message{color:var(--saas-status-danger)}.saas-qr-scanner__actions{gap:var(--saas-space-sm);display:flex}