/* MADANET APPS : terminal ecrit directement dans l'ecran du laptop.
   Calque vectoriel proportionnel a l'image d'origine 1536 x 1024.
   N'utilise pas la classe .laptop-cli de l'ancienne version. */
.apps-visual .apps-image-wrap {
  position: relative;
  display: block;
  width: 100%;
  line-height: 0;
  isolation: isolate;
}
.apps-visual .apps-image-wrap > .apps-image {
  display: block;
  width: 100%;
  height: auto;
}
.apps-visual .apps-cli-overlay {
  display: block;
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}
.apps-cli-cursor {
  animation: appsCliBlink 0.9s steps(1,end) infinite;
}
@keyframes appsCliBlink {
  0%, 48% {opacity: 1;}
  49%, 100% {opacity: 0;}
}
@media (max-width: 480px) {
  /* L'ecran devient trop petit pour lire le terminal. */
  .apps-visual .apps-cli-overlay {display:none;}
}
@media (prefers-reduced-motion: reduce) {
  .apps-cli-cursor {animation:none;}
}

.apps-visual #apps-cli-live-text { text-rendering: geometricPrecision; }

/* Le mode de calibrage n'est actif que pour ?cli-calibrer=1 */
.apps-visual .apps-cli-overlay.is-calibrating { pointer-events: auto; overflow: visible; }
.apps-cli-calib-handle { pointer-events: all; cursor: move; }
.apps-cli-calib-panel { position: absolute; z-index: 10; left: 0; right: 0; bottom: 102%;
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  padding: 8px 12px; border: 1px solid #b6cbd5; border-radius: 9px;
  background: #fff; color: #17324a; line-height: 1.4; font: 12px/1.4 system-ui, sans-serif; }
.apps-cli-calib-panel button { cursor: pointer; padding: 5px 8px; border-radius: 5px;
  background: #d6edaf; color: #102236; border: 0; font: inherit; }
.apps-cli-calib-panel output { font: 11px/1.3 monospace; }
