/* PREUVE EN MAIN — Calcul simple (famille-simple.js). Préfixe .fs- ; s'appuie sur
   famille-vue.css (.fc-*, chargée avant) et sur les jetons de app.css.
   Direction C (design/01-SYNTHESE-DIRECTION.md) : filets, cases de ligne, chiffres
   tabulaires ; Q3a : sérif réservée au h1 et au papier ; Q3b : #163b66 pour la marque
   et le chrome, #185abd pour l'action. Mobile d'abord : 390 px sans défilement
   horizontal ; cibles de 44 px et police de 16 px dans les champs sous 768 px ;
   focus en outline (couleurs forcées comprises) ; mouvement réduit respecté. */

.fs-vue{--fs-marque:#163b66;--fs-action:#185abd;--fs-focus:#163b66;--fs-filet:var(--trait);--fs-filet-2:var(--trait-2)}
.fs-vue [hidden]{display:none!important}
.fs-vue a{color:var(--fs-action)}
.fs-vue :is(input,select,textarea,button,a,summary):focus-visible{outline:3px solid var(--fs-focus);outline-offset:2px;box-shadow:none}
.fs-vue .fc-choix input:focus-visible+span{outline:3px solid var(--fs-focus);outline-offset:2px}
@media (forced-colors:active){
  .fs-vue :is(input,select,textarea,button,a,summary):focus-visible,.fs-vue .fc-choix input:focus-visible+span{outline:3px solid Highlight}
  .fs-bascule-b[aria-pressed="true"]{border:2px solid Highlight}
}

/* Bascule simple / détaillé */
.fs-bascule{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:var(--papier-2);border-radius:10px;padding:4px;margin:10px 0 14px;max-width:420px}
.fs-bascule-b{min-height:44px;border:0;border-radius:8px;background:none;font:inherit;font-weight:650;font-size:.92rem;color:var(--encre-douce);cursor:pointer;padding:6px 10px}
.fs-bascule-b:hover{color:var(--fs-marque)}
.fs-bascule-b[aria-pressed="true"]{background:var(--blanc);color:var(--fs-marque);box-shadow:0 1px 3px rgba(20,28,42,.12)}
.fs-note-detail{margin:0 0 12px}

/* Grille : la carte, et le résultat collé à droite (dessous à 390 px) */
.fs-grille{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start}
@container fcvue (min-width:760px){
  .fs-grille{grid-template-columns:minmax(0,1fr) minmax(280px,340px)}
  .fs-res{position:sticky;top:calc(var(--tete-h) + 12px)}
}

/* La carte vivante */
.fs-carte{padding:4px 18px 10px;margin:0}
.fs-h2{font-family:var(--sans);font-size:.76rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--encre-douce);margin:12px 0 4px}
.fs-l{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,200px);gap:6px 14px;align-items:center;padding:12px 0;border-top:1px solid var(--fs-filet)}
.fs-carte>.fs-l:first-of-type{border-top:0}
#fs-zone-jours>.fs-l{border-top:1px solid var(--fs-filet)}
.fs-lib{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;font-weight:650;font-size:.95rem;line-height:1.35;color:var(--encre);margin:0}
.fs-pleine{grid-column:1 / -1;margin:0}
.fs-qui{display:inline-flex;align-items:center;justify-content:center;min-width:3.4em;height:22px;padding:0 6px;border:1px solid currentColor;border-radius:4px;
  font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;line-height:1}
.fs-qui-pere{color:var(--fc-pere)}
.fs-qui-mere{color:var(--fc-mere)}
.fs-vue .fs-in{min-height:44px;text-align:right;font-variant-numeric:tabular-nums}
.fs-vue select{min-height:44px}
.fs-argent{position:relative;display:block}
.fs-argent-fr .fs-in{padding-right:28px}
.fs-argent-fr::after{content:"$";position:absolute;right:11px;top:50%;transform:translateY(-50%);color:var(--encre-douce);pointer-events:none}
.fs-argent-en .fs-in{padding-left:24px}
.fs-argent-en::before{content:"$";position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--encre-douce);pointer-events:none;z-index:1}

/* Jours liés + curseur */
.fs-l-jours{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end}
.fs-jours-c{display:flex;flex-direction:column;gap:6px}
.fs-jours-c .fs-lib{font-size:.9rem}
.fs-curseur{grid-column:1 / -1;width:100%;min-height:44px;margin:0;accent-color:var(--fs-marque);cursor:pointer}
.fs-garde-info{grid-column:1 / -1;margin:0;font-size:.82rem;line-height:1.5;color:var(--encre-douce);display:flex;flex-direction:column;gap:2px}
.fs-garde-info:empty{display:none}
.fs-pcts{font-weight:700;color:var(--encre);font-variant-numeric:tabular-nums}
.fs-pct-p{color:var(--fc-pere)}
.fs-pct-m{color:var(--fc-mere)}
.fs-classe{font-weight:650;color:var(--encre)}
.fs-seuils{font-size:.78rem}

/* Compteur d'enfants */
.fs-compteur{display:inline-grid;grid-template-columns:44px minmax(44px,auto) 44px;align-items:center;border:1.5px solid #c9d3df;border-radius:10px;overflow:hidden;justify-self:end;background:var(--blanc)}
.fs-compteur button{width:44px;height:44px;border:0;background:var(--blanc);font:inherit;font-size:1.35rem;line-height:1;color:var(--fs-marque);cursor:pointer}
.fs-compteur button:hover{background:var(--papier)}
.fs-compteur output{text-align:center;font-weight:700;font-size:1.05rem;font-variant-numeric:tabular-nums;padding:0 6px}

/* Résultat en direct */
.fs-res{background:var(--blanc);border:1px solid var(--trait);border-top:3px solid var(--fs-marque);border-radius:10px;padding:16px 18px 14px;margin:0}
.fs-res.fs-res-non{border-top-color:var(--fc-non)}
.fs-res-sur{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--encre-douce);margin:0}
.fs-phrase{margin:8px 0 4px;font-size:1rem;line-height:1.45;color:var(--encre)}
.fs-gros{display:block;margin-bottom:4px}
.fs-gros strong{font-size:2.3rem;line-height:1.1;font-weight:750;letter-spacing:-.01em;color:var(--encre);font-variant-numeric:tabular-nums lining-nums}
.fs-unite{font-size:1rem;font-weight:600;color:var(--encre-douce)}
.fs-an strong{font-weight:750;font-variant-numeric:tabular-nums}
.fs-payeur{font-weight:650}
[data-fs="mensuel"],[data-fs="annuel"]{display:inline-block;transition:transform .16s ease-out}
.fs-maj{transform:translateY(1px)}
.fs-res-msg{margin:10px 0 4px;font-size:.92rem;line-height:1.5;color:var(--encre)}
.fs-res-non .fs-res-msg{color:var(--fc-non)}
.fs-avert{border-left:3px solid var(--fs-marque);padding:3px 0 3px 11px;margin:12px 0 8px;font-size:.92rem;line-height:1.45;color:var(--encre)}
.fs-outil{font-size:.85rem;line-height:1.45;margin:6px 0 0;overflow-wrap:anywhere}
.fs-date{color:var(--encre-douce);font-size:.8rem}
.fs-garde-off{font-size:.78rem;color:var(--encre-douce);margin:4px 0 0;line-height:1.45}
.fs-moteur,.fs-alt{font-size:.8rem;color:var(--encre-douce);line-height:1.45;margin:8px 0 0}
.fs-alt{color:var(--encre);background:var(--papier);border-radius:8px;padding:7px 10px}
.fs-res-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.fs-res-actions .bouton{flex:1 1 140px}

/* Options repliées */
.fs-options{margin-top:16px;border-top:1px solid var(--trait)}
.fs-opt{border-bottom:1px solid var(--trait)}
.fs-opt>summary{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;min-height:48px;padding:6px 2px;cursor:pointer;list-style:none;font-weight:650;color:var(--fs-marque)}
.fs-opt>summary::-webkit-details-marker{display:none}
.fs-opt>summary::before{content:"";flex-shrink:0;width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);margin:0 4px 0 4px;transition:transform .15s ease-out}
.fs-opt[open]>summary::before{transform:rotate(45deg)}
.fs-opt-sous{font-weight:500;font-size:.8rem;color:var(--encre-douce)}
#fs-nb-drap:not(:empty){display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--ambre-pale);color:var(--ambre-texte);font-size:.75rem;font-weight:700}
.fs-opt-corps{padding:2px 2px 16px}
.fs-opt-corps>.fc-aide:first-child{margin-top:0}

/* Rangées père / mère des options */
.fs-ls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px 10px;padding:10px 0;border-top:1px solid var(--fs-filet-2)}
.fs-ls-lib{grid-column:1 / -1;display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 0;font-size:.9rem;line-height:1.4}
.fs-ls-in{display:block}
.fs-ls-in>span:first-child{display:block;font-size:.74rem;font-weight:700;color:var(--encre-douce);text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px}
.fs-ln{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-width:2.9em;height:22px;padding:0 5px;margin-right:8px;
  border:1px solid var(--encre-3);border-radius:3px;background:var(--blanc);font-size:.74rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--encre)}
.fs-verbatim{flex-basis:100%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:.78rem;color:var(--encre-douce);margin-top:3px}
@container fcvue (min-width:700px){
  .fs-ls{grid-template-columns:minmax(0,1fr) 160px 160px;align-items:center}
  .fs-ls-lib{grid-column:auto}
}
.fs-enfant{padding:10px 0;border-top:1px solid var(--fs-filet-2)}
.fs-enfant-t{font-weight:650;margin:0 0 6px}
.fs-duo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}

/* Partage des frais et comparaison */
.fs-frais-res{margin-top:6px}
.fs-t{width:100%;border-collapse:collapse;font-size:.86rem;font-variant-numeric:tabular-nums;margin-top:10px}
.fs-t th,.fs-t td{padding:6px 6px;border-bottom:1px solid var(--fs-filet-2);text-align:right;vertical-align:top}
.fs-t thead th{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--encre-douce);border-bottom:1px solid var(--encre-3)}
.fs-t th[scope="row"],.fs-t thead th:first-child{text-align:left;font-weight:600;color:var(--encre)}
.fs-cmp th[scope="col"]{overflow-wrap:anywhere}
.fs-net{font-size:.92rem;margin:10px 0 0;line-height:1.5}

/* Comment ce montant est obtenu */
.fs-comment{list-style:none;margin:0;padding:0;border-top:1px solid var(--trait)}
.fs-c{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 10px;padding:8px 0;border-bottom:1px solid var(--fs-filet-2);font-size:.86rem;line-height:1.45}
.fs-c .fs-ln{margin:1px 0 0}
.fs-c-lib{overflow-wrap:anywhere}
.fs-c-val{grid-column:2;font-weight:650;font-variant-numeric:tabular-nums}
.fs-c-cle{background:#f0f4f9}
.fs-h3{font-size:.92rem;margin:16px 0 6px}
.fs-textes{margin:0 0 0 18px;font-size:.8rem;line-height:1.5;overflow-wrap:anywhere}
.fs-textes li{margin:4px 0}

/* Scénarios */
.fs-scen-form{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:flex-end}
.fs-scen-form .fc-champ{flex:1 1 240px;margin-top:0}
.fs-scens{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:6px}
.fs-sc{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;border:1px solid var(--trait);border-radius:10px;padding:8px 12px}
.fs-sc .fc-sc-choix{flex:1 1 200px;min-height:44px}
.fs-sc-meta{font-size:.82rem;color:var(--encre-douce);font-variant-numeric:tabular-nums}

/* Sommaire (la zone garde les classes .fc- : l'impression Letter de famille-vue.css s'applique) */
.fs-zone-sommaire{margin-top:16px}

/* Barre collante à 390 px : montant mensuel ET annuel, toujours avec « seul le tribunal » */
.fs-barre{display:none}
@media (max-width:767px){
  .fs-vue{padding-bottom:84px}
  .fs-vue input,.fs-vue select,.fs-vue textarea{font-size:16px;min-height:44px}
  .fs-vue .bouton,.fs-vue .bouton.fc-petit{min-height:44px}
  .fs-vue .fc-choix span{min-height:44px}
  .fs-vue.fs-res-hors .fs-barre{display:flex;flex-direction:column;gap:1px;position:fixed;left:0;right:0;bottom:var(--fs-nav-h,calc(66px + env(safe-area-inset-bottom)));z-index:19;
    padding:8px 16px;background:var(--fs-marque);color:#fff;box-shadow:0 -4px 14px rgba(20,28,42,.18)}
  .fs-barre-m{font-weight:750;font-size:1rem;font-variant-numeric:tabular-nums}
  .fs-barre-t{font-size:.8rem;opacity:.92}
}
@container fcvue (max-width:520px){
  .fs-l{grid-template-columns:minmax(0,1fr)}
  .fs-l-jours{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .fs-compteur{justify-self:start}
  .fs-gros strong{font-size:2rem}
}

@media (prefers-reduced-motion:reduce){
  .fs-vue *,.fs-vue *::before{transition:none!important;animation:none!important;scroll-behavior:auto!important}
  .fs-maj{transform:none}
}
@media print{ .fs-barre{display:none!important} }
