.suite-controls {
  background: #f3f8fa;
  border-radius: 6px;
  padding: 20px;
  margin-bottom: 20px;
}

.suite-controls label {
  display: block;
  margin: 12px 0 4px;
  font-weight: 600;
}

.suite-controls label:first-child {
  margin-top: 0;
}

.suite-mf {
  width: 100%;
  font-size: 1.3rem;
  padding: 4px 8px;
  border: 1px solid #ced4da;
  border-radius: 4px;
  background: #fff;
}

.suite-controls input[type=range] {
  width: 100%;
}

.suite-error {
  color: #c0392b;
  font-size: 0.85rem;
  min-height: 1.2em;
  margin-top: 4px;
}

.suite-buttons {
  margin-top: 12px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.suite-controls .suite-check {
  margin-top: 10px;
}

.suite-controls .suite-check label {
  display: inline;
  margin: 0;
  font-weight: 400;
  font-size: 0.9rem;
}

.suite-terms {
  margin-top: 14px;
  font-size: 0.85rem;
  font-family: monospace;
  line-height: 1.5;
  max-height: 160px;
  overflow-y: auto;
}

#suite-canvas {
  width: 100%;
  aspect-ratio: 1 / 1;
  max-height: 80vh;
  background: #fff;
  border: 1px solid #dde6ea;
  border-radius: 6px;
  cursor: grab;
  touch-action: none;
}

.suite-hint {
  font-size: 0.8rem;
  color: #777;
  margin-top: 6px;
}

/* L'en-tête reste opaque au défilement (sinon le contenu transparaît) */
#header.header-scrolled {
  background: #1e4356;
}

.suite-hint {
  min-height: 1.2em;
}

/* Mode plein écran */
#suite-app.suite-full {
  position: fixed;
  inset: 0;
  z-index: 2000;
  margin: 0;
  background: #fff;
  display: flex;
  flex-wrap: nowrap;
  overflow: hidden;
}

#suite-app.suite-full .suite-side {
  flex: 0 0 340px;
  max-width: 340px;
  overflow-y: auto;
  padding: 12px;
}

#suite-app.suite-full .suite-controls {
  margin-bottom: 0;
}

#suite-app.suite-full .suite-stage {
  flex: 1 1 auto;
  max-width: none;
  padding: 12px 12px 12px 0;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

#suite-app.suite-full #suite-canvas {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  aspect-ratio: auto;
  width: 100%;
}

@media (max-width: 767px) {
  #suite-app.suite-full {
    flex-direction: column;
  }

  #suite-app.suite-full .suite-side {
    flex: 0 0 auto;
    max-width: none;
    max-height: 45vh;
  }

  #suite-app.suite-full .suite-stage {
    padding: 0 12px 12px;
  }
}

/* Conteneur du clavier virtuel : superposé en bas, hors flux */
#suite-kbd {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2100;
}

/* Le clavier est dessiné au-dessus de ce conteneur de hauteur nulle */
#suite-kbd .ML__keyboard {
  overflow: visible;
}
