.scene{position:fixed;inset:0;height:100vh;width:100vw;background:#05060a;overflow:hidden}.scene .brand{position:absolute;top:28px;left:32px;z-index:5;color:#fff;font-weight:700;letter-spacing:-.02em;font-size:18px}.scene-loading{position:fixed;inset:0;z-index:50;background:#05060a;display:flex;align-items:center;justify-content:center;transition:opacity .4s ease}.scene-loading.is-hiding{opacity:0;pointer-events:none}.login-loading-card{width:300px;min-height:440px;border-radius:22px;background:#ffffff;border:1px solid #e6e8ec;box-shadow:0 24px 70px rgba(0,0,0,.55);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:#6b7280;font-size:13px;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.login-loading-card .spinner{width:34px;height:34px;border-radius:50%;border:3px solid #e6e8ec;border-top-color:#00e676;animation:login-spin .8s linear infinite}@keyframes login-spin{to{transform:rotate(1turn)}}.login-card{width:300px;min-height:440px;padding:28px 24px;border-radius:22px;background:#ffffff;border:1px solid #e6e8ec;box-shadow:0 24px 70px rgba(0,0,0,.55);color:#0f172a;user-select:none;display:flex;flex-direction:column;justify-content:center;pointer-events:none;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.login-card .btn,.login-card .link-btn,.login-card input{pointer-events:auto}.login-card .brand-logo{display:block;height:46px;width:auto;margin:0 0 18px;object-fit:contain}.login-card h2{margin:0 0 4px;font-size:17px;font-weight:700;color:#0b1220}.login-card p.subtitle{margin:0 0 18px;font-size:12px;color:#6b7280}.login-card .field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.login-card .field label{font-size:11px;color:#6b7280;text-transform:uppercase;letter-spacing:.06em}.login-card .field input{width:100%;padding:11px 12px;border-radius:10px;border:1px solid #d8dce2;background:#f7f8fa;color:#0f172a;font-size:14px;outline:none;transition:border-color .15s,box-shadow .15s}.login-card .field input::placeholder{color:#9aa1ac}.login-card .field input:focus{border-color:#00e676;box-shadow:0 0 0 3px rgba(0,230,118,.18)}.login-card .btn{width:100%;padding:11px 12px;border-radius:10px;border:none;font-size:14px;font-weight:600;cursor:pointer;transition:transform .08s,opacity .15s,background .15s}.login-card .btn:active{transform:scale(.98)}.login-card .btn:disabled{opacity:.5;cursor:default}.login-card .btn-primary{background:#00e676;color:#05291a}.login-card .btn-primary:hover:not(:disabled){background:#00c853}.login-card .btn-github{background:#18181b;color:#fff;display:flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}.login-card .btn-github:hover{background:#27272a}.login-card .divider{display:flex;align-items:center;gap:10px;margin:16px 0;color:#9aa1ac;font-size:10px;text-transform:uppercase;letter-spacing:.06em}.login-card .divider:after,.login-card .divider:before{content:"";flex:1;height:1px;background:#e6e8ec}.login-card .message{margin:0 0 12px;font-size:12px;padding:9px 11px;border-radius:9px;line-height:1.4}.login-card .message.error{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c}.login-card .message.info{background:#ecfdf5;border:1px solid #a7f3d0;color:#047857}.login-card .link-btn{display:inline-block;background:none;border:none;color:#059669;font-size:12px;cursor:pointer;text-decoration:none;padding:10px 0 0}