/* ===== 子页面通用样式 ===== */
.page-hero { background:linear-gradient(120deg,var(--c-primary),var(--c-accent)); color:#fff; padding:38px 0; }
.page-hero h1 { margin:0 0 6px; font-size:30px; letter-spacing:2px; }
.page-hero p { margin:0; opacity:.9; font-size:15px; }
.section { padding:40px 0; }
.filter-bar { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:22px; align-items:center; }
.filter-bar label { font-size:14px; color:var(--c-muted); }
.filter-bar select { padding:8px 12px; border:1px solid var(--c-line); border-radius:6px; font-size:14px; background:#fff; color:var(--c-text); }
.filter-bar input { padding:8px 12px; border:1px solid var(--c-line); border-radius:6px; font-size:14px; flex:1 1 150px; min-width:120px; max-width:220px; color:var(--c-text); outline:none; }
.filter-bar input:focus { border-color:var(--c-primary); }
.filter-bar button { padding:8px 18px; border:1px solid var(--c-primary); border-radius:6px; background:var(--c-primary); color:#fff; font-size:14px; cursor:pointer; font-family:inherit; }
.filter-bar button:hover { background:var(--c-accent); border-color:var(--c-accent); }
.search-hint { font-size:13px; color:var(--c-muted); margin:0 0 14px; }
.search-hint b { color:var(--c-primary); font-weight:600; }
.empty { color:var(--c-muted); padding:30px; text-align:center; }

.art-card { background:#fff; border:1px solid var(--c-line); border-radius:var(--radius); padding:18px 22px; margin-bottom:16px; box-shadow:var(--shadow); }
.art-head { display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.art-tag { background:var(--c-soft); color:var(--c-primary); font-size:12px; padding:2px 10px; border-radius:4px; }
/* 网络首发标记：与栏目标签并列，橙金色区别于常规栏目蓝 */
.art-online { background:#fff4e5; color:#b96400; border:1px solid #f3d3a4; font-size:11.5px; line-height:1.6;
  padding:1px 8px; border-radius:4px; white-space:nowrap; }
.art-issue { margin-left:auto; font-size:13px; color:var(--c-muted); }
.art-card h4 { margin:0 0 6px; font-size:18px; color:var(--c-text); }
.art-meta { font-size:13px; color:var(--c-muted); margin-bottom:8px; }
.art-abstract { font-size:14px; color:#445; line-height:1.75; margin-bottom:8px; }
.art-keywords { font-size:13px; color:var(--c-primary); }

.ann-card { display:block; text-decoration:none; background:#fff; border:1px solid var(--c-line); border-radius:var(--radius); padding:18px 22px; margin-bottom:16px; box-shadow:var(--shadow); transition:transform .15s ease, box-shadow .15s ease; }
.ann-card:hover { transform:translateY(-2px); box-shadow:0 6px 18px rgba(30,60,100,.14); }
.ann-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
.ann-cat { background:var(--c-primary); color:#fff; font-size:12px; padding:3px 12px; border-radius:4px; }
.ann-date { font-size:13px; color:#54657d; font-weight:500; font-variant-numeric:tabular-nums; }
.ann-card h4 { margin:0 0 8px; font-size:18px; color:var(--c-text); }
.ann-summary { font-size:14px; color:#445; line-height:1.75; }
.ann-thumb { display:block; width:100%; height:170px; object-fit:cover; border-radius:6px; margin-bottom:14px; }

/* 公告详情（announcements.html?id=…） */
.ann-detail { background:#fff; border:1px solid var(--c-line); border-radius:var(--radius); padding:34px 38px; box-shadow:var(--shadow); }
.ann-detail .ann-top { margin-bottom:14px; }
.ann-detail-title { margin:0 0 18px; font-size:26px; line-height:1.4; color:var(--c-dark); }
.ann-detail-body { font-size:15.5px; color:#3c4453; line-height:2.05; }
.ann-detail-body p, .ann-detail-body div { margin:0 0 12px; }
.ann-detail-body img { max-width:100%; height:auto; border-radius:6px; }
.ann-detail-body h2, .ann-detail-body h3 { color:var(--c-dark); margin:18px 0 10px; }
.ann-detail-body ul, .ann-detail-body ol { padding-left:24px; margin:0 0 12px; }
.ann-detail-body a { color:var(--c-primary); text-decoration:underline; }
.ann-detail-back { margin-top:28px; }
/* 附件下载区块（通知公告详情 / 文章详情共用，由 main.js attachBlock 输出） */
.attach-block { margin:24px 0 6px; padding:16px 18px; border:1px solid #dbe6f4; border-radius:var(--radius); background:#f7fafd; }
.attach-title { margin:0 0 12px; font-size:15px; color:var(--c-dark); display:flex; align-items:center; gap:8px; }
.attach-title::before { content:""; width:4px; height:16px; border-radius:2px; background:var(--c-primary); }
.attach-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.attach-item { display:flex; align-items:center; gap:10px; padding:9px 12px; background:#fff; border:1px solid #e0e8f3; border-radius:7px; text-decoration:none; color:#26405f; transition:border-color .18s, box-shadow .18s; }
.attach-item:hover { border-color:var(--c-primary); box-shadow:0 2px 10px rgba(26,111,196,.12); }
.attach-ico { flex:0 0 auto; min-width:42px; text-align:center; font-size:11px; font-weight:700; letter-spacing:.3px; color:#fff; background:var(--c-primary); border-radius:4px; padding:3px 6px; }
.attach-name { flex:1 1 auto; min-width:0; font-size:14.5px; word-break:break-all; }
.attach-size { flex:0 0 auto; font-size:12.5px; color:#8794a8; }
.attach-item:hover .attach-name { text-decoration:underline; }
/* 「在线阅读」：PDF 附件在下载列表右上角给一个直达阅读入口（新标签页用浏览器内置 PDF 阅读器） */
.attach-online { margin-left:auto; display:inline-flex; align-items:center; gap:5px; font-size:12.5px; font-weight:500;
  color:var(--c-primary); background:#eef4fc; border:1px solid #d3e2f6; border-radius:14px; padding:3px 11px;
  text-decoration:none; transition:.18s; }
.attach-online:hover { background:var(--c-primary); border-color:var(--c-primary); color:#fff; }
.attach-online:focus-visible { outline:2px solid var(--c-primary); outline-offset:1px; }
@media (max-width:640px) {
  .attach-block { padding:13px 12px; }
  .attach-name { font-size:13.5px; }
}
/* 通知公告：左侧标题汇总栏 + 右侧列表（每页 10 条，底部翻页） */
.ann-layout { display:flex; gap:22px; align-items:flex-start; }
.ann-side { width:300px; flex:none; background:#fff; border:1px solid var(--c-line); border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden; position:sticky; top:14px; display:flex; flex-direction:column; }
.ann-side-head { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:11px 14px; background:var(--c-primary); color:#fff; font-weight:700; font-size:15px; }
.ann-side-head b { font-size:13px; font-weight:600; background:rgba(255,255,255,.2); border-radius:10px; padding:1px 9px; }
.ann-side-body { max-height:520px; overflow:auto; padding:4px 0 6px; }
/* 左侧标题汇总栏底部翻页 */
.ann-side-foot { display:none; }
.ann-side-foot.on { display:flex; gap:5px; align-items:center; justify-content:center; flex-wrap:wrap; padding:8px 8px 10px; background:#f7fafd; border-top:1px solid var(--c-line); }
.ann-side-foot button { min-width:26px; height:26px; border:1px solid var(--c-line); background:#fff; border-radius:4px; cursor:pointer; font-size:12.5px; color:#556; font-family:inherit; padding:0 4px; }
.ann-side-foot button:hover:not(:disabled) { border-color:var(--c-primary); color:var(--c-primary); }
.ann-side-foot button.on { background:var(--c-primary); border-color:var(--c-primary); color:#fff; font-weight:700; }
.ann-side-foot button:disabled { opacity:.4; cursor:default; }
.ann-side-foot .pg-info { font-size:12px; color:var(--c-muted); margin-left:2px; }
.ann-trow { display:block; width:100%; border:none; background:none; text-align:left; cursor:pointer; font-family:inherit; padding:9px 14px; border-bottom:1px solid #f2f5f9; }
.ann-trow:hover { background:#f2f6fb; }
.ann-trow.active { background:#e8f0fa; }
.ann-trow .t { display:block; font-size:13.5px; line-height:1.55; color:var(--c-text); font-weight:600;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.ann-trow:hover .t, .ann-trow.active .t { color:var(--c-primary); }
.ann-trow .d { display:block; margin-top:3px; font-size:12px; color:var(--c-muted); }
.ann-main { flex:1; min-width:0; }
.ann-card.flash { animation:annFlash 1.8s ease; }
@keyframes annFlash { 0% { box-shadow:0 0 0 3px rgba(28,86,160,.45); } 100% { box-shadow:var(--shadow); } }
@media (max-width:900px){ .ann-layout { display:block; } .ann-side { width:auto; margin-bottom:16px; position:static; } .ann-side-body { max-height:260px; } }
@media (max-width:760px){ .ann-detail { padding:24px 20px; } .ann-detail-title { font-size:21px; } }

.dl-card { display:flex; justify-content:space-between; align-items:center; gap:16px; background:#fff; border:1px solid var(--c-line); border-radius:var(--radius); padding:18px 22px; margin-bottom:14px; box-shadow:var(--shadow); }
.dl-info { flex:1; min-width:0; }
.dl-name { font-size:16px; font-weight:600; color:var(--c-text); }
.dl-desc { font-size:13px; color:var(--c-muted); margin-top:4px; }
.dl-meta { display:flex; align-items:center; gap:14px; flex:none; }
.dl-fmt { font-size:12px; color:#fff; background:var(--c-primary); padding:3px 10px; border-radius:4px; }

.ed-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:18px; }
.ed-card { background:#fff; border:1px solid var(--c-line); border-radius:var(--radius); padding:22px 18px; text-align:center; box-shadow:var(--shadow); transition:.2s; }
.ed-card:hover { transform:translateY(-3px); box-shadow:0 12px 26px rgba(26,58,108,.16); }
.ed-name { font-size:18px; font-weight:600; color:#555; } /* 编委姓名固定中深灰，不随主题配色(--c-primary)变化 */
.ed-role { display:inline-block; background:var(--c-soft); color:var(--c-primary); font-size:12px; padding:2px 12px; border-radius:20px; margin:8px 0 6px; }
.ed-title { font-size:13px; color:var(--c-muted); }
.ed-aff { font-size:13px; color:#556; margin-top:8px; line-height:1.6; }

.col-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:18px; }
.col-card { background:#fff; border:1px solid var(--c-line); border-radius:var(--radius); padding:18px; box-shadow:var(--shadow); border-top:3px solid var(--c-primary); }
.col-card h4 { margin:0 0 8px; color:var(--c-primary); font-size:17px; }
.col-card p { margin:0; font-size:14px; color:#556; line-height:1.7; }

/* ===== 过刊预览（左侧树 + 右侧列表）===== */
.arch-layout { display:flex; gap:22px; align-items:flex-start; }
.arch-side { width:290px; flex:none; background:#fff; border:1px solid var(--c-line); border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden; position:sticky; top:14px; }
.arch-head { display:flex; align-items:center; justify-content:space-between; padding:10px 14px; background:var(--c-primary); color:#fff; font-weight:700; font-size:15px; }
.arch-head button { background:rgba(255,255,255,.16); border:none; color:#fff; width:24px; height:24px; border-radius:4px; cursor:pointer; font-size:15px; line-height:1; }
.arch-head button:hover { background:rgba(255,255,255,.3); }
.arch-tabs { display:flex; border-bottom:1px solid var(--c-line); }
.arch-tabs button { flex:1; border:none; background:none; padding:10px 0; font-size:14px; color:#556; cursor:pointer; font-weight:600; border-bottom:2px solid transparent; }
.arch-tabs button.active { color:var(--c-primary); border-bottom-color:var(--c-primary); }
.arch-tree { max-height:520px; overflow:auto; padding:6px 0 10px; }
.arch-pager-wrap { border-top:1px solid var(--c-line); background:#fff; padding:4px 10px; }
.arch-pager-row { display:flex; align-items:center; justify-content:center; gap:8px; }
.arch-pager-row + .arch-pager-row { border-top:1px dashed var(--c-line); }
.arch-pager-y { font-size:12px; color:#8296b3; flex:none; }
.arch-year + .arch-year { border-top:1px dashed var(--c-line); margin-top:6px; padding-top:6px; }
.arch-yh, .arch-ih, .arch-col { display:flex; align-items:center; justify-content:space-between; width:100%; border:none; background:none; text-align:left; cursor:pointer; font-family:inherit; }
.arch-yh { padding:9px 14px; font-size:15px; font-weight:700; color:var(--c-text); background:#eef2f7; }
.arch-year.open > .arch-yh { color:var(--c-primary); }
.arch-yb { padding:2px 0 6px; }
.arch-ih { padding:8px 14px 8px 22px; font-size:14px; font-weight:600; color:var(--c-text); user-select:none; }
.arch-ih:hover, .arch-yh:hover { background:#f2f6fb; }
.arch-cb { padding:0 6px 4px 0; }
.arch-col { padding:6px 12px 6px 38px; font-size:13.5px; color:#556; border-radius:4px; }
.arch-col span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.arch-col:hover { background:#f2f6fb; color:var(--c-primary); }
.arch-col.active { background:#e8f0fa; color:var(--c-primary); font-weight:600; }
.arch-ih.active { background:#e8f0fa; color:var(--c-primary); }
.arch-ih.active .arch-ar { color:var(--c-primary); }
.arch-col.arch-merge { color:#8296b3; font-size:12.5px; }
.arch-col.arch-merge:hover { color:var(--c-primary); }
/* 折叠年份行的合并摘要（期数 · 篇数）与「更多期次」入口 */
.arch-ysum { font-style:normal; font-weight:400; font-size:12px; color:#8296b3; margin-left:6px; }
.arch-yearmore { padding-left:22px; }
.arch-go { color:var(--c-primary); font-weight:700; margin-left:8px; }
/* 栏目浏览：平铺栏目行（栏目名 + 总篇数） */
.arch-all { display:flex; align-items:center; justify-content:space-between; width:100%; border:none; background:none; text-align:left; cursor:pointer; font-family:inherit; padding:11px 14px; font-size:14px; font-weight:600; color:var(--c-text); border-bottom:1px solid #f0f3f7; }
.arch-all span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.arch-all .arch-n { flex:none; margin-left:10px; font-size:13px; font-weight:700; color:#8b97a8; }
.arch-all:hover { background:#f2f6fb; color:var(--c-primary); }
.arch-all:hover .arch-n { color:var(--c-primary); }
.arch-all.active { background:#e8f0fa; color:var(--c-primary); }
.arch-all.active .arch-n { color:var(--c-primary); }
/* 右侧文章列表底部翻页 */
.art-pager { display:flex; align-items:center; gap:6px; justify-content:center; flex-wrap:wrap; margin:22px 0 4px; }
.art-pager button { min-width:32px; height:32px; border:1px solid var(--c-line); background:#fff; border-radius:4px; cursor:pointer; font-size:14px; color:#556; font-family:inherit; }
.art-pager button:hover:not(:disabled) { border-color:var(--c-primary); color:var(--c-primary); }
.art-pager button.on { background:var(--c-primary); border-color:var(--c-primary); color:#fff; font-weight:700; }
.art-pager button:disabled { opacity:.4; cursor:default; }
.art-pager-info { margin-left:8px; font-size:13px; color:var(--c-muted); }
/* 页码省略号（页码很多时「首页 … 当前±2 … 末页」） */
.art-pager-gap { min-width:18px; text-align:center; color:var(--c-muted); font-size:13px; letter-spacing:1px; }
/* 「最新文章」页的加载更多 */
.art-more-wrap { text-align:center; margin:22px 0 4px; }
.art-more { height:38px; padding:0 26px; border:1px solid var(--c-line); background:#fff; border-radius:4px; cursor:pointer; font-size:14px; color:var(--c-primary); font-family:inherit; transition:border-color .18s, background .18s; }
.art-more:hover { border-color:var(--c-primary); background:var(--c-primary-lt, #f7f2f2); }
/* 列表请求进行中：轻微淡化，避免用户误以为卡死 */
#articleWrap[aria-busy="1"] { opacity:.55; transition:opacity .15s; }
.arch-ar { flex:none; width:9px; height:9px; border-right:2px solid #9aa7b8; border-bottom:2px solid #9aa7b8; transform:rotate(45deg); margin-left:10px; transition:transform .18s; }
.arch-iss.open > .arch-ih .arch-ar, .arch-year.open > .arch-yh .arch-ar { transform:rotate(225deg); margin-top:-4px; }
/* 期次右侧箭头的独立热区：点箭头只展开/收起本期栏目，点标题文字仍为筛选该期 */
.arch-ih-tg { flex:none; display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; margin:-7px -8px -7px 0; border-radius:4px; cursor:pointer; }
.arch-ih-tg:hover { background:#dbe8f8; }
.arch-ih-tg .arch-ar { margin-left:0; }
.arch-pager { display:flex; gap:6px; justify-content:center; padding:10px 0 4px; }
.arch-pager button { min-width:26px; height:26px; border:1px solid var(--c-line); background:#fff; border-radius:4px; cursor:pointer; font-size:13px; color:#556; }
.arch-pager button.on { background:var(--c-primary); border-color:var(--c-primary); color:#fff; font-weight:700; }
.arch-pager button:disabled { opacity:.4; cursor:default; }
.arch-main { flex:1; min-width:0; }
@media (max-width:900px){ .arch-layout { display:block; } .arch-side { width:auto; margin-bottom:16px; position:static; } .arch-tree { max-height:340px; } }

.info-block { background:#fff; border:1px solid var(--c-line); border-radius:var(--radius); padding:24px 28px; margin-bottom:18px; box-shadow:var(--shadow); }
.info-block h3 { color:var(--c-primary); margin-top:0; }
.info-block p, .info-block li { color:#33425a; line-height:1.85; font-size:15px; }

/* 投稿指南：编号列表 */
.req-list { margin:0; padding-left:22px; }
.req-list li { margin-bottom:10px; color:#33425a; line-height:1.85; font-size:15px; }

/* 联系我们：键值列表 */
.contact-list { list-style:none; padding:0; margin:0; }
.contact-list li { padding:9px 0; border-bottom:1px dashed var(--c-line); font-size:15px; color:#33425a; }
.contact-list li:last-child { border-bottom:0; }
.contact-list li b { color:var(--c-muted); font-weight:600; display:inline-block; width:96px; }

/* 联系我们：四张信息卡片（杂志社信息 / 投稿与咨询 / 期刊征订 / 广告发布）
   桌面端 2×2 并排，窄屏自动单列；卡片高度各自自适应，互不拉伸 */
.contact-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:18px; align-items:start; }
.contact-grid > .info-block { margin-bottom:0; }
.contact-grid .info-block h4 { color:#1c2b45; font-size:15px; margin:16px 0 8px; }
.contact-grid .info-list { list-style:none; padding:0; margin:0; }
.contact-grid .info-list li { position:relative; padding:6px 0 6px 18px; font-size:15px; color:#33425a; line-height:1.8; }
.contact-grid .info-list li::before { content:"•"; position:absolute; left:4px; top:6px; color:var(--c-accent); font-weight:700; }
.contact-grid .card-more { margin:16px 0 0; font-size:14px; }
.contact-grid .card-more a { color:var(--c-primary); text-decoration:none; }
.contact-grid .card-more a:hover { text-decoration:underline; }
@media (max-width:860px){ .contact-grid { grid-template-columns:1fr; gap:16px; } }

/* 说明/提示框 */
.note-box { background:#f3f7fc; border:1px solid var(--c-line); border-left:3px solid var(--c-accent); border-radius:8px; padding:14px 18px; font-size:13.5px; color:#55687f; line-height:1.8; }

/* ---------- 单篇文章详情页 ---------- */
.article-detail { max-width:960px; margin:0 auto; background:#fff; border:1px solid var(--c-line); border-radius:var(--radius); padding:42px 50px; box-shadow:var(--shadow); }
.artd-crumb { font-size:13px; color:var(--c-muted); margin-bottom:20px; }
.artd-crumb a { color:var(--c-muted); text-decoration:none; }
.artd-crumb a:hover { color:var(--c-primary); }
/* 面包屑行右侧的「分享 / 推荐」按钮组：小描边按钮，与工具栏按钮同风格 */
.artd-crumb-row { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:20px; }
.artd-crumb-row .artd-crumb { margin-bottom:0; }
.artd-acts { display:flex; gap:8px; flex:none; }
.artd-act { display:inline-flex; align-items:center; gap:5px; font-family:inherit; font-size:13px; color:var(--c-primary); background:#fff; border:1px solid var(--c-line); border-radius:6px; padding:6px 13px; cursor:pointer; transition:.18s; }
.artd-act svg { flex:none; }
.artd-act:hover { background:var(--c-primary); border-color:var(--c-primary); color:#fff; }
.artd-act.is-ok { background:#0f9d58; border-color:#0f9d58; color:#fff; }
.artd-act.is-fail { background:#e23b3b; border-color:#e23b3b; color:#fff; }
/* 已推荐过：浅绿描边常驻，区别于普通描边按钮 */
.artd-act.is-done { background:#eaf7ef; border-color:#0f9d58; color:#0b7a43; }
.artd-act.is-done:hover { background:#0f9d58; border-color:#0f9d58; color:#fff; }
/* 窄屏：crumb-row 改纵向堆叠。此处必须用 stretch 而不是 flex-start——
   column 方向 + flex-start 会让子项按 max-content 宽度绘制，英文面包屑
   （Browse Archive › Computer Technology › 2026, Vol. 10, No. 20）会把
   行撑到 364px 而容器只有 312px，导致详情页横向溢出。 */
@media (max-width:640px){
  .artd-crumb-row { flex-direction:column; align-items:stretch; gap:8px; }
  .artd-acts { flex:0 1 auto; flex-wrap:wrap; }
}
.artd-title { text-align:center; font-size:24px; color:#1c2b45; margin:8px 0 16px; line-height:1.55; }
.artd-title-en { font-size:19px; text-align:center; }
.artd-authors { text-align:center; font-size:16px; color:#2c3a55; margin:0 0 6px; }
.artd-unit { text-align:center; font-size:13px; color:#6b7891; margin:0 0 24px; }
.artd-label { font-weight:700; color:#1c2b45; }
.artd-abstract, .artd-keywords { font-size:14.5px; line-height:1.95; color:#33425a; margin:0 0 10px; text-align:justify; }
/* 摘要 / 关键词：首行缩进两字（中英文一致，正文按段落自动缩进） */
.artd-abstract, .artd-keywords, .artd-abstract p, .artd-keywords p { text-indent:2em; }
.artd-doi { font-size:13.5px; color:#4a5872; margin:16px 0 10px; }
.artd-doi-top { margin:0 0 14px; text-align:left; font-size:13px; }
.artd-fund { font-size:13.5px; color:#4a5872; margin:4px 0 12px; line-height:1.9; text-indent:2em; }
/* 中图分类号 / 文献标识码 / 文章编号：首行缩进一个「2 字」宽度；三项按内容排布，两段空隙平均分（space-between）
   末列 nowrap + 不收缩，防止「文章编号：2096-4706(2026)20-0001-06」在冒号后折行 */
.artd-meta-row { display:flex; justify-content:space-between; align-items:baseline; gap:12px 18px; flex-wrap:wrap; padding:10px 0 10px 2em; margin:12px 0 4px; font-size:13.5px; color:#4a5872; }
.artd-meta-row > span { min-width:0; text-align:left; }
.artd-meta-row > span:nth-child(2) { text-align:center; white-space:nowrap; }
.artd-meta-row > span:last-child { text-align:right; white-space:nowrap; flex-shrink:0; }
.artd-en { margin-top:12px; padding-top:12px; }
.artd-en .artd-title-en { margin-top:0; }
.artd-en .artd-unit { margin-bottom:16px; }
.artd-en .artd-abstract, .artd-en .artd-keywords { margin-bottom:12px; }
.artd-refs, .artd-bio { margin-top:26px; }
.artd-refs h3, .artd-bio h3 { font-size:16px; color:var(--c-primary); margin:0 0 12px; border-left:4px solid var(--c-primary); padding-left:10px; }
.artd-refs p { font-size:13.5px; line-height:1.95; color:#44506a; margin:0 0 7px; text-indent:2em; }
.artd-bio p { font-size:13.5px; line-height:1.95; color:#44506a; margin:0 0 6px; text-indent:2em; }
.artd-nav { display:flex; justify-content:space-between; align-items:center; gap:14px; margin-top:30px; padding-top:18px; border-top:1px solid var(--c-line); font-size:13.5px; color:var(--c-muted); }.artd-nav a { color:var(--c-primary); text-decoration:none; }
.artd-nav a:hover { text-decoration:underline; }
.artd-nav span { max-width:36%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
/* 引用本文 / 打印：学术站点标配，方便作者直接引用与存档 */
.artd-tools { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:26px; padding:14px 16px; background:#f7f9fd; border:1px solid var(--c-line); border-radius:10px; }
.artd-tool { font-family:inherit; font-size:13px; color:var(--c-primary); background:#fff; border:1px solid var(--c-line); border-radius:6px; padding:7px 14px; cursor:pointer; transition:.18s; }
.artd-tool:hover { background:var(--c-primary); border-color:var(--c-primary); color:#fff; }
.artd-tool:disabled { opacity:.6; cursor:default; }
.artd-cite-tip { font-size:12.5px; color:var(--c-muted); }
/* 引用导出：EndNote / RIS / BibTeX 三枚小胶囊，紧跟「复制引用格式」 */
.artd-export { display:inline-flex; align-items:center; gap:6px; flex-wrap:wrap; }
.artd-export-label { font-size:12.5px; color:var(--c-muted); }
.artd-exp { font-family:inherit; font-size:12.5px; line-height:1.5; color:#3e4a63; background:#fff;
  border:1px solid var(--c-line); border-radius:14px; padding:4px 11px; cursor:pointer; transition:.18s; }
.artd-exp:hover { border-color:var(--c-primary); color:var(--c-primary); background:#f3f7fd; }
.artd-exp:focus-visible { outline:2px solid var(--c-primary); outline-offset:1px; }
.artd-cite-text { flex:1 1 320px; font-size:13px; color:#3e4a63; line-height:1.75; word-break:break-word; }
@media (max-width:760px) {
  .artd-tools { padding:12px 13px; }
  .artd-cite-text { flex:1 1 100%; }
}
@media (max-width:760px) {
  .article-detail { padding:24px 18px; }
  .artd-title { font-size:20px; }
  .artd-nav { flex-wrap:wrap; }
  .artd-nav span { max-width:100%; white-space:normal; }
}

/* 下载中心：文件大小 */
.dl-size { font-size:12.5px; color:var(--c-muted); margin-left:8px; }

/* ===== 期刊荣誉详情页（honor.html） ===== */
.honor-wrap { max-width:860px; margin:0 auto; }
.honor-detail { background:#fff; border:1px solid var(--c-line); border-radius:var(--radius); box-shadow:var(--shadow); padding:36px 40px; text-align:center; }
.honor-detail .honor-name { font-size:24px; color:var(--c-primary); margin:0 0 6px; max-width:100%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.honor-detail .honor-abbr { font-size:13px; letter-spacing:2px; color:var(--c-muted-2); text-transform:uppercase; margin-bottom:18px; }
.honor-detail .honor-cert { margin:8px auto 20px; max-width:520px; }
.honor-detail .honor-cert img { width:100%; height:auto; border:1px solid var(--c-line); border-radius:6px; box-shadow:0 8px 22px rgba(26,58,108,.10); }
.honor-detail .honor-desc { text-align:left; font-size:15px; line-height:1.9; color:var(--c-text); }
.honor-detail .honor-desc p { margin:0 0 10px; }
.honor-detail .honor-back { margin:22px 0 0; font-size:14px; }
.honor-detail .honor-back a { color:var(--c-primary); text-decoration:none; }
.honor-detail .honor-back a:hover { text-decoration:underline; }
.honor-others { max-width:860px; margin:26px auto 0; background:#fff; border:1px solid var(--c-line); border-radius:var(--radius); padding:22px 28px; }
.honor-others h3 { font-size:16px; color:var(--c-primary); margin:0 0 12px; border-left:4px solid var(--c-primary); padding-left:10px; }
.honor-others ul { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:10px 22px; }
.honor-others li a { font-size:14px; color:var(--c-text); text-decoration:none; }
.honor-others li a:hover { color:var(--c-primary); text-decoration:underline; }
@media (max-width:760px){ .honor-detail { padding:22px 16px; } }

/* ================= 文章详情：右上角计数徽标 / 相关文章 ================= */
/* 推荐/阅读/下载计数统一挂在右上角操作区（分享、推荐按钮之后），0 不显示 */
.artd-acts .artd-cnt { color: var(--c-muted); font-size: 12.5px; white-space: nowrap; align-self: center; }
.artd-acts .artd-cnt + .artd-cnt { margin-left: 2px; }
.artd-related { margin: 30px 0 4px; padding: 18px 20px; background: var(--c-soft, #f5f7fa); border: 1px solid var(--c-line); border-radius: 10px; }
.artd-related h3 { margin: 0 0 12px; font-size: 15.5px; color: var(--c-primary); font-weight: 700; padding-left: 10px; border-left: 3px solid var(--c-primary); line-height: 1.1; }
.artd-related ul { margin: 0; padding: 0; list-style: none; }
.artd-related li { padding: 9px 0; border-top: 1px dashed var(--c-line); font-size: 14px; line-height: 1.6; }
.artd-related li:first-child { border-top: 0; padding-top: 0; }
.artd-related a { color: var(--c-text); text-decoration: none; }
.artd-related a:hover { color: var(--c-primary); text-decoration: underline; }
.artd-related .artd-rel-meta { display: block; margin-top: 3px; font-size: 12.5px; color: var(--c-muted); }

/* ===== 文章详情页三栏布局：过刊树 | 正文 | 相关文章 + 点击排行 =====
   容器单独加宽（1360），否则三栏挤在一起正文就太窄 */
.container--wide { max-width: 1360px; }
.artd-wrap { display: grid; grid-template-columns: 250px minmax(0, 1fr) 280px; grid-template-areas: "side main extra"; gap: 18px; align-items: start; }
.artd-wrap > .arch-side { grid-area: side; width: auto; }
.artd-wrap > .arch-main { grid-area: main; }
.artd-wrap > .art-aside { grid-area: extra; }
/* 右栏跟随滚动；卡片较多时（相关文章/相关作者/相关机构/学术热点）栏内独立滚动，
   否则 sticky 元素高过视口后底部内容永远看不到 */
.art-aside { position: sticky; top: 14px; max-height: calc(100vh - 28px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.art-aside::-webkit-scrollbar { width: 6px; }
.art-aside::-webkit-scrollbar-thumb { background: #cfd8e6; border-radius: 3px; }
/* 相关作者：每行 3 位，姓名短、横排比竖排省一半高度 */
.art-side-list--cols3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; padding: 10px 10px 12px; }
.art-side-list--cols3 li { padding: 5px 6px; border-top: 0; background: #f4f7fb; border-radius: 4px; text-align: center; font-size: 13px; overflow: hidden; }
.art-side-list--cols3 li:hover { background: #e9eff8; }
.art-side-list--cols3 a { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.art-side-card { background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; margin-bottom: 16px; }
.art-side-card:last-child { margin-bottom: 0; }
.art-side-head { padding: 11px 14px; background: var(--c-primary); color: #fff; font-size: 14.5px; font-weight: 700; letter-spacing: .5px; }
/* 排行卡：标题 + 右侧「阅读 / 推荐」切换（同一张卡片两个榜，不额外占栏位） */
.art-side-head--tabs { display: flex; align-items: center; gap: 8px; padding-right: 10px; }
.art-side-title { flex: 0 0 auto; }
.art-rank-tabs { margin-left: auto; display: flex; gap: 4px; }
.art-rank-tab { border: 1px solid rgba(255, 255, 255, .45); background: transparent; color: #fff; font-family: inherit;
  font-size: 12px; line-height: 1.7; padding: 0 9px; border-radius: 11px; cursor: pointer; letter-spacing: 0; font-weight: 500; }
.art-rank-tab:hover { background: rgba(255, 255, 255, .16); }
.art-rank-tab.on { background: #fff; border-color: #fff; color: var(--c-primary); font-weight: 700; }
.art-rank-tab:focus-visible { outline: 2px solid #fff; outline-offset: 1px; }
.art-side-list { list-style: none; margin: 0; padding: 4px 0; }
.art-side-list li { padding: 9px 14px; font-size: 13.5px; line-height: 1.55; border-top: 1px dashed var(--c-line); }
.art-side-list li:first-child { border-top: 0; }
.art-side-list a { color: var(--c-text); text-decoration: none; display: block; }
.art-side-list a:hover { color: var(--c-primary); }
.art-side-list .art-side-meta { display: block; margin-top: 3px; font-size: 12px; color: var(--c-muted); }
/* 当期封面与目次下载（过刊页右栏，仅选中某一期时出现） */
.issue-cover { display: block; padding: 10px; }
.issue-cover img { width: 100%; height: auto; display: block; border: 1px solid var(--c-line); border-radius: 6px; box-shadow: 0 2px 8px rgba(20, 50, 90, .08); }
.issue-cover:hover img { box-shadow: 0 4px 14px rgba(20, 50, 90, .16); }
.issue-toc { padding: 0 10px 12px; }
.issue-toc-btn { display: flex; align-items: center; justify-content: center; gap: 6px; padding: 8px 10px;
  font-size: 13px; color: var(--c-primary); background: #eef4fc; border: 1px solid #d3e2f6; border-radius: 6px;
  text-decoration: none; transition: .18s; }
.issue-toc-btn:hover { background: var(--c-primary); border-color: var(--c-primary); color: #fff; }
.art-rank-no { display: inline-block; min-width: 17px; height: 17px; line-height: 17px; text-align: center; margin-right: 6px; border-radius: 3px; background: #e8edf5; color: #66738a; font-size: 11.5px; font-weight: 700; vertical-align: 1px; }
.art-rank-no.top { background: var(--c-primary); color: #fff; }
/* 中等屏：右栏降到正文下方（排行已移到目录页，详情页右栏只有相关文章，单列全宽即可） */
@media (max-width: 1280px) {
  .artd-wrap { grid-template-columns: 240px minmax(0, 1fr); grid-template-areas: "side main" "extra extra"; }
  .art-aside { position: static; display: grid; grid-template-columns: 1fr; gap: 14px; align-items: start; max-height: none; overflow: visible; }
  .art-side-card { margin-bottom: 0; }
}
@media (max-width: 900px) {
  .artd-wrap { grid-template-columns: 1fr; grid-template-areas: "side" "main" "extra"; }
  .art-aside { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  /* 窄屏三项改上下堆叠并统一左对齐，避免文字折行或溢出 */
  .artd-meta-row { flex-wrap: wrap; }
  .artd-meta-row > span, .artd-meta-row > span:nth-child(2), .artd-meta-row > span:last-child { flex:1 1 100%; text-align:left; white-space:normal; }
}

/* ===== 过刊浏览页三栏：过刊树 | 文章列表 | 点击排行 =====
   排行只在目录页展示（详情页右栏只有相关文章），容器同样加宽到 1360 保证列表宽度 */
.arch-layout--3col { display: grid; grid-template-columns: 290px minmax(0, 1fr) 280px; gap: 18px; align-items: start; }
.arch-layout--3col > .arch-side { width: auto; }
.arch-layout--3col > .art-aside { position: sticky; top: 14px; }
/* 中等屏：排行降到列表下方整行（只有一张卡，不做两列并排） */
@media (max-width: 1280px) {
  .arch-layout--3col { grid-template-columns: 260px minmax(0, 1fr); }
  .arch-layout--3col > .art-aside { grid-column: 1 / -1; position: static; display: block; margin-top: 4px; }
}
@media (max-width: 900px) {
  .arch-layout--3col { display: block; }
  .arch-layout--3col > .arch-side { margin-bottom: 16px; }
  .arch-layout--3col > .art-aside { margin-top: 16px; }
}

/* ================= 专题 / 虚拟专辑 ================= */
/* 顶部胶囊导航：全部专题 + 各专题（带篇数），当前项深蓝底 */
.topic-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.topic-tabs:empty { display: none; }
.topic-tab { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; font-size: 13.5px; color: var(--c-primary); background: #fff; border: 1px solid var(--c-line); border-radius: 18px; text-decoration: none; transition: .2s; }
.topic-tab:hover { border-color: var(--c-primary); background: var(--c-soft); }
.topic-tab.on { background: var(--c-primary); border-color: var(--c-primary); color: #fff; font-weight: 600; }
.topic-tab-n { font-size: 11.5px; line-height: 1; padding: 2px 6px; border-radius: 10px; background: var(--c-soft); color: var(--c-primary); }
.topic-tab.on .topic-tab-n { background: rgba(255,255,255,.22); color: #fff; }

/* 专题卡片网格 */
.topic-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
.topic-card { display: block; background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); overflow: hidden; text-decoration: none; box-shadow: var(--shadow); transition: .2s; }
.topic-card:hover { border-color: var(--c-primary); box-shadow: 0 6px 20px rgba(20,50,90,.12); transform: translateY(-2px); }
.topic-cover { aspect-ratio: 16 / 9; background: var(--c-soft); overflow: hidden; }
.topic-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.topic-card-body { padding: 16px 18px 18px; }
.topic-card-title { margin: 0 0 6px; font-size: 17px; color: var(--c-primary); }
.topic-card-meta { font-size: 12.5px; color: var(--c-muted); margin-bottom: 8px; }
.topic-card-intro { margin: 0; font-size: 13px; line-height: 1.75; color: #5a6b82; }

/* 专题详情头部 */
.topic-head { background: #fff; border: 1px solid var(--c-line); border-left: 4px solid var(--c-primary); border-radius: var(--radius); padding: 18px 22px; margin-bottom: 18px; box-shadow: var(--shadow); }
.topic-title { margin: 0 0 6px; font-size: 22px; color: var(--c-primary); }
/* 篇数统计：挂在专辑名称后（卡片/详情通用） */
.topic-count { margin-left: 10px; font-size: 14px; font-weight: normal; color: var(--c-muted, #6b7a90); white-space: nowrap; }
.topic-meta { font-size: 12.5px; color: var(--c-muted); }
.topic-intro { margin-top: 10px; font-size: 14px; line-height: 1.85; color: #46586f; }
.topic-intro p { margin: 0 0 8px; }
.topic-intro p:last-child { margin-bottom: 0; }
@media (max-width: 640px) {
  .topic-grid { grid-template-columns: 1fr; }
  .topic-tabs { gap: 6px; }
  .topic-tab { padding: 6px 12px; font-size: 13px; }
  .topic-title { font-size: 19px; }
}
/* 专题子方向分区：子方向即过滤条件，每个分区独立聚合文章 */
.subdirs { margin-top: 18px; }
.subdir { background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); padding: 16px 20px; margin-bottom: 16px; box-shadow: var(--shadow); }
.subdir-title { margin: 0 0 4px; font-size: 17px; color: var(--c-primary); display: flex; align-items: center; gap: 8px; line-height: 1.45; flex-wrap: wrap; }
.subdir-title .badge { flex: none; font-size: 14px; line-height: 1; padding: 3px 8px; border-radius: 6px; font-weight: 700; }
.subdir-title .subdir-n { flex: none; font-size: 12.5px; font-weight: 400; color: var(--c-muted); margin-left: 2px; }
.badge.star { background: #fff3e0; color: #c2410c; }
.badge.cov { background: #e8f0fe; color: #1d4ed8; }
.subdir-meta { font-size: 12.5px; color: var(--c-muted); margin: 0 0 12px; }
.subdir-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.subdir-empty { margin: 4px 0 0; font-size: 13px; color: var(--c-muted); }
@media (max-width: 640px) {
  .subdir-list { grid-template-columns: 1fr; }
}

/* ================= 参考文献 DOI 链接 =================
   参考文献里的 DOI 在渲染时自动包成 doi.org 外链，样式上保持与正文同色，
   只在悬停时出现下划线 —— 避免整段文献列表被蓝字打成"链接海"。 */
.doi-link { color: inherit; text-decoration: none; border-bottom: 1px dotted rgba(26, 111, 196, .55); }
.doi-link:hover, .doi-link:focus-visible { color: var(--c-primary); border-bottom-color: var(--c-primary); text-decoration: none; }
.artd-doi .doi-link { color: var(--c-primary); font-weight: 600; border-bottom-color: rgba(26, 111, 196, .45); }
/* DOI 尚未在 CNKI 注册（data/doi-status.json 判定 missing）：不做成可点链接，改为纯文本 + 牌标 */
.artd-doi .doi-pending { font-weight: 600; color: #4a5872; letter-spacing: .2px; }
.artd-doi .doi-tag { display: inline-block; margin-left: 7px; padding: 0 6px; border-radius: 3px; background: #fff3e2; border: 1px solid #f3d7ac; color: #a86412; font-size: 11.5px; line-height: 17px; vertical-align: 1px; font-weight: 400; }
/* 知网检索：DOI 无法解析时的兜底入口，按篇名在知网找原文 */
.artd-doi .doi-cnki { margin-left: 14px; font-size: 12.5px; color: var(--c-primary); text-decoration: none; white-space: nowrap; }
.artd-doi .doi-cnki:hover { text-decoration: underline; }

/* ================= 图片放大预览（灯箱） =================
   深色遮罩 + 居中大图，底部一条信息栏（图注 / 序号 / 查看原图）。
   打开时锁住 body 滚动（用 top 负值保持原位置），关闭后滚回原处。 */
.iz { position: fixed; inset: 0; z-index: 9000; display: none; background: rgba(8, 14, 26, .93); }
.iz.is-open { display: flex; flex-direction: column; }
.iz-stage { flex: 1 1 auto; min-height: 0; display: flex; align-items: center; justify-content: center; padding: 26px 76px; overflow: auto; }
.iz-img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; border-radius: 2px; box-shadow: 0 14px 44px rgba(0, 0, 0, .5); cursor: zoom-in; }
.iz-img.is-actual { max-width: none; max-height: none; cursor: zoom-out; }
.iz-close { position: absolute; top: 14px; right: 18px; z-index: 3; width: 42px; height: 42px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .12); color: #fff; font-size: 26px; line-height: 1; cursor: pointer; transition: background .18s; }
.iz-close:hover { background: rgba(255, 255, 255, .26); }
.iz-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; width: 46px; height: 70px; border: 0; border-radius: 8px; background: rgba(255, 255, 255, .1); color: #fff; font-size: 34px; line-height: 1; cursor: pointer; transition: background .18s; }
.iz-nav:hover { background: rgba(255, 255, 255, .24); }
.iz-nav[hidden] { display: none; }
.iz-prev { left: 10px; }
.iz-next { right: 10px; }
.iz-bar { flex: 0 0 auto; display: flex; align-items: center; gap: 14px; padding: 10px 20px 16px; color: #dbe4f2; font-size: 13px; }
.iz-cap { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.iz-count { flex: 0 0 auto; color: #93a7c2; font-variant-numeric: tabular-nums; }
.iz-open { flex: 0 0 auto; color: #cfe0f7; text-decoration: none; border-bottom: 1px dashed rgba(207, 224, 247, .5); }
.iz-open:hover { color: #fff; border-bottom-style: solid; }
body.iz-lock { position: fixed; left: 0; right: 0; width: 100%; overflow: hidden; }
/* 可放大的图片给一个放大镜光标，读者知道能点 */
.ann-detail-body img, .page-body img, .honor-cert img, .issue-cover img, .topic-cover img { cursor: zoom-in; }
@media (max-width: 640px) {
  .iz-stage { padding: 16px 12px; }
  .iz-nav { width: 38px; height: 56px; font-size: 26px; background: rgba(255, 255, 255, .16); }
  .iz-prev { left: 4px; }
  .iz-next { right: 4px; }
  .iz-bar { padding: 8px 14px 12px; font-size: 12px; }
}
@media print {
  .iz { display: none !important; }
  .doi-link { color: inherit !important; border-bottom: 0 !important; }
  /* 纸面上没有「点击」，知网检索入口与待注册提示都不必印 */
  .doi-cnki, .doi-tag { display: none !important; }
}

/* ================= 科技评价页（仿广东省电子学会科技评价栏目，自建详情页） ================= */
.eval-steps { display:grid; grid-template-columns:repeat(4, 1fr); gap:14px; margin:8px 0 4px; }
.eval-step { position:relative; padding:16px 14px 16px 46px; min-height:54px; display:flex; align-items:center;
  background:linear-gradient(135deg,#eef3fb,#e2ecfa); border:1px solid #d4e0f2; border-radius:10px;
  font-size:14px; line-height:1.4; color:#23324a; }
.eval-step .eval-step-num { position:absolute; left:12px; top:50%; transform:translateY(-50%);
  width:24px; height:24px; border-radius:50%; background:var(--c-primary); color:#fff; font-size:13px; font-weight:700;
  display:flex; align-items:center; justify-content:center; }
.eval-value-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:14px; margin:8px 0; }
.eval-value-card { background:#f6f9fe; border:1px solid #e2eaf6; border-radius:10px; padding:14px 15px; }
.eval-value-card h5 { margin:0 0 6px; font-size:15px; color:var(--c-primary-dark); font-weight:700; }
.eval-value-card p { margin:0; font-size:13px; line-height:1.65; color:#48586f; }
.eval-list { margin:6px 0; padding-left:22px; }
.eval-list li { margin:4px 0; font-size:14.5px; line-height:1.7; color:#2c3a52; }
.ext-link { display:inline-flex; align-items:center; gap:6px; margin-top:6px; padding:8px 14px;
  background:var(--c-primary); color:#fff; border-radius:8px; text-decoration:none; font-size:14px; font-weight:600; }
.ext-link:hover { background:var(--c-primary-dark); }
/* 申报材料清单（含附件）：结构化列表 + 下载按钮 */
.eval-materials { margin:10px 0 4px; }
.eval-materials h4 { margin:0 0 8px; }
.eval-mat-intro { margin:0 0 12px; color:#41506a; font-size:14px; line-height:1.7; }
.eval-mat-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.eval-mat-list li { display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding:12px 16px; border:1px solid #e3eaf4; border-radius:9px; background:#fbfcfe; }
.eval-mat-name { font-size:14.5px; color:#1f3555; font-weight:600; }
.eval-dl { display:inline-flex; align-items:center; gap:6px; padding:7px 14px; background:var(--c-primary);
  color:#fff; border-radius:7px; text-decoration:none; font-size:13px; white-space:nowrap; }
.eval-dl:hover { background:var(--c-primary-dark); }
@media (max-width: 900px) {
  .eval-steps, .eval-value-grid { grid-template-columns:repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .eval-mat-list li { flex-direction:column; align-items:flex-start; gap:8px; }
}
@media (max-width: 520px) {
  .eval-steps, .eval-value-grid { grid-template-columns:1fr; }
}

/* ===== 分类号查询（clsf.html）：中图法 TN / TP 类目速查 =====
   2000+ 条一次性渲染，用 CSS 多列排布；过滤只切 hidden（不重建 DOM），所以输入零卡顿 */
.clsf-panel { background:var(--c-card); border:1px solid var(--c-line); border-radius:var(--radius); box-shadow:var(--shadow); padding:20px 22px 16px; }
.clsf-bar { display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.clsf-search { position:relative; flex:1 1 320px; min-width:220px; display:flex; align-items:center; }
.clsf-search-ico { position:absolute; left:12px; top:50%; transform:translateY(-50%); font-size:17px; color:var(--c-muted); pointer-events:none; line-height:1; }
.clsf-search input { width:100%; padding:10px 36px 10px 34px; border:1px solid var(--c-line); border-radius:8px; font-size:15px; font-family:inherit; color:var(--c-text); background:#fbfcfe; outline:none; transition:border-color .15s ease, box-shadow .15s ease; }
.clsf-search input:focus { border-color:var(--c-accent); box-shadow:0 0 0 3px rgba(63,138,208,.12); background:#fff; }
.clsf-search input::-webkit-search-cancel-button { display:none; }
.clsf-clear { position:absolute; right:6px; width:26px; height:26px; border:0; background:transparent; color:var(--c-muted); font-size:18px; line-height:1; cursor:pointer; border-radius:50%; }
.clsf-clear:hover { background:var(--c-soft); color:var(--c-primary); }
.clsf-tabs { display:flex; gap:6px; }
.clsf-tabs button { padding:8px 16px; border:1px solid var(--c-line); background:#fff; color:var(--c-text); border-radius:8px; font-size:14px; font-family:inherit; cursor:pointer; transition:all .15s ease; }
.clsf-tabs button:hover { border-color:var(--c-accent); color:var(--c-primary); }
.clsf-tabs button.on { background:var(--c-primary); border-color:var(--c-primary); color:#fff; }
.clsf-stat { font-size:13.5px; color:var(--c-muted); margin:14px 0 2px; }
.clsf-stat b { color:var(--c-primary); font-weight:600; }
.clsf-loading { color:var(--c-muted); text-align:center; padding:34px 0; }
.clsf-group { border-top:1px solid var(--c-line); margin-top:14px; padding-top:14px; }
.clsf-gh { display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; margin:0 0 10px; font-size:17px; color:var(--c-text); }
.clsf-gh b { font-size:18px; color:var(--c-primary); letter-spacing:.5px; }
.clsf-gname { font-weight:600; }
.clsf-gen { font-style:normal; font-size:12.5px; color:var(--c-muted); }
.clsf-gcount { margin-left:auto; font-style:normal; font-size:12px; color:var(--c-primary); background:var(--c-soft); padding:1px 9px; border-radius:10px; }
.clsf-list { columns:3; column-gap:22px; }
.clsf-item { display:inline-block; width:100%; text-align:left; border:0; background:transparent; padding:4px 6px 4px 7px; margin:0 0 1px; font-family:inherit; font-size:13.5px; line-height:1.55; color:var(--c-text); cursor:pointer; border-radius:5px; break-inside:avoid; -webkit-column-break-inside:avoid; user-select:text; -webkit-user-select:text; }
/* display:inline-block 会覆盖浏览器对 [hidden] 的 display:none，必须显式补回，否则搜索过滤失效 */
.clsf-item[hidden] { display:none !important; }
.clsf-item:hover { background:var(--c-soft); }
.clsf-item:focus-visible { outline:2px solid var(--c-accent); outline-offset:-2px; }
.clsf-item code { font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; color:var(--c-primary); font-size:13px; margin-right:7px; }
.clsf-item.lv2 code { font-weight:700; }
.clsf-item.lv2 .clsf-name { font-weight:600; }
.clsf-item.lv5 { font-size:13px; color:#41506a; }
.clsf-name { display:inline; }
.clsf-alt-flag { font-style:normal; font-size:11px; line-height:1.6; color:#b96400; background:#fff4e5; border:1px solid #f3d3a4; padding:0 5px; border-radius:3px; margin-left:6px; white-space:nowrap; }
.clsf-item.is-alt code { color:#8a6a3a; }
.clsf-item.is-copied { background:#e8f4ea; }
.clsf-item.is-copied::after { content:'✓'; margin-left:7px; color:#2e8b46; font-weight:700; }
.clsf-none { padding:26px 0; }
.clsf-tip { margin:16px 0 0; padding-top:12px; border-top:1px dashed var(--c-line); }
.clsf-tip p { margin:0; font-size:13px; line-height:1.8; color:var(--c-muted); }
@media (max-width: 1000px) { .clsf-list { columns:2; } }
@media (max-width: 600px) {
  .clsf-list { columns:1; }
  .clsf-panel { padding:16px 14px 12px; }
  .clsf-gh { font-size:16px; }
  .clsf-gcount { margin-left:0; }
}
/* 页面底部说明：中英文文案对应后统一居中显示（2026-11-12） */
.db-note { text-align:center; }
.db-note p, .db-note span { text-align:center; }
