/* ============================================================
   Vastrade 汽车出口报价系统 · 界面主题
   配色依据：vastrade-ui-tokens.css（品牌软件工具统一配色系统 v1.0）
   原则：60-30-10 —— 中性灰绿 60%，深青 30%，品牌绿 ≤10% 只做行动点
   ============================================================ */

/* ---------------- 应用级别名（兼容既有类名，值全部指向品牌 token） ---------------- */
:root {
  --brand: var(--vt-primary-interactive);   /* #1CB454 按钮 / 链接 / 强调 */
  --brand-deep: var(--vt-primary-deep);     /* #17954D 浅底上的绿色文字 */
  --brand-bright: var(--vt-primary);        /* #25D366 装饰 / 选中 / 图表强调 */
  --brand-soft: var(--vt-green-50);         /* #EBFCEF 浅绿底 */
  --teal: var(--vt-teal-500);               /* #128C7E 图表第二色 */
  --nav-bg: var(--vt-bg-sidebar);           /* #075E54 侧栏 / 顶栏 */
  --nav-bg-hover: rgba(255, 255, 255, .08);
  --nav-active: var(--vt-bg-sidebar-active);
  --page-bg: var(--vt-bg-page);
  --card-bg: var(--vt-bg-card);
  --line: var(--vt-border);
  --line-soft: var(--vt-gray-100);
  --muted: var(--vt-text-2);
  --ink: var(--vt-text-1);
  --card-shadow: var(--vt-shadow-card);
  --ok: var(--vt-success);
  --warn: var(--vt-warning);
  --danger: var(--vt-danger);
  --scroll-track: var(--vt-gray-100);
  --scroll-thumb: var(--vt-gray-400);
}

* { box-sizing: border-box; }
html, body, #app { height: 100%; margin: 0; }
body {
  font-family: var(--vt-font-sans);
  background: var(--vt-bg-page);
  color: var(--vt-text-1);
  -webkit-font-smoothing: antialiased;
  transition: background-color .2s;
}
::selection { background: var(--vt-green-100); color: var(--vt-green-900); }

/* 全局滚动条（贴合品牌绿调中性灰） */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--scroll-thumb); border-radius: 8px; border: 2px solid transparent; background-clip: content-box; }
::-webkit-scrollbar-thumb:hover { background: var(--vt-gray-500); background-clip: content-box; }

/* ---------------- 布局 ---------------- */
.layout { display: flex; height: 100%; }

.sidebar {
  width: 232px; flex: 0 0 232px;
  background: linear-gradient(180deg, var(--vt-teal-600) 0%, var(--vt-teal-700) 100%);
  color: var(--vt-teal-100);
  display: flex; flex-direction: column; overflow: hidden;
}
[data-theme="dark"] .sidebar { background: linear-gradient(180deg, #082621 0%, #061D19 100%); }

/* 品牌区：VT logo 锁定版 + 字标 */
.brand {
  padding: 16px 16px 14px; border-bottom: 1px solid rgba(255, 255, 255, .1);
  display: flex; align-items: center; gap: 11px;
}
.brand .brand-logo { width: 38px; height: 38px; flex: none; }
.brand .brand-logo svg { width: 100%; height: 100%; display: block; }
.brand .brand-text { min-width: 0; }
.brand h1 {
  font-size: 16px; margin: 0; color: #fff; letter-spacing: 1.6px; font-weight: 800;
  font-family: "Montserrat", var(--vt-font-sans); line-height: 1.1;
}
.brand p { margin: 3px 0 0; font-size: 10.5px; color: var(--vt-green-300); letter-spacing: .8px; }
.brand .logo-dot { display: none; }

.nav { flex: 1; overflow-y: auto; padding: 8px 0 14px; }
.nav::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, .22); background-clip: content-box; }
.nav-group-title {
  font-size: 10.5px; color: rgba(255, 255, 255, .42); padding: 14px 18px 6px;
  letter-spacing: 1.4px; font-weight: 600;
}
.nav-item {
  display: flex; align-items: center; gap: 10px; padding: 9px 18px; cursor: pointer;
  font-size: 13.5px; color: var(--vt-teal-100); border-left: 3px solid transparent; user-select: none;
  transition: background-color .15s, color .15s;
}
.nav-item:hover { background: var(--nav-bg-hover); color: #fff; }
.nav-item.active {
  background: var(--vt-bg-sidebar-active); color: #fff; font-weight: 600;
  border-left-color: var(--brand-bright);
}
.nav-item .el-icon { font-size: 15px; }
.nav-badge {
  margin-left: auto; background: var(--vt-danger-500); color: #fff; border-radius: 9px;
  font-size: 11px; padding: 1px 6px; line-height: 15px;
}
.sidebar-foot {
  padding: 11px 16px; font-size: 10.5px; color: rgba(255, 255, 255, .38);
  border-top: 1px solid rgba(255, 255, 255, .09); display: flex; align-items: center; gap: 6px;
}
.sidebar-foot .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--brand-bright); flex: none; }

.main { flex: 1; display: flex; flex-direction: column; min-width: 0; }

/* 顶栏：与侧栏同源的品牌深青 */
.topbar {
  height: 56px; background: var(--vt-teal-600); border-bottom: 1px solid rgba(255, 255, 255, .1);
  display: flex; align-items: center; padding: 0 20px; gap: 14px; flex: 0 0 56px;
}
[data-theme="dark"] .topbar { background: #082621; }
.topbar .page-title { font-size: 15px; font-weight: 600; color: #fff; letter-spacing: .3px; }
.topbar .spacer { flex: 1; }
.topbar .mobile-menu { color: #fff; }
.topbar .tb-icon { color: rgba(255, 255, 255, .82); font-size: 18px; }
.topbar .tb-icon:hover { color: #fff; }
.topbar .user-btn { color: #fff; font-size: 13px; }
.topbar .el-avatar { background: var(--brand) !important; color: #fff; font-weight: 600; }
.topbar .el-dropdown { color: #fff; }
.topbar .el-tag { border-color: rgba(255, 255, 255, .5); color: #fff; background: rgba(255, 255, 255, .12); }
.content { flex: 1; overflow: auto; padding: 18px 20px 40px; background: var(--vt-bg-page); }

/* ---------------- 通用卡片 ---------------- */
.card {
  background: var(--vt-bg-card); border-radius: var(--vt-radius-card); box-shadow: var(--vt-shadow-card);
  padding: 18px; margin-bottom: 16px; border: 1px solid var(--vt-border);
}
.card-title { font-size: 14.5px; font-weight: 600; margin: 0 0 14px; display: flex; align-items: center; gap: 8px; color: var(--vt-text-1); }
.card-title::before {
  content: ''; width: 3px; height: 14px; border-radius: 2px;
  background: linear-gradient(180deg, var(--brand-bright), var(--teal));
}
.page-head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
.page-head .spacer { flex: 1; }
.muted { color: var(--vt-text-2); font-size: 12px; }
.mono { font-family: var(--vt-font-mono); }
.money { font-variant-numeric: tabular-nums; font-weight: 600; }

/* ---------------- 统计卡 ---------------- */
.stat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(168px, 1fr)); gap: 12px; }
.stat {
  background: var(--vt-bg-card); border-radius: var(--vt-radius-card); padding: 14px 16px;
  box-shadow: var(--vt-shadow-card); border: 1px solid var(--vt-border);
  border-left: 3px solid var(--brand-bright);
}
.stat .label { font-size: 12px; color: var(--vt-text-2); }
.stat .value { font-size: 24px; font-weight: 700; margin-top: 6px; font-variant-numeric: tabular-nums; color: var(--vt-text-1); }
.stat .sub { font-size: 11px; color: var(--vt-text-2); margin-top: 2px; }

/* ---------------- 登录 ---------------- */
.login-page {
  height: 100%; display: flex; align-items: center; justify-content: center; padding: 28px;
  background: radial-gradient(1100px 620px at 12% 0%, #0A6A5E 0%, #075E54 45%, #043831 100%);
}
[data-theme="dark"] .login-page { background: radial-gradient(1100px 620px at 12% 0%, #0E3630 0%, #082621 50%, #0A201C 100%); }
.login-shell {
  width: min(940px, 100%); min-height: 484px; display: flex; overflow: hidden;
  border-radius: 18px; box-shadow: 0 30px 80px rgba(0, 0, 0, .38); background: var(--vt-bg-card);
}
.login-brand {
  flex: 0 0 42%; background: linear-gradient(160deg, var(--vt-teal-600) 0%, #0A6A5E 55%, var(--vt-teal-500) 100%);
  color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 12px; padding: 34px 26px; text-align: center; position: relative; overflow: hidden;
}
.login-brand::after {
  content: ''; position: absolute; right: -14%; bottom: -46%; width: 66%; aspect-ratio: 1;
  border-radius: 50%; background: linear-gradient(180deg, #4EE566, #15A640); opacity: .16;
}
.login-brand .lb-logo { width: 96px; height: 96px; position: relative; z-index: 1; }
.login-brand .lb-logo svg { width: 100%; height: 100%; display: block; }
.login-brand b {
  font-size: 21px; letter-spacing: 3px; position: relative; z-index: 1;
  font-family: "Montserrat", var(--vt-font-sans);
}
.login-brand .lb-sub { font-size: 12px; color: var(--vt-green-300); letter-spacing: 1.4px; position: relative; z-index: 1; }
.login-brand .lb-cn { font-size: 12.5px; color: rgba(255, 255, 255, .78); line-height: 1.9; position: relative; z-index: 1; }
.login-brand .lb-badges { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; margin-top: 6px; position: relative; z-index: 1; }
.login-brand .lb-badges span {
  font-size: 10.5px; padding: 2px 10px; border-radius: 20px;
  background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .22); color: #fff;
}
.login-card { flex: 1; padding: 44px 46px; display: flex; flex-direction: column; justify-content: center; background: var(--vt-bg-card); }
.login-card h2 { margin: 0 0 6px; font-size: 21px; color: var(--vt-text-1); font-weight: 700; }
.login-card .sub { color: var(--vt-text-2); font-size: 12.5px; margin-bottom: 24px; }
.login-foot { margin-top: 20px; text-align: center; font-size: 11px; color: var(--vt-text-3); letter-spacing: .4px; }
@media (max-width: 760px) {
  .login-brand { display: none; }
  .login-card { padding: 32px 24px; }
}

/* ---------------- 报价计算器 ---------------- */
.calc-table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.calc-table th, .calc-table td { border: 1px solid var(--line); padding: 4px 6px; text-align: center; white-space: nowrap; }
.calc-table th { background: var(--vt-gray-100); font-weight: 600; color: var(--vt-gray-700); position: sticky; top: 0; z-index: 2; font-size: 12px; }
.calc-table td input { width: 100%; border: 1px solid transparent; background: transparent; font-size: 12.5px; padding: 4px 5px; border-radius: 4px; text-align: right; font-variant-numeric: tabular-nums; color: inherit; }
.calc-table td input:hover { border-color: var(--vt-gray-300); background: var(--vt-bg-card); }
.calc-table td input:focus { outline: none; border-color: var(--brand); background: var(--vt-bg-card); box-shadow: 0 0 0 2px rgba(28, 180, 84, .16); }
.calc-table td.name input { text-align: left; }
.calc-table tr:hover td { background: var(--vt-green-50); }
[data-theme="dark"] .calc-table tr:hover td { background: #123826; }
.calc-wrap { overflow: auto; max-height: 460px; border: 1px solid var(--line); border-radius: var(--vt-radius-input); }
.col-fixed { position: sticky; left: 0; background: var(--vt-bg-card); z-index: 1; }
.calc-table th.col-fixed { background: var(--vt-gray-100); z-index: 3; }

.quote-preview {
  background: var(--vt-bg-card); border: 1px dashed var(--vt-gray-300); border-radius: var(--vt-radius-input);
  padding: 16px 18px; white-space: pre-wrap; font-size: 13px; line-height: 1.75;
  font-family: "Segoe UI", Arial, sans-serif; max-height: 460px; overflow: auto;
}
.quote-preview.poster { width: 760px; max-height: none; border: none; padding: 30px 34px; }

.formula-box { background: var(--vt-gray-50); border-radius: var(--vt-radius-input); padding: 12px 14px; font-size: 12px; line-height: 1.9; }
.formula-row { display: flex; gap: 10px; padding: 3px 0; border-bottom: 1px dashed var(--vt-gray-200); }
.formula-row:last-child { border-bottom: none; }
.formula-row .lbl { width: 108px; color: var(--vt-gray-700); flex: 0 0 108px; font-weight: 600; }
.formula-row .fm { flex: 1; color: var(--vt-text-2); }
.formula-row .val { width: 128px; text-align: right; flex: 0 0 128px; font-weight: 600; font-variant-numeric: tabular-nums; }
.formula-row.hl { background: var(--vt-green-50); border-radius: 5px; padding-left: 6px; }
.formula-row.dim { opacity: .45; }

/* ---------------- 计算过程（按环节模块化） ---------------- */
.calc-groups { display: flex; flex-direction: column; gap: 10px; }
.calc-group {
  background: var(--vt-gray-50); border: 1px solid var(--vt-border); border-radius: var(--vt-radius-input);
  padding: 8px 12px 6px; font-size: 12px; line-height: 1.8;
}
.calc-group .cg-title {
  display: flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 700;
  color: var(--brand-deep); margin: 1px 0 5px; letter-spacing: .5px;
}
.calc-group .cg-title::before { content: ''; width: 4px; height: 12px; border-radius: 2px; background: var(--brand-bright); flex: 0 0 4px; }
.calc-group .formula-row .fm { word-break: break-all; }

/* ---------------- 报价行展开明细（按环节模块化） ---------------- */
.exp-grid2 { display: flex; flex-direction: column; gap: 10px; max-width: 1180px; }
.exp-sec { background: var(--vt-bg-card); border: 1px solid var(--vt-border); border-radius: var(--vt-radius-input); padding: 10px 14px 12px; }
.exp-sec-t { display: flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 700; color: var(--brand-deep); margin-bottom: 8px; }
.exp-sec-t::before { content: ''; width: 4px; height: 12px; border-radius: 2px; background: var(--brand-bright); flex: 0 0 4px; }
.exp-fields { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px 16px; }
.exp-f > label { display: block; font-size: 11px; font-weight: 600; color: var(--vt-text-2); margin-bottom: 3px; }
.exp-f .exp-hint { font-size: 11px; color: var(--vt-text-3); line-height: 1.5; margin-top: 2px; }
.exp-f .exp-static { line-height: 30px; font-weight: 600; color: var(--vt-text-1); font-size: 13px; }
.exp-f.exp-wide { grid-column: span 2; }
@media (max-width: 1280px) { .exp-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------------- 车型清单：底部横向移动条 ---------------- */
.quote-table .el-scrollbar__bar.is-horizontal { display: none !important; }
.table-scroll-bar {
  display: flex; align-items: center; gap: 4px; margin-top: 8px; padding: 3px 8px;
  background: var(--vt-bg-card); border: 1px solid var(--line); border-radius: var(--vt-radius-input);
  position: sticky; bottom: 0; z-index: 6;
  box-shadow: 0 -2px 10px rgba(7, 94, 84, .10);
  will-change: transform;
}
.table-scroll-bar .tsb-track {
  flex: 1; min-width: 80px; overflow-x: auto; overflow-y: hidden; height: 16px;
  overscroll-behavior-x: contain; contain: content;
}
.table-scroll-bar .tsb-track::-webkit-scrollbar { height: 12px; }
.table-scroll-bar .tsb-track::-webkit-scrollbar-track { background: var(--scroll-track); border-radius: 6px; }
.table-scroll-bar .tsb-track::-webkit-scrollbar-thumb { background: var(--scroll-thumb); border-radius: 6px; }
.table-scroll-bar .tsb-track::-webkit-scrollbar-thumb:hover { background: var(--vt-gray-500); }
.table-scroll-bar .tsb-inner { height: 1px; }
.table-scroll-bar .tsb-hint { white-space: nowrap; margin-left: 4px; }
@media (max-width: 700px) { .table-scroll-bar .tsb-hint { display: none; } }

/* ---------------- 费用项目条目 ---------------- */
.fee-entries { display: flex; flex-direction: column; gap: 6px; }
.fee-entry { display: flex; align-items: center; gap: 8px; }
.fee-entry .fee-name { flex: 1; min-width: 0; }
.fee-entry .fee-amount { width: 140px; flex: 0 0 140px; }

/* ---------------- 批量设置栏 ---------------- */
.batch-bar {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  background: var(--vt-gray-50); border: 1px solid var(--vt-border); border-radius: var(--vt-radius-input);
  padding: 9px 12px; margin-bottom: 12px;
}
.batch-bar .batch-title { font-size: 12px; font-weight: 600; color: var(--vt-gray-700); }

/* ---------------- 行内许可证规则提示 ---------------- */
.license-tip {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  background: #EAF4FE; border: 1px solid #CDE5FA; border-radius: 7px;
  padding: 7px 10px; margin-bottom: 12px; font-size: 12px; color: #1D6FB8;
}
.license-tip .lt-label { background: var(--vt-info-500); color: #fff; border-radius: 10px; padding: 1px 9px; font-size: 11px; font-weight: 600; white-space: nowrap; }
.license-tip .lt-text { line-height: 1.6; }

/* ---------------- 国家/客户分栏 ---------------- */
.split { display: flex; gap: 14px; align-items: flex-start; }
.split .side { width: 250px; flex: 0 0 250px; }
.split .body { flex: 1; min-width: 0; }
.country-item {
  display: flex; align-items: center; justify-content: space-between; padding: 8px 10px; border-radius: 7px;
  cursor: pointer; font-size: 13px; margin-bottom: 2px;
}
.country-item:hover { background: var(--vt-gray-100); }
.country-item.active { background: var(--vt-green-50); color: var(--brand-deep); font-weight: 600; }
.country-item .cnt { font-size: 11px; color: var(--vt-text-2); background: var(--vt-gray-100); border-radius: 9px; padding: 1px 7px; }
.country-item.active .cnt { background: var(--vt-green-100); color: var(--vt-green-800); }
.group-chip { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; padding: 1px 8px; border-radius: 9px; background: var(--vt-teal-50); color: var(--vt-teal-700); }
.legend { display: flex; gap: 14px; flex-wrap: wrap; font-size: 12px; color: var(--muted); }
.legend i { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 5px; }

/* ---------------- 表格微调 ---------------- */
.el-table .cell { font-size: 13px; }
.el-table th.el-table__cell { background: var(--vt-gray-100) !important; color: var(--vt-gray-700); font-weight: 600; }
.el-table { --el-table-border-color: var(--vt-border); --el-table-header-bg-color: var(--vt-gray-100); }
.table-title { font-weight: 600; }
a.link { color: var(--brand-deep); text-decoration: none; cursor: pointer; font-weight: 500; }
a.link:hover { text-decoration: underline; color: var(--brand); }

/* ---------------- Element Plus 品牌微调 ---------------- */
.el-button--primary { --el-button-bg-color: var(--brand); --el-button-border-color: var(--brand); --el-button-hover-bg-color: var(--vt-green-400); --el-button-hover-border-color: var(--vt-green-400); --el-button-active-bg-color: var(--brand-deep); --el-button-active-border-color: var(--brand-deep); }
.el-button { border-radius: var(--vt-radius-input); }
.el-tag { border-radius: 6px; }
.el-dialog { border-radius: var(--vt-radius-card); }
.el-dialog__header { padding-bottom: 14px; border-bottom: 1px solid var(--vt-border); margin-right: 0; }
.el-card, .el-drawer { --el-card-border-radius: var(--vt-radius-card); }
.el-pagination.is-background .el-pager li.is-active { background-color: var(--brand); }
.el-switch.is-checked .el-switch__core { background-color: var(--brand); border-color: var(--brand); }
.el-progress-bar__outer { background-color: var(--vt-gray-100); }

/* 顶栏通知气泡 */
.notif-popper { border-radius: var(--vt-radius-card) !important; }
.notif-popper .el-popper__arrow::before { border-color: var(--vt-border) !important; }

/* 打印 */
@media print {
  .sidebar, .topbar, .no-print { display: none !important; }
  .content { padding: 0; overflow: visible; background: #fff; }
  .card { box-shadow: none; }
}

/* 移动端 */
@media (max-width: 900px) {
  .sidebar { position: fixed; z-index: 3000; height: 100%; transform: translateX(-100%); transition: transform .2s; }
  .sidebar.open { transform: translateX(0); }
  .split { flex-direction: column; }
  .split .side { width: 100%; flex: none; }
}

/* ---------------- 报价计算器：单元格备注固定高度 ---------------- */
.cell-note { font-size: 11px; line-height: 1.45; margin-top: 2px; min-height: 18px; max-height: 18px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }

/* ---------------- 报价表格：单元格顶对齐 ---------------- */
.quote-table .el-table__row > td { vertical-align: top; }
.quote-table .el-table__row .cell { line-height: 1.4; }

/* ---------------- 车型库：中英对照单元格 ---------------- */
.cell-bi { line-height: 1.35; }
.cell-bi .bi-en { color: var(--vt-text-3); font-size: 11px; margin-top: 1px; word-break: break-word; }
.cell-bi .bi-zh { color: inherit; }

/* ---------------- 车型库：分页条 + 加粗悬浮横向移动条 ---------------- */
.vehicle-table .el-scrollbar__bar.is-horizontal { display: none !important; }
.table-pager { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 10px; }
.table-scroll-bar-lg {
  bottom: 12px; margin-top: 12px; padding: 6px 12px; border-radius: 999px;
  box-shadow: 0 6px 20px rgba(7, 94, 84, .16), 0 1px 3px rgba(7, 94, 84, .10);
}
.table-scroll-bar-lg .tsb-track { height: 22px; }
.table-scroll-bar-lg .tsb-track::-webkit-scrollbar { height: 18px; }
.table-scroll-bar-lg .tsb-track::-webkit-scrollbar-track { background: var(--vt-gray-100); border-radius: 9px; }
.table-scroll-bar-lg .tsb-track::-webkit-scrollbar-thumb { background: var(--vt-gray-400); border-radius: 9px; border: 3px solid var(--vt-gray-100); }
.table-scroll-bar-lg .tsb-track::-webkit-scrollbar-thumb:hover { background: var(--vt-gray-500); }
.table-scroll-bar-lg .tsb-hint { font-size: 12px; }
.table-scroll-bar-lg .tsb-track { scrollbar-width: thin; scrollbar-color: var(--vt-gray-400) var(--vt-gray-100); }

/* ---------------- 新增/编辑车型：顶部智能粘贴区 ---------------- */
.quick-paste { margin-bottom: 4px; }
.quick-paste .qp-row { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.quick-paste .qp-dims { flex-wrap: wrap; }
.quick-paste .qp-dims .el-input { flex: none; }
.quick-paste .qp-row .el-input { flex: 1; }

/* ---------------- 客户详情信息网格 ---------------- */
.kv-grid { border: 1px solid var(--vt-border); border-radius: 6px; overflow: hidden; }
.kv-sec { padding: 7px 12px; background: var(--vt-gray-50); font-weight: 600; font-size: 13px; border-bottom: 1px solid var(--vt-border); }
.kv-row { display: grid; grid-template-columns: 110px 1fr 110px 1fr 110px 1fr; border-bottom: 1px solid var(--vt-border); }
.kv-row:last-child { border-bottom: none; }
.kv-label { background: var(--vt-gray-50); padding: 8px 10px; color: var(--vt-text-2); font-size: 12px; border-right: 1px solid var(--vt-border); }
.kv-val { padding: 8px 10px; font-size: 13px; border-right: 1px solid var(--vt-border); word-break: break-all; }
.kv-row .kv-val:last-child { border-right: none; }

/* ---------------- 弹窗分区标题 ---------------- */
.form-sec { font-weight: 600; font-size: 13px; color: var(--vt-text-1); margin: 20px 0 14px; padding-left: 8px; border-left: 3px solid var(--brand-bright); line-height: 1.2; }
.el-form .form-sec:first-child { margin-top: 2px; }

/* ---------------- 客户详情：文件资料卡片 ---------------- */
.doc-item { display: flex; align-items: center; gap: 12px; border: 1px solid var(--vt-border); border-radius: var(--vt-radius-input); padding: 12px 14px; margin-bottom: 10px; background: var(--vt-bg-card); transition: box-shadow .2s; }
.doc-item:hover { box-shadow: 0 2px 10px rgba(7, 94, 84, .10); }
.doc-icon { flex: none; width: 38px; height: 38px; border-radius: var(--vt-radius-input); background: var(--vt-green-50); display: flex; align-items: center; justify-content: center; color: var(--brand-deep); }
.doc-icon svg { width: 20px; height: 20px; }
.doc-thumb { flex: none; width: 38px; height: 38px; border-radius: var(--vt-radius-input); object-fit: cover; border: 1px solid var(--vt-border); cursor: pointer; }

/* ---------------- 客户管理：顶部筛选栏 ---------------- */
.filter-bar { padding: 12px 14px; margin-bottom: 12px; display: flex; flex-direction: column; gap: 9px; }
.filter-row { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.fb-label { flex: none; width: 78px; color: var(--vt-text-2); font-size: 12px; font-weight: 600; }
.fb-chip {
  display: inline-flex; align-items: center; gap: 6px; padding: 3px 12px; border-radius: 14px;
  border: 1px solid var(--vt-border-strong); cursor: pointer; font-size: 12px;
  color: var(--vt-text-2); background: var(--vt-bg-card); user-select: none; transition: all .15s;
}
.fb-chip:hover { border-color: var(--brand-bright); color: var(--brand-deep); background: var(--vt-green-50); }
.fb-chip.active { background: var(--vt-green-50); border-color: var(--brand-bright); color: var(--vt-green-800); font-weight: 600; }
.fb-chip .cnt { font-size: 11px; opacity: .72; }
.fb-country { font-size: 12px; color: var(--vt-text-1); font-weight: 600; margin: 0 2px 0 8px; }

/* ============================================================
   暗色模式补充覆盖
   token 已处理组件与卡片主色；此处修正各页面遗留的行内浅色写法
   ============================================================ */
[data-theme="dark"] {
  --scroll-track: #16382F;
  --scroll-thumb: #2A4A40;
}
[data-theme="dark"] body { color: var(--vt-text-1); }
[data-theme="dark"] .content { background: var(--vt-bg-page); }
[data-theme="dark"] .card { border-color: var(--vt-border); }

/* 行内浅底 / 白底 → 深色底
   注意：Vue 经 CSSOM 写入行内样式后，色值会被浏览器序列化为 rgb() 形式，
   因此这里用 rgb 子串匹配（i 标志兜底大小写与空格差异） */
[data-theme="dark"] [style*="rgb(255, 255, 255)"],
[data-theme="dark"] [style*="rgb(255,255,255)"] { background-color: var(--vt-bg-card) !important; }
[data-theme="dark"] [style*="rgb(246, 250, 248)"],
[data-theme="dark"] [style*="rgb(239, 244, 241)"] { background-color: #16382F !important; }
[data-theme="dark"] [style*="rgb(235, 252, 239)"] { background-color: #123826 !important; }
[data-theme="dark"] [style*="rgb(253, 246, 231)"] { background-color: #1A2E1A !important; }

/* 行内浅色描边 → 深色描边 */
[data-theme="dark"] [style*="solid rgb(239, 244, 241)"],
[data-theme="dark"] [style*="dashed rgb(239, 244, 241)"],
[data-theme="dark"] [style*="solid rgb(226, 234, 229)"],
[data-theme="dark"] [style*="dashed rgb(226, 234, 229)"] { border-color: var(--vt-border) !important; }

/* 行内深色文字 → 亮色文字 */
[data-theme="dark"] [style*="color: rgb(23, 40, 31)"],
[data-theme="dark"] [style*="color:rgb(23, 40, 31)"],
[data-theme="dark"] [style*="color: rgb(28, 43, 37)"],
[data-theme="dark"] [style*="color: rgb(48, 66, 58)"] { color: var(--vt-text-1) !important; }
[data-theme="dark"] [style*="color: rgb(93, 118, 105)"],
[data-theme="dark"] [style*="color: rgb(71, 93, 81)"],
[data-theme="dark"] [style*="color: rgb(122, 148, 136)"] { color: var(--vt-text-2) !important; }
[data-theme="dark"] [style*="color: rgb(160, 181, 170)"] { color: var(--vt-text-3) !important; }

/* SVG 环形图轨道（SVG 属性不被 CSSOM 改写，保留十六进制匹配） */
[data-theme="dark"] .stat svg circle[stroke="#EFF4F1" i],
[data-theme="dark"] .stat svg circle[stroke="#eef1f6" i] { stroke: #1E3B33; }

/* 表格与弹窗内部 */
[data-theme="dark"] .el-table { --el-table-bg-color: var(--vt-bg-card); --el-table-tr-bg-color: var(--vt-bg-card); --el-table-row-hover-bg-color: #16382F; }
[data-theme="dark"] .el-table__inner-wrapper::before { background-color: var(--vt-border); }
[data-theme="dark"] .el-dialog, [data-theme="dark"] .el-drawer { background: var(--vt-bg-card); }
[data-theme="dark"] .el-popper.is-light { background: var(--vt-bg-card); border-color: var(--vt-border); color: var(--vt-text-1); }
[data-theme="dark"] .country-item:hover { background: #16382F; }
[data-theme="dark"] .license-tip { background: #10283A; border-color: #1C3E58; color: #7EC0F5; }
[data-theme="dark"] .exp-sec, [data-theme="dark"] .calc-group { background: var(--vt-bg-card); }
[data-theme="dark"] .calc-group { background: #0E2A24; }
[data-theme="dark"] .formula-box { background: #0E2A24; }
