.login-page[data-v-d73efca5]{height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-deep);background-image:radial-gradient(ellipse at 20% 50%,rgba(96,165,250,.06) 0%,transparent 50%),radial-gradient(ellipse at 80% 20%,rgba(245,158,11,.04) 0%,transparent 50%)}.login-card[data-v-d73efca5]{width:420px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-3xl) var(--space-2xl)}.login-header[data-v-d73efca5]{text-align:center;margin-bottom:24px}.login-icon[data-v-d73efca5]{font-size:48px;margin-bottom:12px}.login-header h1[data-v-d73efca5]{font-size:28px;font-weight:800;letter-spacing:-.02em;margin-bottom:4px}.login-header p[data-v-d73efca5]{font-size:14px;color:var(--text-secondary)}.login-tabs[data-v-d73efca5]{display:flex;border-bottom:2px solid var(--border);margin-bottom:24px}.tab[data-v-d73efca5]{flex:1;padding:10px;border:none;background:none;font-size:14px;font-weight:600;color:var(--text-secondary);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s}.tab.active[data-v-d73efca5]{color:var(--primary);border-bottom-color:var(--primary)}.tab[data-v-d73efca5]:hover:not(.active){color:var(--text-primary)}.form-group[data-v-d73efca5]{margin-bottom:16px}.form-group label[data-v-d73efca5]{display:block;font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:6px}.login-error[data-v-d73efca5]{background:#ef44441a;color:var(--danger);padding:10px 14px;border-radius:var(--radius-sm);font-size:13px;margin-bottom:16px}.login-btn[data-v-d73efca5]{width:100%;justify-content:center;padding:12px;font-size:15px;margin-top:8px}.qr-section[data-v-d73efca5]{text-align:center}.qr-box[data-v-d73efca5]{padding:16px}.qr-image[data-v-d73efca5]{width:220px;height:220px;border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:16px}.qr-hint[data-v-d73efca5]{font-size:13px;color:var(--text-secondary)}.qr-loading[data-v-d73efca5],.qr-expired[data-v-d73efca5],.qr-error[data-v-d73efca5]{padding:40px 20px;color:var(--text-secondary);font-size:14px}.qr-expired button[data-v-d73efca5],.qr-error button[data-v-d73efca5]{margin-top:12px}
