/* =====================================================================
   template-fix.css — 模板态专属修正（博达生产环境）
   ---------------------------------------------------------------------
   版本：新的模板/v0.1        引入位置：每个模板页 <head> 的最后一个 <link>
   （base.css → 本页 css → template-fix.css）

   【为什么需要这个文件】
   base.css / index.css / list.css / article.css 四个文件与
   `新的静态站/v0.1/assets/css/` **逐字节相同**（md5 可核）——它们是"预览态"样式，
   所面向的 DOM 是 v0.1 里手写的组件渲染态结构。

   在真实博达渲染态下，有三类东西是 v0.1 里不存在的，四个共用文件无法覆盖：
     ① 组件在标记处输出内容时**自带的样式表**（1059064 分页区注入的内联 <style>）
     ② 组件输出内容上**自带的内联 style 属性**（1059064 的 .content-news-list 内联 padding）
     ③ 由 CMS 富文本承载的内容**自带内联样式**（版权 190569 的字号/颜色，深色字在深色页脚上不可读）
   以及一处"预览态与生产态结构不同"的必然差异：
     ④ v0.1 把分页写进 .zxf_pagediv；生产的分页由 1059064 输出在 .content-list-2 内部，
        .zxf_pagediv 恒为空

   本文件只做这四件事，不改任何组件 HTML（铁律 1），也不改四个共用文件。
   依据均来自 `当前静态网站/*.html` 的实测渲染态，逐条注明。
   ===================================================================== */

/* ══════════════════════════════════════════════════════════════════
   ① 组件 1059064「静态翻页列表」：列表外层的内联 padding 归零
   实测（当前静态网站/navList.html）：
     <div class="content-news-list" style="padding: 10px 0px 15px 20px;">
   该内联样式由组件输出、写在 elementname 内，模板无法去掉；不改则列表整体
   上下左右多出 10/15/20px 留白，与设计稿（列表项自带 padding:24px 30px，
   外层无留白）不一致。内联样式只能由 !important 覆盖，故此处使用。
   作用域限定在 .content-list-2 内，不影响详情页同名容器。
   ══════════════════════════════════════════════════════════════════ */
.content-list-2 .content-news-list{padding:0!important}

/* ══════════════════════════════════════════════════════════════════
   ② 组件 1059064：分页控件的生产态样式
   实测结构（当前静态网站/navList.html，位于 .content-list-2 内）：
     <div align="center"> [内联 <style>] [脚本]
       <table><tr><td><table class="headStyle19jt4dur70" width="100%"><tr valign="middle">
         <td nowrap align="left" width="1%" id="fanye1059064">共2条&nbsp;&nbsp;1/1&nbsp;</td>
         <td nowrap align="left"><div>
           <span class="PrevDisabled">首页</span><span class="PrevDisabled">上页</span>
           <span class="NextDisabled">下页</span><span class="NextDisabled">尾页</span>
         </div></td>
       </tr></table></td></tr></table>
     </div>
   要点：
   · 计数（「共 N 条 x/y」）就输出在 td#fanye{viewid} 里 —— 这正是设计稿
     「共 N 条 · 第 x / y 页」的数据来源，但位置固定在分页行，CSS 无法搬到
     面板标题栏（见 VERSION.md 偏差 D-T04）。
   · 组件自带 <style> 用 .headStyle{实例号} 前缀给 a/span 上了 12px 宋体 +
     浅蓝直角边框。类名前缀随实例变化、不可依赖，故本文件改用**稳定的子类名**
     （this-page / break / Prev / Next / PrevDisabled / NextDisabled）并加
     .content-list-2 / td[id^=fanye] 前缀提高优先级压过它（不用 !important）。
   ══════════════════════════════════════════════════════════════════ */
.content-list-2 .content-news-list>div[align="center"]{margin-top:30px;text-align:center}
/* 组件最外层那张表是**收缩宽度**（无 width 属性），其内层表 width="100%" 只是相对它，
   结果整条分页栏贴在左侧、右对齐失效。这里把最外层表撑满，内层的 70% 才有意义。 */
.content-list-2 .content-news-list>div[align="center"]>table{width:70%;margin: 5px}
.content-list-2 table[class^="headStyle"]{width:100%}
/* 计数格：与设计稿面板标题栏右侧的统计文字同字号同色 */
.content-list-2 td[id^="fanye"]{font-family:var(--font);font-size:12.5px;line-height:42px;color:#93A1B5;white-space:nowrap;text-align:left;padding:0 16px 0 0}
/* 页码格：右对齐，逐项做成设计稿的圆角方块 */
.content-list-2 td[id^="fanye"]+td{text-align:right}
.content-list-2 td[id^="fanye"]+td>div{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;font-size:0}
.content-list-2 td[id^="fanye"]+td a,
.content-list-2 td[id^="fanye"]+td span{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:#fff;font-family:var(--font-en);font-size:14px;line-height:1;color:var(--body);text-decoration:none;margin:0 0 0 10px}
.content-list-2 td[id^="fanye"]+td a:hover{border-color:var(--teal);color:var(--teal);background:#fff}
.content-list-2 td[id^="fanye"]+td a.this-page{background:var(--grad);color:#fff;border-color:transparent;box-shadow:0 8px 18px rgba(47,123,255,.25)}
.content-list-2 td[id^="fanye"]+td span.PrevDisabled,
.content-list-2 td[id^="fanye"]+td span.NextDisabled{opacity:.4}
.content-list-2 td[id^="fanye"]+td span.break{min-width:0;padding:0 2px;border:none;background:transparent;letter-spacing:2px}

/* ══════════════════════════════════════════════════════════════════
   ⑩ 组件 1059064：隐藏「转到 x 页」+ 移动端只留「上页 / 下页」
   需求（GOAL.md 末项）：· PC（>1080）隐藏「转到 x 页」功能（按钮 + 输入框）
                        · 手机（≤1080）只显示「上页」「下页」两个按钮
                        · 仅改 CSS，不动组件 HTML（铁律 1）
   实测结构（翻页内部代码.txt；分页条在 .content-list-2 内 td[id^=fanye] 的相邻 td 里）：
     <div>
       <span class="PrevDisabled">首页</span>
       <span class="PrevDisabled">上页</span>
       <a class="Next" href="…">下页</a>
       <a class="Next" href="…">尾页</a>
       &nbsp;&nbsp;
       <input type="button" id="gotopagebut" class="defaultButtonStyle" value="转到">
       <input size="2" id="a1059064GOPAGE" class="defaultInputStyle">页
     </div>
   · ① 转到控件（#gotopagebut 按钮 + #a1059064GOPAGE 输入框）：两个档位都不需要，
     全局隐藏。两个 id 是组件按实例号拼出、稳定存在（翻页内部代码.txt 与生产态一致），
     故用 .content-list-2 前缀 + id 提权压过组件自带 <style> 的 .defaultButtonStyle /
     .defaultInputStyle（二者均不设 display，无 !important 必要 —— 遵循 dr-005）。
   · ② 按钮后的裸文本「页」与 `&nbsp;&nbsp;` 是 **text 节点**，CSS 选择器无法命中；
     §② 已把 td[id^=fanye]+td>div 的 font-size 归零，这两个 text 节点宽度即为 0，
     不再占位、不留右侧空档（a/span 的 14px 由 §② 单独恢复）。
   · ③ 手机档（≤1080）隐藏计数格与首/尾页，保留 div 的第 2 个 span.PrevDisabled
     （上页）与第 1 个 a.Next（下页）；数字页码/省略号在被隐藏的兄弟之间，不受影响。
   ══════════════════════════════════════════════════════════════════ */
.content-list-2 #gotopagebut,
.content-list-2 #a1059064GOPAGE{display:none}
@media (max-width:1080px){
  .content-list-2 td[id^="fanye"]{display:none}
  .content-list-2 td[id^="fanye"]+td>div>span.PrevDisabled:first-child{display:none}
  .content-list-2 td[id^="fanye"]+td>div>a.Next+a.Next{display:none}
}

/* ══════════════════════════════════════════════════════════════════
   ③ 分页容器 .content-page > .zxf_pagediv：空态隐藏
   实测（当前静态网站/navList.html）：该容器在原站就是空的（<DIV class="content-page"
   style="text-align: right"><DIV class="zxf_pagediv"></DIV></DIV>），真分页由
   1059064 自己输出。模板保留该容器以对齐旧模板结构，但 list.css 给了它
   padding:34px 0 8px，空着会留下 42px 空白带 —— 故空态隐藏。
   若将来生产环境真的往 .zxf_pagediv 注入分页内容，本条自动失效（不隐藏），
   list.css 中针对它的样式随即生效。
   ══════════════════════════════════════════════════════════════════ */
.content-page:has(.zxf_pagediv:empty){display:none}

/* ══════════════════════════════════════════════════════════════════
   ④ 组件 190569「版权」：富文本内联样式归一
   实测（当前静态网站/details.html、navList.html）：版权内容由 CMS 富文本输出，
   形如
     <p><span style="font-family: 微软雅黑; font-size: 14px; color: rgb(0,0,0);">版权所有：…</span></p>
     <p style="margin-top:0;margin-bottom:25px;padding:0;font-size:14px;…">…技术支持…</p>
     （多段 <p>，含一段 color:rgb(255,255,255) 的 !important）
   问题：深色字落在深色页脚上不可读，且 14px/25px 下边距会撑高底栏，
   与设计稿（12.5px、半透明白、单行底栏）不符。
   处理：字号/颜色/行高/外边距强制归一（内联样式只能用 !important 压过）。
   多段 <p> 改为横向排布 + 自动换行，还原设计稿"单行底栏"的形态。
   ══════════════════════════════════════════════════════════════════ */
.footer-bottom .foot-copyright{display:flex;flex-wrap:wrap;align-items:center;gap:2px 18px}
.footer-bottom .foot-copyright p{margin:0!important;padding:0!important}
.footer-bottom .foot-copyright p,
.footer-bottom .foot-copyright span,
.footer-bottom .foot-copyright a{font-family:var(--font)!important;font-size:12.5px!important;line-height:1.6!important;color:rgba(255,255,255,.4)!important}
.footer-bottom .foot-copyright a:hover{color:var(--cyan)!important}

/* ══════════════════════════════════════════════════════════════════
   ⑤ 组件 190553「图文新闻」：多出一层同名容器 → 中和
   实测（当前静态网站/index.html）：
     <div class="content-imgnews">          ← 模板容器（本模板里就是 index.jsp 的那个）
       <div class="content-imgnews">        ← 组件自己又输出一层
         <div class="news-img">…</div><div class="news-details">…</div>
       </div>
       <script>…</script>
     </div>
   而 index.css 把 .content-imgnews 当作「卡片」来画（背景 / 圆角 / 边框 / 阴影 /
   hover 位移），若不处理，生产上会出现**双层卡片**（双边框 + 双阴影 + 内容缩进）。
   处理：让内层不生成盒子（display:contents），其子元素直接参与外层卡片的布局 ——
   等价于 v0.1 的单层结构，index.css 的既有规则逐条照常生效。
   （同样的嵌套也存在于未启用的 190554 党团思政组件；本设计首页不含该位，故不处理。）
   ══════════════════════════════════════════════════════════════════ */
.content-imgnews>.content-imgnews{display:contents}

/* ══════════════════════════════════════════════════════════════════
   ⑥ 组件 190572 / 190573「学院新闻」：日期 <span> 没有类名 → 重新绑定样式
   实测（当前静态网站/index.html）：
     <li><a href="…" title="…">标题</a><span>2025-04-27</span></li>
   日期 span 是**无类名**的裸 <span>，而 index.css 的规则写的是
   `.content-newslist li>span.content-news-time`（v0.1 静态站里那是我手写的类名）。
   → 生产态该规则打不中：日期会丢掉圆角底色块、居中、等宽字体，且因为落到
     `white-space:normal`，浏览器会在连字符处断行，显示成「2025-04-」+「27」两行。
   处理：用 `li>span` 重新绑定同一套声明（与 index.css 第 73/75 行逐条一致）。
   若将来组件给该 span 加上了类名，两条规则声明相同、不会冲突。
   ══════════════════════════════════════════════════════════════════ */
.content-newslist li>span{grid-column:1;grid-row:1;flex:none;width:74px;height:74px;border-radius:12px;background:linear-gradient(150deg,#F2F7FF,#EAF7F4);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-family:var(--font-en);font-size:12px;line-height:1;white-space:nowrap;color:#8A97AB;transition:all .3s ease}
.content-newslist li:hover>span{background:var(--grad);border-color:transparent;color:#fff}

/* ══════════════════════════════════════════════════════════════════
   ⑦ 列表项「最后一条去掉下边框」：组件在 li 之间插入了隐藏分隔节点
   实测（当前静态网站/navList.html）：列表是
     <li class="content-news-li">…</li>
     <span id="section_u7_0" style="display:none;">…</span>
     <li class="content-news-li">…</li> …
   末尾还有一个隐藏 span，于是 list.css 的 `.content-news-li:last-child`
   在生产态永远不成立 → 最后一条会多出一条虚线。改用 `:last-of-type`
   （同级里最后一个 li），与分隔 span 无关。
   ══════════════════════════════════════════════════════════════════ */
.content-list-2 .content-news-li:last-of-type{border-bottom:none}

/* ══════════════════════════════════════════════════════════════════
   ⑧ 列表页侧栏：子栏目链接右侧的箭头
   v0.1 静态站里每条链接都手写了 `<span class="arrow">→</span>`，
   而组件 190563 输出的链接是素面 `<a href="…">学院简介</a>`（无子节点），
   所以 list.css 的 `.side-card .content-title-1 a .arrow` 在生产打不中。
   箭头属「装饰型且文案固定」，按 decisions/dr-002 的既定处置规则用伪元素还原。
   （加 `:not(:has(.arrow))` 是为了万一组件日后自带 .arrow 时不出现双箭头。）
   ══════════════════════════════════════════════════════════════════ */
.side-card .content-title-1 a:not(:has(.arrow))::after{content:"→";font-size:12px;color:#B7C2D0;transition:all .25s ease}
.side-card .content-title-1 a:hover::after,
.side-card .content-title-1 a.active::after{color:var(--teal)}

/* ══════════════════════════════════════════════════════════════════
   ⑨ 组件 190574「学术科研」：卡片描述字段的内容形态兜底
   实测（当前静态网站/index.html）：`<div class="content-learimg-2">` 的 <p> 里
   是**中文摘要**（约一两句话），而设计稿在该位置画的是一行英文小标签
   （Frontier / Symposium）。index.css 把它排成 11.5px / 字距 2px / 大写的小标签。
   内容长度不可控，故这里只做「防爆」：最多 2 行截断，防止长摘要把卡片撑变形。
   风格是否按设计稿保留「小标签」形态，留给用户决策（见 VERSION.md D-T07）——
   若编辑把该字段留空，组件输出 `<p></p>`，index.css 的 `:empty` 规则会整块隐藏。
   ══════════════════════════════════════════════════════════════════ */
.content-learimg-2>p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* ══════════════════════════════════════════════════════════════════
   已核查、**无需**处理的项目（记录在此以免后人重复排查）
   · .nav-time 内：组件 190510 输出的是 <div id="c_lunar190510"> 而非 v0.1 的
     <span id="nav-time">。浏览器解析不会因 div 而闭合 span，.nav-time 仍是其父，
     base.css 的 .topbar .nav-time{display:inline-flex;gap:2px} 照常生效；
     main.js 里的 #nav-time 取值因取不到元素而静默跳过，日期由组件自行输出。
   · .nav-logo / .nav-search / .nav-columnbox / .content-address / .content-imgnews /
     .content-newslist / .content-noticelist / .content-learimg / .content-news-title /
     .content-news-list(详情页) / .foot-copyright：组件输出的根节点/子节点结构与
     v0.1 手写的一致，四个共用文件的既有选择器全部命中（见 VERSION.md 自检表）。
   · 详情页组件会注入 <link rel="stylesheet" .../news/content/format4.css>（富文本
     格式样式表），本地无法取到其内容。article.css 对 .v_news_content 的排版规则是
     高优先级类选择器，但若上线后发现被该表覆盖，需按生产实际调整 —— 见 VERSION.md 待确认项。
   · 列表页侧栏「当前栏目高亮」（list.css 的 `.content-title-1 a.active`）：组件
     190563 输出的子栏目链接**不带任何当前栏目标记**（实测同为 `<a href="…">栏目名</a>`），
     故生产态不会出现高亮态。CSS 无法判断"当前是哪一条"，需 JS 按 location 匹配或组件
     支持才可解决 —— 登记为偏差 D-T08，本轮不动手。
   · `.zxf_pagediv a / span / a.this-page / span.break` 等规则（list.css 第 79–83 行）：
     生产态该容器恒为空（真分页由 1059064 输出在 .content-list-2 内），故这些规则
     恒不命中，属**预览态专用**的保留代码。不删除：若将来生产真的向该容器注入分页，
     它们立即生效。
   · `.content-list-2 td[id^=fanye]+td a.this-page / span.break` 在本轮实测数据里
     零命中：旧站列表只有 1 页，组件因此只输出了「首页/上页/下页/尾页」四个禁用态 span，
     没有数字页码与省略号。多页时这些选择器会命中，属数据依赖，非缺陷。
   ══════════════════════════════════════════════════════════════════ */

/* ══════════════════════════════════════════════════════════════════
   已核查 · 三张栏目页（jsld1 / szdw / szdw1，2026-09-24 追加）
   结论：这三页**不需要任何新增修正规则**，column.css 的规则生产态全部生效。
   · 组件 190567 的卡片墙渲染态为
       <div class="content-details">
         <div class="content-leaderbox">
           <div class="content-leaderimg"><img …></div>
           <div class="content-leaderintroduce"><a>姓名</a><p>职务</p></div>
       组件**自带**这一层 .content-details，所以模板里标记直接替换整个 .content-details
       元素（不额外再包一层），实测嵌套层数 = 1，无双层容器假象（与首页 190553 情形不同）。
   · 人像不会被运行时脚本改写：生产页确有 centerCutImg.js（7121 B）与 dynclicks.js
     （3798 B），但三页发布态 HTML 中**没有 cutImg( 调用**，且通读 dynclicks.js 源码
     它也不调用 cutImg、不动 .content-leaderimg。故人像版式由 column.css 的
     `aspect-ratio:7/10` 唯一决定（实测原图 1638×2295 即该比例）。
   · 侧栏组件 190563 在本三页带内联 style（background:#fff 等），只作用于自身盒模型，
     与 list.css 的 .side-card 声明不冲突：实测侧栏宽 280、链接 padding 15px 24px、
     dashed 分隔线、渐变标题栏均与列表页一致。
   · `.panel-head .content-span-2`（column.css 的 "LEADER" 副标题）只存在于 jsld1 的
     模板骨架；szdw / szdw1 的面板标题栏整块由组件 190586 / 190584 输出，只有
     .content-span-1。该规则在这两页零命中属正常，非缺陷。
   · `.content-page:has(.zxf_pagediv:empty)` 在三张栏目页零命中：这三页不含分页组件，
     页面里根本没有 .content-page 节点（页高 1375 / 2681 / 2681）。
   · `.panel-leaders .content-leaderintroduce > p:empty` 零命中：当前数据下每位导师的
     职务字段都非空；若某条留空，本规则会隐藏空行，属兜底。
   · 侧栏「当前栏目高亮」同上：组件不带当前栏目标记，三页均无 .active（偏差 D-T08）。
   ══════════════════════════════════════════════════════════════════ */
