/* P1 · 分层聚合地图（产业地图内页）
   概览 = 省级气泡；点击省份 → 该省逐点视图；列表 hover ↔ 地图高亮双向联动 */
.im-geo {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  background: #eaf0f6;
  border: 1px solid #dce4ec;
}
.im-geo-canvas { display: block; width: 100%; height: auto; }

.im-geo-back {
  position: absolute;
  top: 10px; left: 10px;
  z-index: 6;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border: none;
  border-radius: 6px;
  background: #fff;
  color: #0A2540;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 1px 4px rgba(0,0,0,.18);
}
.im-geo-back:hover { background: #f1f5f9; }

/* 省份交互：hover 抬起 + 投影（伪 3D 突出） */
.im-geo-prov {
  cursor: pointer;
  transition: transform .18s ease, filter .18s ease;
  transform-box: fill-box;
  transform-origin: center;
}
.im-geo-prov:hover {
  transform: translate(0, -3px);
  filter: drop-shadow(0 8px 12px rgba(10, 37, 64, .38)) brightness(1.06);
  stroke: #0A2540;
  stroke-width: 1.6;
}
.im-geo-prov.nodata { cursor: default; }
.im-geo-prov.nodata:hover { transform: none; filter: none; fill: #dfe6ee; }

/* 南海诸岛小图框 */
.im-geo-inset { fill: #f4f7fa; stroke: #9aa0a6; stroke-width: 1; }
.im-geo-jd { fill: none; stroke: #0A2540; stroke-width: 1; }
.im-geo-inset-label { font-size: 10px; fill: #5f6368; }

/* 图例色点 */
.im-geo-lg { display: inline-flex; align-items: center; gap: 4px; }
.im-geo-lg i {
  width: 9px; height: 9px; border-radius: 50%;
  display: inline-block; border: 1px solid rgba(0,0,0,.12);
}
.im-geo-label {
  font-size: 11px;
  font-weight: 600;
  fill: #0A2540;
}
/* 省内视图的邻省省名与点位市县标签 */
.im-geo-plabel {
  font-size: 11px;
  fill: #9aa7b5;
  pointer-events: none;
}
/* 地级市边界：细灰线，只描边；hover 时加深并显示原生市名 */
.im-geo-city {
  fill: transparent;
  stroke: #b6c6d6;
  stroke-width: 1;
  pointer-events: stroke;
}
.im-geo-city:hover { stroke: #6f8499; }
.im-geo-dotlabel {
  font-size: 10px;
  fill: #415062;
  paint-order: stroke;
  stroke: #fff;
  stroke-width: 2.5px;
  stroke-linejoin: round;
  pointer-events: none;
}
.im-tip-zh { opacity: 0.72; font-size: 0.72rem; }
  paint-order: stroke;
  stroke: rgba(255,255,255,.85);
  stroke-width: 3px;
  pointer-events: none;
}
.im-geo-n {
  font-size: 10px;
  fill: #5f6368;
  pointer-events: none;
}

/* 逐点 */
.im-geo-dot { cursor: pointer; }
.im-geo-dot circle { stroke: #fff; stroke-width: 1.2; transition: r .12s; }
.im-geo-dot:hover circle, .im-geo-dot.hot circle { stroke: #0A2540; stroke-width: 2.5; }
.im-geo-dot.dim { opacity: .25; }

/* 悬停提示 */
.im-geo-tip {
  position: absolute;
  z-index: 8;
  max-width: 260px;
  background: #0A2540;
  color: #fff;
  border-radius: 8px;
  padding: 9px 12px;
  font-size: 12px;
  line-height: 1.55;
  pointer-events: none;
  box-shadow: 0 8px 24px rgba(0,0,0,.28);
  display: none;
}
.im-geo-tip b { font-size: 13px; }
.im-geo-tip .meta { opacity: .82; margin-top: 2px; }

/* 图例 */
.im-geo-foot {
  position: absolute;
  left: 10px; bottom: 10px;
  z-index: 6;
  display: flex;
  gap: 14px;
  background: rgba(255,255,255,.92);
  border-radius: 6px;
  padding: 6px 10px;
  font-size: 11px;
  color: #5f6368;
}
.im-geo-foot b { color: #0A2540; }

/* 列表行 hover 时给地图点打高亮的反馈 */
.im-geo-hotring {
  fill: none;
  stroke: #1a73e8;
  stroke-width: 2.5;
  pointer-events: none;
}
