*{box-sizing:border-box}
:root{--auth-action:#226448;--auth-hover:#184e37;--auth-ink:#1e3028;--auth-muted:#748078;--auth-line:#e2e8e3}
body.auth-ui{margin:0;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;font-family:var(--nexus-font);color:var(--auth-ink);background:linear-gradient(180deg,#03060666,#030606cc),url('brand/brand-city.webp') center center/cover no-repeat,var(--nexus-dark);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}
.auth-ui a{color:var(--auth-action);text-decoration:none}.auth-ui a:hover{text-decoration:underline}.auth-ui [hidden]{display:none!important}
.auth-header{display:flex;justify-content:space-between;align-items:center;padding:28px 48px;gap:20px}.brand{display:inline-flex}.brand img{width:239px;height:auto}.home-link{font-size:13px;color:#c8d2ca!important}.home-link span{margin-left:6px}
.auth-main{flex:1;display:flex;align-items:center;justify-content:center;padding:24px 24px 54px}.auth-card{width:100%;max-width:464px;padding:32px 38px 26px;background:#fff;border:1px solid rgba(222,231,221,.85);border-radius:20px;box-shadow:0 18px 64px -22px #0009}
.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:32px;margin-bottom:18px}.card-kicker{font-size:12px;font-weight:500;color:var(--auth-muted);letter-spacing:1px}.method-switch{border:1px solid var(--auth-line);border-radius:20px;background:#fff;padding:6px 12px;min-height:32px;font:inherit;font-size:12px;color:var(--auth-action);cursor:pointer}.method-switch:hover{background:#f2f7f0;border-color:#c6d6c9}.method-switch span{margin-left:4px}
.auth-card h1{font-size:28px;line-height:1.3;letter-spacing:-.8px;margin:0 0 10px;font-weight:600}.subtitle{font-size:14px;color:var(--auth-muted);margin:0 0 30px;overflow-wrap:anywhere}
.auth-steps{display:flex;justify-content:space-between;list-style:none;padding:0;margin:0 0 30px;gap:8px}.auth-steps li{display:flex;gap:6px;align-items:center;color:#9aa29c;font-size:11px;white-space:nowrap}.step-number{display:inline-flex;align-items:center;justify-content:center;width:21px;height:21px;flex-shrink:0;border-radius:50%;border:1px solid #e1e7e0;background:#f8faf7;font-size:11px}.auth-steps .current{color:var(--auth-action);font-weight:600}.current .step-number{color:#fff;background:var(--auth-action);border-color:var(--auth-action)}.auth-steps .done{color:var(--auth-action)}.done .step-number{background:#edf4ea;border-color:#edf4ea}
.field{margin:0 0 22px}.field label{display:block;margin:0 0 8px;font-size:13px;font-weight:500}.label-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.label-row a{font-size:12px}
.auth-ui input:not([type=checkbox]):not([type=hidden]){width:100%;height:50px;padding:0 15px;border:1px solid #dce4dd;border-radius:10px;color:var(--auth-ink);background:#fcfdfb;font:inherit;font-size:14px;outline:none;transition:border-color .15s,box-shadow .15s}.auth-ui input::placeholder{color:#9ba49c}.auth-ui input:focus{border-color:#5a8c6c;background:#fff;box-shadow:0 0 0 3px rgba(76,132,89,.1)}.password-field{position:relative}.password-field input{padding-right:65px!important}.password-toggle{position:absolute;right:6px;top:5px;height:40px;min-width:52px;border:0;border-radius:7px;background:transparent;color:var(--auth-muted);font:inherit;font-size:12px;cursor:pointer}.password-toggle:hover{background:#eef3ed}
.verification-code{display:flex;gap:10px}.verification-code input{min-width:0;flex:1}.verification-code button{flex-shrink:0;min-width:112px;height:50px;border:1px solid #cbdacc;border-radius:10px;padding:0 12px;background:#f3f7f0;color:var(--auth-action);font:inherit;font-size:12px;cursor:pointer}.verification-code button:hover{background:#eaf1e6}
.auth-ui .primary{display:flex;justify-content:center;align-items:center;gap:12px;width:100%;min-height:50px;padding:12px 18px;background:var(--nexus-action);color:#fff;border:0;border-radius:10px;font:inherit;font-size:15px;font-weight:500;text-decoration:none;cursor:pointer;transition:background .15s,transform .15s}.auth-ui .primary:hover{background:var(--nexus-action-hover);text-decoration:none}.auth-ui .primary:active{transform:translateY(1px)}.auth-ui button:disabled{cursor:wait;opacity:.55}.auth-ui :focus-visible{outline:2px solid #55876d;outline-offset:3px}
.consent{display:flex;align-items:flex-start;gap:9px;font-size:12px;color:var(--auth-muted);margin:0 0 20px}.consent input{accent-color:var(--auth-action);width:15px;height:15px;flex-shrink:0;margin:2px 0 0;cursor:pointer}.consent a{margin-left:2px}.field-help{font-size:12px;color:var(--auth-muted);line-height:1.7;margin:10px 0 0}.form-message{font-size:12px;background:#f4f7f1;border-radius:8px;padding:10px 12px;margin:0 0 16px;overflow-wrap:anywhere}.form-message:empty{display:none}.form-message.error{color:#a04334;background:#fff2ee}
.switch-link{text-align:center;font-size:12px;color:var(--auth-muted);margin:24px 0 0}.switch-link a{margin-left:4px}.auth-footer{padding:0 20px 22px;text-align:center;font-size:11px;letter-spacing:.2px;color:#aebaae}.wechat-panel{text-align:center;padding:2px 0 4px}.wechat-panel h2{font-size:17px;font-weight:500;margin:14px 0 8px}.wechat-panel .field-help{margin:6px 0 22px}.wechat-symbol{width:76px;height:76px;border-radius:22px;display:flex;align-items:center;justify-content:center;color:#318759;background:#eef5eb;margin:8px auto 0}.wechat-action{margin-bottom:14px}.verified-badge{font-size:11px;color:var(--auth-action);padding:5px 8px;background:#edf5e9;border-radius:7px}.binding-note{margin:-8px 0 22px}.success-symbol{font-size:32px;color:var(--auth-action);width:74px;height:74px;display:flex;align-items:center;justify-content:center;background:#edf5e9;border-radius:50%;margin:0 auto 30px}
@media(min-width:1450px){.auth-main{padding-bottom:80px}.auth-card{padding:36px 40px 30px}}
@media(max-width:540px){.auth-header{padding:22px 24px}.brand img{width:154px}.home-link{font-size:12px}.auth-main{align-items:flex-start;padding:25px 16px 32px}.auth-card{padding:28px 24px 24px;border-radius:16px;box-shadow:0 10px 40px -24px rgba(29,57,34,.2)}.auth-card h1{font-size:26px}.subtitle{font-size:13px}.auth-footer{padding-bottom:18px}.verification-code button{min-width:104px;padding:0 10px}.auth-steps{gap:5px}.auth-steps li{font-size:10px;gap:5px}}
@media(prefers-reduced-motion:reduce){.auth-ui input,.auth-ui .primary{transition:none}}
