.qr-login{--lg-brand:var(--color-brand,#2563eb);--lg-brand-hover:var(--color-brand-hover,#1d4ed8);--lg-brand-soft:#2563eb1a;--lg-bg:var(--color-bg,#f8fafc);--lg-surface:#fff;--lg-text:var(--color-text,#0f172a);--lg-text-2:var(--color-text-secondary,#334155);--lg-text-3:var(--color-text-muted,#64748b);--lg-border:var(--color-border,#e2e8f0);--lg-danger:var(--color-danger,#ef4444);--lg-danger-soft:var(--color-danger-light,#fef2f2);--lg-danger-dark:var(--color-danger-dark,#991b1b);--lg-radius-sm:10px;--lg-radius:14px;--lg-radius-lg:22px;--lg-radius-xl:32px;--lg-shadow-card:0 24px 60px -20px #0f172a2e;--lg-shadow-btn:0 8px 20px -8px #2563eb8c;--lg-font:var(--font-ibm-plex), system-ui, -apple-system, "Segoe UI", sans-serif;--lg-font-mono:var(--font-jetbrains), ui-monospace, monospace;background:radial-gradient(ellipse 80% 60% at 20% 0%, #2563eb14, transparent), radial-gradient(ellipse 80% 60% at 100% 100%, #2563eb0f, transparent), var(--lg-bg);min-height:100vh;font-family:var(--lg-font);color:var(--lg-text);-webkit-font-smoothing:antialiased;place-items:center;padding:24px;display:grid;overflow-x:hidden}.qr-login-loading{background:var(--lg-bg,#f8fafc);justify-content:center;align-items:center;min-height:100vh;display:flex}.qr-login-spinner-lg{border:4px solid var(--color-brand,#2563eb);border-top-color:#0000;border-radius:50%;width:40px;height:40px;animation:.8s linear infinite qr-spin}@keyframes qr-spin{to{transform:rotate(360deg)}}.qr-split{background:var(--lg-surface);border-radius:var(--lg-radius-xl);width:100%;max-width:1180px;min-height:660px;box-shadow:var(--lg-shadow-card);grid-template-columns:1.05fr 1fr;display:grid;position:relative;overflow:hidden}.qr-mascot-pane{background:radial-gradient(80% 80% at 50% 0,#2563eb26,#0000 60%),linear-gradient(160deg,#eff6ff 0%,#dbeafe 60%,#e0e7ff 100%);flex-direction:column;justify-content:center;align-items:center;padding:48px 40px;display:flex;position:relative;overflow:hidden}.qr-mascot-pane:before{content:"";top:-120px;filter:blur(40px);pointer-events:none;background:radial-gradient(circle,#2563eb2e,#0000 70%);border-radius:50%;width:320px;height:320px;position:absolute;inset-inline-end:-120px}.qr-mascot-pane:after{content:"";bottom:-140px;filter:blur(50px);pointer-events:none;background:radial-gradient(circle,#2563eb1a,#0000 70%);border-radius:50%;width:360px;height:360px;position:absolute;inset-inline-start:-100px}.qr-brand-badge{-webkit-backdrop-filter:blur(10px);z-index:2;background:#ffffffb3;border:1px solid #ffffffe6;border-radius:999px;align-items:center;gap:10px;margin-bottom:20px;padding:6px 14px 6px 6px;display:inline-flex;position:relative;box-shadow:0 4px 14px -4px #0f172a14}.qr-brand-mark{background:linear-gradient(135deg, var(--lg-brand), var(--lg-brand-hover));color:#fff;border-radius:11px;justify-content:center;align-items:center;width:34px;height:34px;font-size:18px;font-weight:800;display:inline-flex;box-shadow:0 6px 14px -4px #2563eb80}.qr-brand-name-inline{color:var(--lg-text);padding-inline-end:8px;font-size:15px;font-weight:800}.qr-brand-title{color:var(--lg-text);letter-spacing:-.02em;text-align:center;z-index:2;margin:0 0 6px;font-size:32px;font-weight:800;position:relative}.qr-brand-tagline{color:var(--lg-text-3);text-align:center;z-index:2;margin:0 0 24px;font-size:14px;position:relative}.qr-mascot-wrap{z-index:2;justify-content:center;align-items:center;margin:8px 0 24px;display:flex;position:relative}.qr-mascot{transform-origin:bottom;width:260px;height:auto;animation:3.4s ease-in-out infinite qr-idle-bob;display:block}@keyframes qr-idle-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.qr-mascot .qr-eye{transform-box:fill-box;transform-origin:50%;transition:transform .14s ease-out}.qr-mascot .qr-pupil{transition:transform .12s ease-out}.qr-mascot .qr-hand{transform-box:fill-box;transform-origin:50%;transition:transform .55s cubic-bezier(.34,1.4,.5,1)}.qr-mascot .qr-hand-left{transform:translate(-40px)}.qr-mascot .qr-hand-right{transform:translate(40px)}.qr-mascot.is-typing .qr-hand-left,.qr-mascot.is-typing .qr-hand-right{transform:translateY(-150px)}.qr-mascot.is-peeking .qr-hand-left{transform:translate(-18px,-110px)rotate(-12deg)}.qr-mascot.is-peeking .qr-hand-right{transform:translate(20px,-80px)rotate(14deg)}.qr-mascot.is-typing .qr-eye,.qr-mascot.is-peeking .qr-eye{transform:translateY(6px)scaleY(.82)}.qr-mascot .qr-mouth{transition:opacity .3s}.qr-mascot .qr-mouth-happy,.qr-mascot .qr-mouth-sad,.qr-mascot.is-success .qr-mouth-idle{opacity:0}.qr-mascot.is-success .qr-mouth-happy{opacity:1}.qr-mascot.is-error .qr-mouth-idle{opacity:0}.qr-mascot.is-error .qr-mouth-sad{opacity:1}.qr-mascot.is-error{animation:.55s cubic-bezier(.36,.07,.19,.97) qr-shake}@keyframes qr-shake{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(4px)}30%,50%,70%{transform:translate(-8px)}40%,60%{transform:translate(8px)}}.qr-mascot .qr-antenna-glow{transform-origin:50%;animation:2.4s ease-in-out infinite qr-antenna-pulse}@keyframes qr-antenna-pulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:.25;transform:scale(1.3)}}.qr-mascot .qr-chef-hat{transform-origin:200px 150px;animation:4s ease-in-out infinite qr-hat-wiggle}@keyframes qr-hat-wiggle{0%,to{transform:rotate(-1.5deg)}50%{transform:rotate(1.5deg)}}.qr-feature-list{z-index:2;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex;position:relative}.qr-feature-list li{color:var(--lg-text-2);align-items:center;gap:8px;font-size:13px;font-weight:500;display:flex}.qr-feature-list li:before{content:"";background:#2563eb1f url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") 50%/12px 12px no-repeat;border-radius:50%;flex-shrink:0;width:18px;height:18px}.qr-form-pane{flex-direction:column;justify-content:center;padding:56px 60px;display:flex;position:relative}.qr-form-header{margin-bottom:28px}.qr-form-header h1{color:var(--lg-text);letter-spacing:-.01em;margin:0 0 6px;font-size:26px;font-weight:800}.qr-form-header p{color:var(--lg-text-3);margin:0;font-size:14px}.qr-field{margin-bottom:18px}.qr-field label{color:var(--lg-text-2);margin-bottom:8px;font-size:13px;font-weight:600;display:block}.qr-field input{background:var(--lg-bg);border:1.5px solid var(--lg-border);border-radius:var(--lg-radius);width:100%;height:48px;color:var(--lg-text);outline:none;padding:0 16px;font-family:inherit;font-size:16px;transition:border-color .2s,box-shadow .2s,background .2s}.qr-field input::placeholder{color:#94a3b8}.qr-field input:focus{border-color:var(--lg-brand);background:#fff;box-shadow:0 0 0 4px #2563eb1f}.qr-field input:disabled{opacity:.5;cursor:not-allowed}.qr-password-wrap{position:relative}.qr-password-wrap input{padding-inline-start:48px}.qr-toggle-pass{top:50%;width:34px;height:34px;color:var(--lg-text-3);cursor:pointer;background:0 0;border:none;border-radius:9px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex;position:absolute;inset-inline-start:10px;transform:translateY(-50%)}.qr-toggle-pass:hover{color:var(--lg-text);background:#0f172a0d}.qr-toggle-pass:disabled{cursor:not-allowed;opacity:.5}.qr-toggle-pass svg{width:18px;height:18px}.qr-error-box{background:var(--lg-danger-soft);color:var(--lg-danger-dark);border-radius:var(--lg-radius);text-align:center;border:1px solid #ef444433;margin-bottom:16px;padding:11px 14px;font-size:13px;font-weight:600;animation:.25s ease-out qr-slide-down}@keyframes qr-slide-down{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.qr-submit-btn{border-radius:var(--lg-radius);background:linear-gradient(135deg, var(--lg-brand), var(--lg-brand-hover));color:#fff;cursor:pointer;width:100%;height:48px;box-shadow:var(--lg-shadow-btn);border:none;justify-content:center;align-items:center;gap:8px;margin-top:8px;font-family:inherit;font-size:15px;font-weight:700;transition:transform .15s,box-shadow .2s,filter .15s;display:inline-flex}.qr-submit-btn:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-1px)}.qr-submit-btn:active:not(:disabled){transform:scale(.985)}.qr-submit-btn:disabled{opacity:.55;cursor:not-allowed}.qr-spinner-sm{border:2.5px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite qr-spin;display:inline-block}.qr-form-footer{text-align:center;color:var(--lg-text-3);margin-top:22px;font-size:12px}.qr-hint{color:var(--lg-text-3);text-align:center;margin-top:12px;font-size:12px}@media (max-width:1023px){.qr-login{padding:20px}.qr-split{grid-template-columns:1fr;max-width:560px;min-height:auto}.qr-mascot-pane{border-bottom:1px solid var(--lg-border);padding:36px 32px 24px}.qr-mascot{width:200px}.qr-brand-title{font-size:26px}.qr-brand-tagline{margin-bottom:16px;font-size:13px}.qr-feature-list{display:none}.qr-form-pane{padding:32px 40px 44px}}@media (max-width:640px){.qr-login{place-items:stretch stretch;padding:0}.qr-split{max-width:100%;min-height:100dvh;box-shadow:none;border-radius:0;grid-template-rows:auto 1fr}.qr-mascot-pane{min-height:0;padding:28px 20px 14px}.qr-brand-badge{margin-bottom:12px;padding:4px 12px 4px 4px}.qr-brand-mark{border-radius:9px;width:28px;height:28px;font-size:15px}.qr-brand-name-inline{font-size:13px}.qr-brand-title{margin-bottom:3px;font-size:22px}.qr-brand-tagline{margin-bottom:10px;font-size:12px}.qr-mascot-wrap{margin:4px 0 12px}.qr-mascot{width:150px}.qr-form-pane{justify-content:flex-start;padding:22px 22px 40px}.qr-form-header{margin-bottom:20px}.qr-form-header h1{font-size:22px}.qr-field{margin-bottom:14px}.qr-field input{height:46px;font-size:16px}.qr-submit-btn{height:46px}.qr-hint{display:none}}@media (prefers-reduced-motion:reduce){.qr-mascot,.qr-mascot .qr-antenna-glow,.qr-mascot .qr-chef-hat{animation:none!important}.qr-mascot .qr-hand,.qr-mascot .qr-eye,.qr-mascot .qr-pupil{transition:none!important}}
