/* ============================================================
   选型库 · 主样式（首页 / 后台共用设计语言）
   支持明暗双主题：html[data-theme="dark"]
   ============================================================ */
:root{
  --bg:#f2f5fa;
  --panel:#ffffff;
  --panel-2:#fbfcfe;
  --line:#e5e9f2;
  --line-soft:#f1f4fa;
  --text:#0f172a;
  --text-2:#475569;
  --muted:#64748b;
  --faint:#74839a;
  --accent:#1467c8;
  --accent-2:#3b9df0;
  --accent-soft:rgba(20,103,200,.08);
  --money:#0b3d7a;
  --money-soft:rgba(11,61,122,.07);
  --ok-soft:rgba(13,159,110,.10);
  --ok:#0d9f6e;
  --warn:#c2410c;
  --danger:#d93025;
  --radius:16px;
  --shadow-sm:0 1px 2px rgba(15,23,42,.04), 0 1px 3px rgba(15,23,42,.05);
  --shadow-md:0 16px 36px -16px rgba(15,23,42,.22);
  --glow:rgba(20,103,200,.9);
}
html[data-theme="dark"]{
  --bg:#0a1020;
  --panel:#111a2e;
  --panel-2:#0e1729;
  --line:#1f2c46;
  --line-soft:#182338;
  --text:#e9eefc;
  --text-2:#b6c2d9;
  --muted:#8b9ab5;
  --faint:#8496b3;
  --money:#b6d8fa;
  --money-soft:rgba(182,216,250,.12);
  --ok-soft:rgba(74,222,128,.14);
  --accent:#5aabef;
  --accent-2:#7cc0f5;
  --accent-soft:rgba(90,171,239,.14);
  --shadow-sm:0 1px 2px rgba(0,0,0,.3);
  --shadow-md:0 18px 40px -18px rgba(0,0,0,.7);
  --glow:rgba(90,171,239,.45);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{overscroll-behavior-y:none}
body{
  position:relative;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  background:var(--bg);color:var(--text);
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
  transition:background .25s ease,color .25s ease;
}
a{color:inherit}
button{font-family:inherit}
mark{background:rgba(255,214,10,.45);color:inherit;border-radius:3px;padding:0 1px}
html[data-theme="dark"] mark{background:rgba(250,204,21,.28);color:#fff}

/* ---------- 顶栏 ---------- */
.topbar{
  position:sticky;top:0;z-index:40;
  background:var(--panel);
  /* 全站统一顶栏背景：浅蓝渐变 + 细点阵纹理（原仅产品/公司详情页使用） */
  background:radial-gradient(rgba(59,91,253,.10) 1px,transparent 1.6px) 0 0/22px 22px,linear-gradient(120deg,rgba(59,91,253,.09),rgba(124,151,255,.03) 45%,rgba(59,91,253,.06)),color-mix(in srgb,var(--panel) 82%,transparent);
  backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--line);
}
.topbar::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;pointer-events:none;background:linear-gradient(90deg,transparent 4%,#3B5BFD 22%,#8FA8FF 50%,#3B5BFD 78%,transparent 96%);opacity:.5}
html[data-theme="dark"] .topbar{background:radial-gradient(rgba(143,168,255,.13) 1px,transparent 1.6px) 0 0/22px 22px,linear-gradient(120deg,rgba(59,91,253,.18),rgba(124,151,255,.05) 45%,rgba(59,91,253,.12)),color-mix(in srgb,var(--panel) 82%,transparent)}
html[data-theme="dark"] .topbar::after{opacity:.4}
.topbar-inner{max-width:none;margin:0;padding:11px clamp(14px,2.4vw,32px);display:flex;align-items:center;gap:10px}
/* 品牌字标专用字体：思源黑体 Black 子集（仅「选型库.com」字符，1.8KB） */
@font-face{
  font-family:"XK Brand";
  src:url("fonts/xk-brand.woff2") format("woff2");
  font-weight:400 900;
  font-display:swap;
}
.brand{position:relative;display:flex;align-items:center;gap:8px;text-decoration:none;font-weight:700;font-size:19px;letter-spacing:-.01em;flex:none;white-space:nowrap}
.brand-mark{
  width:2.02em;height:2.02em;flex:none;display:block;
}
.brand-mark svg{width:100%;height:100%;display:block}
/* X 标无底色：深色主题下整标提亮，保对比 */
html[data-theme="dark"] .brand-mark svg{filter:brightness(1.55) saturate(1.05)}
/* 品牌名：与 X 标同源的纯蓝渐变字 + 右倾 9°（与旋涡同向，静止也有速度） */
.brand .brand-mark + span{
  font-family:"XK Brand","PingFang SC","Microsoft YaHei",sans-serif;
  font-synthesis:none;
  font-weight:900;letter-spacing:.005em;
  display:inline-block;padding-right:1.1em;
  transform:skewX(-9deg);transform-origin:0 50%;
  background:linear-gradient(105deg,#083e80 0%,#0d4f9e 55%,#2f86d9 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:#1467c8;
}
html[data-theme="dark"] .brand .brand-mark + span{
  background:linear-gradient(105deg,#dbeafd 0%,#9ec9f6 55%,#5aabef 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:#9ec9f6;
}
/* 域名副标：中文下方一行全拼域名，方便访客记住 xuanxingku.com。
   必须挂在 .brand 上：中文字标用了 background-clip:text，伪元素若放在该 span 内会被重复绘制一次。
   用 right 定位而非 em/left：伪元素自身字号仅 .5em，em 会按自身字号算导致域名缩到图标下方；
   右对齐到中文末端再略右探，形成「中文 → 域名」向右递进的一层，且与中文同向倾斜、同色系渐变 */
.brand::after{
  content:"xuanxingku.com";
  position:absolute;right:-10px;top:calc(100% - 2px);
  font-family:Arial,Helvetica,"PingFang SC",sans-serif;
  font-size:.5em;font-weight:700;letter-spacing:.045em;line-height:1;
  white-space:nowrap;
  transform:skewX(-9deg);transform-origin:0 50%;
  background:linear-gradient(105deg,#1e63b0 0%,#2f86d9 55%,#7fb9ec 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:#2f86d9;
}
html[data-theme="dark"] .brand::after{
  background:linear-gradient(105deg,#cfe3fb 0%,#9ec9f6 55%,#5aabef 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:#9ec9f6;
}
@media (max-width:680px){
  /* 顶栏换行后搜索框占第二行，域名改为紧跟中文的单行排布，避免被搜索框压住 */
  .brand .brand-mark + span{padding-right:0}
  .brand::after{
    position:static;right:auto;
    font-size:.44em;letter-spacing:.03em;
    margin-left:3px;align-self:center;
  }
}
.brand-sub{display:none}
.top-actions{margin-left:auto;display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.ghost-btn{
  display:inline-flex;align-items:center;gap:6px;
  height:34px;padding:0 11px;border-radius:9px;
  border:1px solid var(--line);background:var(--panel);color:var(--text-2);
  font-size:12.8px;font-weight:500;cursor:pointer;transition:.16s;text-decoration:none;white-space:nowrap;
}
.ghost-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
.ghost-btn.on{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;border-color:transparent}
.icon-only{width:34px;padding:0;justify-content:center}

/* ---- 顶部导航：全平铺菜单 + 提交需求 CTA（全站统一） ---- */
.top-actions .ghost-btn{padding:0 8px;font-size:12.3px}
.top-actions .icon-only{width:34px}
.top-cta{
  display:inline-flex;align-items:center;height:34px;padding:0 10px;border-radius:9px;
  background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;
  font-size:12.3px;font-weight:600;text-decoration:none;white-space:nowrap;transition:.16s;
  box-shadow:0 2px 10px rgba(20,103,200,.26);
}
.top-cta:hover{filter:brightness(1.08);transform:translateY(-1px);color:#fff}
.top-cta.on{filter:brightness(.92)}
/* 中窄视口：13 项菜单保持一行，分档收紧 */
@media (max-width:1260px){
  .topbar-inner{padding:10px 12px;gap:8px}
  .top-actions{gap:4px}
  .top-actions .ghost-btn{height:32px;padding:0 6px;font-size:11.8px}
  .top-actions .icon-only{width:32px}
  .top-cta{height:32px;padding:0 8px;font-size:11.8px}
  .brand{font-size:18px}
}
@media (max-width:1080px){
  .top-actions{gap:3px}
  .top-actions .ghost-btn{padding:0 5px;font-size:11.3px}
  .top-cta{padding:0 6px;font-size:11.3px}
}

/* ---------- 方案资源地图 /plans.html ---------- */
.pl-wrap{max-width:1120px;margin:0;padding:0 22px}
/* 官方案中心（solutions.html「厂商方案中心与白皮书」标签页）：确保 hidden 生效 + 组标题 */
#solPlans[hidden]{display:none!important}
.pl-gtitle{font-size:14px;margin:18px 0 10px;color:var(--muted);font-weight:600;letter-spacing:.5px}
.pl-gtitle::before{content:"";display:inline-block;width:3px;height:12px;border-radius:2px;background:var(--accent);margin-right:8px;vertical-align:-1px}
.pl-intro{margin:4px 0 2px;font-size:13px;line-height:1.8;color:var(--text-2);max-width:760px}
.pl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.pl-card{border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:15px 16px;display:flex;flex-direction:column;gap:8px;transition:.16s}
.pl-card:hover{border-color:var(--accent);box-shadow:0 6px 22px rgba(20,103,200,.10)}
.pl-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pl-h b{font-size:14.5px}
.pl-tag{font-size:11px;padding:2px 8px;border-radius:10px;background:var(--accent-soft);color:var(--accent)}
.pl-note{margin:0;font-size:12.8px;line-height:1.7;color:var(--text-2);flex:1}
.pl-go{display:flex;align-items:center;gap:10px}
.pl-go a{font-size:12.8px;font-weight:600;color:var(--accent);text-decoration:none}
.pl-go a:hover{text-decoration:underline}
.pl-co{font-size:12px;color:var(--muted);text-decoration:none}
.pl-co:hover{color:var(--accent)}
.pl-docs{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:9px}
.pl-doc{display:flex;align-items:center;gap:10px;padding:11px 14px;border:1px solid var(--line);border-radius:11px;background:var(--panel);text-decoration:none;transition:.15s}
.pl-doc:hover{border-color:var(--accent)}
.pl-doc b{font-size:13px;white-space:nowrap}
.pl-doc span{font-size:12.2px;color:var(--muted);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pl-doc em{font-style:normal;color:var(--accent);font-weight:600}

/* ---------- 布局 ---------- */
.wrap{max-width:1200px;margin:0;padding:0 24px;position:relative;z-index:1}
.hero{padding-top:44px;padding-bottom:18px}
.hero h1{margin:0 0 12px;font-size:clamp(23px,2.8vw,31px);line-height:1.22;letter-spacing:-.02em;font-weight:800}
.grad{background:linear-gradient(100deg,var(--accent) 10%,var(--accent-2) 55%,#ffb35c);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p{margin:0;color:var(--muted);font-size:14.5px;line-height:1.75;max-width:640px}
.stats{display:flex;gap:30px;margin-top:20px;flex-wrap:wrap}
.stat b{display:block;font-size:22px;letter-spacing:-.02em;line-height:1.3}
.stat span{font-size:12px;color:var(--muted)}

/* ---------- 工具栏 ---------- */
.toolbar{position:sticky;top:55px;z-index:30;padding:10px 0 10px;background:var(--bg);background:color-mix(in srgb, var(--bg) 92%, transparent);backdrop-filter:blur(10px)}
.toolbar-inner{display:flex;flex-direction:column;gap:9px}
.toolbar-row{display:flex;align-items:center;gap:9px}
.search{position:relative;flex:1;min-width:0}
.search input{
  width:100%;height:50px;padding:0 96px 0 44px;
  border-radius:14px;border:1px solid var(--line);background:var(--panel);
  font-size:15px;color:var(--text);outline:none;transition:.18s;
  box-shadow:0 10px 28px -22px rgba(217,58,30,.55),var(--shadow-sm);
}
.search input::placeholder{color:var(--faint)}
.search input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft),0 10px 28px -20px rgba(217,58,30,.6)}
.search .icon{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.search .tools{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:4px}
.search .kbd{font-size:11px;color:var(--faint);border:1px solid var(--line);border-radius:6px;padding:2px 6px;background:var(--panel-2);pointer-events:none}
.search.has-value .kbd{display:none}
.search .clear{
  width:26px;height:26px;border:0;border-radius:8px;background:transparent;color:var(--faint);
  cursor:pointer;display:none;place-items:center;font-size:16px;line-height:1;
}
.search.has-value .clear{display:grid}
.search .clear:hover{background:var(--line-soft);color:var(--text-2)}

.chips-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}
.chips-row::-webkit-scrollbar{display:none}
/* 统一筛选标签：业务分类 / 适用行业 / 类型·类目 三个维度共用同一套视觉（同高度、同圆角、同字号、同交互）。
   入口卡内所有控件（chips / tab / 下拉 / 维度互跳 / 重置）都走同一组 --ctl-* 变量，风格严格一致 */
.chip,.tag-chip{
  display:inline-flex;align-items:center;height:var(--ctl-h,30px);padding:0 12px;border-radius:var(--ctl-r,9px);
  border:1px solid var(--line);background:var(--panel);color:var(--text-2);
  font:inherit;font-size:var(--ctl-fs,12.5px);font-weight:500;line-height:1;white-space:nowrap;
  cursor:pointer;text-decoration:none;transition:.15s;
}
.chip:hover,.tag-chip:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}
/* 选中态全站同一表达：主色实心 + 白字（chips 与 tab 一致） */
.chip.active,.tag-chip.active{background:linear-gradient(135deg,var(--accent),#3b9df0);color:#fff;border-color:transparent;box-shadow:0 8px 18px -8px var(--glow);font-weight:600}
/* 数量为 0 的标签弱化（如尚无收录的业务分类），仍可点选 */
.chip.zero{opacity:.5}
.chip.zero:hover{border-color:var(--line);color:var(--text-2)}
.chip .cnt,.tag-chip .cnt{margin-left:6px;font-size:11px;opacity:.6;font-variant-numeric:tabular-nums}
.chip.active .cnt,.tag-chip.active .cnt{opacity:.85}
.cdot{width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:6px;flex:none}
.chips{display:flex;flex-wrap:wrap;gap:8px;position:relative}
/* 行级收纳已移除：chips 全量展示，flex 自动换行 */

.plain-btn{
  border:0;background:transparent;color:var(--muted);font-size:12.5px;cursor:pointer;
  display:inline-flex;align-items:center;gap:4px;padding:4px 2px;
}
.plain-btn:hover{color:var(--accent)}
.plain-btn svg{transition:transform .2s}
.plain-btn.open svg{transform:rotate(180deg)}

/* 高级筛选 */
.adv{
  display:none;flex-direction:column;gap:13px;
  padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:var(--shadow-sm);
}
.adv.show{display:flex}
.adv-row{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-end}
.adv-row .ghost-btn.adv-reset{height:32px;margin-left:auto;padding:0 14px;font-size:12.3px}
.adv-group{min-width:150px}
.adv-group > label{display:block;font-size:11px;font-weight:700;color:var(--faint);letter-spacing:.06em;margin-bottom:7px;text-transform:uppercase}
.adv-group select{
  height:32px;border-radius:8px;border:1px solid var(--line);background:var(--panel-2);color:var(--text-2);
  font-size:12.5px;padding:0 8px;outline:none;cursor:pointer;min-width:130px;
}
.adv-tags-group{min-width:0}
.tag-list{display:flex;flex-wrap:wrap;gap:6px;max-width:none}
.tag-chip{
  font-size:12px;padding:4px 10px;border-radius:7px;border:1px solid var(--line);
  background:var(--panel-2);color:var(--text-2);cursor:pointer;transition:.14s;
}
.tag-chip:hover{border-color:var(--accent);color:var(--accent)}
.tag-chip.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}
.tag-chip.tag-more{border-style:dashed;color:var(--accent);background:transparent}
.tag-chip.tag-more:hover{background:var(--accent-soft)}
.adv-badge{
  font-style:normal;background:var(--accent);color:#fff;font-size:10.5px;font-weight:700;line-height:1;
  min-width:16px;height:16px;border-radius:99px;display:inline-grid;place-items:center;padding:0 4px;
}
.plain-btn[hidden] .adv-badge{display:none}

.result-line{font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.result-line b{color:var(--text-2);font-weight:600}
.reset-link{color:var(--accent);cursor:pointer;text-decoration:none;font-size:12.5px}
.reset-link:hover{text-decoration:underline}

/* ---------- 编辑精选 ---------- */
.featured{
  margin:14px 0 4px;padding:14px 16px;border-radius:14px;
  background:linear-gradient(135deg,var(--accent-soft),transparent 60%);
  border:1px dashed var(--accent);
}
.featured-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.featured-head h2{margin:0;font-size:13px;font-weight:700;letter-spacing:.02em;color:var(--text-2)}
.featured-head .dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.featured-row{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.featured-row::-webkit-scrollbar{display:none}
.f-item{
  flex:none;display:inline-flex;align-items:center;gap:7px;padding:6px 12px 6px 7px;
  border-radius:999px;border:1px solid var(--line);background:var(--panel);
  font-size:12.5px;font-weight:500;color:var(--text-2);cursor:pointer;transition:.16s;
}
.f-item:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}
.f-item .logo{width:22px;height:22px;border-radius:7px;font-size:11px}

/* ---------- 广告位（旧版公司目录横幅，仅 companies.html 使用） ---------- */
.tbad{
  display:none;align-items:center;gap:12px;margin:12px 0 0;padding:11px 14px;
  border-radius:12px;border:1px solid var(--line);background:var(--panel);
  font-size:13px;color:var(--text-2);text-decoration:none;
}
.tbad.show{display:flex}
.tbad .ad-tag{font-size:10.5px;font-weight:700;color:var(--faint);border:1px solid var(--line);border-radius:5px;padding:1px 5px;flex:none}
.tbad .ad-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tbad .ad-cta{color:var(--accent);font-weight:600;font-size:12.5px;flex:none}

/* ---------- 卡片网格 ---------- */
.grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;padding:16px 0 40px;
}
@media (max-width:1100px){.grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:860px){.grid{grid-template-columns:repeat(2,1fr)}}
/* 公司库分页 */
.pgbar{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;padding:4px 0 34px}
.pgbar button{min-width:36px;height:36px;padding:0 11px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--text-2);font-size:13px;cursor:pointer;font-family:inherit;transition:.15s}
.pgbar button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.pgbar button.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}
.pgbar button:disabled{opacity:.4;cursor:default}
.pgbar .dots{color:var(--faint);font-size:13px}
.pgbar .pg-info{font-size:12px;color:var(--faint);margin-right:4px}
.card{
  position:relative;display:flex;flex-direction:column;gap:11px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:17px 17px 15px;cursor:pointer;
  box-shadow:var(--shadow-sm);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  animation:rise .4s cubic-bezier(.2,.8,.2,1) backwards;
  animation-delay:var(--d,0ms);
}
.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--accent)}
.card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.card.kb-focus{box-shadow:0 0 0 2px var(--accent), var(--shadow-md);transform:translateY(-2px)}
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

.card-head{display:flex;align-items:center;gap:11px;padding-right:20px}
.logo{
  width:46px;height:46px;flex:none;border-radius:12px;
  display:grid;place-items:center;color:#fff;font-weight:800;font-size:20px;
  letter-spacing:-.02em;box-shadow:0 8px 16px -10px rgba(15,23,42,.6);
  overflow:hidden;position:relative;
}
.logo.xs{font-size:16px}
.logo.sm{font-size:12.5px;letter-spacing:0}
.logo img{width:100%;height:100%;object-fit:contain;padding:6px;background:#fff;display:block}
html[data-theme="dark"] .logo img{background:#fff}
.card-head h3{margin:0;font-size:16px;font-weight:650;letter-spacing:-.01em;line-height:1.3}
.en{margin:2px 0 0;font-size:11.5px;color:var(--faint);letter-spacing:.03em;text-transform:uppercase;font-weight:500}
.desc{
  margin:0;font-size:13px;line-height:1.68;color:var(--text-2);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:44px;
}
.prod-chips{display:flex;flex-wrap:wrap;gap:6px}
.pchip{font-size:11.5px;color:var(--text-2);background:var(--panel-2);border:1px solid var(--line-soft);padding:3px 8px;border-radius:6px;line-height:1.5}
.pchip.more{background:transparent;border-style:dashed;color:var(--faint)}
.card-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:11px;border-top:1px solid var(--line-soft)}
.host{font-size:12px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.go{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;font-weight:600;color:var(--accent);flex:none}
.go svg{transition:transform .2s}
.card:hover .go svg{transform:translateX(3px)}

.star{
  position:absolute;top:11px;right:11px;width:26px;height:26px;
  display:grid;place-items:center;border:0;border-radius:8px;background:transparent;
  color:var(--faint);cursor:pointer;transition:.16s;
}
.star:hover{background:var(--line-soft);color:#f59e0b}
.star.on{color:#f59e0b}

.badge-promo{
  position:absolute;top:0;right:0;font-size:10px;font-weight:700;letter-spacing:.06em;
  color:#fff;background:linear-gradient(135deg,#f59e0b,#f97316);
  padding:3px 9px;border-radius:0 15px 0 9px;
}
.badge-promo.cert{right:auto;left:0;border-radius:15px 0 9px 0;background:linear-gradient(135deg,#2563eb,#1467c8);letter-spacing:.02em}
.tag-mini{display:inline-flex;gap:5px;flex-wrap:wrap;margin-top:2px}
.tag-mini span{font-size:10.5px;color:var(--faint);border:1px solid var(--line);border-radius:5px;padding:1px 6px}

/* 对比浮动条 */
.cmp-bar{
  position:fixed;left:50%;bottom:22px;transform:translate(-50%,120%);z-index:70;
  display:flex;align-items:center;gap:10px;padding:10px 12px 10px 16px;
  background:var(--panel);border:1px solid var(--line);border-radius:14px;
  box-shadow:0 24px 48px -24px rgba(15,23,42,.5);font-size:13px;transition:transform .26s cubic-bezier(.2,.8,.2,1);
}
.cmp-bar.show{transform:translate(-50%,0)}
.cmp-bar .names{color:var(--text-2);max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cmp-btn{
  height:34px;padding:0 14px;border-radius:9px;border:1px solid transparent;
  background:linear-gradient(135deg,var(--accent),#3b9df0);color:#fff;font-size:13px;font-weight:600;cursor:pointer;
}
.cmp-btn:disabled{opacity:.5;cursor:not-allowed}
.cmp-btn.ghost{background:transparent;border-color:var(--line);color:var(--text-2)}

/* ---------- 空状态 / 页脚 ---------- */
.empty{display:none;text-align:center;padding:64px 20px 80px;color:var(--muted)}
.empty.show{display:block}
.empty h3{margin:0 0 8px;font-size:17px;color:var(--text);font-weight:600}
.empty p{margin:0;font-size:13.5px}
footer{border-top:1px solid var(--line);background:var(--panel);background:color-mix(in srgb, var(--panel) 60%, transparent);position:relative;z-index:1;margin-top:auto}
/* ---------- 全站统一大底栏 ---------- */
.foot-main{max-width:none;margin:0;padding:26px clamp(14px,2.4vw,32px) 18px;display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr 1fr;gap:24px}
.foot-col{display:flex;flex-direction:column;gap:5px;min-width:0}
.foot-col b,.foot-col .foot-head{font-size:13px;color:var(--text);margin-bottom:4px;letter-spacing:.02em;font-weight:700}
.foot-col .foot-head{text-decoration:none;width:fit-content;border-bottom:none}
.foot-col .foot-head:hover{color:var(--accent)}
.foot-col a{font-size:12.5px;color:var(--text-2);text-decoration:none;line-height:1.7;width:fit-content;border-bottom:none}
.foot-col a:hover{color:var(--accent)}
.foot-brand p{margin:0;font-size:12.5px;line-height:1.8;color:var(--text-2);max-width:300px}
.foot-brand b{
  font-size:15px;
  font-family:"XK Brand","PingFang SC","Microsoft YaHei",sans-serif;
  font-synthesis:none;font-weight:900;letter-spacing:.01em;
  display:inline-block;transform:skewX(-9deg);transform-origin:0 50%;
  background:linear-gradient(105deg,#083e80 0%,#0d4f9e 55%,#2f86d9 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:#1467c8;
}
html[data-theme="dark"] .foot-brand b{
  background:linear-gradient(105deg,#dbeafd 0%,#9ec9f6 55%,#5aabef 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:#9ec9f6;
}
.foot-brand b::after{
  content:".com";font-size:.68em;font-weight:600;
  -webkit-text-fill-color:#8492a6;color:#8492a6;background:none;
}
html[data-theme="dark"] .foot-brand b::after{-webkit-text-fill-color:#6b7f96;color:#6b7f96}

/* 回到顶部（全站） */
/* 回到顶部：品牌蓝实心 + 白色粗箭头（原白底细箭头在浅色页面上太不显眼） */
.btt{position:fixed;right:22px;bottom:28px;z-index:90;width:48px;height:48px;padding:0;border:0;border-radius:16px;background:linear-gradient(135deg,#0d4f9e 0%,#2f86d9 100%);color:#fff;font-size:0;line-height:1;cursor:pointer;opacity:0;transform:translateY(10px) scale(.92);pointer-events:none;transition:opacity .22s,transform .22s,box-shadow .22s,filter .22s;box-shadow:0 10px 24px -8px rgba(13,79,158,.7),0 2px 8px rgba(13,79,158,.28)}
.btt::before{content:"";position:absolute;left:50%;top:50%;width:21px;height:21px;transform:translate(-50%,-50%);background:center/contain no-repeat;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 19V5'/%3E%3Cpath d='M5.5 11.5 12 5l6.5 6.5'/%3E%3C/svg%3E");filter:drop-shadow(0 1px 1px rgba(0,0,0,.22))}
.btt.show{opacity:1;transform:none;pointer-events:auto}
.btt:hover{filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 15px 30px -8px rgba(13,79,158,.8),0 3px 10px rgba(13,79,158,.35)}
.btt:active{transform:translateY(0) scale(.96)}
html[data-theme="dark"] .btt{background:linear-gradient(135deg,#1d64c9,#57a6ee);box-shadow:0 10px 24px -8px rgba(47,134,217,.6)}
@media (max-width:680px){.btt{right:14px;bottom:18px;width:44px;height:44px;border-radius:14px}}
.foot-count{font-size:12px;color:var(--faint)}
.foot-bar{border-top:1px solid var(--line);max-width:none;margin:0;padding:13px clamp(14px,2.4vw,32px);display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--faint)}
.foot-icp{display:flex;gap:14px;align-items:center}
.foot-legal{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.foot-legal a{color:var(--faint);text-decoration:none}
.foot-legal a:hover{color:var(--accent);text-decoration:underline}
.foot-icp a{color:var(--faint);text-decoration:none;border-bottom:1px dotted var(--line)}
.foot-icp a:hover{color:var(--accent);border-bottom-color:var(--accent)}
.foot-icp-hint{opacity:.75}
@media (max-width:1020px){
  .foot-main{grid-template-columns:1fr 1fr 1fr;gap:24px}
  .foot-brand{grid-column:1/-1}
}
@media (max-width:860px){
  .foot-main{grid-template-columns:1fr 1fr;gap:22px;padding:24px 16px 16px}
  .foot-brand{grid-column:1/-1}
  .foot-bar{padding:12px 16px;flex-direction:column;align-items:flex-start;gap:6px}
}
.footer-inner{
  max-width:none;margin:0;padding:20px clamp(14px,2.4vw,32px);display:flex;justify-content:space-between;
  gap:12px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);
}
.footer-inner{
  max-width:none;margin:0;padding:20px clamp(14px,2.4vw,32px);display:flex;justify-content:space-between;
  gap:12px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);
}
.footer-inner a{color:var(--text-2);text-decoration:none;border-bottom:1px dotted var(--line)}
.footer-inner a:hover{color:var(--accent);border-bottom-color:var(--accent)}
.footer-links{display:flex;gap:14px;flex-wrap:wrap}

/* ---------- 弹窗 ---------- */
.mask{
  position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:20px;
  background:rgba(9,14,28,.5);backdrop-filter:blur(5px);
  opacity:0;visibility:hidden;transition:opacity .2s ease, visibility .2s;
}
.mask.show{opacity:1;visibility:visible}
.modal{
  width:100%;max-width:540px;max-height:86vh;overflow:auto;
  background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:24px;
  box-shadow:0 40px 80px -30px rgba(9,14,28,.6);
  transform:translateY(14px) scale(.985);transition:transform .24s cubic-bezier(.2,.8,.2,1);
}
.mask.show .modal{transform:none}
.modal-head{display:flex;align-items:center;gap:13px}
.modal-head .logo{width:56px;height:56px;border-radius:15px;font-size:24px}
.modal-head h2{margin:0;font-size:20px;letter-spacing:-.02em;font-weight:700}
.modal-head .m-en{margin:3px 0 0;font-size:12px;color:var(--faint);letter-spacing:.04em;text-transform:uppercase}
.close-btn{
  margin-left:auto;width:32px;height:32px;flex:none;border:1px solid var(--line);border-radius:9px;
  background:var(--panel);color:var(--muted);cursor:pointer;display:grid;place-items:center;font-size:18px;line-height:1;
}
.close-btn:hover{background:var(--line-soft);color:var(--text)}
.badges{display:flex;gap:7px;margin:14px 0 0;flex-wrap:wrap}
.badge{font-size:11.5px;padding:4px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-weight:600}
.badge.gray{background:var(--panel-2);color:var(--muted);font-weight:500;border:1px solid var(--line-soft)}
.badge.promo{background:linear-gradient(135deg,#f59e0b,#f97316);color:#fff}
.badge.cert{background:linear-gradient(135deg,#2563eb,#1467c8);color:#fff;font-weight:700}
.modal p.mdesc{margin:13px 0 0;font-size:13.5px;line-height:1.8;color:var(--text-2)}
.sec-title{margin:20px 0 9px;font-size:11.5px;font-weight:700;color:var(--faint);letter-spacing:.08em;text-transform:uppercase}
.prod-list{display:flex;flex-wrap:wrap;gap:7px}
.prod-list .pchip{font-size:12.5px;padding:5px 10px;border-radius:8px}
.url-row{
  display:flex;align-items:center;gap:9px;padding:11px 13px;border-radius:11px;
  background:var(--panel-2);border:1px solid var(--line-soft);font-size:13px;color:var(--text-2);word-break:break-all;
}
.url-row svg{flex:none;color:var(--faint)}
.modal-actions{display:flex;gap:9px;margin-top:20px;flex-wrap:wrap}
.btn{
  flex:1;height:43px;border-radius:11px;border:1px solid transparent;
  font-size:14px;font-weight:600;cursor:pointer;transition:.16s;
  display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none;white-space:nowrap;
}
.btn-primary{background:linear-gradient(135deg,var(--accent),#3b9df0);color:#fff;box-shadow:0 12px 24px -12px var(--glow)}
.btn-primary:hover{filter:brightness(1.06)}
.btn-ghost{background:var(--panel);border-color:var(--line);color:var(--text-2);flex:0 0 auto;padding:0 14px;font-size:13px}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}
.modal-link{display:block;text-align:center;margin-top:12px;font-size:12.5px;color:var(--accent);text-decoration:none}
.modal-link:hover{text-decoration:underline}

/* ---------- 快捷键提示 ---------- */
.toast{
  position:fixed;left:50%;bottom:90px;transform:translate(-50%,16px);z-index:99;
  background:#0f172a;color:#fff;font-size:13px;padding:10px 16px;border-radius:10px;
  opacity:0;transition:.22s;pointer-events:none;box-shadow:0 20px 40px -20px rgba(9,14,28,.7);
}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ---------- 响应式 ---------- */
@media (max-width:760px){
  .topbar-inner,.wrap,.footer-inner{padding-left:16px;padding-right:16px}
  .hero{padding-top:30px;padding-bottom:14px}
  .hero p{font-size:13.5px}
  .stats{gap:20px;margin-top:16px}
  .stat b{font-size:19px}
  .grid{grid-template-columns:1fr;gap:12px;padding-bottom:28px}
  .search input{padding-right:44px}
  .search .kbd{display:none}
  .adv{padding:12px}
  .adv-row{gap:10px}
  .adv-row .ghost-btn.adv-reset{margin-left:0}
  .adv-group{min-width:0;flex:1}
  .adv-group select{width:100%;min-width:0}
  .modal{padding:19px;border-radius:16px;max-height:88vh}
  .cmp-bar{width:calc(100% - 28px);justify-content:space-between}
  .cmp-bar .names{max-width:120px}
  .brand-sub{display:none}
}
@media (prefers-reduced-motion: reduce){
  .card{animation:none}
  .card:hover{transform:none}
}

/* ===== 职位与招聘渠道（jobs.html） ===== */
.logo.mini{width:34px;height:34px;border-radius:9px;font-size:14px}
.job-list{display:flex;flex-direction:column;gap:8px}
.job-row{display:flex;align-items:center;gap:14px;padding:13px 16px;border:1px solid var(--line);border-radius:12px;background:var(--panel);text-decoration:none;transition:.16s;flex-wrap:wrap}
.job-row:hover{border-color:var(--accent);box-shadow:var(--shadow-sm)}
.job-title{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.job-title b{font-size:14px;color:var(--text)}
.job-title i{font-style:normal;font-size:12px;color:var(--muted)}
.job-meta{display:flex;align-items:center;gap:12px;flex:0 0 auto}
.job-meta time{font-size:11.5px;color:var(--faint)}
.job-salary{font-style:normal;font-weight:700;font-size:13.5px;color:#e0553a;background:rgba(224,85,58,.08);padding:2px 8px;border-radius:6px}
.job-go{font-size:12.5px;color:var(--accent);font-weight:600}
.channel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px;margin-bottom:40px}
.channel-card{border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:14px 16px;transition:.16s}
.channel-card:hover{border-color:var(--accent);box-shadow:var(--shadow-sm)}
.cc-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;min-width:0}
.cc-name{flex:1;min-width:0;display:flex;flex-direction:column}
.cc-name b{font-size:14px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc-name i{font-style:normal;font-size:11px;color:var(--faint)}
.cc-detail{font-size:12px;color:var(--accent);text-decoration:none;flex:none}
.cc-detail:hover{text-decoration:underline}
.cc-links{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}
.cc-links a{display:flex;flex-direction:column;gap:1px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel-2);text-decoration:none;font-size:12px;color:var(--text);font-weight:600;min-width:0;transition:.16s}
.cc-links a:hover{border-color:var(--accent)}
.cc-links a b{font-weight:400;font-size:10.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:680px){
  .cc-links{grid-template-columns:1fr}
  .job-meta{width:100%;justify-content:space-between}
}

/* ===== 产品级搜索结果 ===== */
.prod-results{margin:18px 0 6px;border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:14px 16px}
.pr-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.pr-head .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);display:inline-block}
.pr-head b{font-size:13px;color:var(--text)}
.pr-head i{font-style:normal;font-size:11.5px;color:var(--faint)}
.pr-list{display:flex;flex-direction:column;gap:6px}
.pr-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--line-soft);border-radius:10px;text-decoration:none;transition:.16s;min-width:0}
.pr-item:hover{border-color:var(--accent);background:var(--accent-soft)}
.pr-item .logo{width:30px;height:30px;border-radius:8px;font-size:13px}
.pr-body{flex:1;min-width:0;display:flex;flex-direction:column}
.pr-body b{font-size:13.5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pr-body i{font-style:normal;font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pr-cat{flex:none;font-size:11px;color:var(--text-2);background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:2px 8px}
.pr-go{flex:none;font-size:12px;color:var(--accent);font-weight:600}
.pr-more{margin-top:8px;font-size:12px;color:var(--muted)}
@media (max-width:680px){ .pr-cat,.pr-go{display:none} }

/* ===== 产品目录首页 ===== */
.filter-rows{display:flex;flex-direction:column;gap:7px;margin-top:10px}
.frow{display:flex;align-items:center;gap:10px;min-width:0}
.flabel{flex:0 0 34px;font-size:12px;color:var(--faint);font-weight:600}
.frow .chips{flex:1;min-width:0;display:flex;flex-wrap:wrap;gap:8px}
.frow .chips::-webkit-scrollbar{display:none}
.adv-bar{display:flex;align-items:center;gap:10px;margin-top:9px;flex-wrap:wrap}
.adv-summary{font-size:12px;color:var(--accent);flex:1;min-width:0}
.adv-panel{display:none;margin-top:10px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:var(--shadow-sm)}
.adv-panel.show{display:block}
.adv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.adv-item label{display:block;font-size:11.5px;color:var(--faint);font-weight:600;margin-bottom:6px}
.adv-item .hint{font-weight:400;color:var(--faint);opacity:.8}
.adv-item select{width:100%;height:36px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--text);font-size:13px}
.adv-item select:disabled{opacity:.5}

/* 「为你推荐」注入 hot-search 行时的附加样式（链形胶囊与按钮同款） */
.hot-search a.hs-link{font-size:12px;line-height:1;padding:5px 11px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--text-2);text-decoration:none;transition:.15s;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hot-search a.hs-link:hover{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--panel))}
.hot-search .hs-tip{font-style:normal;font-size:11px;color:var(--faint)}

/* 产品卡片网格：默认 4 列（产品库越滚越密，一屏多看货），1024 降 3 / 860 降 2 / 680 单列 */
.pgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:16px 0 56px}
.pcard{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:12px 13px 11px;display:flex;flex-direction:column;gap:7px;transition:.18s;position:relative}
.pcard:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--accent)}
/* 科技感：hover 主色发光 */
.pcard:hover{box-shadow:0 14px 30px -16px color-mix(in srgb,var(--accent) 42%,transparent),var(--shadow-md)}
html[data-theme="dark"] .pcard,html[data-theme="dark"] .card{box-shadow:inset 0 1px 0 rgba(255,255,255,.045)}
html[data-theme="dark"] .pcard:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 14px 30px -16px color-mix(in srgb,var(--accent) 50%,transparent)}
/* 滚动进度条（页顶渐变细线，随滚动伸展） */
.sprog{position:fixed;top:0;left:0;right:0;height:2px;z-index:60;pointer-events:none;background:linear-gradient(90deg,#1467c8,#3b9df0 55%,#38BDF8);transform:scaleX(0);transform-origin:0 50%;opacity:.9}
/* 选中文本主题色 */
::selection{background:color-mix(in srgb,var(--accent) 24%,transparent)}
/* 搜索框聚焦光晕 */
.uni-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent),0 14px 34px -26px color-mix(in srgb,var(--accent) 90%,transparent);outline:none}
.pcard-top{display:flex;align-items:center;gap:7px;min-width:0}
.ptype{flex:none;font-size:10.5px;font-weight:700;letter-spacing:.04em;color:#fff;padding:3px 8px;border-radius:6px;background:var(--accent)}
.ptype.cloud{background:linear-gradient(135deg,#1d4ed8,#38bdf8)}
.ptype.ai{background:linear-gradient(135deg,#3b9df0,#b06bff)}
.ptype.soft{background:linear-gradient(135deg,#1467c8,#6b8cff)}
.ptype.hw{background:linear-gradient(135deg,#0f766e,#14b8a6)}
.ptype.sec{background:linear-gradient(135deg,#e0553a,#f0902a)}
.ptype.svc{background:linear-gradient(135deg,#b45309,#f59e0b)}
.pcat{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.phot{flex:none;margin-left:auto;font-size:9.5px;font-weight:800;color:#e0553a;border:1px solid rgba(224,85,58,.35);border-radius:5px;padding:1px 5px;letter-spacing:.06em}
.pcard h3{margin:0;font-size:14.5px;font-weight:700;letter-spacing:-.01em;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pcard h3 a{color:var(--text);text-decoration:none}
.pcard h3 a:hover{color:var(--accent)}
.pdesc{margin:0;font-size:12.2px;line-height:1.65;color:var(--text-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:40px}
.pinds{display:flex;gap:4px;flex-wrap:wrap;align-items:center}
.pinds span{font-size:10.5px;color:var(--muted);background:var(--panel-2);border:1px solid var(--line-soft);border-radius:6px;padding:1px 6px}
.pinds .pprice{color:var(--accent);border-color:transparent;background:var(--accent-soft);font-weight:600}
.pfoot{display:flex;align-items:center;gap:7px;margin-top:auto;padding-top:8px;border-top:1px solid var(--line-soft)}
.pco{display:flex;align-items:center;gap:6px;min-width:0;flex:1}
.pco b{font-size:12px;color:var(--text-2);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pco i{font-style:normal;font-size:10.5px;color:var(--faint);flex:none}
.plogo{width:20px;height:20px;border-radius:5px;flex:none;display:block;overflow:hidden;background:#eee}
.plogo img{width:100%;height:100%;object-fit:contain;background:#fff;padding:2px;display:block}
.pgo{flex:none;font-size:11.5px;color:var(--accent);text-decoration:none;font-weight:600}
.pgo:hover{text-decoration:underline}
/* 卡内对比按钮：4 列窄卡用小号，不影响对比浮条上的全局大按钮 */
.pfoot .cmp-btn{height:26px;padding:0 9px;font-size:11.5px;border-radius:7px;flex:none}
mark{background:rgba(20,103,200,.16);color:inherit;border-radius:3px;padding:0 1px}
@media (max-width:1024px){.pgrid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:680px){
  .pgrid{grid-template-columns:1fr;gap:12px;padding:14px 0 40px}
  .flabel{flex:0 0 30px;font-size:11px}
}
@media (max-width:860px) and (min-width:681px){.pgrid{grid-template-columns:repeat(2,1fr)}}

/* ============================================================
   广告位（顶部横幅 / 产品流原生 / 底部横幅 / 招租占位）
   样式全部走主题变量，明暗模式通用；品牌色由 --ad1/--ad2 注入
   ============================================================ */
.ad-slot[hidden]{display:none}
.ad-slot-top{margin:20px auto 0}
.ad-slot-bottom{margin:4px 0 40px}
.ad-slide{display:none}
.ad-slide.on{display:block}
@keyframes adIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

.ad{position:relative;display:flex;align-items:center;gap:16px;padding:15px 20px;border:1px solid var(--line);border-radius:16px;background:var(--panel);text-decoration:none;overflow:hidden;box-shadow:var(--shadow-sm);transition:border-color .18s,box-shadow .18s,transform .18s}
.ad:hover{border-color:var(--ad1,#1467c8);box-shadow:var(--shadow-md);transform:translateY(-1px)}
.ad-glow{position:absolute;right:-30px;top:-80px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,var(--ad1,#1467c8),transparent 68%);opacity:.12;pointer-events:none}
html[data-theme="dark"] .ad-glow{opacity:.2}
.ad-tag{position:absolute;top:0;right:0;z-index:2;font-size:9.5px;font-weight:700;letter-spacing:.1em;color:var(--faint);background:var(--panel-2);border-left:1px solid var(--line);border-bottom:1px solid var(--line);padding:3px 10px;border-radius:0 15px 0 8px}
.ad-logo{position:relative;flex:none;width:48px;height:48px;border-radius:13px;overflow:hidden;display:grid;place-items:center;color:#fff;font-size:19px;font-weight:800;box-shadow:0 8px 18px -10px rgba(15,23,42,.55)}
.ad-logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff;padding:7px}
.ad-ini{font-style:normal;line-height:1}
.ad-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;padding-right:8px}
.ad-body b{font-size:16.5px;font-weight:750;letter-spacing:-.01em;line-height:1.32;color:var(--text)}
.ad-body i{font-style:normal;font-size:13px;line-height:1.55;color:var(--text-2)}
.ad-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:3px}
.ad-tags em{font-style:normal;font-size:10.5px;font-weight:600;color:var(--ad1,#1467c8);background:var(--panel-2);border:1px solid var(--line);border-radius:5px;padding:1.5px 7px}
html[data-theme="dark"] .ad-tags em{color:#cdd8ff}
.ad-cta{flex:none;display:inline-flex;align-items:center;gap:7px;height:41px;padding:0 20px;border-radius:11px;color:#fff;font-size:13.5px;font-weight:700;background:linear-gradient(135deg,var(--ad1,#1467c8),var(--ad2,#3b9df0));box-shadow:0 12px 22px -14px var(--ad1,#1467c8);white-space:nowrap}
.ad:hover .ad-cta{filter:brightness(1.08)}
.ad-dots{display:flex;gap:6px;justify-content:center;margin-top:9px}
.ad-dot{width:16px;height:4px;padding:0;border:0;border-radius:99px;background:var(--line);cursor:pointer;transition:.18s}
.ad-dot.on{width:26px;background:var(--accent)}

/* 产品流原生广告卡（沿用 .pcard 布局） */
.pcard.ad-feed{overflow:hidden;text-decoration:none}
.pcard.ad-feed::after{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--ad1,#1467c8),var(--ad2,#3b9df0))}
.pcard.ad-feed .ptype{background:linear-gradient(135deg,var(--ad1,#1467c8),var(--ad2,#3b9df0))}
.pcard.ad-feed .pgo{color:var(--ad1,#1467c8)}
.ad-logo-sm{position:relative;flex:none;width:22px;height:22px;border-radius:6px;overflow:hidden;display:grid;place-items:center;color:#fff;font-size:10px;font-weight:800}
.ad-logo-sm img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff;padding:2px}

/* 广告位招租占位 */
.ad-vacant{border-style:dashed;background:var(--panel-2)}
.ad-vacant:hover{transform:none}
.vacant-mark{flex:none;width:48px;height:48px;border-radius:13px;border:1px dashed var(--line);display:grid;place-items:center;font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--faint)}
.ad-cta.ghost{background:none;border:1px solid var(--line);color:var(--muted);box-shadow:none;font-weight:600}
.ad-vacant:hover .ad-cta.ghost{border-color:var(--accent);color:var(--accent)}

@media (max-width:680px){
  .ad{padding:13px 14px;gap:11px;flex-wrap:wrap;align-items:flex-start}
  .ad-logo,.vacant-mark{width:40px;height:40px;border-radius:11px;font-size:16px}
  .ad-body b{font-size:14.5px}
  .ad-body i{font-size:12px}
  .ad-tags{display:none}
  .ad-cta{height:34px;padding:0 14px;font-size:12.5px;width:100%;justify-content:center;margin-top:2px}
  .ad-slot-top{margin-top:14px}
}

/* ===== 产品行卡（一行一款 · CSDN 简洁列表式） ===== */
.pgrid.pgrid-rows{grid-template-columns:minmax(0,1fr);gap:0;padding:6px 0 56px}
.prow{display:flex;gap:16px;align-items:flex-start;padding:15px 6px 14px;border-bottom:1px solid var(--line-soft);position:relative;border-radius:8px}
.prow:hover{background:color-mix(in srgb,var(--accent) 4%,transparent)}
.prow .pr-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.prow h3{margin:0;font-size:18px;font-weight:700;letter-spacing:-.01em;line-height:1.4;display:flex;align-items:center;gap:8px;min-width:0}
.prow h3 a{color:var(--text);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prow h3 a:hover{color:var(--accent)}
.prow h3 .pr-tt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prow .phot{flex:none;margin:0}
.prow h3 .ptype{flex:none}
.prow .pdesc{margin:0;font-size:14px;line-height:1.65;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:0}
.prow .pr-meta{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--muted);flex-wrap:wrap}
.prow .pr-meta b{color:var(--text-2);font-weight:600}
.prow .pr-meta .dot{color:var(--faint)}
.prow .pr-meta .pprice{background:none;border:0;padding:0;font-weight:600;color:var(--accent)}
.prow .pr-meta .cmp-btn{height:26px;padding:0 10px;font-size:12.5px;border-radius:7px;margin-left:2px;flex:none}
.prow h3 .pr-ico{flex:none;width:22px;height:22px;border-radius:5px;display:inline-grid;place-items:center;overflow:hidden;text-decoration:none}
.prow h3 .pr-ico img{width:100%;height:100%;object-fit:contain;background:#fff;display:block;border-radius:5px}
.prow h3 .pr-ico i{font-style:normal;font-size:12px;font-weight:800;color:#fff;line-height:1}
.prow.ad-row{background:var(--accent-soft)}
.prow.ad-row:hover{background:var(--accent-soft)}
.prow.ad-row .pr-meta .pprice{color:var(--ad1,#1467c8)}
@media (max-width:680px){
  .prow{gap:11px;padding:12px 2px 11px}
  .prow h3{font-size:16px}
  .prow h3 a,.prow h3 .pr-tt{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .prow .pdesc{font-size:13px}
  .prow .pr-meta{font-size:12.5px}
  .prow .pr-meta .cmp-btn{display:none}
}

/* ===== 分页 ===== */
.pager{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;padding:10px 0 26px}
.pager:empty{display:none}
.more-loading{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}
.more-spin{width:16px;height:16px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--accent);animation:moreRot .8s linear infinite;display:inline-block}
@keyframes moreRot{to{transform:rotate(360deg)}}
.more-end{font-size:13px;color:var(--faint);position:relative;padding:0 18px}
.more-end::before,.more-end::after{content:"";position:absolute;top:50%;width:64px;height:1px;background:var(--line)}
.more-end::before{left:-56px}
.more-end::after{right:-56px}
.more-more{display:flex;flex-direction:column;align-items:center;gap:8px}
.more-btn{height:40px;padding:0 34px;border:1.5px solid var(--accent);border-radius:20px;background:var(--accent-soft);color:var(--accent);font-size:14px;font-weight:600;cursor:pointer;transition:all .15s}
.more-btn:hover{background:var(--accent);color:#fff}
.more-hint{font-size:12.5px;color:var(--faint)}
.more-hint a{color:var(--accent)}
@media (max-width:680px){
  .pg-btn{min-width:30px;height:30px;padding:0 9px;font-size:12px}
  .pg-btn[data-page="prev"],.pg-btn[data-page="next"]{}
  .pg-info{width:100%;text-align:center;margin:4px 0 0}
}

/* ===== 顶部：广告横幅（左） + 2×2 四宫格广告位（右） ===== */
.top-zone{display:flex;gap:14px;align-items:stretch;margin-top:20px}
.top-zone .ad-slot-top{margin:0;flex:1;min-width:0;display:flex;flex-direction:column;position:relative}
.top-zone .ad-slot-top .ad-slide.on{display:flex}
.top-zone .ad-slot-top .ad{flex:1;min-width:0}
/* 轮播圆点叠在横幅右下角内侧 */
.top-zone .ad-slot-top .ad-dots{position:absolute;right:16px;bottom:9px;margin:0}
.top-zone .ad-slot-top .ad-dot{box-shadow:0 0 0 2px var(--panel)}
.side-col{flex:none;width:308px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:8px}
.side-col .ad-slot-mini{min-width:0;min-height:0;display:flex}
.side-col .ad-slot-mini .ad-slide{flex:1;min-width:0}
.side-col .ad-slot-mini .ad-slide.on{display:flex}
.side-col .ad-slot-mini .ad{flex:1;min-width:0}
/* 四宫格小卡 */
.ad-mini{position:relative;display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px solid var(--line);border-radius:12px;background:var(--panel);text-decoration:none;overflow:hidden;box-shadow:var(--shadow-sm);transition:border-color .18s,box-shadow .18s,transform .18s}
.ad-mini:hover{border-color:var(--ad1,#1467c8);box-shadow:var(--shadow-md);transform:translateY(-1px)}
.ad-mini .ad-tag{position:absolute;top:0;right:0;font-size:8px;font-weight:700;letter-spacing:.06em;color:var(--faint);background:var(--panel-2);border-left:1px solid var(--line);border-bottom:1px solid var(--line);padding:1px 5px;border-radius:0 11px 0 6px;line-height:1.4}
.ad-mini-logo{position:relative;flex:none;width:28px;height:28px;border-radius:8px;overflow:hidden;display:grid;place-items:center;color:#fff;font-size:12px;font-weight:800;box-shadow:0 5px 12px -8px rgba(15,23,42,.5)}
.ad-mini-logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff;padding:4px}
.ad-vacant-mark{background:transparent;color:var(--faint);font-size:10px;border:1px dashed var(--line);box-shadow:none}
.ad-mini-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.ad-mini-body b{font-size:11.5px;font-weight:700;letter-spacing:-.01em;line-height:1.28;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-all}
.ad-mini-body i{font-style:normal;font-size:10px;line-height:1.3;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:1020px){
  .top-zone{flex-direction:column}
  .side-col{width:100%;grid-template-columns:1fr 1fr;grid-template-rows:auto auto}
  .side-col .ad-slot-mini{min-height:58px}
}
@media (max-width:680px){
  .top-zone{margin-top:14px}
  .side-col{gap:7px}
  .ad-mini{padding:8px}
}

/* ===== 右缘竖向快捷栏（≥1320px 显示） ===== */
.side-rail{display:none;position:fixed;right:14px;top:172px;z-index:40;flex-direction:column;gap:6px}
@media (min-width:1320px){ .side-rail{display:flex} }
.sr-item{width:47px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 0 7px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text-2);text-decoration:none;cursor:pointer;font:inherit;box-shadow:var(--shadow-sm);transition:.16s}
.sr-item:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft);transform:translateX(-2px)}
.sr-tx{font-size:10px;font-weight:650}
.sr-item .cm-ic{font-size:15px;color:inherit}
.sr-item:hover .cm-ic-wx{color:#189a41}
.cm-ic-wx{color:#22a54b}
.sr-top{opacity:0;pointer-events:none}
.sr-top.show{opacity:1;pointer-events:auto}

/* ===== 精选厂商推荐位 ===== */


/* ===== Hero 双入口 CTA ===== */
.hero-cta{display:flex;gap:12px;margin:16px 0 20px;flex-wrap:wrap}
.cta-main,.cta-ghost{display:inline-flex;align-items:center;gap:7px;height:42px;padding:0 22px;border-radius:11px;font-size:13.5px;font-weight:600;text-decoration:none;transition:.16s}
.cta-main{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;box-shadow:0 8px 16px -8px var(--glow)}
.cta-main:hover{filter:brightness(1.08)}
.cta-ghost{border:1px solid var(--line);color:var(--text);background:var(--card)}
.cta-ghost:hover{border-color:var(--accent);color:var(--accent)}

/* 统一入口分类卡容器 */
.biznav-sec{margin:0 0 6px}
/* 统一选型入口卡：搜索（主视觉）+ 单 tab 组三维度分类 + 条件行。
   卡内所有控件共用下列尺寸变量，保证高度 / 圆角 / 字号完全一致 */
.uni-card{--ctl-h:30px;--ctl-r:9px;--ctl-fs:12.5px}
/* 统一选型入口区：去框化——无边框底色阴影，融入页面背景，与广告条只保留一种"框" */
.uni-card{border:0;border-radius:0;padding:2px 2px 4px;background:transparent;box-shadow:none}
.uni-head{display:flex;align-items:baseline;gap:10px;margin:0 0 14px;flex-wrap:wrap}
.uni-head h1,.uni-head h2{margin:0;font-size:16px;letter-spacing:-.01em;font-weight:700}
.uni-head h1 em,.uni-head h2 em{font-style:normal;font-size:12px;font-weight:500;color:var(--faint);margin-left:9px}
.uni-head .more{margin-left:auto;font-size:12px;color:var(--accent);text-decoration:none;font-weight:600}
.uni-head .more:hover{text-decoration:underline}
/* 搜索框：整宽、加粗边框、蓝色发光，右侧实心搜索按钮 */
.uni-search{max-width:none;width:100%;margin:0 0 16px}
/* 搜索/筛选激活后的收缩态：隐藏标题行与热词，收紧间距，列表上移 */
.biznav-sec.shrunk .uni-head{display:none}
.biznav-sec.shrunk .hot-search{display:none}
.biznav-sec.shrunk .uni-search{margin:0 0 12px}
.biznav-sec.shrunk .uni-search input{height:50px;padding:0 112px 0 44px;font-size:15px}
.biznav-sec.shrunk .cat-bar{margin:0 0 10px}
.uni-search input{height:58px;padding:0 122px 0 48px;font-size:16px;border:2px solid color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:15px;background:var(--card);box-shadow:0 14px 34px -26px color-mix(in srgb,var(--accent) 90%,transparent)}
.uni-search input::placeholder{font-size:14.5px}
.uni-search input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft),0 18px 40px -26px color-mix(in srgb,var(--accent) 90%,transparent)}
.uni-search .icon{left:18px;width:19px;height:19px;color:var(--accent)}
.uni-search .uni-go{position:absolute;right:8px;top:50%;transform:translateY(-50%);height:42px;padding:0 24px;border:0;border-radius:11px;background:linear-gradient(135deg,#5aabef,#0e5bb8);color:#fff;font:inherit;font-size:14.5px;font-weight:700;letter-spacing:.02em;cursor:pointer;box-shadow:0 10px 20px -12px rgba(217,58,30,.9);transition:.16s}
.uni-search .uni-go:hover{filter:brightness(1.07);transform:translateY(-50%) translateY(-1px)}
/* 分类浏览 tab 组：三个维度，一次只看一种 */
/* tabs 行 + 筛选展开按钮 + 地区/价格/排序条件，合并为一行 */
.cat-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.cat-tabs{display:flex;align-items:center;gap:3px;padding:3px;border:1px solid var(--line);border-radius:calc(var(--ctl-r,9px) + 3px);background:var(--panel-2);margin:0;flex-wrap:wrap}
.cat-tabs{margin:0}
/* 搜索框下热门搜索词：轻量 pill，点击即搜 */
.hot-search{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:10px 0 14px}
.hot-search .hs-label{font-size:11.5px;color:var(--faint);flex:none}
.hot-search button{font:inherit;font-size:12px;line-height:1;padding:5px 11px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--text-2);cursor:pointer;transition:.15s}
.hot-search button:hover{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--panel))}
.adv-wrap{margin:0 0 12px;border-top:1px solid var(--line);padding-top:12px}
.cat-tabs .ct-label{font-size:12px;color:var(--faint);font-weight:600;padding:0 10px 0 8px}
.cat-tab{display:inline-flex;align-items:center;gap:6px;border:1px solid transparent;background:transparent;color:var(--text-2);font:inherit;font-size:var(--ctl-fs,12.5px);font-weight:600;height:var(--ctl-h,30px);padding:0 13px;border-radius:var(--ctl-r,9px);cursor:pointer;transition:.15s}
.cat-tab em{font-style:normal;font-size:11px;font-weight:500;color:var(--faint);transition:.15s}
.cat-tab:hover{color:var(--accent)}
.cat-tab.active{background:linear-gradient(135deg,var(--accent),#3b9df0);color:#fff;box-shadow:0 8px 18px -8px var(--glow)}
.cat-tab.active:hover{color:#fff}
.cat-tab.active em{color:#fff;opacity:.75}
.cat-pane{display:block;min-height:158px}
@media (max-width:640px){.cat-pane{min-height:0}}
.pane-hint{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;font-size:11.5px;color:var(--faint);margin:0 0 10px;padding-left:2px}
.pane-jump{margin-left:auto;font-size:11.5px;color:var(--accent);text-decoration:none;font-weight:600;white-space:nowrap}
.pane-jump:hover{text-decoration:underline}
.pane-jump[hidden]{display:none}
/* 维度互跳：任一维度底部都能一键切到另两个维度 */
.pane-xref{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.pane-xref>span{font-size:12px;color:var(--faint);font-weight:600}
.xr{display:inline-flex;align-items:center;height:var(--ctl-h,30px);padding:0 12px;border:1px solid var(--line);border-radius:var(--ctl-r,9px);background:var(--panel);color:var(--text-2);font:inherit;font-size:var(--ctl-fs,12.5px);font-weight:500;cursor:pointer;transition:.15s}
.xr:hover{border-style:solid;border-color:var(--accent);color:var(--accent)}
/* 结果行：三个维度已选条件统一呈现 */
.rl-conds{display:inline-flex;gap:6px;flex-wrap:wrap;margin-left:8px}
.rl-conds em{font-style:normal;font-size:11px;padding:2px 9px;border-radius:999px;background:var(--panel-2);border:1px solid var(--line);color:var(--text-2);white-space:nowrap;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:.15s}
.rl-conds em i{font-style:normal;opacity:.5;font-size:12px;line-height:1}
.rl-conds em:hover{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--panel-2))}
.rl-conds em:hover i{opacity:1}
.rl-conds em.rl-relax{cursor:default;font-weight:600;background:color-mix(in srgb,var(--accent) 10%,var(--panel-2));border-color:color-mix(in srgb,var(--accent) 35%,var(--line));color:var(--accent)}
.rl-conds em.rl-relax:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--line));color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--panel-2))}
/* 条件行：地区 / 价格 / 排序，一行轻量下拉 */
.uni-cond{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 0 auto;padding:0;border:0}
.uni-cond .uc-label{font-size:12px;color:var(--faint);font-weight:600}
.uni-cond select{
  height:var(--ctl-h,30px);border:1px solid var(--line);border-radius:var(--ctl-r,9px);
  background:var(--panel);color:var(--text-2);font:inherit;font-size:var(--ctl-fs,12.5px);
  padding:0 26px 0 11px;min-width:104px;max-width:160px;cursor:pointer;
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238a94a6' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 9px center;background-size:12px;
  transition:.15s;
}
.uni-cond select:hover{border-color:var(--accent);color:var(--accent)}
.uni-cond select:focus{border-color:var(--accent);outline:none}
.uni-cond .ghost-btn{margin-left:auto;height:var(--ctl-h,30px);padding:0 13px;border-radius:var(--ctl-r,9px);font-size:var(--ctl-fs,12.5px)}
.biznav-sec.js-tabs .cat-pane{display:none}
.biznav-sec.js-tabs .cat-pane.show{display:block}
@media (max-width:640px){.uni-card{padding:14px 12px 10px;border-radius:14px}.uni-cond{margin-left:0}.uni-cond select{max-width:none;flex:1 1 120px}.cat-bar .uni-cond{width:100%}}


/* ===== 移动端导航适配：品牌行 + 可横滑菜单行，防溢出 ===== */
@media (max-width:680px){
  .topbar-inner{flex-wrap:wrap;row-gap:0;padding:9px 16px 5px}
  .brand{font-size:18px}
  /* 主题切换叠到 logo 行右上，消除搜索栏下的整行空带；提交需求入口移出顶栏（移动端走页内入口） */
  .top-actions{position:absolute;top:11px;right:14px;order:0;flex-basis:auto;margin:0;padding:0;gap:6px;overflow:visible}
  .top-actions::-webkit-scrollbar{display:none}
  .top-actions .ghost-btn{height:32px;padding:0 10px;font-size:12.3px;flex:none}
  .top-actions .icon-only{margin-left:0}
  .top-cta{display:none}
}

/* ===== 公司对比页：决策维度样式 ===== */
.pchip.diff{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}
.cert-cell{display:inline-block;padding:4px 10px;border-radius:8px;font-size:12.5px;color:var(--muted);background:var(--panel-2)}
.cert-cell.on{background:var(--accent-soft);color:var(--accent);font-weight:600}
.bill-n{font-size:13px}
.pchip.bill{font-size:11.5px}
.cmp-dim{color:var(--faint);font-size:12.5px}
.cmp-cta{display:inline-flex;align-items:center;justify-content:center;height:36px;padding:0 14px;border-radius:9px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-size:12.5px;font-weight:600;text-decoration:none}
.cmp-cta:hover{filter:brightness(1.08)}
.cmp-links{display:flex;gap:12px;margin-top:8px;font-size:12.5px}
.cmp-links a{color:var(--muted);text-decoration:none}
.cmp-links a:hover{color:var(--accent)}
.cmp-note{margin:14px 0 0;font-size:12px;color:var(--muted);line-height:1.7}

.home-ad{margin-top:16px;margin-bottom:12px}
.home-ad:empty{display:none}
/* ---------- 首页顶部通栏广告（ChinaZ 式，同产品页 banner 样式） ---------- */
.ad-banner{position:relative;display:flex;align-items:center;gap:13px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(100deg,color-mix(in srgb,var(--ad1,#1467c8) 9%,var(--panel)),var(--panel) 62%);padding:13px 58px 13px 16px;text-decoration:none;overflow:hidden;box-shadow:var(--shadow-sm);transition:.18s}
.ad-banner:hover{border-color:var(--ad1,#1467c8);box-shadow:var(--shadow-md)}
.ad-banner .ad-tag{position:absolute;top:0;right:0;font-size:9px;font-weight:700;letter-spacing:.1em;color:var(--faint);background:var(--panel-2);border-left:1px solid var(--line);border-bottom:1px solid var(--line);padding:2px 8px;border-radius:0 13px 0 8px;z-index:1}
.ab-logo{position:relative;flex:none;width:44px;height:44px;border-radius:11px;overflow:hidden;display:grid;place-items:center;color:#fff;font-size:16px;font-weight:800;box-shadow:0 8px 16px -10px rgba(15,23,42,.5)}
.ab-logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff;padding:7px}
.ad-banner .ab-body{display:flex;flex-direction:column;gap:3px;min-width:0}
.ad-banner .ab-body b{font-size:15px;line-height:1.35;color:var(--text);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ad-banner .ab-body i{font-style:normal;font-size:12px;line-height:1.5;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ad-banner .ab-cta{flex:none;margin-left:auto;font-size:12.5px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--ad1,#1467c8),var(--ad2,#3b9df0));border-radius:9px;padding:8px 15px;white-space:nowrap}
.ad-banner:hover .ab-cta{filter:brightness(1.08)}
.ad-banner-img{padding:0;gap:0;background:var(--panel-2);border-radius:16px}
.ad-banner-img .ab-img{width:100%;height:96px;object-fit:cover;display:block}
/* 配色收敛：首屏大幅广告用中性外框与正文分区，不改素材、不占布局尺寸 */
.home-ad .ad-banner-img{box-shadow:0 0 0 3px var(--panel),0 0 0 4px var(--line),var(--shadow-sm)}
.home-ad .ad-banner-img:hover{box-shadow:0 0 0 3px var(--panel),0 0 0 4px var(--line),var(--shadow-md)}
@media (max-width:760px){
  .ad-banner{padding:11px 50px 11px 12px;gap:10px}
  .ad-banner .ab-body b{font-size:13px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .ad-banner .ab-body i{display:none}
  .ad-banner .ab-cta{padding:6px 10px;font-size:11.5px}
  .ad-banner-img .ab-img{height:60px}
}
.ad-feed-img{padding-top:0;gap:9px}
.ad-feed-img .pf-img{width:calc(100% + 34px);max-width:none;margin:-15px -17px 0;height:148px;object-fit:cover;display:block;border-radius:14px 14px 0 0}
.ad-banner-img{padding:0;gap:0;background:var(--panel-2);border-radius:16px}
.ad-banner-img .ab-bimg{width:100%;height:120px;object-fit:cover;display:block;border-radius:16px}
@media (max-width:760px){
  .ad-feed-img .pf-img{height:120px}
  .ad-banner-img .ab-bimg{height:64px}
}
/* ---------- Hero 首屏（单栏紧凑 + CTA/统计同行） ---------- */
.hero{padding-top:36px}
.hero-row{display:flex;align-items:flex-end;justify-content:space-between;gap:18px 32px;flex-wrap:wrap;margin-top:20px}
.hero-row .hero-cta{margin:0}
.hero-row .stats{margin-top:0;gap:22px 26px}
.stats .stat b{background:linear-gradient(135deg,#0e5bb8,#7C3AED);-webkit-background-clip:text;background-clip:text;color:transparent}
@media (max-width:760px){
  .hero-row{flex-direction:column;align-items:flex-start}
  .hero-row .stats{gap:16px 20px}
}

/* ---------- 首页 CPS 推广入口横幅 ---------- */
.cps-strip{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:14px 0 0;padding:14px 18px;border:1px solid #D9E2FF;border-radius:14px;background:linear-gradient(120deg,#F0F4FF,#EAF1FF 60%,#F5F0FF);color:var(--text);text-decoration:none;transition:.15s}
.cps-strip:hover{border-color:#B4C6FF;box-shadow:0 4px 16px rgba(36,64,201,.08)}
html[data-theme="dark"] .cps-strip{border-color:color-mix(in srgb,#8FA5FF 30%,var(--line));background:linear-gradient(120deg,color-mix(in srgb,#1467c8 16%,var(--card)),color-mix(in srgb,#3b9df0 12%,var(--card)))}
html[data-theme="dark"] .cps-strip:hover{border-color:color-mix(in srgb,#8FA5FF 55%,var(--line));box-shadow:0 4px 16px rgba(20,103,200,.25)}
html[data-theme="dark"] .cps-strip .cps-tag{color:#A5B0D6;border-color:color-mix(in srgb,#8FA5FF 28%,var(--line));background:transparent}
.cps-strip .cps-tag{font-size:11px;color:#8A94B8;border:1px solid #D9E2FF;background:#fff;padding:2px 8px;border-radius:999px;flex:none}
.cps-strip .cps-ico{font-size:20px;flex:none}
.cps-strip b{font-size:14.5px;flex:none}
.cps-strip .cps-desc{font-size:13px;color:var(--text-2);flex:1;min-width:200px}
.cps-strip .cps-go{font-size:13px;color:#0e5bb8;font-weight:600;flex:none;white-space:nowrap}
.cps-strip:hover .cps-go{transform:translateX(2px)}
@media (max-width:760px){
  .cps-strip .cps-desc{display:none}
  .cps-strip b{font-size:13.5px}
}

/* ---------- 产品对比 ---------- */
.cmp-btn{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:8px;padding:3px 10px;font-size:12px;cursor:pointer;transition:.15s;line-height:1.4}
.cmp-btn:hover{border-color:var(--accent);color:var(--accent)}
.cmp-btn.on{background:color-mix(in srgb,var(--accent) 14%,transparent);border-color:var(--accent);color:var(--accent);font-weight:600}
#cmpBar{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:80;display:flex;align-items:center;gap:10px;max-width:min(92vw,720px);padding:10px 12px 10px 16px;border-radius:14px;border:1px solid var(--line);background:var(--panel);box-shadow:0 12px 36px -12px rgba(2,8,40,.35);backdrop-filter:blur(8px)}
#cmpBar[hidden]{display:none}
#cmpItems{display:flex;gap:6px;flex-wrap:wrap;font-size:12.5px;color:var(--text)}
#cmpItems .cmp-tag{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:8px;padding:2px 8px;background:var(--bg)}
#cmpItems .cmp-tag button{border:0;background:none;color:var(--muted);cursor:pointer;font-size:13px;padding:0;line-height:1}
#cmpItems .cmp-tag button:hover{color:#e5484d}
.cmp-go{border:0;border-radius:9px;padding:6px 14px;font-size:13px;font-weight:600;text-decoration:none;background:linear-gradient(135deg,#1467c8,#3b9df0);color:#fff;transition:.15s}
.cmp-go:hover{opacity:.9}
.cmp-go[aria-disabled="true"]{opacity:.45;pointer-events:none}
.cmp-clear{border:0;background:none;color:var(--muted);cursor:pointer;font-size:12.5px;padding:2px}
.cmp-clear:hover{color:#e5484d}
/* 对比页 */
.cmp-wrap{max-width:1180px;margin:26px auto 60px;padding:0 20px}
.cmp-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:4px}
.cmp-head h1{font-size:22px;margin:0}
.cmp-head span{color:var(--muted);font-size:13px}
.cmp-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:var(--panel);margin-top:18px}
table.cmp-table{border-collapse:collapse;width:100%;min-width:640px;font-size:13.5px}
.cmp-table th,.cmp-table td{border-bottom:1px solid var(--line);padding:12px 14px;text-align:left;vertical-align:top}
.cmp-table tr:last-child th,.cmp-table tr:last-child td{border-bottom:0}
.cmp-table thead th{position:sticky;top:0;background:var(--panel);z-index:2;border-bottom:1px solid var(--line)}
.cmp-table tbody th{width:96px;color:var(--muted);font-weight:500;font-size:12px;letter-spacing:.04em;white-space:nowrap;position:sticky;left:0;background:var(--panel);z-index:1}
.cmp-prod{min-width:210px}
.cmp-prod b{display:block;font-size:15.5px;line-height:1.35}
.cmp-prod b a{color:var(--text);text-decoration:none}
.cmp-prod b a:hover{color:var(--accent)}
.cmp-prod .cmp-co{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmp-rm{border:1px solid var(--line);background:none;border-radius:7px;color:var(--muted);font-size:11.5px;padding:2px 9px;cursor:pointer;margin-top:9px;opacity:.65;transition:.15s}
.cmp-rm:hover{color:#e5484d;border-color:#e5484d}
.cmp-desc{max-width:300px;line-height:1.72;font-size:13px;display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.cmp-feat li{margin:3px 0;line-height:1.55}
.cmp-feat{margin:0;padding-left:16px}
.cmp-inds span{display:inline-block;border:1px solid var(--line);border-radius:6px;padding:1px 7px;font-size:11.5px;color:var(--muted);margin:2px 4px 2px 0}
.cmp-empty{text-align:center;padding:56px 16px;color:var(--muted)}
.cmp-empty b{display:block;font-size:17px;color:var(--text);margin-bottom:8px}
.cmp-pick{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:18px}
.cmp-pick button{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:9px;padding:6px 12px;font-size:12.5px;cursor:pointer;transition:.15s}
.cmp-pick button:hover{border-color:var(--accent);color:var(--accent)}
.cmp-lh{width:96px}
.cmp-prow{display:flex;gap:10px;align-items:center;margin-bottom:2px}
.cmp-logo{width:40px;height:40px;border-radius:10px;flex:none;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}
.cmp-logo img{width:100%;height:100%;object-fit:cover}
.cmp-pinfo{display:flex;flex-direction:column;gap:2px;min-width:0}
.cmp-type{font-size:11px;padding:2.5px 10px;border-radius:999px}
.cmp-cat{color:var(--muted);font-size:12px;margin-top:6px}
.cmp-price{display:inline-block;border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:2.5px 11px;font-size:12.5px;color:var(--text)}
.cmp-na{color:var(--faint);font-size:12.5px}
.cmp-lks{display:flex;gap:12px;flex-wrap:wrap}
.cmp-lk{color:var(--accent);text-decoration:none;font-size:13px;white-space:nowrap}
.cmp-lk:hover{text-decoration:underline}
.cmp-foot{margin-top:14px;color:var(--faint);font-size:12px;text-align:center}
.cmp-prod:hover .cmp-rm{opacity:1}
.cmp-table tbody tr:hover td{background:color-mix(in srgb,var(--accent) 3.5%,transparent)}
.cmp-table tbody tr:hover th{background:color-mix(in srgb,var(--accent) 5%,var(--panel))}

/* ---------- 结构化参数（多源采集） ---------- */
.cmp-param{font-size:13px;line-height:1.6;color:var(--text);display:inline-block;max-width:280px}
.cmp-src{font-size:12.5px}
.spec-src{font-size:10.5px;color:var(--accent);text-decoration:none;margin-left:4px;vertical-align:super}
.spec-src:hover{text-decoration:underline}
.spec-sources{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line);font-size:12.5px;color:var(--text-2)}
.spec-sources b{display:block;margin-bottom:6px;color:var(--text);font-size:12.5px}
.spec-sources ol{margin:0;padding-left:18px;line-height:1.85}
.spec-sources a{color:var(--accent);text-decoration:none}
.spec-sources a:hover{text-decoration:underline}
.spec-notes{margin:8px 0 0;color:var(--muted);font-size:12px;line-height:1.7}

/* ---------- 首页选型指南条（guides.html 入口） ---------- */
.gstrip{margin-top:22px;margin-bottom:4px}
.gstrip-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.gstrip-head b{font-size:14.5px;letter-spacing:-.01em}
.gstrip-head span{font-size:12px;color:var(--faint)}
.gstrip-head a{margin-left:auto;font-size:12px;color:var(--accent);text-decoration:none;font-weight:600}
.gstrip-head a:hover{text-decoration:underline}
.gcards{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.gcard{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);text-decoration:none;transition:.16s}
.gcard:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:0 8px 20px -16px color-mix(in srgb,var(--accent) 55%,transparent)}
.gcard i{font-style:normal;font-size:10px;font-weight:700;color:var(--accent);letter-spacing:.04em}
.gcard b{font-size:12.8px;line-height:1.5;color:var(--text);letter-spacing:-.01em;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.gcard span{font-size:11.3px;color:var(--muted);line-height:1.6;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.gcard em{font-style:normal;font-size:11px;color:var(--accent);font-weight:600;margin-top:1px}
@media (max-width:1024px){.gcards{grid-template-columns:repeat(3,1fr)}}
@media (max-width:860px){.gcards{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.gcards{grid-template-columns:1fr}}

/* ---------- 产品页「采购与中标记录」 ---------- */
.bid-tbl{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--panel)}
.bid-row{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1.35fr) auto;gap:14px;align-items:center;padding:12px 15px;border-bottom:1px solid var(--line-soft)}
.bid-row:last-child{border-bottom:0}
.bid-row:hover{background:var(--panel-2)}
.bid-range{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;padding:13px 15px;margin:0 0 14px;background:var(--panel-2);border:1px solid var(--line);border-left:3px solid var(--money);border-radius:10px}
.br-k{font-size:13px;font-weight:650;color:var(--text)}
.br-lo,.br-hi{font-size:17px;font-weight:800;color:var(--money);letter-spacing:.2px}
.br-sep{font-size:15px;color:var(--money);font-weight:700}
.br-mid{font-size:12.5px;color:var(--text-2);background:var(--panel);border:1px solid var(--line);padding:2px 9px;border-radius:999px}
.br-n{font-size:12px;color:var(--faint);margin-left:auto}
@media (max-width:720px){.br-n{margin-left:0;flex-basis:100%}}
.bid-c b{display:block;font-size:13.5px;color:var(--text);line-height:1.5;font-weight:650}
.bid-c span{display:block;font-size:12px;color:var(--faint);line-height:1.55;margin-top:2px}
.bid-m{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;font-size:12.5px;color:var(--text-2);min-width:0}
.bid-m i{font-style:normal;color:var(--text);font-weight:600;line-height:1.5}
.bid-m span{color:var(--faint)}
.bid-m b{color:var(--accent);font-weight:700;margin-left:auto;white-space:nowrap}
.bid-lk{font-size:12px;color:var(--accent);text-decoration:none;white-space:nowrap;font-weight:600}
.bid-lk:hover{text-decoration:underline}
.bid-note{margin:10px 0 0;font-size:12px;color:var(--faint);line-height:1.7}
.bid-note a{color:var(--accent);text-decoration:none}
@media (max-width:720px){.bid-row{grid-template-columns:1fr;gap:6px}.bid-m b{margin-left:0}.bid-lk{justify-self:start}}

/* ---------- 首页搜索 → 全站搜索入口 ---------- */
.all-search{margin:-6px 0 12px;text-align:right}
.all-search a{
  display:inline-flex;align-items:center;gap:6px;
  padding:5px 11px;border-radius:9px;font-size:12.6px;
  color:var(--accent);text-decoration:none;background:var(--accent-soft);
  border:1px solid color-mix(in srgb,var(--accent) 22%,transparent);transition:.15s;
}
.all-search a:hover{background:color-mix(in srgb,var(--accent) 14%,transparent);gap:9px}
.all-search b{font-weight:600}
.all-search i{font-style:normal;opacity:.75}

/* ---------- 政府采购渠道地图 /tender.html ---------- */
.td-wrap{max-width:1120px;margin:0;padding:0 22px}
.td-hero{padding:34px 0 6px}
.td-hero h1{margin:0 0 10px;font-size:clamp(22px,3.2vw,31px);letter-spacing:-.4px}
.td-hero p{margin:0;color:var(--muted);font-size:14.4px;line-height:1.85;max-width:900px}
.td-hero p b{color:var(--text)}
.td-stats{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 0}
.td-stats span{padding:7px 13px;border:1px solid var(--line);border-radius:10px;font-size:12.6px;color:var(--muted);background:var(--panel)}
.td-stats b{color:var(--text);font-size:15px;margin-right:4px;font-variant-numeric:tabular-nums}
.td-warn{margin:22px 0 0;padding:14px 16px;border-radius:12px;border-left:3px solid var(--accent);
  background:color-mix(in srgb,var(--accent) 6%,transparent);font-size:13px;line-height:1.85;color:var(--muted)}
.td-warn b{color:var(--text)}
.td-warn i{font-style:normal;color:var(--accent);font-weight:600}
.td-sec{margin:34px 0 0}
.td-sec>h2{font-size:17.5px;margin:0 0 4px;display:flex;align-items:center;gap:9px}
.td-sec>h2 em{font-style:normal;font-size:11.5px;font-weight:500;color:var(--faint);letter-spacing:.4px}
.td-sec>p.sub{margin:0 0 14px;font-size:13px;color:var(--muted);line-height:1.8}
.td-nat{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:12px}
.td-ncard{border:1px solid var(--line);border-radius:13px;padding:15px 16px;background:var(--panel);transition:.16s}
.td-ncard:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--line));transform:translateY(-1px)}
.td-ncard.strong{border-color:color-mix(in srgb,var(--accent) 32%,var(--line));background:color-mix(in srgb,var(--accent) 4%,var(--panel))}
.td-ncard .td-org{font-size:11.5px;color:var(--faint);letter-spacing:.3px}
.td-ncard a.td-go{display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin:5px 0 7px;font-size:15.5px;font-weight:650;color:var(--text);text-decoration:none;letter-spacing:-.2px}
.td-ncard a.td-go:hover{color:var(--accent)}
.td-ncard a.td-go span{font-size:12px;font-weight:500;color:var(--accent);white-space:nowrap}
.td-ncard p{margin:0;font-size:12.6px;line-height:1.8;color:var(--muted)}
.td-subs{display:flex;flex-wrap:wrap;gap:6px;margin:11px 0 0;padding-top:10px;border-top:1px dashed var(--line-soft)}
.td-subs a{font-size:11.8px;padding:4px 9px;border-radius:8px;text-decoration:none;color:var(--accent);
  background:color-mix(in srgb,var(--accent) 8%,transparent);border:1px solid color-mix(in srgb,var(--accent) 18%,transparent)}
.td-subs a:hover{background:color-mix(in srgb,var(--accent) 15%,transparent)}
.td-region{margin:24px 0 0;scroll-margin-top:118px}
.td-region>h3{font-size:14px;margin:0 0 10px;color:var(--muted);font-weight:600;letter-spacing:.5px}
.td-region>h3::before{content:"";display:inline-block;width:3px;height:12px;border-radius:2px;
  background:var(--accent);margin-right:8px;vertical-align:-1px}
.td-nav{position:sticky;top:56px;z-index:30;display:flex;gap:7px;flex-wrap:wrap;margin:26px 0 2px;
  padding:9px 11px;border:1px solid var(--line);border-radius:12px;
  background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(10px)}
.td-nav em{font-style:normal;font-size:11px;color:var(--faint);align-self:center;margin:0 3px 0 2px;letter-spacing:.4px}
.td-nav a{font-size:12.3px;padding:4px 11px;border-radius:99px;text-decoration:none;color:var(--text-2);
  background:var(--panel-2,var(--panel));border:1px solid var(--line-soft)}
.td-nav a:hover{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.td-cities{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0 0;padding-top:8px;border-top:1px dashed var(--line-soft)}
.td-cities em{font-style:normal;font-size:10.6px;color:var(--faint);letter-spacing:.3px;align-self:center;flex:none}
.td-cities a{font-size:11.4px;padding:2px 8px;border-radius:7px;text-decoration:none;color:var(--text-2);
  background:var(--panel-2,var(--panel));border:1px solid var(--line-soft);white-space:nowrap}
.td-cities a:hover{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}
.td-cities a i{font-style:normal;color:var(--faint);margin-left:1px}
.td-citynote{margin:6px 0 0;font-size:11.2px;line-height:1.65;color:var(--faint)}
.td-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.td-card{border:1px solid var(--line-soft);border-radius:11px;padding:12px 13px;background:var(--panel);transition:.15s}
.td-card:hover{border-color:var(--line);background:var(--panel-2,var(--panel))}
.td-card .td-h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px}
.td-card .td-h b{font-size:13.6px;letter-spacing:-.1px}
.td-hit{font-size:10.8px;padding:2px 7px;border-radius:6px;white-space:nowrap;font-variant-numeric:tabular-nums;
  color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}
.td-card a.td-l{font-size:12.4px;color:var(--text);text-decoration:none;display:block;line-height:1.6;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.td-card a.td-l:hover{color:var(--accent);text-decoration:underline}
.td-card .td-note{margin:6px 0 0;font-size:11.4px;line-height:1.65;color:var(--faint)}
.td-card .td-bids{margin:7px 0 0;display:flex;flex-direction:column;gap:3px}
.td-card .td-bids a{font-size:11.5px;color:var(--muted);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.td-card .td-bids a:hover{color:var(--accent)}
.td-card .td-bids a::before{content:"· ";color:var(--faint)}
.td-steps{counter-reset:tds;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin:16px 0 0}
.td-step{position:relative;padding:14px 16px 14px 46px;border:1px solid var(--line-soft);border-radius:12px;background:var(--panel)}
.td-step::before{counter-increment:tds;content:counter(tds);position:absolute;left:15px;top:14px;
  width:21px;height:21px;border-radius:50%;display:grid;place-items:center;font-size:11.5px;font-weight:700;
  color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}
.td-step b{display:block;font-size:13.4px;margin-bottom:5px}
.td-step p{margin:0;font-size:12.4px;line-height:1.75;color:var(--muted)}
.td-next{display:flex;flex-wrap:wrap;gap:9px;margin:16px 0 0}
.td-next a{flex:1 1 190px;padding:13px 15px;border-radius:12px;text-decoration:none;border:1px solid var(--line);
  background:var(--panel);transition:.15s}
.td-next a:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--line));transform:translateY(-1px)}
.td-next b{display:block;font-size:13.4px;color:var(--text);margin-bottom:4px}
.td-next span{font-size:12px;color:var(--muted);line-height:1.6}
@media(max-width:680px){
  .td-hero{padding:22px 0 4px}
  .td-grid{grid-template-columns:1fr}
  .td-nat{grid-template-columns:1fr}
}

/* ===== 通用广告位（assets/adunit.js）：联盟代码 / 自有广告 / 招租占位 ===== */
.adunit{margin:22px 0}
.adunit[hidden]{display:none}
.adunit.au-inline{margin:16px 0}
.adunit .au-card{position:relative;display:flex;align-items:center;gap:13px;padding:12px 16px;border-radius:14px;max-width:880px;margin:0;
  border:1px solid var(--line);text-decoration:none;overflow:hidden;
  background:linear-gradient(100deg,color-mix(in srgb,var(--ad1,#1467c8) 8%,var(--panel)),var(--panel) 64%);
  box-shadow:var(--shadow-sm);transition:.16s}
.adunit .au-card:hover{border-color:var(--ad1,#1467c8);box-shadow:var(--shadow-md);transform:translateY(-1px)}
/* 页尾通栏广告：容器比卡片宽很多，居中放置避免整条贴在左侧、右侧大片空白 */
.adunit.au-banner[data-ad-slot$="-foot"] .au-card{margin-left:auto;margin-right:auto}
/* 三栏详情页：广告容器默认横跨整个 main（含左导航+右栏），需收敛到中间主栏，
   才能与上方询价卡等内容左右边缘严格对齐（列宽与 detail.css .p-layout 保持一致） */
@media (min-width:1300px){
  main:has(.p-layout) .adunit.au-banner[data-ad-slot$="-foot"]{margin-left:224px;margin-right:324px}
}
@media (min-width:1001px) and (max-width:1299px){
  main:has(.p-layout) .adunit.au-banner[data-ad-slot$="-foot"]{margin-left:200px;margin-right:0}
}
main:has(.p-layout) .adunit.au-banner[data-ad-slot$="-foot"] .au-card{max-width:none;width:100%;margin:0}
.adunit .au-tag{position:absolute;top:0;right:0;font-size:9px;font-weight:700;letter-spacing:.1em;color:var(--faint);
  background:var(--panel-2);border-left:1px solid var(--line);border-bottom:1px solid var(--line);padding:2px 8px;border-radius:0 13px 0 8px}
.adunit .au-main{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.adunit .au-main b{font-size:15px;color:var(--text);letter-spacing:-.01em;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.adunit .au-sub{display:flex;align-items:center;gap:8px;min-width:0}
.adunit .au-main i{font-style:normal;font-size:12.4px;color:var(--muted);line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.adunit .au-tags{display:flex;gap:6px;flex:none}
.adunit .au-tags em{font-style:normal;font-size:11px;padding:2px 7px;border-radius:6px;color:var(--text-2);background:var(--panel-2);border:1px solid var(--line-soft)}
.adunit .au-cta{flex:none;font-size:12.5px;font-weight:700;color:#fff;padding:8px 15px;border-radius:9px;
  background:linear-gradient(135deg,var(--ad1,#1467c8),var(--ad2,#3b9df0));white-space:nowrap}
.adunit .au-logo{flex:none;width:42px;height:42px;border-radius:11px;display:grid;place-items:center;
  font-size:17px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--ad1,#1467c8),var(--ad2,#3b9df0));
  box-shadow:0 2px 8px color-mix(in srgb,var(--ad1,#1467c8) 35%,transparent);overflow:hidden}
.adunit .au-logo img{width:100%;height:100%;object-fit:cover}
.adunit .au-img{display:block;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:var(--panel-2)}
.adunit .au-img img{display:block;width:100%;height:auto}
.adunit .au-raw{display:block;text-align:center;overflow:hidden;min-height:0}
.adunit .au-raw iframe,.adunit .au-raw img{max-width:100%}
/* 招租占位：低调虚线框，不抢视觉 */
.adunit .au-vacant{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:12px;text-decoration:none;
  border:1px dashed color-mix(in srgb,var(--line) 60%,var(--faint));background:var(--panel-2);transition:.16s}
.adunit .au-vacant:hover{border-color:var(--accent);background:var(--panel)}
.adunit .au-vacant .av-k{flex:none;font-size:10.5px;font-weight:700;letter-spacing:.06em;color:var(--faint);
  padding:3px 7px;border-radius:5px;background:var(--panel);border:1px solid var(--line)}
.adunit .au-vacant b{font-size:12.6px;font-weight:600;color:var(--text-2)}
.adunit .au-vacant i{font-style:normal;margin-left:auto;font-size:12px;color:var(--accent);white-space:nowrap}
.adunit .au-vacant-rect{flex-direction:column;align-items:flex-start;gap:6px;padding:18px}
.adunit .au-vacant-rect i{margin-left:0}
@media(max-width:680px){
  .adunit{margin:16px 0}
  .adunit .au-card{padding:12px 13px;gap:10px}
  .adunit .au-logo{width:36px;height:36px;border-radius:9px;font-size:15px}
  .adunit .au-main b{font-size:13.6px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .adunit .au-main i{display:none}
  .adunit .au-sub{flex-wrap:wrap;row-gap:4px}
  .adunit .au-cta{padding:7px 11px;font-size:12px}
  .adunit .au-vacant b{font-size:12px}
}

/* ===== 页脚合作位（data-ad-slot=foot-link）：全站文字链，视觉重量最低 ===== */
.adunit.au-links{margin:0;padding:0}
.adunit .au-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:6px 20px;
  max-width:none;margin:0;padding:16px clamp(14px,2.4vw,32px) 2px;border-top:1px solid var(--line-soft)}
.adunit .au-links-k{font-size:10.5px;font-weight:700;letter-spacing:.12em;color:var(--faint);
  padding:2px 7px;border-radius:5px;background:var(--panel-2);border:1px solid var(--line-soft)}
.adunit .au-link{font-size:12.2px;color:var(--muted);text-decoration:none;transition:.15s}
.adunit .au-link:hover{color:var(--accent)}

/* ===== 首页右栏「合作客户」：复用页脚 foot-link 投放数据，改成 2 列紧凑标签 ===== */
.rc-partners .adunit.au-links{margin:0;padding:0}
.rc-partners .adunit .au-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;padding:0;border:0}
.rc-partners .adunit .au-links-k{display:none}
.rc-partners .adunit .au-link{
  display:block;padding:7px 6px;border:1px solid var(--line-soft);border-radius:8px;
  background:var(--panel-2);font-size:11.2px;font-weight:600;color:var(--text-2);text-align:center;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
html[data-theme="dark"] .rc-partners .adunit .au-link{color:#c3d8f2}
.rc-partners .adunit .au-link:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}
/* 无投放时连标题一起收起，避免留下空卡片 */
.rc-partners:has(.adunit[hidden]){display:none}
@media(max-width:400px){
  .rc-partners .adunit .au-link{font-size:10.8px;padding:6px 4px}
}

/* ===== 专区冠名位：比常规横幅更重，但仍克制 ===== */
.adunit[data-ad-slot="zone-feature"]{margin:20px 0 6px}
.adunit[data-ad-slot="zone-feature"] .au-card{max-width:980px;padding:18px 22px;border-radius:16px;gap:16px}
.adunit[data-ad-slot="zone-feature"] .au-logo{width:52px;height:52px;border-radius:13px;font-size:21px}
.adunit[data-ad-slot="zone-feature"] .au-main b{font-size:17px}
.adunit[data-ad-slot="zone-feature"] .au-cta{padding:10px 18px;font-size:13px}
@media(max-width:680px){
  .adunit[data-ad-slot="zone-feature"] .au-card{padding:14px 14px;gap:11px}
  .adunit[data-ad-slot="zone-feature"] .au-logo{width:40px;height:40px;font-size:17px}
  .adunit[data-ad-slot="zone-feature"] .au-main b{font-size:14.6px}
  .adunit .au-links{padding:12px 14px 0;gap:6px 14px}
  .adunit .au-link{font-size:11.6px}
}

/* ===== 顶栏大搜索框（首页同款，供产品页/内容页复用） ===== */
.top-search{flex:1;max-width:600px;margin:0 18px;display:flex;align-items:center;gap:8px;height:42px;padding:0 5px 0 14px;background:#fff;border:2px solid #0d4f9e;border-radius:21px;box-shadow:0 3px 12px -5px rgba(13,79,158,.35);transition:border-color .15s,box-shadow .15s}
.top-search:focus-within{border-color:#2f86d9;box-shadow:0 0 0 3.5px rgba(47,134,217,.16),0 3px 12px -5px rgba(13,79,158,.35)}
.top-search .icon{flex:none;color:#0d4f9e}
.top-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;font-size:13.8px;color:var(--text)}
.top-search input::placeholder{color:#8492a6}
.top-search input::-webkit-search-cancel-button{-webkit-appearance:none}
.top-go{flex:none;height:32px;padding:0 24px;border:0;border-radius:16px;background:linear-gradient(135deg,#0d4f9e,#2f86d9);color:#fff;font-size:13.5px;font-weight:800;letter-spacing:.06em;cursor:pointer;box-shadow:0 2px 8px -2px rgba(13,79,158,.55)}
.top-go:hover{filter:brightness(1.07)}
html[data-theme="dark"] .top-search{background:var(--panel-2);border-color:#2b5f9e;box-shadow:none}
html[data-theme="dark"] .top-search .icon{color:#5aabef}
@media (max-width:860px){
  .top-search{margin:0 10px}
  .top-go{padding:0 12px}
}
@media (max-width:640px){
  .top-search input{font-size:12.5px}
  .top-go{padding:0 10px;font-size:12px}
}

/* ===== 全站统一首页式外壳：左侧站内导航 + 主列（供栏目页/内容页复用） ===== */
.xk-shell{max-width:none;margin:0 auto;display:grid;grid-template-columns:200px minmax(0,1fr);gap:24px;padding:0 clamp(14px,2.4vw,32px) 46px;align-items:start}
/* 公司页等详情模板把 body 设为 flex column，grid 外壳不会自动拉伸——强制占满一行，保持全站靠左一致 */
body > .xk-shell{width:100%}
/* 外壳内主列里的 main 带自身容器样式（.wrap/.zwrap 等）时：解除水平限宽与边距（垂直 padding 保留），统一由外壳提供左右留白，保证全站靠左一致 */
.xk-maincol > main{max-width:none!important;margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important}
.xk-maincol{min-width:0}
/* 左侧菜单随页面一起滚动（与右侧内容一致），不再吸附或固定 */
/* 栏目页左侧导航：吸顶固定（top 与顶栏对齐），滚到内容区末尾自然让位，不遮页脚；
   首页由 .side-slot 承担 sticky，本规则对首页 .xk-side 会被高优先级内联规则覆盖为 static。 */
.xk-side{position:sticky;top:calc(65px + var(--top-gap,14px));align-self:start;display:flex;flex-direction:column;gap:1px}
.xk-side a{display:flex;align-items:center;gap:12px;padding:10.5px 13px;border-radius:9px;color:var(--text);font-size:14px;text-decoration:none}
[data-theme="dark"] .xk-side a{color:var(--text-2)}
.xk-side a svg{width:17px;height:17px;flex:none;opacity:1}
.xk-side a .mi{width:auto;height:auto;border-radius:0;display:grid;place-items:center;flex:none;background:none;color:#4a5260;box-shadow:none;transition:color .15s}
[data-theme="dark"] .xk-side a .mi{color:var(--muted)}
.xk-side a .mi svg{stroke-width:2;filter:none}
.xk-side a:hover .mi,.xk-side a.on .mi{color:var(--accent);transform:none;box-shadow:none}
.xk-side a:hover{background:var(--panel-2);color:var(--text)}
/* 选中态：不画背景框/左侧竖条，只用蓝色加粗文字 + 蓝色图标区分，菜单保持朴素干净。
   深色主题用亮蓝字（对比度 >9:1），避免旧版黑字黑底看不见。 */
.xk-side a.on{background:transparent;color:var(--accent);font-weight:700;box-shadow:none}
[data-theme="dark"] .xk-side a.on{background:transparent;color:#aad7f8}
[data-theme="dark"] .xk-side a:hover{background:var(--panel-2);color:var(--text)}
.xk-side hr{border:0;border-top:1px solid var(--line);margin:9px 8px}
.xk-side .side-note{font-size:11px;color:var(--faint);padding:8px 13px;line-height:1.7}
@media (max-width:1080px){
  .xk-shell{grid-template-columns:minmax(0,1fr)}
  .xk-side{display:none}
}

/* ===== 顶栏文字链广告位（搜索框右侧空档，slot=topbar） ===== */
.tb-ad{flex:1;min-width:0;margin:0 16px;display:flex;align-items:center}
.tb-ad:empty{display:none}
.tb-ad .au-card{width:100%;max-width:none;height:36px;padding:0 14px;gap:10px;border-radius:18px;overflow:hidden;flex-wrap:nowrap}
.tb-ad .au-sub{display:none}
.tb-ad .au-logo{width:20px;height:20px;flex:none;font-size:11px}
.tb-ad .au-main b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tb-ad .au-cta{font-size:12px;white-space:nowrap;flex:none}
@media (max-width:1080px){ .tb-ad{display:none} }
.tb-ad{margin:0}

/* ===== 全站统一：顶栏与首屏内容之间的空隙（2026-11-06） =====
   旧值分散在各模板里：main padding-top 16/20/26/30px，首个广告位再叠 margin-top:22px，
   结果首页 0、产品/公司页 16~42、列表页 22、成交价 48、主题页 52、法律页 26px 不等。
   这里统一收敛并覆盖首页在内的全部栏目（含子目录页）：先试 8px，实测肉眼几乎看不出间隙，
   故回调到 14px（移动端 10px）——仍明显小于旧版各页 16~52px，但顶栏与首屏内容不再贴死。
   用 !important 是因为各模板的内联 <style> 在 app.css 之后加载。 */
:root{--top-gap:14px}
body > .xk-shell{padding-top:var(--top-gap) !important}
body > main{padding-top:var(--top-gap) !important;margin-top:0 !important}
/* 部分栏目页的 main 还包在 .xk-maincol 里，需一并清掉模板自带的上内/外边距 */
body > .xk-shell .xk-maincol{padding-top:0 !important;margin-top:0 !important}
body > .xk-shell main{padding-top:0 !important;margin-top:0 !important}
/* 首个广告位的 22px 上外边距会折叠到 main 上，形成第二条空隙 */
body > .xk-shell main > :first-child,
body > main > :first-child{margin-top:0 !important}
@media (max-width:680px){
  :root{--top-gap:10px}
}
