/* ================= 芜湖交警智慧交管要素驾驶舱 ================= */

/* ---------- 面板内双图 ---------- */
.panel-body.dual { display: flex; gap: 6px; }
.panel-body.dual .chart { flex: 1 1 0; min-width: 0; }

/* ---------- 全市态势地图 ---------- */
.map-wrap {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  gap: 10px;
  overflow: hidden;
}

/* 左侧辖区榜单 */
.map-side {
  flex: 0 0 214px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
}
.map-side .ms-row {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  padding: 3px 6px;
  background: rgba(29, 155, 240, .07);
  border-left: 2px solid rgba(0, 229, 255, .5);
  border-radius: 2px;
}
.map-side .ms-row.hot { border-left-color: var(--red); background: rgba(255, 77, 94, .10); }
.map-side .ms-name { flex: 0 0 52px; color: #d8ecff; }
.map-side .ms-bar { flex: 1 1 auto; height: 6px; background: rgba(29, 155, 240, .16); border-radius: 3px; overflow: hidden; }
.map-side .ms-bar i {
  display: block; height: 100%; border-radius: 3px;
  background: linear-gradient(90deg, rgba(0,229,255,.55), #00e5ff);
}
.map-side .ms-row.hot .ms-bar i { background: linear-gradient(90deg, rgba(255,77,94,.55), #ff4d5e); }
.map-side .ms-val { flex: 0 0 62px; text-align: right; font-family: Consolas, monospace; color: var(--cyan); font-size: 11px; }

/* 右侧地图画布 */
.map-canvas { position: relative; flex: 1 1 auto; min-width: 0; }
.map-canvas svg.map-svg { position: absolute; inset: 0; width: 100%; height: 100%; }

.district {
  fill: rgba(29, 155, 240, .10);
  stroke: rgba(0, 229, 255, .55);
  stroke-width: 1;
  transition: fill .3s ease;
}
.district:hover { fill: rgba(0, 229, 255, .22); }
.district.hot { fill: rgba(255, 77, 94, .14); stroke: rgba(255, 77, 94, .6); }

.district-label {
  fill: #9dc4ea;
  font-size: 11px;
  letter-spacing: 1px;
  pointer-events: none;
}
.district-value {
  fill: #00e5ff;
  font-size: 10px;
  font-family: Consolas, monospace;
  pointer-events: none;
}

/* 热点脉冲：由 SMIL <animate> 驱动（见 app.js），兼容性优于 CSS 动画 r */

/* 地图右下角图例 */
.map-legend {
  position: absolute;
  right: 8px; bottom: 6px;
  display: flex;
  gap: 14px;
  font-size: 11px;
  color: var(--text-dim);
}
.map-legend i {
  display: inline-block;
  width: 8px; height: 8px;
  border-radius: 50%;
  margin-right: 5px;
  vertical-align: middle;
}
.map-legend .lv1 i { background: #00d68f; box-shadow: 0 0 6px #00d68f; }
.map-legend .lv2 i { background: #ff9f2e; box-shadow: 0 0 6px #ff9f2e; }
.map-legend .lv3 i { background: #ff4d5e; box-shadow: 0 0 6px #ff4d5e; }

/* 地图左上角汇总 */
.map-kpi {
  position: absolute;
  left: 8px; top: 4px;
  display: flex;
  gap: 18px;
  font-size: 12px;
  color: var(--text-dim);
}
.map-kpi b {
  font-family: "DIN Alternate", Consolas, monospace;
  font-size: 17px;
  color: #fff;
  margin-left: 5px;
  text-shadow: 0 0 10px rgba(0, 229, 255, .5);
}

/* 表格中地点列 */
.loc-cell { max-width: 190px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* ---------- 资产台账：状态条 ---------- */
.panel-body.asset-body { display: flex; flex-direction: column; gap: 4px; }
.asset-status {
  flex: 0 0 auto;
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 12px;
  overflow: hidden;
  font-size: 12px;
  color: var(--text-dim);
  padding-bottom: 4px;
  border-bottom: 1px dashed rgba(29, 155, 240, .18);
}
.asset-status .as-item { flex: 0 0 auto; display: flex; align-items: center; gap: 4px; white-space: nowrap; }
.asset-status .as-item i { width: 8px; height: 8px; border-radius: 2px; display: inline-block; }
.asset-status .as-item b { color: #fff; font-family: Consolas, monospace; }
.asset-status .as-item em { color: var(--text-mute); font-style: normal; font-size: 11px; }
.panel-body.asset-body .chart { flex: 1 1 auto; min-height: 0; }