.login.qr-enabled{width:min(calc(100% - 28px),850px)}
.login-methods{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,300px);gap:24px;align-items:start}
.login:not(.qr-enabled) .login-methods{display:block}
.password-login{min-width:0}.qr-login{min-width:0;padding:18px;border:1px solid #bad8cf;border-radius:17px;background:linear-gradient(145deg,#f2fbf7,#eef5fa);text-align:center}
.qr-login [hidden]{display:none!important}
.qr-login h2{margin:0 0 8px;font-size:1.15rem;color:#126754}.qr-login p{margin:7px 0 13px;font-size:.84rem;line-height:1.45}
.qr-image-box{display:grid;width:min(100%,240px);aspect-ratio:1;margin:auto;place-items:center;border:1px solid #c2d7d1;border-radius:14px;background:#fff;overflow:hidden}
.qr-image-box img{display:block;width:100%;height:100%;object-fit:contain}.qr-image-box img[hidden]{display:none}
.qr-login.is-expired .qr-image-box img{opacity:.13;filter:blur(3px)}
.qr-login-status{display:flex;align-items:center;justify-content:center;gap:8px;min-height:38px;margin-top:9px;font-size:.82rem;font-weight:800;color:#35685c}
.qr-login-status::before{width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:#2d9b77;content:""}
.qr-login.is-expired .qr-login-status{color:#8c5534}.qr-login.is-expired .qr-login-status::before{background:#b38345}
.qr-login-countdown{font-variant-numeric:tabular-nums;color:#63766f}
.qr-login progress{display:block;width:100%;height:4px;margin:0 0 10px;border:0;border-radius:3px;background:#d5e4de;appearance:none;overflow:hidden}
.qr-login progress::-webkit-progress-bar{background:#d5e4de}.qr-login progress::-webkit-progress-value{background:#4d9b7c}.qr-login progress::-moz-progress-bar{background:#4d9b7c}
.qr-login button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:40px;padding:9px;border:1px solid #8bb7a7;border-radius:10px;background:#e0f0e8;color:#17614e;font:inherit;font-size:.83rem;font-weight:800;cursor:pointer}
.qr-login button:disabled{opacity:.55;cursor:wait}.qr-login button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.qr-login small{display:block;margin-top:11px;color:#657a70;font-size:.73rem;line-height:1.4}
@media(max-width:640px){.login-methods{grid-template-columns:1fr;gap:20px}.qr-login{display:grid;justify-items:center;padding:16px}.qr-login-status,.qr-login progress,.qr-login button{width:min(100%,280px)}.qr-image-box{width:220px;max-width:100%}}
@media(prefers-reduced-motion:no-preference){.qr-login-status::before{animation:qr-login-pulse 2s ease-in-out infinite}@keyframes qr-login-pulse{50%{opacity:.35}}}
