:root{font-family:Avenir Next,SF Pro Text,PingFang SC,sans-serif;color:#111827;background:#f7f8fa;font-synthesis:none;color-scheme:light}*{box-sizing:border-box}body{margin:0}main{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px}button,input{font:inherit}button,a,input{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #16A394}button{min-height:48px;padding:12px 20px;border:1px solid transparent;border-radius:12px;background:#16a394;color:#fff;font-weight:600;cursor:pointer}button:hover{background:#0d9488}button:disabled{cursor:not-allowed;opacity:.55}a{color:#0d9488;text-decoration:none}.auth-card{width:100%;max-width:460px;background:#fff;border:1px solid #E5E7EB;border-radius:16px;padding:32px;box-shadow:0 12px 36px #11182706}.brand{display:flex;align-items:center;gap:12px;font-size:24px;font-weight:700;color:#111827}.brand span{display:grid;place-items:center;width:40px;height:40px;background:#16a394;color:#fff;border-radius:12px}.eyebrow{font-size:13px;color:#6b7280;margin:14px 0 28px}h1{font-size:26px;line-height:1.4;margin:24px 0 12px}.muted{color:#6b7280;font-size:14px;line-height:1.7;margin:0 0 24px}.tabs{display:flex;border-bottom:1px solid #E5E7EB;margin-bottom:24px;gap:24px}.tabs button{padding:12px 0;min-height:44px;border-radius:0;color:#6b7280;background:none;border-bottom:2px solid transparent}.tabs .selected{color:#0d9488;border-bottom-color:#16a394}label{display:block;margin-bottom:20px}label>span{display:block;font-size:14px;font-weight:600;margin-bottom:8px}input{width:100%;min-height:48px;padding:12px 14px;border:1px solid #E5E7EB;border-radius:12px;background:#fff;color:#111827}input::placeholder{color:#9ca3af}.phone-row{display:flex;border:1px solid #E5E7EB;border-radius:12px;align-items:center;overflow:hidden}.phone-row:focus-within,input:not([type=checkbox]):focus{border-color:#16a394;outline:2px solid #16A394;outline-offset:-2px}.phone-row input{border:0;min-width:0}.phone-row input:focus{outline:none}@media(forced-colors:active){.phone-row:focus-within,input:not([type=checkbox]):focus{outline-color:Highlight}}.country{padding-left:14px;font-size:14px;color:#374151;white-space:nowrap}.code-row{display:flex;align-items:flex-end;gap:12px;margin-bottom:20px}.code-row label{margin:0;min-width:0;flex:1}.text-button{color:#0d9488;background:transparent;padding:8px 0;border-radius:8px;font-size:14px;white-space:nowrap}.text-button:hover{color:#0d9488;background:#f0fdfa}.forgot{display:block;margin:-12px 0 12px auto;min-height:32px}.hint{font-size:12px;line-height:1.7;color:#6b7280;margin:10px 0 20px}.full{width:100%}.terms{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;color:#6b7280;line-height:1.7}.terms input{width:16px;height:16px;min-height:0;margin:0}.divider{position:relative;text-align:center;margin:24px 0;color:#9ca3af;font-size:12px}.divider:before{content:"";position:absolute;left:0;right:0;top:50%;border-top:1px solid #E5E7EB}.divider span{position:relative;background:#fff;padding:0 12px}.wechat{display:grid;place-items:center;width:48px;height:48px;margin:0 auto;padding:8px;border-radius:9999px;background:#fff;border:1px solid #E5E7EB;color:#374151}.wechat img{display:block;width:28px;height:28px;object-fit:contain}.wechat:hover{background:#f0fdfa;border-color:#16a394}.secondary{background:#fff;color:#374151;border:1px solid #E5E7EB}.secondary:hover{background:#f9fafb}.choices{display:grid;gap:16px}.actions{display:flex;gap:12px;margin-top:24px}.actions>*{flex:1}.error{color:#dc2626;border:1px solid #FECACA;background:#fef2f2;border-radius:12px;padding:12px;font-size:13px;line-height:1.7;margin-bottom:20px}.mock-note{color:#374151;background:#eef2ff;border:1px solid #E5E7EB;padding:12px;border-radius:12px;font-size:12px;line-height:1.6;margin-bottom:20px}.back{display:block;margin:16px auto 0}footer{font-size:12px;color:#9ca3af;margin-top:24px;text-align:center}@media(max-width:520px){main{justify-content:flex-start;padding:24px 16px}.auth-card{padding:24px}h1{font-size:24px}.tabs{gap:24px}}
