/* ═══════════════════════════════════════
   NECOzik (blindtest) — pages du panel
   ═══════════════════════════════════════
   Demande de l'administrateur du 26/10/2026 : « créer les necoblindtest (avec un meilleur nom) : des listes de blindtest,
   mais BEAUCOUP … » ; CHANTIER 58, lot 2E (spécification, §10.8). Pages Régie, Écran, Listes, Extraits, Classements de
   site/public/js/blindtest.js. Jetons de /theme/tokens.css seulement (aucune couleur écrite ici, aucun :root), classes
   préfixées bt- (distinctes de celles du composant d'écran partagé, overlays/blindtest-ecran.css : bt-ecran, bt-pf,
   bt-classement…), petits écrans sous 72 rem ; style.css intouché (C28). La régie prend toute la largeur (modèle de la
   console de modération, style.css). */

.content:has(.bt-regie) { padding: var(--space-4) var(--space-5) var(--space-10); }
.bt-page { display: flex; flex-direction: column; gap: var(--space-4); }
.bt-page > h2 { margin-bottom: 0; }
.bt-direct { margin: 0; }
.bt-carte { display: flex; flex-direction: column; gap: var(--space-3); }
.bt-erreur-form:empty { display: none; }
.bt-erreur-form { color: var(--color-danger); font-size: var(--fs-sm); }
.bt-cases { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4); margin: 0; padding: 0; border: 0; }
.bt-cases > legend { width: 100%; margin-bottom: var(--space-1); font-weight: var(--fw-semibold); font-size: var(--fs-sm); }
.bt-radios { display: inline-flex; flex-wrap: wrap; gap: var(--space-1) var(--space-4); }
.bt-choix { min-width: 12rem; }
.bt-grille-champs { display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: var(--space-3); }
.bt-bareme { margin: 0; padding: 0; border: 0; }
.bt-bareme > legend { margin-bottom: var(--space-2); font-weight: var(--fw-semibold); font-size: var(--fs-sm); }
.bt-replie > summary { cursor: pointer; font-weight: var(--fw-semibold); }
.bt-replie[open] > summary { margin-bottom: var(--space-3); }
.bt-puits-avant { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); margin: 0; padding: 0; list-style: none; font-size: var(--fs-sm); }
.bt-puits-avant > li { display: inline-flex; align-items: center; gap: var(--space-2); }
.bt-session[hidden] { display: none; }
.bt-session-bouton { border-color: var(--color-warning); }

/* ── Régie : bandeau fixe en tête (toujours visible sans défiler) [DL21] ── */
.bt-bandeau {
  position: sticky;
  top: 0;
  z-index: var(--z-sticky);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-4);
  border: var(--border-width) solid var(--color-border-strong);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  box-shadow: var(--shadow-md);
}
.bt-bandeau-tete { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-4); font-size: var(--fs-md); }
.bt-bandeau-tete > span:empty { display: none; }
.bt-bandeau-corps { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3) var(--space-6); }
.bt-chrono { min-width: 3ch; font-size: var(--fs-4xl); line-height: var(--lh-tight); font-variant-numeric: tabular-nums; }
.bt-pastilles { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); margin: 0; padding: 0; list-style: none; font-size: var(--fs-sm); }
.bt-pastille { display: inline-flex; align-items: center; gap: var(--space-2); }
.bt-raison-pause { padding: var(--space-2) var(--space-3); border-left: var(--space-1) solid var(--color-warning); background: var(--color-surface-2); border-radius: var(--radius-sm); }
.bt-raison-pause[hidden] { display: none; }
.bt-commandes { margin-top: 0; }
.bt-autres-salons { margin-top: var(--space-3); }
.bt-grille-regie { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); align-items: start; }
.bt-grille-regie > .card { margin: 0; }
.bt-lignes { display: flex; flex-direction: column; gap: var(--space-1); margin: 0; padding: 0; list-style: none; max-height: 24rem; overflow-y: auto; }
.bt-ligne { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); padding: var(--space-1) 0; border-bottom: var(--border-width) solid var(--color-border); font-size: var(--fs-sm); }
.bt-ligne:last-child { border-bottom: 0; }
.bt-mot-courant { color: var(--color-text-muted); }
.bt-texte-proposition { font-style: italic; overflow-wrap: anywhere; }
.bt-reponse-montree { margin-top: var(--space-3); padding: var(--space-3); border: var(--border-width) dashed var(--color-danger); border-radius: var(--radius-md); }
.bt-revelee { margin-top: var(--space-3); padding: var(--space-3); background: var(--color-surface-2); border-radius: var(--radius-md); }
.bt-latence-valeur { font-variant-numeric: tabular-nums; font-weight: var(--fw-semibold); }
.bt-alerte { display: flex; align-items: baseline; gap: var(--space-2); font-size: var(--fs-sm); }
.bt-alerte[data-niveau="erreur"] { color: var(--color-danger); }
.bt-alerte[data-niveau="attention"] .badge { border-color: var(--color-warning); }
.bt-plateforme { white-space: nowrap; }
.bt-table td, .bt-table th { vertical-align: middle; }

/* ── Listes ── */
.bt-groupe > h3 { margin-bottom: var(--space-3); }
.bt-grille-listes { display: grid; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: var(--space-3); }
.bt-liste-carte { display: flex; flex-direction: column; gap: var(--space-2); margin: 0; }
.bt-liste-carte .form-actions { margin-top: auto; }
.bt-jauge { height: var(--space-2); border-radius: var(--radius-full); background: var(--color-surface-3); overflow: hidden; }
.bt-jauge-plein { display: block; height: 100%; width: var(--pct, 0%); background: var(--color-text); transition: width var(--dur-base) var(--ease); }

/* ── Extraits ── */
.bt-file-etat { font-weight: var(--fw-semibold); }
.bt-budget { font-variant-numeric: tabular-nums; }
.bt-detail > td { background: var(--color-surface-2); }
.bt-details { display: flex; flex-direction: column; gap: var(--space-2); }
.bt-element-saisie { padding: var(--space-3); border: var(--border-width) solid var(--color-border); border-radius: var(--radius-md); margin-bottom: var(--space-2); }
.bt-etat-extrait { white-space: nowrap; }
.bt-reglages-file { margin-top: var(--space-3); }

/* ── Écran : réglages au-dessus du rendu du composant partagé ── */
.bt-vue-reglages { display: flex; flex-wrap: wrap; align-items: flex-start; gap: var(--space-3) var(--space-6); }
.bt-vue-cadre { position: relative; min-height: 24rem; border-radius: var(--radius-lg); overflow: hidden; }
.bt-vue-cadre:fullscreen { border-radius: 0; }

@media (max-width: 71.99rem) {
  .bt-grille-regie { grid-template-columns: minmax(0, 1fr); }
  .bt-chrono { font-size: var(--fs-3xl); }
  .bt-bandeau { padding: var(--space-2) var(--space-3); }
  .bt-grille-listes { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .bt-jauge-plein { transition: none; }
}
