/* CPS — [cps_qr_login] scanner for custom login pages. Everything is scoped to .cps-qrs. */
.cps-qrs{max-width:420px;margin:1em auto;text-align:center;color:inherit;box-sizing:border-box}
.cps-qrs *,.cps-qrs *:before,.cps-qrs *:after{box-sizing:border-box}
.cps-qrs [hidden]{display:none!important}

.cps-qrs .cps-qrs-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:46px;margin:0 0 8px;padding:10px 18px;
  border:0;border-radius:8px;background:var(--cps-qrs-accent,#4f46e5);color:#fff;font-family:inherit;font-size:inherit;font-weight:400;line-height:1.2;
  cursor:pointer;box-shadow:none;text-transform:none;letter-spacing:0}
.cps-qrs .cps-qrs-btn:hover,.cps-qrs .cps-qrs-btn:focus{background:var(--cps-qrs-accent-hover,#4338ca);color:#fff}
.cps-qrs .cps-qrs-btn:focus-visible,.cps-qrs .cps-qrs-link:focus-visible{outline:3px solid #f59e0b;outline-offset:2px}
.cps-qrs .cps-qrs-alt{background:#64748b}
.cps-qrs .cps-qrs-alt:hover,.cps-qrs .cps-qrs-alt:focus{background:#475569}
.cps-qrs .cps-qrs-ico{flex:none;width:20px;height:20px}

.cps-qrs .cps-qrs-stage{position:relative;width:100%;aspect-ratio:1/1;margin:0 0 12px;border-radius:14px;overflow:hidden;background:#0f172a}
.cps-qrs .cps-qrs-video{display:block;width:100%;height:100%;object-fit:cover}
.cps-qrs .cps-qrs-frame{position:absolute;inset:14%;border:4px solid rgba(255,255,255,.9);border-radius:16px;box-shadow:0 0 0 9999px rgba(15,23,42,.35);pointer-events:none}

.cps-qrs .cps-qrs-msg{min-height:1.6em;margin:4px 0 6px;font-size:16px;line-height:1.5}
.cps-qrs .cps-qrs-msg:empty{min-height:0;margin:0}
.cps-qrs .cps-qrs-msg.is-err{color:#b91c1c}
.cps-qrs .cps-qrs-msg.is-ok{color:#15803d;font-weight:600}

.cps-qrs .cps-qrs-link{display:inline-block;margin:0;padding:6px;border:0;background:none;color:inherit;font:inherit;font-size:15px;line-height:1.2;text-decoration:underline;cursor:pointer;box-shadow:none;text-transform:none}
.cps-qrs .cps-qrs-file{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none}

@media (prefers-color-scheme:dark){
  .cps-qrs .cps-qrs-msg.is-err{color:#fca5a5}
  .cps-qrs .cps-qrs-msg.is-ok{color:#86efac}
}
@media (prefers-reduced-motion:no-preference){
  .cps-qrs .cps-qrs-btn{transition:background-color .15s}
}
