/* ============================================================
   glass-float.css — 全局毛玻璃悬浮体系（紫×柠檬绿）
   加载顺序：必须在 polish.css / polish-v5.css 之后
   覆盖范围：.panel 卡片 + 全系统二级弹窗 + 网格间距
   ============================================================ */

/* ===== 1. 卡片：毛玻璃 + 四层弥散投影 + 默认悬浮 ===== */
.panel{
  background:rgba(255,255,255,.42) !important;
  background-image:none !important;
  backdrop-filter:blur(22px) saturate(185%) !important;
  -webkit-backdrop-filter:blur(22px) saturate(185%) !important;
  border:1px solid rgba(255,255,255,.55) !important;
  border-radius:18px !important;
  box-shadow:
    0 1px 3px rgba(15,23,42,.05),
    0 6px 20px rgba(112,110,249,.09),
    0 16px 48px rgba(112,110,249,.10),
    0 36px 96px rgba(15,23,42,.07) !important;
  position:relative !important;
  top:-3px !important;
  margin-bottom:6px !important;
  transition:border-color .3s ease, box-shadow .3s ease !important;
}
/* 顶部高光线（模拟材质反光） */
.panel::before{
  content:'' !important;
  position:absolute !important;
  top:0;left:0;right:0;height:2px !important;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.90),transparent) !important;
  border-radius:18px 18px 0 0 !important;
  pointer-events:none !important;
  z-index:1 !important;
}
.panel:hover{
  border-color:rgba(112,110,249,.28) !important;
  box-shadow:
    0 2px 8px rgba(15,23,42,.08),
    0 12px 32px rgba(112,110,249,.13),
    0 28px 64px rgba(112,110,249,.12),
    0 56px 120px rgba(15,23,42,.09) !important;
}

/* ===== 2. 紫绿交叉：网格内卡片交替色调 ===== */
.metrics-grid > .panel:nth-child(even),
.chart-grid > .panel:nth-child(even),
.data-grid > .panel:nth-child(even),
.card-grid > .panel:nth-child(even),
.kpi-grid > .panel:nth-child(even){
  border-color:rgba(165,243,168,.45) !important;
  box-shadow:
    0 1px 3px rgba(34,197,94,.05),
    0 6px 20px rgba(34,197,94,.08),
    0 16px 48px rgba(34,197,94,.09),
    0 36px 96px rgba(15,23,42,.06) !important;
}
.metrics-grid > .panel:nth-child(even)::before,
.chart-grid > .panel:nth-child(even)::before,
.data-grid > .panel:nth-child(even)::before,
.card-grid > .panel:nth-child(even)::before,
.kpi-grid > .panel:nth-child(even)::before{
  background:linear-gradient(90deg,transparent,rgba(165,243,168,.80),transparent) !important;
}

/* ===== 3. 二级弹窗：更强的毛玻璃悬浮 ===== */
.follow-dialog,
.claim-dialog,
.market-life-dialog,
.cq-dialog,
.coaching-dialog,
.pq-dialog,
.fin-dialog,
.res-modal-box,
.modal-card,
.drawer{
  background:rgba(255,255,255,.60) !important;
  background-image:none !important;
  backdrop-filter:blur(26px) saturate(180%) !important;
  -webkit-backdrop-filter:blur(26px) saturate(180%) !important;
  border:1px solid rgba(255,255,255,.65) !important;
  border-radius:20px !important;
  box-shadow:
    0 2px 6px rgba(15,23,42,.08),
    0 12px 36px rgba(112,110,249,.14),
    0 28px 72px rgba(15,23,42,.14),
    0 56px 140px rgba(15,23,42,.10) !important;
}
/* 弹窗顶部高光 */
.follow-dialog::before,
.claim-dialog::before,
.market-life-dialog::before,
.cq-dialog::before,
.coaching-dialog::before,
.pq-dialog::before,
.fin-dialog::before,
.res-modal-box::before,
.modal-card::before,
.drawer::before{
  content:'' !important;
  position:absolute !important;
  top:0;left:0;right:0;height:2px !important;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.95),transparent) !important;
  border-radius:20px 20px 0 0 !important;
  pointer-events:none !important;
  z-index:2 !important;
}
/* 弹窗顶部高光需要定位承载：
   仅对"遮罩内居中"的弹窗加 relative；
   .drawer 本身是 position:fixed + top/left:50% + translate(-50%,-50%) 居中，
   强制 relative 会把它顶出视口导致弹窗不可见 —— 绝不能动它的 position */
.follow-dialog,.claim-dialog,.market-life-dialog,.cq-dialog,
.coaching-dialog,.pq-dialog,.fin-dialog,.res-modal-box,.modal-card{
  position:relative !important;
}

/* index.html 审计日志弹窗（内联样式盒子） */
#auditModal > div{
  background:rgba(255,255,255,.72) !important;
  backdrop-filter:blur(26px) saturate(180%) !important;
  -webkit-backdrop-filter:blur(26px) saturate(180%) !important;
  border:1px solid rgba(255,255,255,.65) !important;
  box-shadow:
    0 2px 6px rgba(15,23,42,.10),
    0 16px 48px rgba(112,110,249,.16),
    0 36px 96px rgba(15,23,42,.18) !important;
}

/* ===== 4. 弹窗遮罩：加深 + 毛玻璃，突出悬浮 ===== */
.follow-modal,
.market-life-modal{
  background:rgba(19,26,38,.42) !important;
  backdrop-filter:blur(8px) !important;
  -webkit-backdrop-filter:blur(8px) !important;
}

/* ===== 5. 网格间距统一 20px ===== */
.grid{gap:20px !important}
.grid.metrics{gap:20px !important;margin-bottom:20px !important}
.metrics-grid{gap:20px !important}
.data-grid{gap:20px !important}
.chart-grid{gap:20px !important}
.kpi-grid{gap:20px !important}
.grid-2{gap:20px !important}
.grid-3{gap:20px !important}
.center-cards{gap:20px !important}
.center-today-grid{gap:20px !important}
.boss-alert-grid{gap:20px !important}

/* ===== 6. 顶层卡片堆叠间距统一 20px（所有中心） ===== */
.content > section.page > .panel,
.content > .page > .panel,
.content > section > .panel{margin-bottom:20px !important}

/* ===== 7. 网格内卡片：间距统一由 gap(20px) 控制，item 自身 margin 归零，避免与 gap 叠加 ===== */
.grid > .panel,
.grid > .metric,
.row2 > .panel,
.row2 > .metric,
.metrics > .panel,
.metrics > .metric,
.kpi-grid > .panel,
.metrics-grid > .panel,
.data-grid > .panel,
.chart-grid > .panel,
.card-grid > .panel,
.fin-kpis > .fin-kpi,
.fin-charts > .panel,
.fin-year > .metric{margin-bottom:0 !important}

/* ===== 8. 补充类卡片：非 .panel 的毛玻璃统一（各中心数据卡 / 需求商机 / 资料库 / 会议 / 弹窗） ===== */

/* ---- 8.1 通用数据卡 .metric ---- */
.metric{
  background:rgba(255,255,255,.42) !important;
  backdrop-filter:blur(22px) saturate(185%) !important;
  -webkit-backdrop-filter:blur(22px) saturate(185%) !important;
  border:1px solid rgba(255,255,255,.55) !important;
  border-radius:18px !important;
  box-shadow:
    0 1px 3px rgba(15,23,42,.05),
    0 6px 20px rgba(112,110,249,.09),
    0 16px 48px rgba(112,110,249,.10),
    0 36px 96px rgba(15,23,42,.07) !important;
  top:-3px !important;
  transition:border-color .3s ease, box-shadow .3s ease !important;
}
.metric::before{
  content:'' !important;
  position:absolute !important;
  top:0;left:0;right:0;height:2px !important;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.90),transparent) !important;
  border-radius:18px 18px 0 0 !important;
  pointer-events:none !important;
  z-index:1 !important;
}
.metric:hover{
  border-color:rgba(112,110,249,.28) !important;
  box-shadow:
    0 2px 8px rgba(15,23,42,.08),
    0 12px 32px rgba(112,110,249,.13),
    0 28px 64px rgba(112,110,249,.12),
    0 56px 120px rgba(15,23,42,.09) !important;
}

/* ---- 8.2 需求商机（#needs）平台矩阵 / 三态看板 / 卡片 ---- */
.dh-plat{
  background:rgba(255,255,255,.42) !important;
  backdrop-filter:blur(22px) saturate(185%) !important;
  -webkit-backdrop-filter:blur(22px) saturate(185%) !important;
  border:1px solid rgba(255,255,255,.55) !important;
  border-radius:16px !important;
  box-shadow:
    0 1px 3px rgba(15,23,42,.05),
    0 6px 20px rgba(112,110,249,.09),
    0 16px 48px rgba(112,110,249,.10),
    0 36px 96px rgba(15,23,42,.07) !important;
  top:-2px !important;
  position:relative !important;
  transition:border-color .3s ease, box-shadow .3s ease !important;
}
.dh-plat::before{
  content:'' !important;
  position:absolute !important;
  top:0;left:0;right:0;height:2px !important;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.90),transparent) !important;
  border-radius:16px 16px 0 0 !important;
  pointer-events:none !important;
}
.dh-plat:hover{
  border-color:rgba(112,110,249,.30) !important;
  background:rgba(255,255,255,.56) !important;
  box-shadow:
    0 2px 8px rgba(15,23,42,.08),
    0 12px 32px rgba(112,110,249,.13),
    0 28px 64px rgba(112,110,249,.12),
    0 56px 120px rgba(15,23,42,.09) !important;
}
.dh-plat.on{
  border-color:rgba(52,211,153,.55) !important;
  background:linear-gradient(0deg,rgba(52,211,153,.10),rgba(52,211,153,.10)),rgba(255,255,255,.46) !important;
  box-shadow:
    0 1px 3px rgba(34,197,94,.05),
    0 6px 20px rgba(34,197,94,.08),
    0 16px 48px rgba(34,197,94,.09),
    0 36px 96px rgba(15,23,42,.06) !important;
}
.dh-kcol{
  background:rgba(255,255,255,.38) !important;
  backdrop-filter:blur(22px) saturate(185%) !important;
  -webkit-backdrop-filter:blur(22px) saturate(185%) !important;
  border:1px solid rgba(255,255,255,.55) !important;
  border-radius:16px !important;
  box-shadow:
    0 1px 3px rgba(15,23,42,.05),
    0 6px 20px rgba(112,110,249,.09),
    0 16px 48px rgba(112,110,249,.10),
    0 36px 96px rgba(15,23,42,.07) !important;
}
.dh-kcol-head{
  background:rgba(255,255,255,.55) !important;
  backdrop-filter:blur(16px) saturate(180%) !important;
  -webkit-backdrop-filter:blur(16px) saturate(180%) !important;
  border-bottom:1px solid rgba(255,255,255,.65) !important;
  box-shadow:0 2px 0 rgba(255,255,255,.45) !important;
}
.dh-dcard{
  background:rgba(255,255,255,.46) !important;
  backdrop-filter:blur(18px) saturate(180%) !important;
  -webkit-backdrop-filter:blur(18px) saturate(180%) !important;
  border:1px solid rgba(255,255,255,.60) !important;
  border-radius:13px !important;
  box-shadow:
    0 1px 3px rgba(15,23,42,.04),
    0 4px 14px rgba(112,110,249,.07),
    0 10px 30px rgba(112,110,249,.08) !important;
}
.dh-dcard:hover{
  border-color:rgba(112,110,249,.30) !important;
  background:rgba(255,255,255,.62) !important;
  box-shadow:
    0 2px 8px rgba(15,23,42,.07),
    0 12px 32px rgba(112,110,249,.12),
    0 24px 56px rgba(112,110,249,.10) !important;
}
.dh-filters{
  background:rgba(255,255,255,.40) !important;
  backdrop-filter:blur(20px) saturate(185%) !important;
  -webkit-backdrop-filter:blur(20px) saturate(185%) !important;
  border:1px solid rgba(255,255,255,.55) !important;
  border-radius:14px !important;
}
.dh-view{
  background:rgba(255,255,255,.50) !important;
  backdrop-filter:blur(16px) saturate(180%) !important;
  -webkit-backdrop-filter:blur(16px) saturate(180%) !important;
  border:1px solid rgba(255,255,255,.60) !important;
}
.dh-view span.on{background:#706EF9 !important;color:#FFFFFF !important}
.dh-table-wrap{
  background:rgba(255,255,255,.40) !important;
  backdrop-filter:blur(20px) saturate(185%) !important;
  -webkit-backdrop-filter:blur(20px) saturate(185%) !important;
  border:1px solid rgba(255,255,255,.55) !important;
  border-radius:14px !important;
  box-shadow:
    0 1px 3px rgba(15,23,42,.05),
    0 6px 20px rgba(112,110,249,.09),
    0 16px 48px rgba(112,110,249,.10),
    0 36px 96px rgba(15,23,42,.07) !important;
}

/* ---- 8.3 需求详情抽屉（#needs 右侧滑出）---- */
.dh-drawer{
  background:rgba(255,255,255,.72) !important;
  backdrop-filter:blur(26px) saturate(180%) !important;
  -webkit-backdrop-filter:blur(26px) saturate(180%) !important;
  border-left:1px solid rgba(255,255,255,.70) !important;
  box-shadow:
    -12px 0 36px rgba(112,110,249,.12),
    -24px 0 72px rgba(15,23,42,.10) !important;
}
.dh-drawer-mask{
  background:rgba(19,26,38,.42) !important;
  backdrop-filter:blur(8px) !important;
  -webkit-backdrop-filter:blur(8px) !important;
}

/* ---- 8.4 市场资料库（#library）---- */
.file{
  background:rgba(255,255,255,.42) !important;
  backdrop-filter:blur(20px) saturate(185%) !important;
  -webkit-backdrop-filter:blur(20px) saturate(185%) !important;
  border:1px solid rgba(255,255,255,.55) !important;
  border-radius:14px !important;
  box-shadow:
    0 1px 3px rgba(15,23,42,.05),
    0 6px 20px rgba(112,110,249,.09),
    0 16px 48px rgba(112,110,249,.10),
    0 36px 96px rgba(15,23,42,.07) !important;
  top:-2px !important;
  position:relative !important;
  transition:border-color .3s ease, box-shadow .3s ease !important;
}
.file::before{
  content:'' !important;
  position:absolute !important;
  top:0;left:0;right:0;height:2px !important;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.90),transparent) !important;
  border-radius:14px 14px 0 0 !important;
  pointer-events:none !important;
}
.file:hover{
  border-color:rgba(112,110,249,.30) !important;
  background:rgba(255,255,255,.58) !important;
  box-shadow:
    0 2px 8px rgba(15,23,42,.07),
    0 12px 32px rgba(112,110,249,.12),
    0 24px 56px rgba(112,110,249,.10) !important;
}
.folder.on,.folder:hover{
  background:rgba(112,110,249,.12) !important;
  color:#706EF9 !important;
  font-weight:600 !important;
}
.library{gap:20px !important}
#library .files{gap:12px !important}

/* ---- 8.5 会议中心（#meetings）---- */
.meeting-layout{gap:20px !important}
.meeting-card{
  background:rgba(255,255,255,.55) !important;
  backdrop-filter:blur(20px) saturate(185%) !important;
  -webkit-backdrop-filter:blur(20px) saturate(185%) !important;
  border:1px solid rgba(255,255,255,.65) !important;
  border-bottom:1px solid rgba(255,255,255,.65) !important;
  border-radius:12px !important;
  margin:0 0 10px !important;
  padding:12px 14px !important;
  box-shadow:0 1px 3px rgba(15,23,42,.04),0 4px 16px rgba(112,110,249,.07) !important;
  transition:border-color .25s ease, background .25s ease, transform .25s ease !important;
}
.meeting-card:hover{
  border-color:rgba(112,110,249,.35) !important;
  background:rgba(255,255,255,.68) !important;
  transform:translateY(-2px) !important;
  box-shadow:0 4px 12px rgba(15,23,42,.06),0 8px 28px rgba(112,110,249,.12) !important;
}
.meeting-card:last-child{margin-bottom:0 !important}
.drop{
  background:rgba(255,255,255,.34) !important;
  backdrop-filter:blur(18px) saturate(180%) !important;
  -webkit-backdrop-filter:blur(18px) saturate(180%) !important;
  border:1.5px dashed rgba(112,110,249,.32) !important;
  border-radius:14px !important;
  transition:border-color .25s ease, background .25s ease !important;
}
.drop:hover{
  border-color:rgba(112,110,249,.55) !important;
  background:rgba(255,255,255,.50) !important;
}

/* ---- 8.6 客户中心（#customers）筛选条内联背景改为毛玻璃（由 .filters 覆盖）---- */
#customers .filters[style*="background"],
#needs .filters[style*="background"]{
  background:rgba(255,255,255,.42) !important;
  backdrop-filter:blur(22px) saturate(185%) !important;
  -webkit-backdrop-filter:blur(22px) saturate(185%) !important;
  border:1px solid rgba(255,255,255,.55) !important;
  border-radius:14px !important;
  box-shadow:
    0 1px 3px rgba(15,23,42,.05),
    0 6px 20px rgba(112,110,249,.09),
    0 16px 48px rgba(112,110,249,.10),
    0 36px 96px rgba(15,23,42,.07) !important;
}

/* ---- 8.7 需求商机顶部时间筛选条（ensureNeedOpportunity 注入）---- */
#needs .grid.metrics + div[style*="background"]{
  background:rgba(255,255,255,.42) !important;
  backdrop-filter:blur(22px) saturate(185%) !important;
  -webkit-backdrop-filter:blur(22px) saturate(185%) !important;
  border:1px solid rgba(255,255,255,.55) !important;
  border-radius:14px !important;
  box-shadow:
    0 1px 3px rgba(15,23,42,.05),
    0 6px 20px rgba(112,110,249,.09),
    0 16px 48px rgba(112,110,249,.10),
    0 36px 96px rgba(15,23,42,.07) !important;
}

/* ===== 9. KPI metric / metric-card 毛玻璃统一 ===== */
/* 覆盖 polish-v5.css .metric（rgba(255,255,255,.58) → 更透明 .42）
   覆盖 index.html .metric-card（var(--bg2) 实色 + 黑色阴影 → 毛玻璃 + 紫色弥散投影）
   目标：去掉卡片下方"实色长方形"，全部呈现悬浮玻璃感 */

.metric,.metric-card{
  background:rgba(255,255,255,.42) !important;
  background-image:none !important;
  backdrop-filter:blur(22px) saturate(185%) !important;
  -webkit-backdrop-filter:blur(22px) saturate(185%) !important;
  border:1px solid rgba(255,255,255,.55) !important;
  border-radius:18px !important;
  box-shadow:
    0 1px 3px rgba(15,23,42,.05),
    0 6px 20px rgba(112,110,249,.09),
    0 16px 48px rgba(112,110,249,.10),
    0 36px 96px rgba(15,23,42,.07) !important;
  position:relative !important;
  top:-3px !important;
  margin-bottom:6px !important;
  transition:border-color .3s ease, box-shadow .3s ease, transform .3s ease !important;
}

/* metric 顶部高光线（同 .panel::before） */
.metric::before,.metric-card::before{
  content:'' !important;
  position:absolute !important;
  top:0;left:0;right:0;height:2px !important;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.90),transparent) !important;
  border-radius:18px 18px 0 0 !important;
  pointer-events:none !important;
  z-index:1 !important;
}

.metric:hover,.metric-card:hover{
  border-color:rgba(112,110,249,.28) !important;
  box-shadow:
    0 2px 8px rgba(15,23,42,.08),
    0 12px 32px rgba(112,110,249,.13),
    0 28px 64px rgba(112,110,249,.12),
    0 56px 120px rgba(15,23,42,.09) !important;
  transform:translateY(-2px) !important;
}

/* 紫绿交叉：.metrics-grid 内偶数 metric 切换绿色系 */
.metrics-grid > .metric:nth-child(even){
  border-color:rgba(165,243,168,.45) !important;
}
.metrics-grid > .metric:nth-child(even)::before{
  background:linear-gradient(90deg,transparent,rgba(165,243,168,.55),transparent) !important;
}
.metrics-grid > .metric:nth-child(even):hover{
  border-color:rgba(165,243,168,.60) !important;
  box-shadow:
    0 2px 8px rgba(15,23,42,.08),
    0 12px 32px rgba(165,243,168,.13),
    0 28px 64px rgba(165,243,168,.12),
    0 56px 120px rgba(15,23,42,.09) !important;
}

/* ===== 10. select 下拉框毛玻璃 ===== */
select, select.btn, .top-nav-actions select.btn, .filters select, .form-field select, .entry-tabs select, .form-grid select, .panel select{
  background:rgba(255,255,255,.55) !important;
  backdrop-filter:blur(12px) saturate(180%) !important;
  -webkit-backdrop-filter:blur(12px) saturate(180%) !important;
  border:1px solid rgba(255,255,255,.60) !important;
  border-radius:10px !important;
  box-shadow:0 1px 3px rgba(15,23,42,.05),0 4px 12px rgba(112,110,249,.07) !important;
  color:var(--ink,#0F172A) !important;
  padding:6px 28px 6px 10px !important;
  font-size:14px !important;
  appearance:none !important;
  -webkit-appearance:none !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23706EF9' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:right 8px center !important;
  transition:border-color .25s ease, box-shadow .25s ease, background .25s ease !important;
  cursor:pointer !important;
}

select:hover, select.btn:hover, .top-nav-actions select.btn:hover, .filters select:hover, .form-field select:hover, .entry-tabs select:hover, .form-grid select:hover, .panel select:hover{
  border-color:rgba(112,110,249,.35) !important;
  box-shadow:0 2px 8px rgba(15,23,42,.06),0 6px 20px rgba(112,110,249,.10) !important;
  background:rgba(255,255,255,.68) !important;
}

select:focus, select.btn:focus, .top-nav-actions select.btn:focus, .filters select:focus, .form-field select:focus, .entry-tabs select:focus, .form-grid select:focus, .panel select:focus{
  outline:none !important;
  border-color:rgba(112,110,249,.50) !important;
  box-shadow:0 0 0 3px rgba(112,110,249,.12),0 2px 8px rgba(15,23,42,.06),0 6px 20px rgba(112,110,249,.10) !important;
}

/* option 保持原有交互色，但提升背景质感 */
select option{
  background:#FFFFFF !important;
  color:var(--ink,#0F172A) !important;
  font-size:14px !important;
  padding:6px 10px !important;
}
select option:checked{
  background:#706EF9 !important;
  color:#FFFFFF !important;
  font-weight:600 !important;
}
select option:hover{
  background:#F0EDFF !important;
  color:#706EF9 !important;
}

/* 多选/分组 select 统一 */
select optgroup{
  background:rgba(255,255,255,.80) !important;
  color:var(--ink,#0F172A) !important;
  font-weight:600 !important;
}

/* datalist 选项兜底 */
datalist option{
  background:#FFFFFF !important;
  color:var(--ink,#0F172A) !important;
}

/* ===== 11. 内联样式 metric 覆盖兜底 ===== */
/* 防止 JS 动态注入的 style 属性覆盖毛玻璃 */
.metric[style*="background"],.metric-card[style*="background"]{
  background:rgba(255,255,255,.42) !important;
  background-image:none !important;
}

/* 去掉 index.html .metric-card 原有黑色阴影残留 */
.metric-card[style*="box-shadow:0 2px 12px rgba(0,0,0"],
.metric-card[style*="box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 2px 12px rgba(0,0,0,.15)"]{
  box-shadow:
    0 1px 3px rgba(15,23,42,.05),
    0 6px 20px rgba(112,110,249,.09),
    0 16px 48px rgba(112,110,249,.10),
    0 36px 96px rgba(15,23,42,.07) !important;
}

/* ===== 12. 市场活动组合图表 ===== */
.chart-legend{
  display:flex !important;
  gap:14px !important;
  align-items:center !important;
  font-size:13px !important;
  color:var(--muted,#64748B) !important;
  flex-shrink:0;
}
.chart-legend .lg{
  display:inline-block;
  width:10px;
  height:10px;
  border-radius:3px;
  margin-right:3px;
  vertical-align:middle;
}
.chart-legend .lg-bar-a{
  background:linear-gradient(180deg,#706EF9,#A094FD);
}
.chart-legend .lg-bar-b{
  background:linear-gradient(180deg,#00D4A0,#7DDD81);
}
.chart-legend .lg-line-c{
  width:16px;
  height:3px;
  border-radius:2px;
  background:#F59E0B;
  position:relative;
}
.chart-legend .lg-line-c::after{
  content:'';
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:7px;
  height:7px;
  border-radius:50%;
  background:#F59E0B;
  border:1.5px solid #fff;
}

/* 图表容器增强 — 强力覆盖 polish-v4.css 的 height:220px display:flex 限制 */
#chart.chart,
.panel .chart{
  height:auto !important;
  min-height:240px !important;
  display:block !important;
  padding:0 !important;
  gap:0 !important;
  align-items:stretch !important;
  overflow:visible !important;
}
#chart.chart svg,
.panel .chart svg{
  width:100% !important;
  height:auto !important;
  display:block !important;
  max-width:100% !important;
}
.chart svg rect[fill="url(#barA)"],
.chart svg rect[fill="url(#barB)"]{
  transition:opacity .2s ease !important;
  cursor:pointer;
}
.chart svg rect[fill="url(#barA)"]:hover,
.chart svg rect[fill="url(#barB)"]:hover{
  opacity:1 !important;
}
.chart svg circle{
  transition:r .2s ease !important;
  cursor:pointer;
}
.chart svg circle:hover{
  r:6 !important;
}

