.modal-visualization {
  max-width: 95vw;
  height: 95vh;
}

.modal-visualization .modal-content {
  height: 95%;
  display: flex;
  flex-direction: column;
}

.modal-visualization .modal-body {
  flex: 1;
  overflow: hidden;
  padding: 0;
}

.modal-visualization .modal-body .row {
  height: 100%;
  margin: 0;
}

.modal-visualization .modal-body .col-md-3 {
  padding: 1rem;
  overflow-y: auto;
}

.modal-visualization .modal-body .col-md-9 {
  padding: 1rem;
  display: flex;
  flex-direction: column;
  min-height: 0; /* Important for flexbox child */
}

#vizChartWrapper { 
  position: relative; 
  flex: 1;
  min-height: 0; /* Important for flexbox child to shrink */
  height: calc(100% - 2rem); /* Account for parent padding */
}

#vizChart {
  width: 100%; 
  height: 100%;
}

#vizLoading {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background-color: rgba(255,255,255,0.8);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 10;
}