/* Auth extends the existing portal tokens and shared chrome. */
.auth-alipay{margin-top:16px;text-align:center;font-size:14px}.auth-alipay a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;color:var(--accent);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:0 20px}.auth-alipay a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.auth-alipay span{display:block;margin-top:8px;color:var(--ink-3);font-size:13px;line-height:1.6}
.auth-main{display:flex;align-items:center;width:100%}
.auth-stage{width:100%;max-width:var(--max);margin:0 auto;padding:64px 24px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,560px);align-items:center;gap:72px}
.auth-brand img{width:280px;height:auto;margin-bottom:32px}
.auth-brand h1{font-size:40px;line-height:1.32;letter-spacing:-.03em;margin-bottom:20px}
.auth-brand p{color:var(--ink-3);font-size:15px;line-height:1.8}
.auth-card{min-width:0;padding:28px;border:1px solid var(--line-2);border-radius:var(--r-lg);background:var(--bg);box-shadow:var(--shadow-xs)}
.auth-card-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px}
.auth-card-heading h2{font-size:24px}.auth-card-heading>a{font-size:13px;color:var(--ink-3)}
.auth-methods{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}
.auth-methods a{padding:8px 12px;color:var(--ink-3);font-size:14px;white-space:nowrap;border-radius:var(--r-sm);text-decoration:none}
.auth-methods a:hover{background:var(--bg-mute);color:var(--ink)}
.auth-methods a[aria-current]{color:var(--accent);background:var(--accent-soft);font-weight:600}
.auth-form label.f{display:block;font-size:13px;color:var(--ink-2);margin-bottom:16px;min-width:0}
.auth-form input:not([type=checkbox]):not([type=hidden]){display:block;width:100%;min-width:0;height:42px;margin-top:6px;padding:0 12px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--bg);color:var(--ink);font:14px var(--font)}
.auth-form input:focus{outline:2px solid var(--accent-line);border-color:var(--accent)}
.auth-password-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.password-field{display:block;position:relative}.auth-form .password-field input{padding-right:44px!important}
.password-toggle{position:absolute;right:0;top:0;margin-top:6px;height:42px;width:42px;padding:0;background:transparent;border:0;color:var(--ink-3);display:flex;align-items:center;justify-content:center;cursor:pointer}
.eye-slash[hidden],[hidden]{display:none!important}
.auth-code-row{display:flex;align-items:center;gap:10px}.auth-form .auth-code-row input{flex:1;width:0}
.auth-code-send{height:42px;flex:none;padding:0 12px;margin-top:6px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--bg-soft);color:var(--ink-2);font-size:13px;cursor:pointer}
.auth-primary{width:100%;height:42px;border:0;border-radius:var(--r-sm);background:var(--ink);color:var(--bg);font:600 14px var(--font);cursor:pointer;margin-top:4px}
.auth-primary:hover{background:var(--ink-2)}.auth-form button:disabled{opacity:.5;cursor:wait}
.auth-consent{display:flex;align-items:flex-start;gap:8px;margin:8px 0 16px;font-size:12px;color:var(--ink-3);line-height:1.7}.auth-consent input{margin:4px 0 0;flex:none;accent-color:var(--accent)}
.auth-status{font-size:13px;color:var(--ink-3);line-height:1.6;margin-top:12px;overflow-wrap:anywhere}.auth-status:empty{display:none}
.auth-error{padding:10px 12px;border:1px solid var(--accent-line);border-radius:var(--r-sm);background:var(--accent-soft);color:var(--danger);font-size:13px;margin-bottom:16px}
.auth-verified{margin-bottom:20px;font-size:13px;overflow-wrap:anywhere;color:var(--ink-2)}
.auth-text{border:0;background:none;padding:4px 0;font-size:13px;color:var(--accent);cursor:pointer}
.auth-form-foot{display:flex;justify-content:space-between;margin-top:16px;font-size:13px}.auth-legal{margin-top:24px;font-size:12px;text-align:center;color:var(--ink-3)}
@media(max-width:900px){.auth-stage{gap:36px;grid-template-columns:minmax(0,1fr) minmax(0,500px)}.auth-brand h1{font-size:30px}.auth-brand img{width:230px}}
@media(max-width:700px){.auth-stage{grid-template-columns:minmax(0,1fr);padding:32px 20px 44px;gap:28px}.auth-brand img{width:190px;margin-bottom:16px}.auth-brand h1{font-size:26px;margin-bottom:10px}.auth-brand p{font-size:13px}.auth-card{padding:22px 20px}.auth-methods{gap:20px}.auth-card-heading>a{font-size:12px}.auth-password-grid{grid-template-columns:minmax(0,1fr);gap:0}}

/* Keep the shared message control at the footer while filling account forms. */
body.portal-page{position:relative}.portal-page .fab{position:absolute}

.auth-security-note{display:flex;align-items:flex-start;gap:10px;padding:12px;margin-bottom:16px;border-radius:var(--r-sm);background:var(--accent-soft);color:var(--ink-2);font-size:13px;line-height:1.7;overflow-wrap:anywhere}.auth-security-note svg{flex:none;margin-top:2px;color:var(--accent)}

.auth-form input[aria-invalid="true"]{border-color:var(--danger)!important;outline-color:#fecaca!important}.auth-field-error{display:block;margin-top:6px;font-size:12px;line-height:1.6;color:var(--danger)}.auth-status[data-kind="error"]{color:var(--danger);background:#fef2f2;border:1px solid #fecaca;border-radius:var(--r-sm);padding:10px 12px}.auth-password-hint{display:block;font-size:12px;color:var(--ink-3);line-height:1.6;margin-top:6px}.auth-form input[aria-invalid="false"]{outline-color:var(--accent-line)}

.auth-agreement-dialog{width:min(420px,calc(100vw - 40px));padding:24px;border:1px solid var(--line-2);border-radius:var(--r-lg);color:var(--ink);background:var(--bg);box-shadow:var(--shadow-lg)}.auth-agreement-dialog::backdrop{background:rgba(9,9,11,.35)}.auth-agreement-dialog h2{font-size:20px;margin-bottom:16px}.auth-agreement-dialog p{font-size:14px;line-height:1.8;color:var(--ink-2)}.auth-dialog-actions{display:flex;gap:12px;margin-top:24px}.auth-dialog-actions button{flex:1;min-width:0;font-size:13px;cursor:pointer}.auth-dialog-cancel{border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--bg);color:var(--ink-2);height:42px;margin-top:4px}
/* Account forms retain their existing behavior and shared brand tokens. */
.auth-primary { background:var(--accent); color:#fff; box-shadow:0 5px 14px rgba(21,93,252,.12); }
.auth-primary:hover { background:#124ed4; }
.auth-card { background:#fff; border-color:var(--line); box-shadow:0 10px 36px rgba(35,56,81,.06); border-radius:16px; }
.auth-stage { padding-top:44px; padding-bottom:44px; gap:40px; }
.auth-brand h1 { font-size:36px; line-height:1.4; }
.auth-brand h1::after { content:''; display:block; width:40px; height:3px; background:var(--accent); border-radius:3px; margin-top:22px; }
@media(max-width:700px) { .auth-stage { gap:24px; padding:28px 20px 40px; } .auth-brand h1 { font-size:26px; } .auth-brand h1::after { margin-top:14px; } }

.auth-card-heading { flex-wrap:wrap; }
.auth-form label.f { font-size:14px; }
.auth-password-hint,.auth-consent,.auth-legal { font-size:13px; }
.auth-card-heading>a { white-space:nowrap; }
@media(min-width:701px) and (max-width:1050px){.auth-stage{grid-template-columns:minmax(0,1fr) minmax(0,540px);gap:24px}.auth-brand h1{font-size:28px}.auth-password-grid{grid-template-columns:1fr;gap:0}}

.auth-status[data-kind="success"]{color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:var(--r-sm);padding:10px 12px}.auth-methods a{min-height:44px;display:inline-flex;align-items:center}.auth-methods a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.auth-form [data-cooldown]{cursor:default!important}
@media(max-width:700px){.auth-form input:not([type=checkbox]):not([type=hidden]){font-size:16px;height:44px}.auth-primary,.auth-code-send{min-height:44px}.password-toggle{height:44px;width:44px}}
.auth-site-header{display:flex;align-items:center;flex:none;width:100%;max-width:var(--max);margin:0 auto;min-height:72px;padding:16px 24px}
.auth-site-footer{flex:none;padding:24px 20px;text-align:center;color:var(--ink-3);font-size:13px;border-top:1px solid var(--line);background:var(--bg-soft)}
.auth-site-footer>div{display:flex;flex-wrap:wrap;justify-content:center;gap:24px;margin-bottom:12px}
.auth-site-footer a{color:inherit}.auth-site-footer p{line-height:1.8}
.auth-card-heading>a{color:var(--accent)}
@media(max-width:700px){.auth-site-header{padding:16px 20px;min-height:64px}.auth-site-footer{font-size:12px}}
