Here is your complete, production-ready `module.css` file.

This updated stylesheet fixes the narrow, squished layout visible in **Skjermbilde 2026-06-30 kl. 11.37.19.png** by switching the grid definition to a responsive `auto-fit` with a strict `minmax` baseline. This forces columns to wrap intelligently into a beautiful stack if there isn't enough horizontal real estate, rather than squishing the charts and breaking your titles into vertical text fragments.

```css
/**
 * CM • Real-Time Occupancy Revenue Impact Stylesheet
 * Optimized for dynamic layout scaling and multi-column safety.
 */

.cm-rt-occupancy {
  /* Fallback values in case HubL inline variables aren't injected cleanly */
  --cm-brand: #354A74;
  --cm-accent: #F9860A;
  
  margin: 3rem 0;
  padding: 2.5rem;
  background: #f7f9fc;
  border: 1px solid #e5eaf2;
  border-radius: 20px;
  box-sizing: border-box;
}

/* Comprehensive internal box-sizing reset to counteract legacy HubSpot template rules */
.cm-rt-occupancy *, 
.cm-rt-occupancy *::before, 
.cm-rt-occupancy *::after {
  box-sizing: border-box;
}

.cm-rt-occupancy__grid {
  display: grid;
  /* Fixes Skjermbilde 2026-06-30 kl. 11.37.19.png: Prevents columns from shrinking below 260px.
     If the parent container is too narrow for all three columns side-by-side, 
     the browser gracefully wraps the layout instead of smashing your charts. */
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.5rem;
}

.cm-chart-card {
  min-width: 0;
  background: #fff;
  border: 1px solid #e5eaf2;
  border-radius: 18px;
  padding: 1.5rem;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.04);
  display: flex;
  flex-direction: column;
}

.cm-chart-card h3 {
  margin: 0 0 0.5rem;
  color: var(--cm-brand);
  font-size: 1.25rem;
  line-height: 1.3;
  font-weight: 700;
}

.cm-chart-card p {
  margin: 0 0 1.5rem;
  color: #5f6b7a;
  font-size: 0.95rem;
  line-height: 1.5;
  /* Flex-grow guarantees all canvas boxes align cleanly at the bottom, 
     even if card descriptions vary in line count */
  flex-grow: 1; 
}

.cm-chart-wrap {
  position: relative;
  width: 100%;
  height: 260px;
}

/* Overriding Chart.js absolute canvas defaults cleanly without !important dependency */
.cm-chart-wrap canvas {
  width: 100%;
  height: 100%;
}

/* Hard-cut breakpoint layout cleanups for smaller viewports */
@media (max-width: 767px) {
  .cm-rt-occupancy {
    padding: 1.5rem 1rem;
    margin: 2rem 0;
  }

  .cm-rt-occupancy__grid {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }
}

```