/* DBFI, etude patrimoniale et pistes de financement.
   Tout est scope sous l identifiant unique #dbfi-sim-etude.
   Aucune regle globale, aucun CSS Grid, mise en page en flexbox, media query a 640 pixels. */
#dbfi-sim-etude { --lime:#b3bc00; --noir:#000; --texte:#111; --gris:#5a5a5a; --bord:#e2e2e2; --doux:#f7f7f4; --blanc:#fff; --rouge:#b00020;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--texte); font-size:15px; line-height:1.5; max-width:1040px; margin:0 auto; }
#dbfi-sim-etude * { box-sizing:border-box; }
#dbfi-sim-etude .se-titre { font-size:21px; font-weight:700; margin:0 0 4px; letter-spacing:-.3px; }
#dbfi-sim-etude .se-sous { color:var(--gris); font-size:13.5px; margin:0 0 18px; }

/* Fil de progression */
#dbfi-sim-etude .se-fil { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; }
#dbfi-sim-etude .se-fil-etape { flex:1 1 auto; min-width:0; padding:8px 10px; border:1px solid var(--bord); background:var(--blanc);
  border-radius:3px; cursor:pointer; font:inherit; font-size:12.5px; text-align:center; color:var(--gris); white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis; }
#dbfi-sim-etude .se-fil-etape.est-fait { color:var(--texte); border-color:var(--lime); }
#dbfi-sim-etude .se-fil-etape.est-actif { background:var(--noir); color:var(--blanc); border-color:var(--noir); font-weight:600; }
#dbfi-sim-etude .se-fil-etape[disabled] { cursor:default; opacity:.55; }
#dbfi-sim-etude .se-barre { height:4px; background:var(--bord); border-radius:2px; overflow:hidden; margin-bottom:18px; }
#dbfi-sim-etude .se-barre-jauge { height:100%; background:var(--lime); width:0; }
#dbfi-sim-etude .se-rang { font-size:12px; color:var(--gris); margin:0 0 12px; }

/* Blocs de saisie */
#dbfi-sim-etude .se-bloc { background:var(--doux); border:1px solid var(--bord); border-radius:3px; padding:16px 18px; margin-bottom:14px; }
#dbfi-sim-etude .se-bloc h3 { font-size:12px; text-transform:uppercase; letter-spacing:.07em; margin:0 0 4px; color:var(--gris); font-weight:700; }
#dbfi-sim-etude .se-bloc .se-intro { font-size:12.5px; color:var(--gris); margin:0 0 12px; }
#dbfi-sim-etude .se-champ { margin-bottom:13px; }
#dbfi-sim-etude .se-champ:last-child { margin-bottom:0; }
#dbfi-sim-etude .se-champ > label { display:block; font-size:13px; margin-bottom:4px; font-weight:600; }
#dbfi-sim-etude .se-aide { display:block; font-weight:400; color:var(--gris); font-size:12px; margin-top:2px; }
#dbfi-sim-etude .se-champ input[type="number"],
#dbfi-sim-etude .se-champ input[type="text"],
#dbfi-sim-etude .se-champ input[type="month"],
#dbfi-sim-etude .se-champ select { width:100%; padding:9px 10px; border:1px solid var(--bord); border-radius:3px;
  font:inherit; font-size:14px; background:var(--blanc); color:var(--texte); }
#dbfi-sim-etude .se-champ input:focus, #dbfi-sim-etude .se-champ select:focus,
#dbfi-sim-etude button:focus { outline:2px solid var(--lime); outline-offset:1px; }
#dbfi-sim-etude .se-duo { display:flex; flex-wrap:wrap; gap:12px; }
#dbfi-sim-etude .se-duo > .se-champ { flex:1 1 150px; min-width:0; }
#dbfi-sim-etude .se-case { display:flex; align-items:flex-start; gap:8px; font-size:13px; font-weight:400; }
#dbfi-sim-etude .se-case input { margin-top:3px; flex:0 0 auto; }

/* Boutons radio en groupe */
#dbfi-sim-etude .se-radios { display:flex; flex-wrap:wrap; gap:6px; }
#dbfi-sim-etude .se-radio { flex:1 1 110px; min-width:0; padding:9px 8px; border:1px solid var(--bord); background:var(--blanc);
  border-radius:3px; cursor:pointer; font:inherit; font-size:13px; text-align:center; color:var(--texte); }
#dbfi-sim-etude .se-radio[aria-pressed="true"] { background:var(--noir); color:var(--blanc); border-color:var(--noir); font-weight:600; }

/* Cartes de liste dynamique */
#dbfi-sim-etude .se-carte { background:var(--blanc); border:1px solid var(--bord); border-radius:3px; padding:13px 14px; margin-bottom:10px; }
#dbfi-sim-etude .se-carte-tete { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:10px; }
#dbfi-sim-etude .se-carte-titre { font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:var(--gris); font-weight:700; }
#dbfi-sim-etude .se-bouton { padding:8px 13px; border:1px solid var(--noir); background:var(--blanc); color:var(--texte);
  border-radius:3px; cursor:pointer; font:inherit; font-size:13px; }
#dbfi-sim-etude .se-bouton.se-retirer { border-color:var(--bord); color:var(--gris); padding:5px 10px; font-size:12px; }
#dbfi-sim-etude .se-vide { font-size:13px; color:var(--gris); margin:0 0 10px; }

/* Navigation */
#dbfi-sim-etude .se-nav { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
#dbfi-sim-etude .se-nav button { flex:1 1 140px; min-width:0; padding:12px 14px; border-radius:3px; cursor:pointer; font:inherit;
  font-size:14px; border:1px solid var(--bord); background:var(--blanc); color:var(--texte); }
#dbfi-sim-etude .se-nav button.se-suivant { background:var(--noir); color:var(--blanc); border-color:var(--noir); font-weight:600; }
#dbfi-sim-etude .se-nav button[disabled] { opacity:.45; cursor:default; }

/* Resultats */
#dbfi-sim-etude .se-cle { background:var(--noir); color:var(--blanc); border-radius:3px; padding:18px 20px; margin-bottom:14px; }
#dbfi-sim-etude .se-cle-lib { font-size:11.5px; text-transform:uppercase; letter-spacing:.08em; opacity:.72; }
#dbfi-sim-etude .se-cle-val { font-size:30px; font-weight:700; line-height:1.15; margin-top:3px; color:var(--lime); }
#dbfi-sim-etude .se-cle-note { font-size:12.5px; opacity:.78; margin-top:5px; }
#dbfi-sim-etude .se-tuiles { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:14px; }
#dbfi-sim-etude .se-tuile { flex:1 1 140px; min-width:0; background:var(--blanc); border:1px solid var(--bord); border-radius:3px; padding:12px 13px; }
#dbfi-sim-etude .se-tuile-lib { font-size:11.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--gris); }
#dbfi-sim-etude .se-tuile-val { font-size:18px; font-weight:700; margin-top:3px; }
#dbfi-sim-etude .se-ligne { display:flex; justify-content:space-between; gap:12px; padding:8px 0; border-bottom:1px solid var(--bord); font-size:14px; }
#dbfi-sim-etude .se-ligne:last-child { border-bottom:0; }
#dbfi-sim-etude .se-lib { color:var(--gris); }
#dbfi-sim-etude .se-val { font-weight:600; text-align:right; }
#dbfi-sim-etude .se-ligne.se-total { border-top:2px solid var(--noir); border-bottom:0; margin-top:6px; padding-top:11px; font-size:15px; }
#dbfi-sim-etude .se-alerte { border:1px solid var(--bord); border-left:4px solid var(--noir); background:var(--blanc);
  padding:12px 14px; border-radius:3px; font-size:13.5px; margin-bottom:12px; }
#dbfi-sim-etude .se-alerte.se-attention { border-left-color:var(--rouge); }
#dbfi-sim-etude .se-alerte-titre { font-weight:700; margin-bottom:3px; }
#dbfi-sim-etude .se-tableau { overflow-x:auto; margin-bottom:14px; }
#dbfi-sim-etude table { border-collapse:collapse; width:100%; font-size:13.5px; min-width:340px; }
#dbfi-sim-etude th, #dbfi-sim-etude td { text-align:right; padding:8px 10px; border-bottom:1px solid var(--bord); white-space:nowrap; }
#dbfi-sim-etude th:first-child, #dbfi-sim-etude td:first-child { text-align:left; }
#dbfi-sim-etude thead th { font-size:11.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--gris); }
#dbfi-sim-etude td.se-fort { font-weight:700; }

/* Pistes */
#dbfi-sim-etude .se-projet { border:1px solid var(--bord); border-radius:3px; padding:14px 16px; margin-bottom:12px; background:var(--blanc); }
#dbfi-sim-etude .se-projet-tete { font-size:15px; font-weight:700; margin:0 0 2px; }
#dbfi-sim-etude .se-projet-sous { font-size:12.5px; color:var(--gris); margin:0 0 12px; }
#dbfi-sim-etude .se-piste { border-top:1px solid var(--bord); padding:10px 0; }
#dbfi-sim-etude .se-piste:first-of-type { border-top:0; padding-top:0; }
#dbfi-sim-etude .se-piste-tete { display:flex; flex-wrap:wrap; gap:8px; align-items:baseline; }
#dbfi-sim-etude .se-piste-nom { font-weight:600; font-size:14px; }
#dbfi-sim-etude .se-etiquette { font-size:11px; text-transform:uppercase; letter-spacing:.05em; padding:2px 7px;
  border:1px solid var(--bord); border-radius:2px; color:var(--gris); }
#dbfi-sim-etude .se-etiquette.se-pedago { border-color:var(--lime); color:var(--texte); background:var(--doux); }
#dbfi-sim-etude .se-piste-note { font-size:12.5px; color:var(--gris); margin-top:4px; }
#dbfi-sim-etude .se-mention { color:var(--gris); font-size:12px; margin-top:14px; line-height:1.5; }
#dbfi-sim-etude .se-mention p { margin:0 0 6px; }
#dbfi-sim-etude .se-note { color:var(--gris); font-size:13px; margin:8px 0 0; line-height:1.5; }
#dbfi-sim-etude .se-erreur { color:var(--rouge); font-weight:600; }
#dbfi-sim-etude .se-contact-envoi { margin-top:12px; }
#dbfi-sim-etude .se-cache { display:none; }

@media (max-width:640px){
  #dbfi-sim-etude { font-size:15px; }
  #dbfi-sim-etude .se-fil-etape { flex:1 1 30%; font-size:11.5px; padding:7px 4px; }
  #dbfi-sim-etude .se-bloc { padding:14px 13px; }
  #dbfi-sim-etude .se-cle-val { font-size:25px; }
  #dbfi-sim-etude .se-tuile { flex:1 1 46%; }
  #dbfi-sim-etude .se-duo > .se-champ { flex:1 1 100%; }
  #dbfi-sim-etude .se-nav button { flex:1 1 100%; }
  #dbfi-sim-etude .se-radio { flex:1 1 100%; }
}

/* Bloc de verification des sous totaux, copie de /tmp/plugins/_socle/gabarit/verification.css,
   prefixe par l identifiant unique du simulateur. */
#dbfi-sim-etude .sc-verif { margin-top:14px; border:1px solid var(--bord); border-radius:3px; background:var(--carte, #fff); }
#dbfi-sim-etude .sc-verif > summary { cursor:pointer; padding:11px 14px; font-size:13px; font-weight:600; list-style:none; }
#dbfi-sim-etude .sc-verif > summary::-webkit-details-marker { display:none; }
#dbfi-sim-etude .sc-verif > summary:before { content:"+"; display:inline-block; width:16px; font-weight:700; color:var(--lime); }
#dbfi-sim-etude .sc-verif[open] > summary:before { content:"-"; }
#dbfi-sim-etude .sc-verif-aide { margin:0 14px 10px; font-size:12.5px; color:var(--gris); }
#dbfi-sim-etude .sc-verif-cadre { overflow-x:auto; border-top:1px solid var(--bord); }
#dbfi-sim-etude .sc-verif-table { border-collapse:collapse; width:100%; min-width:380px; font-size:12.5px; }
#dbfi-sim-etude .sc-verif-table th { text-align:left; padding:7px 10px; background:var(--doux, #f7f7f4); color:var(--gris);
  font-size:11px; text-transform:uppercase; letter-spacing:.05em; font-weight:700; }
#dbfi-sim-etude .sc-verif-table td { padding:7px 10px; border-top:1px solid var(--bord); vertical-align:top; }
#dbfi-sim-etude .sc-verif-num { color:var(--gris); width:28px; }
#dbfi-sim-etude .sc-verif-lib { width:auto; }
#dbfi-sim-etude .sc-verif-calc { font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-size:11.5px; color:var(--gris); }
#dbfi-sim-etude .sc-verif-val { text-align:right; font-weight:600; white-space:nowrap; }
#dbfi-sim-etude .sc-verif-st td { background:var(--doux, #f7f7f4); font-weight:700; border-top:2px solid var(--noir, #000); }
#dbfi-sim-etude .sc-verif-rq td { color:var(--gris); font-style:normal; font-size:12px; }
#dbfi-sim-etude .sc-verif-section td { background:var(--noir, #000); color:var(--fond, #fff); font-size:10.5px;
  text-transform:uppercase; letter-spacing:.07em; font-weight:700; padding:5px 10px; }
@media (max-width:640px){ #dbfi-sim-etude .sc-verif-lib { width:auto; } }

/* Colonne des sous totaux toujours lisible, meme dans une colonne etroite. */
#dbfi-sim-etude .sc-verif-table { table-layout:auto; }
#dbfi-sim-etude .sc-verif-calc { word-break:break-word; max-width:280px; }
#dbfi-sim-etude .sc-verif-val { min-width:88px; }
@media (max-width:900px){ #dbfi-sim-etude .sc-verif-calc { max-width:200px; } }


/* Barre d outils du dossier : reprise, export, import, impression, effacement. */
#dbfi-sim-etude .se-outils { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; padding-top:14px; border-top:1px solid var(--bord); }
#dbfi-sim-etude .se-outil { padding:8px 12px; border:1px solid var(--bord); background:var(--blanc); border-radius:3px;
  font:inherit; font-size:13px; cursor:pointer; color:var(--texte); }
#dbfi-sim-etude .se-outil:hover { border-color:var(--lime); }
#dbfi-sim-etude .se-reprise { margin-bottom:14px; }
#dbfi-sim-etude .se-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }


/* ------------------------------------------------------------------
   RESULTATS : synthese en tete, puis sections repliables.
   Le mur de blocs precedent se lisait mal : tout etait au meme niveau
   visuel, sans hierarchie ni respiration. Une section porte son titre et
   son chiffre cle sur la meme ligne, de sorte que la page fermee se lit
   deja comme un sommaire chiffre.
   ------------------------------------------------------------------ */
#dbfi-sim-etude .se-synthese { background:var(--noir); color:var(--blanc); border-radius:3px; padding:20px 20px 8px; margin-bottom:16px; }
#dbfi-sim-etude .se-synthese-titre { font-size:11.5px; text-transform:uppercase; letter-spacing:.09em; color:var(--lime); font-weight:700; margin:0 0 14px; }
#dbfi-sim-etude .se-synthese-grille { display:flex; flex-wrap:wrap; gap:14px; }
#dbfi-sim-etude .se-synthese-item { flex:1 1 150px; min-width:0; margin-bottom:12px; }
#dbfi-sim-etude .se-synthese-lib { font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:#b9b9b0; }
#dbfi-sim-etude .se-synthese-val { font-size:21px; font-weight:700; margin-top:4px; line-height:1.2; }
#dbfi-sim-etude .se-synthese-val.est-lime { color:var(--lime); }
#dbfi-sim-etude .se-synthese-note { font-size:12px; color:#b9b9b0; margin:6px 0 12px; }

#dbfi-sim-etude .se-section { border:1px solid var(--bord); border-radius:3px; background:var(--blanc); margin-bottom:10px; }
#dbfi-sim-etude .se-section > summary { cursor:pointer; list-style:none; padding:15px 18px; display:flex; justify-content:space-between;
  align-items:baseline; gap:16px; }
#dbfi-sim-etude .se-section > summary::-webkit-details-marker { display:none; }
#dbfi-sim-etude .se-section > summary:hover { background:var(--doux); }
#dbfi-sim-etude .se-section-titre { font-size:13px; text-transform:uppercase; letter-spacing:.07em; font-weight:700; color:var(--texte); }
#dbfi-sim-etude .se-section-titre:before { content:"+"; display:inline-block; width:18px; font-weight:700; color:var(--lime); }
#dbfi-sim-etude .se-section[open] > summary .se-section-titre:before { content:"\2013"; }
#dbfi-sim-etude .se-section[open] > summary { border-bottom:1px solid var(--bord); background:var(--doux); }
#dbfi-sim-etude .se-section-resume { font-size:13px; color:var(--gris); text-align:right; white-space:nowrap; }
#dbfi-sim-etude .se-section-corps { padding:18px; }

/* Dans une section, un bloc n est plus un encadre : il devient un intertitre suivi de son
   contenu, avec de l air entre chaque. Un encadre dans un encadre ne se lit pas. */
#dbfi-sim-etude .se-section-corps .se-bloc { background:transparent; border:0; border-radius:0; padding:0; margin:0 0 26px; }
#dbfi-sim-etude .se-section-corps .se-bloc:last-child { margin-bottom:0; }
#dbfi-sim-etude .se-section-corps .se-bloc + .se-bloc { border-top:1px solid var(--bord); padding-top:22px; }
#dbfi-sim-etude .se-section-corps .se-bloc h3 { font-size:12.5px; color:var(--texte); margin-bottom:6px; }
#dbfi-sim-etude .se-section-corps .se-bloc .se-intro { margin-bottom:14px; }
#dbfi-sim-etude .se-section-corps .se-ligne { padding:9px 0; }
#dbfi-sim-etude .se-section-corps .se-tuiles { margin-bottom:16px; }
#dbfi-sim-etude .se-section-corps .se-tableau { margin-bottom:4px; }
#dbfi-sim-etude .se-section-corps .se-note { margin-top:12px; }

/* Explication longue. Le composant ligne met la valeur a droite et en gras : correct pour
   un montant, illisible pour trois phrases. Celui-ci pose un intertitre puis un paragraphe. */
#dbfi-sim-etude .se-detail { padding:12px 0; border-bottom:1px solid var(--bord); }
#dbfi-sim-etude .se-detail:last-child { border-bottom:0; }
#dbfi-sim-etude .se-detail-titre { font-size:13.5px; font-weight:600; margin:0 0 5px; }
#dbfi-sim-etude .se-detail-texte { font-size:13px; color:var(--gris); margin:0; line-height:1.6; }

#dbfi-sim-etude .se-vigilance > summary .se-section-titre { color:var(--gris); }
#dbfi-sim-etude .se-deplier { margin:0 0 14px; }

/* Impression : seule la page de resultats part a l imprimante. */
@media print {
  #dbfi-sim-etude .se-fil, #dbfi-sim-etude .se-barre, #dbfi-sim-etude .se-nav,
  #dbfi-sim-etude .se-outils, #dbfi-sim-etude .se-reprise, #dbfi-sim-etude .se-retirer { display:none !important; }
  #dbfi-sim-etude { max-width:none; font-size:12px; }
  #dbfi-sim-etude .se-bloc, #dbfi-sim-etude .se-projet, #dbfi-sim-etude .se-carte { break-inside:avoid; page-break-inside:avoid; }
  #dbfi-sim-etude .se-tableau { overflow:visible; }
  #dbfi-sim-etude details { display:block; }
  #dbfi-sim-etude .se-section > summary { display:block; border-bottom:1px solid var(--bord); background:none; padding:10px 0; }
  #dbfi-sim-etude .se-section > summary .se-section-titre:before { content:""; width:0; }
  #dbfi-sim-etude .se-section { border:0; margin-bottom:0; }
  #dbfi-sim-etude .se-section-corps { padding:12px 0 0; }
  #dbfi-sim-etude .se-synthese { background:none; color:var(--texte); border:1px solid var(--bord); padding:12px; }
  #dbfi-sim-etude .se-synthese-lib, #dbfi-sim-etude .se-synthese-note { color:var(--gris); }
  #dbfi-sim-etude .se-synthese-val.est-lime { color:var(--texte); }
  #dbfi-sim-etude .se-deplier { display:none !important; }
  #dbfi-sim-etude .sc-verif > summary { display:none; }
}
