.rap-simu { --v:#2E5A2E; --vc:#EAF1E8; --vv:#3F7A3F; --i:#1A211B; --i2:#5A645C;
  --f:#DFE3DC; --f2:#EDF0EA; --c:#fff; --or:#8A5A1B; margin:2rem 0; color:var(--i);
  font-family:inherit; font-size:16px; line-height:1.6; text-align:left; }
.rap-simu *, .rap-simu *::before { box-sizing:border-box; }
.rap-simu .rs-outil { background:var(--c); border:1px solid var(--f); border-radius:12px; overflow:hidden;
  box-shadow:0 1px 2px rgba(26,33,27,.05), 0 10px 28px rgba(26,33,27,.06); }
.rap-simu .rs-corps { padding:.4rem 0 .6rem; }
.rap-simu .rs-etape { border-bottom:1px solid var(--f2); }
.rap-simu .rs-etape:last-child { border-bottom:0; }
.rap-simu .rs-etape[hidden] { display:none; }
.rap-simu .repondue { display:flex; align-items:baseline; gap:.7rem; padding:.75rem 1.3rem; cursor:pointer; }
.rap-simu .repondue:hover { background:var(--vc); }
.rap-simu .repondue .q { color:var(--i2); font-size:14.5px; }
.rap-simu .repondue .r { font-weight:600; font-size:14.5px; }
.rap-simu .repondue .modif { margin-left:auto; font-size:13px; color:var(--v); flex:none; }
/* Une étape sans choix réel : elle se lit, elle ne se clique pas. Sans cette
   règle elle garderait le curseur et le survol des étapes modifiables, et
   promettrait une action qui n'existe pas. */
.rap-simu .repondue.imposee { cursor:default; }
.rap-simu .repondue.imposee:hover { background:none; }
.rap-simu .active { padding:1.1rem 1.3rem 1.2rem; }
.rap-simu .titre-q { margin:0 0 .75rem; font-size:1.05rem; font-weight:600; display:flex; gap:.6rem; align-items:baseline; }
.rap-simu .titre-q .no { display:inline-grid; place-items:center; width:1.45rem; height:1.45rem; flex:none;
  border-radius:50%; background:var(--v); color:#fff; font-size:12px; font-weight:700; font-variant-numeric:tabular-nums; }
.rap-simu .choix { display:flex; flex-wrap:wrap; gap:.5rem; }
.rap-simu .choix button { font:inherit; font-size:14.5px; padding:.55rem .9rem; border-radius:999px;
  border:1px solid var(--f); background:var(--c); color:var(--i); cursor:pointer; margin:0;
  text-transform:none; letter-spacing:normal; line-height:1.3; }
.rap-simu .choix button:hover { border-color:var(--v); background:var(--c); color:var(--i); }
.rap-simu .choix button[aria-pressed="true"] { background:var(--v); border-color:var(--v); color:#fff; font-weight:500; }
.rap-simu .aide { margin:.6rem 0 0; font-size:13.5px; color:var(--i2); }
.rap-simu .annee { display:flex; align-items:center; gap:.7rem; flex-wrap:wrap; }
.rap-simu .annee input { font:inherit; font-size:1.15rem; font-variant-numeric:tabular-nums; width:7rem;
  padding:.5rem .7rem; border:1px solid var(--f); border-radius:6px; background:var(--c); color:var(--i); margin:0; }
.rap-simu .annee .verdict { font-size:14.5px; color:var(--i2); }
.rap-simu .annee .verdict b { color:var(--i); }
.rap-simu .annee .verdict .refus { color:var(--or); }
.rap-simu .cases { display:grid; margin:.6rem 0 0; }
.rap-simu .cases label { display:flex; align-items:center; gap:.6rem; padding:.4rem .1rem; font-size:14.5px;
  cursor:pointer; border-bottom:1px solid var(--f2); margin:0; font-weight:400; }
.rap-simu .cases label:last-child { border-bottom:0; }
.rap-simu .cases input { width:1.05rem; height:1.05rem; accent-color:var(--v); flex:none; margin:0; }
.rap-simu .cases .prix { margin-left:auto; font-variant-numeric:tabular-nums; color:var(--i2); }
.rap-simu .suite { margin:1rem 0 0; }
.rap-simu .suite button { font:inherit; font-size:15px; font-weight:600; padding:.55rem 1.1rem;
  border-radius:6px; border:0; background:var(--v); color:#fff; cursor:pointer; text-transform:none; }
.rap-simu .resultat { background:var(--vc); border-top:1px solid var(--f); padding:1.3rem 1.3rem 1.4rem; }
.rap-simu .resultat[hidden] { display:none; }
.rap-simu .resultat .titre { margin:0 0 .9rem; font-size:11.5px; font-weight:600; letter-spacing:.11em;
  text-transform:uppercase; color:var(--i2); }
.rap-simu .lignes { display:grid; gap:.35rem; font-variant-numeric:tabular-nums; }
.rap-simu .ligne { display:flex; justify-content:space-between; gap:1rem; font-size:15px; }
.rap-simu .ligne .quoi { color:var(--i2); }
.rap-simu .ligne.total { margin-top:.6rem; padding-top:.7rem; border-top:1px solid var(--f);
  font-size:1.3rem; font-weight:700; }
.rap-simu .ligne.total .quoi { color:var(--i); font-weight:600; font-size:15px; align-self:end; }
.rap-simu .echeance { margin:.9rem 0 0; padding:.75rem .9rem; background:var(--c); border:1px solid var(--f);
  border-radius:6px; font-size:14.5px; }
.rap-simu .echeance .l { display:flex; justify-content:space-between; gap:1rem; font-variant-numeric:tabular-nums; }
.rap-simu .echeance .l + .l { margin-top:.25rem; }
.rap-simu .echeance .note-e { margin:.5rem 0 0; font-size:13px; color:var(--i2); }
.rap-simu .pieces-a-fournir { margin:1rem 0 0; padding:.85rem 1rem; background:var(--c);
  border:1px solid var(--f); border-radius:6px; }
.rap-simu .pieces-a-fournir .t { margin:0 0 .5rem; font-size:11.5px; font-weight:600; letter-spacing:.1em;
  text-transform:uppercase; color:var(--i2); }
.rap-simu .pieces-a-fournir ul { margin:0; padding-left:1.15rem; font-size:14.5px; list-style:disc; }
.rap-simu .pieces-a-fournir li { margin:.3rem 0; }
.rap-simu .pieces-a-fournir li.faible { color:var(--i2); }
/* Les précisions d'une pièce : le papier qu'on remplit sans le remettre, la
   remarque du formulaire, la conséquence d'une réponse positive. Elles se lisent
   sous la pièce qu'elles précisent, pas à côté des autres pièces.
   Le thème pose « list-style » sur le li lui-même : il faut le viser là, et
   vider le ::marker, sinon sa puce carrée s'ajoute à notre tiret. */
.rap-simu .pieces-a-fournir ul.sous { margin:.3rem 0 .1rem; padding-left:.2rem; list-style:none; }
.rap-simu .pieces-a-fournir ul.sous > li { list-style:none; list-style-type:none;
  margin:.2rem 0; padding-left:.9rem; position:relative;
  font-size:13.5px; line-height:1.5; color:var(--i2); }
.rap-simu .pieces-a-fournir ul.sous > li::marker { content:""; }
.rap-simu .pieces-a-fournir ul.sous > li::before { content:"–"; position:absolute; left:0; }
/* L'autre branche d'un cas indécis : ni une pièce de plus, ni une note en gris.
   Un encadré à filet, sans puce, accroché aux lignes qu'il peut remplacer. */
.rap-simu .pieces-a-fournir li.autre { list-style:none; margin:.45rem 0 .5rem -1.15rem;
  padding:.5rem .7rem; border-left:3px solid var(--v); background:#fff;
  border-radius:0 4px 4px 0; font-size:14px; }
.rap-simu .pieces-a-fournir li.autre b:first-child { color:var(--v); }
.rap-simu .pieces-a-fournir .provenance { margin:.7rem 0 0; font-size:12.5px; color:var(--i2); }
.rap-simu .apres { margin:.9rem 0 0; font-size:13.5px; color:var(--i2); }
.rap-simu .cta { display:inline-block; margin:1.3rem 0 0; padding:.9rem 1.9rem; border-radius:999px;
  background:var(--v); color:#fff; text-decoration:none; font-weight:600; font-size:16px; line-height:1.2;
  box-shadow:0 2px 6px rgba(35,69,35,.22), 0 8px 20px rgba(35,69,35,.14);
  transition:background .15s ease, box-shadow .15s ease, transform .15s ease; }
.rap-simu .cta::after { content:"\2192"; margin-left:.6rem; display:inline-block; transition:transform .15s ease; }
.rap-simu .cta:hover { background:#234523; color:#fff; transform:translateY(-1px);
  box-shadow:0 3px 8px rgba(35,69,35,.26), 0 14px 28px rgba(35,69,35,.18); }
.rap-simu .cta:hover::after { transform:translateX(3px); }
.rap-simu .cta:active { transform:translateY(0); }
.rap-simu .recommencer { margin-left:1.1rem; font-size:14px; color:var(--i2); background:none; border:0;
  cursor:pointer; font-family:inherit; font-weight:400; text-transform:none; letter-spacing:normal;
  text-decoration:underline; padding:0; }
.rap-simu .recommencer:hover { color:var(--v); }
.rap-simu details.grille { margin:1.4rem 0 0; border-top:1px solid var(--f); padding-top:1rem; }
.rap-simu details.grille summary { cursor:pointer; font-size:14.5px; font-weight:600; color:var(--v); list-style:none; }
.rap-simu details.grille summary::-webkit-details-marker { display:none; }
.rap-simu details.grille summary::before { content:"\25b8 "; }
.rap-simu details.grille[open] summary::before { content:"\25be "; }
.rap-simu .cadre { margin:1rem 0 0; overflow-x:auto; }
.rap-simu table { border-collapse:collapse; width:100%; font-size:14.5px; margin:0; }
.rap-simu th { text-align:left; padding:.45rem .6rem; border-bottom:1px solid var(--i); font-size:11.5px;
  letter-spacing:.07em; text-transform:uppercase; color:var(--i2); background:none; }
.rap-simu td { padding:.4rem .6rem; border-bottom:1px solid var(--f2); }
.rap-simu td.n, .rap-simu th.n { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
@media (prefers-reduced-motion: reduce) { .rap-simu * { transition:none !important; } }
.rap-simu .suite { margin:.75rem 0 0; font-size:13px; color:var(--i2); }
.rap-simu .suite a { color:var(--v); }

@media (max-width: 600px) {
  .rap-simu .cta { display:block; width:100%; text-align:center; padding-left:1rem; padding-right:1rem; }
  .rap-simu .cta::after { display:none; }
  .rap-simu .recommencer { display:inline-block; margin:1rem 0 0; }
}
.rap-simu .ferme { margin:1.3rem 0 0; padding:1rem 1.2rem; border-left:3px solid var(--or);
  background:#FBF7F0; border-radius:0 8px 8px 0; }
.rap-simu .ferme-t { margin:0; font-weight:600; }
.rap-simu .ferme-s { margin:.35rem 0 0; font-size:14px; color:var(--i2); }
/* Les pièces à fournir : le « (PDF) » est ajouté par la feuille de style,
   pour qu'aucun libellé n'ait à le porter. */
.rap-simu .pieces-a-fournir a { color:var(--v); text-decoration:underline; }
.rap-simu .pieces-a-fournir a[href$=".pdf"]::after { content:" (PDF)"; font-size:.82em;
  font-weight:400; white-space:nowrap; opacity:.75; }
