.ding-login-card { width:min(430px,100%); padding:38px 36px 30px; }
.ding-login-logo { width:68px; height:68px; margin:0 auto 22px; border-radius:16px; overflow:hidden; background:#1677ff; }
.ding-login-logo img { display:block; width:100%; height:100%; object-fit:cover; }
.login-product { margin:0 0 10px; color:var(--muted); font-size:12px; letter-spacing:1px; }
.ding-login-card h1 { font-size:24px; }
.ding-login-card > .sub { margin:10px 0 28px; line-height:1.7; }
.ding-login-button { display:flex; align-items:center; justify-content:center; gap:14px; width:100%; min-height:48px; padding:12px 16px; border:0; border-radius:11px; background:#1677ff; color:#fff; font-size:15px; font-weight:700; box-shadow:0 8px 20px rgba(22,119,255,.18); transition:background .15s,transform .15s; }
.ding-login-button:hover { background:#0868df; transform:translateY(-1px); }
.ding-login-button:disabled { opacity:.65; cursor:wait; transform:none; }
.ding-login-button:focus-visible,.login-retry:focus-visible { outline:3px solid #a6caff; outline-offset:4px; }
.login-help { margin:19px 0 0; color:var(--muted); font-size:12px; line-height:1.9; }
.login-notice { margin:28px 0 0; padding-top:20px; border-top:1px solid var(--line); color:var(--muted); font-size:12px; line-height:1.7; }
.login-status { display:grid; justify-items:center; gap:14px; padding:24px 16px; border:1px solid var(--line); border-radius:12px; background:#fafbfc; }
.login-status strong { font-size:16px; line-height:1.6; }
.login-status p { margin:0; color:var(--muted); font-size:12px; line-height:1.8; }
.login-status-icon { font-size:30px; color:var(--brand); }
.login-status[data-mode="error"] .login-status-icon,.login-status[data-mode="rejected"] .login-status-icon { color:var(--red); }
.login-retry { color:var(--brand); font-size:13px; text-underline-offset:4px; }
@media(max-width:480px) { .ding-login-card { padding:30px 22px 24px; } .login-page { padding:20px; } }
@media(prefers-reduced-motion:reduce) { .ding-login-button { transition:none; } .spinner { animation:none; } }
