/* ============ 基础 ============ */
* { margin: 0; padding: 0; box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
:root{
  --gold:#f6d97a; --gold-2:#e0a94b; --gold-deep:#b8860b;
  --red:#c81e1e; --red-2:#e63a2e; --red-deep:#8f1414;
  --ink:#333; --muted:#8a8a8a;
  --card-max: 480px;
}
html,body{ height:100%; }
body{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;
  color:var(--ink); background:#7a0f0f;
  -webkit-font-smoothing:antialiased;
}
img{ display:block; max-width:100%; }
a{ text-decoration:none; color:inherit; -webkit-tap-highlight-color:transparent; }
/* 按钮：去除原生控件外观，消除部分安卓 WebView（Oppo/Vivo）点击时出现的金色焦点框与“需点两次”问题 */
button{
  font-family:inherit; cursor:pointer; border:none;
  -webkit-appearance:none; appearance:none;
  -webkit-tap-highlight-color:transparent; touch-action:manipulation;
}
button:focus{ outline:none; }
input{ font-family:inherit; }
/* 可点击元素统一 touch-action，避免双击缩放延迟导致的“点不动” */
a, button, label, select, input[type="radio"], input[type="checkbox"]{ touch-action:manipulation; }

/* 全局居中容器：移动端优先，桌面端限制最大宽度模拟手机 */
.viewport{
  position:relative;
  width:100%;
  max-width:var(--card-max);
  min-height:100vh;
  min-height:100dvh;
  margin:0 auto;
  overflow:hidden;
  background-repeat:no-repeat;
  background-position:center top;
  background-size:cover;
  display:flex;
  flex-direction:column;
}

/* ============ 登录页 ============ */
/* 背景图由页面内联设置(带版本号)，见 index.php */
.login .top{
  padding:6vh 24px 0;
  text-align:center;
}
.emblems{
  display:flex; justify-content:center; align-items:center; gap:16px;
  margin-bottom:10px;
}
.emblems img{ width:58px; height:auto; filter:drop-shadow(0 2px 6px rgba(0,0,0,.3)); }

.login-title{
  width:78%; max-width:340px; margin:0 auto;
  filter:drop-shadow(0 4px 10px rgba(0,0,0,.35));
  mix-blend-mode:screen;
}
.subtitle{
  display:flex; align-items:center; justify-content:center; gap:12px;
  margin:6px auto 0;
  font-size:18px; font-weight:700; letter-spacing:4px;
  color:var(--gold);
  text-shadow:0 1px 6px rgba(0,0,0,.4);
}
.subtitle .star{ color:var(--gold); font-size:15px; }
.subtitle .line{ width:34px; height:1px; background:linear-gradient(90deg,transparent,var(--gold-2)); }

/* 表单卡片 */
.form-wrap{ flex:1; display:flex; align-items:flex-start; justify-content:center; padding:24px 20px 0; }
.card{
  width:100%;
}
.card.login-card{
  background:linear-gradient(180deg, rgba(180,22,22,.55), rgba(120,12,12,.62));
  border:1px solid rgba(246,217,122,.45);
  border-radius:18px;
  padding:22px 18px;
  backdrop-filter:blur(3px);
  box-shadow:0 10px 30px rgba(0,0,0,.28);
}

.field{
  display:flex; align-items:center; gap:10px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(246,217,122,.55);
  border-radius:12px;
  padding:0 14px; height:52px;
  margin-bottom:14px;
  overflow:hidden; min-width:0;
}
.field .ic{ width:20px; height:20px; flex:0 0 20px; color:var(--gold); }
.field input{
  flex:1 1 auto; min-width:0; height:100%; background:transparent; border:none; outline:none;
  font-size:15px; color:#fff;
}
.login-card .field input::placeholder{ color:rgba(255,255,255,.75); }
.field .captcha-code{
  flex:0 0 auto;
  font-family:"Courier New",monospace; font-weight:800; font-size:18px;
  letter-spacing:2px; color:var(--gold);
  background:rgba(0,0,0,.28); border-radius:6px; padding:2px 8px;
  cursor:pointer; user-select:none; white-space:nowrap;
}

.btn-primary{
  width:100%; height:52px; border-radius:12px;
  font-size:19px; font-weight:800; letter-spacing:6px;
  margin-top:4px;
}
.btn-gold{
  color:#7a3d00;
  background:linear-gradient(180deg,#ffe9a8,#e9b64d 55%,#cf9a2e);
  box-shadow:0 6px 16px rgba(207,154,46,.45), inset 0 1px 0 rgba(255,255,255,.6);
}
.btn-gold:active{ transform:translateY(1px); }

.links{
  display:flex; align-items:center; justify-content:center; gap:16px;
  margin-top:16px; font-size:14px; color:#ffe9c2;
}
.links .sep{ width:1px; height:14px; background:rgba(255,233,194,.5); }
.links a{ font-weight:600; }
.links a.hl{ color:var(--gold); }

.agree{
  display:flex; align-items:center; gap:8px;
  margin-top:14px; font-size:13px; color:#ffe1c0;
}
.agree input{ width:15px; height:15px; accent-color:var(--gold-2); }
.agree a{ color:var(--gold); }

.footer{
  text-align:center; color:rgba(255,255,255,.7); font-size:12px;
  padding:14px 0 16px;
}

/* ============ 注册页 ============ */
/* 背景图由页面内联设置(带版本号)，见 register.php */
/* 顶部标题/徽章已烘焙在背景图中，这里留出空间，中部放卡片 */
.register .reg-space{ height:28vh; flex:0 0 auto; }
.register .form-wrap{ align-items:flex-start; padding:0 20px; }

.card.reg-card{
  width:100%; max-width:310px; margin:0 auto;
  background:linear-gradient(180deg,#fff8f2,#fdeee2);
  border-radius:16px;
  padding:14px 13px 16px;
  box-shadow:0 12px 34px rgba(90,10,10,.35);
}
/* 注册卡片整体缩小：更矮的输入框、更小的间距与字号 */
.reg-card .field{ height:42px; margin-bottom:9px; border-radius:10px; padding:0 12px; }
.reg-card .field input{ font-size:13.5px; }
.reg-card .field .ic{ width:18px; height:18px; flex:0 0 18px; }
.reg-card .btn-primary{ height:42px; font-size:16px; }
.tabs{
  display:flex; align-items:baseline; justify-content:space-between;
  padding:0 4px 13px;
}
.tabs .tab{
  font-size:14px; color:#b98; font-weight:600; position:relative; padding-bottom:5px;
}
.tabs .tab.active{
  font-size:17px; color:var(--red); font-weight:800;
}
.tabs .tab.active::after{
  content:""; position:absolute; left:50%; bottom:0; transform:translateX(-50%);
  width:60%; height:3px; border-radius:2px; background:var(--red);
}

.reg-card .field{
  background:#fff;
  border:1px solid #ecd9c9;
  box-shadow:inset 0 1px 3px rgba(0,0,0,.03);
}
.reg-card .field .ic{ color:#c9a06a; }
.reg-card .field input{ color:#333; }
.reg-card .field input::placeholder{ color:#b6b0aa; }
.reg-card .field .captcha-code{ color:var(--red); background:#fbeaea; }

.btn-red{
  color:#fff;
  background:linear-gradient(180deg,#e5352b,#c81e1e);
  box-shadow:0 6px 16px rgba(200,30,30,.4);
  border-radius:26px;
  letter-spacing:8px;
}
.btn-red:active{ transform:translateY(1px); }

.reg-card .links{ color:#7a5; color:#8a7f76; margin-top:14px; font-size:13px; }
.reg-card .links .sep{ background:#d9c9bb; }
.reg-card .links a.hl{ color:var(--red); }

.divider-other{
  display:flex; align-items:center; gap:12px;
  margin:15px 6px 11px; color:#b0a79f; font-size:12px;
}
.divider-other::before,.divider-other::after{
  content:""; flex:1; height:1px; background:#e7dbd0;
}
.other-actions{
  display:flex; align-items:center; justify-content:space-around;
}
.other-actions .oa{
  display:flex; align-items:center; gap:8px; color:#6b6259; font-size:14px; font-weight:600;
}
.other-actions .oa .ic{ width:20px; height:20px; color:var(--red); }
.other-actions .vsep{ width:1px; height:22px; background:#e7dbd0; }

/* ============ 提示 toast ============ */
.toast{
  position:fixed; left:50%; top:50%; transform:translate(-50%,-50%) scale(.96);
  background:rgba(0,0,0,.82); color:#fff; font-size:14px;
  padding:12px 20px; border-radius:10px; z-index:9999;
  opacity:0; pointer-events:none; transition:opacity .2s, transform .2s;
  max-width:80%; text-align:center;
}
.toast.show{ opacity:1; transform:translate(-50%,-50%) scale(1); }

/* ============ 团队页 dashboard ============ */
.dash{ background:#f5f6f8; min-height:100vh; }
.dash-head{
  background:linear-gradient(135deg,#c81e1e,#e63a2e);
  color:#fff; padding:22px 18px 26px;
}
.dash-head .hi{ font-size:14px; opacity:.9; }
.dash-head .code{ font-size:22px; font-weight:800; margin-top:4px; letter-spacing:2px; }
.dash-head .logout{ float:right; font-size:13px; background:rgba(255,255,255,.2); padding:6px 12px; border-radius:14px; color:#fff; }
.stats{ display:flex; gap:10px; padding:16px; margin-top:-18px; }
.stat{
  flex:1; background:#fff; border-radius:14px; padding:16px 8px; text-align:center;
  box-shadow:0 4px 14px rgba(0,0,0,.06);
}
.stat .n{ font-size:26px; font-weight:800; color:var(--red); }
.stat .t{ font-size:13px; color:var(--muted); margin-top:4px; }
.level-block{ padding:0 16px 8px; }
.level-title{ font-size:15px; font-weight:700; margin:14px 4px 8px; color:#333; }
.level-title span{ color:var(--muted); font-weight:400; font-size:13px; }
.member{
  display:flex; align-items:center; justify-content:space-between;
  background:#fff; border-radius:12px; padding:14px; margin-bottom:8px;
  box-shadow:0 2px 8px rgba(0,0,0,.04);
}
.member .phone{ font-weight:600; }
.member .meta{ font-size:12px; color:var(--muted); margin-top:2px; }
.member .badge{ font-size:12px; color:var(--red); background:#fdeaea; padding:3px 10px; border-radius:10px; }
.empty{ text-align:center; color:var(--muted); font-size:13px; padding:16px; }

/* ============ 首页 ============ */
.home-body{ background:#7a0f0f; }
.viewport.home{
  overflow:visible;
  padding-bottom:84px;               /* 给固定底部导航留白 */
}
/* 右上角快捷入口：在线客服 / 每日签到 */
.home-quick{
  position:absolute; top:10px; right:10px; z-index:20;
  display:flex; flex-direction:column; gap:10px; align-items:center;
}
.home-quick .hq-item{
  display:flex; flex-direction:column; align-items:center; gap:3px;
  color:#ffe9b3; text-decoration:none;
}
.home-quick .hq-ic{
  width:34px; height:34px; display:flex; align-items:center; justify-content:center;
  color:#7a1414; border-radius:50%;
  background:linear-gradient(180deg,#ffe9a8,#f3c463 60%,#e0a63c);
  border:1.5px solid rgba(255,255,255,.75);
  box-shadow:0 2px 6px rgba(0,0,0,.28), inset 0 1px 2px rgba(255,255,255,.6);
}
.home-quick .hq-ic svg{ width:20px; height:20px; }
.home-quick .hq-tx{
  font-size:10px; line-height:1; font-weight:600; letter-spacing:.3px;
  text-shadow:0 1px 2px rgba(90,0,0,.55);
}

/* 顶部“全国两会/国民经济”标题与天安门已烘焙在背景图中 */
.home-header-space{ height:min(56vw, 272px); flex:0 0 auto; }
.home-content{ padding:0 16px; display:flex; flex-direction:column; gap:14px; }

.gold-frame{
  border:1.5px solid rgba(246,217,122,.7);
  background:linear-gradient(180deg, rgba(200,32,32,.9), rgba(150,16,16,.92));
  box-shadow:0 4px 14px rgba(0,0,0,.25), inset 0 0 12px rgba(246,217,122,.12);
}

/* 视频入口（真实播放器，首帧封面）*/
.video-card{
  border:1.5px solid rgba(246,217,122,.7);
  background:#000;
  box-shadow:0 4px 16px rgba(0,0,0,.28), inset 0 0 14px rgba(246,217,122,.14);
  border-radius:16px;
  overflow:hidden;
  aspect-ratio:16 / 9;
}
.video-card .home-video{
  width:100%; height:100%; display:block;
  object-fit:cover; background:#000; border-radius:15px;
}

/* 四宫格 */
.grid4{ display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.g-item{
  border:1.4px solid rgba(246,217,122,.65);
  background:linear-gradient(180deg, rgba(205,36,32,.92), rgba(150,16,16,.92));
  border-radius:12px;
  padding:12px 4px 10px;
  display:flex; flex-direction:column; align-items:center; gap:8px;
  box-shadow:inset 0 0 10px rgba(246,217,122,.1);
}
.g-item .g-ic{ width:36px; height:36px; }
.g-item .g-ic img{ width:100%; height:100%; object-fit:contain; }
.g-item .g-label{ font-size:13px; color:var(--gold); font-weight:600; }

/* 直播会议 */
.live-card{
  border:1.5px solid rgba(246,217,122,.75);
  background:linear-gradient(180deg, rgba(210,40,36,.95), rgba(150,16,16,.95));
  box-shadow:0 4px 16px rgba(0,0,0,.28), inset 0 0 14px rgba(246,217,122,.16);
  border-radius:14px; height:74px;
  display:flex; align-items:center; justify-content:center;
  font-size:30px; font-weight:800; letter-spacing:8px; color:#fff;
  text-shadow:0 2px 8px rgba(0,0,0,.4);
}

/* 政策解读横幅 */
.policy-banner{
  display:block; border:1.5px solid rgba(246,217,122,.6);
  border-radius:14px; aspect-ratio:1015 / 430;
  background-size:cover; background-position:center;
  overflow:hidden;
}
.policy-banner .pb-title{
  font-size:26px; font-weight:800; letter-spacing:2px;
  color:#fff; text-shadow:0 2px 8px rgba(0,0,0,.5);
}
.policy-banner .pb-sub{ display:flex; align-items:center; gap:10px; color:var(--gold); font-size:15px; letter-spacing:4px; }
.policy-banner .pb-sub i{ width:36px; height:1px; background:linear-gradient(90deg,transparent,var(--gold)); }

/* 两会咨询 */
.news-card{
  border:1.4px solid rgba(246,217,122,.55);
  background:linear-gradient(180deg, rgba(170,20,20,.9), rgba(130,12,12,.92));
  border-radius:14px; padding:14px 14px 8px;
  box-shadow:inset 0 0 12px rgba(246,217,122,.1);
}
.news-head{ font-size:17px; font-weight:800; color:var(--gold); margin-bottom:10px; }
.news-item{
  display:flex; align-items:center; gap:12px;
  padding:11px 0; border-bottom:1px solid rgba(246,217,122,.18);
}
.news-item:last-child{ border-bottom:none; }
.news-no{
  flex:0 0 26px; width:26px; height:26px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:13px; font-weight:800; color:#7a3d00;
  background:linear-gradient(180deg,#ffe9a8,#e0a94b);
  box-shadow:0 1px 3px rgba(0,0,0,.3);
}
.news-title{
  flex:1; color:#ffe9c2; font-size:14px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.news-arrow{ width:16px; height:16px; color:rgba(246,217,122,.7); }
.news-arrow svg{ width:100%; height:100%; }
.news-empty{ color:rgba(255,255,255,.6); font-size:13px; text-align:center; padding:16px; }

/* ============ 底部导航（公共组件，1:1复刻）============ */
.bottom-nav{
  position:fixed; left:50%; bottom:8px; transform:translateX(-50%);
  width:calc(100% - 20px); max-width:calc(var(--card-max) - 20px);
  display:flex; align-items:stretch;
  background:linear-gradient(180deg,#d92c22,#a01414 60%,#8a1010);
  border:1.5px solid rgba(246,217,122,.7);
  border-radius:16px;
  box-shadow:0 6px 18px rgba(0,0,0,.4), inset 0 0 16px rgba(246,217,122,.14);
  padding:8px 5px calc(8px + env(safe-area-inset-bottom));
  z-index:100;
}
.nav-item{
  position:relative; flex:1;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px;
  color:#f6d9a0; font-size:11px; padding:4px 0; border-radius:12px;
}
/* 单元格之间的金色分隔线 */
.nav-item + .nav-item::before{
  content:""; position:absolute; left:0; top:22%; height:56%; width:1px;
  background:linear-gradient(180deg,transparent,rgba(246,217,122,.45),transparent);
}
.nav-item .ni-ic{ width:26px; height:26px; }
.nav-item .ni-ic img{ width:100%; height:100%; object-fit:contain; }
/* 选中(首页)高亮为凸起面板 */
.nav-item.active{
  color:var(--gold);
  background:linear-gradient(180deg,#ff6a4a,#d42a22);
  box-shadow:inset 0 0 12px rgba(255,224,160,.5), 0 2px 6px rgba(0,0,0,.3);
}
.nav-item.active::before, .nav-item.active + .nav-item::before{ display:none; }

/* ============ 咨询详情页 ============ */
.news-body{ background:#f4f5f7; }
.viewport.news-detail{ background:#f4f5f7; overflow:visible; }
.top-bar{
  position:sticky; top:0; z-index:50;
  display:flex; align-items:center; height:50px; padding:0 8px;
  background:linear-gradient(135deg,#c81e1e,#e63a2e); color:#fff;
  box-shadow:0 2px 8px rgba(0,0,0,.15);
}
.top-bar .tb-back{ width:38px; height:38px; display:flex; align-items:center; justify-content:center; }
.top-bar .tb-back svg{ width:24px; height:24px; }
.top-bar .tb-title{ flex:1; text-align:center; font-size:17px; font-weight:700; }
.top-bar .tb-right{ width:38px; }
.news-main{ padding:18px 16px 40px; }
.detail-title{ font-size:20px; font-weight:800; color:#222; line-height:1.4; }
.detail-meta{ display:flex; gap:14px; color:#999; font-size:12px; margin:10px 0 14px; }
.detail-summary{
  background:#fff5ee; border-left:3px solid var(--red);
  color:#8a5a3a; font-size:14px; line-height:1.6; padding:10px 12px; border-radius:6px; margin-bottom:16px;
}
.detail-content{ color:#333; font-size:15px; line-height:1.9; }
.detail-content p{ margin-bottom:14px; text-indent:2em; }
.news-404{ text-align:center; color:#888; padding:60px 20px; }
.btn-back-home{ display:inline-block; margin-top:16px; padding:10px 24px; border-radius:22px; background:var(--red); color:#fff; }

/* ============ 我的 页面（使用 Figma 原始卡片/面板图，1:1）============ */
.mine-body{ background:#6e0d0d; }
.viewport.mine{
  overflow:visible; padding-bottom:88px;
  background-size:100% auto;         /* 宽度铺满，高度按比例，顶部横幅完整显示不裁切 */
  background-position:top center;
}

/* 顶部用户栏（叠加在横幅上方）*/
.mine-top{
  display:flex; align-items:flex-start; justify-content:space-between;
  padding:14px 14px 0; gap:8px;
}
.mt-user{ display:flex; align-items:center; gap:9px; }
.mt-emblem{ width:46px; height:46px; object-fit:contain; filter:drop-shadow(0 1px 3px rgba(0,0,0,.4)); }
.mt-info{ color:#fff; }
.mt-name{ font-size:16px; font-weight:800; text-shadow:0 1px 3px rgba(0,0,0,.4); }
.mt-code{ font-size:11px; color:#ffe9c2; margin-top:3px; display:flex; align-items:center; gap:5px; }
.mt-code .tag{ background:rgba(0,0,0,.28); border:1px solid rgba(246,217,122,.55); color:var(--gold); border-radius:8px; padding:1px 6px; font-size:10px; }
.mt-actions{ display:flex; flex-direction:column; gap:7px; align-items:flex-end; }
.mt-btn{
  display:inline-flex; align-items:center; justify-content:center;
  font-size:12px; padding:6px 18px; white-space:nowrap;
  background-size:100% 100%; background-repeat:no-repeat;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));
}
.mt-btn.signin{ background-image:url('../img/mine/btn-signin.png'); color:#fff; font-weight:700; }
.mt-btn.copy{ background-image:url('../img/mine/btn-copy.png'); color:#7a3d00; font-weight:700; }

.mine-banner-space{ height:min(52vw, 260px); }
.mine-content{ padding:0 14px; display:flex; flex-direction:column; gap:13px; }

/* 权益升级徽章 */
.upgrade-badge{ display:block; height:34px; width:auto; margin:0 auto; }

/* 余额卡片：使用原始卡片底图 + 真实文字/图标绝对定位 */
.balance-row{ display:grid; grid-template-columns:1fr 1fr; gap:11px; }
.bal-card{
  position:relative; aspect-ratio:601 / 309; container-type:inline-size;
  background:url('../img/mine/bal-card-bg.png') center/100% 100% no-repeat;
  filter:drop-shadow(0 4px 10px rgba(0,0,0,.3));
}
.bal-card .bc-num{
  position:absolute; font-weight:800; color:#ffe08a; line-height:1;
  text-shadow:0 2px 4px rgba(0,0,0,.45); white-space:nowrap;
}
.bal-card .bc-num .unit{ font-size:.55em; margin-left:1px; }
.bal-card .bc-label{ position:absolute; color:#fff; white-space:nowrap; text-shadow:0 1px 2px rgba(0,0,0,.4); }
.bal-card .bc-btn{
  position:absolute; display:flex; align-items:center; justify-content:center;
  color:#7a3d00; font-weight:800;
  background-size:100% 100%; background-repeat:no-repeat;
}
/* 左卡：钱包在左，文字在右 */
.bal-card.left .bc-wallet{ position:absolute; left:3%; top:13%; height:72%; width:auto; }
.bal-card.left .bc-num{ left:39%; top:12%; font-size:13cqw; }
.bal-card.left .bc-label{ left:40%; top:46%; font-size:6.6cqw; }
.bal-card.left .bc-btn{ left:39%; top:64%; width:50%; height:27%; font-size:7cqw; background-image:url('../img/mine/btn-withdraw.png'); }
/* 右卡：文字在左，图表在右 */
.bal-card.right .bc-num{ left:6%; top:12%; font-size:10.5cqw; }
.bal-card.right .bc-label{ left:6%; top:46%; font-size:5.7cqw; }
.bal-card.right .bc-btn{ left:6%; top:64%; width:50%; height:27%; font-size:6.6cqw; background-image:url('../img/mine/btn-withdraw2.png'); }
.bal-card.right .bc-chart{ position:absolute; right:2%; top:22%; height:72%; width:auto; }

/* 说明文字 */
.mine-desc{
  background:url('../img/mine/desc-panel.png') center/100% 100% no-repeat;
  color:#ffd9c2; font-size:12px; line-height:1.7; padding:13px 16px; border-radius:12px;
}

/* ============ 八个钱包卡片（2×4，Figma Group 29）============ */
.wallets-grid{ display:grid; grid-template-columns:1fr 1fr; gap:11px; }
/* 邀请好友横幅 */
.mine-fl-banner{ display:block; margin:12px 0 2px; border-radius:12px; overflow:hidden; }
.mine-fl-banner img{ display:block; width:100%; height:auto; }
.mine-fl-banner:active{ opacity:.85; }
.wallet-card{
  position:relative; container-type:inline-size;
  display:grid; grid-template-columns:38% 62%; align-items:center;
  padding:3cqw 3cqw;
  border-radius:5cqw;
  background:radial-gradient(120% 130% at 50% 22%, #cd2a20 0%, #a9150f 52%, #7c0805 100%);
  border:0.9cqw solid #e9b84e;
  box-shadow:0 3px 10px rgba(80,6,4,.4);
}
/* 内层金色细线边框 */
.wallet-card::before{
  content:""; position:absolute; inset:1.6cqw; border-radius:3.2cqw;
  border:0.4cqw solid rgba(240,200,110,.62); pointer-events:none;
}
.wallet-card > *{ position:relative; z-index:1; }

.wc-icon{ display:flex; align-items:center; justify-content:center; }
.wc-icon img{
  width:100%; max-height:33cqw; object-fit:contain;
  filter:drop-shadow(0 1.4cqw 1.6cqw rgba(0,0,0,.4));
}
.wc-body{
  min-width:0; display:flex; flex-direction:column;
  align-items:center; justify-content:center; text-align:center; gap:1cqw;
  padding:0 1cqw;
}
.wc-num{
  font-weight:900; line-height:1; white-space:nowrap; letter-spacing:0.2cqw;
  font-size:12cqw;
  background:linear-gradient(180deg,#fff6d8 0%,#f8d783 48%,#e6ab3e 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  filter:drop-shadow(0 0.4cqw 0.4cqw rgba(60,4,2,.4));
}
.wc-num .unit{ font-size:.42em; font-weight:800; margin-left:0.6cqw; vertical-align:0.9em; }
.wc-label{
  font-size:8cqw; font-weight:800; color:#fff; white-space:nowrap;
  text-shadow:0 0.3cqw 0.6cqw rgba(60,4,2,.5); letter-spacing:0.2cqw;
}
.wc-btns{ margin-top:2.4cqw; display:flex; flex-wrap:nowrap; gap:2.6cqw; }
.wc-btn{
  padding:2.4cqw 5cqw; border-radius:100px; white-space:nowrap; flex:0 0 auto;
  display:flex; align-items:center; justify-content:center;
  font-size:7cqw; font-weight:800; letter-spacing:0.4cqw; line-height:1;
}
.wc-btn.detail{ color:#8a2a10; background:linear-gradient(180deg,#fdeecb,#e9cf90); box-shadow:0 1cqw 1.4cqw rgba(60,4,2,.28); }
.wc-btn.withdraw{ color:#fff3d6; background:linear-gradient(180deg,#ec4331,#c0160f); box-shadow:0 1cqw 1.4cqw rgba(60,4,2,.32); }
.wc-btn:active{ transform:translateY(1px); }

/* 权益六宫格：使用原始面板底图（底部带分隔条）*/
.rights-card{
  position:relative; aspect-ratio:1277 / 415; container-type:inline-size;
  background:url('../img/mine/rights-panel.png') center/100% 100% no-repeat;
}
.rights-grid{
  position:absolute; left:2%; right:2%; top:7%; height:62%;
  display:grid; grid-template-columns:repeat(6,1fr); gap:1%;
}
.right-item{ display:flex; flex-direction:column; align-items:center; justify-content:flex-start; gap:6%; }
.right-item img{ width:auto; height:56%; max-width:88%; object-fit:contain; }
.ri-label{ font-size:2.9cqw; line-height:1.25; color:var(--gold); text-align:center; }
.rights-strip{
  position:absolute; left:0; right:0; bottom:2.5%; height:20%;
  display:flex; align-items:center; justify-content:center;
  color:var(--gold); font-size:3.5cqw; letter-spacing:1px;
}

/* 四个快捷入口 */
.quick-card{
  display:grid; grid-template-columns:repeat(4,1fr); gap:6px;
  background:url('../img/mine/quick-panel.png') center/100% 100% no-repeat;
  padding:15px 8px;
}
.quick-item{ display:flex; flex-direction:column; align-items:center; gap:8px; color:var(--gold); font-size:12px; }
.quick-item img{ width:42px; height:42px; object-fit:contain; }

/* 设置列表 */
.setting-card{
  background:url('../img/mine/settings-panel.png') center/100% 100% no-repeat;
  padding:6px 16px;
}
.setting-item{
  display:flex; align-items:center; gap:12px; padding:13px 2px;
  border-bottom:1px solid rgba(246,217,122,.16); color:#fff;
}
.setting-item:last-child{ border-bottom:none; }
.setting-item .si-ic{ width:24px; height:24px; object-fit:contain; }
.setting-item .si-label{ flex:1; font-size:15px; }
.setting-item .si-arrow{ width:16px; height:16px; color:rgba(246,217,122,.7); }
.setting-item .si-arrow svg{ width:100%; height:100%; }

/* 底部标语 */
.mine-footer{ display:flex; align-items:center; justify-content:center; gap:12px; padding:10px 0 4px; }
.mine-footer .mf-line{ width:40px; height:1px; background:linear-gradient(90deg,transparent,var(--gold)); }
.mine-footer .mf-line:last-child{ background:linear-gradient(90deg,var(--gold),transparent); }
.mine-footer .mf-text{ color:var(--gold); font-size:13px; letter-spacing:2px; font-weight:600; }

/* ============ 通用表单页（修改密码等，顶部导航 + 无底导）============ */
.form-page-body{ background:#f4f5f7; }
.viewport.form-page{ background:#f4f5f7; overflow:visible; min-height:100vh; }
.form-main{ padding:16px; display:flex; flex-direction:column; gap:16px; }

/* 温馨提示卡片 */
.tips-card{
  background:linear-gradient(180deg,#fff7ec,#fdefdc);
  border:1px solid #f0d3a0; border-radius:12px; padding:14px 16px;
  box-shadow:0 2px 8px rgba(200,140,30,.08);
}
.tips-head{ display:flex; align-items:center; gap:7px; color:#c8811e; font-weight:700; font-size:15px; margin-bottom:9px; }
.tips-head svg{ width:18px; height:18px; color:#e0a020; }
.tips-list{ margin:0; padding:0; list-style:none; }
.tips-list li{ position:relative; padding-left:14px; color:#96745a; font-size:12.5px; line-height:1.75; }
.tips-list li::before{ content:""; position:absolute; left:2px; top:10px; width:4px; height:4px; border-radius:50%; background:#e0a020; }

/* 表单卡片 */
.form-card{
  background:#fff; border-radius:14px; padding:18px 16px 20px;
  box-shadow:0 2px 10px rgba(0,0,0,.05);
  display:flex; flex-direction:column; gap:14px;
}
.form-card .btn-primary{ margin-top:4px; }
/* 表单页在浅色卡片上：输入文字/图标改深色，避免继承登录页的白色文字（看不见）*/
.form-card .field{ background:#faf7f2; border:1px solid #ecd9c9; }
.form-card .field .ic{ color:#c9a06a; }
.form-card .field input{ color:#333; }
.form-card .field input::placeholder{ color:#b6b0aa; }
.form-card .field-select{ color:#333; }

/* 下拉选择框（沿用 .field 外观）*/
.field-select{
  flex:1; border:none; outline:none; background:transparent;
  font-size:15px; color:#333; font-family:inherit; height:100%;
  appearance:none; -webkit-appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2'><path d='M6 9l6 6 6-6'/></svg>");
  background-repeat:no-repeat; background-position:right 2px center; padding-right:20px;
}
.field-select:invalid{ color:#9aa0a6; }

/* ============ 银行卡列表 ============ */
.bankcard-list{ display:flex; flex-direction:column; gap:12px; }
.bankcard-empty{
  background:#fff; border-radius:14px; padding:34px 16px; text-align:center; color:#aab;
  box-shadow:0 2px 10px rgba(0,0,0,.05);
}
.bankcard-empty svg{ width:44px; height:44px; color:#d6dae0; margin-bottom:8px; }
.bankcard-empty p{ font-size:13px; }
.bankcard{
  position:relative; border-radius:14px; padding:16px 16px 13px; color:#fff;
  background:linear-gradient(135deg,#c81e1e,#e5533a);
  box-shadow:0 4px 12px rgba(200,30,30,.28);
}
.bankcard.is-default{ background:linear-gradient(135deg,#b8161f,#d63b2e); }
.bc-top{ display:flex; align-items:center; justify-content:space-between; }
.bc-bank{ font-size:16px; font-weight:700; letter-spacing:1px; }
.bc-badge{ font-size:11px; background:var(--gold,#f6d97a); color:#7a3d00; font-weight:700; padding:2px 9px; border-radius:10px; }
.bc-no{ font-size:19px; letter-spacing:2px; margin:14px 0 12px; font-family:"Courier New",monospace; }
.bc-bottom{ display:flex; align-items:center; justify-content:space-between; }
.bc-holder{ font-size:13px; opacity:.9; }
.bc-actions{ display:flex; align-items:center; gap:8px; }
.bc-act{
  font-size:12px; color:#fff; border:1px solid rgba(255,255,255,.7);
  border-radius:12px; padding:3px 12px; background:rgba(255,255,255,.12);
}
.bc-act.unbind{ border-color:rgba(255,220,220,.7); }

/* ============ 资金明细 ============ */
.fd-stat-card{
  border-radius:14px; padding:18px 18px 16px; color:#fff;
  background:linear-gradient(135deg,#c81e1e,#e5533a);
  box-shadow:0 4px 14px rgba(200,30,30,.28);
}
.fd-stat[hidden]{ display:none; }
.fd-stat-label{ font-size:13px; opacity:.9; }
.fd-stat-balance{ font-size:32px; font-weight:800; margin:6px 0 14px; line-height:1; }
.fd-stat-balance .unit{ font-size:15px; margin-left:3px; font-weight:600; }
.fd-stat-sub{ display:flex; align-items:center; background:rgba(0,0,0,.14); border-radius:10px; padding:10px 0; }
.fd-sub-item{ flex:1; display:flex; flex-direction:column; align-items:center; gap:3px; }
.fd-sub-item .v{ font-size:16px; font-weight:700; }
.fd-sub-item .t{ font-size:11px; opacity:.85; }
.fd-sub-item .v.income{ color:#ffe08a; }
.fd-sub-item .v.expense{ color:#ffd0c4; }
.fd-sub-sep{ width:1px; align-self:stretch; background:rgba(255,255,255,.25); margin:2px 0; }

.fd-tabs{ display:flex; background:#fff; border-radius:12px; padding:5px; box-shadow:0 2px 8px rgba(0,0,0,.05); }
.fd-tab{
  flex:1; border:none; background:transparent; font-family:inherit;
  font-size:14px; color:#888; padding:9px 4px; border-radius:9px; cursor:pointer; font-weight:600;
}
.fd-tab.active{ color:#fff; background:linear-gradient(135deg,#c81e1e,#e5533a); box-shadow:0 2px 6px rgba(200,30,30,.3); }

.fd-list[hidden]{ display:none; }
.fd-list{ background:#fff; border-radius:14px; padding:2px 16px; box-shadow:0 2px 8px rgba(0,0,0,.05); }
.fd-item{ display:flex; align-items:center; justify-content:space-between; padding:14px 0; border-bottom:1px solid #f0f2f4; }
.fd-item:last-child{ border-bottom:none; }
.fd-title{ font-size:15px; color:#333; font-weight:600; }
.fd-time{ font-size:12px; color:#9aa0a6; margin-top:4px; }
.fd-item-r{ text-align:right; }
.fd-amount{ font-size:16px; font-weight:700; }
.fd-amount.income{ color:#1aa05a; }
.fd-amount.expense{ color:#e5392b; }
.fd-balance{ font-size:12px; color:#9aa0a6; margin-top:4px; }
.fd-empty{ text-align:center; color:#aab; padding:40px 16px; }
.fd-empty svg{ width:46px; height:46px; color:#d6dae0; margin-bottom:10px; }
.fd-empty p{ font-size:13px; }

/* ============ 加入两会（1:1 还原 Figma「Frame」768×1334：丝绸背景 + 金边奶油卡）============ */
.join-body-bg{ background:#c1201a; }
.viewport.join-view{
  position:relative; overflow:visible; max-width:480px; margin:0 auto;
  min-height:100vh; padding-bottom:88px;
  background:url('../img/join/v2/bg.png') top center / 100% auto no-repeat, #c1201a;
}

/* 右上：政务积分 + 在线客服（悬浮于顶部丝绸带）*/
.join-topright{
  position:absolute; top:14px; right:14px; z-index:5;
  display:flex; flex-direction:column; align-items:flex-end; gap:8px;
}
.join-score{
  font-size:12px; color:#8f1414; font-weight:600;
  background:linear-gradient(180deg,#fff7e6,#fbe6b5);
  border:1px solid var(--gold-2); border-radius:14px; padding:4px 12px;
  box-shadow:0 1px 4px rgba(0,0,0,.15);
}
.join-score b{ color:#c81e1e; }
.join-kefu{
  display:inline-flex; align-items:center; gap:5px; text-decoration:none;
  font-size:12px; color:#8f1414; font-weight:600;
  background:linear-gradient(180deg,#fff7e6,#fbe6b5);
  border:1px solid var(--gold-2); border-radius:14px; padding:4px 12px;
  box-shadow:0 1px 4px rgba(0,0,0,.15);
}
.join-kefu svg{ width:15px; height:15px; }
.join-kefu:active{ filter:brightness(.96); }

.join-main{ position:relative; margin-top:92px; padding:0 24px; }

/* 表单卡片（奶油底 + 金色渐变描边，1:1 Figma「Frame」）*/
.join-card{
  position:relative;
  background:#fdf6ea; border-radius:26px; padding:30px 18px 24px;
  box-shadow:0 10px 30px rgba(120,10,10,.30);
  border:3px solid transparent;
  background-image:linear-gradient(#fdf6ea,#fdf6ea),linear-gradient(180deg,#f6d98f,#dfa441);
  background-origin:border-box; background-clip:padding-box,border-box;
}
/* 顶部金色麦穗横幅标签 */
.join-banner{
  position:absolute; top:-2px; left:50%; transform:translateX(-50%);
  display:flex; align-items:center; justify-content:center; gap:8px;
  min-width:58%; height:46px; padding:0 22px;
  background:linear-gradient(180deg,#ffe9a8,#e6a63c);
  border-radius:0 0 22px 22px;
  box-shadow:0 3px 8px rgba(180,120,20,.35), inset 0 1px 0 rgba(255,255,255,.6);
}
.join-banner span{ flex:0 0 auto; white-space:nowrap; font-size:19px; font-weight:800; color:var(--red); letter-spacing:2px; text-shadow:0 1px 1px rgba(255,255,255,.4); }
.join-banner .wheat{ width:22px; height:26px; opacity:.95; }

/* 表单行（浅底 + 标签/输入间竖分隔线，1:1 Figma）*/
.jf-row{
  display:flex; align-items:center;
  border:1px solid #efe7d6; border-radius:12px;
  padding:0; height:56px; margin-bottom:12px;
  background:#fffdf9; overflow:hidden;
}
.jf-label{
  flex:0 0 108px; display:flex; align-items:center; gap:7px;
  padding-left:16px; padding-right:12px; height:100%;
  font-size:15px; color:var(--red); font-weight:700; white-space:nowrap;
  border-right:1px solid #ece3d1;
}
.jf-label.jf-label-sm{ font-size:13px; letter-spacing:-.3px; }
.jf-label svg{ width:20px; height:20px; flex:0 0 20px; color:var(--red); }
.jf-label img{ height:22px; width:auto; flex:0 0 auto; object-fit:contain; }
.jf-row input,.jf-row .jf-select,.jf-row textarea{
  flex:1; min-width:0; height:100%; border:none; outline:none; background:transparent;
  font-size:15px; color:#333; font-family:inherit; padding:0 14px;
}
.jf-row input::placeholder,.jf-row textarea::placeholder{ color:#c7ad9f; }
.jf-select{ appearance:none; -webkit-appearance:none; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23bbb' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 12px center; background-size:18px; padding-right:34px; }
.jf-radios{ flex:1; display:flex; gap:44px; align-items:center; padding-left:20px; }
.jf-radio{ position:relative; display:flex; align-items:center; gap:8px; font-size:15px; color:#333; cursor:pointer; -webkit-tap-highlight-color:transparent; }
/* 视觉隐藏但保留在 DOM 中：避免 display:none 在 App WebView 里导致点击 label 无法勾选 */
.jf-radio input{ position:absolute; width:1px; height:1px; opacity:0; margin:0; pointer-events:none; }
.jf-radio i{ width:17px; height:17px; border:1.5px solid #c9c2b4; border-radius:50%; display:inline-block; position:relative; flex:0 0 auto; }
.jf-radio input:checked + i{ border-color:var(--red); }
.jf-radio input:checked + i::after{ content:""; position:absolute; inset:3px; border-radius:50%; background:var(--red); }
.jf-row-area{ height:auto; align-items:stretch; }
.jf-row-area .jf-label{ padding-top:14px; align-items:flex-start; }
.jf-row textarea{ height:74px; resize:none; line-height:1.5; padding-top:14px; }

.join-submit{
  width:100%; height:56px; margin-top:14px; border:none; cursor:pointer;
  font-size:21px; font-weight:800; letter-spacing:6px; color:#fff;
  border-radius:30px; font-family:inherit;
  background:linear-gradient(180deg,#ef4a2f,#c4160f);
  border:2.5px solid #f0c974;
  box-shadow:0 6px 16px rgba(196,22,15,.42), inset 0 0 0 2px rgba(255,225,150,.55), inset 0 2px 0 rgba(255,255,255,.28);
  text-shadow:0 1px 2px rgba(120,6,6,.45);
}
.join-submit:active{ transform:translateY(1px); filter:brightness(.97); }
/* 优先判定：红底金边星章 */
.join-priority{
  display:flex; align-items:center; justify-content:center; gap:7px;
  width:fit-content; margin:16px auto 0; padding:6px 20px 6px 8px;
  font-size:15px; font-weight:800; letter-spacing:1px; color:#fff;
  border:2px solid #f0c974; border-radius:20px;
  background:linear-gradient(180deg,#ef4a2f,#c4160f);
  box-shadow:0 3px 10px rgba(196,22,15,.35), inset 0 1px 0 rgba(255,255,255,.25);
}
.join-priority .jp-star{
  flex:0 0 auto; width:22px; height:22px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:radial-gradient(circle at 50% 35%,#fff2cf,#f0c256);
  box-shadow:inset 0 0 0 1px rgba(180,120,20,.5);
}
.join-priority .jp-star svg{ width:14px; height:14px; color:#d21f1f; }
.join-tip{ text-align:center; color:#c8322a; font-size:12.5px; margin-top:16px; }

/* ---- 入会状态 · 单卡片（奶油底 + 金色描边，与表单卡片同一视觉体系）---- */
/* 成功提交后展示的状态卡整体下移，避开顶部丝绸波纹 */
.join-status-wrap{ display:block; margin-top:56px; }
.jstatus-card{
  position:relative; overflow:hidden;
  background:#fbf5e9; border-radius:22px; padding:60px 18px 22px;
  box-shadow:0 10px 28px rgba(120,10,10,.32);
  border:2.5px solid transparent;
  background-image:linear-gradient(#fbf5e9,#fbf5e9),linear-gradient(180deg,#f7e2a6,#e0a94b);
  background-origin:border-box; background-clip:padding-box,border-box;
}

/* 状态头 */
.jsc-head{ text-align:center; padding:4px 4px 18px; }
.jsc-icon{
  width:66px; height:66px; margin:0 auto 12px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 16px rgba(0,0,0,.12), inset 0 0 0 1px rgba(255,255,255,.5);
}
.jsc-icon svg{ width:36px; height:36px; }
.jsc-title{ font-size:21px; font-weight:800; letter-spacing:1px; }
.jsc-sub{ font-size:13px; color:#8a7a5e; margin-top:8px; line-height:1.6; padding:0 6px; }
/* 状态配色 */
.is-processing .jsc-icon{ background:linear-gradient(180deg,#fff2d4,#ffe0a6); color:#e0891a; }
.is-processing .jsc-title{ color:#d97706; }
.is-approved   .jsc-icon{ background:linear-gradient(180deg,#dff6e6,#b7ecc8); color:#12a052; }
.is-approved   .jsc-title{ color:#12a052; }
.is-rejected   .jsc-icon{ background:linear-gradient(180deg,#ffe4e0,#ffc9c2); color:#e5392b; }
.is-rejected   .jsc-title{ color:#e5392b; }

/* 分隔线（金色渐隐）*/
.jsc-divider{ height:1px; margin:2px 2px 16px;
  background:linear-gradient(90deg,transparent,rgba(224,169,75,.45),transparent); }

/* 驳回原因 */
.jsc-reason{
  display:flex; align-items:flex-start; gap:8px; margin:0 2px 6px;
  background:#fff1ee; border:1px solid #f6c8c0; color:#c8321f;
  font-size:13px; line-height:1.5; padding:11px 13px; border-radius:12px;
}
.jsc-reason svg{ width:17px; height:17px; flex:0 0 17px; margin-top:1px; }

/* 横向进度条 */
.jsc-steps{ display:flex; justify-content:space-between; padding:2px 2px 18px; }
.jss{ position:relative; flex:1; display:flex; flex-direction:column; align-items:center; gap:7px; }
.jss-line{
  position:absolute; top:14px; right:50%; width:100%; height:3px; border-radius:3px;
  background:#ece1c8; z-index:0;
}
.jss-line.done{ background:linear-gradient(90deg,#12a052,#3cc06f); }
.jss-dot{
  position:relative; z-index:1; width:28px; height:28px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:13px; font-weight:800; color:#b6a988;
  background:#f1e7d0; border:1.5px solid #e3d3ac;
}
.jss.done .jss-dot{ background:linear-gradient(180deg,#2bbd6b,#12a052); color:#fff; border-color:transparent; }
.jss.active .jss-dot{ background:linear-gradient(180deg,#ff6a45,#d21f1f); color:#fff; border-color:transparent;
  box-shadow:0 0 0 4px rgba(210,31,31,.16); }
.jss-t{ font-size:12px; font-weight:700; color:#a99a7c; }
.jss.done .jss-t,.jss.active .jss-t{ color:#5a4a2e; }

/* 申请信息 */
.jsc-info{ padding:0 2px; }
.jsc-info-head{
  display:flex; align-items:center; gap:7px;
  font-size:15px; font-weight:800; color:var(--red); padding-bottom:6px;
}
.jsc-info-head svg{ width:18px; height:18px; }
.jsc-row{
  display:flex; justify-content:space-between; align-items:center; gap:12px;
  padding:11px 2px; font-size:14px; border-bottom:1px dashed rgba(200,170,110,.35);
}
.jsc-row:last-child{ border-bottom:none; }
.jsc-row label{ color:#9a8a6a; flex:0 0 auto; }
.jsc-row span{ color:#4a3f2c; font-weight:700; text-align:right; word-break:break-all; }
.jsc-row.hl span{ color:#c81e1e; }

/* 重新申请 */
.jsc-reapply{
  width:100%; height:50px; margin-top:20px; border:none; cursor:pointer;
  font-size:17px; font-weight:800; letter-spacing:3px; color:#fff; border-radius:25px; font-family:inherit;
  background:linear-gradient(180deg,#ff5a3c,#d21f1f);
  border:1.5px solid var(--gold);
  box-shadow:0 5px 14px rgba(210,31,31,.4), inset 0 1px 0 rgba(255,255,255,.3);
}

/* ---- 政绩积分不足弹窗 ---- */
.points-modal{ position:fixed; inset:0; z-index:400; display:flex; align-items:center; justify-content:center; padding:0 32px; }
.points-modal[hidden]{ display:none; }
.pm-mask{ position:absolute; inset:0; background:rgba(30,4,4,.6); backdrop-filter:blur(2px); }
.pm-card{
  position:relative; width:100%; max-width:320px; padding:44px 22px 24px; text-align:center;
  border-radius:22px; background:#fbf5e9;
  border:2.5px solid transparent;
  background-image:linear-gradient(#fbf5e9,#fbf5e9),linear-gradient(180deg,#f7e2a6,#e0a94b);
  background-origin:border-box; background-clip:padding-box,border-box;
  box-shadow:0 20px 50px rgba(60,6,6,.5);
  animation:pmPop .28s cubic-bezier(.2,.9,.3,1.2);
}
@keyframes pmPop{ from{ transform:scale(.85); opacity:0 } to{ transform:scale(1); opacity:1 } }
.pm-badge{
  position:absolute; top:-30px; left:50%; transform:translateX(-50%);
  width:60px; height:60px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; color:#fff;
  background:linear-gradient(180deg,#ffb43c,#e0891a);
  border:3px solid #fbf5e9; box-shadow:0 6px 16px rgba(210,120,20,.45);
}
.pm-badge svg{ width:30px; height:30px; }
.pm-title{ font-size:20px; font-weight:800; color:var(--red); letter-spacing:1px; }
.pm-sub{ font-size:14px; color:#7a6a4e; margin-top:10px; line-height:1.7; }
.pm-sub b{ color:#c81e1e; font-weight:800; font-size:16px; }
.pm-hint{
  font-size:12.5px; color:#8a7a5e; line-height:1.6; margin:14px auto 0; max-width:260px;
  background:#fff8ee; border:1px solid var(--gold-2); border-radius:12px; padding:9px 12px;
}
.pm-actions{ display:flex; gap:12px; margin-top:20px; }
.pm-cancel,.pm-go{
  flex:1; height:46px; border-radius:23px; font-size:15px; font-weight:800; font-family:inherit;
  display:flex; align-items:center; justify-content:center; cursor:pointer; border:none;
}
.pm-cancel{ background:#f0e8d6; color:#8a7a5e; border:1px solid #e3d3ac; }
.pm-go{
  color:#fff; letter-spacing:1px;
  background:linear-gradient(180deg,#ff5a3c,#d21f1f);
  border:1.5px solid var(--gold);
  box-shadow:0 5px 14px rgba(210,31,31,.4), inset 0 1px 0 rgba(255,255,255,.3);
}

/* ============ 支票领取 (Group 21) ============ */
.checks-body{ background:#8d0707; }
.viewport.checks-view{
  overflow:visible; min-height:100vh; padding-bottom:40px;
  background:#8d0707 url('../img/checks/checks-bg.png') top center/100% auto no-repeat;
}
.checks-topbar{
  position:sticky; top:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between; height:50px; padding:0 10px;
}
.ct-back{ width:38px; height:38px; display:flex; align-items:center; justify-content:center; color:#fff; }
.ct-back svg{ width:26px; height:26px; }
.ct-title{
  position:absolute; left:50%; top:0; transform:translateX(-50%); height:50px;
  display:flex; align-items:center; color:#fff; font-size:17px; font-weight:700;
  text-shadow:0 1px 3px rgba(0,0,0,.4); pointer-events:none;
}
.ct-right{ width:38px; }
.ct-mychecks{
  display:flex; align-items:center; gap:3px; color:#fff; font-size:12.5px; font-weight:600;
  padding:5px 10px; border-radius:15px; white-space:nowrap;
  background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.32);
}
.ct-mychecks svg{ width:16px; height:16px; }
.ct-mychecks:active{ background:rgba(255,255,255,.28); }
.checks-emblems{ display:flex; align-items:flex-end; justify-content:center; gap:20px; padding:4px 0 10px; }
.checks-emblems img{ height:78px; width:auto; object-fit:contain; filter:drop-shadow(0 2px 6px rgba(0,0,0,.3)); }
.checks-main{ padding:12px 16px 0; }

/* 面额标签 */
.chk-tabs{ display:flex; gap:10px; margin:6px 0 16px; }
.chk-tab{
  position:relative;
  flex:1; height:44px; border-radius:10px; cursor:pointer; font-family:inherit;
  font-size:14px; font-weight:700; color:#ffe6b0;
  background:rgba(120,10,10,.35); border:1.5px solid #e6b96a;
}
.chk-tab.active{
  color:#8a1414; background:linear-gradient(180deg,#ffe9a8,#e6a63c);
  border-color:#fff2cf; box-shadow:0 2px 8px rgba(0,0,0,.28);
}
.chk-tab-badge{
  position:absolute; top:-7px; right:-6px;
  font-size:10px; font-weight:700; line-height:1; color:#fff;
  padding:3px 6px; border-radius:9px; background:#1aa05a; border:1px solid #fff;
  box-shadow:0 1px 3px rgba(0,0,0,.3);
}

/* 已领档位面板（进度 + 办理流程）*/
.chk-claimed{ margin-top:2px; }

/* 支票卡片（Figma Group 1：底图 + 按坐标定位叠加动态字段）*/
.cheque{
  /* --u 模拟旧的 1cqw（=支票宽度的1%）：支票宽度 = 视口宽 - .checks-main 左右内边距(16px*2)。
     兼容不支持 cqw / aspect-ratio / container-type 的旧内核 WebView（Oppo/Vivo）。 */
  --u: calc((100vw - 32px) / 100);
  position:relative; width:100%; margin-bottom:18px;
  height:0; padding-top:56.25%;   /* 720/1280 宽高比，用 padding 撑高，替代 aspect-ratio */
  background:url('../img/checks/cheque-bg.png') center/100% 100% no-repeat;
  border-radius:8px; overflow:hidden; box-shadow:0 6px 18px rgba(0,0,0,.32);
  color:#1a1a1a; font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
}
.cheque > span{ position:absolute; white-space:nowrap; line-height:1; font-weight:700; }
/* left/width 用 %（相对支票宽度，与 cqw 等价）；top 由“宽度%”换算成“高度%”(×1280/720=×1.7778)；字号用 --u */
.cq-payee2{ left:18.05%; top:28.2%;  font-size:calc(var(--u) * 2.5); }
.cq-cap2{ left:20.94%; top:38.06%; font-size:calc(var(--u) * 3.75); }
.cq-no2{ left:72.73%; top:11.52%; font-size:calc(var(--u) * 1.5625); }
.cq-date2{ left:78.36%; top:18.9%;  font-size:calc(var(--u) * 1.5625); }
.cq-digit{ top:41.12%; width:1.875%; text-align:center; font-size:calc(var(--u) * 3.125); }

/* 领取表单 */
.chk-form{ margin-top:4px; }
.chk-field{ margin-bottom:14px; }
.chk-field label{ display:block; color:#ffe6b0; font-size:14px; font-weight:600; margin-bottom:7px; }
.chk-field input{ width:100%; height:48px; border:none; border-radius:10px; background:#fff; padding:0 14px; font-size:15px; color:#333; font-family:inherit; }
.chk-field input[readonly]{ background:#f0e6d0; color:#8a6a2a; font-weight:700; }
.chk-field input::placeholder{ color:#bbb; }
.chk-submit{
  width:100%; height:52px; margin-top:6px; cursor:pointer; font-family:inherit;
  border:1.5px solid var(--gold); border-radius:26px;
  font-size:19px; font-weight:800; letter-spacing:4px; color:#8a1414;
  background:linear-gradient(180deg,#ffe9a8,#e6a63c); box-shadow:0 4px 12px rgba(0,0,0,.3);
}
.chk-tip{ text-align:center; color:rgba(255,255,255,.85); font-size:12px; margin-top:14px; line-height:1.6; }
.chk-require{
  text-align:center; font-size:13px; font-weight:700; margin:2px 0 12px;
  padding:8px 10px; border-radius:10px;
  color:#ffd9a0; background:rgba(180,60,60,.28); border:1px solid rgba(255,210,150,.4);
}
.chk-require.ok{ color:#bff0c2; background:rgba(40,120,60,.28); border-color:rgba(160,240,170,.4); }

/* 申领进度卡片 */
.chk-progress{ background:#fff; border-radius:18px; box-shadow:0 10px 26px rgba(0,0,0,.3); overflow:hidden; }
.cp-head{
  position:relative; padding:22px 20px 20px; text-align:center; color:#fff;
  background:linear-gradient(135deg,#d42323 0%,#e5533a 60%,#f07a4a 100%);
}
.cp-head::before{
  content:""; position:absolute; top:-40%; right:-20%; width:180px; height:180px; border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.22),transparent 70%);
}
.cp-head::after{
  content:""; position:absolute; left:0; right:0; bottom:-1px; height:16px;
  background:radial-gradient(circle at 12px -4px,transparent 12px,#fff 13px);
  background-size:24px 16px; background-repeat:repeat-x;
}
.cp-badge{
  position:relative; z-index:1; display:inline-flex; align-items:center; gap:5px;
  font-size:12.5px; font-weight:700; padding:5px 13px 5px 10px; border-radius:16px;
  background:rgba(255,255,255,.22); border:1px solid rgba(255,255,255,.35); backdrop-filter:blur(2px);
}
.cp-badge svg{ width:15px; height:15px; }
.cp-badge.ok{ background:rgba(255,255,255,.95); color:#1aa05a; border-color:#fff; }
.cp-amt-label{ position:relative; z-index:1; margin-top:12px; font-size:12.5px; opacity:.9; letter-spacing:1px; }
.cp-amt{ position:relative; z-index:1; margin-top:2px; font-size:46px; font-weight:800; line-height:1.05; text-shadow:0 2px 6px rgba(120,0,0,.25); }
.cp-amt i{ font-style:normal; font-size:20px; font-weight:700; margin-left:4px; }
.cp-amt-cap{ position:relative; z-index:1; margin-top:4px; font-size:13px; font-weight:600; opacity:.95; }
.cp-info{ padding:6px 18px 14px; }
.cp-info .cp-row{ display:flex; align-items:center; justify-content:space-between; padding:13px 0; border-bottom:1px dashed #eceff2; font-size:14px; }
.cp-info .cp-row:last-child{ border-bottom:none; }
.cp-k{ display:flex; align-items:center; gap:8px; color:#8a9099; flex:0 0 auto; }
.cp-k svg{ width:17px; height:17px; color:#c9a06a; flex:0 0 17px; }
.cp-v{ color:#2b2f36; font-weight:700; max-width:58%; text-align:right; word-break:break-all; }
.cp-v.mono{ font-family:"SF Mono","Roboto Mono",Menlo,monospace; letter-spacing:.3px; }
.cp-v.hl{ color:#d21f1f; }

/* 办理流程 */
.chk-flow{ background:#fff; border-radius:18px; padding:20px 18px 8px; margin-top:14px; box-shadow:0 10px 26px rgba(0,0,0,.3); }
.cf-head{ display:flex; align-items:center; gap:8px; font-size:16px; font-weight:800; color:#22262c; margin-bottom:18px; }
.cf-bar{ width:4px; height:16px; border-radius:2px; background:linear-gradient(#e5533a,#d21f1f); }
.cf-timeline{ position:relative; }
.cf-item{ position:relative; display:flex; align-items:flex-start; gap:14px; padding-bottom:20px; }
.cf-item:last-child{ padding-bottom:6px; }
.cf-node{ position:relative; flex:0 0 34px; display:flex; justify-content:center; }
.cf-dot{
  width:34px; height:34px; border-radius:50%; z-index:1;
  display:flex; align-items:center; justify-content:center;
  font-size:14px; font-weight:800; color:#b3b9c2; background:#eef1f4; border:2px solid #eef1f4;
}
.cf-dot svg{ width:18px; height:18px; }
.cf-line{ position:absolute; top:34px; bottom:-2px; left:50%; transform:translateX(-50%); width:2px; background:#e7eaee; }
.cf-line.done{ background:linear-gradient(#1aa05a,#2ab36a); }
.cf-item.done .cf-dot{ background:#1aa05a; border-color:#d6f0e2; color:#fff; }
.cf-item.active .cf-dot{ background:#d21f1f; border-color:#fbd6d6; color:#fff; box-shadow:0 0 0 4px rgba(210,31,31,.12); animation:cfPulse 1.6s ease-in-out infinite; }
@keyframes cfPulse{ 0%,100%{ box-shadow:0 0 0 4px rgba(210,31,31,.12); } 50%{ box-shadow:0 0 0 7px rgba(210,31,31,.05); } }
.cf-body{ flex:1; min-width:0; padding-top:3px; }
.cf-title{ font-size:15px; font-weight:700; color:#9aa0a8; }
.cf-desc{ font-size:12px; color:#b7bdc5; margin-top:3px; line-height:1.5; }
.cf-item.done .cf-title{ color:#22262c; }
.cf-item.active .cf-title{ color:#d21f1f; }
.cf-item.done .cf-desc,.cf-item.active .cf-desc{ color:#8a9099; }
.cf-tag{ flex:0 0 auto; align-self:center; font-size:11px; font-weight:700; padding:3px 10px; border-radius:11px; color:#aeb4bc; background:#f2f4f6; }
.cf-tag.done{ color:#1aa05a; background:#e6f6ee; }
.cf-tag.active{ color:#d21f1f; background:#fde9e9; }

/* 我的支票 页面 */
.mychk-count{ color:rgba(255,255,255,.9); font-size:13px; text-align:center; margin:2px 0 14px; }
.mychk-count b{ color:#ffe08a; font-size:15px; }
.mychk-item{ margin-bottom:22px; }
.mychk-more{
  display:block; text-align:center; color:#ffe6b0; font-size:14px; font-weight:600;
  padding:12px; margin-top:2px; border:1px dashed rgba(255,230,176,.5); border-radius:12px;
}
.mychk-empty{ text-align:center; padding:60px 20px; color:#fff; }
.mychk-empty-ic{
  width:76px; height:76px; margin:0 auto 16px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.25);
}
.mychk-empty-ic svg{ width:38px; height:38px; color:#ffe6b0; }
.mychk-empty-t{ font-size:15px; color:rgba(255,255,255,.9); margin-bottom:20px; }
.mychk-empty-btn{
  display:inline-block; padding:11px 34px; border-radius:24px; font-size:16px; font-weight:800;
  color:#8a1414; background:linear-gradient(180deg,#ffe9a8,#e6a63c);
  border:1.5px solid #fff2cf; box-shadow:0 3px 10px rgba(0,0,0,.3);
}

/* 两会介绍 自定义弹窗 */
.intro-modal{ position:fixed; inset:0; z-index:350; display:flex; align-items:center; justify-content:center; padding:0 22px; }
.intro-modal[hidden]{ display:none; }
.intro-mask{ position:absolute; inset:0; background:rgba(0,0,0,.55); backdrop-filter:blur(2px); }
.intro-card{
  position:relative; width:100%; max-width:340px; max-height:82vh;
  display:flex; flex-direction:column; overflow:hidden;
  background:#fff; border-radius:16px; box-shadow:0 12px 40px rgba(0,0,0,.4);
}
.intro-head{
  position:relative; display:flex; align-items:center; justify-content:center; gap:8px;
  padding:16px 46px 14px; color:#fff;
  background:linear-gradient(135deg,#c81e1e,#e63a2e);
}
.intro-emblems{ display:flex; align-items:center; gap:4px; }
.intro-emblems img{ height:22px; width:auto; }
.intro-title{ font-size:17px; font-weight:800; letter-spacing:1px; }
.intro-close{
  position:absolute; right:10px; top:10px; width:30px; height:30px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  background:rgba(255,255,255,.18); border:none; color:#fff;
}
.intro-close svg{ width:18px; height:18px; }
.intro-body{ padding:16px 18px 20px; overflow-y:auto; -webkit-overflow-scrolling:touch; }
.intro-body p{ margin:0 0 12px; font-size:14px; line-height:1.85; color:#333; text-indent:2em; text-align:justify; }
.intro-body p:last-child{ margin-bottom:0; }
.intro-body b{ color:#c81e1e; }

/* 红头文件详情页：整页展示图片 */
.hongtou-main{ padding:0; background:#fff; }
.hongtou-img{ display:block; width:100%; height:auto; }

/* 实名引导弹窗 */
.cmodal{ position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center; }
.cmodal[hidden]{ display:none; }
.cmodal-mask{ position:absolute; inset:0; background:rgba(0,0,0,.5); }
.cmodal-card{ position:relative; width:82%; max-width:320px; background:#fff; border-radius:16px; padding:26px 22px 20px; text-align:center; }

/* 领卡表单弹窗（wca-*）：更宽卡片 + 表单样式 */
.wca-card{ width:90%; max-width:380px; padding:20px 18px 16px; text-align:left; max-height:88vh; overflow-y:auto; }
.wca-head{ text-align:center; margin-bottom:12px; }
.wca-title{ font-size:17px; font-weight:800; color:#8f1414; }
.wca-sub{ font-size:12px; color:#8a6a3a; margin-top:4px; line-height:1.5; }
.wca-form{ display:flex; flex-direction:column; gap:10px; }
.wca-field{ display:flex; flex-direction:column; gap:5px; }
.wca-field .wca-lb{ font-size:12px; color:#8a1414; font-weight:700; }
.wca-field input, .wca-field select, .wca-field textarea{
  border:1px solid #e6d4a8; border-radius:8px; padding:9px 11px; font-size:14px; color:#222;
  background:#fffaf0; outline:none; width:100%; box-sizing:border-box;
}
.wca-field input:focus, .wca-field select:focus, .wca-field textarea:focus{ border-color:#c88a2a; background:#fff; }
.wca-field textarea{ resize:vertical; font-family:inherit; line-height:1.4; }
.wca-row2{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.wca-btns{ display:flex; gap:10px; margin-top:12px; }
.wca-btns .cmodal-btn{ flex:1; }
.cmodal-ic{ width:56px; height:56px; margin:0 auto 12px; color:#c81e1e; }
.cmodal-ic svg{ width:100%; height:100%; }
.cmodal-title{ font-size:18px; font-weight:800; color:#222; }
.cmodal-sub{ font-size:13px; color:#777; margin-top:8px; line-height:1.6; }
.cmodal-btns{ display:flex; gap:12px; margin-top:20px; }
.cmodal-btn{ flex:1; height:44px; border-radius:22px; font-size:15px; font-weight:700; display:flex; align-items:center; justify-content:center; cursor:pointer; font-family:inherit; border:none; }
.cmodal-btn.cancel{ background:#f0f2f4; color:#666; }
.cmodal-btn.ok{ background:linear-gradient(180deg,#ff5a3c,#d21f1f); color:#fff; }

/* 实名认证成功赠送弹窗 */
.rn-reward-ic{ color:#1fa85a; }
.rn-reward-list{ list-style:none; margin:16px 0 4px; padding:0; display:flex; flex-direction:column; gap:10px; }
.rn-reward-list li{
  display:flex; align-items:baseline; justify-content:center; gap:8px;
  padding:10px 12px; border-radius:12px;
  background:linear-gradient(180deg,#fff6ec,#fdebd6); border:1px solid #f4d6a8;
}
.rn-reward-list .rr-num{ font-size:22px; font-weight:800; color:#d21f1f; line-height:1; }
.rn-reward-list .rr-lb{ font-size:14px; font-weight:700; color:#8a5a1a; }

/* ============ 我的团队 ============ */
.team-stat-card{
  border-radius:14px; padding:18px; color:#fff;
  background:linear-gradient(135deg,#c81e1e,#e5533a);
  box-shadow:0 4px 14px rgba(200,30,30,.28);
}
.team-stat-card .ts-total{ text-align:center; padding-bottom:14px; }
.team-stat-card .ts-num{ font-size:36px; font-weight:800; line-height:1; }
.team-stat-card .ts-label{ font-size:13px; opacity:.9; margin-top:6px; }
.team-stat-card .ts-grid{ display:flex; background:rgba(0,0,0,.14); border-radius:10px; padding:12px 0; }
.ts-cell{ flex:1; display:flex; flex-direction:column; align-items:center; gap:3px; position:relative; }
.ts-cell + .ts-cell::before{ content:""; position:absolute; left:0; top:15%; height:70%; width:1px; background:rgba(255,255,255,.22); }
.ts-cell .v{ font-size:18px; font-weight:700; }
.ts-cell .v.gold{ color:var(--gold,#f6d97a); }
.ts-cell .t{ font-size:11px; opacity:.85; }

.team-tabs .tab-badge{
  display:inline-block; min-width:16px; margin-left:4px; padding:0 4px;
  font-size:11px; line-height:16px; border-radius:8px;
  background:rgba(0,0,0,.12); color:inherit; vertical-align:middle;
}
.team-tabs .fd-tab.active .tab-badge{ background:rgba(255,255,255,.28); }

.team-list[hidden]{ display:none; }
.team-list{ background:#fff; border-radius:14px; padding:2px 16px; box-shadow:0 2px 8px rgba(0,0,0,.05); }
.team-item{ display:flex; align-items:center; gap:12px; padding:13px 0; border-bottom:1px solid #f0f2f4; }
.team-item:last-child{ border-bottom:none; }
.tm-avatar{
  flex:0 0 40px; width:40px; height:40px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:12px; font-weight:700; color:#c81e1e; background:#fdeaea;
}
.tm-info{ flex:1; min-width:0; }
.tm-phone{ font-size:15px; color:#333; font-weight:600; }
.tm-meta{ font-size:12px; color:#9aa0a6; margin-top:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tm-badge{ flex:0 0 auto; font-size:11px; font-weight:600; padding:3px 10px; border-radius:10px; }
.tm-badge.ok{ color:#1aa05a; background:#e5f6ec; }
.tm-badge.no{ color:#9aa0a6; background:#f0f2f4; }

/* ============ 实名认证 已认证状态卡 ============ */
.verified-card{
  background:#fff; border-radius:14px; padding:18px 16px;
  box-shadow:0 2px 10px rgba(0,0,0,.05);
}
.verified-card .vc-head{
  display:flex; align-items:center; gap:8px; color:#1aa05a; font-size:16px; font-weight:700;
  padding-bottom:12px; margin-bottom:6px; border-bottom:1px solid #eef0f2;
}
.verified-card .vc-head svg{ width:22px; height:22px; }
.verified-card .vc-row{ display:flex; align-items:center; justify-content:space-between; padding:10px 0; }
.verified-card .vc-row label{ color:#8a9099; font-size:14px; }
.verified-card .vc-row span{ color:#333; font-size:14px; font-weight:600; }

/* 添加银行卡按钮 */
.btn-add-card{
  width:100%; border:1.5px dashed #e0a95a; background:#fff8ee; color:#c8811e;
  border-radius:14px; padding:14px; font-size:15px; font-weight:600;
  display:flex; align-items:center; justify-content:center; gap:6px;
  font-family:inherit; cursor:pointer;
}
.btn-add-card .plus{ font-size:20px; line-height:1; }
.add-card-form[hidden]{ display:none; }

/* ============ 小屏适配 ============ */
@media (max-width:360px){
  .field{ height:48px; }
  .subtitle{ font-size:16px; }
  .btn-primary{ height:48px; font-size:17px; }
  .video-card .video-text{ font-size:26px; }
  .live-card{ font-size:26px; }
  .g-item .g-label{ font-size:12px; }
  .nav-item{ font-size:10px; }
  .quick-item{ font-size:11px; }
  .quick-item img{ width:38px; height:38px; }
}
@media (min-height:780px){
  .register .reg-space{ height:30vh; }
}

/* ============ 邀请好友（垂直流式布局 · 放大版，仅纵向滚动）============ */
.invite-body{ margin:0; background:#7c0d0d; }
.invite-view{
  position:relative; width:100%; max-width:520px; margin:0 auto;
  background:#7c0d0d url('../img/invite/bg-main.png') top center / 100% auto no-repeat;
  padding:0 0 100px; box-sizing:border-box;
  container-type:inline-size; overflow:hidden;
  font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
}

/* 顶部徽标 + 标题 */
.iv-header{ padding:6cqw 6cqw 2cqw; text-align:center; }
.iv-emblems{ display:flex; align-items:center; justify-content:center; gap:3cqw; }
.iv-emblem{ width:15cqw; height:auto; }
.iv-htitle{ margin-top:3cqw; color:#a30410; font-size:6.4cqw; font-weight:900; letter-spacing:.3cqw; }
.iv-hsub{ margin-top:1.6cqw; color:#b83210; font-size:3.9cqw; font-weight:700; }

/* 实名认证赠送 */
.iv-reward{ margin:3cqw 7cqw 0; padding:2cqw 0; text-align:center; }
.iv-reward-title{
  color:#fff6d1; font-size:5.6cqw; font-weight:900; letter-spacing:.3cqw;
  text-shadow:0 .6cqw 1cqw rgba(120,9,0,.6);
}
.iv-reward-grid{ display:flex; width:100%; margin-top:4cqw; }
.ivr-cell{ width:33.33%; flex:0 0 33.33%; box-sizing:border-box; min-width:0; text-align:center; display:flex; flex-direction:column; align-items:center; gap:1cqw; }
.ivr-cell + .ivr-cell{ border-left:1px solid rgba(183,119,45,.4); }
.ivr-num{
  color:#fff0a0; font-size:7.4cqw; font-weight:800; line-height:1;
  text-shadow:0 .5cqw .9cqw rgba(126,0,0,.55);
}
.ivr-lb{ color:#c70b05; font-size:4.4cqw; font-weight:800; }

/* 生成宣传海报 */
.iv-poster{
  margin:6cqw auto 0; width:64cqw;
  display:flex; flex-direction:column; align-items:center; gap:1.4cqw;
  background:transparent; border:none; padding:0; cursor:pointer; font-family:inherit;
}
.ivp-btn{
  width:100%; padding:3.6cqw 0; box-sizing:border-box;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(180deg,#fffef1,#ffe7a5); border:.6cqw solid #f0a20d;
  border-radius:12cqw; color:#a82114; font-size:5cqw; font-weight:800; letter-spacing:.6cqw;
  box-shadow:0 1.4cqw 0 #db8500, 0 2cqw 3.5cqw rgba(177,100,0,.28);
}
.ivp-sub{
  padding:1.2cqw 4cqw; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(90deg,rgba(255,236,185,.55),#fff5cc,rgba(255,236,185,.55));
  border-radius:6cqw; color:#93611b; font-size:2.9cqw; font-weight:700; letter-spacing:.7cqw;
}

/* 邀请链接 / 专属邀请码 + 二维码 */
.iv-share{ margin:7cqw 7cqw 0; display:flex; flex-direction:column; gap:3.5cqw; }
.iv-fields{ display:flex; flex-direction:column; gap:3.5cqw; }
.iv-field{
  width:100%; height:12.5cqw; box-sizing:border-box; overflow:hidden;
  background:rgba(255,255,255,.9); border:.6cqw solid #f0a20d; border-radius:6cqw;
  display:flex; align-items:center; padding:0 2cqw 0 4cqw;
}
.iv-field .ivf-val{
  flex:1; min-width:0; color:#3a3a3a; font-size:4.3cqw; font-weight:700;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.iv-field-code .ivf-val{ letter-spacing:1cqw; }
.iv-field .ivf-copy{
  flex:0 0 auto; width:18cqw; height:8.8cqw; padding:0; border:none; cursor:pointer;
  border-radius:4cqw; font-family:inherit; font-size:4cqw; font-weight:800; color:#fff;
  background:linear-gradient(180deg,#fa4337,#d50000);
  box-shadow:0 .6cqw 1.2cqw rgba(125,0,0,.3), inset 0 .3cqw 0 rgba(255,255,255,.45);
}

/* 二维码卡片（白底 + 右侧金色“立即扫码”标签）*/
.iv-qr{
  align-self:center; width:52cqw; height:34cqw; box-sizing:border-box; margin-top:1cqw;
  display:flex; overflow:hidden; background:#fff; cursor:pointer;
  border:.8cqw solid #f0a20d; border-radius:5cqw;
}
.iv-qr-code{
  flex:1; min-width:0; display:flex; align-items:center; justify-content:center; padding:2cqw;
}
.iv-qr-code canvas,.iv-qr-code img{ display:block; width:100% !important; height:100% !important; object-fit:contain; }
.iv-qr-tab{
  flex:0 0 15cqw; display:flex; flex-direction:column; align-items:center; justify-content:center;
  background:linear-gradient(135deg,#fff4bf,#ffd36f); border-left:1px solid rgba(219,140,0,.3);
  color:#5f2d00; font-size:3.6cqw; font-weight:800; line-height:1.2; text-align:center;
}

/* 分享赚钱横幅 + 副标题 */
.iv-ribbon{ display:block; width:88cqw; height:auto; margin:8cqw auto 0; }
.iv-ribbon-sub{
  margin:2.4cqw 7cqw 0; text-align:center;
  color:#ffe08a; font-size:4cqw; font-weight:800;
}

/* 奖励档位表（5 档，动态）*/
.iv-table{
  margin:6cqw 7cqw 0;
  display:flex; flex-direction:column; gap:2.4cqw;
}
.ivt-row{
  display:flex; min-height:18cqw; overflow:hidden; border-radius:3.2cqw;
  background:linear-gradient(180deg,#fffdf4,#fdf1da);
  box-shadow:0 .8cqw 2.2cqw rgba(120,40,0,.22);
}
.ivt-tab{
  width:23%; flex:0 0 23%; box-sizing:border-box; text-align:center;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.6cqw;
  background:linear-gradient(160deg,#f0491e,#c00d0b); color:#ffeb7d;
}
.ivt-tab-t{ font-size:3.6cqw; }
.ivt-tab-n{ font-size:7cqw; font-weight:800; line-height:1; }
.ivt-tab-n em{ font-style:normal; font-size:3.2cqw; margin-left:.3cqw; }
.ivt-cols{ width:77%; flex:0 0 77%; box-sizing:border-box; display:flex; }
.ivt-col{
  width:25%; flex:0 0 25%; box-sizing:border-box; min-width:0; position:relative; text-align:center;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.8cqw; padding:2cqw .4cqw;
}
.ivt-col + .ivt-col::before{
  content:""; position:absolute; left:0; top:18%; height:64%; width:1px; background:rgba(183,119,45,.4);
}
.ivt-col img{ height:7.6cqw; width:auto; object-fit:contain; margin:0 auto; }
.ivt-lb{ font-size:3cqw; font-weight:800; color:#1a1a1a; white-space:nowrap; }
.ivt-vv{ font-size:2.9cqw; font-weight:700; color:#810202; white-space:nowrap; }

/* 底部二维码预留区 + 文案 */
.iv-footer{ margin:8cqw 7cqw 0; display:flex; flex-direction:column; align-items:center; gap:3cqw; }
.iv-footqr{
  width:34cqw; height:34cqw; box-sizing:border-box;
  background:#fff; padding:1.6cqw; border:1cqw dashed #e00000; border-radius:5cqw;
  display:flex; align-items:center; justify-content:center;
}
.iv-footqr canvas,.iv-footqr img{ display:block; width:100% !important; height:100% !important; object-fit:contain; }
.iv-foottext{
  text-align:center; color:#fdde76; font-size:4cqw; font-weight:700;
}

/* ============ 两会推广（Figma Group 22）============ */
.promote-body{ margin:0; background:#970001; }
.viewport.promote{
  overflow:visible; min-height:100vh; padding-bottom:92px;
  background-color:#970001; background-size:100% auto; background-position:top center; background-repeat:no-repeat;
}
.promote-hero-space{ width:100%; padding-top:113.5%; }   /* 顶部主视觉照片区域(烘焙在背景图内) */

.promote-inner{ container-type:inline-size; padding:0 14px 8px; }

.promo-title{
  text-align:center; color:#ffe08a; font-weight:800;
  font-size:4.6cqw; letter-spacing:.4cqw; padding:2cqw 0 1cqw;
  text-shadow:0 1px 3px rgba(80,0,0,.6);
}
.promo-title span{ color:#f3b13a; margin:0 1.5cqw; }
.promo-count{ text-align:center; color:#ffe4c0; font-size:3.3cqw; margin-bottom:3cqw; }
.promo-count b{ color:#ffd15a; font-size:4.8cqw; margin:0 .6cqw; }

.promo-card{
  display:flex; align-items:stretch; margin-bottom:3cqw; min-height:23cqw;
  border:.5cqw solid #f4cd77; border-radius:3cqw; overflow:hidden;
  background:#f7efdf; box-shadow:0 1cqw 3cqw rgba(0,0,0,.28);
}
.pc-left{
  flex:0 0 25cqw; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.2cqw;
  padding:2cqw 1cqw; color:#fff; text-align:center;
  background:linear-gradient(160deg,#e85a2c,#bf1414 70%);
}
.pc-left .t{ font-size:3.3cqw; letter-spacing:.3cqw; }
.pc-left .b{ font-size:5.2cqw; font-weight:800; line-height:1.05; }
.pc-left .st{
  margin-top:.6cqw; font-size:2.5cqw; padding:.5cqw 2cqw; border-radius:3cqw;
  background:rgba(255,255,255,.22); color:#fff; white-space:nowrap;
}
.promo-card.done .pc-left .st{ background:linear-gradient(180deg,#ffe08a,#f0b64a); color:#8a2a00; font-weight:700; }

.pc-right{ flex:1; display:flex; background:linear-gradient(180deg,#fbf4e6,#f2e5c9); }
.pc-col{
  flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.8cqw;
  padding:2.4cqw .3cqw; position:relative;
}
.pc-col + .pc-col::before{
  content:""; position:absolute; left:0; top:16%; height:68%; width:1px; background:rgba(180,120,40,.28);
}
.pc-col img{ width:11cqw; height:11cqw; object-fit:contain; }
.pc-col .lb{ font-size:2.55cqw; color:#9a4a16; white-space:nowrap; }
.pc-col .vv{ font-size:3.1cqw; font-weight:800; color:#cf1414; }

.promo-actions{ margin-top:3cqw; text-align:center; }
.promo-btn{
  display:block; height:12cqw; line-height:12cqw; border-radius:6cqw;
  background:linear-gradient(180deg,#ffe9a8,#f3c463 55%,#e0a63c); color:#7a1414;
  font-size:4.4cqw; font-weight:800; letter-spacing:1cqw; text-decoration:none;
  border:.4cqw solid #f4d488; box-shadow:0 1.2cqw 3cqw rgba(0,0,0,.3);
}
.promo-link{ display:block; margin-top:3cqw; color:#ffe4c0; font-size:3.2cqw; text-decoration:none; }

/* ============ 分享海报浮层（Figma Group 19）============ */
.poster-modal{ position:fixed; inset:0; z-index:300; display:flex; align-items:center; justify-content:center; }
.poster-modal[hidden]{ display:none; }
.pm-mask{ position:absolute; inset:0; background:rgba(0,0,0,.72); }
.pm-stage{ position:relative; width:82%; max-width:340px; display:flex; flex-direction:column; align-items:center; }
.pm-poster{
  position:relative; width:100%; max-height:70vh; overflow-y:auto; -webkit-overflow-scrolling:touch;
  border-radius:12px; box-shadow:0 12px 40px rgba(0,0,0,.5); background:#7c0d0d;
}
.pm-poster .pm-art{ display:block; width:100%; height:auto; }
.pm-loading{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  color:#ffe9b0; font-size:14px; background:#7c0d0d;
}
.pm-tip{ margin:12px 0 8px; color:rgba(255,255,255,.82); font-size:12px; text-align:center; }
.pm-save{
  width:100%; max-width:240px; height:44px; border:none; cursor:pointer; font-family:inherit;
  border-radius:22px; font-size:15px; font-weight:800; letter-spacing:1px; color:#7a2b00;
  background:linear-gradient(180deg,#ffe7a5,#ffc24d); box-shadow:0 6px 16px rgba(0,0,0,.35);
}
.pm-close{
  position:fixed; right:16px; top:calc(env(safe-area-inset-top, 0px) + 14px);
  width:38px; height:38px; border-radius:50%; z-index:2;
  border:1.5px solid rgba(255,255,255,.7); background:rgba(0,0,0,.4); color:#fff;
  font-size:24px; line-height:1; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}

/* ============ 清退资金（Figma Group 11 阶段A / Group 5 阶段B）============ */
.refund-body{ margin:0; background:#7a0f0f; }
.viewport.refund{
  overflow:visible; min-height:100vh; padding-bottom:92px;
  background:#fcf1e2;
}
.rf-hero{ width:100%; display:block; }

/* 阶段B：暖色背景铺满整页，头图在上、城市图锚定到最底部 */
.viewport.refund-b{
  display:flex; flex-direction:column;
  background:linear-gradient(180deg,#fbe2c6 0%,#fdf4e8 24%,#fdf4e8 56%,#f7e6cf 100%);
}
.refund-b .rf-building{ margin-top:auto; margin-bottom:0; }

.rf-inner{ container-type:inline-size; padding:4cqw 4cqw 2cqw; }

/* 表单面板：左侧字段列 + 右侧竖向红标签 */
.rf-panel{ display:flex; align-items:stretch; gap:2.4cqw; }
.rf-fields{ flex:1; min-width:0; display:flex; flex-direction:column; justify-content:center; gap:2.6cqw; }

/* 阶段A：标签与输入同行 */
.rf-field{ display:flex; align-items:center; gap:2cqw; }
.rf-lb{
  display:flex; align-items:center; gap:1.2cqw; flex:0 0 auto;
  color:#8f1414; font-weight:700; font-size:3.2cqw; white-space:nowrap;
}
.rf-lb svg{ width:4.4cqw; height:4.4cqw; flex:0 0 auto; }
.rf-field input,
.rf-field select{
  flex:1; min-width:0; height:8.4cqw; border-radius:1.6cqw;
  border:1px solid #e3c9a0; background:#fff; padding:0 2.6cqw;
  font-size:3.1cqw; color:#333; outline:none;
}
.rf-field input::placeholder{ color:#b7a487; }
.rf-field input[readonly]{ background:#fbf3e4; color:#8a1414; font-weight:700; }
/* 参与时间下拉框：自定义箭头，右侧留白 */
.rf-field select{
  -webkit-appearance:none; appearance:none; cursor:pointer;
  padding-right:8cqw;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238f1414' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 2.4cqw center;
  background-size:4cqw 4cqw;
}
.rf-field select:required:invalid{ color:#b7a487; }

/* 阶段B：标签在上，输入在下（整行）。标题更大、输入框更高、上下间距更宽 */
.rf-fields-b{ gap:4.8cqw; }
.rf-field-b{ flex-direction:column; align-items:stretch; gap:2.2cqw; }
.rf-field-b .rf-lb{ font-size:4.3cqw; }
.rf-field-b .rf-lb svg{ width:5.6cqw; height:5.6cqw; }
.rf-field-b input{ width:100%; height:14.5cqw; background:#fdf6ea; border-color:#e6cfa4; font-size:4.4cqw; border-radius:2.2cqw; padding:0 3.2cqw; }
.rf-field-b input::placeholder{ font-size:4cqw; }

/* 竖向红标签「资产打款记录」 */
.rf-vtab{
  flex:0 0 13cqw; align-self:stretch;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2.4cqw;
  padding:4cqw 0; border-radius:2cqw;
  background:linear-gradient(180deg,#e5392a,#b40d0c);
  color:#ffe08a; box-shadow:0 1cqw 2cqw rgba(120,10,10,.25);
}
.rf-vtab-text{
  writing-mode:vertical-rl; letter-spacing:2.4cqw;
  font-size:5cqw; font-weight:800; text-shadow:0 1px 2px rgba(0,0,0,.35);
}
.rf-vtab-ic svg{ width:7cqw; height:7cqw; }
.rf-vtab{ cursor:pointer; }
/* 阶段B：资产打款记录卡片不可点击 */
.rf-vtab-off{ pointer-events:none; cursor:default; }

/* 蓝色主按钮（阶段A） */
.rf-btn-blue{
  display:block; width:100%; height:11cqw; margin-top:3.4cqw; border-radius:2cqw;
  background:linear-gradient(180deg,#3b7ddd,#1f56b5); color:#fff;
  font-size:4.4cqw; font-weight:800; letter-spacing:1.2cqw;
  box-shadow:0 1.2cqw 2.6cqw rgba(20,60,150,.32);
}
.rf-btn-review{ background:linear-gradient(180deg,#5f96ea,#2f6bc8); }

/* 类似项目栅格 */
.rf-similar{ margin-top:4.4cqw; }
.rf-similar-title{ color:#8f1414; font-weight:800; font-size:3.6cqw; margin-bottom:2.4cqw; }
.rf-similar-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:2.8cqw 2cqw; }
.rf-proj{
  display:flex; align-items:center; gap:1.4cqw; font-size:2.9cqw; color:#7a2b12; min-width:0;
  cursor:pointer; padding:1cqw 1.4cqw; border-radius:2cqw; border:0.25cqw solid transparent;
  transition:background .15s, border-color .15s, transform .1s;
}
.rf-proj:active{ transform:scale(.96); }
.rf-proj.active{ background:rgba(200,20,20,.08); border-color:rgba(200,20,20,.4); }
.rf-proj-ic{
  flex:0 0 auto; width:6cqw; height:6cqw; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(180deg,#f0c98a,#d8a24e); color:#fff;
  transition:background .15s;
}
.rf-proj.active .rf-proj-ic{ background:linear-gradient(180deg,#e8503a,#c01414); }
.rf-proj-ic svg{ width:3.6cqw; height:3.6cqw; }
.rf-proj em{ font-style:normal; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* 阶段B 状态框（随 step 变化） */
.rf-status{ margin-top:3.4cqw; }
.rf-status-main{
  display:flex; align-items:center; gap:3cqw;
  background:#fdf6e8; border:.5cqw solid #f0cf88; border-radius:2.6cqw;
  padding:3.4cqw 4cqw; box-shadow:0 1cqw 2.4cqw rgba(120,60,0,.1);
}
.rf-trophy{ flex:0 0 auto; object-fit:contain; }
.rf-trophy.sm{ width:11cqw; }
.rf-trophy.lg{ width:15cqw; }
.rf-status-text{ min-width:0; }
.rf-status-title{ color:#c81e1e; font-weight:800; font-size:3.9cqw; }
.rf-status-sub{ color:#8a6d4a; font-size:3cqw; margin-top:1.2cqw; line-height:1.55; }

.rf-btn-pay{
  display:block; width:100%; height:11cqw; margin-top:3cqw; border-radius:2cqw;
  background:linear-gradient(180deg,#ffe9a8,#f3c463 55%,#e0a63c); color:#8a1414;
  font-size:4.4cqw; font-weight:800; letter-spacing:.6cqw;
  box-shadow:0 1.2cqw 2.6cqw rgba(160,90,0,.28);
}
.rf-btn-pay-done,.rf-btn-pay:disabled{
  background:linear-gradient(180deg,#e6d3ac,#cdb98c 55%,#bda876); color:#7a5a2a;
  box-shadow:none; cursor:not-allowed; opacity:.85;
}
.rf-btn-view-audit{
  display:block; width:100%; height:10cqw; margin-top:2.2cqw; border-radius:2cqw;
  border:1px solid rgba(200,30,30,.55); background:rgba(255,255,255,.7); color:#b40d0c;
  font-size:3.8cqw; font-weight:800; letter-spacing:.4cqw; cursor:pointer;
}
.rf-btn-view-audit[hidden]{ display:none; }

/* ============ 资产追回服务申请审核表 弹窗（1:1 还原 Figma 4:424）============ */
.audit-modal{ position:fixed; inset:0; z-index:3000; display:flex; align-items:center; justify-content:center; padding:16px; }
.audit-modal[hidden]{ display:none; }
.audit-mask{ position:absolute; inset:0; background:rgba(0,0,0,.6); }
.audit-scroll{
  position:relative; width:min(393px,92vw); max-height:92vh; overflow:auto;
  border-radius:10px; box-shadow:0 14px 44px rgba(0,0,0,.45); -webkit-overflow-scrolling:touch;
}
.audit-close{
  position:absolute; top:8px; right:8px; z-index:2; width:30px; height:30px; border:none;
  border-radius:50%; background:rgba(0,0,0,.45); color:#fff; font-size:20px; line-height:30px;
  text-align:center; cursor:pointer;
}
.audit-card{
  /* --u 等价于旧的 1cqw（卡片宽度的 1%）：用 var/calc 模拟容器查询单位，兼容不支持 cqw 的旧内核 WebView */
  --cw: min(393px, 92vw);
  --u: calc(var(--cw) / 100);
  position:relative; width:100%; height:calc(var(--cw) * 682.63 / 393); background:#fff; overflow:hidden;
  container-type:inline-size;
  font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
}
.audit-card .a-abs{ position:absolute; }
.a-emblem img{ width:100%; height:100%; object-fit:contain; }
.a-emblem1{ left:calc(var(--u)*29.17); top:calc(var(--u)*3.65); width:calc(var(--u)*19.79); height:calc(var(--u)*20.96); }
.a-emblem2{ left:calc(var(--u)*51.17); top:calc(var(--u)*3.78); width:calc(var(--u)*19.79); height:calc(var(--u)*20.70); }
.a-title{ left:calc(var(--u)*9.11); top:calc(var(--u)*29.12); transform:translateY(-50%); color:#b1030e; font-weight:700; font-size:calc(var(--u)*3.51); letter-spacing:calc(var(--u)*.176); white-space:nowrap; }
.a-rule-red{ left:calc(var(--u)*8.98); top:calc(var(--u)*36.07); width:calc(var(--u)*83.08); height:calc(var(--u)*.78); background:#b1030e; }
.a-rule-black{ left:calc(var(--u)*8.65); top:calc(var(--u)*68.70); width:calc(var(--u)*83.08); height:calc(var(--u)*.78); background:#000; }
.a-info{ left:calc(var(--u)*9.11); top:calc(var(--u)*43.17); color:#000; font-weight:700; font-size:calc(var(--u)*3.44); letter-spacing:calc(var(--u)*.172); }
.a-info p{ margin:0; line-height:calc(var(--u)*4.12); white-space:nowrap; }
.a-section{ left:calc(var(--u)*9.16); top:calc(var(--u)*78.50); transform:translateY(-50%); color:#b1030e; font-weight:700; font-size:calc(var(--u)*3.44); letter-spacing:calc(var(--u)*.172); white-space:nowrap; }
.a-intro{ left:calc(var(--u)*8.91); top:calc(var(--u)*85.58); color:#000; font-weight:700; font-size:calc(var(--u)*2.47); letter-spacing:calc(var(--u)*.124); }
.a-intro p{ margin:0; line-height:calc(var(--u)*2.97); white-space:nowrap; }
.a-status-lb{ left:calc(var(--u)*9.16); top:calc(var(--u)*118.1); transform:translateY(-50%); color:#b1030e; font-weight:700; font-size:calc(var(--u)*3.44); white-space:nowrap; }
.a-status-val{ left:calc(var(--u)*27.19); top:calc(var(--u)*118.1); transform:translateY(-50%); color:#b1030e; font-weight:700; font-size:calc(var(--u)*4.30); letter-spacing:calc(var(--u)*.215); white-space:nowrap; }
.a-tip{ left:calc(var(--u)*9.16); top:calc(var(--u)*125.45); color:#b1030e; font-weight:700; font-size:calc(var(--u)*1.93); letter-spacing:calc(var(--u)*.097); }
.a-tip p{ margin:0; line-height:calc(var(--u)*2.32); white-space:nowrap; }
.a-seal{ left:calc(var(--u)*68.19); top:calc(var(--u)*133.33); width:calc(var(--u)*21.35); height:calc(var(--u)*21.35); }
.a-seal img{ width:100%; height:100%; object-fit:contain; }
.a-date{ left:calc(var(--u)*65.65); top:calc(var(--u)*148.73); transform:translateY(-50%); color:#000; font-weight:700; font-size:calc(var(--u)*3.05); letter-spacing:calc(var(--u)*.392); white-space:nowrap; }
.rf-banner{
  margin-top:2.6cqw; display:flex; align-items:center; gap:1.6cqw;
  background:linear-gradient(90deg,#e5392a,#b40d0c); color:#fff;
  border-radius:1.6cqw; padding:2.6cqw 3cqw; font-size:3cqw; line-height:1.4;
}
.rf-banner-ic{ flex:0 0 auto; }
.rf-banner-ic svg{ width:4.4cqw; height:4.4cqw; }

.rf-building{ width:100%; display:block; margin-top:4cqw; }

/* ============ 两会钱包（Figma Group 14 / Group 23 / Group 24）============ */
.wallet-body{ background:#7a0f0f; }

/* ---- 状态一 · 未领卡（Group 14）：1:1 还原 Figma「Main - 两会国民经济倒计时」(768×1334) ---- */
/* 所有坐标 = Figma 像素 / 768(宽) 或 /1334(高) × 100%，字号 = px/768 × 100cqw */
.wallet-a{
  overflow-y:auto; overflow-x:hidden;
  display:block;
  min-height:100vh; min-height:100dvh; padding-bottom:88px;   /* 铺满整屏 + 底部导航留白 */
  /* 与海报底边同色的暖橙横向渐变，海报下方空白无缝衔接 */
  background:linear-gradient(90deg,#f7b891 0%,#fcd6ba 50%,#f7ad7d 100%);
}
.wa-stage{
  position:relative; width:100%; height:0; padding-top:173.6979%; overflow:hidden;
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
}
.wa-stage > *{ position:absolute; }

/* 背景美术分层（三层全幅叠加）*/
.wa-bg{ inset:0; width:100%; height:100%; object-fit:cover; pointer-events:none; }

/* 徽章 */
.wa-emblem{ height:auto; }
.wa-emblem-1{ left:26.693%; top:4.198%; width:21.875%; }
.wa-emblem-2{ left:51.563%; top:4.348%; width:21.875%; }

/* 标题：全国两会 国民经济 */
.wa-heading{
  left:0; right:0; top:23.013%; transform:translateY(-50%);
  text-align:center; white-space:nowrap;
  color:#8e0504; font-size:8.333vw; font-weight:800; letter-spacing:.5vw;
}

/* 倒计时框（圆角描边） */
.wa-cdbox{
  left:11.979%; top:28.336%; width:76.172%; height:16.792%;
  border:0.26vw solid #fee1bf; border-radius:2.34vw;
  background:rgba(255,255,255,.14);
}
/* 框内分隔线 */
.wa-cd-line{
  left:12.109%; top:36.507%; width:76.042%; height:0.45%;
  background:#d06910; border-radius:1px;
}
/* 倒计时 07 天 */
.wa-cd-label{
  left:23.307%; top:31.559%; transform:translateY(-50%);
  color:#d96a00; font-size:8.333vw; font-weight:700; white-space:nowrap;
}
.wa-cd-num{
  left:50.13%; top:31.522%; transform:translateY(-50%);
  color:#a30209; font-size:12.5vw; font-weight:800; white-space:nowrap; line-height:1;
}
.wa-cd-unit{
  left:66.406%; top:31.559%; transform:translateY(-50%);
  color:#d96a00; font-size:8.333vw; font-weight:700; white-space:nowrap;
}
/* 剩余名额：10000名 */
.wa-slots{
  left:23.307%; top:41.942%; transform:translateY(-50%);
  color:#a30209; font-size:6.25vw; font-weight:700; white-space:nowrap;
}
.wa-slots b{ font-weight:700; }

/* 银行卡 图层2 */
.wa-card{
  left:7.943%; top:47.676%; width:83.984%; height:auto;
}

/* 免费领取按钮 */
.wa-claim{
  left:11.719%; top:81.484%; width:76.563%; height:9.82%;
  padding:0; border:0; background:transparent; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}
.wa-claim-bg{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:fill; pointer-events:none;
}
.wa-claim-tx{
  position:relative; color:#fff; font-size:6.25vw; font-weight:700;
  white-space:nowrap; text-shadow:0 1px 2px rgba(0,0,0,.2);
}
.wa-claim:active .wa-claim-bg{ filter:brightness(.94); }

/* 底部标语：麦穗 + 两会卡 | 限量发行5000张 */
.wa-wheat{ top:92.879%; width:3.385%; height:auto; }
.wa-wheat-l1{ left:11.719%; }
.wa-wheat-r1{ left:35.677%; }
.wa-wheat-l2{ left:47.917%; }
.wa-wheat-r2{ left:84.896%; }
.wa-foot{
  transform:translateY(-50%); color:#780001;
  font-size:4.688vw; font-weight:700; white-space:nowrap;
}
.wa-foot-a{ left:19.401%; top:94.565%; }
.wa-foot-b{ left:51.563%; top:94.79%; }
.wa-foot-sep{
  left:43.229%; top:93.628%; width:0.521%; height:2.849%;
  background:#d06910;
}

/* ---- 状态二 · 已领卡（Group 23）：干净大会堂底图 bg-b.png ---- */
.wallet-b{
  padding:5vw 6vw 26vw; align-items:center;
  background:url('../img/wallet/bg-b.png') top center / cover no-repeat, #7a0f0f;
}
.wb-head{
  width:100%; display:flex; align-items:center; justify-content:center; gap:2vw;
  padding-top:1vw; font-weight:900; text-shadow:0 1px 3px rgba(80,0,0,.55);
}
.wb-emblems{ display:flex; align-items:center; gap:.6vw; }
.wb-emblems img{ width:9vw; height:auto; }
.wb-title{
  font-size:7vw; letter-spacing:.6vw;
  background:linear-gradient(180deg,#fff6df,#f4d488); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.wb-sep{ width:.4vw; height:6vw; background:linear-gradient(180deg,#fff6df,#e6b24d); margin:0 .6vw; }
.wb-sub{
  font-size:3.8vw; color:#f4d488; font-weight:700; letter-spacing:.4vw;
  border:.4vw solid #e9c877; border-radius:1.6vw; padding:.8vw 2.4vw;
  background:rgba(120,10,10,.35);
}

.wb-card{
  display:block; margin-top:20vh; width:90vw; height:auto;   /* 顶部标题不动，下方内容整体下移 20% */
  border-radius:2.6vw;
  filter:drop-shadow(0 3vw 7vw rgba(30,0,0,.5));
}
.wb-card-chip{
  position:absolute; left:12%; top:37%; width:15%; aspect-ratio:4/3; border-radius:2vw;
  background:linear-gradient(135deg,#ffe9a8 0%,#e6b24d 55%,#c9963a 100%);
  box-shadow:inset 0 0 2vw rgba(120,70,0,.5), 0 1vw 2vw rgba(60,10,0,.4);
}
.wb-card-chip::before{
  content:""; position:absolute; inset:22% 18%; border:.5vw solid rgba(120,70,0,.45); border-radius:.8vw;
}
.wb-card-name{
  position:absolute; left:52%; top:50%; transform:translate(-50%,-50%);
  font-size:17vw; font-weight:900; letter-spacing:2vw;
  background:linear-gradient(180deg,#fff2cf,#f2cf83 60%,#e0a63c); -webkit-background-clip:text; background-clip:text; color:transparent;
  text-shadow:0 3px 6px rgba(90,0,0,.35);
}

.wb-funcs{
  margin-top:6vw; width:100%; display:grid; grid-template-columns:repeat(5,1fr); gap:1vw;
}
.wb-func{ display:flex; flex-direction:column; align-items:center; gap:1.8vw; color:#f2d48a; }
.wb-fic{
  width:13vw; height:13vw; border-radius:3.2vw;
  display:flex; align-items:center; justify-content:center;
  background:rgba(120,10,10,.3); border:.5vw solid #e9c877;
  box-shadow:0 0 3vw rgba(240,200,120,.35), inset 0 0 2vw rgba(255,220,150,.2);
}
.wb-fic svg{ width:7vw; height:7vw; }
.wb-flb{ font-size:3.4vw; font-weight:700; text-shadow:0 1px 2px rgba(60,0,0,.5); }

.wb-status{
  margin-top:6vw; width:100%; display:flex; align-items:center; justify-content:center; gap:2.6vw;
  background:rgba(120,10,10,.3); border:.5vw solid #e9c877;
  border-radius:6vw; padding:3vw 4vw; color:#f2d48a; white-space:nowrap;
  box-shadow:0 0 3vw rgba(240,200,120,.3);
}
.wb-st-ic svg{ width:5.6vw; height:5.6vw; color:#f4d488; }
.wb-st-lines{ display:flex; flex-direction:column; gap:1vw; }
.wb-st-text{ font-size:3.6vw; font-weight:700; line-height:1.3; }
.wb-st-text b{ color:#ffe9a8; }

.wb-activate{
  margin-top:6vw; width:52vw; height:11vw; border-radius:5.5vw;
  background:linear-gradient(180deg,#fff2cf 0%,#f2cf83 55%,#e0a63c 100%); color:#8a2a00;
  font-size:5vw; font-weight:800; letter-spacing:1vw;
  border:.5vw solid #fff0c4; box-shadow:0 1.4vw 3.4vw rgba(30,0,0,.4);
}
.wb-invite{
  margin-top:5.5vw; width:86vw; height:14vw; border-radius:7vw;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(180deg,#e0403a 0%,#c11616 55%,#a11212 100%);
  color:#ffe9a8; font-size:6.4vw; font-weight:900; letter-spacing:1.8vw;
  border:.9vw solid #f0cf83;
  box-shadow:0 0 5vw rgba(240,200,120,.55), 0 1.6vw 4vw rgba(30,0,0,.5), inset 0 0 3vw rgba(255,220,150,.3);
  text-shadow:0 2px 4px rgba(90,0,0,.5);
}

/* 已提交入会申请：等待审批 灰色框（替代 激活额度 / 立即前往邀请）*/
.wb-pending{
  margin-top:6vw; width:86vw; height:14vw; border-radius:7vw;
  display:flex; align-items:center; justify-content:center; gap:2vw;
  background:linear-gradient(180deg,#9aa0a8 0%,#7c828a 100%); color:#f2f4f6;
  font-size:6vw; font-weight:800; letter-spacing:1.4vw;
  border:.9vw solid rgba(255,255,255,.28);
  box-shadow:0 1.4vw 3.4vw rgba(20,20,20,.35), inset 0 0 3vw rgba(255,255,255,.12);
}
.wb-pending svg{ width:6.6vw; height:6.6vw; flex:0 0 auto; }

/* 审核满3天：立即开户（金色可点，点击弹出邀请要求）*/
.wb-open{
  margin-top:6vw; width:86vw; height:14vw; border-radius:7vw;
  display:flex; align-items:center; justify-content:center; gap:2vw;
  background:linear-gradient(180deg,#fff3d0,#f0c463 60%,#dca43a); color:#7a1414;
  font-size:6.4vw; font-weight:900; letter-spacing:1.8vw;
  border:.9vw solid #fff0c4;
  box-shadow:0 0 5vw rgba(240,200,120,.5), 0 1.6vw 4vw rgba(30,0,0,.45);
  text-shadow:0 1px 0 rgba(255,245,210,.6);
}
/* 已满足邀请要求：开户资料上传中（灰色不可点）*/
.wb-opening{
  margin-top:6vw; width:86vw; min-height:14vw; padding:2vw 4vw; border-radius:7vw;
  display:flex; align-items:center; justify-content:center; gap:2vw; text-align:center;
  background:linear-gradient(180deg,#9aa0a8 0%,#7c828a 100%); color:#f2f4f6;
  font-size:4.6vw; font-weight:800; letter-spacing:.4vw;
  border:.9vw solid rgba(255,255,255,.28);
  box-shadow:0 1.4vw 3.4vw rgba(20,20,20,.35), inset 0 0 3vw rgba(255,255,255,.12);
  cursor:default;
}
.wb-opening svg{ width:6vw; height:6vw; flex:0 0 auto; }

/* ---- 激活额度弹窗（Group 24）：bg-modal.png 金牌底图 ---- */
.wallet-modal{ position:fixed; inset:0; z-index:300; display:flex; align-items:center; justify-content:center; }
.wallet-modal[hidden]{ display:none; }
.wm-mask{ position:absolute; inset:0; background:rgba(20,2,2,.55); }
.wm-plaque{
  position:relative; width:100%; max-width:var(--card-max); height:100%;
  background:url('../img/wallet/bg-modal.png') center / cover no-repeat;
  container-type:inline-size;
}
.wm-plaque > *{ position:absolute; left:50%; transform:translateX(-50%); text-align:center; }
.wm-emblems{ top:30%; display:flex; justify-content:center; gap:2vw; white-space:nowrap; }
.wm-emblems img{ width:16vw; height:auto; filter:drop-shadow(0 1vw 2vw rgba(60,0,0,.4)); }
.wm-title{
  top:45%; font-size:9vw; font-weight:900; color:#7a1414;
  letter-spacing:2vw; text-shadow:0 1px 0 rgba(255,240,200,.6);
}
.wm-join{
  top:57%; padding:2.6vw 12vw; border-radius:8vw;
  background:linear-gradient(180deg,#fff3d0,#f0c463 60%,#dca43a); color:#7a1414;
  font-size:5.4vw; font-weight:800; letter-spacing:2vw;
  border:.4vw solid #fff0c4; box-shadow:0 1.6vw 4vw rgba(90,40,0,.4);
}

/* 查看我的申请凭证 按钮（等待审批下方）*/
.wb-cert-btn{
  margin-top:3.4vw; width:86vw; height:12vw; border-radius:6vw;
  display:flex; align-items:center; justify-content:center; gap:2vw;
  background:linear-gradient(180deg,#fff3d0,#f0c463 60%,#dca43a); color:#7a1414;
  font-size:4.6vw; font-weight:800; letter-spacing:.6vw;
  border:.5vw solid #fff0c4; box-shadow:0 1.4vw 3.4vw rgba(90,40,0,.35);
}
.wb-cert-btn svg{ width:5.6vw; height:5.6vw; flex:0 0 auto; }

/* ---- 银行卡申请凭证弹窗（Figma 3:149）：cert/bg.png 背景 + 叠加动态文字 ----
   注：使用独立命名空间 wc-*（wallet cert），避免与加入两会凭证 .cert-* 冲突 */
.wc-modal{ position:fixed; inset:0; z-index:320; display:flex; align-items:center; justify-content:center; padding:5vw 4vw; overflow-y:auto; }
.wc-modal[hidden]{ display:none; }
.wc-mask{ position:absolute; inset:0; background:rgba(20,2,2,.6); }
.wc-sheet{ position:relative; width:100%; max-width:var(--card-max); margin:auto; }
.wc-card{
  position:relative; width:100%; height:0; padding-top:177.862%;
  background:url('../img/wallet/cert/bg.png') center / 100% 100% no-repeat;
  container-type:inline-size; border-radius:3vw; overflow:hidden;
  box-shadow:0 6vw 14vw rgba(30,0,0,.5);
}
.wc-v{
  position:absolute; display:flex; align-items:center; white-space:nowrap;
  background:#fffcf7; color:#5f5a55; font-size:4.03vw; font-weight:400; line-height:1;
}
.wc-no  { top:28.76%; left:41.81%; right:13%; bottom:68.52%; }
.wc-name{ top:33.91%; left:37.78%; right:13%; bottom:63.37%; }
.wc-id4 { top:39.07%; left:60%;    right:13%; bottom:58.21%; }
.wc-date{ top:44.22%; left:41.81%; right:13%; bottom:53.06%; }
.wc-type{ top:49.38%; left:41.81%; right:13%; bottom:47.91%; }
.wc-close{
  display:block; margin:4vw auto 0; padding:2.6vw 12vw; border-radius:8vw;
  background:linear-gradient(180deg,#fff3d0,#f0c463 60%,#dca43a); color:#7a1414;
  font-size:4.4vw; font-weight:800; letter-spacing:1vw; border:1px solid #fff0c4;
  box-shadow:0 2vw 5vw rgba(90,40,0,.4);
}

/* ---- 开户凭证弹窗（Figma 1:74）：opencert/bg.png 底图(910×1213) + 叠加动态文字/银行卡 ----
   坐标按 Figma 帧换算成 %(x相对宽910、y相对高1213.33)，字号用 vw(帧宽映射到弹窗宽≈92vw) */
.oc-modal{ position:fixed; inset:0; z-index:320; display:flex; align-items:center; justify-content:center; padding:5vw 4vw; overflow-y:auto; }
.oc-modal[hidden]{ display:none; }
.oc-mask{ position:absolute; inset:0; background:rgba(20,2,2,.6); }
.oc-sheet{ position:relative; width:100%; max-width:var(--card-max); margin:auto; }
.oc-card{
  position:relative; width:100%; height:0; padding-top:133.333%; /* 1213.33/910 */
  background:url('../img/wallet/opencert/bg.png') center / 100% 100% no-repeat;
  border-radius:3vw; overflow:hidden; box-shadow:0 6vw 14vw rgba(30,0,0,.5);
  font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
}
.oc-card > *{ position:absolute; }
.oc-t{ white-space:nowrap; line-height:1; color:#182744; font-size:2.02vw; }
/* 开户信息：左标签(x≈11%) / 右值(x≈24.75%)，7 行等距 */
.oc-l1,.oc-l2,.oc-l3,.oc-l4,.oc-l5,.oc-l6,.oc-l7{ left:11%; }
.oc-r1,.oc-r2,.oc-r3,.oc-r4,.oc-r5,.oc-r6,.oc-r7{ left:24.75%; }
.oc-l1,.oc-r1{ top:40.73%; }
.oc-l2,.oc-r2{ top:44.01%; }
.oc-l3,.oc-r3{ top:47.29%; }
.oc-l4,.oc-r4{ top:50.57%; }
.oc-l5,.oc-r5{ top:53.85%; }
.oc-l6,.oc-r6{ top:57.13%; }
.oc-l7,.oc-r7{ top:60.41%; }
/* 右上红字：凭证编号 / 开户时间 */
.oc-red{ left:68.2%; white-space:nowrap; line-height:1; color:#c10000; font-size:1.38vw; }
.oc-red1{ top:6.4%; }
.oc-red2{ top:8.43%; }
/* 银行卡图 */
.oc-cardimg{ left:53.91%; top:41%; width:35.39%; height:auto; border-radius:1.6vw; }
/* 右下：机构 + 日期（居中两行）*/
.oc-foot{ left:72.75%; width:14.6%; top:80.52%; text-align:center; color:#182744; font-size:1.34vw; line-height:1.4; white-space:nowrap; }

/* ---- 转账汇款 ---- */
.wt-balance{
  display:flex; flex-direction:column; align-items:center; gap:6px;
  background:linear-gradient(180deg,#c81e1e,#8f1414); color:#ffe9c8;
  border-radius:14px; padding:18px; margin-bottom:14px;
}
.wt-balance span{ font-size:13px; opacity:.9; }
.wt-balance b{ font-size:30px; font-weight:900; color:#ffd15a; }

/* ---- 收付款 ---- */
.wr-card{
  background:#fff; border-radius:16px; padding:24px 18px; text-align:center;
  box-shadow:0 10px 26px rgba(80,10,10,.18);
}
.wr-title{ font-size:16px; font-weight:800; color:#8f1414; }
.wr-qr{ width:220px; height:220px; margin:16px auto; display:flex; align-items:center; justify-content:center; }
.wr-qr canvas,.wr-qr img{ width:100% !important; height:100% !important; }
.wr-name{ font-size:15px; color:#333; font-weight:700; }
.wr-code-row{ display:flex; align-items:center; justify-content:center; gap:10px; margin-top:12px; }
.wr-code-label{ font-size:13px; color:#8a8a8a; }
.wr-code{ font-size:20px; font-weight:800; letter-spacing:3px; color:#c01414; }
.wr-copy{ padding:5px 14px; border-radius:14px; background:linear-gradient(180deg,#e5433a,#c11616); color:#fff; font-size:13px; font-weight:700; }
.wr-tip{ margin-top:14px; font-size:12px; color:#8a8a8a; line-height:1.6; }

/* ---- 扫一扫 ---- */
.scan-body{ background:#0b0b0b; }
.scan-view{ background:#0b0b0b; }
.top-bar-dark{ color:#fff; }
.scan-stage{
  position:relative; flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center;
  min-height:70vh; overflow:hidden;
}
#scanVideo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.scan-frame{ position:relative; width:66%; aspect-ratio:1; z-index:2; }
.sf-corner{ position:absolute; width:26px; height:26px; border:3px solid #ffd15a; }
.sf-corner.tl{ left:0; top:0; border-right:none; border-bottom:none; }
.sf-corner.tr{ right:0; top:0; border-left:none; border-bottom:none; }
.sf-corner.bl{ left:0; bottom:0; border-right:none; border-top:none; }
.sf-corner.br{ right:0; bottom:0; border-left:none; border-top:none; }
.scan-line{
  position:absolute; left:6%; right:6%; top:0; height:2px; background:linear-gradient(90deg,transparent,#ffd15a,transparent);
  animation:scanmove 2.4s linear infinite;
}
@keyframes scanmove{ 0%{ top:4%; } 100%{ top:96%; } }
.scan-hint{ position:absolute; bottom:14%; left:0; right:0; text-align:center; color:#fff; font-size:13px; z-index:2; text-shadow:0 1px 4px rgba(0,0,0,.6); }
.scan-actions{ padding:18px; display:flex; justify-content:center; }
.scan-manual{ padding:10px 26px; border-radius:22px; background:rgba(255,255,255,.14); color:#fff; font-size:14px; border:1px solid rgba(255,255,255,.35); }

/* ---- 账户安全 ---- */
.ws-list{ display:flex; flex-direction:column; gap:12px; }
.ws-item{
  display:flex; align-items:center; gap:12px; background:#fff; border-radius:14px; padding:16px;
  box-shadow:0 6px 16px rgba(80,10,10,.12);
}
.ws-ic{ width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:rgba(200,30,30,.1); color:#c01414; }
.ws-ic svg{ width:22px; height:22px; }
.ws-label{ font-size:15px; font-weight:700; color:#333; }
.ws-desc{ margin-left:auto; font-size:13px; color:#8a8a8a; }
.ws-arrow svg{ width:18px; height:18px; color:#c0c0c0; }

/* ---- 余额明细 ---- */
.wd-summary{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:14px; }
.wd-sum-item{
  background:linear-gradient(180deg,#c81e1e,#8f1414); color:#ffe9c8; border-radius:14px; padding:16px; text-align:center;
}
.wd-sum-item.wd-frozen{ background:linear-gradient(180deg,#6b6b6b,#454545); }
.wd-sum-item span{ display:block; font-size:12px; opacity:.9; }
.wd-sum-item b{ font-size:22px; font-weight:900; color:#ffd15a; margin-top:6px; display:block; }
.wd-sum-item.wd-frozen b{ color:#e6e6e6; }
.wd-list{ background:#fff; border-radius:14px; overflow:hidden; box-shadow:0 6px 16px rgba(80,10,10,.12); }
.wd-empty{ text-align:center; color:#8a8a8a; padding:40px 0; font-size:14px; }
.wd-row{ display:flex; align-items:center; justify-content:space-between; padding:14px 16px; border-bottom:1px solid #f2ece0; }
.wd-row:last-child{ border-bottom:none; }
.wd-main{ display:flex; flex-direction:column; gap:4px; min-width:0; }
.wd-remark{ font-size:14px; color:#333; font-weight:600; }
.wd-time{ font-size:12px; color:#9a9a9a; }
.wd-right{ text-align:right; }
.wd-amt{ font-size:16px; font-weight:800; }
.wd-amt.in{ color:#c01414; }
.wd-amt.out{ color:#2c8a3d; }
.wd-bal{ display:block; font-size:12px; color:#9a9a9a; margin-top:2px; }

/* ============ 每日签到 (Group 1) ============ */
.checkin-body{ background:#d5100a; }
.viewport.checkin-view{ background:#d5100a; }

.ck-back{
  position:absolute; top:10px; left:8px; z-index:20;
  width:40px; height:40px; display:flex; align-items:center; justify-content:center;
  color:#fff; filter:drop-shadow(0 1px 4px rgba(0,0,0,.4));
}
.ck-back svg{ width:28px; height:28px; }

/* 海报（背景图，真文字覆盖其月历区域） */
.ck-poster{ position:relative; width:100%; line-height:0; container-type:inline-size; }
.ck-bg{ width:100%; display:block; }

/* 月历卡片：绝对定位覆盖海报中烘焙的月历，用真实文字重建 */
.ck-card{
  position:absolute; left:2.2%; top:44.9%; width:95.5%; height:46.6%;
  display:flex; flex-direction:column;
  padding:3.2cqw 3.6cqw 3.4cqw;
  background:linear-gradient(180deg,#fffdf9,#fbf5ea); border-radius:4cqw; overflow:hidden;
}
/* 月份标题 */
.ck-month{
  position:relative; display:flex; align-items:baseline; gap:0.8cqw;
  color:#c81414; line-height:1; padding:0 0.6cqw 2.4cqw;
  margin-bottom:2cqw; border-bottom:0.3cqw solid #efe2c6;
}
.ck-month::after{
  content:""; position:absolute; left:0.6cqw; bottom:-0.35cqw; width:14cqw; height:0.7cqw;
  border-radius:1cqw; background:linear-gradient(90deg,#e0a94b,#f6d97a);
}
.ck-month b{ font-size:8.6cqw; font-weight:900; letter-spacing:0.2cqw; }
.ck-month span{ font-size:4cqw; font-weight:800; }
.ck-month i{ margin-left:auto; align-self:center; font-style:normal; font-size:3cqw; font-weight:600; color:#b79a5e; }

/* 星期表头 */
.ck-week{ display:grid; grid-template-columns:repeat(7,1fr); margin-bottom:1cqw; }
.ck-wk{
  text-align:center; font-size:2.9cqw; font-weight:700; color:#9a8a6a; padding:1cqw 0 1.6cqw;
}
.ck-wk.end{ color:#c81414; }

/* 日期网格 6x7 */
.ck-grid{ flex:1; display:grid; grid-template-columns:repeat(7,1fr); grid-auto-rows:1fr; }
.ck-cell{ position:relative; display:flex; align-items:center; justify-content:center; }
.ck-cell.empty{ visibility:hidden; }
.ck-d{
  position:relative; z-index:1; width:7.6cqw; height:7.6cqw; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-style:normal; font-size:3.5cqw; font-weight:600; color:#5a5048;
}
/* 已签到 */
.ck-cell.done .ck-d{ background:#fbe3e1; color:#c81414; font-weight:700; }
.ck-tick{
  position:absolute; z-index:2; right:1.2cqw; top:0.6cqw; font-style:normal;
  font-size:2.4cqw; font-weight:900; color:#1aa05a; line-height:1;
}
/* 今天 */
.ck-cell.today .ck-d{
  background:linear-gradient(180deg,#ff5a3c,#d21f1f); color:#fff; font-weight:800;
  box-shadow:0 0.6cqw 1.8cqw rgba(210,31,31,.45);
}
.ck-cell.today::after{
  content:"今天"; position:absolute; bottom:-0.4cqw; left:50%; transform:translateX(-50%);
  font-size:2cqw; font-weight:700; color:#d21f1f; white-space:nowrap;
}
.ck-cell.today .ck-tick{ color:#fff; }

/* 立即签到按钮（日期卡片下方，海报底部红绸区） */
.ck-signbtn{
  position:absolute; left:50%; top:92%; transform:translateX(-50%);
  width:56%; height:6.6cqw; min-height:44px; border-radius:999px; cursor:pointer;
  font-family:inherit; font-size:4.2cqw; font-weight:800; letter-spacing:0.4cqw; color:#8a1414;
  background:linear-gradient(180deg,#ffe9a8,#e6a63c);
  border:0.4cqw solid #fff2cf; box-shadow:0 0.8cqw 2.4cqw rgba(0,0,0,.35);
  z-index:10;
}
.ck-signbtn.done{
  color:#fff; background:linear-gradient(180deg,#b9564e,#8f3a34);
  border-color:rgba(255,255,255,.5); box-shadow:none; opacity:.96;
}

/* 底部：累计 + 奖励阶梯 */
.ck-foot{ background:#d5100a; padding:6px 14px 26px; }
.ck-stat{ text-align:center; color:#ffe6b0; font-size:15px; font-weight:600; margin:2px 0 12px; }
.ck-stat b{ color:#fff; font-size:20px; font-weight:900; margin:0 3px; }
.ck-ladder{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.ck-tier{
  background:rgba(255,255,255,.1); border:1px solid rgba(246,217,122,.5);
  border-radius:12px; padding:9px 6px; text-align:center;
}
.ck-tier-d{ font-size:13px; font-weight:800; color:#ffe08a; margin-bottom:3px; }
.ck-tier-r{ font-size:11px; color:#ffd9d2; line-height:1.5; }
.ck-note{ margin-top:14px; text-align:center; color:rgba(255,255,255,.8); font-size:12px; line-height:1.7; }

/* 签到成功弹窗 */
.ck-modal{ position:fixed; inset:0; z-index:400; display:flex; align-items:center; justify-content:center; padding:0 40px; }
.ck-modal[hidden]{ display:none; }
.ck-modal .ckm-mask{ position:absolute; inset:0; background:rgba(30,4,4,.62); }
.ckm-card{
  position:relative; width:100%; max-width:300px; padding:40px 22px 22px; text-align:center;
  border-radius:22px; background:#fbf5e9;
  background-image:linear-gradient(#fbf5e9,#fbf5e9),linear-gradient(180deg,#f7e2a6,#e0a94b);
  background-origin:border-box; background-clip:padding-box,border-box; border:2.5px solid transparent;
  box-shadow:0 20px 50px rgba(60,6,6,.5); animation:pmPop .28s cubic-bezier(.2,.9,.3,1.2);
}
.ckm-badge{
  position:absolute; top:-28px; left:50%; transform:translateX(-50%);
  width:58px; height:58px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff;
  background:linear-gradient(180deg,#ffb43c,#e0891a); border:3px solid #fbf5e9; box-shadow:0 6px 16px rgba(210,120,20,.45);
}
.ckm-badge svg{ width:30px; height:30px; }
.ckm-title{ font-size:20px; font-weight:800; color:var(--red); }
.ckm-rewards{ margin-top:14px; display:flex; flex-direction:column; gap:8px; }
.ckm-rw{ display:flex; align-items:center; justify-content:space-between; background:#fff8ee; border:1px solid var(--gold-2); border-radius:12px; padding:10px 14px; }
.ckm-rw span{ font-size:13px; color:#7a6a4e; font-weight:600; }
.ckm-rw b{ font-size:16px; color:#c81e1e; font-weight:800; }
.ckm-ms{ margin-top:10px; font-size:12.5px; color:#e0891a; font-weight:700; }
.ckm-ok{
  margin-top:18px; width:100%; height:46px; border-radius:23px; cursor:pointer; font-family:inherit;
  font-size:15px; font-weight:800; letter-spacing:1px; color:#fff;
  background:linear-gradient(180deg,#ff5a3c,#d21f1f);
  border:1.5px solid var(--gold); box-shadow:0 5px 14px rgba(210,31,31,.4);
}

/* ============ 入会状态卡：当前两会等级 + 查看/成为按钮 ============ */
.jsc-level{
  display:flex; align-items:center; gap:14px;
  padding:14px 14px 16px; margin:6px 0 4px;
  background:linear-gradient(135deg,#fdf1d6 0%,#f7e2a6 100%);
  border:1.5px solid #e0a94b; border-radius:14px;
}
.jl-badge{
  flex:0 0 auto; width:60px; height:66px; position:relative;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  background:linear-gradient(180deg,#d21f1f 0%,#8f1414 100%);
  color:#f6d97a; border-radius:10px 10px 30% 30%/10px 10px 20% 20%;
  box-shadow:0 4px 12px rgba(140,10,10,.35);
}
.jl-num{ font-size:24px; font-weight:900; line-height:1; }
.jl-stars{ margin-top:2px; font-size:8.5px; color:#f6d97a; letter-spacing:1px; line-height:1; display:flex; gap:1px; }
.jl-stars i{ font-style:normal; }
.jl-info{ min-width:0; flex:1; }
.jl-cap{ font-size:12px; color:#a06a1a; font-weight:600; }
.jl-name{ font-size:18px; font-weight:900; color:#8f1414; margin-top:2px; }
.jl-meta{ margin-top:6px; font-size:12px; color:#7a5a1a; line-height:1.5; }
.jl-meta b{ color:#c81414; font-weight:800; }
.jsc-view-level{
  display:flex; align-items:center; justify-content:center; gap:6px;
  margin-top:14px; height:48px; border-radius:24px; cursor:pointer;
  font-size:16px; font-weight:800; letter-spacing:2px; color:#8a1414;
  background:linear-gradient(180deg,#ffe9a8,#e6a63c);
  border:1.5px solid #fff2cf; box-shadow:0 6px 16px rgba(200,30,30,.28);
}
.jsc-view-level svg{ width:18px; height:18px; }

/* 查看我的申请凭证（复审中）*/
.jsc-view-cert{
  display:flex; align-items:center; justify-content:center; gap:6px; width:100%;
  margin-top:12px; height:48px; border-radius:24px; cursor:pointer;
  font-size:16px; font-weight:800; letter-spacing:2px; color:#b40d0c;
  background:#fff; border:1.5px solid #e6a63c; box-shadow:0 4px 12px rgba(200,30,30,.16);
}
.jsc-view-cert svg{ width:18px; height:18px; }

/* 申请凭证弹窗（1:1 Figma Container卡片，分层背景图 + 动态文字）*/
.cert-modal{ position:fixed; inset:0; z-index:3000; display:flex; align-items:center; justify-content:center; padding:16px; }
.cert-modal[hidden]{ display:none; }
.cert-mask{ position:absolute; inset:0; background:rgba(0,0,0,.6); }
.cert-dialog{ position:relative; width:min(393px,92vw); max-height:92vh; overflow:auto; -webkit-overflow-scrolling:touch; }
.cert-card{
  position:relative; width:100%; aspect-ratio:393 / 521.95; overflow:hidden;
  background:#fff; border-radius:12px; box-shadow:0 14px 44px rgba(0,0,0,.45);
  container-type:inline-size;
  font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
}
.cert-card .cc-abs{ position:absolute; }
.cert-card img.cc-abs{ object-fit:contain; }
/* 背景分层 */
.cc-banner{ left:2.87cqw; top:5.60cqw; width:94.27cqw; height:37.24cqw; }
.cc-panel{ left:2.21cqw; top:29.17cqw; width:97.53cqw; height:55.47cqw; }
.cc-footer{ left:2.74cqw; top:89.19cqw; width:94.40cqw; height:38.28cqw; }
.cc-avatar{ left:6.77cqw; top:9.90cqw; width:16.41cqw; height:16.54cqw; }
/* 行图标 */
.cc-ic-level{ left:7.03cqw; top:33.20cqw; width:10.42cqw; height:10.42cqw; }
.cc-ic-welfare{ left:7.03cqw; top:51.82cqw; width:10.29cqw; height:10.29cqw; }
.cc-ic-status{ left:7.03cqw; top:70.31cqw; width:10.29cqw; height:10.29cqw; }
.cc-shield{ left:82.42cqw; top:69.27cqw; width:10.68cqw; height:12.50cqw; }
.cc-clock{ left:6.77cqw; top:101.43cqw; width:13.15cqw; height:13.67cqw; }
/* 分隔线 */
.cc-hr{ left:5.34cqw; width:89.45cqw; height:0.52cqw; background:#aeaeae; }
.cc-hr1{ top:47.66cqw; }
.cc-hr2{ top:66.27cqw; }
.cc-vsep{ left:42.71cqw; width:0.52cqw; height:11.07cqw; background:rgba(174,174,174,.23); }
.cc-vsep1{ top:32.94cqw; }
.cc-vsep2{ top:51.56cqw; }
.cc-vsep3{ top:70.05cqw; }
/* 文字层（cc-* 均加粗、单行、按中心定位）*/
.cert-card .cc-title,.cert-card .cc-lb,.cert-card .cc-val,
.cert-card .cc-w-fundlb,.cert-card .cc-w-fundnum,.cert-card .cc-w-wan,.cert-card .cc-w-prop,
.cert-card .cc-f-title,.cert-card .cc-f-sub{ font-weight:700; white-space:nowrap; }
.cc-title{ left:25.70cqw; top:19.21cqw; transform:translateY(-50%); font-size:6.49cqw; font-weight:800; color:#fdfdfd; }
.cc-lb-level{ left:22.01cqw; top:41.42cqw; transform:translateY(-50%); font-size:4.12cqw; color:#000; }
.cc-val-level{ left:47.84cqw; top:41.48cqw; transform:translateY(-50%); font-size:4.12cqw; color:#c50604; }
.cc-lb-welfare{ left:21.75cqw; top:57.75cqw; transform:translateY(-50%); font-size:4.12cqw; color:#000; }
.cc-w-fundlb{ left:48.44cqw; top:56.12cqw; transform:translateY(-50%); font-size:4.12cqw; color:#000; }
.cc-w-fundnum{ left:74.54cqw; top:55.40cqw; transform:translateY(-50%); font-size:5.70cqw; font-weight:800; color:#c50604; }
.cc-w-wan{ left:82.44cqw; top:55.47cqw; transform:translateY(-50%); font-size:4.12cqw; color:#c50604; }
.cc-w-prop{ left:48.44cqw; top:61.59cqw; transform:translateY(-50%); font-size:4.12cqw; color:#c50604; }
.cc-lb-status{ left:23.16cqw; top:75.83cqw; transform:translateY(-50%); font-size:4.12cqw; color:#000; }
.cc-val-status{ left:47.84cqw; top:76.08cqw; transform:translateY(-50%); font-size:4.12cqw; color:#f1c798; }
.cc-f-title{ left:28.78cqw; top:97.60cqw; transform:translateY(-50%); font-size:4.12cqw; color:#cf0308; }
.cc-f-sub{ left:28.52cqw; top:105.03cqw; font-size:3.44cqw; color:#000; }
.cc-f-sub p{ margin:0; line-height:4.12cqw; white-space:nowrap; }
.cert-close{
  position:absolute; top:8px; right:8px; z-index:2; width:30px; height:30px; border:none;
  border-radius:50%; background:rgba(0,0,0,.45); color:#fff; font-size:20px; line-height:30px;
  text-align:center; cursor:pointer;
}
.cert-save{
  display:block; width:100%; max-width:240px; height:46px; margin:16px auto 0;
  border:none; cursor:pointer; font-family:inherit; border-radius:23px;
  font-size:16px; font-weight:800; letter-spacing:1px; color:#7a2b00;
  background:linear-gradient(180deg,#ffe7a5,#ffc24d); box-shadow:0 6px 16px rgba(0,0,0,.35);
}
.cert-save:active{ transform:translateY(1px); }

/* ============ 会员证 ============ */
.jcert-wrap{ position:relative; }
.jcert-points{
  position:absolute; top:-18px; right:2px; z-index:4;
  display:inline-flex; align-items:center; gap:4px; white-space:nowrap;
  font-size:11.5px; font-weight:800; color:#8a1414;
  background:linear-gradient(180deg,#ffe9a8,#e6a63c);
  border:1px solid #f0c962; border-radius:12px; padding:3px 10px;
  box-shadow:0 3px 8px rgba(120,10,10,.3);
}
.jcert-points svg{ width:12px; height:12px; }
.jcert-points b{ color:#b1030e; }
.jcert{
  position:relative; margin:14px 0 4px; padding:12px 14px 14px;
  border-radius:14px; overflow:hidden;
  background:linear-gradient(150deg,#b8160f 0%,#8f0d0a 55%,#6c0705 100%);
  border:1.5px solid #f0c962;
  box-shadow:0 8px 20px rgba(120,10,10,.35), inset 0 0 0 1px rgba(246,217,122,.25);
}
.jcert::before{ /* 底纹光晕 */
  content:""; position:absolute; right:-30px; top:-30px; width:150px; height:150px;
  background:radial-gradient(circle,rgba(255,220,140,.22),transparent 70%); pointer-events:none;
}
.jcert-head{ display:flex; align-items:center; gap:9px; padding-bottom:10px; border-bottom:1px dashed rgba(246,217,122,.45); }
.jcert-emblem{ width:34px; height:34px; object-fit:contain; filter:drop-shadow(0 1px 3px rgba(0,0,0,.4)); }
.jcert-htext{ flex:1; min-width:0; }
.jcert-title{ font-size:17px; font-weight:900; color:#ffe9a8; letter-spacing:2px; line-height:1.1; }
.jcert-en{ font-size:8.5px; color:#f0c962; letter-spacing:1.5px; margin-top:2px; opacity:.85; }
.jcert-badge{
  flex:0 0 auto; font-size:12px; font-weight:900; color:#8a1414;
  background:linear-gradient(180deg,#ffe9a8,#e6a63c); border-radius:10px;
  padding:3px 9px; box-shadow:0 2px 6px rgba(0,0,0,.25);
}
.jcert-body{ display:flex; gap:12px; margin-top:12px; }
.jcert-photo{
  flex:0 0 auto; width:66px; height:82px; border-radius:8px; cursor:pointer;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px;
  color:#f0c962; background:rgba(255,255,255,.08); border:1px dashed rgba(246,217,122,.6);
}
.jcert-photo:active{ opacity:.7; }
.jcert-photo svg{ width:34px; height:34px; }
.jcert-photo-tag{ font-size:9px; color:#f0c962; opacity:.8; }
.jcert-info{ flex:1; min-width:0; display:flex; flex-direction:column; gap:6px; }
.jcert-row{ display:flex; align-items:baseline; font-size:12.5px; line-height:1.3; }
.jcert-row .k{ flex:0 0 auto; width:62px; color:#f3cf8a; opacity:.85; }
.jcert-row .v{ flex:1; min-width:0; color:#fff; font-weight:700; word-break:break-all; }
.jcert-row .v.mono{ font-family:"SF Mono",Menlo,Consolas,monospace; letter-spacing:.5px; font-weight:600; }
.jcert-row .v.lvl{ color:#ffe9a8; }
/* 前往升级会员等级 */
.jsc-upgrade{
  display:flex; align-items:center; justify-content:center; gap:6px;
  margin-top:14px; height:44px; border-radius:22px; cursor:pointer;
  font-size:14.5px; font-weight:800; letter-spacing:1px; color:#fff;
  background:linear-gradient(180deg,#ff6b3c,#c81212);
  box-shadow:0 6px 16px rgba(200,30,30,.32);
}
.jsc-upgrade .ju-ic{ width:18px; height:18px; }
.jsc-upgrade svg{ width:16px; height:16px; }
.jsc-upgrade:active{ opacity:.9; }

/* ============ 两会等级机制 (Group 13) ============ */
.mlevel-body{ background:#8a0806; }
.viewport.mlevel-view{
  background:linear-gradient(180deg,#a10a08 0%,#8a0806 50%,#5c0603 100%);
  overflow:hidden;
}

.ml-back{
  position:absolute; top:10px; left:8px; z-index:20;
  width:40px; height:40px; display:flex; align-items:center; justify-content:center;
  color:#fff; filter:drop-shadow(0 1px 4px rgba(0,0,0,.5));
}
.ml-back svg{ width:28px; height:28px; }

.ml-hero{ width:100%; display:block; }
.ml-foot{ width:100%; display:block; }

.ml-tiers{
  padding:14px 14px 10px;
  display:flex; flex-direction:column; gap:14px;
  background:transparent;
}

/* 单张等级卡：金框 + 深红底 + 内金细线 */
.ml-tier{
  position:relative;
  display:grid;
  grid-template-columns:22% 40% 38%;
  align-items:center; column-gap:2cqw;
  padding:3.4cqw 3cqw;
  border-radius:3cqw;
  background:linear-gradient(180deg,#a71310 0%,#7a0806 100%);
  border:0.5cqw solid;
  border-image:linear-gradient(180deg,#f6d97a,#c88a2a,#f6d97a) 1;
  box-shadow:0 1cqw 2.4cqw rgba(0,0,0,.35);
  container-type:inline-size;
}
.ml-tier::before{
  content:""; position:absolute; inset:0.6cqw; border-radius:2.2cqw;
  border:0.2cqw solid rgba(246,217,122,.55); pointer-events:none;
}
.ml-tier > *{ position:relative; z-index:1; }

/* 左：金色麦穗盾牌 */
.ml-shield-wrap{
  position:relative; text-align:center;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:1cqw 0;
}
.ml-laurel{
  position:absolute; inset:0; width:100%; height:100%;
  color:#f6d97a; opacity:.85;
  filter:drop-shadow(0 0.3cqw 0.6cqw rgba(0,0,0,.3));
}
.ml-shield{
  position:relative; z-index:1;
  width:11cqw; height:13cqw;
  display:flex; align-items:center; justify-content:center;
  font-size:6.4cqw; font-weight:900; color:#f6d97a;
  text-shadow:0 0.3cqw 0.4cqw rgba(0,0,0,.4);
  background:
    radial-gradient(ellipse at 50% 20%, #ff9060 0%, #ff5a2a 40%, #c81212 100%);
  border:0.4cqw solid #f6d97a;
  clip-path:polygon(0% 0%, 100% 0%, 100% 68%, 50% 100%, 0% 68%);
  box-shadow:0 0.6cqw 1.4cqw rgba(0,0,0,.4);
}
.ml-stars{
  position:relative; z-index:1;
  margin-top:1cqw; color:#f6d97a; font-size:2.6cqw; letter-spacing:0.4cqw; line-height:1;
  display:flex; gap:0.3cqw; justify-content:center;
  text-shadow:0 0.2cqw 0.4cqw rgba(0,0,0,.4);
}
.ml-stars i{ font-style:normal; }

/* 中：等级信息 */
.ml-info{ min-width:0; }
.ml-name{
  font-size:4.4cqw; font-weight:900; letter-spacing:0.2cqw;
  color:#f6d97a; margin-bottom:1.8cqw;
  text-shadow:0 0.3cqw 0.6cqw rgba(0,0,0,.4);
}
.ml-kv{
  display:flex; align-items:center; gap:1.2cqw;
  font-size:2.6cqw; color:#f5d4b0; margin:0.7cqw 0;
  white-space:nowrap;
}
.ml-kv span{ opacity:.85; }
.ml-kv b{
  font-size:3.2cqw; font-weight:900; color:#fff;
  padding:0.3cqw 1.4cqw; border-radius:1cqw;
  background:rgba(0,0,0,.35);
  border:0.15cqw solid rgba(246,217,122,.4);
}

/* 右：专属权益 */
.ml-rights{ min-width:0; }
.ml-rights-h{
  display:flex; align-items:center; gap:1cqw;
  font-size:2.7cqw; font-weight:700; color:#f6d97a;
  margin-bottom:1.4cqw;
  justify-content:center;
  letter-spacing:0.2cqw;
}
.ml-rights-h .line{
  flex:1; height:0.15cqw;
  background:linear-gradient(90deg,transparent,#f6d97a,transparent);
}
.ml-rights-list{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.2cqw 0.6cqw; }
.ml-rights-list.ml-rights-3{ grid-template-columns:repeat(3,1fr); }
.ml-rights-list.ml-rights-4{ grid-template-columns:repeat(4,1fr); }
.ml-rights-list.ml-rights-5{ grid-template-columns:repeat(5,1fr); }
.ml-rg{
  display:flex; flex-direction:column; align-items:center; gap:0.6cqw;
  font-size:2cqw; color:#f5d4b0; text-align:center; line-height:1.1;
}
.ml-rg-ic{
  width:5.4cqw; height:5.4cqw; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(180deg,#ff7a4a,#c81212);
  color:#fff;
  border:0.15cqw solid #f6d97a;
  box-shadow:0 0.3cqw 0.8cqw rgba(0,0,0,.35);
}
.ml-rg-ic svg{ width:3cqw; height:3cqw; }

/* 当前等级角标 + 高亮金边 */
.ml-cur-tag{
  position:absolute; top:-2.2cqw; right:2.4cqw; z-index:3;
  padding:0.6cqw 2.2cqw; border-radius:1.6cqw;
  font-size:2.8cqw; font-weight:900; color:#8a1414; letter-spacing:0.2cqw;
  background:linear-gradient(180deg,#ffe9a8,#e6a63c);
  border:0.25cqw solid #fff2cf;
  box-shadow:0 0.4cqw 1cqw rgba(0,0,0,.3);
}
.ml-tier.is-current{
  box-shadow:0 0 0 0.6cqw rgba(246,217,122,.35), 0 1cqw 2.4cqw rgba(0,0,0,.4);
}
.ml-tier.is-current::before{ border-color:#ffe9a8; }
.ml-tier.can-up{ cursor:pointer; transition:transform .12s; }
.ml-tier.can-up:active{ transform:scale(.985); }

/* 等级升级确认弹窗 */
.ml-modal{ position:fixed; inset:0; z-index:400; display:flex; align-items:center; justify-content:center; padding:0 32px; }
.ml-modal[hidden]{ display:none; }
.ml-mask{ position:absolute; inset:0; background:rgba(30,4,4,.65); backdrop-filter:blur(2px); }
.ml-mcard{
  position:relative; width:100%; max-width:320px; padding:44px 22px 22px; text-align:center;
  border-radius:22px; background:#fbf5e9;
  background-image:linear-gradient(#fbf5e9,#fbf5e9),linear-gradient(180deg,#f7e2a6,#e0a94b);
  background-origin:border-box; background-clip:padding-box,border-box; border:2.5px solid transparent;
  box-shadow:0 20px 50px rgba(60,6,6,.5); animation:pmPop .28s cubic-bezier(.2,.9,.3,1.2);
}
.ml-mbadge{
  position:absolute; top:-28px; left:50%; transform:translateX(-50%);
  width:60px; height:60px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff;
  background:linear-gradient(180deg,#ff6b3c,#c81212); border:3px solid #fbf5e9;
  box-shadow:0 6px 16px rgba(210,30,30,.5);
}
.ml-mbadge svg{ width:30px; height:30px; }
.ml-mbadge.lack{ background:linear-gradient(180deg,#8a8a8a,#5a5a5a); box-shadow:0 6px 16px rgba(0,0,0,.35); }
.ml-mtitle{ font-size:17px; line-height:1.5; color:#3a2a12; font-weight:700; }
.ml-mtitle b{ font-size:20px; font-weight:900; color:#c81414; }
.ml-msub{ font-size:13px; color:#7a6a4e; margin-top:10px; }
.ml-msub b{ color:#c81414; font-weight:800; }
.ml-mrewards{ margin-top:14px; display:flex; flex-direction:column; gap:8px; }
.ml-mrw{ display:flex; align-items:center; justify-content:space-between; background:#fff8ee; border:1px solid var(--gold-2); border-radius:12px; padding:10px 14px; }
.ml-mrw span{ font-size:13px; color:#7a6a4e; font-weight:600; }
.ml-mrw b{ font-size:15px; color:#c81e1e; font-weight:800; }
.ml-mrw b.hl{ color:#e0891a; }
.ml-mtip{ margin-top:10px; font-size:11.5px; color:#a08a5a; }
.ml-mbtns{ margin-top:14px; display:flex; gap:10px; }
.ml-mbtn{
  flex:1; height:44px; border-radius:22px; cursor:pointer; font-family:inherit;
  font-size:14.5px; font-weight:800; letter-spacing:1px; border:none;
  display:flex; align-items:center; justify-content:center;
}
.ml-mbtn.cancel{ color:#8a6a2a; background:#f0e6d0; }
.ml-mbtn.ok{ color:#fff; background:linear-gradient(180deg,#ff6b3c,#c81212); box-shadow:0 5px 14px rgba(210,30,30,.4); }

/* ============ 我的房产 ============ */
.mp-body{ background:#f5efe0; }
.viewport.mp-view{ background:#f5efe0; }
.mp-top{ display:flex; align-items:center; height:52px; background:linear-gradient(180deg,#d21f1f,#a10a08); color:#fff; padding:0 6px; box-shadow:0 3px 10px rgba(120,10,10,.25); }
.mp-back{ width:38px; height:38px; display:flex; align-items:center; justify-content:center; color:#fff; }
.mp-back svg{ width:24px; height:24px; }
.mp-title{ flex:1; text-align:center; font-size:17px; font-weight:800; letter-spacing:2px; text-shadow:0 1px 3px rgba(0,0,0,.3); }
.mp-right{ width:38px; }

.mp-summary{
  margin:12px 14px 4px; padding:20px 18px 22px; border-radius:16px; color:#fff;
  background:linear-gradient(135deg,#d21f1f 0%,#e5533a 60%,#f07a4a 100%);
  box-shadow:0 10px 26px rgba(200,30,30,.28); position:relative; overflow:hidden;
}
.mp-summary::before{ content:""; position:absolute; top:-40%; right:-20%; width:180px; height:180px; border-radius:50%; background:radial-gradient(circle,rgba(255,255,255,.22),transparent 70%); }
.mp-sm-cap{ font-size:13px; opacity:.9; }
.mp-sm-val{ margin-top:6px; font-size:15px; }
.mp-sm-val b{ font-size:32px; font-weight:900; letter-spacing:0.5px; }
.mp-sm-note{ margin-top:8px; font-size:12px; opacity:.9; }
.mp-sm-note b{ color:#ffe6b0; font-weight:800; margin:0 2px; }

.mp-main{ padding:12px 14px 90px; }

.mp-card{ background:#fff; border-radius:14px; box-shadow:0 6px 18px rgba(60,20,10,.10); margin-bottom:12px; overflow:hidden; }
.mp-c-head{ display:flex; align-items:center; gap:12px; padding:14px 14px 10px; border-bottom:1px dashed #f0e6d0; }
.mp-c-icon{ width:44px; height:44px; border-radius:12px; background:linear-gradient(135deg,#f7e2a6,#e0a94b); color:#8a1414; display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.mp-c-icon svg{ width:26px; height:26px; }
.mp-c-main{ flex:1; min-width:0; }
.mp-c-name{ font-size:16px; font-weight:800; color:#2a1a08; }
.mp-c-sub{ font-size:12px; color:#8a7a5a; margin-top:3px; }
.mp-c-tag{ padding:4px 10px; border-radius:12px; font-size:12px; font-weight:800; letter-spacing:0.5px; flex:0 0 auto; }
.mp-c-tag.wait{ color:#a06a1a; background:#fff3d6; border:1px solid #f0cf88; }
.mp-c-tag.doing{ color:#1a6ea0; background:#e6f2fc; border:1px solid #a8cff0; }
.mp-c-tag.done{ color:#1a8a3d; background:#e6f7ea; border:1px solid #9ed8ac; }
.mp-c-rows{ padding:4px 14px 12px; }
.mp-c-row{ display:flex; align-items:center; justify-content:space-between; padding:8px 0; border-bottom:1px dashed #f0e6d0; font-size:14px; }
.mp-c-row:last-child{ border-bottom:none; }
.mp-c-row label{ color:#8a7a5a; font-size:13px; }
.mp-c-row span{ color:#2a1a08; }
.mp-c-row b{ color:#2a1a08; font-weight:800; }
.mp-c-row .hl{ color:#c81414; }
.mp-c-row .mono{ font-family:"SF Mono","Roboto Mono",Menlo,monospace; font-size:12.5px; letter-spacing:0.2px; color:#5a5a5a; }
.mp-tip{ text-align:center; color:#8a7a5a; font-size:12px; margin-top:14px; line-height:1.7; padding:0 12px; }

.mp-empty{ text-align:center; padding:60px 20px 20px; color:#8a7a5a; }
.mp-empty svg{ width:60px; height:60px; opacity:.5; margin:0 auto 12px; }
.mp-empty p{ font-size:15px; font-weight:600; color:#5a4a2a; }
.mp-empty-sub{ font-size:13px !important; font-weight:400 !important; color:#8a7a5a !important; margin-top:4px; }
.mp-empty-btn{
  display:inline-block; margin-top:20px; padding:10px 26px; border-radius:22px;
  font-size:14px; font-weight:800; color:#fff; background:linear-gradient(180deg,#ff6b3c,#c81212);
  box-shadow:0 5px 14px rgba(210,30,30,.35);
}

/* ============ 两会盲盒抽奖：1:1 还原 Figma「Main - 抽奖 (2)」(768×1451) ============ */
/* 所有坐标/尺寸 = Figma 像素 / 768 × 100 → cqw（容器宽度相对单位） */
.lottery-body{ margin:0; background:#7a0d0d; padding-bottom:calc(64px + env(safe-area-inset-bottom)); }
.lot-view{
  position:relative; width:100%; max-width:480px; margin:0 auto;
  container-type:inline-size; overflow:hidden;
  background:#7a0d0d;
  font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
}
.lot-view > *:not(.lot-bg){ position:absolute; }
.lot-view img{ display:block; }
/* 抽奖规则页：底图在流内撑高，热区绝对定位覆盖 */
.lot-bg{ display:block; width:100%; height:auto; }
.lot-rule-card, .lot-rule-go{ display:block; background:transparent; border:0; cursor:pointer; padding:0; -webkit-tap-highlight-color:transparent; }
.lot-rule-card:active, .lot-rule-go:active{ opacity:.55; }
/* 抽奖主页：固定 768×1451 画布比例，全部子元素绝对定位 */
.lot-main{ aspect-ratio:768/1451; }

/* 背景美术分层（三层全幅） */
.lv-bg{ inset:0; width:100%; height:100%; object-fit:cover; pointer-events:none; }
.lv-glow{ left:10.938cqw; top:16.406cqw; width:173.047cqw; height:87.24cqw; pointer-events:none; }

/* 顶部标签（图片按钮，点击跳转） */
.lv-tab{ display:block; padding:0; border:0; background:transparent; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.lv-tab img{ width:100%; height:100%; }
.lv-tab:active{ opacity:.7; transform:scale(.97); }
.lv-tab-home  { left:0.651cqw;  top:4.818cqw; width:20.703cqw; height:9.375cqw; }
.lv-tab-prizes{ left:26.693cqw; top:4.818cqw; width:20.573cqw; height:9.375cqw; }
.lv-tab-rules { left:52.604cqw; top:4.948cqw; width:20.964cqw; height:9.245cqw; }
.lv-tab-logi  { left:78.906cqw; top:4.557cqw; width:20.703cqw; height:9.375cqw; }

/* 标题 / 副标题 / 角标（纯展示） */
.lv-title     { left:0;         top:6.641cqw;  width:100cqw;    height:68.49cqw;  pointer-events:none; }
.lv-subtitle  { left:19.792cqw; top:54.818cqw; width:60.547cqw; height:5.859cqw;  pointer-events:none; }
.lv-badge-luck{ left:0;         top:48.568cqw; width:27.214cqw; height:26.563cqw; pointer-events:none; }
.lv-badge-duck{ left:65.625cqw; top:42.448cqw; width:34.115cqw; height:29.818cqw; pointer-events:none; }

/* 奖品盘 */
.lv-board{ left:4.688cqw; top:61.849cqw; width:90.625cqw; height:88.151cqw; pointer-events:none; }

/* 九宫格奖品（纯展示） */
.lv-prize{ pointer-events:none; }
.lv-p-car   { left:15.234cqw; top:71.354cqw;  width:22.526cqw; height:23.568cqw; }
.lv-p-house { left:38.411cqw; top:71.354cqw;  width:22.656cqw; height:23.568cqw; }
.lv-p-cash80{ left:61.719cqw; top:71.354cqw;  width:23.047cqw; height:23.568cqw; }
.lv-p-cash30{ left:15.104cqw; top:95.573cqw;  width:22.656cqw; height:23.177cqw; }
.lv-p-phone { left:61.719cqw; top:95.703cqw;  width:23.047cqw; height:23.047cqw; }
.lv-p-sofa  { left:15.104cqw; top:119.401cqw; width:22.656cqw; height:20.964cqw; }
.lv-p-ebike { left:38.281cqw; top:119.401cqw; width:22.786cqw; height:20.964cqw; }
.lv-p-ac    { left:61.719cqw; top:119.401cqw; width:23.047cqw; height:20.964cqw; }

/* 立即抽奖中心按钮 */
.lv-draw{
  left:38.411cqw; top:95.703cqw; width:22.656cqw; height:23.047cqw;
  padding:0; border:0; background:transparent; cursor:pointer; border-radius:50%;
  -webkit-tap-highlight-color:transparent;
}
.lv-draw img{ width:100%; height:100%; }
.lv-draw:active{ transform:scale(.95); }
.lv-draw.spin{ animation:lotSpin .6s linear infinite; }
@keyframes lotSpin{ to{ transform:rotate(360deg); } }

/* 抽奖次数（奖品盘顶部留白区的动态数字胶囊） */
.lv-count{
  left:50%; top:66.5cqw; transform:translate(-50%,-50%);
  display:flex; align-items:center; gap:0.8cqw; white-space:nowrap;
  padding:0.8cqw 3cqw; border-radius:4cqw;
  background:rgba(120,6,6,.55); border:0.3cqw solid rgba(255,214,90,.6);
  color:#fff; font-size:3cqw; font-weight:800;
  text-shadow:0 1px 2px rgba(0,0,0,.55); pointer-events:none;
}
.lv-count b{ color:#ffe14d; font-size:3.6cqw; }

/* 底部「查看奖品」按钮（图片按钮，点击跳转） */
.lv-view{ display:block; -webkit-tap-highlight-color:transparent; }
.lv-view img{ width:100%; height:100%; }
.lv-view:active{ opacity:.75; transform:scale(.97); }
.lv-view-1{ left:1.823cqw;  top:161.979cqw; width:20.443cqw; height:18.88cqw; }
.lv-view-2{ left:27.214cqw; top:150cqw;      width:20.443cqw; height:18.88cqw; }
.lv-view-3{ left:52.474cqw; top:150cqw;      width:20.443cqw; height:18.88cqw; }
.lv-view-4{ left:77.734cqw; top:161.979cqw; width:20.443cqw; height:18.88cqw; }

/* 中奖弹窗奖品图 */
.lot-result-img{
  width:120px; height:120px; margin:0 auto 6px;
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.lot-result-img img{ width:100%; height:100%; object-fit:contain; }

/* ============ 已有奖品 / 奖品列表（Figma Group 32）============ */
.lp-body{ background:#8e0b0b; }
.lp-view{
  position:relative; width:100%; max-width:480px; min-height:100vh; margin:0 auto;
  padding:0 16px 40px; box-sizing:border-box;
  background:linear-gradient(180deg,#b01414 0%,#8e0b0b 40%,#6f0707 100%);
  font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
}
.lp-back{
  position:absolute; top:12px; left:10px; width:36px; height:36px; z-index:20;
  display:flex; align-items:center; justify-content:center; color:#fff;
  border-radius:50%; background:rgba(0,0,0,.28);
  box-shadow:0 2px 6px rgba(0,0,0,.25); -webkit-tap-highlight-color:transparent;
}
.lp-back:active{ background:rgba(0,0,0,.45); }
.lp-back svg{ width:22px; height:22px; }
.lp-emblems{ display:flex; align-items:center; justify-content:center; gap:8px; padding-top:16px; }
.lp-emblems img{ height:60px; width:auto; }
.lp-title{ text-align:center; margin-top:8px; font-size:24px; font-weight:900; color:#ffe9a8; letter-spacing:2px; text-shadow:0 2px 6px rgba(0,0,0,.4); }
.lp-subtitle{ text-align:center; margin-top:6px; font-size:12px; color:#ffd9a0; letter-spacing:1px; }
.lp-tabs{ display:flex; gap:10px; justify-content:center; margin:18px 0 16px; }
.lp-tab{
  padding:8px 18px; border-radius:20px; border:1px solid #f0c86a; cursor:pointer;
  background:transparent; color:#ffe4b0; font-size:14px; font-weight:700; font-family:inherit;
}
.lp-tab.active{ background:linear-gradient(180deg,#ffe9a8,#e6a63c); color:#8a1414; border-color:#fff2cf; }
.lp-panel{ display:flex; flex-direction:column; gap:14px; }
.lp-panel.hidden{ display:none; }
.lp-empty{ text-align:center; color:#ffd9a0; font-size:14px; padding:40px 0; opacity:.85; }
.lp-card{
  display:grid; grid-template-columns:84px 1fr auto; align-items:center; gap:12px;
  padding:14px 12px; border-radius:14px;
  background:linear-gradient(180deg,#d21e1e,#a11010); border:1px solid #f0c86a;
  box-shadow:0 4px 12px rgba(60,0,0,.35);
}
.lp-thumb{
  width:84px; height:84px; border-radius:10px;
  display:flex; align-items:center; justify-content:center; overflow:hidden;
  background:rgba(255,255,255,.08);
}
.lp-thumb img{ width:100%; height:100%; object-fit:contain; }
.lp-form{ min-width:0; display:flex; flex-direction:column; gap:6px; }
.lp-row{ display:flex; align-items:center; gap:6px; }
.lp-ic{ flex:0 0 auto; font-size:12px; color:#ffe9a8; font-weight:700; width:30px; }
.lp-inp{
  flex:1; min-width:0; height:26px; border:none; border-radius:6px; padding:0 8px;
  font-size:12px; color:#333; background:#fff; font-family:inherit;
}
.lp-inp:disabled{ background:#f2e8d6; color:#8a7a5a; }
.lp-status{
  flex:0 0 auto; width:56px; height:56px; border-radius:10px; border:none; cursor:pointer;
  font-size:13px; font-weight:800; font-family:inherit; line-height:1.2;
  display:flex; align-items:center; justify-content:center; padding:4px;
}
.lp-status.action{ background:linear-gradient(180deg,#ffe9a8,#e6a63c); color:#8a1414; }
.lp-status.received{ background:linear-gradient(180deg,#ffd98a,#e0a63c); color:#7a3a00; }
.lp-status.done{ background:rgba(255,255,255,.25); color:#ffe9c0; }
.lp-status:disabled{ cursor:default; }

/* ========================= 在线客服（kf-） ========================= */
.kf-body{ margin:0; background:#ededed; }
.kf-page{ display:flex; flex-direction:column; height:100vh; height:100dvh; background:#ededed; }
.kf-topbar{ flex-shrink:0; height:52px; display:flex; align-items:center; padding:0 6px; background:#f7f7f7; border-bottom:1px solid #e2e2e2; position:relative; }
.kf-back{ width:40px; height:40px; display:flex; align-items:center; justify-content:center; color:#333; }
.kf-back svg{ width:24px; height:24px; }
.kf-title{ flex:1; text-align:center; display:flex; flex-direction:column; }
.kf-title-name{ font-size:16px; font-weight:600; color:#1a1a1a; }
.kf-title-sub{ font-size:11px; color:#9a9a9a; margin-top:1px; }
.kf-topbar-right{ width:40px; }

.kf-list{ flex:1; overflow-y:auto; padding:12px 12px 16px; -webkit-overflow-scrolling:touch; }
.kf-loadmore{ text-align:center; margin-bottom:10px; }
.kf-loadmore button{ font-size:12px; color:#576b95; background:none; border:none; padding:6px 12px; }
.kf-welcome{ display:flex; gap:8px; margin-bottom:16px; }
.kf-welcome-av{ width:36px; height:36px; border-radius:6px; background:#07c160; color:#fff; font-size:12px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.kf-welcome-tx{ max-width:70%; background:#fff; border-radius:8px; padding:9px 12px; font-size:14px; line-height:1.5; color:#333; }

.kf-row{ display:flex; gap:8px; margin-bottom:16px; align-items:flex-start; }
.kf-row-me{ flex-direction:row-reverse; }
.kf-avatar{ width:36px; height:36px; border-radius:6px; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:12px; color:#fff; }
.kf-avatar-kf{ background:#07c160; }
.kf-avatar-me{ background:#576b95; }
.kf-bubble-wrap{ max-width:66%; display:flex; flex-direction:column; }
.kf-row-me .kf-bubble-wrap{ align-items:flex-end; }
.kf-time{ font-size:11px; color:#b2b2b2; margin-bottom:3px; }
.kf-row-me .kf-time{ text-align:right; }
.kf-bubble{ position:relative; padding:9px 12px; border-radius:6px; font-size:15px; line-height:1.5; word-break:break-word; }
.kf-bubble-kf{ background:#fff; color:#1a1a1a; }
.kf-bubble-me{ background:#95ec69; color:#12351a; }
.kf-bubble-image, .kf-bubble-video{ padding:3px; background:transparent!important; }
.kf-bubble-img{ max-width:180px; max-height:240px; border-radius:6px; display:block; }
.kf-bubble-video{ position:relative; }
.kf-bubble-video video{ max-width:200px; max-height:260px; border-radius:6px; display:block; background:#000; }
.kf-video-play{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:44px; height:44px; border-radius:50%; background:rgba(0,0,0,.5); }
.kf-video-play::after{ content:''; position:absolute; top:50%; left:54%; transform:translate(-50%,-50%); border-left:14px solid #fff; border-top:9px solid transparent; border-bottom:9px solid transparent; }
.kf-bubble-voice{ display:flex; align-items:center; gap:8px; min-width:66px; cursor:pointer; }
.kf-voice-ico{ width:15px; height:18px; position:relative; }
.kf-voice-ico::before{ content:''; position:absolute; left:0; top:3px; width:11px; height:11px; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; }
.kf-bubble-voice.kf-playing .kf-voice-ico{ animation:kfVoice 1s infinite; }
@keyframes kfVoice{ 0%,100%{ opacity:.4; } 50%{ opacity:1; } }
.kf-voice-secs{ font-size:13px; }
.kf-bubble-quote{ font-size:12px; color:#666; background:rgba(0,0,0,.05); border-radius:4px; padding:4px 7px; margin-bottom:5px; }

.kf-quote{ flex-shrink:0; display:flex; align-items:center; justify-content:space-between; background:#e6e6e6; padding:8px 12px; font-size:13px; color:#555; }
.kf-quote-body{ flex:1; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.kf-quote-label{ color:#888; }
.kf-quote-close{ border:none; background:none; font-size:20px; color:#999; padding:0 6px; }

.kf-input{ flex-shrink:0; display:flex; align-items:flex-end; gap:8px; padding:8px 10px; background:#f7f7f7; border-top:1px solid #e2e2e2; padding-bottom:calc(8px + env(safe-area-inset-bottom)); }
.kf-ibtn{ width:38px; height:38px; flex-shrink:0; border:none; background:none; color:#5a5a5a; display:flex; align-items:center; justify-content:center; }
.kf-ibtn svg{ width:26px; height:26px; }
.kf-textarea{ flex:1; resize:none; border:none; border-radius:6px; padding:9px 12px; font-size:15px; line-height:1.4; max-height:96px; background:#fff; font-family:inherit; }
.kf-textarea:focus{ outline:none; }
.kf-voicebtn{ flex:1; height:40px; border:none; border-radius:6px; background:#fff; font-size:15px; color:#333; }
.kf-voicebtn.kf-recording{ background:#d3d3d3; }
.kf-sendbtn{ flex-shrink:0; height:40px; padding:0 16px; border:none; border-radius:6px; background:#07c160; color:#fff; font-size:15px; }

.kf-mediapanel{ flex-shrink:0; display:flex; gap:24px; padding:18px 24px; background:#f7f7f7; border-top:1px solid #e2e2e2; }
.kf-media-item{ display:flex; flex-direction:column; align-items:center; gap:6px; cursor:pointer; }
.kf-media-ic{ width:56px; height:56px; border-radius:12px; background:#fff; display:flex; align-items:center; justify-content:center; color:#5a5a5a; }
.kf-media-ic svg{ width:28px; height:28px; }
.kf-media-label{ font-size:12px; color:#888; }

.kf-voicetip{ position:fixed; inset:0; z-index:900; background:rgba(0,0,0,.15); flex-direction:column; align-items:center; justify-content:center; }
.kf-voicetip-icon{ width:120px; height:120px; border-radius:16px; background:#95ec69; display:flex; align-items:center; justify-content:center; color:#2b6b1f; }
.kf-voicetip-icon svg{ width:56px; height:56px; }
.kf-voicetip-time{ margin-top:16px; font-size:18px; color:#fff; background:rgba(0,0,0,.4); padding:4px 14px; border-radius:12px; }
.kf-voicetip-hint{ margin-top:10px; font-size:13px; color:#fff; }
.kf-voicetip-hint.kf-cancel{ color:#ff6b6b; }

.kf-viewer{ position:fixed; inset:0; z-index:1000; background:rgba(0,0,0,.9); align-items:center; justify-content:center; }
.kf-viewer-close{ position:absolute; top:16px; right:20px; font-size:34px; color:#fff; background:none; border:none; z-index:2; }
.kf-viewer-inner{ max-width:100vw; max-height:100vh; }
.kf-viewer-img{ max-width:100vw; max-height:90vh; }
.kf-viewer-video{ max-width:100vw; max-height:90vh; }

.kf-uploading{ position:fixed; inset:0; z-index:1100; background:rgba(0,0,0,.3); align-items:center; justify-content:center; }
.kf-uploading-box{ background:rgba(0,0,0,.75); color:#fff; padding:16px 22px; border-radius:10px; display:flex; align-items:center; gap:10px; font-size:14px; }
.kf-spinner{ width:18px; height:18px; border:2px solid rgba(255,255,255,.3); border-top-color:#fff; border-radius:50%; animation:kfSpin .8s linear infinite; }
@keyframes kfSpin{ to{ transform:rotate(360deg); } }

/* ========================= 首页弹窗公告（anc-） ========================= */
.anc-overlay{ position:fixed; inset:0; z-index:2000; background:rgba(0,0,0,.55); display:flex; align-items:center; justify-content:center; padding:24px; animation:ancFade .2s ease; }
@keyframes ancFade{ from{ opacity:0; } to{ opacity:1; } }
.anc-card{ position:relative; width:100%; max-width:340px; max-height:80vh; background:#fff; border-radius:16px; overflow:hidden; display:flex; flex-direction:column; box-shadow:0 12px 40px rgba(0,0,0,.3); animation:ancPop .25s cubic-bezier(.18,.89,.32,1.28); }
@keyframes ancPop{ from{ transform:scale(.85); opacity:0; } to{ transform:scale(1); opacity:1; } }
.anc-close{ position:absolute; top:8px; right:10px; z-index:5; width:34px; height:34px; border:none; border-radius:50%; background:rgba(0,0,0,.45); color:#fff; font-size:22px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; -webkit-tap-highlight-color:rgba(0,0,0,0); touch-action:manipulation; }
.anc-body{ flex:1 1 auto; min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch; }
.anc-image{ width:100%; }
.anc-image img{ display:block; width:100%; height:auto; }
.anc-text{ padding:18px 20px; font-size:15px; line-height:1.7; color:#333; word-break:break-word; white-space:normal; }
.anc-image + .anc-text{ padding-top:16px; }
.anc-link{ color:#2563eb; text-decoration:none; word-break:break-all; }
.anc-link:active{ opacity:.7; }
/* 富文本渲染（Quill 输出兼容） */
.anc-text p{ margin:6px 0; }
.anc-text h1{ font-size:22px; font-weight:700; margin:10px 0 6px; }
.anc-text h2{ font-size:19px; font-weight:700; margin:10px 0 6px; }
.anc-text h3{ font-size:16px; font-weight:700; margin:8px 0 4px; }
.anc-text a{ color:#2563eb; text-decoration:underline; word-break:break-all; }
.anc-text ul, .anc-text ol{ padding-left:24px; margin:6px 0; }
.anc-text ul li{ list-style:disc; }
.anc-text ol li{ list-style:decimal; }
.anc-text blockquote{ border-left:3px solid #ddd; padding:2px 12px; color:#666; margin:8px 0; }
.anc-text img{ max-width:100%; height:auto; border-radius:6px; margin:6px 0; }
.anc-text strong,.anc-text b{ font-weight:700; }
.anc-text em,.anc-text i{ font-style:italic; }
.anc-text u{ text-decoration:underline; }
.anc-text s,.anc-text strike{ text-decoration:line-through; }
.anc-text .ql-align-center{ text-align:center; }
.anc-text .ql-align-right{ text-align:right; }
.anc-text .ql-align-justify{ text-align:justify; }
.anc-text .ql-size-small{ font-size:12px; }
.anc-text .ql-size-large{ font-size:18px; }
.anc-text .ql-size-huge{ font-size:24px; }
/* 固定底部区：自定义按钮 + 关闭按钮，常驻卡片底部不随内容滚动 */
.anc-foot{ flex:0 0 auto; padding:12px 20px 16px; border-top:1px solid #f0f0f0; background:#fff; position:relative; z-index:3; display:flex; flex-direction:column; gap:10px; }
.anc-btns{ display:flex; flex-direction:column; gap:10px; }
.anc-btn{ width:100%; height:44px; border:none; border-radius:10px; background:linear-gradient(180deg,#e2352a,#c01d13); color:#fff; font-size:15px; font-weight:600; cursor:pointer; -webkit-tap-highlight-color:rgba(0,0,0,0); touch-action:manipulation; -webkit-appearance:none; appearance:none; }
.anc-btn:active{ opacity:.85; }
.anc-btn:nth-child(n+2){ background:#f2f2f2; color:#c01d13; }
.anc-close-btn{ width:100%; height:44px; border:1px solid #d9d9d9; border-radius:10px; background:#fff; color:#555; font-size:15px; font-weight:600; cursor:pointer; -webkit-tap-highlight-color:rgba(0,0,0,0); touch-action:manipulation; -webkit-appearance:none; appearance:none; }
.anc-close-btn:active{ background:#f5f5f5; }
