/* ============================================================
   onair-components.css — Composants OnAir partagés (reconstruction)
   ------------------------------------------------------------
   Composants métier communs aux pages OnAir, authored depuis les
   tokens. Complète bootstrap-bridge.css (qui thème .card, badges,
   boutons, formulaires, tables). Chargé APRÈS layout.css.
   ============================================================ */

/* ---- Accent texte ---- */
.text-onair { color: var(--accent) !important; }

/* ---- Cartes métier (Bootstrap .card + modificateur) : survol ---- */
.voice-card, .animator-card, .template-card, .plan-card {
  cursor: pointer; position: relative;
  transition: box-shadow var(--t-base), transform var(--t-base), border-color var(--t-base);
}
.voice-card:hover, .animator-card:hover, .template-card:hover, .plan-card:hover {
  box-shadow: var(--shadow); transform: translateY(-2px); border-color: var(--accent);
}

/* ---- Cartes "Créer" (ajout) ---- */
.voice-card-create, .animator-card-create, .plan-card-create {
  cursor: pointer; min-height: 180px;
  display: flex; align-items: center; justify-content: center; text-align: center;
  border: 1.5px dashed var(--c-border-strong) !important;
  background: var(--c-surface-2) !important; color: var(--c-text-muted) !important;
  border-radius: var(--radius-lg);
  transition: color var(--t-fast), border-color var(--t-fast);
}
.voice-card-create:hover, .animator-card-create:hover, .plan-card-create:hover {
  color: var(--accent) !important; border-color: var(--accent) !important;
}

/* ---- Barre de traits (animator) ---- */
.traits-bar { height: 6px; background: var(--c-surface-2); border-radius: var(--radius-pill); overflow: hidden; margin-top: 2px; }
.traits-bar-fill { height: 100%; background: var(--accent); border-radius: var(--radius-pill); }

/* ---- Badge "TEMPLATE" (show-templates) ---- */
.template-badge {
  position: absolute; top: var(--sp-3); right: var(--sp-3);
  background: var(--accent-soft); color: var(--accent);
  font-size: var(--fs-xs); font-weight: var(--fw-semibold);
  padding: 0.2rem 0.5rem; border-radius: var(--radius-pill);
  text-transform: uppercase; letter-spacing: 0.04em;
}

/* ---- Pastilles de modèle (voice library) ---- */
.model-pill-v3, .model-pill-v2, .model-pill-turbo {
  display: inline-block; font-size: var(--fs-xs); font-weight: var(--fw-semibold);
  padding: 0.15rem 0.5rem; border-radius: var(--radius-pill);
}
.model-pill-v3 { background: var(--c-success-soft); color: var(--c-success); }
.model-pill-v2 { background: var(--c-info-soft); color: var(--c-info); }
.model-pill-turbo { background: var(--c-warning-soft); color: var(--c-warning); }

/* ---- Ligne de sujet (editorial plan) ---- */
.topic-row {
  border: 1px solid var(--c-border); border-radius: var(--radius);
  padding: var(--sp-3); margin-bottom: var(--sp-2); background: var(--c-surface);
}
.topic-remove-btn { color: var(--c-danger); }

/* ---- Cartes de statistique (voicetrack-analytics) ---- */
.stat-number, .display-4, .display-5, .display-6 { color: var(--accent); font-weight: var(--fw-bold); }
