/* 上海维际TMS系统 全站色彩标准（取自 logo 三色）
   主色   --tms-primary:        #0E6B8C  深青蓝（logo 文字主色）
   深档   --tms-primary-dark:   #08566F  顶栏渐变深端/强调
   亮青   --tms-secondary:      #12809B  渐变亮端/次级操作
   点缀绿 --tms-accent:         #2FA57D  logo 绿，正向点缀
   浅青底 --tms-tint-1:         #E8F3F7  标签/分区底
          --tms-tint-2:         #D3E7EE  边框/角标底
          --tms-tint-3:         #F0F7FA  极浅底
   语义色（全站通用，勿改主题用途）：成功 #2BA245 · 警示 #B8722D · 危险 #E05A3A
   用法：color: var(--tms-primary); 新页面一律引用变量，勿再硬编码。 */
:root {
  --tms-primary: #0E6B8C;
  --tms-primary-dark: #08566F;
  --tms-secondary: #12809B;
  --tms-accent: #2FA57D;
  --tms-tint-1: #E8F3F7;
  --tms-tint-2: #D3E7EE;
  --tms-tint-3: #F0F7FA;
}

/* ==================== 全站排版标准（2026-09-28 定版） ====================
   五级字阶，全站统一，新页面一律照此执行、不得自造字号：
   ① 页面主标题 h1 ............ 17px / 700 / 主色（主题强制，页面无需再写 font-size）
   ② 区块·面板标题 h2 ......... 15px / 600 / #303133（主题强制）
   ③ 指标卡数值 .adv-card .v 类 18px / 700（统计大数，允许 18~20px，仅限数字强调）
   ④ 正文·表格·按钮·输入框·菜单 14px（--tms-fs-base）
   ⑤ 提示·说明·辅助 .hint/.empty 与徽标 .pill/.tag/.menu-badge 12px（--tms-fs-small）
   弹窗组件（tms-dialog.js）自带 15px 标题 / 13.5px 正文，与②④衔接，随组件走。 */
:root {
  --tms-fs-h1: 17px;
  --tms-fs-h2: 15px;
  --tms-fs-base: 14px;
  --tms-fs-small: 12px;
}
h1 { font-size: var(--tms-fs-h1) !important; font-weight: 700 !important; color: var(--tms-primary) !important; }
h2 { font-size: var(--tms-fs-h2) !important; font-weight: 600 !important; }
body { font-size: var(--tms-fs-base); }
.hint, .empty { font-size: var(--tms-fs-small); }
.btn, button { font-size: var(--tms-fs-base); }
input, select, textarea { font-size: var(--tms-fs-base); }

/* ==================== 全站按钮标准（2026-09-28 定版） ====================
   ① 尺寸：常规按钮 高 34px / 左右内边距 18px / 圆角 6px / 字号 14px
          行内小按钮 .btn.mini 高 24px / padding 0 8px / 圆角 4px / 字号 12px
   ② 配色（同功能同色，全站唯一取值）：
      主操作   .btn.main（别名 primary）      常态 #12809B · hover #0E6B8C · 白字
      次操作   .btn.sub （别名 ghost/plain）  浅灰 #F0F2F5 · 字 #606266 · hover #E2EDF2/#08566F
      确认通过 .btn.ok  （别名 confirm/add）  实心绿 #2FA57D · hover #268A68 · 白字
               .btn.ok-line（别名 ok2）       描边绿 字/边 #2BA245 · hover 底 #F0F9EB
      危险操作 .btn.danger（别名 warn/no/mini）描边红 字/边 #E05A3A · hover 底 #FEF0F0
               实心红仅限「最终确认删除」      .btn.danger.solid
      行内小按钮 .btn.mini 默认同次操作；修饰 .main / .ok / .danger 取对应色
   ③ 位置（详见《系统菜单与按钮及排版标准》）：
      面板级操作固定面板右上角、最右为主操作；表单/弹窗底部右下（左取消 右确定）；
      查询栏最右（左「重置」右「查 询」）；表格行内操作固定最右「操作」列，危险操作排最后。 */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  height: 34px; padding: 0 18px; border: 1px solid transparent; border-radius: 6px;
  font-size: var(--tms-fs-base); line-height: 1; cursor: pointer; white-space: nowrap;
  background: #F0F2F5; color: #606266; font-family: inherit;
  transition: background .15s, color .15s, border-color .15s;
}
.btn:hover:not(:disabled) { background: #E2EDF2; color: var(--tms-primary-dark); }
.btn.main, .btn.primary { background: var(--tms-secondary); color: #fff; }
.btn.main:hover:not(:disabled), .btn.primary:hover:not(:disabled) { background: var(--tms-primary); color: #fff; }
.btn.sub, .btn.ghost, .btn.plain { background: #F0F2F5; color: #606266; }
.btn.sub:hover:not(:disabled), .btn.ghost:hover:not(:disabled), .btn.plain:hover:not(:disabled) { background: #E2EDF2; color: var(--tms-primary-dark); }
.btn.ok, .btn.confirm, .btn.add { background: var(--tms-accent); color: #fff; }
.btn.ok:hover:not(:disabled), .btn.confirm:hover:not(:disabled), .btn.add:hover:not(:disabled) { background: #268A68; color: #fff; }
.btn.ok-line, .btn.ok2 { background: #fff; color: #2BA245; border-color: #2BA245; }
.btn.ok-line:hover:not(:disabled), .btn.ok2:hover:not(:disabled) { background: #F0F9EB; color: #2BA245; }
.btn.danger, .btn.no { background: #fff; color: #E05A3A; border-color: #E05A3A; }
.btn.danger:hover:not(:disabled), .btn.no:hover:not(:disabled) { background: #FEF0F0; color: #E05A3A; }
.btn.danger.solid, .btn.warn { background: #E05A3A; color: #fff; border-color: #E05A3A; }
.btn.danger.solid:hover:not(:disabled), .btn.warn:hover:not(:disabled) { background: #C94A2C; color: #fff; }
.btn.mini, .btn.small, .btn.up { height: 24px; padding: 0 8px; border-radius: 4px; font-size: var(--tms-fs-small); background: #F0F2F5; color: #606266; border-color: #E4E7ED; }
.btn.mini:hover:not(:disabled), .btn.small:hover:not(:disabled), .btn.up:hover:not(:disabled) { background: #E2EDF2; color: var(--tms-primary-dark); }
.btn.mini.main, .btn.mod { background: var(--tms-tint-1); color: var(--tms-primary); border-color: #B5D8E4; }
.btn.mini.main:hover:not(:disabled), .btn.mod:hover:not(:disabled) { background: var(--tms-secondary); color: #fff; border-color: var(--tms-secondary); }
.btn.mini.ok, .btn.rc { background: #E8F6EC; color: #2E8B4F; border-color: #BFE3CC; }
.btn.mini.ok:hover:not(:disabled), .btn.rc:hover:not(:disabled) { background: #2E8B4F; color: #fff; border-color: #2E8B4F; }
.btn.mini.danger { background: #FDEEE8; color: #C4502E; border-color: #F5CBB9; }
.btn.mini.danger:hover:not(:disabled) { background: #E05A3A; color: #fff; border-color: #E05A3A; }
.btn:disabled { background: #BFDCE6; color: #fff; cursor: not-allowed; }
.btn.sub:disabled, .btn.mini:disabled, .btn.danger:disabled { background: #F0F2F5; color: #A8ABB2; border-color: #E4E7ED; }
/* 按钮组容器：统一间距 10px（对齐方式由各页面布局决定，主操作恒在最右） */
.btn-row, .btns { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }

/* ==================== 明细表格操作按钮 .tms-ops-group（2026-09-28 定版） ====================
   用途：明细表格级操作按钮 —— 导出 / 一键导入（覆盖） / 一键导入（追加）。
        全站同类按钮一律沿用本组（配色照「在途管理」版，尺寸照全站标准按钮）。
   位置：与分页条同一行（明细表格下方）—— 分页信息/页码靠左，按钮组 margin-left:auto 靠右。
   结构：<div class="pager">（或 .tms-pager）
           …分页控件…
           <span class="tms-ops-group">
             <button class="tms-btn main" onclick="exportCsv()">导出</button>
             <button class="tms-btn rep" id="importReplaceBtn" style="display:none" onclick="pickImport('replace')">一键导入（覆盖）</button>
             <button class="tms-btn app" id="importAppendBtn" style="display:none" onclick="pickImport('append')">一键导入（追加）</button>
           </span>
         </div>
   配色：导出=主色实心 #0E6B8C · 覆盖=紫实心 #8A63C9 · 追加=绿实心 #2BA245（同族唯一取值）。
   权限：导入按钮默认 display:none，管理员登录后由页面脚本放开（服务端接口同样仅管理员）。 */
.tms-ops-group { display: flex; align-items: center; gap: 10px; margin-left: auto; flex-wrap: wrap; justify-content: flex-end; }
.tms-ops-group .tms-btn {
  display: inline-flex; align-items: center; justify-content: center;
  height: 34px; padding: 0 18px; border: 1px solid transparent; border-radius: 6px;
  font-size: var(--tms-fs-base); font-family: inherit; line-height: 1; white-space: nowrap; cursor: pointer;
  transition: background .15s, border-color .15s;
}
.tms-ops-group .tms-btn.main { background: var(--tms-primary); border-color: var(--tms-primary); color: #fff; }
.tms-ops-group .tms-btn.main:hover:not(:disabled) { background: var(--tms-primary-dark); border-color: var(--tms-primary-dark); }
.tms-ops-group .tms-btn.rep { background: #8A63C9; border-color: #8A63C9; color: #fff; }
.tms-ops-group .tms-btn.rep:hover:not(:disabled) { background: #7450B3; border-color: #7450B3; }
.tms-ops-group .tms-btn.app { background: #2BA245; border-color: #2BA245; color: #fff; }
.tms-ops-group .tms-btn.app:hover:not(:disabled) { background: #23853A; border-color: #23853A; }
/* 打印 = 只读操作，用描边样式（实心只给「会写数据」的按钮） */
.tms-ops-group .tms-btn.prt { background: #fff; border-color: #B5D8E4; color: var(--tms-primary); }
.tms-ops-group .tms-btn.prt:hover:not(:disabled) { background: var(--tms-tint-1); border-color: var(--tms-primary); }
/* 批量删除（2026-10-04）：红实心（写数据且需管理员审批） */
.tms-ops-group .tms-btn.del { background: #E05A3A; border-color: #E05A3A; color: #fff; }
.tms-ops-group .tms-btn.del:hover:not(:disabled) { background: #C74829; border-color: #C74829; }
/* 批量修改（2026-10-05 用户定版）：橙实心（写数据、需审批的按各模块口径） */
.tms-ops-group .tms-btn.bat { background: #C77E1E; border-color: #C77E1E; color: #fff; }
.tms-ops-group .tms-btn.bat:hover:not(:disabled) { background: #A96812; border-color: #A96812; }
/* 明细行点选（批量删除配套，2026-10-04）：点击行切换选中，选中行高亮 */
table[data-sel="1"] tbody tr { cursor: pointer; }
table[data-sel="1"] tbody tr.tms-row-sel td { background: #e8f3f7 !important; }
table[data-sel="1"] tbody tr.tms-row-sel td:first-child { box-shadow: inset 3px 0 0 var(--tms-primary, #0e6b8c); }
.tms-ops-group .tms-btn:disabled { background: #F0F2F5; border-color: #E4E7ED; color: #A8ABB2; cursor: not-allowed; }
/* 页面级说明文字（如资金流水导入说明）：独占一行，放在分页+按钮行的上方 */
.tms-ops-hint { margin: 8px 0 0; font-size: var(--tms-fs-small); color: #909399; }

/* 表格行内操作（链接型）：查看/修改=主色，删除/解绑=红；同一表格内不与 .btn.mini 混用 */
.op { cursor: pointer; font-size: var(--tms-fs-small); color: var(--tms-primary); }
.op.edit, .op.view { color: var(--tms-primary); }
.op.del, .op.unbind { color: #E05A3A; }
.op:hover { text-decoration: underline; }

/* ==================== 明细表格统一标准（2026-10-02 定版） ====================
   全站明细表（含弹窗内子表）统一执行，后续新增明细同样照此执行：
     ① 字体字号：Microsoft YaHei / 12.5px（--tms-fs-table），不再允许各页面各写一套；
     ② 锁定：锁定表头（单行锁首行、双行表头锁前两行，吸附偏移由 tms-detail-std.js 计算）
            ＋ 锁定首列（<table data-lock="N"> 由 table-lock.js 执行）；
     ③ 列宽：按内容自适应，表头与数字列保证完整显示（单列上限 260px）；
     ④ 过长内容：单元格省略号截断（.tms-ellip），鼠标移到单元格即弹出完整内容浮层（.tip-fly）。 */
/* 表头文字统一居中（2026-10-03）：全站所有表格表头 th 文字一律水平居中
   （含双行表头子列、.num/.money 等数字列表头）；正文单元格 td 对齐不受影响。 */
table thead th { text-align: center !important; }
/* 弹窗内无 thead 的小明细表（首行即 th）兜底，同样居中 */
table > tbody > tr:first-child > th { text-align: center; }
:root { --tms-fs-table: 12.5px; }
table th, table td { font-size: var(--tms-fs-table) !important; font-family: "Microsoft YaHei", sans-serif; }
table th .time, table td .time, table td .op, table td .no, table td .cp, table td .mono,
table th .tms-cell, table td .tms-cell { font-size: var(--tms-fs-table) !important; }
/* 过长内容：省略号截断（截断标记由 tms-detail-std.js 按实际文字宽度自动打） */
th.tms-ellip, td.tms-ellip { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* 完整内容即时浮层（与自营/违章记录明细同款，替代原生 title 的延迟提示） */
.tip-fly {
  position: fixed; z-index: 9999; display: none; max-width: 480px; padding: 6px 10px;
  border-radius: 6px; background: #30373f; color: #fff; font-size: var(--tms-fs-table);
  line-height: 1.6; pointer-events: none; box-shadow: 0 4px 14px rgba(0,0,0,.22);
  white-space: pre-wrap; word-break: break-all;
}
/* 首列锁定兜底（未引 table-lock.css 的页面同样生效；与 table-lock.css 取值一致） */
.lockcol { position: sticky; z-index: 3; }
thead th.lockcol { z-index: 7; }
/* 操作列右锁定（2026-10-05 用户定版）：明细表最后一列「操作」始终吸附在可视区右缘，
   横向滚动时随时可操作；由 table-lock.js 按「末列表头含『操作』」自动启用。
   z-index 9：必须高于普通表头吸附属（部分页面本地 thead th 样式 z-index 3 会盖住右锁格，
   2026-10-06 订单页实测；table-lock.js 同时写内联 z 兜底） */
table .lockcol-r { position: sticky; right: 0; z-index: 3; box-shadow: inset 1px 0 0 #ebeef5; }
table thead .lockcol-r { z-index: 9; box-shadow: inset 1px 0 0 #ebeef5, inset 0 1px 0 #ebeef5, inset 0 -1px 0 #ebeef5; }
/* 锁定表格边框模型（2026-10-06 用户实报修复）：collapse + sticky 在部分浏览器/缩放下
   锁定格与跨行表头格背景绘制丢失（症状：锁定列「干线管理/司服管理」表头无背景色、
   跨行表头下沿出现空白格）。标准修法 = 改 separate 边框模型：每格自绘背景/边框，
   sticky 层级不再受整表合并边框绘制影响。半边框口令：各格只画右/下边框，外沿由表格补线。 */
table[data-lock] { border-collapse: separate; border-spacing: 0; border-top: 1px solid #ebeef5; border-left: 1px solid #ebeef5; }
table[data-lock] th, table[data-lock] td { border-top-width: 0 !important; border-left-width: 0 !important; }
/* 表格内复选框居中（2026-10-06 用户定版）：文本居中列内复选框水平+垂直双居中 */
table td.center, table th.center { text-align: center !important; vertical-align: middle !important; }
table td.center input[type="checkbox"], table th.center input[type="checkbox"],
table td.center input[type="radio"] { display: inline-block; margin: 0 auto; vertical-align: middle; }
/* 页签条纯色兜底：渐变背景在个别环境渲染失败时仍保持品牌青色（2026-10-06）
   注意：只兜底 .tabbar（深色页签条）。.topbar 在派车/在途/付款申请等页是浅色面包屑行、
   在 index.html 壳层是自带渐变的深色头——都禁写入主题，否则浅色行被误染成青色（曾致页面错乱）。 */
.tabbar { background-color: #0e6b8c; }
/* 弹窗标题栏拖动中：禁止选中文本、统一抓手光标 */
html.tms-dragging, html.tms-dragging * { user-select: none !important; }
html.tms-dragging { cursor: move !important; }
/* 弹窗标题栏可拖动提示光标（tms-dialog-std.js 注入） */
.tem-title, .dlg-head, .mask h3, .modal h3, .modal-mask h3, .__tmsd-modal h3, .tms-dlg h3 { cursor: move; }
.tem-title .mx, .dlg-head .mx, .mask h3 .mx, .modal h3 .mx, .modal-mask h3 .mx, .__tmsd-modal h3 .mx { cursor: pointer; }

/* ==================== 操作对话框统一标准（2026-10-02 定版） ====================
   全站任意操作（修改 / 删除 / 查看 / 其他）弹出的对话框统一为：
     ① 标题栏：深青渐变底 #08566F → #0E6B8C、白字 15px、吸附弹窗顶部；
     ② 右上角：统一 ✕ 关闭按钮（.mx）。
   样式由主题统一控制，页面无需再写标题样式；✕ 由 tms-dialog-std.js 统一补挂。 */
.mask h3, .modal h3, .modal-mask h3, .dlg h3, .dlg-head, .tem-title,
.tms-dlg h3, .__tmsd-modal h3, .batch h3 {
  background: linear-gradient(90deg, #08566f, #0e6b8c) !important;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: bold !important;
  letter-spacing: 1px;
  padding: 13px 20px !important;
  border-bottom: none !important;
  position: sticky; top: 0; z-index: 8;
  line-height: 1.45;
}
/* 标题栏右上角 ✕（与「在途管理·更新车辆状态」同款） */
.mask h3 .mx, .modal h3 .mx, .modal-mask h3 .mx, .dlg h3 .mx, .dlg-head .mx,
.tem-title .mx, .tms-dlg h3 .mx, .__tmsd-modal h3 .mx, .batch h3 .mx {
  position: absolute; right: 14px; top: 50%; transform: translateY(-50%);
  width: 30px; height: 30px; border: none; border-radius: 6px; padding: 0;
  background: rgba(255, 255, 255, .16); color: #fff; font-size: 15px; line-height: 1;
  cursor: pointer; font-family: inherit;
}
.mask h3 .mx:hover, .modal h3 .mx:hover, .modal-mask h3 .mx:hover, .dlg h3 .mx:hover,
.dlg-head .mx:hover, .tem-title .mx:hover, .tms-dlg h3 .mx:hover,
.__tmsd-modal h3 .mx:hover, .batch h3 .mx:hover { background: rgba(255, 255, 255, .34); }
/* 标题栏内嵌的小标记（如「ACTD卡友通 → 司服管理」）保持可读 */
.mask h3 .tag, .modal h3 .tag, .tms-dlg h3 .tag, .__tmsd-modal h3 .tag { color: #08566f !important; background: #fff !important; }

/* 裸表格横向滚动兜底容器（tms-detail-std.js 自动包裹）：容器内滚动，body 不再被撑宽 */
.tms-xwrap { overflow: auto; border-radius: 6px; }
.tms-xwrap > table { min-width: 100%; }

/* ==================== 通用「筛选设置」查询行（2026-10-05 定版，订单管理同款；ziying/客户管理等复用） ==================== */
.tms-fbar { display: grid; grid-template-columns: repeat(auto-fill, minmax(158px, 1fr)); gap: 10px 14px; align-items: end; position: relative; background: #fafbfd; border: 1px solid #ebeef5; border-radius: 8px; padding: 12px; margin-bottom: 4px; }
.tms-fbar .fitem { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.tms-fbar .fitem label { font-size: var(--fs-small, 12px); color: #909399; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tms-fbar input, .tms-fbar select { padding: 6px 10px; border: 1px solid #dcdfe6; border-radius: 6px; font-size: var(--fs-small, 12px); width: 100%; background: #fff; box-sizing: border-box; }
.tms-fbar input.kw { grid-column: span 2; }
.tms-fbar input.mini { width: 100%; min-width: 0; }
.tms-fbar .range { display: flex; align-items: center; gap: 4px; }
.tms-fbar .range .sep { color: #c0c4cc; font-size: var(--fs-small, 12px); }
.tms-fbar .fitem.fbtn { justify-content: flex-end; }
.tms-fbar .fbtn .btn { width: 100%; }
.tms-fbar input:focus, .tms-fbar select:focus { outline: none; border-color: #0e6b8c; }
.tms-fset { display: none; position: absolute; right: 0; top: calc(100% + 6px); width: 640px; max-width: 92vw; background: #fff; border: 1px solid #d3e7ee; border-radius: 10px; box-shadow: 0 8px 30px rgba(8, 86, 111, .18); z-index: 30; }
.tms-fset.show { display: block; }
.tms-fset .fset-head { display: flex; align-items: center; gap: 8px; padding: 12px 16px 8px; font-size: var(--fs-base, 14px); color: #08566f; font-weight: bold; }
.tms-fset .fset-head .tip { font-size: var(--fs-small, 12px); color: #909399; font-weight: normal; flex: 1; }
.tms-fset .fset-head .x { cursor: pointer; color: #909399; font-size: var(--fs-small, 12px); padding: 2px 8px; border-radius: 4px; }
.tms-fset .fset-head .x:hover { background: #f0f7fa; color: #0e6b8c; }
.tms-fset .fset-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px 10px; padding: 6px 16px 14px; }
.tms-fset label.fck { display: flex; align-items: center; gap: 5px; font-size: var(--fs-small, 12px); color: #606266; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tms-fset label.fck input { accent-color: #0e6b8c; flex: none; width: auto; }

/* ==================== 小屏适配（2026-10-01 定版，平板/手机） ====================
   说明：本项目为 PC 优先，小屏不做重构，只做「能用」的降级：
     ① 筛选区/表单区多列网格 → 单列；② 指标卡网格 → 1 列；③ 按钮组 → 整行靠左换行；
     ④ 表格字号压缩，过宽时随页面横向滚动（保留全部列，不隐藏）；
     ⑤ 弹窗限宽 96vw；⑥ 触摸设备加大可点区域。
   实现方式：全部作用在页面自身的类名上（.filter-bar/.form-grid/.adv-cards 等），
   页面无需改动；媒体查询写在主题里 = 全站唯一来源，新增页面自动获得。 */
@media (max-width: 900px) {
  body { -webkit-text-size-adjust: 100%; }
  /* ① 筛选区 / 表单区：单列 */
  .filter-bar, .filters, .filterrow, .filter-row, .sum-filter,
  .form-grid, .grid, .fg-row, .rpt-grid, .vio-cards, .hesi-cards {
    display: block !important;
  }
  .filter-bar > *, .filters > *, .filterrow > *, .filter-row > *, .sum-filter > *,
  .form-grid > *, .grid > *, .fg-row > * {
    width: 100% !important;
    margin-bottom: 8px;
    box-sizing: border-box;
  }
  .filter-bar input, .filter-bar select, .filters input, .filters select,
  .form-grid input, .form-grid select, .form-grid textarea,
  .grid input, .grid select {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box;
  }
  /* 复选框/单选框恢复自身尺寸（否则被上面的 100% 拉成整行方块） */
  input[type=checkbox], input[type=radio] { width: auto !important; height: auto !important; }
  /* ② 指标卡 / 看板网格：1 列 */
  .adv-cards, .sum-cards, .stat-cards, .kpi-grid, .aud-grid, .adv-grid,
  .vio-cards, .stat-wrap, .advice-wrap {
    display: block !important;
  }
  .adv-cards > *, .sum-cards > *, .stat-cards > *, .kpi-grid > *, .aud-grid > *,
  .adv-grid > *, .stat-wrap > * {
    width: 100% !important;
    margin-bottom: 8px;
    box-sizing: border-box;
  }
  /* ③ 按钮组：整行靠左换行（含自动挂载的「打印」） */
  .tms-ops-group { width: 100%; justify-content: flex-start; margin-left: 0 !important; }
  .tms-ops-group .tms-btn { height: 32px; padding: 0 14px; }
  .btn-row, .btns, .pager, .tms-pager { gap: 8px; }
  /* ④ 表格：压缩排版，过宽随页面横向滚动 */
  table th, table td { font-size: 12px; padding: 6px 8px; }
  .panel, .adv-panel, .card, .vio-card { padding-left: 10px; padding-right: 10px; }
  /* ⑤ 弹窗 / 对话框 */
  .tms-dlg, .tms-dialog, .tms-modal, .mask > .box, .modal-box { width: 96vw !important; max-width: 96vw !important; }
  /* ⑥ 页头导航：标题独占一行，返回按钮与面包屑换行显示 */
  .tms-nav-row h1 { width: 100%; }
  .tms-nav { margin-bottom: 8px; }
  /* 全局搜索浮标：小屏缩小并内收，避免压住右上角内容与分页按钮 */
  #tmsSearchFab {
    right: 10px !important;
    bottom: 10px !important;
    padding: 6px 12px !important;
    font-size: 12px !important;
  }
  #tmsSearchFab span { display: none !important; }
}
/* 触摸设备：行内操作链接加大可点区域（.op 为 12px 文字，手机上是难点区） */
@media (hover: none) and (pointer: coarse) {
  .op { padding: 4px 2px; }
  .btn.mini, .tms-pg { min-height: 30px; }
}

/* ===== 页头徽标隐藏（2026-10-04 用户定版）：编号前缀/单号前缀/来源 徽标一律不再显示 ===== */
/* 覆盖：ziying.html 各模块（SW/WZ/WB/CZ/XF…）、finance.html（BZJ/YC…）、trunk-fleet.html、pool.html */
/* 纯样式隐藏，不影响编号生成、审批与数据逻辑；如需恢复删除本段即可 */
#modBadge, #srcBadge { display: none !important; }

/* ===== 区块标题条全站标准（2026-10-04 用户定版：ETC消费基本情况同款） ===== */
/* 浅蓝底 #E8F3F7 + 左 4px 青线 #0E6B8C + 深青字 #08566F 15px 加粗；页面本地定义与其保持一致 */
.sec-title { font-size: 15px; font-weight: bold; color: #08566f; margin: 18px 0 10px; padding: 6px 12px; border-left: 4px solid #0e6b8c; line-height: 1.4; background: #e8f3f7; border-radius: 0 8px 8px 0; }
