/* MF 段 3 的完整现金流表。作用域同段 3：每条选择器都以 #assumptions 开头。
 * 排版一律走 styles/roles.css 的角色类与 tokens.css 的 token（铁律三）。 */

/* 🔴 左两列钉住 —— 这是这张表在手机上还能用的全部原因。
 * 年份向右滑的时候，「这一行是什么」和「整个持有期合计多少」必须一直在。
 * 宽度写死是必需的：sticky 的第二列要知道第一列有多宽才能定位。 */
#assumptions .cf-scroll { overflow-x: auto; }
#assumptions table.cf-tab { width: 100%; border-collapse: separate; border-spacing: 0; }
#assumptions table.cf-tab th,
#assumptions table.cf-tab td {
  border-bottom: 1px solid var(--border); padding: var(--sp-3); text-align: right; white-space: nowrap;
}
#assumptions table.cf-tab thead th { background: var(--soft); color: var(--muted-strong); }
/* 🔴 科目列必须能折行。表格单元格会被内容撑开 —— `width` 对它只是建议，
 * 只有 `min-width` 是硬的。写 116px 却渲染成 156px，而第二列的 sticky left 写死在
 * 116px，滚动时第二列会**压住第一列 40 像素**。（390px 实测抓到的，样式看不出来。） */
#assumptions table.cf-tab th.cf-name { text-align: left; white-space: normal; }

#assumptions table.cf-tab th:nth-child(1),
#assumptions table.cf-tab td:nth-child(1) {
  position: sticky; left: 0; z-index: 2; background: var(--surface);
  width: 180px; min-width: 180px; max-width: 180px;
}
#assumptions table.cf-tab th:nth-child(2),
#assumptions table.cf-tab td:nth-child(2) {
  position: sticky; left: 180px; z-index: 2; background: var(--surface);
  width: 130px; min-width: 130px;
  border-right: 1px solid var(--border);
}
#assumptions table.cf-tab thead th:nth-child(1),
#assumptions table.cf-tab thead th:nth-child(2) { background: var(--soft); z-index: 3; }

/* 小计行与结论行。⛔ 不用颜色分强弱 —— 与判定三态同一条规矩：这里全是事实，不评价。 */
#assumptions table.cf-tab tr.is-strong td,
#assumptions table.cf-tab tr.is-strong th { background: var(--soft); }
#assumptions table.cf-tab tr.is-equity th,
#assumptions table.cf-tab tr.is-equity td {
  border-top: 2px solid var(--border); background: var(--soft); color: var(--ink);
}

/* 备注行（「其中装修带来的」）：缩进 + 弱化，一眼看出它不参与加减。
 * ⛔ 它是所属那一行的一部分，不是独立科目 —— 把它做得跟正式行一样，
 *    读的人会去加它，而整列就对不上了。 */
#assumptions table.cf-tab tr.is-memo th { padding-left: var(--sp-6); color: var(--muted-strong); }
#assumptions table.cf-tab tr.is-memo td { color: var(--muted-strong); }

/* 分组行：取得 / 经营 / 退出。只做小标题，不参与加减。 */
#assumptions table.cf-tab tr.is-group th { color: var(--muted-strong); background: var(--soft); }
#assumptions table.cf-tab tr.is-group td { background: var(--soft); }

/* （已撤）卖出与资金来源用途原来是表底下两个散块，现在拆成行进了表里 */
#assumptions .cf-blocks { display: flex; flex-wrap: wrap; gap: var(--sp-8); margin-top: var(--sp-5); }
#assumptions .cf-blocks > div { flex: 1 1 280px; min-width: 0; }
#assumptions .cf-sub { color: var(--muted-strong); margin-bottom: var(--sp-2); }
#assumptions ul.cf-exit, #assumptions ul.cf-su { list-style: none; padding: 0; margin: 0; }
#assumptions ul.cf-exit li, #assumptions ul.cf-su li {
  display: flex; justify-content: space-between; gap: var(--sp-4);
  padding: var(--sp-2) 0; border-bottom: 1px solid var(--border);
}
#assumptions ul.cf-exit li.is-strong, #assumptions ul.cf-su li.is-strong {
  border-top: 1px solid var(--border); border-bottom: none; color: var(--ink);
}
#assumptions ul.cf-su li.is-head { color: var(--muted-strong); border-bottom: none; }
#assumptions .cf-amt { white-space: nowrap; }

@media (max-width: 640px) {
  /* 窄屏把钉住的两列收窄，给年份留出可读宽度 —— 但不取消钉住：
   * 取消了就等于把「这一行是什么」滑出屏幕，那张表立刻没法读。 */
  #assumptions table.cf-tab th:nth-child(1),
  #assumptions table.cf-tab td:nth-child(1) { width: 116px; min-width: 116px; max-width: 116px; }
  #assumptions table.cf-tab th:nth-child(2),
  #assumptions table.cf-tab td:nth-child(2) { left: 116px; width: 96px; min-width: 96px; }
  #assumptions table.cf-tab th, #assumptions table.cf-tab td { padding: var(--sp-2); }
}

/* 假设表里可改的那几格。⛔ 盒子照段 2 的搜索输入（同一页上唯一真的表单输入），
 * 不在这里另起一套外观 —— 上一轮就是这么栽的。 */
#assumptions input.as-edit {
  width: 96px; box-sizing: border-box; text-align: right;
  padding: var(--sp-2) var(--sp-3);
  background: var(--surface); border: 1px solid var(--border); color: var(--ink);
  outline: none; transition: border-color var(--dur-slow);
}
#assumptions input.as-edit:focus { border-color: var(--accent); }
#assumptions input.as-edit:disabled { background: var(--soft); color: var(--muted-strong); }
#assumptions .as-unit { margin-left: var(--sp-2); color: var(--muted-strong); }

@media (max-width: 640px) {
  /* 🔴 窄屏把输入框收窄。390px 下四列一共只有 343px 可用，而输入框写死 96px
   * 会把「你的值」那一列撑到 113px，整表 411px —— 于是「对照记录」（这一屏的落点）
   * 又被推出屏幕。这是上一轮在对质表上已经踩过一次的同一个坑。 */
  #assumptions input.as-edit { width: 68px; padding: var(--sp-1) var(--sp-2); }
  #assumptions .as-unit { margin-left: var(--sp-1); }
  /* 来源标签在窄屏也要能折行 —— 「Engine default」不折就独占 108px，
   * 而四列一共 343px。同上：宁可折行，也不能把「对照记录」推出屏幕。 */
  #assumptions .as-src { white-space: normal; }
}
