/* Simulateur de prêt : styles propres à l'outil. */
.o-pret [hidden] { display: none !important; }
.o-pret .o-pret-modes { border-top: 0; padding-top: 0; }
.atelier .o-pret .o-pret-modes .btn[aria-pressed="true"],
.atelier .o-pret .o-pret-vues .btn[aria-pressed="true"] { background: var(--marque); border-color: var(--marque); color: var(--sur-marque); }
.o-pret-champs { margin-top: 4px; }
.o-pret-unite { display: flex; align-items: stretch; gap: 6px; min-width: 0; }
.o-pret-unite input { flex: 1 1 auto; min-width: 0; width: 100%; font: 600 1.1rem var(--mono); }
.o-pret-unite i { display: flex; align-items: center; font-style: normal; color: var(--texte-2); min-width: 1.2em; }
.o-pret .o-pret-unite select { flex: 0 0 auto; width: auto; max-width: 9.5em; min-width: 0; }
.o-pret-champs > *, .o-pret-options > * { min-width: 0; }
.o-pret-duree { display: flex; flex-direction: column; gap: 4px; font-size: .88rem; color: var(--texte-2); }
.o-pret-options { margin-top: 16px; }
.o-pret-option { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.o-pret-option label.case { align-self: start; }
.o-pret input[aria-invalid="true"] { border-color: var(--erreur-texte); outline: 1px solid var(--erreur-texte); }
.o-pret input:focus-visible, .o-pret select:focus-visible, .o-pret summary:focus-visible, .o-pret-defile:focus-visible { outline: 3px solid var(--marque); outline-offset: 1px; }
.o-pret .o-pret-erreur { margin: 12px 0 0; color: var(--erreur-texte); font-size: 1rem; }
.o-pret .o-pret-erreur:empty { display: none; }
.o-pret-resultats { display: block; margin-top: 16px; }
.o-pret-resultats dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; margin: 0; }
.o-pret-resultats dl > div { padding: 10px 14px; border-radius: var(--rayon-petit); background: var(--surface-2); min-width: 0; }
.o-pret-resultats dt { font-size: .85rem; color: var(--texte-2); }
.o-pret-resultats dd { margin: 2px 0 0; font: 700 1.15rem var(--mono); color: var(--texte); overflow-wrap: anywhere; }
.o-pret-resultats .o-pret-fort { background: var(--marque); }
.o-pret-resultats .o-pret-fort dt, .o-pret-resultats .o-pret-fort dd { color: var(--sur-marque); }
.o-pret-resultats .o-pret-fort dd { font-size: 1.5rem; }
.o-pret-plus { margin-top: 14px; padding: 12px 14px; border: 1px solid var(--bord); border-radius: var(--rayon-petit); }
.o-pret-plus > strong { display: block; margin-bottom: 8px; }
.o-pret-plus dl > div { background: var(--surface); padding: 4px 0; }
.o-pret-figure { margin: 20px 0 0; }
.o-pret-figure figcaption { font-weight: 600; margin-bottom: 6px; }
.o-pret-svg { display: block; width: 100%; max-width: 760px; height: auto; }
.o-pret-grille { stroke: var(--bord); stroke-width: 1; }
.o-pret-axe { fill: var(--texte-2); font: 11px var(--police); }
.o-pret-courbe { fill: none; stroke: var(--marque); stroke-width: 2.5; stroke-linejoin: round; }
.o-pret-b-capital { fill: #2e9f6b; }
.o-pret-b-interets { fill: #e0892b; }
.o-pret-legende { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 8px 0 0; padding: 0; list-style: none; font-size: .88rem; color: var(--texte-2); }
.o-pret-legende li { display: flex; align-items: center; gap: 6px; }
.o-pret-pastille { display: inline-block; width: 14px; height: 10px; border-radius: 2px; }
.o-pret-p-restant { height: 3px; background: var(--marque); }
.o-pret-p-capital { background: #2e9f6b; }
.o-pret-p-interets { background: #e0892b; }
.o-pret-tableau { margin-top: 20px; border: 1px solid var(--bord); border-radius: var(--rayon-petit); }
.o-pret-tableau summary { cursor: pointer; padding: 12px 14px; font-weight: 600; }
.o-pret-barre { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; padding: 0 14px 10px; }
.o-pret-vues { display: flex; flex-wrap: wrap; gap: 8px; }
.o-pret-vues .btn { border-radius: 999px; }
.o-pret-defile { max-height: 420px; overflow: auto; border-top: 1px solid var(--bord); }
.o-pret-defile table { width: 100%; border-collapse: collapse; font-size: .88rem; }
.o-pret-defile th, .o-pret-defile td { padding: 6px 10px; text-align: right; white-space: nowrap; border-bottom: 1px solid var(--bord); }
.o-pret-defile thead th { position: sticky; top: 0; background: var(--surface-2); color: var(--texte); z-index: 1; }
.o-pret-defile tbody th { font-weight: 600; color: var(--texte-2); }
.o-pret-defile td { font-family: var(--mono); }
.o-pret-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 16px; }
.o-pret .o-pret-avis { display: block; margin-top: 14px; }
@media (max-width: 640px) {
  .o-pret-resultats dl { grid-template-columns: 1fr 1fr; }
  .o-pret-resultats dd { font-size: 1rem; }
  .o-pret-resultats .o-pret-fort { grid-column: 1 / -1; }
}
