.auth-page{min-height:calc(100vh - 64px);display:flex;align-items:center;justify-content:center;padding:40px 20px 60px;background:radial-gradient(ellipse at 15% 0,rgba(109,40,255,.12),transparent 55%),radial-gradient(ellipse at 85% 100%,rgba(110,231,176,.08),transparent 50%),var(--ink)}.auth-shell{width:min(960px,100%);display:grid;grid-template-columns:1fr 1.05fr;grid-gap:0;gap:0;border:1px solid var(--hairline);border-radius:24px;overflow:hidden;box-shadow:var(--shadow-card);background:var(--card)}.auth-aside{padding:36px 32px;background:linear-gradient(160deg,var(--violet-soft),transparent 70%),var(--ink-2);border-right:1px solid var(--hairline)}.auth-logo{display:inline-flex;margin-bottom:4px}.auth-logo img,.auth-logo svg{width:64px!important;height:64px!important}.auth-aside h1{font-family:var(--display);font-size:clamp(22px,3vw,28px);font-weight:700;line-height:1.15;margin:20px 0 12px}.auth-aside p{font-size:14px;line-height:1.6;color:var(--text-dim);margin:0 0 20px}.auth-aside ul{list-style:none;margin:0;padding:0}.auth-aside li{font-size:13px;color:var(--text-dim);padding:8px 0;border-top:1px solid var(--hairline)}.auth-aside li:first-child{border-top:none}.auth-card{padding:32px 28px 28px}.auth-tabs{display:inline-flex;gap:4px;padding:4px;background:var(--ink-2);border:1px solid var(--hairline);border-radius:999px;margin-bottom:20px}.auth-tabs a{display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-dim);font-family:var(--sans);font-size:13px;font-weight:600;padding:8px 18px;border-radius:999px;cursor:pointer;text-decoration:none;transition:background .2s,color .2s,box-shadow .2s}.auth-tabs a:hover:not(.active){color:var(--text);background:rgba(109,40,255,.08)}.auth-tabs a.active{background:linear-gradient(120deg,var(--grad-1),var(--grad-2));color:#fff;box-shadow:0 2px 14px rgba(109,40,255,.35)}.auth-card h2{font-family:var(--display);font-size:26px;font-weight:700;margin:0 0 6px}.auth-sub{font-size:14px;color:var(--text-dim);margin:0 0 20px;line-height:1.5}.auth-oauth-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.auth-oauth-btn{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:12px;border:1px solid var(--hairline);background:var(--ink-2);color:var(--text);font-family:var(--sans);font-size:13px;font-weight:600;cursor:pointer;transition:border-color .2s,transform .15s,box-shadow .2s}.auth-oauth-btn:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:0 4px 16px rgba(109,40,255,.12)}.auth-oauth-btn em{margin-left:auto;font-style:normal;font-family:var(--mono);font-size:9px;text-transform:uppercase;color:var(--text-faint)}.oauth-github{cursor:pointer}.oauth-github,.oauth-github:hover{background:var(--text);color:var(--ink);border-color:transparent}.oauth-github:hover{box-shadow:0 4px 16px rgba(0,0,0,.2)}.oauth-google{background:var(--card);cursor:pointer}.oauth-gitlab{background:rgba(252,109,38,.08);border-color:rgba(252,109,38,.25);cursor:pointer}.oauth-apple{background:#111;color:#fff;border-color:#333;cursor:pointer}.auth-divider{display:flex;align-items:center;gap:12px;margin:22px 0 18px;color:var(--text-faint);font-family:var(--mono);font-size:11px}.auth-divider:after,.auth-divider:before{content:"";flex:1 1;height:1px;background:var(--hairline)}.auth-form label{display:block;margin-bottom:12px}.auth-form label>span{display:block;font-size:12px;font-weight:600;color:var(--text-dim);margin-bottom:6px}.auth-form input{width:100%;background:var(--ink-2);border:1px solid var(--hairline);border-radius:10px;color:var(--text);padding:12px 14px;font-family:var(--sans);font-size:14px}.auth-form input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--violet-soft)}.auth-pw-wrap{position:relative}.auth-pw-wrap input{padding-right:56px}.auth-pw-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:none;background:none;color:var(--accent);font-family:var(--mono);font-size:11px;cursor:pointer}.auth-submit{width:100%;margin-top:6px;background:linear-gradient(120deg,var(--grad-1),var(--grad-2));color:#fff;border:none;border-radius:12px;padding:14px;font-family:var(--sans);font-size:14px;font-weight:700;cursor:pointer}.auth-submit:disabled{opacity:.65;cursor:not-allowed}.auth-msg{margin-top:14px;padding:10px 12px;border-radius:10px;background:rgba(242,184,99,.12);border:1px solid rgba(242,184,99,.35);color:var(--amber,#f2b863);font-size:13px;line-height:1.45}.auth-foot{margin-top:18px;text-align:center;font-size:13px;color:var(--text-dim)}.auth-foot button{background:none;border:none;color:var(--accent);font-size:13px;font-weight:600;cursor:pointer}.auth-callback{min-height:50vh;display:flex;align-items:center;justify-content:center;padding:40px 20px}.auth-callback-card{text-align:center;padding:32px;border:1px solid var(--hairline);border-radius:16px;background:var(--card);min-width:280px}.auth-callback-card p{font-family:var(--serif);font-size:18px;margin:16px 0 0;color:var(--text)}.auth-spinner{width:28px;height:28px;margin:0 auto;border:2px solid var(--hairline);border-top-color:var(--accent);border-radius:50%;animation:authSpin .8s linear infinite}@keyframes authSpin{to{transform:rotate(1turn)}}@media (max-width:768px){.auth-shell{grid-template-columns:1fr}.auth-aside{border-right:none;border-bottom:1px solid var(--hairline);padding:24px 20px}.auth-oauth-grid{grid-template-columns:1fr}}