.login-root{--login-accent:#e4e4e7;--login-accent-soft:#d4d4d8;--login-on-accent:#0a0a0c;--login-accent-a10:#ffffff1a;--login-accent-a26:#ffffff42;--focus-ring:#e4e4e799;background-color:var(--bg-page);background-image:linear-gradient(#090a0dbd,#090a0de6),url(/images/scenes/login-island-v1.webp);background-position:50%;background-repeat:no-repeat;background-size:cover;justify-content:center;align-items:center;min-height:100vh;padding:32px 16px;display:flex}@media (max-width:640px){.login-root{background-image:linear-gradient(#090a0dcc,#090a0ded),url(/images/scenes/login-island-v1-mobile.webp)}}.login-card-wrapper{width:100%;max-width:440px;margin:0 auto}.login-card{background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-card);padding:36px 32px;animation:.32s cubic-bezier(.22,1,.36,1) both dash-rise}.login-header{text-align:center;flex-direction:column;align-items:center;margin-bottom:24px;display:flex}.login-brand-link{border-radius:var(--radius-inner);outline-offset:4px;justify-content:center;align-items:center;margin-bottom:18px;text-decoration:none;display:inline-flex}.login-brand-link:hover{opacity:.85}.login-brand-link:focus-visible{outline:2px solid var(--focus-ring)}.login-logo{--brand-build-delay:.16s;width:44px;height:44px}.login-title{color:var(--text-primary);letter-spacing:-.02em;margin:0;font-size:1.25rem;font-weight:700;line-height:1.3}.login-alert{border-radius:var(--radius-inner);margin-bottom:16px;padding:10px 12px;font-size:.8rem;line-height:1.4}.login-alert.is-error{color:#fda4af;background:#f43f5e1a;border:1px solid #f43f5e59}.login-alert p{margin:0}.login-error-code{color:var(--text-secondary);font-family:var(--font-mono), ui-monospace, SFMono-Regular, Menlo, monospace;letter-spacing:.01em;background:#ffffff14;border-radius:4px;padding:1px 6px;font-size:.72rem;display:inline-block}.login-form{flex-direction:column;gap:16px;display:flex}.login-field-group{flex-direction:column;gap:6px;display:flex}.login-label{color:var(--text-secondary);font-size:.82rem;font-weight:600}.login-input{border:1px solid var(--border-strong);border-radius:var(--radius-btn);width:100%;min-height:46px;color:var(--text-primary);background:#ffffff08;padding:10px 14px;font-family:inherit;font-size:.9rem;transition:border-color .16s,background-color .16s}.login-input:hover{border-color:var(--border-strong);background:#ffffff0d}.login-input:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-color:var(--focus-ring)}.login-input::placeholder{color:var(--text-muted)}.login-btn-primary{background:var(--login-accent);border-radius:var(--radius-btn);width:100%;min-height:46px;color:var(--login-on-accent);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;padding:10px 16px;font-size:.88rem;font-weight:600;text-decoration:none;transition:background-color .16s,opacity .16s;display:inline-flex}.login-btn-primary:hover:not(:disabled){background:#fff;border-color:#0000}.login-btn-primary:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.login-btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-loading-content{align-items:center;gap:8px;display:inline-flex}.btn-spinner{border:2px solid color-mix(in srgb, currentColor 25%, transparent);border-top-color:currentColor;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite login-spin}.login-divider{color:var(--text-muted);letter-spacing:normal;align-items:center;gap:12px;margin:20px 0;font-size:.75rem;font-weight:500;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--border-subtle);flex:1;height:1px}.login-oauth-group{flex-direction:column;gap:10px;display:flex}.login-btn-oauth{border:1px solid var(--border-strong);border-radius:var(--radius-btn);width:100%;min-height:46px;color:var(--text-primary);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:10px;padding:10px 16px;font-size:.85rem;font-weight:500;transition:background-color .16s,border-color .16s;display:flex}.login-btn-oauth:hover:not(:disabled){border-color:var(--border-strong);background:#ffffff0f}.login-btn-oauth:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.oauth-icon{flex-shrink:0;width:18px;height:18px}.login-btn-secondary{border:1px solid var(--border-strong);border-radius:var(--radius-btn);width:100%;min-height:44px;color:var(--text-primary);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:10px 16px;font-size:.85rem;font-weight:500;text-decoration:none;transition:background-color .16s;display:inline-flex}.login-btn-secondary:hover:not(:disabled){background:#ffffff1a}.login-btn-secondary:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.login-btn-secondary:disabled{opacity:.45;cursor:not-allowed}.login-btn-ghost{min-height:44px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:10px 16px;font-size:.8rem;transition:color .16s;display:inline-flex}.login-btn-ghost:hover{color:var(--text-primary)}.login-btn-ghost:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.login-status-box{text-align:center;flex-direction:column;gap:12px;padding:16px 0;display:flex}.login-status-box .status-header{flex-direction:column;align-items:center;gap:8px;display:flex}.login-status-box .status-icon{border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;margin-bottom:4px;display:flex}.login-status-box.is-warning .status-icon{color:var(--accent-amber);background:#f59e0b26}.login-status-box.is-success .status-icon{color:var(--accent-emerald);background:#10b98126}.login-status-box.is-error .status-icon{color:var(--accent-rose);background:#f43f5e26}.login-status-box h2{color:var(--text-primary);margin:0;font-size:1.15rem;font-weight:700}.login-status-box p{color:var(--text-secondary);margin:0;font-size:.85rem;line-height:1.45}.login-status-box .status-hint{color:var(--text-muted);font-size:.78rem}.status-actions{flex-direction:column;gap:10px;margin-top:10px;display:flex}.login-consent{border-top:1px solid var(--border-subtle);align-items:flex-start;gap:10px;margin-top:20px;padding-top:16px;display:flex}.login-consent-box{width:16px;height:16px;accent-color:var(--login-accent);cursor:pointer;flex:none;margin:2px 0 0}.login-consent-box:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.login-consent-box:disabled{cursor:not-allowed}.login-consent-text{flex-direction:column;gap:4px;min-width:0;display:flex}.login-consent-label{color:var(--text-secondary);cursor:pointer;font-size:.84rem;line-height:1.4}.login-consent-note{color:var(--text-muted);margin:0;font-size:.76rem;line-height:1.45}.login-footer{border-top:1px solid var(--border-subtle);color:var(--text-muted);flex-direction:column;align-items:center;gap:10px;margin-top:24px;padding-top:20px;font-size:.8rem;display:flex}.login-link{color:var(--text-primary);text-underline-offset:3px;text-decoration:underline}.login-link:hover{color:var(--text-secondary)}.login-link-muted{color:var(--text-muted);font-size:.76rem;text-decoration:none;transition:color .16s}.login-link-muted:hover{color:var(--text-primary)}@keyframes login-spin{to{transform:rotate(360deg)}}@keyframes dash-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.login-card{animation:none}.btn-spinner{animation-duration:2s}}@media (max-width:480px){.login-card{padding:28px 20px}}.login-legal{color:#f4f4f599;text-align:center;margin:14px 0 0;font-size:.78rem;line-height:1.5}
