.login-page{--motion-fast: .12s;--motion-base: .2s;--motion-slow: .32s;--ease-standard: cubic-bezier(.2,0,0,1);--ease-enter: cubic-bezier(.16,1,.3,1)}@keyframes login-card-enter-motion{0%{opacity:0;transform:scale(.96) translateY(6px)}to{opacity:1;transform:none}}@keyframes login-fade-motion{0%{opacity:0}to{opacity:1}}.login-page{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;background-color:var(--bg);background-image:linear-gradient(rgba(240,246,252,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(240,246,252,.02) 1px,transparent 1px);background-size:20px 20px;font-family:Outfit,sans-serif;color:var(--text);padding:1rem}.card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:2.5rem 2rem;box-shadow:0 8px 32px #0006}.login-page .card{animation:login-card-enter-motion var(--motion-slow) var(--ease-enter) both}.brand{text-align:center;margin-bottom:2rem}.brand-name{font-size:1.5rem;font-weight:700;color:var(--accent);font-family:IBM Plex Mono,monospace;letter-spacing:.05em}.brand-sub{font-size:.8rem;color:var(--muted);margin-top:.25rem}.field{margin-bottom:1rem}label{display:block;font-size:.8rem;color:var(--muted);margin-bottom:.4rem;text-transform:uppercase;letter-spacing:.05em}input{box-sizing:border-box;width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:.65rem .75rem;color:var(--text);font-family:IBM Plex Mono,monospace;font-size:.9rem;outline:none;transition:border-color var(--motion-fast) var(--ease-standard)}input:focus{border-color:var(--accent2)}.password-wrap{position:relative}.password-wrap input{padding-right:0}.toggle-pw{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--muted);cursor:pointer;font-size:.85rem;padding:0}.toggle-pw:hover{color:var(--text)}.btn{width:100%;margin-top:1.5rem;padding:.75rem;background:var(--accent);color:#0d1117;border:none;border-radius:6px;font-family:Outfit,sans-serif;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity var(--motion-fast) var(--ease-standard)}.btn:hover{opacity:.85}.btn:disabled{opacity:.5;cursor:not-allowed}.error{display:none;margin-top:1rem;padding:.65rem .75rem;border:1px solid var(--red);border-radius:6px;color:var(--red);font-size:.85rem}.error.visible{display:block;animation:login-fade-motion var(--motion-fast) var(--ease-standard) both}@media(prefers-reduced-motion:reduce){.login-page .card,.error.visible{animation:none!important}.login-page *,.login-page *:before,.login-page *:after{transition-duration:1ms!important}}.toggle-pw:focus-visible,.toggle-pw:active{color:var(--text)}.btn:focus-visible,.btn:active{opacity:.85}@media(max-width:768px){.login-page{width:100%;max-width:100%;overflow-x:hidden;padding-top:max(1rem,env(safe-area-inset-top));padding-right:max(1rem,env(safe-area-inset-right));padding-bottom:max(1rem,env(safe-area-inset-bottom));padding-left:max(1rem,env(safe-area-inset-left))}}@media(max-width:430px){.login-page{align-items:stretch}.card{align-self:center;min-width:0;padding:1.75rem 1.25rem}.brand{margin-bottom:1.5rem}.brand-name{font-size:1.2rem;overflow-wrap:anywhere}.password-wrap input{padding-right:4rem}}@media(pointer:coarse){input,.toggle-pw,.btn{min-height:44px}.toggle-pw{min-width:44px;display:inline-flex;align-items:center;justify-content:center}}
