/* ── 变量 & 重置 ─────────────────────────────────────────────────── */
:root {
  --bg: #0a0a0a;
  --card: #161616;
  --card2: #1e1e1e;
  --neon: #ccff00;
  --neon2: #d4ff33;
  --neon-glow: rgba(204,255,0,0.35);
  --purple: #2a2a2a;
  --purple2: #888888;
  --dim: #555555;
  --dim2: #aaaaaa;
  --white: #ffffff;
  --gold: #f5a623;
  --silver: #94a3b8;
  --bronze: #cd7c2f;
  --red: #f87171;
  --green: #4ade80;
  --border: rgba(255,255,255,0.07);
  --border-neon: rgba(204,255,0,0.3);
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%;background:var(--bg);color:var(--white);font-family:-apple-system,'PingFang SC','Helvetica Neue','Microsoft YaHei',sans-serif;overflow:hidden}
body{background-image:none}
input,button{font-family:inherit;outline:none;border:none}
img{display:block;max-width:100%}

/* ── 页面容器 ─────────────────────────────────────────────────────── */
.page{position:fixed;inset:0;display:none;flex-direction:column;background:var(--bg);overflow:hidden;z-index:1}
.page.active{display:flex}
.page.sub-page{z-index:10}
.scroll-main{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}
.scroll-main::-webkit-scrollbar{display:none}
.bottom-safe{height:80px;flex-shrink:0}

/* ── 导航栏 ───────────────────────────────────────────────────────── */
.nav{display:flex;align-items:center;padding:12px 14px 10px;background:var(--bg);flex-shrink:0;position:relative;z-index:2}
.nav-title{flex:1;text-align:center;font-size:16px;font-weight:700;color:var(--white)}
.nav-back{width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer}
.nav-back-icon{font-size:22px;color:var(--dim2);line-height:1}
.nav-placeholder{width:36px}
.nav-logo-img{height:60px;width:auto}
.nav-brand{display:flex;align-items:center}
.nav-right{display:flex;align-items:center;gap:10px}
.nav-icon-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative}
.notif-badge{position:absolute;top:2px;right:2px;width:8px;height:8px;background:#ef4444;border-radius:50%}

/* ── Tab 导航栏 ───────────────────────────────────────────────────── */
#tab-bar{position:fixed;bottom:0;left:0;right:0;z-index:100;background:#111111;border-top:1px solid rgba(255,255,255,0.07);display:none;align-items:flex-end;padding-bottom:env(safe-area-inset-bottom)}
#tab-bar.show{display:flex}
.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;padding:8px 0 6px;cursor:pointer;transition:all .2s}
.tab-svg{width:22px;height:22px;color:var(--dim2);transition:color .2s;flex-shrink:0}
.tab-label{font-size:10px;color:var(--dim2);line-height:1}
.tab-item.active .tab-svg,.tab-item.active .tab-label{color:var(--neon)}

/* ── Toast ────────────────────────────────────────────────────────── */
#toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:rgba(0,0,0,.85);color:#fff;padding:12px 24px;border-radius:10px;font-size:14px;z-index:9999;display:none;max-width:260px;text-align:center;pointer-events:none}
#toast.show{display:block}

/* ── 通用底部弹窗（showSheet） ────────────────────────────────────── */
#g-sheet{position:fixed;inset:0;z-index:5000;display:none;align-items:flex-end}
.gs-mask{position:absolute;inset:0;background:rgba(0,0,0,.55)}
.gs-box{position:relative;width:100%;background:#1c1c1c;border-radius:20px 20px 0 0;padding:0 0 calc(env(safe-area-inset-bottom) + 8px);z-index:1;max-height:70vh;display:flex;flex-direction:column}
.gs-title{padding:18px 20px 12px;font-size:14px;font-weight:700;color:rgba(255,255,255,.4);border-bottom:1px solid rgba(255,255,255,.06)}
.gs-list{overflow-y:auto;flex:1}
.gs-item{padding:16px 20px;font-size:15px;font-weight:600;color:#fff;cursor:pointer;border-bottom:1px solid rgba(255,255,255,.04)}
.gs-item:active{background:rgba(255,255,255,.06)}

/* ── 弹窗遮罩 ─────────────────────────────────────────────────────── */
.mask{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:200;display:flex;align-items:flex-end}
.modal-panel{background:#1a1a1a;border-radius:20px 20px 0 0;width:100%;padding:20px 20px 40px;max-height:70vh;overflow-y:auto}
.modal-title{font-size:16px;font-weight:700;color:var(--white);margin-bottom:16px;text-align:center}
.modal-close{position:absolute;top:16px;right:16px;font-size:20px;color:var(--dim);cursor:pointer}
.modal-btn{width:100%;padding:14px;border-radius:12px;background:var(--neon);color:#000;font-size:15px;font-weight:800;cursor:pointer;text-align:center;margin-top:12px}
.modal-btn-sec{background:rgba(204,255,0,.1);color:var(--neon);border:1px solid var(--border-neon)}

/* ── 通用卡片 ─────────────────────────────────────────────────────── */
.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px}
.card-neon{border-color:var(--border-neon);box-shadow:0 0 16px rgba(204,255,0,.06)}
.empty-wrap{padding:40px 20px;text-align:center;color:var(--dim);font-size:14px}

/* ── Loading ─────────────────────────────────────────────────────── */
.loading{text-align:center;padding:30px;color:var(--dim);font-size:13px}
@keyframes spin{to{transform:rotate(360deg)}}
.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--neon);border-radius:50%;animation:spin .8s linear infinite;display:inline-block;margin-right:8px;vertical-align:middle}

/* ══════════════════════════════════════════════════════════════════ */
/*  登录页                                                            */
/* ══════════════════════════════════════════════════════════════════ */
#pg-login{justify-content:center;align-items:center;padding:0 28px}
.login-header{text-align:center;margin-bottom:40px}
.login-suits{font-size:18px;letter-spacing:8px;color:var(--neon);margin-bottom:12px}
.login-brand{font-size:52px;font-weight:900;letter-spacing:.1em;color:var(--white);text-shadow:0 0 20px var(--neon),0 0 60px var(--neon-glow);font-family:Impact,'Arial Black',sans-serif;line-height:1}
.login-brand span{color:var(--neon)}
.login-sub{font-size:11px;letter-spacing:.35em;color:var(--dim2);margin-top:8px;text-transform:uppercase}
.login-neon-line{height:2px;background:linear-gradient(90deg,transparent,var(--neon),transparent);max-width:200px;margin:16px auto 0;box-shadow:0 0 10px var(--neon-glow)}
.login-card{background:rgba(18,18,18,.98);border:1px solid var(--border-neon);border-radius:18px;padding:28px 24px;width:100%;max-width:400px;box-shadow:0 0 30px rgba(204,255,0,.08)}
.login-label{font-size:12px;color:var(--dim2);margin-bottom:10px;letter-spacing:.05em}
.login-input-wrap{position:relative;margin-bottom:16px}
.login-input{width:100%;padding:14px 14px 14px 44px;background:rgba(255,255,255,.05);border:1.5px solid rgba(204,255,0,.35);border-radius:10px;color:var(--white);font-size:16px;letter-spacing:.06em;transition:border-color .2s,box-shadow .2s}
.login-input::placeholder{color:rgba(255,255,255,.3)}
.login-input:focus{border-color:var(--neon);box-shadow:0 0 12px var(--neon-glow)}
.login-input-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:18px}
.login-btn{width:100%;padding:15px;background:var(--neon);border-radius:10px;color:#000;font-size:16px;font-weight:800;cursor:pointer;letter-spacing:.1em;transition:all .2s;box-shadow:0 0 20px var(--neon-glow);text-align:center}
.login-btn:active{transform:scale(.98)}
.login-hint{font-size:12px;color:var(--dim);margin-top:16px;text-align:center;line-height:1.6}

/* ══════════════════════════════════════════════════════════════════ */
/*  首页                                                              */
/* ══════════════════════════════════════════════════════════════════ */
.home-nav{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 10px;background:var(--bg);flex-shrink:0}

/* 用户信息卡 */
.profile-card{margin:4px 12px 8px;background:#111;border-radius:16px;border:1px solid rgba(255,255,255,0.08);padding:14px;position:relative;overflow:hidden}
.profile-card::before{content:'';position:absolute;top:-40px;right:-20px;width:120px;height:120px;background:radial-gradient(circle,rgba(204,255,0,.06) 0%,transparent 70%);pointer-events:none}
.profile-row1{display:flex;align-items:flex-start;gap:10px;margin-bottom:14px}
.avatar-wrap{position:relative;flex-shrink:0;cursor:pointer}
.avatar{width:58px;height:58px;border-radius:50%;background:linear-gradient(135deg,#2a2a2a 0%,#1a1a1a 100%);border:2px solid rgba(255,255,255,0.15);display:flex;align-items:center;justify-content:center;box-shadow:0 0 10px rgba(0,0,0,.5);overflow:hidden}
.avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.avatar-text{font-size:11px;font-weight:900;color:var(--dim2);letter-spacing:.5px}
.avatar-edit{position:absolute;bottom:0;right:0;width:18px;height:18px;background:#222;border-radius:50%;border:1px solid rgba(255,255,255,0.15);display:flex;align-items:center;justify-content:center;font-size:8px;color:var(--dim2)}
.profile-info{flex:1;min-width:0}
.profile-name-row{display:flex;align-items:center;gap:5px;margin-bottom:6px}
.profile-name{font-size:16px;font-weight:700}
.profile-verified{color:#4ade80;font-size:14px}
.profile-badges{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:5px}
.pbadge{padding:2px 7px;border-radius:10px;font-size:10px;font-weight:600}
.pbadge-member{border:1px solid #d97706;color:#d97706}
.pbadge-level{border:1px solid rgba(200,255,0,.6);background:rgba(204,255,0,.08);color:var(--neon)}
/* APS 花色等级徽章 */
.aps-card-badge{display:inline-flex;align-items:center;gap:1px;padding:2px 8px;border-radius:6px;border:1px solid;font-size:13px;font-weight:700;line-height:1.5;white-space:nowrap;vertical-align:middle}
.aps-card-badge strong{font-size:13px;font-weight:900;margin-left:1px}
/* 首页等级badge中的title文本 */
.lv-title-text{font-size:10px;color:var(--dim2);font-weight:500;align-self:center;margin-left:4px}
/* 排行榜门店子标签 */
.rl-sub-store{font-size:11px;color:var(--dim2)}
.profile-days{font-size:10px;color:var(--dim)}
.rank-col{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:4px}
.rank-hex{width:62px;height:62px;background:radial-gradient(circle at 40% 35%,#333 0%,#1a1a1a 60%,#111 100%);clip-path:polygon(50% 0%,95% 25%,95% 75%,50% 100%,5% 75%,5% 25%);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(0,0,0,.6),0 0 0 1px rgba(204,255,0,.2)}
.rank-spade{width:22px;height:22px;background:var(--white);clip-path:polygon(50% 0%,100% 50%,75% 75%,62% 62%,65% 100%,35% 100%,38% 62%,25% 75%,0% 50%)}
.rank-name{font-size:10px;font-weight:700;line-height:1}
.rank-en{font-size:8px;color:var(--dim);letter-spacing:.5px;line-height:1}
/* APS */
.aps-section{margin-bottom:12px}
.aps-top-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.stat-label-row{display:flex;align-items:center;gap:5px}
.dot-green{width:6px;height:6px;border-radius:50%;background:var(--neon);flex-shrink:0}
.stat-label{font-size:12px;font-weight:600;color:var(--neon)}
.stat-label-en{font-size:9px;color:#555;letter-spacing:.3px}
.aps-val-row{display:flex;align-items:baseline;gap:2px}
.aps-num{font-size:22px;font-weight:900;color:var(--neon);line-height:1}
.aps-cap{font-size:12px;color:#555}
.progress-track{height:6px;background:rgba(255,255,255,.1);border-radius:3px;overflow:hidden;margin-bottom:5px}
.progress-fill{height:100%;background:linear-gradient(90deg,var(--neon) 0%,#00d4aa 100%);border-radius:3px;transition:width .6s ease}
.aps-hint{font-size:10px;color:var(--dim)}
/* RANK */
.rank-section{display:flex;justify-content:space-between;align-items:center;padding-top:10px;border-top:1px solid rgba(255,255,255,0.07)}
.rank-left{display:flex;flex-direction:column;gap:3px}
.rank-right{text-align:right}
.rank-score-row{display:flex;align-items:center;justify-content:flex-end;gap:4px;margin-bottom:4px}
.rank-arrow{font-size:10px;color:#ef4444}
.rank-score{font-size:20px;font-weight:900;line-height:1}
.rank-rank-row{display:flex;align-items:center;justify-content:flex-end;gap:4px}
.rank-rank-pre{font-size:10px;color:var(--dim)}
.stars-row{display:flex;gap:2px}
.star{width:8px;height:8px;background:var(--neon);clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}
.rank-rank-num{font-size:13px;font-weight:700}
/* 订桌 */
.section{margin:0 0 8px 12px}
.section-hd{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:10px;padding-right:12px}
.section-hd-left{display:flex;flex-direction:column;gap:2px}
.section-title{font-size:15px;font-weight:700;line-height:1}
.section-en{font-size:9px;color:#555;letter-spacing:1px}
.section-more{font-size:11px;color:var(--dim);cursor:pointer}
.h-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.h-scroll::-webkit-scrollbar{display:none}
.h-scroll-inner{display:flex;gap:10px;padding-right:12px;width:max-content}
.rsv-card{width:130px;height:165px;flex-shrink:0;background:var(--card);border-radius:12px;border:1px solid rgba(255,255,255,.07);padding:10px;position:relative;overflow:hidden}
.rsv-status{display:inline-flex;padding:2px 7px;border-radius:8px;font-size:9px;font-weight:700;margin-bottom:6px}
.rsv-status-urgent{background:var(--neon);color:#07000e}
.rsv-status-normal{background:rgba(255,255,255,.1);color:var(--dim2)}
.rsv-time{font-size:20px;font-weight:900;line-height:1;display:block;margin-bottom:2px}
.rsv-day{font-size:10px;color:var(--dim);display:block;margin-bottom:4px}
.rsv-name{font-size:12px;font-weight:600;display:block;margin-bottom:4px;line-height:1.2}
.rsv-detail{font-size:9px;color:var(--dim);display:block;line-height:1.4}
.rsv-chip{position:absolute;bottom:8px;right:8px;width:38px;height:38px;border-radius:50%;background:radial-gradient(circle,#2a2a2a 0%,#1a1a1a 100%);border:2px solid rgba(204,255,0,.35);display:flex;align-items:center;justify-content:center;font-size:8px;font-weight:900;color:var(--neon)}
.rsv-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:80px;color:var(--dim);font-size:12px;gap:4px;padding-right:12px}
/* 幸运手牌 */
.lucky-section{margin:0 12px 8px;background:linear-gradient(145deg,#1e1e1e 0%,#141414 100%);border-radius:14px;border:1px solid rgba(204,255,0,.18);padding:12px 14px}
.lucky-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.lucky-title{font-size:15px;font-weight:700;line-height:1}
.lucky-en{font-size:9px;color:#555;letter-spacing:1px}
.lucky-cards-row{display:flex;gap:14px;justify-content:center}
.lucky-card{width:88px;height:124px;border-radius:10px;background:#f5f0e8;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;padding:8px;box-shadow:0 4px 20px rgba(0,0,0,.5)}
.lucky-card-red .lucky-rank-tl,.lucky-card-red .lucky-suit-tl,.lucky-card-red .lucky-suit-center,.lucky-card-red .lucky-suit-br,.lucky-card-red .lucky-rank-br{color:#cc2200}
.lucky-card-black .lucky-rank-tl,.lucky-card-black .lucky-suit-tl,.lucky-card-black .lucky-suit-center,.lucky-card-black .lucky-suit-br,.lucky-card-black .lucky-rank-br{color:#1a1a1a}
.lucky-rank-tl{position:absolute;top:7px;left:9px;font-size:18px;font-weight:900;line-height:1}
.lucky-suit-tl{position:absolute;top:27px;left:10px;font-size:13px;line-height:1}
.lucky-suit-center{font-size:42px;line-height:1}
.lucky-suit-br{position:absolute;bottom:27px;right:10px;font-size:13px;line-height:1;transform:rotate(180deg)}
.lucky-rank-br{position:absolute;bottom:7px;right:9px;font-size:18px;font-weight:900;line-height:1;transform:rotate(180deg)}
/* Banner */
.banner-wrap{margin:0 12px 8px;border-radius:14px;overflow:hidden;position:relative;height:150px}
.banner-inner{display:flex;height:100%;transition:transform .4s ease}
.banner-inner img{width:100%;height:150px;object-fit:cover;flex-shrink:0}
.banner-dots{position:absolute;bottom:8px;left:0;right:0;display:flex;justify-content:center;gap:4px}
.banner-dot{width:6px;height:6px;border-radius:3px;background:rgba(255,255,255,.35);transition:all .3s}
.banner-dot.active{width:16px;background:var(--neon)}
.banner-placeholder{height:60px;margin:0 12px 8px;border-radius:14px;background:rgba(255,255,255,.04);border:1px dashed rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--dim2)}
/* 门店 */
.store-section{padding-right:12px}
.store-card{margin-top:10px;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:8px;cursor:pointer}
.store-name-row{display:flex;align-items:center;gap:10px}
.store-name{font-size:16px;font-weight:700}
.store-open{padding:2px 8px;border-radius:10px;background:rgba(204,255,0,.12);border:1px solid rgba(204,255,0,.35);font-size:11px;color:var(--neon);font-weight:600}
.store-info-row{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--dim)}
.store-phone{color:var(--purple2)}

/* ══════════════════════════════════════════════════════════════════ */
/*  比赛大厅（首页）                                                   */
/* ══════════════════════════════════════════════════════════════════ */

/* 头部 */
.lb-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px 8px}
.lb-title-block{display:flex;align-items:baseline;gap:8px}
.lb-main-title{font-size:26px;font-weight:900;color:#fff}
.lb-sub-title{font-size:13px;font-weight:500;color:#6b7280}
.lb-voucher-btn{display:flex;align-items:center;gap:5px;padding:7px 12px;background:linear-gradient(135deg,rgba(217,160,18,.2),rgba(251,191,36,.12));border:1.5px solid rgba(251,191,36,.5);border-radius:20px;font-size:12px;font-weight:800;color:#fbbf24;cursor:pointer;white-space:nowrap;flex-shrink:0}
.lb-voucher-btn:active{opacity:.8}
.lb-voucher-arrow{font-size:13px;color:#9ca3af}

/* 筛选行 */
.lb-filter-row{display:flex;align-items:center;justify-content:space-between;padding:0 16px;margin-bottom:10px;gap:10px}
.lb-store-pill{display:flex;align-items:center;gap:5px;padding:8px 14px;background:rgba(139,92,246,.12);border:1.5px solid rgba(139,92,246,.7);border-radius:8px;font-size:13px;font-weight:700;color:#a78bfa;cursor:pointer}
.lb-store-dot{font-size:12px}
.lb-pill-arrow{font-size:11px;color:#a78bfa;margin-left:2px}
.lb-refresh-btn{display:flex;align-items:center;gap:5px;font-size:13px;color:#6b7280;cursor:pointer;flex-shrink:0}
.lb-refresh-btn:active{color:#fff}

/* 标签切换 */
.lb-tabs-wrap{padding:0 16px;margin-bottom:12px}
.lb-tab-bar{display:flex;background:#111;border-radius:10px;padding:3px;gap:3px}
.lb-tab{flex:1;position:relative;padding:9px 0 12px;text-align:center;font-size:14px;font-weight:700;color:#4b5563;border-radius:8px;cursor:pointer;transition:all .2s}
.lb-tab.active{background:#000;color:#ccff00}
/* 底部短绿条，宽度约等于4个汉字 */
.lb-tab.active::after{content:'';position:absolute;bottom:5px;left:50%;transform:translateX(-50%);width:56px;height:3px;background:#ccff00;border-radius:2px}

/* 大厅卡片 */
.ml-card{display:flex;margin:0 14px 14px;background:#111111;border-radius:14px;overflow:hidden;border:1px solid rgba(255,255,255,.08)}
.ml-card:active{opacity:.88}

/* 左侧状态面板 — 上中下布局对标参考图 */
.ml-left{width:96px;flex-shrink:0;display:flex;flex-direction:column;justify-content:space-between;padding:18px 12px 16px}
/* 左侧色块：左边彩色竖边框 + 向右渐变变淡 */
.ml-left-active{background:linear-gradient(to right,#26104e 0%,#120a1e 50%,#0b0a0d 100%);border-left:4px solid #8b5cf6}
.ml-left-open{background:linear-gradient(to right,#1b3305 0%,#0e1403 50%,#0a0b09 100%);border-left:4px solid #b8ff00}
/* 短灰竖线分隔左右 */
.ml-sep{width:1px;height:52px;background:rgba(255,255,255,.12);flex-shrink:0;align-self:center}
.ml-status{font-size:10px;font-weight:900;letter-spacing:.08em;line-height:1}
.ml-left-active .ml-status{color:#c4b5fd}
.ml-left-open .ml-status{color:#b8ff00}
.ml-time{font-size:22px;font-weight:900;color:#fff;line-height:1;letter-spacing:-.5px}
.ml-end-time{font-size:10px;color:#6b7280;line-height:1}

/* 右侧内容 */
.ml-right{flex:1;display:flex;align-items:center;padding:14px 12px;gap:10px;min-width:0;background:#0c0c0c}
.ml-right-inner{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0}
.ml-game-name{font-size:15px;font-weight:900;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* 人数 / 桌号 行 */
.ml-meta-row{display:flex;align-items:flex-end;gap:10px;justify-content:flex-start}
.ml-dots-wrap{display:flex;gap:2.5px;align-items:flex-end;flex:0 1 auto;min-width:0;justify-content:flex-start;overflow:hidden;flex-wrap:nowrap}
.ml-meta-row .ml-stat-col:first-child{min-width:30px;flex-shrink:0}
.ml-meta-row .ml-stat-col:last-child{width:30px;flex-shrink:0}

/* 小人图标（略大一号） */
.ml-person{display:inline-flex;flex-direction:column;align-items:center;gap:1px;opacity:.2}
.ml-person.ml-on{opacity:1}
.ml-ph{width:7px;height:7px;border-radius:50%;background:currentColor}
.ml-pb{width:10px;height:8px;border-radius:5px 5px 1px 1px;background:currentColor}
.ml-left-active~.ml-right .ml-person.ml-on{color:#a78bfa}
.ml-left-open~.ml-right .ml-person.ml-on{color:#b8ff00}
.ml-person-active{color:#a78bfa}
.ml-person-open{color:#b8ff00}
.ml-person-dim{color:#4b5563}

.ml-stat-col{display:flex;flex-direction:column;align-items:flex-start;gap:1px}
.ml-stat-num{font-size:14px;font-weight:900;color:#fff;line-height:1}
.ml-stat-sep{width:1px;height:22px;background:rgba(255,255,255,.1);align-self:center}
.ml-stat-lbl{font-size:9px;color:#6b7280;margin-top:2px}

/* 按钮区 */
.ml-btn-area{flex-shrink:0;width:66px;display:flex;flex-direction:column;align-items:center;gap:5px}
.ml-btn{padding:9px 14px;border-radius:8px;font-size:13px;font-weight:800;border:none;cursor:pointer;white-space:nowrap;line-height:1}
.ml-btn-view{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18);color:#fff}
.ml-btn-full{background:#b91c1c;color:#fff;border:none}
.ml-btn-reserve{background:#111;border:1.5px solid rgba(184,255,0,.75);color:#b8ff00}
.ml-btn:active{opacity:.7}
.ml-voucher-req{font-size:9px;color:#6b7280;white-space:nowrap;text-align:center;line-height:1.3}

/* ══════════════════════════════════════════════════════════════════ */
/*  卡包页 (cp- prefix)                                               */
/* ══════════════════════════════════════════════════════════════════ */

/* 顶部 tab 切换 */
.cp-switch{display:flex;flex-shrink:0;border-bottom:1px solid rgba(255,255,255,.08)}
/* 图标在左，文字列在右 */
.cp-half{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:10px;padding:14px 0;cursor:pointer;color:#555;transition:color .2s;position:relative}
.cp-half-icon{color:inherit;flex-shrink:0}
.cp-half-text{display:flex;flex-direction:column;gap:2px}
.cp-half-title{font-size:14px;font-weight:700;color:inherit;letter-spacing:.02em;line-height:1.2}
.cp-half-en{font-size:9px;font-weight:500;color:inherit;opacity:.7;letter-spacing:.1em;line-height:1.2}
.cp-half-active{color:#ccff00}
.cp-half-active::after{content:'';position:absolute;bottom:0;left:15%;right:15%;height:2px;background:#ccff00;border-radius:1px}
.cp-divider{width:1px;background:rgba(255,255,255,.08);flex-shrink:0;margin:10px 0}

/* 用户信息卡 */
/* 用户信息卡 — 左右各占一半，居中 */
.cp-user-card{margin:12px 14px;background:#1e1e1e;border-radius:14px;padding:16px 14px;display:flex;align-items:center;position:relative}
.cp-uc-left{flex:1;display:flex;align-items:center;justify-content:center;gap:12px;padding-right:12px}
.cp-uc-sep{width:1px;height:44px;background:rgba(255,255,255,.1);flex-shrink:0}
.cp-uc-right{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding-left:12px}
.cp-uc-avatar{width:52px;height:52px;border-radius:50%;background:#2a2a2a;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.cp-uc-avatar img{width:100%;height:100%;object-fit:cover}
.cp-uc-init{font-size:20px;font-weight:700;color:#555}
.cp-uc-info{min-width:0}
.cp-uc-name{font-size:17px;font-weight:800;color:#fff;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cp-uc-id{font-size:11px;color:#6b7280}
.cp-uc-level-label{font-size:13px;font-weight:700;color:#fff;text-align:center;white-space:nowrap}
.cp-uc-en{font-size:11px;color:#fff;font-weight:500;letter-spacing:.06em}
.cp-uc-level-badge{text-align:center}
.cp-uc-lv-plain{font-weight:900;letter-spacing:.04em}
.cp-uc-lv-suit{font-size:20px}
.cp-uc-lv-rank{font-size:26px}
.cp-uc-help{position:absolute;top:10px;right:10px;width:18px;height:18px;border-radius:50%;border:1px solid #444;display:flex;align-items:center;justify-content:center;font-size:10px;color:#555}

/* 游戏资格券行 */
.cp-voucher-row{margin:0 14px 10px;background:#1e1e1e;border-radius:12px;padding:14px;display:flex;align-items:center;gap:12px}
.cp-vr-left{display:flex;align-items:center;gap:12px;flex:1;min-width:0}
.cp-vr-img{width:56px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.cp-vr-info{display:flex;flex-direction:column;gap:3px}
.cp-vr-name{font-size:15px;font-weight:700;color:#fff}
.cp-vr-desc{font-size:11px;color:#555}
.cp-vr-count{font-size:22px;font-weight:900;color:#fff;flex-shrink:0}
.cp-vr-count span{color:#ccff00}

/* 权益卡（普通权益） */
/* 权益激活卡 */
.cp-plan-card{margin:0 14px 10px;background:url(/h5/images/cards/plan-active-bg.webp) center/100% 100% no-repeat;aspect-ratio:1128/411;display:flex;flex-direction:column;padding:6% 5%;box-sizing:border-box}
.cp-plan-hd{display:flex;align-items:center;justify-content:space-between;padding:0 4%;gap:8px;flex:1}
.cp-plan-hd-left{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.cp-plan-hd-left-row{display:flex;align-items:center;gap:6px}
.cp-plan-name{font-size:15px;font-weight:800;color:#fff}
.cp-plan-badge-on{align-self:flex-start;width:fit-content;padding:2px 8px;background:#ccff00;color:#000;border-radius:10px;font-size:10px;font-weight:800;white-space:nowrap}
.cp-plan-daily-label{font-size:11px;color:#9ca3af}
.cp-plan-hd-right{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex-shrink:0}
.cp-plan-days{font-size:12px;font-weight:700;color:#ccff00;display:flex;align-items:center;gap:4px;white-space:nowrap}
.cp-plan-exp{font-size:10px;color:#6b7280;white-space:nowrap}
.cp-plan-protect{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;padding:0 4%;flex:1}
.cp-plan-protect-left{display:flex;align-items:center;gap:5px;font-size:13px;font-weight:700;color:#ccff00;white-space:nowrap}
.cp-plan-protect-desc{flex:1;font-size:10px;line-height:1.35;color:#d1d5db;min-width:0}
.cp-plan-rule{font-size:11px;color:rgba(204,255,0,.7);cursor:pointer;white-space:nowrap}
.cp-plan-none{padding:14px;text-align:center;font-size:13px;color:#555}

/* 2x2 卡片网格 */
.cp-grid{margin:0 14px 12px}
/* 大框包裹全部四张卡 */
.cp-grid-box{background:#252525;border-radius:14px;overflow:hidden;padding:4px 0}
/* 每行两格，列间无分隔 */
.cp-grid-row{display:grid;grid-template-columns:1fr 1fr}
/* 行间短横线 */
.cp-grid-row-sep{height:1px;background:rgba(255,255,255,.1);margin:0 16px}
/* 卡片格（在大框内，无单独背景） */
.cp-grid-card{background:transparent;padding:18px 6px 18px 12px;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:8px;border:none}
.cp-gc-img-real{width:72px;height:54px;object-fit:contain;border-radius:8px;flex-shrink:0}
/* 几张 — 在图片和文字中间 */
.cp-gc-count{font-size:14px;font-weight:900;color:#ccff00;flex-shrink:0;min-width:30px;text-align:center}
.cp-gc-count-dim{color:#555}
/* 右侧列：卡名（上）+ 状态（下） */
.cp-gc-right{display:flex;flex-direction:column;gap:7px;flex:1;min-width:0}
.cp-gc-name{font-size:15px;font-weight:800;color:#fff;white-space:nowrap}
/* pill 状态 */
.cp-gc-own-no{display:inline-block;font-size:11px;color:#9ca3af;font-weight:600;border:1px solid rgba(255,255,255,.18);border-radius:20px;padding:3px 10px;align-self:flex-start}
.cp-gc-use-btn{padding:4px 12px;border-radius:20px;font-size:11px;font-weight:800;background:#ccff00;color:#000;border:none;cursor:pointer;align-self:flex-start}

/* 购买权益 pane */
.cp-buy-item{margin:10px 14px;background:#252525;border-radius:12px;padding:14px 8px 14px 12px;display:flex;align-items:center;gap:14px}
.cp-buy-img-real{width:92px;height:68px;object-fit:contain;border-radius:8px;flex-shrink:0;background:#252525}
/* 资格券行的真实图片 */
.cp-vr-img-real{width:100px;height:76px;object-fit:contain;border-radius:8px;flex-shrink:0}
.cp-buy-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;padding-left:4px}
.cp-buy-name{font-size:16px;font-weight:800;color:#fff}
.cp-buy-desc{font-size:12px;color:#9ca3af}
.cp-buy-feats{display:flex;gap:8px;margin-top:3px;flex-wrap:wrap}
.cp-buy-feat{display:flex;align-items:center;gap:4px;font-size:12px}
.cp-buy-feat svg{flex-shrink:0}
.cp-buy-feat-hi{color:#ccff00}
.cp-buy-feat-dim{color:#9ca3af}
.cp-buy-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0;padding-right:4px}
.cp-buy-orig{font-size:11px;color:#6b7280;text-decoration:line-through}
.cp-buy-price{font-size:20px;font-weight:900;color:#ccff00;white-space:nowrap}
.cp-buy-unit{font-size:11px;font-weight:500;color:#9ca3af}
.cp-buy-btn{padding:8px 14px;background:#ccff00;color:#000;font-size:14px;font-weight:800;border:none;border-radius:8px;cursor:pointer;white-space:nowrap}
.cp-buy-btn:active{opacity:.8}

/* 无开赛保护说明卡 */
.cp-protect-card{margin:4px 14px 10px;background:url(/h5/images/cards/protect-bg.webp) center/100% 100% no-repeat;aspect-ratio:1460/328;display:flex;flex-direction:row;align-items:center;gap:10px;padding:0 6% 0 5%;box-sizing:border-box}
.cp-protect-icon{background:transparent;margin-left:2px}
.cp-protect-body{flex:1;min-width:0}
.cp-protect-top{display:flex;align-items:center;gap:6px;margin-bottom:4px;white-space:nowrap}
.cp-protect-top .cp-protect-rule{margin-left:auto}
.cp-protect-title{font-size:15px;font-weight:900;color:#fff}
.cp-protect-badge{padding:2px 8px;background:rgba(204,255,0,.15);border:1px solid rgba(204,255,0,.4);border-radius:10px;font-size:10px;font-weight:700;color:#ccff00}
.cp-protect-desc{font-size:10.5px;color:#e9d5ff;line-height:1.45;margin:0}
.cp-protect-rule{font-size:10px;color:rgba(204,255,0,.7);cursor:pointer}

/* 卡片图像占位样式 */
.cp-img-voucher{background:linear-gradient(135deg,#78350f 0%,#b45309 60%,#f59e0b 100%)}
.cp-img-weekly{background:linear-gradient(135deg,#111827 0%,#1f2937 60%,#374151 100%);position:relative}
.cp-img-monthly{background:linear-gradient(135deg,#1e1b4b 0%,#312e81 60%,#4338ca 100%);position:relative}
.cp-img-lux-weekly{background:linear-gradient(135deg,#431407 0%,#7c2d12 60%,#c2410c 100%);position:relative}
.cp-img-lux-monthly{background:linear-gradient(135deg,#0f172a 0%,#1e293b 60%,#334155 100%);position:relative}

/* 卡片图像文字标签 */
.cp-img-label{font-size:9px;font-weight:900;color:rgba(255,255,255,.7);letter-spacing:.05em;text-align:center;line-height:1.3}
.cp-img-num{font-size:18px;font-weight:900;color:#fff;line-height:1}
.cp-img-days{font-size:8px;color:rgba(255,255,255,.5)}

/* ══════════════════════════════════════════════════════════════════ */
/*  桌况页                                                            */
/* ══════════════════════════════════════════════════════════════════ */
.tables-header{padding:4px 16px 12px}
.tables-title-row{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.tables-title{font-size:20px;font-weight:800}
.live-badge{display:flex;align-items:center;gap:4px;padding:3px 8px;background:rgba(204,255,0,.1);border:1px solid rgba(204,255,0,.3);border-radius:10px}
.live-dot{width:6px;height:6px;border-radius:50%;background:var(--neon)}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}
.live-dot{animation:blink 1.5s infinite}
.live-text{font-size:11px;font-weight:700;color:var(--neon);letter-spacing:.05em}
.tables-sub-row{display:flex;align-items:center;justify-content:space-between}
.tables-sub{font-size:13px;color:var(--dim)}
.store-picker-btn{display:flex;align-items:center;gap:3px;font-size:12px;color:var(--dim2);cursor:pointer;padding:4px 8px;border-radius:8px;background:rgba(255,255,255,.06)}
.filter-row{display:flex;gap:6px;padding:0 12px 12px;flex-shrink:0;overflow-x:auto}
.filter-row::-webkit-scrollbar{display:none}
.filter-item{display:flex;align-items:center;gap:4px;padding:6px 12px;border-radius:8px;font-size:12px;font-weight:600;color:var(--dim2);background:rgba(255,255,255,.06);border:1px solid transparent;cursor:pointer;white-space:nowrap;flex-shrink:0}
.filter-item.active{color:var(--neon);background:rgba(204,255,0,.1);border-color:rgba(204,255,0,.3)}
.filter-badge{background:var(--neon);color:#000;border-radius:6px;font-size:10px;padding:0 4px;min-width:16px;text-align:center;font-weight:700}
.table-list{padding:0 12px;display:flex;flex-direction:column;gap:10px}
.table-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px;overflow:hidden}
.card-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}
.card-top-left{display:flex;align-items:center;gap:8px}
.table-name{font-size:16px;font-weight:700}
.type-badge{padding:2px 8px;border-radius:6px;font-size:11px;font-weight:600}
.type-regular{background:rgba(255,255,255,.08);color:var(--dim2)}
.type-vip{background:rgba(251,191,36,.15);color:var(--gold)}
.type-event{background:rgba(204,255,0,.12);color:var(--neon)}
.status-tag{display:flex;align-items:center;gap:4px;padding:3px 8px;border-radius:8px;font-size:11px;font-weight:600}
.status-dot-sm{width:5px;height:5px;border-radius:50%}
.status-free{background:rgba(74,222,128,.1);color:var(--green);border:1px solid rgba(74,222,128,.3)}
.status-free .status-dot-sm{background:var(--green)}
.status-active{background:rgba(204,255,0,.1);color:var(--neon);border:1px solid rgba(204,255,0,.3)}
.status-active .status-dot-sm{background:var(--neon)}
.status-full{background:rgba(248,113,113,.1);color:var(--red);border:1px solid rgba(248,113,113,.3)}
.status-full .status-dot-sm{background:var(--red)}
.seat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:10px}
.seat-cell{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:6px 4px;text-align:center}
.seat-cell-on{background:rgba(204,255,0,.12);border-color:rgba(204,255,0,.3)}
.seat-num{font-size:11px;font-weight:700;color:var(--dim2);display:block;}
.seat-cell-on .seat-num{color:var(--neon)}
.seat-name{font-size:9px;color:var(--dim);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.seat-cell-on .seat-name{color:var(--white)}
.card-bottom{display:flex;align-items:center;justify-content:space-between}
.card-meta{display:flex;align-items:center;gap:12px}
.meta-item{display:flex;flex-direction:column;align-items:center}
.meta-num{font-size:14px;font-weight:700}
.meta-cost{color:var(--neon)}
.meta-lbl{font-size:10px;color:var(--dim)}
.seat-free-hint{font-size:11px;color:var(--dim)}
.detail-btn{display:flex;align-items:center;gap:4px;padding:8px 14px;background:rgba(204,255,0,.1);border:1px solid rgba(204,255,0,.3);border-radius:10px;font-size:13px;font-weight:700;color:var(--neon);cursor:pointer}

/* ══════════════════════════════════════════════════════════════════ */
/*  排名页（按图设计）                                                 */
/* ══════════════════════════════════════════════════════════════════ */
.rank-page{flex-direction:column;background:#0a0a0a}

/* 页头 */
.rk-header{flex-shrink:0;padding:14px 16px 10px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.rk-title-block{display:flex;align-items:baseline;gap:8px}
.rk-title{font-size:22px;font-weight:900;color:#fff;letter-spacing:-.3px}
.rk-title-en{font-size:11px;font-weight:700;color:var(--neon);letter-spacing:.18em}
.rk-filter-row{display:flex;gap:8px;flex-shrink:0}
.rk-filter-pill{display:flex;align-items:center;gap:5px;padding:6px 11px;border-radius:20px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);font-size:11px;font-weight:600;color:rgba(255,255,255,.8);cursor:pointer;white-space:nowrap;transition:background .15s}
.rk-filter-pill svg{opacity:.6;flex-shrink:0}
.rk-loc-pill:active{background:rgba(255,255,255,.12)}
.rk-season-pill{cursor:default}
.rk-pill-arrow{font-size:9px;opacity:.55;margin-left:1px}

/* 滚动区 */
.rk-scroll{flex:1;overflow-y:auto;padding-top:2px;padding-bottom:4px}
.rk-list{padding:0 14px 8px}

/* 排名行 */
.rl-row{display:flex;align-items:center;padding:12px 14px;background:#161616;border-radius:12px;margin-bottom:8px;border-left:3px solid transparent;transition:background .15s}
.rl-row-gold{border-left-color:#f59e0b;background:rgba(245,158,11,.07)}
.rl-row-silver{border-left-color:#94a3b8}
.rl-row-bronze{border-left-color:#cd7f32}
.rl-row-me{border-left-color:var(--neon);background:rgba(204,255,0,.05)}
.rl-num{width:28px;font-size:16px;font-weight:900;color:#6b7280;text-align:center;flex-shrink:0;line-height:1}
.rl-num-gold{color:#f59e0b}
.rl-num-silver{color:#94a3b8}
.rl-num-bronze{color:#cd7f32}
.rl-avatar{width:42px;height:42px;border-radius:50%;background:#2a2a2a;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:#fff;margin:0 10px 0 6px;flex-shrink:0;overflow:hidden;border:1.5px solid rgba(255,255,255,.08)}
.rl-avatar img{width:100%;height:100%;object-fit:cover}
.rl-avatar-wrap{position:relative;width:42px;height:42px;margin:0 10px 0 6px;flex-shrink:0;--ad:42px}
.rl-avatar-wrap .rl-avatar{margin:0}
.rl-frame-overlay{position:absolute;top:50%;left:50%;width:calc(var(--ad) * var(--fscale,1.333));height:calc(var(--ad) * var(--fscale,1.333));transform:translate(calc(-50% + var(--ad) * var(--fx,0.0068)), calc(-50% + var(--ad) * var(--fy,0.0447)));max-width:none;max-height:none;pointer-events:none;z-index:2;object-fit:contain}
/* 名字区 - 限制宽度，不无限拉伸 */
.rl-info{flex:1;min-width:0;max-width:160px}
.rl-name{font-size:14px;font-weight:700;color:#fff;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.25}
.rl-sub{font-size:11px;color:#6b7280;display:flex;align-items:center;gap:4px;margin-top:3px;white-space:nowrap;overflow:hidden}
.rl-sub .aps-card-badge{font-size:11px;padding:1px 5px;border-radius:4px}
.rl-sub .aps-card-badge strong{font-size:11px}
.rl-sub-sep{color:#404040;flex-shrink:0}
.rl-sub-store{font-size:11px;color:#6b7280}
/* 右侧：图标 → 段位名 → 分数 横排 */
.rl-right{display:flex;flex-direction:row;align-items:center;gap:8px;flex-shrink:0;margin-left:auto}
.rl-tier-img{width:46px;height:46px;object-fit:contain;flex-shrink:0}
.rl-tier-name{font-size:12px;color:#9ca3af;white-space:nowrap}
.rl-score{font-size:16px;font-weight:900;color:#fff;white-space:nowrap;min-width:36px;text-align:right}

/* 我的排名区：固定在排名页最下方，不随列表滚动；底部留出底栏高度 */
.rk-my-section{flex-shrink:0;padding:8px 14px calc(62px + env(safe-area-inset-bottom));border-top:1px solid rgba(255,255,255,.08);background:var(--bg)}
.rk-my-hd{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.rk-my-bar{width:3px;height:16px;background:var(--neon);border-radius:2px;flex-shrink:0}
.rk-my-title{font-size:14px;font-weight:800;color:#fff}
.rk-my-en{font-size:9px;color:var(--neon);letter-spacing:.15em;font-weight:700}

/* 位置选择sheet用到的store-scroll */
.store-scroll{overflow-x:auto;flex-shrink:0;padding:0 16px 8px}
.store-scroll::-webkit-scrollbar{display:none}
.store-tab-row{display:flex;gap:6px;width:max-content}
.store-tab{padding:5px 14px;border-radius:20px;font-size:12px;font-weight:600;color:var(--dim2);background:rgba(255,255,255,.06);border:1px solid transparent;cursor:pointer;white-space:nowrap}
.store-tab.active{background:rgba(204,255,0,.1);border-color:rgba(204,255,0,.3);color:var(--neon)}

/* 兼容旧class（不删） */
.gold{color:var(--gold)}
.silver{color:var(--silver)}
.bronze{color:var(--bronze)}
.rank-list{padding:0 12px 4px} /* 旧引用兼容 */
.my-rank-footer{display:none} /* 旧固定底部改为内嵌区，隐藏旧class */

/* ══════════════════════════════════════════════════════════════════ */
/*  商城                                                              */
/* ══════════════════════════════════════════════════════════════════ */
.store-tab-row-main{display:flex;margin:0 16px 0;border:1px solid rgba(204,255,0,.25);border-radius:10px;overflow:hidden;flex-shrink:0}
.store-tab-item{flex:1;padding:11px 0;text-align:center;font-size:14px;font-weight:600;color:var(--dim);cursor:pointer;transition:all .25s}
.store-tab-item.active{background:var(--neon);color:#000}

/* 会员卡轮播 */
.tier-swiper-wrap{padding:12px 16px 0;position:relative}
.tier-swiper{overflow:hidden;position:relative}
.tier-swiper-inner{display:flex;transition:transform .4s cubic-bezier(.25,.46,.45,.94)}
.tier-card{min-width:calc(100vw - 32px);border-radius:16px;padding:20px;position:relative;overflow:hidden;border:1px solid transparent}
.tier-watermark{position:absolute;right:-10px;bottom:-20px;font-size:120px;line-height:1;pointer-events:none;user-select:none}
.tier-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.tier-brand{font-size:11px;letter-spacing:.15em;color:rgba(255,255,255,.5);font-weight:700}
.tier-cur-badge{padding:3px 8px;border-radius:6px;background:rgba(255,255,255,.15);font-size:10px;font-weight:700;color:#fff}
.tier-mid{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.tier-name-row{display:flex;align-items:center;gap:8px}
.tier-suit-icon{font-size:24px}
.tier-seg-big{font-size:28px;font-weight:900;letter-spacing:.05em}
.tier-disc-pill{padding:4px 14px;border-radius:20px;border:1px solid;font-size:18px;font-weight:900}
.tier-benefits{display:flex;flex-direction:column;gap:8px;background:rgba(0,0,0,.2);border-radius:10px;padding:10px 12px}
.tier-b-row{display:flex;justify-content:space-between;align-items:center}
.tier-b-label{font-size:12px;color:rgba(255,255,255,.6)}
.tier-b-val{font-size:13px;font-weight:700;color:#fff}
.tier-dots{display:flex;justify-content:center;gap:5px;margin-top:10px}
.tier-dot{width:6px;height:6px;border-radius:3px;background:rgba(255,255,255,.2);transition:all .3s}
.tier-dot.active{width:18px;background:var(--neon)}

.section-label{padding:12px 16px 8px;font-size:12px;color:var(--dim);letter-spacing:.1em}
.prod-card{display:flex;align-items:center;gap:14px;padding:14px 16px;margin:0 12px 8px;background:var(--card);border-radius:12px;border:1px solid var(--border)}
.prod-icon-wrap{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:24px}
.prod-info{flex:1;min-width:0}
.prod-name{font-size:14px;font-weight:700;display:block;margin-bottom:3px}
.prod-desc{font-size:11px;color:var(--dim);display:block;margin-bottom:4px}
.prod-price{font-size:13px;font-weight:700;color:var(--neon);display:block}
.prod-buy-btn{padding:8px 16px;background:rgba(204,255,0,.1);border:1px solid rgba(204,255,0,.3);border-radius:8px;font-size:13px;font-weight:700;color:var(--neon);cursor:pointer;flex-shrink:0}
.contact-row{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;font-size:12px;color:var(--dim);cursor:pointer}

.order-card{margin:0 12px 8px;padding:14px 16px;background:var(--card);border-radius:12px;border:1px solid var(--border)}
.order-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.order-name{font-size:14px;font-weight:700}
.order-status{padding:2px 8px;border-radius:6px;font-size:11px;font-weight:700}
.order-pending{background:rgba(251,191,36,.15);color:var(--gold)}
.order-paid{background:rgba(74,222,128,.12);color:var(--green)}
.order-cancelled{background:rgba(255,255,255,.05);color:var(--dim2)}
.order-meta{display:flex;justify-content:space-between;margin-bottom:4px}
.order-meta-txt{font-size:12px;color:var(--dim)}
.order-time{font-size:11px;color:var(--dim);display:block;margin-bottom:4px}
.order-hint{font-size:11px;color:var(--gold);background:rgba(251,191,36,.1);padding:6px 10px;border-radius:6px;display:block}

/* ══════════════════════════════════════════════════════════════════ */
/*  我的（新设计）                                                     */
/* ══════════════════════════════════════════════════════════════════ */

/* 顶部操作行 */
.pf-action-row{display:flex;justify-content:flex-end;gap:8px;padding:4px 16px 8px;flex-shrink:0}
.pf-action-btn{display:flex;align-items:center;gap:5px;padding:6px 12px;border-radius:20px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.05);font-size:12px;font-weight:600;color:rgba(255,255,255,.8);cursor:pointer;white-space:nowrap}
.pf-action-btn svg{opacity:.7;flex-shrink:0}
.pf-action-btn:active{background:rgba(255,255,255,.1)}

/* 通用卡片 */
.pf-card{margin:0 14px 10px;background:#111;border-radius:16px;padding:16px;border:1px solid rgba(255,255,255,.07)}
.pf-card-hd{display:flex;align-items:baseline;gap:6px;margin-bottom:12px}
.pf-card-title{font-size:14px;font-weight:800;color:#fff}
.pf-card-en{font-size:9px;font-weight:700;color:var(--neon);letter-spacing:.12em}
.pf-dim{color:#555}
.pf-link{font-size:11px;color:#6b7280;cursor:pointer;white-space:nowrap}

/* ① 用户信息卡 */
.pf-user-card{display:flex;align-items:flex-start;gap:14px;padding:12px 16px 14px 24px}
.pf-avatar-wrap{--ad:76px;position:relative;flex-shrink:0;width:76px;height:76px;cursor:pointer}
.pf-avatar{width:76px;height:76px;border-radius:50%;background:#222;border:2px solid rgba(255,255,255,.18);overflow:hidden;display:flex;align-items:center;justify-content:center}
.pf-avatar-frame-overlay{position:absolute;top:50%;left:50%;width:calc(var(--ad) * var(--fscale,1.333));height:calc(var(--ad) * var(--fscale,1.333));transform:translate(calc(-50% + var(--ad) * var(--fx,0.0068)), calc(-50% + var(--ad) * var(--fy,0.0447)));max-width:none;max-height:none;pointer-events:none;z-index:2;display:block;object-fit:contain}
.pf-avatar img{width:100%;height:100%;object-fit:cover}
.pf-avatar-init{font-size:26px;font-weight:700;color:#888}
.pf-user-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;padding-top:4px;padding-left:6px}
.pf-name{font-size:18px;font-weight:900;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-aces-id{font-size:11px;color:rgba(255,255,255,.7)}
.pf-store{font-size:11px;color:rgba(255,255,255,.7)}
/* 历史最高RANK */
.pf-best-rank{display:flex;flex-direction:column;align-items:center;flex-shrink:0;gap:6px;min-width:90px}
.pf-best-label{font-size:10px;color:#fff;font-weight:700;white-space:nowrap;text-align:center}
.pf-best-row{display:flex;align-items:center;gap:8px}
.pf-best-icon{width:40px;height:40px;object-fit:contain;display:block!important}
.pf-best-info{display:flex;flex-direction:column;gap:2px}
.pf-best-score{font-size:18px;font-weight:900;color:#fff;line-height:1}
.pf-best-tier{font-size:11px;color:#9ca3af}

/* ② APS 等级卡 */
/* APS卡 两半布局 */
.pf-aps-halves{display:flex;align-items:stretch;gap:0}
.pf-aps-half{flex:1;display:flex;flex-direction:column;gap:8px;padding:2px 0}
.pf-aps-half:last-child{padding-left:20px}
.pf-aps-vdiv{width:1px;background:rgba(255,255,255,.1);flex-shrink:0;margin:0 4px;align-self:stretch}
.pf-half-label{font-size:11px;color:#6b7280;font-weight:600;white-space:nowrap}
.pf-half-en{font-size:10px;color:#4b5563;letter-spacing:.06em}
/* 左：等级图标行 */
.pf-lv-row{display:flex;align-items:center;gap:4px}
.pf-lv-suit{font-size:28px;font-weight:900;line-height:1;flex-shrink:0}
.pf-lv-num{font-size:36px;font-weight:900;color:#fff;line-height:1}
.pf-lv-pill{font-size:11px;font-weight:700;color:#9ca3af;border:1px solid #374151;border-radius:6px;padding:2px 6px;align-self:flex-end;margin-bottom:4px;flex-shrink:0}
/* 右：APS分数行 */
.pf-pts-row{display:flex;align-items:baseline;gap:3px}
.pf-aps-cur{font-size:32px;font-weight:900;color:#fff;line-height:1}
.pf-aps-max{font-size:14px;color:#555;font-weight:600}
.pf-aps-bar{height:5px;background:rgba(255,255,255,.1);border-radius:3px;overflow:hidden}
.pf-aps-fill{height:100%;background:linear-gradient(90deg,#ccff00,#8bea00);border-radius:3px;transition:width .6s ease}
.pf-aps-hint{font-size:10px;color:#555}

/* ③ SEASON 卡 */
.pf-season-hd{display:flex;align-items:baseline;gap:8px;margin-bottom:8px}
.pf-season-name{font-size:16px;font-weight:900;color:#fff}
.pf-season-dates{font-size:10px;color:rgba(255,255,255,.65)}
.pf-placement-tag{display:inline-flex;align-items:center;padding:2px 10px;background:rgba(74,222,128,.15);border:1px solid rgba(74,222,128,.4);border-radius:20px;font-size:11px;font-weight:700;color:#4ade80;margin-bottom:12px}
.pf-season-body{display:flex;align-items:center;justify-content:space-around;gap:8px;margin-top:4px}
.pf-season-col{display:flex;flex-direction:column;align-items:center;gap:3px}
.pf-season-score{font-size:32px;font-weight:900;color:#fff;line-height:1}
.pf-season-delta{font-size:12px;font-weight:700;min-height:16px}
.pf-delta-pos{color:#4ade80}
.pf-delta-neg{color:#f87171}
/* 段位图标放大居中 */
.pf-season-icon{width:110px;height:110px;object-fit:contain;display:block;margin:0 auto}
.pf-rank-tier-name{font-size:14px;font-weight:700;color:#fff;margin-top:4px}
/* SEASON卡内灰色文字改白 */
.pf-season-card .pf-dim{color:rgba(255,255,255,.75)}

/* ④ 最近游戏 */
.pf-game-stats{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding:10px;background:rgba(255,255,255,.04);border-radius:10px}
.pf-stat-item{display:flex;flex-direction:column;align-items:center;gap:2px;flex:1}
.pf-stat-num{font-size:18px;font-weight:900;color:#fff;line-height:1}
.pf-stat-lbl{font-size:10px;color:#6b7280}
.pf-stat-sep{color:#333;font-size:16px;flex-shrink:0}
/* 最近游戏行 */
.pf-game-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.05);cursor:pointer}
.pf-game-row:last-child{border-bottom:none}
.pf-game-bar{width:3px;height:36px;border-radius:2px;flex-shrink:0}
.pf-game-bar-win{background:#4ade80}
.pf-game-bar-loss{background:#f87171}
.pf-game-rank-num{font-size:13px;font-weight:900;color:#fff;width:24px;text-align:center;flex-shrink:0}
.pf-game-rank-num::before{content:'#'}
.pf-game-type{font-size:12px;color:#9ca3af;flex-shrink:0;width:46px}
.pf-game-count{font-size:11px;color:#555;width:28px;flex-shrink:0}
.pf-game-score-block{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:1px}
.pf-game-score{font-size:15px;font-weight:800;color:#fff;line-height:1}
.pf-game-delta{font-size:11px;font-weight:700}
.pf-game-time{font-size:11px;color:#555;white-space:nowrap;flex-shrink:0}
.pf-game-arrow{color:#444;font-size:14px;flex-shrink:0}

/* ⑤ 成就 */
#profile-ach-section{padding-left:10px;padding-right:10px}
#profile-ach-section .pf-card-hd{padding-left:6px;padding-right:6px}
.pf-ach-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;align-items:start}
.pf-ach-row::-webkit-scrollbar{display:none}
.pf-ach-item{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;cursor:pointer}
.pf-ach-img{width:100%;aspect-ratio:1/1;border-radius:50%;background:#222;border:2px solid rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:900;overflow:hidden}
.pf-ach-img img{width:100%;height:100%;object-fit:cover}
.pf-ach-img-locked{width:92%;margin:0 auto;background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.06);color:#444;font-size:26px;font-weight:300}
.pf-ach-lbl{font-size:10px;color:#e5e7eb;text-align:center;line-height:1.3;white-space:normal;width:100%}
.pf-ach-sub{font-size:9px;color:#6b7280;text-align:center;line-height:1.3;white-space:normal;width:100%;margin-top:-2px}

/* 设置页 */
.pf-settings-card{margin:16px 14px;background:#1c1c1c;border-radius:14px;overflow:hidden}
.pf-settings-item{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;font-size:15px;font-weight:500;color:#fff;cursor:pointer}
.pf-settings-item:active{background:rgba(255,255,255,.05)}
.pf-settings-arrow{color:#555;font-size:16px}
.pf-settings-divider{height:1px;background:rgba(255,255,255,.06);margin:0 18px}
.pf-settings-logout{color:#ef4444}

/* 兼容旧 live-table 相关样式（仍被 JS renderLiveTable 使用） */
.user-area{display:none} /* 旧class隐藏 */
.live-table-card{margin:0 14px 10px;background:var(--card);border:1px solid rgba(204,255,0,.2);border-radius:14px;padding:14px}
.live-table-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.live-dot-row{display:flex;align-items:center;gap:6px}
.live-dot-blink{width:7px;height:7px;border-radius:50%;background:var(--neon);animation:blink 1s infinite}
.live-table-title{font-size:14px;font-weight:700;color:var(--neon)}
.live-my-seat{font-size:11px;color:var(--dim2)}
.br-table{border:1px solid var(--border);border-radius:10px;overflow:hidden}
.br-row{display:flex;padding:8px 10px;border-bottom:1px solid rgba(255,255,255,.04)}
.br-row:last-child{border-bottom:none}
.br-head{background:rgba(255,255,255,.05)}
.br-head .br-cell{font-size:10px;color:var(--dim);font-weight:700}
.br-cell{text-align:center;flex:1;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.br-seat{flex:.6;text-align:left;color:var(--dim2)}
.br-seat-on{color:var(--neon)}
.br-name{flex:1.5;text-align:left}
.br-name-self{color:var(--neon);font-weight:700}
.br-num{color:var(--dim)}
.br-rank{flex:.7}
.br-pos{color:var(--green);font-weight:700}
.br-neg{color:var(--red);font-weight:700}
.br-top3{color:var(--gold);font-weight:700}
.br-dim{color:var(--dim)}
.br-section-label{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.br-section-title{font-size:12px;font-weight:700;color:var(--dim2)}
.br-badge-live{padding:2px 6px;border-radius:4px;background:rgba(204,255,0,.15);color:var(--neon);font-size:10px;font-weight:700}
.br-badge-settling{padding:2px 6px;border-radius:4px;background:rgba(251,191,36,.15);color:var(--gold);font-size:10px;font-weight:700}
.br-section-date{font-size:10px;color:var(--dim);margin-left:auto}
.br-settling-banner{display:flex;align-items:center;gap:6px;padding:8px 12px;background:rgba(251,191,36,.08);border-radius:8px;margin-bottom:8px}
.br-settling-txt{font-size:12px;color:var(--gold)}
.live-session-bar{display:flex;gap:12px;margin-bottom:8px}
.live-session-txt{font-size:11px;color:var(--dim)}
.br-row-self{background:rgba(204,255,0,.04)}
.br-row-empty{opacity:.5}
.br-name-dim{color:var(--dim)}
.br-seat-off{color:var(--dim)}
/* 兼容旧菜单（用于其他子页） */
.menu-list{margin:0 12px 8px;background:var(--card);border-radius:14px;border:1px solid var(--border);overflow:hidden}
.menu-item{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.04);cursor:pointer}
.menu-item:last-child{border-bottom:none}
.menu-item-text{font-size:14px;font-weight:600}
.menu-arrow{font-size:18px;color:var(--dim)}

/* ══════════════════════════════════════════════════════════════════ */
/*  桌位详情                                                          */
/* ══════════════════════════════════════════════════════════════════ */
.main-card{margin:4px 12px 8px;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:16px}
.main-top-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.indicator-wrap{display:flex;align-items:center;gap:6px}
.indicator-dot{width:8px;height:8px;border-radius:50%}
.ind-free{background:var(--green);box-shadow:0 0 8px rgba(74,222,128,.5)}
.ind-active{background:var(--neon);box-shadow:0 0 8px var(--neon-glow)}
.ind-full{background:var(--red);box-shadow:0 0 8px rgba(248,113,113,.5)}
.detail-name{font-size:22px;font-weight:900;display:block;margin-bottom:4px}
.detail-id{font-size:11px;color:var(--dim);display:block;margin-bottom:14px}
.stats-cols{display:flex;justify-content:space-around;align-items:center;margin-bottom:14px;padding:12px 0;background:rgba(255,255,255,.04);border-radius:12px}
.stats-col{display:flex;flex-direction:column;align-items:center;gap:3px}
.stats-col-label{font-size:11px;color:var(--dim)}
.stats-col-val{font-size:16px;font-weight:700}
.stats-cost{color:var(--neon)}
.stats-col-divider{width:1px;height:32px;background:var(--border)}
.stats-col-people{display:flex;align-items:baseline;gap:2px}
.stats-col-total{font-size:13px;color:var(--dim)}
.seat-section{margin-bottom:4px}
.seat-hd{display:flex;justify-content:space-between;margin-bottom:8px}
.seat-label{font-size:13px;color:var(--dim)}
.seat-ratio{font-size:13px;font-weight:700;color:var(--neon)}
.dots-row{display:flex;gap:4px;flex-wrap:wrap}
.seat-dot{width:16px;height:16px;border-radius:4px}
.dot-occupied{background:rgba(204,255,0,.35);border:1px solid rgba(204,255,0,.5)}
.dot-empty{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12)}
/* 圆桌选座 */
.round-table-section{margin:0 12px 8px}
.round-table-title-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.round-table-title{font-size:15px;font-weight:700}
.round-table-hint{font-size:12px;color:var(--dim)}
.round-table-wrap{position:relative;width:100%;padding-top:100%;margin-bottom:14px}
.table-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#1e1e1e,#111);border:2px solid rgba(204,255,0,.4);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}
.table-center-icon{font-size:22px;line-height:1}
.table-center-label{font-size:9px;color:#ccff00;font-weight:700;text-align:center}
.seat-circle{position:absolute;width:44px;height:44px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;transform:translate(-50%,-50%);border:2px solid}
.seat-free{background:rgba(10,10,10,.9);border-color:rgba(255,255,255,.15)}
.seat-taken{background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.4)}
.seat-mine{background:rgba(74,222,128,.12);border-color:rgba(74,222,128,.6)}
.seat-selected{background:rgba(204,255,0,.15);border-color:#ccff00}
.seat-circle .seat-num{font-size:12px;font-weight:800;color:#ffffff;line-height:1}
.seat-circle .seat-name{font-size:8px;color:#c4b5fd;line-height:1;margin-top:2px;max-width:40px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.legend-row{display:flex;justify-content:center;gap:16px;margin-bottom:12px}
.legend-item{display:flex;align-items:center;gap:4px}
.legend-dot{width:10px;height:10px;border-radius:50%}
.legend-free{background:rgba(74,222,128,.5);border:1px solid rgba(74,222,128,.8)}
.legend-taken{background:rgba(248,113,113,.5);border:1px solid rgba(248,113,113,.8)}
.legend-mine{background:rgba(204,255,0,.5);border:1px solid var(--neon)}
.legend-text{font-size:11px;color:var(--dim)}
.selected-hint{padding:10px 16px;background:rgba(204,255,0,.08);border:1px solid rgba(204,255,0,.2);border-radius:10px;font-size:13px;color:var(--neon);text-align:center;margin:0 12px 8px}
.selected-mine{color:var(--purple2)}
.action-bar{padding:0 12px 8px}
.reserve-btn{padding:14px;background:var(--neon);border-radius:12px;text-align:center;font-size:15px;font-weight:800;color:#000;cursor:pointer}
.btn-cancel{background:rgba(248,113,113,.15);border:1px solid rgba(248,113,113,.4);color:var(--red)}
.btn-loading{opacity:.6;pointer-events:none}
.info-card{margin:0 12px;background:var(--card);border-radius:12px;border:1px solid var(--border);overflow:hidden}
.info-row{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.04)}
.info-row:last-child{border-bottom:none}
.info-key{font-size:13px;color:var(--dim)}
.info-key-row{display:flex;align-items:center;gap:4px}
.info-val{font-size:13px;font-weight:600;text-align:right}

/* ══════════════════════════════════════════════════════════════════ */
/*  签到                                                              */
/* ══════════════════════════════════════════════════════════════════ */
.stats-card{margin:4px 12px 8px;padding:14px 16px;background:var(--card2);border:1px solid var(--border);border-radius:14px}
.stats-card-title{font-size:14px;font-weight:700;display:block;margin-bottom:12px}
.stats-row-checkin{display:flex;justify-content:space-around}
.stat-item{display:flex;flex-direction:column;align-items:center;gap:4px}
.stat-num{font-size:22px;font-weight:900;color:var(--neon)}
.stat-aps{color:var(--gold)}
.stat-lbl{font-size:11px;color:var(--dim)}
.calendar-card{margin:0 12px 8px;background:var(--card2);border:1px solid var(--border);border-radius:14px;padding:16px}
.cal-title{font-size:14px;font-weight:700;display:block;margin-bottom:12px;text-align:center}
.cal-week-hd{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:8px}
.cal-wd{text-align:center;font-size:12px;color:var(--dim);font-weight:600;padding:4px 0}
.cal-week-row{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:4px}
.cal-day-cell{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:8px;position:relative;cursor:pointer}
.cal-day-num{font-size:13px;font-weight:600;color:var(--dim2)}
.day-today{background:rgba(204,255,0,.12);border:1px solid rgba(204,255,0,.4)}
.day-today .cal-day-num{color:var(--white);font-weight:900}
.day-checked{background:rgba(204,255,0,.12);border:1px solid rgba(204,255,0,.3)}
.day-checked .cal-day-num{color:var(--neon);font-weight:900}
.day-dot{width:5px;height:5px;border-radius:50%;background:var(--neon);position:absolute;bottom:3px}
.day-empty{opacity:0}
.checkin-btn{display:flex;align-items:center;justify-content:center;gap:8px;margin:14px 0 0;padding:13px;border-radius:12px;background:var(--neon);cursor:pointer;font-size:15px;font-weight:800;color:#000}
.checkin-btn.btn-done{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);color:var(--dim2);pointer-events:none}
.rewards-section{margin:0 12px 8px}
.rewards-title{font-size:14px;font-weight:700;display:block;margin-bottom:10px;padding-left:2px}
.reward-item{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--card);border-radius:10px;margin-bottom:6px;border:1px solid var(--border)}
.reward-left{display:flex;gap:10px;align-items:center}
.reward-days{font-size:14px;font-weight:700;color:var(--neon)}
.reward-label{font-size:12px;color:var(--dim2)}
.reward-right{display:flex;align-items:center;gap:8px}
.reward-pts{font-size:14px;font-weight:700;color:var(--neon)}
.pts-done{color:var(--green)}
.reward-status{padding:2px 8px;border-radius:6px;font-size:11px;font-weight:600}
.status-done{background:rgba(74,222,128,.12);color:var(--green)}
.status-pending{background:rgba(255,255,255,.07);color:var(--dim2)}

/* ══════════════════════════════════════════════════════════════════ */
/*  编辑资料（新设计）                                                 */
/* ══════════════════════════════════════════════════════════════════ */

/* 头像区 */
.ep-avatar-section{display:flex;flex-direction:column;align-items:center;padding:24px 0 16px;gap:10px}
.ep-avatar-wrap{--ad:88px;position:relative;cursor:pointer;display:inline-block;width:88px;height:88px;overflow:visible}
.ep-avatar-circle{width:88px;height:88px;border-radius:50%;background:#222;border:2.5px solid rgba(255,255,255,.2);overflow:hidden;display:flex;align-items:center;justify-content:center}
.ep-avatar-circle img{width:100%;height:100%;object-fit:cover;display:block}
.ep-avatar-frame-overlay{position:absolute;top:50%;left:50%;width:calc(var(--ad) * var(--fscale,1.333));height:calc(var(--ad) * var(--fscale,1.333));transform:translate(calc(-50% + var(--ad) * var(--fx,0.0068)), calc(-50% + var(--ad) * var(--fy,0.0447)));max-width:none;max-height:none;pointer-events:none;z-index:2;display:block;object-fit:contain}
.ep-camera-badge{position:absolute;bottom:2px;right:2px;width:26px;height:26px;border-radius:50%;background:#333;border:2px solid #0a0a0a;display:flex;align-items:center;justify-content:center}
.ep-avatar-hint{font-size:12px;color:#6b7280}

/* 分区标题 */
.ep-section-title{padding:12px 16px 6px;font-size:12px;color:#555;letter-spacing:.05em}

/* 信息卡 */
.ep-card{margin:0 14px 4px;background:#1c1c1c;border-radius:14px;overflow:hidden}
.ep-row{display:flex;align-items:center;padding:15px 16px;gap:8px;cursor:pointer}
.ep-row:active{background:rgba(255,255,255,.04)}
.ep-row-label{font-size:15px;font-weight:500;color:#fff;width:72px;flex-shrink:0}
.ep-row-val{flex:1;font-size:14px;color:#9ca3af;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ep-row-arrow{font-size:18px;color:#444;flex-shrink:0;margin-left:4px}
.ep-row-copy{color:#6b7280;flex-shrink:0;cursor:pointer;padding:2px;display:flex;align-items:center}
.ep-row-copy:active{color:#ccff00}
.ep-lock{flex-shrink:0;opacity:.5}
.ep-dim{color:#555}
.ep-divider{height:1px;background:rgba(255,255,255,.06);margin:0 16px}

/* 保存按钮 */
.ep-save-btn{margin:20px 14px 8px;padding:16px;background:#ccff00;border-radius:50px;text-align:center;font-size:16px;font-weight:900;color:#000;cursor:pointer;letter-spacing:.03em;transition:opacity .15s}
.ep-save-btn:active{opacity:.85}

/* ── 头像框页 ─────────────────────────────────────────────── */
.af-preview-section{display:flex;flex-direction:column;align-items:center;padding:28px 0 20px;background:rgba(255,255,255,.02);border-bottom:1px solid rgba(255,255,255,.06)}
.af-preview-wrap{--ad:110px;position:relative;width:110px;height:110px;margin-bottom:10px;overflow:visible}
.af-preview-avatar{width:110px;height:110px;border-radius:50%;background:#222;overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:36px;font-weight:700;color:#888}
.af-preview-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.af-preview-frame{position:absolute;top:50%;left:50%;width:calc(var(--ad) * var(--fscale,1.333));height:calc(var(--ad) * var(--fscale,1.333));transform:translate(calc(-50% + var(--ad) * var(--fx,0.0068)), calc(-50% + var(--ad) * var(--fy,0.0447)));max-width:none;max-height:none;pointer-events:none;z-index:2;display:block;object-fit:contain}
.af-preview-label{font-size:12px;color:#555}
.af-sec-title{padding:16px 16px 10px;font-size:13px;font-weight:700;color:#9ca3af;letter-spacing:.04em}
.af-grid{display:flex;flex-wrap:wrap;gap:12px;padding:0 16px 16px}
.af-item{display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;position:relative;width:88px}
.af-item-img{width:88px;height:88px;border-radius:16px;background:#1c1c1c;border:2px solid transparent;overflow:hidden;display:flex;align-items:center;justify-content:center;transition:border-color .2s;position:relative}
.af-item-img img{width:100%;height:100%;object-fit:cover}
.af-item-none{background:#111}
.af-item.selected .af-item-img{border-color:#ccff00;background:#1a2200}
.af-item-check{position:absolute;top:6px;left:6px;width:20px;height:20px;background:#ccff00;border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:3}
.af-item-name{font-size:10px;color:#9ca3af;text-align:center;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.af-grid-locked .af-item-img{opacity:.35;filter:grayscale(1)}

/* 旧 CSS 兼容（其他地方可能引用） */
.save-btn{margin:8px 12px;padding:14px;background:var(--neon);border-radius:12px;text-align:center;font-size:15px;font-weight:800;color:#000;cursor:pointer}
.skip-row{text-align:center;padding:12px;color:var(--dim);font-size:13px;cursor:pointer}
.avatar-upload-img{width:88px;height:88px;border-radius:50%;border:2.5px solid rgba(255,255,255,.2);object-fit:cover}

/* ══════════════════════════════════════════════════════════════════ */
/*  钱包                                                              */
/* ══════════════════════════════════════════════════════════════════ */
.wallet-tabs{display:flex;margin:0 16px;border-radius:10px;overflow:hidden;border:1px solid rgba(204,255,0,.25);flex-shrink:0}
.wallet-tab{flex:1;padding:11px 0;text-align:center;font-size:14px;font-weight:600;color:var(--dim);cursor:pointer;transition:all .25s}
.wallet-tab.active{background:var(--neon);color:#000}
.wallet-summary{display:flex;align-items:center;padding:14px 16px;gap:0;flex-shrink:0}
.summary-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px}
.summary-val{font-size:22px;font-weight:900;color:var(--neon)}
.convert-color{color:var(--purple2)}
.summary-label{font-size:11px;color:var(--dim)}
.summary-sep{width:1px;height:36px;background:var(--border)}
.next-convert-row{padding:0 16px 10px;flex-shrink:0}
.next-convert-text{font-size:11px;color:var(--dim2);background:rgba(255,255,255,.05);padding:8px 12px;border-radius:8px;display:block;text-align:center}
.ledger-list{padding:0 12px}
.ledger-row{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--card);border-radius:10px;margin-bottom:6px;border:1px solid var(--border)}
.ledger-info{flex:1;min-width:0}
.ledger-source{font-size:13px;font-weight:600;display:block;margin-bottom:2px}
.ledger-note{font-size:11px;color:var(--dim);display:block;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ledger-time{font-size:10px;color:rgba(196,181,253,.5)}
.ledger-amount{font-size:16px;font-weight:800;flex-shrink:0;margin-left:8px}
.amount-pos{color:var(--green)}
.amount-neg{color:var(--red)}
.history-list{padding:0 12px}
.history-card{background:var(--card);border-radius:12px;border:1px solid var(--border);padding:14px 16px;margin-bottom:8px}
.history-date-row{display:flex;justify-content:space-between;margin-bottom:10px}
.history-date{font-size:13px;font-weight:700}
.history-next{font-size:11px;color:var(--dim)}
.history-nums{display:flex;align-items:center;gap:12px}
.history-num-item{display:flex;flex-direction:column;align-items:center;gap:3px}
.history-num{font-size:18px;font-weight:900;color:var(--red)}
.aps-color{color:var(--neon)}
.history-num-label{font-size:11px;color:var(--dim)}
.history-arrow{font-size:18px;color:var(--dim)}

/* ══════════════════════════════════════════════════════════════════ */
/*  战绩                                                              */
/* ══════════════════════════════════════════════════════════════════ */
.summary-card-battles{margin:4px 12px 8px;display:flex;align-items:center;background:var(--card2);border-radius:14px;border:1px solid var(--border);padding:14px 16px;gap:0}
.summary-item-b{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px}
.summary-val-b{font-size:22px;font-weight:900}
.val-win{color:var(--green)}
.val-loss{color:var(--red)}
.summary-lbl{font-size:11px;color:var(--dim)}
.summary-divider{width:1px;height:40px;background:var(--border)}
.battle-list{padding:0 12px}
.battle-card{background:var(--card);border-radius:12px;border:1px solid var(--border);padding:14px 16px;margin-bottom:8px;cursor:pointer}
.battle-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}
.battle-table-info{flex:1}
.battle-table{font-size:15px;font-weight:700;display:block;margin-bottom:2px}
.battle-store{font-size:11px;color:var(--dim)}
.battle-diff{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0}
.battle-diff-num{font-size:18px;font-weight:900}
.battle-diff-lbl{font-size:10px;color:var(--dim)}
.diff-pos{color:var(--green)}
.diff-neg{color:var(--red)}
.diff-zero{color:var(--dim)}
.battle-row{display:flex;gap:14px;margin-bottom:10px}
.battle-meta-item{display:flex;flex-direction:column;gap:2px}
.battle-meta-lbl{font-size:10px;color:var(--dim)}
.battle-meta-val{font-size:14px;font-weight:700}
.rank-val{color:var(--purple2)}
.rank-top{color:var(--gold)}
.battle-footer{display:flex;justify-content:space-between;align-items:center}
.battle-date{font-size:11px;color:var(--dim)}
.battle-aps{font-size:12px;font-weight:700;color:var(--neon);background:rgba(204,255,0,.1);padding:2px 8px;border-radius:6px}
.empty-state{display:flex;flex-direction:column;align-items:center;padding:40px 20px;gap:10px}
.empty-icon{font-size:48px}
.empty-text{font-size:14px;color:var(--dim);font-weight:600}
.empty-sub{font-size:12px;color:#555;text-align:center}

/* ══════════════════════════════════════════════════════════════════ */
/*  决策币提取                                                        */
/* ══════════════════════════════════════════════════════════════════ */
.withdrawal-tabs{display:flex;margin:0 16px;border-radius:10px;overflow:hidden;border:1px solid rgba(204,255,0,.25);flex-shrink:0}
.not-seated-card{margin:16px 12px;padding:30px;text-align:center;background:var(--card);border-radius:14px;border:1px solid var(--border);display:flex;flex-direction:column;align-items:center;gap:8px}
.not-seated-icon{font-size:40px}
.not-seated-title{font-size:16px;font-weight:700}
.not-seated-sub{font-size:12px;color:var(--dim);line-height:1.6}
.seat-card{margin:8px 12px;padding:14px 16px;background:var(--card2);border-radius:12px;border:1px solid rgba(204,255,0,.2);display:flex;justify-content:space-between;align-items:center}
.seat-info-block{flex:1}
.seat-table-name{font-size:15px;font-weight:700;display:block;margin-bottom:2px}
.seat-num-txt{font-size:13px;color:var(--dim2)}
.seat-badge-on{padding:4px 12px;background:rgba(204,255,0,.15);border:1px solid rgba(204,255,0,.3);border-radius:8px;font-size:12px;font-weight:700;color:var(--neon)}
.balance-row{display:flex;align-items:center;margin:0 12px 8px;padding:14px 16px;background:var(--card);border-radius:12px;border:1px solid var(--border)}
.balance-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px}
.balance-val{font-size:20px;font-weight:900;color:var(--neon)}
.balance-lbl{font-size:11px;color:var(--dim)}
.balance-divider{width:1px;height:36px;background:var(--border)}
.limit-card{margin:0 12px 8px;padding:14px 16px;background:var(--card);border-radius:12px;border:1px solid var(--border)}
.limit-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.limit-lbl{font-size:13px;color:var(--dim2);font-weight:600}
.limit-vals{font-size:14px;font-weight:700;color:var(--neon)}
.limit-bar-bg{height:6px;background:rgba(255,255,255,.1);border-radius:3px;overflow:hidden;margin-bottom:10px}
.limit-bar-fill{height:100%;background:linear-gradient(90deg,var(--neon),#00d4aa);border-radius:3px;transition:width .4s ease}
.extend-btn{padding:10px 16px;background:rgba(204,255,0,.08);border:1px solid rgba(204,255,0,.25);border-radius:10px;text-align:center;font-size:13px;font-weight:700;color:var(--neon);cursor:pointer}
.form-card{margin:0 12px 8px;background:var(--card);border-radius:12px;border:1px solid var(--border);overflow:hidden}
.form-item-w{padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.04)}
.form-item-w:last-child{border-bottom:none}
.form-label-w{font-size:12px;color:var(--dim);margin-bottom:6px;display:block}
.form-input-w{width:100%;background:transparent;color:var(--white);font-size:15px;font-weight:600;border:none;outline:none}
.form-input-w::placeholder{color:rgba(196,181,253,.3);font-weight:400}
.hint-text{padding:0 16px 8px;font-size:11px;color:var(--dim);text-align:center}
.submit-btn{margin:4px 12px 8px;padding:14px;background:var(--neon);border-radius:12px;text-align:center;font-size:15px;font-weight:800;color:#000;cursor:pointer}
.history-card-w{margin:0 12px 8px;padding:14px 16px;background:var(--card);border-radius:12px;border:1px solid var(--border)}
.history-top-w{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.history-amount-w{font-size:16px;font-weight:800;color:var(--neon)}
.history-status-w{padding:2px 8px;border-radius:6px;font-size:11px;font-weight:700}
.status-pending-w{background:rgba(251,191,36,.15);color:var(--gold)}
.status-approved-w{background:rgba(74,222,128,.12);color:var(--green)}
.status-rejected-w{background:rgba(248,113,113,.12);color:var(--red)}
.history-meta-w{display:flex;gap:12px;margin-bottom:4px;flex-wrap:wrap}
.history-meta-txt-w{font-size:11px;color:var(--dim)}
.history-time-w{font-size:11px;color:rgba(196,181,253,.5)}
.history-note-w{font-size:11px;color:var(--gold);margin-top:4px;display:block}

/* ══════════════════════════════════════════════════════════════════ */
/*  消息中心                                                          */
/* ══════════════════════════════════════════════════════════════════ */
.msg-toolbar{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;flex-shrink:0}
.msg-count{font-size:12px;color:var(--dim)}
.msg-actions{display:flex;gap:12px}
.msg-action{font-size:12px;color:var(--dim2);cursor:pointer}
.msg-action-danger{color:var(--red)}
.msg-card{margin:0 12px 6px;padding:14px 16px;background:var(--card);border-radius:12px;border:1px solid var(--border);position:relative;cursor:pointer}
.msg-card-unread{border-color:rgba(204,255,0,.2);background:rgba(204,255,0,.02)}
.msg-unread-dot{position:absolute;top:16px;right:16px;width:8px;height:8px;border-radius:50%;background:var(--neon)}
.msg-top-row{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:5px}
.msg-title{font-size:14px;font-weight:700;flex:1;margin-right:8px}
.msg-time{font-size:11px;color:rgba(196,181,253,.5);white-space:nowrap}
.msg-content{font-size:12px;color:var(--dim);line-height:1.5}

/* ══════════════════════════════════════════════════════════════════ */
/*  门店选择弹窗                                                      */
/* ══════════════════════════════════════════════════════════════════ */
.picker-panel{position:relative;background:rgba(18,18,18,.98);border-top:1px solid rgba(255,255,255,.08)}
.picker-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.06)}
.picker-title{font-size:16px;font-weight:700}
.picker-close{font-size:22px;color:var(--dim);cursor:pointer;line-height:1}
.picker-list{padding:8px 0}
.picker-item{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;cursor:pointer}
.picker-item-left{display:flex;align-items:center;gap:10px}
.picker-dot-store{width:8px;height:8px;border-radius:50%}
.dot-open{background:var(--green)}
.dot-closed{background:var(--red)}
.picker-item-name{font-size:14px;font-weight:600}
.picker-check{color:var(--neon);font-size:16px;font-weight:700}
.picker-item-active{background:rgba(204,255,0,.05)}

/* ══════════════════════════════════════════════════════════════════ */
/*  战绩详情弹窗                                                      */
/* ══════════════════════════════════════════════════════════════════ */
.tree-mask{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:300}
.tree-modal{position:fixed;bottom:0;left:0;right:0;z-index:301;background:#1a0030;border-radius:20px 20px 0 0;max-height:70vh;display:flex;flex-direction:column}
.tree-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.06);flex-shrink:0}
.tree-title{font-size:16px;font-weight:700}
.tree-close{cursor:pointer;font-size:20px;color:var(--dim2)}
.tree-scroll{flex:1;overflow-y:auto;padding:12px 16px}
.tree-seat-block{margin-bottom:16px}
.tree-seat-label{display:flex;align-items:center;gap:6px;margin-bottom:8px}
.tree-seat-dot{width:8px;height:8px;border-radius:50%;background:var(--neon);flex-shrink:0}
.tree-seat-txt{font-size:13px;font-weight:700;color:var(--dim2)}
.tree-seat-count{font-size:11px;color:var(--dim2);background:rgba(255,255,255,.07);padding:1px 6px;border-radius:4px}
.tree-player-row{display:flex;align-items:center;gap:10px;margin-bottom:6px;padding-left:14px}
.tree-branch{width:1px;height:100%;background:var(--border);position:absolute}
.tree-player-info{flex:1}
.tree-player-name{font-size:13px;font-weight:600;display:block}
.tree-player-aces{font-size:10px;color:var(--dim)}
.tree-player-nums{display:flex;flex-direction:column;gap:2px;text-align:right}
.tree-num-item{font-size:11px;color:var(--dim)}
.tree-diff{font-size:13px;font-weight:700}

/* ══════════════════════════════════════════════════════════════════ */
/*  动画                                                              */
/* ══════════════════════════════════════════════════════════════════ */
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.fade-up{animation:fadeUp .3s ease}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.fade-in{animation:fadeIn .3s ease}

/* 选项弹窗 */
.action-sheet-mask{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:200;display:flex;align-items:flex-end}
.action-sheet{background:#1a0030;border-radius:20px 20px 0 0;width:100%;padding:16px 0 40px;max-height:60vh;overflow-y:auto}
.action-sheet-item{padding:16px 24px;font-size:16px;color:var(--white);cursor:pointer;border-bottom:1px solid rgba(255,255,255,.04)}
.action-sheet-item:last-child{border-bottom:none}
.action-sheet-item.active-item{color:var(--neon)}
.action-sheet-cancel{padding:16px 24px;font-size:16px;color:var(--dim);text-align:center;cursor:pointer;border-top:6px solid rgba(0,0,0,.3)}

/* ══ 我的成就页 ══════════════════════════════════════════════════════ */
.ma-showcase{display:flex;gap:16px;padding:20px 16px 16px;justify-content:flex-start}
.ma-showcase-item{display:flex;flex-direction:column;align-items:center;gap:6px;width:88px}
.ma-showcase-icon{width:80px;height:80px;display:flex;align-items:center;justify-content:center}
.ma-showcase-icon img{width:80px;height:80px;object-fit:contain}
.ma-showcase-name{font-size:12px;color:#fff;font-weight:600;text-align:center;line-height:1.3}
.ma-showcase-desc{font-size:10px;color:#6b7280;text-align:center;line-height:1.3}
.ma-showcase-locked{width:80px;height:80px;border-radius:50%;background:#1c1c1c;border:2px solid #333;display:flex;align-items:center;justify-content:center}
.ma-showcase-locked svg{opacity:.4}
.ma-showcase-locked-text{font-size:11px;color:#6b7280;text-align:center}
.ma-showcase-locked-hint{font-size:9px;color:#444;text-align:center}
.ma-section{padding:4px 16px 8px}
.ma-section-title{font-size:13px;color:#6b7280;font-weight:600;padding:8px 0 12px;letter-spacing:.04em}
/* 已解锁列表 */
.ma-unlocked-list{display:flex;flex-direction:column;gap:0}
.ma-unlocked-item{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.ma-unlocked-icon{width:64px;height:64px;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.ma-unlocked-icon img{width:64px;height:64px;object-fit:contain}
.ma-unlocked-info{flex:1}
.ma-unlocked-date{font-size:11px;color:#6b7280;margin-bottom:4px}
.ma-unlocked-name{font-size:14px;font-weight:700;color:#fff;margin-bottom:2px}
.ma-unlocked-desc{font-size:11px;color:#9ca3af}
/* 未解锁网格 */
.ma-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px 8px;padding-bottom:8px}
.ma-locked-item{display:flex;flex-direction:column;align-items:center;gap:4px}
.ma-locked-icon{width:68px;height:68px;display:flex;align-items:center;justify-content:center;border-radius:50%}
.ma-locked-icon img{width:68px;height:68px;object-fit:contain;filter:grayscale(1) brightness(.45)}
.ma-locked-name{font-size:11px;color:#6b7280;text-align:center;line-height:1.3;font-weight:500}
.ma-locked-desc{font-size:10px;color:#444;text-align:center;line-height:1.2}

/* ══ 桌台详情 - 预约状态卡片 ══════════════════════════════════════════ */
.rsv-card{display:flex;align-items:center;gap:14px;margin:12px 12px 8px;padding:16px;border-radius:14px}
.rsv-none{background:#111;border:1px solid #2a2a2a}
.rsv-pending{background:rgba(251,191,36,.08);border:1px solid rgba(251,191,36,.3)}
.rsv-assigned{background:rgba(74,222,128,.08);border:1px solid rgba(74,222,128,.3)}
.rsv-icon{font-size:28px;flex-shrink:0;width:40px;text-align:center}
.rsv-info{flex:1}
.rsv-title{font-size:15px;font-weight:700;color:#fff;margin-bottom:4px}
.rsv-seat{font-size:18px;font-weight:800;color:#4ade80;margin-bottom:4px}
.rsv-num{font-size:22px;color:#ccff00}
.rsv-hint{font-size:12px;color:#6b7280;line-height:1.4}
.rsv-do-btn{padding:10px 20px;background:#ccff00;color:#000;border:none;border-radius:20px;font-size:14px;font-weight:700;white-space:nowrap;cursor:pointer;flex-shrink:0}
.rsv-do-btn.rsv-disabled{background:#2a2a2a;color:#555;cursor:not-allowed}
.rsv-cancel-btn{padding:8px 14px;background:transparent;color:#9ca3af;border:1px solid #333;border-radius:16px;font-size:12px;cursor:pointer;white-space:nowrap;flex-shrink:0}
.detail-status-label{font-size:12px;color:#9ca3af;margin-left:auto}

#table-detail-content .rsv-card{width:auto;height:auto;flex-shrink:1;overflow:visible;position:static;padding:16px}

.cp-store-bar{display:flex;align-items:center;gap:8px;margin:10px 14px 4px;font-size:12px;color:#9ca3af;flex-wrap:wrap}
.cp-store-lbl{color:#fff;font-weight:700}
.cp-store-sel{background:#1e1e1e;color:#ccff00;border:1px solid #333;border-radius:8px;padding:5px 8px;font-size:12px;font-weight:700}
.cp-store-tip{font-size:10px;color:#6b7280;flex-basis:100%}

.pf-placement-row{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:11px;font-weight:700;color:#4ade80}
.pf-placement-lbl{padding:2px 10px;background:rgba(74,222,128,.15);border:1px solid rgba(74,222,128,.4);border-radius:20px}
.pf-placement-dots{display:inline-flex;gap:5px}
.pf-placement-dot{width:14px;height:14px;border-radius:4px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18)}
.pf-placement-dot.on{background:#4ade80;border-color:#4ade80}
.pf-placement-txt{color:#9ca3af}
.agreement-body{padding:16px 18px;color:#d1d5db;font-size:13px;line-height:1.75}
.agreement-body h3{font-size:17px;color:#fff;margin:0 0 4px}
.agreement-body h4{font-size:14px;color:#ccff00;margin:16px 0 4px}
.agreement-body p{margin:0 0 6px}
.agreement-body .ag-date{font-size:11px;color:#6b7280;margin-bottom:10px}

/* 成就徽章：使用整幅图标，不再套圆形裁剪 */
.pf-ach-img:has(img){background:transparent;border:none;border-radius:0}
.pf-ach-img img{object-fit:contain}

.lg-err{position:absolute;left:12%;width:76%;top:77.6%;display:none;font-size:calc(var(--w) * 0.032);color:#ff6b6b;text-align:center}

/* ── 登录页（整图背景 + 叠加输入/按钮）── */
.lg-stage{--w:min(100vw, calc(100vh * 941 / 1917));width:var(--w);aspect-ratio:941/1917;position:relative;flex-shrink:0}
.lg-art{position:absolute;inset:0;background:url(/h5/images/login/login-bg.webp) center/100% 100% no-repeat}
.lg-input{position:absolute;left:12%;width:76%;top:59.3%;height:calc(var(--w) * 0.125);padding:0 5%;background:rgba(10,6,30,.75);border:1.5px solid rgba(139,92,246,.7);border-radius:calc(var(--w) * 0.03);color:#fff;font-size:calc(var(--w) * 0.05);letter-spacing:.08em;outline:none;box-shadow:inset 0 0 12px rgba(139,92,246,.25);box-sizing:border-box}
.lg-input::placeholder{color:rgba(196,181,253,.45);letter-spacing:.04em}
.lg-input:focus{border-color:#ccff00;box-shadow:0 0 12px rgba(204,255,0,.35)}
.lg-code{top:65.8%;width:44%;height:calc(var(--w) * 0.1);font-size:calc(var(--w) * 0.042)}
.lg-sms{position:absolute;left:58%;width:30%;top:65.8%;height:calc(var(--w) * 0.1);border:1.5px solid rgba(204,255,0,.8);border-radius:calc(var(--w) * 0.03);background:rgba(10,6,30,.75);color:#ccff00;font-size:calc(var(--w) * 0.032);cursor:pointer;padding:0;box-sizing:border-box}
.lg-sms:disabled{opacity:.55;cursor:default}
.lg-agree{position:absolute;left:12%;width:76%;top:71.3%;display:flex;align-items:center;gap:calc(var(--w) * 0.02);font-size:calc(var(--w) * 0.032);color:#c4b5fd;cursor:pointer;line-height:1.35}
.lg-agree input{position:absolute;opacity:0;pointer-events:none}
.lg-box{flex-shrink:0;width:calc(var(--w) * 0.05);height:calc(var(--w) * 0.05);border:1.5px solid rgba(139,92,246,.8);border-radius:calc(var(--w) * 0.012);background:rgba(10,6,30,.7);position:relative;box-sizing:border-box}
.lg-agree input:checked + .lg-box{background:#ccff00;border-color:#ccff00}
.lg-agree input:checked + .lg-box::after{content:'';position:absolute;left:28%;top:8%;width:30%;height:58%;border:solid #000;border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
.lg-agree-txt a{color:#ccff00;text-decoration:none}
.lg-btn{position:absolute;left:12%;width:76%;top:73.4%;cursor:pointer;transition:transform .15s,opacity .2s;-webkit-tap-highlight-color:transparent}
.lg-btn:active{transform:scale(.97)}
.lg-btn.loading{opacity:.6;pointer-events:none}
.lg-hint{position:absolute;left:12%;width:76%;top:79.8%;font-size:calc(var(--w) * 0.03);color:rgba(196,181,253,.6);text-align:center;line-height:1.6}

.cp-promo-tag{display:inline-flex;align-items:center;padding:5px 12px;border-radius:14px;font-size:12px;font-weight:800;color:#1a1200;background:linear-gradient(135deg,#ffd54a,#ff9f1c);box-shadow:0 0 10px rgba(255,170,30,.35);cursor:pointer;white-space:nowrap}
.cp-promo-tag:active{opacity:.8}
.cp-buy-unitprice{font-size:12px;color:#9ca3af}
