/* ============================================================
   BS客户管理系统 · CRM 皮肤 (crm.css)
   参照 悟空CRM / 八戒CRM「客户管理」模块的视觉与布局语言
   仅覆盖外观与外壳框架，不改动任何业务数据与接口
   ============================================================ */

:root{
  --brand:#3b6cf6; --brand2:#5b8cff; --brand-soft:#eaf0ff;
  --primary:#3b6cf6; --primary-dark:#2b57d0; --primary-soft:#eaf0ff;
  --ok:#00b578; --ok-soft:#e6f8f1;
  --warn:#ff8f1f; --warn-soft:#fff3e6;
  --danger:#f53f3f; --danger-soft:#ffecec;
  --info:#5b8cff; --info-soft:#eef3ff;
  --ink:#1f2329; --ink-2:#5a6472; --ink-3:#8a919f;
  --line:#eef1f7; --bg:#f4f6fb; --card:#ffffff;
  --txt:#1f2329; --sub:#8a919f;
  --shadow:0 1px 2px rgba(20,40,90,.04);
  --radius:12px; --radius-s:8px;
}
html,body{height:100%}
body{font-family:"Microsoft YaHei","PingFang SC",-apple-system,"Segoe UI",system-ui,sans-serif;font-size:14px;color:var(--txt);background:var(--bg)}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:#d6dcea;border-radius:8px}
::-webkit-scrollbar-track{background:transparent}

/* ---------- 左侧图标导航栏 ---------- */
#rail{width:76px;min-width:76px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:center;padding:10px 0 8px;overflow-y:auto;overflow-x:hidden}
.rail-logo{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#5b8cff,#3b6cf6);color:#fff;display:flex;align-items:center;justify-content:center;font-size:19px;font-weight:700;margin:2px 0 10px;flex:0 0 auto}
.rail-nav{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%}
.rail-item{position:relative;width:64px;padding:8px 0;border-radius:10px;text-align:center;color:var(--sub);cursor:pointer;font-size:12px;line-height:1.3;user-select:none;transition:background .15s,color .15s}
.rail-item .ic{display:block;font-size:19px;line-height:1;margin-bottom:3px}
.rail-item:hover{background:#f2f5ff;color:var(--brand)}
.rail-item.on{background:var(--brand-soft);color:var(--brand);font-weight:600}
.rail-sep{width:40px;height:1px;background:var(--line);margin:8px 0;flex:0 0 auto}
.rail-badge{position:absolute;top:3px;right:11px;background:var(--danger);color:#fff;font-size:10px;line-height:15px;border-radius:8px;padding:0 5px;font-weight:600}
.rail-foot{margin-top:auto;padding-top:10px;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px;color:var(--sub);flex:0 0 auto}
.rail-foot .dot{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px rgba(0,181,120,.12)}
.rail-foot .dot.bad{background:var(--danger);box-shadow:0 0 0 3px rgba(245,63,63,.12)}

/* ---------- 顶栏 + 面包屑 ---------- */
#topbar{height:56px;min-height:56px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;padding:0 20px}
.crumb{color:var(--sub);font-size:14px;display:flex;align-items:center;flex-wrap:wrap}
.crumb b{color:var(--txt);font-weight:600}
.crumb .sep{margin:0 7px;color:#ccd3e2}
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:10px}
.user-menu{position:relative}
.avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#5b8cff,#3b6cf6);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;cursor:pointer;flex:0 0 auto;border:none}
.avatar.lg{width:40px;height:40px;font-size:15px}
.user-pop{position:absolute;right:0;top:46px;width:216px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(20,40,90,.16);padding:8px;display:none;z-index:80}
.user-pop.open{display:block}
.user-pop .up-head{display:flex;align-items:center;gap:10px;padding:6px 8px 10px;border-bottom:1px solid var(--line);margin-bottom:6px}
.user-pop .up-head b{font-size:14px}
.user-pop .up-head .sub{font-size:12px;color:var(--sub);margin-top:2px}
.user-pop a{display:block;padding:8px 10px;border-radius:8px;color:var(--ink-2);font-size:13px;cursor:pointer}
.user-pop a:hover{background:#f4f7ff;color:var(--brand)}

/* ---------- 页面与页签 ---------- */
#page{padding:16px 18px 28px}
.ptabs{display:flex;gap:20px;border-bottom:1px solid var(--line);margin-bottom:14px;flex-wrap:wrap}
.ptabs a{padding:9px 1px 11px;color:var(--sub);font-size:14px;cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap}
.ptabs a:hover{color:var(--brand)}
.ptabs a.on{color:var(--brand);border-bottom-color:var(--brand);font-weight:600}
.ptabs .cnt{font-style:normal;background:#f0f3fa;color:var(--ink-2);border-radius:9px;padding:0 6px;font-size:11px;margin-left:5px}
.ptabs a.on .cnt{background:var(--brand-soft);color:var(--brand)}

/* ---------- 列表卡片与工具条 ---------- */
.list-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.lt{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--line)}
.lt-main{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.lt-side{margin-left:auto;display:flex;align-items:center;gap:8px}
.adv-panel{display:none;gap:12px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--line);background:#fbfcff}
.adv-panel.open{display:flex}
.adv-panel .fld{display:flex;flex-direction:column;gap:4px;min-width:150px}
.adv-panel .fld label{font-size:12px;color:var(--sub)}
.colset{display:none;padding:10px 16px;border-bottom:1px solid var(--line);background:#fbfcff;flex-wrap:wrap;gap:8px 18px}
.colset.open{display:flex}
.colset label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2);cursor:pointer}
.bulk-bar{display:flex;align-items:center;gap:10px;padding:9px 16px;background:var(--brand-soft);border-bottom:1px solid #dbe4ff;color:var(--brand);font-size:13px}
.bulk-bar .bk-txt b{font-size:14px}
.bulk-bar .link-btn{margin-left:auto}

/* ---------- 数据表格 ---------- */
.crm-tbl th{background:#f8fafd;color:var(--sub);font-weight:600;font-size:12.5px;white-space:nowrap;padding:10px 12px}
.crm-tbl td{padding:10px 12px;vertical-align:middle;border-bottom:1px solid var(--line)}
.crm-tbl tbody tr:hover{background:#f7f9ff}
.crm-tbl .ck{width:40px;text-align:center}
.crm-tbl .ck input{width:15px;height:15px;cursor:pointer;accent-color:var(--brand)}
.crm-tbl .tbl-actions{text-align:right;white-space:nowrap}
.crm-tbl .tbl-actions .icon-btn{margin-left:3px}

/* ---------- 分页 ---------- */
.pager{display:flex;align-items:center;gap:12px;padding:12px 16px;flex-wrap:wrap;font-size:13px;color:var(--sub)}
.pager .pg-info b{color:var(--txt)}
.pager .pg-btns{margin-left:auto;display:flex;gap:4px;flex-wrap:wrap}
.pg-btn{min-width:30px;height:30px;padding:0 9px;border:1px solid var(--line);background:#fff;border-radius:8px;color:var(--ink-2);font-size:13px;cursor:pointer}
.pg-btn:hover:not(:disabled){border-color:#b9c6f0;color:var(--brand)}
.pg-btn.on{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
.pg-btn:disabled{opacity:.45;cursor:not-allowed}
.pager .pg-size select{padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:13px}

/* ---------- 客户详情（页签式） ---------- */
.modal-xl{max-width:1120px}
.detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:14px}
.detail-pane{display:none}
.detail-pane.on{display:block}
.detail-kv{display:grid;grid-template-columns:repeat(2,1fr);gap:0 26px}
.detail-kv .kv-row{display:flex;gap:10px;padding:8px 0;border-bottom:1px dashed var(--line);font-size:13px}
.detail-kv .kv-row label{width:108px;color:var(--sub);flex:0 0 auto;margin:0}
.detail-kv .kv-row div{color:var(--txt);word-break:break-all;min-width:0}
.detail-actions{display:flex;gap:8px;flex-wrap:wrap;padding:4px 0 14px}
.side-note{background:#f8fafd;border:1px solid var(--line);border-radius:10px;padding:12px 14px;font-size:13px;color:var(--ink-2);line-height:1.9}
.side-note b{color:var(--brand)}

/* ---------- 兼容：旧侧栏类名不再使用 ---------- */
#sidebar{display:none}

/* ---------- 补丁：表格宽度 / 详情数值 / 消息层级 ---------- */
.crm-tbl{width:100%;border-collapse:collapse;font-size:13px}
.crm-tbl thead th:first-child{border-top-left-radius:0}
.detail-head h3{font-size:17px;margin:0 0 3px}
.val-lg{font-size:20px;font-weight:700;color:var(--ink)}
.info-item .val-lg{margin-top:4px}
#detail-body .detail-pane{padding-top:2px}
#toast-root{z-index:4000}

/* ── 商机单位 ⇄ 线索池：单位标签与建档状态（2026-10-14）─────────────────
   商机里的单位改成可点标签：绿=已在线索池/客户库，橙=未建档（可转入），
   灰=名称异常（投标文件措辞/截断残名，不参与转入），浅灰=状态查询中。 */
.unit-chips{display:flex;flex-wrap:wrap;gap:4px}
.unit-chip{display:inline-block;padding:1px 7px;border-radius:5px;font-size:12px;line-height:1.6;border:1px solid transparent;cursor:pointer;transition:filter .15s,background .15s}
.unit-chip:hover{filter:brightness(.95)}
.unit-chip.unit-pending{background:#f2f4f8;color:var(--sub);border-color:var(--line);cursor:default}
.unit-chip.unit-in{background:var(--ok-soft);color:var(--ok);border-color:rgba(0,181,120,.28)}
.unit-chip.unit-absent{background:var(--warn-soft);color:var(--warn);border-color:rgba(255,143,31,.35)}
.unit-chip.unit-dirty{background:#f4f5f7;color:var(--sub);border-color:var(--line);text-decoration:line-through}
.lead-tag{display:inline-block;padding:2px 8px;border-radius:5px;font-size:12px;white-space:nowrap}
.lead-tag.lead-in{background:var(--ok-soft);color:var(--ok)}
.lead-tag.lead-absent{background:var(--warn-soft);color:var(--warn)}
.lead-tag.lead-dirty{background:#f4f5f7;color:var(--sub)}

/* ── 商机模块固定页签条（2026-10-14）─────────────────────────────
   需求：项目库 / 单位统计 / 产品关键词 / 无效商机 固定在商机页首，且字号放大。
   滚动容器是 #page（overflow-y:auto），顶栏不在其内，所以 top:0 恰好贴在商机内容顶部。 */
.proj-tabs{position:sticky;top:0;z-index:30;display:flex;flex-wrap:wrap;gap:8px;align-items:center;
  padding:10px 12px;margin:-4px 0 14px;background:var(--card);border:1px solid var(--line);border-radius:12px;
  box-shadow:0 4px 12px rgba(20,48,87,.06)}
.proj-tab{font-size:16px;font-weight:700;line-height:1;padding:10px 18px;border-radius:9px;
  border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.proj-tab:hover{border-color:var(--brand);color:var(--brand)}
.proj-tab.on{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 2px 8px rgba(59,108,246,.28)}
.proj-tab .cnt{font-size:13px;font-weight:600;opacity:.72;margin-left:6px}
/* 项目库「已审核」标记（2026-10-14） */
.audit-tag{display:inline-block;padding:2px 8px;border-radius:5px;font-size:12px;font-weight:600;background:var(--ok-soft);color:var(--ok)}
/* 线索首页：可点复制的号码（2026-10-15） */
.phone-chip{cursor:pointer;border-bottom:1px dashed var(--line)}
.phone-chip:hover{color:var(--brand);border-bottom-color:var(--brand)}
/* 线索页：电话销售用的号码区（2026-10-15） */
.phone-line{display:flex;align-items:center;gap:5px;line-height:1.55}
.phone-chip{font-family:var(--mono,monospace);font-size:12.5px;color:var(--ink);text-decoration:none;border-bottom:1px dashed var(--line);cursor:pointer}
.phone-chip:hover{color:var(--brand);border-bottom-color:var(--brand)}
.phone-copy{font-size:11px;color:var(--sub);cursor:pointer;opacity:.55}
.phone-copy:hover{opacity:1;color:var(--brand)}
.phone-acts{display:flex;align-items:center;gap:6px;margin-top:3px}
/* 号码行右侧的快捷动作（2026-10-15） */
.phone-mini{margin-left:auto;display:flex;gap:4px;flex-shrink:0}
.phone-mini .icon-btn{font-size:11px;padding:1px 6px;white-space:nowrap}
/* 号码级筛查样式（2026-10-15） */
.phone-line.phone-bad .phone-chip{color:var(--sub);text-decoration:line-through;border-bottom-color:transparent}
.phone-line.phone-bad .phone-who{opacity:.6}
.phone-who{font-size:11.5px;color:var(--sub);white-space:nowrap;max-width:118px;overflow:hidden;text-overflow:ellipsis}
.phone-tag{font-size:11px;color:var(--sub);background:#f4f5f7;border-radius:4px;padding:0 5px;white-space:nowrap}
.phone-tag.ok-tag{background:var(--ok-soft);color:var(--ok)}

/* ── 号码行操作区：改成窄竖列，压缩整行横向宽度（2026-10-15）──────────
   原来两个按钮横排，占 ~140px；改成 66px 宽的竖列后，号码行所需横距大幅下降。 */
.phone-line{gap:4px}
.phone-mini{display:flex;flex-direction:column;gap:2px;align-items:stretch;flex-shrink:0;width:66px;margin-left:auto}
.phone-mini .icon-btn{font-size:11px;line-height:1.25;padding:1px 4px;text-align:center;white-space:nowrap}
.phone-mini .phone-tag{text-align:center;font-size:10.5px}
.phone-who{max-width:96px}
.phone-chip{font-size:12px}

/* ── 行末操作区改成多列（2026-10-15）──────────────────────────────
   原来 <td class="tbl-actions"> 里 7 个按钮横排且 nowrap，一行能占 ~490px；
   改成两列网格后收窄到约 150px，整张表的横距大幅下降。 */
td.tbl-actions{display:grid;grid-template-columns:1fr 1fr;gap:3px 5px;align-items:center;min-width:148px;white-space:normal}
td.tbl-actions .icon-btn{font-size:11px;line-height:1.3;padding:1px 5px;text-align:center;white-space:nowrap}
td.tbl-actions .icon-btn:only-child{grid-column:1 / -1}

/* 行末操作区：改为单列竖排（2026-10-15 按你的选择 1fr）——最省横距 */
td.tbl-actions{grid-template-columns:1fr;min-width:92px}
/* 号码级跟进历史（2026-10-15） */
.call-hist{max-height:186px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:5px 8px;background:#fafbfd}
.call-hist-item{display:flex;gap:6px;align-items:baseline;padding:3px 0;border-bottom:1px dashed var(--line);font-size:12px}
.call-hist-item:last-child{border-bottom:none}
.ch-time{color:var(--sub);white-space:nowrap;font-size:11.5px}
.ch-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-by{color:var(--sub);white-space:nowrap;font-size:11.5px}

/* ── 版面规整：统一行高与行距节奏（2026-10-15）────────────────────────
   之前逐次加内容（多联系人、多号码、按钮列）后，行高与间距参差不齐，
   这里统一成一套：单元格 padding 一致、行内元素 line-height 一致、
   号码行等高、按钮等高、标签垂直居中。 */
.tbl td,.crm-tbl td{padding:7px 9px;vertical-align:middle;line-height:1.5}
.tbl th,.crm-tbl th{padding:7px 9px;line-height:1.4;white-space:nowrap;vertical-align:middle}
.tbl tbody tr{border-bottom:1px solid var(--line)}
.tbl tbody tr:last-child{border-bottom:none}
.contact-stack>div{line-height:1.5}
.contact-stack .sub,.company-meta{line-height:1.45;margin-top:1px}
.phone-line{min-height:26px;padding:1px 0;display:flex;align-items:center;gap:4px}
.phone-line+.phone-line{border-top:1px dashed rgba(20,48,87,.06)}
.phone-chip{line-height:1.45}
.phone-who{line-height:1.45;align-self:center}
.phone-mini{gap:2px;align-self:center}
.phone-mini .icon-btn{height:22px;line-height:1;display:inline-flex;align-items:center;justify-content:center}
.phone-acts{margin-top:5px;padding-top:5px;border-top:1px dashed rgba(20,48,87,.08);gap:6px}
.phone-tag,.lead-tag,.soft-tag{line-height:1.55;vertical-align:middle}
td.tbl-actions{padding:7px 9px}
td.tbl-actions .icon-btn{height:22px;line-height:1;display:inline-flex;align-items:center;justify-content:center}
.btn-sm{line-height:1.5}
.toolbar{row-gap:8px}
.info-grid{gap:8px 14px}
.info-item label{line-height:1.4}

/* ── 版面再调（2026-10-15）：电话/联系人 + 操作区 行距加大；其它列行距减小 ──
   用 :has() 精确定位"包含号码行/联系人堆叠"的单元格，避免误伤其它列。
   （Edge 105+ / Chrome 105+ 支持 :has()，当前默认浏览器满足） */
/* ① 电话列：行距加大、号码与按钮字号放大 */
.crm-tbl td:has(.phone-line),.tbl td:has(.phone-line){padding:9px 10px}
.phone-line{min-height:31px;padding:3px 0;gap:6px}
.phone-line+.phone-line{border-top:1px dashed rgba(20,48,87,.08)}
.phone-chip{font-size:13px;line-height:1.7}
.phone-who{font-size:12px;line-height:1.7;max-width:132px}
.phone-copy{font-size:12.5px}
.phone-tag{font-size:11.5px;line-height:1.7;padding:1px 6px}
/* ② 号码后面的操作按钮：字更大、按钮更高 */
.phone-mini{gap:4px;width:76px;align-self:center}
.phone-mini .icon-btn{height:25px;font-size:12px;padding:2px 7px}
/* ③ 操作区下方的字（可用/无效统计、完整跟进、整单无效）：同样放大 */
.phone-acts{margin-top:8px;padding-top:8px;gap:8px;font-size:12.5px;line-height:1.7}
.phone-acts .muted.small{font-size:12.5px}
/* ④ 联系人列：行距加大 */
.crm-tbl td:has(.contact-stack),.tbl td:has(.contact-stack){padding:9px 10px}
.contact-stack>div{line-height:1.7}
.contact-stack .sub{line-height:1.6;margin-top:2px}
/* ⑤ 行末操作列：按钮更大、行距加大 */
td.tbl-actions{padding:9px 10px;gap:5px}
td.tbl-actions .icon-btn{height:25px;font-size:12.5px;padding:2px 7px}
/* ⑥ 其它列（地区/行业/分类/来源/阶段/负责人…）：行距减小，让表更紧凑 */
.crm-tbl td:not(:has(.phone-line)):not(:has(.contact-stack)):not(.tbl-actions),
.tbl td:not(:has(.phone-line)):not(:has(.contact-stack)):not(.tbl-actions){padding:4px 9px;line-height:1.35}
.crm-tbl td:not(:has(.phone-line)):not(:has(.contact-stack)) .company-meta,
.crm-tbl td:not(:has(.phone-line)):not(:has(.contact-stack)) .sub{line-height:1.3;margin-top:0}

/* ── 地区 / 行业 / 分类：行距压到最紧（2026-10-15）────────────────────
   注意：表格行高由最高单元格（电话列）决定，这里能压的是本列字号/行高/标签内边距。 */
.crm-tbl td:not(:has(.phone-line)):not(:has(.contact-stack)):not(.tbl-actions),
.tbl td:not(:has(.phone-line)):not(:has(.contact-stack)):not(.tbl-actions){
  padding:2px 8px;line-height:1.18;font-size:12px;vertical-align:middle}
/* 单元格里的标签/徽章（分类、阶段、来源、标签）一并收紧 */
.crm-tbl td:not(:has(.phone-line)):not(:has(.contact-stack)) span,
.crm-tbl td:not(:has(.phone-line)):not(:has(.contact-stack)) .soft-tag,
.crm-tbl td:not(:has(.phone-line)):not(:has(.contact-stack)) .tag,
.crm-tbl td:not(:has(.phone-line)):not(:has(.contact-stack)) .badge{
  line-height:1.5;font-size:11.5px}
.crm-tbl td:not(:has(.phone-line)):not(:has(.contact-stack)) .soft-tag,
.crm-tbl td:not(:has(.phone-line)):not(:has(.contact-stack)) .tag,
.crm-tbl td:not(:has(.phone-line)):not(:has(.contact-stack)) .badge{
  padding:0 5px;margin:0}
/* 该列里的多行小字（如地区下方副行）也压掉多余间距 */
.crm-tbl td:not(:has(.phone-line)):not(:has(.contact-stack)) .company-meta,
.crm-tbl td:not(:has(.phone-line)):not(:has(.contact-stack)) .sub{
  line-height:1.15;margin:0}

/* ── 行距密度（可在界面上自己调，2026-10-15）─────────────────────── */
:root,html[data-density="normal"]{--row-pad-y:9px;--row-lh:1.7;--mini-h:25px;--aux-pad-y:2px;--aux-lh:1.18}
html[data-density="compact"]{--row-pad-y:5px;--row-lh:1.4;--mini-h:22px;--aux-pad-y:1px;--aux-lh:1.1}
html[data-density="loose"]{--row-pad-y:14px;--row-lh:2;--mini-h:30px;--aux-pad-y:4px;--aux-lh:1.35}
.crm-tbl td:has(.phone-line),.tbl td:has(.phone-line){padding:var(--row-pad-y) 10px}
.phone-line{min-height:calc(var(--mini-h) + 6px);line-height:var(--row-lh)}
.phone-chip,.phone-who,.phone-tag{line-height:var(--row-lh)}
.phone-mini .icon-btn,td.tbl-actions .icon-btn{height:var(--mini-h)}
.crm-tbl td:not(:has(.phone-line)):not(:has(.contact-stack)):not(.tbl-actions),
.tbl td:not(:has(.phone-line)):not(:has(.contact-stack)):not(.tbl-actions){padding:var(--aux-pad-y) 8px;line-height:var(--aux-lh)}

/* ── 行距/字号：分开调（2026-10-15）───────────────────────────────── */
html{--font-phone:13px;--font-aux:12px}
html[data-font="s"]{--font-phone:12px;--font-aux:11px}
html[data-font="l"]{--font-phone:14.5px;--font-aux:13px}
html[data-row-phone="compact"]{--row-pad-y:5px;--row-lh:1.4;--mini-h:22px}
html[data-row-phone="normal"]{--row-pad-y:9px;--row-lh:1.7;--mini-h:25px}
html[data-row-phone="loose"]{--row-pad-y:14px;--row-lh:2;--mini-h:30px}
html[data-row-aux="compact"]{--aux-pad-y:1px;--aux-lh:1.1}
html[data-row-aux="normal"]{--aux-pad-y:2px;--aux-lh:1.18}
html[data-row-aux="loose"]{--aux-pad-y:5px;--aux-lh:1.45}
.phone-chip,.phone-who{font-size:var(--font-phone)}
.crm-tbl td:not(:has(.phone-line)):not(:has(.contact-stack)):not(.tbl-actions),
.tbl td:not(:has(.phone-line)):not(:has(.contact-stack)):not(.tbl-actions){font-size:var(--font-aux)}

/* 显示面板（2026-10-15） */
.disp-panel{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:9px 12px;margin-bottom:10px;
  background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 3px 10px rgba(20,48,87,.05)}
.disp-panel .cs-item{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--ink-2)}
.disp-panel select{padding:3px 6px;font-size:12.5px}

/* 首列：信息分格 + 配色（2026-10-15） */
.name-cells{display:flex;flex-wrap:wrap;gap:3px 4px;margin-top:3px}
.nc{display:inline-block;padding:0 6px;border-radius:4px;font-size:11px;line-height:1.55;white-space:nowrap;border:1px solid transparent}
.nc-region{background:#eef4ff;color:#2f5db8;border-color:#dbe6ff}
.nc-industry{background:#eefaf1;color:#1f7a45;border-color:#d6f0df}
.nc-category{background:#fff5e8;color:#a2611a;border-color:#ffe6c9}
.nc-code{background:#f4f5f7;color:#6b7280;border-color:#e8eaee;font-family:var(--mono,monospace)}
.company-logo.tone-lead{background:#eef4ff;color:#2f5db8}
.company-logo.tone-cust{background:#eefaf1;color:#1f7a45}
.company-logo.tone-inval{background:#f4f5f7;color:#8a94a6}

/* 列宽拖拽（2026-10-15）：表头可拖右边缘 */
table.tbl thead th,table.crm-tbl thead th{position:relative}
table.tbl thead th:hover,table.crm-tbl thead th:hover{}
table.tbl thead th::after,table.crm-tbl thead th::after{content:'';position:absolute;top:4px;right:0;bottom:4px;width:5px;cursor:col-resize}
table.tbl thead th:hover::after,table.crm-tbl thead th:hover::after{background:rgba(59,108,246,.18);border-radius:2px}

/* 号码行「拨号」按钮（2026-10-16）：最常用，给点颜色 */
.phone-mini .icon-btn.dial-btn{background:var(--brand);color:#fff;border-color:var(--brand);font-weight:600}
.phone-mini .icon-btn.dial-btn:hover{filter:brightness(1.06)}

/* 首页快捷入口放大版（2026-10-18） */
.quick-item.big{padding:14px 16px}
.quick-item.big .quick-ico{font-size:22px;width:38px;height:38px;line-height:38px}
.quick-item.big b{font-size:17px;font-weight:700}
.quick-item.big span{font-size:13.5px;line-height:1.6}
.quick-item.big .btn{font-size:15px;padding:8px 18px;font-weight:600}

/* 关键词搜索框占满整行（2026-10-18）：原先 .search-box input 固定 180px，
   输入长关键词只能看到前面一小段。这里让工具条里的搜索框整行铺开、输入框自适应。 */
.toolbar .search-box.grow{flex:1 1 100%;min-width:0;width:100%}
.toolbar .search-box.grow input{flex:1 1 auto;width:auto;min-width:0}
/* 窄屏（<720px）也一样铺满 */
@media (max-width:720px){
  .toolbar .search-box.grow{flex-basis:100%}
}
