/* 门户 · 财务管理（v0.1） */
#finView { display:flex; height:100vh; background:#f5f7fb; font-size:13px; }
#finView.hide { display:none !important; }
.fin-side { width:196px; flex:none; background:#0f2744; color:#cfe0f5;
  display:flex; flex-direction:column; }
.fin-brand { padding:20px 18px 14px; font-size:16px; font-weight:800; color:#fff;
  letter-spacing:.4px; }
.fin-brand small { display:block; font-size:11px; font-weight:400; color:#8fb3dd;
  margin-top:3px; letter-spacing:0; }
.fin-nav { padding:4px 9px; display:flex; flex-direction:column; gap:2px; }
.fin-nav button { border:0; background:none; color:#cfe0f5; text-align:left;
  padding:9px 11px; border-radius:7px; font-size:13px; cursor:pointer; }
.fin-nav button:hover { background:#173a66; }
.fin-nav button.on { background:#1f4e8c; color:#fff; font-weight:600; }
.fin-side-foot { margin-top:auto; padding:12px 14px; border-top:1px solid #1c3a5f; }
.fin-side-foot button { width:100%; border:1px solid #2c4f7a; background:none;
  color:#cfe0f5; border-radius:7px; height:30px; cursor:pointer; font-size:12px; }
.fin-side-foot button:hover { background:#173a66; }
.fin-main { flex:1; min-width:0; display:flex; flex-direction:column; }
.fin-top { height:56px; flex:none; background:#fff; border-bottom:1px solid #e6eaf0;
  display:flex; align-items:center; padding:0 20px; gap:12px; }
.fin-top .tt { font-weight:700; font-size:15px; color:#1d2129; }
.fin-top .sp { flex:1; }
.fin-body { flex:1; overflow:auto; padding:16px 20px 44px; }
/* 销售单价页：整页填满，表体滚动、分页贴底 */
.fin-body.fill { display:flex; flex-direction:column; overflow:hidden; padding:18px 20px 0; }
.fin-page { flex:1; min-height:0; display:flex; flex-direction:column; }
.fin-tablewrap { flex:1; min-height:0; overflow:auto; background:#fff;
  border:1px solid #e6eaf0; border-radius:10px; }
.fin-pager { flex:none; display:flex; align-items:center; justify-content:flex-end;
  gap:10px; padding:10px 2px 12px; font-size:12px; color:#4e5969; }
.fin-pager select { height:26px; border:1px solid #d9e0ea; border-radius:6px;
  padding:0 6px; font-size:12px; background:#fff; }
.fin-pager button { height:26px; padding:0 10px; border:1px solid #d9e0ea;
  border-radius:6px; background:#fff; color:#1d2129; font-size:12px; cursor:pointer; }
.fin-pager button:disabled { opacity:.45; cursor:default; }
.fin-pager .sp { flex:1; }
.fin-table.fixed { table-layout:fixed; }
.fin-table.fixed td { overflow:hidden; text-overflow:ellipsis; }
.fin-th { position:relative; cursor:pointer; user-select:none; }
.fin-th .caret { display:inline-block; margin-left:3px; font-size:10px; color:#86909c; }
.fin-resize { position:absolute; right:-3px; top:0; width:6px; height:100%;
  cursor:col-resize; z-index:4; }
.fin-resize:hover { background:#dbe7ff; }
.fin-fmenu { position:fixed; z-index:9500; width:234px; background:#fff;
  border:1px solid #d9e0ea; border-radius:9px; box-shadow:0 12px 30px rgba(0,0,0,.16);
  padding:8px; font-size:12px; }
.fin-fmenu input { width:100%; box-sizing:border-box; height:28px; border:1px solid #d9e0ea;
  border-radius:6px; padding:0 8px; font-size:12px; }
.fin-fmenu .list { max-height:240px; overflow:auto; margin:6px 0; }
.fin-fmenu label { display:flex; align-items:center; gap:6px; padding:4px 5px;
  border-radius:5px; cursor:pointer; white-space:nowrap; }
.fin-fmenu label:hover { background:#f5f9ff; }
.fin-fmenu .foot { display:flex; justify-content:space-between; align-items:center;
  padding-top:6px; border-top:1px solid #f0f2f5; }
.fin-fmenu .foot button { height:26px; padding:0 9px; border:1px solid #d9e0ea;
  border-radius:6px; background:#fff; font-size:12px; cursor:pointer; }
.fin-fmenu .foot button.primary { background:#2e6bd6; border-color:#2e6bd6; color:#fff; }

/* ══════════ 销售单价：对齐乐川「物料订单」自定义表单（table.data / toolbar / pager 原值） ══════════ */
.fin-master { flex:1; min-height:0; display:flex; flex-direction:column; background:transparent; }
.fin-toolbar2 { background:#fff; padding:10px 14px; border:1px solid #e5e6eb;
  border-bottom:1px solid #f2f3f5; border-radius:12px 12px 0 0; display:flex; gap:8px;
  align-items:center; flex-wrap:wrap; flex:none; }
.fin-toolbar2 .sp { flex:1; }
.fin-add-btn { display:inline-flex; align-items:center; justify-content:center;
  height:34px; padding:0 15px; border:1px solid #008cff; border-radius:8px;
  background:#008cff; color:#fff; font-size:13px; font-weight:500; cursor:pointer;
  font-family:inherit; line-height:1; margin-right:6px; flex:none; }
.fin-add-btn:hover { background:#0079e0; border-color:#0079e0; }
.fin-toolbar2 input { height:34px; padding:0 12px; border:1px solid #c9cdd4; border-radius:8px;
  font-size:13px; outline:none; background:#fff; color:#1d2129; transition:border-color .15s, box-shadow .15s; }
.fin-toolbar2 input:focus { border-color:#2e6bd6; box-shadow:0 0 0 3px rgba(46,107,214,.16); }
.fin-toolbar2 input::placeholder { color:#c9cdd4; }
.fin-query { height:34px; padding:0 15px; border:1px solid #e5e6eb; border-radius:8px;
  background:#fff; color:#4e5969; font-size:13px; cursor:pointer; font-family:inherit; }
.fin-query:hover { border-color:#d5dae1; background:#f7f8fa; color:#1d2129; }
.fin-tool { display:inline-flex; align-items:center; justify-content:center; gap:6px;
  height:34px; padding:0 10px; border:1px solid transparent; border-radius:8px;
  background:transparent; color:#000; font-size:13px; cursor:pointer; font-family:inherit; }
.fin-tool:hover:not(:disabled) { border-color:#d5dae1; background:#f7f8fa; }
.fin-tool:disabled { opacity:.45; cursor:not-allowed; }
.fin-tablewrap2 { flex:1; min-height:0; overflow:auto; background:#fff;
  border:1px solid #e5e6eb; border-top:none; border-radius:0 0 12px 12px; }
.fin-master table.fin-data { width:100%; border-collapse:separate; border-spacing:0;
  font-size:13px; table-layout:fixed; }
.fin-master table.fin-data th { background:#f7f8fa; color:#151616; font-weight:600;
  font-size:13px; padding:7px 10px; text-align:left; white-space:nowrap;
  position:sticky; top:0; border-bottom:1px solid #e7e7e7; border-right:1px solid #e7e7e7;
  z-index:5; overflow:hidden; padding-right:6px; }
.fin-master table.fin-data td { padding:7px 10px; border-top:1px solid #e7e7e7;
  border-right:1px solid #e7e7e7; white-space:nowrap; overflow:hidden;
  text-overflow:ellipsis; color:#1d1d1f; background:#fff; transition:background .12s; }
.fin-master table.fin-data tbody tr:first-child td { border-top:none; }
.fin-master table.fin-data th:last-child, .fin-master table.fin-data td:last-child { border-right:none; }
.fin-master table.fin-data tbody tr:last-child td { border-bottom:1px solid #e7e7e7; }
.fin-master table.fin-data tr:hover td { background:#f6f9ff; }
.fin-master table.fin-data td.num { text-align:right; font-variant-numeric:tabular-nums; }
.fin-master table.fin-data th.num { text-align:right; }
.fin-master table.fin-data th.col-idx, .fin-master table.fin-data td.col-idx,
.fin-master table.fin-data th.col-ops, .fin-master table.fin-data td.col-ops {
  width:46px; min-width:46px; max-width:46px; padding-left:4px; padding-right:4px;
  text-align:center; cursor:default; }
.fin-master table.fin-data td.col-idx { color:#c9cdd4; font-size:12px; font-variant-numeric:tabular-nums; }
.fin-master table.fin-data th.col-sel, .fin-master table.fin-data td.col-sel {
  width:32px; min-width:32px; max-width:32px; padding:0; text-align:center; cursor:default; }
.fin-master table.fin-data th.col-sel input, .fin-master table.fin-data td.col-sel input {
  width:14px; height:14px; margin:0; cursor:pointer; accent-color:#2e6bd6; vertical-align:middle; }
.fin-master table.fin-data tbody tr.mrow-sel > td { background:#eaf3ff; }
.fin-master table.fin-data tbody tr.mrow-sel:hover > td { background:#e0edff; }
.fin-master table.fin-data th.col-fill, .fin-master table.fin-data td.col-fill {
  width:auto; padding:0 !important; border-right:none !important; background:transparent; }
.fin-master table.fin-data th.col-fill { background:#f7f8fa; }
.fin-rowact { width:24px; height:24px; border:0; border-radius:6px; background:none;
  color:#4e5969; font-size:16px; line-height:1; cursor:pointer; padding:0; margin:0 auto;
  display:inline-flex; align-items:center; justify-content:center; }
.fin-rowact:hover { background:#eef2f7; color:#1d2129; }
.fin-th2 { position:relative; cursor:pointer; user-select:none; }
.fin-th2 .caret { display:inline-block; margin-left:2px; font-size:13px; color:#86909c;
  opacity:0; transition:opacity .12s; vertical-align:middle; }
.fin-th2:hover .caret, .fin-th2.on .caret { opacity:1; }
/* 表头右侧的下箭头：纯提示（对齐 `.col-menu-btn`），悬浮 / 已排序 / 已筛选时显现 */
.fin-mbtn { display:inline-flex; align-items:center; justify-content:center; width:16px; height:16px;
  margin-left:1px; border-radius:4px; color:#c9cdd4; font-size:11px; line-height:1;
  pointer-events:none; opacity:0; transition:opacity .14s, background .15s, color .15s; }
.fin-th2:hover .fin-mbtn { opacity:1; background:rgba(46,107,214,.12); color:#2e6bd6; }
.fin-th2.has-flag .fin-mbtn { opacity:1; color:#2e6bd6; background:rgba(46,107,214,.12); }
.fin-cflag { font-size:9px; line-height:1; color:#2e6bd6; margin-left:2px; }
.fin-cflag.filt { font-size:11px; font-weight:700; }
.fin-th2.has-flag .th-lab { max-width:calc(100% - 34px); overflow:hidden; text-overflow:ellipsis; }
/* 拖列换位 */
.fin-th2[draggable="true"] { cursor:grab; }
.fin-th2[draggable="true"]:active { cursor:grabbing; }
.fin-master table.fin-data th.fin-dragging { opacity:.35; }
.fin-master table.fin-data th.fin-dragover { background:#e8f0ff !important; }
/* 锁定列：横向滚动时吸附在左侧 */
.fin-master table.fin-data th.fin-lock { position:sticky; z-index:7; }
.fin-master table.fin-data td.fin-lock { position:sticky; z-index:3; background:#fff; }
.fin-master table.fin-data tr:hover td.fin-lock { background:#f6f9ff; }
.fin-master table.fin-data tr.mrow-sel > td.fin-lock { background:#eaf3ff; }
/* 表头分组行（「容器」相同的列合并成一格） */
.fin-master table.fin-data thead tr.fin-grp th { height:30px; padding:5px 10px; top:0;
  background:#f2f4f7; color:#4e5969; font-weight:600; font-size:12px; z-index:6; }
.fin-master table.fin-data thead tr.fin-grp + tr > th { top:30px; }
.fin-master table.fin-data thead tr.fin-grp th.grp-empty { background:#f7f8fa; }
.fin-master table.fin-data thead tr.fin-grp th.grp-fixed { background:#f2f4f7; }
.fin-resize2 { position:absolute; right:0; top:0; width:6px; height:100%;
  cursor:col-resize; user-select:none; z-index:6; }
.fin-resize2:hover { background:rgba(46,107,214,.5); }
.fin-pager2 { flex:none; background:transparent; padding:10px 2px 16px;
  display:flex; align-items:center; justify-content:flex-end; gap:8px;
  font-size:13px; color:#4e5969; }
.fin-pager2 .info { margin-right:6px; font-variant-numeric:tabular-nums; }
.fin-pager2 select { height:30px; padding:0 8px; border:1px solid #e5e6eb; border-radius:8px;
  background:#fff; font-size:12px; color:#4e5969; }
.fin-pager2 select:hover { border-color:#2e6bd6; color:#2e6bd6; }
.fin-pager2 button { height:30px; padding:0 14px; border:1px solid #e5e6eb; border-radius:8px;
  background:#fff; cursor:pointer; font-size:12px; color:#4e5969; font-family:inherit; }
.fin-pager2 button:hover:not(:disabled) { border-color:#2e6bd6; color:#2e6bd6; }
.fin-pager2 button:disabled { opacity:.4; cursor:default; }
.fin-rowmenu { position:fixed; z-index:9500; background:#fff; border:1px solid #e5e6eb;
  border-radius:8px; box-shadow:0 10px 26px rgba(0,0,0,.14); padding:4px; font-size:12px; }
.fin-rowmenu button { display:block; width:100%; text-align:left; border:0; background:none;
  padding:7px 12px; border-radius:5px; cursor:pointer; color:#1d2129; font-size:12px; }
.fin-rowmenu button:hover { background:#f5f9ff; color:#2e6bd6; }

/* ══════════ 列筛选浮窗：对齐乐川自定义表单 .colmenu-pop ══════════ */
.fin-cm { background:#fff; border:1px solid #e5e6eb; border-radius:9px; padding:10px;
  width:345px; box-shadow:0 10px 28px rgba(16,24,40,.2); font-size:13px; color:#1d2129; }
.fin-cm .cm-t { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px; }
.fin-cm .cm-t b { font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fin-cm .cm-t .k { flex:none; font-size:11px; color:#c9cdd4; }
.fin-cm .cm-sec { border-top:1px solid #f2f3f5; margin-top:8px; padding-top:8px; }
.fin-cm .cm-sec:first-of-type { border-top:none; margin-top:6px; padding-top:0; }
.fin-cm .cm-lab { font-size:11px; color:#86909c; margin-bottom:5px; }
.fin-cm .cm-hint { font-size:11px; color:#c9cdd4; line-height:1.45; margin-bottom:6px; }
.fin-cm .cm-row { display:flex; gap:6px; }
.fin-cm input { flex:1; min-width:0; height:30px; padding:0 8px; border:1px solid #e5e6eb;
  border-radius:7px; font-size:12px; font-family:inherit; color:#1d2129; background:#fff; outline:none; }
.fin-cm input:focus { border-color:#2e6bd6; box-shadow:0 0 0 2px rgba(46,107,214,.16); }
.fin-cm .cm-bar { display:flex; align-items:center; gap:6px; margin-top:6px; }
.fin-cm .cm-chk { display:inline-flex; align-items:center; gap:4px; font-size:11px;
  color:#4e5969; cursor:pointer; user-select:none; }
.fin-cm .cm-chk input { flex:none; width:13px; height:13px; margin:0; padding:0; }
.fin-cm .cm-cnt { flex:1; font-size:11px; color:#c9cdd4; text-align:right; }
.fin-cm .cm-mini { flex:none; height:22px; padding:0 8px; border:1px solid #e5e6eb;
  border-radius:5px; background:#fff; cursor:pointer; font-family:inherit; font-size:10px; color:#86909c; }
.fin-cm .cm-mini:hover { border-color:#2e6bd6; color:#2e6bd6; }
.fin-cm .cm-list { height:268px; overflow:auto; overscroll-behavior:contain; margin-top:6px;
  border:1px solid #e5e6eb; border-radius:7px; background:#fff; }
.fin-cm .cm-item { display:flex; align-items:center; gap:6px; padding:4px 8px;
  font-size:11px; color:#1d2129; line-height:1.5; }
.fin-cm .cm-item:hover { background:#f2f6ff; }
.fin-cm .cm-item input { flex:none; width:13px; height:13px; margin:0; padding:0; }
.fin-cm .cm-v { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fin-cm .cm-n { flex:none; color:#c9cdd4; font-size:10px; font-variant-numeric:tabular-nums; }
.fin-cm .cm-empty { padding:22px 8px; text-align:center; color:#c9cdd4; font-size:11px; }
/* 数字列：按值勾选 / 按数值区间 两个模式（对齐 `.cm-modes`） */
.fin-cm .cm-modes { display:flex; gap:0; margin-bottom:8px; background:#f2f3f5;
  border-radius:7px; padding:2px; }
.fin-cm .cm-modes button { flex:1; height:26px; border:none; background:transparent; cursor:pointer;
  font-family:inherit; font-size:11px; color:#4e5969; border-radius:5px; }
.fin-cm .cm-modes button.on { background:#fff; color:#2e6bd6; font-weight:600;
  box-shadow:0 1px 2px rgba(16,24,40,.12); }
.fin-cm .cm-range { display:flex; align-items:center; gap:6px; }
.fin-cm .cm-range + .cm-range { margin-top:6px; }
.fin-cm .cm-rl { flex:none; width:26px; font-size:11px; color:#86909c; }
.fin-cm .cm-btns { display:flex; gap:6px; margin-top:8px; }
.fin-cm button.cm-b { flex:1; height:30px; padding:0 6px; border:1px solid #e5e6eb;
  border-radius:7px; background:#fff; cursor:pointer; font-size:12px; font-family:inherit;
  color:#1d2129; transition:all .15s; display:inline-flex; align-items:center;
  justify-content:center; gap:5px; }
.fin-cm button.cm-b:hover { border-color:#2e6bd6; color:#2e6bd6; }
.fin-cm button.cm-b.on { border-color:#2e6bd6; color:#2e6bd6; background:#f2f6ff; font-weight:600; }
.fin-cm button.cm-b.pri { background:#2e6bd6; border-color:#2e6bd6; color:#fff; }
.fin-cm button.cm-b.pri:hover { filter:brightness(1.06); color:#fff; }

/* ══════════ 编辑销售单价：右侧抽屉（对齐自定义表单 .fd-drawer） ══════════ */
.fin-mask { position:fixed; inset:0; background:rgba(15,23,36,.32);
  backdrop-filter:blur(2px); z-index:9380; }
/* 编辑抽屉：与乐川 `.fd-drawer.ff-drawer` 同宽 —— left = 侧栏×0.9 + 10vw（比常规抽屉再窄 10%） */
.fin-drawer { position:fixed; top:0; bottom:0; right:0; left:calc(176.4px + 10%); z-index:9390;
  background:#fff; box-shadow:-16px 0 48px rgba(12,20,32,.18);
  transform:translateX(105%); transition:transform .3s cubic-bezier(.22,.8,.36,1);
  display:flex; flex-direction:column; }
.fin-drawer.show { transform:none; }
/* 高级设置：固定 1100px 贴右边（对齐 `.fd-drawer.fd-set`） */
.fin-drawer.set { left:auto; width:1100px; max-width:100%; }
@media (max-width:1180px){ .fin-drawer.set { left:0; width:100%; } }
@media (max-width:900px){ .fin-drawer { left:0; } }
.fin-drawer .d-head { padding:14px 22px; border-bottom:1px solid #f2f3f5;
  display:flex; align-items:center; gap:10px; flex:none; }
.fin-drawer .d-head .t { font-size:15px; font-weight:600; flex:1; min-width:0;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fin-drawer .d-head .x { cursor:pointer; color:#86909c; width:28px; height:28px;
  display:flex; align-items:center; justify-content:center; border-radius:8px;
  transition:all .15s; flex:none; font-size:18px; line-height:1; }
.fin-drawer .d-head .x:hover { color:#1d2129; background:#f2f3f5; }
.fin-drawer .d-body { flex:1; min-height:0; padding:16px 22px; overflow:auto; }
.fin-drawer .d-foot { padding:12px 22px; border-top:1px solid #f2f3f5;
  display:flex; align-items:center; gap:10px; background:#fff; flex:none; }
.fin-drawer .d-foot .sp { flex:1; }
/* 高级设置：左侧字段列表 + 右侧字段属性 */
.fs-wrap { display:flex; gap:18px; min-height:100%; align-items:flex-start; }
.fs-list { width:236px; flex:none; border-right:1px solid #f2f3f5; padding-right:12px;
  display:flex; flex-direction:column; gap:2px; }
.fs-item { display:flex; align-items:center; gap:7px; width:100%; height:34px; padding:0 9px;
  border:1px solid transparent; border-radius:7px; background:none; cursor:pointer;
  font-family:inherit; font-size:13px; color:#1d2129; text-align:left; }
.fs-item:hover { background:#f5f9ff; }
.fs-item.on { background:#eaf3ff; border-color:#cfe2ff; color:#1a56b0; font-weight:600; }
.fs-item .fs-ic { flex:none; width:18px; height:18px; border-radius:5px; background:#f2f3f5;
  color:#86909c; font-size:10px; line-height:18px; text-align:center; }
.fs-item.on .fs-ic { background:#2e6bd6; color:#fff; }
.fs-item .fs-nm { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fs-item .fs-tag { flex:none; font-size:10px; color:#86909c; background:#f2f3f5;
  border-radius:4px; padding:1px 5px; }
.fs-item .fs-tag.lock { color:#1a56b0; background:#e3efff; }
.fs-prop { flex:1; min-width:0; max-width:760px; display:flex; flex-direction:column; gap:14px; }
.fs-row { display:flex; align-items:flex-start; gap:14px; }
.fs-row > label { flex:none; width:88px; padding-top:7px; font-size:13px; color:#4e5969; }
.fs-row .fs-ctl { flex:1; min-width:0; }
.fs-row input[type=text], .fs-row input[type=number], .fs-row select { width:100%; box-sizing:border-box;
  height:32px; padding:0 9px; border:1px solid #d9e0ea; border-radius:7px; background:#fff;
  font-family:inherit; font-size:13px; color:#1d2129; outline:none; }
.fs-row input:focus, .fs-row select:focus { border-color:#2e6bd6; box-shadow:0 0 0 2px rgba(46,107,214,.16); }
.fs-row .fs-hint { margin-top:5px; font-size:11px; color:#86909c; line-height:1.5; }
.fs-chk { display:inline-flex; align-items:center; gap:6px; font-size:13px; color:#1d2129;
  padding-top:7px; cursor:pointer; }
.fs-chk input { width:14px; height:14px; accent-color:#2e6bd6; margin:0; }
.fs-ops { display:flex; align-items:center; gap:8px; padding-top:4px; }
.fs-ops .sp { flex:1; }
@media (max-width:900px){ .fs-wrap { flex-direction:column; } .fs-list { width:100%; border-right:none;
  border-bottom:1px solid #f2f3f5; padding:0 0 10px; } }
.fin-toolbar { display:flex; align-items:center; gap:9px; flex-wrap:wrap;
  margin-bottom:12px; }
.fin-toolbar .sp { flex:1; }
.fin-toolbar label { font-size:12px; color:#4e5969; }
.fin-toolbar input[type=month], .fin-toolbar select, .fin-toolbar input[type=text] {
  height:30px; border:1px solid #d9e0ea; border-radius:7px; padding:0 8px;
  background:#fff; font-size:12.5px; color:#1d2129; }
.fin-btn { height:30px; padding:0 13px; border:1px solid #d9e0ea; border-radius:7px;
  background:#fff; color:#1d2129; font-size:12.5px; cursor:pointer; }
.fin-btn:hover { border-color:#2e6bd6; color:#2e6bd6; }
.fin-btn.primary { background:#2e6bd6; border-color:#2e6bd6; color:#fff; }
.fin-btn.primary:hover { background:#2459b8; color:#fff; }
.fin-kpis { display:grid; grid-template-columns:repeat(7,minmax(0,1fr));
  gap:10px; margin-bottom:14px; }
.fin-kpi { background:#fff; border:1px solid #e6eaf0; border-radius:10px; padding:11px 12px; }
.fin-kpi .k { font-size:11px; color:#86909c; }
.fin-kpi .v { font-size:19px; font-weight:800; margin-top:4px;
  font-variant-numeric:tabular-nums; letter-spacing:-.3px; }
.fin-kpi .v.small { font-size:15px; }
.fin-card { background:#fff; border:1px solid #e6eaf0; border-radius:10px;
  overflow:auto; max-height:calc(100vh - 300px); }
.fin-table { width:100%; border-collapse:collapse; font-size:12px; }
.fin-table th { position:sticky; top:0; z-index:2; background:#f7f9fc;
  color:#4e5969; font-weight:600; padding:8px 6px; border-bottom:1px solid #e6eaf0;
  white-space:nowrap; text-align:left; }
.fin-table td { padding:6px; border-bottom:1px solid #f0f2f5; white-space:nowrap;
  color:#1d2129; }
.fin-table tbody tr:hover td { background:#f5f9ff; cursor:pointer; }
.fin-table .num { text-align:right; font-variant-numeric:tabular-nums; }
.fin-table .pos { color:#c0392b; }
.fin-table .neg { color:#1e6fd9; }
.fin-table .zero { color:#86909c; }
.fin-table .tag { display:inline-block; padding:1px 6px; border-radius:4px;
  font-size:11px; background:#eef4ff; color:#2e6bd6; }
.fin-table .tag.no { background:#fff4d6; color:#9a6700; }
.fin-table .tag.ok { background:#e8f7ee; color:#1a7f45; }
.fin-empty { padding:64px 20px; text-align:center; color:#86909c; font-size:13px; }
.fin-warn { background:#fff7e6; border:1px solid #ffd591; color:#9a6700;
  border-radius:9px; padding:9px 12px; font-size:12.5px; margin-bottom:12px; }
.fin-sub { font-size:12px; color:#86909c; }
.fin-modal { position:fixed; inset:0; background:rgba(15,32,56,.45); z-index:9000;
  display:flex; align-items:center; justify-content:center; }
.fin-modal .dlg { background:#fff; border-radius:12px; width:920px; max-width:94vw;
  max-height:88vh; overflow:auto; padding:18px 20px 20px; box-shadow:0 20px 60px rgba(0,0,0,.2); }
.fin-modal .dlg.sm { width:520px; }
.fin-modal h4 { margin:0 0 14px; font-size:15px; color:#1d2129; }
.fin-modal .x { float:right; border:0; background:none; font-size:20px; line-height:1;
  color:#86909c; cursor:pointer; }
.fin-form { display:grid; gap:12px; }
.fin-grid2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.fin-form label { display:block; font-size:12px; color:#4e5969; margin-bottom:4px; }
.fin-form input, .fin-form select, .fin-form textarea { width:100%; box-sizing:border-box;
  border:1px solid #d9e0ea; border-radius:7px; padding:7px 9px; font-size:12.5px;
  color:#1d2129; background:#fff; }
.fin-form textarea { min-height:54px; resize:vertical; }
.fin-form .foot { display:flex; justify-content:flex-end; gap:9px; margin-top:6px; }
.fin-detail-h { display:flex; gap:18px; flex-wrap:wrap; margin-bottom:12px;
  font-size:12.5px; color:#4e5969; }
.fin-detail-h b { color:#1d2129; }
.fin-detail-t { margin:14px 0 6px; font-weight:700; font-size:13px; color:#1d2129; }
.fin-detail-tbl { width:100%; border-collapse:collapse; font-size:12px; }
.fin-detail-tbl th, .fin-detail-tbl td { border-bottom:1px solid #f0f2f5;
  padding:5px 6px; text-align:left; white-space:nowrap; }
.fin-detail-tbl th { background:#f7f9fc; color:#4e5969; font-weight:600; }
.fin-note { background:#f7f9fc; border:1px solid #e6eaf0; border-radius:8px;
  padding:10px 12px; font-size:12px; color:#4e5969; line-height:1.7; }
.fin-history { margin-top:10px; }
.fin-history table { width:100%; border-collapse:collapse; font-size:12px; }
.fin-history th, .fin-history td { border-bottom:1px solid #f0f2f5; padding:5px 6px;
  text-align:left; }
.fin-history th { background:#f7f9fc; color:#4e5969; font-weight:600; }
.fin-toast { position:fixed; left:50%; top:24px; transform:translateX(-50%);
  background:#1d2129; color:#fff; padding:8px 16px; border-radius:8px;
  font-size:12.5px; z-index:9999; opacity:0; transition:opacity .18s; }
.fin-toast.on { opacity:1; }
@media (max-width: 1100px) {
  .fin-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
