/* ============================================================
   MM-LAB-CONTROLS — presentation des commandes ajoutees.
   Ajoute apres la feuille du Lab. Ne redefinit aucune classe
   existante : toutes les regles portent sur des selecteurs
   nouveaux, sauf les deux regles tactiles sur .mm-lab-controls
   input[type=range] et .mm-lab-reset, qui n ajoutent qu une
   taille de cible et touch-action.
   ============================================================ */

.mm-lab-play {
  min-height: 44px;
  padding: 9px 16px;
  border-radius: 12px;
  border: 1px solid #0E7F5E;
  background: #fff;
  color: #0B6349;
  font-weight: 800;
  font-size: 14px;
  cursor: pointer;
  touch-action: manipulation;
}
.mm-lab-play[aria-pressed="true"] { background: #0E7F5E; color: #fff; }
.mm-lab-play:focus-visible,
.mm-lab-reset:focus-visible { outline: 3px solid #0E7F5E; outline-offset: 2px; }

.mm-lab-reduced-note {
  font-size: 13.5px;
  color: #9A3412;
  background: #FFF7ED;
  border: 1px solid #FED7AA;
  border-radius: 10px;
  padding: 8px 11px;
  margin: 9px 0 0;
  flex-basis: 100%;
}

/* Selecteur racine : le DOM reel est
   <div class="mm-lab-exploration" data-mm-lab-root="1">, pas une classe mm-lab-root.
   On s accroche a l attribut, que le moteur lit lui-meme. */

/* Cibles tactiles : seul ajout sur des classes existantes. */
.mm-lab-controls input[type="range"] { min-height: 44px; touch-action: manipulation; }
.mm-lab-reset { min-height: 44px; touch-action: manipulation; }

/* En RTL, le conteneur suit la page ; le trace reste en LTR —
   un repere cartesien ne se reflete pas. */
[dir="rtl"] .mm-lab-canvas,
[dir="rtl"] .mm-lab-canvas-wrap { direction: ltr; }

/* ---- Impression : figure statique, commandes masquees ----
   La classe est posee sur <html> par le script. Si le script n a
   pas tourne, la regle @media print ci-dessous s applique quand
   meme, par le selecteur de secours. */
@media print {
  .mm-lab-controls,
  .mm-lab-play,
  .mm-lab-reset,
  .mm-lab-reduced-note,
  .mm-lab-capability-picker { display: none !important; }

  [data-mm-lab-root="1"] { break-inside: avoid; page-break-inside: avoid; }
  .mm-lab-canvas, .mm-lab-canvas-wrap { max-width: 100%; }

  /* Les analyses repliees doivent s imprimer. */
  [data-mm-lab-root="1"] details { display: block !important; }
  [data-mm-lab-root="1"] details > * { display: block !important; }
  [data-mm-lab-root="1"] summary { display: none !important; }
}

/* Mouvement reduit : aucune transition residuelle. */
@media (prefers-reduced-motion: reduce) {
  [data-mm-lab-root="1"] * { animation: none !important; transition: none !important; }
  .mm-lab-play { display: none !important; }
}
