[data-loading-region] { position: relative; }
.modal-body[data-loading-region] { min-height: 460px; }
.trader-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 220px;
  padding: 2rem 1rem;
  color: var(--bs-secondary-color);
  text-align: center;
}
.trader-loading.is-overlay {
  position: absolute;
  inset: 0;
  z-index: 20;
  border-radius: inherit;
  background: var(--bs-paper-bg);
  background: color-mix(in srgb, var(--bs-paper-bg) 94%, transparent);
  backdrop-filter: blur(2px);
}
.trader-loading .spinner-border { display: inline-block; margin-bottom: 1rem; }
.trader-loading.is-error .spinner-border { display: none; }
.trader-loading [data-loading-message] { max-width: 32rem; font-weight: 600; }
.trader-chart-viewport { position: relative; min-width: 0; }
#tradeChartModule:fullscreen .trader-chart-viewport,
#scannerPairChartModule:fullscreen .trader-chart-viewport { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
@media (prefers-reduced-motion: reduce) {
  .trader-loading .spinner-border { animation-duration: 2s; }
}
