.chart-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

#chart-map { min-height: 460px; }
.chart-card:has(#chart-map) { min-height: 520px; }

/* 기본 상태(도크 열림) — KPI 2x2, 차트 1열 */
.kpi-row { grid-template-columns: repeat(2, 1fr); }

/* 도크 접힘 시 — KPI 4열, 차트 2열 */
body.dock-collapsed .chart-grid { grid-template-columns: 1fr 1fr; }
body.dock-collapsed .kpi-row { grid-template-columns: repeat(4, 1fr); }
