.login-page{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:2rem 1rem;background:radial-gradient(60rem 36rem at 50% -10%,rgb(var(--brand-rgb)/.1),transparent 70%),var(--bg-0)}.login-card{width:min(400px,100%);display:grid;justify-items:center;text-align:center;padding:2.5rem 2rem 2rem;border-radius:var(--radius-lg);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow-float)}.login-logo{width:168px;height:auto;display:block}.login-logo.login-logo-dark,:root.dark .login-logo.login-logo-light{display:none}:root.dark .login-logo.login-logo-dark{display:block}.login-title{margin:1.5rem 0 0;font-family:var(--font-display);font-size:1.5rem;font-weight:700;line-height:1.15;letter-spacing:-.02em;color:var(--ink)}.login-lead{margin:.5rem 0 0;max-width:19rem;font-size:var(--text-md);line-height:1.45;color:var(--ink-muted)}.login-lead strong{font-weight:600;color:var(--ink)}.login-error{display:flex;align-items:flex-start;gap:.55rem;width:100%;margin:1.25rem 0 0;padding:.75rem .9rem;border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger-ink);font-size:var(--text-sm);line-height:1.45;text-align:left}.login-error svg{width:1.05rem;height:1.05rem;flex:0 0 auto;margin-top:.1rem}.login-form{width:100%;margin-top:1.75rem}.login-button{position:relative;width:100%;height:2.9rem;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;border:0;border-radius:999px;background:var(--brand-fill);color:var(--on-brand);font:inherit;font-size:var(--text-md);font-weight:600;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),transform var(--dur-press) var(--ease-out)}.login-button:hover{background:var(--brand-fill-hover)}.login-button:active{transform:scale(.97)}.login-button:focus-visible{outline:none;box-shadow:0 0 0 3px rgb(var(--brand-rgb)/.35)}.login-button:disabled{cursor:progress;opacity:.85}.login-button-mark{display:grid;place-items:center;width:1.65rem;height:1.65rem;border-radius:999px;background:var(--on-brand);color:var(--brand-fill)}.login-spinner{width:1rem;height:1rem;animation:login-spin .8s linear infinite}@keyframes login-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.login-spinner{animation-duration:2.4s}.login-button:active{transform:none}}@media (max-width:480px){.login-card{padding:2rem 1.25rem 1.5rem;border-radius:var(--radius-md)}}