/* 合伙共创裂变体系样式（H5 专属，决策 #19：HTML 片段进 index.html，样式/脚本独立成
 * partner.css/partner.js，浏览器地址不变）。视觉基准见
 * temp/examples/裂变体系/合伙人三重礼遇-*.html 三份原型（决策 #18）。
 * 命名前缀 pt- 避免与 main.css / mc- 冲突。颜色沿用原型色板：
 * brandRed #E62E2E / brandRedDeep #C41E1E / goldMain #92400E / goldLight #FBBF24。
 */
.pt-page { background: #edf2fc; min-height: 100%; display: flex; flex-direction: column; }
.pt-nav { position: sticky; top: 0; z-index: 20; background: #fff; display: flex; align-items: center;
  padding: 10px var(--h5-page-inline, 16px); border-bottom: 1px solid #eee; }
/* 返回箭头改纯 CSS 几何图形，不用 ‹ 文字符号——字形墨迹本身上下不对称，字号越大越明显
   偏离标题中心线（2026-09-24 用户反馈），几何图形与字体无关，天然可与标题中心线对齐。 */
.pt-nav-back { border: none; background: none; padding: 0 10px; cursor: pointer;
  font-size: 0; display: inline-flex; align-items: center; justify-content: center; }
.pt-nav-back::before { content: ''; display: block; width: 12px; height: 12px;
  border: solid #374151; border-width: 0 2.5px 2.5px 0; transform: rotate(135deg); margin-left: 3px; }
.pt-nav-title { flex: 1; text-align: center; font-weight: 700; color: #1f2430; padding-right: 26px; }
.pt-main { flex: 1; padding: 12px var(--h5-page-inline, 16px) 40px; }

/* 一级 Tab：合伙权益 / 邀请物料 */
.pt-toptab { display: flex; background: #fff; border-bottom: 1px solid #e5e7eb; margin-bottom: 12px; }
.pt-toptab button { flex: 1; border: none; border-bottom: 2px solid transparent; background: none; padding: 9px 0;
  font-size: 13px; color: #6b7280; font-weight: 500; }
.pt-toptab button.is-active { color: #c41e1e; font-weight: 700; border-bottom-color: #c41e1e; }

/* Banner（未认证） */
.pt-hero { border-radius: 14px; padding: 16px; margin-bottom: 12px; color: #fff; position: relative; overflow: hidden;
  background: linear-gradient(135deg,#8a2c06 0%,#c2410c 45%,#e06a12 100%); }
.pt-hero-title-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.pt-hero h2 { font-size: 17px; font-weight: 700; margin: 0 0 4px; }
.pt-hero-rule-link { flex-shrink: 0; border: none; border-bottom: 1px solid rgba(255,255,255,.85); background: none; color: #fff; padding: 0 0 1px; font-size: 10px; }
.pt-hero p { font-size: 11px; color: #ffe6c8; margin: 0; }
.pt-hero-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.pt-hero-tags span { background: rgba(255,255,255,.22); border: 1px solid rgba(255,255,255,.35);
  border-radius: 999px; padding: 3px 10px; font-size: 11px; }

/* 等级金卡（approved） */
.pt-level-card { border-radius: 14px; padding: 12px; margin-bottom: 12px;
  background: linear-gradient(135deg,#fff9dd 0%,#ffe8a3 100%); }
.pt-level-top { display: flex; align-items: flex-start; justify-content: space-between; }
.pt-level-actions { display: flex; align-items: center; gap: 6px; }
.pt-level-rule-link { border: none; border-bottom: 1px solid #92400e; background: none; color: #92400e; padding: 0 0 1px; font-size: 10px; }
.pt-level-avatar { width: 40px; height: 40px; border-radius: 50%; background: linear-gradient(135deg,#f59e0b,#92400e);
  display: flex; align-items: center; justify-content: center; color: #fff; font-size: 18px; flex-shrink: 0; }
.pt-level-cur-tag { display: inline-flex; align-items: center; gap: 3px; background: #e62e2e; color: #fff;
  font-size: 9px; font-weight: 700; padding: 1px 6px; border-radius: 999px; }
.pt-level-name { font-size: 16px; font-weight: 700; color: #92400e; margin-top: 3px; display: flex; align-items: center; gap: 6px; }
.pt-level-name .rate { font-size: 9px; background: linear-gradient(90deg,#fbbf24,#f59e0b); color: #fff;
  border-radius: 999px; padding: 2px 6px; font-weight: 500; }
.pt-level-btn { border: 1px solid #92400e; color: #92400e; background: rgba(255,255,255,.7); border-radius: 8px;
  padding: 5px 8px; font-size: 10px; font-weight: 500; flex-shrink: 0; }
.pt-level-nums { display: flex; align-items: flex-end; justify-content: space-between; margin-top: 8px; }
.pt-level-nums .lbl { font-size: 10px; color: rgba(146,64,14,.6); }
.pt-level-nums .val { font-size: 17px; font-weight: 700; color: #92400e; line-height: 1; margin-top: 2px; }
.pt-level-nums .r { text-align: right; }
.pt-level-nums .r .val { font-size: 12px; }
.pt-level-progress { height: 6px; border-radius: 999px; background: rgba(251,191,36,.25); overflow: hidden; margin-top: 8px; }
.pt-level-progress i { display: block; height: 100%; background: linear-gradient(90deg,#fbbf24,#f59e0b); border-radius: 999px; }
.pt-badge-row { display: flex; align-items: center; justify-content: space-between; margin-top: 8px; padding: 0 2px; }
.pt-badge-item { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.pt-badge-dot { width: 22px; height: 22px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  font-size: 9px; color: #fff; font-weight: 700; background: #d1d5db; }
.pt-badge-dot.is-cur { box-shadow: 0 0 0 2px #e62e2e; }
.pt-badge-dot.is-done { opacity: .85; }
.pt-badge-name { font-size: 8px; color: #9ca3af; }
.pt-badge-name.is-cur { color: #e62e2e; font-weight: 700; }
.pt-badge-sep { flex: 1; height: 2px; margin: 0 4px; border-radius: 2px; background: #e5e7eb; }
.pt-badge-sep.is-done { background: #fbbf24; }
.pt-badge-sep.is-cur { background: #e62e2e; }

/* 数据行 4 格 */
.pt-data-row { background: #fff; border-radius: 12px; padding: 10px; margin-bottom: 12px;
  box-shadow: 0 2px 12px rgba(0,0,0,.07); display: grid; grid-template-columns: repeat(4,1fr); gap: 4px; text-align: center; }
.pt-data-cell { position: relative; }
.pt-data-lbl { font-size: 10px; color: #6b7280; display: flex; align-items: center; justify-content: center; gap: 2px; }
.pt-data-val { font-size: 15px; font-weight: 700; color: #1f2430; margin-top: 3px; }
.pt-data-val.gold { color: #92400e; }
.pt-data-val .unit { font-size: 10px; font-weight: 400; color: #6b7280; }
.pt-data-clickable { cursor: pointer; }
.pt-data-q { color: #d1d5db; font-size: 10px; }
.pt-settle-pop { position: absolute; left: 50%; bottom: 100%; transform: translateX(-50%); margin-bottom: 8px;
  width: 200px; background: #1f2430; color: #fff; font-size: 10px; line-height: 1.5; border-radius: 8px;
  padding: 8px 10px; text-align: left; z-index: 30; }
/* 负余额待抵扣提示（B3：可提现恒显示 ¥0，不显示负数，此处告知差额） */
.pt-offset-tip { font-size: 9px; color: #dc2626; margin-top: 2px; white-space: nowrap; }
.pt-offset-tip-summary { font-size: 11px; text-align: center; margin: -4px 0 10px; padding: 4px 8px;
  background: #fef2f2; border-radius: 6px; }

/* 三重礼分段 */
.pt-gift-card { background: #fff; border-radius: 12px; margin-bottom: 12px; overflow: hidden; box-shadow: 0 2px 12px rgba(0,0,0,.07); }
.pt-seg { display: grid; grid-template-columns: repeat(3,1fr); gap: 6px; padding: 10px; background: rgba(237,242,252,.6); }
.pt-seg button { position: relative; border: none; background: #fff; color: #4b5563; padding: 7px 0; border-radius: 8px; font-size: 12px; }
.pt-seg button.is-active { background: linear-gradient(135deg,#e62e2e,#c41e1e); color: #fff; font-weight: 600;
  box-shadow: 0 2px 8px rgba(230,46,46,.3); }
.pt-seg-tip { position: absolute; right: 4px; top: 1px; font-size: 8px; color: #f59e0b; }
.pt-seg button.is-active .pt-seg-tip { color: #ffe9a8; }
.pt-gift-body { padding: 14px; }
.pt-gift-body h3 { font-size: 13px; font-weight: 700; color: #1f2430; margin: 0 0 10px; }

/* 一重礼：申请卡（4 态） */
.pt-apply-card { border-radius: 10px; padding: 12px; margin-bottom: 12px; position: relative; overflow: hidden; }
.pt-apply-card.st-none, .pt-apply-card.st-pending { background: linear-gradient(90deg,#e62e2e,#c41e1e); color: #fff; }
.pt-apply-card.st-rejected { background: #fff; border: 1px solid #e5e7eb; }
.pt-apply-card.st-approved { background: linear-gradient(90deg,rgba(253,224,71,.9),rgba(252,211,77,.9)); }
.pt-apply-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.pt-apply-title { font-size: 13px; font-weight: 700; }
.pt-apply-sub { font-size: 11px; margin-top: 3px; line-height: 1.4; opacity: .9; }
.pt-apply-btn-lv { flex-shrink: 0; border-radius: 8px; padding: 6px 8px; font-size: 10px; font-weight: 500; border: 1px solid; }
.st-none .pt-apply-btn-lv, .st-pending .pt-apply-btn-lv { background: rgba(255,255,255,.15); border-color: rgba(255,255,255,.4); color: #ffe6c8; }
.st-rejected .pt-apply-btn-lv, .st-approved .pt-apply-btn-lv { background: rgba(255,255,255,.7); border-color: #92400e; color: #92400e; }
.pt-apply-primary-btn { display: block; width: 100%; margin-top: 10px; background: #fff; color: #e62e2e;
  border: none; padding: 8px 0; border-radius: 8px; font-size: 12px; font-weight: 700; }
.pt-apply-pending-tip { margin-top: 10px; background: rgba(255,255,255,.2); border-radius: 8px; padding: 8px; text-align: center; font-size: 12px; }
.pt-apply-rejected-box { margin-top: 10px; background: #f9fafb; border-radius: 8px; padding: 8px 10px; }
.pt-apply-rejected-title { display: flex; align-items: center; gap: 8px; }
.pt-apply-x { width: 22px; height: 22px; border-radius: 50%; background: #ef4444; color: #fff; font-size: 11px;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.pt-apply-reject-reason { font-size: 10px; color: #6b7280; margin-top: 2px; }
.pt-apply-resubmit-btn { display: block; width: 100%; margin-top: 8px; background: linear-gradient(90deg,#e62e2e,#c41e1e);
  color: #fff; border: none; padding: 7px 0; border-radius: 8px; font-size: 11px; font-weight: 700; }
.pt-apply-approved-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.pt-apply-approved-left { display: flex; align-items: center; gap: 8px; min-width: 0; }
.pt-apply-crown { width: 34px; height: 34px; border-radius: 50%; background: #92400e; color: #fff; display: flex;
  align-items: center; justify-content: center; font-size: 16px; flex-shrink: 0; }
.pt-apply-approved-name { font-size: 13px; font-weight: 700; color: #92400e; }
.pt-apply-approved-sub { font-size: 10px; color: rgba(146,64,14,.7); }
.pt-apply-shopowner-tag { font-size: 10px; color: #92400e; background: rgba(255,255,255,.8); border-radius: 999px;
  padding: 2px 6px; display: inline-block; }
.pt-apply-link { display: block; margin-top: 3px; background: none; border: none; text-decoration: underline;
  font-size: 10px; color: #92400e; }

/* 券包 */
.pt-coupon-hint { display: flex; align-items: center; justify-content: space-between; background: #fef0f0;
  border-radius: 8px; padding: 8px 10px; margin-bottom: 8px; font-size: 12px; color: #374151; }
.pt-coupon-hint b { color: #e62e2e; }
.pt-coupon-hint .days { font-size: 11px; color: #6b7280; }
.pt-coupon-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 4px; }
.pt-coupon-card { border-radius: 10px; overflow: hidden; display: flex; background: #fff; border: 1px solid #f3c4c4; }
.pt-coupon-card.gold { border-color: #f2d998; }
.pt-coupon-card.dim { opacity: .7; filter: grayscale(.25); }
.pt-coupon-left { width: 40%; padding: 8px 6px; display: flex; flex-direction: column; align-items: center;
  justify-content: center; color: #fff; background: linear-gradient(135deg,#e62e2e,#c41e1e); text-align: center; }
.pt-coupon-card.gold .pt-coupon-left { background: linear-gradient(135deg,#d97706,#b45309); }
.pt-coupon-left b { font-size: 16px; line-height: 1; }
.pt-coupon-left small { font-size: 9px; margin-top: 4px; opacity: .9; }
.pt-coupon-right { flex: 1; padding: 8px 10px; display: flex; flex-direction: column; justify-content: center; }
.pt-coupon-right .name { font-size: 11px; color: #374151; font-weight: 500; }
.pt-coupon-right .note { font-size: 9px; color: #9ca3af; margin-top: 3px; }
.pt-coupon-empty { text-align: center; font-size: 12px; color: #9ca3af; padding: 20px 0; }
.pt-transfer-btn { display: block; width: 100%; margin-top: 10px; background: linear-gradient(90deg,#fbbf24,#f59e0b);
  color: #fff; border: none; padding: 9px 0; border-radius: 8px; font-size: 12px; font-weight: 600; }
.pt-note-box { border-radius: 8px; padding: 8px 10px; margin-top: 10px; font-size: 11px; line-height: 1.5; }
.pt-note-box.amber { background: #fffbeb; border: 1px solid #fde68a; color: #92400e; }
.pt-note-box.gray { background: #edf2fc; color: #6b7280; }

/* 二重礼阶梯 */
.pt-tier-row { display: flex; align-items: center; gap: 10px; background: #fff; border-radius: 12px;
  padding: 10px 12px; margin-bottom: 8px; box-shadow: 0 2px 12px rgba(0,0,0,.07); }
.pt-tier-dot { width: 32px; height: 32px; border-radius: 50%; flex-shrink: 0; display: flex; align-items: center;
  justify-content: center; color: #fff; font-size: 14px; }
.pt-tier-dot.done { background: #22c55e; } .pt-tier-dot.doing { background: linear-gradient(135deg,#fbbf24,#d97706); }
.pt-tier-dot.locked { background: #d1d5db; }
.pt-tier-body { flex: 1; min-width: 0; }
.pt-tier-title { font-size: 12px; font-weight: 500; color: #374151; }
.pt-tier-cond { font-size: 10px; color: #9ca3af; margin-top: 2px; }
.pt-tier-cond.warn { color: #d97706; }
.pt-tier-status { flex-shrink: 0; font-size: 10px; font-weight: 500; padding: 3px 8px; border-radius: 999px; }
.pt-tier-status.done { background: #f0fdf4; color: #16a34a; }
.pt-tier-status.doing { background: #fffbeb; color: #d97706; }
.pt-tier-status.locked { background: #f3f4f6; color: #9ca3af; }
.pt-tier-progress-wrap { margin-top: 10px; }
.pt-tier-progress-txt { display: flex; justify-content: space-between; font-size: 11px; color: #6b7280; margin-bottom: 4px; }
.pt-tier-progress-txt .hint { color: #d97706; }
.pt-tier-progress-bar { height: 6px; border-radius: 999px; background: rgba(251,191,36,.2); overflow: hidden; }
.pt-tier-progress-bar i { display: block; height: 100%; background: linear-gradient(90deg,#fbbf24,#f59e0b); }

/* 三重礼升级 */
.pt-basic-row { display: flex; justify-content: space-between; background: #edf2fc; border-radius: 8px;
  padding: 7px 10px; font-size: 12px; color: #374151; margin-bottom: 6px; }
.pt-upgrade-row { display: flex; align-items: center; gap: 8px; border-radius: 10px; padding: 8px 10px; margin-bottom: 6px; }
.pt-upgrade-bar { width: 4px; height: 30px; border-radius: 999px; flex-shrink: 0; }
.pt-upgrade-txt { flex: 1; font-size: 12px; color: #374151; }
.pt-upgrade-name { flex-shrink: 0; font-size: 11px; font-weight: 700; }
.pt-upgrade-cur-tag { font-size: 9px; color: #fff; background: linear-gradient(90deg,#92400e,#fbbf24);
  padding: 1px 6px; border-radius: 999px; flex-shrink: 0; }

/* 好友列表 / 收益明细返回：同 .pt-nav-back，几何箭头不用 ‹ 文字符号 */
.pt-sub-head { display: flex; align-items: center; margin-bottom: 10px; }
.pt-sub-head button { border: none; background: none; cursor: pointer; margin-right: 10px;
  font-size: 0; display: inline-flex; align-items: center; justify-content: center; padding: 4px; }
.pt-sub-head button::before { content: ''; display: block; width: 12px; height: 12px;
  border: solid #374151; border-width: 0 2.5px 2.5px 0; transform: rotate(135deg); margin-left: 3px; }
.pt-sub-head h3 { flex: 1; font-size: 15px; font-weight: 700; color: #1f2430; margin: 0; }
.pt-sub-head .cnt { font-size: 11px; color: #9ca3af; }
.pt-friend-stats { background: #fff; border-radius: 12px; padding: 10px; margin-bottom: 10px;
  display: flex; align-items: center; justify-content: space-around; text-align: center; box-shadow: 0 2px 12px rgba(0,0,0,.07); }
.pt-friend-stats .num { font-size: 15px; font-weight: 700; color: #1f2430; }
.pt-friend-stats .num.gold { color: #92400e; } .pt-friend-stats .num.red { color: #e62e2e; }
.pt-friend-stats .lbl { font-size: 9px; color: #9ca3af; margin-top: 2px; }
.pt-friend-stats .sep { width: 1px; height: 26px; background: #f3f4f6; }
.pt-friend-list { background: #fff; border-radius: 12px; padding: 10px; margin-bottom: 10px; box-shadow: 0 2px 12px rgba(0,0,0,.07); }
.pt-friend-item { background: rgba(237,242,252,.6); border-radius: 10px; padding: 10px; display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.pt-friend-item:last-child { margin-bottom: 0; }
.pt-friend-avatar { width: 34px; height: 34px; border-radius: 50%; background: linear-gradient(135deg,#fbbf24,#d97706);
  color: #fff; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; flex-shrink: 0; }
.pt-friend-body { flex: 1; min-width: 0; }
.pt-friend-name-row { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.pt-friend-name { font-size: 12px; font-weight: 500; color: #1f2430; }
.pt-friend-tag { font-size: 9px; padding: 2px 6px; border-radius: 999px; }
.pt-friend-tag.paid { background: #f0fdf4; color: #16a34a; border: 1px solid #bbf7d0; }
.pt-friend-tag.unpaid { background: #f3f4f6; color: #9ca3af; }
.pt-friend-tag.bound { background: #f0f9ff; color: #0284c7; border: 1px solid #bae6fd; }
.pt-friend-meta { font-size: 10px; color: #9ca3af; margin-top: 4px; display: flex; flex-wrap: wrap; gap: 8px; }
.pt-friend-profit { text-align: right; flex-shrink: 0; }
.pt-friend-profit .lbl { font-size: 9px; color: #9ca3af; }
.pt-friend-profit .val { font-size: 13px; font-weight: 700; color: #92400e; margin-top: 3px; }
.pt-empty-tip { background: #fff; border-radius: 12px; padding: 12px; text-align: center; font-size: 12px; color: #9ca3af;
  box-shadow: 0 2px 12px rgba(0,0,0,.07); margin-bottom: 16px; }

/* 收益明细 */
.pt-profit-summary { border-radius: 12px; padding: 14px; margin-bottom: 10px;
  background: linear-gradient(135deg,#fff9dd 0%,#ffe8a3 100%); }
.pt-profit-summary-top { display: flex; align-items: center; justify-content: space-between; font-size: 10px; color: rgba(146,64,14,.7); }
.pt-profit-summary-top span:last-child { background: rgba(255,255,255,.7); border-radius: 999px; padding: 2px 6px; }
.pt-profit-grid3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin-top: 10px; text-align: center; }
.pt-profit-grid3 > div { background: rgba(255,255,255,.6); border-radius: 8px; padding: 8px 0; }
.pt-profit-grid3 .lbl { font-size: 10px; color: rgba(146,64,14,.6); }
.pt-profit-grid3 .val { font-size: 15px; font-weight: 700; color: #92400e; margin-top: 2px; }
.pt-withdraw-btn { display: block; width: 100%; margin-top: 12px; background: linear-gradient(90deg,#e62e2e,#c41e1e);
  color: #fff; border: none; padding: 10px 0; border-radius: 8px; font-size: 13px; font-weight: 600; }
.pt-profit-list-card { background: #fff; border-radius: 12px; padding: 12px; box-shadow: 0 2px 12px rgba(0,0,0,.07); }
.pt-profit-list-title { font-size: 12px; font-weight: 500; color: #374151; margin-bottom: 8px; }
.pt-profit-item { display: flex; align-items: center; gap: 8px; border: 1px solid #f3f4f6; border-radius: 8px; padding: 8px; margin-bottom: 8px; }
.pt-profit-item:last-child { margin-bottom: 0; }
.pt-profit-ic { width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 11px; flex-shrink: 0; }
.pt-profit-ic.add { background: linear-gradient(135deg,#22c55e,#16a34a); }
.pt-profit-ic.sub, .pt-profit-ic.gift { background: linear-gradient(135deg,#fb923c,#f97316); }
.pt-profit-item-body { flex: 1; min-width: 0; }
.pt-profit-item-desc { font-size: 11px; color: #374151; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pt-profit-item-time { font-size: 9px; color: #9ca3af; margin-top: 2px; }
.pt-profit-item-right { text-align: right; flex-shrink: 0; }
.pt-profit-amount { font-size: 13px; font-weight: 700; }
.pt-profit-amount.add { color: #92400e; } .pt-profit-amount.sub { color: #6b7280; }
.pt-profit-gift-tag { font-size: 10px; font-weight: 700; color: #92400e; background: #fffbeb; border: 1px solid #fde68a;
  border-radius: 999px; padding: 1px 8px; display: inline-block; }
.pt-profit-status { font-size: 9px; padding: 1px 6px; border-radius: 999px; display: inline-block; margin-top: 3px; }
.pt-profit-status.pending { background: #fff7ed; color: #ea580c; }
.pt-profit-status.settled, .pt-profit-status.gift { background: #f0fdf4; color: #16a34a; }
.pt-profit-status.void { background: #f3f4f6; color: #9ca3af; }
.pt-load-more { text-align: center; padding: 10px 0; font-size: 12px; color: #92400e; }

/* 邀请物料 */
.pt-link-box { background: #fff; border-radius: 12px; padding: 12px; margin-bottom: 10px; box-shadow: 0 2px 12px rgba(0,0,0,.07); }
.pt-link-box .lbl { font-size: 10px; color: #6b7280; margin-bottom: 6px; }
.pt-link-row { display: flex; gap: 8px; }
.pt-link-row input { flex: 1; background: #edf2fc; border: 1px solid #e5e7eb; border-radius: 8px; padding: 8px 10px; font-size: 11px; color: #374151; }
.pt-copy-btn { flex-shrink: 0; background: #92400e; color: #fff; border: none; padding: 8px 14px; border-radius: 8px; font-size: 11px; }
.pt-qr-row { display: flex; align-items: center; gap: 10px; margin-top: 10px; }
.pt-qr-canvas { width: 64px; height: 64px; background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; padding: 4px; flex-shrink: 0; }
.pt-qr-txt { flex: 1; }
.pt-qr-txt .t { font-size: 11px; color: #374151; }
.pt-qr-txt .d { font-size: 10px; color: #9ca3af; margin-top: 2px; line-height: 1.4; }
.pt-save-qr-btn { flex-shrink: 0; background: linear-gradient(90deg,#e62e2e,#c41e1e); color: #fff; border: none;
  padding: 6px 8px; border-radius: 8px; font-size: 10px; font-weight: 500; }
.pt-mat-tabs { background: #fff; border-radius: 12px; overflow: hidden; margin-bottom: 20px; box-shadow: 0 2px 12px rgba(0,0,0,.07); }
.pt-mat-subtab { display: flex; border-bottom: 1px solid #f3f4f6; }
.pt-mat-subtab button { flex: 1; border: none; background: none; padding: 10px 0; font-size: 13px; color: #6b7280; }
.pt-mat-subtab button.is-active { border-bottom: 2px solid #fbbf24; color: #92400e; font-weight: 500; }
.pt-mat-body { padding: 14px; }

.pt-scene-list { display: flex; flex-direction: column; gap: 8px; }
.pt-scene-item { background: #edf2fc; border-radius: 12px; padding: 10px; }
.pt-scene-top { display: flex; align-items: center; gap: 8px; }
.pt-scene-ic { width: 30px; height: 30px; border-radius: 8px; display: flex; align-items: center; justify-content: center;
  font-size: 15px; flex-shrink: 0; background: #f3e8ff; }
.pt-scene-name { font-size: 12px; font-weight: 500; color: #1f2430; }
.pt-scene-desc { font-size: 10px; color: #9ca3af; margin-top: 2px; }
.pt-scene-add-btn { flex-shrink: 0; background: #a855f7; color: #fff; border: none; padding: 5px 8px; border-radius: 8px; font-size: 10px; }
.pt-scene-link-row { display: flex; gap: 8px; margin-top: 8px; }
.pt-scene-link-row input { flex: 1; background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; padding: 6px 9px; font-size: 10px; color: #4b5563; }
.pt-scene-placeholder { margin-top: 8px; background: #fff; border: 1px dashed #d8b4fe; border-radius: 8px; padding: 8px 10px; font-size: 10px; color: #9ca3af; }

/* 弹窗（通用） */
.pt-modal-mask { position: fixed; inset: 0; background: rgba(0,0,0,.65); z-index: 90; }
.pt-modal { position: fixed; inset: 0; z-index: 91; display: flex; align-items: center; justify-content: center; padding: 12px; }
.pt-modal-box { position: relative; background: #fff; border-radius: 14px; max-width: 420px; width: 100%;
  max-height: 85vh; overflow-y: auto; padding: 18px; }
.pt-modal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 4px; }
.pt-modal-head h3 { font-size: 15px; font-weight: 700; color: #1f2430; margin: 0; }
.pt-modal-close { border: none; background: none; font-size: 18px; color: #9ca3af; line-height: 1; }
.pt-modal-desc { font-size: 11px; color: #9ca3af; margin: 6px 0 14px; line-height: 1.5; }
.pt-form-item { margin-bottom: 14px; }
.pt-form-label { font-size: 12px; color: #374151; margin-bottom: 6px; }
.pt-form-label .req { color: #e62e2e; }
.pt-radio2 { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.pt-radio2 button { border: 1px solid #e5e7eb; color: #4b5563; border-radius: 8px; padding: 8px 0; font-size: 12px; font-weight: 500; background: #fff; }
.pt-radio2 button.is-active { border-color: #e62e2e; background: #fef0f0; color: #e62e2e; }
.pt-form-hint { font-size: 10px; color: #9ca3af; margin-top: 4px; }
.pt-input, .pt-textarea { width: 100%; background: #edf2fc; border: 1px solid #e5e7eb; border-radius: 8px;
  padding: 9px 10px; font-size: 13px; color: #374151; box-sizing: border-box; }
.pt-textarea { resize: none; }
.pt-submit-btn { display: block; width: 100%; margin-top: 6px; background: linear-gradient(90deg,#e62e2e,#c41e1e);
  color: #fff; border: none; padding: 10px 0; border-radius: 8px; font-size: 13px; font-weight: 600; }
.pt-submit-btn:disabled { background: #d1d5db; color: #9ca3af; }
.pt-submit-note { font-size: 10px; color: #9ca3af; text-align: center; margin-top: 6px; }

.pt-pyramid { display: flex; flex-direction: column; align-items: center; gap: 6px; margin: 4px 0 14px; }
.pt-pyramid-layer { text-align: center; padding: 8px 0; border-radius: 4px; color: #fff; position: relative;
  clip-path: polygon(6% 0, 94% 0, 100% 100%, 0 100%); }
.pt-pyramid-layer.is-cur { box-shadow: 0 0 0 2px #e62e2e, 0 6px 18px rgba(230,46,46,.35); transform: scale(1.03); }
.pt-pyramid-layer .t { font-size: 12px; font-weight: 700; }
.pt-pyramid-layer .d { font-size: 10px; opacity: .9; margin-top: 1px; }
.pt-pyramid-tag { position: absolute; top: 50%; transform: translateY(-50%); font-size: 9px; font-weight: 700;
  padding: 2px 6px; border-radius: 999px; white-space: nowrap; }
.pt-pyramid-tag.owner { left: 6px; background: #d97706; color: #fff; }
.pt-pyramid-tag.cur { right: 6px; background: #e62e2e; color: #fff; }
.pt-pyramid-close-btn { display: block; width: 100%; margin-top: 4px; background: linear-gradient(90deg,#fbbf24,#f59e0b);
  color: #fff; border: none; padding: 9px 0; border-radius: 8px; font-size: 13px; font-weight: 600; }

.pt-step-label { font-size: 12px; font-weight: 500; color: #374151; margin: 0 0 6px; }
.pt-step-label b { color: #92400e; margin-right: 4px; }
.pt-transfer-coupon-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 14px; }
.pt-transfer-coupon-opt { border: 1px solid #e5e7eb; border-radius: 8px; padding: 9px; display: flex; gap: 8px; align-items: center; }
.pt-transfer-coupon-opt.is-active { border-color: #92400e; background: #fffbeb; }
.pt-transfer-coupon-opt .amt { flex-shrink: 0; background: linear-gradient(90deg,#fbbf24,#f59e0b); color: #fff;
  font-size: 11px; padding: 3px 7px; border-radius: 6px; }
.pt-transfer-mode-tabs { display: flex; background: #edf2fc; border-radius: 8px; padding: 3px; margin-bottom: 8px; }
.pt-transfer-mode-tabs button { flex: 1; border: none; background: none; padding: 6px 0; font-size: 11px; color: #6b7280; border-radius: 6px; }
.pt-transfer-mode-tabs button.is-active { background: #fff; color: #92400e; font-weight: 500; box-shadow: 0 1px 4px rgba(0,0,0,.08); }
.pt-transfer-friend-item { border: 1px solid #e5e7eb; border-radius: 8px; padding: 8px; display: flex; align-items: center;
  justify-content: space-between; margin-bottom: 6px; }
.pt-transfer-friend-item.is-active { border-color: #92400e; background: #fffbeb; }
.pt-transfer-confirm-btn { display: block; width: 100%; margin-top: 4px; border: none; padding: 10px 0;
  border-radius: 8px; font-size: 13px; font-weight: 600; background: #f3f4f6; color: #9ca3af; }
.pt-transfer-confirm-btn.ready { background: linear-gradient(90deg,#e62e2e,#c41e1e); color: #fff; }
.pt-transfer-hint { text-align: center; font-size: 10px; color: #9ca3af; margin-top: 6px; }

.pt-success-box { text-align: center; padding: 6px 0; }
.pt-success-check { width: 52px; height: 52px; margin: 0 auto 10px; border-radius: 50%; background: #dcfce7;
  color: #22c55e; display: flex; align-items: center; justify-content: center; font-size: 26px; }
.pt-success-title { font-size: 15px; font-weight: 700; color: #1f2430; }
.pt-success-desc { font-size: 12px; color: #6b7280; margin-top: 8px; line-height: 1.6; }
.pt-success-note { background: #edf2fc; border-radius: 8px; padding: 8px 10px; font-size: 10px; color: #6b7280; margin-top: 12px; }
.pt-success-done-btn { display: block; width: 100%; margin-top: 12px; background: linear-gradient(90deg,#e62e2e,#c41e1e);
  color: #fff; border: none; padding: 10px 0; border-radius: 8px; font-size: 13px; font-weight: 600; }

.pt-rule-text { font-size: 12px; color: #374151; line-height: 1.7; }
.pt-rule-text p { margin: 0 0 8px; }

.pt-kyc-form { }
.pt-kyc-tip { background: #fffbeb; border: 1px solid #fde68a; border-radius: 8px; padding: 8px 10px; font-size: 11px;
  color: #92400e; line-height: 1.5; margin-bottom: 12px; }
.pt-plan-item { display: flex; align-items: center; gap: 10px; background: #edf2fc; border-radius: 12px; padding: 10px; margin-bottom: 6px; }
.pt-plan-ic { width: 34px; height: 34px; border-radius: 8px; background: #f3e8ff; color: #a855f7; display: flex;
  align-items: center; justify-content: center; font-size: 15px; flex-shrink: 0; }
.pt-plan-item .name { font-size: 12px; font-weight: 500; color: #1f2430; }
.pt-plan-item .desc { font-size: 10px; color: #9ca3af; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pt-plan-arrow { color: #d1d5db; flex-shrink: 0; }

@media (max-width: 340px) {
  .pt-data-row { grid-template-columns: repeat(4,1fr); gap: 2px; }
  .pt-data-val { font-size: 13px; }
}
