/* ============================================================
   汇玩俱乐部助手 · 整站仿制样式
   基准：390x844 视口实测（TECH_VISUAL.md）
   换算：1rem = 50px(390视口) = 100rpx；rem = 设计稿rpx/100
   ============================================================ */
@font-face{
  font-family:'Alimama';
  src:url('../assets/fonts/Alimama.woff2') format('woff2');
  font-weight:normal;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'custom-icon';
  src:url('../assets/fonts/custom-icon.woff2') format('woff2');
  font-weight:normal;font-style:normal;font-display:swap;
}
:root{
  --primary:#1796F0;
  --primary-tab:#0097F3;
  --primary-deep:#3378ed;
  --bg-page:#f6f7f8;
  --bg-card:#ffffff;
  --text-1:#111111;
  --text-2:#222222;
  --text-3:#999999;
  --text-tips:#6b7280;
  --warning:#ff9900;
  --tab-inactive:#818794;
  --line:#f3f4f6;
  --tag-phone-bg:rgba(203,153,246,.2);
  --tag-phone-fg:#D699F6;
  --tag-pc-bg:rgba(0,160,233,.1);
  --tag-pc-fg:#579BEF;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{font-size:min(calc(100vw / 7.8), 50px)}
body{
  font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Helvetica Neue',Helvetica,Arial,'Microsoft YaHei',sans-serif;
  background:#e9edf3;
  color:var(--text-1);
  -webkit-font-smoothing:antialiased;
}
img{display:block;border:none}
button{border:none;background:none;font-family:inherit;cursor:pointer}
input{border:none;outline:none;font-family:inherit}
a{text-decoration:none;color:inherit}

/* ---------- 应用容器（390 居中，桌面两侧露底） ---------- */
.app{
  position:relative;
  max-width:7.8rem;
  margin:0 auto;
  height:100vh;
  height:100dvh;
  background:var(--bg-page);
  overflow:hidden;
  display:flex;
  flex-direction:column;
}

/* ---------- 通用按压态（原站 ui-press 体系） ---------- */
.ui-press{transition:transform .12s ease, opacity .12s ease}
.ui-press:active{transform:scale(.96)}
.ui-press-soft:active{opacity:.7}

/* ---------- 描边字体系 ---------- */
.text-stroke{
  font-family:'Alimama',sans-serif;font-weight:700;color:#111;
  -webkit-text-stroke:.06rem #fff;paint-order:stroke fill;
}
.text-stroke-blue{
  font-family:'Alimama',sans-serif;font-weight:700;color:var(--primary);
  -webkit-text-stroke:.06rem #fff;paint-order:stroke fill;
}
.Alimama{font-family:'Alimama',sans-serif}

/* ============================================================
   头部蓝纹理背景（header-bg 平铺区域）
   ============================================================ */
.header-bg-zone{
  background:url('../assets/images/hw-header-bg.png') center top / 100% auto repeat-y;
  background-color:#4b9fef;
}

/* ============================================================
   顶部导航（首页/消息/我的共用 user-home-header）
   ============================================================ */
.home-header{
  position:relative;z-index:100;
  height:.92rem;flex:none;
  display:flex;align-items:center;
  padding:0 .2rem;
  background:transparent;
}
.home-header__title{
  font-family:'Alimama',sans-serif;
  font-size:.3952rem;font-weight:700;color:#111;
  -webkit-text-stroke:.05rem #fff;paint-order:stroke fill;
  width:.8rem;flex:none;
}
.home-header__search{
  flex:1;height:.62rem;
  background:#fff;border-radius:.1664rem;
  border:1px solid var(--line);
  box-shadow:0 .0208rem .104rem rgba(0,0,0,.05);
  display:flex;align-items:center;
  padding:0 .24rem;gap:.12rem;
  cursor:pointer;
}
.home-header__search .icon-sousuo{
  font-family:'custom-icon';font-size:.28rem;color:#9ca3af;line-height:1;
}
/* 搜索放大镜（custom-icon sousuo 字形） */
.icon-sousuo::before{content:'\e6c1'}
.home-header__search span{
  font-size:.2704rem;color:#9ca3af;
}
.home-header__kefu{
  width:.62rem;height:.62rem;margin-left:.12rem;flex:none;
  border-radius:50%;overflow:hidden;
}
.home-header__kefu img{width:100%;height:100%}

/* ============================================================
   滚动容器（原站 uni-scroll-view：页面 body 不滚，内滚）
   ============================================================ */
.page-scroll{
  flex:1;overflow-y:auto;overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  background:linear-gradient(rgba(255,255,255,.5),rgba(255,255,255,.5)),url('../assets/images/bg_texture.png') center top / 1.9rem 1.9rem repeat;
}
.page-scroll--white{background:#fff}
.page-scroll::-webkit-scrollbar{display:none}

/* ============================================================
   首页 · banner
   ============================================================ */
.home-hero{padding:.44rem .32rem .17rem}
.home-hero img{width:100%;height:auto;border-radius:.16rem}

/* ============================================================
   首页 · 排行榜单区块
   ============================================================ */
.ranking-hub{padding:.17rem .2rem 0}
.ranking-hub__head{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:.15rem;
}
.ranking-hub__title{font-size:.3rem}
.ranking-hub__more{
  font-size:.2288rem;color:var(--text-tips);
  display:flex;align-items:center;gap:.02rem;
}
.ranking-hub__cards{display:flex;gap:.18rem}
.ranking-hub__card{width:3.64rem;height:1.56rem;flex:none}
.ranking-hub__card img{width:100%;height:100%;object-fit:contain}

/* ============================================================
   首页 · 俱乐部卡片（club-card 核心组件）
   ============================================================ */
.club-list{padding:.21rem .2rem .3rem;display:flex;flex-direction:column;gap:.16rem}
.club-card{
  width:7.38rem;min-height:1.94rem;
  background:var(--bg-card);
  border-radius:.2496rem;
  border:1px solid var(--line);
  box-shadow:0 .0416rem .208rem rgba(0,0,0,.05), 0 .0208rem .0832rem rgba(0,0,0,.02);
  padding:.18rem .2rem;
  display:flex;gap:.18rem;
  position:relative;
}
.club-card__logo{
  width:1.56rem;height:1.56rem;flex:none;
  border-radius:.24rem;object-fit:cover;
  background:#f0f1f3;
}
.club-card__body{flex:1;min-width:0;display:flex;flex-direction:column}
.club-card__name-row{display:flex;align-items:center;gap:.12rem}
.club-card__name{
  font-size:.2704rem;font-weight:600;color:var(--text-2);
  font-family:'Alimama',sans-serif;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  max-width:4.4rem;
}
.tag-terminal{
  display:inline-flex;align-items:center;gap:.04rem;
  height:.32rem;padding:0 .1rem;
  border-radius:.1456rem;
  font-size:.208rem;font-weight:700;flex:none;
}
.tag-terminal img{width:.24rem;height:.24rem}
.tag-terminal--phone{background:var(--tag-phone-bg);color:var(--tag-phone-fg)}
.tag-terminal--pc{background:var(--tag-pc-bg);color:var(--tag-pc-fg)}
.club-card__intro{
  margin-top:.09rem;
  font-size:.208rem;line-height:1.5;color:var(--text-3);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.club-card__metrics{
  margin-top:auto;
  display:flex;align-items:center;gap:.1rem;
  font-size:.2288rem;color:var(--text-tips);
}
.club-card__metrics .m,.club-card__metrics .metric{display:flex;align-items:center;gap:.06rem}
.club-card__metrics img{width:.32rem;height:.32rem}
.club-card__metrics i{font-style:normal}

/* ============================================================
   TabBar（平台3项 / 俱乐部端5项 通用）
   ============================================================ */
.tabbar{
  position:relative;z-index:200;flex:none;
  height:1.04rem;background:#fff;
  box-shadow:0 -.0208rem .104rem rgba(0,0,0,.05);
  display:flex;
  padding-bottom:env(safe-area-inset-bottom,0);
}
.tabbar__item{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.04rem;
  color:var(--tab-inactive);
}
.tabbar__item img{width:.46rem;height:.46rem}
.tabbar__item span{font-size:.208rem;line-height:1}
.tabbar__item.active{color:var(--primary-tab)}

/* ============================================================
   消息视图
   ============================================================ */
.msg-filter{
  display:flex;gap:.28rem;align-items:center;
  padding:.14rem .2rem .18rem;flex:none;
}
.msg-filter__item{font-size:.2704rem;color:var(--text-tips);position:relative;padding-bottom:.08rem}
.msg-filter__item.active{color:var(--primary);font-weight:600}
.msg-filter__item.active::after{
  content:'';position:absolute;left:50%;transform:translateX(-50%);bottom:0;
  width:.36rem;height:.06rem;border-radius:.03rem;background:var(--primary);
}
.sys-notice{
  margin:0 .2rem .16rem;
  background:#fff;border-radius:.2496rem;
  border:1px solid var(--line);
  padding:.22rem .24rem;
  display:flex;align-items:center;gap:.2rem;
  box-shadow:0 .0208rem .104rem rgba(0,0,0,.04);
}
.sys-notice__icon{width:.84rem;height:.84rem;border-radius:.2rem;flex:none}
.sys-notice__body{flex:1;min-width:0}
.sys-notice__title{font-size:.2704rem;font-weight:600;color:var(--text-2)}
.sys-notice__desc{font-size:.208rem;color:var(--text-3);margin-top:.06rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sys-notice__arrow{font-family:'custom-icon';color:#c9ced6;font-size:.26rem}
.gzh-banner{
  margin:0 .2rem;
  border-radius:.2rem;overflow:hidden;
  display:flex;align-items:center;gap:.16rem;
  background:linear-gradient(90deg,#e8f6ee,#f2fbf6);
  padding:.16rem .2rem;position:relative;
}
.gzh-banner__logo{width:.72rem;height:.72rem;border-radius:.16rem;background:#fff;flex:none;display:flex;align-items:center;justify-content:center}
.gzh-banner__logo img{width:.56rem;height:.56rem}
.gzh-banner__title{font-size:.2496rem;font-weight:600;color:#1a1a1a}
.gzh-banner__badge{font-size:.18rem;color:#0aa864;background:#d8f5e7;border-radius:.06rem;padding:.01rem .08rem;margin-left:.08rem}
.gzh-banner__desc{font-size:.2rem;color:#6b7280;margin-top:.04rem}
.gzh-banner__btn{
  flex:none;background:#fff;border:1px solid #0aa864;color:#0aa864;
  font-size:.208rem;padding:.08rem .16rem;border-radius:.999rem;
}
.gzh-banner__close{position:absolute;top:.08rem;right:.12rem;color:#c0c4cc;font-size:.24rem}
.empty-block{padding:1.2rem 0;text-align:center;color:var(--text-3);font-size:.2496rem}
.icp{
  text-align:center;font-size:.208rem;color:#c0c4cc;padding:.4rem 0 .3rem;
}

/* ============================================================
   我的视图
   ============================================================ */
.mine-header{padding:.2rem .24rem .24rem}
.mine-header__title{font-size:.36rem;display:block;margin-bottom:.12rem}
.mine-user{
  display:flex;align-items:center;gap:.2rem;
  padding:.1rem 0;
}
.mine-user__avatar{width:1.46rem;height:1.46rem;border-radius:50%;overflow:hidden;flex:none;border:.04rem solid rgba(255,255,255,.7)}
.mine-user__avatar img{width:100%;height:100%}
.mine-user__name{font-size:.3204rem;font-weight:700;color:#111;font-family:'Alimama',sans-serif}
.mine-user__hint{font-size:.2288rem;color:var(--text-tips);margin-top:.08rem}
.mine-card{
  margin:0 .32rem .24rem;
  background:#fff;border-radius:.2496rem;
  border:1px solid var(--line);
  padding:.24rem;
  box-shadow:0 .0208rem .104rem rgba(0,0,0,.04);
}
.mine-card__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.24rem}
.mine-card__title{font-size:.3rem}
.mine-card__more{font-size:.2288rem;color:var(--text-tips)}
.orders-grid{display:flex}
.orders-grid__item{
  flex:1;display:flex;flex-direction:column;align-items:center;gap:.08rem;
  color:var(--text-2);font-size:.208rem;
}
.orders-grid__item img{width:.62rem;height:.62rem}
.func-grid{display:flex;flex-wrap:wrap}
.func-grid__item{
  width:25%;display:flex;flex-direction:column;align-items:center;gap:.1rem;
  padding:.14rem 0;color:var(--text-2);font-size:.208rem;
}
.func-grid__item img{width:.68rem;height:.68rem}

/* ============================================================
   俱乐部详情页（pages-club shell）
   ============================================================ */
.club-navbar{
  position:relative;z-index:100;flex:none;
  height:.92rem;background:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 .0208rem .104rem rgba(0,0,0,.04);
}
.club-navbar__back{position:absolute;left:.1rem;top:.09rem;width:.66rem;height:.66rem}
.club-navbar__title{font-size:.2704rem;font-weight:600;color:#111;font-family:'Alimama',sans-serif}

.club-info{padding:.18rem .2rem 0}
.club-info__top{display:flex;gap:.2rem;align-items:flex-start}
.club-info__logo{width:1.56rem;height:1.56rem;border-radius:.24rem;flex:none;object-fit:cover;background:#eef0f3}
.club-info__mid{flex:1;min-width:0}
.club-info__name{font-size:.2904rem;font-weight:700;color:#111;font-family:'Alimama',sans-serif}
.club-info__sales{margin-top:.14rem;font-size:.2288rem;color:var(--text-tips)}
.club-info__rate{
  flex:none;background:#eaf6ff;border-radius:.16rem;
  padding:.1rem .14rem;text-align:center;
}
.club-info__rate b{display:block;font-size:.32rem;color:var(--primary);font-family:'Alimama',sans-serif}
.club-info__rate i{font-style:normal;font-size:.18rem;color:var(--primary)}
.club-info__chips{display:flex;gap:.12rem;margin-top:.2rem}
.chip{
  height:.44rem;padding:0 .16rem;border-radius:.1rem;
  display:inline-flex;align-items:center;gap:.06rem;
  font-size:.208rem;font-weight:600;
}
.chip--open{background:#e8f8ef;color:#18b566}
.chip--warn{background:#fff4e5;color:var(--warning)}
.chip--ok{background:#e8f8ef;color:#18b566}
.club-info__intro{margin-top:.18rem;font-size:.2288rem;line-height:1.6;color:#333}

.notice-row{
  margin:.2rem .16rem 0;
  background:#fff;border:1px solid #eef1f5;border-radius:.16rem;
  padding:.14rem .2rem;
  display:flex;align-items:center;gap:.12rem;
}
.notice-row__icon{font-family:'custom-icon';color:var(--primary);font-size:.26rem}
.notice-row img.notice-row__icon{width:.34rem;height:.34rem;object-fit:contain;flex:none}
.notice-row__text{flex:1;font-size:.2496rem;color:#111;font-weight:600}
.notice-row__more{font-size:.2288rem;color:var(--primary);display:flex;align-items:center}

.rank-banner{margin:.16rem .2rem 0;overflow:hidden;border-radius:.16rem}
.rank-banner img{width:100%;border-radius:.16rem;margin-top:-.26rem}

/* 游戏 tab（整块抠图按钮） */
.game-tabs{
  display:flex;gap:.14rem;
  padding:.2rem .18rem 0;
  overflow-x:auto;scrollbar-width:none;flex:none;
}
.game-tabs::-webkit-scrollbar{display:none}
.game-tabs img{height:1.5rem;width:auto;flex:none;opacity:.72;filter:grayscale(.35);transition:opacity .15s,filter .15s}
.game-tabs img.active{opacity:1;filter:none}

/* 子 tab 胶囊 */
.sub-tabs{
  display:flex;gap:.16rem;padding:.24rem .2rem .04rem;
  overflow-x:auto;scrollbar-width:none;flex:none;
}
.sub-tabs::-webkit-scrollbar{display:none}
.sub-tab{
  height:.5rem;padding:0 .24rem;border-radius:.999rem;
  font-size:.2288rem;color:#98a2b3;flex:none;
  background:#fff;box-shadow:0 .0208rem .0624rem rgba(13,20,27,.06);
  display:inline-flex;align-items:center;
}
.sub-tab.active{background:var(--primary);color:#fff;font-weight:600}

/* 商品卡两列 */
.store-grid{
  display:flex;flex-wrap:wrap;gap:.16rem .18rem;
  padding:.2rem .2rem 1.4rem;
}
.store-card{
  width:3.6rem;height:4.82rem;
  background:#f8f8f8;border-radius:.208rem;
  overflow:hidden;position:relative;
  display:flex;flex-direction:column;
}
.store-card__corner{
  position:absolute;top:0;left:0;z-index:2;
  background:linear-gradient(90deg,#ff4d4f,#ff7a45);color:#fff;
  font-size:.208rem;font-weight:700;
  padding:.04rem .14rem;border-radius:.208rem 0 .208rem 0;
}
.store-card__corner--lottery{background:linear-gradient(90deg,#ff9900,#ffb347)}
.store-card__pic{
  height:3.26rem;background:linear-gradient(135deg,#2b3a55,#1c2740 60%,#31435f);
  position:relative;
  display:flex;align-items:center;justify-content:center;
}
.store-card__pic img{width:100%;height:100%;object-fit:cover}
.store-card__body{flex:1;padding:.14rem .16rem;display:flex;flex-direction:column;min-height:0}
.store-card__name{
  font-size:.3rem;font-weight:700;color:#111;
  font-family:'Alimama',sans-serif;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4;
}
.store-card__foot{margin-top:auto;display:flex;align-items:center;gap:.08rem}
.store-card__price{color:#ff6a2b;font-size:.44rem;font-weight:700;font-family:'Alimama',sans-serif}
.store-card__price small{font-size:.24rem}
.store-card__sold{font-size:.208rem;color:#999;margin-left:.08rem;flex:1;min-width:0}
.store-card__buy{
  width:.56rem;height:.56rem;flex:none;
  background:#2e9df7;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:.28rem;color:#fff;
  box-shadow:0 .04rem .1rem rgba(21,101,192,.3);
}

/* 悬浮按钮（原站：客服在上、需知在下，均白底圆角胶囊） */
.club-fab{
  position:absolute;right:0;z-index:150;
}
.club-fab--service{
  bottom:2.42rem;width:1.9rem;height:.78rem;
  background:#fff;border-radius:.999rem 0 0 .999rem;
  box-shadow:0 .0208rem .1248rem rgba(13,20,27,.1);
  display:flex;align-items:center;gap:.1rem;padding:0 .12rem 0 .18rem;
}
.club-fab--service img{width:.44rem;height:.44rem;object-fit:contain;flex:none}
.club-fab--service .txt{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.club-fab--service .txt b{font-size:.2288rem;color:var(--primary);font-weight:700}
.club-fab--service .txt span{font-size:.18rem;color:#98a2b3;white-space:nowrap}
.club-fab--notice{
  bottom:1.44rem;width:1.9rem;height:.78rem;
  background:#fff;border-radius:.999rem 0 0 .999rem;
  box-shadow:0 .0208rem .1248rem rgba(13,20,27,.1);
  display:flex;align-items:center;gap:.1rem;padding:0 .12rem 0 .2rem;
}
.club-fab--notice .ico{font-size:.42rem;line-height:1;flex:none}
.club-fab--notice .txt{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.club-fab--notice .txt b{font-size:.2288rem;color:var(--primary);font-weight:700}
.club-fab--notice .txt span{font-size:.18rem;color:#98a2b3;white-space:nowrap}

/* 俱乐部顶部头图 banner */

/* ============================================================
   公告弹窗
   ============================================================ */
.notice-mask{
  position:absolute;inset:0;z-index:500;
  background:rgba(0,0,0,.5);
  display:none;align-items:flex-start;justify-content:center;
}
.notice-mask.show{display:flex}
.notice-modal{
  margin-top:4.62rem;width:6.6rem;
  border-radius:.32rem;overflow:hidden;
  background:#fff;position:relative;
  background-image:url('../assets/cutouts/notice_head_tex.png');
  background-repeat:repeat-x;background-size:100% auto;
  padding-bottom:.2rem;
}
.notice-modal__horn{
  position:absolute;top:-.62rem;left:50%;transform:translateX(-50%);
  width:1.76rem;height:1.68rem;z-index:2;
}
.notice-modal__close{
  position:absolute;top:.56rem;right:.24rem;z-index:3;
  width:.6rem;height:.6rem;
}
.notice-modal__title{
  padding-top:.98rem;text-align:center;
  font-size:.36rem;
}
.notice-modal__meta{margin-top:.14rem;padding:0 .4rem;font-size:.2496rem;color:#98a2b3;text-align:left}
.notice-modal__meta b{color:#111;font-weight:700;font-size:.2704rem}
.notice-modal__body{
  margin:.16rem .32rem 0;height:4.6rem;overflow-y:auto;scrollbar-width:none;
  background:#fdfefe;border-radius:.16rem;
  padding:.24rem .3rem;
  font-size:.2288rem;line-height:1.85;color:#333;
  font-weight:500;text-align:left;
  white-space:pre-wrap;
}
.notice-modal__body p{margin:0}
.notice-modal__body .blank{line-height:.8}
.notice-modal__body::-webkit-scrollbar{display:none}
.notice-modal__pager{
  display:flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.24rem 0 .1rem;
}
.notice-modal__pager img{height:.52rem;width:auto}
.notice-modal__nav{
  font-size:.2704rem;font-weight:700;color:var(--primary);
  display:inline-flex;align-items:center;cursor:pointer;
}
.notice-modal__page{font-size:.2288rem;color:#8aa4c4}

/* ============================================================
   排行榜页（原站：菱格纹理整页 + 金杯hero + 斜切tab + 白色面板）
   ============================================================ */
.rank-page .app{
  background:url('../assets/images/bg_texture.png') center top / 1.9rem 1.9rem repeat;
  background-color:#cfe3f8;
}
.rank-hero{position:relative;height:5.2rem;flex:none;background:linear-gradient(rgba(120,178,238,.28),rgba(78,146,224,.42)),url('../assets/images/bg_texture.png') center top / 1.9rem 1.9rem repeat,#5ea3ee}
.rank-hero__back{
  position:absolute;left:.17rem;top:.29rem;
  width:.48rem;height:.44rem;z-index:5;
}
.rank-hero__trophy{
  position:absolute;right:0;top:.3rem;
  width:3rem;height:auto;z-index:1;
}
.rank-hero__title-row{
  position:relative;z-index:2;
  display:flex;align-items:center;justify-content:center;gap:.14rem;
  padding-top:1.42rem;
}
.rank-hero__wheat{width:.4rem;height:.94rem;flex:none;object-fit:contain}
.rank-hero__title{font-size:.72rem;line-height:1.1}
.rank-hero__sub{
  position:relative;z-index:2;
  margin-top:.16rem;text-align:center;
  font-size:.2496rem;color:#f2f9ff;font-weight:500;letter-spacing:.02rem;
}
.rank-hero__sub .star{color:#57b1f7;font-style:normal;margin-left:.08rem}
.rank-hero__tabs{
  position:absolute;left:.12rem;bottom:.38rem;
  display:flex;gap:.1rem;z-index:4;
}
.rank-tab{
  height:.54rem;padding:0 .3rem;
  font-size:.2496rem;font-weight:700;color:#fff;
  background:transparent;
  display:inline-flex;align-items:center;
  transform:skewX(-8deg);border-radius:.08rem;
  border:.028rem solid #fff;
  white-space:nowrap;cursor:pointer;
}
.rank-tab > span{display:inline-block;transform:skewX(8deg)}
.rank-tab.active{background:#2e9df7;box-shadow:0 .04rem .1rem rgba(21,101,192,.35)}
.rank-tab--sales.active{
  background:url('../assets/cutouts/rank_tab_active.png') center / 100% 100% no-repeat;
  border-color:transparent;color:transparent;
}
/* 白色排行面板 */
.rank-panel{
  flex:1;background:#fff;
  border-radius:.32rem .32rem 0 0;
  position:relative;z-index:3;
  overflow-y:auto;scrollbar-width:none;
  padding:.1rem .2rem .4rem;
}
.rank-panel::-webkit-scrollbar{display:none}
.rank-row{
  min-height:1.52rem;
  display:flex;align-items:center;gap:.16rem;
  padding:.14rem .1rem;
  position:relative;
  border-bottom:1px solid #f2f4f7;
}
.rank-row:last-child{border-bottom:none}
.rank-row--0{background:linear-gradient(90deg,#ffedb0 0%,#fff6d8 60%,#fffbe9 100%)}
.rank-row--1{background:linear-gradient(90deg,#e6eef9 0%,#f4f8fd 60%,#fbfdff 100%)}
.rank-row--2{background:linear-gradient(90deg,#ffe0cc 0%,#fff0e6 60%,#fff8f2 100%)}
.rank-row--0,.rank-row--1,.rank-row--2{border-radius:.16rem;border-bottom:none;margin-bottom:.04rem}
.rank-panel .rank-row:nth-child(4){background:#edf1f7;border-radius:.16rem;border-bottom:none;margin-bottom:.04rem}
.rank-panel .rank-row:nth-child(5){background:#f2f5fa;border-radius:.16rem;border-bottom:none;margin-bottom:.04rem}
.rank-panel .rank-row:nth-child(6){background:#f8fafc;border-radius:.16rem;border-bottom:none;margin-bottom:.04rem}
.rank-row__medal{width:.72rem;height:.66rem;flex:none;margin:0 .02rem;object-fit:contain}
.rank-row__rank{
  width:.58rem;text-align:center;flex:none;
  font-size:.36rem;font-weight:700;color:#98a2b3;font-family:'Alimama',sans-serif;
}
.rank-row__cover{width:.92rem;height:.92rem;border-radius:.16rem;flex:none;object-fit:cover;background:#f0f1f3}
.rank-row__body{flex:1;min-width:0}
.rank-row__name{
  font-size:.3rem;font-weight:700;color:#111;
  font-family:'Alimama',sans-serif;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.rank-row__desc{
  margin-top:.05rem;font-size:.2288rem;color:var(--text-3);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.rank-row__stats{margin-top:.07rem;display:flex;align-items:center;gap:.14rem;font-size:.2288rem;color:var(--text-tips)}
.rank-row__stats .rate{display:inline-flex;align-items:center;color:var(--warning);font-weight:700}
.rank-row__stats img{display:inline-block;width:.28rem;height:.28rem;vertical-align:-.04rem;margin-right:.04rem}
.rank-row__view{flex:none}
.rank-row__view img{height:.58rem;width:auto;cursor:pointer}


/* ============================================================
   搜索页
   ============================================================ */
.search-nav{
  flex:none;height:.96rem;
  display:flex;align-items:center;gap:.16rem;
  padding:0 .16rem;
}
.search-nav__back{width:.54rem;height:.54rem;flex:none}
.search-nav__input{
  flex:1;height:.66rem;background:#fff;border-radius:.166rem;
  border:1px solid var(--line);
  box-shadow:0 .0208rem .104rem rgba(0,0,0,.05);
  display:flex;align-items:center;gap:.12rem;padding:0 .22rem;
}
.search-nav__input .icon-sousuo{font-family:'custom-icon';font-size:.28rem;color:#9ca3af}
.search-nav__input input{flex:1;font-size:.2704rem;color:#111;background:transparent}
.search-nav__input input::placeholder{color:#9ca3af}
.search-body{flex:1;overflow-y:auto;scrollbar-width:none;padding:.16rem .2rem .4rem}
.search-body::-webkit-scrollbar{display:none}
.search-head{font-size:.3rem;font-weight:700;color:#111;margin:.06rem 0 .2rem}
.search-head b{color:#111}
.search-shop{
  background:#fff;border-radius:.208rem;border:1px solid var(--line);
  padding:.2rem;margin-bottom:.2rem;
  box-shadow:0 .0208rem .104rem rgba(0,0,0,.04);
}
.search-shop__top{display:flex;align-items:center;gap:.16rem}
.search-shop__logo{width:1.1rem;height:1.1rem;border-radius:.16rem;flex:none;object-fit:cover}
.search-shop__name{font-size:.32rem;font-weight:700;color:#111;font-family:'Alimama',sans-serif}
.search-shop__status{font-size:.18rem;padding:.02rem .1rem;border-radius:.06rem;margin-left:.1rem;font-weight:600}
.search-shop__status--open{background:#e8f8ef;color:#18b566}
.search-shop__status--closed{background:#eceef1;color:#98a2b3}
.search-shop__count{font-size:.2288rem;color:var(--text-tips);margin-top:.08rem}
.search-shop__count img{display:inline-block;width:.28rem;height:.28rem;vertical-align:-.04rem;margin-right:.04rem}
.search-shop__metrics{margin-top:.08rem;display:flex;align-items:center;gap:.2rem;font-size:.2288rem;color:var(--text-tips)}
.search-shop__metrics .metric{display:flex;align-items:center;gap:.06rem}
.search-shop__metrics img{width:.3rem;height:.3rem}
.search-shop__thumbs{display:flex;gap:.12rem;margin-top:.14rem}
.search-shop__thumb{flex:1;min-width:0}
.search-shop__thumb .t-img{width:100%;height:1.1rem;border-radius:.12rem;object-fit:cover;display:block;background:#eef1f5}
.search-shop__thumb .t-name{
  margin-top:.06rem;font-size:.18rem;color:#333;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.search-shop__thumb .t-sales{font-size:.18rem;color:#98a2b3;margin-top:.02rem}
.search-shop__thumb .t-price{font-size:.2288rem;color:#e64340;font-weight:700;margin-top:.02rem}
.search-shop__prod{margin-top:.12rem;font-size:.208rem;color:#333;display:flex;justify-content:space-between}
.search-shop__prod .price{color:#e64340;font-weight:700}
.search-shop__foot{
  margin-top:.14rem;display:flex;align-items:center;justify-content:space-between;
}
.search-shop__foot .total{font-size:.2288rem;color:var(--text-tips)}
.search-shop__enter{
  background:none;border:none;padding:0;
  color:var(--primary);font-size:.2496rem;font-weight:600;
  display:inline-flex;align-items:center;
}

/* ============================================================
   空态占位（俱乐部端未采集 tab）
   ============================================================ */
.tab-placeholder{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;
  color:#98a2b3;font-size:.2496rem;
}
.tab-placeholder .ico{font-family:'custom-icon';font-size:.8rem;color:#c9ced6}

/* 消息过滤tabs容器（原站 msg-page__filter） */
.refresher-tip{
  position:absolute;top:-.5rem;left:50%;transform:translateX(-50%);
  font-size:.208rem;color:#98a2b3;
}

/* 俱乐部详情页顶部宣传 banner（原站截图裁剪，全宽贴边） */
.club-head-banner{width:100%;background:#fff8ea}
.club-head-banner img{display:block;width:100%;height:auto}

/* ============================================================
   商品详情页 project.html
   ============================================================ */
.gd-hero{position:relative;height:7.2rem;background:#1c1f26;overflow:hidden}
.gd-hero img.gd-hero__img{width:100%;height:100%;object-fit:cover;display:block}
.gd-back{position:absolute;top:.28rem;left:.24rem;width:.62rem;height:.62rem;z-index:3}
.gd-back img{width:100%;height:100%}
.gd-share{position:absolute;top:.28rem;right:.24rem;width:.64rem;height:.64rem;border-radius:50%;
  background:rgba(255,255,255,.32);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:3;border:none;padding:0}
.gd-share img{width:.34rem;height:.34rem}
.gd-card{position:relative;z-index:2;background:#fff;border-radius:.36rem .36rem 0 0;margin-top:-.36rem;padding:.3rem .3rem .36rem}
.gd-price-row{display:flex;align-items:center;justify-content:space-between}
.gd-price{color:#ff5000;font-weight:800}
.gd-price .rmb{font-size:.3rem;margin-right:.04rem}
.gd-price .num{font-size:.68rem;letter-spacing:-.01rem}
.gd-chips{display:flex;gap:.16rem}
.gd-chip{display:inline-flex;align-items:center;gap:.08rem;height:.44rem;padding:0 .18rem;border-radius:.12rem;font-size:.24rem;font-weight:600}
.gd-chip--blue{background:#d8ecfb;color:#1796F0}
.gd-chip--green{background:#dcf3e6;color:#2ba471}
.gd-chip img{width:.28rem;height:.28rem}
.gd-range{margin-top:.1rem;font-size:.26rem;color:var(--text-tips)}
.gd-title{margin-top:.2rem;font-size:.36rem;font-weight:800;color:#111;line-height:1.4}
.gd-tags{margin-top:.16rem;display:flex;gap:.12rem}
.gd-stats{margin-top:.24rem;display:flex;gap:.44rem;font-size:.26rem;color:var(--text-tips)}
.gd-stats b{color:#111;font-weight:700;margin-left:.06rem}
.gd-notice{margin-top:.24rem;background:#f6f7f9;border-radius:.18rem;padding:.22rem .24rem;
  font-size:.25rem;color:#6b7280;line-height:1.65}
.gd-sec{margin-top:.28rem;background:#fff;border-radius:.28rem;padding:.28rem .3rem .32rem}
.gd-sec-hd{display:flex;align-items:center;gap:.14rem;margin-bottom:.24rem}
.gd-sec-hd .bar{width:.09rem;height:.34rem;border-radius:.05rem;background:#1796F0}
.gd-sec-hd .t{font-size:.33rem;font-weight:800;color:#111}
.attach-card{background:#fff;border-radius:.22rem;padding:.24rem;display:flex;gap:.24rem;box-shadow:0 .02rem .1rem rgba(17,24,39,.05)}
.attach-card+.attach-card{margin-top:.2rem}
.attach-card__img{width:1.9rem;height:1.9rem;border-radius:.16rem;object-fit:cover;flex:none}
.attach-card__bd{flex:1;min-width:0;display:flex;flex-direction:column}
.attach-card__name{font-size:.31rem;font-weight:700;color:#111;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.attach-card__desc{margin-top:.1rem;font-size:.26rem;color:#6b7280;line-height:1.45}
.attach-card__meta{margin-top:auto;display:flex;align-items:flex-end;justify-content:space-between}
.attach-card__meta .spec{font-size:.24rem;color:var(--text-tips)}
.attach-card__meta .price{font-size:.34rem;font-weight:800;color:#ff5000}
.gd-rich{margin-top:.28rem;background:#fff;border-radius:.28rem;padding:.28rem .3rem .4rem}
.gd-rich h4{font-size:.31rem;font-weight:800;margin-bottom:.2rem}
.gd-rich img{width:100%;border-radius:.16rem;display:block}
.gd-rich p{margin-top:.18rem;font-size:.27rem;color:#444;line-height:1.7;white-space:pre-line}
.gd-bar{position:fixed;left:0;right:0;bottom:0;z-index:50;background:#fff;
  padding:.16rem .24rem calc(.16rem + env(safe-area-inset-bottom));display:flex;align-items:center;gap:.26rem;
  box-shadow:0 -.02rem .16rem rgba(17,24,39,.06)}
.gd-bar__act{flex:none;width:.86rem;display:flex;flex-direction:column;align-items:center;gap:.04rem;background:none;border:none;padding:0}
.gd-bar__act img{width:.46rem;height:.46rem}
.gd-bar__act span{font-size:.22rem;font-weight:600;color:#1796F0}
.gd-bar__act--gray span{color:#6b7280}
.gd-bar .btn-order{flex:1;height:.94rem;border:none;background:none;padding:0;display:block}
.gd-bar .btn-order img{width:100%;height:100%;object-fit:fill;display:block}
.gd-page{background:#f6f7f8;min-height:100vh;padding-bottom:calc(1.3rem + env(safe-area-inset-bottom))}

/* ============================================================
   下单创建页 createOrder.html
   ============================================================ */
.co-page{min-height:100vh;padding-bottom:calc(1.6rem + env(safe-area-inset-bottom));
  background:linear-gradient(rgba(147,203,247,.28),rgba(147,203,247,.28)),url('../assets/images/bg_texture.png') center top/1.9rem 1.9rem repeat}
.co-nav{position:relative;height:1.1rem;display:flex;align-items:center;justify-content:center}
.co-nav .co-back{position:absolute;left:.24rem;top:.24rem;width:.62rem;height:.62rem;border:none;background:none;padding:0}
.co-nav .co-back img{width:100%;height:100%}
.co-nav .co-title{font-size:.4rem;font-weight:800;color:#12365c;text-shadow:0 0 .04rem #fff,0 0 .02rem #fff;letter-spacing:.02rem}
.co-body{padding:.1rem .24rem 0;display:flex;flex-direction:column;gap:.24rem}
.co-card{background:#fff;border-radius:.24rem;padding:.3rem}
.co-row{display:flex;align-items:center;justify-content:space-between}
.co-label{font-size:.3rem;font-weight:800;color:#111}
/* 步进器 */
.stepper{display:flex;align-items:center;background:#f2f3f5;border-radius:.14rem;overflow:hidden}
.stepper button{width:.72rem;height:.64rem;border:none;background:#e9ebee;font-size:.34rem;color:#333;font-weight:700;line-height:1}
.stepper .stepper__num{width:.9rem;text-align:center;font-size:.3rem;font-weight:700;color:#111;background:#fff;height:.64rem;line-height:.64rem}
/* 优惠券 */
.co-coupon__val{font-size:.28rem;color:#9aa3af;display:flex;align-items:center;gap:.06rem}
.co-coupon__val .arrow{color:#c1c7cf;font-size:.3rem;font-weight:700}
/* 组标题（蓝描边字） */
.co-group{display:flex;align-items:baseline;gap:.14rem;padding:.06rem .06rem 0}
.co-group .t{font-size:.34rem;font-weight:800;color:#1796F0;text-shadow:-.02rem -.02rem 0 #fff,.02rem -.02rem 0 #fff,-.02rem .02rem 0 #fff,.02rem .02rem 0 #fff}
.co-group .opt{font-size:.26rem;color:#7b8794}
/* 表单 */
.co-form-row{display:flex;align-items:center;justify-content:space-between;padding:.26rem 0}
.co-form-row+.co-form-row{border-top:.01rem solid #f1f2f4}
.co-form-row .lb{font-size:.3rem;font-weight:800;color:#111;flex:none}
.co-form-row input{border:none;outline:none;background:none;text-align:right;font-size:.28rem;color:#111;flex:1;margin-left:.3rem;min-width:0}
.co-form-row input::placeholder{color:#b9c0ca}
/* 按钮组 */
.opt-group{display:flex;flex-wrap:wrap;gap:.18rem;margin-top:.2rem}
.opt-btn{border:none;background:#f4f5f7;border-radius:.12rem;padding:.18rem .32rem;font-size:.28rem;font-weight:600;color:#333}
.opt-btn.on{background:#1796F0;color:#fff;font-weight:700}
.co-opt-divide{border-top:.01rem solid #f1f2f4;margin-top:.3rem;padding-top:.26rem}
.opt-hd{font-size:.29rem;font-weight:700;color:#111}
/* 预约 */
.co-book{display:flex;gap:.2rem}
.co-book .pill{flex:none;border:none;background:#f4f5f7;border-radius:.14rem;padding:.2rem .3rem;font-size:.28rem;color:#9aa3af}
/* 备注 */
.co-textarea{width:100%;border:none;outline:none;resize:none;background:#f4f5f7;border-radius:.16rem;
  padding:.24rem;font-size:.28rem;color:#111;min-height:1.5rem;font-family:inherit}
.co-textarea::placeholder{color:#b9c0ca}
/* 底栏 */
.co-bar{position:fixed;left:0;right:0;bottom:0;z-index:50;background:#fff;
  padding:.18rem .3rem calc(.18rem + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:.2rem;
  box-shadow:0 -.02rem .16rem rgba(17,24,39,.06)}
.co-bar__total{font-size:.3rem;color:#111;font-weight:600}
.co-bar__total .num{font-size:.52rem;font-weight:800;color:#ff5000;margin-left:.08rem}
.co-bar__cut{margin-top:.06rem;font-size:.26rem;color:#2ba471;font-weight:600}
.co-bar .btn-order{flex:none;width:2.72rem;height:.92rem;border:none;background:none;padding:0;display:block}
.co-bar .btn-order img{width:100%;height:100%;object-fit:fill;display:block}

/* ============================================================
   登录弹层（全局组件）
   ============================================================ */
.login-mask{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:90;opacity:0;pointer-events:none;transition:opacity .25s}
.login-mask.show{opacity:1;pointer-events:auto}
.login-sheet{position:fixed;left:0;right:0;bottom:0;z-index:91;border-radius:.44rem .44rem 0 0;
  padding:.34rem .4rem calc(.5rem + env(safe-area-inset-bottom));
  background:linear-gradient(rgba(160,212,250,.5),rgba(160,212,250,.5)),url('../assets/images/bg_texture.png') center top/1.9rem 1.9rem repeat;
  transform:translateY(105%);transition:transform .28s ease}
.login-sheet.show{transform:translateY(0)}
.login-sheet__grip{width:.9rem;height:.1rem;border-radius:.05rem;background:rgba(255,255,255,.9);margin:0 auto .22rem}
.login-sheet__close{position:absolute;top:.3rem;right:.3rem;width:.62rem;height:.62rem;border:none;background:none;padding:0}
.login-sheet__close img{width:100%;height:100%}
.login-sheet__title{font-size:.42rem;font-weight:800;color:#111;margin-bottom:.34rem}
.login-sheet__lb{font-size:.3rem;font-weight:800;color:#2b7fd4;text-shadow:-.015rem -.015rem 0 #fff,.015rem -.015rem 0 #fff,-.015rem .015rem 0 #fff,.015rem .015rem 0 #fff;margin:.3rem 0 .14rem}
.login-sheet__field{position:relative;background:#fff;border-radius:.32rem;height:.9rem;display:flex;align-items:center;padding:0 .3rem;
  box-shadow:0 .02rem .12rem rgba(23,110,190,.08)}
.login-sheet__field input{flex:1;border:none;outline:none;background:none;font-size:.3rem;color:#111;min-width:0}
.login-sheet__field input::placeholder{color:#b9c0ca}
.login-sheet__field .btn-getcode{position:absolute;right:.14rem;height:.62rem;border:none;background:none;padding:0 .12rem}
.login-sheet__field .btn-getcode img{height:100%;display:block}
.login-sheet__agree{display:flex;align-items:center;gap:.16rem;margin:.4rem 0 .34rem;font-size:.27rem;color:#555;font-weight:600}
.login-sheet__agree .ck{width:.36rem;height:.36rem;border-radius:50%;background:#fff;border:.02rem solid #e3e6ea;flex:none;
  display:flex;align-items:center;justify-content:center;color:transparent;font-size:.24rem;font-weight:800;line-height:1}
.login-sheet__agree .ck.on{background:#1796F0;border-color:#1796F0;color:#fff}
.login-sheet__agree a{color:#1796F0;text-decoration:none;font-weight:700}
.login-sheet__submit{width:100%;height:.96rem;border:none;background:none;padding:0;display:block}
.login-sheet__submit img{width:100%;height:100%;object-fit:fill;display:block}
.login-sheet__switch{margin-top:.36rem;display:flex;align-items:center;justify-content:center;gap:.12rem;
  border:none;background:none;width:100%;font-size:.29rem;font-weight:700;color:#4b5563}
.login-sheet__switch img{width:.34rem;height:.34rem}

/* ============================================================
   商品tab：左侧分类边栏 + 右栏商品（原站结构）
   ============================================================ */
.goods-topbar{display:flex;align-items:center;justify-content:space-between;padding:.26rem .3rem .1rem}
.goods-topbar .t{font-size:.44rem;font-weight:800;color:#111}
.goods-topbar .searchbox{flex:none;width:4.3rem;height:.68rem;background:#fff;border-radius:.34rem;
  display:flex;align-items:center;gap:.12rem;padding:0 .26rem;font-size:.26rem;color:#b9c0ca}
.goods-topbar .searchbox i{font-style:normal;font-size:.3rem;color:#8b95a1}
.goods-layout{display:flex;gap:.14rem;padding:.2rem .24rem .5rem;align-items:flex-start}
.goods-side{flex:none;width:1.86rem;display:flex;flex-direction:column;gap:.14rem;position:sticky;top:.2rem}
.goods-side__item{position:relative;background:rgba(255,255,255,.66);border-radius:.16rem;
  padding:.22rem .1rem .18rem;display:flex;flex-direction:column;align-items:center;gap:.08rem;overflow:hidden}
.goods-side__item img{width:.92rem;height:.7rem;object-fit:contain}
.goods-side__item span{font-size:.26rem;color:#555;font-weight:600;line-height:1.2;text-align:center}
.goods-side__item.active{background:#fff;box-shadow:0 .02rem .1rem rgba(23,110,190,.08)}
.goods-side__item.active::before{content:'';position:absolute;left:0;top:0;bottom:0;width:.07rem;background:#1796F0;border-radius:0 .04rem .04rem 0}
.goods-side__item.active span{color:#1796F0;font-weight:800}
.goods-main{flex:1;min-width:0}
.goods-sec-title{display:flex;align-items:center;justify-content:center;gap:.18rem;padding:.14rem 0 .24rem}
.goods-sec-title span{font-size:.3rem;font-weight:800;color:#1796F0}
.goods-sec-title i{width:1.1rem;border-top:.02rem dashed rgba(23,150,240,.55)}
.goods-list{display:flex;flex-direction:column;gap:.2rem}
.goods-card{background:#fff;border-radius:.2rem;padding:.18rem;display:flex;gap:.2rem;box-shadow:0 .02rem .1rem rgba(17,24,39,.05)}
.goods-card__imgwrap{flex:none;width:1.62rem;height:1.68rem;border-radius:.14rem;overflow:hidden}
.goods-card__imgwrap img{width:100%;height:100%;object-fit:cover;display:block}
.goods-card__bd{flex:1;min-width:0;display:flex;flex-direction:column}
.goods-card__name{font-size:.3rem;font-weight:800;color:#111;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.goods-card__meta{margin-top:.12rem;font-size:.25rem;color:#6b7280}
.goods-card__meta em{font-style:normal;color:#ff5000;font-weight:700;margin:0 .04rem}
.goods-card__ft{margin-top:auto;display:flex;align-items:center;justify-content:space-between}
.goods-card__price{color:#ff5000;font-weight:800;font-size:.4rem;line-height:1}
.goods-card__price i{font-style:normal;font-size:.26rem;margin-right:.02rem}
.goods-card__cart{width:.5rem;height:.5rem}
