/* ================= 打手端（移动优先） ================= */
.booster-body{background:var(--bg);padding-bottom:0}
.booster-body .empty{padding:26px;text-align:center;color:var(--dim-2);font-size:13px}

.b-app{
  max-width:560px;margin:0 auto;min-height:100vh;
  padding:0 14px calc(76px + env(safe-area-inset-bottom));
  display:flex;flex-direction:column;
}

/* 顶部 */
.b-head{
  position:sticky;top:0;z-index:20;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:14px 0 12px;margin-bottom:12px;
  background:rgba(8,10,18,.92);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.b-user b{display:block;font-size:16px}
.b-user span{font-size:12px;color:var(--dim-2)}
.b-wallet{
  text-align:right;padding:6px 12px;border-radius:11px;
  background:linear-gradient(135deg,rgba(124,92,255,.18),rgba(34,211,238,.1));
  border:1px solid rgba(124,92,255,.32);
}
.b-wallet span{display:block;font-size:10.5px;color:#b9c0d8}
.b-wallet b{font-size:16px;color:#fff;font-weight:800}
.b-wallet em{font-style:normal}
.b-head-right{display:flex;align-items:center;gap:8px}

/* 上线开关 */
.online-btn{
  display:flex;align-items:center;gap:6px;
  padding:7px 12px;border-radius:999px;font-size:12px;font-weight:600;
  background:rgba(255,255,255,.05);border:1px solid var(--line);color:var(--dim);
  transition:.18s;
}
.online-btn i{width:7px;height:7px;border-radius:50%;background:#6b7490;display:block}
.online-btn.on{
  background:rgba(34,197,94,.14);border-color:rgba(34,197,94,.42);color:#8bf0b0;
}
.online-btn.on i{background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.18);animation:pulse 1.8s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.45}}

/* 等级 / 保证金 / 实名 小徽章 */
.b-badges{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}
.b-badges span{
  font-size:11px;padding:3px 9px;border-radius:6px;
  background:rgba(255,255,255,.04);border:1px solid var(--line);color:var(--dim);
}
.b-badges span.ok{background:rgba(34,197,94,.12);border-color:rgba(34,197,94,.3);color:#8bf0b0}
.b-badges span.warn{background:rgba(255,193,7,.12);border-color:rgba(255,193,7,.3);color:#ffd54f}
.b-badges span.lv{background:rgba(255,213,79,.14);border-color:rgba(255,213,79,.34);color:#ffe082}

/* 数据卡 */
.b-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:14px}
.b-kpi{
  padding:11px 10px;border-radius:12px;text-align:center;
  background:var(--panel);border:1px solid var(--line);
}
.b-kpi span{display:block;font-size:10.5px;color:var(--dim-2);margin-bottom:3px}
.b-kpi b{font-size:16.5px;font-weight:800;color:#fff}
.b-kpi b.hl{color:#c9bcff}

.b-main{flex:1}
.b-pane-head{display:flex;align-items:center;justify-content:space-between;margin:16px 0 12px}
.b-pane > .b-pane-head:first-child{margin-top:0}
.b-pane-head h2{font-size:15px}
.b-filters{margin-bottom:12px}

/* 订单卡 */
.b-card{
  padding:14px;border-radius:14px;margin-bottom:11px;
  background:linear-gradient(165deg,var(--panel-2),var(--panel));
  border:1px solid var(--line);
}
.b-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.b-card-top .g{font-size:11px;padding:2px 8px;border-radius:6px;background:rgba(34,211,238,.12);color:#7de3f4;border:1px solid rgba(34,211,238,.24)}
.b-card h3{font-size:14.5px;margin-bottom:6px}
.b-card .meta{font-size:12px;color:var(--dim-2);line-height:1.75}
.b-card .meta b{color:#cfd5e8;font-weight:600}
.b-card-foot{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin-top:11px;padding-top:11px;border-top:1px dashed var(--line);
}
.b-my-share{font-size:12px;color:var(--dim-2)}
.b-my-share b{display:block;font-size:17px;font-weight:800;color:#8bf0b0}
.b-btn{
  padding:9px 16px;border-radius:10px;border:0;font-size:13px;font-weight:600;
  background:linear-gradient(135deg,var(--brand),#a855f7);color:#fff;
  box-shadow:0 6px 18px rgba(124,92,255,.3);
}
.b-btn:active{transform:translateY(1px)}
.b-btn.ghost{background:rgba(255,255,255,.06);border:1px solid var(--line-2);color:var(--txt);box-shadow:none}
.b-btn:disabled{opacity:.5;box-shadow:none}

/* 进度时间线 */
.b-timeline{margin:4px 0 14px}
.b-log{
  display:flex;gap:10px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.05);
}
.b-log:last-child{border-bottom:0}
.b-log-dot{
  flex:0 0 auto;width:7px;height:7px;border-radius:50%;margin-top:6px;
  background:linear-gradient(135deg,var(--brand),var(--brand-2));
}
.b-log-body{flex:1;min-width:0}
.b-log-body p{font-size:12.5px;color:#cfd5e8;word-break:break-word}
.b-log-body time{font-size:11px;color:var(--dim-2)}
.b-log img{
  display:block;margin-top:7px;max-width:100%;width:120px;border-radius:8px;
  border:1px solid var(--line-2);cursor:zoom-in;
}

/* 上传 */
.b-upload{
  display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:11px;
  border:1px dashed var(--line-2);background:rgba(255,255,255,.03);
  font-size:12.5px;color:var(--dim);cursor:pointer;
}
.b-upload input{display:none}
.b-preview{margin-top:9px;display:none}
.b-preview img{width:96px;border-radius:8px;border:1px solid var(--line-2)}
.b-preview span{display:block;font-size:11px;color:var(--dim-2);margin-top:4px}

/* 底部 Tab */
.b-tabs{
  position:fixed;left:0;right:0;bottom:0;z-index:40;
  max-width:560px;margin:0 auto;
  display:grid;grid-template-columns:repeat(4,1fr);
  background:rgba(10,13,22,.96);backdrop-filter:blur(14px);
  border-top:1px solid var(--line);
  padding-bottom:env(safe-area-inset-bottom);
}
.b-tab{
  display:flex;flex-direction:column;align-items:center;gap:3px;
  padding:9px 0 10px;background:transparent;border:0;
  font-size:10.5px;color:var(--dim-2);
}
.b-tab i{font-style:normal;font-size:15px;line-height:1}
.b-tab.on{color:#c9bcff}
.b-tab.on i{color:#a78bfa}

/* 弹窗内的分区 */
.b-section{margin-bottom:14px}
.b-section > h4{font-size:12px;color:var(--dim-2);margin-bottom:7px;font-weight:600}
.b-info{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.b-info .d{font-size:11.5px;color:var(--dim-2)}
.b-info .d b{display:block;color:var(--txt);font-size:13px;font-weight:600;margin-top:1px;word-break:break-all}
.b-info .d.full{grid-column:1/-1}

/* 收益列表 */
.b-earn-row{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:11px 0;border-bottom:1px solid rgba(255,255,255,.05);font-size:12.5px;
}
.b-earn-row:last-child{border-bottom:0}
.b-earn-row .l b{display:block;color:#cfd5e8;font-size:13px;font-weight:600}
.b-earn-row .l span{color:var(--dim-2);font-size:11px}
.b-earn-row .r{text-align:right;white-space:nowrap}
.b-earn-row .r b{color:#8bf0b0;font-size:14.5px}
.b-earn-row .r span{display:block;font-size:11px;color:var(--dim-2)}
.st-pending{color:#ffd54f}
.st-paid{color:#7ee2a3}
.st-rejected{color:#ffa8b6}

.b-note{
  padding:10px 12px;border-radius:10px;font-size:12px;line-height:1.7;
  background:rgba(124,92,255,.09);border:1px solid rgba(124,92,255,.24);color:#c3c9e0;
}

/* ---------- 会员中心：钱包 / 实名 / 邀请 ---------- */
.wallet-hero{
  padding:18px;border-radius:14px;text-align:center;
  background:linear-gradient(135deg,rgba(124,92,255,.22),rgba(34,211,238,.12));
  border:1px solid rgba(124,92,255,.34);
}
.wallet-hero span{display:block;font-size:12px;color:#b9c0d8}
.wallet-hero b{display:block;font-size:32px;font-weight:800;color:#fff;margin:6px 0 4px;letter-spacing:-.02em}
.wallet-hero em{font-style:normal}
.wallet-hero i{font-style:normal;font-size:11.5px;color:#8bf0b0}

.qr-chips{display:flex;gap:8px;flex-wrap:wrap}
.qr-chips button{
  flex:1;min-width:64px;padding:9px 0;border-radius:10px;font-size:13px;
  background:rgba(255,255,255,.04);border:1px solid var(--line);color:var(--txt);
}
.qr-chips button:hover{background:rgba(124,92,255,.18);border-color:rgba(124,92,255,.42)}

.invite-box{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;background:rgba(255,255,255,.03);border:1px dashed var(--line-2)}
.invite-box span{display:block;font-size:11px;color:var(--dim-2)}
.invite-box b{font-size:18px;letter-spacing:.16em;color:#ffd54f}

.verify-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.verify-row span{font-size:12px;color:var(--dim-2);margin-right:8px}
.verify-info{font-size:12.5px;color:#cfd5e8;font-family:ui-monospace,Menlo,Consolas,monospace}

/* ---------- 实名照片上传 ---------- */
.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.photo-item{
  position:relative;display:block;aspect-ratio:4/3;border-radius:12px;overflow:hidden;
  background:rgba(255,255,255,.03);border:1px dashed var(--line-2);
  text-decoration:none;color:inherit;
}
.photo-item.pick{cursor:pointer;transition:.18s}
.photo-item.pick:hover{border-color:rgba(124,92,255,.5);background:rgba(124,92,255,.08)}
.photo-item.loading::after{
  content:'压缩中...';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(8,10,18,.72);font-size:12px;color:#c9bcff;
}
.photo-item input{display:none}
.photo-item .ph-empty{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  text-align:center;padding:8px;
}
.photo-item .ph-empty i{font-style:normal;font-size:22px;color:#8b93ad;line-height:1}
.photo-item .ph-empty span{font-size:12.5px;color:var(--txt)}
.photo-item .ph-empty em{font-style:normal;font-size:10.5px;color:var(--dim-2);line-height:1.4}
.photo-item img{width:100%;height:100%;object-fit:cover;display:block}
.photo-item.has-photo{border-style:solid;border-color:rgba(124,92,255,.4)}
.photo-item > span{
  position:absolute;left:0;right:0;bottom:0;padding:4px 0;text-align:center;
  font-size:10.5px;color:#fff;background:linear-gradient(0deg,rgba(0,0,0,.72),transparent);
}
.check-row{display:flex;align-items:flex-start;gap:8px;font-size:12.5px;color:var(--dim);line-height:1.5}
.check-row input{margin-top:2px;width:16px;height:16px;accent-color:#7c5cff;flex:0 0 auto}
.check-row span{color:#cfd5e8}
