
/* ========== 全局字体系统 ========== */
/* HarmonyOS Sans - 数字/价格主字体 */
@font-face{font-family:'HarmonyOS Sans';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/HarmonyOS_Sans_Regular.woff2') format('woff2')}
@font-face{font-family:'HarmonyOS Sans';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/HarmonyOS_Sans_Medium.woff2') format('woff2')}
@font-face{font-family:'HarmonyOS Sans';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/HarmonyOS_Sans_Bold.woff2') format('woff2')}
@font-face{font-family:'HarmonyOS Sans';font-style:normal;font-weight:900;font-display:swap;src:url('fonts/HarmonyOS_Sans_Black.woff2') format('woff2')}
/* Source Han Sans CN - 中文主字体 */
@font-face{font-family:'Source Han Sans CN';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/SourceHanSansCN-Regular.otf') format('opentype')}
@font-face{font-family:'Source Han Sans CN';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/SourceHanSansCN-Medium.otf') format('opentype')}
@font-face{font-family:'Source Han Sans CN';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/SourceHanSansCN-Bold.otf') format('opentype')}

*{margin:0;padding:0;box-sizing:border-box;}
:root{
  --bg: #f6f6fa;--card:#fff;--primary:#FF4757;--accent:#FF6B35;--purple:#6C5CE7;--blue:#4A90E2;--green:#00C48C;--gold:#FFB142;--text:#1E1E2E;--text2:#6C7293;--hint:#A0A3BD;--border:#ECECF3;--R:2.133333vw;--Rs:2.666667vw;--shadow:0 0.533333vw 3.2vw rgba(100,80,160,0.07);
  --diamond-icon: './uploads/icons/zs.webp';
  --font-cn: 'PingFang SC','Source Han Sans CN','Noto Sans SC','Microsoft YaHei',system-ui,sans-serif;
  --font-num: 'HarmonyOS Sans','PingFang SC',system-ui,sans-serif;
  --font-en: 'HarmonyOS Sans','PingFang SC',system-ui,sans-serif;
  --font-main: 'PingFang SC','Source Han Sans CN','Noto Sans SC','Microsoft YaHei',system-ui,sans-serif;
}
html,body{height:100%;font-family:var(--font-main);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overflow:hidden;overflow-x:hidden;overscroll-behavior:none;}
body{touch-action:pan-y;}
/* ===== 全局货币显示：cw 包裹层保证基线对齐 ===== */
.cw{display:inline-flex;align-items:baseline;gap:0;}
.currency-symbol{margin-right:0;font-family:var(--font-en);font-weight:800;vertical-align:baseline;}
.currency-symbol-sm{font-size:2.4vw;font-weight:500;}
.currency-symbol-md{font-size:3.2vw;}
.currency-symbol-lg{font-size:3.2vw;}
.currency-num{font-family:var(--font-en);font-weight:600;vertical-align:baseline;}
.currency-num-sm{font-size:2.933333vw;}
.currency-num-md{font-size:4.266667vw;}
.currency-num-lg{font-size:4vw;}
/* 仓库页面 sm 统一字号 */
#p-wh .currency-symbol-sm{font-size:2.666667vw;}
#p-wh .currency-num-sm{font-family:var(--font-en);font-weight:500;font-size:2.666667vw;}
.wh-type-tab{position:relative;padding:2.67vw 0;font-size:3.2vw;line-height:4vw;color:#747a72;cursor:pointer;white-space:nowrap;font-family:var(--font-main);}
.wh-type-tab.active{color:#111;}
.wh-type-tab.active::after{content:'';position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:6.4vw;height:.8vw;border-radius:.8vw;background:#ff1512;}
.safe-type-tabs{position:absolute;top:7.2vw;left:60%;transform:translateX(-50%);z-index:3;width:56vw;height:10.133333vw;background:rgba(0,0,0,.72);border-radius:1.6vw;padding:.8vw;display:flex;align-items:center;gap:.8vw;}
.safe-type-tab{flex:1;height:8.533333vw;border-radius:1.066667vw;display:flex;align-items:center;justify-content:center;font-size:3.2vw;line-height:4vw;color:#747a72;font-family:var(--font-main);cursor:pointer;}
.safe-type-tab.active{background:#313131;box-shadow:inset 0 .266667vw .533333vw #ffffff1a, inset -.266667vw -.266667vw .266667vw #00000080, inset 0 0 .533333vw #ffffff1a;color:#fff;}
/* 保险箱卡片：名称/货币/数字统一 2.666667vw 500 */
.safe-price{font-size:3.2vw;font-weight:700;line-height:4vw;}
#p-safe .currency-symbol-sm{font-size:3.2vw;font-weight:700;}
#p-safe .currency-num-sm{font-family:var(--font-en);font-weight:700;font-size:3.2vw;}
#p-safe.active{display:flex !important;flex-direction:column;overflow:hidden;}
#app{max-width:500px;margin:0 auto;height:100%;position:relative;overflow:hidden;overflow-x:hidden;background:var(--bg);}
.page{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;padding-bottom:19.2vw;display:none;overscroll-behavior-y:none;}.page::-webkit-scrollbar{display:none;}.page.active{
  display: block;
  padding-bottom: calc(18vw + env(safe-area-inset-bottom));
  width: 100%;
  height: 100%;
  overflow-y: auto;
  background-color: #f6f6fa;
  background-image: url('uploads/icons/bg-p9cOClCz.webp');
  background-repeat: no-repeat;
  background-size: 100% 67.466667vw;
}#p-customer-service.active,#p-redeem.active,#p-redeem-record.active{display:flex;flex-direction:column;}#p-customer-service.active{padding-bottom:18.67vw !important;}
#p-profile-edit{padding-bottom:24vw !important;background:#f6f6fa !important;}
/* ===== 编辑资料页面样式 ===== */
#p-profile-edit .pe-header{position:sticky;top:0;z-index:10;background:#f6f6fa;height:11.733333vw;display:flex;align-items:center;justify-content:center;}
#p-profile-edit .pe-back{position:absolute;top:50%;transform:translateY(-50%);left:3.2vw;width:8vw;height:8vw;cursor:pointer;object-fit:contain;}
#p-profile-edit .pe-title{line-height:11.733333vw;font-size:3.733333vw;max-width:42.666667vw;font-family:'PingFangSC Medium',var(--font-main);text-transform:uppercase;color:#111;font-weight:400;text-align:center;}
#p-profile-edit .pe-body{padding:6.4vw 5.33vw 8vw;}
#p-profile-edit .pe-top-row{display:flex;align-items:flex-start;gap:4.8vw;margin-bottom:7.47vw;}
#p-profile-edit .pe-avatar-wrap{position:relative;flex-shrink:0;}
#p-profile-edit .pe-avatar{width:21.33vw;height:21.33vw;border-radius:50%;object-fit:cover;border:2px solid #eee;}
#p-profile-edit .pe-avatar-edit{position:absolute;right:0;bottom:0;width:6.266667vw;height:6.266667vw;z-index:10;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(0,0,0,.15);cursor:pointer;border:1.5px solid #fff;}
#p-profile-edit .pe-avatar-edit img{width:6.266667vw;height:6.266667vw;object-fit:contain;}
#p-profile-edit .pe-nick-wrap{flex:1;padding-top:5vw;max-width:53.333333vw;}
#p-profile-edit .pe-nick-label{margin-top:4vw;font-family:'PingFangSC Medium',var(--font-main);font-size:3.2vw;color:#747a72;display:block;}
#p-profile-edit .pe-nick-row{display:flex;align-items:center;border-bottom:.266667vw solid #000000;padding-bottom:1.066667vw;}
#p-profile-edit #peNickname{padding:0;height:100%;font-size:4vw;color:#111;background:none;min-width:0;font-family:'PingFangSC Medium',var(--font-main);flex:1;border:none;outline:none;font-weight:400;}
#p-profile-edit .pe-random-btn{width:5.333333vw;height:5.333333vw;object-fit:contain;cursor:pointer;flex-shrink:0;margin-left:1.066667vw;}
#p-profile-edit .pe-nick-error{color:#b98d1b;font-size:2.666667vw;line-height:2.666667vw;margin-top:1.866667vw;font-weight:400;height:2.666667vw;visibility:hidden;}
#p-profile-edit .pe-nick-error.show{visibility:visible;}
/* Tab 切换（同充值页 title-tabs 样式） */
#p-profile-edit .pe-title-tabs{width:85vw;height:10.666667vw;background:#e8e8ea;border-radius:1.066667vw;display:flex;align-items:center;justify-content:space-between;column-gap:1.6vw;padding:0 1.066667vw;margin:0 auto 3.733333vw;}
#p-profile-edit .pe-title-tab{flex:1;height:8.533333vw;line-height:8.533333vw;text-align:center;border-radius:.533333vw;color:#747a72;font-size:3.2vw;font-family:var(--font-main);font-weight:400;display:flex;align-items:center;justify-content:center;transition:all .2s;cursor:pointer;}
#p-profile-edit .pe-title-tab.active{background:#fff;color:#111;box-shadow:0 .266667vw 1.066667vw rgba(0,0,0,.08);}
/* 头像网格 */
#p-profile-edit .pe-avatar-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:3.2vw;padding:0 0.53vw;}
/* 圆点指示器 */
#p-profile-edit .pe-dots{display:flex;align-items:center;justify-content:center;margin-top:7.466667vw;column-gap:.8vw;}
#p-profile-edit .pe-dots span{width:1.333333vw;height:.8vw;background:#ccd1d2;transform:skew(-30deg);border-radius:.266667vw 1px;display:inline-block;transition:all .3s;}
#p-profile-edit .pe-dots span.active{background:#111;width:2.933333vw;}
/* 头像框区域 */
#p-profile-edit .pe-frame-area{text-align:center;padding:10.666667vw 0;color:#aaa;font-size:.88em;font-weight:400;}
/* 保存按钮 */
#p-profile-edit .pe-save-wrap{position:fixed;bottom:0;left:0;right:0;max-width:133.33vw;margin:0 auto;padding:3.2vw 5.33vw calc(3.2vw + env(safe-area-inset-bottom));background:#f6f6fa;z-index:10;}
#p-profile-edit .pe-save-btn{width:100%;padding:3.733333vw 0;border:none;border-radius:1.066667vw;background:#000;color:#fff;font-size:3.733333vw;font-weight:400;cursor:pointer;font-family:var(--font-main);letter-spacing:0;-webkit-tap-highlight-color:transparent;}
#p-home.active{background-color:transparent;background-image:none;}
#p-wh.active{display:flex !important;flex-direction:column;overflow:hidden;}
#p-hash-algorithm.active{display:flex;flex-direction:column;background:#fff!important;background-image:none!important;padding-bottom:0!important;}
.hash-algorithm-page{font-family:var(--font-main);color:#111;background:#fff;}
.ha-header{height:13.066667vw;min-height:13.066667vw;background:#fff;border-bottom:.266667vw solid #f0f0f0;display:flex;align-items:center;justify-content:space-between;padding:0 3.2vw;position:sticky;top:0;z-index:20;}
.ha-back{width:10.133333vw;height:10.133333vw;border:0;background:transparent;display:flex;align-items:center;justify-content:flex-start;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.ha-back img{width:6.4vw;height:6.4vw;object-fit:contain;display:block;}
.ha-title{font-size:4.266667vw;line-height:5.866667vw;font-weight:500;color:#111;text-align:center;}
.ha-header-spacer{width:10.133333vw;height:10.133333vw;}
.ha-body{flex:1;overflow-y:auto;overflow-x:hidden;background:#fff;-webkit-overflow-scrolling:touch;padding-bottom:8.533333vw;}
.ha-body::-webkit-scrollbar{display:none;}
.ha-banner{display:block;width:100%;height:auto;background:#000;}
.ha-intro{padding:5.333333vw 4.8vw 3.733333vw;font-size:3.2vw;line-height:5.066667vw;font-weight:400;color:#111;}
.ha-flow{padding:0 4.533333vw 6.666667vw;display:flex;align-items:center;justify-content:space-between;gap:4vw;}
.ha-seed-card{width:27.2vw;min-width:27.2vw;height:23.733333vw;background:#f6f6fa;border-radius:1.6vw;padding:2.666667vw 3.2vw;display:flex;flex-direction:column;align-items:center;gap:1.6vw;}
.ha-seed-pill{width:100%;height:8vw;border-radius:.533333vw;display:flex;align-items:center;justify-content:center;font-size:3.2vw;font-weight:400;color:#111;background:#fff;}
.ha-seed-pill.muted{background:#cdd2d3;color:#70777a;}
.ha-seed-plus{width:5.333333vw;height:5.333333vw;object-fit:contain;display:block;margin:-.533333vw 0;}
.ha-arrow-wrap{position:relative;flex:0 0 18.666667vw;min-width:18.666667vw;height:14.4vw;display:flex;align-items:center;justify-content:center;margin-right:7.2vw;}
.ha-arrow-rect{height:7.2vw;min-width:20vw;padding:0 2.666667vw 0 3.2vw;background:#3194ff;border-radius:1.333333vw 0 0 1.333333vw;display:flex;align-items:center;justify-content:center;color:#fff;font-size:3.2vw;font-weight:500;white-space:nowrap;position:relative;flex:1;margin-top:2.133333vw;}
.ha-arrow-rect::after{content:'';position:absolute;left:100%;top:50%;transform:translateY(-50%);object-fit:contain;width:8.4vw;height:11.066667vw;margin-left:-.266667vw;background:url('./uploads/icons/triangle-ByPIDj-c.webp') center/contain no-repeat;}
.ha-result-card{width:28.8vw;min-width:28.8vw;height:12.8vw;background:#111;border-radius:1.333333vw;display:flex;align-items:center;justify-content:center;gap:1.6vw;color:#fff;font-size:3.2vw;font-weight:500;white-space:nowrap;}
.ha-result-card img{width:5.066667vw;height:5.066667vw;object-fit:contain;filter:invert(1) brightness(3);opacity:.95;}
.ha-section{position:relative;padding:5.066667vw 4.8vw 0;border-top:2.133333vw solid #f6f7fb;overflow:hidden;}
.ha-libra-bg{position:absolute;top:-5.333333vw;right:0;width:26.666667vw;height:26.666667vw;object-fit:contain;pointer-events:none;z-index:0;}
.ha-section-title{position:relative;z-index:1;display:flex;align-items:center;gap:1.866667vw;margin-bottom:5.066667vw;font-size:4.8vw;font-weight:800;line-height:6.4vw;color:#111;}
.ha-section-title img{width:4.8vw;height:4.8vw;object-fit:contain;}
.ha-step{position:relative;z-index:1;margin-bottom:3.733333vw;}
.ha-step-head{display:flex;align-items:center;gap:2.133333vw;margin-bottom:2.666667vw;}
.ha-step-num{width:4.8vw;height:4.8vw;object-fit:contain;display:block;}
.ha-step-head h3{margin:0;font-size:3.2vw;line-height:4.8vw;font-weight:400;color:#111;}
.ha-seed-detail-card,.ha-example-card{background:#fff;border:.266667vw solid #e9e9ef;border-radius:2.133333vw;padding:0 4vw;}
.ha-seed-detail-row{display:grid;grid-template-columns:20.8vw 1fr;gap:3.2vw;align-items:center;min-height:14.4vw;font-size:3.2vw;line-height:4.8vw;color:#727a82;}
.ha-seed-detail-row+.ha-seed-detail-row{border-top:.266667vw solid #eee;}
.ha-seed-detail-row b{font-size:3.2vw;font-weight:400;color:#111;}
.ha-bullets{margin:0;padding-left:0;list-style:none;font-size:3.2vw;line-height:4.8vw;color:#111;font-weight:400;}
.ha-bullets li{position:relative;padding-left:2.933333vw;margin:1.066667vw 0;}
.ha-bullets li::before{content:'';position:absolute;left:0;top:2.133333vw;width:1.066667vw;height:1.066667vw;border-radius:50%;background:#111;}
.ha-example{border-top:2.133333vw solid #fff;padding-top:5.6vw;}
.ha-example .ha-section-title{margin-bottom:4.533333vw;}
.ha-example-card{position:relative;background:#f7f7fb;border:0;border-radius:2.133333vw;padding:4.533333vw 4vw;margin-bottom:4.533333vw;}
.ha-example-row{display:grid;grid-template-columns:21.866667vw minmax(0,1fr);gap:1.6vw;min-height:6.933333vw;align-items:start;font-size:3.2vw;line-height:4.8vw;color:#767e86;}
.ha-example-row b{color:#111;font-weight:400;}
.ha-example-row span{white-space:nowrap;}
.ha-down-circle{position:relative;width:11.2vw;height:11.2vw;margin:-5.866667vw auto -1.066667vw;border-radius:50%;background:#fff;box-shadow:0 .533333vw 2.133333vw rgba(0,0,0,.04);display:flex;align-items:center;justify-content:center;z-index:3;}
.ha-down-circle img{width:5.333333vw;height:5.333333vw;object-fit:contain;}
.ha-code-block{font-size:3.2vw;line-height:4.8vw;color:#111;word-break:break-word;font-weight:400;}
.ha-code-block p{margin:0 0 1.866667vw;}
.ha-code-block b{font-weight:400;}
.ha-verify{position:relative;z-index:1;margin:3.2vw 2.133333vw 0;padding-left:3.2vw;font-size:3.2vw;line-height:4.8vw;color:#111;font-weight:400;}
.ha-verify::before{content:'';position:absolute;left:0;top:2.133333vw;width:1.066667vw;height:1.066667vw;border-radius:50%;background:#111;}
.ha-verify a{display:block;color:#ff1512;text-decoration:underline;margin-top:.533333vw;word-break:break-all;}
/* Top */
.topbar{background:rgb(255,255,255);padding:0 3.2vw;display:flex;align-items:center;justify-content:space-between;width:100%;height:11.733333vw;position:relative;box-shadow:0 .533333vw .8vw #0000000f;}
#p-home > .topbar{position:sticky;top:0;z-index:60;}
.logo{font-size:1.15em;font-weight:900;display:flex;align-items:center;}.logo span:first-child{color:var(--primary);}.logo span:last-child{color:var(--text);}
.bal-chip{background:linear-gradient(135deg,#FFF5EE,#FFFAEB);padding:1.333333vw 3.733333vw;border-radius:20px;font-size:0.82em;font-weight:700;color:var(--primary);cursor:pointer;border:1px solid #ffe0cc;}
/* 顶部右侧按钮组 */
.topbar-actions{display:flex;align-items:center;gap:0.8vw;}
.lang-btn{display:flex;align-items:center;gap:1.07vw;padding:1vw;border-radius:5.33vw;font-size:0.8em;font-weight:700;color:var(--purple);cursor:pointer;border:none;background:transparent;-webkit-tap-highlight-color:transparent;}
.lang-btn:active{transform:scale(.94);}
.lang-btn svg{width:4vw;height:4vw;flex-shrink:0;}
.join-btn{display:flex;align-items:center;gap:1.07vw;padding:1vw;border-radius:5.33vw;font-size:0.8em;font-weight:700;color:#fff;cursor:pointer;border:none;background:transparent;-webkit-tap-highlight-color:transparent;}
.join-btn:active{transform:scale(.94);}
.topbar-wallet-btn{height:8.533333vw;min-width:28.8vw;border:.266667vw solid #111;border-radius:2.4vw;background:#fff;display:none;align-items:center;justify-content:space-between;padding:.8vw .8vw .8vw 2.666667vw;font-family:var(--font-en);font-size:3.2vw;font-weight:800;color:#111;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.topbar-wallet-btn:active{transform:none;}
.topbar-wallet-plus{width:7.2vw;height:7.2vw;border-radius:1.6vw;background:#111;color:#fff;display:flex;align-items:center;justify-content:center;font-size:6.133333vw;font-weight:400;line-height:6.4vw;margin-left:2.133333vw;}
/* 语言下拉面板 */
#langPanel{position:fixed;top:11.733333vw;left:50%;transform:translateX(-50%);width:100%;max-width:500px;background:#fff;z-index:1000001;box-shadow:0 8px 32px rgba(0,0,0,0.18);border-radius:0 0 2vw 2vw;overflow:hidden;max-height:0;transition:max-height 0.35s cubic-bezier(0.4,0,0.2,1);}
#langPanel.open{max-height:90.666667vw;padding:5.333333vw 4.266667vw 4.266667vw;}
.lang-panel-close{display:none;}
.lang-option{margin-bottom:2.666667vw;width:100%;height:10.666667vw;background:#f6f6fa;border-radius:1.066667vw;display:flex;align-items:center;justify-content:center;font-size:3.2vw;color:#747a72;line-height:3.2vw;font-family:var(--font-main);font-weight:500;position:relative;}
.lang-option:last-child{border-bottom:none;}
.lang-option:active{background:#e8e8ec;}
.lang-option.active{color:#333;font-weight:700;}
.lang-option .check{width:4.266667vw;height:4.266667vw;position:absolute;top:50%;right:4.266667vw;transform:translateY(-50%);object-fit:contain;}
#langOverlay{position:fixed;top:11.733333vw;left:0;right:0;bottom:0;background:rgba(0,0,0,.8);z-index:1000000;display:none;}
#langOverlay.show{display:block;}
/* Tab - 放在#app外部，独立fixed定位 */
.tabbar{position:fixed;bottom:0;left:0;width:100%;height:calc(13vw + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--border);display:flex !important;z-index:100;visibility:visible !important;opacity:1 !important;transition:opacity .2s ease,transform .2s ease;}
.tabbar.qs-open{opacity:0 !important;transform:translateY(100%) !important;pointer-events:none !important;}
/* PWA standalone 模式：底栏加高补偿（standalone 模式下 safe-area-inset-bottom 可能偏小） */
@media all and (display-mode: standalone){
  .tabbar{height:calc(14.5vw + env(safe-area-inset-bottom, 0px) + 4px) !important;}
}
@media all and (display-mode: fullscreen){
  .tabbar{height:calc(14.5vw + env(safe-area-inset-bottom, 0px) + 4px) !important;}
}
.tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0.27vw;cursor:pointer;transition:.2s;-webkit-tap-highlight-color:transparent;position:relative;}
.tab .ti{width:6.4vw;height:6.4vw;display:flex;align-items:center;justify-content:center;transition:.2s;}
.tab .ti img{width:100%;height:100%;object-fit:contain;}
.tab .tl{font-size:2.4vw;font-weight:400;color:var(--hint);}
.tab.on .tl{color:#111;font-weight:400;}
.tab.on .ti{transform:scale(1.12);}
/* 底部tab选中红色下划线 - 已删除 */
/* Banner - 真正的轮播滑动效果 */
.banner{position:relative;margin:2.933333vw 1.6vw 0;width:calc(100% - 3.2vw);height:29.333333vw;z-index:1;overflow:hidden;-webkit-overflow-scrolling:touch;touch-action:pan-y pan-x;border-radius:1.07vw;}
.banner-track{
  display: flex;width:100%;height:100%;
  will-change: transform;
}
.banner-slide{
  min-width: 100%;height:100%;flex-shrink:0;
  position: relative;padding:0 2.67vw;box-sizing:border-box;
}
.banner-slide-inner{
  width: 100%;height:100%;border-radius:1.07vw;overflow:hidden;position:relative;
}
.banner-slide-inner img,.banner-slide-inner .banner-text-bg{
  width: 100%;height:100%;display:block;position:absolute;top:0;left:0;object-fit:cover;
}
.banner-slide-inner .banner-text-bg{z-index:1;background:linear-gradient(135deg,#6C5CE7,#a29bfe);}
.banner-slide-inner .banner-text-content{
  position: absolute;z-index:2;inset:0;padding:6.4vw 5.333333vw;color:#fff;
  display: flex;flex-direction:column;justify-content:center;
}
.banner-img{display:none!important;}
.banner .dots{position:absolute;right:5.066667vw;bottom:2.133333vw;display:flex;gap:.533333vw;z-index:2;}
.banner-text{position:absolute;inset:0;padding:7.466667vw 5.333333vw;color:#fff;display:flex;flex-direction:column;justify-content:center;}
.banner h2{font-size:1.2em;font-weight:900;letter-spacing:0.27vw;}.banner p{font-size:0.78em;margin-top:1.6vw;opacity:.85;}
.banner .dot{display:inline-block;width:1.333333vw;height:.8vw;background:#fff;opacity:.6;transform:skew(-25deg);border-radius:.266667vw;}.banner .dot.on{width:2.933333vw;background:#fff;opacity:1;}
/* Quick */
.quick{display:flex;gap:0;margin:0 4.266667vw;background:#fff;border-radius:var(--R);padding:3.733333vw 0;box-shadow:var(--shadow);}
.qi{flex:1;display:flex;flex-direction:column;align-items:center;gap:1.33vw;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.qi:active{transform:scale(.9);}.qi .qe{width:11.733333vw;height:11.733333vw;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.5em;}
.qi:nth-child(1) .qe{background:#FFF5EE;}.qi:nth-child(2) .qe{background:#FFFAEB;}.qi:nth-child(3) .qe{background:#FFF0F2;}.qi:nth-child(4) .qe{background:#EDF4FF;}
.qi .ql{font-size:0.72em;font-weight:600;color:var(--text2);}
/* --- Popgo 风格中奖播报 --- */
.congrats-wrap { background-color: #fff; border-radius: 1.066667vw; overflow: hidden; padding: 2.666667vw 2.666667vw 0; }
.congrats { margin: 0; background-color: transparent; }
.congrats-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.6vw; }
.congrats-title-img {
    width: 49.17vw; height: 5.72vw;
    background: url('./uploads/icons/congrats-title.webp') no-repeat;
    background-size: contain;
}
.congrats-more { display: flex; align-items: center; gap:0.533333vw; font-size:2.933333vw; color: #999; }

/* Congrats 轮播容器 - 可滑动，显示约1.3张卡片 */
.congrats-content {
    width: 100%;
    height: 18.29vw; overflow: hidden;
    position: relative;
    touch-action: pan-y;
}
/* 轮播轨道 - JS控制translate + 触摸滑动 */
.congrats-list {
    display: flex;
    transition: transform .4s cubic-bezier(.25,.8,.25,1);
    will-change: transform;
    cursor: grab;
    user-select: none;
    -webkit-user-select: none;
}

/* 卡片容器 */
.ci {
    flex-shrink: 0;
    width: 68vw;
    margin-right: 1.5vw;
    height: 16.01vw; border-radius: 1.07vw;
    display: flex; align-items: center; padding: 0 3.2vw;
    background-size: 100% 100%; position: relative;
    cursor: pointer;
    overflow: hidden;
}
/* 背景图交替 */
.ci.bg-red { background-image: url('./uploads/icons/bg-red.webp'); }
.ci.bg-yellow { background-image: url('./uploads/icons/bg-yellow.webp'); }

/* 左侧头像 */
.ci-avatar { width: 10.666667vw; height: 10.666667vw; border-radius: 50%; border: 0.533333vw solid rgba(255,255,255,0.8); flex-shrink: 0; }

/* 中间信息 */
.ci-info { flex: 1; margin-left: 2.666667vw; display: flex; flex-direction: column; justify-content: center; min-width: 0; overflow: visible; }
.ci-row1 { display: flex; align-items: center; gap: 1.33vw; margin-bottom: 1.6vw; }
.ci-name { font-size: 2.933333vw; font-weight: 900; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 17.6vw; }

/* 等级徽章：背景图+数字 */
.ci-v-wrap { position: relative; width: 8vw; height: 4.266667vw; display: flex; align-items: center; justify-content: center; }
.ci-v-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.ci-v-num { position: relative; z-index: 1; font-size: 2.933333vw; font-weight: 900; color: #333; padding-left: 1.866667vw; }
.ci-v-num.lv-digits-2{font-size:2.4vw;padding-left:1.6vw;}
.ci-v-num.lv-digits-3{font-size:2vw;padding-left:1.333333vw;}

/* 底部白底标签 - 紧凑型平行四边形（仿等级徽章风格） */
.ci-tag-white {
    background: #fff;
    padding: 0.27vw 0.2vw 0.27vw 0.2vw;
    display: inline-flex; align-items: center; gap: 0.15vw; align-self: flex-start;
    transform: skewX(-5deg);
    border-radius: 0.533333vw;
}
.ci-tag-white > * {
    transform: skewX(5deg);
}
.ci-prize-icon { width: 6vw; height: 4vw; display: block; position: relative; z-index: 1; object-fit: contain; flex-shrink: 0; }
.ci-price-rm { font-size: 2.4vw; font-weight: 900; color: #333; line-height: 1; }
.ci-price-num { font-size: 2.933333vw; font-weight: 900; color: #333; letter-spacing: normal; line-height: 1; }
/* 价格区域：强制底部对齐 */
.ci-tag-white .ci-price-inner {
    display: flex;
    align-items: baseline;
    gap: 0;
}

/* 右侧奖品图 - 三层结构：外层wrap(盲盒背景) > 内层img(奖品图) */
.ci-prize-wrap {
    width: 12.8vw; height: 12.8vw;
    background-size: 100% 100%;
    background-repeat: no-repeat;
    background-position: center;
    border-radius: 1.066667vw;
    display: flex; align-items: center; justify-content: center;
    overflow: hidden; flex-shrink: 0; margin-left: auto; margin-right: 0;
    position: relative; /* 确立层叠上下文 */
}
.ci-prize-img { 
    width: 10.67vw; height: 10.67vw; border-radius: 2.13vw; 
    object-fit: cover;
    position: relative; z-index: 2; /* ★ 最上层：奖品图 */
    background: transparent;
    flex-shrink: 0;
}
/* 确保 ci-prize-wrap 背景图可见（中层：盲盒背景） */
.ci-prize-wrap::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0; /* ★ 中下层：让背景图透出来 */
    border-radius: inherit;
}

/* Congrats 轮播 - 每张停留5s，平滑切换 */


.draw-records-scroll{height:37.33vw;overflow:hidden;position:relative;}
.draw-records-inner{display:flex;flex-direction:column;}
.draw-record-item{display:flex;align-items:center;gap:2.133333vw;padding:1.6vw 0;flex-shrink:0;}
.draw-record-item .record-avatar{width:6.4vw;height:6.4vw;border-radius:50%;overflow:hidden;flex-shrink:0;}
.draw-record-item .record-info{flex:1;min-width:0;}
.draw-record-item .record-name{font-size:.72em;font-weight:600;color:#fff;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.draw-record-item .record-time{font-size:.6em;color:rgba(255,255,255,.5);}
.draw-record-item .record-prize{font-size:.58em;padding:0.53vw 1.6vw;border-radius:4px;font-weight:700;color:#fff;}
.draw-record-item .record-prize.grade-sp{background:var(--primary);}
.draw-record-item .record-prize.grade-a{background:var(--accent);}
.draw-record-item .record-prize.grade-b{background:var(--blue);}
.draw-record-item .record-prize.grade-c{background:#888;}

/* Box Grid */
.sec-title{font-size:0.92em;font-weight:700;padding:4.27vw 4.27vw 2.67vw;display:flex;align-items:center;gap:1.33vw;}
/* 盲盒分类Tab */
.box-cat-tabs{display:flex;margin:0 4.266667vw;background:#fff;border-radius:var(--Rs);padding:1.066667vw;box-shadow:var(--shadow);gap:0.53vw;justify-content:center;}
.bct{flex:1;padding:2.4vw 0;text-align:center;font-size:.82em;font-weight:700;color:var(--text2);border-radius:2.13vw;cursor:pointer;transition:.2s;-webkit-tap-highlight-color:transparent;user-select:none;}
.bct.on{background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;box-shadow:0 2px 8px rgba(108,92,231,.3);}
.bct:active{transform:scale(.96);}
.boxgrid{padding:1.066667vw 1.866667vw 0 2.133333vw;width:100%;display:grid;grid-template-columns:repeat(2,1fr);grid-column-gap:2.133333vw;}
.bx{margin-bottom:2.133333vw;width:46.933333vw;border-radius:1.066667vw;background-color:#fff;}
.bx .bi{width:100%;aspect-ratio:1/1;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:1.066667vw 1.066667vw 0 0;}
.bx .bi img{width:100%;height:100%;object-fit:cover;}.bx .bi .be{font-size:3.2em;filter:drop-shadow(0 0.8vw 1.6vw rgba(0,0,0,.15));}
.bx .bs{position:absolute;top:0;right:0;padding:.3vw .8vw;background-color:#fff;border-radius:0 1.066667vw 0 1.066667vw;color:#111;white-space:nowrap;transition:background .2s,color .2s}.bs-inner{display:flex;align-items:center}.bs-icon{margin-right:.533333vw;width:4.8vw!important;height:4.8vw!important;object-fit:contain!important;display:inline-block;flex-shrink:0;transition:filter .2s}
/* num2 图标原生 content 占比大，单独缩小以跟 hzdh1 视觉对齐 */
.bs-icon[src*="num2"]{width:3.6vw!important;height:3.6vw!important}
.bs-num{font-size:3.2vw;font-family:var(--font-main);font-weight:500;line-height:4.8vw;display:inline-block}

/* ★ 销量变动闪烁动画 */
@keyframes salesBounce{
  0%{transform:scale(1)}
  40%{transform:scale(1.18)}
  70%{transform:scale(0.96)}
  100%{transform:scale(1)}
}
/* 高亮状态：黑底黄字 */
.bx .bs.sales-flash{background-color:#111!important}
.bx .bs.sales-flash .bs-num{color:#fee442!important;font-weight:900}
/* ★ 图标高亮时不做任何变色处理，保持原始颜色 */
.bx .bs.sales-flash .bs-icon{filter:none;-webkit-filter:none}
/* ★ 弹跳动画：bs-inner（图标+数字）作为整体一起弹跳 */
.bx .bs.bounce-once .bs-inner{animation:salesBounce .55s ease-out}
.bx .bn{width:100%;padding:2.666667vw 2.133333vw 3.2vw;position:relative;transition:transform .3s;}.bx .bn .name{height:4.8vw;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:break-all;font-size:3.2vw;font-weight:700;color:#222;line-height:4.8vw;font-family:var(--font-main);}
.bx .bn .price{margin:3.2vw 0 0;display:flex;align-items:baseline;gap:0;font-size:4.266667vw;font-family:var(--font-num);font-weight:600;}
.bx .bn .price .diamond-icon{width:3.2vw;height:3.2vw;}
/* Detail */
.dh{padding:5.33vw 4.27vw;display:flex;gap:3.73vw;}.dhimg{width:26.67vw;height:26.67vw;border-radius:var(--R);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;}
.dhimg img{width:100%;height:100%;object-fit:cover;}.dhinfo{flex:1;display:flex;flex-direction:column;justify-content:center;}
.dhinfo .dn{font-size:1.15em;font-weight:700;}.dhinfo .dp{font-size:1em;color:var(--primary);font-weight:700;margin-top:1.6vw;}
.dhinfo .dprob{display:flex;gap:1.33vw;flex-wrap:wrap;margin-top:2.13vw;}
.dhinfo .dprob span{font-size:0.68em;padding:0.53vw 2.13vw;border-radius:1.6vw;font-weight:600;}
.prizegrid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.67vw;padding:0 4.27vw 5.33vw;}
.pc{background:#fff;border-radius:var(--Rs);overflow:hidden;box-shadow:var(--shadow);position:relative;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.pc .pb{position:absolute;top:1.33vw;left:1.33vw;padding:0.27vw 1.33vw;border-radius:1.07vw;font-size:0.62em;font-weight:700;color:#fff;z-index:1;}
.pc .pp{position:absolute;top:1.33vw;right:1.33vw;font-size:0.6em;color:var(--hint);font-weight:600;}
.pc .pi{width:100%;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.pc .pi img{width:100%;height:100%;object-fit:cover;}.pc .pi .pe{font-size:2em;}
.pc .pn{padding:1.33vw 1.87vw;}.pc .pn .nm{font-size:0.7em;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pc .pn .vl{font-size:0.66em;color:var(--primary);font-weight:600;margin-top:0.27vw;}
/* Draw bar */
.drawbar{position:sticky;bottom:0;padding:2.666667vw 4.266667vw;background:rgba(245,240,255,.95);backdrop-filter:blur(3.2vw);display:flex;gap:2.133333vw;border-top:1px solid var(--border);}
.dbtn{flex:1;padding:3.2vw;border:none;border-radius:var(--Rs);font-size:.88em;font-weight:700;cursor:pointer;transition:.15s;font-family:inherit;-webkit-tap-highlight-color:transparent;}
.dbtn:active{transform:scale(.95);}
.dbtn.p{background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;}
.dbtn.s{background:#F0EDFF;color:var(--purple);}

/* ===== 新版详情页样式（高仿截图2） ===== */
/* ==================== Detail Page（高仿截图2） ==================== */

/* 头部栏 - 白色背景 */
.dt-header {
  position: sticky;
  top: 0;
  width: 100%;
  height: 11.733333vw;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: transparent;
  transition: background .15s ease;
  z-index: 10;
  z-index: 9999;
}
.dt-back-btn {width:8.53vw;height:8.53vw;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.dt-title {font-size:3.733333vw;font-weight:700;color:#111;line-height:5.066667vw;font-family:var(--font-main);font-weight:500;display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;}
.dt-header-left {
  padding-left: 3.2vw;
  width: 26.666667vw;
  display: flex;
  align-items: center;
}
.dt-header-center {
  width: 34.666667vw;
  overflow: hidden;
  font-size: 3.733333vw;
  color: #111;
  line-height: 5.066667vw;
  text-align: center;
  font-family: var(--font-main);font-weight:500;
  text-transform: uppercase;
}
.dt-header-right {
  padding-right: 4.266667vw;
  width: 26.666667vw;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  column-gap: 3.2vw;
}
.dt-badge-icon {width:5.866667vw;height:5.866667vw;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.dt-help-btn, .dt-share-btn {width:5.866667vw;height:5.866667vw;cursor:pointer;-webkit-tap-highlight-color:transparent;}

/* 主内容区 - 浅色背景 */
.dt-main {
  padding: 0 3.2vw;
  width: 100%;
  height: 48.8vw;
  display: flex;
  position: relative;
}

/* ---- 左右分栏：左=记录列表，右=大图+数据 ---- */
/* 左列：中奖记录区 */
.dt-split-left {
  position: relative;
  width: 49.6vw;
  height: 44.266667vw;
}

/* 中奖记录项 - 用户头像 + 名字 + 时间前缀 + SP/A等级图标 */
.dt-feed-item {
  display: flex;
  align-items: center;
  padding: 0 2.133333vw 0 1.066667vw;
  margin-bottom: 1.6vw;
  width: 100%;
  height: 7.466667vw;
  background-color: #ffffffb3;
  border-radius: 1.066667vw;
  border:1px solid #ffffff;
  position: relative;
}
.dt-feed-avatar {width:4.266667vw;height:4.266667vw;border-radius:50%;object-fit:cover;flex-shrink:0;}
.dt-feed-info {flex:1;min-width:0;display:flex;align-items:center;gap:1.07vw;}
.dt-feed-name {
  width: 12.533333vw;
  font-size: 2.666667vw;
  line-height: 7.466667vw;
  color: #111;
  font-weight: 600;
  margin-left: .533333vw;
  margin-right: 1.6vw;
  font-family: var(--font-main);font-weight:500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dt-feed-time {
  min-width: 20vw;
  font-size: 2.666667vw;
  color: #72797a;
  line-height: 7.466667vw;
}
.dt-feed-grade-img {
  position: absolute;
  right: 1.066667vw;
  top: 50%;
  transform: translateY(-50%);
  width: 5.333333vw;
  height: 3.6vw;
}

/* 在线人数行（在记录底部） */
.dt-feed-list {
  position: relative;
  width: 100%;
  height: 36.533333vw;
  overflow: hidden;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
.dt-online-row {
  background: #fff;
  min-width: 29.333333vw;
  height: 6.933333vw;
  border-radius: 1.066667vw;
  box-shadow: 0 .266667vw #ededed;
  position: absolute;
  left: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
}
.dt-online-trophy {width:7.2vw;height:6.4vw;margin:.266667vw;object-fit:contain;}
.dt-online-content {flex:1;display:flex;align-items:center;justify-content:center;animation:fadein-ecc42ac6 .3s;margin-left:1.066667vw;margin-right:1.333333vw;}
.dt-online-avatars {display:flex;align-items:center;flex-direction:row;}
.dt-online-avatars img {width:4.266667vw;height:4.266667vw;border-radius:50%;object-fit:cover;border:1.5px solid #fff;margin-right:-0.8vw;position:relative;}
.dt-online-avatars img:last-child {margin-right:0;z-index:5;}
.dt-online-avatars img:nth-last-child(2) {z-index:4;}
.dt-online-avatars img:nth-last-child(3) {z-index:3;}
.dt-online-avatars img:nth-last-child(4) {z-index:2;}
.dt-online-avatars img:nth-last-child(5) {z-index:1;}
.dt-online-num {font-size:2.666667vw;font-family:var(--font-main);font-weight:500;color:#111;}
.dt-online-text {font-size:2.666667vw;color:#72797a;font-family:var(--font-main);}
.dt-online-arrow {width:3.73vw;height:3.73vw;object-fit:contain;}

/* 右列：大产品图 + 数据行 */
.dt-split-right {
  position: relative;
  margin-left: .8vw;
  padding: 0 1.066667vw 0 0;
  width: 43.733333vw;
  height: 46.933333vw;
}
.dt-cover-wrap {width:42.666667vw;height:45.333333vw;position:relative;}
.dt-cover-box {
  width: 32vw;height:32vw;left:5.066667vw;top:2.4vw;position:absolute;border-radius:var(--Rs);
  overflow: hidden;animation:fadein-ecc42ac6 .3s;z-index:2;
}
.dt-cover-box img {width:100%;height:100%;object-fit:cover;}

/* 数据行（在大图下方）：胜率(红) + 回报(黑） */
.dt-data-row {position:absolute;width:40.533333vw;height:17.066667vw;background:url(./uploads/icons/goods-footer-1-DnYswLlz.webp) no-repeat;background-size:100% 100%;left:1.066667vw;bottom:.8vw;display:flex;padding-top:7.466667vw;justify-content:space-between;}
.dt-data-item {flex:1;text-align:center;animation:fadein-ecc42ac6 .3s;}
.dt-data-label {font-size:2.133333vw;color:#747a72;}
.dt-data-value {font-size:.95em;font-weight:700;}
.dt-data-value.win-rate {color:#ff1512;font-size:3.2vw;}
.dt-data-value.max-ret {font-size:3.2vw;color:#111;font-family:var(--font-en);font-weight:700;}

/* ---- 第X抽 黑色横幅 ---- */
.dt-draw-count-bar {position:absolute;top:0;left:22.933333vw;width:54.133333vw;height:8.266667vw;display:flex;align-items:center;justify-content:center;animation:fadein-22cbd99d .3s;overflow:hidden;transform:translateY(-.266667vw);}
.dt-draw-count-text-group {display:flex;align-items:flex-end;}
.dt-draw-count-icon {position:relative;width:5.333333vw;height:5.333333vw;transform:translateY(.266667vw);}
.dt-draw-count-inner {width:5.333333vw;height:5.333333vw;}
.dt-draw-count-ring {animation:hzdhrotate-22cbd99d 2.5s linear infinite;position:absolute;left:0;top:0;z-index:10;width:5.333333vw;height:5.333333vw;}
@keyframes hzdhrotate-22cbd99d {from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
/* ★ 第X抽数字跳动动画 */
@keyframes drawCountPop {0%{transform:skew(-5deg) scale(1)}30%{transform:skew(-5deg) scale(1.4)}60%{transform:skew(-5deg) scale(0.95)}100%{transform:skew(-5deg) scale(1)}}
.dt-draw-count-num.pop {color:#fee442;animation:drawCountPop .5s ease-out;}
.dt-draw-count-text {padding:0 .533333vw;color:#fff;font-size:3.2vw;font-family:var(--font-main);font-weight:600;transform:skew(-5deg);}
.dt-draw-count-num {font-size:5.333333vw;color:#fff;line-height:1;font-family:var(--font-main);font-weight:700;transform:skew(-5deg) translateY(0.266667vw);}

/* ---- 底部大容器：第几抽 + 模式切换 + 等级概率 ---- */
.dt-bottom-section {position:sticky;top:11.6vw;padding:9.333333vw 3.2vw 0;margin:.8vw 0 0;width:100vw;height:21.866667vw;background-image:url(./uploads/icons/pic-glmb-CfTT6txl.webp);background-position:center top;background-repeat:no-repeat;background-size:93.6vw 21.866667vw;z-index:1000;background-color:#f5f5f9;}
.dt-mode-switch {position:absolute;top:3.2vw;left:3.2vw;width:20.8vw;height:5.333333vw;border-radius:1.066667vw;font-size:2.666667vw;font-family:var(--font-main);font-weight:500;display:flex;align-items:center;justify-content:center;background-color:#f6f6fa;padding-top:.533333vw;}
.dt-mode-text {max-width:14.666667vw;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dt-mode-icon {width:3.2vw;height:3.2vw;display:block;}

/* ---- 多人模式弹窗 ---- */
.dt-mode-overlay {display:none;position:fixed;top:0;left:0;width:100vw;height:100vh;background:rgba(0,0,0,.8);z-index:99999;justify-content:center;align-items:center;}
.dt-mode-overlay.show {display:flex;}
.dt-mode-popup {width:78.666667vw;height:78.666667vw;background:linear-gradient(180deg,#fff 0%,#fff 16.5%);padding-top:4.266667vw;border-radius:3.2vw;overflow:hidden;animation:fadein-ecc42ac6 .25s;position:relative;}
.dt-mode-popup-header {display:flex;align-items:center;justify-content:center;padding:0 4.27vw;}
.dt-mode-popup-title {text-align:center;font-family:var(--font-main);font-weight:500;font-size:4.266667vw;line-height:5.866667vw;color:#111;}
.dt-mode-popup-close {position:absolute;top:2.133333vw;right:2.133333vw;width:8vw;height:8vw;object-fit:contain;cursor:pointer;}
.dt-mode-popup-body {padding:6.4vw;display:flex;flex-direction:column;row-gap:2.266667vw;}
.dt-mode-option {display:flex;align-items:center;padding:4vw 4.266667vw;font-family:var(--font-main);font-weight:500;font-size:3.733333vw;color:#111;background:#f6f6fa;border-radius:1.066667vw;position:relative;border:.266667vw solid #f6f6fa;cursor:pointer;}
.dt-mode-option:last-child {margin-bottom:0;}
.dt-mode-option.active {border:.266667vw solid #111;}
.dt-mode-option-left {display:flex;align-items:center;gap:2.67vw;}
.dt-mode-option-icon {width:8.53vw;height:8.53vw;object-fit:contain;}
.dt-mode-option-info {}
.dt-mode-option-name {font-size:3.2vw;font-weight:600;color:#111;font-family:var(--font-main);}
.dt-mode-option-check {position:absolute;top:7.066667vw;right:5.333333vw;width:4.266667vw;height:4.266667vw;object-fit:contain;}
.dt-mode-option.active .dt-mode-option-check {}
.dt-mode-switch-btn {color:#fff;font-size:3.733333vw;font-family:var(--font-main);font-weight:500;background:#111;width:71.466667vw;height:11.733333vw;border-radius:1.6vw;display:flex;align-items:center;justify-content:center;margin-top:4.266667vw;align-self:center;cursor:pointer;}

/* ---- 概率区（白色卡片）+ 抽赏记录按钮并排 ---- */
.dt-prob-section {
  padding: 0 2.133333vw 0 3.2vw;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: space-between;
}

/* 左边：多人模式 + 概率四列 */
/* 概率四列 SP/A/B/C (无S) */
.dt-prob-row {width:66.666667vw;display:flex;align-items:center;justify-content:space-between;}
.dt-prob-item {flex:1;padding:0.8vw 0;}
.dt-prob-grade {font-size:3.2vw;color:#111;line-height:3.2vw;text-align:center;font-family:var(--font-main);font-weight:500;}
.dt-prob-val {margin-top:1.066667vw;font-size:2.666667vw;color:#111;line-height:2.666667vw;text-align:center;}

/* 右边：抽赏记录按钮 */
.dt-record-btn-wrap {margin-top:.8vw;width:18.4vw;height:9.066667vw;background:#ff1512;box-shadow:0 .533333vw #d22416;border-radius:1.066667vw;display:flex;align-items:center;justify-content:center;cursor:pointer;}

/* 奖品网格 */
.dt-prize-grid {padding:.533333vw 3.2vw 3.2vw 1.6vw;width:100vw;min-height:calc(100vh - 82.666667vw);}
.dt-prize-card {display:inline-block;margin-left:1.333333vw;margin-top:2.666667vw;position:relative;width:30.4vw;padding-bottom:2.133333vw;background-color:#fff;border-radius:1.066667vw;animation:fadein-363ede9c .3s;}
.dt-prize-card:active {transform:scale(.93);}
.dt-pc-img-wrap {position:relative;width:30.4vw;height:30.4vw;border-radius:1.066667vw 1.066667vw 0 0;}
.dt-pc-img-wrap img {width:100%;height:100%;object-fit:cover;}
.dt-pc-badge {position:absolute;top:1.07vw;left:1.07vw;width:5.87vw;height:auto;object-fit:contain;z-index:1;}
.dt-pc-info {width:30.4vw;}
.dt-pc-name {font-size:2.666667vw;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4;text-align:center;font-family:var(--font-main);padding:1.6vw 1.33vw 0;}
.dt-pc-value {font-size:2.666667vw;color:#ff0000;font-weight:400;margin-top:0.27vw;margin-bottom:-1.6vw;text-align:center;}
.dt-pc-value .currency-symbol{font-size:2.666667vw;font-weight:400;}
.dt-pc-value .currency-num{font-size:2.666667vw;font-weight:400;font-family:var(--font-en);}
.dt-pc-prob {position:absolute;right:0;bottom:0;padding:0 1.333333vw;height:4.266667vw;border-radius:1.066667vw 0 0;background-color:#1116;z-index:5;font-size:2.4vw;color:#fff;line-height:4.266667vw;text-align:center;-webkit-backdrop-filter:blur(.533333vw);backdrop-filter:blur(.533333vw);font-family:var(--font-main);font-weight:500;}

body.ppm-lock {overflow:hidden;touch-action:none;}
.prize-preview-modal {position:fixed;inset:0;z-index:1000020;background:rgba(24,31,31,.8);-webkit-backdrop-filter:blur(3.2px);backdrop-filter:blur(3.2px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .24s ease,visibility .24s ease;}
.prize-preview-modal.show {opacity:1;visibility:visible;pointer-events:auto;}
.ppm-counter {position:absolute;top:calc(env(safe-area-inset-top) + 13.5vh);left:50%;transform:translateX(-50%);height:5.866667vw;min-width:12vw;padding:0 1.866667vw;border-radius:3.2vw;background:rgba(0,0,0,.35);color:#fff;font-size:4.266667vw;line-height:5.866667vw;text-align:center;font-family:var(--font-main);font-weight:500;z-index:3;}
.ppm-viewport {position:absolute;left:0;top:22.7vh;width:100vw;overflow:visible;touch-action:pan-y;z-index:2;}
.ppm-track {display:flex;align-items:flex-start;gap:4vw;will-change:transform;transform:translate3d(0,0,0);}
.ppm-track.is-animating {transition:transform .28s cubic-bezier(.22,.78,.28,1);}
.ppm-slide {width:min(80vw,350px);flex:0 0 min(80vw,350px);display:flex;align-items:flex-start;justify-content:center;}
.ppm-card {width:100%;box-sizing:border-box;background:#fff;border-radius:4px;padding:clamp(12px,3.733333vw,16px);box-shadow:0 3.2vw 10.67vw rgba(0,0,0,.26);opacity:.7;filter:blur(.45px);transform:scale(.965);transition:opacity .2s ease,filter .2s ease,transform .2s ease;}
.ppm-card .cw .currency-symbol,.ppm-card .cw .currency-num{font-size:4.266667vw !important;}
.prize-preview-modal:not(.show) .ppm-card {opacity:0;filter:blur(1.6px);transform:scale(.975) translateY(2.666667vw);}
.ppm-slide.is-active .ppm-card {opacity:1;filter:blur(0);transform:scale(1);}
.ppm-image-box {position:relative;width:100%;aspect-ratio:1/1;border-radius:4px;overflow:hidden;background:#f3f3f3;}
.ppm-image-bg,.ppm-image-main {position:absolute;inset:0;width:100%;height:100%;display:block;}
.ppm-image-bg {object-fit:cover;z-index:0;}
.ppm-image-main {object-fit:contain;z-index:1;}
.ppm-image-placeholder {position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:4vw;text-align:center;color:#aaa;font-size:4vw;font-weight:700;z-index:1;}
.ppm-grade-icon {position:absolute;top:1.333333vw;left:1.333333vw;width:min(9.6vw,42px);height:auto;object-fit:contain;z-index:4;}
.ppm-prob {position:absolute;right:0;bottom:0;height:5.333333vw;padding:0 2.133333vw;border-radius:1.066667vw 0 0;background:rgba(0,0,0,.45);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);color:#fff;font-size:2.666667vw;line-height:5.333333vw;font-family:var(--font-main);font-weight:700;z-index:4;display:flex;align-items:center;gap:1.333333vw;white-space:nowrap;}
.ppm-desc {margin-top:4vw;min-height:9.6vw;max-height:14.4vw;color:#111;font-size:3.466667vw;line-height:4.8vw;font-family:var(--font-main);font-weight:600;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;}
.ppm-meta-row {margin-top:2.666667vw;display:flex;align-items:flex-end;justify-content:space-between;gap:2.133333vw;}
.ppm-value {min-width:0;color:#747a72;font-size:4vw;line-height:1;font-family:var(--font-main);font-weight:500;white-space:nowrap;display:inline-flex;align-items:center;}
.ppm-value > span {display:inline-flex;align-items:center;height:4.8vw;line-height:4.8vw;}
.ppm-value strong {display:inline-flex;align-items:center;height:4.8vw;line-height:4.8vw;color:#ff1512;font-size:4vw;font-family:var(--font-en);font-weight:800;}
.ppm-value .diamond-icon {display:block;width:4vw;height:4vw;margin:0 .533333vw 0 .266667vw;object-fit:contain;flex-shrink:0;}
.ppm-value .currency-symbol{margin-right:.8vw;}
.ppm-logo {width:min(17.066667vw,72px);height:auto;object-fit:contain;flex-shrink:0;margin-bottom:.533333vw;}
.ppm-close {position:absolute;left:50%;bottom:calc(env(safe-area-inset-bottom) + 12.5vh);transform:translateX(-50%);width:12.266667vw;height:12.266667vw;padding:0;border:0;background:transparent;border-radius:50%;z-index:3;cursor:pointer;}
.ppm-close img {width:100%;height:100%;display:block;object-fit:contain;}
@keyframes ppmImageFocus {from{filter:blur(1.2px);transform:scale(1.006);opacity:.96;}to{filter:blur(0);transform:scale(1);opacity:1;}}
@media (max-height:700px) {
  .ppm-counter {top:calc(env(safe-area-inset-top) + 8.5vh);}
  .ppm-viewport {top:15.5vh;}
  .ppm-close {bottom:calc(env(safe-area-inset-bottom) + 5.8vh);}
  .ppm-desc {margin-top:2.666667vw;max-height:9.6vw;-webkit-line-clamp:2;}
}

/* 底部按钮栏 */
.box-record-user-history-overlay {position:fixed;inset:0;z-index:1000010;background:rgba(0,0,0,.8);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .24s ease,visibility .24s ease;display:flex;align-items:center;justify-content:center;}
.box-record-user-history-overlay.show {opacity:1;visibility:visible;pointer-events:auto;}
.box-record-user-history-modal {width:min(88vw,380px);max-height:min(82vh,650px);border-radius:6px;overflow:hidden;background:#fff;box-shadow:0 3.2vw 12vw rgba(0,0,0,.3);transform:translateY(2.666667vw) scale(.985);transition:transform .24s ease;display:flex;flex-direction:column;}
.box-record-user-history-overlay.show .box-record-user-history-modal {transform:translateY(0) scale(1);}
.bruh-content {width:100%;display:flex;flex-direction:column;min-height:82vw;max-height:min(82vh,650px);}
.bruh-loading {height:82vw;display:flex;align-items:center;justify-content:center;color:#111;font-size:3.466667vw;font-weight:700;background:#fff;}
.bruh-hero {position:relative;height:45.333333vw;min-height:172px;padding:5.066667vw 5.333333vw 0;box-sizing:border-box;background:#ffe300 url('./uploads/icons/userHistory-bg-GKKXOhJ7.webp') center/cover no-repeat;overflow:hidden;}
.bruh-user-row {position:relative;z-index:2;display:flex;align-items:center;gap:2.133333vw;}
.bruh-avatar {width:10.666667vw;height:10.666667vw;border-radius:50%;object-fit:cover;background:#fff;box-shadow:0 .533333vw 1.6vw rgba(0,0,0,.16);flex-shrink:0;}
.bruh-user-meta {min-width:0;display:flex;flex-direction:column;gap:1.066667vw;}
.bruh-user-line {display:flex;align-items:center;gap:1.333333vw;min-width:0;height:5.333333vw;}
.bruh-user-gold {color:#b98d1b;}
.bruh-user-name {max-width:28vw;color:#111;font-size:3.466667vw;line-height:4.266667vw;font-family:var(--font-main);font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bruh-draw-meta {display:flex;align-items:center;gap:2.133333vw;color:#111;font-size:2.666667vw;line-height:3.2vw;font-family:var(--font-main);font-weight:700;white-space:nowrap;}
.bruh-draw-meta .bruh-time {color:#747a72;}
.bruh-prize-card {min-width:24vw;width:24vw;height:24vw;border-radius:1.066667vw;position:relative;background-size:100% 100%;display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 1.333333vw 3.733333vw rgba(0,0,0,.16);margin-top:3.733333vw;}
.bruh-grade-icon {position:absolute;top:.8vw;left:.8vw;height:4.266667vw;object-fit:contain;z-index:4;}
.bruh-prize-img {position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:1;}
.bruh-prize-caption {position:absolute;left:0;right:0;bottom:0;min-height:7.466667vw;padding:1.066667vw 1.333333vw .8vw;box-sizing:border-box;background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.72));color:#fff;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:1.066667vw;align-items:end;z-index:3;}
.bruh-prize-caption span {grid-column:1/2;display:block;max-width:100%;font-size:2.4vw;line-height:2.933333vw;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bruh-prize-caption strong {grid-column:1/2;display:inline-flex;align-items:center;min-width:0;color:#fff;font-size:2.4vw;line-height:3.2vw;font-family:var(--font-en);font-weight:900;white-space:nowrap;}
.bruh-prize-caption em {font-style:normal;font-size:2.4vw;line-height:3.2vw;font-weight:900;color:#fff;}
.bruh-prize-qty {position:absolute;bottom:0;right:0;z-index:5;font-style:normal;font-size:2.4vw;line-height:3.2vw;font-weight:900;color:#fff;padding:.8vw 1.333333vw;background:#1116;backdrop-filter:blur(5.333333vw);border-radius:1.066667vw 0;}
.bruh-prize-caption .diamond-icon {width:2.666667vw;height:2.666667vw;margin-right:.266667vw;object-fit:contain;}
.bruh-panel {padding:2.666667vw 4.8vw 0;background:#fff;display:flex;flex-direction:column;min-height:0;flex:1;}
.bruh-total-row {height:7.466667vw;display:flex;align-items:center;gap:.8vw;color:#111;font-size:2.933333vw;font-family:var(--font-main);font-weight:600;white-space:nowrap;flex-shrink:0;}
.bruh-total-row img {width:3.2vw;height:3.2vw;object-fit:contain;flex-shrink:0;}
.bruh-total-row strong {color:#ff1512;font-family:var(--font-en);font-weight:900;}
.bruh-win-list {flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2.666667vw;max-height:64vw;}
.bruh-win-list::-webkit-scrollbar {display:none;}
.bruh-win-row {height:10.666667vw;margin-bottom:2.133333vw;border-radius:1.066667vw;background:#f5f5f9;display:flex;align-items:center;padding:0 2.666667vw;box-sizing:border-box;gap:2.133333vw;}
.bruh-win-value {height:5.333333vw;min-width:17.866667vw;border-radius:.533333vw;background:#fff;display:flex;align-items:center;overflow:hidden;flex-shrink:0;}
.bruh-win-value > img {height:4.266667vw;width:auto;object-fit:contain;flex-shrink:0;z-index:2;}
.bruh-win-value strong {height:5.333333vw;margin-left:-2.4vw;padding:0 1.333333vw 0 3.2vw;display:inline-flex;align-items:center;background:#fff;color:#111;font-size:2.666667vw;line-height:5.333333vw;font-family:var(--font-en);font-weight:900;white-space:nowrap;}
.bruh-win-value .diamond-icon {width:2.933333vw;height:2.933333vw;margin-right:.266667vw;object-fit:contain;}
.bruh-win-name {flex:1;min-width:0;color:#111;font-size:2.933333vw;line-height:3.733333vw;font-family:var(--font-main);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bruh-win-qty {color:#111;font-size:3.2vw;line-height:3.733333vw;font-family:var(--font-en);font-weight:800;white-space:nowrap;flex-shrink:0;}
.bruh-empty,.bruh-list-end {color:#aab0b1;font-size:2.666667vw;font-family:var(--font-main);font-weight:500;}
.bruh-list-wrap {display:flex;align-items:center;justify-content:center;column-gap:1.6vw;color:#aab0b1;font-size:2.666667vw;padding:2.666667vw 0;}
.bruh-list-line {width:6.4vw;height:1px;background:#aab0b1;}
.bruh-list-end {white-space:nowrap;}
.bruh-close {position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom) + 8vh);transform:translateX(-50%);width:12.266667vw;height:12.266667vw;padding:0;border:0;border-radius:50%;background:transparent;z-index:1000011;cursor:pointer;}
.bruh-close img {width:100%;height:100%;display:block;object-fit:contain;}

.dt-bottom-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 2.133333vw 3.333333vw;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  border-radius: 2.133333vw 2.133333vw 0 0;
  z-index: 20;
  box-shadow: 0 -.533333vw 2.133333vw #0000001a;
  background-color: #fff;
  padding-bottom: calc(1.6vw + env(safe-area-inset-bottom));
}
.dt-draw-btn {
  flex: 1;
  height: 11.2vw;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 4.266667vw;
  color: #fff;
  font-family: var(--font-en);font-weight:700;
  position: relative;
  background-color: #ff1512;
  border-radius: 1.066667vw;
  box-shadow: 0 -.8vw #d22416 inset;
  text-transform: capitalize;
}
.dt-draw-btn::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 2.133333vw;
  transform: translateX(-50%);
  width: 16.266667vw;
  height: 8.266667vw;
  background: url(uploads/icons/btn-bg-a0F5WFVm.webp) no-repeat center center / contain;
  opacity: .2;
}

/* ===== 在线用户/榜单 底部弹窗 ===== */
.ol-overlay {
  display: none; position: fixed; inset: 0; background: rgba(0,0,0,.8);
  z-index: 1100; transition: opacity .25s ease;
}
.ol-panel {
  position: fixed; left: 0; right: 0; bottom: 0;
  max-width:500px; margin: 0 auto;
  background: #fff; border-radius: 1.066667vw 1.066667vw 0 0;
  z-index: 1201; transform: translateY(100%);
  transition: transform .3s cubic-bezier(.32,.72,0,1);
  max-height: 75vh; display: flex; flex-direction: column;
}
.ol-panel.show {
  transform: translateY(0);
  width: 100%;
  height: 118.933333vw;
}
.ol-overlay.show { display: block; }

/* 弹窗打开时，禁用底层交互（不再额外叠加蒙版，由 ol-overlay 统一全屏变暗） */
body.ol-open .dt-header {
  pointer-events: none;
  z-index: 1;
}
body.ol-open .dt-main,
body.ol-open .dt-bottom-bar,
body.ol-open .dt-bottom-section {
  pointer-events: none;
  z-index: 1;
}

/* 头部 */
.ol-header {
  padding: 4.266667vw 4.266667vw 2.4vw;
  width: 100%;
  display: flex;
  align-items: center;
}
.ol-tabs { display: flex; align-items: center; gap: 5.33vw; flex: 1; }
.ol-tab {
  position: relative;
  display: flex; align-items: center; gap: 1.07vw;
  font-size: 3.73vw; font-weight: 700; color: #999; cursor: pointer;
  -webkit-tap-highlight-color: transparent; transition: color .15s;
  padding-bottom: 1.6vw;
}
.ol-tab.active { color: #111; }
.ol-tab-indicator {
  display: none;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: -1.333333vw;
  width: 6.4vw;
  height: .8vw;
  z-index: 1;
  background-color: #ff1512;
  border-radius: .8vw;
}
/* 榜单tab文字较短，图标+文字的50%中心偏左，需要向右修正 */
.ol-tab-rank.active .ol-tab-indicator {
  left: calc(50% + 2vw);
}
.ol-tab.active .ol-tab-indicator { display: block; }
.ol-tab-icon {
  margin-right: 1.066667vw;
  width: 4vw;
  height: 4vw;
  z-index: 2; object-fit: contain;
}
.ol-close {
  position: absolute;
  top: 2.133333vw;
  right: 2.133333vw;
  width: 8vw;
  height: 8vw;
  object-fit: contain; cursor: pointer;
  -webkit-tap-highlight-color: transparent; opacity:.5;
}
.ol-close:active { opacity: 1; }

/* 内容区 */
.ol-body {
  width: 100%;
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch; scrollbar-width: none;
}
.ol-body::-webkit-scrollbar { display: none; }

/* 用户列表 */
.ol-online-list {
  padding: 2.4vw 4.266667vw 0;
  width: 100%;
  height: 100%;
  overflow-y: scroll;
  scrollbar-width: none;
}
.ol-rank-list {
  position: relative;
  padding: 2.4vw 4.266667vw 14.933333vw 0;
  width: 100%;
  overflow-y: scroll;
  flex: 1;
  scrollbar-width: none;
}
.ol-user-row {
  margin-bottom: 4.266667vw;
  width: 100%;
  height: 10.666667vw;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.ol-user-row:last-child { margin-bottom: 0; }
.ol-rank-icon {
  width: 14.4vw;
  height: 5.333333vw;
  object-fit: contain;
  flex-shrink: 0;
}
.ol-rank-num {
  width: 14.4vw;
  font-size: 3.466667vw;
  color: #111;
  line-height: 4.8vw;
  text-align: center;
  flex-shrink: 0;
}
.ol-rank-num.top3 { color: #ff4757; }
.ol-avatar-wrap {
  width: 10.67vw; height: 10.67vw; border-radius: 50%; overflow: hidden;
  flex-shrink: 0; background: #f5f5f5;
  margin-right: 2.67vw;
}
.ol-avatar-wrap img { width: 100%; height: 100%; object-fit: cover; }
.ol-user-info { flex: 1; min-width: 0; display: flex; align-items: center; gap: 1.07vw; }
.ol-user-name {
  font-size: 3.2vw; font-weight: 600; color: #333;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  max-width: 36vw;
}
/* VIP等级标签（复用makeVSvg样式） */
.ol-lv-badge { flex-shrink: 0; }
.ol-lv-badge img { width: 8vw; height: 4.53vw; object-fit: contain; }
.ol-lv-badge span { position: relative; z-index: 1; padding-left: 1.87vw; font-size: 2.4vw; font-weight: 800; line-height: 1; }

/* 榜单右侧：已抽X次 */
.ol-draw-count {
  font-size: 3.2vw;
  color: #ff1512;
  line-height: 4.8vw;
  text-align: right;
  font-style: normal;
  text-transform: none;
  font-family: var(--font-main);font-weight:500;
  flex-shrink: 0;
  margin-left: auto;
}
.ol-draw-count span { color: #111; }
.ol-draw-count strong { color: #ff1512; font-family:var(--font-main);font-weight:500; }

/* 底部 */
.ol-footer {
  display: flex; align-items: center;
  padding: 2.67vw 4.27vw;
  box-shadow: 0 -.533333vw 2.133333vw #0000001a;
  border-radius: 2.133333vw 2.133333vw 0 0;
  background: #fff; flex-shrink: 0;
}
.ol-footer-rank {
  width: 7.466667vw;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3.466667vw;
  color: #111;
  font-family: var(--font-main);font-weight:500;
}
.ol-footer-user { display: block; margin-left: 2.666667vw; }
.ol-footer-avatar {
  width: 9.6vw;
  height: 9.6vw;
  border-radius: 50%;
  display: block;
  object-fit: cover;
}
.ol-footer-info { margin-left: 2.133333vw; flex: 1; }
.ol-footer-name-row {
  display: flex;
  align-items: center;
}
.ol-footer-draw-row {
  font-size: 2.666667vw;
  color: #111;
  line-height: 2.666667vw;
  margin-top: .53vw;
}
.ol-footer-name {
  max-width: 34.666667vw;
  font-size: 3.2vw;
  color: #111;
  line-height: 3.2vw;
  font-family: var(--font-main);font-weight:500;
  padding-bottom: 1.333333vw;
}
.ol-footer-info .ol-lv-badge {
  margin-bottom: 1.333333vw;
  margin-left: 1.066667vw;
}
.ol-footer-count { color: #ff1512; font-family:var(--font-main);font-weight:500; }

/* 滑入动画关键帧 */
@keyframes olSlideUp {
  from { transform: translateY(100%); }
  to   { transform: translateY(0); }
}

/* ===== 联系客服/加入社群 弹窗 ===== */
.cs-overlay {
  display: none; position: fixed; inset: 0; background: rgba(0,0,0,.8);
  z-index: 1000000; transition: opacity .25s ease;
}
.cs-overlay.show { display: block; }
.cs-panel {
  position: fixed; left: 50%; top: 50%;
  transform: translate(-50%,-50%) scale(.9);
  width: 86vw; max-width: 106.666667vw;
  border-radius:20px; overflow: visible;
  z-index: 1000001; opacity: 0; pointer-events: none;
  transition: all .3s cubic-bezier(.32,.72,0,1);
}
.cs-panel.show {
  opacity: 1; transform: translate(-50%,-50%) scale(1); pointer-events: auto;
  background-size: 100% 100%;
  background-repeat: no-repeat;
  width: 82.666667vw;
  height: 114.666667vw;
  border-radius: 2.133333vw;
  padding-top: 4.266667vw;
  padding-left: 3.733333vw;
  position: relative;
}
/* 背景图 */
.cs-panel::before {
  content: '';
  position: absolute; inset: 0;
  background: url('./uploads/icons/customerService-bg-CrgrpNhb.webp') no-repeat center center / cover;
  z-index: -1;
}
/* 右上角装饰气泡 */
.cs-decor-img {
  position: absolute;
  right: 2.4vw;
  top: -13.066667vw;
  width: 40vw;
  height: 40vw;
  z-index: 2; pointer-events: none;
}
/* 关闭按钮 */
.cs-close {
  position: absolute; top: 3vw; right: 3vw;
  width: 7vw; height: 7vw; object-fit: contain;
  cursor: pointer; z-index: 3; opacity:.6;
  -webkit-tap-highlight-color: transparent;
}
.cs-close:active { opacity: 1; }
/* 标题区 */
.cs-header {
  display: flex; align-items: center; justify-content: center; gap: 1.5vw;
  padding: 5.33vw 4vw 1.33vw;
}
.cs-title-icon {
  width: 5.33vw; height: 5.33vw; object-fit: contain;
}
.cs-title {
  font-size: 5.33vw; font-weight: 800; color: #fff;
  letter-spacing: .1em; text-shadow: 0 0.533333vw 2.133333vw rgba(99,66,241,.4);
}
/* 副标题 */
.cs-subtitle {
  font-size: 3.2vw;
  line-height: 5.333333vw;
  font-family: var(--font-main);font-weight:500;
  color: #111;
  margin-bottom: 2.666667vw;
  padding-left: 3.733333vw;
}
/* 客服卡片区 */
.cs-cards {
  display: flex;
  align-items: center;
  margin-left: 2.666667vw;
  padding-bottom: 11.466667vw;
  column-gap: 6.133333vw;
}
.cs-card {
  background: #fff;
  border-radius: 1.6vw;
  width: 33.066667vw;
  height: 34.933333vw;
  padding: 3.733333vw 0;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.cs-card:active { transform: scale(.96); box-shadow:0 2px 10px rgba(139,92,246,.25); }
.cs-avatar {
  width: 13.33vw; height: 13.33vw; border-radius: 50%; object-fit: cover;
  border:2px solid #e9d5ff;
}
.cs-card-name {
  font-family: var(--font-en);font-weight:700;
  font-size: 3.2vw;
  color: #111;
  margin: 2.666667vw 0;
}
.cs-card-badge {
  font-family: var(--font-main);font-weight:500;
  font-size: 2.666667vw;
  color: #111;
  background-color: #f6f6fa;
  border-radius: 1.066667vw;
  width: 21.6vw;
  height: 6.4vw;
  display: flex;
  align-items: center;
  justify-content: center;
}
.cs-badge-icon { width: 2.93vw; height: 2.93vw; object-fit: contain; }

/* 社群入口区 */
.cs-group-section { padding: 0 4.67vw 4.67vw; }
.cs-group-label {
  font-size: 3.2vw;
  line-height: 5.333333vw;
  font-family: var(--font-main);font-weight:500;
  color: #111;
  padding-left: 3.733333vw;
  margin-bottom: 2.666667vw;
  text-align: left;
}
.cs-btn {
  display: flex; align-items: center; justify-content: center; gap: 1.6vw;
  width: 100%; height: 11.73vw; border-radius: 3.2vw;
  font-size: 3.47vw; font-weight: 700; color: #fff;
  text-decoration: none; margin-bottom: 1.87vw;
  position: relative; overflow: hidden;
  -webkit-tap-highlight-color: transparent;
  transition: opacity .15s; cursor: pointer;
}
.cs-btn:active { opacity: .85; }
.cs-btn-wa { background: linear-gradient(135deg, #25D366, #128C7E); box-shadow:0 4px 14px rgba(37,211,102,.35); }
.cs-btn-tg { background: linear-gradient(135deg, #0088cc, #005fa8); box-shadow:0 4px 14px rgba(0,136,204,.35); }
.cs-btn-icon { width: 4.8vw; height: 4.8vw; object-fit: contain; flex-shrink: 0; }
.cs-btn-count {
  display: inline-flex; align-items: center; gap: .4vw;
  background: rgba(255,255,255,.22);
  font-size: 2.4vw; font-weight: 600; padding: .4vw 1.2vw;
  border-radius:20px; margin-left: auto;
  flex-shrink: 0;
}
.cs-count-icon { width: 2.67vw; height: 2.67vw; object-fit: contain; }

/* 社群按钮（图片版） */
.cs-btn-img-wrap {
  width: 69.866667vw;
  height: 12.266667vw;
  background-image: url('./uploads/icons/UI_31.webp');
  background-size: 100% 100%;
  background-repeat: no-repeat;
  margin-left: 3.733333vw;
  margin-bottom: 2.133333vw;
  padding-top: 2.666667vw;
  padding-left: 11.733333vw;
  font-size: 3.2vw;
  color: #fff;
  font-family: var(--font-main);font-weight:500;
  display: block;
  -webkit-tap-highlight-color: transparent;
}
.cs-btn-img-wrap:active { opacity: .85; }
.cs-btn-img-tg {
  background-image: url('./uploads/icons/UI_29.webp');
  height: 12.266667vw;
  background-size: 100% 100%;
  background-repeat: no-repeat;
  margin-left: 3.733333vw;
  margin-bottom: 2.133333vw;
  padding-top: 2.666667vw;
  padding-left: 11.733333vw;
  font-size: 3.2vw;
  color: #fff;
  font-family: var(--font-main);font-weight:500;
}
.cs-panel-close {
  position: fixed;
  bottom: calc(11.466667vw + env(safe-area-inset-bottom));
  left: 50%;
  transform: translateX(-50%);
  width: 10.666667vw;
  height: 10.666667vw;
  z-index: 1000001;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s ease;
}
.cs-panel-close.show {
  opacity: 1;
  pointer-events: auto;
}
.cs-btn-img {
  width: 100%; height: auto; display: block;
  border-radius:12px;
}

.dt-draw-buttons {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2.133333vw;
  width: 100%;
}
.dt-draw-btn:active {transform:scale(.95);box-shadow:0 1px 4px rgba(255,71,87,.3);}
.ddb-label {display:block;font-size:.82em;font-weight:700;line-height:1.2;}
.ddb-price {display:block;font-size:.68em;opacity:.9;margin-top:0.27vw;}
/* Market */
.mktabs{display:flex;margin:0 4.266667vw;background:#fff;border-radius:var(--Rs);overflow:hidden;box-shadow:var(--shadow);}
.mktab{flex:1;padding:2.666667vw;text-align:center;font-size:.85em;font-weight:600;color:var(--hint);cursor:pointer;transition:.2s;border-bottom:0.67vw solid transparent;}
.mktab.on{color:var(--primary);border-bottom-color:var(--primary);background:var(--card);}
.mklist{padding:3.2vw 4.27vw;display:flex;flex-direction:column;gap:3.2vw;}
.mkcard{background:#fff;border-radius:var(--R);padding:3.733333vw;box-shadow:var(--shadow);}
.mkcard .mktop{display:flex;align-items:center;gap:2.67vw;margin-bottom:2.67vw;}
.mkcard .mkav{width:9.6vw;height:9.6vw;border-radius:50%;overflow:hidden;}.mkcard .mkav img{width:100%;height:100%;object-fit:cover;}
.mkcard .mkname{font-size:.88em;font-weight:600;}.mkcard .mklv{display:inline-block;padding:0.27vw 1.6vw;border-radius:1.07vw;font-size:.62em;font-weight:700;color:#fff;background:var(--green);margin-left:1.066667vw;}
.mkcard .mktime{font-size:.68em;color:var(--hint);}
.mkcard .mkitems{display:flex;gap:2.13vw;overflow-x:auto;padding-bottom:1.07vw;}.mkcard .mkitems::-webkit-scrollbar{display:none;}
.mkcard .mki{width:17.07vw;height:17.07vw;border-radius:2.67vw;display:flex;align-items:center;justify-content:center;font-size:1.8em;flex-shrink:0;position:relative;overflow:hidden;}
.mkcard .mki img{width:100%;height:100%;object-fit:cover;}
.mkcard .mki .mkib{position:absolute;top:0.8vw;left:0.8vw;padding:0 1.07vw;border-radius:0.8vw;font-size:.55em;font-weight:700;color:#fff;}
.mkcard .mkbot{display:flex;justify-content:space-between;align-items:center;margin-top:2.67vw;padding-top:2.13vw;border-top:0.27vw solid var(--border);}
.mkcard .mkcount{font-size:.8em;color:var(--text2);}.mkcard .mkprice{font-size:1em;font-weight:700;color:var(--primary);}
.mkcard .mkbuy{padding:1.6vw 4.27vw;border:none;border-radius:2.13vw;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;font-size:.82em;font-weight:700;cursor:pointer;}
/* Warehouse */
.whgrid{height:100%;overflow:hidden;padding:0 3.2vw;width:100%;display:flex;will-change:transform;}
.wi{background:#fff;border-radius:var(--Rs);overflow:hidden;box-shadow:var(--shadow);cursor:pointer;position:relative;transition:.15s;-webkit-tap-highlight-color:transparent;}
.wi:active{transform:scale(.93);}.wi.sel{box-shadow:0 0 0 2.5px var(--primary);}.wi .wib{position:absolute;top:1.33vw;left:1.33vw;padding:0.27vw 1.33vw;border-radius:1.07vw;font-size:.62em;font-weight:700;color:#fff;}
.wi .wimg{width:100%;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.wi .wimg img{width:100%;height:100%;object-fit:cover;}.wi .we{font-size:2.2em;}
.wi .winfo{padding:1.33vw 1.87vw;}.wi .wn{font-size:.7em;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.wi .wv{font-size:.66em;color:var(--primary);font-weight:600;margin-top:0.27vw;}
.wi .wcheck{position:absolute;top:1.33vw;right:1.33vw;width:5.33vw;height:5.33vw;border-radius:50%;border:0.53vw solid var(--border);display:flex;align-items:center;justify-content:center;font-size:.7em;color:#fff;transition:.15s;}
.wi.sel .wcheck{background:var(--primary);border-color:var(--primary);}
.whbar{position:sticky;bottom:0;padding:2.666667vw 4.266667vw;background:rgba(245,240,255,.95);backdrop-filter:blur(3.2vw);display:flex;gap:2.133333vw;align-items:center;border-top:0.27vw solid var(--border);}
.whbar .info{flex:1;font-size:.82em;color:var(--text2);}.whbar .info b{color:var(--primary);}
/* Modal */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.8);z-index:1001;display:none;align-items:center;justify-content:center;padding:5.33vw;}.modal.show{display:flex;}

/* ===== 中奖结果弹窗 ===== */
.result-modal{position:fixed;inset:0;z-index:1000010;display:none;align-items:center;justify-content:center;overflow-y:auto;background:rgba(0,0,0,0.85);transition:opacity .5s ease;opacity:1;}
.result-modal.show{display:flex;}
.result-modal-bg{display:none;}
.result-content{height:69.333333vw;min-height:69.333333vw;max-height:69.333333vw;background-image:url('./uploads/icons/bg-result-SP-CO_A4Ein.webp');background-size:100% 100%;width:100vw;position:relative;animation:bigBox .3s;display:flex;flex-direction:column;align-items:center;padding:10.67vw 4vw 5.33vw;box-sizing:border-box;}
.result-total{position:absolute;top:11.466667vw;left:50%;transform:translate(-50%);display:flex;align-items:center;font-size:3.2vw;color:#111;white-space:nowrap;line-height:3.2vw;}
.result-total .rt-label{font-size:2.93vw;color:#747a72;margin-right:0.8vw;}
.result-total .rt-val{font-size:3.2vw;color:#111;font-weight:700;margin-right:1.07vw;}
.result-total .rt-line{width:0.266667vw;height:3.2vw;background-color:#aab0b1;margin:0 2.133333vw;}
.result-total .rt-num{font-size:3.2vw;color:#ff0000;font-weight:700;margin-right:0.533333vw;}
.result-total .rt-pt{font-size:2.93vw;color:#747a72;}
.result-total span{margin:0 1.07vw;}
.result-grid{flex:1;width:100%;box-sizing:border-box;padding:0 2.133333vw;padding-right:6vw;display:flex;align-items:center;justify-content:flex-start;column-gap:3.2vw;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;touch-action:pan-x;}
.result-grid::-webkit-scrollbar{display:none;}
.result-item{position:relative;width:24.533333vw;padding-top:7vw;display:flex;flex-direction:column;align-items:center;flex-shrink:0;}
.goodsImgBox{position:relative;width:24.533333vw;height:24.533333vw;background-size:100% 100%;border-radius:1.066667vw;display:flex;align-items:center;justify-content:center;background-position:center;background-repeat:no-repeat;box-shadow:0 0.53vw 2.13vw rgba(0,0,0,0.15);overflow:visible;margin-top:2.4vw;}
.goodsImgBox .tag{position:absolute;top:1.066667vw;left:1.066667vw;height:4.266667vw;object-fit:contain;z-index:2;}
.goodsImgBox .goods_img{width:100%;height:100%;border-radius:1.066667vw;object-fit:contain;position:relative;z-index:1;}
.goodsImgBox .num{position:absolute;right:0;bottom:0;padding:0.533333vw 0.8vw;font-size:2.4vw;color:#fff;line-height:2.4vw;font-family:var(--font-num);font-weight:500;background:#1116;backdrop-filter:blur(5.333333vw);border-radius:1.066667vw 0;z-index:2;}
.goodsImgBox .timesNumber{position:absolute;z-index:2;}
.goodsImgBox .timesNumber.numTimes{position:absolute;height:8.533333vw;width:8.533333vw;top:-2.133333vw;right:-2.133333vw;}
.goodsImgBox .timesNumber.numTimes>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:0;}
.goodsImgBox .timesNumber .lucky-box{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;}
.goodsImgBox .timesNumber .mul-inner{position:relative;font-size:3.2vw;filter:drop-shadow(0px 1px 0px rgba(0,0,0,.8));font-family:var(--font-num);font-weight:800;font-style:italic;white-space:nowrap;}
.goodsImgBox .timesNumber .text-content{position:relative;display:inline-block;color:transparent;white-space:nowrap;}
.goodsImgBox .timesNumber .text-content::before{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%;-webkit-text-stroke:var(--mul-stroke,0.266667vw) #000;color:transparent;z-index:1;}
.goodsImgBox .timesNumber .text-content::after{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%;color:transparent;font-size:var(--mul-fs,3.2vw);background-clip:text;-webkit-background-clip:text;background-image:linear-gradient(180deg,#ffe628 22.73%,#fff);font-family:var(--font-num);font-weight:800;font-style:italic;z-index:2;}
.goodsName{font-size:2.666667vw;color:#111;width:24.533333vw;text-align:center;padding-top:1.6vw;padding-bottom:0.533333vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box;}
.price{color:#ff0000;font-family:var(--font-en);font-weight:500;font-size:3.2vw;line-height:3.2vw;text-align:center;}
.result-money{display:inline-flex;align-items:baseline;gap:.8vw;font-family:var(--font-en);color:#ff0000;line-height:1;}
.result-money .result-money-symbol,
.result-money .result-money-num{font-weight:800;}
.result-money-sm .result-money-symbol,
.result-money-sm .result-money-num{font-size:2.666667vw;}
.result-money-md .result-money-symbol,
.result-money-md .result-money-num{font-size:3.2vw;color:#111;}
.rt-val .result-money{color:#111;}
.result-tip{position:absolute;bottom:-9.6vw;left:50%;transform:translate(-50%);color:#ccd1d2;font-size:3.2vw;white-space:nowrap;font-family:var(--font-main);font-weight:var(--W300);}
.result-footer{position:fixed;bottom:18.933333vw;left:0;width:100%;display:flex;align-items:center;justify-content:center;column-gap:3.733333vw;z-index:9999;animation:bigBox .3s;}
.result-close-btn{width:32vw;height:10.67vw;background:url('./uploads/icons/btn1-D_ATW48u.webp') center no-repeat;background-size:contain;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:3.73vw;font-weight:700;letter-spacing:0.53vw;}
.mbox{background:#fff;border-radius:20px;padding:6.4vw;width:100%;max-width:96vw;text-align:center;animation:pop .3s;}
@keyframes pop{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes bigBox{from{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}
/* 发货成功弹窗 - 参照出售成功弹窗样式 */
.ship-success-popup{background:#fff;border-radius:6px;width:84.266667vw;height:69.333333vw;padding:0;text-align:center;display:flex;flex-direction:column;align-items:center;position:relative;}
.ship-success-icon{width:31.87vw;height:31.34vw;display:flex;align-items:center;justify-content:center;margin-top:-15.466667vw;}
.ship-success-icon img{width:100%;height:100%;object-fit:contain;}
.ship-success-title{font-size:1.1em;font-weight:700;color:#333;margin-top:2.666667vw;}
.ship-success-sub{font-size:.9em;color:#666;margin-top:1.6vw;}
.ship-success-tip{font-size:.85em;color:#666;margin-top:1.066667vw;}

/* ===== 出售成功弹窗 ===== */
#sellSuccessModal{position:fixed;inset:0;z-index:1000001;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.8);}
#sellSuccessModal.show{display:flex;}
.ss-popup{background:#fff;border-radius:var(--R);width:84.328vw;height:58.416vw;padding:0;text-align:center;display:flex;flex-direction:column;align-items:center;position:relative;}
.ss-icon{width:31.87vw;height:33.3vw;display:flex;align-items:center;justify-content:center;margin-top:-16.533333vw;}
.ss-icon img{width:100%;height:100%;object-fit:contain;}
.ss-title{font-size:1.1em;font-weight:700;color:#333;margin-top:2.133333vw;}
.ss-amount-row{width:84.33vw;height:5.72vw;display:flex;align-items:center;justify-content:center;font-size:3.733333vw;color:#72797a;margin-top:1.066667vw;}
.ss-amount-row .ss-currency{color:#e53935;font-weight:600;}
.ss-btn{width:75.18vw;height:12.576vw;background:#000;border:none;border-radius:8px;color:#fff;font-size:1em;font-weight:600;cursor:pointer;font-family:inherit;position:absolute;bottom:5.33vw;}
.ss-btn:active{transform:scale(.97);}

/* ===== 发货订单列表页面 ===== */
/* Tab容器 - 仿 dr-tabs 风格 */
.order-tabs{
  display:flex; margin:0 4.266667vw; background:#ebebeb;
  border-radius:8px; padding:1.07vw; gap:1.07vw; box-sizing:border-box;
}
/* Tab按钮 - 仿 dr-tab 风格 */
.order-tab-btn{
  flex:1; padding:2.133333vw 0; text-align:center;
  font-size:.88em; font-weight:600; color:#999;
  border:none; background:transparent; border-radius:1.6vw; cursor:pointer;
  transition:background .2s, color .2s, box-shadow .2s;
  -webkit-tap-highlight-color:transparent;
}
.order-tab-btn.active{
  background:#fff; color:#222; font-weight:600;
  box-shadow:0 1px 6px rgba(0,0,0,0.12);
}

/* 订单卡片 */
.order-card{background:#fff;border-radius:8px;margin-top:2.666667vw;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.04);}
/* 卡片头部 - 时间+状态 */
.order-card-header{display:flex;align-items:center;justify-content:space-between;padding:3.2vw 3.73vw 2.13vw;}
.order-time{font-size:3.2vw;color:#747a72;}
.order-status-row{display:flex;align-items:center;gap:1.07vw;}
.order-status-icon{width:4.27vw;height:4.27vw;}
.order-status-text{font-size:.82em;font-weight:600;}
.order-status-pending{color:#e53935;}
.order-status-shipped{color:#ff9800;}
.order-status-completed{color:#999;}

/* 商品区域 - 默认高度自适应，多商品时由JS设固定高度可滚动 */
.order-item-area{
  margin: 1.6vw 2.67vw;
  padding: 3.2vw;
  border-radius: 2.13vw;
  background-image: url('./uploads/icons/order-item-bg-1-xsvk_T8g.webp');
  background-size: 100% auto;
  background-repeat: no-repeat;
}
.order-goods-row{display:flex;align-items:center;gap:3.2vw;}
.order-goods-img{width:17.07vw;height:17.07vw;border-radius:6px;overflow:hidden;flex-shrink:0;background:#f5f5f5;background-size:cover;background-position:center;position:relative;}
.order-goods-img img{width:100%;height:100%;object-fit:contain;position:relative;z-index:1;}
.order-goods-info{flex:1;display:flex;flex-direction:column;justify-content:center;gap:1.07vw;min-width:0;}
.order-goods-name{font-size:.9em;font-weight:600;color:#333;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.order-goods-price-row{display:flex;align-items:baseline;justify-content:space-between;}
.order-goods-price{font-size:.88em;font-weight:600;color:#333;}
.order-goods-qty{font-size:.82em;color:#999;}

/* 待发货提示文字（红色警告） */
.order-ship-notice{margin:2.13vw 3.73vw 0;padding:2.133333vw 3.2vw;background:#f6f6fa;border-radius:6px;font-size:2.666667vw;color:#e53935;line-height:1.5;}
.order-logistics-row{
  margin:2.13vw 3.73vw 0;
  padding:2.133333vw 3.2vw;
  background:#f6f6fa;
  border-radius:6px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2.13vw;
  font-size:3.2vw;
  color:#555;
}
.order-logistics-row strong{
  min-width:0;
  color:#111;
  font-size:3.2vw;
  font-weight:700;
  word-break:break-all;
  text-align:right;
}
.order-auto-complete-tip{
  margin:1.6vw 3.73vw 0;
  color:#8a8a8a;
  font-size:2.933333vw;
  line-height:1.45;
}

/* 卡片底部按钮区 */
.order-card-actions{padding:2.67vw 3.73vw 3.73vw;display:flex;justify-content:flex-end;gap:3.2vw;}
.order-action-btn{min-width:22.4vw;height:9.066667vw;border:1px solid #ddd;background:#fff;color:#333;border-radius:6px;font-size:.85em;font-weight:500;cursor:pointer;text-align:center;padding:0 4.27vw;}
.order-action-btn.primary{border:none;background:#1a1a1a;color:#fff;font-weight:600;}

/* 空状态 */
.order-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16vw 5.33vw;}
.order-empty-img{width:37.33vw;height:37.333333vw;margin-bottom:4.266667vw;opacity:.5;}
.order-empty-text{font-size:.92em;color:#999;}

/* 到货晒单Banner */
.order-show-banner{background:linear-gradient(135deg, #2dd4bf, #0d9488);height:12.576vw;border-radius:8px;overflow:hidden;position:relative;width:98.05vw;}

/* ===== 确认提示弹窗（居中） ===== */
/* 提示弹窗 - Toast风格（顶部显示，无按钮，自动消失） */
#confirmModal{position:fixed !important;top:50% !important;left:50% !important;right:auto !important;bottom:auto !important;z-index:3000 !important;display:none !important;transform:translate(-50%,-50%) !important;background:none !important;border-radius:1.6vw !important;padding:0 !important;margin:0 !important;width:auto !important;height:auto !important;max-width:none !important;max-height:none !important;}
#confirmModal.show{display:flex !important;}
#confirmModal .cm-popup{background:#2a2a3a !important;border-radius:6px !important;width:auto;min-width:58.67vw;max-width:80%;padding:4.27vw 7.47vw;text-align:center;box-shadow:0 8px 30px rgba(0,0,0,.3);}
#confirmModal .cm-text{font-size:.9em;color:#fff;margin-bottom:0;line-height:1.5;}
@keyframes cmFadeIn { from{opacity:0;} to{opacity:1;} }
/* ===== Quick Sell Sheet - 精仿Popgo Vant Popup Bottom ===== */

#quickSellSheet.van-popup {
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  z-index: 2014;
  display: none;
}

#quickSellSheet.van-popup.qs-active { display: block !important; }

/* 遮罩层 */
#quickSellSheet .van-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.8);
  z-index: 1;
  animation: qsFadeIn .25s ease forwards;
}
@keyframes qsFadeIn { from{opacity:0;} to{opacity:1;} }

/* 底部弹出面板 - 精仿Popgo：从下往上滑入 */
#qsPanelBottom {
  position: fixed !important;
  bottom: 0;
  left: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  background: #fff;
  border-radius: 4.27vw 4.27vw 0 0;
  box-sizing: border-box;
  height: 70vh;
  max-height: 70vh;
  z-index: 2015;
  margin: 0 !important;
}

/* selectbox 容器 - 占满面板高度 */
.qs-selectbox {
  display: flex;
  flex-direction: column;
  height: 100%;
  max-height: calc(70vh);
  padding-bottom: env(safe-area-inset-bottom, 0);
  background: #f6f6fa;
}

/* === Header - 精仿Popgo：出售 ⚡即时到账 × === */
.qs-header {
  display: flex;
  align-items: center;
  justify-content: flex-start; /* 左对齐 */
  gap: 2.13vw;
  padding: 4.27vw 4.27vw 3.2vw;
  flex-shrink: 0;
}
.qs-header-title {
  font-size: 4.53vw;
  font-weight: 700;
  color: #323233;
  white-space: nowrap;
}
/* 即时到账标签 - 黑底白字 */
.qs-sell-tag {
  display: inline-flex;
  align-items: center;
  gap: 1.07vw;
  background: #1a1a1a; /* 黑色背景 */
  color: #fff; /* 白色文字 */
  border: none;
  font-size: 3.47vw;
  font-weight: 700;
  padding: 0.53vw 2.4vw;
  border-radius: 1.07vw;
}
.qs-sell-tag span:first-child {
  color: #fff !important; /* ⚡白色图标 */
  font-size: 3.47vw;
}
/* 关闭按钮 - 右上角黑色× */
.qs-close {
  width: 6.4vw;
  height: 6.4vw;
  cursor: pointer;
  margin-left: auto;
  opacity: 0.8;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.qs-close:hover { opacity: 1; }
.qs-close:hover { opacity: 1; }

/* === List / Item（精仿Popgo：可滚动，约显示3.5个商品）=== */
.qs-list {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  padding: 0 1.07vw;
  min-height: 0; /* 允许flex收缩 */
}

/* 单个商品项 */
.qs-item {
  display: flex;
  align-items: flex-start;
  padding: 3.47vw 4.27vw;
  gap: 2.93vw;
  position: relative;
  background: #fff;
}
.qs-item + .qs-item::before {
  content: '';
  position: absolute;
  left: 26.4vw;
  top: 0;
  right: 4.27vw;
  height: 0.27vw;
  background: #f3f3f3;
}

/* 商品图片区域 - 64.31x64.31 */
.qs-goods-img {
  width: 17.15vw;
  height: 17.15vw;
  min-width: 17.15vw;
  border-radius: 2.13vw; /* --van-radius-lg */
  overflow: hidden;
  background: #f7f8fa; /* --van-gray-1 */
  position: relative;
  flex-shrink: 0;
}
.qs-goods-img img.bg-img,
.qs-goods-img img.img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  top: 0; left: 0;
}

/* 商品信息 */
.qs-goods-info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 0.53vw 0;
}

/* 名称行：SP标签 + 名称 */
.qs-namebox {
  display: flex;
  align-items: center;
  gap: 1.07vw;
  margin-bottom: 1.07vw;
}
.qs-namebox .sp-icon {
  height: 4.27vw;
  width: auto;
  object-fit: contain;
}
.qs-name {
  font-size: 3.47vw; /* --van-font-size-md */
  font-weight: 600;
  color: #323233; /* --van-text-color */
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  line-height: 1.4;
}

/* 价格行：价格显示 + 数量控制 */
.qs-price-box {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 1.07vw;
}
.qs-price-display {
  display: flex;
  align-items: baseline;
  gap: 0.27vw;
}
.qs-currency-text {
  font-size: 3.2vw; /* --van-font-size-sm */
  color: #ee0a24; /* --van-red */
  font-weight: 600;
  font-family:var(--font-en); /* --van-price-font */
}
.qs-price-number {
  font-size: 3.2vw;
  color: #333; /* 改为黑色 */
  font-weight: 700;
  font-family: var(--font-en);
}

/* 数量控制 - 精仿Vant Stepper */
.qs-quantity {
  display: flex;
  align-items: center;
  gap: 0; /* Vant无间距 */
}
.qs-decrease,
.qs-add {
  width: 11.43vw;
  height: 6.86vw;
  border-radius: 0.53vw; /* --van-radius-sm */
  border: none; /* Vant无边框 */
  background: #f2f3f5; /* --van-gray-2 */
  font-size: 3.73vw; /* --van-font-size-md */
  color: #323233; /* --van-text-color */
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  user-select: none;
  transition: opacity .15s ease;
  line-height: 1;
  padding: 0;
}
.qs-decrease::before { content: '−'; }
.qs-add::before { content: '+'; }
.qs-decrease.active,
.qs-add.active {
  border-color: #333;
  color: #333;
  background: #fff;
}
/* 禁用状态：数量=1时-不可点，数量=max时+不可点 */
.qs-decrease.disabled,
.qs-add.disabled {
  opacity: .35 !important;
  pointer-events: none !important;
  cursor: not-allowed !important;
  background: #f2f3f5 !important;
  color: #c8c9cc !important;
}
.qs-num {
  width: 8.53vw; /* --van-stepper-input-width */
  height: 7.47vw; /* --van-stepper-input-height */
  font-size: 3.73vw; /* --van-font-size-md */
  font-weight: normal;
  color: #323233; /* --van-text-color */
  text-align: center;
}

/* 删除按钮（右侧）- 图片图标 */
.qs-del-box {
  padding: 0.53vw;
  cursor: pointer;
  flex-shrink: 0;
  opacity: 1;
  transition: opacity .15s;
}
.qs-del-box:hover { opacity: 0.7; }
.qs-del-icon {
  display: inline-block;
  width: 4vw;
  height: 4vw;
  object-fit: contain;
}

/* ===== 出售弹窗 - 运费行 & 支付方式行（已删除） ===== */

/* === Footer Bottom - 精仿Popgo布局 === */
.qs-footer-bottom { 
  flex-shrink: 0; 
}

/* 底部提示 - 精仿Vant NoticeBar */
.qs-messagebox {
  background: #ffefef;
  height: 6.4vw;
  color: #ff0000;
  font-size: 2.666667vw;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* 汇总区域 - 精仿Popgo：上行(数量+价格) 下行(全宽按钮) */
.qs-all-info {
  display: flex !important;
  flex-direction: column;
  padding: 2.13vw 4.27vw 1.6vw;
  gap: 2.67vw;
}
/* 数量+价格同一行 - 精仿Popgo */
.qs-left-summary {
  display: flex !important;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0;
}
.qs-left-summary p {
  font-size: 3.73vw;
  color: #333;
  margin: 0 !important;
  margin-right: 1.07vw !important;
  font-weight: normal;
}
.qs-left-summary p strong { font-weight: normal; }
/* 共N件数字 - 与文字字体一致，去掉斜体 */
#qsCount {
  font-style: normal;
  font-size: 3.73vw;
  font-weight: normal;
  color: #333;
}

/* 汇总价格 - 精仿Popgo大号红色价格（与"共N件："同行） */
.qs-total-price {
  display: inline-flex;
  align-items: baseline;
  gap: 0.27vw;
}
.currency-text.rm {
  font-size: 4.27vw;
  color: #ee0a24;
  font-weight: 800;
  font-family: var(--font-en);
}
.price-number {
  font-size: 5.33vw;
  color: #ee0a24;
  font-weight: 800;
  font-family: var(--font-en);
}

/* 确认出售按钮 - 全宽黑色 */
.qs-confirm-btn {
  width: 100%;
  height: 11.73vw;
  border: none;
  border-radius: var(--R);
  background: #1a1a1a;
  color: #fff;
  font-size: 4vw;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
}
.mbox .rimg{width:29.33vw;height:29.33vw;margin:0 auto 3.73vw;border-radius:4.27vw;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.mbox .rimg img{width:100%;height:100%;object-fit:cover;}.mbox .remoji{font-size:3.2em;}
.mbox .rgrade{display:inline-block;padding:0.53vw 2.67vw;border-radius:1.33vw;font-size:.78em;font-weight:700;color:#fff;margin-bottom:1.6vw;}
.mbox .rname{font-size:1.05em;font-weight:700;margin-bottom:0.8vw;}.mbox .rval{font-size:.9em;color:var(--primary);font-weight:600;}
.mbtn{display:flex;gap:2.13vw;margin-top:4.8vw;}.mbtn button{flex:1;padding:2.933333vw;border:none;border-radius:var(--Rs);font-size:.86em;font-weight:600;cursor:pointer;font-family:inherit;}
.bkeep{background:var(--purple);color:#fff;}.bcash{background:#E8FFF6;color:var(--green);}.bclose{background:var(--bg);color:var(--text2);}
.mlist{max-height:101.33vw;overflow-y:auto;margin:3.73vw 0;}
.mi{display:flex;align-items:center;gap:2.67vw;padding:1.87vw 0;border-bottom:0.27vw solid var(--border);}
.mi .miimg{width:11.2vw;height:11.2vw;border-radius:2.13vw;display:flex;align-items:center;justify-content:center;font-size:1.4em;overflow:hidden;flex-shrink:0;}

/* ===== 发货确认页面样式 ===== */
#p-ship-confirm {
  background: #f8f8f8 !important;
  min-height: 100vh;
  padding-bottom: 21.33vw;
}

/* 顶部标题栏 402 x 47.16 */
#p-ship-confirm .ship-topbar {
  background: #fff;
  height: 12.58vw;
  padding: 0 4.27vw;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom:1px solid #ECECF3;
}
#p-ship-confirm .ship-topbar .back-btn {
  width: 7.47vw;
  height: 7.47vw;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
}
#p-ship-confirm .ship-topbar .back-btn img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
#p-ship-confirm .ship-topbar .title {
  font-size: 1.05em;
  font-weight: 700;
  color: #1E1E2E;
}
#p-ship-confirm .ship-topbar .placeholder {
  width: 7.47vw;
}

/* 收货地址卡片包装器 */
#p-ship-confirm .ship-address-wrapper {
  position: relative;
  width: calc(100% - 4.27vw);
  margin: 0 2.13vw;
  border-radius: 1.07vw;
  background: #fff;
}

/* ===== 空状态（未填写）- 截图效果 ===== */
#p-ship-confirm .ship-addr-empty-card {
  width: calc(100% - 4.27vw) !important;
  height: 12.8vw !important;
  background: #fff; border-radius: 1.066667vw;
  padding: 3.73vw 4.27vw !important;
  margin: 0 2.13vw !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 1.6vw;
  cursor: pointer;
  box-sizing: border-box !important;
}
#p-ship-confirm .ship-addr-empty-card.hide { display: none !important; }
#p-ship-confirm .ship-addr-empty-icon {
  width: 7.17vw !important;
  height: 7.17vw !important;
  object-fit: contain;
  display: block;
}
#p-ship-confirm .ship-addr-empty-text {
  font-size: 3.733333vw;
  color: #ff4d4f;
  font-weight: normal;
}

/* ===== 已填状态（居中）===== */
#p-ship-confirm .ship-addr-filled-card {
  width: calc(100% - 4.27vw) !important;
  margin: 0 2.13vw !important;
  background: #fff;
  border-radius: 1.07vw;
  padding: 4.27vw !important;
  display: flex !important;
  align-items: flex-start !important;
  gap: 2.67vw;
  cursor: pointer;
  box-sizing: border-box !important;
}
#p-ship-confirm .ship-addr-filled-card.hide { display: none !important; }

/* 已填状态 - 左侧图标 */
#p-ship-confirm .ship-addr-icon {
  width: 5.69vw !important;
  height: 5.69vw !important;
  flex-shrink: 0;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
#p-ship-confirm .ship-addr-icon img {
  width: 5.69vw !important;
  height: 5.69vw !important;
  object-fit: contain !important;
  display: block !important;
}
/* 左侧定位图标 */
#p-ship-confirm .ship-addr-icon {
  width: 5.69vw !important;
  height: 5.69vw !important;
  flex-shrink: 0;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
#p-ship-confirm .ship-addr-icon img {
  width: 5.69vw !important;
  height: 5.69vw !important;
  object-fit: contain !important;
  display: block !important;
}
/* 右侧内容区 */
#p-ship-confirm .ship-addr-content {
  flex: 1; min-width: 0;
  display: flex; flex-direction: column; gap: 1.6vw;
}
/* 第一行：姓名 + 电话 + 默认标签 */
#p-ship-confirm .ship-addr-top-line {
  display: flex; align-items: center; gap: 1.6vw; flex-wrap: nowrap;
}
#p-ship-confirm .ship-addr-name {
  font-size: 3.73vw; font-weight: 600; color: var(--primary);
}
#p-ship-confirm .ship-addr-phone {
  font-size: 3.73vw; font-weight: 500; color: #333;
}
#p-ship-confirm .ship-addr-default-badge {
  background: linear-gradient(173deg, #ff4d4f 0%, #ff7838 100%);
  color: #fff; font-size: 2.933333vw; font-weight: 600;
  padding: 0.27vw 1.33vw; border-radius: 0.8vw;
  line-height: 4.27vw; white-space: nowrap;
}
/* 第二行：地址详情 + 箭头 */
#p-ship-confirm .ship-addr-bottom-line {
  display: flex; align-items: center; justify-content: space-between;
  width: 100%;
}
#p-ship-confirm .ship-addr-detail {
  font-size: 3.2vw; color: #666; line-height: 4.8vw;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  flex: 1; min-width: 0;
}
#p-ship-confirm .ship-addr-arrow {
  width: 5.97vw; height: 5.970667vw; flex-shrink: 0; margin-left: 2.133333vw;
  opacity: 0.4;
}
/* 地址卡片底部装饰图片 367.72 x 2.14 */
#p-ship-confirm .ship-addr-bottom-img {
  width: calc(100% - 4.27vw);
  margin: 2.67vw 2.13vw 0;
}
#p-ship-confirm .ship-addr-bottom-img img {
  width: 100%;
  height: auto;
  display: block;
}

/* 无地址时显示（保留兼容）*/
#p-ship-confirm .ship-no-address {
  color: #FF4757;
  font-size: .85em;
}

/* 四图标流程区 367.72 x 132.88 */
#p-ship-confirm .ship-flow-section {
  width: calc(100% - 4.27vw);
  margin: 2.67vw 2.13vw 0;
  padding: 4.27vw;
  background: #fff;
  border-radius: 1.07vw;
}
#p-ship-confirm .ship-flow-title {
  font-size: .82em;
  font-weight: 700;
  color: #1E1E2E;
  letter-spacing: 0.08em;
  margin-bottom: 3.73vw;
  display: flex;
  align-items: center;
  gap: 1.6vw;
  padding-left: 2.13vw;
}
#p-ship-confirm .ship-flow-title .date-icon {
  width: 4.57vw;
  height: 4.57vw;
  flex-shrink: 0;
}
#p-ship-confirm .ship-flow-title .date-icon img {
  width: 4.57vw;
  height: 4.57vw;
  object-fit: contain;
}
/* 发货商品列表（新）- 与闪电图标左对齐 */
#p-ship-confirm .ship-goods-list-new {
  display: flex;
  flex-direction: column;
  gap: 1.6vw; /* 缩小商品间距 */
}
/* 展开/收起按钮 - 在商品列表容器内部，作为最后一个子元素 */
.ship-expand-bar {
  width: 90%;
  height: 3.43vw;
  margin: 0 auto; /* 无上边距，紧贴上方商品 */
  display: none;
  align-items: center;
  justify-content: center;
  gap: 1.6vw;
  cursor: pointer;
  flex-shrink: 0;
}
#p-ship-confirm .ship-expand-text {
  font-size: .7em;
  color: #747A72;
  white-space: nowrap;
}
#p-ship-confirm .ship-expand-icon {
  width: 3.2vw;
  height: 2.13vw;
  object-fit: contain;
  transition: transform .25s ease;
}
#p-ship-confirm .ship-expand-icon.expanded {
  transform: rotate(180deg);
}
.ship-goods-list-new > .ship-goods-item-new.hidden-item {
  display: none; /* 收起状态完全隐藏 */
}
.ship-goods-list-new > .ship-goods-item-new {
  /* 展开/收起动画由JS内联样式控制max-height */
}

/* 运费显示栏 */
#p-ship-confirm .ship-fee-bar {
  width: calc(100% - 4.27vw);
  height: 14.33vw;
  margin: 1.6vw 2.13vw 0;
  background: #fff;
  border-radius: 2.13vw;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 3.73vw;
  box-sizing: border-box;
}

/* 支付方式栏 */
#p-ship-confirm .ship-pay-bar {
  width: calc(100% - 4.27vw);
  height: 14.33vw;
  margin: 1.6vw 2.13vw 0;
  background: #fff;
  border-radius: 2.13vw;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 3.73vw;
  box-sizing: border-box;
}
#p-ship-confirm .ship-pay-left {
  display: flex;
  align-items: center;
  gap: 2.13vw;
}
#p-ship-confirm .ship-pay-icon {
  width: 6.86vw;
  height: 6.86vw;
  flex-shrink: 0;
}
#p-ship-confirm .ship-pay-label {
  font-size: 3.47vw;
  color: #1E1E2E;
  font-weight: 500;
}
#p-ship-confirm .ship-fee-row {
  padding: 0 4.27vw;
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-shadow:0 1px 4px rgba(100,80,160,0.06);
  box-sizing: border-box;
}
#p-ship-confirm .ship-fee-left {
  display: flex;
  align-items: center;
  gap: 2.13vw;
}
#p-ship-confirm .ship-fee-icon {
  width: 6.86vw;
  height: 6.86vw;
  object-fit: contain;
}
#p-ship-confirm .ship-fee-label {
  /* 复用 ship-pay-label 样式 */
}
#p-ship-confirm .ship-fee-value {
  font-size: .9em;
  font-weight: 700;
  color: #ee0a24;
}
#p-ship-confirm .ship-fee-value .currency-symbol-sm {
  font-weight: 600;
}
#p-ship-confirm .ship-fee-label .ship-fee-total-value .currency-symbol-sm {
  font-weight: 600;
}
#p-ship-confirm .ship-fee-value.free {
  color: var(--primary);
}
#p-ship-confirm .ship-pay-radio {
  width: 4.57vw;
  height: 4.57vw;
  flex-shrink: 0;
}
/* 发货提示说明 - 宽度对齐上方栏 */
#p-ship-confirm .ship-notice {
  width: calc(100% - 4.27vw);
  height: auto;
  min-height: 17.73vw;
  margin: 1.6vw 2.13vw 0;
  background: #fff;
  border-radius: 2.13vw;
  padding: 1.6vw 3.2vw;   /* 缩小上下内边距 */
  box-sizing: border-box;
  line-height: 1;      /* 容器也加行高 */
}
#p-ship-confirm .ship-notice-text {
  color: #747a72;
  font-size: 2.666667vw;
  line-height: 4.27vw !important;    /* 像素值强制 */
  display: block;
}
/* 发货页面商品列表项 - 按要求修改 */
#p-ship-confirm .ship-goods-item-new {
  width: calc(100% - 4.27vw);
  min-height: 17.15vw;
  margin: 0 2.13vw;
  background: #fff;
  border-radius: 2.13vw;
  padding: 2.13vw 3.2vw; /* 缩小内边距 */
  box-sizing: border-box;
  display: flex;
  align-items: flex-start;
  gap: 2.67vw;
  position: relative;
}
/* 图片与上方闪电图标左对齐 */
#p-ship-confirm .ship-goods-item-new .sgn-img {
  width: 17.15vw;
  height: 17.15vw;
  min-width: 17.15vw;
  border-radius: 1.6vw;
  overflow: hidden;
  flex-shrink: 0;
  background: #F5F5F7;
  position: relative;
}
#p-ship-confirm .ship-goods-item-new .sgn-img .sgn-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 0;
}
#p-ship-confirm .ship-goods-item-new .sgn-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: relative;
  z-index: 1;
}
/* 中间信息区 - 竖排左对齐，三行间距统一 */
#p-ship-confirm .ship-goods-item-new .sgn-info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start !important;
  gap: 1.07vw; /* 名称/运费/价值 三者间距完全一致 */
  padding-top: 0.53vw;
}
#p-ship-confirm .ship-goods-item-new .sgn-name {
  font-size: .78em;
  color: #1E1E2E;
  font-weight: 600;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* 运费行 - 竖排：运费在上，价值在下，与名称间距一致 */
#p-ship-confirm .ship-goods-item-new .sgn-price {
  display: flex;
  flex-direction: column;
  gap: 1.07vw; /* 运费和价值之间间距 = 与名称之间的间距 */
  font-size: .7em;
  line-height: 1.25;
}
#p-ship-confirm .ship-goods-item-new .sgn-price span {
  display: inline;
  white-space: nowrap;
}
/* 运费文字样式统一：运费标签灰色，金额红色 */
#p-ship-confirm .ship-goods-item-new .sgn-price .sgn-shipping {
  font-size: 3.47vw !important;
  font-weight: 500;
  color: #1E1E2E !important;
}
#p-ship-confirm .ship-goods-item-new .sgn-price .sgn-shipping .sgn-fee-label,
#p-ship-confirm .ship-goods-item-new .sgn-price .sgn-shipping .sgn-fee-colon {
  color: #72797a;
}
#p-ship-confirm .ship-goods-item-new .sgn-price .sgn-shipping .sgn-fee-amount {
  color: #ee0a24;
}
#p-ship-confirm .ship-goods-item-new .sgn-price .sgn-shipping .sgn-fee-amount .currency-symbol-sm {
  font-weight: 600;
}
#p-ship-confirm .ship-goods-item-new .sgn-price .sgn-value {
  font-size: 3.2vw;
  color: #1E1E2E;
}
#p-ship-confirm .ship-goods-item-new .sgn-price .sgn-value .currency-symbol-sm {
  font-weight: 600;
}
/* 数量 - 右下角，长方形按钮 */
#p-ship-confirm .ship-goods-item-new .sgn-qty {
  position: absolute;
  right: 3.2vw;
  bottom: 2.67vw;
  display: flex;
  align-items: center;
  gap: 1.6vw;
}
#p-ship-confirm .ship-goods-item-new .sgn-qty-btn {
  width: 10.67vw;
  height: 6.4vw;
  border:1px solid #DDD;
  color: #1E1E2E;
  border-radius: 0.8vw; /* 长方形 */
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3.73vw;
  cursor: pointer;
  user-select: none;
  line-height: 1;
}
#p-ship-confirm .ship-goods-item-new .sgn-qty-btn:hover { border-color:#999;color:#333; }
#p-ship-confirm .ship-goods-item-new .sgn-qty-btn.disabled {
  opacity: 0.35 !important;
  pointer-events: none !important;
  cursor: not-allowed !important;
}
#p-ship-confirm .ship-goods-item-new .sgn-qty-val {
  font-size: .82em;
  font-weight: 600;
  color: #1E1E2E;
  min-width: 4.27vw;
  text-align: center;
}
#p-ship-confirm .ship-flow-icons {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 2.13vw;
}
#p-ship-confirm .ship-flow-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.6vw;
}
#p-ship-confirm .ship-flow-icon {
  width: 10.67vw;
  height: 10.67vw;
  display: flex;
  align-items: center;
  justify-content: center;
}
#p-ship-confirm .ship-flow-icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
#p-ship-confirm .ship-flow-icon.flash img {
  animation: flashPulse 1.5s ease-in-out infinite;
}
@keyframes flashPulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.15); opacity: 0.75; }
}
#p-ship-confirm .ship-flow-label {
  font-size: .68em;
  color: #6C7293;
  white-space: nowrap;
  margin-top: 0.53vw;
}
#p-ship-confirm .ship-flow-line {
  flex: 1;
  height: 0.53vw;
  background: linear-gradient(90deg, #ECECF3 0%, #FF4757 50%, #ECECF3 100%);
  margin: 0 1.6vw;
  margin-bottom: 5.33vw;
}

/* 商品列表 */
#p-ship-confirm .ship-goods-section {
  margin: 4.27vw;
}
#p-ship-confirm .ship-goods-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 2.67vw;
}
#p-ship-confirm .ship-goods-title {
  font-size: .85em;
  font-weight: 700;
  color: #1E1E2E;
}
#p-ship-confirm .ship-goods-count {
  font-size: .75em;
  color: #6C7293;
}
#p-ship-confirm .ship-goods-list {
  display: flex;
  flex-direction: column;
  gap: 2.67vw;
}
#p-ship-confirm .ship-goods-item {
  background: #fff;
  border-radius: 2.67vw;
  padding: 3.2vw;
  display: flex;
  align-items: center;
  gap: 3.2vw;
  border:1px solid #ECECF3;
}
#p-ship-confirm .ship-goods-img {
  width: 16vw;
  height: 16vw;
  border-radius: 2.13vw;
  overflow: hidden;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f8f7ff;
}
#p-ship-confirm .ship-goods-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#p-ship-confirm .ship-goods-info {
  flex: 1;
  min-width: 0;
}
#p-ship-confirm .ship-goods-name {
  font-size: .85em;
  font-weight: 600;
  color: #1E1E2E;
  margin-bottom: 1.6vw;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
#p-ship-confirm .ship-goods-grade {
  display: inline-block;
  padding: 0.53vw 1.6vw;
  border-radius: 1.07vw;
  font-size: .6em;
  font-weight: 700;
  color: #fff;
  margin-right: 1.6vw;
}
#p-ship-confirm .ship-goods-value {
  font-size: .78em;
  color: #FF4757;
  font-weight: 600;
}

/* 促销提示条（弹窗效果） */
#p-ship-confirm .ship-promo-bar {
  width: 33.18vw;
  height: 9.15vw;
  background: #1a1a1a;    /* 黑色背景 */
  border-radius: 2.13vw;     /* 与确认按钮圆角一致 */
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.07vw;
  padding: 0 2.67vw;
  position: fixed;
  bottom: 19.2vw; /* 确认栏上方 */
  left: 4.27vw;   /* 靠左对齐 */
  z-index: 99;
  pointer-events: none;  /* 不阻挡点击 */
}
/* 左下角小箭头 */
#p-ship-confirm .ship-promo-arrow {
  position: absolute;
  bottom:-1.333333vw;           /* 紧贴弹窗底部边缘 */
  left: 4.27vw;             /* 与弹窗左对齐 */
  width: 3.71vw;
  height: 1.43vw;
  z-index: 98;
}
#p-ship-confirm .ship-promo-icon {
  width: 6.87vw;
  height: 6.87vw;
  flex-shrink: 0;
  object-fit: contain;
}
#p-ship-confirm .ship-promo-text {
  font-size: 2.4vw !important;
  font-weight: 800;
  color: #fff;            /* 白色文字 */
  white-space: nowrap;
  letter-spacing: 0.08vw;
}
/* ========== 新增收货地址页面样式（独立页面，无冲突） ========== */
#p-add-address { background: #fff; }
.addr-pg-header {
  display: flex; align-items: center;
  padding: 3.2vw 4.27vw; border-bottom: 0.266667vw solid #f5f5f5; background: #fff;
}
.addr-pg-back {
  width: 6.4vw; height: 6.4vw; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.addr-pg-back img { width: 100%; height: 100%; object-fit: contain; }
.addr-pg-title {
  flex: 1; text-align: center; font-size: 4.533333vw; font-weight: 600;
  color: #1E1E2E; margin-right: 8.533333vw;
}
.addr-pg-form { padding: 4.27vw 4.8vw 26.67vw 4.8vw; }
.addr-pg-field { margin-bottom: 4.8vw; }
.addr-pg-label {
  display: block; font-size: 3.73vw; font-weight: 500;
  color: #1E1E2E; margin-bottom: 1.866667vw;
}
.addr-pg-label .req { color: #ff4d4f; }
.addr-pg-input, .addr-pg-textarea {
  width: 100%; padding: 2.666667vw 3.733333vw; border: 0.266667vw solid #e8e8e8;
  border-radius: 2.13vw; box-sizing: border-box; font-size: 3.73vw;
  color: #333; background: #fff; outline: none;
  transition: border-color 0.2s;
}
.addr-pg-input:focus, .addr-pg-textarea:focus { border-color: var(--primary); }
.addr-pg-input::placeholder, .addr-pg-textarea::placeholder { color: #bfbfbf; font-size:3.733333vw; font-weight: 400; opacity: 1; }
.addr-pg-textarea { resize: vertical; min-height: 21.33vw; max-height: 32vw; }
.addr-pg-phone-group {
  display: flex; align-items: center; border: 0.266667vw solid #e8e8e8;
  border-radius: 2.13vw; overflow: visible; position: relative;
}
.addr-pg-code {
  padding: 2.666667vw 3.2vw; color: #666; border-right: 0.266667vw solid #e8e8e8;
  font-size: 3.47vw; white-space: nowrap; background: #fafafa; flex-shrink: 0;
  position: relative; cursor: pointer; user-select: none;
  display: flex; align-items: center; gap: 1.07vw;
}
/* 下拉箭头 */
.addr-pg-prefix-arrow {
  width: 0; height: 0; border-left: 1.07vw solid transparent;
  border-right: 1.07vw solid transparent; border-top:5px solid #999;
  transition: transform 0.2s;
}
.addr-pg-prefix-arrow.open { transform: rotate(180deg); }
/* 下拉选项列表 */
.addr-pg-code-dropdown {
  position: absolute; top: 100%; left: -0.266667vw;
  min-width: 34.666667vw; background: #fff; border: 0.266667vw solid #e8e8e8;
  border-radius:6px; box-shadow:0 4px 12px rgba(0,0,0,0.1);
  z-index: 200; display: none; margin-top: 0.533333vw; overflow: hidden;
}
.addr-pg-code-dropdown.show { display: block; }
.addr-pg-code-item {
  padding: 2.67vw 3.733333vw; font-size: 3.466667vw; color: #333; cursor: pointer;
  transition: background 0.15s; display: flex; align-items: center; gap: 1.6vw;
}
.addr-pg-code-item:hover, .addr-pg-code-item.active {
  background: #f0f0f0; color: var(--primary);
}
.addr-pg-phone-group .addr-pg-input { border: none; border-radius: 0; }
/* 邮政编码组合框（带国家下拉） */
.addr-pg-postcode-group {
  display: flex; align-items: center; border: 0.266667vw solid #e8e8e8;
  border-radius: 2.13vw; overflow: visible; position: relative;
  flex-wrap: wrap;
}
.addr-pg-postcode-code {
  padding: 2.666667vw 3.2vw; color: #666; border-right: 0.266667vw solid #e8e8e8;
  font-size: 3.47vw; white-space: nowrap; background: #fafafa; flex-shrink: 0;
  cursor: pointer; user-select: none; display: flex; align-items: center; gap: 1.07vw;
}
.addr-pg-postcode-arrow { width: 0; height: 0; border-left: 1.07vw solid transparent;
  border-right: 1.07vw solid transparent; border-top:5px solid #999; transition: transform 0.2s;}
.addr-pg-postcode-arrow.open { transform: rotate(180deg); }
.addr-pg-postcode-input { flex: 1; border: none !important; border-radius: 0; min-width: 26.67vw; }
.addr-pg-city-row {
  display: flex; justify-content: space-between; align-items: center;
  width: 100%; padding: 2.666667vw 3.733333vw; border: 0.266667vw solid #e8e8e8;
  border-radius: 2.13vw; box-sizing: border-box; cursor: pointer;
  background: #fff; transition: border-color 0.2s;
}
.addr-pg-city-row:active { border-color: var(--primary); }
.addr-pg-city-placeholder { font-size:3.733333vw; color: #bfbfbf; }
.addr-pg-arrow {
  width: 1.87vw; height: 1.866667vw; border: solid #666; border-width: 0 0.533333vw 0.533333vw 0;
  transform: rotate(-45deg); display: inline-block;
}

/* ===== 发货页地址选择列表项 ===== */
.ship-addr-select-item {
  background: #f9f9f9;
  border-radius: 2.13vw;
  padding: 4.27vw;
  margin-bottom: 3.2vw;
  cursor: pointer;
  position: relative;
  transition: all 0.2s;
}

/* ========== 州/城市选择器 Bottom Picker ========== */
.city-picker-mask {
  position: fixed; inset: 0; background: rgba(0,0,0,0.8); z-index: 998;
  display: none; opacity: 0; transition: opacity 0.25s ease;
}
.city-picker-mask.show { display: block; opacity: 1; }

.city-picker-panel {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 999;
  background: #fff; border-radius: 4.266667vw 4.266667vw 0 0;
  transform: translateY(100%); transition: transform 0.3s cubic-bezier(0.25,0.8,0.25,1);
  max-height: 70vh; display: flex; flex-direction: column;
}
.city-picker-panel.show { transform: translateY(0); }

.city-picker-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 4.27vw 4.8vw 3.2vw; border-bottom: 0.266667vw solid #f0f0f0; flex-shrink: 0;
}
.city-picker-title { font-size: 4.27vw; font-weight: 700; color: #1E1E2E; }
.city-picker-close {
  font-size: 5.333333vw; color: #999; cursor: pointer; padding: 1.066667vw;
  line-height: 1; -webkit-tap-highlight-color: transparent;
}

.city-picker-country-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.6vw;
  padding: 3.2vw 4.8vw 2.13vw;
  border-bottom: 0.266667vw solid #f5f5f5;
  flex-shrink: 0;
}
.city-picker-country-chip {
  min-width: 0;
  min-height: 11.2vw;
  border: 0.266667vw solid #e8e8e8;
  border-radius: 2.13vw;
  background: #fff;
  color: #333;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.53vw;
  font-family: inherit;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.city-picker-country-chip span {
  font-size: 3.47vw;
  font-weight: 700;
  line-height: 1;
}
.city-picker-country-chip small {
  max-width: 100%;
  font-size: 2.4vw;
  color: #7a7a7a;
  line-height: 1.15;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.city-picker-country-chip.active {
  border-color: #111;
  background: #111;
  color: #fff;
}
.city-picker-country-chip.active small { color: rgba(255,255,255,.78); }

/* 州 > 城市 Tab 栏 */
.city-picker-tabs {
  display: flex; align-items: center; gap: 0;
  padding: 3.2vw 4.8vw; flex-shrink: 0;
  border-bottom:1px solid #f5f5f5;
}
.city-picker-tab-item {
  font-size: 3.73vw; font-weight: 500; cursor: pointer;
  padding: 1.07vw 2.67vw; transition: color 0.15s;
  -webkit-tap-highlight-color: transparent;
}
/* 点击的tab = 黑色，未点击的 = 灰色 */
.city-picker-tab-item.active { color: #000; }
.city-picker-tab-item:not(.active) { color: #999; }

.city-picker-sep-img { width: 4.96vw; height: 4.96vw; display: block; }

/* 列表滚动区 */
.city-picker-body { flex: 1; overflow-y: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.city-picker-body::-webkit-scrollbar { display: none; }

.city-picker-list { padding: 2.13vw 0; }
.city-picker-item {
  padding: 3.2vw 5.866667vw; font-size: 4vw; color: #333; cursor: pointer;
  transition: background 0.1s; -webkit-tap-highlight-color: transparent;
  white-space: nowrap; display: flex; align-items: center; justify-content: space-between;
}
.city-picker-item:active { background: #f5f5f5; }
.city-picker-item.selected {
  color: #333; font-weight: 600; background: #f6f6fa;
}
/* 选中项右侧勾选图标 - 已改用HTML img标签渲染 */
.addr-pg-default-row {
  display: flex; justify-content: space-between; align-items: center;
  margin-top: 6.4vw;
}
.addr-pg-default-left { display: flex; align-items: center; gap: 2.13vw; }
.addr-pg-tag {
  background: linear-gradient(173deg, #ff4d4f 0%, #ff7838 100%);
  color: #fff;
  padding: 0.53vw 2.13vw;
  border-radius: 0.8vw;
  font-size: 3.2vw;
  font-weight: 600;
  display: inline-flex; align-items: center; justify-content: center;
  white-space: nowrap;
}
.addr-pg-default-text { font-size:3.733333vw; color: #1E1E2E; font-weight: 500; }
/* Switch 开关 - 使用图片 */
.addr-pg-switch {
  width: 11.73vw; height: 6.4vw; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.addr-pg-switch img { width: 100%; height: 100%; object-fit: contain; }
.addr-pg-footer {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 101;
  padding: 3.2vw 4.27vw; padding-bottom: calc(3.2vw + env(safe-area-inset-bottom));
  background: #fff; border-top: 0.266667vw solid #f0f0f0;
}
.addr-pg-btn {
  width: 100%; padding: 3.733333vw 0; background: #000; color: #fff;
  border: none; border-radius: 2.13vw; font-size: 4.27vw; font-weight: 700;
  cursor: pointer; -webkit-tap-highlight-color: transparent;
}
/* 姓名失焦错误提示 */
.addr-pg-error {
  display: none;
  font-size: 2.666667vw;
  color: #ff4d4f;
  margin-top: 1.07vw;
}
.addr-pg-error.show { display: block; }
.addr-pg-close {
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
/* 弹窗入场动画 */
@keyframes shipPromoIn {
  0% { opacity: 0; transform:translateY(8vw) scale(0.9); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}

/* 弹窗浮动动画 */
@keyframes shipPromoFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform:translateY(-1.333333vw); }
}

/* 弹窗消失动画 */
@keyframes shipPromoOut {
  0% { opacity: 1; }
  100% { opacity: 0; visibility: hidden; }
}

/* 应用动画 */
#p-ship-confirm .ship-promo-bar.animate-in {
  animation: shipPromoIn 0.6s ease-out forwards, shipPromoFloat 0.5s ease-in-out 0.6s 6, shipPromoOut 0.5s ease-in 4s forwards;
}

/* 底部确认栏 */
#p-ship-confirm .ship-confirm-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: #fff;
  padding: 3.2vw 4.27vw;
  padding-bottom: calc(3.2vw + env(safe-area-inset-bottom));
  border-top:1px solid #ECECF3;
  display: flex;
  align-items: center;
  gap: 3.2vw;
  z-index: 100;
  height: 18.29vw;    /* 固定高度 */
}
#p-ship-confirm .ship-total-info {
  flex: 1;
}
#p-ship-confirm .ship-total-label {
  font-size: .72em;
  color: #6C7293;
}
#p-ship-confirm .ship-total-count {
  color: #1E1E2E;
  margin-left: 0.53vw;
}
#p-ship-confirm .ship-total-value {
  font-size: 4.266667vw;
  font-weight: 700;
  color: #FF4757;
}
#p-ship-confirm .ship-fee-label {
  font-size: .72em;
  color: #6C7293;
  margin-top: 0.53vw;
}
#p-ship-confirm .ship-fee-total-value {
  font-size: 4.266667vw;
  font-weight: 700;
  color: #ee0a24;
}
#p-ship-confirm .ship-confirm-btn {
  width: 42.666667vw;
  max-width: 50%;
  height: 11.733333vw;
  background: #000;
  border: none;
  border-radius: 2.13vw;
  color: #fff;
  font-size: .88em;
  font-weight: 700;
  margin-left: auto;
  cursor: pointer;
  font-family: inherit;
  letter-spacing: 0.13vw;
}
#p-ship-confirm .ship-confirm-btn:active {
  transform: scale(.97);
  background: #333;
}
.mi .miinfo{flex:1;text-align:left;}.mi .min{font-size:.8em;font-weight:600;}.mi .mibadge{display:inline-block;padding:0.27vw 1.33vw;border-radius:0.8vw;font-size:.58em;font-weight:700;color:#fff;margin-top:0.533333vw;}
.mi .mival{font-size:.82em;color:var(--primary);font-weight:600;white-space:nowrap;}
/* Mine */
.mhdr{padding:5.33vw 4.27vw 1.6vw;position:relative;}
.mavrow{display:flex;align-items:center;gap:3.2vw;}.mav{width:24.01vw;height:24.01vw;border-radius:50%;background:#fff;overflow:hidden;box-shadow:var(--shadow);flex-shrink:0;}.mav img{width:100%;height:100%;object-fit:cover;}
.muname{font-size:1.1em;font-weight:700;}.muid{font-size:.8em;color:var(--text2);margin-top:0.53vw;display:flex;align-items:center;gap:1.07vw;}
.more-functions-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:2.13vw;}
.subimg{display:flex;align-items:center;padding:0 1.6vw;height:6.4vw;background:#f6f6fa;border-radius:.533333vw;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.subimg:active{transform:scale(.96);}
.subimg img{width:4.266667vw;height:4.266667vw;margin-right:.533333vw;object-fit:contain;}
.subimg div{font-family:var(--font-main);font-weight:500;font-size:2.666667vw;color:#111;line-height:4.266667vw;}
.mfunc{display:flex;flex-direction:column;align-items:center;gap:1.07vw;cursor:pointer;padding:2.13vw 0;border-radius:2.67vw;transition:.15s;-webkit-tap-highlight-color:transparent;}.mfunc:active{transform:scale(.9);background:#F0EDFF;}.mfunc-txt{width:100%;min-height:3.59vw;font-size:.65em;color:#000;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.2;white-space:nowrap;padding:0 1.07vw;}
/* Settings */
.stitle{flex:1;text-align:center;font-size:1em;font-weight:700;}
.sgroup{background:#fff;border-radius:1.066667vw;margin-bottom:3.2vw;overflow:hidden;box-shadow:var(--shadow);}
.sitem{display:flex;align-items:center;padding:4vw 4.27vw;cursor:pointer;transition:.12s;border-bottom:1px solid #f5f5f5;-webkit-tap-highlight-color:transparent;position:relative;}
.sitem:last-child{border-bottom:none;}
.sitem:active{background:#f8f7ff;}
.sitem .sl{font-size:.9em;font-weight:500;color:var(--text);min-width:18.666667vw;flex-shrink:0;}
.sitem .sr{flex:1;text-align:right;display:flex;align-items:center;justify-content:flex-end;gap:1.07vw;font-size:.85em;color:#747a72;min-width:0;}
.sitem .sr .sval{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;}
.sitem .sr > img{opacity:.72;filter:grayscale(1) brightness(.72);}
.sitem .sar{font-size:.85em;color:#ccc;margin-left:0.533333vw;flex-shrink:0;}
.stoggle{width:12.8vw;height:7.466667vw;background:#e0e0e0;border-radius:14px;position:relative;cursor:pointer;transition:.25s;border:none;padding:0;flex-shrink:0;-webkit-tap-highlight-color:transparent;}
.stoggle.on{background:#ff1512;}
.stoggle::after{content:'';position:absolute;top:0.8vw;left:0.8vw;width:5.866667vw;height:5.866667vw;background:#fff;border-radius:50%;transition:.25s;box-shadow:0 1px 3px rgba(0,0,0,.2);}
.stoggle.on::after{left:6.13vw;}
.sicon{width:6.93vw;height:6.93vw;border-radius:1.6vw;display:flex;align-items:center;justify-content:center;font-size:.95em;margin-right:3.2vw;flex-shrink:0;}
.slogout{display:block;width:100%;margin:4.27vw 0;padding:3.47vw;border:none;border-radius:1.066667vw;background:#fff;color:var(--primary);font-size:.92em;font-weight:700;cursor:pointer;font-family:inherit;letter-spacing:0.27vw;box-shadow:var(--shadow);-webkit-tap-highlight-color:transparent;transition:.15s;}
.slogout:active{transform:scale(.97);background:#fef0f0;}

/* 设置页面返回按钮 */
.st-back{position:absolute;top:50%;transform:translateY(-50%);left:3.2vw;width:8vw;height:8vw;pointer-events:auto;object-fit:contain;cursor:pointer;}

/* 登出确认弹窗 */
.logout-confirm-overlay{position:fixed;inset:0;z-index:500000;background:rgba(0,0,0,0.8);display:none;align-items:center;justify-content:center;}
.logout-confirm-overlay.show{display:flex;}
.logout-confirm-popup{width:74.67vw;background:#fff;border-radius:1.066667vw;padding:6.4vw 5.33vw;box-sizing:border-box;text-align:center;box-shadow:0 8px 24px rgba(0,0,0,0.08);}
.logout-confirm-title{font-size:1.1em;font-weight:700;color:#111;margin-bottom:4.27vw;}
.logout-confirm-msg{font-size:.95em;color:#666;margin-bottom:5.33vw;}
.logout-confirm-btns{display:flex;gap:3.2vw;}
.logout-confirm-btns button{flex:1;height:10.67vw;border:none;border-radius:1.066667vw;font-size:.95em;font-weight:600;cursor:pointer;font-family:inherit;}
.logout-confirm-cancel{background:#f5f5f5;color:#111;border:1px solid #ddd;}
.logout-confirm-ok{background:#1a1a1a;color:#fff;}
/* 底部上滑弹窗 */
.b-overlay{position:fixed;inset:0;z-index:998;background:rgba(0,0,0,.8);opacity:0;visibility:hidden;transition:.3s;}
.b-overlay.show{opacity:1;visibility:visible;}
.bsheet{position:fixed;left:0;right:0;bottom:0;z-index:999;background:#f5f5f5;border-radius:18px 18px 0 0;padding:6.4vw 5.333333vw calc(8vw + env(safe-area-inset-bottom));max-width:480px;margin:0 auto;min-height:80vh;max-height:85vh;transform:translateY(100%);transition:.35s cubic-bezier(.32,.72,0,1);overflow-y:auto;}
.bsheet.show{transform:translateY(0);}
.bshead{display:flex;align-items:center;justify-content:space-between;margin-bottom:2.13vw;}
.bshead h3{font-size:1.05em;font-weight:700;}
.bshint{font-size:.82em;color:var(--hint);margin-bottom:3.73vw;line-height:1.4;}

/* ===== 设置页绑定电话两步式弹窗 ===== */
/* Step 1: 底部弹窗（手机号输入页） */
#bindPhoneSheet{height:142.133333vw;overflow:hidden;background:#f6f6fa;padding:4.266667vw;box-sizing:border-box;min-height:auto;max-height:none;border-radius:1.6vw 1.6vw 0 0;}
#bindPhoneSheet .bp-close-btn{position:absolute;top:2.133333vw;right:2.133333vw;width:8vw;height:8vw;z-index:99;display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:0;}
#bindPhoneSheet .bp-close-btn img{width:100%;height:100%;object-fit:contain;}
#bindPhoneSheet .bshead{margin-bottom:0;}
#bindPhoneSheet .bshead h3{color:#111;font-size:4.266667vw;font-family:'PingFang SC',sans-serif;font-weight:700;}
#bindPhoneSheet .bp-hint{font-size:3.466667vw;color:#747a72;margin-top:6.4vw;margin-bottom:6.666667vw;line-height:1.5;}
#bindPhoneSheet .bp-phone-row{width:100%;height:12.8vw;border-radius:1.6vw;background-color:#fff;display:flex;align-items:center;border:.266667vw solid #f0f0f0;overflow:hidden;box-sizing:border-box;}
#bindPhoneSheet .bp-country-btn{display:flex;align-items:center;gap:1.066667vw;cursor:pointer;white-space:nowrap;padding:0 2.133333vw;border-right:.266667vw solid #f0f0f0;height:100%;background:none;}
#bindPhoneSheet .bp-country-btn svg{width:5.333vw;height:5.333vw;border-radius:.53vw;flex-shrink:0;}
#bindPhoneSheet .bp-country-btn #bindPhoneCode{font-size:3.466667vw;font-weight:600;color:#111;}
#bindPhoneSheet .bp-arrow{width:2.4vw;height:2.4vw;object-fit:contain;opacity:.8;flex-shrink:0;}
#bindPhoneSheet .bp-phone-input{flex:1;height:100%;border:none;background:none;outline:none;font-size:3.466667vw;font-family:var(--font-num);font-weight:500;color:#111;padding:0 2.133333vw;}
#bindPhoneSheet .bp-phone-input::placeholder{color:#bbb;font-weight:400;}
#bindPhoneSheet .bp-continue-btn{width:100%;height:12.8vw;margin-top:6.666667vw;border:none;border-radius:1.6vw;background:linear-gradient(90deg,#d40000,red,#d60000);color:#fff;font-size:4vw;font-family:'PingFang SC',sans-serif;font-weight:600;cursor:pointer;box-shadow:0 .533333vw #ba1306;transition:background .25s,box-shadow .25s,opacity .25s,color .25s;}
#bindPhoneSheet .bp-continue-disabled{background:#aab0b1 !important;box-shadow:0 .533333vw #aab0b1 !important;cursor:not-allowed;pointer-events:none;}

/* Step 2: 底部验证码弹窗（与手机号输入页同尺寸，背景遮罩） */
.bp-otp-overlay{position:fixed;inset:0;z-index:100040;background:rgba(0,0,0,.5);display:flex;align-items:flex-end;justify-content:center;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease;}
.bp-otp-overlay.show{opacity:1;visibility:visible;}
.bp-otp-wrap{position:relative;width:100%;max-width:500px;transform:translateY(100%);transition:transform .35s cubic-bezier(.32,.72,0,1);}
.bp-otp-overlay.show .bp-otp-wrap{transform:translateY(0);}
.bp-otp-page{height:142.133333vw;overflow:hidden;background:#f6f6fa;padding:4.266667vw;padding-bottom:26.666667vw;box-sizing:border-box;position:relative;border-radius:1.6vw 1.6vw 0 0;}
/* 关闭按钮（绝对定位右上角） */
.bp-otp-close{position:absolute;top:2.133333vw;right:2.133333vw;width:8vw;height:8vw;z-index:99;display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:0;}
.bp-otp-close img{width:100%;height:100%;object-fit:contain;}
/* 内容区 */
.bp-otp-body{margin:0 auto 0;width:89.333333vw;}
/* 顶栏：返回按钮居左，关闭按钮居右，两者对齐 */
.bp-otp-topbar{display:flex;align-items:center;justify-content:space-between;width:100%;height:8vw;margin-bottom:2.133333vw;}
.bp-otp-back{width:6.4vw;height:6.4vw;cursor:pointer;}
.bp-otp-back img{width:100%;height:100%;object-fit:contain;}
.bp-otp-topbar .bp-otp-close-inline{width:8vw;height:8vw;display:flex;align-items:center;justify-content:center;cursor:pointer;}
.bp-otp-topbar .bp-otp-close-inline img{width:100%;height:100%;object-fit:contain;}
/* 手机图标 + "输入验证码" 标题 同行 */
.bp-otp-head-row{width:100%;display:flex;align-items:center;}
.bp-otp-head-row .bp-otp-icon{width:6.4vw;height:6.533333vw;object-fit:contain;}
.bp-otp-head-row .bp-otp-title{margin-left:1.066667vw;font-size:5.333333vw;color:#111;line-height:7.466667vw;font-family:'PingFang SC',sans-serif;font-weight:700;}
/* 副标题 + 方框 + 倒计时 容器 */
.bp-otp-content{margin-top:3.2vw;}
.bp-otp-subtitle{display:flex;align-items:center;font-size:3.2vw;color:#111;line-height:3.733333vw;padding-left:1.333333vw;font-family:'PingFang SC',sans-serif;font-weight:500;}
/* 6位独立方框 */
.bp-otp-digits{margin-top:6.933333vw;padding:0 1.066667vw;width:100%;display:flex;align-items:center;justify-content:space-between;}
.bp-digit{width:12.8vw;height:12.8vw;text-align:center;background:#ffffffe6;border-radius:1.6vw;font-family:'PingFang SC',sans-serif;font-weight:700;font-size:3.733333vw;color:#111;line-height:3.733333vw;border:none;outline:none;box-sizing:border-box;-webkit-appearance:none;appearance:none;padding:0;transition:box-shadow .15s;}
.bp-digit:focus{box-shadow:0 0 0 1px #ff1512;}
/* 倒计时文字 */
.bp-otp-countdown{margin-top:4.266667vw;text-align:center;font-family:'PingFang SC',sans-serif;font-weight:500;font-size:3.733333vw;color:#747a72;line-height:4.4vw;text-decoration:underline;}
/* 重新发送文字 */
.bp-otp-countdown.resend{color:#ff1512;cursor:pointer;}

/* 国家选择居中弹窗（复用 daily-level-box 的 pvf-country 样式） */
.bp-country-overlay{position:fixed;inset:0;z-index:100050;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease;}
.bp-country-overlay.show{opacity:1;visibility:visible;}
.bp-country-sheet{width:78.666667vw;min-height:53.866667vw;max-height:115.733333vw;background:linear-gradient(180deg,#ffffff 0%,#ffffff 17%);padding:6.4vw 4.266667vw;box-sizing:border-box;position:relative;border-radius:1.066667vw;transform:scale(.92);opacity:0;transition:transform .25s ease,opacity .25s ease;}
.bp-country-overlay.show .bp-country-sheet{transform:scale(1);opacity:1;}
.bp-country-close{position:absolute;top:2.133333vw;right:2.133333vw;width:8vw;height:8vw;z-index:99;display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:0;}
.bp-country-close img{width:100%;height:100%;object-fit:contain;}
.bp-country-title{font-size:3.733333vw;font-weight:700;color:#111;text-align:center;display:flex;align-items:center;justify-content:center;margin-bottom:3.2vw;}
.bp-country-title img{width:5.333333vw;height:5.333333vw;margin-right:.533333vw;}
.bp-country-item{width:100%;height:12.8vw;background:#f6f6fa;border-radius:1.066667vw;display:flex;align-items:center;justify-content:space-between;padding:0 4.266667vw;margin-bottom:2.666667vw;cursor:pointer;box-sizing:border-box;}
.bp-country-item .bp-flag-wrap{width:6.4vw;height:6.4vw;border-radius:.53vw;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.bp-country-item .bp-country-name{flex:1;font-size:3.466667vw;font-weight:500;color:#111;margin-left:2.133333vw;}
.bp-country-item .bp-check{width:4.8vw;height:4.8vw;flex-shrink:0;opacity:0;}
.bp-country-item.bp-selected .bp-check{opacity:1;}

/* ===== 等级系统卡片（仿会员中心样式 - 从账户余额位置向上弹出动画）===== */
.level-card{background-image:url('uploads/icons/banner-level.webp');background-size:cover;background-position:center;background-repeat:no-repeat;border-radius:4.27vw;padding:5.33vw 4.8vw;margin-bottom:2.13vw;position:relative;overflow:hidden;box-shadow:none;transform:translateY(26.666667vw);opacity:0;cursor:pointer;border:none;outline:none;width:98.050667vw;margin-left:auto;margin-right:auto;}
.level-card.lc-pop{animation:levelPopIn 1s ease-out forwards;opacity:1;width:91.466667vw;}
@keyframes levelPopIn{
    0%   { transform:translateY(26.666667vw); }
    100% { transform:translateY(0); }
}

/* 左侧信息区 */
.level-left{display:flex;flex-direction:column;flex:1;z-index:2;position:relative;min-width:0;padding-right:2.666667vw;}
/* Lv + 还差升级 同一行：左Lv右提示 */
.ll-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.6vw;width:78%;max-width:58.67vw;}
/* 大号Lv文字 */
.ll-lv{font-size:5.866667vw;font-weight:900;color:#1a3a6c;line-height:1.15;letter-spacing:-0.133333vw;-webkit-text-stroke:0.133333vw currentColor;}
/* 还差XX XP升级提示（移到右侧） */
.ll-hint{font-size:.65em;color:#2c5282;font-weight:500;white-space:nowrap;letter-spacing:-0.08vw;display:inline-flex;align-items:center;gap:.8vw;}
.ll-hint strong{color:inherit;font-weight:700;}
.ll-hint .lc-arrow{font-size:5vw;line-height:1;color:inherit;opacity:.75;}

/* 进度条 */
.lc-progress-wrap{margin-bottom:2.13vw;width:78%;max-width:58.67vw;}
.lc-progress{height:2.133333vw;background:#0000001a;border-radius:4px;overflow:hidden;box-shadow:none;}
.lc-progress-bar{height:100%;background:linear-gradient(90deg,#5c6bc0,#7986cb);border-radius:4px;transition:width .6s cubic-bezier(.22,1,.36,1);position:relative;}
.lc-progress-bar::after{content:'';position:absolute;top:0;left:0;right:0;height:50%;background:linear-gradient(180deg,rgba(255,255,255,.35),transparent);border-radius:4px 4px 0 0;}

/* 经验值文字行 */
.lc-xp-row{display:flex;justify-content:space-between;font-size:.75em;color:#4a5568;font-weight:500;width:78%;max-width:58.666667vw;}
.level-card.level-tone-light .ll-lv,
.level-card.level-tone-light .ll-hint,
.level-card.level-tone-light .lc-xp-row{color:#fff;}
.level-card.level-tone-dark .ll-lv{color:#111;}
.level-card.level-tone-dark .ll-hint,
.level-card.level-tone-dark .lc-xp-row{color:#333;}

.balance-card{background:linear-gradient(135deg,#1a1a2e,#2d2d44);border-radius:14px;padding:4.266667vw 4.8vw;margin-bottom:3.2vw;box-shadow:var(--shadow);color:#fff;}
.balance-row{display:flex;align-items:center;justify-content:space-between;}
.balance-left{display:flex;flex-direction:column;}
.balance-title-row{display:flex;align-items:center;gap:1.333333vw;font-size:.78em;color:rgba(255,255,255,.55);font-weight:500;margin-bottom:0.533333vw;}
.b-wallet-icon{font-size:1.05em;}
.b-arrow{font-size:.85em;color:rgba(255,255,255,.35);transform:rotate(-90deg);display:inline-block;}
.balance-amount{font-size:1.3em;font-weight:700;letter-spacing:-0.133333vw;}
.balance-actions{display:flex;gap:2.133333vw;flex-shrink:0;}
.balance-btn{padding:1.87vw 3.73vw;border:none;border-radius:2.4vw;font-size:.76em;font-weight:600;cursor:pointer;transition:.15s;display:flex;align-items:center;gap:1.07vw;white-space:nowrap;}
.balance-btn .bbtn-icon{font-size:.95em;}
.balance-btn.withdraw{background:#fff;color:#222;}
.balance-btn.recharge{background:#e74c3c;color:#fff;}
.balance-btn:active{transform:scale(.97);}
.info-card{background:#fff;border-radius:14px;padding:4.266667vw;text-align:center;box-shadow:var(--shadow);}
/* Misc */
.loading{display:none;position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.8);align-items:center;justify-content:center;}.loading.show{display:flex;}
.loading .sp{width:9.6vw;height:9.6vw;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite;}
@keyframes spin{to{transform:rotate(360deg)}}
.toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:rgba(30,30,46,.9);color:#fff;padding:2.133333vw 4.8vw;border-radius:6px;font-size:.82em;z-index:9999999;display:none;}

/* Share bottom sheet */
.share-sheet-overlay{position:fixed;inset:0;background:rgba(0,0,0,.8);z-index:100500;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease;}
.share-sheet-overlay.active{opacity:1;visibility:visible;}
.share-sheet{position:fixed;left:0;right:0;bottom:0;max-width:500px;margin:0 auto;background:#f7f7fb;border-radius:1.066667vw 1.066667vw 0 0;z-index:100501;transform:translateY(100%);transition:transform .32s cubic-bezier(.32,.72,.37,1);padding:3.733333vw 4.266667vw calc(16vw + env(safe-area-inset-bottom));box-shadow:0 -2.666667vw 8vw rgba(0,0,0,.18);}
.share-sheet.active{transform:translateY(0);}
.share-sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6.4vw;}
.share-sheet-title{font-size:4.266667vw;line-height:5.866667vw;color:#111;}
.share-sheet-close{width:6.4vw;height:6.4vw;border:0;background:transparent;color:#111;font-size:7.466667vw;line-height:6.4vw;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.share-sheet-actions{display:grid;grid-template-columns:repeat(5,1fr);column-gap:3.2vw;}
.share-action{border:0;background:transparent;display:flex;flex-direction:column;align-items:center;gap:2.4vw;min-width:0;color:#111;font-size:2.4vw;line-height:3.2vw;font-family:var(--font-main);cursor:pointer;-webkit-tap-highlight-color:transparent;}
.share-action img{width:12.8vw;height:12.8vw;border-radius:2.133333vw;object-fit:cover;display:block;}
.share-action:active{transform:scale(.96);}

.empty{text-align:center;padding:13.33vw 5.33vw;color:var(--hint);}.empty .ei{font-size:2.8em;margin-bottom:2.67vw;}
.grads{background:linear-gradient(135deg,#FF6B6B,#FF3B30);}.grada{background:linear-gradient(135deg,#FFB347,#FF8C00);}.gradb{background:linear-gradient(135deg,#74B9FF,#3B82F6);}.gradc{background:linear-gradient(135deg,#F0F0F0,#E0E0E0);}
@keyframes scrollX{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
/* Redeem Page */
.rdm-bg-watermark{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:.04;}
.rdm-header{display:flex;align-items:flex-start;padding:5.33vw 4.27vw 3.2vw;position:relative;z-index:1;}
.rdm-back{font-size:1.4em;color:#333;background:none;border:none;padding:1.066667vw 0.533333vw;cursor:pointer;line-height:1;flex-shrink:0;position:relative;z-index:10;margin-top:-1.066667vw;margin-left:2.133333vw;}
.rdm-back img{width:8.58vw;height:8.58vw;object-fit:contain;}
.rdm-top{display:flex;align-items:center;width:100%;padding-left:1.07vw;}
.rdm-speaker{width:40.59vw;height:38.37vw;object-fit:contain;flex-shrink:0;margin-left:-10.666667vw;}
.rdm-title-area{margin-left:auto;margin-right:0;text-align:left;padding-top:2.67vw;display:flex;flex-direction:column;align-items:flex-start;}
.rdm-title{font-size:1.35em;font-weight:800;color:#222;letter-spacing:0.266667vw;font-family:var(--font-main);font-weight:700;}
.rdm-record{font-size:.78em;color:#666;margin-top:1.6vw;display:inline-flex;align-items:center;gap:1.07vw;cursor:pointer;padding-right:0;}
.rdm-record img{width:2.86vw;height:2.86vw;object-fit:contain;transform:rotate(45deg);}
.rdm-card{background:#fff;border-radius:12px;padding:4.8vw 4.266667vw;margin:0 4.266667vw 3.733333vw;box-shadow:0 1px 6px rgba(0,0,0,.06);position:relative;z-index:1;}
.rdm-input{width:100%;height:12.266667vw;border:1px solid #e5e5e5;border-radius:8px;padding:0 3.733333vw;font-size:.9em;outline:none;background:#fafafa;box-sizing:border-box;-webkit-appearance:none;}
.rdm-input::placeholder{color:#bbb;}
.rdm-input:focus{border-color:#e53935;background:#fff;}
.rdm-btn{width:100%;height:12.8vw;background:#222;color:#fff;border:none;border-radius:8px;font-size:.95em;font-weight:600;margin-top:3.2vw;cursor:pointer;letter-spacing:0.27vw;}
.rdm-btn:active{opacity:.85;}
.rdm-notice-title{font-size:.88em;font-weight:700;color:#222;margin-bottom:2.133333vw;}
.rdm-notice-text{font-size:.76em;color:#999;line-height:1.7;}

/* Profile Edit */
.petab.active{background:#fff;color:#222;box-shadow:0 1px 3px rgba(0,0,0,.08);}
.no-scrollbar::-webkit-scrollbar{display:none;}
.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none;}
.pe-cat-tag{flex-shrink:0;padding:1.6vw 3.733333vw;border-radius:20px;font-size:.78em;font-weight:600;cursor:pointer;white-space:nowrap;background:#eee;color:#888;transition:.2s;border:1.5px solid transparent;}
.pe-cat-tag.active{background:linear-gradient(135deg,#6C5CE7,#a29bfe);color:#fff;border-color:transparent;box-shadow:0 2px 8px rgba(108,92,231,.25);}
.pe-avatar-item{width:100%;aspect-ratio:1;border-radius:50%;cursor:pointer;overflow:hidden;border:0.67vw solid transparent;transition:.2s;display:flex;align-items:center;justify-content:center;background:#f8f7fc;padding:0;box-sizing:border-box;}
.pe-avatar-item.selected{border-color:#6C5CE7;box-shadow:0 0 0 3px rgba(108,92,231,.2);}
.pe-avatar-item img{width:100%;height:100%;border-radius:50%;object-fit:cover;aspect-ratio:1;}
/* 抽奖滚动动画特有样式 */
.roll-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,0.95); z-index: 3000;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  opacity: 0; visibility: hidden; transition: all 0.3s;
}
.roll-overlay.active { opacity: 1; visibility: visible; }
.roll-container {
  width: 100%; max-width: 133.33vw; height: 37.33vw; position: relative;
  overflow: hidden; background: #1a1a2e; border-top: 0.533333vw solid #333; border-bottom: 0.533333vw solid #333;
  margin: 5.33vw 0;
}
.roll-track {
  display: flex; position: absolute; left: 0; top: 0; height: 100%;
  align-items: center;
}
.roll-item {
  width: 26.666667vw; height: 100%; flex-shrink: 0; display: flex; flex-direction: column;
  align-items: center; justify-content: center; border-right: 0.266667vw solid rgba(255,255,255,0.05);
}
.roll-pointer {
  position: absolute; left: 50%; top: 0; bottom: 0; width: 0.8vw;
  background: var(--primary); transform: translateX(-50%); z-index: 10;
  box-shadow: 0 0 4vw var(--primary);
}
.roll-pointer::before, .roll-pointer::after {
  content: ''; position: absolute; left: 50%; transform: translateX(-50%);
  border-left: 2.13vw solid transparent; border-right: 2.13vw solid transparent;
}
.roll-pointer::before { top: 0; border-top: 2.67vw solid var(--primary); }
.roll-pointer::after { bottom: 0; border-bottom: 2.67vw solid var(--primary); }
/* ===== 抽赏动画系统 (Canvas 2D) ===== */
.draw-anim-overlay {
  position: fixed; inset: 0; z-index: 5000;
  background: #000; display: none; align-items: center; justify-content: center;
}
.draw-anim-overlay.show { display: flex; }
.draw-anim-overlay canvas { width: 100%; height: 100%; display: block; }
.draw-anim-skip {
  position: absolute; top: 4vw; right: 4vw; z-index: 10;
  color: rgba(255,215,0,0.7); font-size: 3.2vw; font-weight: 700;
  letter-spacing: 0.27vw; padding: 1.6vw 3.2vw;
  background: rgba(0,0,0,0.5); border: 0.27vw solid rgba(255,215,0,0.3);
  border-radius: 5.33vw; cursor: pointer; font-family: inherit;
  backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
}
.draw-anim-skip:active { background: rgba(255,215,0,0.2); }

/* ===== 抽赏动画页面（Three.js 3D盲盒开箱）===== */
#p-draw-animation {
  position: fixed; inset: 0; z-index: 2000;
  background: #1a0a1a; overflow: hidden;
  display: none; flex-direction: column;
  padding-bottom: 0;
}
#p-draw-animation.active { display: flex; }

/* 背景 */
.draw-anim-bg {
  position: absolute; inset: 0; z-index: 0;
  background: url('./uploads/icons/bg-DX0U2egM.webp') center top / cover no-repeat;
}

/* 顶部导航 */
.draw-anim-header {
  position: relative; z-index: 2;
  display: flex; align-items: center; justify-content: space-between;
  padding: 2.133333vw 3.2vw 0; height: 12vw;
  flex-shrink: 0;
}
.draw-anim-back {
  width: 8vw; height: 8vw; object-fit: contain;
  cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.draw-anim-title-img {
  position: relative; z-index: 2;
  display: block;
  width: 100%;
  height: 13.866667vw;
  object-fit: contain;
  pointer-events: none;
}

/* 盲盒区域（固定背景尺寸）*/
.draw-anim-boxes-wrap {
  position: relative; z-index: 1;
  width: 93vw; height: 55vw;
  margin: 1.5vw auto 0;
  flex-shrink: 0;
}
.draw-anim-boxes-wrap canvas {
  position: absolute; top: 0; left: 0;
  width: 100%; height: 100%;
  z-index: 5;
  touch-action: none; /* prevent browser scroll when dragging carousel */
}

/* SKIP/CLOSE 按钮区域 */
.draw-anim-action {
  position: relative; z-index: 1;
  display: flex; justify-content: center; padding: 2.133333vw 0;
  flex-shrink: 0;
}
.draw-anim-finish-btn {
  width: 100%;
  height: 16vw;
  display: block;
  margin: 1.6vw auto 2.133333vw;
  will-change: transform;
  -webkit-tap-highlight-color: transparent;
  cursor: pointer;
}
.draw-anim-finish-btn:active { transform: scale(.95); }

/* 结果区域 */
.draw-anim-result {
  position: relative; z-index: 1;
  flex: 1;
  background: linear-gradient(180deg, #180303, #251c1c);
  width: 100%;
  padding: 5.333333vw 4.266667vw 2.666667vw;
  display: flex; flex-direction: column;
  align-items: center;
  justify-content: center;
}
.draw-anim-result-header {
  display: flex; align-items: center; justify-content: center;
  gap: 2.133333vw; margin-bottom: 2.133333vw;
  flex-shrink: 0;
}
.draw-anim-result-title-img {
  height: 5.333333vw; width: auto; object-fit: contain;
}
.draw-anim-result-points {
  display: flex; align-items: baseline;
}
.da-pts-num {
  color: #fee442;
  font-size: 2.666667vw;
  margin-right: .533333vw;
  font-family:var(--font-num);
  font-weight: 300;
}
.da-pts-label {
  font-size: 2.666667vw;
  color: #fff;
  line-height: 3.866667vw;
}
.draw-anim-prizes-wrap {
  width: 100%;
  display: flex;
  align-items: center;
  padding-top: 7.466667vw;
  column-gap: 3.2vw;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scroll-behavior: smooth;
  padding-left: 5.866667vw;
  padding-right: 5.866667vw;
}
.draw-anim-prizes-wrap::-webkit-scrollbar { display: none; }

/* Smooth scroll-snap for prize cards */
.draw-anim-prizes-wrap {
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}
.draw-anim-prizes-wrap .da-prize-card {
  scroll-snap-align: center;
}

/* 奖品卡片 */
.da-prize-card {
  flex: 0 0 auto;
  width: 24.533333vw;
  background: #ffffff1a;
  border-radius: 1.066667vw;
  will-change: transform, opacity;
  position: relative;
  overflow: visible;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  margin-top: 2.4vw;
}

/* Div 1: 商品图片区域（带背景图） */
.da-prize-img-area {
  position: relative;
  width: 24.533333vw;
  height: 24.533333vw;
  background-size: 100% 100%;
  border-radius: 1.066667vw 1.066667vw 0 0;
  overflow: visible;
  display: flex;
  align-items: center;
  justify-content: center;
}
/* SP/A级光效动画 - 细腻扫光 + 柔和辉光 + 边缘发光 */
/* 光效只显示一次：通过 JS 给第一个高等级 prize card 添加 has-light 类 */
/* 光效容器：负责裁剪光束，同时不影响角标溢出 */
.da-prize-img-area .da-light-wrap {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  overflow: hidden;
  pointer-events: none;
  z-index: 4;
}
.da-prize-img-area.has-light {
  animation: daGlowPulse 2s ease-in-out 1 forwards;
}
.da-prize-img-area.has-light .da-light-wrap::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(
    105deg,
    transparent 0%,
    rgba(255, 215, 0, 0.0) 30%,
    rgba(255, 235, 120, 0.35) 48%,
    rgba(255, 255, 200, 0.6) 50%,
    rgba(255, 235, 120, 0.35) 52%,
    rgba(255, 215, 0, 0.0) 70%,
    transparent 100%
  );
  filter: blur(1.066667vw);
  -webkit-filter: blur(1.066667vw);
  opacity: 0;
  animation: daEdgeGlow 2.2s cubic-bezier(0.25, 0.1, 0.25, 1) 1;
  z-index: 4;
  pointer-events: none;
}
.da-prize-img-area.has-light .da-light-wrap::after {
  content: '';
  position: absolute;
  top: 0;
  left: -20%;
  width: 50%;
  height: 100%;
  background: linear-gradient(
    105deg,
    transparent 0%,
    rgba(255, 255, 255, 0.02) 25%,
    rgba(255, 255, 255, 0.25) 40%,
    rgba(255, 255, 255, 0.75) 50%,
    rgba(255, 255, 255, 0.25) 60%,
    rgba(255, 255, 255, 0.02) 75%,
    transparent 100%
  );
  filter: blur(0.533333vw);
  -webkit-filter: blur(0.533333vw);
  transform: skewX(-15deg);
  animation: daSweepLight 2.2s cubic-bezier(0.25, 0.1, 0.25, 1) 1;
  z-index: 5;
  pointer-events: none;
}
@keyframes daGlowPulse {
  0%, 100% { box-shadow: 0 0 0.8vw rgba(255, 215, 0, 0.25), 0 0 1.6vw rgba(255, 215, 0, 0.1); }
  50% { box-shadow: 0 0 2.133333vw rgba(255, 215, 0, 0.6), 0 0 4.266667vw rgba(255, 215, 0, 0.2), 0 0 6.4vw rgba(255, 215, 0, 0.08); }
}
@keyframes daSweepLight {
  0% { left: -20%; }
  100% { left: 100%; }
}
@keyframes daEdgeGlow {
  0%, 100% { opacity: 0; }
  45%, 55% { opacity: 1; }
}
/* 商品图片 */
.da-prize-img-area .da-prize-img {
  width: 100%;
  height: 100%;
  border-radius: 1.066667vw;
  object-fit: contain;
  position: relative;
  z-index: 2;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transform: translateZ(0);
}
/* 等级角标图片 */
.da-prize-img-area .da-grade-icon {
  position: absolute;
  top: -.533333vw;
  left: -.533333vw;
  height: 4.266667vw;
  object-fit: contain;
  z-index: 3;
}
/* 加倍角标（与中奖弹窗 timesNumber 一致） */
.da-prize-img-area .da-mul-badge {
  position: absolute;
  z-index: 3;
  height: 8.533333vw;
  width: 8.533333vw;
  top: -2.133333vw;
  right: -2.133333vw;
}
.da-prize-img-area .da-mul-badge > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  z-index: 0;
}
.da-prize-img-area .da-mul-badge .lucky-box {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}
.da-prize-img-area .da-mul-badge .mul-inner {
  position: relative;
  font-size: 3.2vw;
  filter: drop-shadow(0px 1px 0px rgba(0,0,0,.8));
  font-family:var(--font-num);
  font-weight: 800;
  font-style: italic;
  white-space: nowrap;
}
.da-prize-img-area .da-mul-badge .text-content {
  position: relative;
  display: inline-block;
  color: transparent;
  white-space: nowrap;
}
.da-prize-img-area .da-mul-badge .text-content::before {
  content: attr(data-text);
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  -webkit-text-stroke: var(--mul-stroke, 0.266667vw) #000;
  color: transparent;
  z-index: 1;
}
.da-prize-img-area .da-mul-badge .text-content::after {
  content: attr(data-text);
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  color: transparent;
  font-size: var(--mul-fs, 3.2vw);
  background-clip: text;
  -webkit-background-clip: text;
  background-image: linear-gradient(180deg, #ffe628 22.73%, #fff);
  font-family:var(--font-num);
  font-weight: 800;
  font-style: italic;
  z-index: 2;
}

/* Div 2: 商品名称 */
.da-prize-name {
  font-size: 2.666667vw;
  color: #aab0b1;
  text-align: center;
  font-family: var(--font-main);
  font-weight: var(--300);
  line-height: 3.2vw;
  padding-bottom: .533333vw;
  padding-top: 1.066667vw;
  max-width: 21.333333vw;
  margin: 0 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Div 3: 商品价值 */
.da-prize-value {
  color: #fff;
  font-family:var(--font-num);
  font-size: 2.666667vw;
  line-height: 2.666667vw;
  text-align: center;
  padding-bottom: 1.6vw;
}
.draw-result-money{display:inline-flex;align-items:baseline;gap:.533333vw;color:#fff;font-family:var(--font-en);font-size:2.666667vw;line-height:2.666667vw;font-weight:400;}
.draw-result-money-symbol,.draw-result-money-num{font-size:2.666667vw;font-weight:400;}

/* 数量角标（右下角） */
.da-prize-img-area .da-count-badge {
  position: absolute;
  right: 0;
  bottom: 0;
  padding: .8vw .933333vw;
  font-size: 2.4vw;
  color: #fff;
  font-family:var(--font-num);
  font-weight: 300;
  border-radius: 1.066667vw 0 0;
  background: #0006;
  z-index: 4;
}

/* Count badge pop animation */
.da-prize-img-area .da-count-badge.pop {
  animation: daCountPop 0.35s ease-out;
}
@keyframes daCountPop {
  0% { transform: scale(1); }
  40% { transform: scale(1.35); }
  100% { transform: scale(1); }
}

/* 奖品卡片入场动画 */
@keyframes prizeIn {
  0% { opacity: 0; transform: scale(0.5) translateY(4vw); }
  60% { transform: scale(1.08) translateY(-0.8vw); }
  100% { opacity: 1; transform: scale(1) translateY(0); }
}
.da-prize-card {
  animation: prizeIn 0.4s ease-out forwards;
}

/* ===== 抽赏动画页面 END ===== */

/* 头像切换动画 */
@keyframes fadeInUp{
  from{opacity:0;transform:translateY(2.666667vw) scale(0.9);}
  to{opacity:1;transform:translateY(0) scale(1);}
}
@keyframes fadeInLeft{
  from{opacity:0;transform:translateX(-5.333333vw);}
  to{opacity:1;transform:translateX(0);}
}
@keyframes fadeInRight{
  from{opacity:0;transform:translateX(5.333333vw);}
  to{opacity:1;transform:translateX(0);}
}

/* Congrats 卡片扫光动画 - 细腻光束从左到右划过 */
.ci::after {
  content: ''; position: absolute; top: 0; left: -100%;
  width: 40%; height: 100%;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(255, 248, 220, 0.05) 20%,
    rgba(255, 250, 240, 0.35) 40%,
    rgba(255, 255, 255, 0.85) 50%,
    rgba(255, 250, 240, 0.35) 60%,
    rgba(255, 248, 220, 0.05) 80%,
    transparent 100%
  );
  filter: blur(0.8vw);
  -webkit-filter: blur(0.8vw);
  pointer-events: none; z-index: 2;
  opacity: 0;
}
/* 卡片边缘发光层 - 跟随扫光同步 */
.ci::before {
  content: ''; position: absolute; inset: 0;
  border-radius: inherit;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(255, 235, 120, 0.0) 35%,
    rgba(255, 245, 180, 0.25) 48%,
    rgba(255, 255, 220, 0.45) 50%,
    rgba(255, 245, 180, 0.25) 52%,
    rgba(255, 235, 120, 0.0) 65%,
    transparent 100%
  );
  filter: blur(1.6vw);
  -webkit-filter: blur(1.6vw);
  pointer-events: none; z-index: 1;
  opacity: 0;
}
.ci.sweep::after {
  opacity: 1;
  animation: cardSweep 0.9s cubic-bezier(0.25, 0.1, 0.25, 1) forwards;
}
.ci.sweep::before {
  opacity: 1;
  animation: cardSweep 0.9s cubic-bezier(0.25, 0.1, 0.25, 1) forwards;
}
@keyframes cardSweep {
  0% { left: -60%; }
  100% { left: 160%; }
}

/* ===== 支付确认弹窗 Bottom Sheet ===== */
.pay-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,.8); z-index: 10001;
  opacity: 0; visibility: hidden; transition: all .3s;
}
.pay-overlay.active { opacity: 1; visibility: visible; }

.pay-sheet {
  position: fixed; bottom: 0; left: 0; right: 0;
  max-width:500px; margin: 0 auto;
  background: #f5f5f8; border-radius: 2.133333vw 2.133333vw 0 0;
  z-index: 10002; padding-bottom: env(safe-area-inset-bottom);
  transform: translateY(100%); transition: transform .35s cubic-bezier(.32,.72,.37,1);
  max-height: 85vh; overflow-y: auto;
}
.pay-sheet.active { transform: translateY(0); }

/* 顶部栏 */
.pay-header {
  display: flex; justify-content: space-between; align-items: center;
  padding: 4vw 4.27vw; background: #fff;
  border-radius: 2.133333vw 2.133333vw 0 0;
}
.pay-title { height: 4.266667vw; display: block; object-fit: contain; width: auto; }
.pay-anim-toggle { display: flex; align-items: center; gap: 1.067vw; -webkit-tap-highlight-color: transparent; }
.pay-anim-label { color: #111; margin-left: 1.066667vw; font-size: 3.2vw; line-height: 3.2vw; margin-right: 1.066667vw; }
.pay-toggle-switch {
  width: 9vw; height: 5vw; border-radius: 2.5vw;
  background: #ddd; position: relative; cursor: pointer; transition: background .3s;
  -webkit-tap-highlight-color: transparent; outline: none;
}
.pay-toggle-switch.on { background: rgb(255, 21, 18); }
.pay-toggle-switch::after {
  content: ''; position: absolute; top: 0.4vw; left: 0.4vw;
  width: 4.2vw; height: 4.2vw; border-radius: 50%; background: #fff;
  box-shadow: 0 0.267vw 0.533vw rgba(0,0,0,.2); transition: transform .3s;
}
.pay-toggle-switch.on::after { transform: translateX(4.2vw); }

/* 账户余额卡片 */
.pay-balance-card {
  margin: 3.733333vw 0 0 3.2vw;
  padding: 0 4.266667vw;
  width: 93.6vw;
  height: 22.533333vw;
  background: linear-gradient(137deg, #193034, #111);
  background-image: url(./uploads/icons/pay7-D_tzfboy.webp);
  background-repeat: no-repeat;
  background-size: 100% 100%;
  border-radius: 1.6vw;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
}
.pay-balance-left { margin: 0; outline: none; font-variant-ligatures: none !important; font-feature-settings: "liga" 0 !important; }
.pay-balance-icon { width: 3.2vw; height: 3.2vw; }
.pay-balance-label { display: flex; align-items: center; gap: 0.533vw; }
.pay-balance-label span { margin-right: 1.066667vw; font-size: 3.2vw; color: #fff; line-height: 3.2vw; }
.pay-balance-num { margin-top: 3.2vw; display: flex; align-items: baseline; }
.pay-bal-currency { font-size: 3.2vw; color: #fff; font-family:var(--font-en);font-weight:700; }
.pay-bal-amount { margin-left: .533333vw; font-size: 5.333333vw; color: #fff; font-family:var(--font-en);font-weight:700; }
.pay-recharge-btn {
  min-width: 18.666667vw;
  height: 8.533333vw;
  padding: 0 2.133333vw;
  background: #ff1512;
  border-radius: 1.066667vw;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pay-recharge-btn span { font-size: 2.666667vw; color: #fff; font-family:var(--font-main);font-weight:500; margin-left: 1.067vw; white-space: nowrap; }
.pay-recharge-btn:active { background: rgba(255,255,255,.25); }
.pay-recharge-btn img { width: 4.8vw; height: 4.8vw; vertical-align: middle; }

/* 通用区块 */
.pay-section {
  margin: 1.6vw 0 0 3.2vw;
  padding: 0 3.2vw;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 93.6vw;
  height: 12.8vw;
  background: #fff;
  border-radius: 1.066667vw;
}
.pay-section + .pay-section { margin-top: 1.6vw; }
.pay-row-left { display: flex; align-items: center; gap: 0.533vw; }
.pay-row-right { display: flex; align-items: center; }
.pay-row-left .pay-section-icon, .pay-row-left .pay-method-icon { margin-right: 0.533vw; width: 5.866667vw; height: 5.866667vw; flex-shrink: 0; }
.pay-row-left .pay-section-text { font-size: 3.2vw; color: #060518; line-height: 3.6vw; }
.pay-arrow { width: 2.666667vw; height: 2.666667vw; opacity: .4; }
.pay-badge {
  margin-right: .533333vw;
  font-size: 2.933333vw;
  color: #ff0000;
  line-height: 4vw;
  font-family: var(--font-main);font-weight:500;
}
.pay-status-tag {
  margin-right: .533333vw;
  font-size: 2.666667vw;
  color: #aab0b1;
  line-height: 4vw;
  font-family: var(--font-main);font-weight:500;
}
.pay-coupon-selected {
  margin-right: .533333vw; font-size: 2.933333vw; color: #ff0000;
  line-height: 4vw; font-family:var(--font-main);font-weight:500;
}

/* 支付方式 */
.pay-method-row {}
.pay-method-icon { width: 6.4vw; height: 6.4vw; }
.pay-method-text { font-size: 3.2vw; color: #060518; line-height: 3.6vw; }
.pay-method-tag {
  font-size: 2.933vw; color: #aaa; background: #f0f0f3;
  padding: 0.533vw 2.133vw; border-radius: 1.067vw;
}
.pay-radio-check { width: 3.733333vw; height: 3.733333vw; vertical-align: middle; transform: translateY(-.266667vw); }
.pay-method-row.disabled { opacity: .5; pointer-events: none; }

/* 加倍 */
.pay-multiplier-row { cursor: default; }
.pay-multiplier-ctrl {
  display: flex;
  align-items: center;
  background: #f6f6fa;
  border-radius: 1.066667vw;
  padding: .533333vw;
}
.pay-multi-btn {
  background-color: #ff1512;
  color: #fff;
  font-size: 5.333333vw;
  font-family: var(--font-en);font-weight:700;
  height: 8vw;
  width: 11.2vw;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 1.066667vw;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
}
.pay-multi-btn:active { background: #e0e0e5; }
.pay-multi-num {
  width: 11.2vw;
  text-align: center;
  font-size: 3.2vw;
  color: #111;
  font-family: var(--font-en);font-weight:700;
  font-weight: 700;
}
.pay-max-btn {
  background-color: #ff1512;
  height: 8vw;
  width: 11.2vw;
  border-radius: 1.066667vw;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-left: 2.133333vw;
  border: none;
  cursor: pointer;
  padding: 0;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
}
}
.pay-max-btn:active { transform: scale(.95); }
.pay-max-btn img { width: 8vw; height: 5.333vw; }

/* 平台公平认证 */
.pay-fair {
  padding: 2.666667vw 3.2vw 0;
  width: 100%;
  display: flex;
  line-height: 4.266667vw;
  font-size: 2.666667vw; color: #72797a;
}
.pay-fair-icon { width: 4.266667vw; height: 4.266667vw; margin-right: 1.066667vw; }

/* 底部结算栏 */
.pay-footer {
  margin-top: 4.533333vw;
  height: 26.666667vw;
  background: #fff;
  border-radius: 2.133333vw 2.133333vw 0 0;
}
.pay-summary {
  padding: 2.666667vw 4.266667vw 0;
  width: 100%;
  font-size: 3.2vw;
  color: #111;
  font-family: var(--font-main);font-weight:500;
  display: flex;
  align-items: center;
  position: relative;
}
#payDrawCount { font-size: 3.466667vw; }
.pay-total { font-size: 3.2vw; color: #111; font-weight: 700; }
.pay-times-number { color: #ff1512; }
.pay-total-label { font-size: 3.2vw; color: #111; margin-left: auto; font-weight: 700; }
.pay-price-display { display: flex; align-items: baseline; transform: translateY(-.266667vw); }
.pay-currency-text { font-size: 3.466667vw; color: #ff0000; font-family:var(--font-en);font-weight:700; font-weight: 700; }
.pay-price-number { margin-left: .533333vw; font-size: 4.8vw; color: #ff0000; font-family:var(--font-en);font-weight:700; font-weight: 700; }
.pay-submit-btn {
  margin: 2.666667vw 0 0 3.2vw;
  width: 93.6vw;
  height: 12.8vw;
  background: #ff1512;
  border-radius: 1.6vw;
  font-size: 4vw;
  color: #fff;
  line-height: 12.8vw;
  text-align: center;
  font-family: var(--font-main);font-weight:500;
}
.pay-submit-btn:active { transform: scale(.95); }
.pay-submit-btn:disabled { opacity: .5; pointer-events: none; }

/* ===== 优惠券选择 Bottom Sheet ===== */
.coupon-overlay {
  position: fixed; inset: 0; background: #000; z-index: 10001;
  opacity: 0; visibility: hidden; transition: opacity .3s ease, visibility .3s ease;
}
.coupon-overlay.active { opacity: 1; visibility: visible; }

.coupon-sheet {
  position: fixed; bottom: 0; left: 0; right: 0;
  max-width:500px; margin: 0 auto;
  background: #f1f1f5; border-radius: 2.133333vw 2.133333vw 0 0;
  z-index: 10002; padding-bottom: env(safe-area-inset-bottom);
  transform: translateY(100%); transition: transform .35s cubic-bezier(.32,.72,.37,1.1);
  max-height: 153.066667vw; min-height: 81.066667vw;
  display: flex; flex-direction: column;
}
.coupon-sheet.active { transform: translateY(0); }

.coupon-header {
  margin: 4.266667vw 0 4.8vw 4.266667vw;
  font-family: var(--font-en);font-weight:700; font-size: 4.266667vw; color: #111;
  text-transform: uppercase;
}
.coupon-title { font-size: 4.267vw; font-weight: 700; color: #1a1a2e; }
.coupon-close { width: 8vw; height: 8vw; position: absolute; top: 2.133333vw; right: 2.133333vw; cursor: pointer; }

.coupon-list { padding: 0 4.266667vw 4vw; width: 100%; overflow-y: scroll; }

.coupon-item {
  margin-bottom: 4vw; padding: 2.133333vw 3.2vw 2.133333vw 2.133333vw;
  width: 100%; height: 22.933333vw;
  background-image: url('uploads/icons/coupon-item-bg-hR2jww2w.webp');
  border-radius: 1.6vw;
  background-repeat: no-repeat; background-position: left top; background-size: 100% 100%;
  display: flex; align-items: center; justify-content: space-between;
  position: relative;
}
.coupon-item.selected { border:1.5px solid #ff1512; }

.coupon-left {
  width: 65.333333vw; height: 100%;
  display: flex; align-items: center;
}
.coupon-price-display { display: flex; align-items: center; justify-content: center; }
.coupon-price-display figure {
  width: 22.133333vw; text-align: center;
  font-family: var(--font-en);font-weight:700; margin: 0;
}
.coupon-title-area { padding-left: 4.266667vw; width: 38.666667vw; }
.coupon-use-btn {
  width: 18.667vw; height: 8vw;
  background: #ff1512; border-radius: 1.067vw;
  color: #fff; font-size: 3.2vw; font-family:var(--font-main);font-weight:500;
  display: flex; align-items: center; justify-content: center;
  border: none; cursor: pointer; flex-shrink: 0;
}
.coupon-use-btn:active { opacity: .85; }
.coupon-use-btn.used { background: #ccc; }

/* ========== 在线客服系统 ========== */

/* 浮动按钮 */
.chat-float-btn {
  position: fixed;
  right: 0;
  bottom: 18.666667vw;
  width: 13.333333vw;
  height: 13.333333vw;
  border-radius: 50%;
  z-index: 100000;
  cursor: pointer;
  touch-action: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition: transform .1s;
  box-shadow: 0 0.533333vw 2.133333vw rgba(123,97,255,.4);
}
.chat-float-btn:active { transform: scale(.92); }
.chat-float-btn img {
  width: 100%; height: 100%;
  border-radius: 50%;
  object-fit: cover;
  display: block;
}
.chat-badge {
  position: absolute;
  top: -0.8vw;
  right: -0.8vw;
  min-width: 4.8vw;
  height: 4.8vw;
  background: #FF1512;
  color: #fff;
  font-size: 2.666667vw;
  font-weight: 700;
  border-radius: 2.4vw;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 0 1.2vw;
  box-shadow: 0 0.533333vw 1.066667vw rgba(255,21,18,.5);
  z-index: 1;
  line-height: 1;
  pointer-events: none;
}

/* 聊天弹窗遮罩 */
.chat-panel-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.8);
  z-index: 1000000;
  opacity: 0;
  visibility: hidden;
  transition: opacity .35s ease, visibility .35s ease;
}
.chat-panel-overlay.show { opacity: 1; visibility: visible; }

/* 聊天弹窗 */
.chat-panel {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  max-width: 500px;
  margin: 0 auto;
  height: 132vw;
  max-height: 82vh;
  background: #fff;
  border-radius: 2.133333vw 2.133333vw 0 0;
  z-index: 1000001;
  display: flex;
  flex-direction: column;
  font-family: var(--font-main); /* ★ 全局字体继承 */
  transform: translateY(100%);
  opacity: 0;
  visibility: hidden;
  transition: transform .5s cubic-bezier(.32,.72,0,1), opacity .4s ease, visibility .4s ease;
  overflow: hidden;
}
.chat-panel.show {
  transform: translateY(0);
  opacity: 1;
  visibility: visible;
}

/* 头部 */
.chat-header {
  height: 12.266667vw;
  width: 100%;
  background-image: url('./uploads/icons/chat-head-bg-kl807cgN.webp');
  background-size: 100% 18.133333vw;
  background-position: left top;
  background-repeat: no-repeat;
  position: relative;
  padding: 4vw 3.2vw 4.266667vw;
  display: flex;
  align-items: center;
}
.chat-header-left {
  display: flex;
  align-items: center;
  gap: 2.666667vw;
}
.chat-header-icon-img {
  width: 16vw;
  height: 16vw;
  border-radius: 50%;
  object-fit: cover;
}
.chat-header-text {
  display: flex;
  flex-direction: column;
  gap: 0.533333vw;
}
.chat-header-title {
  font-family: var(--font-main);
  font-size: 3.733333vw;
  line-height: 3.733333vw;
  font-weight: 600;
  color: #fff;
  text-shadow: 0 0.266667vw 0.8vw rgba(0,0,0,.2);
}
.chat-header-subtitle {
  display: none; /* ★ 已移除"通常在10秒内回复"副标题 */
}
.chat-close {
  position: absolute;
  top: 2.133333vw;
  right: 2.133333vw;
  width: 8vw;
  height: 8vw;
  z-index: 10;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

/* ★ 声音设置按钮区域（关闭按钮左侧） */
.chat-header-right {
  position: absolute;
  top: 2.133333vw;
  right: 11.2vw; /* close按钮(8vw) + right(2.133vw) + gap */
  display: flex;
  align-items: center;
  z-index: 10;
}
.chat-more-btn {
  width: 8vw;
  height: 8vw;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.chat-sound-popup {
  position: absolute;
  top: 9vw;
  right: -1.6vw;
  background: #fff;
  border-radius: 1.6vw;
  box-shadow: 0 .533333vw 4vw rgba(0,0,0,.15);
  padding: 3.2vw 4.266667vw;
  min-width: 42.666667vw;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-1.066667vw);
  transition: all .25s ease;
  z-index: 20;
}
.chat-sound-popup.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  height: 11.733333vw;
  min-width: 51.733333vw;
}
.chat-sound-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.6vw;
  cursor: pointer;
  font-size: 3.2vw;
  color: #333;
}
.chat-sound-row > span {
  flex: none;
}
.chat-sound-icon {
  width: 4.266667vw;
  height: 4.266667vw;
  object-fit: contain;
  flex-shrink: 0;
}
.chat-sound-switch {
  width: 8.533333vw;
  height: 4.666667vw;
  object-fit: contain;
  margin-left: auto;
}

/* 消息列表 */
.chat-messages {
  flex: 1;
  overflow-y: auto;
  padding: 2.666667vw 4.266667vw;
  background: #f8f9fa;
  display: flex;
  flex-direction: column;
  gap: 2.666667vw;
}
.chat-messages::-webkit-scrollbar { width: 0; }

/* 时间分割线 */
.chat-time-divider {
  text-align: center;
  font-family: var(--font-main);
  font-size: 2.933333vw;
  color: #999;
  margin: 1.333333vw 0;
}

/* 消息气泡 */
.chat-msg-row {
  display: flex;
  align-items: flex-end;
  gap: 2.133333vw;
}
.chat-msg-row.user { justify-content: flex-end; }
.chat-msg-row.admin { justify-content: flex-start; }

.chat-msg-avatar {
  width: 8vw;
  height: 8vw;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}

.chat-msg-bubble {
  max-width: 66.666667vw;
  padding: 2.666667vw 3.733333vw;
  border-radius: 3.2vw;
  font-family: var(--font-main);
  font-size: 3.733333vw;
  line-height: 1.5;
  word-break: break-word;
  position: relative;
}
.chat-msg-row.user .chat-msg-bubble {
  background: #8B5CF6;
  color: #fff;
  border-bottom-right-radius: 0.8vw;
}
.chat-msg-row.admin .chat-msg-bubble {
  background: #fff;
  color: #333;
  border-bottom-left-radius: 0.8vw;
  box-shadow: 0 0.266667vw 1.066667vw rgba(0,0,0,.06);
}

/* 消息时间 */
.chat-msg-time {
  font-family: var(--font-num);
  font-size: 2.4vw;
  color: rgba(255,255,255,.5);
  text-align: right;
  margin-top: 1.066667vw;
}
.chat-msg-row.user .chat-msg-time {
  color: rgba(255,255,255,.6);
}
.chat-msg-row.admin .chat-msg-time {
  color: rgba(0,0,0,.35);
}

/* ★ 消息已读/已发送状态 */
.chat-msg-status {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
  margin-top: 6px;
  font-family: var(--font-main);
  font-size: 2.133333vw;
  color: rgba(255,255,255,.5);
}
.chat-msg-status.read {
  color: #A78BFA; /* ★ 紫色 - 已读 */
}
.chat-status-icon {
  font-size: 2.4vw;
  font-weight: 700;
}

/* 消息图片 */
.chat-msg-image {
  max-width: 48vw;
  max-height: 40vw;
  border-radius: 2.666667vw;
  object-fit: cover;
  cursor: pointer;
}

/* 输入区域 */
.chat-input-area {
  width: 100%;
  box-shadow: 0 -.533333vw .8vw #0000000f;
  background: #fff;
  display: flex;
  align-items: center;
  gap: 2.133333vw;
  padding: 2.133333vw 3.2vw;
  flex-shrink: 0;
  position: relative;
}
.send-msg-box {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 2.133333vw;
  background: #f6f6fa;
  padding: 0 3.2vw;
  height: 10.666667vw;
}
.chat-input {
  flex: 1;
  border: none;
  background: transparent;
  font-size: 3.733333vw;
  color: #333;
  outline: none;
  font-family: var(--font-main);
}
.chat-input::placeholder { color: #bbb; }
.icon-box {
  width: 6.4vw;
  height: 6.4vw;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  flex-shrink: 0;
  position: relative;
}
.icon-box img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.chat-emoji-panel {
  display: none;
  position: absolute;
  bottom: 100%;
  left: 0;
  right: 0;
  background: #fff;
  border-top: 1px solid #eee;
  padding: 2.666667vw;
  box-shadow: 0 -2px 8px rgba(0,0,0,.08);
  z-index: 10;
  max-height: 50vh;
  overflow-y: auto;
}
.chat-emoji-panel.show { display: block; }
.chat-emoji-grid {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  gap: 1.066667vw;
  text-align: center;
}
.chat-emoji-grid span {
  font-size: 5.333333vw;
  cursor: pointer;
  padding: 1.066667vw 0;
  border-radius: 1.066667vw;
  transition: background .15s;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}
.chat-emoji-grid span:active { background: #f0f0f0; }
.send-btn {
  flex-shrink: 0;
  width: 13.066667vw;
  height: 9.6vw;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #ccd1d2;
  border-radius: .533333vw;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: transform .1s, background .2s;
}
.send-btn.active {
  background: #000;
}
.send-btn img {
  width: 4vw;
  height: 4vw;
  object-fit: contain;
}
.send-btn:active { transform: scale(.92); }

/* ========== 未登录拦截遮罩 ========== */
.guest-blocker {
  display: none; position: absolute; left: 0; right: 0;
  top: 11.733333vw; /* topbar 高度 */
  bottom: 13.333333vw; /* tabbar 高度 */
  z-index: 100;
  pointer-events: none; /* 不阻挡触摸滚动 */
}
.guest-blocker.show { display: block; }

body.quick-mode-on .currency-symbol{display:none!important;}
body.quick-mode-on .pay-bal-currency{display:none!important;}
body.quick-mode-on .result-money-symbol,
body.quick-mode-on .draw-result-money-symbol{display:none!important;}

.back-top-btn{position:fixed;right:0;bottom:34.666667vw;width:13.333333vw;height:13.333333vw;border-radius:50%;z-index:99999;cursor:pointer;-webkit-tap-highlight-color:transparent;opacity:0;visibility:hidden;transform:translateY(3.2vw) scale(.86);transition:opacity .22s ease,transform .22s ease,visibility .22s ease;box-shadow:0 .533333vw 2.133333vw rgba(0,0,0,.16);}
.back-top-btn.show{opacity:1;visibility:visible;transform:translateY(0) scale(1);}
.back-top-btn:active{transform:scale(.92);}
.back-top-btn img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block;}

.quick-mode-overlay,.invite-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.8);opacity:0;visibility:hidden;z-index:1000002;transition:opacity .3s ease,visibility .3s ease;}
.quick-mode-overlay.show,.invite-modal-overlay.show{opacity:1;visibility:visible;}
.quick-mode-modal{position:fixed;left:50%;top:50%;width:78.933333vw;max-width:394px;background:#fff;border-radius:1.066667vw;z-index:1000003;opacity:0;visibility:hidden;transform:translate(-50%,-48%) scale(.94);transition:opacity .3s ease,transform .3s cubic-bezier(.25,.8,.25,1),visibility .3s ease;overflow:hidden;}
.quick-mode-modal.show{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1);}
.quick-mode-close{position:absolute;right:4.266667vw;top:3.733333vw;width:6.4vw;height:6.4vw;border:0;background:transparent;color:#222;font-size:6.4vw;line-height:6.4vw;font-weight:700;z-index:2;cursor:pointer;}
.quick-mode-head{padding:8.8vw 4.266667vw 3.2vw;text-align:center;font-size:4.266667vw;font-weight:800;color:#111;}
.quick-mode-track{display:flex;width:100%;transition:transform .28s cubic-bezier(.25,.8,.25,1);will-change:transform;}
.quick-mode-slide{min-width:100%;padding:0 4.266667vw 3.2vw;text-align:center;}
.quick-mode-slide img{width:61.333333vw;height:37.333333vw;object-fit:contain;display:block;margin:0 auto 3.2vw;}
.quick-mode-title{font-size:3.466667vw;font-weight:800;color:#111;margin-bottom:1.333333vw;}
.quick-mode-desc{font-size:3.2vw;line-height:4.8vw;color:#999;min-height:9.6vw;}
.quick-mode-dots{display:flex;align-items:center;justify-content:center;gap:2.666667vw;margin:0 0 6.4vw;}
.quick-mode-dot{width:1.866667vw;height:1.866667vw;border-radius:50%;background:#cfd4d5;transition:background .2s;}
.quick-mode-dot.active{background:#ff1512;}
.quick-mode-confirm{display:block;width:70.4vw;height:12.8vw;margin:0 auto 5.333333vw;border:0;border-radius:.533333vw;background:#ff1512;color:#fff;font-size:4vw;font-weight:800;font-family:var(--font-main);cursor:pointer;}

#p-invite-friends.active{display:block!important;background:#fff!important;background-image:none!important;padding-bottom:0!important;animation:inviteSlideIn .25s cubic-bezier(.25,.8,.25,1) backwards;}
@keyframes inviteSlideIn{from{transform:translateX(16vw);opacity:.65}to{transform:translateX(0);opacity:1}}
.invite-page{min-height:100%;background:#fff;color:#111;padding-bottom:10vw;}
.invite-hero{position:relative;height:43.733333vw;background:#ff1512 url('./uploads/icons/bg-1-DssSDgEj.webp') center bottom/100% auto no-repeat;overflow:hidden;color:#fff;}

/* ===== invite-friends 头部区域 ===== */
.invite-fixed-header{
  position:fixed;top:0;left:0;right:0;
  height:11.733333vw;
  display:flex;align-items:center;justify-content:center;
  z-index:100;
  background:transparent;
  overflow:hidden;
}
.invite-fh-back{
  position:absolute;top:50%;transform:translateY(-50%);
  left:3.2vw;
  width:8vw;height:8vw;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;border:none;background:none;padding:0;margin:0;
}
.invite-fh-back img{
  width:5.333333vw;height:5.333333vw;object-fit:contain;
  filter:brightness(0) invert(1);
}
.invite-fh-title{
  font-size:3.733333vw;font-family:"PingFang SC",var(--font-main);
  font-weight:500;line-height:1;color:#fff;
  opacity:0;
}
/* 滚动后：白色背景 + 黑字 + 黑色返回图标 */
.invite-fixed-header.scrolled{
  background:#fff;
}
.invite-fixed-header.scrolled .invite-fh-title{
  opacity:1;
  color:#111;
}
.invite-fixed-header.scrolled .invite-fh-back img{
  filter:none;
}
.invite-title-img{position:absolute;left:50%;top:12.533333vw;transform:translateX(-50%);width:68vw;height:auto;object-fit:contain;}
.invite-marquee{position:absolute;left:0;right:0;bottom:14vw;display:flex;gap:1.6vw;overflow:hidden;white-space:nowrap;}
.invite-rank-icon{position:absolute;width:12.8vw;height:6.4vw;right:0;top:0;background:linear-gradient(270deg,#fee442,#fee44200);border-radius:1.066667vw 0 0 1.066667vw;display:flex;align-items:center;padding-left:6.4vw;border:0;padding-top:0;padding-bottom:0;padding-right:0;z-index:2;}
.invite-rank-icon img{width:5.333333vw;height:5.333333vw;object-fit:contain;}
.invite-marquee-track{display:flex;gap:1.6vw;}
@keyframes inviteMarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.invite-marquee-item{height:5.866667vw;display:inline-flex;align-items:center;gap:1.066667vw;background:#fff;border-radius:1.066667vw;padding:0 2.133333vw;color:#333;font-size:2.4vw;box-shadow:0 .533333vw 2.133333vw rgba(0,0,0,.08);}
.invite-marquee-item img{width:4.266667vw;height:4.266667vw;border-radius:50%;object-fit:cover;}
.invite-marquee-item b{color:#ff1512;font-weight:800;}
.marquee-commission-label{font-size:2.666667vw;color:#72797a;display:flex;align-items:center;white-space:nowrap;}
.marquee-gold-text{color:#fee442;}
.invite-marquee-item .marquee-commission-text{color:#72797a;}
.invite-card{position:relative;margin:-10vw 1.6vw 3.2vw;background:#fff;border-radius:1.066667vw;padding:4.266667vw 3.2vw;box-shadow:0 .533333vw 2.133333vw rgba(0,0,0,.04);}
.invite-section-title{display:flex;align-items:center;justify-content:space-between;font-size:4vw;font-weight:400;color:#111;margin-bottom:2.666667vw;}
.invite-rule-btn{display:flex;align-items:center;gap:.8vw;font-size:3.2vw;font-weight:400;color:#111;border:0;background:transparent;padding:0;}
.invite-rule-btn img{width:4.266667vw;height:4.266667vw;object-fit:contain;}
.invite-link-row{height:10.666667vw;background:#f6f6fa;border-radius:.533333vw;display:flex;align-items:center;justify-content:space-between;padding:0 3.2vw;font-size:3.2vw;color:#111;}
.invite-copy{width:3.2vw;height:3.2vw;object-fit:contain;flex-shrink:0;}
.invite-share-btn{margin-top:3.2vw;width:100%;height:12.8vw;border:0;border-radius:1.066667vw;background:#111;color:#fff;font-size:3.733333vw;font-weight:400;font-family:var(--font-main);}
.invite-stat-card{margin-top:4.266667vw;background:#f6f6fa;border-radius:.533333vw;display:grid;grid-template-columns:1fr 1fr;min-height:20.8vw;}
.invite-stat{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.6vw;position:relative;}
.invite-stat:first-child::after{content:'';position:absolute;right:0;top:4.266667vw;bottom:4.266667vw;width:.266667vw;background:#e6e6ee;}
.invite-stat-label{display:flex;align-items:center;gap:1.066667vw;font-size:3.2vw;font-weight:400;}
.invite-stat-label img{width:4.266667vw;height:4.266667vw;object-fit:contain;}
.invite-stat-value{font-size:3.2vw;font-weight:400;color:#111;}
.invite-stat-value.red{color:#ff1512;}
.invite-list-head{display:flex;align-items:center;justify-content:space-between;margin:10.666667vw 3.2vw 3.2vw;font-size:3.733333vw;font-weight:400;}
.invite-list-more{display:flex;align-items:center;gap:1.066667vw;font-size:3.2vw;font-weight:400;color:#747a72;border:0;background:transparent;padding:0;}
.invite-list-more img{width:3.2vw;height:3.2vw;object-fit:contain;}
.invite-table-card{margin:0 1.6vw 3.2vw;background:#fff;border-radius:1.066667vw;min-height:71.466667vw;padding:3.2vw;}
.invite-table-head,.invite-row{display:grid;grid-template-columns:1fr 22vw 22vw;align-items:center;gap:2.133333vw;}
.invite-table-head{font-size:2.933333vw;color:#747a72;margin-bottom:2.666667vw;}
.invite-row{height:12.8vw;border-bottom:.266667vw solid #f0f0f5;font-size:3.2vw;}
.invite-row:last-child{border-bottom:0;}
.invite-empty{min-height:58.666667vw;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#747a72;font-size:3.2vw;}
.invite-empty img{width:28vw;height:28vw;object-fit:contain;margin-bottom:3.2vw;}

/* ===== 每日佣金明细区域 ===== */
.commission-details-section{background:#fff;margin:0 1.6vw;}
.commission-details-top{position:sticky;top:11.733333vw;z-index:50;background:#fff;padding:0 3.2vw;}
.commission-details-header{display:flex;align-items:center;justify-content:space-between;padding:3.2vw 0;}
.cd-title{font-size:3.733333vw;font-weight:500;color:#111;}
.commission-details-top .bd-month-picker{display:flex;align-items:center;font-size:3.2vw;color:#111;cursor:pointer;padding:0;}
.commission-details-top .bd-month-picker img{width:2.666667vw;height:2.666667vw;object-fit:contain;margin-left:1.066667vw;}
.commission-table-head{display:flex;align-items:center;justify-content:space-between;font-size:2.933333vw;color:#747a72;padding-bottom:2.666667vw;border-bottom:.266667vw solid #f0f0f5;}
.commission-table-head span:first-child{flex:1;}
.commission-table-head span:last-child{text-align:right;}
.commission-details-box{padding:0 3.2vw;}
.commission-daily-row{display:flex;align-items:center;justify-content:space-between;padding:3.2vw 0;border-bottom:1px solid #f5f5f5;font-size:3.2vw;}
.commission-daily-row:last-child{border-bottom:none;}
.cd-date{color:#111;font-family:var(--font-main);}
.cd-amount{color:#ff1512;font-weight:600;font-family:var(--font-num);}
.commission-update-tip{position:fixed;bottom:0;left:0;right:0;text-align:center;padding:2.666667vw 0;font-size:2.666667vw;color:#999;background:#fff;z-index:50;max-width:500px;margin:0 auto;}

/* ===== 月份选择器弹窗 ===== */
.cd-picker-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:200000;display:flex;align-items:flex-end;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s;}
.cd-picker-overlay.show{opacity:1;pointer-events:auto;}
.cd-picker-panel{background:#fff;width:100%;max-width:500px;border-radius:2.133333vw 2.133333vw 0 0;transform:translateY(100%);transition:transform .3s cubic-bezier(.25,.8,.25,1);}
.cd-picker-overlay.show .cd-picker-panel{transform:translateY(0);}
.cd-picker-header{display:flex;align-items:center;justify-content:space-between;padding:4.266667vw;font-size:3.733333vw;font-weight:500;border-bottom:1px solid #f0f0f0;}
.cd-picker-header button{border:none;background:none;font-size:3.2vw;color:#999;}
.cd-picker-body{display:flex;height:42vh;}
.cd-picker-col{flex:1;overflow-y:auto;text-align:center;font-size:3.467vw;}
.cd-picker-col .item{padding:3.2vw 0;color:#111;}
.cd-picker-col .item.selected{color:#ff1512;font-weight:600;}
.cd-picker-col .item.disabled{color:#ccc;}
.cd-picker-footer{padding:3.2vw 4.266667vw;}
.cd-picker-confirm{width:100%;height:10.666667vw;border:none;border-radius:1.066667vw;background:#ff1512;color:#fff;font-size:3.733333vw;font-weight:500;}
.invite-rule-modal,.invite-rank-modal{position:fixed;left:50%;top:50%;width:87.2vw;max-width:437px;height:112vw;max-height:78vh;background:#fff;border-radius:1.066667vw;z-index:1000003;opacity:0;visibility:hidden;transform:translate(-50%,-48%) scale(.96);transition:opacity .28s ease,transform .28s cubic-bezier(.25,.8,.25,1),visibility .28s ease;overflow:hidden;padding-top:5.333333vw;display:flex;flex-direction:column;}
.invite-rule-modal.show,.invite-rank-modal.show{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1);}
.invite-rule-body{max-height:76vh;overflow-y:auto;padding:0 5.333333vw 7.466667vw;font-size:3.2vw;line-height:5.866667vw;color:#222;}
.invite-rule-body h3{font-size:3.733333vw;margin:0 0 2.133333vw;font-weight:800;}
.invite-rule-body p{margin:0 0 4.266667vw;}
.invite-rule-header{display:flex;align-items:center;justify-content:space-between;padding:4.266667vw 5.333333vw;border-bottom:1px solid #f0f0f0;}
.invite-rule-logo{height:5.333333vw;object-fit:contain;}
.invite-rule-close-btn{width:6.4vw;height:6.4vw;border:0;background:transparent;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.invite-rule-close-btn img{width:5.333333vw;height:5.333333vw;object-fit:contain;}
.invite-rank-body{padding:0 2.666667vw 5.333333vw;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;}
.invite-rank-body::-webkit-scrollbar{display:none;}
.invite-rank-title{padding-left:2.666667vw;padding-right:2.666667vw;display:flex;align-items:center;font-family:var(--font-main);font-weight:700;font-size:4.266667vw;color:#111;text-transform:uppercase;flex-shrink:0;}
.invite-rank-title img{width:4.266667vw;height:4.266667vw;margin-right:.266667vw;object-fit:contain;}
.invite-rank-head{display:flex;align-items:center;justify-content:space-between;font-family:var(--font-main);font-weight:500;font-size:2.666667vw;color:#aab0b1;margin-bottom:2.133333vw;margin-top:4.533333vw;padding:0 2.666667vw;flex-shrink:0;}
.invite-rank-head .rk-h-left{width:8vw;text-align:center;}
.invite-rank-head .rk-h-center{flex:1;}
.invite-rank-head .rk-h-right{width:20vw;text-align:right;}
#inviteRankList{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;}
#inviteRankList::-webkit-scrollbar{display:none;}
.invite-rank-row{min-height:10.666667vw;margin-bottom:2.666667vw;display:flex;align-items:center;justify-content:space-between;font-size:3.2vw;padding:0 2.666667vw;}
.invite-rank-no{width:6vw;font-family:var(--font-en);font-weight:900;text-align:center;flex-shrink:0;}
.invite-rank-medal{width:5.333333vw;height:5.333333vw;object-fit:contain;margin:auto;}
.invite-rank-avatar{width:9.6vw;height:9.6vw;border-radius:50%;object-fit:cover;flex-shrink:0;}
.invite-rank-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.8vw;padding-left:1.6vw;}
.invite-rank-name-row{display:flex;align-items:center;gap:1.066667vw;}
.invite-rank-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:22vw;font-size:3.2vw;}
.invite-rank-level-tag{display:inline-flex;align-items:center;position:relative;flex-shrink:0;}
.invite-rank-level-tag img{height:4.266667vw;width:auto;object-fit:contain;}
.invite-rank-sub{font-size:2.4vw;color:#999;}
.invite-rank-sub .invite-rank-num{color:#b98d1b;}
.invite-rank-money{font-family:var(--font-en);color:#ff1512;}
.invite-share-overlay{position:fixed;inset:0;background:rgba(0,0,0,.8);z-index:1000004;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;}
.invite-share-overlay.show{opacity:1;visibility:visible;}
.invite-share-modal{position:fixed;left:50%;bottom:0;width:100%;max-width:500px;transform:translate(-50%,100%);z-index:1000005;transition:transform .32s cubic-bezier(.25,.8,.25,1);}
.invite-share-modal.show{transform:translate(-50%,0);}
.invite-share-card{width:80vw;margin:0 auto 6.4vw;background:#fff;border-radius:1.066667vw;overflow:hidden;}
.invite-share-card .share-img{width:100%;height:41.066667vw;display:block;object-fit:cover;}
.invite-share-text{padding:3.2vw;font-size:3.2vw;line-height:4.8vw;color:#747a72;}
.invite-share-text-head{display:flex;align-items:center;justify-content:space-between;color:#111;margin-bottom:1.6vw;}
.invite-share-text-head>span:first-child{font-weight:400;}
.invite-share-text-head img{width:3.2vw;height:3.2vw;object-fit:contain;margin-left:3.2vw;}
.invite-share-text .share-msg{margin-top:1.6vw;font-size:2.933333vw;color:#747a72;line-height:1.5;}
.invite-share-link{margin-top:1.6vw;font-size:2.933333vw;color:#b98d1b;line-height:1.5;word-break:break-all;}
.invite-share-sheet{background:#f7f7fb;border-radius:1.066667vw 1.066667vw 0 0;padding:3.733333vw 4.266667vw calc(16vw + env(safe-area-inset-bottom));box-shadow:0 -2.666667vw 8vw rgba(0,0,0,.18);}
.invite-share-sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6.4vw;font-size:4.266667vw;line-height:5.866667vw;color:#111;}
.invite-share-close{width:6.4vw;height:6.4vw;border:0;background:transparent;color:#111;font-size:7.466667vw;line-height:6.4vw;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.invite-share-actions{display:grid;grid-template-columns:repeat(5,1fr);column-gap:3.2vw;}
.invite-share-actions .share-action{border:0;background:transparent;display:flex;flex-direction:column;align-items:center;gap:2.4vw;min-width:0;color:#111;font-size:2.4vw;line-height:3.2vw;font-family:var(--font-main);cursor:pointer;-webkit-tap-highlight-color:transparent;}
.invite-share-actions .share-action img{width:12.8vw;height:12.8vw;border-radius:2.133333vw;object-fit:cover;display:block;}
.invite-share-actions .share-action:active{transform:scale(.96);}

/* ========== 登录/注册弹窗 ========== */
.login-modal-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,0.8);
  z-index: 1000002; opacity: 0; visibility: hidden;
  transition: opacity .3s, visibility .3s;
}
.login-modal-overlay.show { opacity: 1; visibility: visible; }
.login-modal {
  position: fixed; left: 0; right: 0; bottom: 0;
  background: #fff; border-radius: 2.133333vw 2.133333vw 0 0;
  z-index: 1000003; padding: 4.266667vw;
  transform: translateY(100%);
  transition: transform .3s cubic-bezier(.25,.8,.25,1);
  max-height: 90vh; overflow-y: auto;
}
.login-modal.show { transform: translateY(0); width: 100%; height: 154.666667vw; background: #f6f6fa; }
#loginModal.login-modal.otp-mode { padding: 0 !important; }
.login-modal-header {
  padding: 2.133333vw 2.133333vw 0 0;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.login-modal-lang {
  position: relative;
  padding-left: 1.1vw;
  height: 8vw;
  display: flex;
  align-items: center;
  font-size: 3.466667vw; color: #333; cursor: pointer;
}
.login-header-country {
  height: 100%;
  display: flex;
  align-items: center;
  gap: 1.066667vw;
}
.login-header-country svg {
  border-radius: 50%;
  overflow: hidden;
}
.login-header-divider {
  width: .266667vw;
  height: 3.2vw;
  background: #ccd1d2;
  border-radius: .266667vw;
  margin: 0 4.533333vw;
}
.login-header-lang {
  height: 100%;
  display: flex;
  align-items: center;
  gap: 1.066667vw;
  cursor: pointer;
}
.login-modal-close {
  position: absolute;
  top: 2.133333vw;
  right: 2.133333vw;
  width: 8vw;
  height: 8vw;
  cursor: pointer;
  z-index: 99;
}
.login-section-phone {
  margin: 6.133333vw auto 0;
  width: 89.333333vw;
}
.login-modal-title-wrapper {
  width: 100%;
  display: flex;
  align-items: center;
}
.login-modal-logo {
  width: 12.8vw;
  height: 12.8vw;
  border-radius: 2.666667vw;
  margin-right: 2.666667vw;
  flex-shrink: 0;
}
.login-modal-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: 2.666667vw;
  margin-right: 2.666667vw;
}
.login-modal-title {
  font-size: 5.333333vw;
  color: #111;
  font-weight: 700;
}
.login-phone-row {
  margin-top: 6.4vw;
  position: relative;
  display: flex;
  align-items: center;
  background: #fff;
  border-radius: 1.066667vw;
  padding: 0 2.666667vw;
  height: 12.8vw;
}
.login-phone-row.phone-error {
  outline: .266667vw solid #ff0000;
}
.login-phone-error {
  color: #ff0000;
  position: absolute;
  left: 0;
  bottom: -4vw;
  width: 100%;
  font-size: 2.666667vw;
  line-height: 3.066667vw;
}
.login-phone-inner, .login-email-inner {
  display: flex;
  align-items: center;
  gap: 2.133333vw;
  width: 100%;
  height: 100%;
}
.login-phone-divider {
  width: .266667vw;
  height: 2.933333vw;
  background: #ccd1d2;
  border-radius: .266667vw;
  position: absolute;
  top: 5.066667vw;
  left: 13.333333vw;
}
.login-email-icon {
  width: 5.333333vw;
  height: 5.333333vw;
  object-fit: contain;
  flex-shrink: 0;
  margin-left: 1vw;
}
.login-country-code {
  display: flex;
  align-items: center;
  gap: 0.533333vw;
  font-size: 3.733333vw;
  color: #333;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  margin-left: 1vw;
}
.login-phone-input {
  padding: 0 12vw 0 5vw;
  width: 100%;
  height: 12.8vw;
  background: #ffffffe6;
  border-radius: 1.066667vw;
  font-size: 3.733333vw;
  color: #111;
  text-decoration: none !important;
  border: none;
  outline: none;
}
.login-phone-input::placeholder { color: #999; }
.login-error-box {
  position: absolute;
  left: 0;
  bottom: -5.333333vw;
  font-size: 2.666667vw;
  color: #ff4d4f;
}
.login-continue-btn {
  margin-top: 6.4vw;
  width: 100%;
  height: 12.8vw;
  background: #111;
  border: none;
  border-radius: 1.6vw;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3.733333vw;
  color: #fff;
  font-weight: 600;
  cursor: pointer;
}
.login-continue-btn:disabled { background: #ccc; }
.login-or-divider {
  display: flex;
  align-items: center;
  gap: 2.666667vw;
  margin: 4.266667vw 0;
  color: #999;
  font-size: 2.933333vw;
}
.login-or-divider::before,
.login-or-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: #e0e0e0;
}
.login-section-social {
  flex: 1;
  width: 100%;
  margin-top: 4.266667vw;
}
.login-social-btn {
  position: relative;
  margin: 0 auto 2.666667vw;
  width: 89.6vw;
  height: 12.8vw;
  background: #ffffffe6;
  border-radius: 1.066667vw;
  border: 1px solid #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.login-social-icon {
  position: absolute;
  top: 3.733333vw;
  left: 4.266667vw;
  width: 5.333333vw;
  height: 5.333333vw;
  object-fit: contain;
}
.login-social-btn span {
  font-size: 3.733333vw;
  color: #111;
  line-height: 12.8vw;
  width: 89.6vw;
  display: inline-block;
  text-align: center;
}
.login-social-btn:active {
  opacity: 0.7;
  transform: scale(0.98);
}
.login-google-btn {
  border: 1px solid #e0e0e0;
}
.login-fb-btn {
  border: 1px solid #e0e0e0;
}
.login-contact-service {
  position: absolute;
  right: 0;
  bottom: calc(14.666667vw + env(safe-area-inset-bottom));
  height: 8vw;
  background-color: #fff;
  border-radius: 1.066667vw 0 0 1.066667vw;
  display: flex;
  align-items: center;
  padding: 0 2.666667vw 0 2.666667vw;
  color: #111;
  font-size: 3.2vw;
  cursor: pointer;
  gap: 1.066667vw;
  white-space: nowrap;
}
/* ========== 验证码页面 ========== */
.login-section-otp {
  margin: 0 auto;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 0 4.266667vw 4.266667vw;
}
.login-otp-header {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 2.133333vw 0 0;
  margin-bottom: 2.666667vw;
  margin-top: -2vw;
}
.login-otp-back {
  width: 8vw;
  height: 8vw;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.login-otp-back img {
  width: 6.4vw;
  height: 6.4vw;
  object-fit: contain;
}
.login-otp-close {
  width: 8vw;
  height: 8vw;
  cursor: pointer;
  object-fit: contain;
}
.login-otp-title-wrapper {
  display: flex;
  align-items: center;
  gap: 2.133333vw;
  margin-top: 4vw;
  margin-bottom: 2.666667vw;
  width: 100%;
}
.login-otp-icon {
  width: 6.4vw;
  height: 6.4vw;
  object-fit: contain;
}
.login-otp-title {
  font-size: 5.333333vw;
  font-weight: 700;
  color: #111;
}
.login-otp-hint {
  display: flex;
  align-items: center;
  font-size: 3.2vw;
  color: #111;
  line-height: 3.733333vw;
  padding-left: 1.333333vw;
  margin-top: 2.666667vw;
  margin-bottom: 5.333333vw;
  width: 100%;
}
.login-otp-hint span {
  font-weight: 600;
  color: #111;
}
.login-otp-inputs {
  margin-top: 6.933333vw;
  padding: 0 1.066667vw;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 5.333333vw;
}
.login-otp-digit {
  width: 12.8vw;
  height: 12.8vw;
  border: 0.266667vw solid #ddd;
  border-radius: 1.6vw;
  text-align: center;
  background: #ffffffe6;
  font-size: 3.733333vw;
  font-weight: 700;
  color: #111;
  line-height: 3.733333vw;
  outline: none;
  caret-color: #111;
  padding: 0;
  -webkit-appearance: none;
  appearance: none;
}
.login-otp-digit:focus {
  border-color: #ff0000;
}
.login-otp-digit.otp-filled {
  border-color: #111;
}
.login-otp-digit.otp-error {
  border-color: #ff0000 !important;
  animation: otpShake 0.3s ease;
}
@keyframes otpShake {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-1.5vw); }
  40% { transform: translateX(1.5vw); }
  60% { transform: translateX(-1vw); }
  80% { transform: translateX(1vw); }
}
.login-otp-error {
  color: #ff0000;
  font-size: 2.666667vw;
  margin-bottom: 4vw;
  width: 100%;
  text-align: center;
}
.login-otp-resend-btn {
  width: 100%;
  text-align: center;
  background: none;
  border: none;
  padding: 0;
  font-size: 3.2vw;
  color: #747a72;
  font-style: normal;
  text-transform: none;
  line-height: 4.4vw;
  text-decoration: none;
  cursor: default;
}
.login-otp-resend-btn.active {
  margin-top: 4.266667vw;
  text-align: center;
  font-size: 3.733333vw;
  color: #ff0000;
  line-height: 4.4vw;
  text-decoration: underline;
  cursor: pointer;
}

.login-section-terms {
  width: 100%;
  font-size: 2.666667vw;
  color: #aab0b1;
  line-height: 4.266667vw;
  text-align: center;
  position: fixed;
  bottom: calc(2.933333vw + env(safe-area-inset-bottom));
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  padding: 0 4vw;
}
.login-section-terms span {
  display: inline;
  white-space: nowrap;
}
.login-section-terms .terms-break {
  display: none;
}
.login-section-terms.lang-break .terms-break {
  display: block;
  width: 100%;
  height: 0;
}
.login-section-terms span[data-i18n="userAgreement"],
.login-section-terms span[data-i18n="privacyPolicy"] {
  text-decoration: underline;
  color: #b98d1b;
}
.login-section-terms .and {
  color: #aab0b1;
  text-decoration: none;
}
.login-terms {
  font-size: 2.4vw; color: #999; text-align: center;
  line-height: 1.6;
}
.login-terms a { color: #FF6B35; text-decoration: none; }

/* ========== 国家选择弹窗 ========== */
.country-select-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,0.8);
  z-index: 1000004; opacity: 0; visibility: hidden;
  transition: opacity .3s, visibility .3s;
}
.country-select-overlay.show { opacity: 1; visibility: visible; }
.country-select-panel {
  position: fixed; left: 50%; top: 50%;
  transform: translate(-50%, -50%) scale(0.95);
  background: #fff; border-radius: 2.133333vw;
  width: 80vw; max-width: 400px;
  z-index: 1000005; padding: 4.266667vw;
  opacity: 0; visibility: hidden;
  transition: opacity .3s, transform .3s, visibility .3s;
}
.country-select-panel.show {
  opacity: 1; visibility: visible;
  transform: translate(-50%, -50%) scale(1);
}
.country-select-header {
  height: 5.866667vw;
  font-family: var(--font-main);
  font-weight: 500;
  font-size: 4.266667vw;
  color: #111;
  line-height: 5.866667vw;
  text-align: center;
  margin-bottom: 6.933333vw;
  display: flex;
  align-items: center;
  justify-content: center;
}
.country-select-title {
  display: flex; align-items: center; gap: 2.133333vw;
  font-size: 4.266667vw; font-weight: 600; color: #111;
}
.country-select-close {
  position: absolute;
  right: 2.133333vw;
  top: 2.133333vw;
  cursor: pointer;
}
.country-select-close img {
  width: 8vw;
  height: 8vw;
}
.country-select-list { display: flex; flex-direction: column; gap: 2.133333vw; }
.country-item {
  width: 100%;
  height: 12.8vw;
  background: #f6f6fa;
  border-radius: 1.066667vw;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 4.266667vw;
  cursor: pointer; transition: background .15s;
}
.country-item-flag {
  border-radius: 50%;
  overflow: hidden;
}
.country-item:active { background: #f5f5f5; }
.country-item.active { background: #f8f8f8; }
.country-item-flag { width: 6.4vw; height: 6.4vw; margin-right: 2.133333vw; border-radius: 0.533333vw; }
.country-item-name { width: auto; flex: 1; height: 4.266667vw; font-size: 3.2vw; line-height: 4.266667vw; text-align: left; font-style: normal; text-transform: none; color: #747a72; }
.country-item-code { width: auto; height: 4.266667vw; font-size: 3.2vw; line-height: 4.266667vw; text-align: right; color: #999; margin-right: 2.133333vw; }
.country-item.active .country-item-name { color: #111; }
.country-item.active .country-item-code { color: #111; }
.country-item-check { width: 4.8vw; height: 4.8vw; opacity: 0; }
.country-item.active .country-item-check { opacity: 1; }

/* ========== 登录页语言选择弹窗 ========== */
.login-lang-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,0.8);
  z-index: 1000006; opacity: 0; visibility: hidden;
  transition: opacity .3s, visibility .3s;
}
.login-lang-overlay.show { opacity: 1; visibility: visible; }
.login-lang-panel {
  position: fixed; left: 50%; top: 50%;
  transform: translate(-50%, -50%) scale(0.95);
  background: #fff; border-radius: 2.133333vw;
  width: 80vw; max-width: 400px;
  z-index: 1000007; padding: 4.266667vw;
  opacity: 0; visibility: hidden;
  transition: opacity .3s, transform .3s, visibility .3s;
}
.login-lang-panel.show {
  opacity: 1; visibility: visible;
  transform: translate(-50%, -50%) scale(1);
}

/* ========== 区号选择弹窗（独立，z-index 高于国家选择） ========== */
#phoneCodeOverlay { z-index: 1000008 !important; }
#phoneCodePanel { z-index: 1000009 !important; }
.login-lang-header {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 6.933333vw;
  height: 5.866667vw;
}
.login-lang-icon {
  width: 5.333333vw;
  height: 5.333333vw;
  margin-right: 2.133333vw;
  object-fit: contain;
}
.login-lang-title {
  font-family: var(--font-main);
  font-weight: 500;
  font-size: 4.266667vw;
  color: #111;
  line-height: 5.866667vw;
}
.login-lang-close {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 8vw;
  height: 8vw;
  cursor: pointer;
  object-fit: contain;
}
.login-lang-list {
  display: flex;
  flex-direction: column;
  gap: 2.133333vw;
}
.login-lang-item {
  width: 100%;
  height: 12.8vw;
  background: #f6f6fa;
  border-radius: 1.066667vw;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 4.266667vw;
  cursor: pointer;
  transition: background .15s;
  font-size: 3.466667vw;
  color: #747a72;
}
.login-lang-item:active { background: #f5f5f5; }
.login-lang-item.active { background: #f8f8f8; }
.login-lang-item.active span { color: #111; }
.login-lang-check {
  width: 4.8vw;
  height: 4.8vw;
  opacity: 0;
  object-fit: contain;
}
.login-lang-item.active .login-lang-check { opacity: 1; }

/* ========== topbar 登录/注册按钮 ========== */
.login-reg-btn {
  height: 9.066667vw; background: #111; border-radius: 1.066667vw;
  line-height: 9.066667vw; text-align: center;
  font-size: 2.933333vw; color: #fff; padding: 0 2.933333vw;
  cursor: pointer; white-space: nowrap;
}

/* ========== 盲盒抽奖记录弹窗 ========== */
.box-record-modal-overlay {
  position: fixed; inset: 0;
  background: rgba(0,0,0,0.8);
  z-index: 1000002;
  opacity: 0; visibility: hidden;
  transition: opacity .3s, visibility .3s;
}
.box-record-modal-overlay.show { opacity: 1; visibility: visible; }

.box-record-modal {
  position: fixed; left: 0; right: 0; bottom: 0;
  background: #1a1a2e;
  border-radius: 2.133333vw 2.133333vw 0 0;
  z-index: 1000003;
  max-height: 85vh;
  display: flex; flex-direction: column;
  transform: translateY(100%);
  transition: transform .35s cubic-bezier(.32,.72,.37,1);
  overflow: hidden;
}
.box-record-modal.show {
  transform: translateY(0);
  background: #f1f1f5;
  height: 118.933333vw;
  display: flex;
  flex-direction: column;
}

.box-record-body {
  padding: 3.2vw 4.266667vw 0;
  box-sizing: border-box;
  width: 100%;
  flex: 1;
  height: 0;
  display: flex;
  flex-direction: column;
}

/* 头部 */
.box-record-header {
  padding: 0 2.133333vw 0 4.266667vw;
  width: 100%;
  display: flex;
  justify-content: space-between;
  flex-shrink: 0;
}
.box-record-title {
  margin-top: 3.2vw;
  height: 5.866667vw;
  object-fit: contain;
}
.box-record-close {
  margin-top: 2.133333vw;
  width: 8vw;
  height: 8vw;
  object-fit: contain;
  cursor: pointer;
}

/* N抽未出区域 */
.box-record-streaks {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-shrink: 0;
}
.box-record-streak-item {
  width: 44.266667vw;
  height: 10.666667vw;
  display: flex;
  align-items: center;
  justify-content: center;
  background-size: 100% 100%;
  background-repeat: no-repeat;
  gap: 1.066667vw;
  position: relative;
}
.box-record-streak-num {
  font-size: 4.266667vw;
  color: #fff;
  line-height: 4.266667vw;
  font-family: var(--font-num);
  font-weight: 800;
}
.box-record-streak-label {
  margin: 0 .533333vw;
  font-size: 2.666667vw;
  color: #fff;
  line-height: 3.2vw;
  font-family: var(--font-main);
}
.box-record-streak-icon {
  width: 5.333333vw;
  height: 3.6vw;
  object-fit: contain;
}

/* 筛选Tab */
.box-record-tabs {
  height: 12.8vw;
  width: 100%;
  display: flex; align-items: center;
  justify-content: space-between;
  column-gap: 2.666667vw;
  flex-shrink: 0;
}
.box-record-tab {
  flex: 1;
  height: 7.466667vw;
  display: flex; align-items: center; justify-content: center;
  font-size: 3.2vw; color: #111;
  font-family: var(--font-main); font-weight: 500;
  cursor: pointer; white-space: nowrap;
  transition: all .2s;
}
.box-record-tab.active {
  background: #111;
  border-radius: 1.066667vw;
  color: #fff;
}
.box-record-tab .chart-tab-icon {
  color: #111;
}
.box-record-tab.active .chart-tab-icon {
  color: #fff;
}

/* 列表区域 */
.box-record-list-wrap {
  width: 100%;
  flex: 1;
  overflow-y: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  padding: 0.5vw 0 4.266667vw;
  position: relative;
  display: flex;
  flex-direction: column;
}
.box-record-list-wrap::-webkit-scrollbar { display: none; }

.box-record-list {
  width: 100%;
  flex: 1;
  overflow-y: auto;
  scrollbar-width: none;
}
.box-record-list::-webkit-scrollbar { display: none; }

.box-record-empty {
  margin-bottom: 2.133333vw;
  padding: 0 2.133333vw;
  width: 100%;
  flex: 1;
  height: 0;
  border-radius: 1.6vw;
  background-color: #fff;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.box-record-empty .trend-box {
  padding: 0 0px 1.6vw 1.066667vw;
  box-sizing: border-box;
  width: 100%;
  border-bottom: 1px solid #f0f0f0;
  display: flex;
  justify-content: space-between;
}
.box-record-empty .trend-list {
  position: relative;
  padding-top: 2.4vw;
  width: 100%;
  height: 0;
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* 背景竖线 — 4等分条区域(18vw起,宽58.666667vw) */
.box-record-empty .trend-list .line.line1 {
  position: absolute;
  top: 2.4vw;
  left: 18vw;
  width: .266667vw;
  height: 57.066667vw;
  background-color: #f6f6fa;
}
.box-record-empty .trend-list .line2 {
  position: absolute;
  top: 0;
  left: 36.222222vw;
  width: 2.666667vw;
  height: 53vw;
  z-index: 9;
  pointer-events: none;
}
.box-record-empty .trend-list .line.line3 {
  width: .266667vw;
  height: 57.066667vw;
  background-color: #f6f6fa;
  position: absolute;
  top: 2.4vw;
  left: 57.111111vw;
}
.box-record-empty .trend-list .line.line4 {
  width: .266667vw;
  height: 57.066667vw;
  background-color: #f6f6fa;
  position: absolute;
  top: 2.4vw;
  left: 76.666667vw;
}

/* animation-box 滚动容器 */
.box-record-empty .trend-list .animation-box {
  width: 100%;
  flex: 1;
  overflow-y: auto;
  margin-bottom: 1.733333vw;
  scrollbar-width: none;
}
.box-record-empty .trend-list .animation-box::-webkit-scrollbar {
  display: none;
}

/* 单条 item */
.box-record-empty .trend-list .animation-box .item,
.box-record-empty .trend-list .animation-list .item {
  margin-bottom: 2.666667vw;
  width: 100%;
  height: 6.4vw;
  display: flex;
  align-items: center;
  transition: transform .4s cubic-bezier(.32,.72,.37,1), opacity .4s;
}
/* 新插入的行：从上方滑入 */
.box-record-empty .trend-list .animation-list .item.slide-in {
  animation: slideInFromTop .4s cubic-bezier(.32,.72,.37,1) forwards;
}
/* 被挤走的行：平滑下移由 transition 处理 */
@keyframes slideInFromTop {
  from { transform: translateY(-100%); opacity: 0; }
  to   { transform: translateY(0); opacity: 1; }
}
.box-record-empty .trend-list .item .left {
  display: flex;
  align-items: center;
  gap: 1.066667vw;
  width: 18vw;
  flex-shrink: 0;
}
.box-record-empty .trend-list .item .left .avatar {
  width: 6.4vw;
  height: 6.4vw;
  border-radius: 50%;
  object-fit: cover;
}
.box-record-empty .trend-list .item .left span,
.box-record-empty .trend-list .item .left .spname {
  font-size: 2.4vw;
  color: #111;
}
.box-record-empty .trend-list .item .right {
  flex: 1;
  min-width: 0;
}

/* 进度条 */
.box-record-empty .trend-list .progress-box {
  width: 100%;
  height: 6.4vw;
  background: transparent;
  border-radius: .533333vw;
  position: relative;
}
.box-record-empty .trend-list .progress-bar.active.minW.isTransition {
  position: absolute;
  top: 0;
  left: 0;
  max-width: 58.666667vw;
  height: 6.4vw;
  background-color: #3194ff;
  border-radius: .533333vw;
  transition: width .6s cubic-bezier(.25,.8,.25,1);
}
.box-record-empty .trend-list .progress-bar.active.minW.isTransition span {
  position: absolute;
  right: -2.133333vw;
  top: 50%;
  transform: translate(100%, -50%);
  font-size: 2.666667vw;
  color: #111;
  line-height: 2.666667vw;
  z-index: 10;
}
/* 第一行系统streak：红色 */
.box-record-empty .trend-list .animation-box > .item .progress-bar.active.minW.isTransition {
  background-color: #ff1512;
}
.box-record-empty .trend-list .animation-box > .item .progress-bar.active.minW.isTransition span {
  color: #ff1512;
}

@keyframes expandWidth-aa7b39e4 {
  from { width: 0; }
  to { width: var(--target-width, 0%); }
}

/* 滚动列表 */
.box-record-empty .trend-list .animation-list {
  width: 100%;
  overflow: hidden;
  position: relative;
}
.box-record-empty .trend-list .scroll-animation {
  display: flex;
  flex-direction: column;
}

/* 底部趋势刻度 */
.box-record-empty .trend-list .trend-top {
  margin-top: 2.4vw;
  margin-bottom: 1.733333vw;
  width: 100%;
  height: 3.2vw;
  display: flex;
  align-items: center;
  flex-shrink: 0;
  position: relative;
  z-index: 1;
}
.box-record-empty .trend-list .trend-top .left {
  width: 18vw;
  height: 100%;
  font-size: 2.666667vw;
  color: #aab0b1;
  line-height: 2.666667vw;
  text-align: left;
}
.box-record-empty .trend-list .trend-top .right {
  position: relative;
  width: 70.133333vw;
  height: 100%;
}
.box-record-empty .trend-list .trend-top .right .num1 {
  position: absolute;
  top: 0;
  left: 0;
  font-size: 2.666667vw;
  color: #111;
  line-height: 2.666667vw;
  text-align: center;
  transform: translate(-48%);
}
.box-record-empty .trend-list .trend-top .right .num2 {
  position: absolute;
  top: 0;
  left: 19.555556vw;
  color: #ff1512;
  font-size: 2.666667vw;
  line-height: 2.666667vw;
  text-align: center;
  transform: translate(-48%);
}
.box-record-empty .trend-list .trend-top .right .num3 {
  position: absolute;
  top: 0;
  left: 39.111111vw;
  font-size: 2.666667vw;
  color: #111;
  line-height: 2.666667vw;
  text-align: center;
  transform: translate(-48%);
}
.box-record-empty .trend-list .trend-top .right .num4 {
  position: absolute;
  top: 0;
  left: 58.666667vw;
  font-size: 2.666667vw;
  color: #111;
  line-height: 2.666667vw;
  text-align: center;
  transform: translate(-48%);
}

/* trend-box 内部结构 */
.box-record-empty .trend-box .left {
  padding-top: 4vw;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1.066667vw;
  flex: 1;
  min-width: 0;
}
.box-record-empty .trend-box .average {
  font-size: 2.933333vw;
  color: #111;
  font-family: var(--font-main);
  font-weight: 500;
  display: flex;
  align-items: center;
}
.box-record-empty .trend-box .tag-icon {
  width: 5.333333vw;
  height: 3.6vw;
  margin-right: 1.066667vw;
  display: block;
  object-fit: contain;
  flex-shrink: 0;
}
.box-record-empty .trend-box .num {
  color: #ff1512;
  font-weight: 600;
}
.box-record-empty .trend-box .average-draws {
  font-size: 2.4vw;
  margin-top: 1.2vw;
  padding-left: 6.4vw;
  color: #747a72;
}
.box-record-empty .trend-box .average-draws .num {
  color: #111;
  font-weight: 400;
  animation: fadein-aa7b39e4 .3s;
}
.box-record-empty .trend-box .right {
  margin-top: 2.133333vw;
  height: 7.466667vw;
  padding: 1.066667vw;
  width: 26.133333vw;
  background: #f6f6fa;
  border-radius: 1.066667vw;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-shrink: 0;
}
.box-record-empty .trend-box .right .item {
  width: 10.666667vw;
  height: 5.333333vw;
  border-radius: .8vw;
  font-size: 2.933333vw;
  color: #72797a;
  line-height: 5.6vw;
  text-align: center;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background .2s, color .2s;
}
.box-record-empty .trend-box .right .item.active {
  background-color: #fff;
  color: #111;
  border-radius: .8vw;
}

.box-record-pull-hint {
  text-align: center; padding: 2.133333vw 0;
  font-size: 2.933333vw; color: #999;
}

/* 列表项 */
.box-record-item {
  margin-bottom: 1.6vw;
  box-sizing: border-box;
  width: calc(100% - 1px);
  background: #fff;
  border-radius: 1.066667vw;
  position: relative;
  min-height: 16vw;
  padding: .266667vw;
}
.box-record-item.highlight {
  background: linear-gradient(94deg, #ff3131, #ffa946, #fff56a, #ff10a3);
}
.box-record-item:last-child { margin-bottom: 0; }

.box-record-inner {
  min-height: 16vw;
  position: relative;
  padding: 3.2vw 2.133333vw;
  box-sizing: border-box;
  width: 100%;
  display: flex;
  justify-content: space-between;
  background-color: #fff;
  border-radius: .8vw;
  z-index: 2;
}

/* SP/A 中奖商品图片（绝对定位） */
.box-record-prize-img {
  position: absolute;
  width: 15.466667vw;
  text-align: center;
  height: 15.466667vw;
  top: .266667vw;
  right: 26.666667vw;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
}
.box-record-prize-img img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

/* 头像/名称可点击 */
.box-record-name { cursor: pointer; -webkit-tap-highlight-color: transparent; }

.box-record-left {
  flex-shrink: 0;
  width: 9.6vw;
  height: 9.6vw;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.box-record-right-info {
  padding-left: 2.133333vw;
  flex: 1;
}

.box-record-avatar {
  width: 100%; height: 100%;
  border-radius: 50%; object-fit: cover;
  flex-shrink: 0;
  background: rgba(255,255,255,0.1);
}
.box-record-row1 {
  display: flex;
  align-items: center;
}
.box-record-name {
  max-width: 21.333333vw;
  font-weight: 500;
  font-size: 3.2vw;
  color: #111;
  line-height: 3.733333vw;
  margin-right: 1.066667vw;
  font-family: var(--font-main);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.box-record-level {
  width: 8vw;
  height: 4.266667vw;
  background-size: 100% 100%;
  background-repeat: no-repeat;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding-right: .8vw;
}
.box-record-level-icon {
  width: 3.733333vw; height: 3.733333vw; object-fit: contain;
}
.box-record-level-num {
  font-size: 2.4vw; color: #4fc3f7; font-weight: 600;
  font-family: var(--font-num);
}
.box-record-row2 {
  font-size: 2.666667vw;
  color: #111;
  line-height: 2.666667vw;
  text-align: right;
  margin-bottom: 2.4vw;
  font-family: var(--font-main);
}
.box-record-row2.highlight {
  color: #ff4757;
}
.box-record-info-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.box-record-row3 {
  display: flex;
  justify-content: space-between;
}
.box-record-time {
  margin-top: 1.066667vw;
  font-size: 2.666667vw;
  color: #72797a;
  line-height: 2.666667vw;
  font-weight: 500;
}
.box-record-grade-wrap {
  flex: 1;
  display: flex;
  justify-content: flex-end;
}
.box-record-grade-inner {
  display: flex;
  justify-content: flex-end;
  row-gap: 2.133333vw;
  flex-wrap: wrap;
  column-gap: 1.066667vw;
  max-width: 49.066667vw;
}
.box-record-grade-item {
  display: flex;
  align-items: center;
  height: 4.266667vw;
  line-height: 4.266667vw;
}
.box-record-grade-icon {
  height: 4.266667vw;
  object-fit: contain;
  position: relative;
  z-index: 2;
}
.box-record-value {
  font-size: 2.666667vw; color: #ff4757; font-weight: 600;
  margin-left: -3.2vw;
  padding: 0 1.066667vw .533333vw 3.466667vw;
  font-family: var(--font-main);
  font-weight: 700;
  display: flex;
  align-items: flex-end;
  background: #f6f6fa;
  height: 100%;
  border-radius: .533333vw;
}

/* ========== 钻石图标样式 ========== */
.diamond-icon {
  display: inline-block;
  vertical-align: middle;
  object-fit: contain;
  margin-right: 0.533333vw;
}
/* 大号 - 余额大数字 */
.diamond-icon-lg {
  width: 5.866667vw;
  height: 5.866667vw;
}
/* 中号 - 列表/弹窗金额 */
.diamond-icon-md {
  width: 4.266667vw;
  height: 4.266667vw;
}
/* 小号 - 小字金额 */
.diamond-icon-sm {
  width: 3.2vw;
  height: 3.2vw;
}
/* 钻石图标在白色背景上的红色容器（替代RM文字位置） */
.ci-price-diamond {
  display: inline-flex;
  align-items: center;
  gap: 0.27vw;
  font-size: 2.666667vw;
  font-weight: 400;
  color: #333;
  font-family: var(--font-en);
}
.ci-price-diamond .diamond-icon {
  width: 2.666667vw;
  height: 2.666667vw;
  margin-right: 0;
}
/* ★ congrats-content 区域货币单位和数字加粗 */
.congrats-content .ci-price-diamond .currency-symbol,
.congrats-content .ci-price-diamond .currency-num{font-weight:600 !important;}
/* 余额显示区域钻石图标适配 */
#balanceAmount .diamond-icon-lg {
  margin-right: 1.066667vw;
}
/* 支付弹窗余额钻石适配 */
.pay-bal-currency .diamond-icon-lg {
  margin-right: 0.8vw;
}
/* 钻石图标在红色价格区域 */
.price .diamond-icon,
.dt-pc-value .diamond-icon,
.rt-val .diamond-icon,
.da-prize-value .diamond-icon {
  margin-right: 0.533333vw;
}
/* 快速出售弹窗钻石适配 */
.qs-currency-text.diamond {
  display: inline-flex;
  align-items: center;
  gap: 0;
}
.currency-text.diamond {
  display: inline-flex;
  align-items: center;
}
/* 支付总价钻石 */
.pay-diamond-total {
  display: inline-flex;
  align-items: center;
  color: #ff0000;
  font-family: var(--font-en);
  font-weight: 700;
}
.pay-diamond-total .diamond-icon {
  width: 3.466667vw;
  height: 3.466667vw;
}
/* 出售成功弹窗钻石 */
.ss-currency .diamond-icon-sm {
  margin-right: 0.8vw;
}
/* 抽奖记录钻石 */
.dr-footer-pay .diamond-icon,
.dr-footer-value .diamond-icon,
.box-record-value .diamond-icon {
  width: 2.666667vw;
  height: 2.666667vw;
  margin-right: 0.266667vw;
}
/* 抽赏记录页货币单位与数字粗细一致 */
#p-draw-record .dr-footer-pay .currency-symbol-sm,
#p-draw-record .dr-footer-value .currency-symbol-sm { font-weight: 600; }
/* 仓库列表钻石 */
.sgn-value .diamond-icon {
  width: 2.666667vw;
  height: 2.666667vw;
  margin-right: 0.266667vw;
}
/* 发货页钻石 */
.order-goods-price .diamond-icon {
  width: 2.666667vw;
  height: 2.666667vw;
  margin-right: 0.266667vw;
}
