.tm-dashboard-ch-grid {
  margin: 14px 0 18px;
}

.tm-dashboard-ch-grid .ch-mount {
  min-width: 0;
}

.tm-dashboard-ch-grid .ch-panel {
  border-radius: 8px;
}

.tm-dashboard-ch-grid--live {
  grid-auto-flow: dense;
}

.tm-dashboard-ch-grid--live .ch-panel {
  min-height: 0;
}

.tm-dashboard-ch-grid--live .ch-panel.span-6 {
  grid-column: span 6;
}

.tm-dashboard-ch-grid--live .ch-panel.span-3 {
  grid-column: span 3;
}

.tm-dashboard-ch-grid--live .ch-mount {
  max-height: 300px;
}

.tm-dashboard-ch-grid .ch-seg button {
  cursor: default;
}

.tm-analytics-gauge-pair {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  align-items: start;
}

.tm-legacy-chart-fallback[hidden],
.tm-live-charts[hidden],
.overview-charts-row[hidden] {
  display: none !important;
}

/* ============================================================================
   PR-A 2026-06-11 — Layout stability reservations (perf program)
   Overview chart mount'ları TMCharts JS mount edene kadar (~cold load 3-4sn)
   boş div'ler; geç mount .tm-dashboard-ch-grid--overview'i 198px→730px
   patlatıyordu (runtime audit 2026-06-11: tek shift CLS 0.29, kaynak
   section.ch-panel.span-3/.span-4). Ölçülen nihai mount yükseklikleri yalnız
   :empty (henüz mount edilmemiş) durumda rezerve edilir — içerik gelince
   kural düşer, nihai layout her viewport'ta bugünkü ile birebir aynı kalır.
   Değerler TEST demo hesabında ölçüldü (@1600 / @1366 / @390, 2026-06-11). */
#tmOvPlatform:empty { min-height: 170px; }
#tmOvStatus:empty   { min-height: 168px; }
#tmOvWeek:empty     { min-height: 248px; }
#tmOvTop:empty      { min-height: 363px; }

@media (max-width: 1499px) {
  #tmOvWeek:empty { min-height: 198px; }
}

@media (max-width: 767px) {
  #tmOvPlatform:empty { min-height: 352px; }
  #tmOvStatus:empty   { min-height: 262px; }
  #tmOvWeek:empty     { min-height: 102px; }
}
/* === /PR-A reservations === */

@media (max-width: 640px) {
  .tm-dashboard-ch-grid {
    margin-top: 10px;
  }

  .tm-dashboard-ch-grid .ch-donut-wrap {
    align-items: stretch;
    flex-direction: column;
    gap: 14px;
  }

  .tm-dashboard-ch-grid .ch-donut {
    align-self: center;
  }

  .tm-dashboard-ch-grid .ch-legend li {
    grid-template-columns: 10px minmax(0, 1fr) auto;
    gap: 8px;
  }

  .tm-dashboard-ch-grid .ch-legend .nm {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .tm-dashboard-ch-grid .ch-legend .sh {
    display: none;
  }

  .tm-analytics-gauge-pair {
    grid-template-columns: 1fr;
  }
}
