/* Matches desktop LoginDialog and the aside variant of Popup. */
#popup.login-dialog { width:min(768px,calc(100vw - 32px)); max-height:calc(100dvh - 112px); border:0; border-radius:var(--space-lg); overflow:visible; font-family:'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif; }
#popup.login-dialog>header { position:absolute; inset:-44px -16px auto auto; padding:0; z-index:1; }
#popup.login-dialog>header h2 { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
#popup.login-dialog #popup-close { width:36px; height:36px; padding:0; border-radius:50%; background:none; opacity:.85; }
#popup.login-dialog #popup-close:hover { opacity:1; }
#popup.login-dialog #popup-close svg { width:28px; height:28px; stroke:none; }
#popup.login-dialog .dialog-body { padding:0; max-height:calc(100dvh - 112px); overflow:auto; border-radius:inherit; }
.login-layout { display:grid; grid-template-columns:.38fr .62fr; min-height:540px; }
.login-aside { position:relative; overflow:hidden; background:var(--primary); color:var(--white); }
.login-aside>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.login-aside-copy { position:relative; display:flex; min-height:540px; height:100%; flex-direction:column; justify-content:space-between; padding:36px; }
.login-aside-copy>div { padding-top:12px; }
.login-eyebrow { margin:0; font-size:12px; letter-spacing:.2em; opacity:.75; }
#popup .login-aside h2 { margin:16px 0 0; font-size:30px; font-weight:600; line-height:1.375; letter-spacing:normal; }
.login-sync { margin:0; font-size:12px; line-height:24px; opacity:.8; }
.login-main { display:grid; grid-template-rows:auto minmax(0,1fr); gap:24px; min-width:0; padding:40px; }
.login-main>header { padding-top:24px; text-align:center; }
#popup .login-main h2 { margin:0; font-size:18px; font-weight:600; line-height:1; letter-spacing:-.025em; }
.login-main>header p { margin:8px 0 0; font-size:14px; line-height:1.625; color:var(--muted); }
.login-content { display:flex; flex-direction:column; align-items:center; gap:16px; min-height:0; }
.login-code { display:flex; width:240px; height:240px; max-width:100%; flex-shrink:0; align-items:center; justify-content:center; padding:8px; background:var(--white); }
.login-code img { width:224px; height:224px; max-width:100%; object-fit:contain; }
.login-code svg { fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.login-spinner { width:36px; height:36px; color:var(--primary); animation:login-spin 1s linear infinite; }
.login-placeholder { width:80px; height:80px; color:var(--muted); opacity:.5; }
#login-status { min-height:40px; margin:0; font-size:12px; line-height:20px; text-align:center; color:var(--muted); }
#refresh-code { border-radius:var(--radius-md); padding:8px 16px; min-height:36px; font-size:14px; }
.login-agreements { margin:auto 0 0; padding-top:16px; text-align:center; font-size:11px; line-height:20px; color:var(--muted); }
.login-agreements a { color:var(--primary); }
@keyframes login-spin { to { transform:rotate(360deg); } }
@media(max-width:600px) {
  .login-layout { grid-template-columns:1fr; min-height:0; }
  .login-aside { display:none; }
  .login-main { padding:32px 24px; }
}
@media(prefers-reduced-motion:reduce) { .login-spinner { animation:none; } }
