.exercices {
  display: flex;
  flex-direction: column;
  margin-top: 2rem;
}

.language-choice {
  display: flex;
  flex-direction: row;
  gap: var(--space-5);
  padding: 8px 0;
}

.language-button {
  background-color: #ede4fb;
  /* Bordure transparente : elle prend déjà sa place, le bouton ne bouge pas quand elle apparaît au survol */
  border: 1px solid transparent;
  padding: 4px 14px;
  font-family: var(--font-family-secondary);
  border-radius: var(--radius-card);
  cursor: pointer;
  transition:
    border-color 0.3s ease,
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

.language-button:hover {
  border-color: var(--color-primary);
  transform: translateY(-2px);
  box-shadow: 0 4px 10px rgba(20, 18, 31, 0.1);
}

.language-button-active,
.language-button-active:hover {
  background-color: var(--color-primary);
  color: var(--color-white);
}

.exos-content {
  display: flex;
  flex-direction: row;
  margin-top: 8px;
  gap: var(--space-5);
}

.exo-enonce {
  width: 50%;
  padding: var(--space-3);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  height: fit-content;
}

.exo-code {
  width: 50%;
  padding: var(--space-3);
  background-color: var(--color-ink);
  border-radius: var(--radius-card);
  height: fit-content;
}

.num-exo {
  font-family: var(--font-family-secondary);
  font-size: var(--fs-label);
  color: var(--color-primary);
}

.nom-exo {
  font-family: var(--font-family);
  font-size: var(--ls-h3);
  color: var(--color-ink);
}

.desc-exo {
  font-family: var(--font-family);
  font-size: var(--fs-label);
  color: var(--color-text-secondary);
}

/* Bouts de code dans l'énoncé : même présentation que les cours */
.desc-exo code {
  font-family: var(--font-family-secondary);
  font-size: var(--fs-small);
  padding: 1px 4px;
  border-radius: 4px;
  background-color: var(--color-lavender);
  color: var(--color-primary);
}

.exo-attendu {
  display: flex;
  flex-direction: column;
  margin-top: var(--space-3);
  gap: var(--space-1);
  color: var(--color-primary);
  p {
    font-family: var(--font-family);
    font-size: var(--fs-label);
    color: var(--color-text-primary);
    margin: 0;
  }
  div {
    background-color: var(--color-lavender);
    padding: 6px 10px;
    border-radius: var(--radius-card);
  }
}

.exo-attendu > div > p {
  color: var(--color-ink);
  white-space: pre-line;
}

.exo-code {
  display: flex;
  flex-direction: column;
  padding: 14px;
  gap: 10px;
  background-color: var(--color-ink);
  border-radius: var(--radius-card);
  border: 1px solid var(--color-border);
}

.exo-code-header {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  p {
    font-family: var(--font-family);
    font-size: var(--fs-label);
    color: var(--color-white);
    margin: 0;
  }
}

.exo-code-button {
  background-color: var(--color-accent);
  color: var(--color-ink);
  border: none;
  padding: 4px 14px;
  font-family: var(--font-family-primary);
  font-weight: 600;
  border-radius: var(--radius-card);
  cursor: pointer;
  transition:
    filter 0.2s ease,
    transform 0.15s ease,
    box-shadow 0.2s ease;
}

/* Survol : le bouton s'éclaircit et se soulève légèrement */
.exo-code-button:hover {
  filter: brightness(1.08);
  transform: translateY(-1px);
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25);
}

/* Clic : le bouton s'enfonce un court instant */
.exo-code-button:active {
  transform: scale(0.95);
  box-shadow: none;
}

.exo-line {
  display: block;
  height: 1px;
  background-color: var(--color-border);
}

.exo-code-content {
  padding: 10px;
  border-radius: var(--radius-card);
  pre {
    font-family: var(--font-family-secondary);
    font-size: var(--fs-label);
    color: var(--color-white);
    margin: 0;
  }
  /* Le thème highlight.js ajoute son propre fond et une marge intérieure :
     on les retire pour garder le fond sombre du bloc. inherit = même police que <pre> */
  code.hljs {
    background: transparent;
    padding: 0;
    font-family: inherit;
  }
}

.exo-code-sortie {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding-bottom: 10px;
}

.exo-code-sortie-title {
  font-size: var(--fs-label);
  color: var(--color-lavender);
  margin: 0;
}

.exo-code-sortie-content {
  font-size: var(--fs-label);
  color: var(--color-accent);
  margin: 0;
  /* Garde les retours à la ligne du texte (sinon tout s'affiche sur une ligne) */
  white-space: pre-line;
}

.list-exercices {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  margin-top: var(--space-4);
  /* Retire le retrait par défaut des <ul> : les bandes s'alignent sur le titre et les cartes */
  padding: 0;
  font-family: var(--font-family);
  font-size: var(--fs-label);
}

li {
  list-style: none;
  p {
    font-size: var(--fs-label);
    color: var(--color-ink);
    margin: 0;
  }
}

.list-exercices-item {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  padding: var(--space-3);
  border-radius: var(--radius-card);
  border: 1px solid var(--color-border);
  cursor: pointer;
  transition:
    background-color 0.3s ease,
    transform 0.3s ease,
    box-shadow 0.3s ease;
  text-decoration: none;
  div {
    display: flex;
    flex-direction: row;
    gap: var(--space-5);
  }
}

.list-exercices-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 10px rgba(20, 18, 31, 0.1);
}

.list-exercices-item-active {
  border-color: var(--color-primary);
  background-color: var(--color-lavender);
}

.nom-exo-list {
  color: var(--color-text-secondary);
  margin: 0;
}

.num-exo-list {
  color: var(--color-primary);
  margin: 0;
}
