/* ============================================================
   芯与测平台 全站样式 v2.0 · 严格按效果图浅色系
   首页内容区固定 1400px；二级页面自适应
   ============================================================ */
:root {
  --xy-blue: #1E6FD9;          /* 主蓝：按钮/链接/激活 */
  --xy-deep: #0E5BC7;          /* 深蓝：hover */
  --xy-navbg: #E9F2FC;         /* 导航条浅蓝底 */
  --xy-bg: #F5F8FB;            /* 浅灰蓝背景 */
  --xy-text: #333;
  --xy-sub: #999;
  --xy-line: #E8EDF2;
}
/* 全站滚动条槽位恒定 —— 修复「切换一级导航时整页横向跳动」
   原因：平台简介 / 联系芯与测等不足一屏的页面不出现垂直滚动条，可用宽度比
   其他页面多 15px，居中容器（.xy-wrap/.xy-wrap-fluid）随之右移约 7~8px。
   方案：overflow-y:scroll 为兜底（老浏览器始终占位）；
   支持 scrollbar-gutter 的现代浏览器改用 stable —— 只预留槽位、不常显滚动条。 */
html { overflow-y: scroll; }
@supports (scrollbar-gutter: stable) {
  html { overflow-y: auto; scrollbar-gutter: stable; }
}

* { box-sizing: border-box; }
body.xy-body { font-family: "Microsoft YaHei", "PingFang SC", sans-serif; color: var(--xy-text); background: #fff; margin: 0; font-size: 14px; }
a { color: var(--xy-blue); text-decoration: none; }
a:hover { color: var(--xy-deep); text-decoration: none; }
img { max-width: 100%; }

/* 容器：首页固定1400，其他自适应 */
.xy-wrap { width: 1400px; max-width: 100%; margin: 0 auto; padding: 0 15px; }
.xy-wrap-fluid { width: 1400px; max-width: 100%; margin: 0 auto; padding: 0 15px; }

/* ===== 顶部欢迎条（浅灰底·灰字·右侧蓝粗体） ===== */
.xy-topbar { background: #F5F6F8; color: #999; font-size: 12px; line-height: 36px; border-bottom: 1px solid #EFEFEF; }
.xy-topbar .xy-wrap { display: flex; justify-content: space-between; }
.xy-topbar a { color: var(--xy-blue); font-weight: 700; margin-left: 6px; }
.xy-topbar a:hover { color: var(--xy-deep); }
.xy-topbar .divider { color: #D5D5D5; margin: 0 8px; }

/* ===== 头部（白底） ===== */
.xy-header { background: #fff; padding: 22px 0 18px; }
.xy-header .xy-wrap { display: flex; align-items: center; }
.xy-logo { display: flex; align-items: center; margin-right: 50px; }
.xy-logo img { height: 50px; }
.xy-logo .logo-text { margin-left: 8px; }
.xy-logo .logo-text b { display: block; font-size: 26px; color: #333; letter-spacing: 3px; line-height: 1.2; }
.xy-logo .logo-text span { font-size: 12px; color: #999; letter-spacing: 1px; }
.xy-search { flex: 1; display: flex; max-width: 560px; border: 2px solid var(--xy-blue); border-radius: 4px; overflow: hidden; }
.xy-search input { flex: 1; border: 0; outline: none; padding: 0 14px; height: 42px; font-size: 14px; color: #333; }
.xy-search input::placeholder { color: #B9C4D0; }
.xy-search button { width: 96px; border: 0; background: var(--xy-blue); color: #fff; font-size: 16px; letter-spacing: 2px; cursor: pointer; }
.xy-search button:hover { background: var(--xy-deep); }
.xy-hotline { margin-left: auto; text-align: right; font-size: 12px; color: #999; line-height: 1.5; }
.xy-hotline b { display: block; font-size: 22px; color: var(--xy-blue); font-family: Arial, sans-serif; }

/* 搜索联想 */
.xy-suggest { position: absolute; top: 100%; left: 0; right: 96px; background: #fff; border: 1px solid var(--xy-line); border-top: 0; z-index: 99; display: none; box-shadow: 0 6px 16px rgba(30,111,217,.1); }
.xy-suggest a { display: block; padding: 8px 14px; color: var(--xy-text); border-bottom: 1px dashed var(--xy-line); }
.xy-suggest a:hover { background: var(--xy-bg); }
.xy-suggest a em { color: var(--xy-blue); font-style: normal; }

/* ===== 导航（浅蓝底 + 蓝色全部分类块） ===== */
.xy-nav { background: var(--xy-navbg); position: sticky; top: 0; z-index: 50; }
.xy-nav .xy-wrap { display: flex; align-items: stretch; }
.xy-nav a.nav-item { color: #333; padding: 0 30px; line-height: 44px; font-size: 15px; display: block; }
.xy-nav a.nav-item:hover { color: var(--xy-blue); }
.xy-nav a.nav-item.active { background: var(--xy-blue); color: #fff; }
/* 手机端汉堡按钮与折叠菜单：桌面端隐藏，仅 ≤991px 启用（样式见响应式段） */
.xy-burger, .xy-mnav { display: none; }
.xy-allcat { background: var(--xy-blue); color: #fff !important; padding: 0 34px 0 24px !important; line-height: 44px; font-size: 15px; cursor: pointer; position: relative;
  /* 与左侧分类栏等宽（220px），右侧留 16px 间隙 —— 使「首页」起始位置正好对齐下方轮播图左边缘 */
  width: 220px; box-sizing: border-box; margin-right: 16px; text-align: left; flex-shrink: 0; }
.xy-allcat .fa { margin-right: 10px; }
.xy-cat-panel { display: none; position: absolute; top: 44px; left: 0; width: 320px; background: #fff; box-shadow: 0 8px 24px rgba(0,0,0,.12); z-index: 60; }
.xy-allcat:hover .xy-cat-panel { display: block; }
.xy-cat-panel .cat-item { border-bottom: 1px solid var(--xy-line); }
.xy-cat-panel .cat-item > a { display: flex; justify-content: space-between; align-items: center; padding: 13px 16px; color: var(--xy-text); font-weight: 500; }
.xy-cat-panel .cat-item > a:hover { background: var(--xy-bg); color: var(--xy-blue); }
.xy-cat-panel .sub { display: none; background: #FAFCFE; padding: 8px 16px; border-top: 1px dashed var(--xy-line); }
.xy-cat-panel .cat-item:hover .sub { display: block; }
.xy-cat-panel .sub a { display: inline-block; margin: 4px 10px 4px 0; color: #888; font-size: 13px; }
.xy-cat-panel .sub a:hover { color: var(--xy-blue); }

/* ===== 首页 楼层A ===== */
.xy-hero { display: flex; gap: 16px; margin-top: 16px; }
.xy-sidenav { width: 220px; flex-shrink: 0; background: #fff; border: 1px solid var(--xy-line); border-radius: 6px; overflow: visible; display: flex; flex-direction: column; }
.xy-sidenav .s-item { flex: 1; display: flex; border-bottom: 1px solid #F0F3F6; position: relative; }
.xy-sidenav .s-item:last-child { border-bottom: 0; }
.xy-sidenav .s-item > a { flex: 1; display: flex; align-items: center; padding: 10px 14px; color: var(--xy-text); }
.xy-sidenav .s-icon { width: 34px; height: 34px; border-radius: 50%; background: #EAF3FE; color: var(--xy-blue); display: flex; align-items: center; justify-content: center; font-size: 15px; flex-shrink: 0; margin-right: 10px; }
.xy-sidenav .s-icon img { width: 22px; height: 22px; object-fit: contain; display: block; }
.xy-sidenav .s-txt { flex: 1; min-width: 0; }
.xy-sidenav .s-txt b { display: block; font-size: 15px; font-weight: 700; color: #333; }
.xy-sidenav .s-txt small { display: block; font-size: 11px; color: #B0BAC6; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 2px; }
.xy-sidenav .s-item > a:hover .s-txt b { color: var(--xy-blue); }
.xy-sidenav .s-item .arrow { color: #C4CEDA; font-size: 12px; }
/* R32-2 修正：弹出面板高度=被悬停的分类格子高度（与该行上下对齐，不铺满整个分类列） */
.xy-sidenav .s-sub { display: none; position: absolute; left: 100%; top: -1px; height: calc(100% + 2px); min-width: 420px; background: #fff; border: 1px solid var(--xy-line); box-shadow: 0 8px 24px rgba(0,0,0,.1); padding: 14px 18px; z-index: 40; }
.xy-sidenav .s-item:hover .s-sub { display: block; }
.xy-sidenav .s-sub a { display: inline-block; margin: 4px 8px 4px 0; color: #888; }
.xy-sidenav .s-sub a:hover { color: var(--xy-blue); }

.xy-carousel { flex: 1; position: relative; border-radius: 6px; overflow: hidden; height: 335px; background: #EAF3FE; }
.xy-carousel .slide { position: absolute; inset: 0; opacity: 0; transition: opacity .6s; background-size: cover; background-position: center; display: flex; align-items: center; }
.xy-carousel .slide.on { opacity: 1; }
.xy-carousel .slide .cap { padding: 0 56px; }
.xy-carousel .slide .cap .tag { display: inline-block; background: rgba(30,111,217,.1); color: var(--xy-blue); border: 1px solid rgba(30,111,217,.25); font-size: 13px; padding: 3px 16px; border-radius: 20px; margin-bottom: 16px; }
.xy-carousel .slide .cap h2 { font-size: 42px; margin: 0 0 8px; font-weight: 700; color: var(--xy-blue); letter-spacing: 2px; }
.xy-carousel .slide .cap p { font-size: 16px; margin: 0 0 24px; color: #6E86A3; }
.xy-carousel .slide .cap .btn-go { display: inline-block; background: var(--xy-blue); color: #fff; padding: 10px 34px; border-radius: 4px; font-size: 15px; }
.xy-carousel .slide .cap .btn-go:hover { background: var(--xy-deep); color: #fff; }
.xy-carousel .dots { position: absolute; bottom: 12px; left: 0; right: 0; text-align: center; }
.xy-carousel .dots i { display: inline-block; width: 24px; height: 4px; background: rgba(30,111,217,.25); margin: 0 4px; border-radius: 2px; cursor: pointer; }
.xy-carousel .dots i.on { background: var(--xy-blue); }

.xy-usercard { width: 240px; flex-shrink: 0; background: #fff; border: 1px solid var(--xy-line); border-radius: 6px; padding: 22px 18px 18px; }
.xy-usercard .hi { text-align: center; color: #888; font-size: 13px; margin-bottom: 14px; }
.xy-usercard .hi .fa-user-circle { display: block; font-size: 46px; color: #C9D8EA; margin-bottom: 10px; }
.xy-usercard .btn-login { display: block; text-align: center; background: var(--xy-blue); color: #fff; line-height: 38px; border-radius: 4px; font-size: 14px; }
.xy-usercard .btn-login:hover { background: var(--xy-deep); color: #fff; }
.xy-usercard .uname { text-align: center; color: #333; font-size: 15px; font-weight: 600; margin-bottom: 6px; }
.xy-usercard .quick { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 16px; }
.xy-usercard .quick a { text-align: center; border: 1px solid #EEF2F6; border-radius: 6px; padding: 12px 0 9px; color: #555; font-size: 12px; }
.xy-usercard .quick a:hover { border-color: var(--xy-blue); color: var(--xy-blue); }
.xy-usercard .quick .fa { display: block; font-size: 20px; color: var(--xy-blue); margin-bottom: 6px; }

/* ===== 首页 通栏广告（4等宽） ===== */
.xy-ads { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 24px; }
.xy-ads a { display: block; height: 215px; border-radius: 4px; overflow: hidden; position: relative; background: #10233E; }
.xy-ads a img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.xy-ads a:hover img { transform: scale(1.05); }
/* 广告轮播包装层（JS 注入）：桌面端 display:contents 让广告仍按上方 4 列网格排布 */
.xy-ads .adstrack { display: contents; }
.xy-ads .adsdots { display: none; }

/* ===== 首页 资讯+生态 ===== */
.xy-duo { display: flex; gap: 48px; margin-top: 44px; }
.xy-duo .left { flex: 1.15; }
.xy-duo .right { flex: 1; }
.xy-modtitle { display: flex; align-items: center; margin-bottom: 4px; }
.xy-modtitle h3 { font-size: 20px; color: #333; margin: 0 22px 0 0; font-weight: 700; }
.xy-modtitle .tabs { display: flex; align-items: center; gap: 8px; }
.xy-modtitle .tabs a { display: inline-block; padding: 0 16px; line-height: 28px; border-radius: 14px; color: #888; font-size: 13px; background: #F2F5F8; }
.xy-modtitle .tabs a.on { background: var(--xy-blue); color: #fff; }
.xy-modtitle .more { color: #999; font-size: 13px; margin-left: auto; }
.xy-modtitle .more:hover { color: var(--xy-blue); }
.xy-newslist { margin: 0; padding: 0; }
.xy-newslist li { list-style: none; display: flex; align-items: center; padding: 12px 0; }
.xy-newslist li::before { content: ""; width: 4px; height: 4px; border-radius: 50%; background: #C9D4E0; margin-right: 10px; flex-shrink: 0; }
.xy-newslist li a { flex: 1; color: #555; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 14px; }
.xy-newslist li a:hover { color: var(--xy-blue); }
.xy-newslist li time { color: #AAB4BF; font-size: 13px; margin-left: 24px; font-family: Arial, sans-serif; }
.xy-ecolist { margin: 0; padding: 0; }
.xy-ecolist li { list-style: none; display: flex; align-items: center; padding: 13px 0; border-bottom: 1px solid #F3F6F9; }
.xy-ecolist li a { flex: 1; color: #555; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.xy-ecolist li a:hover { color: var(--xy-blue); }
.xy-ecolist li .fa { color: #C4CEDA; font-size: 13px; margin-left: 14px; }

/* ===== 首页 需求横幅（浅蓝渐变） ===== */
.xy-demandbar { margin-top: 24px; border-radius: 6px; background: linear-gradient(90deg, #4D93EC 0%, #7CB8F2 60%, #A8D2F7 100%); color: #fff; padding: 44px 56px; display: flex; align-items: center; justify-content: space-between; position: relative; overflow: hidden; }
.xy-demandbar::after { content: ""; position: absolute; right: -50px; top: -60px; width: 280px; height: 280px; border: 34px solid rgba(255,255,255,.1); border-radius: 50%; }
.xy-demandbar h3 { font-size: 28px; margin: 0 0 8px; font-weight: 700; }
.xy-demandbar p { margin: 0; opacity: .9; font-size: 14px; }
.xy-demandbar .btn-view { background: #fff; color: var(--xy-blue); padding: 11px 38px; border-radius: 4px; font-size: 15px; font-weight: 600; position: relative; z-index: 1; }

/* ===== 页脚（白底） ===== */
.xy-footer { margin-top: 56px; background: #fff; border-top: 1px solid #ECEFF3; color: #666; padding: 44px 0 0; font-size: 13px; }
.xy-footer .cols { display: flex; justify-content: space-between; padding-bottom: 38px; }
.xy-footer .f-brand { width: 300px; flex-shrink: 0; margin-right: 40px; }
.xy-footer .f-brand .brand-line { display: flex; align-items: center; margin-bottom: 16px; }
.xy-footer .f-brand img { height: 40px; }
.xy-footer .f-brand .f-name { margin-left: 12px; font-size: 24px; font-weight: 700; color: #1B2A3D; letter-spacing: 2px; line-height: 1; }
.xy-footer .f-brand .desc { line-height: 1.9; color: #999; }
.xy-footer .f-brand .tel { margin-top: 20px; color: #999; }
.xy-footer .f-brand .tel b { display: block; color: #333; font-size: 26px; font-family: Arial, sans-serif; letter-spacing: 1px; }
.xy-footer h4 { color: #333; font-size: 16px; margin: 4px 0 20px; font-weight: 700; }
.xy-footer .f-col { flex: 1; max-width: 220px; }
.xy-footer .f-col a { display: block; color: #777; line-height: 2.6; }
.xy-footer .f-col a:hover { color: var(--xy-blue); }
.xy-footer .qrs { display: flex; gap: 14px; }
.xy-footer .qrs.single { justify-content: flex-start; }
.xy-footer .qrs .q { width: 96px; text-align: center; color: #999; font-size: 12px; }
.xy-footer .qrs .q img { width: 96px; height: 96px; border-radius: 4px; border: 1px solid #ECEFF3; margin-bottom: 6px; background: #fff; object-fit: cover; }
.xy-footer .copyright { border-top: 1px solid #ECEFF3; text-align: center; padding: 18px 0; font-size: 12px; color: #A5ADB6; }
.xy-footer .copyright a { color: var(--xy-blue); }
.xy-footer .copyright a:hover { text-decoration: underline; }
/* R43：公安备案徽标（陕公网安备前的小图标） */
.xy-footer .copyright .xy-beian-ico { height: 18px; width: auto; vertical-align: -4px; margin-right: 4px; }

/* ===== 全局悬浮客服 ===== */
.xy-float { position: fixed; right: 10px; bottom: 120px; width: 74px; z-index: 90; }
.xy-float .fitem { position: relative; background: #fff; border: 1px solid #E8EDF2; border-radius: 6px; text-align: center; padding: 8px 4px; margin-bottom: 8px; cursor: pointer; box-shadow: 0 4px 12px rgba(30,111,217,.06); }
.xy-float .fitem .fa { font-size: 20px; color: var(--xy-blue); display: block; margin-bottom: 3px; }
.xy-float .fitem span { font-size: 11px; color: #999; }
.xy-float .fitem:hover { border-color: var(--xy-blue); }
.xy-float .qr-pop { display: none; position: absolute; right: 82px; bottom: 0; width: 150px; background: #fff; border: 1px solid var(--xy-line); border-radius: 6px; padding: 10px; box-shadow: 0 8px 20px rgba(0,0,0,.12); }
.xy-float .fitem:hover .qr-pop { display: block; }
.xy-float .qr-pop img { width: 130px; height: 130px; }
.xy-float .qr-pop p { margin: 6px 0 0; font-size: 12px; color: #999; }
.xy-backtop { display: none; }
.xy-backtop.show { display: block; }

/* ===== 二级页通用（跟随首页视觉体系，自适应） ===== */
.xy-page { padding: 0 0 40px; }
.xy-crumb { color: #999; font-size: 13px; padding: 14px 0; }
.xy-crumb a { color: #999; }
.xy-crumb a:hover { color: var(--xy-blue); }
.xy-panel { background: #fff; border: 1px solid var(--xy-line); border-radius: 6px; padding: 24px; }
.xy-pagetitle { font-size: 22px; color: #333; border-left: 4px solid var(--xy-blue); padding-left: 12px; margin: 0 0 18px; font-weight: 700; }

/* 产品列表 */
.xy-plist-layout { display: flex; gap: 20px; }
.xy-filter { width: 250px; flex-shrink: 0; }
.xy-filter .fgroup { border-bottom: 1px dashed var(--xy-line); padding: 12px 0; }
.xy-filter .fgroup b { display: block; color: #333; font-size: 14px; margin-bottom: 8px; }
.xy-filter .fgroup a.opt { display: inline-block; margin: 0 8px 8px 0; padding: 3px 12px; border: 1px solid var(--xy-line); border-radius: 3px; color: #888; font-size: 12px; }
.xy-filter .fgroup a.opt.on, .xy-filter .fgroup a.opt:hover { background: var(--xy-blue); border-color: var(--xy-blue); color: #fff; }
.xy-plist { flex: 1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; align-content: start; }
.xy-pcard { border: 1px solid var(--xy-line); border-radius: 6px; overflow: hidden; transition: all .25s; background: #fff; }
.xy-pcard:hover { box-shadow: 0 10px 24px rgba(30,111,217,.12); transform: translateY(-3px); }
.xy-pcard .pic { height: 170px; background: var(--xy-bg); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.xy-pcard .pic img { width: 100%; height: 100%; object-fit: cover; }
.xy-pcard .pic .noimg { color: #C9D8E6; font-size: 40px; }
.xy-pcard .info { padding: 12px 14px 14px; }
.xy-pcard .info .name { color: #333; font-size: 15px; font-weight: 600; display: block; margin-bottom: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.xy-pcard .info .model { color: #999; font-size: 12px; margin-bottom: 8px; }
.xy-pcard .info .tags .tg { display: inline-block; background: #E8F1FC; color: var(--xy-blue); font-size: 11px; border-radius: 3px; padding: 2px 8px; margin-right: 6px; }
.xy-pcard .info .tags .tg.cy { background: #E3F6F9; color: #0E96AB; }
.xy-pcard .info .tags .tg.dg { background: #FDF3E3; color: #B26A00; }

/* 产品详情 */
.xy-detail-top { display: flex; gap: 30px; background: #fff; border: 1px solid var(--xy-line); border-radius: 6px; padding: 25px; }
.xy-gallery { width: 420px; flex-shrink: 0; }
.xy-gallery .main { height: 330px; border: 1px solid var(--xy-line); border-radius: 6px; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.xy-gallery .main img { max-height: 100%; object-fit: contain; }
.xy-gallery .main .noimg { font-size: 70px; color: #C9D8E6; }
.xy-gallery .thumbs { display: flex; gap: 10px; margin-top: 10px; }
.xy-gallery .thumbs img { width: 76px; height: 76px; object-fit: cover; border: 2px solid transparent; border-radius: 4px; cursor: pointer; }
.xy-gallery .thumbs img.on { border-color: var(--xy-blue); }
.xy-dinfo { flex: 1; }
.xy-dinfo h1 { font-size: 24px; color: #333; margin: 0 0 8px; }
.xy-dinfo .sub { color: #999; font-size: 13px; margin-bottom: 14px; }
.xy-dinfo .rows { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 30px; }
.xy-dinfo .rows .r { font-size: 16px; color: #333; border-bottom: 1px dashed var(--xy-line); padding: 8px 0; }
.xy-dinfo .rows .r b { color: #333; font-weight: 600; }
.xy-dinfo .domestic { background: #E3F6F9; color: #0E96AB; padding: 3px 10px; border-radius: 3px; font-weight: 600; }
.xy-dinfo .btns { margin-top: 18px; display: flex; gap: 12px; }
.xy-btn { display: inline-block; padding: 10px 32px; border-radius: 4px; font-size: 14px; border: 1px solid var(--xy-blue); }
.xy-btn.primary { background: var(--xy-blue); color: #fff; }
.xy-btn.primary:hover { background: var(--xy-deep); color: #fff; }
.xy-btn.plain { color: var(--xy-blue); background: #fff; }
.xy-btn.plain:hover { background: var(--xy-bg); }

.xy-dtabs { margin-top: 20px; background: #fff; border: 1px solid var(--xy-line); border-radius: 6px; }
.xy-dtabs .tabnav { display: flex; border-bottom: 1px solid var(--xy-line); }
.xy-dtabs .tabnav a { padding: 14px 26px; color: #333; font-size: 16px; font-weight: 700; position: relative; }
.xy-dtabs .tabnav a.on { color: var(--xy-blue); font-weight: 600; }
.xy-dtabs .tabnav a.on::after { content: ""; position: absolute; left: 26px; right: 26px; bottom: -1px; height: 3px; background: var(--xy-blue); }
.xy-dtabs .tabnav a .lock { font-size: 11px; color: #B26A00; background: #FDF3E3; padding: 1px 6px; border-radius: 3px; margin-left: 5px; }
.xy-dtabs .tabpane { padding: 22px 26px; display: none; min-height: 120px; line-height: 1.9; color: #444; font-size: 16px; }
.xy-dtabs .tabpane.on { display: block; }
.xy-dtabs .tabpane.locked { position: relative; user-select: none; filter: blur(6px); pointer-events: none; }
.xy-dtabs .lockmask { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; filter: none; pointer-events: auto; }
.xy-dtabs .lockmask .fa-lock { font-size: 34px; color: var(--xy-blue); margin-bottom: 10px; }
.xy-dtabs .lockmask p { color: #999; margin: 0 0 14px; }

/* 资讯列表/详情 */
.xy-news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.xy-ncard { border: 1px solid var(--xy-line); border-radius: 6px; overflow: hidden; background: #fff; transition: all .25s; }
.xy-ncard:hover { box-shadow: 0 10px 24px rgba(30,111,217,.12); }
.xy-ncard .pic { height: 160px; background: var(--xy-bg); overflow: hidden; display: flex; align-items: center; justify-content: center; }
.xy-ncard .pic img { width: 100%; height: 100%; object-fit: cover; }
.xy-ncard .pic .noimg { font-size: 40px; color: #C9D8E6; }
.xy-ncard .info { padding: 14px 16px; }
.xy-ncard .info .cate { display: inline-block; font-size: 11px; background: #E8F1FC; color: var(--xy-blue); border-radius: 3px; padding: 2px 8px; margin-bottom: 8px; }
.xy-ncard .info .t { display: block; color: #333; font-weight: 600; font-size: 15px; margin-bottom: 8px; line-height: 1.5; }
.xy-ncard .info time { color: #AAB4BF; font-size: 12px; }
.xy-article { background: #fff; border: 1px solid var(--xy-line); border-radius: 6px; padding: 30px 40px; }
.xy-article h1 { font-size: 24px; color: #333; margin: 0 0 12px; }
.xy-article .meta { color: #AAB4BF; font-size: 13px; padding-bottom: 16px; border-bottom: 1px solid var(--xy-line); margin-bottom: 20px; }
.xy-article .content { line-height: 2; font-size: 15px; color: #444; }
.xy-article .content img { max-width: 100%; }

/* 生态建设 */
.xy-vgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.xy-vcard { border: 1px solid var(--xy-line); border-radius: 6px; overflow: hidden; background: #fff; }
.xy-vcard .pic { position: relative; height: 190px; background: #10233E; display: flex; align-items: center; justify-content: center; }
.xy-vcard .pic img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .65; }
.xy-vcard .pic .fa-play { font-size: 40px; color: #fff; background: rgba(30,111,217,.85); width: 68px; height: 68px; border-radius: 50%; display: flex; align-items: center; justify-content: center; padding-left: 6px; }
.xy-vcard .pic:hover .fa-play { background: var(--xy-blue); }
.xy-vcard .info { padding: 14px 16px; }
.xy-vcard .info .t { color: #333; font-weight: 600; }
.xy-vcard .info .d { color: #999; font-size: 12px; margin-top: 6px; }
.xy-player-box { background: #10233E; border-radius: 6px; overflow: hidden; margin-bottom: 24px; }
.xy-player-box video { width: 100%; max-height: 560px; display: block; background: #000; }

/* 需求合作 */
.xy-dlist .dcard { display: flex; align-items: center; border: 1px solid var(--xy-line); border-radius: 6px; background: #fff; padding: 18px 22px; margin-bottom: 14px; }
.xy-dlist .dcard .type { width: 84px; text-align: center; flex-shrink: 0; }
.xy-dlist .dcard .type span { display: inline-block; padding: 4px 12px; border-radius: 3px; font-size: 12px; color: #fff; background: var(--xy-blue); }
.xy-dlist .dcard .type.t2 span { background: #0E96AB; }
.xy-dlist .dcard .type.t3 span { background: #B26A00; }
.xy-dlist .dcard .body { flex: 1; margin: 0 20px; }
.xy-dlist .dcard .body .t { color: #333; font-size: 16px; font-weight: 600; }
.xy-dlist .dcard .body .t:hover { color: var(--xy-blue); }
.xy-dlist .dcard .body .d { color: #999; font-size: 13px; margin-top: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.xy-dlist .dcard .meta { color: #AAB4BF; font-size: 12px; text-align: right; flex-shrink: 0; }

/* 表单页 */
.xy-form { max-width: 720px; margin: 0 auto; }
.xy-form .frow { display: flex; margin-bottom: 18px; }
.xy-form .frow > label { width: 140px; text-align: right; padding-right: 14px; line-height: 40px; color: #333; flex-shrink: 0; white-space: nowrap; }
.xy-form .frow > label i { color: #E24B4A; margin-right: 2px; font-style: normal; }
.xy-form .frow .ctrl { flex: 1; }

.xy-form input[type=text], .xy-form input[type=email], .xy-form input[type=url], .xy-form input[type=number], .xy-form input[type=password], .xy-form input[type=tel], .xy-form select, .xy-form textarea { width: 100%; border: 1px solid #D6E2EC; border-radius: 4px; height: 40px; padding: 0 12px; outline: none; font-size: 14px; }
.xy-form textarea { height: auto; padding: 10px 12px; }
.xy-form input:focus, .xy-form textarea:focus, .xy-form select:focus { border-color: var(--xy-blue); }
.xy-form .tip { color: #999; font-size: 12px; margin-top: 5px; }
.xy-agree { background: var(--xy-bg); border-radius: 6px; padding: 16px; max-height: 220px; overflow-y: auto; font-size: 13px; color: #888; line-height: 1.9; }
.xy-agree-check { display: inline-flex; align-items: center; margin: 4px 0 16px; color: #333; cursor: pointer; white-space: nowrap; }
.xy-agree-check input { margin: 0 8px 0 0; width: 16px; height: 16px; flex-shrink: 0; cursor: pointer; }
.xy-agree-check span { line-height: 24px; }
.xy-agree-check a { color: var(--xy-blue); }

/* ===== 通用上传控件（图片拖拽区 / 附件列表） ===== */
.xy-up-drop { border: 2px dashed #C6D8EA; background: #F8FBFE; border-radius: 8px; padding: 20px 16px; text-align: center; cursor: pointer; transition: .18s; }
.xy-up-drop:hover, .xy-up-drop.on { border-color: var(--xy-blue); background: #F0F7FF; }
.xy-up-drop i { display: block; font-size: 26px; color: #8FB4DA; margin-bottom: 8px; }
.xy-up-drop b { display: block; color: #33556F; font-size: 14px; font-weight: 600; margin-bottom: 4px; }
.xy-up-drop span { color: #9AAEBD; font-size: 12px; }
.xy-up-grid { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.xy-up-thumb { position: relative; width: 92px; height: 92px; border-radius: 6px; overflow: hidden; border: 1px solid #E1EBF4; background: #fff; }
.xy-up-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.xy-up-thumb .del { position: absolute; top: 2px; right: 2px; width: 18px; height: 18px; line-height: 16px; text-align: center; border-radius: 50%; background: rgba(163,45,45,.92); color: #fff; font-size: 12px; text-decoration: none; }
.xy-up-row { display: flex; align-items: center; gap: 12px; margin-top: 10px; flex-wrap: wrap; }
.xy-up-btn { display: inline-block; padding: 8px 18px; border: 1px solid var(--xy-blue); color: var(--xy-blue); background: #fff; border-radius: 6px; font-size: 13px; text-decoration: none; cursor: pointer; }
.xy-up-btn:hover { background: var(--xy-blue); color: #fff; }
.xy-up-note { color: #9AAEBD; font-size: 12px; }
.xy-up-list { list-style: none; margin: 10px 0 0; padding: 0; }
.xy-up-list li { display: flex; align-items: center; gap: 8px; padding: 7px 12px; border: 1px solid #E7EFF6; border-radius: 6px; margin-bottom: 6px; font-size: 13px; background: #FAFCFE; }
.xy-up-list li i { color: var(--xy-blue); }
.xy-up-list li a { color: #33556F; text-decoration: none; }
.xy-up-list li a:hover { color: var(--xy-blue); }
.xy-up-list li .rm { margin-left: auto; color: #A32D2D; font-size: 15px; }

/* ===== 资料下载（纯列表形式） ===== */
.xy-dl-bar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; padding: 12px 16px; background: #F8FBFE; border: 1px solid var(--xy-line); border-radius: 6px; font-size: 13px; }
.xy-dl-bar .lb { color: #7C93A8; }
.xy-dl-bar a { display: inline-block; padding: 3px 12px; border: 1px solid var(--xy-line); border-radius: 3px; color: #6B7F92; background: #fff; }
.xy-dl-bar a.on, .xy-dl-bar a:hover { background: var(--xy-blue); border-color: var(--xy-blue); color: #fff; }
.xy-dl-list { list-style: none; margin: 0; padding: 0; }
.xy-dl-list li { display: flex; gap: 16px; align-items: center; padding: 16px 18px; border: 1px solid var(--xy-line); border-radius: 6px; margin-bottom: 10px; background: #fff; transition: .16s; }
.xy-dl-list li:hover { border-color: #BBD6F2; box-shadow: 0 2px 10px rgba(30,111,217,.07); }
.xy-dl-list .ic { width: 46px; height: 46px; flex-shrink: 0; border-radius: 8px; background: #EAF3FD; color: var(--xy-blue); display: flex; align-items: center; justify-content: center; font-size: 20px; }
.xy-dl-list .mid { flex: 1; min-width: 0; }
.xy-dl-list .t { font-size: 15px; color: #2C4256; font-weight: 600; margin-bottom: 4px; }
.xy-dl-list .t em { font-style: normal; margin-left: 8px; font-size: 12px; font-weight: 400; color: var(--xy-blue); background: #EAF3FD; padding: 1px 8px; border-radius: 3px; }
.xy-dl-list .d { color: #7C93A8; font-size: 13px; line-height: 1.7; margin-bottom: 4px; }
.xy-dl-list .m { color: #A8B8C6; font-size: 12px; }
.xy-dl-list .act { flex-shrink: 0; text-align: right; }
.xy-dl-list .act .xy-btn { margin-left: 6px; }

/* 卡片式上传（营业执照等资质文件） */
.xy-upload { cursor: pointer; }
.xy-upload .up-empty { border: 1px dashed #B9CFE8; border-radius: 8px; background: #F8FBFF; text-align: center; padding: 28px 16px; transition: all .2s; }
.xy-upload .up-empty:hover { border-color: var(--xy-blue); background: #EFF6FF; }
.xy-upload .up-empty .fa-camera { font-size: 30px; color: var(--xy-blue); display: block; margin-bottom: 8px; }
.xy-upload .up-empty b { display: block; color: var(--xy-blue); font-size: 14px; margin-bottom: 4px; }
.xy-upload .up-empty span { display: block; color: #AAB4BF; font-size: 12px; }
.xy-upload .up-preview { position: relative; border: 1px solid var(--xy-line); border-radius: 8px; overflow: hidden; background: #fff; text-align: center; }
.xy-upload .up-preview img { display: block; width: 100%; max-height: 260px; object-fit: contain; background: #F8FBFF; }
.xy-upload .up-preview .up-ops { padding: 8px 0; background: #F8FBFF; border-top: 1px solid var(--xy-line); }
.xy-upload .up-preview .up-ops a { color: var(--xy-blue); font-size: 13px; }

/* 模态 */
.xy-modal { display: none; position: fixed; inset: 0; background: rgba(15,35,60,.5); z-index: 200; align-items: center; justify-content: center; }
.xy-modal .box { background: #fff; border-radius: 8px; width: 620px; max-width: 92vw; max-height: 84vh; display: flex; flex-direction: column; }
.xy-modal .box .hd { padding: 16px 22px; border-bottom: 1px solid var(--xy-line); font-size: 16px; font-weight: 600; color: #333; display: flex; justify-content: space-between; }
.xy-modal .box .hd .x { cursor: pointer; color: #AAB4BF; }
.xy-modal .box .bd { padding: 18px 22px; overflow-y: auto; font-size: 13px; color: #555; line-height: 1.9; }
.xy-modal .box .ft { padding: 14px 22px; border-top: 1px solid var(--xy-line); text-align: center; }

/* 商户中心 */
.xy-m-layout { display: flex; gap: 20px; }
.xy-m-side { width: 220px; flex-shrink: 0; background: #fff; border: 1px solid var(--xy-line); border-radius: 6px; overflow: hidden; align-self: flex-start; }
.xy-m-side a { display: block; padding: 13px 20px; color: #444; border-bottom: 1px solid #F0F3F6; }
.xy-m-side a.on, .xy-m-side a:hover { background: var(--xy-bg); color: var(--xy-blue); }
.xy-m-side a .fa { width: 20px; color: var(--xy-blue); }
.xy-m-main { flex: 1; }
.xy-status-tags .st { display: inline-block; padding: 2px 10px; border-radius: 3px; font-size: 12px; }
.xy-status-tags .st.ok { background: #E7F6EC; color: #1D9E75; }
.xy-status-tags .st.no { background: #FCEBEB; color: #A32D2D; }
.xy-status-tags .st.wait { background: #FDF3E3; color: #B26A00; }
.xy-table { width: 100%; border-collapse: collapse; background: #fff; }
.xy-table th, .xy-table td { border-bottom: 1px solid var(--xy-line); padding: 12px 14px; text-align: left; font-size: 13px; color: #444; }
.xy-table th { background: var(--xy-bg); color: #333; font-weight: 500; }
.xy-table tr:hover td { background: #FAFCFE; }

/* 提示 */
.xy-alert { padding: 12px 16px; border-radius: 6px; font-size: 13px; margin-bottom: 16px; }
.xy-alert.info { background: #E8F1FC; color: var(--xy-blue); }
.xy-alert.warn { background: #FDF3E3; color: #B26A00; }
.xy-alert.err { background: #FCEBEB; color: #A32D2D; }

/* 分页 */
.xy-page-nav { text-align: center; padding: 24px 0 0; }
.xy-page-nav ul { display: inline-flex; gap: 8px; list-style: none; padding: 0; margin: 0; }
.xy-page-nav li a, .xy-page-nav li span { display: inline-block; min-width: 36px; line-height: 34px; padding: 0 8px; border: 1px solid var(--xy-line); border-radius: 4px; color: #888; background: #fff; }
.xy-page-nav li.active span { background: var(--xy-blue); border-color: var(--xy-blue); color: #fff; }

/* ===== 响应式（手机 H5 适配）v3.5 =====
   要点：① 图片容器由固定矮高度改为 aspect-ratio，按比例完整展示，不再被裁成一条；
        ② 首层在手机上按「轮播 → 分类(2列) → 用户卡」重排；
        ③ 头部/导航/页脚全面紧凑化。 */
/* ===== 第 21 轮：首页/头部强调样式 ===== */
/* R22-1 的居中标语样式已废弃（R30-4 改为左对齐单行标语，见文件末尾第 30 轮规则） */
.xy-topbar a { font-size: 14px; color: #FF6A00; }
.xy-topbar a:hover { color: #E64A00; }
.xy-logo .logo-text span { font-size: 15px; color: #16477C; font-weight: 700; letter-spacing: 2px; }
.xy-sidenav .s-txt b { font-size: 17px; color: #16477C; }
/* ===== 第 21 轮：产品详情页 ===== */
.xy-dinfo { display: flex; flex-direction: column; }
.xy-dinfo h1 { font-size: 26px; display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.xy-dinfo .rows { flex: 1; align-content: space-evenly; }
.xy-dinfo .rows .r { font-size: 15px; }
.xy-dinfo .rows .r b { font-size: 15px; font-weight: 600; }
.xy-dinfo .domestic { font-size: 14px; }
.xy-dinfo .btns { margin-top: 12px; }
.xy-dinfo .btns .xy-btn { font-size: 15px; padding: 10px 22px; }
.xy-pstatus { display: inline-block; font-size: 13px; font-weight: 700; padding: 3px 12px; border-radius: 4px; }
.xy-pstatus.on { background: #E8F7EE; color: #1a9c5b; border: 1px solid #BFE8CF; }
.xy-pstatus.pre { background: #FFF6E8; color: #B26A00; border: 1px solid #F0DCB8; }
.xy-pstatus.off { background: #FDECEC; color: #C0392B; border: 1px solid #F3C1BC; }
.xy-ptags { display: inline-flex; gap: 6px; margin-left: 10px; vertical-align: middle; }
.xy-ptag { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 700; padding: 2px 10px; border-radius: 3px; color: #fff; text-shadow: 0 1px 1px rgba(0,0,0,.25); }
.xy-ptag.t-yan { background: linear-gradient(135deg,#D9B24A,#8A6A14); }
.xy-ptag.t-te  { background: linear-gradient(135deg,#4E8C48,#1F4D1C); }
.xy-ptag.t-guo { background: linear-gradient(135deg,#C08A2D,#6E4F08); }
/* ===== 第 21 轮：产品列表横向行式布局 ===== */
.xy-plist-rows { display: block; grid-template-columns: none; width: 100%; }
/* R22-3：列表主列撑满剩余宽度，右边缘与顶部「退出」等容器右边缘对齐 */
.xy-plist-main { flex: 1 1 0; min-width: 0; }
.xy-pgroup-hd { margin: 16px 0 8px; padding: 8px 14px; background: #FFF8EC; border: 1px solid #F0E2C8; border-radius: 4px; color: #8A6A14; font-size: 14px; font-weight: 700; }
.xy-prow { display: flex; align-items: center; gap: 18px; background: #fff; border: 1px solid var(--xy-line); border-radius: 6px; padding: 14px 18px; margin-bottom: 10px; transition: all .2s; }
.xy-prow:hover { box-shadow: 0 8px 20px rgba(30,111,217,.10); }
.xy-prow.ingroup { border-left: 3px solid var(--xy-blue); }
.xy-prow .pic { flex: 0 0 110px; height: 84px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--xy-line); border-radius: 4px; overflow: hidden; background: #FAFCFE; }
.xy-prow .pic img { max-width: 100%; max-height: 100%; object-fit: contain; }
.xy-prow .pic .noimg { color: #C9D8E6; font-size: 34px; }
.xy-prow .pinfo { flex: 1; min-width: 0; }
.xy-prow .pinfo .model { font-size: 17px; font-weight: 700; color: #16477C; display: inline-block; margin-bottom: 4px; }
.xy-prow .pinfo .name { font-size: 13px; color: #666; margin-bottom: 8px; }
.xy-prow .pinfo .tags .tg { display: inline-block; background: #E8F1FC; color: var(--xy-blue); font-size: 11px; border-radius: 3px; padding: 2px 8px; margin-right: 6px; }
.xy-prow .pinfo .tags .tg.cy { background: #E3F6F9; color: #0E96AB; }
.xy-prow .pinfo .tags .tg.dg { background: #FDF3E3; color: #B26A00; }
.xy-prow .pops { flex: 0 0 auto; }
/* ===== 第 21 轮：优质代理商徽标 ===== */
.xy-quality-badge { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 700; color: #7A5C10; background: linear-gradient(135deg,#F9ECB8,#E8C565); border: 1px solid #D9B24A; padding: 3px 12px; border-radius: 12px 3px 12px 3px; margin-left: 10px; vertical-align: middle; box-shadow: 0 1px 3px rgba(138,106,20,.25); }
/* ===== 第 22 轮：上架表单「平台标签说明」行式对齐排版 ===== */
.xy-tag-guide { border: 1px dashed var(--xy-line); border-radius: 6px; padding: 6px 16px; background: #FBFCFE; }
.xy-tag-guide .tg-row { display: flex; align-items: flex-start; gap: 16px; padding: 12px 0; }
.xy-tag-guide .tg-row + .tg-row { border-top: 1px dashed #EDF2F7; }
.xy-tag-guide .tg-row .xy-ptag { flex: 0 0 108px; justify-content: center; padding: 5px 10px; font-size: 12px; }
.xy-tag-guide .tg-row .tg-desc { flex: 1; min-width: 0; font-size: 13px; color: #555; line-height: 1.9; }
@media (max-width: 991px) {
  .xy-wrap { width: 100%; }
  .xy-wrap-fluid { width: 100%; padding: 0 12px; }
  .xy-topbar .welcome { display: none; }
  .xy-topbar { line-height: 32px; }

  /* 头部更紧凑 */
  .xy-header { padding: 14px 0 12px; }
  .xy-header .xy-wrap { flex-wrap: wrap; gap: 10px; }
  .xy-logo { margin-right: 12px; }
  .xy-logo img { height: 38px; }
  .xy-logo .logo-text b { font-size: 20px; letter-spacing: 1px; }
  .xy-logo .logo-text span { font-size: 10px; }
  .xy-search { order: 3; max-width: 100%; width: 100%; }
  .xy-search button { width: 78px; letter-spacing: 0; }
  .xy-hotline { display: none; }

  /* 导航：右上角汉堡按钮，点击展开折叠菜单（全部分类手风琴 + 一级导航） */
  .xy-nav .xy-wrap { display: flex; align-items: center; justify-content: flex-end; min-height: 44px; }
  .xy-nav a.nav-item { display: none; }
  .xy-allcat { display: none; }
  .xy-burger { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 4px; width: 48px; height: 44px; background: none; border: 0; padding: 0; cursor: pointer; }
  .xy-burger span { display: block; width: 22px; height: 2px; border-radius: 1px; background: #333; transition: transform .2s, opacity .2s; }
  .xy-burger.open span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .xy-burger.open span:nth-child(2) { opacity: 0; }
  .xy-burger.open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .xy-mnav { display: block; position: absolute; top: 100%; left: 0; right: 0; background: #fff; border-top: 1px solid #E6EBF2; box-shadow: 0 14px 26px rgba(20,40,80,.16); max-height: 0; overflow: hidden; transition: max-height .25s ease; z-index: 60; }
  .xy-mnav.open { max-height: 74vh; overflow-y: auto; -webkit-overflow-scrolling: touch; }
  .xy-mnav .m-cap { padding: 12px 16px 4px; font-size: 12px; color: #8A97A8; }
  .xy-mnav .m-cat { border-bottom: 1px solid #F0F3F6; }
  .xy-mnav .m-cat-hd { display: flex; align-items: center; }
  .xy-mnav .m-cat-hd a { flex: 1; padding: 13px 16px; font-size: 15px; font-weight: 500; color: #333; }
  .xy-mnav .m-cat .tg { padding: 10px 18px; color: #8A97A8; cursor: pointer; }
  .xy-mnav .m-cat .tg .fa { transition: transform .2s; }
  .xy-mnav .m-cat.open .tg .fa { transform: rotate(180deg); }
  .xy-mnav .m-sub { display: none; padding: 0 16px 12px; }
  .xy-mnav .m-cat.open .m-sub { display: block; }
  .xy-mnav .m-sub a { display: inline-block; margin: 4px 8px 4px 0; padding: 5px 12px; background: #F5F8FC; border-radius: 14px; color: #5A6B80; font-size: 13px; }
  .xy-mnav .m-links { border-top: 6px solid #F5F8FC; padding: 2px 0 8px; }
  .xy-mnav .m-links a { display: block; padding: 12px 16px; font-size: 15px; color: #333; border-bottom: 1px solid #F7F9FC; }
  .xy-mnav .m-links a:last-child { border-bottom: 0; }
  .xy-mnav .m-links a.active { color: var(--xy-blue); font-weight: 700; }

  /* 首层重排：轮播提前，一级分类折叠为 2 列，会员卡随后 */
  .xy-hero { flex-direction: column; margin-top: 12px; }
  .xy-carousel { order: 1; height: auto; aspect-ratio: 16 / 9; }
  .xy-carousel .slide .cap { padding: 0 20px; }
  .xy-carousel .slide .cap h2 { font-size: 22px; }
  .xy-carousel .slide .cap p { font-size: 13px; margin-bottom: 14px; }
  /* 全部分类：2×2 宫格卡片（图标居上、名称居下），整宽不再挤在半边 */
  .xy-sidenav { order: 2; width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; background: transparent; border: 0; border-radius: 0; }
  .xy-sidenav .s-item { display: block; border: 1px solid #E6EBF2; border-radius: 10px; background: #fff; overflow: hidden; }
  .xy-sidenav .s-item > a { display: flex; flex-direction: column; align-items: center; gap: 9px; padding: 18px 8px 15px; }
  .xy-sidenav .s-icon { width: 46px; height: 46px; margin: 0; font-size: 20px; }
  .xy-sidenav .s-icon img { width: 28px; height: 28px; }
  .xy-sidenav .s-txt { text-align: center; }
  .xy-sidenav .s-txt b { font-size: 14px; white-space: nowrap; }
  .xy-sidenav .s-txt small { display: none; }
  .xy-sidenav .s-item .arrow { display: none; }
  .xy-sidenav .s-sub { display: none !important; }
  .xy-usercard { order: 3; width: 100%; }

  /* 图片按比例完整展示（核心修复：不再固定矮高度裁切） */
  /* 广告位：banner 式横向滑动轮播（一次一张，自动播放 + 圆点，支持手势滑动） */
  .xy-ads { display: block; margin-top: 16px; }
  .xy-ads .adstrack { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; border-radius: 8px; }
  .xy-ads .adstrack::-webkit-scrollbar { display: none; }
  .xy-ads .adstrack a { flex: 0 0 100%; scroll-snap-align: center; scroll-snap-stop: always; height: auto; aspect-ratio: 16 / 9; }
  .xy-ads .adsdots { display: flex; justify-content: center; align-items: center; gap: 7px; padding-top: 10px; }
  .xy-ads .adsdots i { width: 8px; height: 8px; border-radius: 4px; background: #C9D6E8; cursor: pointer; transition: all .2s; }
  .xy-ads .adsdots i.on { width: 18px; background: var(--xy-blue); }
  .xy-duo { flex-direction: column; gap: 24px; margin-top: 28px; }
  .xy-demandbar { flex-direction: column; gap: 16px; text-align: center; padding: 26px 18px; }
  .xy-demandbar h3 { font-size: 20px; }
  .xy-demandbar::after { display: none; }

  /* 页脚：品牌块整行，栏目两列 */
  .xy-footer { padding-top: 32px; margin-top: 36px; }
  .xy-footer .cols { flex-wrap: wrap; gap: 0 20px; padding-bottom: 22px; }
  .xy-footer .f-brand { width: 100%; margin-right: 0; }
  .xy-footer .f-col { flex: 1 1 40%; max-width: none; }

  /* 内页 */
  .xy-plist-layout { flex-direction: column; }
  .xy-filter { width: 100%; }
  .xy-plist { grid-template-columns: 1fr 1fr; gap: 12px; }
  .xy-pcard .pic { height: auto; aspect-ratio: 4 / 3; }
  .xy-news-grid, .xy-vgrid { grid-template-columns: 1fr 1fr; gap: 12px; }
  .xy-ncard .pic { height: auto; aspect-ratio: 4 / 3; }
  .xy-vcard .pic { height: auto; aspect-ratio: 16 / 10; }
  .xy-detail-top { flex-direction: column; padding: 16px; gap: 16px; }
  .xy-gallery { width: 100%; }
  .xy-gallery .main { height: auto; aspect-ratio: 4 / 3; }
  .xy-dinfo .rows { grid-template-columns: 1fr; }
  .xy-dtabs .tabnav { overflow-x: auto; }
  .xy-dtabs .tabnav a { padding: 12px 16px; white-space: nowrap; }
  .xy-dtabs .tabpane { padding: 16px; }
  .xy-article { padding: 20px 16px; }
  .xy-dlist .dcard { flex-wrap: wrap; padding: 14px; }
  .xy-form { max-width: 100%; }
  .xy-form .frow { flex-direction: column; }
  .xy-form .frow label { width: 100%; text-align: left; line-height: 30px; padding: 0; }
  .xy-table { display: block; overflow-x: auto; }
  .xy-m-layout { flex-direction: column; }
  .xy-m-side { width: 100%; }
  .xy-float { display: none; }
  .xy-floatad { width: 150px; }
  .xy-modal .box { width: 94vw; }
}
@media (max-width: 480px) {
  .xy-plist, .xy-news-grid, .xy-vgrid { grid-template-columns: 1fr; }
}

/* ===== 第八轮：合作品牌 / 入驻代理商 / 留言咨询 / 键值表 / 悬浮广告 ===== */
.xy-brand-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
@media (max-width:991px){.xy-brand-grid{grid-template-columns:repeat(2,1fr);}}
.xy-brand-grid .bcard{display:block;background:#fff;border:1px solid var(--xy-line,#E6EBF2);border-radius:8px;overflow:hidden;transition:all .2s;}
.xy-brand-grid .bcard:hover{box-shadow:0 6px 18px rgba(30,111,217,.12);transform:translateY(-2px);}
.xy-brand-grid .bimg{height:150px;background:#F5F8FC;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.xy-brand-grid .bimg img{max-width:100%;max-height:100%;object-fit:contain;}
.xy-brand-grid .bname{text-align:center;font-size:14px;color:var(--xy-text,#333);padding:10px 8px;border-top:1px solid var(--xy-line,#E6EBF2);}
.xy-dealer-list{list-style:none;margin:0;padding:0;}
.xy-dealer-list li{display:flex;align-items:center;padding:14px 10px;border-bottom:1px solid var(--xy-line,#E6EBF2);}
.xy-dealer-list li:last-child{border-bottom:0;}
.xy-dealer-list .dname{flex:0 1 auto;font-size:15px;color:var(--xy-text,#333);}
.xy-dealer-list .dname i{color:var(--xy-blue,#1E6FD9);margin-right:8px;}
.xy-dealer-list .dname:hover{color:var(--xy-blue,#1E6FD9);}
/* R44-5：优质代理商标签紧跟公司名，授权区域/箭头靠右 */
.xy-dealer-list .xy-quality-badge{margin-left:10px;}
.xy-dealer-list .dregion{font-size:12px;color:var(--xy-sub,#8A97A8);margin-right:14px;margin-left:auto;}
.xy-dealer-list .dregion i{margin-right:4px;color:#1D9E75;}
.xy-dealer-list .arrow{color:#C4CEDB;}
.xy-kvtable{width:100%;border-collapse:collapse;font-size:14px;}
.xy-kvtable th,.xy-kvtable td{border:1px solid var(--xy-line,#E6EBF2);padding:10px 14px;text-align:left;vertical-align:top;}
.xy-kvtable th{width:120px;background:#F5F8FC;color:var(--xy-sub,#5A6B80);font-weight:500;white-space:nowrap;}
.xy-rich-view{line-height:1.9;font-size:14px;color:var(--xy-text,#333);word-break:break-word;}
.xy-rich-view img{max-width:100%;height:auto;}
.xy-rich-view p{margin:0 0 10px;}
.xy-floatad{position:fixed;z-index:9999;width:240px;background:#fff;border-radius:8px;box-shadow:0 8px 30px rgba(20,40,80,.25);overflow:hidden;}
.xy-floatad a{display:block;text-decoration:none;}
.xy-floatad img{display:block;width:100%;height:auto;}
.xy-floatad p{margin:0;padding:10px 12px;font-size:13px;color:#333;text-align:center;background:#fff;}
.xy-floatad .close{position:absolute;top:2px;right:6px;font-size:22px;line-height:1;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.6);cursor:pointer;font-style:normal;}
.xy-floatad .close:hover{color:#ffd6d6;}

/* 覆盖 FastAdmin frontend.css 的 body{padding-top:60px}（其默认布局为固定导航预留）。
   芯与测前台头部是普通文档流布局，不需要该偏移，否则登录/注册等页面顶部会出现一条空白。 */
body.xy-body { padding-top: 0 !important; }

/* ===== 第16轮：手机端键值表 / 入驻代理商列表 =====
   必须置于第八轮桌面规则之后：同优先级选择器按源顺序覆盖，放在前面会被 .xy-dealer-list/.xy-kvtable
   的桌面声明（font-size:15px、flex:1 等）反覆盖导致手机样式失效。 */
@media (max-width: 991px) {
  /* 键值表：堆叠为字段卡片，字段名（标题列）完整显示在内容上方 */
  .xy-kvtable, .xy-kvtable tbody, .xy-kvtable tr, .xy-kvtable th, .xy-kvtable td { display: block; width: auto; }
  .xy-kvtable { overflow: visible; }
  .xy-kvtable tr { border: 1px solid var(--xy-line); border-radius: 8px; padding: 2px 14px 12px; margin-bottom: 10px; background: #fff; }
  .xy-kvtable th { border: 0; background: none; padding: 10px 0 3px; color: #8A97A8; font-size: 13px; white-space: normal; }
  .xy-kvtable td { border: 0; padding: 0 0 4px; font-size: 15px; }
  /* 入驻代理商列表：公司名整行加粗突出，授权区域缩进放第二行 */
  .xy-dealer-list li { flex-wrap: wrap; padding: 14px 2px; }
  .xy-dealer-list .dname { flex: 0 0 100%; font-size: 16px; font-weight: 700; color: #333; line-height: 1.55; }
  .xy-dealer-list .dname i { font-size: 15px; }
  .xy-dealer-list .dregion { flex: 1; margin: 7px 0 0 26px; }
  .xy-dealer-list .arrow { display: flex; align-items: center; padding-top: 7px; }
}

/* ===== 第17轮：banner 自适应 / 登录注册标签蓝色 / 栏目页 tabs 两行 ===== */

/* 登录/注册页切换标签：灰色改蓝色系（覆盖 frontend.css 的 #efefef，xy.css 在其后加载） */
.login-section .logon-tab > a { background-color: #EAF3FE; color: var(--xy-blue); }
.login-section .logon-tab > a:hover { background-color: #DCEBFC; color: var(--xy-deep); }
.login-section .logon-tab > a.active { background-color: var(--xy-blue); color: #fff; }

/* 桌面端：轮播改为 img 元素（视觉与原 background cover 一致）；tabs 断行符隐藏 */
.xy-carousel .slide img { display: block; width: 100%; height: 100%; object-fit: cover; }
.xy-modtitle .tabs .tk-brk { display: none; }

@media (max-width: 991px) {
  /* 需求3：顶部「制造厂家注册/代理商注册/登录/注册」靠右对齐 */
  .xy-topbar .xy-wrap { justify-content: flex-end; }

  /* 需求2：汉堡按钮与 LOGO 同行；导航条整条隐藏；菜单从 header 下方展开（仅一级导航） */
  .xy-header { position: relative; }
  .xy-header .xy-wrap { align-items: center; }
  .xy-logo { margin-right: 0; }
  .xy-burger { margin-left: auto; }
  .xy-nav { display: none; }
  .xy-mnav .m-links { border-top: 0; padding: 4px 0 10px; }

  /* 需求5：搜索框与页面两边对齐（清掉 inline 的 margin:0 20px） */
  .xy-searchbox { order: 3; margin: 0 !important; }

  /* 需求4：banner 按图片自身比例完整显示（宽横幅不再被 16:9 容器左右裁切） */
  .xy-carousel { height: auto; aspect-ratio: auto; }
  .xy-carousel .slide { position: relative; inset: auto; display: none; opacity: 1; }
  .xy-carousel .slide.on { display: block; }
  .xy-carousel .slide img { width: 100%; height: auto; object-fit: contain; }

  /* 需求7：栏目页（行业资讯/生态建设）标题与「全部」第一行，其余分类第二行。
     顶对齐 + 标题行高与 tab 一致，保证「全部」与标题在视觉上同一行 */
  .xy-modtitle { flex-wrap: wrap; row-gap: 10px; align-items: flex-start; }
  .xy-modtitle h3 { white-space: nowrap; flex-shrink: 0; line-height: 28px; margin-right: 10px; }
  .xy-modtitle .tabs { flex: 1 1 0; flex-wrap: wrap; row-gap: 8px; gap: 6px; }
  .xy-modtitle .tabs .tk-brk { display: block; flex-basis: 100%; height: 0; }
  .xy-modtitle .tabs a { white-space: nowrap; flex-shrink: 0; }
}

/* ===== 第 18 轮 ===== */

/* 需求2：需求与技术合作详情页附件——仅保留下载按钮，不显示文件名与存储路径 */
.xy-dl-list.xy-dl-simple { display: flex; flex-wrap: wrap; gap: 10px; }
.xy-dl-list.xy-dl-simple li { padding: 0; border: 0; background: none; margin-bottom: 0; gap: 0; }
.xy-dl-list.xy-dl-simple li:hover { border: 0; box-shadow: none; }

@media (max-width: 991px) {
  /* 需求1：行业资讯 / 生态建设栏目页——隐藏栏目名与「全部」，只显示子分类 */
  .xy-modtitle-sub { row-gap: 0; }
  .xy-modtitle-sub h3 { display: none; }
  .xy-modtitle-sub .tabs .tk-all,
  .xy-modtitle-sub .tabs .tk-brk { display: none; }
}

/* ===== 第 21 轮：手机端补充 ===== */
@media (max-width:991px){
  .xy-logo .logo-text span { font-size: 12px; font-weight: 700; color: #16477C; }
  .welcome-em { display: none; }
}

/* ===== 第 21 轮：手机端详情页 tabs 平铺（覆盖横滑） ===== */
@media (max-width:991px){
  .xy-dtabs .tabnav { flex-wrap: wrap; overflow-x: visible; }
  .xy-dtabs .tabnav a { white-space: normal; padding: 10px 14px; }
  .xy-dtabs .tabnav a.on::after { left: 14px; right: 14px; }
}

/* ===== 第 21 轮：手机端产品列表行式堆叠 ===== */
@media (max-width:991px){
  .xy-prow { flex-wrap: wrap; padding: 12px 14px; }
  .xy-prow .pic { flex: 0 0 84px; height: 66px; }
  .xy-prow .pops { flex: 1; text-align: right; }
}

/* ===== 第 22 轮：手机端平台标签说明上下堆叠 ===== */
@media (max-width:991px){
  .xy-tag-guide { padding: 4px 12px; }
  .xy-tag-guide .tg-row { flex-direction: column; gap: 8px; padding: 10px 0; }
  .xy-tag-guide .tg-row .xy-ptag { flex: 0 0 auto; }
}

/* ===== 第 23 轮：入驻注册页内容区宽度 1000px（桌面端） =====
   仅桌面端生效：手机端仍走 frontend.css 的 width:100% 与 .xy-form 的 max-width:100%
   第 25 轮调整：仅保留入驻注册（制造厂家/代理商）1000px；登录/注册/退出恢复
   frontend.css 原宽（.login-section 460px），不再放宽。 */
@media (min-width: 768px) {
  /* 制造厂家 / 代理商入驻注册：表单面板由 .xy-form 的 720px 放宽到 1000px
     （需在模板上叠加 .xy-form-1000 类，不影响其他使用 .xy-form 的页面） */
  .xy-form-1000 { max-width: 1000px; }
}

/* ===== 第 25 轮：电脑端头部/导航/分类/需求版块/页脚调整（仅桌面 ≥992px） =====
   全部放在 min-width 媒体查询内，手机端（max-width:991px）不受影响 */
@media (min-width: 992px) {
  /* 需求1：平台简介 / 联系芯与测 —— 顶部（欢迎条+头部+导航）整块吸顶 */
  body.xy-fixtop .xy-topfix { position: sticky; top: 0; z-index: 100; }
  body.xy-fixtop .xy-nav { position: static; }

  /* 需求2：搜索行加高、字号放大 */
  .xy-search input { height: 54px; font-size: 18px; }
  .xy-search button { width: 112px; font-size: 18px; }
  .xy-suggest { right: 112px; }

  /* 需求3：导航行加高（44→56px）、字号 18px（第26轮由 20px 调整为 18px） */
  .xy-nav a.nav-item { line-height: 56px; font-size: 18px; }
  .xy-allcat { line-height: 56px; font-size: 18px; }
  .xy-cat-panel { top: 56px; width: 380px; }

  /* 需求4：全部分类下拉——一级分类 20px，二级产品分类 16px */
  .xy-cat-panel .cat-item > a { font-size: 20px; padding: 14px 18px; }
  .xy-cat-panel .sub a { font-size: 16px; }

  /* 需求5 + 第28轮：版块 min-height 250px；标题 30px、副文案 16px、上下间距 30px（内容垂直居中） */
  .xy-demandbar { min-height: 250px; }
  .xy-demandbar h3 { font-size: 30px; margin: 0 0 30px; }
  .xy-demandbar p { font-size: 16px; }

  /* 需求6：页脚菜单栏加高、字号放大到 16px（版权行维持原样） */
  .xy-footer { padding-top: 54px; }
  .xy-footer .cols { padding-bottom: 52px; }
  .xy-footer h4 { font-size: 18px; margin: 4px 0 22px; }
  .xy-footer .f-col a { font-size: 16px; line-height: 3; }

  /* 第 26 轮：首页「资讯信息 / 生态建设」列表字号 16px */
  .xy-newslist li a { font-size: 16px; }

  /* 第 27 轮：仅「会员注册」页放宽到 1000px（登录页/退出页仍为 frontend.css 的 460px；
     模板 register.html 单独叠加 .xy-reg-1000，作用域仅此一页） */
  .login-section.xy-reg-1000 { width: 1000px; max-width: 100%; }

  /* ===== 第 28 轮：首页需求版块文案 / 入驻表单 label / 用户卡入口 / 列表日期 / 联系页表格 ===== */
  /* 需求3：入驻表单 label 列 130→140px，「*制造厂家/代理商注册协议」不再断行（整列同步放宽保持对齐） */
  .xy-form .frow > label { width: 140px; }
  /* 需求4：首页用户卡 4 个快捷入口字号 12→14px */
  .xy-usercard .quick a { font-size: 14px; }
  /* 需求5：首页资讯/生态列表日期字号 13→16px */
  .xy-newslist li time { font-size: 16px; }
  /* 需求7：联系芯与测信息表字号 16px（模板叠加 .xy-table-16，不影响其他页面的 .xy-table） */
  .xy-table-16 th, .xy-table-16 td { font-size: 16px; }
}

/* ===== 第 25 轮补充：手机端产品列表筛选表单允许收缩（修复 input 固有 min-width 导致 107px 横向溢出） ===== */
@media (max-width: 991px) {
  .xy-plist-main .xy-panel form { flex-wrap: wrap; }
  .xy-plist-main .xy-panel form input[type="text"] { min-width: 0; }
}

/* ===== 第 29 轮：手机端产品列表「查看详情」按钮一行显示 =====
   按钮独占一整行（右对齐）并禁止文字换行，避免被同行内容压缩成两行竖排 */
@media (max-width:991px){
  .xy-prow .pops { flex: 0 0 100%; text-align: right; }
  .xy-prow .pops .xy-btn { white-space: nowrap; }
}

/* ===== 第 30 轮：产品详情（信息行 / 会员内容区 / 在线咨询聊天）+ 首页左侧分类 + 顶部标语 ===== */

/* 需求1.1/1.5：详情页基础信息行——字段名显示为蓝色，产品信息字号 16px */
.xy-dinfo .rows .r { font-size: 16px; color: var(--xy-blue); }
.xy-dinfo .rows .r b { font-size: 16px; color: #16477C; font-weight: 700; }

/* R30-8 / R31-1：会员内容区——手机端每个独立成行点击展开；
   桌面端与前三项（核心参数/产品优势/出口管理）合并成一排选项卡（见下方 992px 媒体查询） */
.xy-acc .acc-bd { display: none; padding: 22px 26px; min-height: 120px; line-height: 1.9; color: #444; font-size: 16px; }
.xy-acc .acc-bd.on { display: block; }
.xy-acc .acc-bd.locked { position: relative; user-select: none; filter: blur(6px); pointer-events: none; }
.xy-acc .acc-bd .lockmask { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; filter: none; pointer-events: auto; }
.xy-acc .acc-bd .lockmask .fa-lock { font-size: 34px; color: var(--xy-blue); margin-bottom: 10px; }
.xy-acc .acc-bd .lockmask p { color: #999; margin: 0 0 14px; }
.xy-acc .acc-hd .lock { font-size: 11px; color: #B26A00; background: #FDF3E3; padding: 1px 6px; border-radius: 3px; margin-left: 5px; }

/* R31-1 桌面端：7 个板块（核心参数/产品优势/出口管理/质量等级执行标准/选型提示技术支持/
   重点行业应用记录/产品综合测评描述）合并为一排选项卡。
   做法：.tabnav-main 与 .xy-acc 用 display:contents 把子项提升为 .xy-dtabs 的 flex 项，
   内容区（tabpane/acc-bd）设 flex-basis:100% 且 order:10 —— 无论哪个内容区激活都整行显示在标题排下方 */
@media (min-width: 992px) {
  .xy-dtabs { display: flex; flex-wrap: wrap; align-items: stretch; }
  .xy-dtabs .tabnav-main { display: contents; }
  .xy-dtabs .tabnav-main a { padding: 14px 18px; color: #333; font-size: 16px; font-weight: 700; position: relative; display: flex; align-items: center; border-bottom: 1px solid var(--xy-line); }
  .xy-dtabs .tabnav-main a.on { color: var(--xy-blue); font-weight: 600; }
  .xy-dtabs .tabnav-main a.on::after { left: 18px; right: 18px; }
  .xy-acc { display: contents; }
  .xy-acc .acc-hd { padding: 14px 18px; color: #333; font-size: 16px; font-weight: 700; position: relative; display: flex; align-items: center; border-bottom: 1px solid var(--xy-line); }
  .xy-acc .acc-hd.on { color: var(--xy-blue); font-weight: 600; }
  .xy-acc .acc-hd.on::after { content: ""; position: absolute; left: 18px; right: 18px; bottom: -1px; height: 3px; background: var(--xy-blue); }
  .xy-acc .acc-hd .caret { display: none; }
  .xy-dtabs .tabpane, .xy-acc .acc-bd { order: 10; flex: 0 0 100%; max-width: 100%; }
}

/* 需求14：平台标签自定义图标（后台按标签上传）；R32-1 详情页图标放大为 97×46；R38-2 调整为 83×43 */
.xy-ptag img { width: 14px; height: 14px; object-fit: contain; display: block; }
/* R32-1 / R38-2：详情页 h1 内的标签图标按 83×43 展示（上传了自定义图标的标签，整枚胶囊即图片本身） */
.xy-dinfo .xy-ptag.has-img { padding: 0; border-radius: 4px; overflow: hidden; gap: 0; background: none; text-shadow: none; }
.xy-dinfo .xy-ptag.has-img img { width: 83px; height: 43px; object-fit: contain; display: block; }
.xy-dinfo .xy-ptag.has-img .ptag-name { display: none; }
.xy-plist-main .xy-prow .pinfo .tags .tg img { width: 13px; height: 13px; object-fit: contain; vertical-align: -2px; margin-right: 3px; }

/* 需求6：在线咨询——在线聊天面板 */
.xy-chat-modal .box { width: 560px; }
.xy-chat-modal .bd.xy-chat-bd { padding: 0; background: #F5F8FB; height: 380px; overflow-y: auto; }
.xy-chat-tip { font-size: 12px; color: #8a9aa9; text-align: center; padding: 10px 14px; line-height: 1.7; }
.xy-chat-list { padding: 6px 16px 16px; }
.xy-chat-list .msg { margin-bottom: 14px; display: flex; flex-direction: column; }
.xy-chat-list .msg .who { font-size: 11px; color: #9AA9B8; margin-bottom: 4px; }
.xy-chat-list .msg .txt { display: inline-block; max-width: 78%; padding: 10px 14px; border-radius: 8px; font-size: 14px; line-height: 1.7; word-break: break-word; white-space: pre-wrap; text-align: left; }
.xy-chat-list .msg.plat { align-items: flex-start; }
.xy-chat-list .msg.plat .txt { background: #fff; color: #333; border: 1px solid var(--xy-line); }
.xy-chat-list .msg.me { align-items: flex-end; }
.xy-chat-list .msg.me .txt { background: var(--xy-blue); color: #fff; }
.xy-chat-modal .ft.xy-chat-ft { display: flex; gap: 10px; align-items: flex-end; text-align: left; }
.xy-chat-ft textarea { flex: 1; height: 62px; border: 1px solid #d6e2ec; border-radius: 4px; padding: 8px 10px; font-size: 14px; resize: none; }
.xy-chat-ft .xy-btn { padding: 10px 22px; border: 0; cursor: pointer; }

/* 需求4：顶部标语行（行高 +20px、字号 17px、深色、思源黑体、左对齐） */
@media (min-width: 992px) {
  .xy-topbar { line-height: 56px; }
  .xy-topbar .welcome { font-family: "Source Han Sans SC", "Noto Sans SC", "SourceHanSansSC-Regular", "思源黑体", "Microsoft YaHei", sans-serif; font-size: 24px; font-weight: 700; color: var(--xy-blue); letter-spacing: 1px; }
  /* R30-9 / R31-2：首页左侧分类背景占满整个格子（默认为比导航更深一档的蓝），
     鼠标点击/悬停时为导航栏「全部分类」的背景色（--xy-blue） */
  .xy-sidenav .s-item > a { background: #C7DDF6; }
  .xy-sidenav .s-txt b { color: #16477C; }
  .xy-sidenav .s-item > a:hover,
  .xy-sidenav .s-item > a:active { background: var(--xy-blue); }
  .xy-sidenav .s-item > a:hover .s-txt b,
  .xy-sidenav .s-item > a:active .s-txt b { color: #fff; }
}

/* 需求8 手机端：组1 三个选项卡同排；组2 每个独立成行、点击就地展开在该名称下面 */
@media (max-width: 991px) {
  .xy-dtabs .tabnav-main { display: flex; }
  .xy-dtabs .tabnav-main a { flex: 1 1 0; text-align: center; padding: 12px 4px; font-size: 14px; }
  .xy-dtabs .tabnav-main a.on::after { left: 8px; right: 8px; }

  .xy-acc { display: block; border-bottom: 0; }
  .xy-acc .acc-hd { display: flex; align-items: center; width: 100%; padding: 14px 16px; font-size: 15px; font-weight: 700; color: #333; border-bottom: 1px solid var(--xy-line); }
  .xy-acc .acc-hd .hd-t { flex: 1; }
  .xy-acc .acc-hd .caret { display: block; color: #AAB4BF; transition: transform .2s; }
  .xy-acc .acc-hd.on { color: var(--xy-blue); background: #F7FAFE; }
  .xy-acc .acc-hd.on .caret { transform: rotate(180deg); }
  .xy-acc .acc-hd.on::after { display: none; }
  .xy-acc .acc-bd { flex: none; padding: 16px; border-bottom: 1px solid var(--xy-line); }
  .xy-acc .acc-hd .lock { margin-left: 8px; }

  .xy-dinfo .rows { grid-template-columns: 1fr; }
  .xy-chat-modal .box { width: 94vw; }
  .xy-chat-modal .bd.xy-chat-bd { height: 320px; }
}

/* ===== 第 31 轮补充：产品详情页「在售」等产品状态徽标加大（R31-5） ===== */
.xy-dinfo .xy-pstatus { font-size: 15px; padding: 5px 18px; border-radius: 5px; }

/* ===== 第 33 轮 ===== */
/* R33-1：产品列表页同样直接调用后台上传的标签图标（有图时整枚标签即 83×43 图片，不再重复标签名）；R38-2 尺寸调整为 83×43 */
.xy-prow .pinfo .tags { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.xy-prow .pinfo .tags .tg { margin-right: 0; }
.xy-prow .pinfo .tags .xy-ptag.has-img { padding: 0; border-radius: 4px; overflow: hidden; gap: 0; background: none; text-shadow: none; }
.xy-prow .pinfo .tags .xy-ptag.has-img img { width: 83px; height: 43px; object-fit: contain; display: block; }
.xy-prow .pinfo .tags .xy-ptag.has-img .ptag-name { display: none; }
/* R38-2：列表页标签图标实际渲染在 .hd > .xy-ptags 内（R34 改版后旧的 .pinfo .tags 选择器已失效，图标退回 14px），此处按 83×43 展示 */
.xy-prow .pinfo .hd .xy-ptags .xy-ptag.has-img { padding: 0; border-radius: 4px; overflow: hidden; gap: 0; background: none; text-shadow: none; }
.xy-prow .pinfo .hd .xy-ptags .xy-ptag.has-img img { width: 83px; height: 43px; object-fit: contain; display: block; }
.xy-prow .pinfo .hd .xy-ptags .xy-ptag.has-img .ptag-name { display: none; }

/* ===== 第 34 轮 ===== */
/* R34-1：搜索结果中的命中关键词红色标注 */
.xy-hl { color: #E02020; font-style: normal; font-weight: 700; }
/* R34-9/10：列表行结构 —— 第一行=型号+状态徽标+标签图标；第二行=名称；第三行=品牌/类别/国产化；第四行=对标/应用/制造商 */
.xy-prow .pinfo .hd { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.xy-prow .pinfo .hd .model { margin-bottom: 0; }
.xy-prow .pinfo .name { margin: 8px 0 0; }
.xy-prow .pinfo .tags { margin-top: 8px; }
.xy-prow .pinfo .rows-mini { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 8px; font-size: 13px; color: #555; }
/* R34-5：详情页四行信息黑色加粗（覆盖第 30 轮的蓝色） */
.xy-dinfo .rows .r { color: #1a1a1a; font-weight: 700; font-size: 16px; }
.xy-dinfo .rows .r b, .xy-dinfo .rows .r .domestic { color: #1a1a1a; font-weight: 700; }
.xy-dinfo .rows .r a.manu { color: #1a1a1a; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.xy-dinfo .rows .r a.manu:hover { color: var(--xy-blue); }
/* R34-16：需求列表进度徽标 */
.xy-prog { display: inline-block; font-size: 12px; line-height: 1.6; border-radius: 3px; padding: 1px 8px; margin-right: 8px; }
.xy-prog.doing { color: #1E6FD9; background: #E8F1FC; }
.xy-prog.done { color: #1a9c5b; background: #E8F7EE; }
/* R34-19：轮播主图可带链接跳转 */
.xy-carousel .slide a { display: block; width: 100%; height: 100%; }
/* R37-3：未激活轮播层不得拦截点击（PC 端 slide 绝对定位堆叠，隐藏层 opacity:0 仍接住鼠标，导致点主图命中的是无链接的隐藏 slide） */
.xy-carousel .slide { pointer-events: none; }
.xy-carousel .slide.on { pointer-events: auto; }
/* ===== 第 37 轮 ===== */
/* R37-1：搜索结果中型号与名称整体红色（不只命中关键词） */
.xy-prow .pinfo .hd a.model.xy-red { color: #E02020; }
.xy-prow .pinfo .name .xy-red { color: #E02020; }

/* ===== 第 53 轮 ===== */
/* R53：技术文档 / 出口合规证书——按上传原名显示，点击先在线预览（弹层内可按原名下载） */
.xy-doc {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: 100%;
    padding: 6px 14px;
    margin: 0 8px 8px 0;
    border: 1px solid var(--xy-line);
    border-radius: 4px;
    background: #fff;
    color: #1e6fd9;
    font-size: 13px;
    text-decoration: none;
    vertical-align: middle;
}
.xy-doc .nm {
    max-width: 320px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.xy-doc:hover {
    border-color: #1e6fd9;
    background: #f4f9ff;
    color: #1e6fd9;
}
.xy-docmodal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: none;
}
.xy-docmodal.on { display: block; }
.xy-docmodal-mask {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .55);
}
.xy-docmodal-box {
    position: relative;
    display: flex;
    flex-direction: column;
    width: min(1080px, 94vw);
    height: min(86vh, 900px);
    margin: 4vh auto 0;
    background: #fff;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 12px 40px rgba(0, 0, 0, .3);
}
.xy-docmodal-hd {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    background: #f7fafd;
    border-bottom: 1px solid var(--xy-line);
}
.xy-docmodal-hd .t {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 15px;
    color: #222;
}
.xy-docmodal-hd .dl {
    flex: 0 0 auto;
    padding: 5px 14px;
    border-radius: 4px;
    background: #1e6fd9;
    color: #fff;
    font-size: 13px;
    text-decoration: none;
}
.xy-docmodal-hd .dl:hover { background: #185fc0; color: #fff; }
.xy-docmodal-hd .cls {
    flex: 0 0 auto;
    padding: 0 4px;
    font-size: 22px;
    line-height: 1;
    color: #888;
    text-decoration: none;
}
.xy-docmodal-hd .cls:hover { color: #333; }
.xy-docmodal-bd { flex: 1; min-height: 0; background: #525659; }
.xy-docmodal-bd iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}
@media (max-width: 991px) {
    .xy-doc { display: flex; width: 100%; margin-right: 0; }
    .xy-doc .nm { max-width: none; }
    .xy-docmodal-box {
        width: 100vw;
        height: 100vh;
        margin: 0;
        border-radius: 0;
    }
}

/* ===== 第 54 轮 ===== */
/* R54-4：详情页「核心参数…产品综合测评描述」选项卡行冻结（桌面端向下滚动吸附在吸顶页头下方）
   桌面端标题行由 .tabnav-main / .xy-acc 以 display:contents 提升为 .xy-dtabs 的 7 个 flex 项，
   display:contents 不生成盒子、sticky 无效 —— 改为对 7 个标题项各自 sticky（同一行 y 相同，整行一起冻结） */
@media (min-width: 992px) {
    .xy-dtabs .tabnav-main a,
    .xy-dtabs .xy-acc .acc-hd {
        position: sticky;
        top: 148px; /* 兜底值；详情页脚本会按实际页头高度校准 */
        z-index: 90;
        background: #fff;
    }
    .xy-dtabs .xy-acc .acc-bd { background: #fff; } /* 内容区滚过标题下方时不透底 */
}

/* ===== 第 58 轮 ===== */
/* R66：详情页四行基础信息——标签「国产化程度：/对标/替代型号：/应用领域：/制造商：」保持现状（黑色加粗），
   每个字段的「内容」不加粗（.rv = 普通字段值，.domestic = 国产化徽标，.manu = 制造商链接） */
.xy-dinfo .rows .r .rv,
.xy-dinfo .rows .r .domestic,
.xy-dinfo .rows .r a.manu,
.xy-dinfo .rows .r span.manu { font-weight: 400; }
/* 富文本内容自身书写的加粗语义保留（应用领域字段为富文本） */
.xy-dinfo .rows .r .rv strong,
.xy-dinfo .rows .r .rv b { font-weight: 700; }
/* 富文本内图片不撑破详情页信息栏 */
.xy-dinfo .rows .r .rv img { max-width: 100%; height: auto; }

/* ===== 第 69 轮 ===== */
/* R69-5：首页左侧分类弹出层加高——整个弹出层与「系统解决方案」底边对齐（悬停任意一级分类都显示全高面板）。
   做法：弹出层改为锚定整个 .xy-sidenav（.s-item 去掉 relative），top/bottom 双向贴齐 */
@media (min-width: 992px){
  .xy-sidenav { position: relative; }
  .xy-sidenav .s-item { position: static; }
  .xy-sidenav .s-sub { top: -1px; bottom: -1px; height: auto; }
}

/* R69-6：桌面端 7 个板块标题平均分配整行宽度（登录前后一致；标题文字居中） */
@media (min-width: 992px){
  .xy-dtabs .tabnav-main a,
  .xy-dtabs .xy-acc .acc-hd { flex: 1 1 0; justify-content: center; text-align: center; }
  .xy-dtabs .xy-acc .acc-hd .hd-t { flex: 0 1 auto; }
}

/* R69-7：手机端兜底——桌面端 sticky 用的内联 top 值在手机端会把标题行压进内容区，强制复位 */
@media (max-width: 991px){
  .xy-dtabs .tabnav-main a,
  .xy-dtabs .xy-acc .acc-hd { top: auto !important; }
}

/* R71-1：详情页富文本字段（应用领域等）按后台编辑排版分段显示——
   首个段落仍紧跟标签行内显示（延续 R69-8），后续段落恢复块级各自另起一行（后台换行前台也换行） */
.xy-dinfo .rows .r .rv p,
.xy-dinfo .rows .r .rv div { display: block; margin: 0; }
.xy-dinfo .rows .r .rv > p:first-child,
.xy-dinfo .rows .r .rv > div:first-child { display: inline; }
.xy-dinfo .rows .r .rv img { vertical-align: middle; }

/* R72：详情页「应用领域」多段内容悬挂对齐——标签独占首列（宽度自适应），
   后续换行的每一行都与首行「应用领域：」冒号后的内容左缘对齐 */
.xy-dinfo .rows .r.xy-hang { display: grid; grid-template-columns: max-content 1fr; align-items: start; }
.xy-dinfo .rows .r.xy-hang > .lab { white-space: nowrap; }
.xy-dinfo .rows .r.xy-hang > .rv { min-width: 0; }
