/* ===========================================================
   ZhanQun 前台基础样式层（base layer）
   说明：本文件先于「站点模板 CSS」加载，只负责：
         1) 基础重置与排版  2) 骨架默认样式（模板可覆盖）
         3) 移动端适配（带 !important，保证任何模板都能兼容手机）
   =========================================================== */

/* ---------- A. 基础重置 ---------- */
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; -webkit-font-smoothing: antialiased; }
img { border: 0; }
a { -webkit-tap-highlight-color: transparent; }
ul { margin: 0; }
input, textarea, select, button { font-family: inherit; }

/* 滚动条统一黑色：Windows Chrome 默认用系统强调色（蓝紫），跟站内的黑白主色不搭。
   webkit 系用 ::-webkit-scrollbar，Firefox 用 scrollbar-color 兜底 */
::-webkit-scrollbar { width: 12px; height: 12px; }
::-webkit-scrollbar-track { background: #f1f2f4; }
::-webkit-scrollbar-thumb { background: #111827; border-radius: 6px; border: 3px solid #f1f2f4; }
::-webkit-scrollbar-thumb:hover { background: #374151; }
* { scrollbar-color: #111827 #f1f2f4; scrollbar-width: thin; }

/* ---------- B. 骨架默认样式（低特异性，模板可覆盖） ---------- */

/* 页头上方通栏：左公告滚动，右搜索 + 语言 + 会员登录（黑底细条，见 FrontController::topNoticeBar）
   z-index 要压过页头（页头是 30~50），语言下拉才能盖在页头上面 */
.zq-ntop { position: relative; z-index: 60; background: #111827; color: #d1d5db; font-size: 13px; }
.zq-ntop .wrap { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 38px; }
.zq-ntop-left { display: flex; align-items: center; gap: 10px; min-width: 0; flex: 1 1 auto; }
.zq-ntop-tag {
    flex: 0 0 auto; padding: 2px 8px; border-radius: 999px; font-size: 12px; line-height: 18px;
    color: #fff; background: var(--zq-accent, #C30D23);
}
/* 公告滚动窗：只露出一行，多条时 JS 垂直平移切换 */
.zq-ntop-roll { position: relative; flex: 1 1 auto; min-width: 0; height: 22px; overflow: hidden; }
.zq-ntop-rollin { transition: transform .5s ease; }
.zq-ntop-item { display: block; height: 22px; line-height: 22px; overflow: hidden;
    white-space: nowrap; text-overflow: ellipsis; }
.zq-ntop-item a { color: #e5e7eb; text-decoration: none; }
.zq-ntop-item a:hover { color: #fff; text-decoration: underline; }
.zq-ntop-none { color: #9ca3af; }
.zq-ntop-right { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
/* 搜索：默认只有放大镜图标，点了展开输入框（.zq-ntop.is-search） */
.zq-ntop-sicon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 28px; height: 28px; padding: 0; cursor: pointer; color: #e5e7eb;
    background: transparent; border: 0; border-radius: 50%;
}
.zq-ntop-sicon:hover { color: #fff; background: rgba(255, 255, 255, .12); }
.zq-ntop-sicon svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.zq-ntop-search { display: none; align-items: center; gap: 6px; }
.zq-ntop.is-search .zq-ntop-search { display: flex; }
.zq-ntop.is-search .zq-ntop-sicon { color: #fff; background: rgba(255, 255, 255, .16); }
.zq-ntop-search input {
    width: 168px; max-width: 40vw; padding: 5px 10px; font-size: 13px; color: #e5e7eb;
    background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 999px; outline: none;
}
.zq-ntop-search input::placeholder { color: #9ca3af; }
.zq-ntop-search input:focus { border-color: rgba(255, 255, 255, .5); background: rgba(255, 255, 255, .16); }
.zq-ntop-search button {
    padding: 5px 14px; font-size: 13px; color: #fff; cursor: pointer;
    background: var(--zq-accent, #C30D23); border: 0; border-radius: 999px;
}
.zq-ntop-search button:hover { filter: brightness(1.08); }
/* 会员入口：未登录是「登录 / 注册」，登录后是「昵称 / 退出」，由 /member/box 异步填充 */
.zq-ntop-member { display: flex; align-items: center; gap: 8px; }
.zq-ntop-member a { color: #e5e7eb; text-decoration: none; }
.zq-ntop-member a:hover { color: #fff; text-decoration: underline; }
/* 语言切换搬上来了：黑底上就一个浅色文字按钮，不加边框圆圈，下拉面板仍是白底 */
.zq-ntop .zq-lang-switch { position: relative; }
.zq-ntop .zq-lang-btn {
    padding: 4px 6px; font-size: 12.5px; color: #e5e7eb; background: transparent;
    border: 0; border-radius: 6px;
}
.zq-ntop .zq-lang-btn:hover { color: #fff; background: rgba(255, 255, 255, .1); }
.zq-ntop .zq-lang-panel { top: 100%; margin-top: 6px; }
/* 手机端：整条压窄；点开搜索后公告让位，输入框占满剩下的宽度 */
@media (max-width: 860px) {
    .zq-ntop { font-size: 12px; }
    .zq-ntop .wrap { min-height: 34px; gap: 6px; }
    .zq-ntop-right { gap: 4px; }
    .zq-ntop-search button { padding: 4px 10px; font-size: 12px; }
    .zq-ntop.is-search .zq-ntop-left { display: none; }
    .zq-ntop.is-search .zq-ntop-right { flex: 1 1 auto; }
    .zq-ntop.is-search .zq-ntop-search { flex: 1 1 auto; }
    .zq-ntop.is-search .zq-ntop-search input { width: 100%; max-width: none; }
    /* 会员登录收进手机底部菜单，这一条留位置给公告和搜索 */
    .zq-ntop-member { display: none; }
    /* 手机底部菜单已有「搜索」入口，通栏上的放大镜隐藏（窄条上太挤） */
    .zq-ntop-sicon { display: none; }
}

/* 顶部导航容器 */
header.header { position: relative; z-index: 50; }
header.header .wrap { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; }

/* Logo：上传图则为 <img>，否则为文字 */
.logo { flex-shrink: 0; max-width: 45%; }
.logo a { display: flex; align-items: center; gap: 8px; }
.logo img.logo-img {
    display: block; max-height: 44px; width: auto; max-width: 240px;
    object-fit: contain;
}
/* 手机端 Logo 回退：后台没传「手机端 Logo」时，窄屏用站点图标（favicon）当小方图
   .logo-pc = PC 横幅，.logo-ico = 站点图标；两者按 840px 断点互换（见 FrontController::logoHtml） */
img.logo-img.logo-ico { display: none !important; }
@media (max-width: 840px) {
    img.logo-img.logo-pc { display: none !important; }
    .logo img.logo-img.logo-ico,
    header.header .logo img.logo-img.logo-ico {
        display: block !important;
        width: 30px !important; height: 30px !important;
        max-width: 30px !important; max-height: 30px !important;
        object-fit: contain; border-radius: 6px;
    }
}

/* 页头搜索条：仅「黑白极简」模板输出（FrontController::headerSearchBox）。
   Logo 右侧、导航之前的空位：margin-right:auto 让导航仍靠右，
   flex:1 1 auto 把中间空白占满；窄屏隐藏（顶部通栏已有搜索入口） */
.zq-hsearch {
    display: flex; align-items: center; flex: 1 1 auto;
    min-width: 180px; max-width: 520px; margin: 0 24px 0 28px;
    height: 38px; padding: 0 5px 0 14px;
    border: 1px solid rgba(127, 127, 127, .3); border-radius: 999px;
    background: rgba(127, 127, 127, .05);
    transition: border-color .15s, background .15s, box-shadow .15s;
}
.zq-hsearch:focus-within, .zq-hsearch:hover {
    border-color: rgba(127, 127, 127, .55);
    background: #fff;
    box-shadow: 0 1px 6px rgba(60, 64, 67, .1);
}
.zq-hsearch-input {
    flex: 1 1 auto; min-width: 0; padding: 0;
    font-size: 14px; line-height: 1.2; color: #111827;
    background: transparent; border: 0; outline: none;
}
.zq-hsearch-input::placeholder { color: #9aa1ab; }
.zq-hsearch-input::-webkit-search-cancel-button { -webkit-appearance: none; }
.zq-hsearch-btn {
    flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
    width: 30px; height: 30px; padding: 0; border: 0; border-radius: 50%;
    color: #4b5563; background: transparent; cursor: pointer;
}
.zq-hsearch-btn:hover { background: rgba(127, 127, 127, .12); color: #111827; }
.zq-hsearch-btn svg { width: 17px; height: 17px; display: block; }
@media (max-width: 860px) {
    .zq-hsearch { display: none; }
}

/* 首页热榜横排（搜索门户模板，中央搜索框下方）：仿百度热搜的双列榜单 */
.zq-hboard { padding: 0 0 14px; }
/* 搜索门户首页原本 .gs-home 占满整屏（min-height:100vh），热榜会被推到视口外。
   挂了热榜时让搜索区收紧、热榜紧跟搜索按钮露出来（模板 CSS 存库，这里覆盖） */
body:has(.zq-hboard) .gs-home {
    min-height: auto;
    padding: 56px 16px 26px;
}
body:has(.zq-hboard) .gs-form { margin-top: 22px; }
@media (max-width: 860px) {
    body:has(.zq-hboard) .gs-home { padding: 36px 16px 20px; }
}
.zq-hboard .wrap {
    padding: 16px 22px 8px;
    background: #fff; color: #111827;
    border: 1px solid rgba(127, 127, 127, .18); border-radius: 12px;
}
.zq-hb-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.zq-hb-head h2 { margin: 0; font-size: 17px; font-weight: 700; }
.zq-hb-more { font-size: 13px; color: #6b7280; text-decoration: none; }
.zq-hb-more:hover { color: #111827; }
.zq-hb-list {
    list-style: none; margin: 0; padding: 0;
    display: grid; grid-template-columns: 1fr 1fr; column-gap: 44px;
}
.zq-hb-item { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 8px 0; }
.zq-hb-no {
    flex: none; width: 18px; height: 18px; line-height: 18px; text-align: center;
    font-size: 12px; font-weight: 700; font-family: Consolas, "Courier New", monospace;
    color: #9aa1ab; background: #f3f4f6; border-radius: 3px;
}
.zq-hb-item.is-top .zq-hb-no { background: #e60012; color: #fff; }
.zq-hb-word {
    flex: 1 1 auto; min-width: 0;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    font-size: 14px; color: #111827; text-decoration: none;
}
.zq-hb-word:hover { color: var(--zq-accent, #C30D23); text-decoration: underline; }
.zq-hb-hot { flex: none; font-size: 12px; color: #9aa1ab; }
.zq-hb-tip { margin: 6px 0 0; padding-top: 8px; font-size: 12.5px; color: #9aa1ab; text-align: center; border-top: 1px solid rgba(127, 127, 127, .12); }
@media (max-width: 640px) {
    .zq-hboard .wrap { padding: 14px 16px 6px; }
    .zq-hb-list { grid-template-columns: 1fr; column-gap: 0; }
}

.zq-nav-wrap { min-width: 0; }
/* 注意：Tpl::nav() 输出的是 <ul class="nav">，因此选择器直接作用于该 ul 本身 */
.zq-nav-wrap ul.nav { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; }
.zq-nav-wrap .nav li { list-style: none; }
.zq-nav-wrap .nav a { display: block; }

/* 顶部菜单项：不换背景、不用圆角胶囊；选中 / 悬停 = 文字下方一条红色下划线（与文字留点距离）
   文字色用变量：模板 header 是深色时，页面会输出 --zq-nav-fg 等变量把菜单改成浅色字，
   避免「深色 header + 深色字」看不清（默认是浅色 header 用的深灰字） */
.zq-nav-wrap .nav > li > a {
    position: relative;
    display: inline-block;
    padding: 9px 10px !important;
    background: transparent !important;
    color: var(--zq-nav-fg, #3f4652) !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-weight: 500;
}
.zq-nav-wrap .nav > li > a::after {
    content: ""; position: absolute; left: 10px; right: 10px; bottom: 3px;
    height: 2px; border-radius: 2px; background: var(--zq-nav-line, var(--zq-accent, #C30D23));
    transform: scaleX(0); transform-origin: 50% 50%;
    transition: transform .18s ease;
}
.zq-nav-wrap .nav > li > a:hover,
.zq-nav-wrap .nav > li.on > a {
    background: transparent !important;
    color: var(--zq-nav-fg-on, var(--zq-accent, #C30D23)) !important;
}
.zq-nav-wrap .nav > li > a:hover::after { transform: scaleX(1); }
.zq-nav-wrap .nav > li.on > a { font-weight: 700; }
.zq-nav-wrap .nav > li.on > a::after { transform: scaleX(1); }
/* 顶部菜单项里有图标时：图标 + 文字横排，图标跟着文字色走（悬停 / 选中一起变红） */
.zq-nav-wrap .nav > li > a { display: inline-flex; align-items: center; gap: 5px; }
.zq-nav-wrap .nav > li > a .zq-nav-ic {
    display: inline-flex; align-items: center; justify-content: center;
    opacity: .78; transition: opacity .16s ease, transform .16s ease;
}
.zq-nav-wrap .nav > li > a .zq-nav-ic svg { width: 15px; height: 15px; }
.zq-nav-wrap .nav > li.on > a .zq-nav-ic,
.zq-nav-wrap .nav > li > a:hover .zq-nav-ic { opacity: 1; }
.zq-nav-wrap .nav > li > a:hover .zq-nav-ic { transform: translateY(-1px); }

/* 顶部「更多」下拉：菜单超过一行上限时，多出来的栏目收进来 */
/* 注意：li 不做定位锚点，「更多」面板改为相对整个 header 定位（全宽展开） */
.zq-nav-wrap .nav > li.zq-nav-more { position: static; }
.zq-nav-wrap .nav > li.zq-nav-more > a { cursor: pointer; user-select: none; }
/* 「更多」后面的下拉三角：CSS 绘制，跟随文字颜色；展开时翻转成朝上箭头 */
.zq-nav-wrap .nav > li.zq-nav-more .zq-nav-caret {
    display: inline-block;
    width: 0; height: 0;
    margin-left: 5px;
    vertical-align: middle;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid currentColor;   /* 收起：朝下 */
    opacity: .65;
}
.zq-nav-wrap .nav > li.zq-nav-more.open .zq-nav-caret {
    border-top: 0;
    border-bottom: 5px solid currentColor; /* 展开：朝上 */
    opacity: .9;
}
/* 顶部「更多」面板：与网站内容区（header 的 .wrap）同宽，左边资讯平台（栏目）/ 右边功能区（功能入口）
   宽度 / 左偏移由页脚脚本按 .wrap 实测值写入，这里是没脚本时的兜底 */
.zq-nav-wrap .nav > li.zq-nav-more > .zq-nav-panel {
    display: none;
    position: absolute; top: 100%; left: 50%; right: auto; z-index: 70;
    transform: translateX(-50%);
    width: min(1140px, calc(100vw - 32px)); max-width: none;
    max-height: 70vh; overflow-y: auto;
    padding: 14px 18px 16px;
    background: #fff;
    border: 1px solid rgba(127, 127, 127, .22);
    border-radius: 0 0 10px 10px;
    box-shadow: 0 18px 40px rgba(0, 0, 0, .16);
}
.zq-nav-wrap .nav > li.zq-nav-more.open > .zq-nav-panel { display: flex; gap: 18px; }
.zq-nav-panel .zq-nav-pcol { flex: 1 1 0; min-width: 0; }
/* 左栏（栏目 3 列）比右栏（功能 2 列）宽一些 */
.zq-nav-panel .zq-nav-pcol-news { flex: 0 0 58%; }
.zq-nav-panel .zq-nav-pcol-func { flex: 1 1 auto; }
.zq-nav-panel .zq-nav-pcol + .zq-nav-pcol { border-left: 1px solid rgba(127, 127, 127, .16); padding-left: 18px; }
.zq-nav-panel h4 {
    margin: 0 0 8px; padding-bottom: 6px;
    font-size: 12.5px; font-weight: 700; letter-spacing: .4px; color: #9aa1ab;
    border-bottom: 1px solid rgba(127, 127, 127, .14);
}
.zq-nav-panel ul { list-style: none; margin: 0; padding: 0; }
/* 左栏：栏目 3 列网格（栏目多时面板不会拉太长） */
.zq-nav-pcol-news ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2px 6px; }
/* 右栏：功能入口双列网格（带小图标） */
.zq-nav-pcol-func ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 6px; }
.zq-nav-panel li { list-style: none; min-width: 0; }
/* 面板项：与顶部菜单一致——无背景、无边框胶囊；选中 / 悬停 = 红色下划线 + 红字 */
.zq-nav-panel li > a {
    position: relative;
    display: inline-flex; align-items: center; gap: 7px;
    max-width: 100%;
    padding: 8px 6px;
    font-size: 14px; line-height: 1.5;
    color: #3f4652 !important; background: transparent !important; text-decoration: none;
    border: 0 !important; border-radius: 0 !important; box-shadow: none !important;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.zq-nav-panel li > a::after {
    content: ""; position: absolute; left: 6px; right: 6px; bottom: 2px;
    height: 2px; border-radius: 2px; background: var(--zq-accent, #C30D23);
    transform: scaleX(0); transform-origin: 50% 50%;
    transition: transform .18s ease;
}
.zq-nav-panel li > a svg { flex: 0 0 auto; width: 16px; height: 16px; opacity: .8; }
.zq-nav-panel li > a span { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.zq-nav-panel li > a:hover { color: var(--zq-accent, #C30D23) !important; background: transparent !important; }
.zq-nav-panel li > a:hover::after { transform: scaleX(1); }
.zq-nav-panel li.on > a { color: var(--zq-accent, #C30D23) !important; font-weight: 700; background: transparent !important; }
.zq-nav-panel li.on > a::after { transform: scaleX(1); }
.zq-nav-panel li.on > a svg { opacity: 1; }

/* ---------- 「更多」面板：和手机端一致的九宫格卡片（图标在上、文字在下） ---------- */
/* 左栏栏目 4 列、右栏功能 3 列：面板 ~1140px 宽时每格 140px 左右，跟手机卡片同一比例 */
.zq-nav-panel .zq-nav-pcol-news ul { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.zq-nav-panel .zq-nav-pcol-func ul { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.zq-nav-panel li > a {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 80px;
    padding: 12px 6px 10px !important;
    border-radius: 12px;
    background: #f5f6f8 !important;
    text-align: center;
    transition: background .16s ease, color .16s ease, transform .12s ease;
}
/* 卡片式不需要文字下的红色横线 */
.zq-nav-panel li > a::after { display: none !important; }
.zq-nav-panel li > a:hover { background: #edeff2 !important; transform: translateY(-1px); }
.zq-nav-panel .zq-nav-ic {
    display: inline-flex; align-items: center; justify-content: center;
    flex: 0 0 auto; width: 24px; height: 24px;
    background: transparent !important; color: #64748b;
    transition: color .16s ease;
}
.zq-nav-panel .zq-nav-ic svg { width: 22px; height: 22px; }
.zq-nav-panel .zq-nav-tx {
    max-width: 100%; font-size: 13px; line-height: 1.3;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
/* 悬停 / 当前项：主题色淡底 + 主题色字和图标（--zq-accent 默认红，深色 header 模板可在页头补丁里改成主题色） */
.zq-nav-panel li > a:hover,
.zq-nav-panel li.on > a { color: var(--zq-accent, #C30D23) !important; }
.zq-nav-panel li > a:hover .zq-nav-ic,
.zq-nav-panel li.on > a .zq-nav-ic { color: var(--zq-accent, #C30D23) !important; }
.zq-nav-panel li.on > a { background: var(--zq-accent-soft, #fff1f2) !important; }
/* 分区标题左侧一条主题色小竖条 */
.zq-nav-panel h4 { display: flex; align-items: center; gap: 6px; }
.zq-nav-panel h4::before {
    content: ""; width: 3px; height: 12px; border-radius: 2px; background: var(--zq-accent, #C30D23); opacity: .85;
}
/* 功能区图标循环配色（卡片无底色，只给图标上色，8 色一轮） */
.zq-nav-pcol-func li:nth-child(8n+1) .zq-nav-ic { color: #4f46e5; }
.zq-nav-pcol-func li:nth-child(8n+2) .zq-nav-ic { color: #e11d48; }
.zq-nav-pcol-func li:nth-child(8n+3) .zq-nav-ic { color: #059669; }
.zq-nav-pcol-func li:nth-child(8n+4) .zq-nav-ic { color: #ea580c; }
.zq-nav-pcol-func li:nth-child(8n+5) .zq-nav-ic { color: #7c3aed; }
.zq-nav-pcol-func li:nth-child(8n+6) .zq-nav-ic { color: #2563eb; }
.zq-nav-pcol-func li:nth-child(8n+7) .zq-nav-ic { color: #0d9488; }
.zq-nav-pcol-func li:nth-child(8n+8) .zq-nav-ic { color: #ca8a04; }
.zq-nav-pcol-func li > a:hover .zq-nav-ic,
.zq-nav-pcol-func li.on > a .zq-nav-ic { color: var(--zq-accent, #C30D23) !important; }


.zq-nav-wrap .nav > li.zq-nav-more > ul {
    /* 展开后按 2 列排布，栏目多时面板不会拉得过长 */
    display: none; position: absolute; top: 100%; left: 0; z-index: 60;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2px 4px;
    min-width: 320px; max-width: min(520px, calc(100vw - 32px));
    max-height: 62vh; overflow-y: auto;
    margin: 4px 0 0; padding: 6px;
    list-style: none;
    background: #fff;
    border: 1px solid rgba(127, 127, 127, .25);
    border-radius: 8px;
    box-shadow: 0 14px 30px rgba(0, 0, 0, .14);
}
.zq-nav-wrap .nav > li.zq-nav-more.open > ul { display: grid; }
.zq-nav-wrap .nav > li.zq-nav-more > ul > li { list-style: none; min-width: 0; }
.zq-nav-wrap .nav > li.zq-nav-more > ul > li > a {
    display: block; padding: 8px 12px;
    font-size: 14px; line-height: 1.6;
    color: #333; text-decoration: none;
    border: 0; border-radius: 6px; background: transparent;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.zq-nav-wrap .nav > li.zq-nav-more > ul > li > a:hover,
.zq-nav-wrap .nav > li.zq-nav-more > ul > li.on > a {
    background: rgba(127, 127, 127, .12); color: #111;
}

/* 汉堡按钮（桌面隐藏）：固定「浅灰底 + 深色三横」，不随 header 文字色走，
   深色 / 浅色模板的 header 上都清晰可见（点开变 ✕ 同色） */
.zq-nav-toggle {
    display: none;
    width: 40px; height: 36px;
    flex-shrink: 0;
    padding: 0;
    border: 1px solid rgba(127, 127, 127, .22);
    border-radius: 8px;
    background: #f3f4f6;
    cursor: pointer;
    position: relative;
    -webkit-tap-highlight-color: transparent;
}
.zq-nav-toggle span,
.zq-nav-toggle span::before,
.zq-nav-toggle span::after {
    position: absolute;
    left: 50%; width: 18px; height: 2px;
    margin-left: -9px;
    background: #1f2329;
    border-radius: 2px;
    opacity: .8;
    transition: transform .22s ease, opacity .18s ease;
}
.zq-nav-toggle span { top: 50%; margin-top: -1px; }
.zq-nav-toggle span::before { content: ""; top: -6px; }
.zq-nav-toggle span::after  { content: ""; top: 6px; }
/* 展开态：只让中间那条消失。这里绝不能写 opacity: 0 ——
   opacity 会作用到整个 span（含 ::before / ::after），✕ 会一起变透明，按钮就成空白方块 */
.zq-nav-toggle.on span { background: transparent; }
.zq-nav-toggle.on span::before,
.zq-nav-toggle.on span::after { background: #1f2329; }
.zq-nav-toggle.on span::before { transform: translateY(6px) rotate(45deg); opacity: .95; }
.zq-nav-toggle.on span::after  { transform: translateY(-6px) rotate(-45deg); opacity: .95; }

/* 手机端独立菜单（九宫格）+ 遮罩：桌面端整块不渲染，只有 ≤860px 才启用 */
.zq-mnav, .zq-mnav-mask { display: none; }

/* 主区域 */
.main { display: flex; gap: 20px; align-items: flex-start; }
.main > .content { flex: 1; min-width: 0; }
.main > .sidebar { flex-shrink: 0; }

/* 侧栏公告：顶部第 1 项，黑色细边强调"需要被看见" */
.sidebar .zq-announce { background: #fafafa; }
.sidebar .zq-announce h3 { color: #111; }
.sidebar .zq-announce ul li a { color: #111; }
.sidebar .zq-announce ul li .zq-ann-open { cursor: pointer; }

/* 公告详情弹层：点击无外链的公告时弹出（内容以纯文本写入，不解析 HTML） */
.zq-ann-modal {
    position: fixed; inset: 0; z-index: 999;
    display: flex; align-items: center; justify-content: center; padding: 18px;
}
.zq-ann-modal[hidden] { display: none; }
.zq-ann-mask { position: absolute; inset: 0; background: rgba(0, 0, 0, .45); }
.zq-ann-panel {
    position: relative; width: 100%; max-width: 440px; max-height: 78vh; overflow: auto;
    padding: 22px 24px 20px; border-radius: 14px;
    background: #fff; color: #111; box-shadow: 0 24px 60px rgba(0, 0, 0, .28);
}
.zq-ann-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.zq-ann-panel h4 { margin: 0; font-size: 17px; line-height: 1.5; font-weight: 700; }
.zq-ann-close {
    flex-shrink: 0; margin: -4px -6px 0 0; padding: 0 4px;
    font-size: 24px; line-height: 1; color: inherit; opacity: .5;
    background: transparent; border: 0; cursor: pointer;
}
.zq-ann-close:hover { opacity: 1; }
.zq-ann-time { margin-top: 5px; font-size: 12px; opacity: .5; }
.zq-ann-body {
    margin-top: 12px; font-size: 14px; line-height: 1.9;
    white-space: pre-wrap; word-break: break-word; opacity: .85;
}

/* 内容默认值（模板未定义时兜底） */
.content { word-break: break-word; }
.content h1, .content h2 { line-height: 1.45; }
.list-item { padding: 18px 0; border-bottom: 1px solid rgba(127, 127, 127, .1); }
.list-item:last-child { border-bottom: 0; }
.list-item h2 {
    font-size: 19px; font-weight: 700; line-height: 1.5; margin: 0 0 7px; min-width: 0;
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
}
.list-item h2 a {
    color: inherit; display: block; overflow: hidden; text-overflow: ellipsis;
    transition: color .15s ease;
}
.list-item h2 a:hover { color: #C30D23; }
.list-item .meta { font-size: 12.5px; color: #9aa1ab; margin-bottom: 7px; }

/* ---------- 站内搜索：分类 tab + 结果类型标签 ---------- */
.search-tabs {
    display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 16px;
    padding-bottom: 14px; border-bottom: 1px solid rgba(127, 127, 127, .12);
}
.search-tab {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 7px 14px; border: 1px solid rgba(127, 127, 127, .22); border-radius: 999px;
    font-size: 13.5px; color: #4b5563; text-decoration: none;
    transition: border-color .15s, color .15s, background .15s;
}
.search-tab b { font-weight: 600; font-size: 12.5px; color: #9aa1ab; }
.search-tab:hover { border-color: #111827; color: #111827; }
.search-tab.on { background: #111827; border-color: #111827; color: #fff; }
.search-tab.on b { color: rgba(255, 255, 255, .75); }
/* 结果卡上的来源标签：一眼看出这条属于哪个栏目 */
.search-type {
    display: inline-block; margin-right: 8px; padding: 2px 8px; border-radius: 4px;
    font-size: 11.5px; font-weight: 600; letter-spacing: .3px;
    background: #f3f4f6; color: #4b5563;
}
.search-type-article { background: #e5e7eb; color: #374151; }
.search-type-product { background: #ecfdf5; color: #047857; }
.search-type-flash   { background: #fef2f2; color: #b91c1c; }
.search-type-forum   { background: #fff7ed; color: #c2410c; }
.search-type-moment  { background: #f5f3ff; color: #6d28d9; }
.search-type-blog    { background: #f3f4f6; color: #111827; }
.search-type-blogger { background: #fdf2f8; color: #be185d; }
.list-item p {
    margin: 0; font-size: 14px; line-height: 1.75; color: #6b7280;
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
}

/* ---------- 列表项：有封面 → 图左文右；没封面 → 标题描述上下排 ---------- */
.list-item.has-img { display: flex; gap: 16px; align-items: flex-start; }
.list-item .li-thumb {
    flex: 0 0 180px; display: block; aspect-ratio: 16 / 9;
    border-radius: 10px; overflow: hidden; background: #f3f4f6;
    box-shadow: 0 0 0 1px rgba(17, 24, 39, .07), 0 1px 2px rgba(17, 24, 39, .05);
    transition: box-shadow .2s ease;
}
.list-item .li-thumb img {
    width: 100%; height: 100%; object-fit: cover; display: block;
    transition: transform .3s ease;
}
.list-item.has-img:hover .li-thumb {
    box-shadow: 0 0 0 1px rgba(17, 24, 39, .07), 0 6px 18px rgba(17, 24, 39, .12);
}
.list-item.has-img:hover .li-thumb img { transform: scale(1.05); }
.list-item .li-body { flex: 1 1 auto; min-width: 0; }
.list-item .li-top h2 { flex: 1 1 auto; }
@media (max-width: 640px) {
    /* 手机端列表：上图下文（图左文右在窄屏挤压严重），整宽 16:9 封面更耐看 */
    .list-item.has-img { display: block; }
    .list-item .li-thumb { width: 100%; flex: none; border-radius: 10px; }
    .list-item .li-body { margin-top: 9px; }
    .list-item h2 { font-size: 17px; }
    /* 标题最多 3 行、摘要最多 2 行，防止长文把卡片撑得参差不齐 */
    .list-item h2 a {
        display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden;
    }
    .list-item p {
        display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
    }
    .list-item .meta { font-size: 12px; }
    /* 点赞 / 抗议按钮行贴底，留出与下一条的间距 */
    .list-item .li-react { margin-top: 10px; margin-bottom: 4px; }
}

/* ---------- 列表项：点赞 / 抗议 ---------- */
.list-item .li-top { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.list-item .li-react { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.zq-vote {
    display: inline-flex; align-items: center; gap: 5px;
    padding: 4px 13px; border-radius: 999px; cursor: pointer;
    border: 1px solid #e5e7eb; background: #fafafa;
    color: #4b5563; font: inherit; font-size: 12.5px;
    transition: color .15s, border-color .15s, background .15s, transform .1s;
}
.zq-vote:hover { border-color: currentColor; background: #fff; }
.zq-vote:active { transform: scale(.95); }
.zq-vote b { font-weight: 700; }
.zq-vote.is-on { opacity: 1; font-weight: 600; border-color: currentColor; }
.zq-vote.is-on[data-vote="1"] { color: #111827; }
.zq-vote.is-on[data-vote="2"] { color: #dc2626; }
/* 点赞 / 抗议、问答赞同共用的手指向上 / 向下图标 */
.zq-vote-ico { display: inline-flex; align-items: center; }
.zq-vote-ico svg { display: block; width: 15px; height: 15px; }

/* ---------- 栏目页头部焦点区：栏目轮播 + 大标题 / 小标题 + 关键词标签 ----------
   配色走卡片变量，深色模板（暗夜 / 黑金）自动翻成深底浅字 */
.zq-cat-head {
    display: grid;
    grid-template-columns: 1.45fr 1fr;
    gap: 16px;
    margin: 0 0 12px;
    padding: 12px;
    background: var(--zq-card, #fff);
    border: 1px solid var(--zq-card-line, rgba(127, 127, 127, .16));
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(17, 24, 39, .05);
    min-width: 0;
}
/* 一张图都没有时退化成纯标题区（占满一行，仍是卡片） */
.zq-cat-head.no-slider { grid-template-columns: 1fr; }
.zq-cat-head-left { min-width: 0; }
/* 栏目轮播：比首页矮一点，别把栏目列表挤下去 */
.zq-cat-slider { margin: 0; }
.zq-cat-head-right {
    display: flex; flex-direction: column; justify-content: center; gap: 6px;
    min-width: 0; padding: 2px 0;
}
/* 大标题：加粗 + 两行摘要 */
.zq-cat-head-right .zq-cat-lead {
    display: block; padding: 2px 0 8px;
    border-bottom: 1px solid var(--zq-card-line, rgba(127, 127, 127, .14));
    color: var(--zq-card-fg, #1f2733); text-decoration: none;
}
.zq-cat-head-right .zq-cat-lead b {
    display: block; font-size: 19px; line-height: 1.5; font-weight: 700;
}
.zq-cat-head-right .zq-cat-lead span {
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
    margin-top: 5px; font-size: 13.5px; line-height: 1.7;
    color: var(--zq-card-fg2, #6b7280);
}
.zq-cat-head-right .zq-cat-lead:hover b { color: #e60012; }
/* 小标题：圆点 + 单行标题 */
.zq-cat-head-right .zq-cat-sub {
    display: flex; align-items: baseline; gap: 7px;
    padding: 4px 0; font-size: 15px; line-height: 1.6;
    color: var(--zq-card-fg, #374151); text-decoration: none;
}
.zq-cat-head-right .zq-cat-sub i {
    flex: none; width: 5px; height: 5px; margin-top: 8px; border-radius: 50%;
    background: rgba(127, 127, 127, .5);
}
.zq-cat-head-right .zq-cat-sub:hover { color: #e60012; }
/* 关键词标签：胶囊，hover 变红 */
.zq-cat-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.zq-cat-tag {
    font-size: 13.5px; line-height: 1; text-decoration: none;
    padding: 7px 14px; border-radius: 999px;
    color: var(--zq-card-fg, #374151);
    background: var(--zq-card, #fff);
    border: 1px solid var(--zq-card-line, rgba(127, 127, 127, .22));
    transition: color .15s, border-color .15s, background .15s;
}
.zq-cat-tag:hover { color: #e60012; border-color: #e60012; background: rgba(230, 0, 18, .05); }
@media (max-width: 860px) {
    .zq-cat-head { grid-template-columns: 1fr; }
    .zq-cat-head-right .zq-cat-lead b { font-size: 17.5px; }
    .zq-cat-tag { padding: 6px 12px; font-size: 13px; }
}

/* ---------- 栏目页：栏目简介（后台按语言填写） ---------- */
.cat-intro {
    margin: 0 0 16px;
    padding: 14px 18px;
    border-radius: 10px;
    border: 1px solid rgba(127, 127, 127, .18);
    font-size: 14.5px;
    line-height: 1.9;
    opacity: .9;
}

/* ---------- 导购：分类 / 标签导航 ---------- */
.p-nav {
    display: flex; align-items: center; flex-wrap: wrap; gap: 6px 8px;
    margin: 0 0 10px; padding-bottom: 10px;
    border-bottom: 1px solid rgba(127, 127, 127, .14);
}
.p-nav-tags { border-bottom: 0; padding-bottom: 0; margin-bottom: 14px; }
.p-nav-label { margin-right: 2px; font-size: 13px; opacity: .6; }
.p-chip {
    display: inline-block; padding: 4px 13px; border-radius: 999px;
    border: 1px solid #e2e2e2; background: #fff;
    font-size: 12.5px; color: #555; text-decoration: none;
}
.p-chip:hover { border-color: #111827; color: #111827; text-decoration: none; }
.p-chip.is-on { font-weight: 600; background: #111827; border-color: #111827; color: #fff; }
.p-chip-tag { padding: 3px 11px; background: #f4f4f4; border-color: #ececec; }

/* 详情页：分类 / 标签行 */
.p-meta-row {
    display: flex; align-items: center; flex-wrap: wrap; gap: 6px 8px;
    margin: 0 0 16px; font-size: 13px;
}
.p-meta-label { color: #888; margin-right: 2px; }

/* ---------- 产品导购：卡片网格 ---------- */
.zq-products {
    display: grid; gap: 14px; margin: 0 0 16px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.p-card {
    display: flex; flex-direction: column; overflow: hidden; background: #fff;
    border: 1px solid #e8e8e8; border-radius: 8px;
}
.p-card:hover { border-color: #111827; }
.p-card-img { display: block; background: #f4f4f4; }
.p-card-img img { display: block; width: 100%; height: 170px; object-fit: cover; }
.p-card-body { padding: 12px 14px 14px; display: flex; flex-direction: column; flex: 1 1 auto; }
.p-card-body h3 {
    margin: 0 0 6px; font-size: 15px; line-height: 1.5; font-weight: 600;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.p-card-body h3 a { color: inherit; text-decoration: none; }
.p-card-body h3 a:hover { text-decoration: underline; }
.p-card-body p {
    margin: 0 0 10px; font-size: 12.5px; line-height: 1.7; color: #777;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.p-card-foot { margin-top: auto; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.p-price { color: #dc2626; font-weight: 700; font-size: 15px; }
.p-card-rate { font-size: 12px; color: #777; }
.p-card-rate i { font-style: normal; color: #f59e0b; }
.p-more { margin-left: auto; font-size: 12.5px; color: #555; text-decoration: none; }
.p-more:hover { color: #000; text-decoration: underline; }

/* ---------- 下载频道：前台列表 / 详情 ---------- */
/* 没封面时用标题首字做一个浅灰方块，卡片高度保持一致 */
.zq-dl-nocover {
    display: flex; align-items: center; justify-content: center;
    height: 170px; background: #f4f4f4; color: #9ca3af;
    font-size: 30px; font-weight: 700;
}
.zq-dl-downs { font-size: 12.5px; color: #555; }
.zq-dl-downs b { color: #111827; }
@media (max-width: 640px) {
    .zq-dl-nocover { height: 130px; font-size: 26px; }
}

/* ---------- 论坛：正文占满整行，「热门帖子 / 板块」挂在站点右侧栏 ---------- */
.zq-forum-wrap { display: flex; gap: 20px; align-items: flex-start; }
.zq-forum-main { flex: 1 1 auto; min-width: 0; }
/* 微博式动态 /moments/：发布框 + 卡片流 */

/* 侧栏「最新动态」（排在公告上面）：两行结构——首行「用户名 + 认证V + 相对时间」，次行内容 */
.zq-moment-side-list { list-style: none; margin: 0; padding: 0; }
.zq-moment-side-list li { border-bottom: 1px dashed #e8e8e8; }
.zq-moment-side-list li:last-child { border-bottom: 0; }
.zq-moment-side-list a {
    display: block; padding: 9px 0; color: #374151; text-decoration: none; font-size: 13.5px;
}
.zq-moment-side-list a:hover .zq-moment-side-text { color: #000; }
/* 首行：名字靠左、时间靠右，基线对齐 */
.zq-moment-side-head {
    display: flex; align-items: center; gap: 5px;
    margin-bottom: 3px;
}
/* 用户名：半透明中性底（深浅主题自动融入，不再出现白胶囊压深色页面） */
.zq-moment-side-name {
    display: inline-block; max-width: 9em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    padding: 1px 8px; border-radius: 999px;
    background: rgba(127, 127, 127, .16); color: inherit;
    font-size: 12px; font-weight: 600; line-height: 18px;
}
.zq-moment-side-list a:hover .zq-moment-side-name { background: rgba(127, 127, 127, .28); }
/* 相对时间：小字灰色，推到行尾 */
.zq-moment-side-time {
    margin-left: auto; flex-shrink: 0;
    font-size: 11.5px; color: #9ca3af;
}
.zq-moment-side-text {
    display: block; color: #4b5563; line-height: 1.45;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* ---------- 侧栏「广场」滚动版：一屏 5 条，每 4 秒往上滚一屏（共 20 条循环） ---------- */
/* 视口高度 = 5 行 × 62px（两行结构：首行名字+时间，次行内容），滚出视口的部分裁掉 */
.zq-moment-side-vp { position: relative; overflow: hidden; height: 310px; }
/* 底部渐隐：用 mask 把列表自身淡出（白条改这里——
   以前是一层白色渐变盖板，深色主题下成了一条白雾粗边） */
.zq-moment-side-vp {
    -webkit-mask-image: linear-gradient(180deg, #000 0, #000 calc(100% - 24px), transparent);
    mask-image: linear-gradient(180deg, #000 0, #000 calc(100% - 24px), transparent);
}
.zq-moment-side-vp .zq-moment-side-list {
    will-change: transform;
    transition: transform .55s cubic-bezier(.22, .61, .36, 1);
}
/* 每行等高（滚动位移按实测行高算），固定高度保证一屏正好 5 条 */
.zq-moment-side-vp .zq-moment-side-list li {
    height: 62px; box-sizing: border-box; overflow: hidden;
}
.zq-moment-side-vp .zq-moment-side-list a {
    display: block; width: 100%; min-width: 0; height: 100%; padding: 0;
}
.zq-moment-side-vp .zq-moment-side-name {
    max-width: 8.5em;
}
/* 滚动版里认证 V 跟在名字后面 */
.zq-moment-side-vp .zq-v { flex: 0 0 auto; }
.zq-moment-side-vp .zq-moment-side-text {
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
/* 末尾复制的 5 条：只是用来无缝接回开头，不参与交互 */
.zq-moment-side-vp .zq-moment-side-list li.is-dup { pointer-events: none; }

.zq-moment-side-more {
    display: block; margin-top: 10px; text-align: right; font-size: 13px;
    color: #374151; text-decoration: none;
}
.zq-moment-side-more:hover { color: #000; text-decoration: underline; }

/* 动态里的链接预览卡（贴网址自动生成） */
.zq-moment-link {
    display: flex; gap: 12px; align-items: stretch;
    margin-top: 10px; padding: 10px; border: 1px solid #e3e6ec; border-radius: 10px;
    background: #fafafa; text-decoration: none;
    color: #1f2328;   /* 浅底链接卡固定深字 */
    transition: border-color .15s;
}
.zq-moment-link:hover { border-color: #111827; background: #f4f4f4; }
.zq-moment-link-img { flex-shrink: 0; width: 96px; }
.zq-moment-link-img img {
    width: 96px; height: 68px; object-fit: cover; border-radius: 6px; display: block; background: #eee;
}
.zq-moment-link-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.zq-moment-link-main b { font-size: 14px; color: #1f2937; line-height: 1.5; }
.zq-moment-link-desc {
    font-size: 12.5px; color: #6b7280; line-height: 1.6;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.zq-moment-link-host { font-size: 12px; color: #9aa2b1; }
.zq-moment-quote .zq-moment-link { background: #fff; margin-top: 8px; }
@media (max-width: 640px) {
    .zq-moment-link-img, .zq-moment-link-img img { width: 72px; height: 54px; }
}

/* 发布框 */
.zq-moment-box {
    background: #fff; border: 1px solid #eef0f4; border-radius: 12px;
    padding: 16px 18px; margin-bottom: 18px;
}
.zq-moment-form textarea,
.zq-moment-form input[type=text] {
    width: 100%; box-sizing: border-box; margin-bottom: 8px;
    padding: 10px 12px; border: 1px solid #e3e6ec; border-radius: 8px;
    font: inherit; font-size: 14px; color: #1f2937; background: #fbfcfe;
}
.zq-moment-form textarea { resize: vertical; min-height: 78px; line-height: 1.7; }
.zq-moment-form textarea:focus,
.zq-moment-form input[type=text]:focus {
    outline: none; border-color: #111827; background: #fff;
}
.zq-moment-form .help { font-size: 12px; color: #9aa2b1; margin: 0 0 10px; }
.zq-moment-moods { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 2px 0 10px; }
.zq-moment-moods-label { font-size: 13px; color: #6b7280; margin-right: 2px; }
.zq-moment-mood-opt { cursor: pointer; }
.zq-moment-mood-opt input { position: absolute; opacity: 0; pointer-events: none; }
.zq-moment-mood-opt span {
    display: inline-block; padding: 4px 10px; border: 1px solid #e3e6ec;
    border-radius: 999px; font-size: 12.5px; color: #6b7280; background: #fff;
    transition: all .15s;
}
.zq-moment-mood-opt input:checked + span {
    border-color: #111827; color: #111827; background: #f3f4f6; font-weight: 600;
}
.zq-moment-frow { margin-top: 10px; }
.zq-moment-form button[type=submit] {
    padding: 9px 26px; border: 0; border-radius: 8px; cursor: pointer;
    background: #111827; color: #fff; font-size: 14px; font-weight: 600;
}
.zq-moment-form button[type=submit]:hover { background: #e02020; }

/* 卡片流 */
.zq-moment { display: flex; gap: 12px; padding: 16px 0; border-bottom: 1px solid #f0f2f6; }
.zq-moment:last-child { border-bottom: 0; }
.zq-moment-side { flex-shrink: 0; }
.zq-moment-avatar {
    display: flex; align-items: center; justify-content: center;
    width: 42px; height: 42px; border-radius: 50%;
    background: linear-gradient(135deg, #9ca3af, #111827);
    color: #fff; font-size: 17px; font-weight: 600;
}
.zq-moment-main { flex: 1; min-width: 0; }
.zq-moment-head {
    display: flex; align-items: center; flex-wrap: wrap; gap: 8px;
    font-size: 14px; margin-bottom: 6px;
}
.zq-moment-head b { color: #1f2937; }
.zq-moment-tag {
    padding: 1px 6px; border-radius: 4px; font-size: 11px;
    color: #111827; background: #f3f4f6;
}
/* 认证 V 徽章：个人 = 金黄色，企业 = 蓝色（昵称后面那个小 V） */
.zq-v {
    display: inline-flex; align-items: center; justify-content: center;
    width: 15px; height: 15px; margin-left: 4px; vertical-align: 1px;
    font-size: 10.5px; font-weight: 800; line-height: 1; color: #fff;
    border-radius: 50%; letter-spacing: 0;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .04);
    font-family: -apple-system, "Segoe UI", Arial, sans-serif;
}
.zq-v-personal { background: #f5b301; }   /* 个人认证：黄色 V */
.zq-v-company  { background: #1d9bf0; }   /* 企业认证：蓝色 V */

.zq-moment-mood { font-size: 12.5px; color: #6b7280; }
/* 悬停显示完整发布时间，给个 help 光标提示 */
.zq-moment-time { margin-left: auto; font-size: 12px; color: #9aa2b1; cursor: help; white-space: nowrap; }
.zq-moment-text { font-size: 14.5px; line-height: 1.85; color: #374151; word-break: break-word; }
.zq-moment-video { margin-top: 10px; }
.zq-moment-video iframe {
    width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: 10px; display: block;
}
.zq-moment-quote {
    margin: 10px 0 0; padding: 10px 14px; border-radius: 10px;
    background: #f7f8fa; border: 1px solid #eef0f4;
}
.zq-moment-quote-from { display: block; font-size: 12.5px; color: #6b7280; margin-bottom: 4px; }
.zq-moment-quote-text { font-size: 13.5px; line-height: 1.7; color: #4b5563; }
.zq-moment-acts {
    display: flex; align-items: center; flex-wrap: wrap; gap: 10px;
    margin-top: 10px; font-size: 13px;
}
.zq-moment-act-form { display: inline; margin: 0; }
.zq-moment-act {
    padding: 4px 10px; border: 0; border-radius: 999px; cursor: pointer;
    background: transparent; color: #6b7280; font-size: 13px; font: inherit;
    transition: all .15s;
}
.zq-moment-act:hover { background: #f4f4f6; color: #111827; }
.zq-moment-act.is-on { color: #e0245e; background: #fff0f4; font-weight: 600; }
.zq-moment-act b { font-weight: 600; margin-left: 2px; }
.zq-moment-share { display: inline-block; }
.zq-moment-share > summary {
    list-style: none; cursor: pointer; padding: 4px 10px; border-radius: 999px;
    color: #6b7280; font-size: 13px; display: inline-block;
}
.zq-moment-share > summary::-webkit-details-marker { display: none; }
.zq-moment-share > summary:hover { background: #f4f4f6; color: #111827; }
.zq-moment-share[open] > summary { background: #f4f4f6; color: #111827; }
.zq-moment-share-body {
    display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px;
    padding: 10px 12px; border: 1px solid #eef0f4; border-radius: 10px; background: #fbfcfe;
}
.zq-moment-share-body .zq-act {
    padding: 3px 9px; border-radius: 999px; font-size: 12px;
    color: #4b5563; background: #fff; border: 1px solid #e3e6ec; text-decoration: none;
}
.zq-moment-share-body .zq-act:hover { border-color: #111827; color: #111827; }
.zq-moment-empty { padding: 26px 0; text-align: center; color: #9aa2b1; font-size: 14px; }

@media (max-width: 640px) {
    .zq-moment { gap: 9px; }
    .zq-moment-avatar { width: 34px; height: 34px; font-size: 15px; }
    .zq-moment-time { margin-left: 0; width: 100%; }
}

/* 侧栏「更新日历」：哪些日期更新过内容，点日期进 /date/2026-10-18/ */
.zq-cal-head {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 10px;
}
.zq-cal-title { font-size: 13.5px; font-weight: 600; color: #374151; }
.zq-cal-nav {
    width: 24px; height: 24px; line-height: 1; padding: 0;
    border: 1px solid #e5e7eb; border-radius: 6px; background: #fff;
    color: #6b7280; font-size: 15px; cursor: pointer; transition: all .15s;
}
.zq-cal-nav:hover { border-color: #111827; color: #111827; }
.zq-cal-grid { width: 100%; border-collapse: collapse; table-layout: fixed; }
.zq-cal-grid th {
    padding: 4px 0; font-size: 12px; font-weight: 500; color: #9ca3af; text-align: center;
}
.zq-cal-grid td { padding: 1px; text-align: center; }
.zq-cal-out { border: 0; }
.zq-cal-day > span,
.zq-cal-day > a {
    display: block; height: 28px; line-height: 28px; border-radius: 6px;
    font-size: 13px; color: #4b5563; text-decoration: none;
}
.zq-cal-day > a:hover { background: #f3f4f6; color: #111827; }
.zq-cal-day.has-up > a {
    background: #f3f4f6; color: #111827; font-weight: 600; position: relative;
}
.zq-cal-day.has-up > a::after {
    content: ''; position: absolute; left: 50%; bottom: 3px;
    width: 3px; height: 3px; margin-left: -1.5px;
    border-radius: 50%; background: #111827;
}
.zq-cal-day.is-today > span,
.zq-cal-day.is-today > a { box-shadow: inset 0 0 0 1px #9ca3af; }
/* 没更新的日子：也能点（进去是当天归档页），但颜色淡下去，
   跟「有更新」的加粗 + 圆点区分开 */
.zq-cal-day.zq-cal-none > a { color: #b0b7c3; }
.zq-cal-day.zq-cal-none > a:hover { background: #f7f8fa; color: #6b7280; }
.zq-cal-day.zq-cal-future > span { color: #d1d5db; }
.zq-cal-empty { margin: 8px 0 0; font-size: 12px; color: #9ca3af; }

/* 侧栏里的首页栏目区块（紧跟「更新日历」下方）：窄栏下按紧凑卡片排 */
.zq-side-cats .cat-blocks { display: flex; flex-direction: column; gap: 16px; margin: 0; }
.zq-side-cats .cat-block { padding: 12px 14px 6px; box-shadow: none; }
.zq-side-cats .cat-block-head { margin-bottom: 8px; padding-bottom: 6px; }
.zq-side-cats .cat-block-head h2 { font-size: 15px; }
.zq-side-cats .cat-block-more { font-size: 12px; }
.zq-side-cats .cat-block-list li { padding: 7px 0; font-size: 13.5px; gap: 8px; }
.zq-side-cats .cat-block-list li a {
    display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.zq-side-cats .cat-block-list li span { font-size: 12px; }

/* 侧栏里的论坛模块（热门帖子 / 板块）：和 .box 一样的卡片间距 */
.sidebar .zq-fside { margin-bottom: 12px; }
.sidebar .zq-fside:last-child { margin-bottom: 12px; }
.zq-fside {
    padding: 12px 14px; border: 1px solid #e8e8e8; border-radius: 8px; background: #fff;
}
.zq-fside h3 {
    margin: 0 0 10px; padding-left: 9px; font-size: 14px; font-weight: 600; color: #111827;
    border-left: 3px solid #111827;
}
.zq-fside-list { list-style: none; margin: 0; padding: 0; }
.zq-fside-list li {
    display: flex; align-items: center; gap: 8px; padding: 7px 0;
    border-bottom: 1px solid #f2f2f2; font-size: 13.5px;
}
.zq-fside-list li:last-child { border-bottom: 0; }
.zq-fside-list a {
    flex: 1 1 auto; min-width: 0;
    color: #374151;   /* 白底侧卡固定深字 */
    text-decoration: none;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.zq-fside-list a:hover { color: #000; text-decoration: underline; }
/* 热门排名序号：前三名黑底白字 */
.zq-fside-rank {
    flex: 0 0 18px; width: 18px; height: 18px; border-radius: 4px;
    background: #f4f4f4; color: #777; font-size: 11.5px; line-height: 18px; text-align: center;
}
.zq-fside-rank.top3 { background: #111827; color: #fff; }
.zq-fside-num { flex: 0 0 auto; font-size: 12px; color: #9ca3af; }
.zq-fside-empty { margin: 0; font-size: 13px; color: #9ca3af; }
@media (max-width: 900px) {
    .zq-forum-wrap { flex-direction: column; }
}

/* ---------- 产品详情 ---------- */
/* 封面：浅灰底居中，图片完整显示不变形 */
.p-cover {
    margin: 0 0 18px; padding: 18px; border-radius: 8px; background: #f4f4f4;
}
.p-cover img { display: block; width: 100%; max-height: 440px; object-fit: contain; margin: 0 auto; }

/* 小标题：左侧竖条 */
.p-h2 {
    margin: 26px 0 12px; padding-left: 10px;
    font-size: 17px; font-weight: 600; color: #111827;
    border-left: 3px solid #111827;
}

/* 相册：每格带浅灰底和细边，hover 描黑 */
.p-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.p-gallery a {
    display: block; border: 1px solid #e8e8e8; border-radius: 8px;
    overflow: hidden; background: #f4f4f4;
}
.p-gallery a:hover { border-color: #111827; }
.p-gallery img { display: block; width: 100%; height: 120px; object-fit: cover; }

.p-video { position: relative; width: 100%; padding-top: 56.25%; border-radius: 8px; overflow: hidden; background: #000; }
.p-video iframe, .p-video video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* 正文 */
.p-body { margin-top: 20px; font-size: 15px; line-height: 1.95; color: #333; }
.p-body img { max-width: 100%; height: auto; border-radius: 6px; }
.p-body h2 { margin: 22px 0 10px; font-size: 17px; }
.p-body h3 { margin: 18px 0 8px; font-size: 15.5px; }
.p-body blockquote {
    margin: 14px 0; padding: 10px 14px; border-left: 3px solid #111827;
    background: #f4f4f4; border-radius: 0 6px 6px 0; color: #555;
}

/* 价格 + 前往购买：浅灰卡片 + 黑按钮 */
.p-buy {
    display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
    margin: 18px 0; padding: 14px 16px; border-radius: 8px;
    border: 1px solid #e8e8e8; background: #f4f4f4;
}
.p-price-lg { font-size: 14px; color: #666; }
.p-price-lg b { margin-left: 4px; font-size: 22px; color: #dc2626; }
.p-buy-btn {
    display: inline-block; padding: 10px 26px; border-radius: 6px;
    background: #111827; color: #fff; font-size: 14.5px; font-weight: 600; text-decoration: none;
}
.p-buy-btn:hover { background: #e02020; color: #fff; text-decoration: none; }
/* 下载倒计时中：置灰并禁止再点，别让人以为点了没反应 */
.p-buy-btn.is-waiting { background: #6b7280; cursor: wait; pointer-events: none; }
/* 「在线演示」次要按钮：和下载按钮并排，用描边区分主次 */
.p-demo-btn {
    display: inline-block; padding: 9px 20px; border-radius: 6px;
    border: 1px solid #111827; background: #fff; color: #111827;
    font-size: 14.5px; font-weight: 600; text-decoration: none;
}
.p-demo-btn:hover { background: #f4f4f5; color: #111827; text-decoration: none; }

/* 评分 */
.p-rate {
    display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
    margin: 16px 0; padding: 12px 14px; border-radius: 8px;
    border: 1px solid #e8e8e8; background: #fff;
}
.p-rate-label { font-size: 14px; color: #555; }
.p-rate-stars { display: inline-flex; gap: 4px; }
.zq-star {
    background: none; border: 0; padding: 0; cursor: pointer;
    font-size: 24px; line-height: 1; color: #d9d9d9;
}
.zq-star:hover, .zq-star.is-on { color: #f59e0b; }
.p-rate-text { font-size: 13px; color: #777; }

/* 一句话卖点（导语） */
.p-lead {
    margin: 0 0 18px; padding: 12px 14px; border-left: 3px solid #111827;
    background: #f4f4f4; border-radius: 0 6px 6px 0;
    font-size: 14.5px; line-height: 1.8; color: #555;
}

/* 社交分享 */
.p-share { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 20px 0 4px; }
.p-share-label { font-size: 13.5px; opacity: .75; }
.zq-share {
    display: inline-flex; align-items: center; height: 30px; padding: 0 12px;
    border-radius: 999px; border: 1px solid rgba(127, 127, 127, .3);
    font-size: 12.5px; color: inherit; text-decoration: none; cursor: pointer;
    background: none; font-family: inherit; opacity: .85;
}
.zq-share:hover { opacity: 1; border-color: currentColor; }
.zq-share-x { border-color: rgba(0, 0, 0, .45); }
.zq-share-facebook { border-color: rgba(24, 119, 242, .55); color: #111827; }
.zq-share-whatsapp { border-color: rgba(17, 24, 39, .45); color: #111827; }
.zq-share-telegram { border-color: rgba(42, 171, 238, .55); color: #111827; }
.zq-share-weibo { border-color: rgba(230, 22, 45, .5); color: #e6162d; }

@media (max-width: 560px) {
    .zq-products { grid-template-columns: repeat(2, 1fr); gap: 10px; }
    .p-card-img img { height: 120px; }
    .p-card-body { padding: 8px 9px 10px; }
    .p-card-body h3 { font-size: 14px; }
}

/* ---------- 栏目页筛选栏 ---------- */
.zq-filter {
    display: flex; flex-wrap: wrap; gap: 8px; align-items: center;
    padding: 12px 14px; margin-bottom: 6px;
    border: 1px solid rgba(127, 127, 127, .22); border-radius: 10px;
}
.zq-filter select, .zq-filter input[type="text"] {
    height: 32px; padding: 0 8px; font: inherit; font-size: 13.5px;
    border: 1px solid rgba(127, 127, 127, .3); border-radius: 6px;
    background: none; color: inherit;
}
.zq-filter input[type="text"] { min-width: 180px; flex: 1 1 180px; }
.zq-filter button {
    height: 32px; padding: 0 16px; cursor: pointer;
    border: 1px solid rgba(127, 127, 127, .3); border-radius: 6px;
    background: none; color: inherit; font: inherit; font-size: 13.5px;
}
.zq-filter button:hover { border-color: currentColor; }
.zq-filter-reset { font-size: 13px; opacity: .7; }
.zq-filter-reset:hover { opacity: 1; }
.zq-filter-tip { font-size: 12.5px; opacity: .65; margin: 0 2px 10px; }

.article .body { font-size: 16px; line-height: 1.95; overflow-wrap: break-word; }
.article .body p { margin: 0 0 15px; }
.article .body img { max-width: 100%; height: auto; border-radius: 6px; }
/* 采集内容剥掉源站 picture/div 外壳后，图片可能直接裸在 .body 下（不在 <p> 里），
   默认行内会跟文字挤在一起 —— 这里统一给块级居中，避免版面错乱 */
.article .body > img { display: block; margin: 16px auto; }
.article .body p > img { display: block; margin: 10px auto; }
.article .body h2, .article .body h3 { margin: 22px 0 12px; line-height: 1.5; }
.article .body ul, .article .body ol { margin: 0 0 15px; padding-left: 22px; }
.article .body li { margin-bottom: 6px; }
.article .body blockquote {
    margin: 0 0 15px; padding: 10px 14px;
    border-left: 3px solid rgba(127, 127, 127, .35);
    background: rgba(127, 127, 127, .06);
}

.box ul { list-style: none; padding: 0; margin: 0; }
.box li { padding: 6px 0; font-size: 14px; }
.tags a, .friend-links a { display: inline-block; margin: 3px 6px 3px 0; }

/* 标签中心 /tags/：全部标签以药丸按钮排布 */
.zq-tag-center { margin-bottom: 4px; }
.zq-tag-head {
    display: flex; align-items: baseline; justify-content: space-between;
    gap: 10px; flex-wrap: wrap; margin: 0 0 16px;
}
.zq-tag-head h1 { margin: 0; font-size: 22px; font-weight: 800; letter-spacing: 1px; }
.zq-tag-head span { font-size: 12.5px; opacity: .6; }
.zq-tags-all a {
    margin: 0 8px 10px 0; padding: 6px 13px;
    border: 1px solid rgba(127, 127, 127, .3); border-radius: 15px;
    font-size: 13.5px; color: inherit; text-decoration: none;
}
.zq-tags-all a:hover { background: rgba(127, 127, 127, .12); border-color: currentColor; }
.zq-tag-empty { margin: 0; font-size: 14px; opacity: .7; }

/* 站点地图 /sitemap/ */
.zq-sitemap { margin-bottom: 4px; }
.zq-map-head {
    display: flex; align-items: baseline; justify-content: space-between;
    gap: 10px; flex-wrap: wrap; margin: 0 0 16px;
}
.zq-map-head h1 { margin: 0; font-size: 22px; font-weight: 800; letter-spacing: 1px; }
.zq-map-head span { font-size: 12.5px; opacity: .6; }
.zq-map-sec { margin: 0 0 22px; }
.zq-map-sec > h2 { margin: 0 0 12px; font-size: 17px; font-weight: 700; }
.zq-map-links { list-style: none; margin: 0; padding: 0; }
.zq-map-links li {
    display: flex; align-items: baseline; justify-content: space-between;
    gap: 12px; padding: 6px 0;
    border-bottom: 1px dashed rgba(127, 127, 127, .14);
}
.zq-map-links li:last-child { border-bottom: 0; }
.zq-map-links a {
    flex: 1; min-width: 0;
    color: inherit; text-decoration: none;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.zq-map-links a:hover { text-decoration: underline; }
.zq-map-links span { font-size: 12px; opacity: .5; flex-shrink: 0; }
/* 分类区两列排布，栏目多时页面不会太长 */
.zq-map-cats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; }
.zq-map-cat { margin: 0 0 16px; }
.zq-map-cat h3 { margin: 0 0 6px; font-size: 15px; font-weight: 700; }
.zq-map-cat h3 a { color: inherit; text-decoration: none; }
.zq-map-cat h3 a:hover { text-decoration: underline; }
.zq-map-empty { margin: 0; font-size: 13px; opacity: .55; }

/* 专题频道 /topic/：频道首页卡片列表 + 专题聚合页沿用列表模板 */
.zq-topic-center { margin-bottom: 4px; }
.zq-topic-head {
    display: flex; align-items: baseline; justify-content: space-between;
    gap: 10px; flex-wrap: wrap; margin: 0 0 16px;
}
.zq-topic-head h1 { margin: 0; font-size: 22px; font-weight: 800; letter-spacing: 1px; }
/* 辅助文字别压得太淡：opacity 太低会和背景糊在一起，浅色 / 深色模板上都看不清 */
.zq-topic-head span { font-size: 12.5px; opacity: .75; }
.zq-topic-empty { margin: 0; font-size: 14px; opacity: .7; }

/* 专题搜索：GET 表单，边框 / 文字跟随模板颜色，深底浅底都看得清 */
.zq-topic-search {
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
    margin: 0 0 16px;
}
.zq-topic-search input[type="search"] {
    flex: 1 1 220px; min-width: 0;
    padding: 8px 12px; font-size: 14px; line-height: 1.4;
    color: inherit; background: transparent;
    border: 1px solid rgba(127, 127, 127, .45);
    border: 1px solid color-mix(in srgb, currentColor 34%, transparent);
    border-radius: 999px;
    -webkit-appearance: none; appearance: none;
}
.zq-topic-search input[type="search"]::placeholder { color: inherit; opacity: .55; }
.zq-topic-search input[type="search"]:focus {
    outline: none;
    border-color: color-mix(in srgb, currentColor 70%, transparent);
}
.zq-topic-search button {
    flex: 0 0 auto;
    padding: 8px 18px; font-size: 14px; line-height: 1.4; cursor: pointer;
    color: #fff; background: #c30d23; border: 1px solid #c30d23; border-radius: 999px;
}
.zq-topic-search button:hover { background: #a80b1e; border-color: #a80b1e; }
.zq-topic-search-clear { flex: 0 0 auto; font-size: 13px; color: inherit; opacity: .75; }
.zq-topic-search-clear:hover { opacity: 1; }
/* 搜索结果条数提示 */
.zq-topic-search-tip {
    margin: 0 0 14px; padding: 8px 12px; font-size: 13px;
    border-left: 3px solid #c30d23; background: rgba(127, 127, 127, .08);
}

.zq-topic-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.zq-topic-card {
    display: flex; gap: 12px; padding: 14px;
    border: 1px solid rgba(127, 127, 127, .18); border-radius: 8px;
}
.zq-topic-cover { flex-shrink: 0; width: 96px; }
.zq-topic-cover img { width: 96px; height: 72px; object-fit: cover; border-radius: 6px; display: block; }
.zq-topic-body { flex: 1; min-width: 0; }
.zq-topic-body h2 { margin: 0 0 6px; font-size: 16px; font-weight: 700; }
.zq-topic-body h2 a { color: inherit; text-decoration: none; }
.zq-topic-body h2 a:hover { text-decoration: underline; }
.zq-topic-intro {
    margin: 0 0 8px; font-size: 13px; line-height: 1.6; opacity: .75;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.zq-topic-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 12.5px; }
.zq-topic-lb { opacity: .78; margin-left: 4px; }
.zq-topic-lb:first-child { margin-left: 0; }
.zq-topic-tag, .zq-topic-kw {
    padding: 2px 9px; border-radius: 12px; font-size: 12px;
    /* 边框跟随模板文字色（深底浅底都不会糊）；不支持 color-mix 的老浏览器退回固定灰 */
    border: 1px solid rgba(127, 127, 127, .45);
    border: 1px solid color-mix(in srgb, currentColor 34%, transparent);
    color: inherit; text-decoration: none; opacity: .92;
}
.zq-topic-kw:hover { background: rgba(127, 127, 127, .12); }
.zq-topic-more { display: inline-block; margin-top: 10px; font-size: 13px; color: inherit; opacity: .8; }
.zq-topic-more:hover { opacity: 1; }
@media (max-width: 700px) {
    .zq-topic-list { grid-template-columns: 1fr; }
}

/* ===== 小论坛 /forum/ =====
   黑白极简：主色近黑（#111827），浅色块 #f4f4f4，无渐变 / 无阴影 / 无位移动画 */
.zq-forum { max-width: 100%; --zq-primary: #111827; }

/* 头部：标题 + 一句话说明 + 发帖按钮 */
.zq-forum-head {
    display: flex; align-items: center; flex-wrap: wrap; gap: 10px 14px; margin: 0 0 16px;
}
.zq-forum-head h2 { margin: 0; font-size: 22px; letter-spacing: .2px; }
.zq-forum-head .zq-forum-desc { flex: 1 1 220px; min-width: 0; font-size: 13px; color: #8a8f98; }
.zq-forum-new {
    margin-left: auto; padding: 8px 18px; border-radius: 6px;
    background: #111827; color: #fff; font-size: 13.5px; font-weight: 500; text-decoration: none;
}
.zq-forum-new:hover { opacity: .85; color: #fff; text-decoration: none; }
.zq-forum-boarddesc { margin: -4px 0 12px; color: #888; font-size: 13px; }

/* 板块卡片 */
/* 论坛首页左右两栏：左边版块竖排，右边「推荐帖子」（1 大 + 5 小） */
.zq-forum-cols {
    display: grid; grid-template-columns: 320px minmax(0, 1fr);
    gap: 16px; align-items: start; margin: 0 0 20px;
}
.zq-forum-cols .zq-forum-boards { margin: 0; gap: 10px; }
/* 版块卡在窄栏里改成横排一行：图标 + 名字 + 统计，简介占第二行 */
.zq-forum-cols .zq-forum-board {
    flex-direction: row; flex-wrap: wrap; align-items: center;
    gap: 4px 10px; padding: 12px 14px;
}
.zq-forum-cols .zq-forum-bicon { width: 34px; height: 34px; margin-bottom: 0; font-size: 15px; }
.zq-forum-cols .zq-forum-board b { flex: 1; min-width: 0; }
.zq-forum-cols .zq-forum-board .zq-forum-desc { flex-basis: 100%; -webkit-line-clamp: 1; }
.zq-forum-cols .zq-forum-nums { margin: 0 0 0 auto; padding-top: 0; border-top: 0; }
.zq-forum-boards {
    display: grid; gap: 12px; margin: 0 0 20px;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
}
.zq-forum-board {
    display: flex; flex-direction: column; gap: 4px; padding: 14px 16px 12px;
    border: 1px solid #e2e2e2; border-radius: 6px;
    background: #fff; text-decoration: none;
    color: #1f2328;   /* 白底固定深字，深色模板里不继承 */
}
.zq-forum-board:hover { border-color: #111827; text-decoration: none; }
.zq-forum-bicon {
    display: flex; align-items: center; justify-content: center;
    width: 40px; height: 40px; margin-bottom: 6px;
    border-radius: 6px; background: #111827;
    color: #fff; font-size: 17px; font-weight: 700; line-height: 1;
}
.zq-forum-board b { font-size: 15.5px; }
.zq-forum-board .zq-forum-desc {
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
    overflow: hidden; min-height: 0; font-size: 12.5px; line-height: 1.5; color: #8a8f98;
}
.zq-forum-nums {
    display: flex; gap: 14px; margin-top: 8px; padding-top: 8px;
    border-top: 1px solid rgba(127, 127, 127, .12); font-size: 11.5px; color: #9ca3af;
}
.zq-forum-nums i { margin-right: 3px; font-style: normal; font-size: 14px; font-weight: 700; color: #4b5563; }

/* 推荐帖子位：1 条大卡 + 5 条小行 */
.zq-forum-rec { min-width: 0; }
.zq-forum-rec .zq-forum-sub { margin: 0 0 12px; }
.zq-forum-rec-empty {
    margin: 0; padding: 20px 16px; border: 1px dashed #d9d9d9; border-radius: 6px;
    color: #8a8f98; font-size: 13px;
}
.zq-forum-rec-big {
    display: block; padding: 16px 18px;
    border: 1px solid #e2e2e2; border-radius: 6px; background: #fff;
    transition: border-color .15s;
}
.zq-forum-rec-big:hover { border-color: #111827; }
.zq-forum-rec-title {
    display: block; margin: 0 0 8px;
    color: #111827; font-size: 18px; font-weight: 700; line-height: 1.4;
    text-decoration: none;
}
.zq-forum-rec-title:hover { text-decoration: none; }
.zq-forum-rec-sum {
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
    margin: 0 0 10px; color: #5f6672; font-size: 13.5px; line-height: 1.7;
}
.zq-forum-rec-meta { display: flex; gap: 12px; flex-wrap: wrap; font-size: 12px; color: #9ca3af; }
.zq-forum-rec-board { padding: 1px 8px; border-radius: 4px; background: #111827; color: #fff; }
.zq-forum-rec-list {
    list-style: none; margin: 10px 0 0; padding: 0; overflow: hidden;
    border: 1px solid #e2e2e2; border-radius: 6px; background: #fff;
}
.zq-forum-rec-list li {
    display: flex; align-items: center; gap: 10px; padding: 11px 16px;
    border-top: 1px solid rgba(127, 127, 127, .12);
}
.zq-forum-rec-list li:first-child { border-top: 0; }
.zq-forum-rec-list a {
    flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    color: #111827; font-size: 14px; text-decoration: none;
}
.zq-forum-rec-list a:hover { text-decoration: none; opacity: .75; }
.zq-forum-rec-list .m { flex: 0 0 auto; font-size: 12px; color: #9ca3af; }

@media (max-width: 900px) {
    .zq-forum-cols { grid-template-columns: 1fr; }
    /* 窄屏版块恢复原来的多列网格 */
    .zq-forum-cols .zq-forum-boards { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
}

/* 小标题：左侧竖条 */
.zq-forum-sub {
    display: flex; align-items: center; margin: 22px 0 12px; font-size: 16px;
}
.zq-forum-sub::before {
    content: ""; width: 3px; height: 15px; margin-right: 8px; border-radius: 2px;
    background: #111827;
}

/* 主题列表 */
.zq-forum-list, .zq-forum-posts { list-style: none; margin: 0; padding: 0; }
.zq-forum-item {
    display: flex; align-items: center; gap: 12px; margin-bottom: 8px; padding: 12px 14px;
    border: 1px solid #e8e8e8; border-radius: 6px; background: #fff;
}
.zq-forum-item:hover { background: #f4f4f4; border-color: #111827; }
.zq-forum-av {
    flex: 0 0 40px; display: flex; align-items: center; justify-content: center;
    width: 40px; height: 40px; border-radius: 50%;
    background: #111827;
    color: #fff; font-size: 16px; font-weight: 700;
}
.zq-forum-imain { flex: 1 1 auto; min-width: 0; }
.zq-forum-ititle { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.zq-forum-link { font-size: 15px; font-weight: 600; color: #1f2328; text-decoration: none; }
.zq-forum-link:hover { color: #111827; text-decoration: underline; }
.zq-forum-imeta { margin-top: 3px; font-size: 12px; color: #9ca3af; }
.zq-forum-count {
    flex: 0 0 auto; display: flex; flex-direction: column; align-items: center; justify-content: center;
    min-width: 46px; padding: 5px 8px; border-radius: 6px;
    background: #f4f4f4; text-align: center;
}
.zq-forum-count b { font-size: 15px; line-height: 1.2; color: #111827; }
.zq-forum-count i { font-style: normal; font-size: 11px; color: #777; }
.zq-forum-tag {
    display: inline-block; padding: 1px 7px; border-radius: 3px;
    font-size: 11.5px; background: #f2f2f2; color: #555;
}
.zq-forum-tag.top { background: #111827; color: #fff; }
.zq-forum-tag.good { background: #fff; color: #111827; box-shadow: inset 0 0 0 1px #111827; }
.zq-forum-tag.quote { background: #f4f4f4; color: #666; box-shadow: inset 0 0 0 1px #e2e2e2; }
.zq-forum-empty {
    padding: 24px 16px; border: 1px dashed #e2e2e2; border-radius: 6px;
    color: #777; font-size: 13.5px; text-align: center; background: #fafafa;
}
/* 板块没填描述时不占位 */
.zq-forum-board .zq-forum-desc:empty { display: none; }

/* 论坛里的分页：灰底黑字，当前页黑底白字 */
.zq-forum .pager a { border-color: #e2e2e2; opacity: 1; }
.zq-forum .pager a:hover { background: #f4f4f4; border-color: #111827; }
.zq-forum .pager a.active { background: #111827; border-color: #111827; color: #fff; }

/* 底部「查看全部主题 / 返回论坛首页」 */
.zq-forum-all { margin: 18px 0 0; font-size: 13px; text-align: center; }
.zq-forum-all a {
    display: inline-block; padding: 7px 20px; border: 1px solid #d9d9d9;
    border-radius: 6px; color: #111827; font-size: 13px; text-decoration: none;
}
.zq-forum-all a:hover {
    border-color: #111827; color: #111827; background: #f4f4f4; text-decoration: none;
}

@media (max-width: 640px) {
    .zq-forum-head h2 { font-size: 19px; }
    .zq-forum-head .zq-forum-desc { flex: 1 1 100%; }
    .zq-forum-boards { grid-template-columns: 1fr; }
    .zq-forum-item { gap: 10px; padding: 10px 12px; }
    .zq-forum-av { flex: 0 0 34px; width: 34px; height: 34px; font-size: 14px; }
    .zq-forum-count { min-width: 40px; padding: 4px 6px; }
    .zq-forum-link { font-size: 14.5px; }

    /* 产品导购：窄屏两列，封面与购买区收紧 */
    .zq-products { grid-template-columns: repeat(2, 1fr); gap: 10px; }
    .p-card-img img { height: 130px; }
    .p-cover { padding: 10px; margin-bottom: 14px; }
    .p-cover img { max-height: 300px; }
    .p-gallery { grid-template-columns: repeat(2, 1fr); gap: 10px; }
    .p-gallery img { height: 100px; }
    .p-buy { gap: 12px; padding: 12px 14px; }
    .p-buy-btn, .p-demo-btn { width: 100%; text-align: center; }
    .p-price-lg b { font-size: 20px; }
    .p-h2 { margin: 20px 0 10px; font-size: 16px; }
}
.zq-forum-topic h2 { margin: 0 0 6px; font-size: 20px; }
.zq-forum-meta { font-size: 12.5px; color: #999; margin-bottom: 10px; }
.zq-forum-quote {
    margin: 0 0 10px; padding: 8px 10px; border-radius: 6px; font-size: 13px;
    background: #f4f4f4; color: #555;
}
.zq-forum-body { font-size: 14.5px; line-height: 1.8; }
/* 回帖也用卡片，和主题列表风格一致 */
.zq-forum-post {
    margin-bottom: 8px; padding: 12px 14px; border-radius: 6px;
    border: 1px solid #e8e8e8; background: #fff;
}
.zq-forum-post:last-child { margin-bottom: 0; }
.zq-forum-pmeta {
    display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: #9ca3af; margin-bottom: 4px;
}
.zq-forum-pmeta b { color: #4b5563; font-weight: 600; }
.zq-forum-pbody { font-size: 14px; line-height: 1.75; color: #1f2328; }   /* 白底帖内固定深字 */
.zq-forum-form { margin-top: 18px; }
.zq-forum-form input[type=text], .zq-forum-form textarea, .zq-forum-form select {
    width: 100%; margin-bottom: 8px; padding: 8px 10px; font-size: 14px;
    border: 1px solid rgba(127, 127, 127, .25); border-radius: 6px;
    background: transparent; color: inherit;
}
.zq-forum-frow { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.zq-forum-frow input[type=text] { width: auto; flex: 0 0 150px; margin-bottom: 0; }
.zq-forum-me { font-size: 13px; color: #888; }
.zq-forum-form button {
    padding: 7px 18px; border: 0; border-radius: 6px; cursor: pointer;
    background: var(--zq-primary, #111827); color: #fff; font-size: 14px;
}
.zq-forum-all { margin: 18px 0 0; font-size: 13px; }
/* 管理员删除按钮（默认隐藏，页尾脚本判断是管理员才显示） */
.zq-forum-del {
    margin-left: 8px; padding: 1px 8px; border: 1px solid #d9d9d9;
    border-radius: 4px; background: transparent; color: #555;
    font-size: 12px; line-height: 1.6; cursor: pointer;
}
.zq-forum-del:hover { background: #f4f4f4; border-color: #111827; color: #111827; }
/* 正文里的图片与视频：自适应宽度，视频按 16:9 */
.zq-forum-body img, .zq-forum-pbody img { max-width: 100%; height: auto; border-radius: 6px; }
.zq-forum-body .zq-video, .zq-forum-pbody .zq-video {
    position: relative; width: 100%; max-width: 720px; margin: 10px 0;
    padding-top: 56.25%; height: 0; overflow: hidden; border-radius: 8px;
    background: rgba(127, 127, 127, .08);
}
.zq-forum-body .zq-video iframe, .zq-forum-pbody .zq-video iframe,
.zq-forum-body iframe, .zq-forum-pbody iframe {
    position: absolute; inset: 0; width: 100%; height: 100%; border: 0;
}
.zq-forum-body iframe, .zq-forum-pbody iframe {
    position: static; width: 100%; max-width: 720px; aspect-ratio: 16 / 9; height: auto;
}
.zq-forum-form .help { margin: -2px 0 10px; font-size: 12.5px; color: #999; }

/* 侧栏「查看全部标签」「产品导购」等更多链接：靠右对齐 */
.zq-box-more { margin: 10px 0 0; font-size: 12.5px; text-align: right; }
.zq-box-more a {
    color: inherit; opacity: .7; text-decoration: none;
}
.zq-box-more a:hover { opacity: 1; }

/* 分页 */
.pager { margin-top: 18px; display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
/* 下拉无限加载指示条：页码条被脚本隐藏后显示在这里 */
.zq-more {
    display: flex; align-items: center; justify-content: center; gap: 9px;
    margin-top: 26px; padding: 14px 0; color: inherit; opacity: .65;
    font-size: 13.5px;
}
.zq-more-spin {
    width: 18px; height: 18px; border-radius: 50%;
    border: 2px solid currentColor; border-top-color: transparent;
    opacity: .5; animation: zq-more-rot .8s linear infinite;
}
.zq-more:not(.is-loading) .zq-more-spin { animation-play-state: paused; }
@keyframes zq-more-rot { to { transform: rotate(360deg); } }
.pager a {
    display: inline-block;
    padding: 6px 13px;
    border: 1px solid rgba(127, 127, 127, .3);
    border-radius: 6px;
    color: inherit;
    font-size: 14px;
    opacity: .85;
}
.pager a.active { opacity: 1; font-weight: 600; border-color: currentColor; }

/* 相关推荐 / 上下篇 */
.related-box ul { list-style: none; padding: 0; margin: 0; }
.related-box li { padding: 5px 0; font-size: 14.5px; }

footer.footer { text-align: center; }
footer.footer .friend-links { margin-bottom: 8px; }
footer.footer a { margin: 0 6px; }

/* 底部「关注我们 / Follow us」：站点设置里填的社交链接 */
footer.footer .follow-us {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
    gap: 8px 6px; margin: 0 0 10px;
}
footer.footer .follow-us-title { font-size: 14px; font-weight: 600; opacity: .85; margin-right: 2px; }
footer.footer .follow-us-item {
    display: inline-flex; align-items: center; gap: 5px; margin: 0;
    padding: 4px 10px 4px 8px; border-radius: 999px;
    border: 1px solid rgba(127, 127, 127, .28); background: rgba(127, 127, 127, .06);
    font-size: 13px; line-height: 1; text-decoration: none; color: inherit;
    transition: background .15s, border-color .15s, transform .15s;
}
footer.footer .follow-us-item:hover {
    background: rgba(127, 127, 127, .14); border-color: rgba(127, 127, 127, .45);
    transform: translateY(-1px); text-decoration: none;
}
footer.footer .follow-us-item .zq-social-ico { width: 15px; height: 15px; fill: currentColor; display: block; }
/* 悬停时贴近品牌色（只上色，不改变布局） */
footer.footer .follow-us-item.is-facebook:hover  { color: #1877f2; border-color: #1877f2; }
footer.footer .follow-us-item.is-twitter:hover   { color: #000;    border-color: #000; }
footer.footer .follow-us-item.is-instagram:hover { color: #e1306c; border-color: #e1306c; }
footer.footer .follow-us-item.is-youtube:hover   { color: #ff0000; border-color: #ff0000; }
footer.footer .follow-us-item.is-tiktok:hover    { color: #000;    border-color: #000; }
footer.footer .follow-us-item.is-weibo:hover     { color: #e6162d; border-color: #e6162d; }
/* 通用页面链接（隐私政策 / 关于我们 …） */
footer.footer .footer-pages { margin: 6px 0 10px; line-height: 2; }
footer.footer .footer-pages a { margin: 0 8px; }

/* footer 上方的友情链接块（从 footer 里搬出来，独立成一块） */
.zq-friend-wrap {
    margin: 26px 0 0; padding: 16px 0 14px;
    border-top: 1px solid rgba(127, 127, 127, .18);
    text-align: center;
}
.zq-friend-wrap .zq-friend-t {
    margin: 0 0 8px; font-size: 15px; font-weight: 600; color: #3f4652;
    display: flex; align-items: center; gap: 12px;
}
/* 标题右侧的「申请友链」：跳留言专区并预选「友情链接申请」 */
.zq-friend-wrap .zq-friend-apply {
    margin-left: auto; font-size: 12.5px; font-weight: 500; line-height: 1;
    padding: 6px 12px; border-radius: 999px; text-decoration: none;
    border: 1px solid currentColor; opacity: .75;
}
.zq-friend-wrap .zq-friend-apply:hover { opacity: 1; }
.zq-friend-wrap .zq-friend-none { font-size: 13px; opacity: .5; }
.zq-friend-wrap .friend-links { line-height: 2; }
.zq-friend-wrap .friend-links a { display: inline-block; margin: 0 8px 4px; font-size: 14px; }

/* footer 上方的「联盟矩阵」：站群已开通的子站（有域名显示域名，没域名显示二级目录） */
.zq-alliance {
    margin: 0 0 20px; padding: 16px 0 18px;
    border-top: 1px solid rgba(127, 127, 127, .18);
}
.zq-alliance .zq-alliance-t {
    display: flex; align-items: baseline; gap: 6px;
    margin: 0 0 12px; font-size: 15px; font-weight: 600; color: #3f4652;
}
.zq-alliance .zq-alliance-n { font-size: 12px; font-weight: 400; opacity: .6; }
.zq-alliance-list {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(158px, 1fr));
    gap: 8px; list-style: none; padding: 0; margin: 0;
}
.zq-alliance-item { list-style: none; margin: 0; }
.zq-alliance-item a {
    display: flex; flex-direction: column; gap: 2px;
    padding: 9px 12px; border: 1px solid rgba(127, 127, 127, .18);
    border-radius: 8px; background: rgba(127, 127, 127, .05);
    text-decoration: none; color: inherit;
    transition: background .15s ease, border-color .15s ease, transform .15s ease;
}
.zq-alliance-item a:hover {
    background: rgba(127, 127, 127, .12); border-color: rgba(127, 127, 127, .38);
    transform: translateY(-1px); text-decoration: none;
}
.zq-alliance-item b {
    font-size: 14px; font-weight: 600; line-height: 1.4;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.zq-alliance-item span {
    font-size: 12px; opacity: .65; line-height: 1.4;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.zq-alliance-foot { margin: 12px 0 0; text-align: center; }
.zq-alliance-more {
    display: inline-block; padding: 6px 18px; border-radius: 999px;
    border: 1px solid rgba(127, 127, 127, .28); background: rgba(127, 127, 127, .06);
    font-size: 13px; text-decoration: none; color: inherit;
}
.zq-alliance-more:hover { background: rgba(127, 127, 127, .14); text-decoration: none; }
.page-content h2 { font-size: 21px; margin: 0 0 14px; }
.page-content h3 { font-size: 17px; margin: 18px 0 8px; }
.page-content p { margin: 0 0 12px; line-height: 1.9; }

/* 顶部搜索：放大镜图标按钮，点击弹出搜索层 */
.zq-search { display: flex; align-items: center; margin: 0 0 0 auto; flex-shrink: 0; }
.zq-search svg {
    width: 18px; height: 18px; display: block;
    fill: none; stroke: currentColor; stroke-width: 2;
    stroke-linecap: round; stroke-linejoin: round;
}
.zq-search-open {
    display: inline-flex; align-items: center; justify-content: center;
    width: 34px; height: 34px; padding: 0;
    color: inherit; cursor: pointer;
    background: rgba(127, 127, 127, .1);
    border: 1px solid rgba(127, 127, 127, .28);
    border-radius: 50%;
}
.zq-search-open:hover { background: rgba(127, 127, 127, .22); }
/* 搜索弹层：默认隐藏，加 .on 才显示（hidden 属性 + class 双保险，禁用 JS 时不遮挡页面） */
.zq-search-modal { position: fixed; inset: 0; z-index: 1200; display: none; }
.zq-search-modal.on { display: block; }
.zq-search-mask { position: absolute; inset: 0; background: rgba(0, 0, 0, .45); }
.zq-search-panel {
    position: relative;
    width: min(560px, 92%); margin: 14vh auto 0;
    padding: 20px 20px 18px;
    background: #fff; color: #111;
    border-radius: 12px; box-shadow: 0 18px 50px rgba(0, 0, 0, .25);
}
.zq-search-form { display: flex; gap: 10px; }
.zq-search-form input {
    flex: 1 1 auto; min-width: 0;
    padding: 11px 13px; font-size: 15px; line-height: 1.4;
    color: #111; background: #fff;
    border: 1px solid #d1d5db; border-radius: 8px; outline: none;
}
.zq-search-form input::placeholder { color: #6b7280; }
.zq-search-form input:focus { border-color: #111; }
.zq-search-form button {
    flex: 0 0 auto; width: 46px;
    display: inline-flex; align-items: center; justify-content: center;
    padding: 0; cursor: pointer;
    color: #fff; background: #111; border: 0; border-radius: 8px;
}
.zq-search-form button:hover { background: #e02020; color: #fff; border-color: #e02020; }
.zq-search-form svg { stroke: #fff; }
/* 关闭钮：挂在面板右上角、探出一半，不再压着搜索按钮 */
.zq-search-close {
    position: absolute; top: -13px; right: -6px;
    width: 30px; height: 30px; padding: 0;
    font-size: 16px; line-height: 26px; text-align: center;
    color: #fff; background: #111;
    border: 2px solid #fff; border-radius: 50%;
    box-shadow: 0 2px 10px rgba(0, 0, 0, .3);
    cursor: pointer;
}
.zq-search-close:hover { background: #333; color: #fff; }

/* 首页：「独家推荐 / 热门信息」双栏（位于正文标题上方，如「头条推荐」） */
.zq-home-blocks { display: flex; gap: 16px; margin: 12px 0 8px; }
.zq-home-block {
    flex: 1 1 0; min-width: 0; padding: 14px 16px 10px;
    border: 1px solid rgba(127, 127, 127, .22); border-radius: 12px;
    background: rgba(127, 127, 127, .03);
}
.zq-home-block h2 {
    display: flex; align-items: center; gap: 7px;
    margin: 0 0 8px; font-size: 16px; font-weight: 800; letter-spacing: 1px;
}
.zq-home-block h2::before { content: ""; width: 3px; height: 15px; border-radius: 2px; background: #111; }
.zq-home-block ul { list-style: none; margin: 0; padding: 0; }
.zq-home-block li {
    display: flex; align-items: baseline; gap: 8px; padding: 6px 0; font-size: 14px;
    border-bottom: 1px dashed rgba(127, 127, 127, .16);
}
.zq-home-block li:last-child { border-bottom: 0; padding-bottom: 2px; }
.zq-home-block li a {
    flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    color: inherit; text-decoration: none;
}
.zq-home-block li a:hover { text-decoration: underline; }
.zq-home-block li span { flex-shrink: 0; font-size: 12px; opacity: .5; }

/* 首页栏目调用：正文区 2×2 卡片网格（每块一个栏目），
   侧栏里的布局由 .zq-side-cats 单独覆盖成紧凑单列 */
.cat-blocks {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px; margin-top: 8px;
}
.cat-block {
    /* 卡片底色 / 分隔线走变量：深色模板只需改 --zq-card 两个值就能整块适配 */
    padding: 16px 20px 8px;
    background: var(--zq-card, #fff);
    border: 1px solid var(--zq-card-line, rgba(127, 127, 127, .16));
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(17, 24, 39, .05);
    min-width: 0;
}
.cat-block-head {
    display: flex; align-items: baseline; justify-content: space-between;
    gap: 10px; margin-bottom: 6px;
    padding-bottom: 9px;
    border-bottom: 2px solid var(--zq-card-line, rgba(127, 127, 127, .14));
}
/* 标题左侧强调色条：跟站点主题色走 */
.cat-block-head h2 {
    font-size: 17px; margin: 0; padding-left: 11px;
    border-left: 4px solid var(--zq-accent, #C30D23);
    line-height: 1.25;
}
.cat-block-head h2 a { color: inherit; }
.cat-block-head h2 a:hover { color: var(--zq-accent, #C30D23); }
.cat-block-more { font-size: 13px; opacity: .65; text-decoration: none; }
.cat-block-more:hover { opacity: 1; color: var(--zq-accent, #C30D23); }
.cat-block-list { list-style: none; margin: 0; padding: 0; }
.cat-block-list li {
    display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
    padding: 8px 0;
    border-bottom: 1px dashed var(--zq-card-line, rgba(127, 127, 127, .14));
    font-size: 14.5px;
}
.cat-block-list li:last-child { border-bottom: 0; }
.cat-block-list li a {
    color: inherit; flex: 1; min-width: 0;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    text-decoration: none; transition: color .12s;
}
.cat-block-list li a:hover { color: var(--zq-accent, #C30D23); text-decoration: underline; }
.cat-block-list li span { font-size: 12.5px; opacity: .55; flex-shrink: 0; font-family: Consolas, "Courier New", monospace; }
/* 手机端：单列堆叠 */
@media (max-width: 720px) {
    .cat-blocks { grid-template-columns: 1fr; gap: 14px; }
    .cat-block { padding: 14px 16px 6px; }
}

/* 海报入口 */
.zq-poster-link { margin: 16px 0 0; font-size: 14px; }
.zq-poster-link a {
    display: inline-block;
    padding: 7px 16px;
    border: 1px solid rgba(127, 127, 127, .3);
    border-radius: 20px;
    color: inherit;
    opacity: .85;
}
.zq-poster-link a:hover { opacity: 1; background: rgba(127, 127, 127, .08); }

/* 评论区 */
.zq-comments { margin-top: 26px; padding-top: 18px; border-top: 1px solid rgba(127, 127, 127, .18); }
.zq-comments-title { font-size: 17px; margin: 0 0 14px; }
.zq-comments-title span { font-size: 13px; opacity: .6; font-weight: 400; }
.zq-comments-tip { font-size: 14px; opacity: .65; margin: 6px 0; }
.zq-comments-msg {
    margin: 0 0 12px; padding: 9px 12px;
    font-size: 13.5px;
    border: 1px solid rgba(37, 99, 235, .35);
    background: rgba(37, 99, 235, .08);
    border-radius: 6px;
}
.zq-comment-form { margin-bottom: 18px; }
.zq-comment-row { margin-bottom: 8px; display: flex; align-items: center; gap: 10px; }
.zq-comment-form input, .zq-comment-form textarea {
    width: 100%;
    padding: 9px 11px;
    font-size: 14px;
    font-family: inherit;
    line-height: 1.6;
    color: inherit;
    background: rgba(127, 127, 127, .06);
    border: 1px solid rgba(127, 127, 127, .28);
    border-radius: 6px;
    outline: none;
    resize: vertical;
}
.zq-comment-form input { max-width: 260px; }
.zq-comment-form button {
    padding: 8px 20px;
    font-size: 14px;
    color: inherit;
    cursor: pointer;
    background: rgba(127, 127, 127, .14);
    border: 1px solid rgba(127, 127, 127, .3);
    border-radius: 6px;
}
.zq-comment-form button:hover { background: rgba(127, 127, 127, .24); }
.zq-comment-note { font-size: 12.5px; opacity: .6; }
.zq-comment-list { list-style: none; margin: 0; padding: 0; }
.zq-comment-list li { padding: 12px 0; border-bottom: 1px dashed rgba(127, 127, 127, .16); }
.zq-comment-head { display: flex; align-items: baseline; gap: 10px; margin-bottom: 6px; }
.zq-comment-head b { font-size: 14px; }
.zq-comment-head span { font-size: 12px; opacity: .55; }
.zq-comment-body { font-size: 14.5px; line-height: 1.8; opacity: .88; }

/* 评论列表滚动区：最多展示 20 条，超出在区域内滚动，不把正文挤到很下面 */
.zq-comment-scroll {
    max-height: 420px;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}
.zq-comment-scroll::-webkit-scrollbar { width: 6px; }
.zq-comment-scroll::-webkit-scrollbar-thumb {
    background: rgba(127, 127, 127, .35); border-radius: 3px;
}
.zq-comment-scroll::-webkit-scrollbar-thumb:hover { background: rgba(127, 127, 127, .55); }
.zq-comments-more { margin: 10px 0 0; font-size: 12.5px; opacity: .6; }

/* 侧栏「热门评论」 */
.zq-hot-comments ul { list-style: none; margin: 0; padding: 0; }
.zq-hot-comments li {
    padding: 9px 0;
    border-bottom: 1px dashed rgba(127, 127, 127, .16);
}
.zq-hot-comments li:last-child { border-bottom: 0; }
.zq-hot-comments .zq-hc-title {
    display: block;
    font-size: 13.5px; font-weight: 600;
    color: inherit; text-decoration: none;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.zq-hot-comments .zq-hc-title:hover { text-decoration: underline; }
.zq-hot-comments .zq-hc-text {
    margin: 3px 0 2px;
    font-size: 13px; line-height: 1.6; opacity: .8;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
    overflow: hidden;
}
.zq-hot-comments .zq-hc-meta { font-size: 12px; opacity: .5; }
.zq-hot-comments .zq-hc-empty { opacity: .6; }

/* 侧栏「推荐产品」：公告下方，缩略图 + 标题 + 价格 */
.zq-rec-products ul { list-style: none; margin: 0; padding: 0; }
.zq-rec-products li {
    padding: 8px 0;
    border-bottom: 1px dashed rgba(127, 127, 127, .16);
}
.zq-rec-products li:last-child { border-bottom: 0; }
.zq-rec-products .zq-rp-item {
    display: flex; align-items: center; gap: 9px;
    color: inherit; text-decoration: none;
}
.zq-rec-products .zq-rp-item:hover { text-decoration: none; }
.zq-rec-products .zq-rp-item:hover .zq-rp-t { text-decoration: underline; }
.zq-rec-products img {
    flex: 0 0 54px; width: 54px; height: 40px;
    object-fit: cover; border-radius: 6px;
    background: rgba(127, 127, 127, .08);
}
.zq-rec-products .zq-rp-nopic {
    flex: 0 0 54px; width: 54px; height: 40px; border-radius: 6px;
    background: rgba(127, 127, 127, .12);
}
.zq-rec-products .zq-rp-t {
    flex: 1 1 auto; min-width: 0; font-size: 13.5px; line-height: 1.4;
    overflow: hidden; text-overflow: ellipsis;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
}
.zq-rec-products .zq-rp-p {
    flex: 0 0 auto; font-size: 12.5px; font-weight: 700;
    color: #e11d48; white-space: nowrap;
}

/* 会员入口 / 会员页 */
.zq-member { display: flex; align-items: center; gap: 10px; font-size: 13px; margin-left: 4px; }
.zq-member a { color: inherit; opacity: .75; white-space: nowrap; }
.zq-member a:hover { opacity: 1; text-decoration: underline; }
.zq-member .zq-member-hi {
    font-weight: 600; opacity: 1; padding: 3px 10px; border-radius: 14px;
    background: rgba(127, 127, 127, .12);
}
.zq-member-page { max-width: 460px; margin: 0 auto; }
.zq-member-title { font-size: 20px; margin: 0 0 16px; }
.zq-member-sub { font-size: 15px; margin: 22px 0 10px; }

/* 会员下拉（登录态）：昵称是开关，面板里放 会员中心 / API / 退出。
   页头不再横排「昵称 + 退出」两个链接，也不再有独立的 API 胶囊按钮。 */
.zq-member-drop { position: relative; display: flex; align-items: center; }
.zq-member-panel {
    /* 紧贴触发器（不留 margin 间隙）：桌面 hover 移过去时不会经过空隙导致面板收起 */
    display: none; position: absolute; top: 100%; right: 0;
    min-width: 132px; padding: 6px; z-index: 70;
    background: #fff; border: 1px solid #e5e7eb; border-radius: 10px;
    box-shadow: 0 10px 28px rgba(0, 0, 0, .12);
}
.zq-member-drop:hover .zq-member-panel,
.zq-member-drop:focus-within .zq-member-panel,
.zq-member-drop.open .zq-member-panel { display: block; }
/* 面板是白底，里面的链接固定深色。规则写两份：
   一份带 .header（页头场景）压过各模板给 .header .zq-member a 写的
   !important 深/浅色补丁；一份不带（顶部通栏 zq-ntop 场景，
   通栏里没有 .header 祖先，不补这条链接会保持行内挤成一横排） */
.zq-member-drop .zq-member-panel a,
.header .zq-member-drop .zq-member-panel a {
    display: block; padding: 8px 12px; border-radius: 7px; font-size: 13.5px;
    color: #374151 !important; background: none !important;
    text-decoration: none; white-space: nowrap; border: 0 !important;
}
.zq-member-drop .zq-member-panel a:hover,
.header .zq-member-drop .zq-member-panel a:hover {
    background: #f3f4f6 !important; color: #111827 !important;
}
/* 手机端：面板贴右展开不出屏，点击也能开（触屏没有 hover，靠 focus-within） */
@media (max-width: 860px) {
    .zq-member-panel { min-width: 116px; }
}

/* 前台开放接口文档页 /api-doc */
.zq-api-doc { font-size: 15px; line-height: 1.9; }
.zq-api-doc h1 { font-size: 24px; margin: 0 0 10px; }
.zq-api-doc h2 { font-size: 18px; margin: 26px 0 8px; }
.zq-api-doc p { margin: 0 0 10px; }
.zq-api-doc .zq-api-sub { font-size: 14px; color: #6b7280; margin-bottom: 6px; }
.zq-api-doc code { padding: 2px 6px; border-radius: 4px; background: rgba(127, 127, 127, .12); font-size: 13.5px; }
.zq-api-doc .zq-api-pre {
    margin: 0 0 12px; padding: 12px 14px; overflow-x: auto;
    background: #f6f7f9; border: 1px solid #e5e7eb; border-radius: 8px;
    font-family: ui-monospace, Consolas, monospace; font-size: 13px; line-height: 1.7; white-space: pre;
}
.zq-api-doc .zq-api-table { overflow-x: auto; }
.zq-api-doc table { width: 100%; border-collapse: collapse; font-size: 14px; }
.zq-api-doc th, .zq-api-doc td { padding: 9px 10px; text-align: left; border-bottom: 1px solid #e5e7eb; vertical-align: top; }
.zq-api-doc th { font-weight: 700; background: #f6f7f9; }
.zq-api-doc .zq-api-g td { font-weight: 700; background: rgba(127, 127, 127, .07); }
.zq-api-doc .zq-api-m {
    display: inline-block; padding: 1px 7px; border-radius: 4px; font-size: 12px; font-weight: 700;
    background: rgba(127, 127, 127, .14);
}
.zq-api-doc .zq-api-note { margin-top: 14px; font-size: 13.5px; color: #6b7280; }
/* 获取密钥：文档顶部的申请引导（会员中心 → 我的 API） */
.zq-api-apply {
    display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
    margin: 14px 0 4px; padding: 14px 16px;
    border: 1px solid #e5e7eb; border-left: 3px solid #111827; border-radius: 10px;
    background: #fafafa;
}
.zq-api-apply-txt { flex: 1 1 240px; min-width: 0; }
.zq-api-apply-txt b { font-size: 15px; }
.zq-api-apply-txt p { margin: 4px 0 0; font-size: 13.5px; line-height: 1.7; color: #6b7280; }
.zq-api-apply-btn {
    flex: 0 0 auto; display: inline-block; padding: 9px 20px;
    font-size: 14px; font-weight: 600; color: #fff !important; text-decoration: none;
    background: #111827; border-radius: 999px; white-space: nowrap;
    transition: background-color .15s;
}
.zq-api-apply-btn:hover { background: #374151; color: #fff !important; text-decoration: none; }
/* 手机端：文档标题收窄，表格横向滚动（.zq-api-table 已给 overflow） */
@media (max-width: 840px) {
    .zq-api-doc h1 { font-size: 21px; }
    .zq-api-doc h2 { font-size: 16.5px; }
    /* 申请卡：文案在上、按钮整行（txt 的 flex-basis 是横向用的，column 下会撑高，归零） */
    .zq-api-apply { flex-direction: column; align-items: stretch; gap: 10px; padding: 13px 14px; }
    .zq-api-apply-txt { flex: 0 0 auto !important; }
    .zq-api-apply-btn { text-align: center; }
}
.zq-member-msg {
    padding: 10px 13px; margin-bottom: 16px; font-size: 13.5px; border-radius: 10px;
    background: #fafafa; border: 1px solid #e6e6e6; border-left: 3px solid #111; color: #222;
}

/* 认证页容器（登录 / 注册 / 找回 / 重置）：整屏居中，该页不输出右侧栏 */
.zq-auth-wrap {
    display: flex; align-items: center; justify-content: center;
    min-height: 56vh; padding: 34px 0 10px; border-radius: 16px;
    background:
        radial-gradient(760px 340px at 50% -12%, rgba(15, 23, 42, .07), rgba(0, 0, 0, 0) 70%),
        linear-gradient(180deg, rgba(127, 127, 127, .05), rgba(127, 127, 127, 0) 62%);
}
.zq-auth-shell { width: 100%; }   /* 卡片铺满白区宽度（内容区实心宽），不再限 440 */

/* 登录 / 注册卡片（黑白配色，不引入任何彩色） */
.zq-auth-card {
    position: relative; overflow: hidden;
    padding: 36px 34px 30px;
    border: 1px solid #e8e8e8;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 26px 60px rgba(0, 0, 0, .1), 0 1px 3px rgba(0, 0, 0, .05);
}
/* 顶部黑色细条：增加层次 */
.zq-auth-card::before {
    content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: #111;
}
.zq-auth-head { text-align: center; margin-bottom: 24px; }
/* 圆形图标徽标 */
.zq-auth-badge {
    display: inline-flex; align-items: center; justify-content: center;
    width: 52px; height: 52px; margin-bottom: 14px; border-radius: 50%;
    background: linear-gradient(180deg, #2b2b2b, #000); color: #fff;
    box-shadow: 0 8px 18px rgba(0, 0, 0, .22);
}
.zq-auth-badge svg { width: 24px; height: 24px; fill: currentColor; }
.zq-auth-head .zq-member-title {
    font-size: 22px; margin: 0 0 6px; font-weight: 800;
    letter-spacing: 1.5px; color: #111;
}
.zq-auth-head p { margin: 0; font-size: 13px; opacity: .62; }

/* 忘记密码等辅助链接：右对齐、虚线下划线 */
.zq-auth-tools { display: flex; justify-content: flex-end; margin: -6px 0 0; font-size: 13px; }
.zq-auth-tools a {
    font-weight: 600; color: #111; text-decoration: none; opacity: .72;
    border-bottom: 1px dashed rgba(127, 127, 127, .5); padding-bottom: 1px;
}
.zq-auth-tools a:hover { opacity: 1; border-bottom-style: solid; }

/* 卡片下方「返回首页」 */
.zq-auth-foot { margin: 16px 0 0; text-align: center; font-size: 13px; opacity: .62; }
.zq-auth-foot a { color: inherit; text-decoration: none; }
.zq-auth-foot a:hover { text-decoration: underline; }

.zq-member-form .zq-member-row { margin-top: 20px; margin-bottom: 0; }
.zq-member-form .zq-field { margin-bottom: 15px; }
.zq-member-form label,
.zq-member-form .zq-field > label {
    display: block; font-size: 12.5px; font-weight: 600; letter-spacing: .4px;
    opacity: .72; margin-bottom: 7px;
}
.zq-field { margin-bottom: 15px; }
.zq-input-wrap { position: relative; display: flex; align-items: center; gap: 8px; }
/* 图标改为普通占位子项（原来绝对定位 + input 左 padding 40px 让位；
   美化版输入框自带边框、input 无左 padding，绝对定位会叠到文字上） */
.zq-input-icon { flex: none; display: flex; opacity: .55; pointer-events: none; }
.zq-input-icon svg { width: 18px; height: 18px; fill: currentColor; }
.zq-input-wrap input {
    flex: 1 1 auto; min-width: 0;
    width: 100%; box-sizing: border-box; padding: 11px 2px; font-size: 15px;
    border: 0; outline: 0;
    background: transparent; color: #111827;
    transition: border-color .18s, box-shadow .18s;
}
.zq-input-wrap input::placeholder { color: rgba(127, 127, 127, .5); }
/* 聚焦光圈画在容器上（.zq-input-wrap:focus-within，见下方美化区块），input 本身不再画 */
.zq-input-wrap input:focus { outline: none; }
/* 浏览器自动填充会强行盖掉背景与文字色，是「密码被挡住看不见」的主因 */
.zq-input-wrap input:-webkit-autofill,
.zq-input-wrap input:-webkit-autofill:hover,
.zq-input-wrap input:-webkit-autofill:focus,
.zq-input-wrap input:-webkit-autofill:active {
    -webkit-text-fill-color: #111;
    -webkit-box-shadow: 0 0 0 1000px #fff inset;
    box-shadow: 0 0 0 1000px #fff inset;
    caret-color: #111;
    transition: background-color 9999s ease-in-out 0s;
}
/* 选中密码时的反色高亮，避免选区颜色与被选文字同色 */
.zq-member-form input::selection { background: #111; color: #fff; }
.zq-member-form input::-moz-selection { background: #111; color: #fff; }
/* 小图标按钮：小眼睛，输入框旁的独立方块按钮 */
.zq-pwd-btn {
    display: flex; align-items: center; justify-content: center;
    width: 40px; height: 40px; padding: 0; border-radius: 10px;
    border: 1px solid #e0e0e0; background: #ebebeb; color: inherit;
    opacity: .8; cursor: pointer;
    transition: opacity .15s, background .15s, border-color .15s;
}
.zq-pwd-btn svg { width: 17px; height: 17px; fill: currentColor; }
.zq-pwd-btn:hover { opacity: 1; background: #dcdcdc; border-color: #111; }
.zq-pwd-btn:focus-visible {
    outline: none; border-color: #111; box-shadow: 0 0 0 3px rgba(0, 0, 0, .07);
}
/* 小眼睛：黑底白图标，更醒目 */
.zq-input-wrap .zq-pwd-btn {
    position: static; flex: 0 0 40px;
    background: #000; border-color: #000; color: #fff; opacity: 1;
}
.zq-input-wrap .zq-pwd-btn:hover { background: #333; border-color: #000; }

/* ---------- 滑块验证码：拖动拼图块对齐缺口 ---------- */
.zq-cap-slide {
    --zq-cap-w: 320px;
    --zq-cap-ok: #167a4a;
    --zq-cap-bad: #b91c1c;
    width: 100%; max-width: var(--zq-cap-w); margin-top: 2px;
    user-select: none; -webkit-user-select: none;
}
.zq-cap-slide.compact { --zq-cap-w: 288px; }

/* 图片区 */
.zq-cap-stage {
    position: relative; width: 100%; overflow: hidden;
    border: 1px solid #e2e2e2; border-radius: 10px; background: #ececec; line-height: 0;
}
.zq-cap-bg { display: block; width: 100%; height: auto; }
.zq-cap-piece {
    position: absolute; top: 0; left: 0; z-index: 2; pointer-events: none;
    filter: drop-shadow(0 1px 3px rgba(0, 0, 0, .38));
}
/* 取图中的骨架屏 */
.zq-cap-load {
    position: absolute; inset: 0; z-index: 3; pointer-events: none;
    background: linear-gradient(100deg, #ececec 28%, #f8f8f8 48%, #ececec 68%);
    background-size: 220% 100%;
    animation: zq-cap-shimmer 1.1s linear infinite;
    transition: opacity .2s;
}
@keyframes zq-cap-shimmer {
    from { background-position: 130% 0; }
    to   { background-position: -30% 0; }
}
.zq-cap-slide.ready .zq-cap-load { opacity: 0; visibility: hidden; animation: none; }
/* 通过 / 未通过的浮层提示 */
.zq-cap-flash {
    position: absolute; left: 0; right: 0; bottom: 0; z-index: 4;
    padding: 5px 0; text-align: center; font-size: 12.5px; line-height: 1.5; color: #fff;
    background: rgba(0, 0, 0, .58); pointer-events: none;
    opacity: 0; transform: translateY(100%);
    transition: opacity .18s, transform .18s;
}
.zq-cap-flash.show { opacity: 1; transform: translateY(0); }
.zq-cap-flash.good { background: rgba(22, 122, 74, .9); }
.zq-cap-flash.bad  { background: rgba(185, 28, 28, .9); }

/* 滑轨 */
.zq-cap-bar {
    --zq-fill: 0px;
    position: relative; height: 40px; margin-top: 8px; overflow: hidden;
    border: 1px solid #dcdcdc; border-radius: 10px;
    background: linear-gradient(#f2f2f2, #e6e6e6);
    transition: border-color .15s, background .15s;
}
.zq-cap-bar::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0;
    width: var(--zq-fill); background: rgba(17, 24, 39, .1);
    border-right: 1px solid rgba(17, 24, 39, .18);
}
.zq-cap-bar-tip {
    position: absolute; inset: 0; z-index: 1;
    display: flex; align-items: center; justify-content: center;
    padding: 0 12px; text-align: center;
    font-size: 12.5px; line-height: 1.4; color: #8a8a8a; pointer-events: none;
    transition: color .15s;
}
.zq-cap-thumb {
    position: absolute; left: 0; top: 0; z-index: 2; box-sizing: border-box;
    width: 44px; height: 100%;
    display: flex; align-items: center; justify-content: center;
    background: #fff; border: 1px solid #d5d5d5; border-radius: 10px;
    color: #444; cursor: grab; touch-action: none;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .1);
    transition: background .15s, color .15s, border-color .15s;
}
.zq-cap-thumb svg { width: 18px; height: 18px; fill: currentColor; }
.zq-cap-thumb:hover { color: #111827; border-color: #111827; }
.zq-cap-thumb:focus-visible {
    outline: none; border-color: #111827; box-shadow: 0 0 0 3px rgba(17, 24, 39, .1);
}
.zq-cap-slide.dragging .zq-cap-thumb { cursor: grabbing; background: #f4f4f4; }

/* 通过：滑轨整个变绿，滑块停在原地 */
.zq-cap-slide.done .zq-cap-bar {
    background: rgba(22, 122, 74, .12); border-color: rgba(22, 122, 74, .45);
}
.zq-cap-slide.done .zq-cap-bar-tip { color: var(--zq-cap-ok); }
.zq-cap-slide.done .zq-cap-thumb {
    background: var(--zq-cap-ok); border-color: var(--zq-cap-ok); color: #fff; cursor: default;
}
/* 未通过 / 没验证就提交：滑轨标红 */
.zq-cap-slide.err .zq-cap-bar,
.zq-cap-slide.fail .zq-cap-bar {
    background: rgba(185, 28, 28, .08); border-color: var(--zq-cap-bad);
}
.zq-cap-slide.err .zq-cap-bar-tip { color: var(--zq-cap-bad); }
.zq-cap-slide.fail .zq-cap-thumb { border-color: var(--zq-cap-bad); color: var(--zq-cap-bad); }

/* 底部：换一张（双 class 提特异性，避免被 .zq-forum-form button 等表单按钮样式盖掉） */
.zq-cap-foot { display: flex; justify-content: flex-end; margin-top: 7px; }
.zq-cap-slide .zq-cap-new {
    padding: 4px 11px; border: 1px solid #d5d5d5; border-radius: 8px;
    background: #fff; color: #666; font-size: 12.5px; cursor: pointer;
}
.zq-cap-slide .zq-cap-new:hover { border-color: #111827; color: #111827; }
.zq-cap-noscript { font-size: 12.5px; color: #b91c1c; }

/* 提交按钮 */
.zq-member-form .zq-member-row button {
    width: 100%; height: 46px; padding: 0; cursor: pointer;
    font-size: 15.5px; font-weight: 600; letter-spacing: 3px; color: #fff;
    background: linear-gradient(180deg, #1c1c1c, #000);
    border: 0; border-radius: 10px;
    box-shadow: 0 8px 18px rgba(0, 0, 0, .22);
    transition: background .18s, box-shadow .18s, transform .1s;
}
.zq-member-form .zq-member-row button:hover {
    background: linear-gradient(180deg, #2e2e2e, #111);
    box-shadow: 0 10px 22px rgba(0, 0, 0, .3);
}
.zq-member-form .zq-member-row button:active {
    transform: translateY(1px); box-shadow: 0 4px 10px rgba(0, 0, 0, .2);
}
/* 底部切换：胶囊按钮，hover 反色 */
.zq-member-switch { margin-top: 18px; font-size: 13.5px; opacity: .85; text-align: center; }
.zq-member-switch a {
    display: inline-block; margin-left: 6px;
    color: #111; font-weight: 600; text-decoration: none;
    padding: 6px 16px; border-radius: 999px; border: 1px solid #111; background: #fff;
    transition: background .15s, color .15s;
}
.zq-member-switch a:hover { background: #111; color: #fff; }
.zq-member-card {
    padding: 16px; border: 1px solid rgba(127, 127, 127, .16); border-radius: 10px;
    background: rgba(127, 127, 127, .04);
}
.zq-member-card p { margin: 0 0 8px; font-size: 14px; }
.zq-member-tag {
    display: inline-block; font-size: 12px; padding: 2px 8px; border-radius: 10px;
    background: rgba(0, 0, 0, .08); color: #333;
}
.zq-member-meta { font-size: 13px; opacity: .65; }
.zq-member-btn {
    display: inline-block; margin-top: 6px; padding: 6px 16px; font-size: 13.5px;
    border: 1px solid rgba(127, 127, 127, .3); border-radius: 18px; color: inherit;
}
.zq-member-comments { list-style: none; margin: 0; padding: 0; }
.zq-member-comments li {
    padding: 10px 0; border-bottom: 1px dashed rgba(127, 127, 127, .2); font-size: 14px;
}
.zq-member-comments p { margin: 4px 0 0; font-size: 13px; opacity: .7; }
.zq-member-cmt-state {
    font-size: 12px; padding: 1px 7px; border-radius: 9px;
    background: rgba(127, 127, 127, .14); margin-right: 4px;
}

/* 会员：按钮组 / 收藏列表 */
.zq-member-btns { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.zq-member-btn { margin-top: 0; }
.zq-member-btn-plain { background: rgba(127, 127, 127, .06); }
.zq-member-num {
    display: inline-block; min-width: 18px; padding: 0 5px; margin-left: 4px;
    font-size: 12px; line-height: 18px; text-align: center; border-radius: 9px;
    background: #111; color: #fff;
}
.zq-member-count {
    margin-left: 8px; padding: 1px 8px; font-size: 12.5px; font-weight: 400;
    border-radius: 10px; background: rgba(127, 127, 127, .14);
}
.zq-member-favorites { list-style: none; margin: 0; padding: 0; }
.zq-member-favorites li {
    display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px;
    padding: 11px 0; border-bottom: 1px dashed rgba(127, 127, 127, .2); font-size: 14px;
}
.zq-member-favorites li > a:first-child { flex: 1 1 220px; min-width: 0; }
.zq-fav-time { font-size: 12.5px; opacity: .6; }
.zq-fav-del {
    padding: 3px 11px; font-size: 12.5px; color: inherit; cursor: pointer;
    border: 1px solid rgba(127, 127, 127, .3); border-radius: 14px; background: transparent;
}
.zq-fav-del:hover { border-color: #dc2626; color: #dc2626; }

/* 会员订阅：专题页 / 博客主页的订阅按钮 */
.zq-sub-line { margin: 0 0 14px; }
.zq-sub-box { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.zq-sub-btn {
    display: inline-flex; align-items: center; gap: 6px; cursor: pointer;
    padding: 8px 18px; font-size: 14px; line-height: 1.4; font-weight: 600;
    color: #fff; background: #c30d23; border: 1px solid #c30d23; border-radius: 999px;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.zq-sub-btn:hover { background: #a80b1e; border-color: #a80b1e; }
/* 已订阅：描边态（深底浅底都看得清，边框跟随文字色） */
.zq-sub-btn.is-on {
    color: inherit; background: transparent;
    border: 1px solid rgba(127, 127, 127, .45);
    border: 1px solid color-mix(in srgb, currentColor 40%, transparent);
    font-weight: 500;
}
.zq-sub-btn.is-on:hover { border-color: #c30d23; color: #c30d23; }
.zq-sub-count { font-size: 12.5px; opacity: .75; }

/* 会员中心「我的订阅」 */
.zq-sub-group { margin: 0 0 18px; }
.zq-sub-group h3, .zq-sub-feed h3 { margin: 0 0 10px; font-size: 16px; font-weight: 700; }
.zq-sub-list { list-style: none; margin: 0; padding: 0; }
.zq-sub-list li {
    display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px;
    padding: 11px 0; font-size: 14px;
    border-bottom: 1px dashed rgba(127, 127, 127, .2);
}
.zq-sub-list li > a:first-child { flex: 1 1 220px; min-width: 0; }
.zq-sub-time { font-size: 12.5px; opacity: .68; }
.zq-sub-del {
    padding: 3px 11px; font-size: 12.5px; color: inherit; cursor: pointer;
    border: 1px solid rgba(127, 127, 127, .3); border-radius: 14px; background: transparent;
}
.zq-sub-del:hover { border-color: #dc2626; color: #dc2626; }
.zq-sub-feed { margin: 0 0 18px; }
.zq-sub-feed-item {
    padding: 12px 14px; margin-bottom: 10px;
    border: 1px solid rgba(127, 127, 127, .16); border-radius: 8px;
}
.zq-sub-feed-item h4 { margin: 0 0 8px; font-size: 14.5px; }
.zq-sub-feed-list { list-style: none; margin: 0; padding: 0; }
.zq-sub-feed-list li {
    display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap;
    padding: 5px 0; font-size: 13.5px;
}
.zq-sub-feed-list li > a { flex: 1 1 200px; min-width: 0; }

/* ---------------- 分类信息 ----------------
   整体黑白：图标 / 导航 / 按钮都用线性 SVG + 黑白色。
   只有「价格」和「置顶」保留红色强调（指定的那两个）。 */
.zq-cl { margin-bottom: 22px; }
.zq-cl-head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.zq-cl-desc { margin: 0; flex: 1 1 240px; font-size: 13px; opacity: .72; }
.zq-cl-post {
    margin-left: auto; display: inline-flex; align-items: center; gap: 6px;
    padding: 9px 20px; border-radius: 999px;
    font-size: 14px; font-weight: 600; color: #fff; background: #111;
}
.zq-cl-post:hover { background: #000; }
.zq-cl-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 12px; }
.zq-cl-tab {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 6px 14px; font-size: 13.5px; line-height: 1.5; border-radius: 999px;
    border: 1px solid rgba(127, 127, 127, .3);
}
.zq-cl-tab svg { width: 14px; height: 14px; opacity: .85; }
.zq-cl-tab:hover { border-color: rgba(127, 127, 127, .65); }
.zq-cl-tab.is-on { background: #111; border-color: #111; color: #fff; }
.zq-cl-tab.is-on svg { opacity: 1; }
.zq-cl-filter { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.zq-cl-filter input, .zq-cl-filter select {
    padding: 8px 10px; font-size: 13.5px; color: inherit; background: transparent;
    border: 1px solid rgba(127, 127, 127, .3); border-radius: 8px;
}
.zq-cl-kw { flex: 1 1 220px; min-width: 150px; }
.zq-cl-city { width: 110px; }
.zq-cl-range { display: flex; align-items: center; gap: 6px; }
.zq-cl-range input { width: 88px; }
.zq-cl-range i { opacity: .5; font-style: normal; }
.zq-cl-filter button {
    padding: 8px 20px; font-size: 13.5px; border: 0; border-radius: 8px;
    color: #fff; background: #111; cursor: pointer;
}
.zq-cl-filter button:hover { background: #000; }
.zq-cl-reset { align-self: center; font-size: 13px; opacity: .7; }
.zq-cl-list { list-style: none; margin: 0; padding: 0; }
.zq-cl-item { padding: 15px 0; border-bottom: 1px dashed rgba(127, 127, 127, .22); }
.zq-cl-link { display: flex; align-items: flex-start; gap: 12px; }
.zq-cl-ico { flex: 0 0 auto; display: inline-flex; opacity: .8; }
.zq-cl-ico svg { width: 22px; height: 22px; }
.zq-cl-main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.zq-cl-title { font-size: 15.5px; font-weight: 600; word-break: break-word; }
.zq-cl-top {
    display: inline-block; margin-right: 6px; padding: 1px 6px;
    font-size: 11px; font-style: normal; border-radius: 4px;
    color: #fff; background: #c30d23; vertical-align: 1px;
}
.zq-cl-sum { font-size: 13px; opacity: .7; }
.zq-cl-meta { font-size: 12.5px; opacity: .6; }
.zq-cl-price { font-size: 16px; font-weight: 700; color: #c30d23; white-space: nowrap; }
.zq-cl-foot {
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
    margin-top: 8px; padding-left: 34px; font-size: 12.5px;
}
.zq-cl-by { opacity: .75; }
.zq-cl-fav {
    margin-left: auto; display: inline-flex; align-items: center; gap: 5px;
    padding: 4px 13px; font-size: 12.5px; cursor: pointer;
    color: inherit; background: transparent;
    border: 1px solid rgba(127, 127, 127, .3); border-radius: 999px;
}
.zq-cl-fav svg { width: 13px; height: 13px; }
.zq-cl-fav:hover { border-color: rgba(127, 127, 127, .7); }
.zq-cl-fav.is-on { border-color: currentColor; color: inherit; font-weight: 600; }
.zq-cl-empty { padding: 44px 0; text-align: center; opacity: .7; }
/* 这一块里的订阅按钮也走黑白，别和红色主题撞色 */
.zq-cl .zq-sub-btn { background: #111; border-color: #111; }
.zq-cl .zq-sub-btn:hover { background: #000; border-color: #000; }
.zq-cl .zq-sub-btn.is-on { background: transparent; color: inherit; border-color: rgba(127, 127, 127, .45); }
.zq-cl .zq-sub-btn.is-on:hover { background: transparent; color: inherit; border-color: rgba(127, 127, 127, .8); }
.zq-member-btn svg { vertical-align: -2px; }

/* 列表：顶部一块面板（分类导航 + 筛选 + 订阅） */
.zq-cl-panel {
    margin: 0 0 16px; padding: 12px 14px 14px; border-radius: 12px;
    border: 1px solid rgba(127, 127, 127, .16);
    background: rgba(127, 127, 127, .03);
}
.zq-cl-panel .zq-cl-tabs { margin: 0 0 12px; }
.zq-cl-panel .zq-cl-filter { margin: 0; }
.zq-cl-panel .zq-sub-line { margin: 12px 0 0; }

/* 列表：缩略图 + 悬停（有图显示图，没图退回分类图标） */
.zq-cl-thumb {
    flex: 0 0 auto; width: 104px; height: 78px; overflow: hidden;
    border-radius: 8px; background: rgba(127, 127, 127, .1);
    border: 1px solid rgba(127, 127, 127, .16);
}
.zq-cl-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.zq-cl-link { padding: 2px; border-radius: 10px; transition: background .15s ease; }
.zq-cl-link:hover { background: rgba(127, 127, 127, .06); }
.zq-cl-item.has-pic .zq-cl-link { gap: 14px; }

/* 详情：图集 + YouTube 播放器 */
.zq-cl-gallery { display: flex; gap: 8px; flex-wrap: wrap; margin: 14px 0 2px; }
.zq-cl-shot {
    display: block; width: 124px; height: 93px; border-radius: 8px; overflow: hidden;
    border: 1px solid rgba(127, 127, 127, .18);
}
.zq-cl-shot img { display: block; width: 100%; height: 100%; object-fit: cover; }
.zq-cl-video {
    position: relative; margin: 16px 0 0; width: 100%; aspect-ratio: 16 / 9;
    border-radius: 10px; overflow: hidden; background: #000;
}
.zq-cl-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.zq-cl ~ .zq-comments { margin-top: 26px; }

/* 详情：一键分享（按钮 + 弹层：复制链接 / 微信二维码 / 各平台） */
.zq-cl-share { position: relative; display: inline-flex; }
.zq-cl-share-btn {
    display: inline-flex; align-items: center; gap: 5px;
    padding: 4px 13px; font-size: 12.5px; cursor: pointer;
    color: inherit; background: transparent;
    border: 1px solid rgba(127, 127, 127, .3); border-radius: 999px;
}
.zq-cl-share-btn:hover { border-color: currentColor; }
.zq-cl-share-btn svg { width: 13px; height: 13px; }
.zq-cl-share-pop {
    position: absolute; left: 0; bottom: calc(100% + 8px); z-index: 20;
    display: flex; flex-wrap: wrap; gap: 6px; width: 252px; padding: 10px;
    border: 1px solid rgba(127, 127, 127, .22); border-radius: 10px;
    background: #fff; box-shadow: 0 8px 24px rgba(0, 0, 0, .12);
}
.zq-cl-share-pop[hidden] { display: none; }
.zq-cl-qr {
    flex: 1 0 100%; display: flex; flex-direction: column; align-items: center;
    gap: 6px; padding: 6px 0 2px;
}
.zq-cl-qr img {
    width: 132px; height: 132px; border-radius: 8px;
    border: 1px solid rgba(127, 127, 127, .2); background: #fff;
}
.zq-cl-qr span { font-size: 12px; color: #4b5563; opacity: .8; text-align: center; }   /* 白底弹层固定深字 */

/* 发布页：分区卡片 + 两列网格 + 图集上传 */
.zq-cl-form form { max-width: 860px; }
.zq-cl-fhead { margin-bottom: 16px; }
.zq-cl-ftitle { margin: 0 0 6px; font-size: 22px; }
.zq-cl-card {
    margin: 0 0 16px; padding: 16px 18px 18px; border-radius: 12px;
    border: 1px solid rgba(127, 127, 127, .18);
    background: rgba(127, 127, 127, .035);
}
.zq-cl-card-t {
    margin: 0 0 14px; font-size: 14px; font-weight: 700;
}
.zq-cl-card-t::before {
    content: ""; display: inline-block; width: 3px; height: 13px; margin-right: 8px;
    background: currentColor; vertical-align: -1px;
}
.zq-cl-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 14px; }
.zq-cl-span { grid-column: 1 / -1; }
.zq-cl-frow { margin-bottom: 0; }
.zq-cl-ftip { margin: 6px 0 0; font-size: 12px; opacity: .6; }
.zq-cl-facts { display: flex; align-items: center; gap: 14px; margin-top: 4px; }

.zq-cl-up { display: flex; align-items: flex-start; gap: 10px; flex-wrap: wrap; }
.zq-cl-up-btn {
    display: inline-flex; align-items: center; gap: 6px; cursor: pointer;
    padding: 8px 14px; font-size: 13.5px; border-radius: 8px;
    border: 1px dashed rgba(127, 127, 127, .45);
}
.zq-cl-up-btn:hover { border-color: currentColor; }
.zq-cl-up-tip { align-self: center; font-size: 12px; opacity: .6; }
.zq-cl-up-list { flex: 1 0 100%; display: flex; gap: 8px; flex-wrap: wrap; }
.zq-cl-up.has-img .zq-cl-up-list { margin-top: 4px; }
.zq-cl-up-item {
    position: relative; width: 84px; height: 84px; border-radius: 8px; overflow: hidden;
    border: 1px solid rgba(127, 127, 127, .2);
}
.zq-cl-up-item img { display: block; width: 100%; height: 100%; object-fit: cover; }
.zq-cl-up-del {
    position: absolute; top: 2px; right: 2px; width: 20px; height: 20px; padding: 0;
    line-height: 18px; font-size: 14px; text-align: center; cursor: pointer;
    color: #fff; background: rgba(0, 0, 0, .55); border: 0; border-radius: 50%;
}
@media (max-width: 640px) {
    .zq-cl-grid { grid-template-columns: 1fr; }
    .zq-cl-thumb { width: 84px; height: 63px; }
    .zq-cl-shot { width: 104px; height: 78px; }
}

/* 详情（标题用模板自带的 h1，这里只有置顶 + 价格） */
.zq-cl-dhead { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.zq-cl-dhead .zq-cl-top { margin-right: 0; vertical-align: 0; font-size: 11.5px; padding: 2px 7px; }
.zq-cl-dprice { font-size: 22px; font-weight: 800; color: #c30d23; }
.zq-cl-dmeta { font-size: 13px; opacity: .68; }
.zq-cl-dposter { margin: 14px 0; font-size: 14px; }
.zq-cl-dcontent {
    padding: 16px 0; font-size: 14.5px; line-height: 1.9;
    border-top: 1px solid rgba(127, 127, 127, .16);
    border-bottom: 1px solid rgba(127, 127, 127, .16);
}
.zq-cl-dcontact {
    margin-top: 14px; padding: 12px 14px; font-size: 14px;
    border-radius: 8px; background: rgba(127, 127, 127, .08);
}
.zq-cl-dacts { display: flex; align-items: center; gap: 14px; margin: 18px 0; }
.zq-cl-dacts .zq-cl-fav { margin-left: 0; padding: 7px 18px; font-size: 13.5px; }
.zq-cl-back { font-size: 13.5px; opacity: .75; }
.zq-cl-rel h3 { margin: 22px 0 8px; font-size: 15px; }
.zq-cl-rel ul { list-style: none; margin: 0; padding: 0; }
.zq-cl-rel li {
    display: flex; align-items: baseline; gap: 10px;
    padding: 8px 0; font-size: 13.5px;
    border-bottom: 1px dashed rgba(127, 127, 127, .16);
}
.zq-cl-rel li a { flex: 1 1 auto; min-width: 0; }
.zq-cl-rel li span { color: #c30d23; white-space: nowrap; }

/* 发布表单 */
.zq-cl-ftitle { margin: 0 0 6px; font-size: 22px; }
.zq-cl-fhelp { margin: 0 0 16px; font-size: 13px; opacity: .72; }
.zq-cl-form form { max-width: 780px; }
.zq-cl-frow { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
.zq-cl-frow label { font-size: 13px; opacity: .78; }
.zq-cl-frow input, .zq-cl-frow select, .zq-cl-frow textarea {
    padding: 9px 11px; font-size: 14px; color: inherit; background: transparent;
    border: 1px solid rgba(127, 127, 127, .3); border-radius: 8px;
}
.zq-cl-frow textarea { resize: vertical; line-height: 1.7; }
.zq-cl-submit {
    align-self: flex-start; padding: 10px 28px; font-size: 14.5px; font-weight: 600;
    color: #fff; background: #c30d23; border: 0; border-radius: 8px; cursor: pointer;
}
.zq-cl-mylist li { flex-wrap: wrap; }
.zq-cl-mylist .tag { margin-left: 4px; }

/* 文章底部：收藏 + 分享操作条 */
.zq-actions-wrap { margin-top: 22px; }
.zq-actions {
    position: relative;
    display: flex; align-items: center; flex-wrap: wrap; gap: 8px 10px;
    padding: 12px 14px; font-size: 13.5px;
    border: 1px dashed rgba(127, 127, 127, .3); border-radius: 10px;
    background: rgba(127, 127, 127, .03);
}
.zq-act {
    display: inline-flex; align-items: center; gap: 4px; cursor: pointer;
    padding: 5px 13px; font-size: 13.5px;
    /* 白底胶囊：文字固定深色，不能继承容器（深色模板里会变白底浅字看不清） */
    color: #1f2328; white-space: nowrap;
    border: 1px solid rgba(127, 127, 127, .3); border-radius: 16px; background: #fff;
    text-decoration: none !important; font-family: inherit;
}
.zq-act:hover { border-color: #111827; color: #111827; }
.zq-act-fav.is-on { border-color: #f59e0b; color: #b45309; background: #fffbeb; }
/* 海外平台：hover 用各自品牌色区分 */
.zq-act.zq-act-fb:hover { border-color: #111827; color: #111827; }
.zq-act.zq-act-x:hover  { border-color: #111827; color: #111827; }
.zq-act.zq-act-in:hover { border-color: #111827; color: #111827; }
.zq-act.zq-act-wa:hover { border-color: #111827; color: #111827; }
.zq-act.zq-act-tg:hover { border-color: #111827; color: #111827; }
.zq-act.zq-act-rd:hover { border-color: #ff4500; color: #ff4500; }
.zq-act.zq-act-pi:hover { border-color: #e60023; color: #e60023; }
/* 分组标签（分享到 / 海外分享）独占一行，后面那排按钮整排跟着，
   这样十几个分享按钮都能铺开看到，不会被挤到一行里看不见 */
.zq-actions-label {
    flex: 0 0 100%; margin-top: 10px; font-size: 12.5px; opacity: .55; letter-spacing: .3px;
}
.zq-actions-label:first-of-type { margin-top: 4px; }
.zq-actions-split { display: none; }
.zq-actions-tip { margin-left: 2px; font-size: 12.5px; color: inherit; opacity: .75; }   /* 跟随主题，深色模板里不发黑 */

/* 一键转发：卡片预览 + 转发按钮（跟在操作条下面） */
.zq-fwd {
    margin-top: 14px; padding: 14px 16px 15px;
    border: 1px dashed rgba(127, 127, 127, .3); border-radius: 10px;
    background: rgba(127, 127, 127, .03);
}
.zq-fwd-head { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.zq-fwd-head span { font-size: 14.5px; font-weight: 700; color: #1f2329; }
.zq-fwd-head em { font-size: 12.5px; font-style: normal; color: #9aa1ab; }
/* 预览卡片：限宽，看起来就像发出去之后的样子 */
.zq-fwd-card { max-width: 420px; margin-bottom: 12px; }
.zq-fwd-card .zq-moment-link { cursor: default; }
.zq-fwd-acts { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 10px; }
.zq-fwd-btn {
    padding: 5px 14px; font-size: 13px; color: #4b5563; cursor: pointer;
    background: #fff; border: 1px solid rgba(127, 127, 127, .3); border-radius: 16px;
    transition: border-color .15s, color .15s, background .15s;
}
.zq-fwd-btn:hover { border-color: #111827; color: #111827; }
.zq-fwd-btn:disabled { opacity: .55; cursor: default; }
.zq-fwd-btn.is-primary { background: #111827; border-color: #111827; color: #fff; }
.zq-fwd-btn.is-primary:hover { background: #e02020; border-color: #e02020; color: #fff; }
.zq-fwd-links { display: inline-flex; gap: 10px; margin-left: 2px; }
.zq-fwd-links a { font-size: 12.5px; color: #111827; text-decoration: none; }
.zq-fwd-links a:hover { text-decoration: underline; }
@media (max-width: 640px) {
    .zq-fwd { padding: 12px; }
    .zq-fwd-card { max-width: none; }
    .zq-fwd-btn { flex: 1 1 auto; text-align: center; }
}

/* 微信二维码弹层 */
.zq-wechat-pop {
    position: fixed; inset: 0; z-index: 200;
    display: flex; align-items: center; justify-content: center;
    background: rgba(15, 23, 42, .55);
}
.zq-wechat-pop[hidden] { display: none; }
.zq-wechat-inner {
    position: relative;
    padding: 18px; border-radius: 12px; background: #fff; text-align: center;
    box-shadow: 0 12px 40px rgba(15, 23, 42, .28);
}
.zq-wechat-inner img { width: 180px; height: 180px; display: block; }
.zq-wechat-inner p { margin: 10px 0 0; font-size: 13px; color: #64748b; }
/* 关闭方式：右上角 × / 点击遮罩空白处 / Esc */
.zq-wechat-close {
    position: absolute; top: -12px; right: -12px;
    display: flex; align-items: center; justify-content: center;
    width: 30px; height: 30px; padding: 0;
    font-size: 20px; line-height: 1; color: #475569; cursor: pointer;
    border: 1px solid rgba(127, 127, 127, .3); border-radius: 50%;
    background: #fff; box-shadow: 0 2px 8px rgba(15, 23, 42, .18);
}
.zq-wechat-close:hover { border-color: #dc2626; color: #dc2626; }
.zq-wechat-tip { margin-top: 6px !important; font-size: 12px !important; opacity: .65; }

/* 关键词聚合 */
.kw-tags { margin: 18px 0; font-size: 13.5px; }
.kw-tags span { opacity: .6; margin-right: 6px; }
.kw-tags a {
    display: inline-block; margin: 0 6px 6px 0; padding: 3px 10px; font-size: 13px;
    border: 1px solid rgba(127, 127, 127, .25); border-radius: 14px; color: inherit; opacity: .85;
}
.kw-tags a:hover { opacity: 1; background: rgba(127, 127, 127, .08); }
.kw-related {
    margin-bottom: 16px; padding: 14px 16px; border-radius: 10px;
    background: rgba(127, 127, 127, .05);
}
.kw-related h3 { margin: 0 0 8px; font-size: 15px; }
.zq-comment-badge {
    font-size: 11px !important; padding: 1px 6px; border-radius: 8px;
    background: #e5e7eb; color: #111827; opacity: 1 !important;
}
.zq-comment-user { font-size: 13.5px; opacity: .8; }
.zq-comment-user b { opacity: 1; }
/* 评论署名 / 登录链接跟随主题文字色（深色模板里固定黑字会看不见） */
.zq-comment-user a { margin-left: 8px; font-size: 13px; color: inherit; }
.zq-comment-login { margin-left: 8px; font-size: 13px; }
.zq-comment-login a { color: inherit; }

/* 右下角「回到顶部」悬浮按钮：滚动超过一屏后出现 */
.zq-top {
    position: fixed; right: 20px; bottom: 20px; z-index: 9998;
    display: flex; align-items: center; justify-content: center;
    width: 46px; height: 46px; padding: 0; cursor: pointer;
    color: #111827; line-height: 0;
    background: rgba(255, 255, 255, .96);
    border: 1px solid rgba(17, 24, 39, .08);
    border-radius: 50%;
    box-shadow: 0 4px 12px rgba(17, 24, 39, .10), 0 12px 28px rgba(17, 24, 39, .10);
    transition: transform .22s cubic-bezier(.22, .61, .36, 1), box-shadow .22s ease,
                background .2s ease, color .2s ease;
    -webkit-tap-highlight-color: transparent;
}
/* 出现时的上浮过渡：不加 fill-mode，动画结束就交还给普通样式，免得盖住 hover 的 transform */
.zq-top { animation: zqTopIn .26s cubic-bezier(.22, .61, .36, 1); }
@keyframes zqTopIn {
    from { opacity: 0; transform: translateY(10px) scale(.94); }
}
.zq-top svg { transition: transform .22s cubic-bezier(.22, .61, .36, 1); }
.zq-top:hover {
    background: #fff; color: #000;
    transform: translateY(-3px);
    box-shadow: 0 8px 18px rgba(17, 24, 39, .14), 0 18px 40px rgba(17, 24, 39, .16);
}
.zq-top:hover svg { transform: translateY(-2px); }
.zq-top:active { transform: translateY(-1px) scale(.97); }
.zq-top:focus-visible { outline: 2px solid #111827; outline-offset: 3px; }
.zq-top[hidden] { display: none; }

/* 右侧悬浮客服：微信 + WhatsApp */
.zq-float {
    position: fixed; right: 20px; top: 50%; transform: translateY(-50%);
    z-index: 9998;
    display: flex; flex-direction: column; gap: 10px;
}
.zq-float-btn {
    display: flex; align-items: center; justify-content: center;
    width: 52px; height: 52px; padding: 0; line-height: 0; cursor: pointer;
    color: #fff; border: none; border-radius: 14px;
    box-shadow: 0 4px 12px rgba(17, 24, 39, .14), 0 10px 26px rgba(17, 24, 39, .12);
    text-decoration: none;
    transition: transform .2s cubic-bezier(.22, .61, .36, 1), box-shadow .2s ease, filter .2s ease;
    -webkit-tap-highlight-color: transparent;
}
.zq-float-wx { background: #111827; }
.zq-float-wa { background: #111827; }
/* 两个绿色客服图标下面：收藏（琥珀）+ 站内搜索（墨黑，游客也能点） */
.zq-float-fav { background: #f59e0b; }
.zq-float-search { background: #111827; }
/* 描边式图标在实底按钮上稍微加粗一点，远看才清楚 */
.zq-float-fav svg, .zq-float-search svg { stroke-width: 2; }
.zq-float-btn:hover { color: #fff; text-decoration: none; transform: translateY(-2px) scale(1.04); filter: saturate(1.08); }
.zq-float-btn:active { transform: translateY(0) scale(.97); }
.zq-float-btn:focus-visible { outline: 2px solid #111827; outline-offset: 3px; }
.zq-float-btn svg { pointer-events: none; }

/* 微信弹层 */
.zq-float-pop {
    position: fixed; right: 90px; top: 50%; transform: translateY(-50%);
    z-index: 9999; width: 178px; padding: 14px 14px 12px;
    background: #fff; border: 1px solid rgba(17, 24, 39, .08); border-radius: 14px;
    text-align: center;
    box-shadow: 0 10px 30px rgba(17, 24, 39, .18);
}
.zq-float-pop[hidden] { display: none; }
.zq-float-pop img { display: block; width: 150px; height: 150px; margin: 0 auto; border-radius: 8px; }
.zq-float-pop-close {
    position: absolute; top: 4px; right: 8px; border: none; background: none; cursor: pointer;
    font-size: 18px; line-height: 1; color: #9ca3af; padding: 2px 4px;
}
.zq-float-pop-close:hover { color: #111827; }
.zq-float-wxid {
    margin: 10px 0 8px; font-size: 13.5px; font-weight: 600; color: #111827; word-break: break-all;
}
.zq-float-tip { margin: 8px 0 0; font-size: 12px; color: #6b7280; }
.zq-float-copy {
    padding: 5px 14px; font-size: 12.5px; cursor: pointer; color: #fff;
    background: #111827; border: none; border-radius: 999px;
    transition: background .2s ease;
}
.zq-float-copy:hover { background: #000; color: #fff; }
.zq-float-copy.is-done { background: #374151; }

/* 游客收藏清单（悬浮条 ★ 弹出）：黑色卡片风格 */
.zq-float-favpop {
    width: 248px; padding: 16px 16px 15px; text-align: left;
    max-height: 62vh; overflow-y: auto;
    background: #111214; border: 1px solid rgba(255, 255, 255, .09); border-radius: 14px;
    color: #e5e7eb;
    box-shadow: 0 12px 34px rgba(0, 0, 0, .45);
}
.zq-float-favpop .zq-float-wxid { margin: 0 0 12px; font-size: 13.5px; color: #fff; }
.zq-float-favpop .zq-float-pop-close { color: #8b909b; }
.zq-float-favpop .zq-float-pop-close:hover { color: #fff; }
.zq-fav-list { list-style: none; margin: 0 0 12px; padding: 0; }
.zq-fav-list li {
    display: flex; align-items: center; gap: 8px; padding: 8px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
}
.zq-fav-list li:last-child { border-bottom: 0; }
.zq-fav-list a {
    flex: 1 1 auto; min-width: 0; font-size: 13px; color: #d1d5db; text-decoration: none;
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
    transition: color .15s ease;
}
.zq-fav-list a:hover { color: #fff; text-decoration: underline; }
.zq-fav-list button {
    flex: 0 0 auto; padding: 2px 9px; font-size: 11.5px; cursor: pointer;
    color: #9ca3af; background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .14); border-radius: 999px;
    transition: color .15s, border-color .15s, background .15s;
}
.zq-fav-list button:hover { color: #fca5a5; border-color: rgba(252, 165, 165, .5); background: rgba(252, 165, 165, .08); }
.zq-float-favpop .zq-float-tip { color: #8b909b; }
.zq-float-favpop .zq-float-copy {
    display: inline-block; text-decoration: none; background: #111827;
    padding: 6px 16px; font-size: 12.5px;
}
.zq-float-favpop .zq-float-copy:hover { background: #111827; color: #fff; }

/* 隐私提示悬浮条 */
.zq-privacy {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 9999;
    padding: 0 16px; background: rgba(17, 17, 17, .95); color: #f5f5f5;
    box-shadow: 0 -2px 20px rgba(0, 0, 0, .2);
    transform: translateY(100%);
    transition: transform .26s ease;
}
.zq-privacy.zq-privacy-on { transform: translateY(0); }
.zq-privacy-inner {
    max-width: 1140px; margin: 0 auto; padding: 13px 0;
    display: flex; align-items: center; gap: 18px;
}
.zq-privacy-text {
    flex: 1; min-width: 0; margin: 0;
    font-size: 13.5px; line-height: 1.75; color: #e8e8e8;
}
.zq-privacy-link {
    color: #e8e8e8; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap;
}
.zq-privacy-link:hover { color: #fff; }
.zq-privacy-btns { display: flex; gap: 10px; flex-shrink: 0; }
.zq-privacy-btns button {
    padding: 7px 20px; font-size: 13.5px; line-height: 1.5; cursor: pointer;
    border: 1px solid rgba(255, 255, 255, .32); border-radius: 6px;
    background: transparent; color: #f5f5f5; font-family: inherit;
    transition: background .15s, border-color .15s;
}
.zq-privacy-btns button:hover { background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .55); }
.zq-privacy-btns .zq-privacy-agree { background: #fff; border-color: #fff; color: #111; }
.zq-privacy-btns .zq-privacy-agree:hover { background: #dcdcdc; border-color: #dcdcdc; }

/* ---------- C. 移动端适配（≤860px，!important 保证生效） ---------- */
@media (max-width: 860px) {
    /* 容器 */
    .wrap { max-width: 100% !important; padding-left: 12px !important; padding-right: 12px !important; }
    /* 页头一行放齐：logo / 国家 / 语言 / 汉堡。强制不换行，
       各控件压窄——以前 logo 允许占到 100vw-90px，国家语言全被挤去第二行 */
    header.header .wrap {
        min-height: 56px !important; height: auto !important;
        padding-top: 8px !important; padding-bottom: 8px !important;
        flex-wrap: nowrap !important; gap: 8px !important;
    }
    header.header .wrap > * { flex: 0 0 auto !important; }
    header.header .wrap > .logo { flex: 0 1 auto !important; min-width: 0 !important; }
    .zq-nav-toggle { display: block !important; margin-left: auto !important; }

    /* 顶部：logo 左 / 汉堡右。文字 logo 截断省略，图片 logo 压到 30px 高 */
    .logo { font-size: 18px !important; line-height: 1.3 !important; }
    header.header .logo a {
        display: inline-block; max-width: 34vw;
        overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .logo img.logo-img { max-height: 30px !important; max-width: 34vw !important; }

    /* 国家 / 语言按钮压窄，给汉堡留位（BBC 等模板带 .header 前缀的
       important 规则特异性更高，不受影响——它们本来就放得下） */
    .zq-country-switch, .zq-lang-switch { margin-left: 0 !important; }
    .zq-country-btn, .zq-lang-switch > a, .zq-lang-btn {
        padding: 5px 8px !important; font-size: 12.5px !important;
    }

    /* ---------- 手机端独立菜单（九宫格）：和桌面端那套 nav 完全分开 ---------- */
    .zq-mnav {
        display: block !important;
        position: absolute !important;
        top: 100% !important; left: 0 !important; right: 0 !important;
        z-index: 2;
        background: #fff;
        border-bottom: 1px solid rgba(0, 0, 0, .08);
        box-shadow: 0 12px 26px rgba(0, 0, 0, .14);
        /* 给底部菜单（62px）留位置，最后一行不会被压住 */
        max-height: calc(100vh - 56px - 68px);
        overflow-y: auto; -webkit-overflow-scrolling: touch;
        opacity: 0; visibility: hidden; transform: translateY(-8px);
        transition: opacity .2s ease, transform .22s ease, visibility .2s;
    }
    .zq-mnav.on { opacity: 1; visibility: visible; transform: none; }
    .zq-mnav-mask {
        display: block !important;
        position: fixed; left: 0; right: 0; bottom: 0; top: 56px; z-index: 1;
        background: rgba(17, 24, 39, .38);
        opacity: 0; visibility: hidden; transition: opacity .2s ease, visibility .2s;
    }
    .zq-mnav-mask.on { opacity: 1; visibility: visible; }
    /* 菜单打开时锁住页面滚动（菜单自己可以滚） */
    body.zq-mnav-open { overflow: hidden !important; }
    /* 底部菜单 / Cookie 提示条一起下沉，等关菜单再回来（不然压住菜单最后几行） */
    body.zq-mnav-open .zq-mtab,
    body.zq-mnav-open .zq-privacy { transform: translateY(110%) !important; }
    .zq-mtab { transition: transform .22s ease; }

    .zq-mnav-sec { padding: 12px 12px 2px; }
    .zq-mnav-sec-t { margin: 0 2px 8px; font-size: 12px; font-weight: 600; color: #9aa1ab; letter-spacing: .5px; }
    .zq-mnav-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
    .zq-mnav-i {
        display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px;
        padding: 11px 4px 9px; border-radius: 12px; background: #f5f6f8;
        color: #374151; text-decoration: none; text-align: center;
        -webkit-tap-highlight-color: transparent;
        transition: background .15s, color .15s, transform .12s;
    }
    .zq-mnav-i:active { background: #eceef1; transform: scale(.97); }
    .zq-mnav-ic { display: flex; align-items: center; justify-content: center; color: #4b5563; }
    .zq-mnav-ic svg { width: 23px; height: 23px; }
    .zq-mnav-tx {
        max-width: 100%; font-size: 12.5px; line-height: 1.25;
        overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .zq-mnav-i.on { background: var(--zq-accent-soft, #fff1f2); color: var(--zq-accent, #C30D23); }
    .zq-mnav-i.on .zq-mnav-ic { color: var(--zq-accent, #C30D23); }
    .zq-mnav-foot { padding: 12px 12px calc(14px + env(safe-area-inset-bottom, 0px)); }
    .zq-mnav-close {
        display: block; width: 100%; padding: 10px; font-size: 14px; font-family: inherit;
        color: #6b7280; background: #f5f6f8; border: 0; border-radius: 10px; cursor: pointer;
    }
    .zq-mnav-close:active { background: #eceef1; }

    /* header 抬到手机端底部菜单（.zq-mtab z-index:90）之上：
       否则展开的导航面板会被底部菜单盖住一条，看着像"菜单乱了" */
    header.header { z-index: 95 !important; }

    /* 导航：默认收起，展开为下拉面板 */
    .zq-nav-wrap { display: none !important; }
    .zq-nav-wrap.open {
        display: block !important;
        position: absolute !important;
        top: 100% !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        flex-basis: 100% !important;
        background: #fff;
        color: #333;
        border-bottom: 1px solid rgba(0, 0, 0, .08);
        box-shadow: 0 10px 22px rgba(0, 0, 0, .12);
        /* 面板底部留出底部菜单的高度，最后一项不会被压住 */
        max-height: calc(100vh - 56px - 68px);
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        z-index: 1;
    }
    /* 手机端菜单：首页 / 最新 / 热榜 / 栏目排成 2 列网格（细分隔线），
       和下面「更多」面板里的栏目、功能区排版一致；选中 / 悬停仍是红字 + 红色下划线 */
    .zq-nav-wrap.open ul.nav {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 0 !important; padding: 4px 0 6px !important;
    }
    .zq-nav-wrap.open .nav > li {
        width: 100% !important;
        padding: 0 16px !important;
        border-bottom: 1px solid rgba(0, 0, 0, .06) !important;
    }
    /* 「更多」面板是整块内容（里面自己还有 2 列），必须占满两列 */
    .zq-nav-wrap.open .nav > li.zq-nav-more { grid-column: 1 / -1 !important; }
    .zq-nav-wrap.open .nav > li:last-child { border-bottom: 0 !important; }
    .zq-nav-wrap.open .nav > li > a {
        display: inline-block !important;
        position: relative;
        margin: 0 !important;
        padding: 13px 2px !important;
        font-size: 15px !important;
        font-weight: 500;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        color: var(--zq-nav-fg, #333) !important;
    }
    .zq-nav-wrap.open .nav > li > a::after {
        left: 2px !important; right: 2px !important; bottom: 6px !important;
    }
    .zq-nav-wrap.open .nav > li.on > a { font-weight: 700; }
    .zq-nav-wrap.open .nav > li > a:hover,
    .zq-nav-wrap.open .nav > li.on > a {
        background: transparent !important;
        color: var(--zq-nav-fg-on, var(--zq-accent, #C30D23)) !important;
    }
    /* 汉堡菜单展开时不再折叠：隐藏「更多」按钮，把面板里的栏目 / 功能直接列出来 */
    .zq-nav-wrap.open .nav > li.zq-nav-more > a { display: none !important; }
    .zq-nav-wrap.open .nav > li.zq-nav-more > .zq-nav-panel {
        display: block !important; position: static !important;
        width: auto !important; max-height: none !important; overflow: visible !important;
        margin: 0 !important; padding: 2px 10px 12px !important;
        border: 0 !important; border-radius: 0 !important;
        background: transparent !important; box-shadow: none !important;
        /* 桌面样式是 left:50% + translateX(-50%)（还有脚本按 .wrap 实测写进 inline style 的值）。
           移动端改成 static 后 transform 依然生效，面板会整体左移一半、第一列跑到屏幕外，
           看起来就是"菜单乱了 + 顶上多一块空白" —— 这里必须全部复位 */
        left: auto !important; right: auto !important; top: auto !important;
        transform: none !important;
    }
    .zq-nav-wrap.open .zq-nav-panel .zq-nav-pcol { flex: none !important; }
    /* 抵消上面 .nav li 的 width:100%（会让 2 列网格里的项溢出列宽） */
    .zq-nav-wrap.open .zq-nav-panel li { width: auto !important; }
    .zq-nav-wrap.open .zq-nav-panel .zq-nav-pcol + .zq-nav-pcol {
        border-left: 0 !important; padding-left: 0 !important;
    }
    .zq-nav-wrap.open .zq-nav-panel h4 {
        padding: 8px 16px 4px !important; border-bottom: 0 !important;
        font-size: 12px !important; color: var(--zq-nav-sub, #9aa1ab) !important;
    }
    /* 手机端：栏目 / 功能都排成 2 列 */
    .zq-nav-wrap.open .zq-nav-pcol-news ul,
    .zq-nav-wrap.open .zq-nav-pcol-func ul { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 2px 8px !important; }
    /* 面板里的项：2 列网格内左对齐，下划线只到文字宽度 */
    .zq-nav-wrap.open .zq-nav-panel li { border-bottom: 0 !important; padding: 0 !important; }
    .zq-nav-wrap.open .zq-nav-panel li > a {
        max-width: 100%;
        padding: 9px 2px !important;
        font-size: 14.5px !important;
        color: var(--zq-nav-fg, #333) !important;
        background: transparent !important;
        border: 0 !important;
        border-radius: 0 !important;
        white-space: nowrap !important;
    }
    .zq-nav-wrap.open .zq-nav-panel li > a::after {
        left: 2px !important; right: 2px !important; bottom: 3px !important;
    }
    .zq-nav-wrap.open .zq-nav-panel li.on > a { font-weight: 700; }

    /* 主体：单列堆叠 */
    .main {
        display: flex !important;
        flex-direction: column !important;
        gap: 14px !important;
        margin: 14px auto !important;
    }
    .main > .content,
    .main > .sidebar,
    .main > aside { width: 100% !important; max-width: 100% !important; flex: none !important; }
    /* 侧边栏（功能入口 / 最新动态 / 公告 / 日历…）手机端整体不显示 */
    .main > .sidebar,
    .main > aside.sidebar { display: none !important; }

    /* 内边距收窄 */
    .content { padding: 16px 14px !important; }
    .box { padding: 14px !important; margin-bottom: 12px !important; }

    /* 字号 */
    .article h1 { font-size: 21px !important; line-height: 1.45 !important; }
    .article .meta { font-size: 12.5px !important; }
    .article .body { font-size: 16px !important; line-height: 1.9 !important; }
    .list-item { padding: 14px 0 !important; }

    /* 会员入口：移动端紧凑排布 */
    .zq-member { margin-left: 0 !important; gap: 8px !important; font-size: 12.5px !important; }
    .zq-member-page { max-width: 100% !important; }
    .zq-auth-card { padding: 24px 18px 20px !important; }
    /* 认证页：移动端去掉居中背景，卡片自然撑满 */
    .zq-auth-wrap { min-height: 0; padding: 12px 0 0; border-radius: 0; background: none; }
    .zq-auth-shell { max-width: 100%; }
    .zq-member-favorites li > a:first-child { flex-basis: 100% !important; }

    /* 收藏 / 分享操作条：紧凑排布 */
    .zq-actions { padding: 10px 12px !important; gap: 8px !important; }
    .zq-act { padding: 5px 11px !important; font-size: 13px !important; }
    .zq-actions-label { display: none !important; }

    /* 隐私条：窄屏改为上下堆叠，按钮靠右 */
    .zq-privacy { padding: 0 12px !important; }
    .zq-privacy-inner {
        flex-direction: column !important; align-items: stretch !important;
        gap: 10px !important; padding: 12px 0 !important;
    }
    .zq-privacy-text { font-size: 13px !important; line-height: 1.7 !important; }
    .zq-privacy-link { white-space: normal !important; }
    .zq-privacy-btns { justify-content: flex-end !important; }
    .zq-privacy-btns button { padding: 8px 22px !important; }
    .list-item h2 { font-size: 17px !important; }
    .list-item p { font-size: 14px !important; }

    /* 长内容防溢出 */
    .content img, .article .body img { max-width: 100% !important; height: auto !important; }
    .content table { display: block !important; overflow-x: auto !important; -webkit-overflow-scrolling: touch; }
    .content pre { overflow-x: auto !important; }
    .tags a, .friend-links a { font-size: 13px !important; }
    /* 标签中心：窄屏缩小标题与标签按钮 */
    .zq-tag-head h1 { font-size: 19px !important; }
    /* 站点地图：窄屏标题缩小、分类区改单列 */
    .zq-map-head h1 { font-size: 19px !important; }
    .zq-map-sec > h2 { font-size: 16px !important; }
    .zq-map-cats { grid-template-columns: 1fr !important; }
    .zq-tag-head span { font-size: 12px !important; }
    .zq-tags-all a { padding: 5px 11px !important; font-size: 13px !important; margin: 0 7px 9px 0 !important; }

    /* 页脚 */
    footer.footer { padding: 20px 0 !important; margin-top: 20px !important; font-size: 12.5px !important; }

    /* 搜索：手机端底部菜单已有「搜索」入口，页头放大镜按钮整体隐藏（不留空位） */
    .zq-search { display: none !important; }
    .zq-search-panel { width: 92% !important; margin: 12vh auto 0 !important; }
    .zq-search-form input { font-size: 16px !important; }   /* ≥16px 防止 iOS 自动放大 */
    /* 回到顶部按钮：手机上稍微收小，避免挡内容 */
    .zq-top { right: 14px !important; width: 40px !important; height: 40px !important; }
    .zq-top svg { width: 18px !important; height: 18px !important; }
    /* 悬浮客服：靠边收小，弹层改到按钮左侧、宽度也收一档 */
    .zq-float { right: 12px !important; gap: 8px !important; }
    .zq-float-btn { width: 48px !important; height: 48px !important; }
    .zq-float-btn svg { width: 26px !important; height: 26px !important; }
    .zq-float-pop { right: 68px !important; width: 152px !important; }
    .zq-float-pop img { width: 124px !important; height: 124px !important; }

    /* 首页推荐双栏：窄屏上下堆叠 */
    .zq-home-blocks { flex-direction: column !important; gap: 12px !important; margin: 0 0 14px !important; }
    .zq-home-block { padding: 12px 13px 8px !important; }

    /* 公告弹层：窄屏更贴边、可滚动区域更高 */
    .zq-ann-modal { padding: 12px !important; }
    .zq-ann-panel { padding: 18px 18px 16px !important; max-height: 84vh !important; }
    .zq-ann-panel h4 { font-size: 16px !important; }
    .zq-comment-form input { max-width: 100% !important; }
    /* 手机端评论区滚动区收窄，正文更容易触达 */
    .zq-comment-scroll { max-height: 320px !important; }
}

/* ---------- D. 小屏手机（≤420px） ---------- */
@media (max-width: 420px) {
    .logo { font-size: 18px !important; }
    .article h1 { font-size: 19px !important; }
    .article .body { font-size: 15.5px !important; }
    .list-item h2 { font-size: 16px !important; }
    .content { padding: 14px 12px !important; }
    .pager a { padding: 6px 11px !important; font-size: 13.5px !important; }
}

/* ---------- E. 留言专区（/guestbook） ---------- */
.zq-guest-page { max-width: 620px; margin: 0 auto; }
.zq-guest-card {
    position: relative; overflow: hidden;
    padding: 30px 28px 26px;
    border: 1px solid #e8e8e8; border-radius: 18px; background: #fff;
    box-shadow: 0 18px 44px rgba(0, 0, 0, .07);
}
.zq-guest-card::before {
    content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: #111;
}
.zq-guest-tip { font-weight: 400; opacity: .6; }
.zq-guest-text {
    width: 100%; box-sizing: border-box; padding: 11px 14px;
    font-size: 14.5px; line-height: 1.85; font-family: inherit; resize: vertical;
    border: 1px solid #e0e0e0; border-radius: 10px; background: #fff; color: #111;
    transition: border-color .18s, box-shadow .18s;
}
.zq-guest-text:hover { border-color: #c4c4c4; }
.zq-guest-text:focus { outline: none; border-color: #111; box-shadow: 0 0 0 3px rgba(0, 0, 0, .07); }

/* 已审核留言列表 */
.zq-guest-list { margin-top: 24px; }
.zq-guest-list-title { font-size: 16px; font-weight: 700; margin: 0 0 10px; }
.zq-guest-list ul { list-style: none; margin: 0; padding: 0; }
.zq-guest-item { padding: 14px 0; border-bottom: 1px dashed rgba(127, 127, 127, .2); }
.zq-guest-item:last-child { border-bottom: 0; }
.zq-guest-meta { display: flex; align-items: center; gap: 10px; font-size: 13px; margin-bottom: 6px; }
.zq-guest-meta span { opacity: .55; }
/* 留言类型标签（友链申请 / 广告申请 / 推荐产品 / 推荐新闻） */
.zq-guest-meta .zq-guest-type-tag {
    opacity: 1; font-size: 11.5px; line-height: 1; padding: 3px 8px; border-radius: 999px;
    background: rgba(127, 127, 127, .14); color: inherit;
}
/* 留言表单里的类型下拉 */
.zq-guest-type {
    width: 100%; height: 42px; padding: 0 12px; font-size: 14px; color: inherit;
    border: 1px solid rgba(127, 127, 127, .28); border-radius: 8px; background: transparent;
}
.zq-guest-type:focus { outline: none; border-color: #e02020; }
.zq-guest-body { font-size: 14.5px; line-height: 1.85; opacity: .9; }

/* ---------- F. 网站海报（首页内容区左侧） ---------- */
.zq-poster-zone { float: left; width: 240px; max-width: 45%; margin: 0 20px 16px 0; }
.zq-poster-item { margin-bottom: 14px; }
.zq-poster-item:last-child { margin-bottom: 0; }
/* 海报标题（后台填了才显示） */
.zq-poster-title {
    margin: 6px 0 0; font-size: 13px; line-height: 1.5; color: #555; text-align: center;
}
.zq-poster-zone img {
    display: block; max-width: 100%; height: auto;
    border: 1px solid #e8e8e8; border-radius: 10px;
}
.zq-poster-zone a { display: block; text-decoration: none; }
.zq-poster-mb { display: none; }
@media (max-width: 860px) {
    /* 手机端：取消左浮动，改整行展示手机图 */
    .zq-poster-zone { float: none !important; width: 100% !important; max-width: 100% !important; margin: 0 0 16px !important; }
    .zq-poster-pc { display: none !important; }
    .zq-poster-mb { display: block !important; }
}

/* ---------- G. 顶部轮播（后台「海报」：导航菜单下方 / 正文上方） ---------- */
.zq-slider {
    position: relative; overflow: hidden; width: 100%;
    /* 位于左列内容容器顶部，只占内容区宽度，右侧栏自然顶上来 */
    margin: 0 0 18px; border-radius: 12px;
    background: rgba(127, 127, 127, .06);
    /* 竖版 / 超长海报的高度上限：超过后图片按 contain 居中留白，仍然完整不裁切 */
    max-height: 82vh;
}
/* 等比占位撑出高度：默认 16:9，JS 会按当前这张海报的真实宽高比
   改写 --zq-slide-ratio（并在 16:9~4:3 之间收敛），任何尺寸的海报都不变形、不留白 */
.zq-slider::before {
    content: ""; display: block;
    padding-top: var(--zq-slide-ratio, 56.25%);
    transition: padding-top .25s ease;
}
.zq-slider-track { position: absolute; inset: 0; }
.zq-slide { position: absolute; inset: 0; display: none; }
.zq-slide.is-active { display: block; }
.zq-slide-link { display: block; width: 100%; height: 100%; text-decoration: none; }
/* cover：铺满整个轮播框。轮播高度有下限（见 JS 里的 16:9 收敛），
   cover 才能保证不同比例的海报都不留白、不变形（只会左右多裁一点） */
.zq-slide img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
/* 海报标题：叠在图片底部显示；pointer-events:none 保证点图片照样跳链接 */
.zq-slide-title {
    position: absolute; left: 0; right: 0; bottom: 0;
    padding: 30px 18px 26px;
    background: linear-gradient(to top, rgba(15, 23, 42, .78), rgba(15, 23, 42, .34) 46%, rgba(15, 23, 42, 0));
    color: #fff; font-size: 15px; line-height: 1.45; text-align: center;
    text-shadow: 0 1px 3px rgba(0, 0, 0, .45); pointer-events: none;
}
.zq-slider-arrow {
    position: absolute; top: 50%; transform: translateY(-50%);
    display: flex; align-items: center; justify-content: center;
    width: 36px; height: 36px; padding: 0; cursor: pointer;
    color: #fff;
    border: 0; border-radius: 50%; background: rgba(15, 23, 42, .38);
    opacity: 0; transition: opacity .2s ease, background .2s ease;
}
.zq-slider-arrow svg { display: block; width: 15px; height: 15px; }
.zq-slider-prev { left: 12px; }
.zq-slider-next { right: 12px; }
.zq-slider:hover .zq-slider-arrow { opacity: 1; }
.zq-slider-arrow:hover { background: rgba(15, 23, 42, .62); }
.zq-slider-arrow:focus-visible { opacity: 1; outline: 2px solid #fff; }
.zq-slider-dots {
    position: absolute; left: 0; right: 0; bottom: 10px;
    display: flex; justify-content: center; gap: 7px;
}
.zq-dot {
    width: 9px; height: 9px; padding: 0; cursor: pointer;
    border: 0; border-radius: 50%; background: rgba(255, 255, 255, .5);
    box-shadow: 0 1px 3px rgba(15, 23, 42, .35); transition: background .2s ease;
}
.zq-dot.is-on { background: #fff; }
@media (max-width: 860px) {
    .zq-slider { margin: 0 0 14px; border-radius: 10px; max-height: 88vh; }
    /* 手机端默认按竖屏比例（约 3:4），同样会被 JS 按海报真实比例覆盖 */
    .zq-slider::before { padding-top: var(--zq-slide-ratio, 133%); }
    /* 手机端没有 hover，箭头常显（半透明） */
    .zq-slider-arrow { opacity: .8; width: 30px; height: 30px; }
    .zq-slider-arrow svg { width: 13px; height: 13px; }
    .zq-slider-prev { left: 8px; }
    .zq-slider-next { right: 8px; }
}



/* ---------------- 提示词 ---------------- */
.zq-prompt-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
.zq-prompt-head h2 { margin:0; font-size:20px; }
.zq-prompt-newbtn { display:inline-block; padding:6px 14px; border-radius:6px; background:#111827; color:#fff; text-decoration:none; font-size:14px; }
.zq-prompt-newbtn:hover { background:#e02020; color:#fff; }
.zq-prompt-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:12px; }
.zq-prompt-card { display:flex; gap:12px; padding:12px; border:1px solid #e5e7eb; border-radius:8px; background:#fff; color:inherit; text-decoration:none; }
.zq-prompt-card:hover { border-color:#111827; }
.zq-prompt-thumb { width:96px; height:96px; flex:0 0 96px; border-radius:6px; overflow:hidden; background:#f3f4f6; display:flex; align-items:center; justify-content:center; }
.zq-prompt-thumb img { width:100%; height:100%; object-fit:cover; }
.zq-prompt-thumb span { font-size:12px; color:#9ca3af; }
.zq-prompt-info { flex:1; min-width:0; }
.zq-prompt-info h3 { margin:0 0 6px; font-size:15px; line-height:1.4; }
.zq-prompt-info p { margin:6px 0; font-size:13px; color:#555; line-height:1.5; max-height:3em; overflow:hidden; }
.zq-prompt-tags { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:4px; }
.zq-prompt-meta { font-size:12px; color:#999; }
.zq-prompt-empty { padding:36px; text-align:center; color:#999; }
.zq-prompt-detail h2 { margin:0 0 10px; font-size:22px; }
.zq-prompt-gallery { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:10px; margin:14px 0; }
.zq-prompt-gallery img { width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:6px; background:#f3f4f6; }
.zq-prompt-body { margin:14px 0; line-height:1.8; word-wrap:break-word; }
.zq-prompt-lb { display:block; font-size:13px; color:#666; margin:12px 0 5px; }
.zq-prompt-imgbox { border:1px dashed #d1d5db; border-radius:8px; padding:12px; margin:6px 0 12px; }
.zq-prompt-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(96px,1fr)); gap:8px; margin:8px 0; }
.zq-prompt-cell { position:relative; aspect-ratio:1/1; border-radius:6px; overflow:hidden; background:#f3f4f6; }
.zq-prompt-cell img { width:100%; height:100%; object-fit:cover; }
.zq-prompt-del { position:absolute; top:3px; right:3px; width:20px; height:20px; padding:0; line-height:18px; border:0; border-radius:50%; background:rgba(0,0,0,.55); color:#fff; font-size:13px; cursor:pointer; }
.zq-prompt-del:hover { background:#dc2626; }
.zq-prompt-addimg { padding:5px 12px; border:1px solid #d1d5db; border-radius:6px; background:#fff; color:#333; cursor:pointer; font-size:13px; }
.zq-prompt-addimg:hover { border-color:#111827; color:#111827; }
.zq-prompt-tip { margin-left:8px; font-size:12px; color:#888; }
@media (max-width:640px) { .zq-prompt-list { grid-template-columns:1fr; } }

/* 提示词发布：署名和提交按钮之间留点距离 */
.zq-prompt-form .zq-forum-frow:last-child { margin-top: 18px; }

/* ---------- 右侧栏「功能」模块（黑底白字，排在「广场」上面） ----------
   站点模板预设里有 .box{background:#fff} / .box h3{红色左边条} / .box li{点线}，
   会盖掉这里的样式，所以整组都用 !important 钉死，保证黑底白字在任何模板下都生效。 */
.sidebar .box.zq-feature-side,
.zq-feature-side {
    /* 默认黑底（浅色模板的设计）；深色模板把 --zq-feature-bg 设成自己的卡片色，
       免得深蓝 / 深灰页面里夹一块纯黑（最新 / 热榜那排功能入口） */
    background: var(--zq-feature-bg, #000) !important;
    color: #fff !important;
    border: 1px solid var(--zq-feature-line, transparent) !important;
    box-shadow: none !important;
    padding: 14px 16px !important;
}
.zq-feature-side h3 { display: none !important; }   /* 不显示「功能」标题 */
.zq-feature-side .zq-fb-list,
.zq-fb-list {
    /* 每个入口一行：图标成一列、文字成一列（两列各自左对齐） */
    list-style: none !important; margin: 0 !important; padding: 0 !important;
    width: 100% !important;
}
.zq-fb-list li {
    /* 每行等高、图标+文字整体在行内居中；分隔细线整行贯通 */
    display: flex !important; align-items: center; justify-content: center;
    min-height: 44px;
    list-style: none; margin: 0; padding: 0 2px !important;
    border-bottom: 1px dotted rgba(255, 255, 255, .22) !important;   /* 点线换成白色 */
    text-align: left !important;
}
.zq-fb-list li:last-child { border-bottom: 0 !important; }
.zq-fb-list li .zq-fb-item {
    /* 横排：图标 + 文字；!important 用来压过模板「黑白极简」的 .box li a{display:block}
       （之前就是被它覆盖成了上下堆叠）。
       所有行 min-width 相同且都 ≥ 内容宽 → 每行等宽，居中后图标一条竖线、文字一条竖线 */
    display: flex !important; align-items: center; gap: 12px;
    width: max-content; min-width: 8.5em;
    padding: 0 !important;
    font-size: 16px; line-height: 1.6; text-align: left;
    color: #fff !important; text-decoration: none; opacity: .82;
}
/* 图标尺寸锁死 + 垂直居中，保证所有图标同一条竖线 */
/* 图标占一个固定 20px 的居中盒子：不管 SVG 自身尺寸，图标列始终对齐 */
.zq-fb-item svg {
    flex: 0 0 20px; width: 20px; height: 20px; display: block; opacity: .9;
    transition: transform .18s ease, opacity .18s ease;
}
.zq-fb-item:hover svg { transform: scale(1.12); opacity: 1; }
.zq-fb-item.on svg { opacity: 1; }
.zq-fb-item:hover { opacity: 1; color: #fff !important; text-decoration: underline; }
.zq-fb-item.on {
    opacity: 1; font-weight: 600;
    text-decoration: none !important;
    /* 用下边框画下划线：红色、2px、和文字拉开 4px（text-decoration 的间距在部分缓存/浏览器下不可靠） */
    border-bottom: 2px solid #e02b2b !important;
    padding-bottom: 4px !important;
}

/* ---------- 侧边栏功能条：一行 3 列 ----------
   原来每个入口占一整行（17+ 个入口要 17+ 行），改成 3 列网格卡片后高度降到原来的三分之一，
   黑底上用半透明白块做卡片，当前项换成整块红底（比原来的红下划线更好认） */
.zq-feature-side .zq-fb-list,
.zq-fb-list {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 5px !important;
    width: 100% !important;
}
.zq-fb-list li {
    /* 卡片化后不再用行分隔线，li 只当格子用 */
    min-width: 0; min-height: 42px !important;
    padding: 0 !important;
    border-bottom: 0 !important;
}
.zq-fb-list li .zq-fb-item {
    width: 100% !important; min-width: 0 !important;
    min-height: 42px;
    justify-content: flex-start;
    padding: 0 8px !important;
    gap: 6px !important;
    font-size: 12.5px !important; line-height: 1.3;
    border-radius: 8px;
    background: rgba(255, 255, 255, .07);
    opacity: .92;
    transition: background .16s ease, opacity .16s ease;
}
.zq-fb-list li .zq-fb-item:hover {
    background: rgba(255, 255, 255, .16) !important;
    text-decoration: none !important;
    opacity: 1;
}
.zq-fb-list li .zq-fb-item.on {
    background: rgba(224, 43, 43, .92) !important;
    border-bottom: 0 !important;
    padding-bottom: 0 !important;
    opacity: 1;
}
.zq-fb-list li .zq-fb-item svg { flex: 0 0 16px !important; width: 16px !important; height: 16px !important; }
/* 文字过长时省略：3 列格子更窄，不能换行把卡片撑高（全称见链接 title 提示） */
.zq-fb-item .zq-fb-tx {
    min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* ---------- 国家切换器（logo 旁） ---------- */
.zq-country-switch { position: relative; display: inline-flex; align-items: center; margin-left: 14px; }
/* 锚点：包住按钮 + 下拉，下拉相对它定位 —— 即使模板把 switch 拉高（如 BBC 风格 96px 品牌行），菜单也紧贴按钮 */
.zq-country-anchor { position: relative; display: inline-flex; }
/* 国旗图标：本地 SVG（public/assets/flags/），没下到的国家回退 emoji 时走原来的 font-size 样式 */
img.zq-country-flag,
img.zq-lang-flag,
img.zq-flag {
    width: 20px; height: 15px; border-radius: 2px; object-fit: cover;
    box-shadow: 0 0 0 1px rgba(17, 24, 39, .12);
    display: inline-block; flex: 0 0 auto; vertical-align: -2px;
}
img.zq-lang-flag { width: 18px; height: 13px; }
.zq-country-btn {
    display: inline-flex; align-items: center; gap: 6px; cursor: pointer;
    padding: 5px 10px; font-size: 13px; line-height: 1.4; color: inherit;
    background: #f4f4f4; border: 1px solid rgba(127, 127, 127, .22); border-radius: 999px;
    white-space: nowrap; transition: border-color .2s ease, background .2s ease;
}
.zq-country-btn:hover { border-color: rgba(127, 127, 127, .45); background: #ebebeb; }
.zq-country-btn:focus-visible { outline: 2px solid #111827; outline-offset: 2px; }
.zq-country-flag { font-size: 15px; line-height: 1; }
.zq-country-caret {
    width: 0; height: 0; margin-left: 2px;
    border-left: 4px solid transparent; border-right: 4px solid transparent;
    border-top: 5px solid currentColor; opacity: .65;
}
.zq-country-menu {
    position: absolute; top: calc(100% + 6px); left: 0; z-index: 60;
    min-width: 168px; max-height: 320px; overflow-y: auto; padding: 6px;
    background: #fff; border: 1px solid rgba(17, 24, 39, .1); border-radius: 10px;
    box-shadow: 0 8px 24px rgba(17, 24, 39, .14);
}
.zq-country-menu[hidden] { display: none; }
.zq-country-item {
    display: flex; align-items: center; gap: 8px; padding: 7px 10px;
    font-size: 13px; color: #111827; text-decoration: none; border-radius: 7px; white-space: nowrap;
    background: #f4f4f4;                                  /* 文字背景 */
}
.zq-country-item + .zq-country-item { margin-top: 3px; }  /* 浅灰块之间留缝 */
.zq-country-item:hover { background: #ebebeb; color: #111827; text-decoration: none; }
/* 下拉项里的国家全名（不用 US / JP 这种简称） */
.zq-country-label { font-weight: 500; }
/* 按钮上的国家名 */
.zq-country-name { font-weight: 600; }
/* 选中项：红字，背景仍是浅灰 */
.zq-country-item.on { background: #f4f4f4; color: #e02020; font-weight: 600; }
.zq-country-item.on:hover { background: #ebebeb; color: #e02020; }

/* ---------- News 资讯频道 ---------- */
.zq-news-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.zq-news-head h2 { margin: 0; font-size: 20px; }
.zq-news-newbtn {
    padding: 7px 16px; font-size: 13px; color: #fff; background: #111827;
    border-radius: 999px; text-decoration: none;
}
.zq-news-newbtn:hover { background: #e02020; color: #fff; text-decoration: none; }
.zq-news-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.zq-news-tab {
    padding: 5px 12px; font-size: 13px; color: #4b5563; text-decoration: none;
    background: #f3f4f6; border-radius: 999px; white-space: nowrap;
}
.zq-news-tab:hover { background: #e5e7eb; color: #111827; text-decoration: none; }
.zq-news-tab.on { background: #111827; color: #fff; }
/* 卡片列表：单列铺满（热门帖子下面的板块），每条一整行 */
.zq-news-list { display: grid; grid-template-columns: 1fr; gap: 12px; }
.zq-news-card {
    display: block; padding: 14px 16px; text-decoration: none; color: inherit;
    background: #fff; border: 1px solid rgba(17, 24, 39, .08); border-radius: 10px;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.zq-news-card:hover {
    transform: translateY(-2px); border-color: rgba(37, 99, 235, .35);
    box-shadow: 0 8px 20px rgba(17, 24, 39, .10); color: inherit; text-decoration: none;
}
/* 标题一律只占一行，超出省略（英文标题长，否则会折成两三行） */
.zq-news-card h3 {
    margin: 0 0 6px; font-size: 16px; line-height: 1.45; color: #111827;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.zq-news-sum { margin: 0 0 8px; font-size: 13px; color: #6b7280; line-height: 1.6; max-height: 3.2em; overflow: hidden; }
.zq-news-meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 12px; color: #9ca3af; }
.zq-news-src { color: #111827; font-weight: 600; }
.zq-news-tag { padding: 2px 8px; background: #f3f4f6; border-radius: 999px; color: #4b5563; }
.zq-news-go { margin-left: auto; color: #111827; }
/* ---------- 资讯页头条横幅：大标题 + 小链接行（报纸风） ---------- */
.zq-news-hero-box {
    margin: 0 0 16px; padding: 20px 24px 16px;
    background: #fff; border: 1px solid #e5e7eb; border-radius: 12px;
}
.zq-news-hero { display: block; text-decoration: none; }
.zq-news-hero h2 {
    margin: 0 0 12px; font-size: 26px; line-height: 1.35; font-weight: 800;
    color: #111827; letter-spacing: .5px;
}
.zq-news-hero:hover h2 { color: #000; text-decoration: underline; text-underline-offset: 4px; }
.zq-hero-subs {
    display: flex; flex-wrap: wrap; align-items: center; gap: 6px 0;
    padding-top: 10px; border-top: 1px solid #f0f1f3;
    font-size: 13px; color: #6b7280; line-height: 1.6;
}
.zq-hero-subs a { color: #4b5563; text-decoration: none; }
.zq-hero-subs a:hover { color: #111827; text-decoration: underline; }
.zq-hero-sep { margin: 0 10px; color: #d1d5db; user-select: none; }
/* 英文标题长：英文站改一条一行并省略；中文站 3 条完整显示、自然换行 */
html[lang^="en"] .zq-hero-subs { flex-direction: column; align-items: flex-start; gap: 5px; }
html[lang^="en"] .zq-hero-subs a {
    display: inline-block; max-width: 100%; vertical-align: bottom;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
html[lang^="en"] .zq-hero-sep { display: none; }
html[lang^="en"] .zq-news-hq .zq-hero-subs { align-items: center; }
/* 英文站头条大标题：完整显示、自然换行、左对齐（长英文标题不再截断成一行） */
html[lang^="en"] .zq-news-hero h2 {
    display: block; white-space: normal; overflow: visible;
    -webkit-line-clamp: unset; text-overflow: clip; text-align: left;
}
/* 通栏版大标题同样取消居中：标题和下方副标题都靠左 */
html[lang^="en"] .zq-news-hq .zq-news-hero-box { text-align: left; }
html[lang^="en"] .zq-news-hq .zq-hero-subs { justify-content: flex-start; align-items: flex-start; text-align: left; }
/* 英文站轮播图字幕：也改左对齐，最多 2 行（原来居中 + 一行放不下直接撑出） */
html[lang^="en"] .zq-slide-title {
    text-align: left;
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
}
/* 英文站「最新资讯」列表标题：完整显示，自然换行 */
html[lang^="en"] .zq-news-latest li a {
    display: block; white-space: normal; line-height: 1.5;
    -webkit-line-clamp: unset; overflow: visible; text-overflow: clip;
}
/* 英文站首页 Editor's picks / Trending 小列表：标题完整显示，自然换行 */
html[lang^="en"] .zq-home-block li {
    align-items: flex-start;
    /* 每条固定 3 行高（14px × 1.5 × 3 行 + 上下内边距）：左右两栏分隔线逐行对齐 */
    min-height: 78px; box-sizing: border-box;
}
html[lang^="en"] .zq-home-block li:last-child { min-height: 0; }
html[lang^="en"] .zq-home-block li a {
    white-space: normal; line-height: 1.5; overflow: visible; text-overflow: clip;
}
/* 英文站文章列表大条目（首页下方 / 栏目页）：标题完整显示，不限行数 */
html[lang^="en"] .list-item h2 {
    -webkit-line-clamp: unset; overflow: visible; display: block;
}
/* 英文站头条下方的副标题行：完整显示（原来单行省略） */
html[lang^="en"] .zq-hero-subs a {
    white-space: normal; line-height: 1.6; overflow: visible; text-overflow: clip;
}
/* 英文标题长，通栏里的大标题也要留够边距，不与两侧贴边 */
html[lang^="en"] .zq-news-hq .zq-news-hero h2 { font-size: 24px; letter-spacing: .3px; }
@media (max-width: 640px) {
    .zq-news-hero-box { padding: 14px 16px 12px; }
    .zq-news-hero h2 { font-size: 20px; }
}

/* ---------- 资讯频道条通栏：贴导航栏正下方，红底横贯全屏 ---------- */
.zq-topbar { background: #C30D23; box-shadow: 0 3px 12px rgba(195, 13, 35, .25); }
.zq-topbar .zq-news-scrollbar {
    background: transparent;                    /* 红底由通栏容器提供 */
    border-radius: 0; margin: 0; max-width: none;
    box-shadow: none;
    padding: 15px 0 17px;
}
@media (max-width: 640px) {
    .zq-topbar .zq-news-scrollbar { padding: 12px 0 14px; }
}
/* 头条通栏：淡红底横贯全屏，内部卡片透明化铺满 */
.zq-topbar-plain { background: #fffafa; border-bottom: 1px solid #f3d2d6; box-shadow: none; }
.zq-topbar-plain .zq-news-hero-box {
    background: transparent; border: 0; border-radius: 0;
    margin: 0; padding: 18px 0 16px;
}
@media (max-width: 640px) {
    .zq-topbar-plain .zq-news-hero-box { padding: 13px 0 12px; }
}
/* ---------- 资讯页「论坛热帖」板块：挂在「资讯中心」标题下方 ---------- */
.zq-news-threads {
    background: #fff; border: 1px solid #f0dadd; border-top: 3px solid #C30D23;
    border-radius: 10px; padding: 14px 18px 10px; margin: 0 0 16px;
}
.zq-nt-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.zq-nt-head h3 { font-size: 15.5px; font-weight: 700; color: #8f0a1a; margin: 0; letter-spacing: .5px; }
.zq-nt-more { font-size: 13px; color: #C30D23; text-decoration: none; }
.zq-nt-more:hover { text-decoration: underline; }
.zq-news-threads .zq-fside-list li { font-size: 14.5px; padding: 9px 0; border-bottom: 1px dashed #f7e4e4; }
.zq-news-threads .zq-fside-list a:hover { color: #C30D23; }
.zq-news-threads .zq-fside-rank { border-radius: 999px; width: 20px; height: 20px; line-height: 20px; flex-basis: 20px; }
.zq-news-threads .zq-fside-rank.top3 { background: #C30D23; color: #fff; }
@media (max-width: 640px) {
    .zq-news-threads { padding: 12px 14px 8px; }
    .zq-news-threads .zq-fside-list li { font-size: 13.5px; }
}

/* 要闻区通栏：白底横贯全屏（左轮播大图 + 右标题列表） */
.zq-topbar-grid { background: #fff; border-bottom: 1px solid #f3d2d6; box-shadow: none; }
.zq-topbar-grid .zq-hq-grid { margin: 0; padding: 18px 0 20px; }
@media (max-width: 640px) {
    .zq-topbar-grid .zq-hq-grid { padding: 14px 0 16px; }
}

/* ---------- 资讯页「环球风」皮肤：红色频道条 + 居中头条 + 左图右列表 ---------- */
.zq-news-hq .zq-news-scrollbar {
    background: #C30D23;                                            /* 环球红 */
    border-radius: 12px;                                            /* 四个角全部圆角 */
    margin-top: 14px;                                               /* 与上方文字（面包屑）留出距离，别贴着 */
    margin-bottom: 22px;
    padding: 16px 22px 18px;                                        /* 条内留白加大，文字不贴红框边 */
    box-shadow: 0 3px 12px rgba(195, 13, 35, .25);
}
.zq-news-hq .zq-ns-row { gap: 12px; }
.zq-news-hq .zq-ns-row + .zq-ns-row {
    margin-top: 13px; padding-top: 13px;                            /* 两排之间拉开 */
    border-top-color: rgba(255, 255, 255, .3);
}
.zq-news-hq .zq-ns-label {
    padding: 8px 18px; font-size: 13.5px; letter-spacing: 2px;
    color: rgba(255, 255, 255, .88);
    background: rgba(0, 0, 0, .24);                      /* 红条上的椭圆标签：半透明黑底 */
}
.zq-news-hq .zq-ns-item {
    padding: 8px 20px; font-size: 14.5px;                           /* 药丸加大 */
    background: rgba(255, 255, 255, .14);
    transition: background .15s;
}
.zq-news-hq .zq-ns-item:hover { background: rgba(255, 255, 255, .32); }
.zq-news-hq .zq-ns-item.on {
    background: #fff; color: #C30D23; font-weight: 700;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .18);
}
@media (max-width: 640px) {
    .zq-news-hq .zq-news-scrollbar { padding: 12px 14px 14px; }
    .zq-news-hq .zq-ns-item { padding: 6px 14px; font-size: 13px; }
}

/* 头条：居中大标题 + 居中小链接行，竖线用红色 */
.zq-news-hq .zq-news-hero-box {
    text-align: center; border-color: #f3d2d6; background: #fffafa;
}
.zq-news-hq .zq-news-hero h2 { font-size: 30px; letter-spacing: 1px; }
.zq-news-hq .zq-news-hero h2:hover { color: #C30D23; }
.zq-news-hq .zq-hero-subs { justify-content: center; border-top-color: #f3d2d6; }
.zq-news-hq .zq-hero-subs a:hover { color: #C30D23; }
.zq-news-hq .zq-hero-sep { color: #e6a0a8; }

/* 要闻区：左轮播大图、右标题列表 */
.zq-hq-grid {
    display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(260px, 1fr);
    gap: 18px; margin: 0 0 16px; align-items: start;
}
.zq-hq-media .zq-slider { border-radius: 12px; overflow: hidden; box-shadow: 0 2px 10px rgba(0, 0, 0, .12); }
/* 轮播固定 16:9 大图（原图比例不一，cover 填满不留白） */
.zq-hq-media .zq-slider .zq-slide img { object-fit: cover; }
@supports (aspect-ratio: 16 / 9) {
    .zq-hq-media .zq-slider { aspect-ratio: 16 / 9; }
}
.zq-hq-side {
    background: #fff; border: 1px solid #f0dadd; border-radius: 12px;
    padding: 12px 18px 12px;
}
/* 右侧顶部的大新闻：标题 + 摘要 + 来源时间 */
.zq-hq-big {
    display: block; padding: 2px 0 11px; margin-bottom: 2px;
    border-bottom: 1px dashed #f0dadd; text-decoration: none;
}
/* 大新闻标题最多两行，下面的小标题一律一行 */
.zq-hq-big h3 {
    margin: 0 0 6px; font-size: 17.5px; font-weight: 700; line-height: 1.45; color: #1f2329;
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
}
.zq-hq-big:hover h3 { color: #C30D23; }
.zq-hq-big p {
    margin: 0 0 6px; font-size: 13.5px; line-height: 1.6; color: #6b7280;
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
}
.zq-hq-big-meta {
    display: flex; gap: 10px; flex-wrap: wrap; font-size: 12px; color: #9aa1ab;
}
.zq-hq-line { padding: 9px 0; border-bottom: 1px dashed #f0dadd; font-size: 15px; line-height: 1.5; }
.zq-hq-line:last-of-type { border-bottom: 0; }
.zq-hq-line a {
    display: block; color: #1f2329; text-decoration: none;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.zq-hq-line a:hover { color: #C30D23; }
.zq-hq-more-row { padding-top: 10px; text-align: right; }
.zq-hq-more { color: #C30D23; font-size: 13px; text-decoration: none; }
.zq-hq-more:hover { text-decoration: underline; }
@media (max-width: 860px) {
    .zq-hq-grid { grid-template-columns: 1fr; }
    .zq-news-hq .zq-news-hero h2 { font-size: 22px; }
}

/* ---------- Video 视频平台：封面网格 + 分类条 ---------- */
.zq-video-head { margin: 0 0 12px; }
.zq-video-head h2 { margin: 0; font-size: 22px; font-weight: 700; letter-spacing: .5px; color: #1f2329; }
.zq-video-head .zq-vcount {
    display: inline-block; margin-left: 10px; vertical-align: 2px;
    font-size: 12.5px; font-weight: 400; color: #9aa1ab; letter-spacing: 0;
}
/* 筛选栏：关键词 + 时间 + 排序（GET 提交，条件都在 URL 上，可收藏） */
.zq-vfilter {
    display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 14px;
}
.zq-vfilter input[type="search"] {
    flex: 1 1 220px; min-width: 0; height: 34px; padding: 0 12px;
    border: 1px solid rgba(17, 24, 39, .14); border-radius: 8px; outline: none;
    font-size: 13.5px; color: #1f2329; background: #fff;
}
.zq-vfilter input[type="search"]:focus { border-color: #C30D23; }
.zq-vfilter select {
    height: 34px; padding: 0 8px; border: 1px solid rgba(17, 24, 39, .14);
    border-radius: 8px; background: #fff; color: #374151;
    font-size: 13.5px; outline: none; cursor: pointer;
}
.zq-vfilter button {
    height: 34px; padding: 0 16px; border: 0; border-radius: 8px; cursor: pointer;
    background: #C30D23; color: #fff; font-size: 13.5px;
}
.zq-vfilter button:hover { background: #a80b1d; }
.zq-vfilter .zq-vfilter-reset {
    height: 34px; display: inline-flex; align-items: center; padding: 0 12px;
    font-size: 13px; color: #6b7280; text-decoration: none;
    border: 1px dashed rgba(17, 24, 39, .16); border-radius: 8px; background: #fff;
}
.zq-vfilter .zq-vfilter-reset:hover { color: #111827; text-decoration: none; }
.zq-video-tabs {
    display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px;
    padding-bottom: 12px; border-bottom: 1px solid #f0dadd;
}
.zq-video-tab {
    padding: 5px 13px; font-size: 13px; color: #4b5563; text-decoration: none;
    background: #f3f4f6; border-radius: 999px; white-space: nowrap;
}
.zq-video-tab:hover { background: #e5e7eb; color: #111827; text-decoration: none; }
.zq-video-tab.on { background: #111827; color: #fff; }
.zq-video-grid {
    display: grid; gap: 16px;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}
.zq-vcard-link { display: block; text-decoration: none; color: inherit; }
.zq-vcard-au {
    color: #6b7280; text-decoration: none;
}
.zq-vcard-au:hover { color: #C30D23; text-decoration: underline; }
.zq-vwatch-au { color: inherit; text-decoration: none; }
.zq-vwatch-au:hover { color: #C30D23; text-decoration: underline; }
.zq-vcard {
    display: block; text-decoration: none; color: inherit;
    background: #fff; border: 1px solid rgba(17, 24, 39, .08); border-radius: 10px;
    overflow: hidden; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.zq-vcard:hover {
    transform: translateY(-2px); box-shadow: 0 6px 18px rgba(17, 24, 39, .1);
    border-color: rgba(195, 13, 35, .25); text-decoration: none;
}
.zq-vcard-thumb {
    position: relative; display: block; aspect-ratio: 16 / 9; background: #111827; overflow: hidden;
}
.zq-vcard-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.zq-vcard-thumb iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
/* 播放按钮：三角用 CSS 边框画，不依赖字体 */
.zq-vcard-play {
    position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
    width: 46px; height: 46px; border-radius: 50%;
    background: rgba(17, 24, 39, .55); box-shadow: 0 2px 10px rgba(0, 0, 0, .25);
    transition: background .18s ease, transform .18s ease;
}
.zq-vcard-play::after {
    content: ""; position: absolute; left: 50%; top: 50%;
    transform: translate(-40%, -50%);
    border-left: 14px solid #fff; border-top: 9px solid transparent; border-bottom: 9px solid transparent;
}
.zq-vcard:hover .zq-vcard-play { background: #C30D23; transform: translate(-50%, -50%) scale(1.06); }
.zq-vcard-thumb.on .zq-vcard-play,
.zq-vcard-thumb.on .zq-vcard-dur { display: none; }
.zq-vcard-dur {
    position: absolute; right: 6px; bottom: 6px; padding: 1px 5px; border-radius: 4px;
    background: rgba(0, 0, 0, .72); color: #fff; font-size: 11.5px; line-height: 1.5;
}
.zq-vcard h3 {
    margin: 0; padding: 10px 12px 0; font-size: 14.5px; font-weight: 600; line-height: 1.45; color: #1f2329;
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
}
.zq-vcard:hover h3 { color: #C30D23; }
.zq-vcard-meta {
    display: flex; gap: 8px; align-items: center; padding: 7px 12px 11px;
    font-size: 12px; color: #9aa1ab;
}
.zq-vcard-au { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.zq-vcard-date { flex: 0 0 auto; }
.zq-video-empty { padding: 40px 0; text-align: center; color: #9aa1ab; font-size: 14px; }
@media (max-width: 640px) {
    .zq-video-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .zq-vcard h3 { font-size: 13.5px; padding: 8px 9px 0; }
    .zq-vcard-meta { padding: 6px 9px 9px; font-size: 11px; }
    .zq-vcard-play { width: 34px; height: 34px; }
    .zq-vcard-play::after { border-left-width: 11px; border-top-width: 7px; border-bottom-width: 7px; }
}

/* ---------- 视频播放页 /videos/v/{id}/：页内嵌入播放器 + 复制分享 ---------- */
.zq-vwatch {
    background: #fff; border: 1px solid rgba(17, 24, 39, .08); border-radius: 12px;
    padding: 14px 16px 16px; margin-bottom: 18px;
}
.zq-vwatch-player {
    position: relative; aspect-ratio: 16 / 9; background: #000; border-radius: 10px; overflow: hidden;
}
.zq-vwatch-player iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
.zq-vwatch-player.empty {
    display: flex; align-items: center; justify-content: center; background: #111827;
    color: #9aa1ab; font-size: 14px;
}
.zq-vwatch-title { margin: 14px 0 6px; font-size: 20px; line-height: 1.4; font-weight: 700; color: #1f2329; }
.zq-vwatch-meta {
    display: flex; flex-wrap: wrap; gap: 6px 14px;
    font-size: 12.5px; color: #9aa1ab; margin-bottom: 10px;
}
.zq-vwatch-acts { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.zq-vbtn {
    display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 13px;
    border: 1px solid rgba(17, 24, 39, .14); border-radius: 16px; background: #fff;
    color: #374151; font-size: 13px; line-height: 1; text-decoration: none; cursor: pointer;
    transition: background .18s ease, color .18s ease, border-color .18s ease;
}
.zq-vbtn:hover { background: #C30D23; border-color: #C30D23; color: #fff; text-decoration: none; }
.zq-vbtn.ghost:hover { background: #1f2329; border-color: #1f2329; }
.zq-vwatch-desc {
    font-size: 14px; line-height: 1.75; color: #4b5563;
    border-top: 1px dashed rgba(127, 127, 127, .18); padding-top: 10px; white-space: pre-wrap;
}
@media (max-width: 640px) {
    .zq-vwatch { padding: 12px; }
    .zq-vwatch-title { font-size: 17px; }
    .zq-vbtn { height: 30px; padding: 0 11px; font-size: 12.5px; }
}

/* ---------- 列表下方「最新资讯」：两列紧凑链接列表（只在第 1 页显示） ---------- */
.zq-news-latest {
    margin: 18px 0 0; padding: 14px 18px 8px; background: #fff;
    border: 1px solid #f0dadd; border-top: 3px solid #C30D23; border-radius: 10px;
}
.zq-news-latest h3 {
    display: flex; align-items: center; gap: 7px;
    margin: 0 0 4px; font-size: 16px; font-weight: 700; letter-spacing: .5px; color: #1f2329;
}
.zq-news-latest h3::before { content: ""; width: 3px; height: 15px; border-radius: 2px; background: #C30D23; }
.zq-news-latest ul {
    list-style: none; margin: 0; padding: 0;
    display: grid; grid-template-columns: 1fr;
}
.zq-news-latest li {
    display: flex; align-items: baseline; gap: 8px; padding: 7px 0; font-size: 14.5px;
    border-bottom: 1px dashed rgba(127, 127, 127, .16);
}
.zq-news-latest li a {
    flex: 1 1 auto; min-width: 0;
    color: #1f2329; text-decoration: none;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.zq-news-latest li a:hover { color: #C30D23; }
.zq-news-latest li span { flex-shrink: 0; font-size: 12px; color: #9aa1ab; }
@media (max-width: 640px) {
    .zq-news-latest { padding: 12px 14px 6px; }
}

/* ---------- 资讯页顶部滚动栏：上排国家、下排语言（挂在内容最上方 = 轮播图下面） ---------- */
.zq-news-scrollbar {
    margin: 0 0 16px; padding: 10px 12px; background: #111827; border-radius: 10px;
}
.zq-ns-row {
    display: flex; align-items: center; gap: 8px; flex-wrap: nowrap;   /* 不换行 */
    overflow-x: auto; white-space: nowrap;
    -webkit-overflow-scrolling: touch; scrollbar-width: none;          /* 隐藏滚动条 */
}
.zq-ns-row::-webkit-scrollbar { display: none; }
.zq-ns-row + .zq-ns-row {
    margin-top: 8px; padding-top: 8px; border-top: 1px solid rgba(255, 255, 255, .16);
}
.zq-ns-label {
    flex: none; padding: 7px 16px; font-size: 12px; font-weight: 600;
    color: rgba(255, 255, 255, .62); letter-spacing: .5px;
    border-radius: 999px;                                /* 椭圆形标签 */
    position: sticky; left: 8px; background: #111827;    /* 横向滚动时标签钉在最左（留 8px 不顶边） */
}
.zq-ns-item {
    flex: none; padding: 5px 13px; font-size: 13px; line-height: 1.4; border-radius: 999px;
    color: #fff; text-decoration: none; background: rgba(255, 255, 255, .13);
}
.zq-ns-item:hover { background: rgba(255, 255, 255, .26); color: #fff; text-decoration: none; }
.zq-ns-item.on { background: #fff; color: #111827; font-weight: 600; }
@media (max-width: 640px) {
    .zq-news-scrollbar { padding: 8px 10px; }
    .zq-ns-item { padding: 4px 11px; font-size: 12.5px; }
}

.zq-news-empty { padding: 40px; text-align: center; color: #9ca3af; }

/* ---------- /news/new 提交资讯表单：黑系 + 卡片式排版 ---------- */
.zq-news-form {
    max-width: 560px; padding: 20px 22px; margin: 0 auto;
    background: rgba(127, 127, 127, .04);
    border: 1px solid rgba(17, 24, 39, .10); border-radius: 12px;
}
/* 输入框统一：白底黑字、黑边框聚焦（url 也要覆盖，模板默认给的是蓝色） */
.zq-news-form input[type=text],
.zq-news-form input[type=url],
.zq-news-form textarea,
.zq-news-form select {
    width: 100%; margin: 0 0 22px; padding: 11px 13px; font: inherit; font-size: 14px;
    border: 1px solid rgba(17, 24, 39, .18); border-radius: 8px;
    background: #fff; color: #111827;
    transition: border-color .15s, box-shadow .15s;
}
.zq-news-form input:hover, .zq-news-form textarea:hover, .zq-news-form select:hover {
    border-color: rgba(17, 24, 39, .38);
}
.zq-news-form input:focus,
.zq-news-form textarea:focus,
.zq-news-form select:focus {
    outline: none; border-color: #111827; box-shadow: 0 0 0 3px rgba(17, 24, 39, .12);
}
/* 每行容器之间也留出间距，别挤在一起 */
.zq-news-form .zq-forum-frow { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.zq-news-form .zq-forum-frow + .zq-forum-frow { margin-top: 0; }
.zq-news-form .zq-forum-frow { margin-bottom: 22px; }
/* 论坛表单给 text 输入框定了 flex:0 0 150px（flex-basis 优先于 width），
   这里必须用更高优先级的 flex 覆盖，否则标题 / 来源框只有 150px 宽 */
.zq-news-form .zq-forum-frow input[type=text],
.zq-news-form .zq-forum-frow input[type=url] {
    flex: 1 1 100%; width: auto; margin-bottom: 0;
}
.zq-news-form .zq-forum-frow textarea,
.zq-news-form .zq-forum-frow select { margin-bottom: 0; }
.zq-news-form textarea { min-height: 84px; line-height: 1.6; resize: vertical; margin-bottom: 22px; }
.zq-news-lb {
    display: block; flex: none; width: 100%; margin: 0 0 8px;
    font-size: 13px; font-weight: 600; color: #111827;
}
.zq-news-form .zq-news-tip {
    margin: 0 0 14px; padding: 8px 12px; font-size: 12.5px; line-height: 1.6; color: #4b5563;
    background: rgba(17, 24, 39, .05); border-left: 3px solid #111827; border-radius: 0 6px 6px 0;
}
.zq-news-form button[type=submit] {
    padding: 9px 22px; font-size: 14px; border: 0; border-radius: 8px; cursor: pointer;
    background: #111827; color: #fff;
}
.zq-news-form button[type=submit]:hover { background: #e02020; color: #fff; }
.zq-news-back { margin-left: 10px; font-size: 13px; color: #6b7280; }
@media (max-width: 640px) {
    .zq-news-list { grid-template-columns: 1fr; }
    .zq-country-switch { margin-left: 8px; }
    /* 按钮不显示国旗，国家名在窄屏也要留着，否则按钮里就空了 */
    .zq-country-name { font-size: 12px; }
}

/* ---------- 文章左侧悬浮工具条：点赞 / 评论 / 收藏 / 分享（≥1360px 显示） ---------- */
.zq-dock { display: none; }
@media (min-width: 1360px) {
    .zq-dock {
        display: flex; flex-direction: column; gap: 16px;
        position: fixed; z-index: 90;
        /* 贴着正文区左缘（内容 1200px 居中），屏幕不够宽时贴浏览器左缘；
           窄栏模板（如 BBC 912）下留出更多空隙，别贴着正文 */
        left: max(14px, calc(50% - 704px));
        top: 50%; transform: translateY(-50%);
    }
}
.zq-dock-btn {
    display: flex; flex-direction: column; align-items: center; gap: 5px;
    padding: 0; background: none; border: 0; cursor: pointer;
    color: inherit; font: inherit; text-decoration: none;
    -webkit-tap-highlight-color: transparent;
}
.zq-dock-ico {
    display: flex; align-items: center; justify-content: center;
    width: 46px; height: 46px; border-radius: 12px;
    background: #f3f4f6; color: #1f2937;
    box-shadow: inset 0 0 0 1px rgba(17, 24, 39, .05);
    transition: background .15s ease, color .15s ease, transform .15s ease, box-shadow .15s ease;
}
.zq-dock-ico svg { width: 21px; height: 21px; }
.zq-dock-btn:hover .zq-dock-ico {
    background: #111827; color: #fff; transform: translateY(-1px);
    box-shadow: 0 6px 14px rgba(17, 24, 39, .18);
}
.zq-dock-btn:active .zq-dock-ico { transform: scale(.93); }
/* 数字 / 文字跟随主题色（深色模板页面背景是暗的，固定灰会看不清） */
.zq-dock-num, .zq-dock-txt { font-size: 12.5px; line-height: 1; color: inherit; opacity: .7; }
/* 收藏后：图标块变暖色 */
.zq-dock-fav.is-on .zq-dock-ico {
    background: #fffbeb; color: #b45309; box-shadow: inset 0 0 0 1px #f59e0b;
}
.zq-dock-fav.is-on .zq-dock-txt { color: #b45309; }
/* 分享弹层：从工具条右侧弹出 */
.zq-dock-item { position: relative; }
.zq-dock-pop {
    position: absolute; left: calc(100% + 12px); top: 50%; z-index: 95;
    transform: translateY(-50%);
    /* 两列网格：十几个分享按钮不会拉成一根长条，超出 viewport 的部分还能滚动 */
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px;
    width: 240px; max-height: min(72vh, 460px); overflow-y: auto; padding: 12px;
    background: #fff; border: 1px solid rgba(17, 24, 39, .08); border-radius: 12px;
    box-shadow: 0 12px 32px rgba(17, 24, 39, .16);
}
.zq-dock-pop[hidden] { display: none; }
.zq-dock-pop .zq-act { justify-content: center; white-space: nowrap; }
/* 微信二维码 / 复制链接 这两个常用操作横跨整行，更好点 */
.zq-dock-pop .zq-act-wx, .zq-dock-pop .zq-act-copy { grid-column: 1 / -1; }

/* ---------- 会员头像（会员中心 / 账号设置 / 评论署名） ---------- */
.zq-avatar {
    display: inline-flex; align-items: center; justify-content: center;
    flex: 0 0 auto; border-radius: 50%; overflow: hidden;
    background: #111827; color: #fff; font-weight: 600; line-height: 1;
}
.zq-avatar img { display: block; width: 100%; height: 100%; object-fit: cover; }
.zq-avatar-sm { width: 26px; height: 26px; font-size: 12px; margin-right: 6px; }
/* 无头像时的文字 / 问号图标：留白居中，别顶到圆边上 */
.zq-avatar-txt svg { width: 56%; height: 56%; display: block; }
.zq-avatar-xs { width: 22px; height: 22px; font-size: 11px; margin-right: 6px; }
.zq-avatar-md { width: 46px; height: 46px; font-size: 17px; margin-right: 10px; }
.zq-avatar-lg { width: 78px; height: 78px; font-size: 28px; }
.zq-avatar-xl { width: 64px; height: 64px; font-size: 22px; margin-right: 12px; }
.zq-comment-head .zq-avatar-xs { align-self: center; }

/* ---------- 发帖认证徽章 ---------- */
.zq-verify-badge {
    display: inline-block; padding: 1px 9px; font-size: 11.5px; line-height: 18px;
    border-radius: 999px; border: 1px solid transparent; white-space: nowrap;
}
.zq-verify-badge.is-ok   { color: #b45309; background: #fffbeb; border-color: #f59e0b; }
.zq-verify-badge.is-wait { color: #92400e; background: #fef3c7; border-color: #fbbf24; }
.zq-verify-badge.is-no   { color: #b91c1c; background: #fef2f2; border-color: #fca5a5; }
.zq-verify-badge.is-none { color: #6b7280; background: #f3f4f6; border-color: rgba(127,127,127,.25); }

/* 会员中心头部：头像 + 昵称同一行 */
.zq-member-head { display: flex; align-items: center; margin-bottom: 10px; }
.zq-member-head p { margin: 0; }

/* ---------- 账号设置页 ---------- */
.zq-profile-card {
    margin: 0 0 14px; padding: 15px 16px;
    border: 1px solid rgba(127, 127, 127, .18); border-radius: 10px;
}
.zq-profile-card .zq-member-sub { margin: 0 0 12px; }
.zq-profile-form { display: grid; gap: 10px; max-width: 440px; }
.zq-profile-form label { display: grid; gap: 4px; font-size: 13px; color: #6b7280; }
.zq-profile-form input,
.zq-profile-form textarea {
    padding: 7px 10px; font: inherit; font-size: 14px; color: #111827;
    background: #fff; border: 1px solid rgba(127, 127, 127, .3); border-radius: 6px;
}
.zq-profile-form textarea { resize: vertical; }
.zq-profile-form p { margin: 4px 0 0; }
.zq-avatar-form { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.zq-avatar-side { display: grid; gap: 8px; }
.zq-avatar-side p { margin: 0; }
.zq-verify-line { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; font-size: 13.5px; }
.zq-verify-reason { margin: 0 0 8px; font-size: 13px; color: #b91c1c; }

/* ---------- 被发帖门槛拦下时的提示块 ---------- */
.zq-gate-notice {
    margin: 10px 0 14px; padding: 14px 16px; border-radius: 10px;
    border: 1px solid rgba(127, 127, 127, .18); background: rgba(127, 127, 127, .05);
}
.zq-gate-notice p { margin: 0 0 8px; font-size: 14px; }
.zq-gate-notice p:last-child { margin-bottom: 0; }

/* 评论区：已认证会员的金标（头像 + 昵称后面） */
.zq-comment-badge-v {
    font-size: 11px !important; padding: 1px 7px; border-radius: 8px;
    background: #fffbeb; color: #b45309; border: 1px solid #f59e0b; opacity: 1 !important;
}
.zq-comment-badge-v::before { content: "\2713"; margin-right: 3px; font-size: 10px; }

/* 悬浮条：24小时热点（闪电，内容页专属，排微信 / WhatsApp 上面） */
.zq-float-hot { color: #e60012; }
.zq-float-hot:hover { color: #ff3b3b; }
.zq-float-hotpop { width: 380px; max-width: calc(100vw - 32px); max-height: 72vh; overflow-y: auto; }
.zq-hot-list { list-style: none; margin: 10px 0 0; padding: 0; }
.zq-hot-list li {
    display: flex; align-items: flex-start; gap: 16px;
    padding: 8px 2px; border-bottom: 1px solid rgba(255,255,255,.06);
    position: relative;
}
.zq-hot-list li:last-child { border-bottom: 0; }
/* 时间轴竖线（穿过方点中心：时间 62px + 间距 16px + 半个点 3.5px ≈ 81px） */
.zq-hot-list li::before {
    content: ""; position: absolute; left: 81px; top: 0; bottom: 0;
    width: 1px; background: rgba(255,255,255,.08);
}
.zq-hot-time {
    flex: none; width: 62px; font: 12px/1.9 Consolas, "Courier New", monospace;
    color: #9ca3af; text-align: right;
}
.zq-hot-dot {
    flex: none; width: 7px; height: 7px; margin-top: 9px;
    background: #6b7280; position: relative; z-index: 1;
}
.zq-hot-dot.is-hot { background: #ef4444; box-shadow: 0 0 0 2px rgba(239,68,68,.18); }
.zq-hot-list a { flex: 1; font-size: 14px; line-height: 1.75; color: #d1d5db; }
.zq-hot-list a:hover { color: #fff; }

/* 微信 / WhatsApp：全站统一黑色元素（悬浮条按钮 + 图标本身） */
.zq-float-wx, .zq-float-wa { background: #000 !important; color: #fff !important; }
/* 图标本身保持白色：SVG 用 currentColor，跟着按钮的 color 走 */
.zq-float-wx svg, .zq-float-wa svg { color: #fff !important; fill: currentColor; }
.zq-float-wx:hover svg, .zq-float-wa:hover svg { color: #fff !important; }
.zq-float-wx::after, .zq-float-wa::after { display: none; }
.zq-share-wx, .zq-share-wechat, .zq-share-whatsapp { color: #000 !important; border-color: rgba(0,0,0,.45) !important; }
.zq-act-wx, .zq-act-wa { color: #000 !important; }
.zq-act.zq-act-wx:hover, .zq-act.zq-act-wa:hover { border-color: #000 !important; color: #000 !important; }

/* 24小时热点独立页 /hot + 热榜详情页 /rank
   配色走卡片变量：深色模板设 --zq-card / --zq-card-fg / --zq-card-fg2 /
   --zq-card-soft 后整页翻成深底浅字，浅色模板默认值即原样 */
.zq-hot-page { background: var(--zq-card, #fff); border: 1px solid var(--zq-card-line, #ececf0); border-radius: 12px; padding: 18px 20px 8px; }
.zq-hot-head { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; padding-bottom: 12px; border-bottom: 1px solid var(--zq-card-line, #f0f0f3); }
.zq-hot-head h1 { margin: 0; font-size: 21px; font-weight: 700; color: var(--zq-card-fg, #111827); }
.zq-hot-head span { font-size: 13px; color: var(--zq-card-fg2, #6b7280); }
.zq-hot-none { padding: 26px 0; text-align: center; color: var(--zq-card-fg2, #9ca3af); font-size: 14px; }
/* 亮色页面上的时间轴（弹层里的深色版不受影响） */
.zq-hot-page .zq-hot-list li { border-bottom-color: var(--zq-card-line, #f0f0f3); }
.zq-hot-page .zq-hot-list li::before { background: var(--zq-card-line, #ececf0); }
.zq-hot-page .zq-hot-time { color: var(--zq-card-fg2, #6b7280); }
.zq-hot-page .zq-hot-list a { color: var(--zq-card-fg, #374151); }
.zq-hot-page .zq-hot-list a:hover { color: #e60012; }

/* 热点按日期分组 */
.zq-hot-day { margin-top: 6px; }
.zq-hot-date {
    margin: 14px 0 2px; padding-left: 2px; font-size: 13px; font-weight: 700;
    color: var(--zq-card-fg, #111827); letter-spacing: .3px;
}
.zq-hot-page .zq-hot-date { border-left: 3px solid #e60012; padding-left: 8px; }

/* 悬浮条微信 / WhatsApp：图标强制白色（SVG 用 currentColor，path 也要跟着走） */
.zq-float-wx svg, .zq-float-wa svg,
.zq-float-wx svg path, .zq-float-wa svg path { color: #fff !important; fill: currentColor !important; }

/* 热点页：列表文字统一 16px（时间小字保留等宽，稍放大到 13px 协调） */
.zq-hot-list a { font-size: 16px; line-height: 1.8; }
.zq-hot-time { font-size: 13px; }
.zq-hot-page .zq-hot-date { font-size: 14px; }

/* 首页「独家推荐」栏：整栏标红（标题 + 竖条 + 条目标题），「热门信息」保持原色 */
.zq-home-block-featured h2 { color: #e60012; }
.zq-home-block-featured h2::before { background: #e60012; }
.zq-home-block-featured li a { color: #e60012; font-weight: 600; }
.zq-home-block-featured li span { color: #e60012; opacity: .75; }

/* 顶部导航选中态：一律直角 + 红色下划线（不吃模板皮肤的胶囊 / 背景块） */
.zq-nav-wrap .nav > li.on > a,
.zq-nav-wrap .nav > li.zq-nav-more.on > a,
.zq-nav-wrap .nav > li.zq-nav-more > ul > li.on > a,
.zq-nav-wrap.open .nav li.on a,
.zq-nav-wrap .zq-nav-panel li.on > a { border-radius: 0 !important; background: transparent !important; }

/* ---------- 手机端底部菜单 ---------- */
.zq-mtab { display: none; }
@media (max-width: 768px) {
    /* footer 在手机端隐藏（功能 + 登录收进底部菜单） */
    .footer { display: none !important; }
    /* 联盟矩阵 / 友情链接：手机上保留（footer 隐藏后这里是底部唯一的站点入口），改 2 列 */
    .zq-alliance-list { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 6px !important; }
    .zq-alliance-item a { padding: 8px 9px; }
    .zq-alliance-item b { font-size: 13px; }
    .zq-alliance-item span { font-size: 11px; }
    .zq-friend-wrap .friend-links a { font-size: 13px; margin: 0 6px 4px; }
    /* 右侧悬浮客服条：手机端不显示（挡内容，且底部已有菜单） */
    .zq-float { display: none !important; }
    .zq-top { bottom: 74px !important; }   /* 回到顶部上移，避开底部菜单 */
    /* 顶部会员登录 / 昵称区在手机端不显示（登录入口在底部「我的」） */
    .zq-member { display: none !important; }
    /* 底栏本体：固定底部，白底黑字（黑白极简），适配 iPhone 安全区 */
    .zq-mtab {
        display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
        background: #fff; border-top: 1px solid #e5e7eb;
        padding: 6px 4px calc(6px + env(safe-area-inset-bottom, 0px));
        box-shadow: 0 -1px 8px rgba(0,0,0,.05);
    }
    .zq-mtab a {
        flex: 1; display: flex; flex-direction: column; align-items: center; gap: 3px;
        font-size: 11px; line-height: 1.2; color: #6b7280; text-decoration: none;
    }
    .zq-mtab a svg { width: 22px; height: 22px; opacity: .9; }
    .zq-mtab a.on { color: #111; font-weight: 700; }
    .zq-mtab a.on svg { opacity: 1; }
    /* 给固定底栏留出高度，页面内容不被遮住 */
    body { padding-bottom: 62px; }
}

/* 语言选项：搜索图标后面显示（多语言站点才有内容，单语言站点 PHP 不输出） */

/* ================= 会员中心 / 登录 / 注册 美化（黑白极简） ================= */
.zq-member-shell {
    display: flex; gap: 22px; align-items: flex-start;
    max-width: 980px; margin: 0 auto;
}
/* 左侧导航 */
.zq-member-nav {
    flex: 0 0 190px; background: #fff;
    border: 1px solid #ececf0; border-radius: 16px; padding: 8px;
    box-shadow: 0 1px 3px rgba(17, 24, 39, .04);
    position: sticky; top: 14px;
}
.zq-member-nav ul { list-style: none; margin: 0; padding: 0; }
.zq-member-nav a {
    display: flex; align-items: center; gap: 10px;
    padding: 11px 12px; border-radius: 999px;
    font-size: 14.5px; color: #374151; text-decoration: none;
    transition: background .15s ease, color .15s ease;
}
.zq-member-nav a svg { flex: none; width: 18px; height: 18px; opacity: .85; }
.zq-member-nav a:hover { background: #f3f4f6; color: #111827; text-decoration: none; }
.zq-member-nav a.on { background: #111827; color: #fff; font-weight: 600; }
.zq-member-nav a.on svg { opacity: 1; }
.zq-member-main { flex: 1 1 auto; min-width: 0; }

/* 会员卡片 */
.zq-member-page { max-width: none !important; margin: 0 !important; }
.zq-member-title { font-size: 20px; font-weight: 800; letter-spacing: .3px; margin: 0 0 12px; }
.zq-member-card {
    background: #fff; border: 1px solid #ececf0; border-radius: 16px; padding: 18px;
    box-shadow: 0 1px 3px rgba(17, 24, 39, .04), 0 8px 24px rgba(17, 24, 39, .05);
}
.zq-member-head { display: flex; align-items: center; gap: 12px; }
.zq-member-head p { margin: 0; font-size: 15px; }
.zq-member-tag {
    display: inline-block; padding: 2px 9px; border-radius: 999px;
    background: #111827; color: #fff; font-size: 11.5px; font-weight: 600;
}
.zq-member-meta { margin: 8px 0 0; font-size: 13px; color: #6b7280; }
.zq-member-sub {
    display: flex; align-items: center; gap: 8px;
    margin: 22px 0 10px; font-size: 15px; font-weight: 700;
    padding-left: 10px; border-left: 3px solid #111;
}
.zq-member-msg {
    margin: 0 0 14px; padding: 10px 14px; border-radius: 12px;
    background: #f9fafb; border: 1px solid #ececf0; color: #374151; font-size: 14px;
}

/* 会员列表：评论 / 收藏 */
.zq-member-comments, .zq-member-favorites { list-style: none; margin: 0; padding: 0; }
.zq-member-comments li, .zq-member-favorites li {
    padding: 12px 2px; border-bottom: 1px dashed #ececf0;
}
.zq-member-comments li:last-child, .zq-member-favorites li:last-child { border-bottom: 0; }
.zq-member-comments li a, .zq-member-favorites li a { color: #111827; text-decoration: none; }
.zq-member-comments li a:hover, .zq-member-favorites li a:hover { text-decoration: underline; }
.zq-member-comments li p { margin: 5px 0 0; font-size: 13px; color: #6b7280; }
.zq-member-cmt-state {
    display: inline-block; padding: 1px 8px; border-radius: 999px; font-size: 11.5px;
    background: #f3f4f6; color: #4b5563; margin-right: 4px;
}
.zq-fav-time { margin-left: 8px; font-size: 12px; color: #9ca3af; }
.zq-fav-del {
    margin-left: 8px; padding: 2px 9px; font-size: 12px; cursor: pointer;
    background: #fff; color: #6b7280; border: 1px solid #e5e7eb; border-radius: 999px;
}
.zq-fav-del:hover { background: #e02020; color: #fff; border-color: #e02020; }

/* 会员主按钮：胶囊黑底 */
.zq-member-btn {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 9px 17px; border-radius: 999px;
    background: #111827; color: #fff !important;
    font-size: 14px; font-weight: 600; text-decoration: none; border: 1px solid #111827;
    transition: transform .15s ease, background .15s ease, color .15s ease;
}
.zq-member-btn:hover { transform: translateY(-1px); background: #e02020; text-decoration: none; }
.zq-member-btn-plain { background: #fff; color: #111827 !important; }
.zq-member-btn-plain:hover { background: #e02020; color: #fff !important; border-color: #e02020; }
.zq-member-num {
    display: inline-block; min-width: 18px; padding: 0 5px; border-radius: 999px;
    background: rgba(255, 255, 255, .22); font-size: 12px; line-height: 18px; text-align: center;
}

/* 认证页（登录 / 注册 / 找回 / 重置）：整屏浅灰底 + 白卡片 */
/* 外层链条 main(flex) > .content > .body 都是收缩子项：不撑开的话
   白色区域只有 355px 宽（内容区宽 1046），卡片会挤在左边不像一整块。
   .content 是 flex: 1 1 0%，flex-basis 会无视 width，必须连 flex 一起改 */
/* 登录注册页和其它页面一样带右侧栏：布局全部回归站点默认，
   不再做任何 :has 全宽/纵排覆盖，白底加在 wrap 上 */
.zq-auth-wrap {
    min-height: 74vh; padding: 34px 0 44px;
    /* wrap 原来是横向 flex，底部的「返回首页」会被并排挤到卡片右侧 */
    flex-direction: column;
    background: #fff;
}
.zq-auth-shell { max-width: 100%; }
/* 整块白底：卡片就是这块白，靠淡边框划出范围，不加阴影（白底上阴影会发灰）。
   卡片铺满内容区宽度，但里面的内容限宽 420px 居中——输入框才不会被拉成一条长线 */
.zq-auth-card {
    width: 100%; margin: 0 auto;
    display: flex; flex-direction: column; align-items: center;
    background: #fff; border: 1px solid #ececf0; border-radius: 20px;
    padding: 40px 34px 34px;
}
.zq-auth-card > * { width: 100%; max-width: 420px; }
/* 卡片顶部 tab（登录 / 注册互切），激活项底部黑色短条，样式对齐主流站 */
.zq-auth-tabs {
    display: flex; justify-content: center; gap: 30px;
    margin: 0 0 22px; border-bottom: 1px solid #ececf0;
}
.zq-auth-tab {
    position: relative; padding: 8px 2px 12px; font-size: 15.5px;
    color: #9ca3af; text-decoration: none; transition: color .15s;
}
.zq-auth-tab:hover { color: #4b5563; }
.zq-auth-tab.is-on { color: #111827; font-weight: 700; }
.zq-auth-tab.is-on::after {
    content: ""; position: absolute; left: 50%; bottom: -1px; transform: translateX(-50%);
    width: 30px; height: 3px; border-radius: 2px; background: #111827;
}
.zq-auth-head { margin-bottom: 24px; text-align: center; }
.zq-auth-head .zq-member-title {
    margin: 0; font-size: 24px; font-weight: 800; letter-spacing: .5px; color: #111827;
}
.zq-auth-badge {
    display: inline-flex; align-items: center; justify-content: center;
    width: 48px; height: 48px; margin-bottom: 14px; border-radius: 16px;
    background: #111827; color: #fff;
}
.zq-auth-badge svg { width: 24px; height: 24px; }
.zq-auth-head p { margin: 8px 0 0; font-size: 13.5px; color: #6b7280; }

/* 表单：大圆角输入框，聚焦黑边 */
.zq-field { margin-bottom: 16px; }
.zq-field label {
    display: block; margin-bottom: 7px; font-size: 13px; font-weight: 600; color: #4b5563;
}
.zq-input-wrap {
    display: flex; align-items: center; gap: 10px;
    min-height: 46px; padding: 0 14px; background: #fff;
    border: 1px solid #e5e7eb; border-radius: 12px;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.zq-input-wrap:hover { border-color: #d1d5db; }
.zq-input-wrap:focus-within {
    border-color: #111827; box-shadow: 0 0 0 3px rgba(17, 24, 39, .08);
}
.zq-input-icon { display: flex; color: #9ca3af; }
.zq-input-icon svg { width: 18px; height: 18px; }
.zq-input-wrap input {
    flex: 1 1 auto; min-width: 0; padding: 12px 0;
    background: transparent; border: 0; outline: 0; font-size: 14.5px; color: #111827;
}
.zq-input-wrap input::placeholder { color: #b0b6bf; }
.zq-pwd-btn {
    display: flex; align-items: center; justify-content: center;
    padding: 4px; background: none; border: 0; cursor: pointer; color: #9ca3af;
    transition: color .15s;
}
.zq-pwd-btn:hover { color: #111827; }
.zq-pwd-btn svg { width: 18px; height: 18px; }
/* 提交按钮：纯黑、大圆角、去掉上面那版的重投影（白底上会发灰） */
.zq-member-form .zq-member-row { margin-top: 22px; }
.zq-member-form .zq-member-row button,
.zq-member-form button[type="submit"],
.zq-member-form .zq-member-btn {
    width: 100%; height: 46px; padding: 0 18px; justify-content: center;
    font-size: 15px; font-weight: 600; letter-spacing: 1px; color: #fff;
    background: #111827; border: 0; border-radius: 12px; box-shadow: none;
    cursor: pointer; transition: background .15s, transform .1s;
}
.zq-member-form .zq-member-row button:hover,
.zq-member-form button[type="submit"]:hover { background: #000; box-shadow: none; }
.zq-member-form .zq-member-row button:active { transform: translateY(1px); }
.zq-member-switch { margin-top: 18px; text-align: center; font-size: 13.5px; color: #6b7280; }
.zq-member-switch a {
    color: #111827; font-weight: 600; text-decoration: none;
    border-bottom: 1px solid #111827; padding-bottom: 1px;
}
.zq-member-switch a:hover { opacity: .65; }
/* 滑块验证码：在限宽内容里居中，不要贴着左边 */
.zq-cap-slide { margin: 2px auto 0; }
.zq-auth-foot { margin-top: 14px; text-align: center; font-size: 13px; color: #6b7280; }

/* 手机端：左导航改成一行横向菜单 */
@media (max-width: 768px) {
    .zq-member-shell { display: block; max-width: 100%; }
    .zq-member-nav { flex: none; position: static; margin-bottom: 14px; padding: 6px; }
    .zq-member-nav ul { display: flex; gap: 6px; overflow-x: auto; }
    .zq-member-nav li { flex: 0 0 auto; }
    .zq-member-nav a { padding: 9px 14px; font-size: 13.5px; }
}

/* ---------- 会员中心「我的 API」 ---------- */
.zq-api-mylist { overflow-x: auto; }
.zq-api-mylist table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.zq-api-mylist th,
.zq-api-mylist td {
    padding: 9px 10px; text-align: left; white-space: nowrap;
    border-bottom: 1px solid #ececf0;
}
.zq-api-mylist th { font-size: 12.5px; font-weight: 600; color: #6b7280; background: #fafafa; }
.zq-api-mylist code {
    font-family: ui-monospace, Consolas, monospace; font-size: 12.5px; color: #111827;
    word-break: break-all;
}
.zq-api-st {
    display: inline-block; padding: 1px 9px; border-radius: 999px;
    font-size: 12px; font-weight: 600;
}
.zq-api-st.s0 { background: #fef3c7; color: #92400e; }
.zq-api-st.s1 { background: #dcfce7; color: #166534; }
.zq-api-st.s2 { background: #f3f4f6; color: #6b7280; }
/* 申请成功后的一次性密钥框 */
.zq-api-new {
    margin: 0 0 14px; padding: 14px 16px;
    border: 1px dashed #111827; border-radius: 12px; background: #fffbeb;
}
.zq-api-new p { margin: 0 0 6px; font-size: 13.5px; }
.zq-api-new code {
    display: inline-block; padding: 2px 8px; border-radius: 6px;
    background: #fff; font-family: ui-monospace, Consolas, monospace;
    font-size: 13px; word-break: break-all;
}
/* 申请表单 */
.zq-api-form { display: grid; gap: 10px; max-width: 480px; }
.zq-api-form label { display: grid; gap: 6px; font-size: 13.5px; color: #374151; }
.zq-api-form input[type="text"] {
    padding: 9px 11px; font-size: 14px; color: #111827;
    border: 1px solid #e0e2e7; border-radius: 9px; background: #fff;
}
.zq-api-scopes {
    display: flex; flex-wrap: wrap; align-items: center; gap: 14px;
    font-size: 13.5px; color: #374151;
}
.zq-api-scope { display: flex !important; align-items: center; gap: 5px; }

@media (max-width: 768px) {
    /* 我的 API：表格改成一张张卡片，key 在窄屏也能看全 */
    .zq-api-mylist { overflow: visible; }
    .zq-api-mylist table,
    .zq-api-mylist thead,
    .zq-api-mylist tbody,
    .zq-api-mylist tr,
    .zq-api-mylist td { display: block; width: 100%; }
    .zq-api-mylist thead { display: none; }
    .zq-api-mylist tr {
        margin: 0 0 10px; padding: 10px 12px;
        border: 1px solid #ececf0; border-radius: 12px; background: #fff;
    }
    .zq-api-mylist td {
        display: flex; justify-content: space-between; gap: 12px;
        padding: 4px 0; border: 0; white-space: normal; text-align: right;
        font-size: 13px;
    }
    .zq-api-mylist td::before {
        content: attr(data-l); flex: none;
        color: #6b7280; font-size: 12.5px;
    }
    .zq-api-form { max-width: 100%; }
}

/* ---------- 手机端会员中心：导航 chips + 卡片松快一点 ---------- */
@media (max-width: 768px) {
    .zq-member-nav {
        margin: 0 -2px 12px; padding: 0 2px 2px;
        background: transparent; border: 0; border-radius: 0; box-shadow: none;
    }
    .zq-member-nav ul { gap: 8px; padding-bottom: 4px; scrollbar-width: none; }
    .zq-member-nav ul::-webkit-scrollbar { display: none; }
    .zq-member-nav a {
        padding: 8px 13px; font-size: 13px;
        background: #fff; border: 1px solid #ececf0;
        box-shadow: 0 1px 2px rgba(17, 24, 39, .05);
    }
    .zq-member-nav a.on { background: #111827; border-color: #111827; color: #fff; }
    .zq-member-title { margin: 0 0 10px; font-size: 18px; }
    .zq-member-card { padding: 14px; border-radius: 14px; }
    .zq-member-head { gap: 10px; }
    .zq-member-head p { font-size: 14.5px; line-height: 1.55; }
    .zq-member-meta { font-size: 12.5px; line-height: 1.75; }
    .zq-member-sub { margin: 18px 0 8px; font-size: 14.5px; }
    .zq-member-btn {
        width: 100%; padding: 11px 16px; font-size: 14.5px; text-align: center;
    }
    .zq-profile-form { max-width: 100%; }
    /* iOS 输入框字号 <16px 会自动放大页面 */
    .zq-profile-form input,
    .zq-profile-form textarea,
    .zq-api-form input[type="text"] { font-size: 16px; }
}

/* ---------- 栏目页手机端兼容（筛选栏 / 简介 / 分页 / 内容防溢出） ---------- */
@media (max-width: 768px) {
    /* 筛选栏：由「一行挤 5 个控件」改成两列网格 —— 排序 / 时间各半，搜索与按钮整行 */
    .zq-filter {
        display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
        padding: 12px; margin-bottom: 8px;
    }
    .zq-filter select,
    .zq-filter input[type="text"],
    .zq-filter button {
        width: 100%; min-width: 0; height: 40px;   /* 触屏更好点 */
        font-size: 14px;                            /* <16px 在 iOS 上会触发缩放，14px 已够大且不会溢出 */
        box-sizing: border-box;
    }
    .zq-filter input[type="text"] { grid-column: 1 / -1; flex: none; }
    .zq-filter button { grid-column: 1 / -1; }
    .zq-filter-reset {
        grid-column: 1 / -1; text-align: center;
        padding: 9px 0; font-size: 13.5px;
    }
    .zq-filter-tip { margin: 0 2px 10px; font-size: 12.5px; }

    /* 栏目简介：窄屏收紧内边距 */
    .cat-intro { padding: 12px 14px; font-size: 14px; line-height: 1.8; }

    /* 分页：居中 + 加大点击区域 */
    .pager { justify-content: center; margin-top: 16px; }
    .pager a { padding: 9px 14px !important; font-size: 14px !important; }

    /* 防横向滚动：长链接 / 长英文单词 / 宽媒体一律兜住 */
    .content, .article .body, .cat-intro { overflow-wrap: break-word; word-break: break-word; }
    .article .body img, .article .body video, .article .body iframe,
    .content img, .content video, .content iframe { max-width: 100% !important; height: auto; }
}

/* ---------- 资讯中心（/news/）手机端兼容 ---------- */
@media (max-width: 768px) {
    /* 卡片标题：手机上不再单行截断成一串省略号，改两行显示 */
    .zq-news-card { padding: 12px 13px; }
    .zq-news-card h3 {
        white-space: normal; font-size: 16px; line-height: 1.45;
        display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
    }
    .zq-news-meta { font-size: 12px; gap: 6px; }
    .zq-news-go { margin-left: 0; }              /* 小屏换行后不再被推到奇怪位置 */
    .zq-news-threads { padding: 12px 14px 8px; }
    .zq-news-hero h2, .zq-news-hq .zq-news-hero h2 { font-size: 19px !important; }
    .zq-hero-subs { font-size: 12.5px; }
    .zq-hq-side { padding: 10px 14px; }
    .zq-hq-big h3 { font-size: 16px; }
    .zq-hq-line { font-size: 14px; }
    /* 宽表格 / 长代码块：自己横向滚动，不撑破页面 */
    .content table, .article .body table { display: block; overflow-x: auto; max-width: 100%; }
    .content pre, .article .body pre, .cat-intro pre { overflow-x: auto; max-width: 100%; }
}

/* 资讯页手机端：标题行与「发布资讯」按钮 */
@media (max-width: 768px) {
    .zq-news-head h2 { font-size: 18px; }
    .zq-news-newbtn { padding: 9px 18px; font-size: 13.5px; }
}

/* ---------- 资讯页「论坛热帖」板块：手机端重排 ---------- */
@media (max-width: 768px) {
    .zq-news-threads {
        padding: 12px 12px 10px; border-radius: 12px; margin-bottom: 14px;
    }
    .zq-nt-head { margin-bottom: 10px; }
    .zq-nt-head h3 { font-size: 15px; }
    .zq-nt-more { padding: 6px 0; font-size: 13px; }
    /* 25 条单列在手机上太长 → 两列网格，高度减半 */
    .zq-news-threads .zq-fside-list {
        display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px;
    }
    .zq-news-threads .zq-fside-list li {
        padding: 9px 0; gap: 7px; font-size: 14px; align-items: flex-start;
    }
    /* 标题不再单行省略（手机上几乎看不到内容）→ 两行截断 */
    .zq-news-threads .zq-fside-list a {
        white-space: normal; font-size: 14px; line-height: 1.45;
        display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
    }
    .zq-news-threads .zq-fside-rank { flex: 0 0 18px; width: 18px; height: 18px; line-height: 18px; font-size: 11px; }
    .zq-news-threads .zq-fside-num { font-size: 11.5px; flex: 0 0 auto; }
    /* 最后两条的下边框去掉（两列布局下底边不留悬空线） */
    .zq-news-threads .zq-fside-list li:nth-last-child(-n+2) { border-bottom: 0; }
}

/* ---------- 论坛列表手机端 ---------- */
@media (max-width: 768px) {
    .zq-forum-item { padding: 10px 11px; gap: 10px; border-radius: 10px; margin-bottom: 8px; }
    .zq-forum-av { flex: 0 0 34px; width: 34px; height: 34px; font-size: 14px; }
    .zq-forum-link { font-size: 14.5px; line-height: 1.45; }
    .zq-forum-imeta { font-size: 11.5px; }
    .zq-forum-count { min-width: 40px; padding: 4px 6px; }
    .zq-forum-count b { font-size: 14px; }
    .zq-forum-topic h2 { font-size: 18px; }
}

/* ---------- 资讯 / 视频板块黑白化：去掉红色系，统一黑白极简 ---------- */
/* 通栏容器 */
.zq-topbar { background: #111827; box-shadow: 0 3px 12px rgba(0, 0, 0, .18); }
.zq-topbar-plain { background: #fff; border-bottom: 1px solid #e5e7eb; }
.zq-topbar-grid { border-bottom: 1px solid #e5e7eb; }
.zq-topbar-plain .zq-news-hero-box { background: transparent; }
/* 头条通栏 */
.zq-news-hero-box { border-color: #e5e7eb; background: #fff; }
.zq-news-hq .zq-news-hero-box { border-color: #e5e7eb; background: #fff; }
.zq-news-hq .zq-news-hero h2:hover { color: #000; }
.zq-news-hq .zq-hero-subs { border-top-color: #ececec; }
.zq-news-hq .zq-hero-subs a:hover { color: #000; }
.zq-news-hq .zq-hero-sep { color: #d1d5db; }
/* 论坛热帖板块 */
.zq-news-threads { border-color: #e5e7eb; border-top-color: #111827; }
.zq-nt-head h3 { color: #111827; }
.zq-nt-more { color: #111827; }
.zq-news-threads .zq-fside-list li { border-bottom-color: #ededed; }
.zq-news-threads .zq-fside-list a:hover { color: #000; }
.zq-news-threads .zq-fside-rank.top3 { background: #111827; }
/* 要闻区 */
.zq-hq-side { border-color: #e5e7eb; }
.zq-hq-big { border-bottom-color: #ededed; }
.zq-hq-big:hover h3 { color: #000; }
.zq-hq-line { border-bottom-color: #ededed; }
.zq-hq-line a:hover { color: #000; }
.zq-hq-more { color: #111827; }
/* 最新资讯 */
.zq-news-latest { border-color: #e5e7eb; border-top-color: #111827; }
.zq-news-latest h3::before { background: #111827; }
.zq-news-latest li a:hover { color: #000; }
/* 视频平台 */
.zq-video-tabs { border-bottom-color: #ededed; }
.zq-vcard:hover .zq-vcard-play { background: #111827; }
.zq-vcard:hover h3 { color: #000; }
/* 栏目列表 / 转发按钮的红色悬停也统一成黑 */
.list-item h2 a:hover { color: #000; }
.zq-fwd-btn.is-primary:hover { background: #e02020; border-color: #e02020; }

/* ================= 资讯页手机端重新设计：轮播 + 防溢出 ================= */
@media (max-width: 768px) {
    /* --- 轮播：不再跟随竖版海报原始比例（会把页面拉成一屏多高）--- */
    .zq-slider { width: 100%; max-width: 100%; aspect-ratio: 4 / 3; max-height: 430px; }
    .zq-slider::before { padding-top: 0 !important; }        /* 高度交给 aspect-ratio 定死 */
    .zq-hq-media .zq-slider, .zq-hq-media .zq-slider::before { aspect-ratio: 4 / 3; }
    .zq-slide img { object-fit: cover; }                     /* 图片铺满裁切，不留白不变形 */
    /* 字幕：贴底、两行、靠左，圆点行不压字 */
    .zq-slide-title { padding: 40px 14px 30px; font-size: 14.5px; line-height: 1.4; text-align: left; }
    .zq-slider-dots { bottom: 8px; }
    .zq-slider-arrow { width: 28px; height: 28px; }

    /* --- 通栏区（头条 / 要闻）内边距收紧 --- */
    .zq-topbar-plain .zq-news-hero-box { padding: 12px 0 10px; }
    .zq-topbar-grid .zq-hq-grid { padding: 12px 0 14px; }
    .zq-hq-side { padding: 10px 12px; }

    /* --- 全局兜底：任何超宽元素都不再产生横向滚动 --- */
    html, body { overflow-x: hidden; }
    .content, .zq-news, .zq-hq-grid, .zq-hq-media, .zq-news-hero-box, .zq-news-latest {
        max-width: 100%; overflow-x: clip;
    }
}
@media (max-width: 768px) {
    /* 超长标题字幕：最多 3 行，超出省略 */
    .zq-slide-title {
        display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden;
    }
}

/* ================= 资讯页手机端：要闻区 / 轮播 / 热门帖子 重排 ================= */
@media (max-width: 768px) {
    /* ---------- 要闻区：轮播在上、标题列表在下，各占整行 ---------- */
    .zq-hq-grid { gap: 12px; }
    .zq-hq-side { padding: 10px 12px; border-radius: 12px; }
    .zq-hq-big h3 { font-size: 17px; }
    .zq-hq-big p { font-size: 13px; }
    /* 右侧标题列表：原来单行省略，手机上信息量太低 → 改两行 */
    .zq-hq-line { font-size: 14.5px; padding: 10px 0; }
    .zq-hq-line a {
        white-space: normal; line-height: 1.45;
        display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
    }
    .zq-hq-more-row { padding-top: 8px; }

    /* ---------- 热门帖子：两列太挤 → 单列，只留前 10 条（其余进「查看全部」）---------- */
    .zq-news-threads .zq-fside-list { display: block; }
    .zq-news-threads .zq-fside-list li { padding: 10px 0; }
    .zq-news-threads .zq-fside-list li:nth-child(n+11) { display: none; }
    .zq-news-threads .zq-fside-list a { font-size: 14.5px; line-height: 1.45; }

    /* ---------- 轮播：字幕最多 2 行，渐变加深，长标题不压图 ---------- */
    .zq-slider { aspect-ratio: 4 / 3; max-height: 400px; }
    .zq-slide-title {
        padding: 36px 12px 24px; font-size: 14px; line-height: 1.4;
        -webkit-line-clamp: 2;
        background: linear-gradient(to top, rgba(15, 23, 42, .88), rgba(15, 23, 42, .5) 52%, rgba(15, 23, 42, 0));
    }
    .zq-slider-dots { bottom: 6px; }
}

/* ================= 全局盒模型修复：width:100% 不再叠加内边距/边框 ================= */
/* 之前 .content 等容器 width:100% + padding，实际宽度 = 100% + 内边距，
   手机端正好超出视口几十像素，「Submit / View all」按钮被裁掉 */
*, *::before, *::after { box-sizing: border-box; }

@media (max-width: 768px) {
    /* 「News + Submit」标题行：空间不够时按钮换行，不再溢出被裁 */
    .zq-news-head { flex-wrap: wrap; }
    .zq-news-head h2 { flex: 1 1 auto; min-width: 0; }
    .zq-news-newbtn { flex: 0 0 auto; }
}

/* 论坛/资讯内容容器：手机端改块级布局并锁宽（flex column 下子项不拉伸，会按内容自然宽 419px 撑破 390px 视口） */
@media (max-width: 768px) {
    .zq-forum-wrap { display: block !important; }
    .zq-forum-main { width: 100% !important; max-width: 100% !important; min-width: 0 !important; }
    .zq-news { max-width: 100%; }
}

/* 最新资讯：li 是 flex 项且标题链接不换行，min-width:auto 让 li 最小宽度=整行标题，
   在窄容器里缩不下去而溢出 —— 显式归零 */
.zq-news-latest li { min-width: 0; }
.zq-news-latest ul { min-width: 0; }

/* ---------- 论坛列表手机端排版修正 ---------- */
@media (max-width: 768px) {
    /* 头像 / 回复数块原来垂直居中：标题一长就悬在卡片中间，排版错乱 → 统一贴顶 */
    .zq-forum-item { align-items: flex-start; }
    .zq-forum-av { margin-top: 2px; }
    .zq-forum-count { margin-top: 2px; min-width: 38px; padding: 3px 6px; }
    .zq-forum-count b { font-size: 13.5px; }
    .zq-forum-count i { font-size: 10.5px; }
    /* 标题最多两行，超出省略 */
    .zq-forum-link {
        display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
    }
    /* 「转自《文章标题》」引用标签：允许换行，不再撑成一整块顶开布局 */
    .zq-forum-tag.quote {
        white-space: normal; overflow-wrap: anywhere; line-height: 1.5; max-width: 100%;
    }
    /* 删除按钮不再挤在标题行里，独占一行更清爽 */
    .zq-forum-del { margin-top: 6px; }
    .zq-forum-imeta { margin-top: 6px; }
    /* 回到顶部按钮再抬高一点，不压住列表右侧的回复数 */
    .zq-top { bottom: 84px !important; }
}

/* ---------- 文章页「Related articles」防溢出 ----------
   站点模板 CSS：ul 是 grid 两列 + 链接 nowrap，
   grid 项 min-width:auto → li 最小宽度 = 整条英文标题宽（670px），撑破容器 */
.related-box ul { max-width: 100%; }
.related-box li { min-width: 0; max-width: 100%; }
.related-box li a {
    white-space: normal !important;   /* 长标题必须能换行 */
    overflow-wrap: anywhere; word-break: break-word;
}
/* 上一篇 / 下一篇：长英文标题同样要能断行 */
.prev-next { max-width: 100%; overflow-wrap: anywhere; }
.prev-next a { white-space: normal !important; overflow-wrap: anywhere; }

@media (max-width: 768px) {
    /* 手机端两列太挤（每列 ~160px 放长英文标题）→ 单列 */
    .related-box ul { grid-template-columns: 1fr !important; display: grid; }
    .related-box li { padding: 9px 0; font-size: 14.5px; line-height: 1.5; }
    .prev-next { font-size: 13.5px; line-height: 1.6; }
}

/* ---------- 广告位 ---------- */
.zq-ad { line-height: 0; font-size: 0; }
.zq-ad img { max-width: 100%; height: auto; display: block; margin: 0 auto; }
.zq-ad a { display: block; }
/* 侧边栏三个广告位：跟侧栏 box 保持同样的留白 */
.sidebar .zq-ad { margin-bottom: 12px; }
.zq-ad-code { line-height: 1.5; font-size: 14px; }
/* 「广告位招租」占位块 */
.zq-ad-rent {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
    min-height: 90px; padding: 14px 10px; line-height: 1.4;
    border: 1px dashed #c8ccd2; border-radius: 8px; background: #fafafa; text-align: center;
}
.zq-ad-rent-txt { font-size: 13px; color: #6b7280; letter-spacing: .5px; }
.zq-ad-rent-size { font-size: 11px; color: #b0b6bf; }
.sidebar .zq-ad-rent { min-height: 120px; }
.zq-ad-home_top { margin-bottom: 14px; }
.zq-ad-home_top .zq-ad-rent { min-height: 90px; }
.zq-ad-article_foot { margin: 16px 0; }
@media (max-width: 768px) {
    .zq-ad { margin-bottom: 10px; }
    .zq-ad-rent { min-height: 76px; padding: 10px 8px; }
    .sidebar .zq-ad-rent { min-height: 90px; }
}

/* ---------- 秒杀产品推荐 ---------- */
.zq-flash { margin-bottom: 22px; }
/* 列表页头部：模板自带标题，这里只负责副标题那一行的观感 */
.zq-flash-head { display: flex; align-items: baseline; gap: 10px; margin: 0 0 14px; flex-wrap: wrap; }
.zq-flash-head h2 { font-size: 19px; font-weight: 700; }
.zq-flash-sub {
    font-size: 13px; color: #6b7280; padding: 3px 10px; border-radius: 999px;
    background: #f4f5f7;
}
.zq-flash-more { margin-left: auto; font-size: 13px; color: #6b7280; }
.zq-flash-more:hover { color: #000; }
.zq-flash-grid {
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px;
}
.zq-fs-card {
    border: 1px solid #e8eaed; border-radius: 12px; background: #fff; overflow: hidden;
    transition: transform .15s ease, box-shadow .15s ease;
}
.zq-fs-card:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0, 0, 0, .07); }
.zq-fs-card.is-over { opacity: .62; }
.zq-fs-img { position: relative; display: block; aspect-ratio: 1 / 1; background: #f6f7f8; }
.zq-fs-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.zq-fs-noimg { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: #9ca3af; font-size: 13px; }
.zq-fs-platform {
    position: absolute; left: 8px; top: 8px; padding: 2px 8px; border-radius: 999px;
    background: rgba(17, 24, 39, .82); color: #fff; font-size: 11px; letter-spacing: .3px;
}
.zq-fs-off {
    position: absolute; right: 8px; top: 8px; padding: 3px 8px; border-radius: 6px;
    background: #111827; color: #fff; font-size: 12px; font-weight: 700;
}
.zq-fs-body { padding: 10px 12px 12px; }
.zq-fs-body h3 { font-size: 14.5px; font-weight: 600; line-height: 1.45; margin-bottom: 8px; }
.zq-fs-body h3 a { color: #111827; }
.zq-fs-body h3 a:hover { color: #000; text-decoration: underline; }
.zq-fs-price { display: flex; align-items: baseline; gap: 8px; margin-bottom: 8px; }
.zq-fs-price b { font-size: 18px; color: #111827; }
.zq-fs-price s { font-size: 12.5px; color: #9ca3af; }
/* 倒计时 */
.zq-fs-timer {
    display: flex; align-items: center; gap: 6px; margin-bottom: 10px; padding: 6px 9px;
    border-radius: 8px; background: #f3f4f6; font-size: 12.5px; color: #4b5563;
}
.zq-fs-timer-num { font-variant-numeric: tabular-nums; font-weight: 700; color: #111827; letter-spacing: .5px; }
.zq-fs-card.is-over .zq-fs-timer { background: #f9fafb; color: #9ca3af; }
.zq-fs-actions { display: flex; gap: 8px; }
.zq-fs-buy, .zq-fs-detail {
    flex: 1; text-align: center; padding: 8px 0; border-radius: 8px; font-size: 13px;
    text-decoration: none; transition: background .15s, color .15s, border-color .15s;
}
.zq-fs-buy { background: #111827; color: #fff; border: 1px solid #111827; }
.zq-fs-buy:hover { background: #e02020; color: #fff; }
.zq-fs-detail { background: #fff; color: #111827; border: 1px solid #d7dade; }
.zq-fs-detail:hover { border-color: #111827; }
.zq-flash-empty { padding: 26px 0; text-align: center; color: #9ca3af; font-size: 14px; }

/* 详情页：白底卡片 + 完整商品图 + 价格条 + 醒目抢购按钮 */
.zq-flash-detail {
    display: flex; gap: 22px; margin-bottom: 18px; padding: 18px;
    background: #fff; border: 1px solid #eceef1; border-radius: 14px;
    box-shadow: 0 1px 3px rgba(16, 24, 40, .06);
}
.zq-fd-main { flex: 0 0 320px; }
/* 商品图用 contain：整张图完整显示，不像 cover 那样把logo/边角裁掉 */
.zq-fd-media {
    position: relative; aspect-ratio: 1 / 1; border-radius: 12px; overflow: hidden;
    background: #f8f9fb; border: 1px solid #f0f1f3; padding: 12px; box-sizing: border-box;
}
.zq-fd-media img { width: 100%; height: 100%; object-fit: contain; display: block; }
.zq-fd-media .zq-fs-platform { top: 12px; left: 12px; }
.zq-fd-info { flex: 1; min-width: 0; }
.zq-fd-info h1 { font-size: 21px; line-height: 1.5; margin-bottom: 12px; }
.zq-fd-price {
    display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap;
    padding: 12px 14px; margin-bottom: 12px; border-radius: 10px;
    background: linear-gradient(135deg, #fff6f2, #fff);
}
.zq-fd-price b { font-size: 30px; color: #e5341a; font-weight: 700; letter-spacing: -.5px; }
.zq-fd-price s { font-size: 14px; color: #9ca3af; }
.zq-fd-price .zq-fs-off {
    position: static; background: #e5341a; color: #fff; border-radius: 6px;
    padding: 2px 7px; font-size: 13px; font-weight: 700;
}
.zq-fs-timer.is-big {
    display: inline-flex; font-size: 14px; padding: 9px 14px; border-radius: 8px;
    background: #fff7ed; border: 1px solid #ffd9bf; color: #c2410c;
}
.zq-fs-timer.is-big .zq-fs-timer-num { font-size: 17px; font-weight: 700; }
.zq-fd-buy { margin: 14px 0 10px; }
.zq-fd-buy .zq-fs-buy {
    display: inline-block; padding: 13px 40px; font-size: 15px; font-weight: 600;
    border-radius: 10px; border: 0; color: #fff;
    background: linear-gradient(180deg, #ff5a2b, #e5341a);
    box-shadow: 0 4px 12px rgba(229, 52, 26, .28);
}
.zq-fd-buy .zq-fs-buy:hover { background: linear-gradient(180deg, #ff6a3d, #f03e23); }
.zq-fd-buy .zq-fs-buy[data-over="1"] { background: #9ca3af; box-shadow: none; }
.zq-fd-meta { font-size: 13px; color: #6b7280; }
.zq-fs-over { margin-left: 10px; color: #dc2626; }
.zq-fd-content { margin: 10px 0 22px; line-height: 1.8; }
.zq-fd-content img { max-width: 100%; height: auto; border-radius: 10px; }
.zq-fd-content iframe { width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: 10px; }

@media (max-width: 900px) {
    .zq-flash-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .zq-flash-detail { flex-direction: column; gap: 14px; padding: 14px; }
    .zq-fd-main { flex: none; width: 100%; }
}
@media (max-width: 768px) {
    .zq-flash { margin-bottom: 16px; }
    .zq-flash-head h2 { font-size: 17px; }
    .zq-flash-sub { display: none; }
    .zq-flash-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .zq-fs-body { padding: 9px 10px 11px; }
    .zq-fs-body h3 {
        font-size: 14px; display: -webkit-box; -webkit-box-orient: vertical;
        -webkit-line-clamp: 2; overflow: hidden;
    }
    .zq-fs-price b { font-size: 16.5px; }
    .zq-fs-timer { padding: 6px 8px; font-size: 12px; }
    .zq-fd-info h1 { font-size: 18px; }
    .zq-fd-price { padding: 10px 12px; }
    .zq-fd-price b { font-size: 25px; }
    .zq-fd-buy .zq-fs-buy { display: block; width: 100%; text-align: center; padding: 12px 0; }
}

/* ---------- 秒杀卡片布局 v2：PC 一行 3 个，手机一行 2 个，卡片等高 ---------- */
/* 覆盖旧断点（旧 @900px 降 2 列 → 取消，统一 3 列，<=768px 才 2 列） */
@media (min-width: 769px) {
    .zq-flash-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
/* 等高：grid 行内拉伸 + 卡片纵向 flex，按钮永远贴底对齐 */
.zq-flash-grid { align-items: stretch; }
.zq-fs-card {
    display: flex; flex-direction: column; height: 100%;
}
.zq-fs-img { flex: 0 0 auto; }
.zq-fs-body {
    flex: 1 1 auto; display: flex; flex-direction: column;
}
/* 标题统一两行截断，价格/倒计时/按钮才会在同一水平线 */
.zq-fs-body h3 {
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
    overflow: hidden; line-height: 1.4; min-height: calc(1.4em * 2);
}
.zq-fs-actions { margin-top: auto; }   /* 按钮组贴卡片底部 */
.zq-flash-empty { grid-column: 1 / -1; }

/* ---------- 侧边栏「限时秒杀」（窄栏紧凑版） ---------- */
.zq-flash-side .zq-fs-side-list { margin: 0; padding: 0; list-style: none; }
.zq-fs-side-item {
    display: flex; gap: 10px; padding: 10px 0;
    border-bottom: 1px solid #f0f1f3;
}
.zq-fs-side-item:last-child { border-bottom: 0; }
.zq-fs-side-item.is-over { opacity: .62; }
.zq-fs-side-img {
    position: relative; flex: 0 0 74px; width: 74px; height: 74px;
    border-radius: 8px; overflow: hidden; background: #f6f7f8;
}
.zq-fs-side-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.zq-fs-side-noimg { display: block; width: 100%; height: 100%; background: #f0f1f3; }
.zq-fs-side-main { flex: 1; min-width: 0; }
.zq-fs-side-title {
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
    font-size: 13.5px; line-height: 1.45; color: #111827;
}
.zq-fs-side-title:hover { color: #000; }
.zq-fs-side-price { display: flex; align-items: baseline; gap: 6px; margin-top: 5px; }
.zq-fs-side-price b { font-size: 15px; color: #111827; }
.zq-fs-side-price s { font-size: 11.5px; color: #9ca3af; }
.zq-flash-side .zq-fs-timer {
    margin-top: 6px; padding: 4px 8px; font-size: 11.5px;
}
.zq-flash-side .zq-fs-timer-num { font-size: 12.5px; }
.zq-fs-side-buy {
    display: inline-block; margin-top: 7px; padding: 5px 13px; border-radius: 6px;
    background: #111827; color: #fff; font-size: 12.5px; line-height: 1.4;
}
.zq-fs-side-buy:hover { background: #e02020; color: #fff; }

@media (max-width: 768px) {
    .zq-fs-side-img { flex: 0 0 64px; width: 64px; height: 64px; }
    .zq-fs-side-title { font-size: 13px; }
    .zq-fs-side-buy { display: block; text-align: center; }
}

/* 手机端：侧栏被模板隐藏，秒杀区块会被 JS 搬到内容区顶部，这里补上外边距 */
@media (max-width: 768px) {
    .content > .zq-flash-side,
    .main > .zq-flash-side {
        margin-bottom: 14px; padding: 12px 14px;
        background: #fff; border: 1px solid #e8eaed; border-radius: 10px;
    }
    .content > .zq-flash-side .zq-fs-side-item:last-child { padding-bottom: 2px; }
}

/* ---------- 瀑布流：秒杀列表 + 产品导购列表 ---------- */
/* 宽屏统一一行 3 个：都用 CSS 多列做瀑布流，列高自动平衡，不需要 JS */
.zq-flash-grid,
.zq-products {
    display: block !important;
    grid-template-columns: none !important;
    align-items: normal !important;
    columns: 3;
    column-gap: 14px;
    margin-bottom: 16px;
}
/* 卡片整体不能被拆到两列，且改回普通块高度（原「等高拉伸」会把列高撑平） */
.zq-fs-card,
.p-card {
    display: block !important;
    height: auto !important;
    break-inside: avoid;
    -webkit-column-break-inside: avoid;
    page-break-inside: avoid;
    margin: 0 0 14px;
    width: 100%;
}
/* 图区改成「按图片原始比例」，高度各不相同才有瀑布流感 */
.zq-fs-img,
.p-card-img {
    position: relative;
    display: block;
    width: 100%;
    height: auto !important;
    aspect-ratio: auto !important;
    background: #f6f7f8;
}
.zq-fs-img img,
.p-card-img img {
    display: block;
    width: 100%;
    height: auto !important;
    max-height: 460px;         /* 挡住超长竖图，但不拉伸不变形 */
    object-fit: contain;
    margin: 0 auto;
}
/* 卡片内部不需要再撑满剩余高度，按钮也不用强行贴底 */
.zq-fs-body { flex: none; }
.zq-fs-actions { margin-top: 8px; }
.zq-flash-empty { display: block; }

@media (max-width: 1180px) {
    .zq-flash-grid, .zq-products { columns: 3; }
}
@media (max-width: 900px) {
    .zq-flash-grid, .zq-products { columns: 3; column-gap: 12px; }
}
@media (max-width: 768px) {
    .zq-flash-grid, .zq-products { columns: 2; column-gap: 10px; }
    .zq-fs-card, .p-card { margin-bottom: 10px; }
    .zq-fs-img img, .p-card-img img { max-height: 340px; }
}

/* ---------- 批发专区 /wholesale/ ---------- */
.zq-ws-head { margin: 0 0 14px; }
.zq-ws-sub { font-size: 13px; color: #6b7280; padding: 3px 10px; border-radius: 999px; background: #f4f5f7; }
.zq-ws-empty { padding: 26px 0; text-align: center; color: #9ca3af; font-size: 14px; }
/* 列表：和秒杀 / 导购一样的一行 3 个瀑布流 */
.zq-ws-grid { display: block; columns: 3; column-gap: 14px; margin-bottom: 16px; }
.zq-ws-card {
    break-inside: avoid; -webkit-column-break-inside: avoid;
    display: block; width: 100%; margin: 0 0 14px;
    background: #fff; border: 1px solid #eceef1; border-radius: 12px; overflow: hidden;
}
.zq-ws-card:hover { border-color: #d7dade; }
.zq-ws-img { position: relative; display: block; width: 100%; background: #f6f7f8; }
.zq-ws-img img { display: block; width: 100%; height: auto; max-height: 380px; object-fit: contain; margin: 0 auto; }
.zq-ws-platform {
    position: absolute; top: 8px; left: 8px; padding: 2px 7px; border-radius: 6px;
    background: rgba(17, 24, 39, .72); color: #fff; font-size: 11px;
}
.zq-ws-noimg { display: block; padding: 40px 0; text-align: center; color: #9ca3af; font-size: 13px; background: #f6f7f8; }
.zq-ws-body { padding: 10px 12px 12px; }
.zq-ws-body h3 {
    margin: 0 0 8px; font-size: 14.5px; line-height: 1.4; font-weight: 600;
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
}
.zq-ws-body h3 a { color: inherit; text-decoration: none; }
.zq-ws-facts { display: flex; flex-direction: column; gap: 3px; margin-bottom: 7px; }
.zq-ws-fact { font-size: 12.5px; color: #4b5563; }
.zq-ws-fact i { font-style: normal; color: #9ca3af; margin-right: 4px; }
.zq-ws-svcs { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 8px; }
.zq-ws-svc {
    font-size: 11.5px; color: #0369a1; background: #eff6ff; border: 1px solid #dbeafe;
    border-radius: 5px; padding: 1px 6px;
}
/* 价格不展示，改成「价格面议」 */
.zq-ws-price {
    font-size: 13px; color: #b45309; background: #fffbeb; border: 1px dashed #fcd34d;
    border-radius: 8px; padding: 6px 9px; margin-bottom: 9px; text-align: center;
}
.zq-ws-actions { display: flex; gap: 8px; }
.zq-ws-btn {
    display: inline-block; flex: 1 1 auto; text-align: center; text-decoration: none;
    padding: 9px 12px; border-radius: 9px; font-size: 14px; font-weight: 600; color: #fff;
    background: linear-gradient(180deg, #23272f, #111827); border: 0; cursor: pointer;
}
.zq-ws-btn:hover { background: #e02020; }
/* 询价按钮是 <a>：点过一次（锚点跳到表单）后浏览器用 a:visited 的蓝紫色盖掉白字，必须钉住 */
.zq-ws-btn:visited { color: #fff; }
.zq-ws-btn-ghost {
    background: #fff; color: #1f2937; border: 1px solid #d7dade; font-weight: 500;
}
.zq-ws-btn-ghost:hover { border-color: #111827; background: #f9fafb; }

/* 详情页 */
.zq-ws-detail {
    display: flex; gap: 22px; margin-bottom: 18px; padding: 18px;
    background: #fff; border: 1px solid #eceef1; border-radius: 14px;
    box-shadow: 0 1px 3px rgba(16, 24, 40, .06);
}
.zq-wd-main { flex: 0 0 320px; }
.zq-wd-media {
    position: relative; background: #f8f9fb; border: 1px solid #f0f1f3;
    border-radius: 12px; padding: 12px; box-sizing: border-box;
}
.zq-wd-media img { display: block; width: 100%; height: auto; max-height: 420px; object-fit: contain; margin: 0 auto; }
.zq-wd-info { flex: 1; min-width: 0; }
.zq-wd-price {
    font-size: 17px; font-weight: 700; color: #b45309; background: #fffbeb;
    border: 1px dashed #fcd34d; border-radius: 10px; padding: 12px 14px; margin-bottom: 12px;
}
.zq-wd-spec { width: 100%; border-collapse: collapse; margin-bottom: 12px; font-size: 13.5px; }
.zq-wd-spec th, .zq-wd-spec td { border-bottom: 1px solid #f0f1f3; padding: 7px 8px; text-align: left; vertical-align: top; }
.zq-wd-spec th { width: 110px; color: #6b7280; font-weight: 500; }
.zq-wd-svcs { margin-bottom: 12px; }
.zq-wd-buy { display: flex; gap: 10px; flex-wrap: wrap; }
.zq-wd-buy .zq-ws-btn { flex: 0 0 auto; }
.zq-wd-content { margin: 10px 0 22px; line-height: 1.8; }
.zq-wd-content img { max-width: 100%; height: auto; border-radius: 10px; }
.zq-wd-content iframe { width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: 10px; }

/* 询价表单 */
.zq-ws-inquiry {
    background: #fff; border: 1px solid #eceef1; border-radius: 14px; padding: 18px; margin-bottom: 20px;
}
.zq-ws-inq-title { margin: 0 0 4px; font-size: 18px; }
.zq-ws-inq-tip { margin: 0 0 14px; font-size: 13px; color: #6b7280; }
.zq-ws-inq-msg {
    padding: 9px 12px; border-radius: 8px; margin-bottom: 12px; font-size: 13.5px;
    background: #fef2f2; border: 1px solid #fecaca; color: #b91c1c;
}
.zq-ws-inq-msg.is-ok { background: #f0fdf4; border-color: #bbf7d0; color: #15803d; }
.zq-ws-row { display: flex; gap: 12px; flex-wrap: wrap; }
.zq-ws-field { flex: 1 1 200px; min-width: 180px; margin-bottom: 12px; }
.zq-ws-field label { display: block; font-size: 13px; color: #374151; margin-bottom: 5px; }
.zq-ws-field label b { color: #dc2626; }
.zq-ws-field input, .zq-ws-field select, .zq-ws-field textarea {
    width: 100%; box-sizing: border-box; padding: 9px 10px; font-size: 14px;
    border: 1px solid #d7dade; border-radius: 8px; background: #fff; font-family: inherit;
}
.zq-ws-field input:focus, .zq-ws-field select:focus, .zq-ws-field textarea:focus {
    outline: none; border-color: #111827; box-shadow: 0 0 0 3px rgba(17, 24, 39, .12);
}
.zq-ws-field textarea { resize: vertical; line-height: 1.6; }
.zq-ws-form-foot { display: flex; align-items: center; gap: 12px; margin: 6px 0 0; flex-wrap: wrap; }
.zq-ws-help { font-size: 12.5px; color: #6b7280; }

@media (max-width: 1180px) { .zq-ws-grid { columns: 3; } }
@media (max-width: 900px) {
    .zq-ws-grid { columns: 3; column-gap: 12px; }
    .zq-ws-detail { flex-direction: column; gap: 14px; padding: 14px; }
    .zq-wd-main { flex: none; width: 100%; }
}
@media (max-width: 768px) {
    .zq-ws-grid { columns: 2; column-gap: 10px; }
    .zq-ws-card { margin-bottom: 10px; }
    .zq-ws-img img { max-height: 280px; }
    .zq-ws-row { flex-direction: column; gap: 0; }
    .zq-ws-field { min-width: 0; }
    .zq-ws-detail { padding: 12px; }
    .zq-ws-inquiry { padding: 14px; }
}

/* ---------- 批发专区：黑色主题（原蓝色元素全部换黑） ---------- */
.zq-ws-btn {
    background: linear-gradient(180deg, #23272f, #111827);
}
.zq-ws-btn:hover { background: #e02020; }
.zq-ws-btn-ghost { background: #fff; color: #111827; border: 1px solid #d7dade; }
.zq-ws-btn-ghost:visited { color: #111827; }
.zq-ws-btn-ghost:hover { border-color: #111827; background: #f9fafb; }
.zq-ws-field input:focus, .zq-ws-field select:focus, .zq-ws-field textarea:focus {
    border-color: #111827; box-shadow: 0 0 0 3px rgba(17, 24, 39, .12);
}
.zq-ws-svc { color: #374151; background: #f4f5f7; border: 1px solid #e5e7eb; }

/* ---------- 筛选栏：标签 + 平台 ---------- */
.zq-ws-filter { margin: 0 0 16px; padding: 12px 14px; background: #fff; border: 1px solid #eceef1; border-radius: 12px; }
.zq-ws-filter-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.zq-ws-filter-row + .zq-ws-filter-row { margin-top: 10px; }
.zq-ws-filter-label { font-size: 13px; color: #6b7280; min-width: 46px; }
.zq-ws-chip {
    display: inline-block; padding: 4px 12px; border-radius: 999px; font-size: 13px;
    color: #374151; background: #f4f5f7; border: 1px solid #f4f5f7; text-decoration: none;
}
.zq-ws-chip:hover { border-color: #111827; color: #111827; }
.zq-ws-chip.is-on { background: #111827; border-color: #111827; color: #fff; font-weight: 600; }

/* 推荐角标：图左上角（平台标签在左边，推荐放右边） */
.zq-ws-flag {
    position: absolute; top: 8px; right: 8px; padding: 2px 8px; border-radius: 6px;
    background: #111827; color: #fff; font-size: 11px; font-weight: 600;
}
.zq-ws-flag-static { position: static; margin-left: 6px; vertical-align: middle; }

/* 评分 + 成交额 */
.zq-ws-trust { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 7px; }
.zq-ws-stars { font-size: 13px; color: #b45309; font-weight: 600; }
.zq-ws-stars i { font-style: normal; color: #f59e0b; letter-spacing: 1px; margin-right: 3px; }
.zq-ws-deals { font-size: 12.5px; color: #6b7280; background: #f9fafb; border: 1px solid #f0f1f3; border-radius: 6px; padding: 1px 7px; }
.zq-wd-trust { margin-bottom: 12px; }
.zq-wd-trust .zq-ws-stars { font-size: 14px; }

/* 标签 chips（卡片 + 详情） */
.zq-ws-tagrow { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 8px; }
.zq-ws-tag {
    font-size: 11.5px; color: #374151; background: #f4f5f7;
    border: 1px solid #e5e7eb; border-radius: 5px; padding: 1px 7px; text-decoration: none;
}
.zq-ws-tag:hover { border-color: #111827; color: #111827; }
.zq-wd-tags { margin-bottom: 12px; }
.zq-wd-tags .zq-ws-tag { font-size: 12.5px; padding: 3px 10px; border-radius: 7px; }

/* ---------- 语言切换：自绘下拉，选中项黑色高亮 ---------- */
.zq-lang-switch { position: relative; display: inline-flex; align-items: center; margin-left: 10px; font-size: 13px; }
/* 锚点：包住按钮 + 下拉，面板相对它定位 —— 模板把 switch 拉高（如 BBC 风格 96px）时也紧贴按钮 */
.zq-lang-anchor { position: relative; display: inline-flex; }
.zq-lang-btn {
    display: inline-flex; align-items: center; gap: 7px; padding: 6px 11px;
    border: 1px solid #d7dade; border-radius: 8px; background: #fff;
    color: inherit; font: inherit; font-size: 13px; cursor: pointer;
}
.zq-lang-btn:hover { border-color: #111827; }
.zq-lang-caret {
    width: 0; height: 0; border-left: 4px solid transparent; border-right: 4px solid transparent;
    border-top: 5px solid currentColor; opacity: .6;
}
.zq-lang-panel {
    position: absolute; right: 0; top: calc(100% + 6px); min-width: 200px; z-index: 9999;
    background: #fff; border: 1px solid #e5e7eb; border-radius: 10px; padding: 6px;
    box-shadow: 0 10px 28px rgba(16, 24, 40, .14);
}
.zq-lang-item {
    display: flex; align-items: center; gap: 9px; padding: 8px 11px;
    border-radius: 7px; color: #141414; text-decoration: none; font-size: 13px;
}
/* 面板永远是白底：不能 inherit 头部的白字（绿/黑头部下会变白底白字看不见） */
.zq-lang-panel { color: #141414; }
.zq-lang-item:hover { background: #f4f5f7; }
.zq-lang-item.is-on { background: #111827; color: #fff; font-weight: 600; }
.zq-lang-short { font-weight: 600; min-width: 22px; }
.zq-lang-links a { margin-right: 6px; }
@media (max-width: 768px) {
    .zq-lang-panel { min-width: 168px; }
    .zq-ws-filter { padding: 10px 12px; }
    .zq-ws-filter-label { min-width: auto; }
}

/* ---------- 悬浮客服：在线黑 / 离线浅灰（客服这块统一黑白，不用品牌红） ---------- */
.zq-float-svc.is-online  { background: #111827; color: #fff; }
.zq-float-svc.is-offline { background: #f4f5f7; color: #6b7280; box-shadow: inset 0 0 0 1px #e2e5e9; }
.zq-float-svc.is-online:hover  { background: #000; }
.zq-float-svc.is-offline:hover { background: #ebecef; }
/* 右上角状态点：白点=在线，灰点=离线；按钮底色本身已经区分，点只做双重提示 */
.zq-float-svc { position: relative; }
.zq-float-svc-dot {
    position: absolute; top: 8px; right: 8px; width: 9px; height: 9px; border-radius: 50%;
    background: #fff; border: 1.5px solid #fff; box-sizing: content-box;
}
.zq-float-svc.is-offline .zq-float-svc-dot { background: #9ca3af; }

/* 客服面板：和微信弹层同一套定位，只是更宽、靠右说话 */
.zq-svc-pop { width: 296px; text-align: left; padding: 16px 16px 14px; }
.zq-svc-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.zq-svc-head b { font-size: 15px; color: #111827; }
.zq-svc-badge {
    display: inline-flex; align-items: center; gap: 5px; padding: 2px 8px;
    border-radius: 999px; font-size: 11.5px; font-weight: 600; line-height: 1.6;
}
.zq-svc-badge i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.zq-svc-badge.is-online  { background: #111827; color: #fff; }
.zq-svc-badge.is-offline { background: #f4f5f7; color: #6b7280; }
.zq-svc-tip { margin: 0 0 8px; font-size: 13px; line-height: 1.6; color: #4b5563; }
.zq-svc-hours { margin: 0 0 10px; font-size: 12px; color: #6b7280; }
.zq-svc-quick {
    display: flex; align-items: center; flex-wrap: wrap; gap: 6px;
    padding: 10px 0; margin-bottom: 10px; border-top: 1px solid #f0f1f3; border-bottom: 1px solid #f0f1f3;
}
.zq-svc-quick > span { font-size: 12.5px; color: #6b7280; }
.zq-svc-quick-btn { text-decoration: none; display: inline-block; }
/* 留言表单：和聊天区之间留一条淡淡的分割线，视觉上分清「留言」和「聊天」 */
.zq-svc-form {
    display: flex; flex-direction: column; gap: 9px;
    padding-top: 12px; border-top: 1px solid #f0f1f3;
}
/* 注意：.zq-svc-row 是聊天气泡行用的类名（下面 3800 多行处），别混用 */
.zq-svc-form input, .zq-svc-form textarea {
    width: 100%; box-sizing: border-box; padding: 10px 12px; font-size: 13px; font-family: inherit;
    color: #111827; background: #fff; border: 1px solid #e2e5e9; border-radius: 10px;
    transition: border-color .15s, box-shadow .15s;
}
.zq-svc-form input::placeholder, .zq-svc-form textarea::placeholder { color: #9ca3af; }
.zq-svc-form textarea { resize: vertical; line-height: 1.6; min-height: 92px; }
.zq-svc-form input:focus, .zq-svc-form textarea:focus {
    outline: none; border-color: #111827; box-shadow: 0 0 0 3px rgba(17, 24, 39, .10);
}
/* 提交按钮和聊天里的 Send 同色：整个面板只有一个主色，不会两种按钮打架 */
.zq-svc-submit {
    padding: 11px 12px; font-size: 13.5px; font-weight: 600; color: #fff;
    background: #111827; border: 0; border-radius: 10px; cursor: pointer;
    transition: background .15s, transform .1s;
}
.zq-svc-submit:hover { background: #000; }
.zq-svc-submit:active { transform: translateY(1px); }
.zq-svc-submit:disabled { opacity: .6; cursor: default; }
.zq-svc-msg { margin: 0; font-size: 12.5px; line-height: 1.6; }
/* 成功/失败都用中性色，靠字重区分：黑灰配色里不给红绿 */
.zq-svc-msg.ok { color: #374151; }
.zq-svc-msg.err { color: #111827; font-weight: 600; }
@media (max-width: 768px) {
    .zq-svc-pop { width: 244px !important; }
}

/* ---------- 第三方登录（Facebook / Google / X） ---------- */
.zq-oauth { margin-top: 18px; }
/* 分隔线：中间是「或使用第三方账号登录」，两边各一条细线 */
.zq-oauth-line {
    position: relative; text-align: center; margin: 0 0 14px;
}
.zq-oauth-line::before {
    content: ""; position: absolute; top: 50%; left: 0; right: 0; height: 1px; background: #e5e7eb;
}
.zq-oauth-line span {
    position: relative; display: inline-block; padding: 0 12px;
    background: #fff; font-size: 12.5px; color: #9ca3af;
}
/* 整块居中：按钮定宽对齐成一条，视觉重心落在登录框中线上 */
.zq-oauth-list { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.zq-oauth-btn {
    display: flex; align-items: center; justify-content: flex-start; gap: 10px; position: relative;
    width: 100%; max-width: 320px;
    padding: 10px 14px; border: 1px solid #e5e7eb; border-radius: 8px; background: #fff;
    color: #111827; font-size: 13.5px; text-decoration: none; cursor: pointer;
    transition: border-color .18s, background .18s, transform .18s;
    text-align: left;
}
/* 图标固定占位，三行按钮的图标才能垂直对齐 */
.zq-oauth-btn svg { flex: 0 0 20px; width: 20px; height: 20px; }
.zq-oauth-btn > span { flex: 1 1 auto; min-width: 0; }
.zq-oauth-btn:hover { border-color: #111827; background: #fafafa; }
.zq-oauth-btn:active { transform: translateY(1px); }
/* 未接入：整体置灰即可，不加划线（用 span 渲染，本身就点不动） */
.zq-oauth-btn.is-off {
    cursor: not-allowed; opacity: .55; filter: grayscale(1);
    border-style: dashed; color: #9ca3af; background: #fbfbfc;
}
.zq-oauth-btn.is-off:hover { border-color: #e5e7eb; background: #fbfbfc; }
/* 品牌色只在悬停时用一点点，底色保持白，免得三个按钮抢视线 */
.zq-oauth-facebook:hover { border-color: #1877f2; }
.zq-oauth-twitter:hover { border-color: #000; }
@media (max-width: 480px) {
    .zq-oauth-btn { padding: 11px 10px; font-size: 13px; }
}
/* ---------- 在线客服：前台悬浮聊天面板 ---------- */
.zq-svc-chat { display: flex; flex-direction: column; gap: 8px; }
.zq-svc-msgs {
    display: flex; flex-direction: column; gap: 8px;
    max-height: 260px; overflow-y: auto; padding: 2px 2px 4px;
    -webkit-overflow-scrolling: touch;
}
.zq-svc-msgs::-webkit-scrollbar { width: 5px; }
.zq-svc-msgs::-webkit-scrollbar-thumb { background: #dcdfe4; border-radius: 3px; }
.zq-svc-row { display: flex; flex-direction: column; max-width: 88%; }
.zq-svc-row.is-me { align-self: flex-end; align-items: flex-end; }
.zq-svc-row.is-you, .zq-svc-row.is-sys { align-self: flex-start; align-items: flex-start; }
.zq-svc-bd {
    position: relative; padding: 7px 10px; border-radius: 10px;
    font-size: 13px; line-height: 1.55; word-break: break-word; white-space: pre-wrap;
}
.zq-svc-row.is-me .zq-svc-bd { background: #111827; color: #fff; border-bottom-right-radius: 3px; }
.zq-svc-row.is-you .zq-svc-bd { background: #f2f3f5; color: #111827; border-bottom-left-radius: 3px; }
.zq-svc-row.is-sys .zq-svc-bd { background: #f4f5f7; color: #6b7280; font-size: 12px; }
.zq-svc-bd img.zq-svc-img { max-width: 180px; max-height: 180px; border-radius: 8px; display: block; cursor: zoom-in; }
.zq-svc-bd a { color: inherit; text-decoration: underline; }
.zq-svc-tm { font-size: 10.5px; color: #9ca3af; margin-top: 2px; }
.zq-svc-input { display: flex; flex-direction: column; gap: 6px; }
.zq-svc-input textarea {
    width: 100%; border: 1px solid #e5e7eb; border-radius: 8px; padding: 8px 10px;
    font: inherit; font-size: 13px; color: #111827; resize: none; background: #fff;
}
.zq-svc-input textarea:focus { outline: none; border-color: #111827; box-shadow: 0 0 0 3px rgba(17, 24, 39, .08); }
.zq-svc-tools { display: flex; align-items: center; gap: 8px; }
.zq-svc-tool {
    display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
    width: 28px; height: 28px; border: 1px solid #e5e7eb; border-radius: 6px; background: #fff; font-size: 15px;
    color: #374151;
}
.zq-svc-tool svg { display: block; }
.zq-svc-tool:hover { border-color: #111827; }
.zq-svc-hint { font-size: 11.5px; color: #9ca3af; }
.zq-svc-send {
    margin-left: auto; padding: 6px 16px; border: 0; border-radius: 6px; cursor: pointer;
    background: #111827; color: #fff; font-size: 13px; transition: background .15s;
}
.zq-svc-send:hover { background: #000; }
.zq-svc-emojis {
    display: flex; flex-wrap: wrap; gap: 2px; padding: 6px; max-height: 116px; overflow-y: auto;
    border: 1px solid #e5e7eb; border-radius: 8px; background: #fff;
}
.zq-svc-emo {
    width: 28px; height: 28px; border: 0; background: transparent; cursor: pointer;
    font-size: 17px; line-height: 1; border-radius: 5px;
}
.zq-svc-emo:hover { background: #f2f3f5; }

/* ---------- 多用户博客 /u/xxx ---------- */
/* 博客门户：内容区放宽，卡片用网格铺开（父容器更窄时会自动收，不会溢出） */
.zq-blog { max-width: 1120px; }
.zq-blog-empty { padding: 26px 0; text-align: center; font-size: 14px; color: #9ca3af; }

/* 博主列表 /u/ */
.zq-blog-listhead {
    display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px;
}
.zq-blog-listhead h2 { margin: 0; font-size: 22px; font-weight: 800; color: #111827; }
/* 博客广场首页：Hero + 分节 */
.zq-blog-sec { margin-top: 30px; }
.zq-blog-sec:first-of-type { margin-top: 24px; }
/* Hero：标题在左，两个统计数字在右 */
.zq-blog-hero {
    display: flex; align-items: center; justify-content: space-between; gap: 20px;
    padding: 22px 24px; border-radius: 16px;
    background: #111827; color: #fff;
}
.zq-blog-hero h2 { margin: 0; font-size: 23px; font-weight: 800; letter-spacing: .3px; }
.zq-blog-hero > div > p { margin: 7px 0 0; font-size: 13.5px; line-height: 1.6; color: rgba(255, 255, 255, .62); }
.zq-blog-stats { display: flex; gap: 30px; flex: none; }
.zq-blog-stats span { text-align: center; }
.zq-blog-stats b { display: block; font-size: 24px; font-weight: 800; line-height: 1.15; }
.zq-blog-stats em {
    display: block; margin-top: 2px; font-style: normal; font-size: 12px;
    color: rgba(255, 255, 255, .58);
}
.zq-blog-more { font-size: 13px; color: #6b7280; text-decoration: none; }
.zq-blog-more:hover { color: #111827; }

/* 搜索条：胶囊输入框 + 黑色按钮 */
.zq-blog-search { display: flex; gap: 10px; align-items: center; margin: 20px 0 6px; }
.zq-blog-search input {
    flex: 1; min-width: 0; height: 44px; padding: 0 18px; box-sizing: border-box;
    border: 1px solid #d9dbe1; border-radius: 999px; background: #fff;
    font-size: 14px; color: #111827; outline: none;
    transition: border-color .15s, box-shadow .15s;
}
.zq-blog-search input:focus { border-color: #111827; box-shadow: 0 0 0 3px rgba(17, 24, 39, .08); }
.zq-blog-search button {
    flex: none; height: 44px; padding: 0 26px; border: none; border-radius: 999px;
    background: #111827; color: #fff; font-size: 14px; font-weight: 600; cursor: pointer;
    transition: background .15s;
}
.zq-blog-search button:hover { background: #000; }
.zq-blog-search-clear { flex: none; font-size: 13px; color: #9ca3af; text-decoration: none; }
.zq-blog-search-clear:hover { color: #111827; }

/* 推荐博客：三张黑底白字卡片横排（窄屏自动换行）；封面底图压暗衬白字 */
.zq-blog-featured {
    display: grid; gap: 14px; grid-template-columns: repeat(3, minmax(0, 1fr));
}
.zq-blog-feat {
    position: relative; display: block; overflow: hidden;
    min-height: 220px; padding: 0; text-decoration: none; color: #fff;
    border: 1px solid #1f2937; border-radius: 16px; background: #111827;
    transition: border-color .15s, box-shadow .15s, transform .15s;
}
.zq-blog-feat:hover {
    border-color: #374151; box-shadow: 0 10px 26px rgba(17, 24, 39, .35); transform: translateY(-2px);
}
/* 背景用博主设置的横幅/封面图，整体压暗保证白字可读 */
.zq-blog-feat-bg {
    position: absolute; inset: 0; display: block;
    background-size: cover; background-position: center; opacity: .28;
}
/* 压一层深色渐变，白字更稳 */
.zq-blog-feat::after {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(160deg, rgba(17, 24, 39, .55), rgba(17, 24, 39, .82));
}
.zq-blog-feat-in {
    position: relative; z-index: 1; display: flex; flex-direction: column;
    height: 100%; padding: 18px 18px 16px; box-sizing: border-box;
}
/* 头像在左、名字在右的一行；头像比默认 zq-avatar-lg 小 */
.zq-blog-feat-top { display: flex; align-items: center; gap: 12px; min-width: 0; }
.zq-blog-feat-avatar { width: 46px; height: 46px; font-size: 17px; }
.zq-blog-feat-id { min-width: 0; }
.zq-blog-feat-in b {
    display: block; margin: 0; font-size: 16px; color: #fff;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.zq-blog-feat-handle {
    display: block; margin-top: 2px; font-size: 12.5px; color: rgba(255, 255, 255, .55);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.zq-blog-feat em {
    margin: 9px 0 0; font-style: normal; font-size: 13px; line-height: 1.6;
    color: rgba(255, 255, 255, .78);
}
.zq-blog-feat-stat { margin-top: 10px; font-size: 12px; color: rgba(255, 255, 255, .5); }
.zq-blog-feat-first {
    margin-top: 10px; font-size: 12.5px; color: rgba(255, 255, 255, .66); overflow: hidden;
    text-overflow: ellipsis; white-space: nowrap;
}
.zq-blog-feat-first b { display: inline; margin: 0; font-size: 12.5px; font-weight: 600; color: #fff; }
.zq-blog-feat-go {
    margin-top: auto; padding-top: 12px; font-size: 12.5px; font-weight: 600; color: #fff;
}

/* 页尾「最新博文」下拉加载的状态条 */
.zq-blog-morestate {
    padding: 18px 0 4px; text-align: center;
    font-size: 13px; color: #9ca3af;
}

/* 图文横排变体：缩略图在左、标题摘要在右，一行 3 张（「图文」栏目） */
.zq-blog-list-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.zq-blog-list-row .zq-blog-card {
    flex-direction: row; align-items: center;   /* 居中：图片不随同行的最高卡拉成竖条 */
}
.zq-blog-list-row .zq-blog-cover {
    width: 124px; height: 96px; flex: none; aspect-ratio: auto; align-self: center;
}
.zq-blog-list-row .zq-blog-main { padding: 10px 12px 12px; }
.zq-blog-list-row .zq-blog-main h3 { font-size: 14.5px; }
.zq-blog-list-row .zq-blog-sum { display: none; }   /* 横排空间小，摘要省掉，保住三行以内的整齐 */
@media (max-width: 900px) {
    .zq-blog-list-row { grid-template-columns: 1fr; }
    .zq-blog-list-row .zq-blog-sum { display: block; }   /* 窄屏单列有空间，摘要放回来 */
}

/* 博主卡：头像在左，名字 / @handle / 简介 / 篇数·最近更新在右（紧凑行卡） */
.zq-blog-authors {
    display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}
.zq-blog-author {
    display: flex; align-items: center; gap: 12px; padding: 12px 14px;
    text-decoration: none; color: inherit;
    border: 1px solid #ececf0; border-radius: 14px; background: #fff;
    transition: border-color .15s, box-shadow .15s;
}
.zq-blog-author:hover { border-color: #111827; box-shadow: 0 6px 18px rgba(17, 24, 39, .07); }
.zq-blog-author-av { flex: none; }
.zq-blog-author-av .zq-avatar { width: 42px; height: 42px; font-size: 16px; }
.zq-blog-author-main { min-width: 0; flex: 1 1 auto; }
.zq-blog-author-main b { display: block; font-size: 15px; color: #111827; }
.zq-blog-author-main span { font-size: 12.5px; color: #9ca3af; }
.zq-blog-author-main p {
    margin: 5px 0 0; font-size: 12.5px; color: #6b7280; line-height: 1.5;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.zq-blog-author-main i { display: block; margin-top: 5px; font-style: normal; font-size: 12px; color: #9ca3af; }

/* 博客主页头图 */
.zq-blog-head {
    display: flex; align-items: center; gap: 18px; margin-bottom: 22px; padding: 22px;
    border-radius: 16px; background: #fafafa; background-size: cover; background-position: center;
}
.zq-blog-head h2 { margin: 0; font-size: 21px; font-weight: 800; color: #111827; }
.zq-blog-head p { margin: 6px 0 0; font-size: 13.5px; color: #6b7280; line-height: 1.6; }
.zq-blog-handle { display: inline-block; margin-top: 8px; font-size: 12.5px; color: #9ca3af; text-decoration: none; }
.zq-blog-handle:hover { color: #111827; }

/* 文章卡片列表：门户式网格（宽屏 3 列，窄屏自动降列） */
.zq-blog-list {
    display: grid; gap: 16px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.zq-blog-card {
    display: flex; flex-direction: column; overflow: hidden;
    border: 1px solid #ececf0; border-radius: 14px; background: #fff;
    transition: border-color .15s, box-shadow .15s, transform .15s;
}
.zq-blog-card:hover {
    border-color: #111827; box-shadow: 0 10px 24px rgba(17, 24, 39, .10); transform: translateY(-2px);
}
.zq-blog-cover {
    position: relative; display: block; width: 100%; aspect-ratio: 16 / 9;
    background: #f3f4f6; overflow: hidden;
}
.zq-blog-cover img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s ease; }
.zq-blog-card:hover .zq-blog-cover img { transform: scale(1.04); }
/* 没封面的文章：用标题首字 + 渐变底当占位图，网格才不会参差不齐 */
.zq-blog-nocover {
    display: flex; align-items: center; justify-content: center;
    width: 100%; height: 100%;
    background: linear-gradient(135deg, #9ca3af, #111827);
    color: #fff; font-size: 26px; font-weight: 700;
}
/* 有视频的文章：封面右下角放一个播放三角 */
.zq-blog-play {
    position: absolute; right: 8px; bottom: 8px; width: 28px; height: 28px; border-radius: 50%;
    background: rgba(17, 24, 39, .82);
}
.zq-blog-play::before {
    content: ""; position: absolute; top: 9px; left: 11px;
    border-left: 9px solid #fff; border-top: 5px solid transparent; border-bottom: 5px solid transparent;
}
.zq-blog-main { min-width: 0; padding: 12px 14px 14px; }
.zq-blog-main h3 {
    margin: 0 0 8px; font-size: 15.5px; font-weight: 700; line-height: 1.45;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.zq-blog-main h3 a { color: #111827; text-decoration: none; }
.zq-blog-main h3 a:hover { color: #b91c1c; }
.zq-blog-sum {
    margin: 0 0 10px; font-size: 13px; color: #6b7280; line-height: 1.6;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.zq-blog-meta { margin: 0; font-size: 12px; color: #9ca3af; }
.zq-blog-meta a { color: #6b7280; text-decoration: none; }
.zq-blog-meta a:hover { color: #111827; }

/* ---------- 门户头条：左边一篇大卡，右边两篇小卡 ---------- */
.zq-blog-lead {
    display: grid; gap: 16px;
    grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr);
    align-items: stretch;
}
.zq-blog-lead-main {
    display: flex; flex-direction: column; overflow: hidden;
    border: 1px solid #ececf0; border-radius: 16px; background: #fff;
    text-decoration: none; color: inherit;
    transition: border-color .15s, box-shadow .15s, transform .15s;
}
.zq-blog-lead-main:hover {
    border-color: #111827; box-shadow: 0 10px 26px rgba(17, 24, 39, .10); transform: translateY(-2px);
}
.zq-blog-lead-cover { display: block; width: 100%; aspect-ratio: 16 / 9; background: #f3f4f6; overflow: hidden; }
.zq-blog-lead-cover img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s ease; }
.zq-blog-lead-main:hover .zq-blog-lead-cover img { transform: scale(1.04); }
.zq-blog-lead-body { display: flex; flex-direction: column; flex: 1; padding: 16px 18px 18px; }
.zq-blog-lead-body b {
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
    font-size: 20px; font-weight: 800; line-height: 1.35; color: #111827;
}
.zq-blog-lead-body em {
    margin-top: 8px; font-style: normal; font-size: 13.5px; line-height: 1.65; color: #6b7280;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.zq-blog-lead-body i {
    margin-top: auto; padding-top: 12px; font-style: normal; font-size: 12px; color: #9ca3af;
}
/* 右侧两篇：小方图 + 标题两行 */
.zq-blog-lead-side { display: flex; flex-direction: column; gap: 16px; }
.zq-blog-lead-item {
    display: flex; gap: 12px; flex: 1; min-height: 0; overflow: hidden; padding: 10px;
    border: 1px solid #ececf0; border-radius: 14px; background: #fff;
    text-decoration: none; color: inherit;
    transition: border-color .15s, box-shadow .15s, transform .15s;
}
.zq-blog-lead-item:hover {
    border-color: #111827; box-shadow: 0 8px 20px rgba(17, 24, 39, .08); transform: translateY(-2px);
}
.zq-blog-lead-img {
    flex: none; width: 112px; height: 96px; align-self: center;   /* 固定尺寸：卡片被拉高时图片不再跟着变成竖条 */
    border-radius: 10px; overflow: hidden;
    background: #f3f4f6;
}
.zq-blog-lead-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.zq-blog-lead-t { display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.zq-blog-lead-t b {
    font-size: 14px; font-weight: 700; line-height: 1.45; color: #111827;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.zq-blog-lead-t i { margin-top: 6px; font-style: normal; font-size: 11.5px; color: #9ca3af; }

/* 窄屏：头条左右改上下，卡片网格降列 */
@media (max-width: 1000px) {
    .zq-blog-lead { grid-template-columns: 1fr; }
    .zq-blog-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .zq-blog-featured { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .zq-blog-list, .zq-blog-featured { grid-template-columns: 1fr; }
    .zq-blog-lead-body b { font-size: 17px; }
}

/* 文章详情 */
.zq-blog-post h1 { margin: 0 0 10px; font-size: 26px; font-weight: 800; line-height: 1.35; color: #111827; }
.zq-blog-postmeta {
    display: flex; align-items: center; gap: 8px; margin: 0 0 18px;
    font-size: 13px; color: #9ca3af;
}
.zq-blog-postmeta a { display: inline-flex; align-items: center; gap: 6px; color: #374151; text-decoration: none; }
.zq-blog-postmeta a:hover { color: #111827; }
/* 播放器：16:9，圆角 + 淡边框 */
.zq-blog-video {
    position: relative; margin: 0 0 18px; padding-top: 56.25%;
    border-radius: 14px; overflow: hidden; background: #000;
}
.zq-blog-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.zq-blog-body { font-size: 15px; line-height: 1.85; color: #1f2937; }
.zq-blog-body img { max-width: 100%; height: auto; border-radius: 10px; margin: 10px 0; }
.zq-blog-body iframe { max-width: 100%; border-radius: 10px; }
.zq-blog-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 0; }
.zq-blog-tags span, .zq-blog-tags a {
    padding: 4px 12px; font-size: 12.5px; color: #374151;
    border: 1px solid #e5e7eb; border-radius: 999px; background: #fafafa;
    text-decoration: none; transition: border-color .15s, color .15s, background .15s;
}
.zq-blog-tags a:hover { border-color: #111827; color: #111827; background: #fff; }
.zq-blog-back { margin: 26px 0 0; }
.zq-blog-back a { color: #6b7280; text-decoration: none; font-size: 13.5px; }
.zq-blog-back a:hover { color: #111827; }

/* 会员后台：文章管理 */
.zq-blog-tophead { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.zq-blog-topact { display: flex; gap: 8px; flex-wrap: wrap; }
.zq-blog-btn {
    display: inline-block; padding: 8px 16px; font-size: 13.5px; font-weight: 600;
    color: #fff; background: #111827; border: 1px solid #111827; border-radius: 10px; text-decoration: none;
}
.zq-blog-btn:hover { background: #000; }
.zq-blog-btn-ghost { color: #111827; background: #fff; }
.zq-blog-btn-ghost:hover { background: #f3f4f6; }
.zq-blog-rows { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.zq-blog-row {
    display: flex; align-items: center; gap: 12px; padding: 12px 14px;
    border: 1px solid #ececf0; border-radius: 12px; background: #fff;
}
.zq-blog-rowimg { flex: none; width: 68px; height: 68px; object-fit: cover; border-radius: 8px; }
.zq-blog-rowmain { flex: 1 1 auto; min-width: 0; }
.zq-blog-rowmain > a { font-size: 15px; font-weight: 600; color: #111827; text-decoration: none; }
.zq-blog-rowmain > a:hover { text-decoration: underline; }
.zq-blog-rowact { flex: none; display: flex; gap: 12px; font-size: 13px; }
.zq-blog-rowact a { color: #6b7280; text-decoration: none; }
.zq-blog-rowact a:hover { color: #111827; }
.zq-blog-state.is-on { color: #111827; font-weight: 600; }

/* 写文章表单 */
.zq-blog-form { max-width: 760px; }
.zq-blog-field { margin-bottom: 16px; }
.zq-blog-field label { display: block; margin-bottom: 6px; font-size: 13px; font-weight: 600; color: #4b5563; }
.zq-blog-field input[type="text"],
.zq-blog-field textarea {
    width: 100%; box-sizing: border-box; padding: 11px 13px; font-size: 14.5px; color: #111827;
    border: 1px solid #e5e7eb; border-radius: 12px; background: #fff;
}
.zq-blog-field input[type="text"]:focus,
.zq-blog-field textarea:focus { outline: none; border-color: #111827; box-shadow: 0 0 0 3px rgba(17, 24, 39, .08); }
.zq-blog-field input[type="file"] { margin: 4px 0 8px; font-size: 13px; }
.zq-blog-tip { margin: 6px 0 0; font-size: 12.5px; color: #9ca3af; line-height: 1.6; }
.zq-blog-check { display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; color: #4b5563; }
.zq-blog-submit { display: flex; align-items: center; gap: 16px; margin-top: 22px; }
.zq-blog-submit button {
    padding: 11px 26px; font-size: 15px; font-weight: 600; color: #fff;
    background: #111827; border: 0; border-radius: 12px; cursor: pointer;
}
.zq-blog-submit button:hover { background: #000; }
.zq-blog-submit a { font-size: 13.5px; color: #6b7280; text-decoration: none; }
.zq-blog-preview { margin: 0 0 8px; }
.zq-blog-preview img { max-width: 100%; max-height: 180px; border-radius: 10px; }

@media (max-width: 640px) {
    .zq-blog-card { flex-direction: column; }
    .zq-blog-cover { width: 100%; height: 168px; }
    .zq-blog-head { flex-direction: column; align-items: flex-start; }
    .zq-blog-post h1 { font-size: 21px; }
    .zq-blog-tophead { flex-direction: column; align-items: flex-start; }
    /* 博客广场首页：窄屏 Hero 纵排、推荐卡单列 */
    .zq-blog-hero { flex-direction: column; align-items: flex-start; }
    .zq-blog-stats { gap: 24px; }
    .zq-blog-featured { grid-template-columns: minmax(0, 1fr); }
}

/* ---------------- 问答频道 /qa/ ---------------- */
.zq-qa-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.zq-qa-head-main { min-width: 0; }
.zq-qa-title { margin: 0 0 4px; font-size: 22px; font-weight: 700; line-height: 1.3; }
.zq-qa-desc { margin: 0; font-size: 13.5px; color: #6b7280; }
.zq-qa-ask-btn {
    flex: none; padding: 9px 18px; border-radius: 999px; background: #111827; color: #fff;
    font-size: 13.5px; font-weight: 600; text-decoration: none; transition: opacity .15s;
}
.zq-qa-ask-btn:hover { opacity: .85; color: #fff; }
.zq-qa-tabs {
    display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
    margin: 0 0 16px; padding-bottom: 12px; border-bottom: 1px solid rgba(127, 127, 127, .12);
}
.zq-qa-tab {
    padding: 7px 14px; border: 1px solid rgba(127, 127, 127, .22); border-radius: 999px;
    font-size: 13.5px; color: #4b5563; text-decoration: none; transition: border-color .15s, color .15s, background .15s;
}
.zq-qa-tab:hover { border-color: #111827; color: #111827; }
.zq-qa-tab.on { background: #111827; border-color: #111827; color: #fff; }
.zq-qa-search { display: flex; gap: 6px; }
.zq-qa-search input {
    width: 200px; padding: 7px 12px; border: 1px solid rgba(127, 127, 127, .28);
    border-radius: 8px; font-size: 13.5px; background: transparent; color: inherit;
}
.zq-qa-search button {
    padding: 7px 14px; border: 1px solid rgba(127, 127, 127, .22); border-radius: 8px;
    background: transparent; font-size: 13.5px; color: #4b5563; cursor: pointer;
}
.zq-qa-search button:hover { border-color: #111827; color: #111827; }
.zq-qa-tagline { margin: 0 0 12px; font-size: 13px; color: #6b7280; }
.zq-qa-tagline a { color: #111827; text-decoration: none; }
.zq-qa-item.has-img { display: flex; gap: 12px; }
.zq-qa-thumb { flex: none; width: 132px; }
.zq-qa-thumb img { width: 132px; height: 88px; object-fit: cover; border-radius: 8px; }
.zq-qa-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 0; }
.zq-qa-tag {
    display: inline-block; padding: 2px 9px; border-radius: 999px; background: #f3f4f6;
    font-size: 12px; color: #4b5563; text-decoration: none;
}
.zq-qa-tag:hover { background: #e5e7eb; color: #111827; }
.zq-qa-count { font-weight: 600; color: #111827; }
.zq-qa-empty { margin: 0; padding: 26px 0; text-align: center; font-size: 13.5px; color: #9aa1ab; }
/* 详情页 */
.zq-qa-detail { margin-bottom: 22px; }
.zq-qa-q-title { margin: 0 0 8px; font-size: 23px; font-weight: 700; line-height: 1.35; }
.zq-qa-meta { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; font-size: 13px; color: #6b7280; }
.zq-qa-meta b { color: #374151; font-weight: 600; }
.zq-qa-body { font-size: 15.5px; line-height: 1.8; color: #374151; }
.zq-qa-video { margin: 12px 0; }
.zq-qa-sub { margin: 22px 0 12px; font-size: 16.5px; font-weight: 700; }
.zq-qa-answer { padding: 14px 0; border-top: 1px solid rgba(127, 127, 127, .12); }
.zq-qa-answer-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; font-size: 13px; color: #6b7280; }
.zq-qa-answer-head b { color: #374151; font-weight: 600; }
.zq-qa-badge {
    padding: 1px 7px; border-radius: 4px; background: #111827; color: #fff;
    font-size: 11.5px; font-weight: 600;
}
.zq-qa-answer-body { font-size: 15px; line-height: 1.78; color: #374151; }
.zq-qa-vote-form { margin-top: 10px; }
.zq-qa-vote {
    display: inline-flex; align-items: center; gap: 5px; padding: 5px 13px;
    border: 1px solid rgba(127, 127, 127, .25); border-radius: 999px;
    background: transparent; font-size: 13px; color: #4b5563; cursor: pointer;
    transition: border-color .15s, color .15s, background .15s;
}
.zq-qa-vote:hover { border-color: #111827; color: #111827; }
.zq-qa-vote.is-on { background: #111827; border-color: #111827; color: #fff; }
/* 提问 / 回答表单 */
.zq-qa-box {
    margin: 18px 0; padding: 16px 18px 18px;
    border: 1px solid rgba(127, 127, 127, .18); border-radius: 12px; background: rgba(127, 127, 127, .03);
}
.zq-qa-field { margin-bottom: 12px; }
.zq-qa-form input[type="text"] {
    width: 100%; padding: 10px 12px; border: 1px solid rgba(127, 127, 127, .28);
    border-radius: 8px; font-size: 14.5px; background: #fff; color: #111827;
}
.zq-qa-form input[type="text"]:focus { outline: none; border-color: #111827; }
.zq-qa-form textarea { width: 100%; border-radius: 8px; }
.zq-qa-tip { margin: 6px 0 0; font-size: 12.5px; color: #9aa1ab; }
.zq-qa-submit { display: flex; align-items: center; gap: 12px; }
.zq-qa-submit button {
    padding: 9px 22px; border: 0; border-radius: 8px; background: #111827; color: #fff;
    font-size: 14px; font-weight: 600; cursor: pointer;
}
.zq-qa-submit button:hover { opacity: .88; }
.zq-qa-submit a { font-size: 13px; color: #6b7280; text-decoration: none; }

/* ---------------- 搜索范围切换（本站 / 全网） ---------------- */
.search-scope { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; }
.search-scope-btn {
    padding: 6px 14px; border: 1px solid rgba(127, 127, 127, .22); border-radius: 999px;
    font-size: 13px; color: #4b5563; text-decoration: none; transition: border-color .15s, color .15s, background .15s;
}
.search-scope-btn:hover { border-color: #111827; color: #111827; }
.search-scope-btn.on { background: #111827; border-color: #111827; color: #fff; }
.search-scope-tip { font-size: 12.5px; color: #9aa1ab; }
.search-type-question { background: #111827; color: #fff; }
.search-type-classified { background: #eef2ff; color: #4338ca; }
.search-type-site { background: #e5e7eb; color: #4b5563; }

@media (max-width: 640px) {
    .zq-qa-head { flex-direction: column; align-items: stretch; }
    .zq-qa-search { width: 100%; }
    .zq-qa-search input { width: 100%; }
    .zq-qa-item.has-img { display: block; }
    .zq-qa-thumb, .zq-qa-thumb img { width: 100%; height: 180px; }
    .zq-qa-q-title { font-size: 20px; }
    .search-scope { flex-wrap: wrap; }
}

/* 问答：话题标签云 */
.zq-qa-cloud { margin: 26px 0 10px; padding-top: 16px; border-top: 1px solid rgba(127, 127, 127, .12); }
.zq-qa-cloud-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.zq-qa-cloud-head h3 { margin: 0; font-size: 16px; font-weight: 700; }
.zq-qa-cloud-more { font-size: 13px; color: #111827; text-decoration: none; }
.zq-qa-cloud-more:hover { text-decoration: underline; }
.zq-qa-cloud-body { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.zq-qa-cloud-tag {
    display: inline-flex; align-items: baseline; gap: 5px;
    padding: 4px 11px; border-radius: 999px; background: #f3f4f6;
    color: #374151; text-decoration: none; line-height: 1.5;
    transition: background .15s, color .15s;
}
.zq-qa-cloud-tag:hover { background: #111827; color: #fff; }
.zq-qa-cloud-tag span { font-size: 11.5px; color: #9aa1ab; }
.zq-qa-cloud-tag:hover span { color: rgba(255, 255, 255, .72); }
.zq-qa-cloud-lv1 { font-size: 12.5px; }
.zq-qa-cloud-lv2 { font-size: 14px; }
.zq-qa-cloud-lv3 { font-size: 15.5px; font-weight: 600; }
.zq-qa-cloud-lv4 { font-size: 17px; font-weight: 700; }
.zq-qa-cloud-lv5 { font-size: 19px; font-weight: 700; color: #111827; }
.zq-qa-cloud-body.is-page { gap: 10px 12px; }

/* ---------------- 搜索页：谷歌式结果页 ---------------- */
.zq-gs-head { margin: 4px 0 18px; }
/* 「搜索门户」模板：Logo 在左、搜索条紧挨右边一行；其它模板仍是上下两行。
   窄屏换行堆叠，避免挤在一起 */
.zq-gs-head.zq-gs-head-row {
    display: flex; align-items: center; gap: 18px; flex-wrap: wrap;
}
.zq-gs-head.zq-gs-head-row .zq-gs-logo { margin-bottom: 0; flex: 0 0 auto; }
.zq-gs-head.zq-gs-head-row .zq-gs-form { flex: 1 1 320px; max-width: none; }
.zq-gs-head.zq-gs-head-row .zq-gs-tools { flex: 1 1 100%; }
.zq-gs-logo { display: flex; align-items: baseline; gap: 8px; margin-bottom: 12px; }
.zq-gs-logo a { font-size: 19px; font-weight: 700; color: #111827; text-decoration: none; }
.zq-gs-logo span { font-size: 12.5px; color: #9aa1ab; }
.zq-gs-form {
    display: flex; align-items: center; gap: 4px; max-width: 620px;
    height: 46px; padding: 0 6px 0 16px;
    border: 1px solid rgba(127, 127, 127, .3); border-radius: 24px; background: #fff;
    transition: box-shadow .15s, border-color .15s;
}
.zq-gs-form:focus-within, .zq-gs-form:hover {
    border-color: rgba(127, 127, 127, .45);
    box-shadow: 0 1px 8px rgba(60, 64, 67, .16);
}
.zq-gs-input {
    flex: 1; min-width: 0; border: 0; background: transparent; outline: none;
    font-size: 15.5px; color: #111827;
}
.zq-gs-input::placeholder { color: #9aa1ab; }
.zq-gs-clear {
    display: inline-flex; align-items: center; justify-content: center;
    width: 28px; height: 28px; border-radius: 50%; color: #6b7280; text-decoration: none;
}
.zq-gs-clear:hover { background: #f3f4f6; color: #111827; }
.zq-gs-btn {
    display: inline-flex; align-items: center; justify-content: center;
    width: 38px; height: 38px; border: 0; border-radius: 50%;
    background: transparent; color: #4b5563; cursor: pointer;
}
.zq-gs-btn:hover { background: #f3f4f6; color: #111827; }
.zq-gs-tools {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    flex-wrap: wrap; margin-top: 12px;
}
.zq-gs-tools .search-scope { margin: 0; }
.zq-side-toggle {
    padding: 6px 14px; border: 1px solid rgba(127, 127, 127, .22); border-radius: 999px;
    background: transparent; font-size: 13px; color: #4b5563; cursor: pointer;
    transition: border-color .15s, color .15s, background .15s;
}
.zq-side-toggle:hover { border-color: #111827; color: #111827; }
.zq-side-toggle[aria-pressed="true"] { background: #111827; border-color: #111827; color: #fff; }
/* 侧栏隐藏：正文自动占满整行 */
body.zq-side-off .sidebar { display: none; }
.zq-gs-stat { margin: 0 0 12px; font-size: 13px; color: #6b7280; }
/* 底部热门搜索关键词 */
.zq-gs-words { margin: 26px 0 6px; padding-top: 16px; border-top: 1px solid rgba(127, 127, 127, .12); }
.zq-gs-words h3 { margin: 0 0 12px; font-size: 15px; font-weight: 700; }
.zq-gs-word-list { display: flex; flex-wrap: wrap; gap: 8px 10px; }
.zq-gs-word {
    display: inline-block; padding: 6px 14px; border: 1px solid rgba(127, 127, 127, .18);
    border-radius: 999px; font-size: 13.5px; color: #374151; text-decoration: none;
    transition: border-color .15s, color .15s, background .15s;
}
.zq-gs-word:hover { background: #111827; border-color: #111827; color: #fff; }

@media (max-width: 640px) {
    .zq-gs-form { height: 44px; padding-left: 12px; }
    .zq-gs-head { margin-bottom: 14px; }
    /* 窄屏：搜索门户结果页头的搜索条独占一行 */
    .zq-gs-head.zq-gs-head-row .zq-gs-form { flex: 1 1 100%; }
    .zq-side-toggle { display: none; }
}

/* 每日热点（百度热搜 → 站内搜索）：侧栏榜 + /hot 页榜单共用序号块 */
.zq-hs-no {
    flex: none; width: 18px; height: 18px; line-height: 18px; text-align: center;
    font-size: 12px; font-weight: 700; font-family: Consolas, "Courier New", monospace;
    color: inherit; opacity: .65; background: rgba(127, 127, 127, .14); border-radius: 3px;
}
.zq-hs-item.is-top .zq-hs-no, .zq-hsr-item.is-top .zq-hs-no { background: #e60012; color: #fff; }
.zq-hs-hot { flex: none; font-size: 12px; color: #9ca3af; }

/* 侧栏「每日热点」 */
.zq-hotsearch .zq-hs-list { list-style: none; margin: 8px 0 0; padding: 0; }
.zq-hotsearch .zq-hs-item {
    display: flex; align-items: center; gap: 8px;
    padding: 6px 0; border-bottom: 1px solid var(--zq-card-line, #f0f0f3);
}
.zq-hotsearch .zq-hs-item:last-child { border-bottom: 0; }
.zq-hs-word {
    flex: 1; min-width: 0; font-size: 14px; line-height: 1.6; color: #374151;
    text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.zq-hs-word:hover { color: #e60012; }

/* /hot 页里的热搜榜：带摘要 */
.zq-hot-rank { margin-top: 28px; }
.zq-hot-rank-title {
    margin: 0 0 12px; padding-left: 8px; font-size: 17px; font-weight: 700; color: var(--zq-card-fg, #111827);
    border-left: 3px solid #e60012;
}
.zq-hsr-list { list-style: none; margin: 0; padding: 0; }
.zq-hsr-item {
    display: flex; align-items: flex-start; gap: 12px;
    padding: 10px 2px; border-bottom: 1px solid var(--zq-card-line, #f0f0f3);
}
.zq-hsr-item:last-child { border-bottom: 0; }
.zq-hsr-item .zq-hs-no { margin-top: 2px; }
.zq-hsr-main { flex: 1; min-width: 0; }
.zq-hsr-word { font-size: 15px; line-height: 1.7; color: var(--zq-card-fg, #111827); text-decoration: none; }
.zq-hsr-word:hover { color: #e60012; }
.zq-hsr-desc {
    margin: 3px 0 0; font-size: 13px; line-height: 1.75; color: var(--zq-card-fg2, #6b7280);
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}

/* 热点榜：按天翻页 + 当天内分页 */
.zq-hot-nav {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    margin: 0 0 8px; padding: 8px 10px;
    background: var(--zq-card-soft, #fafafa); border: 1px solid var(--zq-card-line, #f0f0f3); border-radius: 6px;
}
.zq-hot-nav-btn {
    font-size: 13px; color: var(--zq-card-fg, #374151); text-decoration: none; padding: 3px 8px; border-radius: 4px;
}
.zq-hot-nav-btn:hover { background: rgba(127, 127, 127, .14); color: #e60012; }
.zq-hot-nav-btn.disabled { color: var(--zq-card-fg2, #9ca3af); cursor: default; opacity: .7; }
.zq-hot-nav-cur { font-size: 13px; font-weight: 700; color: var(--zq-card-fg, #111827); }
.zq-hot-days { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; }
/* 注意：类名不能叫 .zq-hot-day —— 那是 /hot 页「按日期分组」的容器（见上面 3451 行），
   重名会给整块列表套上圆角边框，渲染成一个巨型椭圆 */
.zq-rank-day {
    font-size: 12.5px; color: var(--zq-card-fg2, #6b7280); text-decoration: none;
    padding: 2px 8px; border: 1px solid var(--zq-card-line, #ececf0); border-radius: 999px;
}
.zq-rank-day:hover { border-color: #e60012; color: #e60012; }
.zq-rank-day.on { background: #e60012; border-color: #e60012; color: #fff; }
.zq-hot-pager { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.zq-hot-page-no {
    min-width: 30px; text-align: center; font-size: 13px; color: var(--zq-card-fg, #374151); text-decoration: none;
    padding: 4px 8px; border: 1px solid var(--zq-card-line, #ececf0); border-radius: 4px;
}
.zq-hot-page-no:hover { border-color: #e60012; color: #e60012; }
.zq-hot-page-no.on { background: #111827; border-color: #111827; color: #fff; }



/* ---------- 网址导航 /nav/（分组展示 + 搜索 + 推荐 + 游客提交） ---------- */
.zq-nav-page { display: block; }
/* 搜索框 + 提交网址按钮 */
.zq-nav-search { display: flex; gap: 10px; align-items: center; margin: 0 0 16px; flex-wrap: wrap; }
.zq-nav-search-form { display: flex; gap: 8px; flex: 1 1 320px; min-width: 220px; }
.zq-nav-search-form input {
    flex: 1 1 auto; min-width: 0; height: 40px; padding: 0 12px;
    border: 1px solid #d7dbe0; border-radius: 8px;
    font-size: 14px; font-family: inherit; background: #fff; color: #333;
}
.zq-nav-search-form input:focus { border-color: #C30D23; outline: none; }
.zq-nav-search-form button {
    height: 40px; padding: 0 18px; border: 0; border-radius: 8px; cursor: pointer;
    background: #C30D23; color: #fff; font-size: 14px;
}
.zq-nav-search-form button:hover { background: #a90b1f; }
.zq-nav-submit-btn {
    height: 40px; line-height: 40px; padding: 0 16px; border-radius: 8px;
    background: #fff; border: 1px solid #d7dbe0; color: #374151;
    font-size: 14px; text-decoration: none; white-space: nowrap;
}
.zq-nav-submit-btn:hover { border-color: #C30D23; color: #C30D23; }
/* 分组快捷跳转 */
.zq-nav-jump { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; }
.zq-nav-jump-a {
    padding: 6px 12px; border-radius: 999px; background: #f5f6f8;
    color: #4b5563; font-size: 13px; text-decoration: none;
}
.zq-nav-jump-a:hover { background: #fff1f2; color: #C30D23; }
/* 分区 */
.zq-nav-sec { margin: 0 0 24px; }
.zq-nav-sec-t {
    display: flex; align-items: center; gap: 8px; margin: 0 0 12px;
    font-size: 17px; font-weight: 600; color: #1f2329;
}
.zq-nav-sec-t::before { content: ""; width: 3px; height: 15px; border-radius: 2px; background: #C30D23; }
.zq-nav-sec-n { font-size: 13px; font-weight: 400; color: #9aa1ab; }
.zq-nav-sec-more { margin-left: auto; font-size: 13px; font-weight: 400; color: #6b7280; text-decoration: none; }
.zq-nav-sec-more:hover { color: #C30D23; }
/* 网址卡片网格：电脑端 4 列 */
.zq-nav-grid {
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px;
    list-style: none; margin: 0; padding: 0;
}
.zq-nav-card { margin: 0; }
.zq-nav-card-a {
    display: flex; align-items: center; gap: 10px; height: 100%;
    padding: 10px 12px; border-radius: 10px; background: #f7f8fa;
    color: #374151; text-decoration: none;
    transition: background .16s ease, transform .12s ease, box-shadow .16s ease;
}
.zq-nav-card-a:hover {
    background: #fff; transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0, 0, 0, .08);
}
.zq-nav-card-ic {
    flex: 0 0 34px; width: 34px; height: 34px; border-radius: 9px;
    display: flex; align-items: center; justify-content: center;
    background: #fff; color: #C30D23; font-size: 16px; font-weight: 600;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .06);
}
.zq-nav-card-main { flex: 1 1 auto; min-width: 0; }
.zq-nav-card-t {
    display: block; font-size: 14px; font-weight: 600; color: #1f2329;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.zq-nav-card-d {
    display: block; margin-top: 2px; font-size: 12.5px; color: #8b93a0;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.zq-nav-card-rec { flex: 0 0 auto; color: #f59e0b; font-size: 14px; }
/* 推荐区 */
.zq-nav-grid-rec .zq-nav-card-a { background: #fff8f8; }
/* 空态 / 提示条 */
.zq-nav-empty { padding: 40px 0; text-align: center; color: #9aa1ab; font-size: 14px; }
.zq-nav-tip { margin: 0 0 14px; padding: 11px 15px; border-radius: 8px; font-size: 14px; line-height: 1.7; background: #fdecee; color: #C30D23; }
.zq-nav-tip.ok { background: #ecfdf5; color: #059669; }
/* 灰色说明条：带圆形 i 图标 + 细边框，跟表单按钮拉开一档距离 */
.zq-nav-tip.tip {
    display: flex; align-items: flex-start; gap: 9px;
    padding: 12px 16px; border: 1px solid #e6e9ef; background: #f8f9fb; color: #5b6472;
}
.zq-nav-tip.tip::before {
    content: "i"; flex: 0 0 18px; width: 18px; height: 18px; margin-top: 2px;
    line-height: 18px; text-align: center; border-radius: 50%;
    background: #dfe3ea; color: #5b6472; font-size: 12px; font-weight: 700; font-style: normal;
}
/* 提交网址表单：底部留出与说明条的间距 */
.zq-nav-form { display: flex; flex-direction: column; gap: 12px; max-width: 560px; margin-bottom: 18px; }
.zq-nav-form label { display: flex; flex-direction: column; gap: 5px; font-size: 14px; color: #374151; }
.zq-nav-form input, .zq-nav-form select, .zq-nav-form textarea {
    padding: 9px 12px; border: 1px solid #d7dbe0; border-radius: 8px;
    font-size: 14px; font-family: inherit; background: #fff; color: #333;
}
.zq-nav-form input:focus, .zq-nav-form textarea:focus { border-color: #C30D23; outline: none; }
.zq-nav-form button {
    align-self: flex-start; padding: 10px 22px; border: 0; border-radius: 8px;
    background: #C30D23; color: #fff; font-size: 14px; cursor: pointer;
}
.zq-nav-form button:hover { background: #a90b1f; }
/* 分页 */
.zq-nav-pager { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 6px; }
.zq-nav-pg {
    min-width: 34px; height: 34px; line-height: 34px; text-align: center; padding: 0 8px;
    border-radius: 8px; background: #f5f6f8; color: #4b5563; font-size: 13.5px; text-decoration: none;
}
.zq-nav-pg:hover { background: #eceef1; }
.zq-nav-pg.on { background: #C30D23; color: #fff; }

/* 侧栏「网址导航」模块 */
.zq-nav-side-list { list-style: none; margin: 0; padding: 0; }
.zq-nav-side-list li { border-bottom: 1px dashed #e8e8e8; }
.zq-nav-side-list li:last-child { border-bottom: 0; }
.zq-nav-side-i {
    display: flex; align-items: center; gap: 8px; padding: 7px 0;
    color: #374151; text-decoration: none; font-size: 13.5px;
}
.zq-nav-side-i:hover { color: #000; }
.zq-nav-side-dot { flex: 0 0 6px; width: 6px; height: 6px; border-radius: 50%; background: #C30D23; opacity: .7; }
.zq-nav-side-t {
    flex: 1 1 auto; min-width: 0;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.zq-nav-side-more { display: block; margin-top: 8px; font-size: 13px; color: #6b7280; text-decoration: none; }
.zq-nav-side-more:hover { color: #C30D23; }

/* 手机端：卡片 2 列，搜索框与「提交网址」挤在同一行 */
@media (max-width: 700px) {
    .zq-nav-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .zq-nav-search { flex-wrap: nowrap; gap: 8px; }
    .zq-nav-search-form { flex: 1 1 auto; gap: 6px; }
    .zq-nav-search-form input { height: 36px; padding: 0 10px; font-size: 13px; }
    .zq-nav-search-form button { height: 36px; padding: 0 12px; font-size: 13px; }
    .zq-nav-submit-btn { flex: 0 0 auto; height: 36px; line-height: 36px; padding: 0 10px; font-size: 13px; }
    .zq-nav-card-ic { flex: 0 0 30px; width: 30px; height: 30px; font-size: 14px; }
    .zq-nav-card-t { font-size: 13.5px; }
    .zq-nav-card-d { font-size: 12px; }
}


/* ================= 提交资讯页（/news/new）表单 ================= */
.zq-nf-head { margin: 0 0 18px; }
.zq-nf-head h2 { margin: 0 0 6px; font-size: 22px; line-height: 1.3; }
.zq-nf-sub { margin: 0; font-size: 13.5px; line-height: 1.6; opacity: .62; }

.zq-nf-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 16px;
}
.zq-nf-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.zq-nf-full { grid-column: 1 / -1; }
.zq-nf-label {
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: .2px;
    opacity: .85;
}
.zq-nf-label i { color: #c0392b; font-style: normal; margin-left: 2px; }

.zq-nf-field input,
.zq-nf-field select,
.zq-nf-field textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    border: 1px solid rgba(127, 127, 127, .32);
    border-radius: 8px;
    background: rgba(127, 127, 127, .045);
    font-size: 14px;
    line-height: 1.55;
    color: inherit;
    transition: border-color .15s, box-shadow .15s, background .15s;
}
.zq-nf-field textarea { resize: vertical; }
.zq-nf-field input:focus,
.zq-nf-field select:focus,
.zq-nf-field textarea:focus {
    outline: none;
    border-color: #c0392b;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(192, 57, 43, .12);
}
.zq-nf-hint { font-size: 12px; line-height: 1.5; opacity: .55; }

.zq-nf-note {
    margin-top: 18px;
    padding: 11px 14px;
    border-left: 3px solid #c0392b;
    border-radius: 0 8px 8px 0;
    background: rgba(192, 57, 43, .06);
    font-size: 13px;
    line-height: 1.65;
    opacity: .9;
}

.zq-nf-actions { display: flex; align-items: center; gap: 16px; margin-top: 18px; }
.zq-nf-btn {
    padding: 11px 30px;
    border: 0;
    border-radius: 8px;
    background: #c0392b;
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s, transform .1s;
}
.zq-nf-btn:hover { background: #a3301f; }
.zq-nf-btn:active { transform: translateY(1px); }
.zq-nf-back { font-size: 13.5px; opacity: .68; }
.zq-nf-back:hover { opacity: 1; }

/* 手机端：单列，按钮撑满 */
@media (max-width: 700px) {
    .zq-nf-grid { grid-template-columns: 1fr; gap: 12px; }
    .zq-nf-head h2 { font-size: 19px; }
    .zq-nf-actions { flex-direction: column; align-items: stretch; gap: 10px; }
    .zq-nf-btn { width: 100%; padding: 12px 0; }
    .zq-nf-back { text-align: center; }
}

/* ---------- 足球数据 /football/：联赛积分榜 + 按日期比分 ----------
   配色走卡片变量，深色模板自动翻成深底浅字 */
.zq-fb { margin: 0 0 24px; }
/* 联赛页签：一行排完，超宽时横向滚动（不再折成第二行） */
.zq-fb-tabs {
    display: flex; flex-wrap: nowrap; gap: 8px; margin: 0 0 14px;
    overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none;
    padding-bottom: 2px;
}
.zq-fb-tabs::-webkit-scrollbar { display: none; }
.zq-fb-tab {
    flex: none;
    padding: 7px 16px; border-radius: 999px; font-size: 14px; text-decoration: none;
    color: var(--zq-card-fg, #374151);
    background: var(--zq-card, #fff);
    border: 1px solid var(--zq-card-line, rgba(127, 127, 127, .22));
    transition: color .15s, border-color .15s, background .15s;
}
.zq-fb-tab:hover { color: #e60012; border-color: #e60012; }
.zq-fb-tab.on { color: #fff; background: #e60012; border-color: #e60012; }

/* 板块切换（足球 / 篮球）：挂在「积分榜 / 比分 / 赛程」这一行的右端，一排小分段控件 */
.zq-fb-sports {
    display: flex; gap: 0; margin: 0 0 7px auto; align-self: flex-end;
}
.zq-fb-sp {
    padding: 5px 14px; font-size: 12.5px; line-height: 1.5; text-decoration: none;
    color: #6b7280; background: var(--zq-card, #fff);
    border: 1px solid var(--zq-card-line, rgba(127, 127, 127, .25));
    transition: color .15s, background .15s, border-color .15s;
}
.zq-fb-sp:first-child { border-radius: 999px 0 0 999px; }
.zq-fb-sp:last-child { border-radius: 0 999px 999px 0; border-left: 0; }
.zq-fb-sp:hover { color: #111827; }
.zq-fb-sp.on {
    color: #fff; background: #111827; border-color: #111827; font-weight: 600;
}
.zq-fb-sp.on + .zq-fb-sp { border-left: 0; }
.zq-fb-card {
    background: var(--zq-card, #fff);
    border: 1px solid var(--zq-card-line, rgba(127, 127, 127, .16));
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(17, 24, 39, .05);
    margin: 0 0 16px; overflow: hidden;
}
.zq-fb-hd {
    display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap;
    padding: 14px 18px; border-bottom: 1px solid var(--zq-card-line, rgba(127, 127, 127, .14));
}
.zq-fb-hd h2 { margin: 0; font-size: 17px; color: var(--zq-card-fg, #1f2733); }
.zq-fb-sub { font-size: 13px; color: var(--zq-card-fg2, #6b7280); }
.zq-fb-upd { padding: 8px 18px; font-size: 12.5px; color: var(--zq-card-fg2, #9ca3af); }
/* 窄屏横向滚动，表格不挤变形 */
.zq-fb-scroll { overflow-x: auto; }
.zq-fb-table { width: 100%; border-collapse: collapse; font-size: 14px; min-width: 560px; }
.zq-fb-table th, .zq-fb-table td { padding: 9px 10px; text-align: center; white-space: nowrap; }
.zq-fb-table th {
    font-size: 12.5px; font-weight: 600; color: var(--zq-card-fg2, #6b7280);
    background: rgba(127, 127, 127, .06);
}
.zq-fb-table td { color: var(--zq-card-fg, #374151); font-variant-numeric: tabular-nums; }
.zq-fb-table tbody tr + tr { border-top: 1px solid var(--zq-card-line, rgba(127, 127, 127, .1)); }
.zq-fb-table tbody tr:hover { background: rgba(127, 127, 127, .05); }
.zq-fb-table .tl { text-align: left; }
.zq-fb-table .tr { text-align: right; }
.zq-fb-table .num { width: 44px; }
.zq-fb-table .pos { font-weight: 700; }
/* 前 4 名：欧冠区标色（左边框） */
.zq-fb-table tr.ucl .pos { color: #2563eb; }
.zq-fb-table .team { display: flex; align-items: center; gap: 8px; font-weight: 500; }
.zq-fb-table .team img { width: 20px; height: 20px; flex: none; }
.zq-fb-table .pts b { font-size: 15px; }
/* ---- 积分榜：总榜 / 主场 / 客场 页签（分段控件） ---- */
.zq-fb-scopes { display: flex; flex-wrap: wrap; gap: 6px; margin: -2px 0 14px; }
.zq-fb-scope {
    padding: 6px 16px; border-radius: 999px; text-decoration: none;
    font-size: 13.5px; font-weight: 500;
    color: var(--zq-card-fg2, #6b7280);
    background: rgba(127, 127, 127, .08);
    border: 1px solid transparent;
    transition: color .15s, background .15s;
}
.zq-fb-scope:hover { color: #e60012; }
.zq-fb-scope.on { color: #fff; background: #e60012; }
/* ---- 积分榜表格 ---- */
.zq-fb-stand { min-width: 680px; }
.zq-fb-stand thead th { font-size: 12px; letter-spacing: .2px; }
.zq-fb-stand tbody td { padding: 11px 10px; }
.zq-fb-stand tbody tr { transition: background .12s; }
/* 名次左边那根分区色条：欧冠蓝 / 欧联橙 / 降级红 / 英冠升级绿 / 中超亚冠紫 */
.zq-fb-stand tbody td.pos { position: relative; width: 46px; font-weight: 700; }
.zq-fb-stand tbody tr.ucl td.pos::before,
.zq-fb-stand tbody tr.uel td.pos::before,
.zq-fb-stand tbody tr.rel td.pos::before,
.zq-fb-stand tbody tr.pro td.pos::before,
.zq-fb-stand tbody tr.po td.pos::before,
.zq-fb-stand tbody tr.acl td.pos::before {
    content: ''; position: absolute; left: 0; top: 4px; bottom: 4px;
    width: 3px; border-radius: 0 3px 3px 0;
}
.zq-fb-stand tbody tr.ucl td.pos::before { background: #2563eb; }
.zq-fb-stand tbody tr.uel td.pos::before { background: #f59e0b; }
.zq-fb-stand tbody tr.rel td.pos::before { background: #e60012; }
.zq-fb-stand tbody tr.pro td.pos::before { background: #10a34a; }
.zq-fb-stand tbody tr.po td.pos::before { background: #f59e0b; }
.zq-fb-stand tbody tr.acl td.pos::before { background: #7c3aed; }
.zq-fb-stand .wh { color: var(--zq-card-fg2, #6b7280); }
.zq-fb-stand .gh { color: var(--zq-card-fg2, #9ca3af); }
/* 净胜球：正绿负红，一眼看出攻守 */
.zq-fb-stand .gd.up { color: #0f7c3c; font-weight: 600; }
.zq-fb-stand .gd.down { color: #e60012; font-weight: 600; }
.zq-fb-stand .pts { font-size: 15.5px; font-weight: 700; color: var(--zq-card-fg, #1f2733); }
.zq-fb-stand .form-th { width: 118px; }
.zq-fb-stand .zq-fb-tn { overflow: hidden; text-overflow: ellipsis; }
/* 榜单里的队名现在是指向站内搜索的链接：保持正文样式，别被模板块级链接规则染色 / 加下划线 */
.zq-fb-table a.zq-fb-tn,
.zq-fb-table a.zq-fb-tn:visited { color: inherit; text-decoration: none; }
.zq-fb-table a.zq-fb-tn:hover { color: #e60012; text-decoration: underline; }
/* 近 5 场：W 绿 / D 灰 / L 红 小方块，最新一场在最右 */
.zq-fb-fm {
    display: inline-flex; align-items: center; justify-content: center;
    width: 18px; height: 18px; margin-left: 3px; border-radius: 4px;
    font-size: 11px; font-style: normal; font-weight: 700; line-height: 1;
    color: #fff; vertical-align: middle;
}
.zq-fb-fm.w { background: #10a34a; }
.zq-fb-fm.d { background: #9ca3af; }
.zq-fb-fm.l { background: #e60012; }
.zq-fb-fm-none { color: #c7cbd1; }
/* 分区图例 */
.zq-fb-legend {
    display: flex; flex-wrap: wrap; gap: 16px;
    padding: 10px 18px 14px; font-size: 12.5px;
    color: var(--zq-card-fg2, #6b7280);
}
.zq-fb-legend span { display: inline-flex; align-items: center; gap: 6px; }
.zq-fb-legend i { display: inline-block; width: 8px; height: 8px; border-radius: 2px; }
.zq-fb-legend i.ucl { background: #2563eb; }
.zq-fb-legend i.uel { background: #f59e0b; }
.zq-fb-legend i.rel { background: #e60012; }
/* 比分 / 赛程里的球队名：五大联赛的球队可点进积分榜，其余就是纯文本 */
.zq-fb-tlink { color: inherit; text-decoration: none; }
.zq-fb-tlink:hover { color: #e60012; text-decoration: underline; text-underline-offset: 2px; }
/* 从比分页点球队跳过来：目标行高亮一下，方便一眼找到 */
.zq-fb-stand tbody tr:target { background: rgba(230, 0, 18, .06); }
.zq-fb-stand tbody tr:target td.pos { color: #e60012; }

/* ---- 比分速览：导航栏下方一行 3 列大卡片（左右翻屏滑动） ---- */
.zq-fb-tick { background: rgba(127, 127, 127, .06); border-bottom: 1px solid rgba(127, 127, 127, .1); }
.zq-fb-tick-in {
    position: relative;
    max-width: 1080px; margin: 0 auto; padding: 14px 44px;
}
.zq-fb-tick-track {
    display: grid; grid-auto-flow: column;
    grid-auto-columns: calc((100% - 24px) / 3);   /* 一行正好 3 张，gap 12px */
    gap: 12px;
    overflow-x: auto; scroll-behavior: smooth;
    scrollbar-width: none; -ms-overflow-style: none;
    padding: 2px;
}
.zq-fb-tick-track::-webkit-scrollbar { display: none; }
.zq-fb-tick-card {
    display: grid; align-items: center; column-gap: 8px; row-gap: 10px;
    grid-template-columns: 1fr auto 1fr;
    grid-template-areas:
        "lg  lg  tm"
        "h   sc  a";
    padding: 14px 14px 15px; border-radius: 14px; text-decoration: none;
    background: var(--zq-card-bg, #fff);
    border: 1px solid rgba(127, 127, 127, .14);
    box-shadow: 0 1px 3px rgba(17, 24, 39, .04);
    transition: transform .15s, box-shadow .15s, border-color .15s;
}
.zq-fb-tick-card:hover {
    transform: translateY(-2px);
    border-color: rgba(230, 0, 18, .4);
    box-shadow: 0 6px 16px rgba(17, 24, 39, .08);
}
/* 上排左：联赛徽章（放大）+ 联赛名 */
.zq-fb-tick-card .lg {
    grid-area: lg; display: flex; align-items: center; gap: 8px;
    min-width: 0;
}
.zq-fb-tick-card .lg svg { width: 26px; height: 26px; flex: none; border-radius: 6px; }
.zq-fb-tick-card .lg em {
    font-style: normal; font-size: 13.5px; font-weight: 600;
    color: var(--zq-card-fg2, #6b7280);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.zq-fb-tick-card:hover .lg em { color: #e60012; }
/* 上排右：开球时间 */
.zq-fb-tick-card time {
    grid-area: tm; justify-self: end;
    font-size: 12.5px; color: var(--zq-card-fg2, #9ca3af);
    font-variant-numeric: tabular-nums;
}
/* 下排：主队名+队标（右对齐） 比分 队标+客队名（左对齐） */
.zq-fb-tick-card .h,
.zq-fb-tick-card .a {
    display: flex; align-items: center; gap: 6px;
    min-width: 0; overflow: hidden; white-space: nowrap;
    font-size: 14px; font-weight: 600; line-height: 1.3;
    color: var(--zq-card-fg, #1f2733);
}
.zq-fb-tick-card .h {
    grid-area: h; justify-content: flex-end;
}
.zq-fb-tick-card .h span, .zq-fb-tick-card .a span {
    overflow: hidden; text-overflow: ellipsis;
}
.zq-fb-tick-card .a {
    grid-area: a; justify-content: flex-start;
    font-weight: 500; color: var(--zq-card-fg2, #4b5563);
}
.zq-fb-tick-card .h img, .zq-fb-tick-card .a img {
    width: 19px; height: 19px; flex: none;
}
/* 比分：两块深色圆角方块夹一个冒号 */
.zq-fb-tick-card .sc {
    grid-area: sc;
    display: flex; align-items: center; gap: 5px;
    font-variant-numeric: tabular-nums;
}
.zq-fb-tick-card .sc b {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 36px; height: 36px; padding: 0 7px;
    border-radius: 10px; font-size: 17.5px; font-weight: 700;
    color: #fff; background: #1f2733;
}
.zq-fb-tick-card .sc i { display: none; }   /* 两块比分直接并排，冒号省掉腾宽度给队名 */
/* 进行中：比分块变红 + 边框标红 */
.zq-fb-tick-card.live .sc b { background: #e60012; }
.zq-fb-tick-card.live { border-color: rgba(230, 0, 18, .45); }
/* 左右箭头：圆钮，悬在条的两端 */
.zq-fb-tick-btn {
    position: absolute; top: 50%; z-index: 2;
    display: inline-flex; align-items: center; justify-content: center;
    width: 30px; height: 30px; margin-top: -15px;
    border: 1px solid rgba(127, 127, 127, .25); border-radius: 50%;
    background: var(--zq-card-bg, #fff); color: var(--zq-card-fg2, #6b7280);
    cursor: pointer; padding: 0;
    transition: color .15s, border-color .15s;
}
.zq-fb-tick-btn:hover { color: #e60012; border-color: #e60012; }
.zq-fb-tick-btn svg { width: 15px; height: 15px; }
.zq-fb-tick-btn.prev { left: 6px; }
.zq-fb-tick-btn.next { right: 6px; }
@media (max-width: 640px) {
    .zq-fb-tick-in { padding: 10px 12px; }
    .zq-fb-tick-btn { display: none; }   /* 手机直接手指滑 */
    .zq-fb-tick-track { grid-auto-columns: calc((100% - 8px) / 2); gap: 8px; }  /* 窄屏一行 2 张 */
    .zq-fb-tick-card { padding: 11px 12px 12px; border-radius: 12px; row-gap: 8px; }
    .zq-fb-tick-card .lg svg { width: 20px; height: 20px; border-radius: 5px; }
    .zq-fb-tick-card .lg em { font-size: 12px; }
    .zq-fb-tick-card .sc b { min-width: 32px; height: 32px; font-size: 15.5px; border-radius: 8px; }
    .zq-fb-tick-card .sc i { font-size: 13px; }
    .zq-fb-tick-card .h, .zq-fb-tick-card .a { font-size: 13px; }
    .zq-fb-tick-card time { font-size: 11.5px; }
    /* 手机端队名只够挤出一个字（「泰」「北」），干脆藏掉只留队标：
       有队标的格子才加 .ic（见 footballTicker()），没队标的仍留文字，不会出现空白 */
    .zq-fb-tick-card .h.ic span,
    .zq-fb-tick-card .a.ic span { display: none; }
    .zq-fb-tick-card .h img,
    .zq-fb-tick-card .a img { width: 26px; height: 26px; }
}

/* ---- 手机端：比分 / 赛程 / 积分榜都不横向滚动 ---- */
@media (max-width: 640px) {
    /* 比分表：去掉状态列（时间和比分已经说明问题），腾出宽度给队名 */
    .zq-fb-fix { min-width: 0; }
    .zq-fb-fix th:last-child, .zq-fb-fix td:last-child { display: none; }
    .zq-fb-fix td.team { white-space: normal; line-height: 1.3; word-break: break-word; }
    .zq-fb-fix td.team img { width: 15px; height: 15px; }
    .zq-fb-fix th, .zq-fb-fix td { padding: 8px 6px; }
    .zq-fb-fix td.time { font-size: 12.5px; }
    .zq-fb-fix td.score { font-size: 13.5px; }
    /* 积分榜：只留 名次 / 球队 / 场次 / 净胜球 / 近5场 / 积分 */
    .zq-fb-stand { min-width: 0; }
    .zq-fb-stand .wh, .zq-fb-stand .gh { display: none; }
    .zq-fb-stand tbody td, .zq-fb-stand thead th { padding: 9px 5px; }
    .zq-fb-stand .pos { width: 34px; }
    .zq-fb-stand .team img { width: 17px; height: 17px; }
    .zq-fb-stand .zq-fb-tn { white-space: normal; line-height: 1.25; }
    .zq-fb-stand .form-th { width: auto; }
    .zq-fb-fm { width: 15px; height: 15px; margin-left: 2px; font-size: 10px; }
    .zq-fb-legend { gap: 10px; padding: 8px 12px 12px; font-size: 12px; }
}
.zq-fb-none { padding: 28px 18px; text-align: center; color: var(--zq-card-fg2, #9ca3af); font-size: 14px; }
/* 日期条 */
.zq-fb-days { display: flex; flex-wrap: wrap; gap: 6px; padding: 12px 18px 0; }
.zq-fb-day {
    padding: 5px 12px; border-radius: 999px; font-size: 13px; text-decoration: none;
    color: var(--zq-card-fg, #4b5563);
    background: rgba(127, 127, 127, .08);
    border: 1px solid transparent;
}
.zq-fb-day:hover { color: #e60012; border-color: #e60012; }
.zq-fb-day.on { color: #fff; background: #e60012; }
/* 比分表 */
.zq-fb-fix .score { font-weight: 700; font-size: 15px; }
.zq-fb-fix .team { font-weight: 500; }
.zq-fb-fix tr.live .score { color: #e60012; }
.zq-fb-st { display: inline-block; padding: 2px 9px; border-radius: 999px; font-size: 12px; background: rgba(127, 127, 127, .12); }
.zq-fb-st.ok { background: rgba(16, 163, 74, .14); color: #0f7c3c; }
.zq-fb-st.live { background: rgba(230, 0, 18, .12); color: #e60012; }
.zq-fb-empty { text-align: center; padding: 60px 16px; color: var(--zq-card-fg2, #6b7280); }
.zq-fb-empty h1 { font-size: 22px; color: var(--zq-card-fg, #1f2733); margin-bottom: 10px; }
/* 三个功能页签：积分榜 / 比分 / 赛程（下划线式二级导航） */
.zq-fb-views {
    display: flex; gap: 22px; margin: 0 0 16px;
    border-bottom: 1px solid var(--zq-card-line, rgba(127, 127, 127, .18));
}
.zq-fb-view {
    position: relative; padding: 8px 2px 11px; margin-bottom: -1px;
    font-size: 15.5px; font-weight: 600; text-decoration: none;
    color: var(--zq-card-fg2, #6b7280);
    border-bottom: 2px solid transparent;
    transition: color .15s, border-color .15s;
}
.zq-fb-view:hover { color: #e60012; }
.zq-fb-view.on { color: #e60012; border-bottom-color: #e60012; }
/* 比分 / 赛程表：主队图标在名字右边、客队在左边，贴在比分两侧 */
.zq-fb-fix td.tr.team img { margin-left: 6px; }
.zq-fb-fix td.tl.team img { margin-right: 6px; }
.zq-fb-fix .team img { width: 18px; height: 18px; vertical-align: -3px; }
/* 全联赛视图里按联赛分组的行 */
.zq-fb-fix tr.grp td {
    text-align: left; padding: 9px 10px;
    font-size: 13px; font-weight: 600;
    color: var(--zq-card-fg2, #6b7280);
    background: rgba(127, 127, 127, .07);
}
.zq-fb-fix tr.grp:hover td { background: rgba(127, 127, 127, .09); }
/* 即时比分页：进行中的行整行淡红底 + 左侧红条，扫一眼就能找到正在踢的 */
.zq-fb-fix tr.live td { background: rgba(230, 0, 18, .045); }
.zq-fb-fix tr.live td.time { box-shadow: inset 3px 0 0 #e60012; }
/* 今日已完赛 0 场时的提示行 */
.zq-fb-fix tr.zq-fb-emptyrow td {
    text-align: left; padding: 9px 10px;
    font-size: 13px; color: var(--zq-card-fg2, #9ca3af);
    background: transparent;
}
.zq-fb-fix tr.zq-fb-emptyrow:hover td { background: transparent; }
/* 全联赛混排时，主队名前的联赛小标签 */
.zq-fb-lgtag {
    display: inline-block; margin-right: 6px; padding: 0 5px;
    font-size: 11px; font-weight: 500; line-height: 16px; border-radius: 3px;
    color: var(--zq-card-fg2, #6b7280); background: rgba(127, 127, 127, .12);
    vertical-align: 1px;
}
/* 侧栏「足球数据」：联赛 / 比分 / 赛程 三行入口，右侧是联赛图标 / 最新比分 / 最近赛程
   注意：不少站点模板的自定义 CSS 里有 `.box li a{display:block;...}` 这类规则，
   会把这里 flex/grid 布局的 <a> 打回块级导致错行，所以下面的关键 display 都提了特异性并加 !important */
.zq-fb-side-list li { padding: 0; border-bottom: 0; }
/* 标题右侧的赛季：跟标题之间要有空隙，否则「足球数据2026/27」「Football2026/27」粘一起 */
.zq-fb-side-se { margin-left: 6px; font-weight: 400; }
.zq-fb-side-row { display: flex; align-items: center; gap: 6px; }
.zq-fb-side-row .zq-fb-side-main {
    flex: 1 1 auto; min-width: 0;
    display: flex !important; align-items: center; gap: 9px;
    padding: 9px 11px; border-radius: 9px;
    font-size: 14px; font-weight: 500; text-decoration: none;
    color: var(--zq-card-fg, #374151);
    background: rgba(127, 127, 127, .07);
    transition: color .15s, background .15s;
}
.zq-fb-side-row .zq-fb-side-main:hover,
.zq-fb-side-row .zq-fb-side-main.on { color: #e60012; background: rgba(230, 0, 18, .08); }
.zq-fb-side-row .zq-fb-side-main svg { width: 16px; height: 16px; flex: none; opacity: .75; }
.zq-fb-side-row .zq-fb-side-main:hover svg { opacity: 1; }
.zq-fb-side-tx { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* 右侧扩展：比分与开球时间 pill（各自是独立链接） */
.zq-fb-side-ex { display: flex; align-items: center; gap: 3px; flex: none; }
.zq-fb-side-ex .zq-fb-side-pill {
    display: inline-flex !important; flex: none; padding: 3px 6px; border-radius: 6px; text-decoration: none;
    font-size: 11.5px; font-weight: 600; line-height: 1.25;
    color: var(--zq-card-fg2, #6b7280);
    background: rgba(127, 127, 127, .1);
    font-variant-numeric: tabular-nums;
    transition: color .15s, background .15s;
    white-space: nowrap;
}
.zq-fb-side-pill:hover { color: #fff; background: #e60012; }
.zq-fb-side-pill.live { color: #e60012; background: rgba(230, 0, 18, .1); }
.zq-fb-side-pill.live:hover { color: #fff; background: #e60012; }
.zq-fb-side-none { font-size: 12.5px; color: #c7cbd1; padding-right: 4px; }
/* 联赛行下面：一行 3 个格子，图标居中、联赛名在下方
   注意 columns 用 minmax(0, 1fr)：1fr 的最小宽度是内容的 min-content，
   英文站（UEFA Champions League / AFC Champions League Elite）长名称会把整行撑宽，
   右列直接溢出侧栏卡片；minmax(0,1fr) 让列宽严格按容器分配，长词在格子内换行 */
.zq-fb-side-list .zq-fb-side-lgs {
    display: grid !important;
    /* auto-fit + minmax(84px, 1fr)：侧栏够宽就是 3 列；很窄时自动降 2 列，
       避免「Championship」这种长单词在 60px 宽的格子里被断成 Championsh/ip */
    grid-template-columns: repeat(auto-fit, minmax(84px, 1fr)) !important;
    gap: 6px;
    padding: 3px 8px 8px 8px;
    max-width: 100%;
    box-sizing: border-box;
}
.zq-fb-side-lgs .zq-fb-side-lg {
    display: flex !important; flex-direction: column; align-items: center; justify-content: flex-start; gap: 6px;
    /* min-width: 0 = 允许格子被压缩到比内容还窄（grid/flex 子项默认 min-width:auto 会撑破容器） */
    min-width: 0; max-width: 100%; box-sizing: border-box;
    padding: 11px 5px 9px; border-radius: 10px; text-decoration: none;
    font-size: 11.5px; line-height: 1.2; font-weight: 500;
    color: var(--zq-card-fg2, #6b7280);
    background: rgba(127, 127, 127, .07);
    transition: color .15s, background .15s;
}
.zq-fb-side-lg:hover { color: #e60012; background: rgba(230, 0, 18, .08); }
.zq-fb-side-lg svg { width: 28px; height: 28px; flex: 0 0 28px; display: block; border-radius: 6px; }
/* 格子内容不许溢出：徽章固定 28px，名称最多两行（超出省略号），所有格子等高 */
.zq-fb-side-lgs .zq-fb-side-lg {
    overflow: hidden !important; align-self: stretch; height: auto !important; max-height: none !important;
}
/* 名称：最多 3 行 + 省略号
   模板自带 CSS 常给 a / span 加 white-space:nowrap，英文长名会被格子裁成「Premier Leagu…」，
   这里 white-space 必须 !important 盖掉；line-clamp 让超长名收成 3 行省略号，比硬裁整齐。
   word-break 保持 normal：只在整词放不下时才断（Championship 能整词放下就别断成 Championsh/ip） */
.zq-fb-side-lg span {
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 3 !important;
    line-clamp: 3;
    overflow: hidden !important;
    white-space: normal !important;
    max-width: 100%;
    text-align: center;
    font-size: 11px; line-height: 1.3;
    overflow-wrap: break-word; word-break: normal; hyphens: auto;
}
/* 行下方明细：徽章 | 主队 | 比分 | 客队 | 时间，五列 grid 严格对齐 */
.zq-fb-side-list .zq-fb-side-detail {
    display: flex !important; flex-direction: column; gap: 1px;
    padding: 3px 8px 8px 8px;
}
.zq-fb-side-detail .zq-fb-side-mt {
    display: grid !important;
    grid-template-columns: 16px minmax(0, 1fr) auto minmax(0, 1fr) auto !important;
    align-items: center; column-gap: 7px;
    padding: 4px 7px; border-radius: 7px; text-decoration: none;
    font-size: 12.5px; line-height: 1.3;
    color: var(--zq-card-fg2, #6b7280);
    transition: background .15s, color .15s;
}
.zq-fb-side-mt:hover { color: #e60012; background: rgba(230, 0, 18, .06); }
.zq-fb-side-mt .lg { display: inline-flex; }
.zq-fb-side-mt .lg svg { width: 16px; height: 16px; display: block; border-radius: 4px; }
.zq-fb-side-mt .h, .zq-fb-side-mt .a {
    min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.zq-fb-side-mt .h { text-align: right; color: var(--zq-card-fg, #374151); font-weight: 500; }
.zq-fb-side-mt .a { text-align: left; }
.zq-fb-side-mt:hover .h, .zq-fb-side-mt:hover .a { color: #e60012; }
.zq-fb-side-mt .sc {
    font-weight: 700; color: #e60012; padding: 0 2px;
    font-variant-numeric: tabular-nums; letter-spacing: .3px;
}
.zq-fb-side-mt.live .sc { animation: zqFbSidePulse 1.6s ease-in-out infinite; }
.zq-fb-side-mt .vs {
    font-style: normal; font-size: 10.5px;
    color: #c7cbd1; text-transform: uppercase; letter-spacing: .3px;
}
.zq-fb-side-mt .tm {
    min-width: 32px; text-align: right;
    font-variant-numeric: tabular-nums; font-size: 11.5px;
    color: var(--zq-card-fg2, #9ca3af);
}
@keyframes zqFbSidePulse {
    0%, 100% { opacity: 1; }
    50% { opacity: .45; }
}
@media (max-width: 640px) {
    /* 窄屏不再强制横向滚动：比分表去状态列、积分榜去胜平负与进失球（见上方 .zq-fb-fix / .zq-fb-stand 规则） */
    .zq-fb-table { font-size: 13px; min-width: 0; }
    .zq-fb-table th, .zq-fb-table td { padding: 8px 6px; }
    .zq-fb-tab { padding: 7px 14px; font-size: 13.5px; }
    .zq-fb-views { gap: 18px; }
    .zq-fb-view { font-size: 14.5px; }
    .zq-fb-tabs { overflow-x: auto; -webkit-overflow-scrolling: touch; flex-wrap: nowrap; }
    .zq-fb-tabs::-webkit-scrollbar { display: none; }
    .zq-fb-tab { flex: none; }
    .zq-fb-card { border-radius: 10px; }
    /* 窄屏：板块切换单独一行贴右，功能页签换行排，避免把切换器挤到屏幕外 */
    .zq-fb-views { flex-wrap: wrap; gap: 16px; }
    .zq-fb-sports { width: 100%; justify-content: flex-end; margin: 0 0 4px; }
    .zq-fb-sp { padding: 4px 11px; font-size: 11.5px; }
}


/* 篮球榜单：东西部小标签（NBA 才有） */
.zq-bb-conf { display: inline-block; margin-left: 4px; padding: 0 3px; font-size: 9px; line-height: 13px;
    border-radius: 3px; background: #eef2f7; color: #64748b; font-style: normal; vertical-align: middle; }
.zq-bb .zq-fb-legend span { color: #94a3b8; font-size: 10px; }


/* 板块切换已挪到右上角（.zq-fb-sports），旧的页签式入口不再使用 */
