/* 工厂开票回传（控制台内页，app/factory_finance.py）。版式沿用工厂待办的 ft-* 样式（index.html 先引了 factory-todo.css），这里只补几行。
   颜色只用 tokens.css 已定义变量、不写裸 hex（UI 门禁）。弹窗遮罩在 .ft-app 外面：全页 [hidden] 必须写（工厂待办 9-27 踩过）。
   2026-10-08 Nora 经老板转来「太繁杂了……能不能像 erp 一样简洁明了」：去掉上面的方块和流程条，改成一张单一行的表 + 一排筛选。 */
[hidden] { display: none !important; }

/* 两个标签：要回传、开票的单 / 已发货、还没做开票单 */
.ff-views { display: flex; gap: 4px; margin: 14px 0 0; border-bottom: 1px solid var(--border); }
.ff-views button { font: inherit; font-size: 14px; cursor: pointer; background: none; border: 0; border-bottom: 2px solid transparent;
  padding: 8px 14px; color: var(--text-secondary); white-space: nowrap; margin-bottom: -1px; }
.ff-views button b { font-variant-numeric: tabular-nums; margin-left: 4px; color: var(--text-muted); font-weight: 600; }
.ff-views button.on { color: var(--text-primary); font-weight: 600; border-bottom-color: var(--accent); }

/* 一排筛选：状态 / 类型 / 搜索 */
.ff-bar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 10px 0 10px; }
.ff-seg { display: inline-flex; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; background: var(--surface); }
.ff-seg button { font: inherit; font-size: 13px; cursor: pointer; background: none; border: 0; border-left: 1px solid var(--border);
  padding: 5px 10px; color: var(--text-secondary); white-space: nowrap; }
.ff-seg button:first-child { border-left: 0; }
.ff-seg button b { font-weight: 600; font-variant-numeric: tabular-nums; color: var(--text-muted); }
.ff-seg button b.bad { color: var(--danger-fg); }
.ff-seg button.on { background: var(--accent-soft-bg); color: var(--text-primary); font-weight: 600; }
.ff-bar input[type=search] { border: 1px solid var(--border-control); border-radius: 8px; padding: 6px 10px; font-size: 13px; min-width: 200px;
  background: var(--surface); color: var(--text-primary); }

/* 表：一张单一行，格子里第二行小字 */
.ff-table td small { display: block; font-size: 12px; color: var(--text-muted); margin-top: 2px; line-height: 1.45; max-width: 320px; }
.ff-table td small.bad, .ff-table .bad { color: var(--danger-fg); }
.ff-table td .sqv-pill { margin: 0; }
.ff-mark { font-family: ui-monospace, Menlo, monospace; font-weight: 600; white-space: nowrap; }
.ff-dot { color: var(--text-muted); }
.ff-ok { color: var(--success-fg); font-weight: 700; }
.ff-bad { color: var(--danger-fg); font-weight: 700; white-space: nowrap; }
.ff-kind { white-space: nowrap; font-size: 12px; border-radius: 6px; padding: 1px 7px; background: var(--surface-sunken); color: var(--text-secondary); }
.ff-kind.k-报关前 { background: var(--warning-bg); color: var(--warning-fg); }
.ff-kind.k-报关后 { background: var(--info-bg); color: var(--info-fg); }
.ff-table tr.ff-skipped td { color: var(--text-muted); }
.ff-why { max-width: 360px; }
.ff-foot { margin: 8px 2px 0; font-size: 12px; color: var(--text-muted); }

/* 右边：这张单 + 发给这家工厂 */
.ff-sec { margin: 6px 0 14px; }
.ff-sec h3 { font-size: 14px; margin: 10px 0 6px; }
.ff-sec h3 small { font-weight: 400; color: var(--text-muted); font-size: 12px; margin-left: 6px; }
.ff-steps { max-width: 380px; margin: 4px 0 8px; }
.ff-issue { margin: 4px 0 8px; padding: 6px 10px; border-radius: 8px; background: var(--danger-bg); color: var(--danger-fg); font-size: 13px; }
.ff-li { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 8px; padding: 5px 0; border-top: 1px solid var(--border-subtle); font-size: 13px; line-height: 1.55; }
.ff-li > span { color: var(--text-muted); white-space: nowrap; }
.ff-li small { display: block; color: var(--text-muted); font-size: 12px; }
.ff-li .bad { color: var(--danger-fg); }
.ff-acts { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 10px; }
.ff-rows { margin: 0; padding: 0; list-style: none; }
.ff-rows li { padding: 6px 0; border-top: 1px solid var(--border-subtle); font-size: 13px; line-height: 1.55; }
.ff-rows li:first-child { border-top: 0; }
.ff-rows a { margin-left: 6px; }

/* 吸顶筛选条（shared/section-tabs.js）里的状态 / 类型按钮缩小一点 */
.sq-secpin .ff-seg button { padding: 3px 8px; }
@media (max-width: 640px) { .ff-bar input[type=search] { min-width: 0; flex: 1; } }
.ff-table th { white-space: nowrap; }
.ff-table td.n, .ff-table td.nw { white-space: nowrap; }
/* 窄窗口（侧栏变顶条、≈770 宽）九列放不下：「建单」那列先收起（宽屏照常显示），别把表撑出页面 */
@media (max-width: 900px) { .ff-table .c-made { display: none; } }

/* 2026-10-08 老板：「想要能够看到那个票，能够预览，不用跳其他页面」——右栏这张单的送货单合同 / 盖章件 / 发票一样一格，点了在这页看（shared/file-viewer.*） */
.ff-files { margin: 2px 0 10px; }
.ff-files .sqf-card { width: 148px; }
.ff-files .sqf-pic { height: 160px; }
@media (max-width: 720px) {
  .ff-files .sqf-card { width: 30%; min-width: 92px; }
  .ff-files .sqf-pic { height: 120px; }
}
.ff-files.none { padding: 6px 10px; border-radius: 8px; background: var(--surface-sunken); color: var(--text-muted); font-size: 12px; }
