
:root{
  /* 主色 - 深蓝指挥中心 */
  --navy:#1e3a5f; --navy-light:#2d5a8e; --navy-dark:#142840;
  --accent:#2f6fb4; --accent-light:#e8f1fb; --accent-glow:rgba(47,111,180,.15);
  --focus-ring:#4a90d9;

  /* 背景层次 */
  --bg:#f2f5f9; --bg-alt:#eaeff6; --card:#ffffff; --card-border:#e2e8f0; --divider:#f0f3f7;

  /* 文字 */
  --text:#1a2533; --text-2:#4a5568; --muted:#8896a8; --muted-strong:#5b6b7d;

  /* 状态语义色 */
  --green:#16a34a; --green-bg:#e8f5e9; --green-text:#0a6b2f;
  --orange:#ea8c00; --orange-bg:#fff4e0; --orange-text:#a35200;
  --red:#dc3545; --red-bg:#fde8e8; --red-text:#a82a1f;
  --yellow:#b8860b; --yellow-bg:#fdf6e3; --yellow-text:#8a6d1a;

  /* 表格层级 */
  --zone-bg:linear-gradient(135deg,#1e3a5f 0%,#2d5a8e 100%);
  --zone-text:#fff; --mgr-bg:#f0f4fa; --dealer-hover:#f5f8fc; --total-bg:#eef5ff;

  /* 图表 */
  --chart-line:#2f6fb4; --chart-fill:rgba(47,111,180,.07); --chart-grid:#e8edf4;

  /* 阴影 */
  --shadow-sm:0 1px 4px rgba(0,0,0,.05);
  --shadow-md:0 2px 8px rgba(30,58,95,.25);
  --shadow-lg:0 8px 24px rgba(0,0,0,.15);

  /* 字体 */
  --font-sans:"PingFang SC","Microsoft YaHei","Segoe UI",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
  --font-mono:"SF Mono","Cascadia Code",Consolas,"Courier New",monospace;

  /* 间距 */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:20px; --sp-6:24px; --sp-8:32px;

  /* 圆角 */
  --r-sm:5px; --r-md:6px; --r-lg:8px; --r-xl:10px; --r-full:14px;

  /* 动效 */
  --t-fast:.15s; --t-page:.25s; --t-bar:.3s; --ease:ease;

  /* 兼容别名（原有代码引用的名称） */
  --blue:var(--navy); --blue-light:var(--accent-light); --border:var(--card-border);
}
*{box-sizing:border-box;margin:0;padding:0;}
html{font-family:var(--font-sans);font-size:12px;line-height:1.5;-webkit-font-smoothing:antialiased;}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}}
body{font-family:var(--font-sans);background:var(--bg);color:var(--text);font-size:13px;}
.container{max-width:1560px;margin:0 auto;padding:10px 14px;}

/* ===== 筛选栏 ===== */
/* ===== 列排序指示 ===== */
th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;}
th.sortable:hover{background:#2d5a8e;}
.sort-arr{display:inline-block;font-size:8px;margin-right:4px;opacity:.5;line-height:1;color:#fff;}
.sort-arr.asc{opacity:1;color:#fff;font-size:9px;}
.sort-arr.desc{opacity:1;color:#fff;font-size:9px;}
.sort-arr.idle{opacity:.35;color:#fff;font-size:7px;}

.filter-bar{background:var(--card);border-radius:8px;padding:10px 14px;margin-bottom:10px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;box-shadow:var(--shadow-sm);}
.filter-item{display:flex;align-items:center;gap:5px;}
.filter-item label{color:var(--muted);white-space:nowrap;font-size:12px;}
.filter-item select{height:30px;border:1px solid var(--card-border);border-radius:6px;padding:0 8px;font-size:12px;color:var(--text);background:#fff;min-width:90px;outline:none;}
.filter-item select:focus{border-color:var(--blue);}
.reset-btn{height:30px;padding:0 14px;border:none;border-radius:6px;background:var(--blue);color:#fff;cursor:pointer;font-size:12px;}
.reset-btn:hover{background:var(--accent);}
.data-date{margin-left:auto;color:var(--muted);font-size:11px;}

/* ===== Tab ===== */
.tabs{display:flex;gap:3px;margin-bottom:8px;border-bottom:1px solid var(--card-border);flex-wrap:wrap;}
.tab{padding:6px 12px;cursor:pointer;border-radius:5px 5px 0 0;color:var(--muted);font-size:12px;user-select:none;}
.tab:hover{color:var(--blue);background:var(--blue-light);}
.tab.active{color:#fff;background:var(--blue);font-weight:600;}

/* ===== 交互说明 ===== */
.usage-hint{background:#f7f8fa;border-radius:4px;padding:3px 8px;margin-bottom:8px;font-size:11px;color:#9aa4b2;line-height:1.4;}

.page{display:none;}
.page.active{display:block;}

/* ===== 卡片 ===== */
.card{background:var(--card);border-radius:8px;padding:12px 14px;margin-bottom:10px;box-shadow:var(--shadow-sm);}
.card-title{font-weight:600;font-size:13px;margin-bottom:8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.card-title .hint{font-size:11px;color:var(--muted);font-weight:400;}
.card-title .ctrl{margin-left:auto;display:flex;gap:6px;align-items:center;flex-wrap:wrap;}

/* ===== 表格（紧凑+冻结首列） ===== */
.table-wrap{overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;border-radius:0 0 6px 6px;}
table{border-collapse:collapse;width:100%;font-size:12px;table-layout:auto;}
thead th{position:sticky;top:0;background:var(--navy);color:#fff;font-weight:600;font-size:11px;padding:7px 10px;text-align:right;border-bottom:1px solid var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;z-index:2;}
thead th:first-child{text-align:left;left:0;z-index:3;background:var(--navy);color:#fff;overflow:visible;text-overflow:clip;border-radius:6px 0 0 0;}
thead th:last-child{border-radius:0 6px 0 0;}
/* 修复：sticky 定位 + border-collapse:collapse 导致单元格间出现 1px 缝隙，改用 border-collapse:separate + border-spacing:0 */
table{border-collapse:separate;border-spacing:0;}
tbody td{padding:6px 10px;text-align:right;border-bottom:1px solid var(--divider);white-space:nowrap;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;}
tbody tr:last-child td{border-bottom:none;}
tbody tr:last-child td:first-child{border-radius:0 0 0 6px;}
tbody tr:last-child td:last-child{border-radius:0 0 6px 0;}
tbody td:first-child{text-align:left;position:sticky;left:0;background:#fff;z-index:1;overflow:visible;text-overflow:clip;}
tr:hover td{background:var(--dealer-hover);}
tr:hover td:first-child{background:var(--dealer-hover);}
tr.total-row td{font-weight:700;background:var(--total-bg);}
tr.total-row td:first-child{background:var(--total-bg);color:var(--text);}
tr.total-row:hover td{background:var(--total-bg);}
tr.total-row:hover td:first-child{background:var(--total-bg);}
tr.car-row td{color:var(--muted);font-size:11px;}
tr.car-row td:first-child{padding-left:30px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;}

/* 展开/折叠按钮（统一样式：三角形箭头） */
.toggle-btn{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:none;border-radius:4px;cursor:pointer;color:var(--blue);margin-right:6px;user-select:none;vertical-align:2px;transition:background .12s,color .12s;font-size:0;}
.toggle-btn::before{content:"";display:block;width:0;height:0;border-left:5px solid currentColor;border-top:4px solid transparent;border-bottom:4px solid transparent;transition:transform .15s;}
.toggle-btn.expanded::before{transform:rotate(90deg);}
.toggle-btn:hover{background:var(--blue-light);}
.toggle-btn:active{background:var(--accent-light);}
/* 可点击行高亮 */
tr.clickable{cursor:pointer;}
tr.clickable:hover td{background:var(--dealer-hover);}
tr.clickable:hover td:first-child{background:var(--dealer-hover);}

/* 完成率进度条 */
.pct-cell{display:inline-flex;align-items:center;gap:5px;justify-content:flex-end;min-width:70px;}
.pct-bar{width:40px;height:5px;background:var(--divider);border-radius:3px;overflow:hidden;flex-shrink:0;}
.pct-bar i{display:block;height:100%;border-radius:3px;}
.pct-num{font-size:11px;color:var(--muted);min-width:28px;text-align:right;}
.pct-num.good{color:var(--green);font-weight:600;}
.pct-num.warn{color:var(--orange);font-weight:600;}
.pct-num.bad{color:var(--red);font-weight:600;}
.zero{color:var(--muted);}
.overdue-red{color:var(--red);font-weight:600;}
.heat-0{background:var(--green-bg);color:var(--green-text);font-weight:600;}
.heat-1{background:var(--yellow-bg);color:var(--yellow-text);font-weight:600;}
.heat-2{background:var(--orange-bg);color:var(--orange-text);font-weight:600;}
.heat-3{background:var(--red-bg);color:var(--red-text);font-weight:700;}

/* 走势卡片 */
.chart-box{background:var(--card);border-radius:8px;padding:10px 14px;margin-bottom:10px;box-shadow:var(--shadow-sm);}
.chart-ctrl{display:flex;gap:6px;margin-bottom:6px;flex-wrap:wrap;align-items:center;}
.chart-btn{border:1px solid var(--card-border);background:#fff;color:var(--text);border-radius:5px;padding:3px 12px;font-size:11px;cursor:pointer;}
.chart-btn.active{background:var(--blue);border-color:var(--blue);color:#fff;}
.chart-wrap{width:100%;position:relative;}
.chart-legend{display:none;}
.chart-legend .lg{display:inline-flex;align-items:center;gap:4px;}
.chart-legend .lg i{width:14px;height:3px;border-radius:2px;display:inline-block;}

/* 问题诊断 */
.diagnosis-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
@media(max-width:768px){.diagnosis-grid{grid-template-columns:1fr;}}
.diagnosis-col{background:var(--card);border-radius:8px;padding:12px 14px;box-shadow:var(--shadow-sm);}
.diagnosis-col h3{font-size:13px;font-weight:600;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--card-border);}
.alert-item{display:flex;align-items:flex-start;gap:8px;padding:7px 10px;border-radius:6px;border:1px solid var(--card-border);background:#fff;margin-bottom:6px;}
.alert-item.high{background:var(--red-bg);border-color:var(--red);}
.alert-item.medium{background:var(--orange-bg);border-color:var(--orange);}
.alert-item.info{background:var(--yellow-bg);border-color:#e8d44d;}
.alert-item .icon{font-size:14px;line-height:1;}
.alert-item .body{flex:1;}
.alert-item .title{font-size:12px;font-weight:600;margin-bottom:1px;}
.alert-item .desc{font-size:11px;color:var(--muted);}

/* 全年卡片 */
.annual-grid{display:grid;grid-template-columns:1fr;gap:10px;}
.annual-card{background:var(--card);border-radius:8px;overflow:hidden;box-shadow:var(--shadow-sm);}
.annual-card .card-head{padding:8px 12px;background:var(--bg-alt);border-bottom:1px solid var(--card-border);font-size:12px;font-weight:600;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.annual-card .card-head .sub{font-size:10px;color:var(--muted);font-weight:400;}
.annual-card .card-head .ctrl{margin-left:auto;display:flex;gap:6px;}
.annual-card .card-body{overflow-x:auto;}
.annual-card table{font-size:11px;}
.annual-card thead th{padding:5px 8px;font-size:10px;}
.annual-card tbody td{padding:4px 8px;}

/* 在库查询（仿原看板） */
.sq-filter{display:flex;flex-wrap:wrap;gap:8px;padding:6px 0;border-bottom:1px solid var(--card-border);align-items:center;margin-bottom:6px;}
.sq-filter select{padding:4px 8px;border:1px solid var(--card-border);border-radius:4px;font-size:12px;}
.sq-filter .cnt{font-size:12px;color:var(--muted);}
.sq-pager{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px;font-size:12px;}
.sq-pager button{padding:3px 10px;border:1px solid var(--card-border);border-radius:4px;cursor:pointer;font-size:12px;background:#fff;}
.sq-pager button:disabled{background:#f5f5f5;cursor:default;}
.tbl-inku thead th{font-size:11px;padding:8px 14px;}
.tbl-inku tbody td{padding:8px 14px;font-size:12px;white-space:nowrap;}

@media(max-width:768px){
  .container{padding:6px 6px;}
  .filter-bar{padding:8px 10px;gap:8px;}
  .filter-item select{min-width:75px;height:28px;font-size:11px;padding:0 5px;}
  .filter-item label{font-size:11px;}
  .reset-btn{height:28px;padding:0 10px;font-size:11px;}
  .tab{padding:7px 12px;font-size:12px;}
  thead th{padding:5px 8px;font-size:10px;}
  tbody td{padding:4px 8px;font-size:11px;}
  tbody td:first-child{padding-left:26px;}
  tr.car-row td:first-child{padding-left:44px;}
  .toggle-btn{width:14px;height:14px;margin-right:4px;}
  .toggle-btn::before{border-left-width:4px;border-top-width:3px;border-bottom-width:3px;}
  .pct-cell{min-width:60px;}
  .pct-bar{width:30px;}
  .pct-num{font-size:10px;}
}

/* 层级行区分：华南战区=固定浅蓝 #c8d8f0，无渐变、无 hover 动作，深色文字 */
tr.zone-row td{background:#c8d8f0 !important;color:var(--navy-dark) !important;font-weight:700;}
tr.zone-row td:first-child{background:#c8d8f0 !important;}
tr.zone-row:hover td{background:#c8d8f0 !important;}
tr.zone-row:hover td:first-child{background:#c8d8f0 !important;}
tr.zone-row .toggle-btn{color:var(--navy);}
tr.mgr-row td{background:var(--mgr-bg) !important;font-weight:600;color:var(--navy);}
tr.mgr-row td:first-child{background:var(--mgr-bg) !important;}
tr.mgr-row:hover td{background:var(--bg-alt) !important;}
tr.mgr-row:hover td:first-child{background:var(--bg-alt) !important;}
/* 经销商行：无特殊背景（用默认白色） */
tr.dealer-row:hover td{background:var(--dealer-hover) !important;}
tr.dealer-row:hover td:first-child{background:var(--dealer-hover) !important;}
/* 走势图撑满卡片 */
.chart-wrap{height:260px !important;}

/* ===== 手机竖屏适配（最大宽度 480px） ===== */
@media(max-width:480px){
  html{font-size:10px;}
  body{font-size:11px;-webkit-text-size-adjust:100%;}
  .container{padding:4px 4px 16px;max-width:100%;}

  /* 顶部栏：两行布局 —— 第一行标题，第二行筛选满宽（截至日期小屏隐藏，释放空间） */
  .topbar{flex-direction:row;align-items:center;gap:4px 8px;padding:0 0 4px;flex-wrap:wrap;}
  .topbar h1{font-size:13px;white-space:nowrap;flex:1 1 100%;min-width:0;overflow:hidden;text-overflow:ellipsis;}
  .topbar .dd{display:none;}
  .topbar .filter-inline{display:flex;gap:4px;flex:1 1 100%;min-width:0;flex-wrap:nowrap;margin-top:2px;}
  .topbar .filter-inline .filter-item{flex:1;min-width:0;}
  .topbar .filter-inline select{width:100%;min-width:0;font-size:11px;height:28px;padding:0 4px;}

  /* Tab：横向滚动（不折行），紧凑 */
  .tabs{gap:2px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px;flex-wrap:nowrap;margin-bottom:4px;}
  .tab{flex:0 0 auto;padding:5px 10px;font-size:11px;border-radius:5px;}

  /* 卡片：极紧凑 */
  .card,.chart-box,.diagnosis-col{padding:8px;margin-bottom:6px;}
  .card-title{font-size:12px;flex-wrap:nowrap;gap:4px;margin-bottom:4px;}
  .card-title .hint{display:none;}

  /* 表格：横向滑轨，列宽按内容自适应（不用 sticky 冻结列，避免移动端渲染 bug） */
  .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--divider);border-radius:6px;}
  .table-wrap::-webkit-scrollbar{height:6px;}
  .table-wrap::-webkit-scrollbar-thumb{background:var(--muted);border-radius:3px;}
  table{table-layout:auto;width:auto;min-width:100%;border-collapse:separate;border-spacing:0;}
  thead th{padding:5px 6px;font-size:10px;white-space:nowrap;}
  tbody td{padding:5px 6px;font-size:11px;white-space:nowrap;}
  tbody td:first-child{padding-left:0;text-align:left;overflow:visible;text-overflow:clip;}
  tr.car-row td:first-child{padding-left:16px;text-align:left;}

  /* 完成率列：手机端只显示数字，完整显示，无进度条留白 */
  .pct-cell{display:inline-block;min-width:0;justify-content:flex-end;white-space:nowrap;}
  .pct-bar{display:none !important;width:0 !important;}
  .pct-num{font-size:10px;min-width:0;white-space:nowrap;}

  /* 展开按钮 */
  .toggle-btn{width:18px;height:18px;margin-right:2px;}
  .toggle-btn::before{border-left-width:5px;border-top-width:4px;border-bottom-width:4px;}

  /* 走势图：高度进一步降低 */
  .chart-wrap{height:200px !important;}
  .chart-ctrl{gap:3px;margin-bottom:4px;}
  .chart-btn{padding:4px 8px;font-size:10px;}

  /* 在库查询：筛选极紧凑 */
  .sq-filter{flex-direction:row;flex-wrap:wrap;gap:4px;padding:4px 0;margin-bottom:4px;}
  .sq-filter select{flex:1;min-width:0;width:auto;font-size:11px;}
  .sq-filter select[multiple]{height:auto;}
  .sq-filter .reset-btn{flex:0 0 auto;font-size:11px;height:28px;padding:0 8px;}
  .sq-pager{flex-wrap:wrap;gap:3px;padding:4px;font-size:11px;}
  .sq-pager button{padding:2px 8px;font-size:11px;}

  /* 全年表格：横向滑动，列宽按内容自适应 */
  .annual-card .card-body{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--divider);border-radius:4px;}
  .annual-card table{table-layout:auto;font-size:10px;width:auto;min-width:100%;border-collapse:separate;border-spacing:0;}
  .annual-card thead th{padding:4px 6px;font-size:9px;white-space:nowrap;}
  .annual-card tbody td{padding:4px 6px;font-size:10px;white-space:nowrap;}
  .annual-card tbody td:first-child{padding-left:6px;}

  /* 诊断：单列 */
  .diagnosis-grid{grid-template-columns:1fr;gap:6px;}
  .diagnosis-col h3{font-size:12px;margin-bottom:6px;padding-bottom:4px;}

  /* 在库明细表：横向滑动，列宽按内容自适应 */
  .tbl-inku{table-layout:auto;font-size:10px;width:auto;min-width:100%;border-collapse:separate;border-spacing:0;}
  .tbl-inku thead th{padding:4px 6px;font-size:9px;white-space:nowrap;}
  .tbl-inku tbody td{padding:4px 6px;font-size:10px;white-space:nowrap;}
  .tbl-inku tbody td:first-child{padding-left:6px;}
}

/* ===== 小屏（最大宽度 768px，覆盖 481-768 区间） ===== */
@media(max-width:768px) and (min-width:481px){
  .table-wrap{border:1px solid var(--divider);border-radius:6px;}
  table{table-layout:auto;width:100%;min-width:100%;border-collapse:separate;border-spacing:0;}
  thead th, tbody td{white-space:nowrap;}
  .chart-wrap{height:220px !important;}
}

/* 环比：↑ 提升绿 / ↓ 下降红 / 0 灰 */
.mom{white-space:nowrap;font-weight:600;}
.mom.up{color:var(--green);}
.mom.down{color:var(--red);}
.mom.flat{color:var(--muted);}

/* ===== 库销比档位（v2 新增：原前端有档位类名但缺样式，按原 JS 档位阈值补全） =====
   档位（ETL 已算好库销比值，前端仅着色，不做计算）：
   ratio-0: <0.5 绿 ｜ ratio-1: <1.5 黄 ｜ ratio-2: <2.0 橙 ｜ ratio-3: ≥2.0 红 */
.ratio-cell{display:inline-flex;align-items:center;gap:4px;justify-content:flex-end;}
.ratio-cell .rv{font-variant-numeric:tabular-nums;}
.ratio-0{background:var(--green-bg);color:var(--green-text);font-weight:600;border-radius:4px;padding:1px 6px;}
.ratio-1{background:var(--yellow-bg);color:var(--yellow-text);font-weight:600;border-radius:4px;padding:1px 6px;}
.ratio-2{background:var(--orange-bg);color:var(--orange-text);font-weight:600;border-radius:4px;padding:1px 6px;}
.ratio-3{background:var(--red-bg);color:var(--red-text);font-weight:700;border-radius:4px;padding:1px 6px;}

/* ===== 在库/超期 历史月份占位提示（v2 新增：明细仅当月） ===== */
.sq-placeholder{padding:30px 10px;text-align:center;color:var(--muted);font-size:12px;background:#f7f8fa;border-radius:6px;}

/* 吸顶克隆表头：flex 布局，与原表头样式一致 */
#monthly-head-clone{background:var(--navy);border-bottom:1px solid var(--navy);display:flex;border-radius:6px 6px 0 0;overflow:hidden;}
#monthly-head-clone th{flex:0 0 auto;background:var(--navy);color:#fff;font-weight:600;font-size:11px;padding:7px 10px;text-align:right;border-bottom:1px solid var(--navy);white-space:nowrap;overflow:visible;text-overflow:clip;}
#monthly-head-clone th:first-child{text-align:left;}


/* ===== 紧凑化：顶部+全局（仅 ≥481px，小屏交给 @media max-width:480px 接管，避免覆盖 nowrap 布局） ===== */
@media(min-width:481px){
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 2px 5px;margin-bottom:5px;flex-wrap:wrap;}
.topbar h1{font-size:16px;font-weight:700;margin:0;letter-spacing:.5px;color:var(--blue);white-space:nowrap;}
.topbar .tag{font-size:10px;font-weight:500;color:var(--muted);border:1px solid var(--card-border);border-radius:3px;padding:1px 6px;margin-left:6px;vertical-align:2px;}
.topbar .filter-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.topbar .dd{font-size:11px;color:var(--muted);white-space:nowrap;}
}
.filter-bar{padding:6px 10px;margin-bottom:8px;gap:8px;}
.filter-item{gap:4px;}
.filter-item label{font-size:11px;}
.filter-bar select{font-size:11px;padding:3px 6px;}
.reset-btn{font-size:11px;padding:4px 10px;}
.container{padding:8px 10px;}
.card{margin-bottom:10px;}
.card-head{padding:8px 12px;margin-bottom:6px;}
.card-head h2{font-size:14px;}
.tbl-wrap{margin:0 4px 4px;}
table{font-size:11px;}
th,td{padding:3px 6px;}
th{font-size:10px;padding:4px 6px;}
.section-title{font-size:14px;margin:10px 0 6px;}
.annual-grid{gap:10px;margin-bottom:10px;}
.annual-card .card-head{padding:6px 10px;}
.annual-card table{font-size:10.5px;}
.annual-card th,.annual-card td{padding:2.5px 5px;}


/* ===== 经销商标签 pill 按钮（走势图分经销商用） ===== */
.dealer-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:14px;border:1px solid var(--card-border);background:var(--card);cursor:pointer;font-size:11px;color:var(--muted);user-select:none;white-space:nowrap;}
.dealer-pill:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-light);}
.dealer-pill.on{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600;}
.dealer-pill.on i{background:#fff!important;}
.dealer-pill i{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0;}
.dealer-pill-hint{font-size:10px;color:var(--muted);margin-right:6px;}


/* ===== 维度按钮 hover 弹层 ===== */



/* pill 固定一行不换行，hover 弹浮层覆盖走势图 */
.pill-wrap{display:inline-flex;align-items:center;gap:4px;flex-wrap:nowrap;overflow:hidden;position:relative;height:26px;vertical-align:middle;max-width:100%;}
.pill-overlay{display:none;position:absolute;top:100%;left:0;z-index:300;background:var(--card);border:1px solid var(--card-border);border-radius:6px;box-shadow:var(--shadow-lg);padding:10px;flex-direction:column;gap:4px;}
.pill-overlay.open{display:flex;}
.pill-overlay .ov-row{display:flex;flex-wrap:wrap;gap:4px;}
.pill-overlay .dealer-pill{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pill-overlay .dealer-pill-hint{grid-column:1/-1;font-size:10px;color:var(--muted);text-align:right;margin-bottom:2px;}





/* ===== 在库查询：复选框筛选组件（按钮+下拉面板） ===== */
.mchk{position:relative;display:inline-flex;flex:0 0 auto;width:150px;}
.mchk-btn{
  width:100%;height:28px;padding:0 26px 0 10px;
  border:1px solid var(--card-border);border-radius:4px;
  background:var(--card-bg,#fff);color:var(--text,#222);
  font-size:12px;cursor:pointer;text-align:left;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  position:relative;
}
.mchk-btn::after{
  content:'';position:absolute;right:9px;top:50%;
  width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;
  border-top:5px solid var(--muted,#6c757d);transform:translateY(-50%);
}
.mchk.open .mchk-btn::after{border-top:0;border-bottom:5px solid var(--muted,#6c757d);}
.mchk-btn.active{border-color:var(--accent,#4f8cff);color:var(--accent,#4f8cff);}
.mchk-btn:focus{outline:none;border-color:var(--accent,#4f8cff);box-shadow:0 0 0 2px rgba(79,140,255,.25);}
.mchk-panel{
  display:none;position:absolute;top:100%;left:0;z-index:60;
  min-width:100%;
  width:max-content;
  max-width:420px;
  max-height:320px;overflow:auto;
  background:var(--card-bg,#fff);border:1px solid var(--card-border);
  border-radius:6px;box-shadow:0 6px 20px rgba(0,0,0,.16);
  padding:6px;margin-top:4px;
}
.mchk.open .mchk-panel{display:block;}
.mchk-opt{
  display:flex;align-items:center;gap:8px;
  padding:6px 8px;font-size:12px;cursor:pointer;
  border-radius:4px;color:var(--text,#222);white-space:nowrap;
}
.mchk-opt:hover{background:rgba(0,0,0,.05);}
.mchk-opt input[type=checkbox]{
  width:15px;height:15px;margin:0;cursor:pointer;flex:0 0 auto;
  accent-color:var(--accent,#4f8cff);
}
.mchk-opt span{overflow:hidden;text-overflow:ellipsis;}
/* 物料/配置选项文字长，允许换行完整显示 */
.mchk[data-key="matdesc"] .mchk-opt span,
.mchk[data-key="mat"] .mchk-opt span{
  white-space:normal;
  word-break:break-all;
  line-height:1.4;
}
.mchk-empty{padding:8px;font-size:12px;color:var(--muted,#6c757d);cursor:default;}
@media(max-width:480px){
  .mchk{width:120px;}
  .mchk-panel{max-width:260px;}
}

/* ===== 在库查询表格：文字靠左 ===== */
.tbl-inku th, .tbl-inku td { text-align:left; }
/* ===== 超期库存：明细表 + 可点击行 ===== */
.overdue-clickable{cursor:pointer;}
.overdue-clickable:hover{background:rgba(0,0,0,.04);}
.tbl-od-detail{width:100%;border-collapse:collapse;margin:6px 0 2px;}
.tbl-od-detail th,.tbl-od-detail td{border:1px solid var(--card-border);padding:5px 10px;font-size:12px;text-align:left;}
.tbl-od-detail th{background:rgba(0,0,0,.04);font-weight:600;}
.tbl-od-detail td:nth-child(2){min-width:240px;}
.tbl-od-detail td:nth-child(3){min-width:150px;}
/* 超期库存三层行样式（参考月度表） */
#tbl-overdue .zone-row td{background:rgba(0,0,0,.05);font-weight:700;}
#tbl-overdue .overdue-mgr td{background:rgba(79,140,255,.06);font-weight:600;}
#tbl-overdue .overdue-dealer td{background:rgba(79,140,255,.04);}
#tbl-overdue .overdue-mgr .od-mgr-count,#tbl-overdue .overdue-dealer .od-mgr-count{font-size:11px;color:var(--muted,#6c757d);font-weight:400;}
#tbl-overdue .overdue-dealer .od-dealer-name{padding-left:26px;}
#tbl-overdue .zone-row,#tbl-overdue .overdue-mgr,#tbl-overdue .overdue-dealer{cursor:pointer;}
#tbl-overdue .overdue-mgr:hover td,#tbl-overdue .overdue-dealer:hover td{background:rgba(79,140,255,.10);}

/* ===== 在库查询表格：紧凑列宽，屏幕完整显示 ===== */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.tbl-inku{width:100%;table-layout:fixed;min-width:900px;}
/* 表头短，不换行 */
.tbl-inku th{white-space:nowrap;padding:8px 8px;}
/* 数据格：紧凑 padding，允许换行（长内容折行不撑爆列宽） */
.tbl-inku td{padding:6px 8px;font-size:12px;white-space:normal;overflow-wrap:anywhere;word-break:break-word;line-height:1.45;}
/* 各列宽度分配（百分比，和=100%）：车系10 配置18 物料24 经销商14 经理10 日期13 VIN11 */
.tbl-inku col.c1{width:10%;}
.tbl-inku col.c2{width:18%;}
.tbl-inku col.c3{width:24%;}
.tbl-inku col.c4{width:14%;}
.tbl-inku col.c5{width:10%;}
.tbl-inku col.c6{width:13%;}
.tbl-inku col.c7{width:11%;}

/* ===== 全年表：完成率小字（数值下方，统一表达） ===== */
.pct-sub{display:block;font-size:11px;line-height:1.2;font-weight:600;text-align:right;}
.pct-sub.good{color:var(--green);}
.pct-sub.warn{color:var(--orange);}
.pct-sub.bad{color:var(--red);}

/* ===== 2026-11-08 用户需求：在库查询表数据完整显示不折行，列宽按内容自适应（不够自动加宽+横向滚动） ===== */
.tbl-inku{table-layout:auto;width:auto;min-width:100%;}
.tbl-inku td{white-space:nowrap;overflow-wrap:normal;word-break:normal;line-height:inherit;}
.tbl-inku col.c1,.tbl-inku col.c2,.tbl-inku col.c3,.tbl-inku col.c4,.tbl-inku col.c5,.tbl-inku col.c6,.tbl-inku col.c7{width:auto;}
/* 诊断分组（同类问题计数 + 前10清单） */
.diag-group{font-weight:600;}
.diag-item{padding:4px 10px;font-size:12px;opacity:.92;}
/* 全年表列排序（点列头循环） */
.annual-sortable{cursor:pointer;}
