/* ============================================================
   BallFact · article.css —— 档案/内容页共用样式（依赖 global.css）
   适用于：/manifesto/ /rankings/ /fm/ /truth/ 及其 /zh/ 版本
   ============================================================ */

/* --- 内容页 nav（比首页简化）；左右 2rem 保证任意窗口尺寸下主体不贴边 --- */
.page { padding:4.5rem 2rem 5.5rem; }

/* --- 面包屑 --- */
.crumb { display:flex; align-items:center; gap:0.75rem; font-size:0.75rem; letter-spacing:.16em; text-transform:uppercase; color:var(--faint); margin-bottom:2.5rem; flex-wrap:wrap; }
.crumb a { color:var(--dim); transition:color .2s; }
.crumb a:hover { color:var(--acc); }
.crumb .sep { color:var(--line-2); }
.crumb .here { color:var(--acc); }

/* --- 档案头 --- */
.art-head { border:1px solid var(--line); background:var(--surface); padding:3rem 2.75rem; margin-bottom:3.5rem; position:relative; }
.art-eyebrow { display:flex; align-items:center; gap:0.875rem; font-size:0.75rem; letter-spacing:.2em; text-transform:uppercase; color:var(--acc); margin-bottom:1.5rem; flex-wrap:wrap; }
.art-eyebrow .line { width:2.5rem; height:1px; background:var(--acc); }
.art-head h1 { font-size:2.75rem; line-height:1.08; margin-bottom:1.375rem; max-width:56rem; }
.art-head .lead { color:var(--dim); font-size:1rem; line-height:1.95; max-width:52rem; }
.art-head .lead b { color:var(--text); font-weight:500; }
.art-meta { display:flex; flex-wrap:wrap; gap:0.625rem; margin-top:2rem; }

/* --- 档案正文区块（Question/Evidence/Method/Verdict/Appendix 仪式感结构） --- */
.art-block { margin-bottom:4rem; }
.art-block-head { display:flex; align-items:baseline; gap:1.125rem; margin-bottom:1.5rem; border-bottom:1px dashed var(--line-2); padding-bottom:0.875rem; }
.art-block-head .k { font-size:0.75rem; letter-spacing:.2em; color:var(--acc); text-transform:uppercase; white-space:nowrap; }
.art-block-head h2 { font-size:1.625rem; line-height:1.15; }

.prose p { color:var(--dim); font-size:0.9375rem; line-height:2; margin-bottom:1.375rem; }
.prose p b { color:var(--text); font-weight:500; }
.prose p a { color:var(--acc); border-bottom:1px solid rgba(204,255,0,.3); transition:border-color .2s; }
.prose p a:hover { border-color:var(--acc); }

/* --- 数据表格（档案证据表，移动端容器内横滚） --- */
.tbl-wrap { border:1px solid var(--line); background:var(--surface); overflow-x:auto; -webkit-overflow-scrolling:touch; margin-bottom:1.375rem; }
.tbl-cap { display:flex; justify-content:space-between; gap:0.75rem; padding:0.875rem 1.375rem; border-bottom:1px solid var(--line); font-size:0.71875rem; letter-spacing:.16em; text-transform:uppercase; color:var(--faint); flex-wrap:wrap; }
.tbl-cap b { color:var(--acc); font-weight:500; }
table.dt { width:100%; border-collapse:collapse; min-width:40rem; }
.dt th { text-align:left; font-size:0.6875rem; letter-spacing:.14em; text-transform:uppercase; color:var(--faint); font-weight:500; padding:0.75rem 0.875rem; border-bottom:1px solid var(--line); background:var(--bg-2); white-space:nowrap; }
.dt td { padding:0.8125rem 0.875rem; border-bottom:1px solid var(--line); font-size:0.875rem; color:var(--dim); white-space:nowrap; }
.dt tr:last-child td { border-bottom:none; }
.dt tr:hover td { background:rgba(204,255,0,.04); }
.dt .hl { color:var(--acc); font-weight:700; }
.dt .num { font-variant-numeric:tabular-nums; }

/* ============================================================
   属性总表打样规范（.attr-t）—— 球员数据库数据页模板
   1) 隔行变色  2) 六大属性族轻色块区分（攻/组/防/身/心/门）
   3) 行+列同色高亮、当前单元格异色高亮（JS 见 case.js xh）
   4) td.inc = 计入该球员位置综合分的属性（带●标记）
   列位：1 名 / 2 位 / 3–7 进攻 / 8–12 组织 / 13–16 防守 /
        17–22 身体 / 23–28 心理 / 29–31 门将 / 32 综合
   逐年表 .yr-t（马尔蒂尼页打样）为 30 列无门将列，族色区间整体右移 1，见下方覆盖。
   ============================================================ */
.attr-t td { padding:.42rem .45rem; font-size:.7rem; text-align:center; }
.attr-t td.pl, .attr-t th.pl { text-align:left; }
.attr-t thead th { text-align:center; } /* 族分组表头行与缩写行统一居中（打样约定） */
.attr-t tbody tr:nth-child(even) td { background:linear-gradient(rgba(0,0,0,.22),rgba(0,0,0,.22)); }
.attr-t tbody td:nth-child(n+3):nth-child(-n+7)  { background:linear-gradient(rgba(204,255,0,.035),rgba(204,255,0,.035)); }
.attr-t tbody td:nth-child(n+8):nth-child(-n+12) { background:linear-gradient(rgba(77,232,255,.045),rgba(77,232,255,.045)); }
.attr-t tbody td:nth-child(n+13):nth-child(-n+16){ background:linear-gradient(rgba(255,64,56,.045),rgba(255,64,56,.045)); }
.attr-t tbody td:nth-child(n+17):nth-child(-n+22){ background:linear-gradient(rgba(255,255,255,.03),rgba(255,255,255,.03)); }
.attr-t tbody td:nth-child(n+23):nth-child(-n+28){ background:linear-gradient(rgba(180,130,255,.05),rgba(180,130,255,.05)); }
.attr-t tbody td:nth-child(n+29):nth-child(-n+31){ background:linear-gradient(rgba(255,170,0,.05),rgba(255,170,0,.05)); }
.attr-t thead th.grp-g, .attr-t thead th.grp-a { font-size:.58rem; color:var(--faint); }
/* 逐年表（.yr-t）：1 赛季 / 2 龄 / 3 位 / 4–8 进攻 / 9–13 组织 / 14–17 防守 /
   18–23 身体 / 24–29 心理 / 30 综合 —— 族色区间右移 1 覆盖上方规则 */
.attr-t.yr-t tbody td:nth-child(n+4):nth-child(-n+8)  { background:linear-gradient(rgba(204,255,0,.035),rgba(204,255,0,.035)); }
.attr-t.yr-t tbody td:nth-child(n+9):nth-child(-n+13) { background:linear-gradient(rgba(77,232,255,.045),rgba(77,232,255,.045)); }
.attr-t.yr-t tbody td:nth-child(n+14):nth-child(-n+17){ background:linear-gradient(rgba(255,64,56,.045),rgba(255,64,56,.045)); }
.attr-t.yr-t tbody td:nth-child(n+18):nth-child(-n+23){ background:linear-gradient(rgba(255,255,255,.03),rgba(255,255,255,.03)); }
.attr-t.yr-t tbody td:nth-child(n+24):nth-child(-n+29){ background:linear-gradient(rgba(180,130,255,.05),rgba(180,130,255,.05)); }
.attr-t.yr-t tbody td:nth-child(30) { background:none; } /* 综合列不吃门将族色 */
/* 巅峰行 / 转型行：只上色、不加粗（颜色已足够醒目；★ 与 ⇄ 前缀由各页自行挂载） */
.attr-t.yr-t tbody tr.peak td { color:var(--acc); }
.attr-t.yr-t tbody tr.trans td:nth-child(3) { color:var(--cyan); }
.attr-t td.inc { position:relative; }
.attr-t td.inc::after { content:""; position:absolute; left:50%; bottom:.14rem; width:.26rem; height:.26rem; margin-left:-.13rem; border-radius:50%; background:var(--acc); opacity:.8; }
/* 行列交叉高亮：行与列同色（荧光绿罩），当前单元格异色（青） */
table.xh tbody tr:hover td { box-shadow:inset 0 0 0 999px rgba(204,255,0,.075); }
table.xh tbody td.col-hi  { box-shadow:inset 0 0 0 999px rgba(204,255,0,.075); }
table.xh tbody td.cell-hi { box-shadow:inset 0 0 0 999px rgba(77,232,255,.30); outline:1px solid rgba(77,232,255,.65); color:var(--text); }
table.xh td, table.xh th { cursor:crosshair; }
th[title], td[title] { cursor:help; }

/* ============================================================
   阵容图节点 .pnode ↔ 花名册 .pl-row 双向联动（首页效果复用）
   JS 见 case.js；hot 类双向互挂
   ============================================================ */
.pnode { cursor:pointer; }
.pnode .ring { fill:#0a0a0a; stroke:var(--line-2); stroke-width:1.5; transition:all .25s; }
.pnode .num-txt { fill:var(--dim); font-family:var(--mono); font-size:11px; font-weight:700; text-anchor:middle; transition:fill .25s; }
.pnode .nm { fill:var(--faint); font-family:var(--mono); font-size:9.5px; letter-spacing:.08em; text-anchor:middle; text-transform:uppercase; transition:fill .25s; }
.pnode:hover .ring,.pnode.hot .ring,.pnode.sel .ring { stroke:var(--acc); fill:var(--acc-dim); filter:drop-shadow(0 0 0.4375rem rgba(204,255,0,.55)); }
.pnode:hover .num-txt,.pnode.hot .num-txt,.pnode.sel .num-txt { fill:var(--acc); }
.pnode:hover .nm,.pnode.hot .nm,.pnode.sel .nm { fill:var(--text); }
/* 双列布局：首页同款——左阵容图（sticky）右表格，窄屏堆叠 */
.xi-layout { display:grid; grid-template-columns:27.5rem 1fr; gap:3.25rem; align-items:start; }
/* grid 子项默认 min-width:auto 会被宽表格撑破视口，必须归零 */
.xi-layout > * { min-width:0; }
@media (max-width:1080px) { .xi-layout { grid-template-columns:1fr; gap:2.25rem; } .pitch-box { position:static !important; max-width:min(32.5rem,100%); margin:0 auto; width:100%; } }

/* --- 战术板（首页同款，档案页复用） --- */
.pitch-box { position:sticky; top:6.5rem; border:1px solid var(--line); background:linear-gradient(180deg,rgba(13,13,13,.9),rgba(5,5,5,.9)); padding:1.125rem; }
.pitch-box .ph { display:flex; justify-content:space-between; font-size:0.71875rem; letter-spacing:.16em; text-transform:uppercase; color:var(--faint); padding:0 0.375rem 0.875rem; }
.pitch-box .ph b { color:var(--acc); font-weight:500; }
.pitch { width:100%; height:auto; display:block; }
.pitch .field { stroke:rgba(204,255,0,.16); stroke-width:1; fill:none; }
.pitch .field-soft { stroke:rgba(255,255,255,.05); stroke-width:1; fill:none; }
.pitch-legend { display:flex; justify-content:space-between; gap:0.625rem; font-size:0.6875rem; letter-spacing:.12em; text-transform:uppercase; color:var(--faint); padding:0.875rem 0.375rem 0; border-top:1px dashed var(--line); margin-top:0.875rem; flex-wrap:wrap; }

/* --- XI 表格（首页同款组件，档案页复用；判词列 say 允许换行） --- */
.xi-table-wrap { border:1px solid var(--line); background:var(--surface); overflow-x:auto; -webkit-overflow-scrolling:touch; }
.xi-thead { display:flex; justify-content:space-between; padding:0.875rem 1.375rem; border-bottom:1px solid var(--line); font-size:0.71875rem; letter-spacing:.16em; text-transform:uppercase; color:var(--faint); }
.xi-thead b { color:var(--acc); font-weight:500; }
table.xi { width:100%; border-collapse:collapse; min-width:40rem; }
.xi th { text-align:left; font-size:0.6875rem; letter-spacing:.16em; text-transform:uppercase; color:var(--faint); font-weight:500; padding:0.8125rem 0.75rem; border-bottom:1px solid var(--line); background:var(--bg-2); white-space:nowrap; }
.xi td { padding:0.9375rem 0.75rem; border-bottom:1px solid var(--line); font-size:0.875rem; color:var(--dim); white-space:nowrap; }
.xi tr:last-child td { border-bottom:none; }
.xi-row { transition:background .2s; cursor:pointer; }
.xi-row:hover,.xi-row.hot,.xi-row.sel { background:rgba(204,255,0,.05); box-shadow:inset 3px 0 0 var(--acc); }
.xi-row:hover .nm,.xi-row.hot .nm,.xi-row.sel .nm { color:var(--acc); }
.xi .pos { font-size:0.6875rem; letter-spacing:.14em; color:var(--faint); }
.xi .nm { color:var(--text); font-weight:500; transition:color .2s; }
.xi .nm a { color:inherit; }
.xi .nm a:hover { color:var(--acc); }
/* 判词列：表格里的一段话——允许换行，看台语言斜体呈现 */
.xi td.say { white-space:normal; min-width:15rem; max-width:24rem; font-size:0.8125rem; line-height:1.8; color:var(--dim); font-style:italic; }
.xi-row:hover td.say,.xi-row.hot td.say,.xi-row.sel td.say { color:var(--text); }
.xi .ovr-n { font-family:var(--disp); font-weight:900; font-size:1rem; color:var(--acc); font-variant-numeric:tabular-nums; }
.xi-note { margin-top:1.125rem; font-size:0.78125rem; color:var(--faint); line-height:1.9; }
.xi-note b { color:var(--dim); font-weight:500; }

/* ============================================================
   拉风箱 .bellows —— 档案卷宗式横向手风琴（入选裁决 / 替补席）
   每组一条卷宗架：书脊（.bw-spine，竖排）+ 展开正文（.bw-body）
   JS 见 case.js；同组内点开一个、收起其余
   ============================================================ */
.bw-unit { margin-top:1.75rem; }
.bw-unit + .bw-unit { margin-top:2.75rem; }
.bw-unit-head { display:flex; align-items:baseline; gap:0.875rem; margin-bottom:0.875rem; font-family:var(--mono); font-size:0.71875rem; letter-spacing:.2em; text-transform:uppercase; color:var(--faint); }
.bw-unit-head .bw-idx { color:var(--acc); font-weight:700; }
.bw-unit-head .bw-tt { color:var(--text); }
.bw-unit-head .bw-sub { margin-left:auto; font-size:0.625rem; color:var(--faint); }
.bw-unit-head::after { content:""; flex:1; height:1px; background:var(--line); align-self:center; margin-left:0.875rem; }
.bellows { display:flex; border:1px solid var(--line-2); background:linear-gradient(180deg,rgba(13,13,13,.92),rgba(5,5,5,.92)); height:24rem; box-shadow:0 1.25rem 3.5rem rgba(0,0,0,.35); }
.bw-panel { position:relative; display:flex; flex:1 1 0; min-width:3.4rem; overflow:hidden; border-right:1px solid var(--line); transition:flex-grow .55s cubic-bezier(.33,1,.68,1); }
.bw-panel:last-child { border-right:none; }
.bw-panel.open { flex-grow:6.5; }
/* 书脊：竖排文字，像档案卷宗的脊背；收起时整条都是点击响应区 */
.bw-spine { flex:none; width:3.4rem; align-self:stretch; display:flex; align-items:center; justify-content:center; gap:1.1rem; padding:1.25rem 0; background:transparent; border:none; cursor:pointer; writing-mode:vertical-rl; font-family:var(--mono); color:var(--faint); transition:background .25s, color .25s; }
.bw-spine .bw-no { font-size:0.8125rem; letter-spacing:.3em; color:var(--acc); }
.bw-spine .bw-name { font-size:1.0625rem; font-weight:700; letter-spacing:.22em; color:var(--dim); transition:color .25s; }
.bw-spine .bw-pos { font-size:0.75rem; letter-spacing:.18em; color:var(--faint); }
.bw-spine:hover { background:rgba(204,255,0,.07); }
.bw-spine:hover .bw-name { color:var(--text); }
/* 收起状态下正文不留占位，书脊占满整个面板宽度 */
.bw-panel:not(.open) .bw-body { display:none; }
.bw-panel.open .bw-spine { background:var(--acc-dim); box-shadow:inset -1px 0 0 var(--line); }
.bw-panel.open .bw-spine .bw-name { color:var(--acc); }
/* 展开正文：默认隐藏，展开后淡入 */
.bw-body { flex:1; min-width:0; padding:1.75rem 2rem 1.5rem; overflow-y:auto; opacity:0; visibility:hidden; transition:opacity .35s ease .12s, visibility .35s .12s; }
.bw-panel.open .bw-body { opacity:1; visibility:visible; }
.bw-body .bw-ghost { position:absolute; right:1rem; bottom:-.5rem; font-family:var(--disp); font-weight:900; font-size:6.5rem; line-height:1; color:transparent; -webkit-text-stroke:1px rgba(204,255,0,.12); pointer-events:none; user-select:none; }
.bw-body .bw-tt { display:flex; align-items:baseline; gap:0.875rem; flex-wrap:wrap; margin-bottom:0.5rem; }
.bw-body .bw-tt h3 { font-family:var(--disp); font-weight:900; font-size:1.5rem; letter-spacing:.01em; text-transform:uppercase; }
.bw-body .bw-tt h3 a { color:inherit; }
.bw-body .bw-tt h3 a:hover { color:var(--acc); }
.bw-body .bw-tag { font-family:var(--mono); font-size:0.625rem; letter-spacing:.14em; color:var(--acc); border:1px solid rgba(204,255,0,.35); padding:0.14rem 0.5rem; white-space:nowrap; }
.bw-body .bw-meta { font-size:0.6875rem; letter-spacing:.12em; text-transform:uppercase; color:var(--faint); margin-bottom:0.875rem; }
.bw-body .bw-evi { display:flex; flex-wrap:wrap; gap:0.4rem; margin-bottom:0.9rem; }
.bw-body .bw-evi span { font-family:var(--mono); font-size:0.625rem; letter-spacing:.05em; color:var(--cyan); border:1px solid rgba(77,232,255,.3); padding:0.18rem 0.5rem; }
.bw-body .bw-line { font-size:1.0625rem; line-height:1.7; color:var(--text); font-style:italic; border-left:2px solid var(--acc); padding-left:0.9rem; margin-bottom:0.9rem; max-width:42rem; }
.bw-body p.bw-txt { font-size:0.875rem; line-height:2; color:var(--dim); max-width:46rem; }
.bw-body p.bw-txt b { color:var(--text); font-weight:500; }
/* 替补席卷宗：红色口径 */
.bellows.bench .bw-spine .bw-no { color:var(--red); }
.bellows.bench .bw-panel.open .bw-spine { background:var(--red-dim); }
.bellows.bench .bw-panel.open .bw-spine .bw-name { color:var(--red); }
.bellows.bench .bw-body .bw-tag { color:var(--red); border-color:rgba(255,64,56,.4); }
.bellows.bench .bw-body .bw-line { border-left-color:var(--red); }
.bellows.bench .bw-body .bw-ghost { -webkit-text-stroke-color:rgba(255,64,56,.12); }
/* 移动端：横向卷宗转纵向手风琴 */
@media (max-width:860px) {
.bellows { flex-direction:column; height:auto; }
.bw-panel { min-width:0; border-right:none; border-bottom:1px solid var(--line); }
.bw-panel:last-child { border-bottom:none; }
.bw-panel.open { flex-grow:0; }
.bw-spine { writing-mode:horizontal-tb; width:100%; flex-direction:row; justify-content:flex-start; gap:0.9rem; padding:0.95rem 1.1rem; text-align:left; }
.bw-panel.open .bw-spine { box-shadow:inset 0 -1px 0 var(--line); }
.bw-body { display:none; padding:1.25rem 1.25rem 1.5rem; }
.bw-panel.open .bw-body { display:block; opacity:1; visibility:visible; }
.bw-body .bw-ghost { font-size:4.5rem; }
.bw-body .bw-tt h3 { font-size:1.25rem; }
}

/* --- 公式块 --- */
.formula { border:1px solid var(--line-2); border-left:3px solid var(--cyan); background:var(--surface); padding:1.375rem 1.625rem; font-size:0.9rem; line-height:2; color:var(--text); margin:1.75rem 0; overflow-x:auto; white-space:nowrap; }
.formula .op { color:var(--cyan); }

/* --- 裁决框 --- */
.verdict-box { border:1px solid rgba(204,255,0,.4); background:var(--acc-dim); padding:2rem 2.25rem; position:relative; }
.verdict-box .vh { font-size:0.71875rem; letter-spacing:.2em; text-transform:uppercase; color:var(--acc); margin-bottom:0.875rem; }
.verdict-box p { font-size:1rem; line-height:1.95; color:var(--text); }
.verdict-box .sign { margin-top:1.375rem; font-size:0.8125rem; color:var(--dim); }
.verdict-box .sign b { color:var(--text); font-weight:500; }

/* --- 来源清单 --- */
.sources { border:1px solid var(--line); background:var(--surface); padding:1.5rem 1.75rem; }
.sources li { display:flex; gap:0.875rem; padding:0.6875rem 0; border-bottom:1px dashed var(--line); font-size:0.84375rem; color:var(--dim); line-height:1.8; }
.sources li:last-child { border-bottom:none; }
.sources .sn { color:var(--acc); flex:none; }

/* --- 档案卡片（栏目列表页） --- */
.dlist { display:flex; flex-direction:column; gap:1rem; }
.dcard { display:grid; grid-template-columns:auto 1fr auto; gap:1.75rem; align-items:center; border:1px solid var(--line); background:var(--surface); padding:1.75rem 2rem; transition:border-color .25s,transform .25s; }
.dcard:hover { border-color:rgba(204,255,0,.35); transform:translateX(0.375rem); }
.dcard .dno { font-family:var(--disp); font-weight:900; font-size:1.5rem; color:transparent; -webkit-text-stroke:1px var(--acc); white-space:nowrap; }
.dcard h3 { font-family:var(--disp); font-weight:700; font-size:1.1875rem; text-transform:uppercase; letter-spacing:.02em; margin-bottom:0.5rem; line-height:1.3; }
.dcard h3 a:hover { color:var(--acc); }
.dcard .dsum { font-size:0.84375rem; color:var(--dim); line-height:1.85; max-width:52rem; }
.dcard .dchips { display:flex; gap:0.5rem; flex-wrap:wrap; margin-top:0.75rem; }

/* --- 上一篇/下一篇 --- */
.art-nav { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:4.5rem; }
.art-nav a { border:1px solid var(--line); background:var(--surface); padding:1.375rem 1.625rem; transition:border-color .2s; }
.art-nav a:hover { border-color:rgba(204,255,0,.35); }
.art-nav .an-k { font-size:0.6875rem; letter-spacing:.18em; text-transform:uppercase; color:var(--faint); margin-bottom:0.5rem; }
.art-nav .an-t { font-size:0.9375rem; color:var(--text); font-weight:500; }
.art-nav .next { text-align:right; }
.art-nav .soon { opacity:.45; pointer-events:none; }

/* --- 中文版筹备提示 --- */
.zh-note { border:1px dashed var(--line-2); color:var(--faint); font-size:0.8125rem; padding:0.875rem 1.25rem; margin-top:1.25rem; line-height:1.8; }

/* --- 移动端 --- */
@media (max-width:760px) {
.page { padding:3rem 1.25rem 4rem; }
.art-head { padding:2rem 1.5rem; }
.art-head h1 { font-size:1.875rem; }
.art-block-head h2 { font-size:1.375rem; }
.dcard { grid-template-columns:1fr; gap:0.875rem; padding:1.5rem 1.375rem; }
.art-nav { grid-template-columns:1fr; }
.art-nav .next { text-align:left; }
.verdict-box { padding:1.5rem 1.375rem; }
}
