.login-body{min-height:100vh;color:var(--text-main);background:0 0}.login-shell{flex-direction:column;gap:32px;max-width:1200px;margin:0 auto;padding:120px 24px 80px;display:flex}.login-hero{opacity:0;justify-content:space-between;align-items:center;gap:24px;animation:.5s 80ms forwards login-hero-in;display:flex;transform:translateY(14px)}@keyframes login-hero-in{to{opacity:1;transform:translateY(0)}}.login-kicker{text-transform:uppercase;letter-spacing:.18em;color:var(--text-soft);margin-bottom:12px;font-size:12px}.login-title{color:var(--text-main);margin:0 0 8px;font-size:34px}.login-subtitle{color:var(--text-subtle);margin:0}.login-logo{border-radius:var(--radius-lg);background:var(--surface-strong);border:1px solid var(--line);width:90px;height:90px;box-shadow:none;place-items:center;transition:transform .4s,box-shadow .4s;display:grid}.login-logo img{object-fit:contain;width:60%;height:60%}.login-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:24px;display:grid}.risk-banner{border-radius:var(--radius-md);background:var(--accent-soft);border:1px solid color-mix(in srgb, var(--accent) 25%, transparent);color:var(--text-subtle);gap:6px;margin-top:16px;padding:12px 14px;font-size:13px;display:grid}.risk-banner strong{color:var(--text-main);font-size:13px}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:none;opacity:0;padding:24px;transition:box-shadow .28s,transform .28s;animation:.65s forwards login-card-in;transform:translateY(24px)}.login-card:first-child{animation-delay:.1s}.login-card:last-child{animation-delay:.25s}@keyframes login-card-in{to{opacity:1;transform:translateY(0)}}.login-card:hover{box-shadow:none}.card-header h2{color:var(--text-main);margin:0 0 6px;font-size:20px}.card-header p{color:var(--text-subtle);margin:0}.github-panel{gap:12px;margin-top:18px;display:grid}.login-aside{border-radius:var(--radius-md);border:1px solid var(--line);background:var(--surface-soft);color:var(--text-subtle);margin-top:18px;padding:14px 16px;font-size:13px}.login-aside .aside-title{color:var(--text-main);margin-bottom:8px;font-weight:600}.login-aside ul{gap:6px;margin:0;padding-left:18px;display:grid}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;align-items:center;gap:8px;padding:10px 18px;font-size:14px;transition:transform .28s,background .28s,color .28s,box-shadow .28s;display:inline-flex}.btn.primary{color:#fff;background:#1d4ed8}.btn.primary:hover{background:#1e40af;transform:translateY(-2px);box-shadow:0 6px 16px #1d4ed840}.btn.primary:active{transform:translateY(0)scale(.97)}.github-btn i{transition:transform .35s}.github-btn:hover i{transform:rotate(8deg)scale(1.15)}.tab-btn{transition:all .25s,transform .2s cubic-bezier(.34,1.56,.64,1)}.tab-btn:not(.active):hover{transform:translateY(-1px)}.tab-btn.active{transform:scale(1.02)}.mode-btn:not(.active):hover{transform:translateY(-1px)}.btn.ghost{background:var(--surface-strong);color:var(--text-main)}.btn.ghost:hover{background:var(--surface)}.btn.ghost:active{transform:scale(.97)}.tab-row{background:var(--surface-soft);border-radius:var(--radius-sm);gap:8px;margin-top:16px;padding:6px;display:inline-flex}.tab-btn{border-radius:var(--radius-sm);cursor:pointer;color:var(--text-soft);background:0 0;border:none;padding:8px 16px}.tab-btn.active{background:var(--surface-strong);color:var(--text-main);font-weight:600}@media (hover:hover){.tab-btn:not(.active):hover{color:var(--text-main)}}.tab-panel{gap:14px;margin-top:18px;display:none}.tab-panel.active{animation:.35s both tab-panel-in;display:grid}@keyframes tab-panel-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.mode-row{background:var(--surface-soft);border-radius:var(--radius-sm);gap:8px;margin-top:16px;padding:6px;display:inline-flex}.mode-btn{border-radius:var(--radius-sm);cursor:pointer;color:var(--text-soft);background:0 0;border:none;padding:8px 16px}.mode-btn.active{background:var(--surface-strong);color:var(--text-main);font-weight:600}.login-mode{gap:14px;display:none}.login-mode.active{animation:.3s both login-mode-in;display:grid}@keyframes login-mode-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.forgot-row{margin-top:6px}.link-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;transition:opacity .25s}.link-btn:hover{opacity:.8}.reset-panel{border-radius:var(--radius-md);border:1px dashed var(--line);background:var(--surface-soft);gap:12px;padding:16px;display:none}.reset-panel.active{transform-origin:top;animation:.35s both reset-slide-down;display:grid;overflow:hidden}@keyframes reset-slide-down{0%{opacity:0;max-height:0;padding-top:0;padding-bottom:0;transform:translateY(-12px)scaleY(.95)}to{opacity:1;max-height:600px;padding-top:16px;padding-bottom:16px;transform:translateY(0)scaleY(1)}}.field{flex-direction:column;gap:8px;display:flex}.field label{color:var(--text-subtle);font-size:13px}.field input{border:1px solid var(--line);background:var(--surface-soft);border-radius:var(--radius-md);color:var(--text-main);outline:none;padding:10px 12px;font-size:14px;transition:border-color .3s,box-shadow .3s,transform .25s,background .3s}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:var(--surface);transform:scale(1.01)}.field input::placeholder{color:var(--text-soft)}.helper{color:var(--text-soft);font-size:12px}.action-row{flex-wrap:wrap;gap:12px;margin-top:4px;display:flex}.status-row{color:var(--text-subtle);margin-top:4px;font-size:13px}.status-row--inline{margin-top:0}.status-row--ok{color:#16a34a}.status-row--warn{color:var(--danger)}.status-row--info{color:var(--text-subtle)}.captcha-row{grid-template-columns:1fr auto;align-items:center;gap:8px;display:grid}.turnstile-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.turnstile-box{min-height:65px}.dark-mode .status-row--ok{color:#4ade80}.dark-mode .status-row--warn{color:#fca5a5}.dark-mode .status-row--info{color:var(--text-subtle)}@media (width<=960px){.login-hero{flex-direction:column;align-items:flex-start}.login-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.login-hero,.login-card,.tab-panel.active,.login-mode.active,.reset-panel.active{opacity:1!important;animation:none!important;transform:none!important}.login-card:hover{transform:none!important}.field input,.btn,.login-logo,.link-btn{transition:none!important}.login-logo:hover{transform:none!important}}body.reduce-motion .login-hero,body.reduce-motion .login-card,body.reduce-motion .tab-panel.active,body.reduce-motion .login-mode.active,body.reduce-motion .reset-panel.active{opacity:1!important;animation:none!important;transform:none!important}body.reduce-motion .login-card:hover{transform:none!important}body.reduce-motion .field input,body.reduce-motion .btn,body.reduce-motion .login-logo,body.reduce-motion .link-btn{transition:none!important}body.reduce-motion .login-logo:hover{transform:none!important}.login-shell{gap:28px;padding:108px 32px 64px}.login-hero{opacity:1;animation:none;transform:none}.login-title{letter-spacing:-.02em;font-size:32px;font-weight:650}.login-logo{border-radius:var(--radius-sm);width:64px;height:64px;box-shadow:none}.login-logo:hover{box-shadow:none;transform:none}.login-card{border-radius:var(--radius-lg);box-shadow:none;opacity:1;padding:22px;animation:none;transform:none}.login-card:first-child,.login-card:last-child{animation-delay:0s}.risk-banner{border-radius:var(--radius-sm)}