/**
 * State Utilities
 * Classes d'état pour gérer les différents états visuels des éléments
 */

/* ===== DISABLED / INACTIVE STATES ===== */

.bloc-inactif {
  opacity: 0.5;
  pointer-events: none;
}

/* ===== TEXT MUTED IN HEADERS ===== */

th .text-muted {
  pointer-events: none;
  opacity: 0.6;
}

/* ===== LOADING STATE ===== */

.loading-state {
  position: relative;
  pointer-events: none;
  opacity: 0.6;
}

.loading-state::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 20px;
  height: 20px;
  margin: -10px 0 0 -10px;
  border: 2px solid var(--color-primary);
  border-radius: var(--radius-full);
  border-top-color: transparent;
  animation: loading-spin 0.6s linear infinite;
}

@keyframes loading-spin {
  to {
    transform: rotate(360deg);
  }
}

/* ===== HIDDEN / VISIBLE ===== */

.hidden {
  display: none !important;
}

.visible {
  display: block !important;
}

/* ===== DISABLED ===== */

.disabled {
  opacity: 0.6;
  pointer-events: none;
  cursor: not-allowed;
}

/* ===== WIDTH UTILITIES ===== */

.w-90px {
  width: 90px;
}

.w-110px {
  width: 110px;
}

.w-140px {
  width: 140px;
}

/* ===== TEXT UTILITIES ===== */

.muted {
  color: var(--color-text-tertiary);
  font-size: var(--font-size-sm);
}

.mini-caption {
  font-size: var(--font-size-sm);
  color: var(--color-text-tertiary);
}

.main-color {
  color: var(--color-primary);
}

/* ===== CHART UTILITIES ===== */

#testerChart {
  max-height: 260px !important;
}

.chart-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 260px;
  overflow: hidden;
}
