/* ══════════════════════════════════════════════════════════════════════════
   佰睹数据 · 购物车「产品目录」定制样式 cart-product.css
   ──────────────────────────────────────────────────────────────────────────
   背景：产品目录页嵌进真实会员中心外壳后，原来靠主站 web 主题的 por-* 设计系统
        渲染商品卡——那是「把主站样式搬进来」，且卡片竖排规格把每张卡撑得又高又空
        （用户原话「傻大傻大」）。本文件用 design-token 重新定制：
        ① 规格明细从「竖排清单」压成「横向芯片」——高度直接砍一半；
        ② 紧凑卡片，一行 4 张；③ 提供做精的「列表视图」（云控制台风格，最省纵向空间）。
   两视图切换靠 bv-tools 的 JS（纯 CSS：在 .card-list-container 上开关 .bv-view-list，
   DOM 一字节不动），选择记 localStorage。
   作用域：全部包在 .bvp-wrap 下，避免污染会员壳。
   数据钩子保留：.card-item[data-bv-*] / .card-title-text / .card-desc /
        .card-list-container>.por-row —— 排序/筛选/视图 JS 直接复用，不动。
   规格明细 {$list.description} 结构是 product_desc 插件的 <ul class=bv-spec><li class=i-cpu>
        <b>CPU</b>值</li>...；本文件在 .bvp-wrap 作用域内用更高特异性覆盖它的竖排布局。
   ══════════════════════════════════════════════════════════════════════════ */
.bvp-wrap{
  --ink1:#111823; --ink2:#333F4E; --ink3:#5E6B7C; --ink4:#8D9AAB;
  --line:#E2E7EF; --line2:#CFD7E3; --sunk:#EFF2F7; --surface:#FFFFFF;
  --brand50:#FFF4ED; --brand100:#FFE3D0; --brand500:#F2610C; --brand600:#D9520A; --brand700:#B84508;
  --tech50:#EAF3FE; --tech500:#1A7FE0; --tech600:#1268C3; --ok500:#15A34A; --warn50:#FDF3E2; --warn500:#D9880F;
  --r-s:8px; --r-m:12px; --r-l:16px;
  --font:"HarmonyOS Sans",-apple-system,"Segoe UI",system-ui,"PingFang SC","Microsoft YaHei",sans-serif;
  font-family:var(--font); color:var(--ink2);
}
.bvp-wrap *{ box-sizing:border-box; }

/* ── 页头 ── */
.bvp-hd{ display:flex; align-items:baseline; gap:12px; margin:2px 0 16px; }
.bvp-hd .t{ font-size:19px; font-weight:700; color:var(--ink1); letter-spacing:.3px; }
.bvp-hd .badge{ font-size:12px; color:var(--brand700); background:var(--brand50); border:1px solid var(--brand100);
  border-radius:20px; padding:3px 11px; font-weight:600; }
.bvp-hd .sub{ margin-left:auto; font-size:12.5px; color:var(--ink4); }

/* ── 顶部横向分类药丸(替代左侧分类栏) ── */
.bvp-picker{ background:var(--surface); border:1px solid var(--line); border-radius:var(--r-l);
  padding:4px 6px 12px; margin-bottom:16px; box-shadow:0 1px 2px rgba(17,24,35,.03); }
.bvp-prow{ display:flex; align-items:flex-start; gap:14px; padding:10px 12px; }
.bvp-prow + .bvp-prow{ border-top:1px dashed var(--line); }
.bvp-prow .lbl{ flex:0 0 64px; font-size:12.5px; color:var(--ink3); padding-top:6px; }
.bvp-pills{ display:flex; flex-wrap:wrap; gap:8px; flex:1 1 auto; }
.bvp-pill{ display:inline-flex; align-items:center; gap:7px; padding:6px 14px; border-radius:20px; font-size:13px;
  color:var(--ink2); background:var(--sunk); border:1px solid transparent; cursor:pointer; transition:.15s;
  white-space:nowrap; text-decoration:none; }
.bvp-pill:hover{ color:var(--brand600); background:var(--brand50); }
.bvp-pill.on{ background:var(--brand50); color:var(--brand700); border-color:var(--brand100); font-weight:600;
  box-shadow:inset 0 0 0 1px var(--brand100); }
.bvp-pill.on::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--brand500); }
.bvp-pill .tag{ font-size:10.5px; color:#fff; background:var(--brand500); border-radius:5px; padding:0 6px; line-height:16px; }

/* ── 关键词搜索结果提示 ── */
.bvp-kw{ font-size:13px; color:var(--ink3); margin:0 2px 14px; }
.bvp-kw b{ color:var(--brand600); }

/* ══════════════════════════════════════════════════════════════════════════
   规格明细 → 横向芯片(卡片 & 列表两视图共用)
   原插件 bv-spec.css 是竖排 li（每行 min-width:84 的 <b>标签</b> + 值），一列排下来
   5~8 行把卡片撑很高。这里在 .bvp-wrap 里覆盖成 flex-wrap 芯片：
   有图标的项 → 只留「图标 + 值」（隐掉文字标签，图标已足够识别 CPU/内存/盘/带宽）；
   没图标的项(地区/线路等) → 保留文字标签当前缀，避免丢语义。
   description 若不是 bv-spec（自由文本），下面 .bvp-spec 兜底排版接管，不受影响。
   ══════════════════════════════════════════════════════════════════════════ */
.bvp-wrap .bvp-spec .bv-spec{ display:flex; flex-wrap:wrap; gap:6px; margin:0; padding:0; list-style:none; }
.bvp-wrap .bvp-spec .bv-spec li{ display:inline-flex; align-items:center; gap:5px; padding:3px 9px;
  background:var(--sunk); border:1px solid var(--line); border-radius:7px;
  font-size:12px; line-height:1.5; color:var(--ink2); }
/* 有图标行：隐掉文字标签只留图标（font-size:0 只吃 <b> 自己的文字，不影响 li 里的值文本节点） */
.bvp-wrap .bvp-spec .bv-spec li[class]>b{ min-width:0; margin:0; font-size:0; font-weight:400; }
.bvp-wrap .bvp-spec .bv-spec li[class]>b::before{ width:14px; height:14px; margin:0; opacity:.7; }
/* 无图标行：保留文字标签作前缀（否则只剩裸值没上下文） */
.bvp-wrap .bvp-spec .bv-spec li:not([class])>b{ min-width:0; margin:0 4px 0 0; font-size:11.5px;
  font-weight:600; color:var(--ink4); }
/* 底部提示（原红色「禁止：...」）压成小字，跟在芯片下面 */
.bvp-wrap .bvp-spec .bv-note{ flex-basis:100%; margin:6px 0 0; font-size:11.5px; line-height:1.5; }

/* ── 商品卡网格：紧凑 4 列（会员壳有侧栏，宽度按内容区调断点）── */
.card-list-container .por-row{ display:grid !important; grid-template-columns:repeat(4,1fr); gap:14px;
  float:none !important; margin:0 !important; }
@media(max-width:1400px){ .card-list-container .por-row{ grid-template-columns:repeat(3,1fr); } }
@media(max-width:1050px){ .card-list-container .por-row{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:720px){ .card-list-container .por-row{ grid-template-columns:1fr; } }

/* 复用旧类名 .card-item 承接 JS 钩子，样式完全重写 */
.bvp-wrap .card-item{ float:none !important; width:auto !important; padding:0 !important; margin:0 !important; }
.bvp-card{ position:relative; display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--line);
  border-radius:var(--r-m); padding:14px 15px 13px; transition:border-color .15s, box-shadow .15s, transform .05s;
  box-shadow:0 1px 2px rgba(17,24,35,.03); height:100%; }
.bvp-card:hover{ border-color:var(--brand100); box-shadow:0 6px 20px rgba(17,24,35,.08); transform:translateY(-1px); }
.bvp-stock{ position:absolute; top:12px; right:12px; font-size:10.5px; color:var(--tech600); background:var(--tech50);
  border-radius:20px; padding:2px 8px; font-weight:600; }
.bvp-stock.low{ color:var(--warn500); background:var(--warn50); }
.bvp-name{ font-size:14.5px; font-weight:700; color:var(--ink1); line-height:1.35; padding-right:56px; margin-bottom:10px; }
.bvp-spec{ flex:1 1 auto; font-size:12px; color:var(--ink3); line-height:1.6; }
/* 自由文本 description 的兜底排版（非 bv-spec 时） */
.bvp-spec p{ margin:0 0 2px; }
.bvp-foot{ margin-top:12px; padding-top:11px; border-top:1px dashed var(--line);
  display:flex; align-items:flex-end; justify-content:space-between; gap:10px; }
.bvp-price{ display:flex; flex-direction:column; line-height:1.15; }
.bvp-price b{ font-size:20px; font-weight:800; color:var(--brand600); letter-spacing:.3px; }
.bvp-price b small{ font-size:12px; font-weight:700; }
.bvp-price .u{ font-size:11px; color:var(--ink4); margin-top:2px; }
.bvp-price .bvp-old{ font-size:11px; color:var(--ink4); text-decoration:line-through; margin-top:1px; }
.bvp-price .bvp-trial{ font-size:11px; color:var(--ok500); margin-top:1px; }
/* color 用 !important：会员壳的 skin/app.css 有更高特异性的链接色(橙)，
   不强制的话橙底橙字看不见文字。 */
.bvp-wrap a.bvp-buy, .bvp-wrap a.bvp-buy:hover, .bvp-wrap a.bvp-buy:visited{ color:#fff !important; }
.bvp-buy{ flex:0 0 auto; display:inline-flex; align-items:center; height:34px; padding:0 16px; border-radius:9px;
  font-size:13px; font-weight:600; color:#fff; text-decoration:none; cursor:pointer; white-space:nowrap;
  background:linear-gradient(180deg,var(--brand500),var(--brand600)); box-shadow:0 3px 10px rgba(217,82,10,.26);
  transition:filter .15s, transform .05s; }
.bvp-buy:hover{ filter:brightness(1.06); }
.bvp-buy:active{ transform:translateY(1px); }
.bvp-buy.is-soldout{ background:var(--sunk); color:var(--ink4) !important; box-shadow:none; cursor:not-allowed; }

/* ══════════════════════════════════════════════════════════════════════════
   列表视图（bv-tools 切到列表 → .card-list-container 上加 .bv-view-list）
   云控制台风格：一个 SKU 一行，名称 | 规格芯片 | 价格 | 选购 横向排布，最省纵向空间。
   用 order 让 DOM 顺序(库存徽标, 名称, 规格, 脚)重排成：名称 · 库存 · 规格 · 价格+按钮。
   ══════════════════════════════════════════════════════════════════════════ */
.card-list-container.bv-view-list .por-row{ display:flex !important; flex-direction:column; gap:8px; }
.card-list-container.bv-view-list .bvp-card{ flex-direction:row; align-items:center; flex-wrap:wrap;
  gap:10px 16px; padding:11px 16px; }
.card-list-container.bv-view-list .bvp-card:hover{ transform:none; }
/* 库存徽标从「绝对定位角标」变成行内小芯片，跟在名称后 */
.card-list-container.bv-view-list .bvp-stock{ position:static; order:1; top:auto; right:auto; }
.card-list-container.bv-view-list .bvp-name{ order:0; flex:0 0 auto; min-width:150px; max-width:280px;
  padding-right:0; margin-bottom:0; font-size:14px; }
.card-list-container.bv-view-list .bvp-spec{ order:2; flex:1 1 260px; }
/* 列表视图横向空间充裕：胶囊做饱满些——上下内边距加高、左右留足、间距加大，别贴着文字 */
.card-list-container.bv-view-list .bvp-spec .bv-spec{ gap:8px; }
.card-list-container.bv-view-list .bvp-spec .bv-spec li{ padding:5px 12px; gap:7px; font-size:12.5px; line-height:1.6; }
.card-list-container.bv-view-list .bvp-spec .bv-spec li[class]>b::before{ width:15px; height:15px; }
.card-list-container.bv-view-list .bvp-foot{ order:3; flex:0 0 auto; margin-top:0; padding-top:0; border-top:none;
  display:flex; align-items:center; gap:16px; }
.card-list-container.bv-view-list .bvp-price{ flex-direction:row; align-items:baseline; gap:8px; min-width:120px;
  justify-content:flex-end; }
.card-list-container.bv-view-list .bvp-price b{ font-size:17px; }
.card-list-container.bv-view-list .bvp-price .u{ margin-top:0; }
/* 折扣原价/试用在窄行里换行会顶高，列表视图收起来只留主价 */
.card-list-container.bv-view-list .bvp-price .bvp-old,
.card-list-container.bv-view-list .bvp-price .bvp-trial{ display:none; }
@media(max-width:820px){
  /* 窄屏列表行退回两行：上排 名称+库存+价格按钮，下排 规格铺满 */
  .card-list-container.bv-view-list .bvp-name{ flex:1 1 auto; max-width:none; }
  .card-list-container.bv-view-list .bvp-spec{ order:4; flex-basis:100%; }
}

/* ── 警告框 ── */
.bvp-warn{ margin-top:18px; background:var(--warn50); border:1px solid #F3D9A8; border-radius:var(--r-m);
  padding:14px 18px; }
.bvp-warn h4{ margin:0 0 6px; font-size:13.5px; color:var(--warn500); font-weight:700; }
.bvp-warn p{ margin:0; font-size:12.5px; color:var(--ink3); line-height:1.9; }

/* ══════════════════════════════════════════════════════════════════════════
   插画与特效（2026-09-01）——自绘 SVG 线条 + 克制动效，不引外部图片/字体图标。
   记忆红线：去AI味不是加配图。
   ══════════════════════════════════════════════════════════════════════════ */

/* ── ① 页头做成 hero：渐变光晕 + 右侧线条插画（覆盖上面的 .bvp-hd 基础规则）── */
.bvp-hd{ position:relative; overflow:hidden; display:flex; align-items:center; justify-content:space-between;
  gap:16px; background:linear-gradient(120deg,var(--surface),#FBFCFE); border:1px solid var(--line);
  border-radius:var(--r-l); padding:16px 20px; margin:2px 0 16px; min-height:132px; }
.bvp-hd::before{ content:""; position:absolute; right:-30px; top:-70px; width:280px; height:220px; pointer-events:none;
  background:radial-gradient(circle at 60% 45%, rgba(242,97,12,.11), rgba(26,127,224,.06) 46%, transparent 72%); }
.bvp-hd-main{ position:relative; z-index:1; display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; }
.bvp-hd-art{ position:relative; z-index:1; flex:none; width:224px; max-width:46%; color:var(--tech500); }
.bvp-hd-art svg{ display:block; width:100%; height:auto; }
.bvp-hd-art .ln{ stroke:currentColor; opacity:.5; }
.bvp-hd-art .dotA{ fill:var(--brand500); }
.bvp-hd-art .dotB{ fill:var(--brand500); opacity:.7; }
.bvp-hd-art .dotC{ fill:var(--tech500); opacity:.6; }
@media(prefers-reduced-motion: no-preference){
  .bvp-hd-art .dotA{ animation:bvpPulse 2.4s ease-in-out infinite; transform-origin:center; transform-box:fill-box; }
  .bvp-hd-art .bvp-flow{ animation:bvpFlow 1.1s linear infinite; }
  .bvp-hd-art .bvp-orbit{ transform-box:view-box; transform-origin:150px 126px; animation:bvpSpin 30s linear infinite; }
}
@keyframes bvpPulse{ 0%,100%{ opacity:1; } 50%{ opacity:.35; } }
@keyframes bvpFlow{ to{ stroke-dashoffset:-14; } }
@keyframes bvpSpin{ to{ transform:rotate(360deg); } }
@media(max-width:760px){ .bvp-hd-art{ display:none; } }

/* ── ② 分组药丸主题图标（JS 按关键词加 .bvp-hasic + .ic-*）──
   用 ::before mask 上色，激活药丸 currentColor=橙，图标随之变橙。覆盖旧的激活圆点。 */
.bvp-pill.bvp-hasic::before{ content:""; flex:none; width:15px; height:15px; background-color:currentColor;
  opacity:.8; -webkit-mask:var(--bvi) center/contain no-repeat; mask:var(--bvi) center/contain no-repeat;
  transition:opacity .15s; }
.bvp-pill.bvp-hasic.on::before{ opacity:1; }
.bvp-pill.ic-cloud{--bvi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96z'/%3E%3C/svg%3E")}
.bvp-pill.ic-shield{--bvi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4z'/%3E%3C/svg%3E")}
.bvp-pill.ic-gpu{--bvi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6zm2 0v12h12V6H6zm2 2h8v3H8V8zm0 5h5v3H8v-3z'/%3E%3C/svg%3E")}
.bvp-pill.ic-globe{--bvi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm6.93 6h-2.95a15.65 15.65 0 0 0-1.38-3.56A8.03 8.03 0 0 1 18.92 8zM12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96zM4.26 14a7.98 7.98 0 0 1 0-4h3.38a16.5 16.5 0 0 0 0 4H4.26zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56A7.99 7.99 0 0 1 5.08 16zm2.95-8H5.08a7.99 7.99 0 0 1 4.33-3.56A15.65 15.65 0 0 0 8.03 8zM12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96zM14.34 14H9.66a14.6 14.6 0 0 1 0-4h4.68a14.6 14.6 0 0 1 0 4zm.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56zM16.36 14a16.5 16.5 0 0 0 0-4h3.38a7.98 7.98 0 0 1 0 4h-3.38z'/%3E%3C/svg%3E")}
.bvp-pill.ic-cert{--bvi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6zm0 2l4 4h-4V4zM8 13h8v2H8v-2zm0 4h5v2H8v-2z'/%3E%3C/svg%3E")}
.bvp-pill.ic-msg{--bvi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 2H4a2 2 0 0 0-2 2v18l4-4h14a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2z'/%3E%3C/svg%3E")}
.bvp-pill.ic-game{--bvi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15 7.5V2H9v5.5l3 3 3-3zM7.5 9H2v6h5.5l3-3-3-3zM9 16.5V22h6v-5.5l-3-3-3 3zM16.5 9l-3 3 3 3H22V9h-5.5z'/%3E%3C/svg%3E")}
.bvp-pill.ic-app{--bvi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 3h8v8H3V3zm10 0h8v8h-8V3zM3 13h8v8H3v-8zm10 0h8v8h-8v-8z'/%3E%3C/svg%3E")}
.bvp-pill.ic-server{--bvi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 4h18a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1zm3 4h2V6H6v2zm-3 6h18a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1zm3 4h2v-2H6v2z'/%3E%3C/svg%3E")}
.bvp-pill.ic-tag{--bvi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 3h-8L2 13l9 9 10-10V3zM7 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2z'/%3E%3C/svg%3E")}

/* ── ③ 卡片进场动画（网格/列表通用）──
   初始隐藏只在 .bvp-anim 下生效（JS 成功接管才加），失败安全。 */
@media(prefers-reduced-motion: no-preference){
  .card-list-container.bvp-anim .card-item{ opacity:0; transform:translateY(14px);
    transition:opacity .5s ease, transform .55s cubic-bezier(.2,.7,.2,1); will-change:opacity,transform; }
  .card-list-container.bvp-anim .card-item.bvp-in{ opacity:1; transform:none; }
}

/* ── ④ hover 特效：规格图标着色 + 按钮光泽划过 ── */
.bvp-wrap .bvp-spec .bv-spec li[class]>b::before{ transition:background-color .18s ease; }
.bvp-card:hover .bvp-spec .bv-spec li[class]>b::before{ background-color:var(--brand500); opacity:1; }
.bvp-buy{ position:relative; overflow:hidden; }
.bvp-buy::after{ content:""; position:absolute; top:0; left:-130%; width:55%; height:100%; pointer-events:none;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.55), transparent); transform:skewX(-20deg); }
@media(prefers-reduced-motion: no-preference){
  .bvp-buy:hover::after{ animation:bvpSheen .7s ease; }
}
@keyframes bvpSheen{ from{ left:-130%; } to{ left:150%; } }

/* ── ⑤ 空状态插画（服务端无商品 & 筛选无结果共用）──
   ⚠ 服务端无商品的 .bvp-empty 在 .por-row(display:grid) 内，必须 grid-column:1/-1
     横跨整行才能居中，否则只占第一列宽度、内容贴左（v5 重写时漏了这句 → 修复）。
     筛选空态 #bvEmptyFilter 是 card-list-container 直接子级(block)，此句对它无害。 */
.bvp-empty{ grid-column:1/-1; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:4px; padding:56px 20px; color:var(--ink4); font-size:14px; text-align:center; }
/* ⚠ 必须守卫:上面 display:flex(作者样式)会压过 UA 对 [hidden] 的 display:none,
   导致带 hidden 属性的筛选空态 #bvEmptyFilter 在正常页面也常驻显示(=「cart 被修坏了」)。
   JS 通过 el.hidden 切换,这里让 [hidden] 重新生效。 */
.bvp-empty[hidden]{ display:none !important; }
.bvp-empty-art{ width:118px; height:auto; color:var(--ink4); margin-bottom:8px; }
.bvp-empty-art .ln{ stroke:currentColor; opacity:.5; }
.bvp-empty-art .dotB{ fill:var(--brand500); opacity:.75; }
.bvp-empty-art .dotC{ fill:var(--tech500); opacity:.6; }
.bvp-empty-t{ font-size:14.5px; font-weight:600; color:var(--ink3); }
.bvp-empty-sub{ font-size:12.5px; color:var(--ink4); }
