.login-page{background:var(--bg-canvas);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.login-page:before{content:"";pointer-events:none;background:radial-gradient(circle,#2f6fcf1a,#0000 70%);border-radius:50%;width:620px;height:620px;position:absolute;top:-240px;right:-160px}.login-page:after{content:"";pointer-events:none;background:radial-gradient(circle,#2f6fcf0f,#0000 70%);border-radius:50%;width:520px;height:520px;position:absolute;bottom:-200px;left:-140px}.login-wrap{z-index:1;width:100%;max-width:420px;padding:20px;position:relative}.login-card{background:var(--bg-surface);border-radius:var(--r-xl);border:1px solid var(--b-line);box-shadow:inset 0 1px 0 #ffffff0d, var(--sh-xl);padding:36px 32px 32px}.login-logo{justify-content:center;align-items:center;gap:10px;margin-bottom:8px;display:flex}.login-logo .logo{width:34px;height:34px}.login-logo span{letter-spacing:-.01em;color:var(--t-h1);font-size:1.15rem;font-weight:600}.login-sub{text-align:center;color:var(--t-muted);margin-bottom:26px;font-size:.85rem}.tabs{background:var(--bg-surface-2);border:1px solid var(--b-line);border-radius:var(--r-md);gap:4px;margin-bottom:24px;padding:4px;display:flex}.tab{text-align:center;border-radius:var(--r-sm);color:var(--t-muted);cursor:pointer;transition:background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);flex:1;padding:9px;font-size:.9rem;font-weight:500}.tab:hover{color:var(--t-h1)}.tab.active{background:var(--c-blue-600);color:#fff;box-shadow:none}.form-group{margin-bottom:16px}.form-group label{color:var(--t-body);margin-bottom:6px;font-size:.8rem;font-weight:500;display:block}.form-group input{border-radius:var(--r-md);border:1px solid var(--b-line-2);background:var(--bg-surface-2);width:100%;color:var(--t-h1);transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);box-sizing:border-box;padding:11px 13px;font-size:.9rem}.form-group input::placeholder{color:var(--t-faint)}.form-group input:focus{border-color:var(--c-blue-600);outline:none;box-shadow:0 0 0 3px #2f6fcf2e}.form-group select{border-radius:var(--r-md);border:1px solid var(--b-line-2);background:var(--bg-surface-2);width:100%;color:var(--t-h1);box-sizing:border-box;padding:11px 13px;font-size:.9rem}.form-group select:focus{border-color:var(--c-blue-600);outline:none;box-shadow:0 0 0 3px #2f6fcf2e}.form-group select option{background:var(--bg-surface);color:var(--t-h1)}.form-group input:-webkit-autofill{-webkit-box-shadow:0 0 0 100px var(--bg-surface-2) inset;-webkit-text-fill-color:var(--t-h1);caret-color:var(--t-h1)}.form-group input:-webkit-autofill:hover{-webkit-box-shadow:0 0 0 100px var(--bg-surface-2) inset;-webkit-text-fill-color:var(--t-h1);caret-color:var(--t-h1)}.form-group input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 100px var(--bg-surface-2) inset;-webkit-text-fill-color:var(--t-h1);caret-color:var(--t-h1)}.code-row{gap:8px;display:flex}.code-row input{flex:1;min-width:0}.btn-code{border-radius:var(--r-md);border:1px solid var(--b-line-2);background:var(--bg-surface-2);color:var(--t-body);cursor:pointer;white-space:nowrap;transition:border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);flex-shrink:0;padding:0 13px;font-size:.82rem;font-weight:500}.btn-code:hover{border-color:var(--b-line-3);color:var(--t-h1)}.btn-code:disabled{opacity:.55;cursor:not-allowed}.btn-submit{border-radius:var(--r-md);background:var(--c-blue-600);color:#fff;cursor:pointer;width:100%;transition:background-color var(--dur-fast) var(--ease);border:none;margin-top:8px;padding:12px;font-size:.94rem;font-weight:500;box-shadow:inset 0 1px #ffffff14}.btn-submit:hover{background:var(--accent-hover)}.btn-submit:active{background:var(--c-blue-600)}.btn-submit:disabled{opacity:.55;cursor:not-allowed}.error-msg{color:#e0847f;border-radius:var(--r-md);background:#d9736e1f;border:1px solid #d9736e47;margin-bottom:16px;padding:10px 14px;font-size:.83rem}.success-msg{color:#82c4a0;border-radius:var(--r-md);background:#5c9c7c1f;border:1px solid #5c9c7c47;margin-bottom:16px;padding:10px 14px;font-size:.83rem}.back-home{text-align:center;color:var(--t-muted);transition:color var(--dur-fast) var(--ease);margin-top:20px;font-size:.83rem;text-decoration:none;display:block}.back-home:hover{color:var(--t-h1)}.role-hint{color:var(--t-faint);margin-top:4px;font-size:.75rem}
