/* 会员注册页专属样式 */
.reg-title{margin:0 0 4px;font-size:20px;color:#0f172a;text-align:center;font-weight:700;}
.reg-form{display:flex;flex-direction:column;gap:13px;margin-top:14px;}
.reg-field{display:flex;flex-direction:column;gap:6px;}
.reg-field>label{font-size:13px;color:#475569;}
.reg-input{height:44px;padding:0 14px;border:1px solid #e2e8f0;border-radius:10px;font-size:14px;color:#0f172a;outline:none;background:#fff;transition:border-color .2s,box-shadow .2s;width:100%;box-sizing:border-box;}
.reg-input::placeholder{color:#94a3b8;}
.reg-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.15);}
.reg-code-row{display:flex;gap:8px;align-items:center;}
.reg-code-row .reg-input{flex:1;}
.reg-btn-code{flex:none;height:44px;padding:0 18px;border:0;border-radius:10px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:opacity .2s,transform .1s;box-shadow:0 6px 16px -6px rgba(37,99,235,.6);}
.reg-btn-code:hover{opacity:.92;}
.reg-btn-code:active{transform:translateY(1px);}
.reg-btn-code:disabled{opacity:.5;cursor:not-allowed;background:#cbd5e1;box-shadow:none;}
.reg-hint{font-size:12px;color:#94a3b8;min-height:16px;margin-top:2px;}
/* 表单级提交提示：两种注册模式都必须可见（不能塞进会隐藏的字段里） */
.reg-form-hint{margin:10px 0 0;padding:9px 12px;border-radius:10px;font-size:13px;line-height:1.5;
  color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;}
.reg-form-hint[hidden]{display:none;}
/* 未勾选协议时的勾选框高亮（配合提示使用） */
.reg-agree-label.is-err{color:#b91c1c;animation:regAttn .45s ease;}
/* 未完成拼图时的拼图区高亮 */
.sc-box.sc-attn{border-radius:12px;box-shadow:0 0 0 3px rgba(239,68,68,.45);animation:regAttn .45s ease;}
@keyframes regAttn{
  0%,100%{transform:translateX(0);}
  20%{transform:translateX(-5px);}
  40%{transform:translateX(5px);}
  60%{transform:translateX(-3px);}
  80%{transform:translateX(3px);}
}
.reg-field-agree{padding-top:2px;}
.reg-agree-label{display:flex;align-items:center;gap:6px;font-size:13px;color:#475569;line-height:1.4;cursor:pointer;}
.reg-agree-label input[type="checkbox"]{width:14px;height:14px;min-width:14px;min-height:14px;flex:none;margin:0;padding:0;cursor:pointer;accent-color:#2563eb;vertical-align:middle;}
.reg-agree-label a{color:#2563eb;text-decoration:underline;}
.reg-submit{height:46px;border:0;border-radius:24px;font-size:15px;font-weight:700;color:#fff;
  background:linear-gradient(135deg,#3b82f6,#2563eb);cursor:pointer;letter-spacing:2px;
  box-shadow:0 10px 24px -10px rgba(37,99,235,.65);transition:opacity .2s,transform .1s;margin-top:4px;}
.reg-submit:hover{opacity:.95;}
.reg-submit:active{transform:translateY(1px);}
.reg-login-tip{text-align:center;margin:14px 0 0;font-size:13px;color:#64748b;}
.reg-login-tip a{color:#2563eb;font-weight:600;text-decoration:none;}
.reg-login-tip a:hover{text-decoration:underline;}
/* 注册方式切换（与登录页 .auth-tabs 同款；注册页没引 login.css，所以这里自带一份） */
.auth-tabs{display:flex;gap:8px;}
.auth-tab{flex:1;text-align:center;padding:10px 0;font-size:14px;cursor:pointer;color:#64748b;border:1px solid #e5e9f0;border-radius:10px;background:#f8fafc;transition:all .2s;user-select:none;}
.auth-tab.active{color:#1d4ed8;border-color:#2563eb;background:#eff6ff;font-weight:600;box-shadow:0 4px 12px -6px rgba(37,99,235,.4);}
/* 当前注册方式的说明：免验证码模式必须讲清「手机号未验证」的后果，否则用户会误以为已绑定 */
.reg-mode-tip{font-size:12px;line-height:1.6;color:#b45309;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:8px 10px;}
.reg-mode-tip[hidden]{display:none;}
/* 协议弹窗 */
.agree-modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;}
.agree-modal[hidden]{display:none;}
.agree-modal-mask{position:absolute;inset:0;background:rgba(2,6,23,.7);}
.agree-modal-panel{position:relative;width:min(640px,92vw);max-height:80vh;background:#fff;border-radius:12px;box-shadow:0 20px 50px rgba(0,0,0,.3);display:flex;flex-direction:column;overflow:hidden;}
.agree-modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid #eef2f7;}
.agree-modal-head h3{margin:0;font-size:16px;}
.agree-modal-close{background:none;border:0;font-size:22px;line-height:1;color:#94a3b8;cursor:pointer;padding:0 4px;}
.agree-modal-close:hover{color:#ef4444;}
.agree-modal-body{padding:18px;overflow:auto;font-size:14px;line-height:1.8;color:#334155;}
.agree-modal-body h2{font-size:16px;margin:14px 0 8px;}
.agree-modal-body p{margin:8px 0;}
.agree-modal-body ol,.agree-modal-body ul{padding-left:24px;}
.agree-modal-foot{padding:12px 18px;border-top:1px solid #eef2f7;text-align:right;background:#f8fafc;}
.agree-modal-foot .btn{width:auto;padding:0 20px;height:34px;line-height:34px;border-radius:8px;border:0;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;cursor:pointer;}
