/* Exemples exécutables : fichier identique dans nsi-term et isnsi ; chaque site peut redéfinir les variables --py-*. */
:root {
  --py-accent: #009473;
  --py-accent-survol: #007a5f;
  --py-accent-texte: #00664f;
  --py-accent-pale: #e6f4ef;
  --py-sur-accent: #ffffff;
  --py-zone: #eef6f3;
  --py-fond: #f3f6f5;
  --py-fond-code: #ffffff;
  --py-bord: #dfe6e3;
  --py-bord-champ: #c9d6d1;
  --py-texte: #212529;
  --py-discret: #5b6b64;
  --py-erreur: #b42318;
}

[data-theme="dark"],
[data-bs-theme="dark"] {
  --py-accent: #5ec9a5;
  --py-accent-survol: #7fd6b9;
  --py-accent-texte: #5ec9a5;
  --py-accent-pale: #12291f;
  --py-sur-accent: #0a1612;
  --py-zone: #12291f;
  --py-fond: #0f1f1a;
  --py-fond-code: #0a1612;
  --py-bord: #2a3f36;
  --py-bord-champ: #2a3f36;
  --py-texte: #e4e9e7;
  --py-discret: #9db3aa;
  --py-erreur: #ff9b8f;
}

.py-editable {
  outline: none;
  cursor: text;
}

.highlight:has(.py-editable:focus) pre {
  box-shadow: 0 0 0 2px var(--py-accent);
}

.py-barre {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin: -0.4rem 0 0.6rem;
}

.py-bouton {
  font: 600 0.85rem/1 system-ui, sans-serif;
  padding: 0.45rem 0.8rem;
  border-radius: 0.3rem;
  border: 1px solid var(--py-accent);
  cursor: pointer;
}

.py-executer {
  background: var(--py-accent);
  color: var(--py-sur-accent);
}

.py-executer:hover:not(:disabled) {
  background: var(--py-accent-survol);
}

.py-executer:disabled {
  opacity: 0.7;
  cursor: progress;
}

.py-reinit {
  background: transparent;
  color: var(--py-accent-texte);
}

.py-reinit:hover {
  background: var(--py-accent-pale);
}

.py-aide {
  font-size: 0.8rem;
  color: var(--py-discret);
}

pre.py-sortie {
  margin: 0 0 1rem;
  background: var(--py-fond) !important;
  border: 1px solid var(--py-bord);
  color: var(--py-texte);
  font-size: 0.9em;
  max-height: 24rem;
}

pre.py-sortie[hidden] {
  display: none;
}

.py-sortie::before {
  content: "Sortie";
  display: block;
  font: 700 0.7rem/1.6 system-ui, sans-serif;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--py-discret);
}

.py-sortie-erreur {
  color: var(--py-erreur);
}

.py-sortie-vide {
  color: var(--py-discret);
  font-style: italic;
}

.py-travail {
  margin: 0.75rem 0 1rem;
  padding: 0.6rem 0.75rem 0.1rem;
  background: var(--py-zone);
  border-radius: 0.4rem;
}

.py-travail-titre {
  font: 700 0.8rem/1.4 system-ui, sans-serif;
  color: var(--py-accent-texte);
  margin-bottom: 0.5rem;
}

.py-travail .highlight pre {
  background: var(--py-fond-code) !important;
  border: 1px solid var(--py-bord);
}

.py-saisies {
  font: 0.85rem/1.3 "IBM Plex Mono", Menlo, Consolas, monospace;
  min-width: 14rem;
  padding: 0.3rem 0.5rem;
  border: 1px solid var(--py-bord-champ);
  border-radius: 0.3rem;
  background: var(--py-fond-code);
  color: var(--py-texte);
  resize: vertical;
}

.py-figure {
  display: block;
  max-width: 100%;
  margin: 0.4rem 0;
  background: #ffffff;
  border-radius: 0.3rem;
}
