/* weekly.css — 周报专栏页专用样式（T45 UI 2.0 / T45d 苏总 21:15 审图「排版字体布局难看」对齐轮）：
   老板屏复用 base.css（.boss-line/.lbar/.big2），本文件只管周报专属件：
   面包屑、报告元信息、灯色大数字卡（.lamp-stats）、分客户明细表、引用块、打印友好。
   色值一律走 tokens.css 变量，无硬编码。

   T45d 对齐标准（照抄 T45c 首页体系，不发明新件）：
   - 区块标题统一 base.css .sec-h（左 4px --brand 色条 + --ink-900 标题），模板侧加类；
   - 灯色大数字卡 .lamp-stats：四色各带同色系 10% 顶边条（复用 base.css .card.tone-*）
     + 白卡 + 浅靛描边 + shadow-card；数字 --font-num + tnum，桌面 48px/700（--fs-display），
     与标签/说明两级字号配合（仪表感）；
   - 明细表：行高下限 48px、浅灰斑马纹、表头 --ink-500 13px/500、首列料号 --font-num、
     单元格垂直居中（治「顶对齐大留白」）；灯列 = .dot 色块 + .lt 灯色文字（去 emoji 重复）；
   - 打印友好（周报会被打印转发）：隐藏导航/分享条，卡片去阴影，闭合 <details>
     （必办 4/5 条、来源链接）强制展开，正文黑白可读。

   T31 规范保留：表格只留行分隔线（去重边框）、明细表 4 列（料号/灯/事实·价格·来源/行动）。
   T45 保留：桌面（≥1024px）明细表全宽铺开 + 行 hover 高亮。 */

/* 面包屑 */
.crumb {
  font-size: var(--fs-sub);
  color: var(--ink-500);
  margin-top: var(--sp-4);
}
.crumb a { color: var(--brand-deep); text-decoration: none; }
.crumb a:hover { text-decoration: underline; }

/* 页头 h1 不覆盖：走 base.css 字号阶梯（20 / 26 / 32px），与全站一致（T45d） */
main h2 { margin: var(--sp-6) 0 var(--sp-3); }

/* 报告元信息 */
.report-meta {
  font-size: var(--fs-mini);
  color: var(--ink-600);
  background: var(--ink-100);
  border-radius: var(--r-md);
  padding: var(--sp-2) var(--sp-3);
  margin: var(--sp-2) 0 var(--sp-4);
  line-height: 1.55;
}

/* ---------- 灯色大数字卡（T45d 仪表感）：红/橙/黄/绿 四卡，顶边条用 base.css
   .card.tone-*（同色系 10% 透明度），数字 --font-num + tnum ---------- */
.lamp-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr); /* 375px：2×2 不横滚 */
  gap: var(--sp-3);
  margin-bottom: var(--sp-6);
}
.lamp-stat { padding: var(--sp-3) var(--sp-4); margin-bottom: 0; }
.ls-label {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  font-size: var(--fs-sub);
  font-weight: 700;
  color: var(--ink-900);
}
.ls-num {
  font-family: var(--font-num);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum";
  font-size: var(--fs-num);
  font-weight: 700;
  line-height: 1.15;
  margin-top: var(--sp-1);
  letter-spacing: -.02em;
}
.ls-num.r { color: var(--risk-red-ink); }
.ls-num.o { color: var(--risk-orange-ink); }
.ls-num.y { color: var(--risk-yellow-ink); }
.ls-num.g { color: var(--risk-green-ink); }
.ls-sub { font-size: var(--fs-mini); color: var(--ink-500); margin-top: 2px; }

/* 分客户区块 */
.cust {
  background: var(--surface);
  border: 1px solid var(--line-brand); /* T45d：与全站数据卡同一浅靛描边 */
  border-radius: var(--r-lg);
  margin-bottom: var(--sp-6);
  overflow: hidden;
  box-shadow: var(--shadow-card);
}
.cust-hd {
  padding: var(--sp-4);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--sp-2);
  flex-wrap: wrap;
  border-bottom: 1px solid var(--line);
}
.cust-hd .cn { font-size: var(--fs-body); font-weight: 700; }
.cust-hd .cs { font-size: var(--fs-mini); color: var(--ink-500); margin-top: 2px; }

/* 明细表：表体内部可横向滚动，保证页面整体 375px 不出现横向滚动；
   只留行分隔线（去工业化），斑马纹浅灰分区，表头吸顶 */
.table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
table.detail {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--fs-sub);
  line-height: 1.5;
}
table.detail th,
table.detail td {
  padding: var(--sp-3) var(--sp-2);
  text-align: left;
  vertical-align: middle; /* T45d：居中治「顶对齐大留白」，料号/灯/行动与多行事实列齐平 */
  border-bottom: 1px solid var(--line-soft);
}
table.detail tbody tr { height: 48px; } /* T45d 行高下限（表格行 height=最小高度，内容高自适应） */
table.detail thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--surface);
  font-size: var(--fs-sub); /* T45d：表头 13px/500（数据产品口径） */
  font-weight: 500;
  color: var(--ink-500);
  white-space: nowrap;
  border-bottom: 1px solid var(--line);
}
/* 浅灰斑马纹替代白底密排 */
table.detail tbody tr:nth-child(even) { background: var(--bg); }
table.detail tbody tr:last-child td { border-bottom: none; }
/* T45：行 hover 高亮（桌面扫读长表格时定位当前行） */
table.detail tbody tr:hover { background: var(--brand-weak); }
table.detail td.mpn {
  font-weight: 600;
  font-family: var(--font-num); /* T45d：首列料号等宽数字字体 */
  font-feature-settings: "tnum";
  font-size: 12.5px;
  word-break: break-all; /* 长料号（SCRGB…-T）窄屏折行不撑列 */
}
table.detail td.act { color: var(--brand-deep); font-weight: 600; min-width: 90px; }
table.detail td.fact { color: var(--ink-600); min-width: 200px; vertical-align: middle; }

/* 灯列（T45d）：14px 圆点（颜色+形状）+ .lt 灯色文字，去 emoji 重复（三重编码不丢） */
table.detail td.lamp { white-space: nowrap; }
table.detail td.lamp .dot { width: 14px; height: 14px; vertical-align: -2px; margin-right: var(--sp-1); }

/* 价格/交期并入事实列：冒号引导、独立小字行 */
.fact-price {
  display: block;
  font-size: var(--fs-mini);
  color: var(--ink-500);
  margin-top: var(--sp-1);
}

/* 来源标记并入事实列：原生 details 展开控件，零 JS；长 URL 折行不撑破表格 */
.src-toggle { display: inline-block; margin-top: var(--sp-1); }
.src-toggle summary {
  color: var(--brand-deep);
  font-size: var(--fs-mini);
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  list-style: none; /* 去掉默认三角，统一用文字+展开态提示（移动端点按区更大） */
}
.src-toggle summary::-webkit-details-marker { display: none; }
.src-toggle summary::before { content: "▸ "; }
.src-toggle[open] summary::before { content: "▾ "; }
.src-toggle a {
  display: block;
  margin-top: var(--sp-1);
  font-size: var(--fs-mini);
  color: var(--brand-deep);
  word-break: break-all;
  max-width: 260px;
}
/* 待核实徽章（T27）：中性灰徽章，inline-block + nowrap，不换行不溢出；
   来源标记/事实列/区块头部计数/导语共用同一样式。中性灰是刻意的——
   「未核实」不是风险等级，绝不能借用四色暗示灯色 */
.src-pending {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.4;
  padding: 1px var(--sp-2);
  border-radius: var(--r-sm);
  background: var(--ink-100);
  color: var(--ink-600);
  border: 1px solid var(--line);
  white-space: nowrap;
  vertical-align: baseline;
}

/* 内部核对版横幅（--internal 渲染的 internal.html，不对外发布） */
.internal-banner {
  margin-top: 20px;
  font-size: var(--fs-sub);
  font-weight: 700;
  color: var(--risk-orange-ink);
  background: var(--risk-orange-weak);
  border: 1px solid var(--risk-orange);
  border-radius: var(--r-md);
  padding: var(--sp-2) var(--sp-3);
}

/* 结论与引用块 */
.note {
  border-left: 3px solid var(--brand);
  background: var(--brand-weak);
  border-radius: var(--r-sm);
  padding: var(--sp-3) var(--sp-4);
  font-size: var(--fs-sub);
  color: var(--ink-600);
  line-height: 1.6;
  margin-bottom: var(--sp-4);
}
ul.plain { padding-left: 20px; font-size: 14px; color: var(--ink-600); }
ul.plain li { margin-bottom: var(--sp-2); line-height: 1.6; }

.footnote {
  font-size: var(--fs-mini);
  color: var(--ink-500);
  margin-top: var(--sp-6);
  padding-top: var(--sp-4);
  border-top: 1px dashed var(--line);
  line-height: 1.6;
}

/* 移动端：≤480px 字号 12px、min-width 让步，表内横滚幅度减小；
   padding 保持上下 12px，配合 tr height 行高仍 ≥48px（验收口径） */
@media (max-width: 480px) {
  table.detail { font-size: var(--fs-mini); }
  table.detail th,
  table.detail td { padding: var(--sp-3) var(--sp-2); }
  table.detail td.fact { min-width: 150px; }
  table.detail td.act { min-width: 0; }
  .src-toggle a { max-width: 200px; }
}

/* T45 桌面宽屏：明细表全宽铺开，事实列吃掉多出来的空间（不再窄柱+横滚） */
@media (min-width: 1024px) {
  .report-meta { font-size: var(--fs-sub); padding: var(--sp-3) var(--sp-4); }
  /* T45d：灯色大数字卡一行四张，数字 48px/700（--fs-display 仪表感） */
  .lamp-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-4); }
  .lamp-stat { padding: var(--sp-4) 20px; }
  .ls-num { font-size: var(--fs-display); }
  .ls-label { font-size: var(--fs-body); }
  .ls-sub { font-size: var(--fs-sub); }
  table.detail { font-size: 14px; table-layout: fixed; }
  table.detail th,
  table.detail td { padding: var(--sp-3) var(--sp-4); }
  /* 列宽放首行 th 上（table-layout:fixed 以首行为准），事实列吃掉宽屏余量 */
  table.detail th.c-mpn { width: 15%; }
  table.detail th.c-lamp { width: 10%; }
  table.detail th.c-fact { width: 58%; }
  table.detail th.c-act { width: 17%; }
  table.detail td.mpn { font-size: var(--fs-sub); }
  table.detail td.fact { min-width: 0; }
  table.detail td.act { min-width: 0; }
  .src-toggle a { max-width: 100%; }
  .cust-hd { padding: var(--sp-4) var(--sp-6); }
}

/* ---------- 打印友好（T45d：周报会被打印转发） ----------
   隐藏导航/分享条/面包屑，卡片去阴影、背景去渐变网格，正文黑白可读。
   闭合 <details>（必办第 4/5 条 .fold、来源链接 .src-toggle）的展开：
   - Firefox 等 UA 用 display:none 隐藏闭合 details 子节点，本条作者规则可覆盖；
   - Chrome 走 content-visibility，CSS 盖不住，由 share.js 的 beforeprint 监听展开（双保险）。
   展开后 summary 开关（「查看全部…」「来源」）在纸面是噪音，一并隐藏。
   灯色在黑白打印下由 .lt 文字（「红灯」等）兜底。 */
@media print {
  .site-hd, .site-ft, .share-bar, .share-spacer, .crumb { display: none !important; }
  body { background: var(--surface) !important; background-image: none !important; }
  main.wrap { max-width: none; padding: 0; }
  .card, .cust, .fold, .top5 li, .lamp-stat, .big2 { box-shadow: none !important; }
  .fold > .fold-body, .src-toggle > a { display: block !important; }
  .fold > summary, .src-toggle summary { display: none; } /* 内容已展开，开关不入纸 */
  table.detail thead th { position: static; }
  table.detail, table.detail td.fact { font-size: var(--fs-mini); }
  .boss-line { font-size: 20px; }
  .ls-num { font-size: var(--fs-num); }
  a { color: var(--ink-900); text-decoration: none; }
  .cust, .top5 li, .lamp-stat { break-inside: avoid; } /* 卡片不跨页截断 */
}
