﻿* { margin:0; padding:0; box-sizing:border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", sans-serif; background:#f5f5f5; color:#333; font-size:14px; }
header { background:#fff; border-bottom:1px solid #e0e0e0; padding:12px 24px; display:flex; align-items:center; gap:24px; position:sticky; top:0; z-index:100; }
header h1 { font-size:18px; white-space:nowrap; color:#333; }
nav { display:flex; gap:4px; flex-wrap:wrap; }
.tab-btn { background:none; border:none; padding:8px 14px; cursor:pointer; font-size:13px; color:#666; border-bottom:2px solid transparent; }
.tab-btn:hover { color:#e4002b; }
.tab-btn.active { color:#e4002b; border-bottom-color:#e4002b; font-weight:bold; }
.tab { display:none; padding:16px 24px; }
.tab.active { display:block; }
.sub-nav { display:flex; gap:4px; margin-bottom:12px; border-bottom:1px solid #eee; padding-bottom:8px; }
.sub-tab-btn { background:none; border:none; padding:8px 18px; cursor:pointer; font-size:13px; color:#666; border-bottom:2px solid transparent; margin-bottom:-2px; }
.sub-tab-btn:hover { color:#e4002b; }
.sub-tab-btn.active { color:#e4002b; border-bottom-color:#e4002b; font-weight:bold; }
.sub-tab { display:none; }
.sub-tab.active { display:block; }
.toolbar { display:flex; gap:8px; align-items:center; margin-bottom:12px; flex-wrap:wrap; }
.toolbar label { font-size:13px; color:#666; }
.toolbar select, .toolbar input { padding:6px 10px; border:1px solid #ddd; border-radius:4px; font-size:13px; }
button { padding:8px 16px; border:1px solid #e4002b; background:#e4002b; color:#fff; border-radius:4px; cursor:pointer; font-size:13px; }
button:hover { background:#c50024; }
button.secondary { background:#fff; color:#e4002b; border-color:#e4002b; }
button.secondary:hover { background:#fff5f5; }
table { width:100%; border-collapse:collapse; background:#fff; font-size:13px; }
th, td { padding:8px 12px; border:1px solid #eee; text-align:left; }
th { background:#f8f8f8; font-weight:600; position:sticky; top:0; }
tr:hover { background:#f9f9f9; }
.cat-row { background:#f0f4f8; font-weight:bold; }
.profit { background:#e8f5e9; font-weight:bold; }
.form-group { margin-bottom:12px; }
.form-group label { display:block; font-size:12px; color:#666; margin-bottom:4px; }
.form-group input, .form-group select { width:100%; padding:8px 10px; border:1px solid #ddd; border-radius:4px; font-size:14px; }
.modal { position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.4); display:flex; align-items:center; justify-content:center; z-index:200; }
.modal-body { background:#fff; border-radius:8px; padding:24px; max-width:500px; width:90%; max-height:80vh; overflow-y:auto; }
.modal-actions { display:flex; gap:8px; justify-content:flex-end; margin-top:16px; }

/* ===== 录入开票 - 仿增值税发票样式 ===== */
.modal-body.inv-wide { max-width: 680px; }
.inv-sheet { border: 2px solid #e4002b; border-radius: 6px; background: #fff; font-size: 13px; color: #222; overflow: hidden; }
.inv-sheet-top { display: flex; justify-content: space-between; padding: 8px 14px; border-bottom: 1px dashed #e4002b; font-size: 12px; color: #a32d2d; }
.inv-sheet-top input { border: none; border-bottom: 1px solid #e4002b; width: 170px; padding: 2px 4px; font-weight: 600; color: #a32d2d; background: transparent; }
.inv-sheet-top input:focus { outline: none; border-bottom-color: #e4002b; }
.inv-sheet-title { text-align: center; font-size: 18px; font-weight: 700; color: #e4002b; padding: 8px 0; letter-spacing: 6px; border-bottom: 2px solid #e4002b; }
.inv-sheet-tbl { width: 100%; border-collapse: collapse; }
.inv-sheet-tbl th.inv-lbl { width: 118px; text-align: center; vertical-align: middle; border-right: 1px solid #e4002b; border-bottom: 1px solid #e4002b; font-weight: 600; background: #fff5f5; color: #a32d2d; padding: 8px 6px; line-height: 1.3; }
.inv-sheet-tbl td { border-bottom: 1px solid #e4002b; padding: 8px 10px; vertical-align: top; }
.inv-sheet-tbl tr:last-child th, .inv-sheet-tbl tr:last-child td { border-bottom: none; }
.inv-kv { display: flex; align-items: center; gap: 8px; margin: 4px 0; }
.inv-kv > span:first-child { display: inline-block; min-width: 84px; color: #666; font-size: 12px; }
.inv-kv input, .inv-kv select { flex: 1; min-width: 0; border: 1px solid #ddd; border-radius: 4px; padding: 5px 7px; font-size: 13px; }
.inv-kv input:focus, .inv-kv select:focus { outline: none; border-color: #e4002b; }
.inv-goods { display: grid; grid-template-columns: 1fr 1fr; gap: 2px 18px; }
.inv-goods-name { grid-column: 1 / -1; }
.inv-goods-val { font-weight: 600; color: #a32d2d; }
.inv-total { display: flex; gap: 28px; align-items: center; }
.inv-total b { color: #a32d2d; font-size: 15px; }
.inv-seller div { margin: 3px 0; font-size: 12px; color: #555; }
.inv-seller b { color: #222; }
.inv-system { border: 1px solid #eee; border-radius: 6px; padding: 10px 12px; background: #fafafa; margin-top: 14px; }
.inv-system h4 { margin: 0 0 8px; font-size: 13px; color: #888; font-weight: 600; }
.inv-sys-row { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; }
.inv-sys-row label { font-size: 12px; color: #666; }
.inv-sys-row select, .inv-sys-row input { border: 1px solid #ddd; border-radius: 4px; padding: 5px 7px; font-size: 13px; }
.inv-sys-foot { margin-top: 8px; }
.inv-hint { font-size: 11px; color: #aaa; }
@media (max-width: 560px) {
  .inv-goods { grid-template-columns: 1fr; }
  .inv-sheet-tbl th.inv-lbl { width: 92px; }
}
#toast { display:none; position:fixed; top:20px; right:20px; background:#4caf50; color:#fff; padding:8px 20px; border-radius:6px; z-index:9999; font-size:14px; }
#login-overlay { position:fixed; top:0; left:0; width:100%; height:100%; background:#e8e8e8; z-index:10000; display:none; align-items:center; justify-content:center; }
.status-bar { padding:8px; font-size:12px; color:#666; margin-bottom:8px; }
.error { color:#e4002b; }
.success { color:#4caf50; }

.rev-bar{background:#fff3cd;padding:8px 16px;border-radius:4px;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.rev-bar input{width:150px;padding:4px 8px;font-size:14px}
.entry-split{display:flex;gap:16px}
.entry-left{flex:1;min-width:400px;background:#fff;border-radius:6px;padding:12px;box-shadow:0 1px 4px rgba(0,0,0,.1)}
.entry-right{flex:1;min-width:350px;background:#fff;border-radius:6px;padding:12px;box-shadow:0 1px 4px rgba(0,0,0,.1)}
.entry-form-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.entry-form-row select,.entry-form-row input{padding:5px 8px;border:1px solid #d0d0d0;border-radius:4px;font-size:13px}
.entry-list{margin-top:8px;max-height:550px;overflow-y:auto}
.entry-list table{width:100%}
.entry-list th,.entry-list td{padding:4px 8px;font-size:12px}
.live-report table{width:100%}
.live-report th,.live-report td{padding:5px 10px}
.est-label{font-size:12px;color:#666;display:flex;align-items:center;gap:4px}
.status-badge{display:inline-block;padding:2px 8px;border-radius:3px;font-size:11px}
.s-ok{background:#c8e6c9;color:#2e7d32}
.s-warn{background:#fff3cd;color:#856404}
@media(max-width:850px){.entry-split{flex-direction:column}}
.pct-danger{color:#c62828;font-weight:bold}

/* ===== 发票统计（设计系统化） ===== */
.inv-mt { margin-top:16px; }
.inv-stats { display:grid; grid-template-columns:repeat(5,1fr); gap:10px; margin-bottom:16px; }
.inv-stat { background:#fff; border-radius:8px; padding:14px 16px; box-shadow:0 1px 4px rgba(0,0,0,.1); border-left:3px solid #e4002b; }
.inv-stat .label { font-size:12px; color:#888; margin-bottom:6px; }
.inv-stat .value { font-size:22px; font-weight:600; color:#333; font-variant-numeric:tabular-nums; }
.inv-stat.ok { border-left-color:#2e7d32; }
.inv-stat.ok .value { color:#2e7d32; }
.inv-stat.danger { border-left-color:#a32d2d; }
.inv-stat.danger .value { color:#a32d2d; }
.inv-stat.muted { border-left-color:#bbb; }
.inv-stat.muted .value { color:#777; }
.inv-card { background:#fff; border-radius:8px; padding:16px; box-shadow:0 1px 4px rgba(0,0,0,.1); margin-bottom:16px; }
.inv-card-title { font-size:14px; font-weight:600; color:#333; margin-bottom:12px; }
.inv-table { width:100%; border-collapse:collapse; font-size:13px; }
.inv-table th { background:#f5f5f5; color:#666; font-weight:600; padding:8px 10px; text-align:left; border-bottom:1px solid #eee; }
.inv-table td { padding:8px 10px; border-bottom:1px solid #f0f0f0; }
.inv-table .num { text-align:right; font-variant-numeric:tabular-nums; }
.inv-table .center { text-align:center; }
.inv-table .mono { font-family:monospace; font-size:12px; }
.inv-table .muted { color:#888; }
tr.inv-total td { font-weight:700; background:#fafafa; border-top:2px solid #ddd; }
.inv-type { display:inline-block; padding:2px 8px; border-radius:8px; font-size:11px; }
.inv-type.fixed { background:#e8f5e9; color:#27500a; }
.inv-type.random { background:#fff3e0; color:#854f0b; }
.inv-link { color:#1565c0; cursor:pointer; }
.inv-link.danger { color:#a32d2d; }
.inv-empty { padding:24px; text-align:center; color:#999; font-size:13px; }
.inv-bar-row { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.inv-bar-label { width:90px; font-size:13px; color:#555; flex-shrink:0; }
.inv-bar-track { flex:1; height:14px; background:#f0f0f0; border-radius:7px; overflow:hidden; }
.inv-bar-fill { height:100%; background:linear-gradient(90deg,#e4002b,#ff6b6b); border-radius:7px; }
.inv-bar-pct { width:160px; text-align:right; font-size:12px; color:#666; flex-shrink:0; font-variant-numeric:tabular-nums; }
.inv-report-sum { display:flex; gap:16px; flex-wrap:wrap; margin-bottom:12px; font-size:14px; }
.inv-report-sum .ok { color:#2e7d32; font-weight:600; }
.inv-report-sum .warn { color:#b8860b; }
.inv-report-sum .err { color:#a32d2d; font-weight:600; }
.inv-chk { font-size:13px; color:#555; cursor:pointer; display:inline-flex; align-items:center; gap:4px; }
#print-area { display:none; padding:24px; background:#fff; }
.inv-pdf-table { width:100%; border-collapse:collapse; font-size:13px; margin-bottom:16px; }
.inv-pdf-table th, .inv-pdf-table td { border:1px solid #ccc; padding:6px 8px; text-align:left; }
.inv-pdf-table th { background:#f5f5f5; }
.inv-pdf-table tr.inv-total td { font-weight:700; }
.inv-pdf-meta { color:#666; font-size:12px; margin-bottom:12px; }
@media print {
  body * { visibility:hidden; }
  #print-area, #print-area * { visibility:visible; }
  #print-area { position:absolute; left:0; top:0; width:100%; display:block !important; padding:0; }
}

/* 通用卡片与危险按钮（2026-10-01 成本导入页新增；补齐历史散用的 class="card"） */
.card { background:#fff; border-radius:8px; padding:16px; box-shadow:0 1px 4px rgba(0,0,0,.1); margin-bottom:16px; }
.card h3 { margin:0 0 8px; font-size:15px; }

/* 薪酬规则 · 可折叠卡片（2026-10-19 老大：点击标题展开/收起，列表只显标题） */
.sa-rc-h { display:flex; align-items:center; gap:8px; cursor:pointer; user-select:none; padding:2px 0; }
.sa-rc-h:hover .sa-rc-title { color:#e4002b; }
.sa-rc-caret { color:#e4002b; font-size:14px; width:14px; text-align:center; line-height:1; }
.sa-rc-title { font-size:15px; font-weight:bold; color:#2c3e50; }
.sa-rc-body { margin-top:4px; }

/* 花名册员工编辑弹窗 · 分组整齐布局（2026-10-19） */
.sa-fsec { margin:16px 0 8px; font-size:13px; font-weight:bold; color:#2c3e50; border-left:3px solid #e4002b; padding-left:8px; }
.sa-fsec:first-child { margin-top:0; }
.sa-fgrid2 { display:grid; grid-template-columns:1fr 1fr; gap:9px 20px; }
.sa-f { display:flex; align-items:center; gap:8px; }
.sa-f > label { flex:0 0 96px; text-align:right; color:#666; font-size:12px; white-space:nowrap; }
.sa-f > .sa-fc { flex:1; min-width:0; }
.sa-f .sa-fc input, .sa-f .sa-fc select { width:100%; padding:5px 8px; border:1px solid #ddd; border-radius:4px; font-size:13px; box-sizing:border-box; }
.sa-fn { color:#888; font-size:11px; margin:10px 0 0; line-height:1.6; }
button.danger { background:#a32d2d; border-color:#a32d2d; }
button.danger:hover { background:#8c2020; }

/* 数据导入页 · 控件高度统一（2026-10-21）：el-select/input/file/button 全部 28px 盒模型 */
#si-commit:disabled { opacity: .45; cursor: not-allowed; }
#si-commit:not(:disabled) { opacity: 1; }
#salary-import-content input[type="file"] { color:#333; }
#salary-import-content input[type="file"]::-webkit-file-upload-button {
  box-sizing:border-box; height:22px; margin:0 8px 0 0; padding:0 10px; font-size:12px;
  border:1px solid #ccc; border-radius:3px; background:#f5f5f5; color:#333; cursor:pointer;
}

/* ===== 工资表 · 打印预览（2026-10-21 D-81~D-85：所见即所印）===== */
.sa-pv-lb { color:#666; font-size:12px; }
.sa-pv-sel { box-sizing:border-box; height:28px; padding:0 6px; font-size:12px; border:1px solid #ccc; border-radius:3px; }
.sa-pv-kind { box-sizing:border-box; height:28px; padding:0 12px; font-size:12px; border:1px solid #e4002b; background:#fff; color:#e4002b; border-radius:3px; cursor:pointer; }
.sa-pv-kind:hover { background:#fff5f6; }
.sa-pv-kind.on { background:#e4002b; color:#fff; }
.sa-pv-act { box-sizing:border-box; height:28px; padding:0 16px; font-size:13px; border:1px solid #e4002b; background:#e4002b; color:#fff; border-radius:3px; cursor:pointer; }
.sa-ss-mini { box-sizing:border-box; height:20px; padding:0 8px; font-size:11px; border:1px solid #ccc; background:#fff; color:#333; border-radius:3px; cursor:pointer; vertical-align:middle; }
.sa-pv-warn { background:#fdecea; border-left:4px solid #e4002b; color:#a01a2a; padding:8px 12px; font-size:12px; margin-bottom:8px; border-radius:3px; font-weight:600; }
.sa-pv-tabs { display:flex; gap:4px; flex-wrap:wrap; margin-bottom:8px; }
.sa-pv-tabs button { box-sizing:border-box; height:26px; padding:0 12px; font-size:12px; border:1px solid #ddd; background:#fff; color:#555; border-radius:3px; cursor:pointer; }
.sa-pv-tabs button.on { background:#185FA5; border-color:#185FA5; color:#fff; font-weight:600; }
.sa-pv-meta { font-size:12px; color:#666; margin-bottom:8px; }
.sa-pv-wrap { background:#f0f2f5; padding:12px; border-radius:4px; max-height:calc(100vh - 250px); overflow:auto; }
/* 纸张：A4 横向 297×210mm，内边距沿用 Excel 默认（上下 0.75in / 左右 0.7in） */
.sa-paper { width:297mm; height:210mm; box-sizing:border-box; padding:0; background:#fff; margin:0 auto 12px; box-shadow:0 1px 6px rgba(0,0,0,.16); position:relative; overflow:hidden; }
/* 表体按 Excel 原始尺寸排版，再整体等比缩放到纸宽（改列宽会挤压内容） */
.sa-sheet { position:absolute; left:67px; top:72px; transform-origin:top left; font-size:11pt; }
.sa-paper table { border-collapse:collapse; table-layout:fixed; }
/* 🔴 2026-10-24（D-108）：屏幕 = 打印 = 导出三者一致 —— **全表居中 + 黑色表格线**。
   ⚠ 用 inset box-shadow 画网格线，**不吃列宽**（用 border 会吃掉列宽，列一多右端就短一截）。
   🔴 D-109 修正「表格线」：table 上**不再**写 border-top/border-left。
      原来靠 table 的外边补「上边/左边」，而标题行 td.t 是无框的 → 标题上方凭空多出一条
      贯穿全宽的横线 + 左边一截竖线头（右边却没有），标题看着像被框住半圈（用户截图标注处）。
      现在改成：每格画右+下 → 表头行/表格首行再补上边 → 第一列再补左边，合成一个从表头开始的完整黑框。
   ⚠ 跨整行的标题行（td.t）只居中、不画框，与 Excel 里一致 */
.sa-paper td { border:0; box-shadow:inset -1px -1px 0 0 #333; padding:0 2px; white-space:nowrap; overflow:hidden; vertical-align:middle; text-align:center; }
.sa-paper td.t { box-shadow:none; text-align:center; font-weight:700; }
.sa-paper td.h { text-align:center; font-weight:700; background:#f2f2f2; }
/* 表头行 + 每页表格首行：补上边 */
.sa-paper td.ft, .sa-paper td.h { box-shadow:inset 0 1px 0 0 #333, inset -1px -1px 0 0 #333; }
/* 第一列：补左边（标题格 td.t 除外） */
.sa-paper td:first-child:not(.t) { box-shadow:inset 1px 0 0 0 #333, inset -1px -1px 0 0 #333; }
/* 左上角那一格：四边齐全 */
.sa-paper tr > td.ft:first-child, .sa-paper tr > td.h:first-child { box-shadow:inset 1px 0 0 0 #333, inset 0 1px 0 0 #333, inset -1px -1px 0 0 #333; }
.sa-paper td.n, .sa-paper td.l { text-align:center; }
.sa-pg-no { position:absolute; right:6px; top:3px; font-size:10px; color:#c8c8c8; }
/* 2026-10-24：版式含身份证的**提示**（非警告），财务自用不对外 */
.sa-pv-note { background:#fff8e1; border-left:4px solid #f0a500; color:#7a5200; padding:8px 12px; font-size:12px; margin-bottom:8px; border-radius:3px; }

/* ===== 薪酬规则 · 绩效奖金方案表（2026-10-24 重排）=====
   🔴 原来直接用全局 table 样式：外层 12 列 + 内层 7 列**两层都有 1px 全边框**，
      且内层表是 auto 布局、宽度按内容算 → 5 个指标表的竖线位置各不相同、与外层线叠在一起，
      加上全局 `th{position:sticky;top:0}` 在嵌套表里会把表头抬出错位 → 整体看着乱。
   现在：① 外层改「横线制」（只画行分隔线，不画竖线）② 内层用 table-layout:fixed + colgroup
      固定列宽，所有指标表竖线完全对齐 ③ th / input 全部 position:static，不受全局 sticky 影响。 */
.sa-prt-note { font-size:11px; color:#8a94a6; line-height:1.7; margin:0 0 10px; }
.sa-prt-note b { color:#2c3e50; }
.sa-prt-wrap { overflow-x:auto; }

.sa-prt { width:100%; min-width:900px; border-collapse:collapse; table-layout:fixed; font-size:12px; background:#fff; }
.sa-prt thead th {
  position:static; background:#f7f8fa; color:#5a6472; font-size:11px; font-weight:600;
  padding:8px 6px; text-align:center; white-space:nowrap;
  border:0; border-top:1px solid #e3e6ec; border-bottom:1px solid #dfe3ea;
}
.sa-prt tbody td {
  padding:5px 6px; border:0; border-bottom:1px solid #f1f3f6;
  text-align:center; vertical-align:middle; white-space:nowrap;
}
.sa-prt tbody tr:hover td { background:#fbfcfe; }
.sa-prt .sa-prt-g { text-align:left; font-weight:600; color:#2c3e50; }
.sa-prt .sa-prt-sum { font-weight:600; font-variant-numeric:tabular-nums; }
.sa-prt .sa-prt-amt { text-align:right; font-variant-numeric:tabular-nums; color:#2c3e50; }
.sa-prt input {
  box-sizing:border-box; width:100%; min-width:0; padding:3px 6px; font-size:12px;
  border:1px solid #dfe3ea; border-radius:3px; background:#fff; color:#2c3e50; text-align:right;
  font-variant-numeric:tabular-nums; transition:border-color .12s, box-shadow .12s;
}
.sa-prt input.sa-prt-txt { text-align:left; }
.sa-prt input:focus { border-color:#e4002b; outline:none; box-shadow:0 0 0 2px rgba(228,0,43,.10); }
.sa-prt .sa-prt-lk { color:#185FA5; cursor:pointer; }
.sa-prt .sa-prt-lk:hover { text-decoration:underline; }
.sa-prt .sa-prt-bt {
  box-sizing:border-box; height:24px; padding:0 10px; font-size:11px; color:#fff;
  background:#e4002b; border:1px solid #e4002b; border-radius:3px; cursor:pointer;
}
.sa-prt .sa-prt-bt:hover { background:#c50025; border-color:#c50025; }
.sa-prt .sa-prt-bt2 {
  box-sizing:border-box; height:24px; padding:0 8px; font-size:11px; color:#555;
  background:#fff; border:1px solid #dfe3ea; border-radius:3px; cursor:pointer;
}
.sa-prt .sa-prt-bt2:hover { border-color:#185FA5; color:#185FA5; }

/* 展开区：整块灰底，内嵌档位表与上方表头分离，避免「两层边框打架」。
   左右不留缩进 → 档位表与外层表的左右边界在一条竖线上，整块看着才「齐」。 */
.sa-prt-open > td { background:#fafbfd; padding:0 !important; border-bottom:1px solid #e3e6ec !important; }
.sa-prt-open-in { padding:8px 0 10px; }

.sa-prtt { width:100%; border-collapse:collapse; table-layout:fixed; font-size:11.5px; background:#fff; }
.sa-prtt thead th {
  position:static; background:#f2f4f8; color:#5a6472; font-size:11px; font-weight:600;
  padding:6px; text-align:center; white-space:nowrap;
  border:0; border-bottom:1px solid #e2e5ea;
}
.sa-prtt tbody td {
  padding:4px 6px; border:0; border-bottom:1px solid #f4f5f8;
  white-space:nowrap; vertical-align:middle;
}
.sa-prtt tbody tr:last-child td { border-bottom:0; }
.sa-prtt tr.grp > td {
  background:#f1f5fb; padding:6px 10px; text-align:left;
  font-weight:700; font-size:11.5px; color:#2c3e50;
  border-top:1px solid #e3e8f0; border-bottom:1px solid #e3e8f0;
  box-shadow:inset 3px 0 0 0 #e4002b;   /* 左侧红条：分组标题与表头一眼区分开 */
}
.sa-prtt tr.grp:first-child > td { border-top:0; }
.sa-prtt tr.grp .sa-prtt-w { color:#8a94a6; font-weight:400; font-size:11px; margin-left:8px; }
.sa-prtt .ctr { text-align:center; }
.sa-prtt .num { text-align:right; font-variant-numeric:tabular-nums; }
.sa-prtt .vf { color:#c00; font-weight:600; }
.sa-prtt input {
  box-sizing:border-box; width:100%; padding:2px 6px; font-size:11.5px; text-align:right;
  border:1px solid #dfe3ea; border-radius:3px; background:#fff; color:#2c3e50;
  font-variant-numeric:tabular-nums;
}
.sa-prtt input:focus { border-color:#e4002b; outline:none; box-shadow:0 0 0 2px rgba(228,0,43,.10); }
.sa-prtt .sa-prt-lk { color:#185FA5; cursor:pointer; }
.sa-prtt .sa-prt-lk:hover { text-decoration:underline; }

/* 外层操作按钮等宽 + 档位表「保存」按钮静默化（21 个按钮常亮太花；改过系数才点亮变红） */
.sa-prt .sa-prt-bt, .sa-prt .sa-prt-bt2 { min-width:52px; }
.sa-prtt .sa-prt-sv { opacity:.28; transition:opacity .15s, background .15s, color .15s, border-color .15s; }
.sa-prtt tbody tr:hover .sa-prt-sv { opacity:1; }
.sa-prtt .sa-prt-sv.on { opacity:1; color:#fff; background:#e4002b; border-color:#e4002b; }
.sa-prtt .sa-prt-sv.on:hover { background:#c50025; border-color:#c50025; }

/* ===== 绩效奖金 · 合并计算说明（D-133，2026-10-24）===== */
.sa-pf-note { background:#f4f8ff; border:1px solid #d6e4fa; border-left:3px solid #185FA5; border-radius:4px; padding:9px 12px; font-size:12px; color:#3c4a5c; line-height:1.75; margin-bottom:10px; }
.sa-pf-note-t { font-weight:700; color:#185FA5; margin-bottom:3px; }
.sa-pf-note ul { margin:5px 0 0; padding-left:18px; }
.sa-pf-note li { margin:2px 0; }
.sa-pf-note b { color:#2c3e50; }
.sa-pf-tag { display:inline-block; margin-top:2px; padding:0 5px; font-size:10px; line-height:15px; color:#185FA5; background:#eaf2ff; border:1px solid #cfe0f8; border-radius:3px; white-space:nowrap; }
.sa-pf-warn { background:#fff8e6; border:1px solid #ffe0a3; border-left:3px solid #f0a500; border-radius:4px; padding:8px 12px; font-size:12px; color:#8a5a00; line-height:1.7; margin-top:8px; }
.sa-pf-warn > div + div { margin-top:2px; }

/* ===== 绩效奖金 · 副品牌店行（D-134，2026-10-25）=====
   副店行只填「目标销售额 + 备注」，其余列随主店 → 视觉上压低一档，避免误以为要逐项填 */
.sa-pf-sub > td { background:#fafbfd; }
.sa-pf-sub > td:first-child { border-left:2px solid #e3e6ec; }
.sa-pf-tag-sub { color:#8a94a6; background:#f2f4f8; border-color:#e3e6ec; font-weight:400; }
.sa-pf-sum { display:inline-block; margin-left:5px; font-size:10px; color:#8a94a6; white-space:nowrap; }
