/* ============================================================
   Cross-border · 全球 B2B 企业数据库
   设计语言：极简白底 · 圆润舒适 · 克制留白
   ============================================================ */

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{max-width:100%;overflow-x:hidden}
:root{
  /* 文字色阶：整体加深为亮黑；正文与次级文字同深度，全站观感统一 */
  --ink:#0a0a0c; --ink2:#1b1b20; --ink3:#33333b; --ink4:#606069;
  --paper:#ffffff; --card:#fff; --card2:#f5f5f7; --card3:#fafafb;
  --line:#ececef; --line2:#dedee3;
  --pri:#101012; --pri-s:rgba(16,16,18,.055);
  --ok:#0f8a45; --ok-s:rgba(15,138,69,.08);
  --warn:#b26a00; --warn-s:rgba(178,106,0,.08);

  --r-xs:8px; --r-sm:12px; --r:18px; --r-lg:24px; --pill:999px;

  --sh:0 1px 2px rgba(16,16,18,.04);
  --sh2:0 4px 16px rgba(16,16,18,.06);
  --sh3:0 12px 40px rgba(16,16,18,.10);

  --navh:54px; --tabs:46px;
  --hctl:2.15rem;                             /* 首页左上 Logo / 右上登录 的统一控制高 */
  --lgr:0.75;                                 /* Logo 占控制高的比例（0.75 = 缩小 1/4） */
  --w:880px;                                  /* 内容最大宽度（响应式覆盖） */
  --cw:560px;                                 /* 首页搜索框 / 轮转条的公共列宽（两者左右边缘对齐） */
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"PingFang SC",
         "HarmonyOS Sans SC","Hiragino Sans GB","Microsoft YaHei UI","Microsoft YaHei",
         "Source Han Sans SC","Noto Sans SC","Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
  --geo:"Century Gothic",Futura,"Avenir Next","Helvetica Neue",-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
}
html{font-size:100%;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);
  font-size:15px;line-height:1.72;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  overflow-wrap:break-word;letter-spacing:.002em}
a{color:inherit}
button,input,select,textarea{font-family:inherit}

/* ---------- 骨架 ---------- */
.page{display:none}
.page.on{display:block}
main{max-width:var(--w);margin:0 auto;padding:0 1.15rem 4.5rem;overflow-x:hidden}
.pad{padding-top:calc(var(--navh) + .9rem)}
.view{display:none}
.view.on{display:block}

/* ---------- 首屏路由预判 ----------
   index.html 的 #pgLand 出厂就带 .on（首页可见），而 app.js 要等
   /api/settings + /data/tree.json 两次往返后才执行 route()，
   所以直接刷新子页面（#/me、#/roster）会先画出首页、再跳过去。
   <head> 里的内联脚本在第一次绘制前按 location.hash 给 <html> 打上 boot-* 标记，
   由下面这几条规则把首帧直接落在目标页面上；route() 跑完后由 app.js 的 clearBoot() 撤掉。
   选择器带 html.boot-* 前缀，权重一定压得住 .page.on / .view.on。 */
html.boot-land #pgApp{display:none}
html.boot-app #pgLand{display:none}
html.boot-app #pgApp{display:block}
/* 注意：section.view 不是 #pgApp 的直接子元素（外面还套着 topbar / main），
   所以这里必须用后代选择器，不能写成 #pgApp>section.view */
html.boot-app #pgApp section.view{display:none}
html.boot-app.boot-v-roster #pgApp section.view[data-v="roster"]{display:block}
html.boot-app.boot-v-me #pgApp section.view[data-v="me"]{display:block}
/* 贸易情报页在 HTML 里挂了内联 display:none（当前未启用），
   要盖住内联样式得用 !important；清除 boot-* 后本条不再匹配，无副作用 */
html.boot-app.boot-v-trade #pgApp section.view[data-v="trade"]{display:block!important}
.content{padding:1.1rem 0 0}

/* ---------- 顶栏 ---------- */
.topbar{position:fixed;top:0;left:0;right:0;z-index:120;
  height:calc(var(--navh) + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);
  background:rgba(255,255,255,.86);
  background:color-mix(in srgb,#fff 84%,transparent);
  backdrop-filter:saturate(180%) blur(18px);-webkit-backdrop-filter:saturate(180%) blur(18px);
  display:flex;align-items:center;gap:.55rem;padding-left:1.15rem;padding-right:1.15rem;
  max-width:var(--w);margin:0 auto}
/* 顶栏标题已下线：左上只留返回图标。原来靠 .tb-t{flex:1} 把右边按钮顶开，
   现在改由右侧按钮自己吃掉剩余空间（.modsw 显示时同样参与分配） */
.topbar .modsw{margin-left:auto}
.topbar #btnMe1{margin-left:auto}
/* 返回：保留原细箭头，右侧补一枚克制的灰色小字 */
.backb{width:auto;height:34px;flex:0 0 auto;border:0;background:transparent;
  color:var(--ink2);display:inline-flex;align-items:center;justify-content:center;gap:.1rem;
  cursor:pointer;padding:0 .42rem 0 .16rem;line-height:1;border-radius:var(--pill);
  transition:.16s;margin-left:-.4rem}
.backb svg{width:20px;height:20px;display:block;flex:0 0 20px}
.backb span{font-size:.68rem;color:var(--ink3);letter-spacing:.02em;white-space:nowrap}
.backb:hover{color:var(--ink);background:var(--card2)}
.backb:hover span{color:var(--ink2)}
.backb:active{transform:scale(.9);background:var(--card2)}

.acct{flex:0 0 auto;display:inline-flex;align-items:center;gap:.42rem;border:1px solid var(--line2);
  background:#fff;color:var(--ink);border-radius:var(--pill);
  height:var(--hctl);padding:0 .8rem;
  font-size:.75rem;font-weight:600;cursor:pointer;transition:.16s;
  max-width:44vw;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.acct:active{transform:scale(.96);background:var(--card2)}
.acct .dot{width:6px;height:6px;border-radius:50%;background:var(--ok);flex:0 0 6px}
.acct.guest{background:var(--ink);color:#fff;border-color:var(--ink)}
.acct.guest .dot{background:#fff;opacity:.85}

/* 首页右上角账户入口 */
#pgLand{position:relative}
.land-actions{position:fixed;top:calc(1.15rem + env(safe-area-inset-top));
  right:max(1.15rem,calc((100% - var(--w)) / 2 + 1.15rem));z-index:130;
  display:flex;align-items:center;gap:.5rem;padding:.25rem;border-radius:var(--pill);
  background:rgba(255,255,255,.94);backdrop-filter:blur(12px)}
.land-actions .land-acct{position:static;max-width:28vw}
.land-directory{display:inline-flex;align-items:center;gap:.6rem;height:var(--hctl);
  padding:0 .95rem;text-decoration:none;border:1px solid var(--line2);border-radius:var(--pill);
  background:#fff;font-size:.75rem;white-space:nowrap;transition:background .16s}
.land-directory:hover{background:var(--card2)}
.land-directory:focus-visible{outline:2px solid var(--ink);outline-offset:3px}

/* 首页左上角 Logo —— 与右上角「登录」胶囊**同一水平中线、同一内容边距**。
   高度优先取后台设置 site.logo_h（app.js 写入 --lgpx，单位 px）；
   没设置时回落「控制高 × --lgr」（0.75，即比登录胶囊小 1/4）。
   top 用 (控制高 - Logo高)/2 补齐半边差值，所以改多大都与胶囊中线重合、不会顶飞。 */
.land-logo{--lh:var(--lgpx, calc(var(--hctl) * var(--lgr)));
  position:absolute;
  top:calc(1.15rem + (var(--hctl) - var(--lh)) / 2 + env(safe-area-inset-top));
  left:1.15rem;
  left:max(1.15rem,calc((100% - var(--w)) / 2 + 1.15rem));z-index:130;
  display:inline-flex;align-items:center;justify-content:center;
  height:var(--lh);text-decoration:none;border-radius:var(--r-xs);
  transition:opacity .16s,transform .16s}
.land-logo img{display:block;height:var(--lh);width:auto;
  max-width:min(62vw,300px);object-fit:contain}
/* Logo 图片加载失败时的文字兜底（setLogo() 会插入 .logo-tx） */
.land-logo .logo-tx{font-size:1.02rem;font-weight:700;letter-spacing:-.02em;
  color:var(--ink);white-space:nowrap}
.land-logo:hover{opacity:.72}
.land-logo:active{transform:scale(.94)}

/* ---------- 顶栏（原顶部 Tab 栏已移除：进站直接是企业名录） ---------- */

/* ============================================================
   首页
   ============================================================ */
/* 首页用整屏弹性列：正文在上，免责声明被顶到页面底部（padding-bottom = 离下沿的安全距离）
   min-height 三连：vh 兜底 → svh（iOS 小视口）→ dvh（手机地址栏动态视口，最准） */
.landing{max-width:var(--w);margin:0 auto;
  display:flex;flex-direction:column;
  min-height:100vh;min-height:100svh;min-height:100dvh;box-sizing:border-box;
  padding:calc(var(--navh) + 2.4rem) 1.15rem calc(2.1rem + env(safe-area-inset-bottom))}
/* 安卓 PWA 独立模式刷新后锁定“真实可见高度”，只约束首页，不改变普通网页版与名录页滚动。 */
html.pwa-mode #pgLand.page.on{height:var(--pwa-vh,100svh);overflow:hidden}
html.pwa-mode #pgLand .landing{height:var(--pwa-vh,100svh);min-height:var(--pwa-vh,100svh);
  max-height:var(--pwa-vh,100svh);overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;
  -webkit-overflow-scrolling:touch;scrollbar-width:none}
html.pwa-mode #pgLand .landing::-webkit-scrollbar{display:none}
/* 主体内容在「顶栏之下、页脚之上」的剩余空间里垂直居中：
   上下自动边距平分剩余高度；内容超高（小屏）时自动退化为 0，不裁切 */
.land-main{margin-top:auto;margin-bottom:auto}
.lhero{text-align:center}
/* 首页大标题：两行文案（品牌字标图已移到左上角 .land-logo）。
   字号沿用原四档断点（2.6 / 3.3 / 2.1 / 1.88rem），改字号即整体等比缩放 */
.wordmark{font-family:var(--geo);font-size:2.6rem;font-weight:600;letter-spacing:-.045em;
  color:var(--ink);margin:0 0 .55rem;line-height:1.14}
.wm-sub{font-size:.77rem;color:var(--ink);margin:0 0 1.6rem;letter-spacing:.008em}

/* 胶囊搜索框 —— 只有一个搜索图标 */
.pill{max-width:var(--cw);margin:0 auto;position:relative}
.pill input{width:100%;height:54px;border:1.5px solid var(--ink);border-radius:var(--pill);
  background:#fff;color:var(--ink);padding:0 3.5rem 0 1.3rem;font-size:.92rem;
  outline:none;transition:.18s}
.pill input::placeholder{color:var(--ink4)}
.pill input:focus{box-shadow:0 0 0 5px var(--pri-s)}
.pill .pbtn{position:absolute;right:5px;top:5px;width:44px;height:44px;border-radius:50%;
  border:0;background:var(--ink);color:#fff;display:grid;place-items:center;cursor:pointer;
  padding:0;transition:.16s}
.pill .pbtn:active{transform:scale(.92)}
.pill .pbtn svg{width:18px;height:18px;display:block}

/* 口径（仅首页展示） */
.land-stats{display:flex;gap:.4rem;justify-content:center;flex-wrap:wrap;margin-top:1.1rem}
.land-stats span{font-size:.68rem;color:var(--ink);background:var(--card3);
  border:1px solid var(--line);border-radius:var(--pill);padding:.28rem .74rem}
.land-stats b{color:var(--ink);font-weight:700}

/* 热门行业 / 热门国家 —— 左侧标题 + 右侧持续轮转条
   胶囊宽度**贴合文字**（flex:0 0 auto），不按固定份数均分 —— 这样行内不会留下大片空白；
   条目数由后台「热门取前 N 个」决定，足够多 → 任何屏宽都能滚起来 */
.strip-wrap{margin-top:1.05rem}
.strip-line{display:flex;align-items:center;gap:.65rem;max-width:var(--cw);margin:0 auto;min-width:0}
.strip-label{flex:0 0 auto;font-size:.84rem;line-height:1;color:var(--ink2);
  letter-spacing:.045em;white-space:nowrap}
.strip{--g:.36rem;display:flex;gap:var(--g);max-width:var(--cw);margin:0 auto;overflow-x:auto;
  padding:.05rem 0 .22rem;scrollbar-width:none;-webkit-overflow-scrolling:touch;cursor:grab;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 4%,#000 96%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 4%,#000 96%,transparent 100%)}
.strip-line .strip{flex:1;min-width:0;max-width:none;margin:0}
.strip::-webkit-scrollbar{display:none}
.strip:active{cursor:grabbing}
.strip .sit{flex:0 0 auto;max-width:11rem;padding:.32rem .76rem;
  border:1px solid var(--line);border-radius:var(--pill);background:#fff;
  cursor:pointer;font-size:.72rem;color:var(--ink2);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;text-align:center;
  transition:border-color .16s,color .16s,background .16s}
.strip .sit:hover{border-color:var(--ink3);color:var(--ink)}
.strip .sit:active{transform:scale(.96);background:var(--card2)}

/* 页脚：水平居中 + 被 margin-top:auto 顶到页面底部；padding-top 保证与正文的最小间距 */
.land-foot{text-align:center;font-size:.65rem;color:var(--ink3);
  padding-top:2.1rem;line-height:1.9;font-family:var(--sans)}

/* ============================================================
   行业页
   注：原「行业概览」区块（.hero）已下线，进入行业直接落企业名录
   ============================================================ */

.sec-h{display:flex;align-items:baseline;gap:.5rem;margin:1.8rem 0 .9rem}
.sec-h .sn{font-family:var(--mono);font-size:.63rem;color:var(--ink4);font-weight:700;letter-spacing:.08em}
.sec-h h2{margin:0;font-size:.98rem;font-weight:700;letter-spacing:-.012em;flex:1}
.sec-h .sx{font-size:.63rem;color:var(--ink4);font-family:var(--mono)}
.sec-h.sm{margin:1.1rem 0 .55rem}
.sec-h.sm h3{margin:0;font-size:.74rem;font-weight:600;color:var(--ink3);letter-spacing:.02em}

/* ============================================================
   企业名录
   ============================================================ */
.btnrow{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.9rem}
.btn{border:1px solid var(--line2);background:#fff;color:var(--ink);border-radius:var(--pill);
  padding:.62rem 1.1rem;font-size:.79rem;font-weight:600;cursor:pointer;transition:.16s;
  display:inline-flex;align-items:center;justify-content:center;gap:.35rem}
.btn:active{transform:scale(.98);background:var(--card2)}
.btn.pri{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn.wide{width:100%}
.btn.big{padding:.78rem 1rem;font-size:.85rem}

.sbox{display:flex;gap:.45rem;margin:.5rem 0 1.1rem}
.sbox input{flex:1;min-width:0;border:1px solid var(--line2);background:#fff;color:var(--ink);
  border-radius:var(--pill);padding:.64rem 1.05rem;font-size:.85rem;outline:none;transition:.16s}
.sbox input:focus{border-color:var(--ink);box-shadow:0 0 0 5px var(--pri-s)}
.sbox button{border:1px solid var(--ink);background:var(--ink);color:#fff;border-radius:var(--pill);
  padding:.64rem 1.15rem;font-size:.8rem;font-weight:600;cursor:pointer;flex:0 0 auto}

.chips{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.42rem;margin-bottom:.4rem;
  scrollbar-width:none;-webkit-overflow-scrolling:touch}
.chips::-webkit-scrollbar{display:none}
.chip{flex:0 0 auto;border:1px solid var(--line);background:#fff;color:var(--ink2);
  border-radius:var(--pill);padding:.4rem .84rem;font-size:.755rem;font-weight:600;
  cursor:pointer;transition:.16s;white-space:nowrap}
.chip:active{transform:scale(.96)}
.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}

.bl{display:flex;justify-content:space-between;align-items:center;gap:.5rem;
  font-size:.7rem;color:var(--ink3);margin:.5rem 0 .55rem;min-height:1.1em}

/* 游客提示条 */
.ghint{display:flex;align-items:center;gap:.6rem;background:var(--warn-s);
  border:1px solid rgba(178,106,0,.16);border-radius:var(--r-sm);padding:.6rem .8rem;
  font-size:.735rem;color:var(--warn);line-height:1.6;margin-bottom:.9rem}
.ghint b{font-weight:700}
.ghint button{margin-left:auto;flex:0 0 auto;border:0;background:var(--ink);color:#fff;
  border-radius:var(--pill);padding:.34rem .78rem;font-size:.72rem;font-weight:600;cursor:pointer}

/* ---------- 筛选：条件摘要 / 更多筛选 / 标签说明 ---------- */
.fsum{display:none;flex-wrap:wrap;gap:.32rem;align-items:center;margin:.15rem 0 .1rem}
.fsum.on{display:flex}
.fs-lab{font-size:.64rem;color:var(--ink4);letter-spacing:.02em}
.fst-chip{display:inline-flex;align-items:center;gap:.28rem;border:1px solid var(--line2);
  background:var(--card3);color:var(--ink2);border-radius:var(--pill);padding:.24rem .6rem;
  font-size:.7rem;cursor:pointer;transition:.14s;white-space:nowrap}
.fst-chip:active{background:var(--card2)}
.fst-chip i{font-style:normal;color:var(--ink4);font-size:.74rem;line-height:1}
.fst-clr{border:0;background:none;color:var(--ink3);font-size:.68rem;cursor:pointer;padding:.24rem .2rem;
  text-decoration:underline;text-underline-offset:2px}
.fst-clr:active{color:var(--ink)}

.fmore-sw{display:inline-flex;align-items:center;gap:.32rem;margin:.6rem 0 .1rem;
  border:1px solid var(--line2);background:#fff;color:var(--ink2);border-radius:var(--pill);
  padding:.42rem .85rem;font-size:.74rem;cursor:pointer;transition:.16s}
.fmore-sw svg{width:13px;height:13px;transition:transform .2s;opacity:.75}
.fmore-sw.on{color:var(--ink);border-color:var(--ink3)}
.fmore-sw.on svg{transform:rotate(180deg)}
.fmore{display:none}
.fmore.on{display:block}

.frow2{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin:.75rem 0 .2rem}
.freset{border:1px solid var(--line2);background:#fff;color:var(--ink2);border-radius:var(--pill);
  padding:.4rem .9rem;font-size:.73rem;cursor:pointer;transition:.14s}
.freset:active{background:var(--card2)}
.ftag{display:inline-flex;align-items:center;gap:.3rem;border:1px solid var(--line2);background:#fff;
  color:var(--ink2);border-radius:var(--pill);padding:.4rem .85rem;font-size:.73rem;cursor:pointer;
  transition:.14s}
.ftag svg{width:13px;height:13px;opacity:.8}
.ftag:active{background:var(--card2)}

.legend{display:none;margin:.6rem 0 .1rem;border:1px solid var(--line);background:var(--card3);
  border-radius:var(--r-sm);padding:.75rem .85rem}
.legend.on{display:block}
.legend h5{margin:0 0 .4rem;font-size:.73rem;color:var(--ink)}
.legend ul{list-style:none;margin:0;padding:0}
.legend li{display:flex;gap:.55rem;padding:.3rem 0;font-size:.7rem;line-height:1.72;
  border-bottom:1px solid var(--line)}
.legend li:last-child{border-bottom:0}
.legend li b{flex:0 0 5.8rem;color:var(--ink2)}
.legend li span{flex:1;min-width:0;color:var(--ink3)}

/* 带副标题的筛选 chip（邮箱质量等需要解释项） */
.chip.rich{display:inline-flex;flex-direction:column;align-items:center;gap:.05rem;
  padding:.3rem .72rem;line-height:1.35;text-align:center}
.chip.rich i{font-style:normal;font-size:.6rem;color:var(--ink4);white-space:nowrap}
.chip.rich.on i{color:rgba(255,255,255,.62)}

/* 企业卡 */
.co{background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:.85rem .9rem;margin-bottom:.55rem;cursor:pointer;transition:.16s}
.co:hover{border-color:var(--line2)}
.co .ch{display:flex;align-items:flex-start;gap:.58rem}
.co .cn{flex:1;min-width:0}
.co .cn b{display:block;font-size:.86rem;font-weight:700;line-height:1.45;
  overflow-wrap:anywhere;letter-spacing:-.006em}
.co .cn i{display:block;font-style:normal;font-size:.68rem;color:var(--ink3);
  margin-top:.16rem;overflow-wrap:anywhere;line-height:1.5}
.co .rg{flex:0 0 auto;font-size:.64rem;color:var(--ink3);background:var(--card2);
  border-radius:var(--r-xs);padding:.14rem .42rem;line-height:1.5;white-space:nowrap}
.co .cm{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.5rem}
.co .cm span{font-size:.64rem;color:var(--ink3);border:1px solid var(--line);
  border-radius:var(--r-xs);padding:.1rem .4rem;line-height:1.5}
.co .cm span.tg{color:var(--ink2);border-color:var(--line2)}
.co .body{display:none;margin-top:.7rem;padding-top:.65rem;border-top:1px solid var(--line)}
.co.open .body{display:block}
.co .body dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.42rem .8rem;align-items:baseline}
.co .body dt{font-size:.66rem;color:var(--ink3);white-space:nowrap;margin:0}
.co .body dd{margin:0;font-size:.755rem;color:var(--ink);line-height:1.66;
  overflow-wrap:anywhere;word-break:break-word}
.co .body dd a{color:var(--ink);text-decoration:underline;text-underline-offset:2px;word-break:break-all}
.co .body dd .lk{display:inline-flex;align-items:center;gap:.32rem;color:var(--ink4);
  font-size:.72rem;user-select:none}
.co .body dd .lk svg{width:11px;height:11px;flex:0 0 11px}
.co .body .hintline{font-size:.72rem;color:var(--ink3);margin:0}
.co.hint-first{border-color:var(--line2)}
/* 明细按查看额度拉取 */
.co .body .dloading{font-size:.73rem;color:var(--ink3);padding:.15rem 0;letter-spacing:.02em}
.co .body .dlocked{display:flex;align-items:center;gap:.4rem;font-size:.73rem;
  color:var(--warn);padding:.15rem 0;line-height:1.6}
#vHint{font-size:.68rem;color:var(--ink3);white-space:nowrap;letter-spacing:.01em}

/* ============================================================
   企业卡片 · 标签行 / 一句话画像 / 分组明细 / 跟进登记
   UI 保持极简，信息做满
   ============================================================ */
.co .cm .tg2{font-size:.64rem;color:var(--ink3);border:1px solid var(--line);
  border-radius:var(--r-xs);padding:.1rem .4rem;line-height:1.5;white-space:nowrap}
.co .cm .tg2.g-ok{color:var(--ok);border-color:rgba(15,138,69,.26);background:var(--ok-s)}
.co .cm .tg2.g-ok2{color:#0f6b6b;border-color:rgba(15,107,107,.24);background:rgba(15,107,107,.06)}
.co .cm .tg2.g-warn{color:var(--warn);border-color:rgba(178,106,0,.22);background:var(--warn-s)}
.co .cm .tg2.g-bad{color:#b3261e;border-color:rgba(179,38,30,.22);background:rgba(179,38,30,.06)}
.co .cm .tg2.warn{color:var(--warn);border-color:rgba(178,106,0,.22);background:var(--warn-s)}
.co .cm .tg2.bad{color:#b3261e;border-color:rgba(179,38,30,.22);background:rgba(179,38,30,.06)}
.co .cm .tg2.sc{color:var(--ink3)}
.co .cm .tg2.imp{color:#0f6b6b;border-color:rgba(15,107,107,.24);background:rgba(15,107,107,.06)}
.co .cm .tg2.imp3{color:var(--ok);border-color:rgba(15,138,69,.26);background:var(--ok-s)}
.co .cm .tg2.hs{color:#1f5fb7;border-color:rgba(31,95,183,.24);background:rgba(31,95,183,.06)}
.co .cm .tg2.sc3{color:var(--ok);border-color:rgba(15,138,69,.26);background:var(--ok-s)}
.co .cm .tg2.sc2{color:var(--ink2)}
.co .cm .tg2.sc0{color:var(--ink4)}

/* 一句话画像 —— 全部由库内结构化字段拼出 */
.co .cprof{margin:.55rem 0 0;font-size:.72rem;line-height:1.74;color:var(--ink2)}

/* 跟进摘要行 */
.co .fline{display:flex;align-items:center;gap:.42rem;flex-wrap:wrap;margin-top:.5rem;
  font-size:.68rem;color:var(--ink3);background:var(--card3);border:1px solid var(--line);
  border-radius:var(--r-xs);padding:.3rem .5rem;line-height:1.6}
.co .fline b{color:var(--ink2)}
.co .fline span{color:var(--ink3);overflow-wrap:anywhere}
.fdot{width:6px;height:6px;border-radius:50%;flex:0 0 6px;display:inline-block}

/* 跟进状态徽章 */
.stbadge{flex:0 0 auto;font-size:.62rem;border-radius:var(--r-xs);
  padding:.14rem .42rem;line-height:1.5;white-space:nowrap;color:#fff}
.co.fu-done{opacity:.82}
.co.fu-done.is-exp{opacity:.58}

/* 分组明细 */
.co .body .dgroup{margin-bottom:.72rem}
.co .body .dgroup h5{margin:0 0 .32rem;font-size:.62rem;letter-spacing:.09em;
  text-transform:uppercase;color:var(--ink4);font-family:var(--mono)}
.co .body .dgroup dl{margin:0}
.gchip{display:inline-block;font-size:.66rem;border-radius:var(--r-xs);padding:.08rem .4rem;
  border:1px solid var(--line2);color:var(--ink2)}
.gchip.g-ok{color:var(--ok);border-color:rgba(15,138,69,.26);background:var(--ok-s)}
.gchip.g-ok2{color:#0f6b6b;border-color:rgba(15,107,107,.24);background:rgba(15,107,107,.06)}
.gchip.g-warn{color:var(--warn);border-color:rgba(178,106,0,.22);background:var(--warn-s)}
.gchip.g-bad{color:#b3261e;border-color:rgba(179,38,30,.22);background:rgba(179,38,30,.06)}
.gdes{font-style:normal;font-size:.66rem;color:var(--ink3);margin-left:.42rem;line-height:1.6}

/* 跟进登记面板 */
.fup{margin-top:.7rem;padding-top:.7rem;border-top:1px dashed var(--line2)}
.fup-h{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.55rem;flex-wrap:wrap}
.fup-h h5{margin:0;font-size:.72rem;color:var(--ink);white-space:nowrap}
.fup-h em{font-style:normal;font-size:.62rem;color:var(--ink4);flex:1;min-width:0}
.fst{display:flex;flex-wrap:wrap;gap:.32rem;margin-bottom:.5rem}
.fstb{border:1px solid var(--line);background:#fff;color:var(--ink2);border-radius:var(--pill);
  padding:.3rem .7rem;font-size:.7rem;cursor:pointer;transition:.14s;white-space:nowrap}
.fstb:active{transform:scale(.97)}
.fstb.on{color:#fff;border-color:var(--ink);background:var(--ink)}
.fnote{width:100%;border:1px solid var(--line2);border-radius:var(--r-sm);background:var(--card3);
  color:var(--ink);padding:.55rem .7rem;font-size:.75rem;line-height:1.7;resize:vertical;
  outline:none;min-height:52px;font-family:inherit;transition:.16s}
.fnote:focus{border-color:var(--ink);background:#fff;box-shadow:0 0 0 4px var(--pri-s)}
.fnote::placeholder{color:var(--ink4)}
.frow3{display:flex;gap:.4rem;margin-top:.42rem}
.frow3 input{flex:1;min-width:0;height:36px;border:1px solid var(--line2);border-radius:var(--r-sm);
  background:var(--card3);color:var(--ink);padding:0 .65rem;font-size:.73rem;outline:none;
  font-family:inherit;transition:.16s}
.frow3 input:focus{border-color:var(--ink);background:#fff}
/* 面板上只剩「跟进时间」一个可见输入：独占整行、略高一点更好点按 */
.frow3 .fat{flex:1 1 100%;height:38px;font-size:.75rem}
.fact{display:flex;gap:.4rem;margin-top:.5rem}
.fact button{flex:1;border-radius:var(--pill);padding:.48rem .8rem;font-size:.75rem;
  cursor:pointer;transition:.16s;border:1px solid var(--line2);background:#fff;color:var(--ink2)}
.fact button:active{transform:scale(.98)}
.fact .fsave{background:var(--ink);color:#fff;border-color:var(--ink)}
.fup-tip{font-size:.63rem;color:var(--ink4);margin:.45rem 0 0;line-height:1.72}
.fup.locked{background:var(--card3);border:1px solid var(--line);border-radius:var(--r-sm);
  padding:.7rem .8rem;border-top:1px solid var(--line)}
.fup.locked .fup-tip{display:flex;align-items:center;gap:.36rem;color:var(--ink3);margin:0}
.fup.locked .fup-tip svg{width:11px;height:11px;flex:0 0 11px}

/* 多选 / 已导出 */
.co .chk{flex:0 0 auto;width:19px;height:19px;border:1.5px solid var(--line2);border-radius:6px;
  margin-top:.09rem;cursor:pointer;display:grid;place-items:center;color:#fff;font-size:.72rem;
  background:#fff;transition:.14s;user-select:none}
.co .chk:active{transform:scale(.9)}
.co .chk.on{background:var(--ink);border-color:var(--ink)}
.co.sel{border-color:var(--ink);background:var(--card3)}
.co.is-exp{opacity:.6}
.expb{flex:0 0 auto;font-size:.62rem;font-weight:700;border-radius:var(--r-xs);
  padding:.14rem .42rem;line-height:1.5;white-space:nowrap;background:var(--card2);
  color:var(--ink3);border:1px solid var(--line)}
.expb.on{background:var(--ok-s);color:var(--ok);border-color:transparent}

.empty{text-align:center;padding:2.8rem 1rem;color:var(--ink3);font-size:.82rem;line-height:1.9}
.empty .ico{font-size:1.7rem;display:block;margin-bottom:.6rem;opacity:.28}
.hint{font-size:.71rem;color:var(--ink3);min-height:1.1em;margin:.1rem 0 .5rem}
.hint.done{text-align:center;padding:.9rem 0;font-family:var(--mono);font-size:.66rem}

.skel{background:var(--card3);border:1px solid var(--line);border-radius:var(--r);
  height:78px;margin-bottom:.55rem;position:relative;overflow:hidden}
.skel::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,transparent,rgba(0,0,0,.04),transparent);
  animation:sk 1.2s infinite}
@keyframes sk{from{transform:translateX(-100%)}to{transform:translateX(100%)}}

.selbar{position:fixed;left:0;right:0;bottom:0;z-index:130;background:#fff;
  border-top:1px solid var(--line);box-shadow:0 -6px 26px rgba(16,16,18,.07);
  padding:.62rem 1.15rem calc(.62rem + env(safe-area-inset-bottom));
  display:flex;align-items:center;gap:.55rem;transform:translateY(140%);
  transition:.24s cubic-bezier(.22,.8,.3,1);max-width:var(--w);margin:0 auto}
.selbar.on{transform:translateY(0)}
.selbar .cnt{font-size:.75rem;color:var(--ink2);white-space:nowrap}
.selbar .cnt b{color:var(--ink);font-size:.96rem;font-weight:800}
.selbar .sp{flex:1}
.selbar button{border:1px solid var(--line2);background:#fff;color:var(--ink);
  border-radius:var(--pill);padding:.5rem 1rem;font-size:.76rem;font-weight:600;
  cursor:pointer;white-space:nowrap;transition:.14s}
.selbar button:active{transform:scale(.97)}
.selbar button.pri{background:var(--ink);color:#fff;border-color:var(--ink)}
.selbar button:disabled{opacity:.5}

/* ============================================================
   个人中心
   ============================================================ */
.me-hero{display:flex;align-items:center;gap:.85rem;padding:.45rem .1rem .8rem}
.avatar{width:58px;height:58px;flex:0 0 58px;border-radius:22px;background:var(--ink);
  color:#fff;display:grid;place-items:center;font-size:1.3rem;font-weight:700;
  font-family:var(--geo);letter-spacing:-.02em}
.avatar.guest{background:var(--card2);color:var(--ink3);font-size:1.35rem}
/* 未登录时头像位放站点 Logo（见 renderMe 未登录分支）：contain + 内边距，
   别用 cover 把字标裁掉；失败时 JS 会退回「?」 */
.avatar.guest img{object-fit:contain;padding:8px;background:#fff}
.me-id{flex:1;min-width:0}
.me-id h2{margin:0;font-size:1.12rem;font-weight:800;letter-spacing:-.02em;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.me-id p{margin:.2rem 0 0;font-size:.75rem;color:var(--ink3);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.me-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:1.05rem 1.1rem;margin-bottom:.7rem;box-shadow:var(--sh)}
.me-card.tint{background:var(--card3);box-shadow:none}
.card-hd{display:flex;align-items:center;gap:.5rem;margin-bottom:.7rem}
.card-hd h3{margin:0;font-size:.9rem;font-weight:700;flex:1;letter-spacing:-.01em}
.card-hd em{font-style:normal;font-size:.68rem;color:var(--ink3)}

.tierbadge{display:inline-flex;align-items:center;gap:.3rem;font-size:.68rem;font-weight:700;
  border-radius:var(--pill);padding:.22rem .68rem;background:var(--ink);color:#fff;flex:0 0 auto}
.tierbadge.free{background:var(--card2);color:var(--ink3)}

.mrow{display:flex;justify-content:space-between;align-items:center;gap:.6rem;
  padding:.62rem 0;border-bottom:1px solid var(--line);font-size:.79rem;color:var(--ink2)}
.mrow:last-child{border-bottom:0;padding-bottom:0}
.mrow:first-child{padding-top:0}
.mrow b{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.mrow .big{font-size:1.22rem;font-weight:800;letter-spacing:-.03em}
.mrow .big i{font-style:normal;font-size:.7rem;font-weight:600;color:var(--ink3);margin-left:.16rem}

/* ---------- 一键返回上一次查看的位置（浮动胶囊，无位置记忆时隐藏） ---------- */
.posback{position:fixed;right:1.4rem;bottom:1.6rem;z-index:125;display:inline-flex;
  align-items:center;gap:.4rem;border:1px solid var(--line2);
  background:rgba(255,255,255,.94);
  background:color-mix(in srgb,#fff 92%,transparent);
  backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);
  color:var(--ink);border-radius:var(--pill);height:2.3rem;padding:0 .95rem;
  font-size:.75rem;font-weight:600;cursor:pointer;box-shadow:var(--sh2);transition:.16s}
.posback svg{width:15px;height:15px;flex:0 0 15px}
.posback:active{transform:scale(.96)}
.posback[hidden]{display:none}

/* ---------- 个人中心：会员管理 / 业务管理 两个方形卡片 ---------- */
/* ---------- 个人中心：今日权益（头像正下方，直接可见） ---------- */
.me-quota{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin:0 0 .8rem}
.mq{background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:.58rem .75rem;display:flex;flex-direction:column;gap:.08rem;min-width:0}
.mq b{font-size:1.14rem;font-weight:800;letter-spacing:-.03em;line-height:1.15;color:var(--ink);
  font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mq b i{font-style:normal;font-size:.64rem;font-weight:600;color:var(--ink3);margin-left:.1rem}
.mq.off b{color:var(--ink4)}
.mq span{font-size:.66rem;color:var(--ink3);white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis}
.mq.warn{border-color:#fdba74;background:#fff7ed}
.mq.warn b{color:#c2410c}

/* 头部：会员等级徽标 + 有效期（与名字 / 账号同一行，不额外占位） */
.me-hero .me-id h2 .tierbadge{margin-left:.42rem;vertical-align:.12em;
  font-size:.62rem;padding:.16rem .52rem}
.me-hero .me-id p .texp{margin-left:.4rem;font-size:.64rem}

/* ---------- 个人中心：三张胶囊卡（会员管理 / 业务管理 / 卡密激活） ---------- */
.mgcaps{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin:0 0 .9rem}
.mgcap{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;min-width:0;
  border:1px solid var(--line);background:#fff;border-radius:var(--pill);
  padding:.58rem .95rem;font:inherit;text-align:left;cursor:pointer;transition:.16s}
.mgcap b{font-size:.82rem;font-weight:700;letter-spacing:-.01em;color:var(--ink)}
.mgcap span{font-size:.63rem;color:var(--ink4);max-width:100%;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.mgcap:hover{border-color:var(--line2);box-shadow:var(--sh)}
.mgcap:active{transform:scale(.98)}
.mgcap.on{background:var(--ink);border-color:var(--ink)}
.mgcap.on b{color:#fff}
.mgcap.on span{color:rgba(255,255,255,.62)}

.mepane{margin:0 0 .2rem}
.mtabs{display:flex;gap:.4rem;flex-wrap:wrap;margin:0 0 .8rem}
.mtab{border:1px solid var(--line2);background:#fff;color:var(--ink2);
  border-radius:var(--pill);padding:.42rem .9rem;font:inherit;font-size:.74rem;
  font-weight:600;cursor:pointer;transition:.14s}
.mtab.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.mtab:active{transform:scale(.97)}

/* 查看记录：按天分组，点一条回名录看该企业 */
.vday{font-size:.66rem;font-family:var(--mono);color:var(--ink4);margin:.7rem 0 .2rem}
.vday:first-of-type{margin-top:.2rem}
/* 查看记录：筛选框 + 查看更多（老大定稿：默认 10 条，别一口气糊一屏） */
.vfilter{display:flex;align-items:center;gap:.45rem;border:1px solid var(--line2);
  border-radius:11px;padding:.5rem .75rem;margin:.55rem 0 .15rem;background:#fff}
.vfilter:focus-within{border-color:var(--ink)}
.vfilter svg{color:var(--ink4);flex:0 0 auto}
.vfilter input{flex:1;min-width:0;border:0;outline:0;background:none;
  font-size:.84rem;color:var(--ink);padding:0}
.vfilter input::placeholder{color:var(--ink4)}
.vmore{display:block;width:100%;margin:.75rem 0 .1rem;padding:.62rem;
  border:1px solid var(--line2);border-radius:12px;background:#fff;
  font-size:.78rem;color:var(--ink2);cursor:pointer;text-align:center}
.vmore:hover{border-color:var(--ink);color:var(--ink)}
.vrow{display:flex;gap:.55rem;align-items:baseline;padding:.5rem 0;
  border-bottom:1px solid var(--line);font-size:.755rem;color:var(--ink2);cursor:pointer}
.vrow:last-child{border-bottom:0}
.vrow b{flex:1;min-width:0;font-weight:600;color:var(--ink);overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.vrow i{font-style:normal;font-size:.67rem;color:var(--ink3);white-space:nowrap}
.vrow em{font-style:normal;font-size:.66rem;color:var(--ink4);font-family:var(--mono)}

/* ---------- 会员方案：左右滑动卡片 ---------- */
.tier-rail{display:flex;gap:.55rem;overflow-x:auto;padding:.2rem .15rem .7rem;
  scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;
  cursor:grab}
.tier-rail::-webkit-scrollbar{display:none}
.tier-rail:active{cursor:grabbing}
.tcard{flex:0 0 auto;width:148px;scroll-snap-align:start;position:relative;
  border:1px solid var(--line);background:#fff;border-radius:var(--r);
  padding:.85rem .9rem .9rem;text-align:left;cursor:pointer;transition:.18s}
.tcard:active{transform:scale(.985)}
.tcard .tn{display:block;font-size:.88rem;margin-bottom:.55rem;letter-spacing:.02em}
.tcard .trow{display:flex;justify-content:space-between;gap:.4rem;font-size:.7rem;
  color:var(--ink3);line-height:1.75}
.tcard .trow em{font-style:normal;color:var(--ink2)}
.tcard .tp{margin-top:.6rem;font-size:.95rem;color:var(--ink);letter-spacing:.01em;
  display:flex;align-items:baseline;gap:.18rem;white-space:nowrap}
.tcard .tp i{font-style:normal;font-size:.66rem;color:var(--ink3)}
.tcard .tp s{text-decoration:line-through;font-size:.68rem;font-weight:400;color:var(--ink3)}
.tcard .zk{position:absolute;top:.62rem;right:.7rem;font-style:normal;font-weight:600;
  font-size:.6rem;line-height:1;background:var(--ink);color:#fff;border-radius:99px;
  padding:.28rem .52rem;letter-spacing:.03em}
/* 折扣标与「当前」同在右上角时，当前 标下移一行避免重叠 */
.tcard.hzk .tcur{top:1.98rem}
.tcard.on{border-color:var(--ink);background:var(--ink);color:#fff}
.tcard.on .trow{color:rgba(255,255,255,.62)}
.tcard.on .trow em{color:rgba(255,255,255,.9)}
.tcard.on .tp{color:#fff}
.tcard.on .tp i{color:rgba(255,255,255,.6)}
.tcard.on .tp s{color:rgba(255,255,255,.55)}
.tcard.on .zk{background:#fff;color:var(--ink)}
.tcard .tcur{position:absolute;top:.65rem;right:.75rem;font-size:.6rem;color:var(--ink3)}
.tcard.on .tcur{color:rgba(255,255,255,.62)}

.rail-hint{font-size:.66rem;color:var(--ink4);margin:-.2rem 0 .85rem;letter-spacing:.01em}

/* 权益 */
.benefit{border:1px solid var(--line);background:var(--card3);border-radius:var(--r);
  padding:.85rem 1rem .7rem;margin-bottom:.8rem}
.benefit .bh{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.25rem}
.benefit .bh h4{margin:0;font-size:.86rem;flex:1}
.benefit .bh em{font-style:normal;font-size:.66rem;color:var(--ink3)}

/* 时长 / 价格 */
.dursel{display:flex;gap:.5rem;margin:.1rem 0 .85rem}
.dursel button{flex:1;min-width:0;border:1px solid var(--line);background:#fff;
  border-radius:var(--r-sm);padding:.6rem .3rem;cursor:pointer;transition:.16s;text-align:center}
.dursel button:active{transform:scale(.98)}
.dursel b{display:block;font-size:.8rem}
.dursel span{display:block;font-size:.74rem;color:var(--ink2);margin-top:.16rem;white-space:nowrap}
.dursel span s{text-decoration:line-through;font-size:.62rem;color:var(--ink4);margin-left:.14rem}
.dursel em{display:block;font-style:normal;font-size:.62rem;color:var(--ink4);margin-top:.1rem}
.dursel button.on{border-color:var(--ink);background:var(--ink);color:#fff}
.dursel button.on span{color:rgba(255,255,255,.85)}
.dursel button.on span s{color:rgba(255,255,255,.5)}
.dursel button.on em{color:rgba(255,255,255,.6)}
.dursel button:disabled{opacity:.45}

.buybtn{width:100%;border:0;background:var(--ink);color:#fff;border-radius:var(--pill);
  padding:.86rem 1rem;font-size:.88rem;cursor:pointer;transition:.16s;letter-spacing:.02em}
.buybtn:active{transform:scale(.99)}
.buybtn:disabled{opacity:.42;cursor:default}
.buy-note{font-size:.66rem;color:var(--ink4);text-align:center;margin:.5rem 0 0;line-height:1.7}

/* 权限清单 */
.plist{list-style:none;margin:0;padding:0}
.plist li{position:relative;padding:.42rem 0 .42rem 1.6rem;font-size:.78rem;color:var(--ink2);
  line-height:1.6}
.plist li::before{content:"";position:absolute;left:.25rem;top:.82rem;width:11px;height:6px;
  border-left:1.6px solid currentColor;border-bottom:1.6px solid currentColor;
  transform:rotate(-45deg);opacity:.85}
.plist li.off{color:var(--ink4)}
.plist li.off::before{border:0;width:10px;height:1.6px;background:currentColor;
  transform:none;top:1.02rem;left:.28rem;border-radius:2px}

/* 登录 / 注册 */
.auth-tabs{display:flex;gap:.3rem;background:var(--card2);border-radius:var(--pill);
  padding:.24rem;margin-bottom:1rem}
.auth-tabs button{flex:1;border:0;background:none;color:var(--ink3);border-radius:var(--pill);
  padding:.52rem .5rem;font-size:.79rem;font-weight:700;cursor:pointer;transition:.16s}
.auth-tabs button.on{background:#fff;color:var(--ink);box-shadow:var(--sh)}
.field{display:block;margin-bottom:.75rem}
.field span{display:block;font-size:.71rem;color:var(--ink3);margin-bottom:.34rem;font-weight:600}
.field input{width:100%;height:46px;border:1px solid var(--line2);border-radius:var(--r-sm);
  background:var(--card3);color:var(--ink);padding:0 .95rem;font-size:.87rem;outline:none;
  transition:.16s;font-family:inherit}
.field input:focus{border-color:var(--ink);background:#fff;box-shadow:0 0 0 5px var(--pri-s)}
.tiny{font-size:.68rem;color:var(--ink4);line-height:1.75;margin:.85rem 0 0}
/* 注册须知（仅当后台已开通邮件验证时出现，见 bindAuth 的 syncAuth） */
.afnote{font-size:.69rem;color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;
  border-radius:10px;padding:.5rem .65rem;line-height:1.6;margin:.1rem 0 .8rem;text-align:left}
.afnote b{font-weight:700}
/* 邮件服务还没开通时的中性提示（别拿橙色警报色吓人） */
.afnote.off{color:var(--ink3);background:var(--card3);border-color:var(--line2)}
/* 登录表单下方「忘记密码？」 */
.forgot{margin:.75rem 0 0;text-align:right;font-size:.72rem}
.forgot a{color:var(--ink3);text-decoration:underline;text-underline-offset:3px}
.forgot a:hover{color:var(--ink)}
/* 找回密码面板：邮箱 / 手机号两个页签 + 逐行输入 */
.fp-tabs{display:flex;gap:.4rem;justify-content:center;margin:0 0 .85rem}
.fp-tabs button{flex:1;max-width:130px;padding:.45rem 0;border:1px solid var(--line2);
  border-radius:99px;background:var(--card3);color:var(--ink3);font-size:.73rem;
  font-family:inherit;cursor:pointer;transition:.16s}
.fp-tabs button.on{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:600}
.vbox .field.fp-t{margin:0 0 .55rem;text-align:left}
.vbox .fp-row{display:flex;gap:.5rem;margin-top:.5rem}
.vbox .fp-row input{flex:1;min-width:0;width:auto;text-align:left;letter-spacing:0;
  font-size:.83rem;padding:.55rem .7rem;border:1px solid var(--line);
  border-radius:12px;outline:none}
.vbox .fp-row input#fpCode{letter-spacing:4px;text-align:center}
.vbox .fp-row input:focus{border-color:var(--ink)}
.vbox .fp-row button{flex:0 0 auto;padding:.55rem .7rem;border:1px solid var(--line);
  border-radius:12px;background:#fff;color:var(--ink);font-size:.72rem;
  font-family:inherit;white-space:nowrap;cursor:pointer}
.vbox .fp-row button:disabled{color:var(--ink3);opacity:.6;cursor:default}
/* 注册表单里的「验证码 + 获取验证码」一行 */
.field .coderow{display:flex;gap:.5rem}
.field .coderow input{flex:1;min-width:0;letter-spacing:4px;text-align:center}
.field .coderow button{flex:0 0 auto;height:46px;padding:0 .8rem;
  border:1px solid var(--line2);border-radius:var(--r-sm);background:var(--card3);
  color:var(--ink);font-size:.76rem;font-weight:600;font-family:inherit;
  white-space:nowrap;cursor:pointer;transition:.16s}
.field .coderow button:hover:not(:disabled){border-color:var(--ink)}
.field .coderow button:disabled{color:var(--ink3);cursor:default;opacity:.6}

/* 导出记录 */
.exprow{display:flex;gap:.55rem;align-items:baseline;padding:.55rem 0;
  border-bottom:1px solid var(--line);font-size:.755rem;color:var(--ink2)}
.exprow:last-child{border-bottom:0}
.exprow b{flex:1;min-width:0;font-weight:600;color:var(--ink);overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.exprow i{font-style:normal;font-size:.67rem;color:var(--ink3);white-space:nowrap}

/* 我的跟进 */
.fsumline{display:flex;flex-wrap:wrap;gap:.4rem .9rem;font-size:.72rem;color:var(--ink2);
  line-height:1.8}
.fsumline span{display:inline-flex;align-items:center;gap:.32rem}
.fsumline b{color:var(--ink);font-variant-numeric:tabular-nums}
.fsumline .warn{color:var(--warn)}
.fsumline .fdot{width:6px;height:6px}
.fulist{margin-top:.5rem}
.furow{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap;padding:.5rem 0;
  border-bottom:1px solid var(--line);font-size:.75rem;color:var(--ink2)}
.furow:last-child{border-bottom:0}
.furow b{flex:1;min-width:0;color:var(--ink);overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap}
.furow em{font-style:normal;font-size:.67rem;color:var(--ink3);white-space:nowrap}
.furow .fust{font-style:normal;font-size:.65rem;color:var(--ink3);background:var(--card2);
  border-radius:var(--r-xs);padding:.1rem .42rem;white-space:nowrap}
.furow .futodo{font-style:normal;font-size:.65rem;color:var(--ink3);white-space:nowrap}
.furow .futodo.warn{color:var(--warn)}
.furow u{flex:1 1 100%;text-decoration:none;font-size:.68rem;color:var(--ink3);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- 提示 ---------- */
.toast{position:fixed;left:50%;top:50%;z-index:400;transform:translate(-50%,-50%) scale(.94);
  background:rgba(16,16,18,.95);color:#fff;padding:.9rem 1.2rem;border-radius:16px;
  font-size:.8rem;line-height:1.65;max-width:min(86vw,370px);text-align:center;
  opacity:0;pointer-events:none;transition:.2s;box-shadow:0 14px 44px rgba(0,0,0,.26)}
.toast.on{opacity:1;transform:translate(-50%,-50%) scale(1)}

/* ---------- 官网手机桌面快捷方式提示（轻量、非模态） ---------- */
.pwa-install-layer{position:fixed;left:0;right:0;bottom:calc(.8rem + env(safe-area-inset-bottom));z-index:390;
  display:flex;justify-content:center;padding:0 .75rem;pointer-events:none}
.pwa-install-layer[hidden]{display:none!important}
.pwa-install{position:relative;display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:.72rem;
  width:min(calc(100vw - 1.5rem),430px);min-height:70px;padding:.68rem 2.15rem .68rem .72rem;pointer-events:auto;
  border:1px solid rgba(10,10,12,.09);border-radius:18px;background:rgba(255,255,255,.97);
  box-shadow:0 12px 38px rgba(10,10,12,.16);text-align:left;backdrop-filter:blur(12px);animation:pwaUp .22s ease-out}
.pwa-install.expanded{align-items:start;grid-template-columns:46px minmax(0,1fr) auto}
.pwa-install img{display:block;width:46px;height:46px;border-radius:12px}
.pwa-install-copy{min-width:0}
.pwa-install h2{margin:0;font-size:.82rem;line-height:1.3;letter-spacing:-.015em}
.pwa-install p{margin:.14rem 0 0;color:var(--ink4);font-size:.64rem;line-height:1.45;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pwa-install-steps{grid-column:1/-1;margin:.08rem 0 0;padding:.58rem .66rem;border-radius:11px;background:var(--paper);
  color:var(--ink2);font-size:.66rem;line-height:1.55;text-align:left}
.pwa-install-steps[hidden]{display:none!important}
.pwa-install button{border:0;cursor:pointer;font-family:inherit}
.pwa-install-go{height:34px;padding:0 .78rem;border-radius:var(--pill)!important;
  background:var(--ink);color:#fff;font-size:.68rem;font-weight:700;white-space:nowrap}
.pwa-install-close{position:absolute;right:.42rem;top:.32rem;width:24px;height:24px;border-radius:50%;
  background:transparent;color:var(--ink4);font-size:.88rem;line-height:1}
@keyframes pwaUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.pwa-install{animation:none}}

/* ============================================================
   响应式 —— 移动端优先，同时适配平板 / PC / 大屏
   断点：≤400 小屏 · ≤540 手机 · ≥620 平板 · ≥900 桌面 · ≥1440 大屏
   ============================================================ */

/* ---------- 手机 ---------- */
@media(max-width:540px){
  .wordmark{font-size:2.1rem}
  .pill input{height:50px;font-size:.87rem}
  .pill .pbtn{width:40px;height:40px}
  .sbox button{padding:.64rem .95rem}
  .landing{padding-top:calc(var(--navh) + 1.9rem);
    padding-bottom:calc(1.9rem + env(safe-area-inset-bottom))}
  .tcard{width:138px}
  .chip{padding:.46rem .9rem}          /* 触控热区略放大 */
  .co{padding:.8rem .82rem}
  .me-card{padding:.95rem 1rem}
  .acct{padding:0 .74rem}
  /* 顶栏两个模块按钮：小屏收紧，给标题让位 */
  .modsw{gap:.2rem}
  .tbn{padding:0 .58rem;font-size:.72rem}
  .backb{width:auto;height:38px;flex-basis:auto}
  .toast{max-width:min(90vw,340px)}
  main{padding-bottom:5.6rem}          /* 给贴底的多选条留出空间 */
  .pwa-install-layer{padding:0 .65rem}
  .pwa-install{width:100%}
}

@media(min-width:761px){
  .pwa-install-layer{display:none!important}
}

/* ---------- 小屏（iPhone SE 等） ---------- */
@media(max-width:400px){
  .wordmark{font-size:1.88rem}
  .wm-sub{font-size:.72rem;margin-bottom:1.6rem}
  .land-stats span{font-size:.63rem;padding:.24rem .58rem}
  .strip{--g:.34rem}
  .co .body dl{grid-template-columns:auto minmax(0,1fr);gap:.38rem .58rem}
  .tcard{width:132px}
  .dursel{gap:.4rem}
  .dursel span{font-size:.7rem}
  /* 跟进登记：小屏把跟进人 / 待办竖排，避免输入框被压扁 */
  .frow3{flex-direction:column}
  .frow3 input{width:100%}
  .legend li{flex-direction:column;gap:.1rem}
  .legend li b{flex:none}
  .co .cprof{font-size:.7rem}
  /* 顶栏再紧一档，避免两个模块按钮把返回图标挤没 */
  .tbn{padding:0 .48rem;font-size:.69rem}
  .modsw{gap:.16rem}
}

/* ---------- 平板及更大：是横向滚动条，此时改为换行更顺手 ---------- */
@media(min-width:620px){
  .chips{flex-wrap:wrap;overflow:visible;padding-bottom:0}
  .tier-rail{padding-bottom:.25rem}
}

/* ---------- 桌面 ---------- */
@media(min-width:900px){
  html{font-size:106.25%}               /* 等比微放大，PC 上更耐看 */
  :root{--w:1080px;--cw:660px}

  /* 首页 */
  .landing{padding-top:calc(var(--navh) + 3.2rem);
    padding-bottom:calc(2.6rem + env(safe-area-inset-bottom))}
  .wordmark{font-size:3.3rem}
  .wm-sub{font-size:.82rem;margin-bottom:2rem}
  .pill input{height:58px;font-size:.95rem}
  .pill .pbtn{width:48px;height:48px}
  .strip-wrap{margin-top:1.35rem}
  .strip{--g:.42rem}
  .strip .sit{padding:.36rem .72rem;font-size:.76rem}

  /* 行业页 */
  .sec-h{margin:2.1rem 0 1rem}
  .chips{gap:.45rem}
  main{padding-bottom:6.2rem}          /* 给浮起的多选胶囊留出空间 */

  /* 企业名录：双列瀑布，明细两栏 */
  #rlist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.6rem;align-items:start}
  #rlist .co{margin-bottom:0}
  #rlist>.empty{grid-column:1/-1}
  .co .body dl{grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr);
    gap:.5rem 1.1rem}
  .co .chk{width:20px;height:20px}
  .sbox{max-width:560px}
  /* 筛选面板在宽屏是换行排布，给「更多筛选」留出右边距 */
  .fsum{gap:.4rem}
  .legend li b{flex-basis:7rem}
  .legend li{font-size:.72rem}
  /* 跟进面板宽屏稍收窄，读起来更舒服 */
  .fup{max-width:560px}

  /* 个人中心：整体居中收窄，4 档会员卡并排 */
  .view[data-v="me"] .content{max-width:640px;margin:0 auto}
  .tier-rail{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
    overflow:visible;scroll-snap-type:none;cursor:default;gap:.55rem}
  .tcard{width:auto;padding:.9rem .8rem .95rem}
  .tcard:active{transform:none}
  .rail-hint{display:none}

  /* 底部多选条：浮起胶囊，不再贴边 */
  .selbar{left:50%;right:auto;width:min(720px,calc(100% - 3rem));bottom:1.3rem;
    border:1px solid var(--line2);border-radius:var(--pill);
    padding:.6rem 1.15rem;box-shadow:var(--sh3);transform:translate(-50%,180%)}
  .selbar.on{transform:translate(-50%,0)}
}

/* ---------- 大屏 ---------- */
@media(min-width:1440px){
  :root{--w:1200px}
  .strip{--g:.46rem}
}

@media(prefers-reduced-motion:reduce){
  .skel::after{animation:none}
  html{scroll-behavior:auto}
}

/* ============================================================
   全站字重归一
   仅「Cross-border」与首页「400+ / 千万级」加粗，其余一律正常粗细
   ============================================================ */
#pgLand *,#pgApp *{font-weight:400}
#pgLand .wordmark,#pgApp .wordmark{font-weight:600}
#pgLand .strip-label{font-weight:600}
#pgLand .land-stats b{font-weight:700}
/* 页脚说明也允许 <b> 加粗（后台「页脚说明」填 <b>…</b>）。
   上面那条 `#pgLand *` 把 <b> 的默认加粗压成了 400，所以这里显式放开 */
#pgLand .land-foot b{font-weight:700;color:var(--ink2)}
.toast b{font-weight:700}


/* ---------- 收银台浮层 ---------- */
.paymask{position:fixed;inset:0;background:rgba(10,10,12,.55);z-index:400;
  display:flex;align-items:center;justify-content:center;padding:1.2rem}
.paybox{position:relative;background:#fff;border-radius:var(--r-lg,24px);
  padding:1.6rem 1.5rem 1.4rem;width:min(340px,100%);text-align:center}
.paybox h3{margin:0 0 .3rem;font-size:.98rem}
.payamt{margin:0 0 .9rem;font-size:1.7rem;font-weight:800;letter-spacing:-.02em}
.payqr{display:block;width:200px;height:200px;margin:0 auto .7rem;border:1px solid var(--line);
  border-radius:12px;object-fit:contain;background:#fff}
.paytip{margin:.2rem 0;font-size:.72rem;color:var(--ink2);line-height:1.6}
.payst{margin:.55rem 0 0;font-size:.72rem;color:var(--ink3)}
.payx{position:absolute;top:.55rem;right:.75rem;width:30px;height:30px;border:0;background:none;
  font-size:1.15rem;line-height:1;color:var(--ink3);cursor:pointer}
.lgdismiss{position:absolute;top:.58rem;right:.62rem;height:29px;padding:0 .68rem;
  border:1px solid #e9e9eb;border-radius:var(--pill);background:#fafafb;
  color:var(--ink3);font-size:.68rem;line-height:1;cursor:pointer;white-space:nowrap;
  display:inline-flex;align-items:center;gap:.38rem;z-index:2;
  transition:background .16s,color .16s,border-color .16s}
.lgdismiss span{font-size:.88rem;line-height:1;color:var(--ink3)}
.lgdismiss:hover{background:#f7f7f8;color:var(--ink2);border-color:#dedee1}
.lgdismiss:hover span{color:var(--ink2)}
.lgdismiss:active{transform:scale(.96)}
.texp{font-size:.66rem;color:var(--ink3);margin-left:.45rem}
@media (max-width:480px){.payqr{width:168px;height:168px}}

/* 微信 Native：前端生成的二维码填满容器 */
.payqr img,.payqr canvas{width:100%!important;height:100%!important;display:block}


/* ---------- 邮箱验证 ---------- */
.verifybar{display:flex;align-items:center;gap:.55rem;margin:0 0 1rem;padding:.7rem .9rem;
  background:#fff7ed;border:1px solid #fdba74;border-radius:var(--r,14px);cursor:pointer}
.verifybar b{font-size:.8rem;color:#9a3412;font-weight:600}
.verifybar span{flex:1;font-size:.7rem;color:#c2410c}
.verifybar i{font-style:normal;font-size:.72rem;color:#fff;background:#ea580c;
  border-radius:99px;padding:.24rem .6rem}
.vbox{text-align:center;padding:.2rem 0}
.vbox .vicon{font-size:1.9rem;margin-bottom:.3rem}
.vbox h3{margin:0 0 .4rem;font-size:.98rem}
.vbox .vtip{margin:0 auto .9rem;font-size:.74rem;color:var(--ink2);line-height:1.65;max-width:250px}
/* 强制门禁（注册未验邮箱 / 微信未绑手机）时的补充说明：不可关闭的面板里把后果说清楚 */
.vbox .vtip.gate-lock{margin:-.35rem auto .85rem;padding:.5rem .6rem;max-width:262px;
  color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;font-size:.7rem}
.vbox .vrow{display:flex;gap:.5rem;justify-content:center}
.vbox .vrow input{width:150px;text-align:center;letter-spacing:6px;font-size:1rem;
  padding:.55rem .4rem;border:1px solid var(--line);border-radius:12px;outline:none}
.vbox .vrow input:focus{border-color:var(--ink)}
.vbox .vresend{margin:.7rem 0 0;font-size:.72rem;color:var(--ink3)}
.vbox .vresend a{color:var(--ink);text-underline-offset:3px}


/* ---------- 微信登录 & 手机绑定 ---------- */
.auth-div{display:flex;align-items:center;gap:.7rem;margin:.9rem 0;color:var(--ink3);font-size:.7rem}
.auth-div:before,.auth-div:after{content:"";flex:1;height:1px;background:var(--line)}
.wxbtn{display:flex;align-items:center;justify-content:center;gap:.4rem;color:#1a9d4b}
.wxbtn svg{flex:0 0 auto}
.wxtag{font-style:normal;font-size:.6rem;color:#1a9d4b;border:1px solid #1a9d4b;border-radius:99px;padding:.05rem .4rem;margin-left:.3rem;vertical-align:.05em}
.vbox .vrow input[type=tel]{letter-spacing:1px;text-align:left;flex:1}
.vbox .vrow #pbSend{padding:.55rem .7rem;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:.72rem;cursor:pointer}
.vbox .vrow #pbSend:disabled{color:var(--ink3);cursor:default}


/* ---- 个人中心 · 账号与激活 ---- */
.avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}
.prow{display:flex;gap:1rem;align-items:flex-start}
.pavatar{position:relative;flex:0 0 auto;width:64px;height:64px;border-radius:50%;overflow:hidden;
  cursor:pointer;background:var(--soft,#f1efe8);display:flex;align-items:center;justify-content:center}
.pavatar img{width:100%;height:100%;object-fit:cover;display:block}
.pavatar-txt{font-size:1.5rem;color:var(--ink);opacity:.55}
.pavatar-edit{position:absolute;left:0;right:0;bottom:0;background:rgba(0,0,0,.55);color:#fff;
  font-size:10px;font-style:normal;text-align:center;padding:2px 0}
.pfields{flex:1;display:grid;gap:.55rem}
.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin-top:.55rem}
.redeemrow{display:flex;gap:.5rem}
.redeemrow input{flex:1}
/* 推荐有礼：专属链接 + 一键复制 + 规则说明（说明文案后台可改，可能多行） */
.refrow{display:flex;gap:.5rem;align-items:stretch}
.refrow input{flex:1;min-width:0;color:var(--ink3)}
/* 待领取奖励条：可领取时高亮，暂不可领时（当前档位更高）弱化并禁用按钮 */
.refclaim{display:flex;align-items:center;justify-content:space-between;gap:.6rem;
  flex-wrap:wrap;margin:0 0 .7rem;padding:.6rem .75rem;
  background:var(--pri-s);border:1px solid var(--line2);border-radius:var(--r-sm)}
.refclaim .rc-l{font-size:.8rem;color:var(--ink3)}
.refclaim .rc-l b{font-size:1.05rem;font-weight:600;color:var(--ink);margin:0 .12rem}
.refclaim .btn{flex:0 0 auto}
.refclaim.off{background:transparent;border-style:dashed}
.refclaim.off .btn[disabled]{opacity:.55;cursor:default}
.refblock{margin:.5rem 0 0;line-height:1.7;color:var(--ink4)}
.refnote{margin:.6rem 0 0;line-height:1.75;color:var(--ink4)}
@media (max-width:560px){.pgrid{grid-template-columns:1fr}.prow{flex-direction:row}}


/* ---- 管理后台 · 激活码 ---- */
.cgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.6rem;margin:.5rem 0}
.cgrid label{display:flex;flex-direction:column;gap:.25rem;font-size:12px;color:#666}
.cgrid input,.cgrid select{padding:.45rem .6rem;border:1px solid #ddd;border-radius:8px;font-size:13px}
.chk{flex-direction:row!important;align-items:center;gap:.4rem!important}
.rowbtns{display:flex;align-items:center;gap:.6rem;margin:.6rem 0}
.outbox{border:1px dashed #ccc;border-radius:10px;padding:.6rem .8rem;margin-top:.4rem}
.codelist{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.4rem}
.codeitem{font-family:ui-monospace,Consolas,monospace;font-size:12px;background:#f4f3ef;
  border:1px solid #e2e0da;border-radius:6px;padding:.2rem .45rem;cursor:pointer;user-select:all}
.codeitem:hover{background:#eceae4}


/* ---- 个人中心 · 齿轮基本信息 + 独立模块 ---- */
.gearbtn{width:34px;height:34px;flex:0 0 34px;border-radius:50%;border:1px solid var(--line2);
  background:#fff;color:var(--ink4);display:inline-flex;align-items:center;justify-content:center;
  cursor:pointer;transition:all .15s}
.gearbtn svg{width:15px;height:15px}
.gearbtn:hover{color:var(--ink);border-color:var(--ink4)}
.gearbtn.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.me-base{padding:.35rem 1.05rem;margin:0 0 1.1rem}
.me-base .brow{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;
  padding:.6rem 0;border-bottom:1px dashed var(--line);font-size:.8rem}
.me-base .brow:last-child{border-bottom:0}
.me-base .brow span{color:var(--ink4);flex:none}
.me-base .brow b{font-weight:600;text-align:right;word-break:break-all}
.btag{font-style:normal;font-size:.62rem;color:var(--ink4);border:1px solid var(--line2);
  border-radius:var(--pill);padding:.05rem .4rem;margin-left:.3rem;vertical-align:1px}

#paneMem .me-card,#paneAct .me-card,#paneSet .me-card{margin-bottom:1.1rem}
@media (max-width:560px){
  .me-hero{gap:.7rem;padding:.3rem .1rem .7rem}
  .me-quota{gap:.4rem}
  .mq{padding:.5rem .58rem;border-radius:var(--r-sm)}
  .mq b{font-size:1rem}
  .mq span{font-size:.6rem}
  .mgcaps{gap:.4rem}
  .mgcap{padding:.52rem .5rem;align-items:center;text-align:center}
  .mgcap b{font-size:.76rem}
  .mgcap span{display:none}
  .mtab{padding:.38rem .68rem;font-size:.71rem}
  .posback{right:auto;left:50%;transform:translateX(-50%);bottom:5rem}
}


/* ============================================================
   贸易情报（海关提单检索）—— 沿用名录同一套极简语言
   ============================================================ */
.tbn{flex:0 0 auto;border:1px solid var(--line2);background:#fff;color:var(--ink);
  border-radius:var(--pill);height:var(--hctl);padding:0 .78rem;font-size:.75rem;
  font-weight:600;cursor:pointer;transition:.16s;white-space:nowrap}
.tbn:hover{border-color:var(--ink4)}
.tbn:active{transform:scale(.96);background:var(--card2)}
/* 顶栏模块切换：企业名录 / 贸易情报 两个入口常驻，当前所在模块亮黑填充 */
.modsw{flex:0 0 auto;display:inline-flex;align-items:center;gap:.25rem}
.tbn.on{background:var(--ink);color:#fff;border-color:var(--ink);cursor:default}
.tbn.on:hover{border-color:var(--ink)}
.tbn.on:active{transform:none;background:var(--ink)}

/* ⚠ 类名必须用 .trec，禁止用 .trow —— .trow 已被个人中心会员卡（查看 / 导出 两行）占用，
   同名会让会员卡那两行套上白底胶囊样式，选中卡（深底白字）变成白底白字、内容不可见 */
/* 提单卡片：可点击 —— 点了显式跳到企业名录看该企业，所以给 pointer / hover */
.trec{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:.72rem .95rem;margin-bottom:.55rem;cursor:pointer;transition:.15s}
.trec:hover{border-color:var(--line2);box-shadow:var(--sh)}
.trec .thd{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap;margin-bottom:.25rem}
.trec .thd b{font-size:.85rem;font-weight:700;letter-spacing:-.01em;color:var(--ink)}
.trec .tcc{font-size:.68rem;color:var(--ink3)}
.trec .tprod{font-size:.73rem;color:var(--ink2);line-height:1.6;margin:0 0 .3rem;
  word-break:break-word}
.trec .tmeta{display:flex;flex-wrap:wrap;gap:.55rem;font-size:.66rem;color:var(--ink4);
  font-family:var(--mono)}

/* 卡片上的海关标记：亮黑填充 = 全站最高视觉权重，对应「带海关信息置顶」 */
.co .cm .tg2.g-tr{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:600}
.co .cm .tg2.g-tr2{color:var(--ink2);border-color:var(--line2);background:var(--card2)}

/* 详情里的提单记录表 */
.co .body .dgroup.dtr h5 em{font-style:normal;font-family:var(--mono);color:var(--ink4);
  letter-spacing:0;text-transform:none;margin-left:.35rem}
.twrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);
  border-radius:var(--r-sm)}
table.tt{width:100%;border-collapse:collapse;font-size:.7rem}
table.tt th,table.tt td{padding:.38rem .55rem;text-align:left;vertical-align:top;
  border-bottom:1px solid var(--line);color:var(--ink2)}
table.tt th{font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink4);
  font-family:var(--mono);font-weight:400;white-space:nowrap;background:var(--card3)}
table.tt tr:last-child td{border-bottom:0}
.thint{font-size:.66rem;color:var(--ink4);line-height:1.6;margin:.4rem 0 0}
/* 提单表：默认只显示前 3 条，其余折叠；点「展开全部」整表展开 */
.co .body .dtr tr.tex{display:none}
.co .body .dtr.all tr.tex{display:table-row}
.co .body .dtr tr.ttgl td{border-bottom:0;padding:.22rem 0 0}
.ttb{border:0;border-bottom:1px dashed var(--line2);background:none;color:var(--ink3);
  font:inherit;font-size:.66rem;padding:.15rem 0;cursor:pointer;letter-spacing:.02em}
.ttb:hover{color:var(--ink);border-bottom-color:var(--ink4)}

/* 个人中心 · 排版重做：模块不变，只调观感（全部收口在 #meBox 作用域内） */
#meBox{max-width:840px;margin:0 auto}

/* 顶部身份面板：头像 / 身份 / 今日权益 一体，四周留白舒展 */
#meBox .me-overview{padding:1.65rem 1.8rem 1.6rem;margin-bottom:1.2rem;
  border:1px solid var(--line);border-radius:28px;
  background:linear-gradient(135deg,#fafafb,#fff 70%)}
#meBox .me-eyebrow{display:flex;align-items:center;justify-content:space-between;
  font-size:.7rem;color:var(--ink4);margin-bottom:1.3rem}
#meBox .me-eyebrow span{font-size:.58rem;letter-spacing:.18em}
#meBox .me-hero{padding:0 0 1.4rem;gap:1rem}
#meBox .avatar{width:56px;height:56px;flex-basis:56px;border-radius:50%}
#meBox .me-id h2{font-size:1.15rem;font-weight:600;letter-spacing:-.015em;
  white-space:normal;overflow-wrap:anywhere;line-height:1.45}
#meBox .me-id p{font-size:.72rem;color:var(--ink4);white-space:normal;
  overflow-wrap:anywhere;line-height:1.9;margin-top:.3rem}
#meBox .me-id .texp{display:inline-block}
#meBox .tierbadge{font-weight:400}
#meBox .gearbtn{width:38px;height:38px;flex-basis:38px;border-color:var(--line);align-self:center}

/* 今日权益：三张独立小卡，间距明确、不再挤成一行竖线 */
#meBox .me-quota{gap:.75rem;margin:0;padding-top:1.35rem;border-top:1px solid var(--line)}
#meBox .mq{background:#fff;border:1px solid var(--line);border-radius:18px;
  padding:1rem 1.1rem;gap:.35rem}
#meBox .mq b{font-size:1.72rem;font-weight:500;letter-spacing:-.045em;line-height:1.15}
#meBox .mq b i{font-size:.72rem;font-weight:400;margin-left:.3rem;letter-spacing:0}
#meBox .mq span{font-size:.7rem;color:var(--ink4)}
#meBox .mq.warn b{color:#b45309}

/* 三个功能块：竖排；每块 = 一行入口 + 紧跟其下的面板（面板就在自己那一行下方展开） */
#meBox .mgitems{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.4rem}
#meBox .mgitems .mepane.open{margin-bottom:0}
#meBox .mgcap{flex-direction:row;align-items:baseline;gap:.8rem;min-height:0;
  padding:.85rem 2.6rem .85rem 1.2rem;position:relative;
  background:#f7f7f9;border-color:transparent;box-shadow:none;border-radius:16px}
#meBox .mgcap b{font-size:.86rem;font-weight:600;flex:0 0 auto}
#meBox .mgcap span{font-size:.66rem;margin:0;color:var(--ink4);flex:1 1 auto;min-width:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right}
#meBox .mgcap:after{content:"+";position:absolute;right:1.1rem;top:50%;
  transform:translateY(-50%);font-size:1.1rem;font-weight:300;color:var(--ink4);
  transition:transform .3s}
#meBox .mgcap:hover{background:#ededf0}
#meBox .mgcap.on{background:var(--ink)}
#meBox .mgcap.on:after{content:"−";color:#fff;transform:translateY(-50%) rotate(180deg)}
#meBox .mgcap:focus-visible,#meBox .gearbtn:focus-visible{outline:2px solid var(--ink);outline-offset:3px}

/* 丝滑展开：grid-template-rows 0fr→1fr + 淡入，收起时不占位 */
.mepane{display:grid;grid-template-rows:0fr;opacity:0;margin:0;
  transition:grid-template-rows .42s cubic-bezier(.25,.9,.3,1),opacity .3s ease .05s}
.mepane>.mwrap{min-height:0;overflow:hidden}
.mepane.open{grid-template-rows:1fr;opacity:1;margin-bottom:1.15rem}
@media (prefers-reduced-motion:reduce){.mepane{transition:none}}

#meBox .me-card{border-radius:22px;box-shadow:none;padding:1.25rem 1.4rem}
#meBox .card-hd h3{font-weight:500}
#meBox .mtabs{gap:.25rem;background:var(--card2);padding:.3rem;
  border-radius:var(--pill);width:fit-content;margin-bottom:1rem}
#meBox .mtab{border-color:transparent;background:transparent;font-weight:400}
#meBox .mtab.on{background:#fff;color:var(--ink);box-shadow:var(--sh)}
/* 个人中心整列拉伸：内容不足一屏时也把这一列撑到页面底部，
   好让底部两个按钮真正落在最底（而不是紧跟在卡片后面悬在半空） */
.view[data-v="me"] > .content#meBox{display:flex;flex-direction:column;
  min-height:calc(100vh - var(--navh) - 3.6rem);
  min-height:calc(100dvh - var(--navh) - 3.6rem);
  margin-bottom:calc(1.6rem - 4.5rem);      /* 抵消 main 的底边距，只留 1.6rem 安全距离 */
  padding-bottom:env(safe-area-inset-bottom)}
@media(min-width:900px){
  .view[data-v="me"] > .content#meBox{margin-bottom:calc(2rem - 6.2rem)}
}

/* 底部操作：上下排列、水平居中，margin-top:auto 吃掉剩余空间 ⇒ 恒定贴住页面最底 */
#meBox .me-actions{flex-direction:column;align-items:center;gap:.6rem;
  margin:auto 0 0;padding-top:2.2rem}
#meBox .me-actions .btn{min-width:210px;justify-content:center;text-align:center}
@media (max-width:560px){
  #meBox .me-overview{padding:1.2rem 1.05rem;border-radius:24px}
  #meBox .me-eyebrow{margin-bottom:1rem}
  #meBox .me-hero{gap:.75rem;padding-bottom:1.1rem}
  #meBox .me-quota{gap:.45rem;padding-top:1.05rem}
  #meBox .mq{padding:.8rem .85rem;border-radius:15px}
  #meBox .mq b{font-size:1.4rem}
  #meBox .mq span{font-size:.61rem}
  #meBox .mgitems{gap:.45rem}
  #meBox .mgcap{padding:.8rem 2.3rem .8rem 1rem;border-radius:14px}
  #meBox .mgcap b{font-size:.82rem}
  #meBox .mgcap span{font-size:.63rem}
  #meBox .mgcap:after{right:.95rem}
  #meBox .me-actions .btn{min-width:170px}
  #meBox .me-card{padding:1rem}
  #meBox .card-hd{flex-wrap:wrap}
  #meBox .card-hd em{width:100%}
}

@media (max-width:560px){
  .trec{padding:.65rem .8rem}
  table.tt th,table.tt td{padding:.32rem .42rem}
  table.tt{font-size:.66rem}
}

/* 明细一键复制（2026-09-17）：小胶囊按钮，不抢视觉 */
.dcp{display:flex;justify-content:flex-end;margin:-0.2rem 0 .55rem}
.cpy{border:1px solid var(--line);background:#fff;color:var(--ink4);font-size:.62rem;
  padding:.16rem .55rem;border-radius:999px;cursor:pointer;line-height:1.4;flex:none;
  transition:color .15s,border-color .15s,background .15s}
.cpy:hover{color:var(--ink);border-color:var(--ink);background:#f6f6f8}
dd>.cpy{margin-left:.55rem}
/* 长列表渲染优化：屏幕外卡片跳过排版与绘制（浏览器自动记忆高度，滚动不跳） */
#rlist .co{content-visibility:auto;contain-intrinsic-size:auto 232px}

/* ---- 全站登录弹窗：左=手机号验证码 / 右=微信二维码 ---- */
.lgbox{padding:1.5rem 1.6rem 1.6rem;max-width:660px;width:calc(100% - 2rem)}
.lgbox h3{font-size:.95rem;margin:0 0 .3rem}
.lgcol{display:flex;gap:1.5rem}
.lgpane{flex:1;min-width:0}
.lgsub{margin:0 0 .85rem;font-size:.7rem;color:var(--ink3);line-height:1.6}
.lgqr{width:180px;height:180px;margin:.15rem auto .7rem;border:1px solid var(--line);
  border-radius:14px;display:flex;align-items:center;justify-content:center;
  background:var(--card3);overflow:hidden}
.lgqr img,.lgqr canvas{width:100%!important;height:100%!important;display:block}
.qrph{font-size:.7rem;color:var(--ink4)}
.lgagree{display:flex;gap:.45rem;align-items:flex-start;margin:.75rem 0 .85rem;
  font-size:.69rem;color:var(--ink3);line-height:1.65;cursor:pointer}
.lgagree input{margin:.18rem 0 0;flex:0 0 auto;accent-color:var(--pri)}
.lgagree a{color:var(--ink);text-decoration:underline;text-underline-offset:2px}
.login-cta{padding-top:.2rem}
@media (max-width:640px){
  .lgcol{flex-direction:column;gap:1.1rem}
  .lgwx{border-top:1px solid var(--line);padding-top:1.1rem}
}
.lgpromo{margin:.1rem 0 .7rem;font-size:.72rem;color:var(--pri);line-height:1.65;
  background:color-mix(in srgb, var(--pri) 8%, transparent);
  border:1px solid color-mix(in srgb, var(--pri) 25%, transparent);
  border-radius:10px;padding:.45rem .65rem}
.lgpromo b{font-weight:700;color:var(--pri)}

/* ---- 绑定手机号（微信登录后门禁，两步式）----
   第一步：手机号 + 整行「获取验证码」+「暂不绑定」；
   发码后按钮原地变验证码输入框，输满 6 位自动提交；
   验证码错 → 输入框下方一行小红字。 */
.pbbox{max-width:420px;width:calc(100% - 2rem);padding:2.1rem 1.9rem 1.7rem}
.pbwrap{text-align:center}
.pbwx{display:block;margin:0 auto .7rem;color:#111}
.pbwrap h3{font-size:1.12rem;margin:0 0 .3rem}
.pbsub{margin:0 0 1.35rem;font-size:.76rem;color:var(--ink3)}
.pbin{position:relative;text-align:left;margin-bottom:.9rem}
.pbin svg{position:absolute;left:.9rem;top:50%;transform:translateY(-50%);
  width:15px;height:15px;opacity:.4;pointer-events:none}
.pbin input{width:100%;box-sizing:border-box;padding:.8rem 1rem .8rem 2.55rem;
  border:1px solid var(--line);border-radius:12px;font-size:.9rem;
  background:var(--card3);color:var(--ink);transition:border-color .15s}
.pbin input:focus{outline:none;border-color:var(--ink);background:#fff}
.pbbtn{margin-top:.15rem;padding:.85rem .9rem;border-radius:12px;font-size:.92rem}
.pberr{display:none;margin:.55rem 0 0;font-size:.72rem;color:#d43c3c;text-align:left;line-height:1.5}
.pberr.on{display:block}
.pbhint{margin:.7rem 0 0;font-size:.7rem;color:var(--ink3);text-align:left;line-height:1.6}
.pbhint b{font-weight:600;color:var(--ink)}
.pbhint a{color:var(--ink);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.pblater{display:inline-block;margin:1.25rem auto 0;font-size:.76rem;color:var(--ink3);
  cursor:pointer;text-decoration:none}
.pblater:hover{color:var(--ink)}

/* ---- 关注公众号领激活码 / 联系客服 弹窗（复用 pbwrap 居中结构）---- */
.fqbox{max-width:400px;width:calc(100% - 2rem);padding:2rem 1.6rem 1.5rem}
.fqbox .pbsub{margin-bottom:1rem}
.fqqr{width:210px;height:210px;margin:.2rem auto .8rem;border:1px solid var(--line);
  border-radius:14px;background:#fff;display:flex;align-items:center;justify-content:center;
  overflow:hidden}
.fqqr img{width:100%;height:100%;object-fit:contain;display:block}
.fqsteps{margin:0;font-size:.72rem;color:var(--ink3);line-height:1.7}
@media (max-width:640px){
  .fqbox{padding:1.8rem 1.1rem 1.3rem}
  .fqqr{width:180px;height:180px}
}

/* ---- 登录弹窗视觉升级（对齐 2026-09-18 设计稿）----
   左：icon 头部 + 竖条提示 + icon 输入框 + 大黑按钮；
   右：微信头部 + 四角扫描框二维码 + 手机插图。 */
.lgbox{max-width:780px;width:calc(100% - 2rem);padding:2.5rem 2.3rem 2.3rem}
.lgtabs{display:none}   /* 移动端专用，桌面两栏并排不需要 */
.lgcol{display:flex;gap:0}
.lgpane{flex:1;min-width:0;padding:0 1.7rem}
.lgpane:first-child{padding-left:.2rem}
.lgpane.lgem{border-left:1px solid var(--line);padding-right:.2rem}
/* 邮箱通道隐藏（LG_EM_OFF，仅微信扫码）：单栏窄盒 + 头部居中 */
.lgbox.lgonly{max-width:430px;padding:2.2rem 2rem 2rem}
.lgbox.lgonly .lgpane{padding:0}
.lgbox.lgonly .lgpane.lgwx .lghead{flex-direction:column;align-items:center;gap:.6rem;text-align:center;margin-bottom:1.05rem}
.lghead{display:flex;gap:.85rem;align-items:flex-start;margin-bottom:1.25rem}
.lgico{flex:0 0 auto;width:46px;height:46px;border-radius:12px;background:#f2f2f2;
  display:flex;align-items:center;justify-content:center;color:#111}
.lgico.wx{background:none;width:auto;height:auto;align-items:center;color:#111}
.lght{min-width:0}
.lght h3{font-size:1.3rem;margin:0;font-weight:700;color:var(--ink)}
.lgpromo{margin:.32rem 0 0;font-size:.73rem;color:var(--ink3);line-height:1.55;
  background:none;border:0;padding:0;border-radius:0}
.lgpromo b{font-weight:600;color:var(--ink)}
.lgnote{margin:0 0 1.15rem;font-size:.75rem;color:var(--ink);line-height:1.5;
  border-left:3px solid var(--ink);padding-left:.6rem}
.lg-f{margin-bottom:1rem;text-align:left}
.lg-f>label{display:block;font-size:.8rem;font-weight:600;color:var(--ink);margin-bottom:.45rem}
.lgin{position:relative}
.lgin svg{position:absolute;left:.9rem;top:50%;transform:translateY(-50%);
  width:15px;height:15px;opacity:.38;pointer-events:none}
.lgin input{width:100%;box-sizing:border-box;padding:.82rem 1rem .82rem 2.6rem;
  border:1px solid var(--line);border-radius:12px;font-size:.9rem;
  background:var(--card3);color:var(--ink);transition:border-color .15s}
.lgin input:focus{outline:none;border-color:var(--ink);background:#fff}
.lg-f .coderow{display:flex;gap:.65rem}
.lg-f .coderow .lgin{flex:1}
.lg-f .coderow button{flex:0 0 auto;padding:0 1.15rem;border:1px solid var(--line);
  border-radius:12px;background:var(--card3);font-size:.84rem;color:var(--ink);cursor:pointer}
.lg-f .coderow button:disabled{color:var(--ink3);opacity:.6;cursor:default}
.lgagree{display:flex;gap:.5rem;align-items:center;margin:.25rem 0 1.15rem;
  font-size:.76rem;color:var(--ink);cursor:pointer}
.lgagree input{width:15px;height:15px;accent-color:#111;flex:0 0 auto}
.lgagree a{color:var(--ink);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.lggo{border-radius:14px;padding:.95rem;font-size:1rem}
.lggo i{font-style:normal;margin-left:.45rem}
/* 邮箱栏：登录/注册切换 + 忘记密码（弹窗内小链接行） */
.lgemrow{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem}
.lgemrow button{background:none;border:0;padding:0;font:inherit;font-size:.78rem;
  color:var(--ink3);cursor:pointer}
.lgemrow button:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.lgnote2{margin:-.3rem 0 .9rem;font-size:.72rem;color:var(--ink3);line-height:1.55}
.lgnote2 b{font-weight:600;color:var(--ink)}
/* 邮箱栏头部与宣传语居中（icon 上、标题下） */
.lgpane.lgem .lghead{flex-direction:column;align-items:center;gap:.6rem;text-align:center;margin-bottom:1.05rem}
.lgpane.lgem .lght{display:flex;flex-direction:column;align-items:center}
.lgpane.lgem .lgpromo{text-align:center}
.lgqrwrap{position:relative;width:218px;margin:.35rem auto 0;padding:15px}
.lgqr{width:188px;height:188px;margin:0;border:0;border-radius:0;background:#fff}
.qc{position:absolute;width:24px;height:24px;border:2.5px solid #111;pointer-events:none}
.qc.c1{left:0;top:0;border-right:0;border-bottom:0}
.qc.c2{right:0;top:0;border-left:0;border-bottom:0}
.qc.c3{left:0;bottom:0;border-right:0;border-top:0}
.qc.c4{right:0;bottom:0;border-left:0;border-top:0}
.lgpane.lgwx .lgsub{text-align:center;margin:.85rem 0 0}
.lgpane.lgwx .lgwxpromo{text-align:center;font-size:.74rem;color:var(--ink2);margin:.4rem 0 0}
.lgwxpromo b{font-weight:600;color:var(--ink)}
.lgart{display:flex;justify-content:center;margin-top:1.3rem}
@media (max-width:640px){
  .lgpane.lgem{border-left:0;border-top:1px solid var(--line)}
  .lgart{display:none}
}

/* ---- 移动端适配（2026-09-18）：登录弹窗 + 绑定手机号 ----
   三层内边距叠罗汉把表单挤到 180px、二维码 218px 撑爆右栏、
   弹窗超高后被垂直居中裁掉顶部、输入框 14px 触发 iOS 聚焦缩放。 */
@media (max-width:640px){
  /* 超高弹窗：改成顶部对齐 + 容器可滚，矮的时候 margin:auto 依旧居中 */
  .paymask{align-items:stretch;overflow-y:auto;padding:.9rem}
  .paybox{margin:auto}
  /* 登录方式 tab：一次只亮一个，弹窗一屏装得下 */
  .lgtabs{display:flex;gap:8px;margin:0 0 1.15rem}
  .lgtabs button{flex:1;padding:.72rem .5rem;border:1px solid var(--line);border-radius:12px;
    background:var(--card3);font-size:.86rem;color:var(--ink2);cursor:pointer;transition:all .15s}
  .lgtabs button.on{background:#111;color:#fff;border-color:#111;font-weight:600}
  /* 默认亮微信栏（first-child）；emshow 切到邮箱栏 */
  .lgbox.emshow .lgpane.lgwx{display:none}
  .lgbox:not(.emshow) .lgpane.lgem{display:none}
  /* 登录弹窗：收掉叠层内边距 */
  .lgbox{max-width:520px;padding:1.9rem 1.1rem 1.4rem;border-radius:20px}
  .lgpane,.lgpane:first-child,.lgpane.lgwx,.lgpane.lgem{padding:0}
  .lghead{gap:.65rem;margin-bottom:.9rem}
  .lgico{width:40px;height:40px;border-radius:10px}
  .lght h3{font-size:1.08rem}
  .lgpromo{font-size:.68rem}
  .lgnote{margin-bottom:.9rem;font-size:.71rem}
  .lg-f{margin-bottom:.8rem}
  .lg-f>label{font-size:.76rem;margin-bottom:.35rem}
  /* 输入框 16px：防 iOS Safari 聚焦自动放大 */
  .lgin input{padding:.72rem .85rem .72rem 2.4rem;font-size:1rem;border-radius:11px}
  .lg-f .coderow button{padding:0 .7rem;font-size:.78rem;border-radius:11px}
  .lgagree{font-size:.72rem;margin:.2rem 0 .95rem}
  .lggo{padding:.85rem;font-size:.95rem;border-radius:12px}
  /* 二维码整体缩一档，包住不溢出 */
  .lgqrwrap{width:170px;padding:12px}
  .lgqr{width:146px;height:146px}
  .lgpane.lgwx .lgsub{font-size:.68rem;margin-top:.75rem}
  .payx{top:.4rem;right:.45rem}
  .lgdismiss{top:.45rem;right:.48rem;height:28px;padding:0 .64rem;font-size:.66rem}
  /* 绑定手机号 */
  .pbbox{max-width:420px;padding:1.8rem 1.1rem 1.3rem;border-radius:20px}
  .pbwx{width:40px;height:40px}
  .pbwrap h3{font-size:1.02rem}
  .pbsub{font-size:.72rem;margin-bottom:1.05rem}
  .pbin input{padding:.72rem .85rem .72rem 2.4rem;font-size:1rem;border-radius:11px}
  .pbbtn{padding:.78rem .9rem;font-size:.9rem;border-radius:11px}
  .pbhint,.pberr{font-size:.68rem}
  .pblater{font-size:.73rem;margin-top:1rem}
}
@media (max-width:360px){
  .lgbox,.pbbox{padding-left:.85rem;padding-right:.85rem}
  .lgqrwrap{width:160px;padding:11px}
  .lgqr{width:138px;height:138px}
}
