/* 官网账号中心（注册 / 登录 / 购买 / 我的账号）公共样式
   2026-10-28（用户反馈）：手机上输入框超宽 3-5px（框模型未算边框）→ 全部收进容器 */
   2026-10-26 新增：外观沿用千帆Ai 营销页绿色体系（--green-* 来自 /css/style.css） */

.acct-main { flex: 1; padding: 40px 20px 64px; }
.acct-wrap { width: 100%; max-width: 1080px; margin: 0 auto; }
/* 登录/注册这类表单页：窄栏 + 长形输入框（2026-10-26 用户定：输入框要竖长，不要横宽） */
.acct-wrap.auth { max-width: 452px; }

/* 页面底部只用一行简洁版权，不用全站大页脚（旧版把站脚样式带进窄页会显示成一条被裁的文字） */
.acct-foot { text-align: center; padding: 30px 16px 38px; font-size: 12.5px; color: var(--ink-300); line-height: 1.9; }
.acct-foot a { color: var(--ink-500); text-decoration: none; }
.acct-foot a:hover { color: var(--green-600); }

.acct-head { margin-bottom: 26px; }
.acct-head h1 { font-size: 27px; line-height: 1.3; margin-bottom: 10px; }
.acct-head h1 em { font-style: normal; background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.acct-head p { font-size: 14.5px; color: var(--ink-500); line-height: 1.8; }

.acct-card {
  background: var(--white); border: 1px solid var(--line); border-radius: 20px;
  box-shadow: var(--shadow-md); padding: 28px 28px 26px;
}
.acct-card + .acct-card { margin-top: 18px; }
.acct-card h2 { font-size: 18px; margin-bottom: 6px; }
.acct-card .sub { font-size: 13px; color: var(--ink-500); margin-bottom: 20px; line-height: 1.7; }

/* 表单 */
.field { margin-bottom: 18px; }
.field label { display: block; font-size: 13px; font-weight: 700; color: var(--ink-700); margin-bottom: 8px; }
.field .ctrl { display: flex; gap: 8px; }
.field input {
  width: 100%; height: 56px; padding: 0 16px; font-size: 15px; font-family: inherit;
  color: var(--ink-900); background: var(--white); border: 1px solid var(--line);
  border-radius: 12px; outline: none; transition: border-color .18s, box-shadow .18s;
}
.field input::placeholder { color: var(--ink-300); }
.field input:focus { border-color: var(--green-500); box-shadow: 0 0 0 3px rgba(18, 161, 115, .14); }
/* 浏览器自动填充会把输入框染成蓝色渐变，这里压回白底黑字 */
.field input:-webkit-autofill,
.field input:-webkit-autofill:hover,
.field input:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--ink-900);
  -webkit-box-shadow: 0 0 0 1000px var(--white) inset;
  transition: background-color 9999s ease-out 0s;
}
/* 密码框：右侧显示/隐藏 */
.pw-wrap { position: relative; }
.pw-wrap input { padding-right: 58px; }
.pw-eye {
  position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
  height: 38px; padding: 0 10px; border: none; background: transparent; cursor: pointer;
  color: var(--ink-300); font-size: 12.5px; font-family: inherit; border-radius: 9px;
}
.pw-eye:hover { color: var(--green-600); background: var(--green-50); }
.field .hint { margin-top: 7px; font-size: 12px; color: var(--ink-300); line-height: 1.6; }
.field .code-btn {
  flex: none; min-width: 132px; height: 56px; padding: 0 14px; border-radius: 12px;
  border: 1px solid var(--green-500); background: var(--green-50); color: var(--green-600);
  font-size: 13.5px; font-weight: 700; font-family: inherit; cursor: pointer;
  transition: background .18s, opacity .18s;
}
.field .code-btn:hover:not(:disabled) { background: #dcf6e9; }
.field .code-btn:disabled { opacity: .55; cursor: not-allowed; }

.btn-lg, .btn-line {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  height: 48px; padding: 0 22px; border-radius: 13px; font-size: 15px; font-weight: 700;
  font-family: inherit; cursor: pointer; text-decoration: none; border: none;
  transition: transform .2s cubic-bezier(.16,1,.3,1), box-shadow .2s, background .18s, opacity .18s;
}
.btn-lg.sm { height: 44px; font-size: 14.5px; border-radius: 12px; }
.btn-lg { background: var(--grad); color: #fff; box-shadow: 0 8px 20px rgba(18, 161, 115, .3); }
.btn-lg:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(18, 161, 115, .38); }
.btn-lg:disabled { opacity: .6; cursor: not-allowed; transform: none; box-shadow: none; }
.btn-line { background: var(--white); color: var(--green-600); border: 1px solid rgba(18, 161, 115, .45); }
.btn-line:hover { background: var(--green-50); }
.btn-block { width: 100%; }

.acct-alt { margin-top: 16px; font-size: 13px; color: var(--ink-500); text-align: center; line-height: 1.9; }
.acct-alt a { color: var(--green-600); font-weight: 700; text-decoration: none; }
.acct-alt a:hover { text-decoration: underline; }

.alert {
  display: none; margin-bottom: 16px; padding: 11px 14px; border-radius: 11px;
  font-size: 13px; line-height: 1.7; border: 1px solid transparent;
}
.alert.show { display: block; }
.alert.err { background: #fef3f2; border-color: #fecdca; color: #b42318; }
.alert.ok { background: var(--green-50); border-color: #b7ebd3; color: var(--green-700); }
.alert.info { background: #eff6ff; border-color: #c7ddff; color: #175cd3; }

/* 左栏流程 */
.acct-steps { display: flex; flex-direction: column; gap: 12px; }
.acct-step {
  display: flex; gap: 12px; align-items: flex-start; background: var(--white);
  border: 1px solid var(--line); border-radius: 14px; padding: 14px 16px;
  transition: border-color .2s, box-shadow .2s, transform .2s cubic-bezier(.16,1,.3,1);
}
.acct-step:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(16, 24, 40, .07); border-color: rgba(18, 161, 115, .3); }
.acct-step svg { width: 22px; height: 22px; flex: none; margin-top: 2px; }
.acct-step b { font-size: 14px; display: flex; align-items: center; gap: 8px; margin-bottom: 3px; }
.acct-step b .n {
  width: 20px; height: 20px; border-radius: 50%; background: var(--grad); color: #fff;
  font-size: 11.5px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0; box-shadow: 0 3px 8px rgba(18, 161, 115, .28); font-style: normal;
}
.acct-step span { font-size: 12.5px; color: var(--ink-500); line-height: 1.6; }

/* 套餐 */
.plan-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.plan-card {
  border: 1px solid var(--line); border-radius: 16px; padding: 20px 18px; background: var(--white);
  display: flex; flex-direction: column; transition: border-color .2s, box-shadow .2s, transform .2s;
}
.plan-card:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(16, 24, 40, .08); }
.plan-card.hot { border-color: rgba(18, 161, 115, .5); background: linear-gradient(180deg, var(--green-50), #fff 62%); }
.plan-card h3 { font-size: 15px; display: flex; align-items: center; gap: 8px; }
.plan-card h3 .tag {
  font-size: 11px; font-weight: 700; color: var(--green-600); background: #d9f5e8;
  border-radius: 999px; padding: 2px 8px;
}
.plan-price { font-size: 30px; font-weight: 800; color: var(--green-600); margin: 8px 0 2px; line-height: 1.1; }
.plan-price small { font-size: 12.5px; font-weight: 400; color: var(--ink-300); }
.plan-per { font-size: 12px; color: var(--ink-300); margin-bottom: 14px; }
.plan-card ul { list-style: none; margin: 0 0 18px; padding: 0; font-size: 12.5px; color: var(--ink-500); line-height: 1.9; }
.plan-card ul li { position: relative; padding-left: 18px; }
.plan-card ul li::before {
  content: ""; position: absolute; left: 0; top: 7px; width: 8px; height: 8px;
  border-radius: 50%; background: var(--green-300);
}
.plan-card .btn-lg, .plan-card .btn-line { width: 100%; margin-top: auto; }

/* 支付 */
.pay-summary { border: 1px solid var(--line); border-radius: 14px; background: var(--bg-soft); padding: 4px 16px; margin-bottom: 18px; }
.pay-summary .row {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 10px 0; font-size: 13.5px; color: var(--ink-500); border-bottom: 1px dashed #e9eef4;
}
.pay-summary .row:last-child { border-bottom: none; }
.pay-summary .row b { color: var(--ink-900); font-size: 14.5px; }
.pay-qr { display: flex; justify-content: center; padding: 8px 0 4px; }
.pay-qr .qr-frame {
  width: 232px; height: 232px; border-radius: 16px; border: 1px solid var(--line);
  background: #fff; display: flex; align-items: center; justify-content: center; overflow: hidden;
}
.pay-qr .qr-frame img { width: 100%; height: 100%; object-fit: contain; }
.pay-meta { text-align: center; font-size: 13px; color: var(--ink-500); line-height: 1.9; }
.pay-meta b { color: var(--ink-900); font-size: 20px; }
.pay-meta .oid { font-size: 12px; color: var(--ink-300); word-break: break-all; }
.pay-tip { margin-top: 14px; text-align: center; font-size: 13px; color: var(--green-600); font-weight: 700; }
.pay-fallback { margin-top: 16px; border-top: 1px dashed var(--line); padding-top: 16px; text-align: center; }

/* 状态徽章（会员中心抬头/订单状态在用） */
.badge { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 700; padding: 5px 11px; border-radius: 999px; }
.badge.ok { background: #dcf6e9; color: var(--green-700); }
.badge.warn { background: #fff5e6; color: #b54708; }
.badge.off { background: #f2f4f7; color: var(--ink-500); }

.order-list { display: flex; flex-direction: column; gap: 10px; }
/* 2026-10-28（用户定）：订单只显示 3 条，多了在框内滚动，不再撑高卡片 */
.order-list { max-height: 262px; overflow-y: auto; padding-right: 2px; scrollbar-width: thin; }
.order-row {
  display: grid; grid-template-columns: 1.3fr 1fr .9fr .9fr; gap: 10px; align-items: center;
  border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; font-size: 13px;
}
.order-row .o-plan { font-weight: 700; }
.order-row .o-time { color: var(--ink-300); font-size: 12.5px; }
.order-row .o-price { font-weight: 700; color: var(--green-600); }
.order-empty { font-size: 13px; color: var(--ink-300); text-align: center; padding: 18px 0; }
/* 2026-10-27 八轮（用户反馈）：去支付/取消改成按钮形状（原来是纯文字） */
.o-link {
  display: inline-flex; align-items: center; justify-content: center;
  height: 36px; padding: 0 16px; border-radius: 10px; font-size: 13.5px; font-weight: 700;
  color: #fff; background: var(--grad); text-decoration: none; white-space: nowrap;
  box-shadow: 0 3px 10px rgba(18, 161, 115, .24); transition: transform .15s, box-shadow .15s;
}
.o-link:hover { transform: translateY(-1px); box-shadow: 0 6px 14px rgba(18, 161, 115, .3); text-decoration: none; }
/* 待支付订单行「取消」 */
.o-cancel {
  display: inline-flex; align-items: center; justify-content: center;
  height: 36px; padding: 0 16px; border-radius: 10px; font-size: 13.5px; font-weight: 700;
  color: #b42318; background: #fff7f7; border: 1px solid #f3b7b7; text-decoration: none; cursor: pointer; white-space: nowrap;
  transition: background .15s, border-color .15s;
}
.o-cancel:hover { background: #ffecec; border-color: #e8a3a3; }

@media (max-width: 860px) {
  .plan-grid { grid-template-columns: 1fr; }
  /* 2026-10-27（用户定）：手机上单列时年卡（hot）排到半年卡上面 */
  .plan-grid > .plan-card.hot { order: -1; }
  .order-row { grid-template-columns: 1fr 1fr; row-gap: 6px; }
  .acct-main { padding: 26px 16px 48px; }
  .acct-head h1 { font-size: 22px; }
  .acct-card { padding: 22px 20px; }
}

/* 2026-10-26：消息位固定占位，提示出现时不再把表单整体顶下去 */
.msg-slot { min-height: 46px; display: flex; align-items: center; }
.msg-slot .alert { margin-bottom: 0; }

/* 2026-10-28：套餐卡奇数张时最后一张不居中（用户定：靠左排，与其他卡同尺寸） */

/* ================= 2026-10-27 会员中心重设计 ================= */
/* 卡片标题带绿色小图标 */
.acct-card h2.card-title { display: flex; align-items: center; gap: 10px; font-size: 17px; margin-bottom: 6px; }
.card-ic {
  width: 34px; height: 34px; flex: none; border-radius: 10px;
  background: var(--green-50); color: var(--green-600);
  display: inline-flex; align-items: center; justify-content: center;
}
.card-ic svg { width: 19px; height: 19px; }

/* 订单行：左（套餐+时间/单号） 中（金额） 右（状态+去支付），不再挤成一团 */
.order-row {
  display: grid; grid-template-columns: minmax(0, 1.6fr) auto auto; gap: 4px 16px;
  align-items: center; border: 1px solid var(--line); border-radius: 14px;
  padding: 13px 16px; font-size: 13px; background: #fff;
}
.order-row:hover { border-color: rgba(18, 161, 115, .35); }
.order-row .o-main { min-width: 0; }
.order-row .o-plan { font-weight: 800; font-size: 13.5px; }
.order-row .o-time {
  display: flex; align-items: center; gap: 8px; margin-top: 3px;
  font-size: 12px; color: var(--ink-300); min-width: 0;
}
.order-row .o-oid { max-width: 190px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.order-row .o-price { font-weight: 800; color: var(--green-600); font-size: 14.5px; }
.order-row .o-act { display: flex; align-items: center; gap: 8px; justify-self: end; }
.o-chip { display: inline-flex; align-items: center; font-size: 12px; font-weight: 700; padding: 4px 10px; border-radius: 999px; white-space: nowrap; }
.o-chip.ok { background: #dcf6e9; color: var(--green-700); }
.o-chip.pay { background: #fff5e6; color: #b54708; }
.o-chip.off { background: #f2f4f7; color: var(--ink-500); }

/* 购买页顶部「已开通」提示条 */
.active-banner {
  display: none; align-items: flex-start; gap: 10px; margin-bottom: 16px;
  padding: 12px 16px; border-radius: 13px; background: var(--green-50);
  border: 1px solid #b7ebd3; font-size: 13px; color: var(--green-700); line-height: 1.7;
}
.active-banner svg { flex: none; margin-top: 2px; }

/* 已购顺延确认弹窗（中英共用，由 site-account.js 注入） */
.acct-modal-mask {
  position: fixed; inset: 0; z-index: 9999; background: rgba(16, 24, 40, .45);
  display: flex; align-items: center; justify-content: center; padding: 20px;
  opacity: 0; transition: opacity .18s;
}
.acct-modal-mask.show { opacity: 1; }
.acct-modal {
  width: min(420px, 100%); background: #fff; border-radius: 20px; padding: 26px 24px 22px;
  box-shadow: 0 24px 60px rgba(16, 24, 40, .28); text-align: center;
  transform: translateY(12px) scale(.97); transition: transform .2s cubic-bezier(.16, 1, .3, 1);
}
.acct-modal.show { transform: none; }
.acct-modal .m-ic {
  width: 52px; height: 52px; border-radius: 16px; background: var(--green-50);
  display: inline-flex; align-items: center; justify-content: center; margin-bottom: 13px;
}
.acct-modal h3 { font-size: 16.5px; margin-bottom: 8px; }
.acct-modal p { font-size: 13.5px; color: var(--ink-500); line-height: 1.85; margin-bottom: 20px; }
.acct-modal .m-btns { display: flex; gap: 10px; }
.acct-modal .m-btns .btn-lg { flex: 1; height: 46px; font-size: 14.5px; }
.acct-modal .m-ghost { background: #fff; color: var(--ink-500); border: 1px solid var(--line); box-shadow: none; }
.acct-modal .m-ghost:hover { background: var(--bg-soft); transform: none; box-shadow: none; }

@media (max-width: 860px) {
  .order-row { grid-template-columns: 1fr auto; row-gap: 8px; }
  .order-row .o-act { grid-column: 1 / -1; justify-self: start; }
}

/* ================= 2026-10-27 会员中心二次重排 ================= */
/* 深绿渐变抬头：身份+操作都在一条里 */
.acct-hero2 {
  position: relative; overflow: hidden;
  display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap;
  padding: 26px 28px; border-radius: 22px; margin-bottom: 18px;
  background: linear-gradient(120deg, #12a173, #0b6e50 78%);
  color: #fff; box-shadow: 0 18px 40px rgba(11, 110, 80, .32);
}
.acct-hero2::after {
  content: ""; position: absolute; right: -70px; top: -90px;
  width: 250px; height: 250px; border-radius: 50%; background: rgba(255, 255, 255, .08);
}
.hero-left { display: flex; align-items: center; gap: 15px; min-width: 0; position: relative; z-index: 1; }
.hero-name { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 19px; font-weight: 800; word-break: break-all; }
.badge-dark { background: rgba(255, 255, 255, .18); color: #eafff5; border: 1px solid rgba(255, 255, 255, .28); }
.badge-dark.warn { background: rgba(255, 196, 110, .25); color: #ffe3b3; border-color: rgba(255, 196, 110, .4); }
.badge-dark.off { background: rgba(255, 255, 255, .12); color: rgba(255, 255, 255, .78); border-color: rgba(255, 255, 255, .2); }
.hero-sub { margin-top: 6px; font-size: 13px; color: rgba(255, 255, 255, .84); line-height: 1.6; }
.hero-actions { display: flex; gap: 10px; flex: none; position: relative; z-index: 1; flex-wrap: wrap; }
.btn-hero {
  height: 46px; padding: 0 22px; border-radius: 12px; border: none;
  background: #fff; color: #0b6e50; font-size: 14.5px; font-weight: 800; font-family: inherit;
  cursor: pointer; box-shadow: 0 6px 16px rgba(0, 0, 0, .18);
  transition: transform .18s, box-shadow .18s;
}
.btn-hero:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(0, 0, 0, .24); }
.btn-hero-ghost {
  height: 46px; padding: 0 18px; border-radius: 12px;
  border: 1.5px solid rgba(255, 255, 255, .4); background: transparent; color: #fff;
  font-size: 14px; font-weight: 700; font-family: inherit; cursor: pointer; transition: background .15s;
}
.btn-hero-ghost:hover { background: rgba(255, 255, 255, .12); }

/* 一排数据瓦片（2026-10-27 四轮：去掉「当前版本」后改三列） */
.stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-bottom: 18px; }
.stat { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 16px 18px; }
.stat small { display: block; font-size: 12px; color: var(--ink-300); margin-bottom: 6px; }
.stat b { font-size: 19px; font-weight: 800; color: var(--ink-900); }

/* 双卡主体：下载 | 订单 */
.acct-duo { display: grid; grid-template-columns: 1fr 1.35fr; gap: 18px; align-items: start; }
.dl-flex { display: flex; flex-direction: column; gap: 14px; }
.dl-flex .btn-lg { align-self: flex-start; }
.dl-meta { margin: 0; font-size: 12.5px; color: var(--ink-500); line-height: 1.8; }

/* 底部帮助横条 */
.help-strip {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  padding: 20px 24px; margin-top: 18px;
  background: #fff; border: 1px solid var(--line); border-radius: 18px;
}
.help-copy p { margin: 4px 0 0; font-size: 13px; color: var(--ink-500); line-height: 1.7; }

@media (max-width: 860px) {
  .acct-hero2 { padding: 20px; }
  .hero-actions { width: 100%; }
  .hero-actions .btn-hero { flex: 1; }
  .stat-row { grid-template-columns: 1fr 1fr; }
  .acct-duo { grid-template-columns: 1fr; }
  .help-strip { flex-direction: column; text-align: center; }
  .dl-flex .btn-lg { align-self: stretch; }
}

/* ================= 2026-10-27 三轮微调 ================= */
/* ① 双卡等高对齐 */
.acct-duo { align-items: stretch; }
.acct-duo .acct-card { display: flex; flex-direction: column; }
.acct-duo .acct-card .order-list { flex: 1; }
/* ② 数值不给选中高亮（拖动滚动时不再出现蓝色选区） */
.stat b, .acct-hero2, .order-row .o-price { user-select: none; }
/* ③ 帮助条：二维码已按用户要求全站下掉，改放「去联系我们」按钮 */
.help-strip .btn-line { flex: none; height: 44px; padding: 0 20px; }

/* ================= 2026-10-27 四轮（用户反馈） ================= */
/* ① 抬头状态徽章移到邮箱上方一行 */
.hero-id { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.hero-id .hero-sub { margin-top: 0; }
/* 深绿抬头上的「已开通」徽章也要走暗色变体（否则 .badge.ok 浅绿底会穿帮） */
.badge-dark.ok { background: rgba(255, 255, 255, .2); color: #eafff5; border-color: rgba(255, 255, 255, .38); }
/* ② 表单页底部「登录 / 注册」改成按钮（2026-10-27 用户定：登录要按钮、字体大、位置下移） */
.acct-alt { margin-top: 26px; font-size: 14px; }
.acct-alt .alt-btn {
  display: inline-flex; align-items: center; justify-content: center;
  height: 46px; padding: 0 40px; margin-left: 12px; border-radius: 12px;
  background: var(--grad); color: #fff; font-size: 15.5px; font-weight: 700;
  text-decoration: none; box-shadow: 0 6px 16px rgba(18, 161, 115, .28);
  transition: transform .18s, box-shadow .18s;
}
.acct-alt .alt-btn:hover { transform: translateY(-1px); box-shadow: 0 10px 22px rgba(18, 161, 115, .36); text-decoration: none; }
/* 2026-10-27 六轮（用户反馈）：手机上「已有账号？登录」次按钮不再强制全宽——
   全宽+老规则 margin-left 叠加导致按钮比卡片宽出 10px（又大又歪）；恢复紧凑内联，跟文字同一行 */
@media (max-width: 520px) { .acct-alt .alt-btn { width: auto; margin-left: 8px; margin-top: 0; } }

/* ================= 2026-10-27 五轮（用户反馈） ================= */
/* ① 登录按钮缩小 */
.acct-alt .alt-btn { height: 38px; padding: 0 26px; margin-left: 10px; font-size: 14px; border-radius: 10px; box-shadow: 0 4px 12px rgba(18, 161, 115, .24); }
/* ② 抬头徽章独立成行钉死左上（不受容器对齐影响） */
.hero-badgerow { display: flex; justify-content: flex-start; line-height: 1; }
/* ③ 双卡并排时去掉第二张的顶部 18px 兄弟间距（它让右卡在等高单元格里整体下坠、底边错位） */
.acct-duo .acct-card + .acct-card { margin-top: 0; }
/* ④ 消息位空的时候不再占一格（购买页套餐上方的空白即此）；提示出现时自动恢复 */
.msg-slot:not(:has(.alert.show)) { display: none; }
/* ⑤ 推广返佣卡（2026-10-27 用户定：推广归用户） */
.promo-card { margin-top: 18px; }
/* 2026-10-28（用户定）：标题行右侧「分享给朋友」按钮；复制钮=复制分享文案（链接+邀请码+话术） */
.promo-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.promo-share { flex: none; height: 38px; padding: 0 16px; font-size: 13.5px; }
.promo-lead { margin: 2px 0 16px; font-size: 13.5px; color: var(--ink-500); line-height: 1.85; }
.promo-lead b { color: var(--green-600); }
.promo-linkrow { display: flex; gap: 10px; }
.promo-linkrow input {
  flex: 1; min-width: 0; height: 46px; padding: 0 14px; font-size: 14px; font-family: inherit;
  color: var(--ink-900); background: var(--bg-soft); border: 1px solid var(--line);
  border-radius: 12px; outline: none;
}
.promo-linkrow input:focus { border-color: var(--green-500); }
.promo-linkrow .btn-line { flex: none; height: 46px; }
.promo-stats { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-top: 14px; }
.pstat { border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; background: var(--bg-soft); }
.pstat small { display: block; font-size: 11.5px; color: var(--ink-300); margin-bottom: 5px; }
.pstat b { font-size: 15px; font-weight: 800; color: var(--ink-900); user-select: none; }
/* 2026-10-28（用户定）：邀请码格带复制小钮；此格放开文字选中（user-select:none 会让人完全选不中） */
.pstat.code-stat b { user-select: text; }
.pstat.code-stat .code-copy {
  height: 24px; padding: 0 10px; margin-left: 8px; font-size: 12px; font-weight: 700; font-family: inherit;
  color: var(--green-600); background: #fff; border: 1px solid rgba(18, 161, 115, .45); border-radius: 8px; cursor: pointer;
}
.pstat.code-stat .code-copy:hover { background: var(--green-50); }
.pstat.code-stat .code-row { display: flex; align-items: center; }
.pstat.money b { color: var(--green-600); }
.promo-alipay { display: flex; align-items: flex-end; gap: 10px; margin-top: 14px; flex-wrap: wrap; }
/* 2026-10-28（用户定）：输入框收窄不再通栏；保存成功=灰钮「已保存」+旁边「修改」 */
.promo-alipay label { display: flex; flex-direction: column; gap: 6px; font-size: 12.5px; color: var(--ink-500); flex: 0 1 360px; min-width: 240px; }
.promo-alipay input {
  height: 42px; padding: 0 12px; font-size: 14px; font-family: inherit; color: var(--ink-900);
  background: #fff; border: 1px solid var(--line); border-radius: 11px; outline: none;
}
.promo-alipay input:disabled { background: #f7f9fb; color: var(--ink-500); }
.promo-alipay input:focus { border-color: var(--green-500); }
.promo-alipay .btn-line { flex: none; height: 42px; }
/* 2026-10-28：btn-line 基类 display:inline-flex 会顶掉 hidden 属性，兜底 */
.promo-alipay .btn-line[hidden] { display: none; }
.promo-alipay .btn-line.is-saved { color: var(--ink-300); border-color: var(--line); background: #f7f9fb; cursor: default; }
.promo-alipay-msg { font-size: 12.5px; padding-bottom: 10px; }
.promo-alipay-msg.ok { color: var(--green-600); }
.promo-alipay-msg.err { color: #b42318; }
.promo-comms { margin-top: 16px; border-top: 1px dashed var(--line); padding-top: 12px; }
.promo-comm-row {
  display: grid; grid-template-columns: 1.1fr 1.4fr .8fr .8fr .7fr; gap: 8px; align-items: center;
  padding: 8px 4px; font-size: 12.5px; color: var(--ink-500); border-bottom: 1px solid #f1f4f8;
}
.promo-comm-row:last-child { border-bottom: none; }
.promo-comm-row .pc-cus { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.promo-comm-row .pc-comm { font-weight: 700; color: var(--ink-900); }
.promo-comm-row .pc-st { font-weight: 700; }
.promo-comm-row .pc-st.ok { color: var(--green-600); }
.promo-comm-row .pc-st.wait { color: #b54708; }
.promo-comm-head { color: var(--ink-300); font-size: 12px; }
.promo-empty { margin: 0; font-size: 12.5px; color: var(--ink-300); line-height: 1.7; }
@media (max-width: 860px) {
  .promo-stats { grid-template-columns: repeat(3, 1fr); }
  .promo-comm-row { grid-template-columns: 1fr 1.2fr .7fr .7fr .6fr; font-size: 12px; }
}

/* ═══ 2026-10-27 六轮·付款页手机修（用户反馈）═══
   「重新选择套餐 / 我已支付，检查状态」两钮手机上竖排居中：加高、限宽，不再又细又长
   2026-10-27 七轮（用户反馈）：高度再加到 58px、间距拉开到 18px，两钮同一 class 钉死等高 */
.pay-actions { display: flex; gap: 18px; }
.pay-actions .btn-line { flex: 1 1 0; height: 58px; font-size: 15.5px; }
@media (max-width: 520px) {
  .pay-actions { flex-direction: column; align-items: center; gap: 18px; }
  .pay-actions .btn-line { flex: none; width: auto; min-width: 268px; max-width: 100%; height: 58px; padding: 0 34px; white-space: nowrap; font-size: 15.5px; }
}


/* 2026-10-28（用户反馈）：手机端输入框不再超出卡片（含边框算进宽度） */
.acct-card input, .acct-card select, .acct-card textarea, .field input, .pw-wrap input { max-width: 100%; box-sizing: border-box; }
.acct-main, .acct-main * { min-width: 0; }

/* ═══ 2026-10-30（用户反馈）：会员中心手机端排列补齐 ═══ */
/* ① 五格推广数据 ≤520px 改两列（原三列摆不下，第三行孤卡） */
@media (max-width: 520px) {
  .promo-stats { grid-template-columns: repeat(2, 1fr); }
  /* ② 佣金明细五列在手机上挤成一团——允许横向滚动，行内容保持可读宽度 */
  .promo-comms { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .promo-comms .promo-comm-row { grid-template-columns: 92px minmax(76px, 1fr) 64px 64px 52px; font-size: 11.5px; gap: 6px; }
  /* ③ 订单行手机上价格列与操作列更紧凑，去掉多余留白 */
  .order-row { padding: 10px 12px; font-size: 12.5px; }
  .o-link { height: 32px; padding: 0 12px; font-size: 12.5px; }
  /* ④ 会员中心玻璃弹窗手机上不留白边 */
  .acct-modal-mask { padding: 0 14px; }
  /* ⑤ 付款摘要两行式窄屏不再溢出 */
  .pay-summary .row { font-size: 13px; }
}
