:root{--bg:#f8f6f3;--surface:#fff;--surface-warm:#fffcf7;--fg:rgba(0,0,0,.85);--fg-2:rgba(0,0,0,.62);--muted:rgba(0,0,0,.45);--meta:rgba(0,0,0,.27);--border:rgba(0,0,0,.08);--border-soft:rgba(0,0,0,.05);--accent:#ff2442;--accent-on:#fff;--accent-hover:#ff2e4d;--font-body:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",-apple-system,sans-serif;--radius-md:12px;--radius-lg:16px;--motion-fast:150ms;--ease:cubic-bezier(.2,0,0,1)}
*{margin:0;padding:0;box-sizing:border-box}body{min-height:100vh;background:var(--bg);color:var(--fg);font-family:var(--font-body)}button,input{font:inherit}.wrap{display:flex;min-height:100vh}.brand-pane{position:relative;width:44%;min-width:420px;overflow:hidden;background:#1c1614}.brand-pane .photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.brand-pane .shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,14,12,.15),transparent 50%,rgba(20,14,12,.35))}.login-pane{position:relative;display:flex;flex:1;flex-direction:column;justify-content:space-between;padding:40px;background:var(--surface-warm)}.login-center{display:flex;flex:1;align-items:center;justify-content:center}.login-box{width:100%;max-width:380px}.brand-header{display:flex;align-items:center;gap:12px;margin-bottom:32px;color:var(--fg);text-decoration:none}.brand-header span{font-size:22px;font-weight:600;letter-spacing:-.01em}.panel{margin-top:28px}.login-desc{margin:24px 0 20px;color:var(--fg-2);font-size:14px}.field{margin-top:16px}.field label{display:block;margin-bottom:8px;color:var(--fg-2);font-size:13px}.input{width:100%;height:46px;padding:0 14px;border:1px solid var(--border);border-radius:var(--radius-md);outline:0;background:rgba(48,48,52,.03);color:var(--fg);font-size:15px;transition:border-color var(--motion-fast) var(--ease),background var(--motion-fast) var(--ease)}.input::placeholder{color:var(--meta)}.input:focus{border-color:rgba(0,0,0,.2);background:var(--surface)}.btn-login{width:100%;height:48px;margin-top:24px;border:0;border-radius:999px;background:var(--accent);color:var(--accent-on);cursor:pointer;font-size:15.5px;font-weight:500;transition:background var(--motion-fast) var(--ease),transform var(--motion-fast) var(--ease)}.btn-login:hover{background:var(--accent-hover)}.btn-login:active{transform:scale(.99)}.login-links{display:flex;align-items:center;justify-content:space-between;margin-top:16px}.login-links button{padding:0;border:0;background:none;color:var(--muted);cursor:pointer;font-size:13px}.login-links button:hover{color:var(--accent)}.agree{display:flex;align-items:flex-start;gap:8px;margin-top:26px;color:var(--muted);font-size:12.5px;line-height:1.7}.agree input{flex-shrink:0;width:14px;height:14px;margin-top:3px;accent-color:var(--accent);cursor:pointer}.agree a{border-bottom:1px solid var(--border);color:var(--fg-2);text-decoration:none}.agree.shake{animation:shake .4s}@keyframes shake{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}.field-error,.form-error{margin-top:7px;color:#c91b35;font-size:12px;line-height:1.5}.form-error{padding:10px 12px;border-radius:8px;background:rgba(255,36,66,.07)}.agreement-error{margin-left:22px}.foot-area{border-top:1px solid var(--border-soft);padding-top:20px;text-align:center}.foot-copy{color:var(--meta);font-size:12px}.modal-mask{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.45);opacity:0;pointer-events:none;transition:opacity .2s var(--ease)}.modal-mask.show{opacity:1;pointer-events:auto}.modal{position:relative;width:90%;max-width:400px;padding:32px 28px;border-radius:var(--radius-lg);background:var(--surface);text-align:center;transform:scale(.95);transition:transform .2s var(--ease)}.modal-mask.show .modal{transform:scale(1)}.modal-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border:0;border-radius:50%;background:none;color:var(--muted);cursor:pointer}.modal-close:hover{background:rgba(0,0,0,.06)}.modal-title{color:var(--fg);font-size:18px;font-weight:600}.modal-desc{margin-top:8px;color:var(--fg-2);font-size:14px;line-height:1.7}.modal-qr{display:flex;width:180px;height:180px;align-items:center;justify-content:center;margin:24px auto 0;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-warm)}.modal-qr img{width:100%;height:100%;border-radius:6px;object-fit:contain}.modal-tip{margin-top:16px;color:var(--muted);font-size:13px;line-height:1.7}.modal-tip b{color:var(--fg-2);font-weight:500}:focus-visible{outline:3px solid rgba(255,36,66,.25);outline-offset:2px}
html{min-width:320px;background:var(--bg)}body,.wrap{min-height:100dvh}body{overflow-x:clip}.login-pane{min-width:0}
@media(max-width:1024px){.brand-pane{display:none}.login-pane{padding:40px 32px}}
@media(max-width:640px){.login-pane{padding:32px 20px}.login-box{max-width:100%}.login-box .brand-header{margin-bottom:24px}.tabs{gap:24px;margin-top:24px}.tabs button{font-size:14px}.panel{margin-top:20px}.qr-frame,.modal-qr{width:180px;height:180px}.agree{margin-top:20px}.modal{padding:24px 20px}}
@media(max-width:480px){.login-pane{padding:28px 16px}.login-box .brand-header{flex-direction:column;align-items:center;text-align:center;gap:10px}.qr-frame,.modal-qr{width:160px;height:160px}.code-row{flex-direction:column;gap:8px}.code-row .input{width:100%}.btn-code{width:100%;height:42px}.input{height:46px;font-size:15px}.btn-login{height:48px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
