body {
  min-height: 100vh;
}

.app-body {
  height: 100vh;
  padding-top: 72px;
}

.app-main-container {
  height: 100%;
}

.app-main-row {
  height: 100%;
}

.app-top-navbar {
  z-index: 1030;
}

.app-date-sidebar {
  position: sticky;
  top: calc(72px + 1rem);
}

.chart-container {
  min-height: 460px;
}

.metric-card {
  border-left: 4px solid #0d6efd;
}

.insight-card {
  border-top: 4px solid #198754;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.insight-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.08);
}

.table td,
.table th {
  white-space: nowrap;
}

.sidebar-date-picker {
  width: 100%;
}

.centered-chart-container .js-plotly-plot {
  margin-left: auto;
  margin-right: auto;
}

.main-content-scroll {
  min-width: 0;
  overflow-x: hidden;
}

.main-content-scroll .table-responsive {
  overflow-x: auto;
}

@media (min-width: 992px) {
  .app-body {
    overflow: hidden;
  }

  .sidebar-column {
    flex: 0 0 20%;
    max-width: 20%;
  }

  .content-column {
    flex: 0 0 80%;
    max-width: 80%;
  }

  .app-scroll-column {
    max-height: calc(100vh - 72px - 3rem);
    overflow-y: auto;
    padding-right: 0.25rem;
    scrollbar-gutter: stable;
  }

  .app-date-sidebar {
    position: static;
    top: auto;
  }
}

@media (max-width: 991.98px) {
  .app-body {
    height: auto;
    padding-top: 64px;
    overflow: auto;
  }

  .app-date-sidebar {
    top: calc(64px + 0.75rem);
  }
}
