/* =====================================================================
   COUCHE DE FINITION des automatismes (appliquée le 10/10/2026)
   Marmeladz « Factures fournisseurs » (#s57 automatisme 5 : File de contrôle,
   contrôle d'une facture, Dépenses et virements, Suivi des dépenses,
   Paramétrage) et Benelyon « Rapprochement de caisses » (#s57 automatisme 1 :
   vue du mois ; #s43 fiche : Journées transmises, Accès des boutiques ;
   #ctjOv contrôle des journées, Journées validées, Récap ; #cv2F fiche du jour).

   Principe : RIEN ne bouge. Aucun bloc déplacé, aucun bouton renommé,
   aucune donnée changée. Seulement : couleurs, rayons, ombres, espacements,
   états (survol, focus, sélection). Les largeurs de boutons et de puces ne
   changent pas (pas de nouveau retour à la ligne).

   Interrupteur : drapeau `finition_automatismes` (Administration >
   Fonctionnalités). Allumé, le front pose html.fin-on ; #s57 et #s43 portent
   .fin-scope seulement quand l'automatisme affiché est l'un des deux.
   Éteint = écran d'avant au rechargement, rien à restaurer.
   Les correctifs du mode sombre (vrais défauts) ne sont PAS ici : ils sont
   toujours actifs, en tête de index.html.
   ===================================================================== */

/* ---------- 1. Jetons ---------- */
html.fin-on{
  --f-r1:8px; --f-r2:12px; --f-r3:16px;
  --f-sh1:0 1px 2px rgba(16,40,52,.06),0 1px 3px rgba(16,40,52,.05);
  --f-sh2:0 6px 18px rgba(16,40,52,.10);
  --f-pri:#143240; --f-pri-h:#1d4356; --f-pri-ink:#fff;
  --f-go:#18794e; --f-go-h:#14683f;            /* décision positive : la même partout */
  --f-ok:#18794e; --f-ok-bg:#e6f4ec;
  --f-info:#0b62c4; --f-info-bg:#e8f1fc;
  --f-warn:#7a5d00; --f-warn-bg:#fbf3d5; --f-warn-line:#efdf9f;   /* avertissement : jaune, plus d'orange */
  --f-bad:#b42332; --f-bad-bg:#fbe9eb;
  --f-neu:#51626c; --f-neu-bg:#eef2f4;
  --f-focus:0 0 0 3px rgba(11,98,196,.32);
  --f-ease:cubic-bezier(.2,.7,.2,1);
}
html.fin-on.theme-dark{
  --f-sh1:0 1px 2px rgba(0,0,0,.30); --f-sh2:0 8px 22px rgba(0,0,0,.35);
  --f-pri:#2b5a70; --f-pri-h:#346a83; --f-pri-ink:#fff;
  --f-go:#2f9e6a; --f-go-h:#36b079;
  --f-ok:#5fd39a; --f-ok-bg:#173a2a;
  --f-info:#7fb6f5; --f-info-bg:#1a3550;
  --f-warn:#f2c94c; --f-warn-bg:#3a3413; --f-warn-line:#5e5320;
  --f-bad:#ff9aa5; --f-bad-bg:#3a1d1d;
  --f-neu:#a9bcc6; --f-neu-bg:#1b3d4b;
  --f-focus:0 0 0 3px rgba(127,182,245,.45);
}

/* Portée : uniquement les écrans des deux automatismes */
/* (chiffres tabulaires écartés : en Montserrat ils élargissent les colonnes auto et font passer des cellules à la ligne) */

/* ---------- 2. Boutons : une seule famille, trois rôles ---------- */
html.fin-on :is(#s57.fin-scope,#s43.fin-scope,#ctjOv,#cv2F) :is(.a3-btn,.dp-go,.cp3-go,.cba .cbb,.cvf-btn){
  border-radius:10px; min-height:32px; font-weight:700;
  transition:background-color .14s var(--f-ease),border-color .14s var(--f-ease),box-shadow .14s var(--f-ease),transform .06s;
  box-shadow:var(--f-sh1)
}
html.fin-on :is(#s57.fin-scope,#s43.fin-scope,#ctjOv) :is(.a3-btn,.dp-go,.cp3-go,.cba .cbb){display:inline-flex;align-items:center;justify-content:center;gap:7px}
html.fin-on :is(#s57.fin-scope,#s43.fin-scope,#ctjOv,#cv2F) :is(.a3-btn,.cba .cbb,.cvf-btn):not(.p):not(.v):not(.red):not([disabled]):hover{background:var(--card2);border-color:color-mix(in srgb,var(--line) 60%,var(--mut))}
html.fin-on :is(#s57.fin-scope,#s43.fin-scope,#ctjOv,#cv2F) :is(.a3-btn,.dp-go,.cp3-go,.cbb,.cvf-btn):not([disabled]):active{transform:translateY(1px)}
html.fin-on :is(#s57.fin-scope,#s43.fin-scope,#ctjOv,#cv2F) :is(.a3-btn,.cvf-btn)[disabled]{box-shadow:none}
/* principal (structure) : marine, lisible en sombre */
html.fin-on :is(#s57.fin-scope,#s43.fin-scope,#ctjOv) :is(.a3-btn.p,.dp-go,.cba .cbb.p){background:var(--f-pri);border-color:var(--f-pri);color:var(--f-pri-ink)}
html.fin-on :is(#s57.fin-scope,#s43.fin-scope,#ctjOv) :is(.a3-btn.p,.dp-go,.cba .cbb.p):not([disabled]):hover{background:var(--f-pri-h);filter:none}
html.fin-on :is(#s57.fin-scope,#s43.fin-scope,#ctjOv) .dp-go[disabled]{background:var(--card2);color:var(--mut);box-shadow:none}
/* décision positive : UN SEUL vert (Valider la lecture, Valider une journée,
   Valider le récap, Valider la journée de la fiche du jour). Plus d'indigo. */
html.fin-on #s57.fin-scope :is(.cp3-go,.a3-btn[onclick^="cpV2Valider"]),
html.fin-on #ctjOv :is(.ctj-acts .a3-btn.v,.a3-btn[onclick^="ctjRecapValider"]),
html.fin-on #cv2F .cvf-btn.red[onclick^="cvfValider"]{background:var(--f-go)!important;border-color:var(--f-go)!important;color:#fff!important}
html.fin-on #s57.fin-scope :is(.cp3-go,.a3-btn[onclick^="cpV2Valider"]):not([disabled]):hover,
html.fin-on #ctjOv :is(.ctj-acts .a3-btn.v,.a3-btn[onclick^="ctjRecapValider"]):not([disabled]):hover,
html.fin-on #cv2F .cvf-btn.red[onclick^="cvfValider"]:not([disabled]):hover{background:var(--f-go-h)!important;border-color:var(--f-go-h)!important}
html.fin-on #s57.fin-scope .cp3-go[disabled]{background:var(--card)!important;border-color:transparent!important;color:var(--mut)!important;box-shadow:inset 0 0 0 1px var(--line)!important}
/* le marine de #ctjOv remplace l'indigo propre à l'écran de journée */
html.fin-on #ctjOv{--cb:var(--f-info);--cbs:var(--f-info-bg)}
html.fin-on.theme-dark #ctjOv .a3-btn.p{background:var(--f-pri);border-color:var(--f-pri);color:#fff}
/* boutons de ligne (tableau Dépenses) : plus hauts, lisibles en sombre */
html.fin-on #s57.fin-scope .dp-acts{gap:5px}
html.fin-on #s57.fin-scope .dp-acts button{min-height:26px;padding:4px 8px;border-radius:8px;background:var(--card);color:var(--ink);border-color:var(--line);transition:background-color .14s var(--f-ease)}
html.fin-on #s57.fin-scope .dp-acts button:hover{background:var(--card2)}
html.fin-on #s57.fin-scope .dp-acts button.q{color:var(--f-warn);border-color:var(--f-warn-line);background:var(--f-warn-bg)}
html.fin-on #s57.fin-scope .dp-acts button[onclick^="dpValider"]{color:var(--f-go);border-color:color-mix(in srgb,var(--f-go) 45%,transparent);background:var(--f-ok-bg)}
/* actions de l'écran de contrôle d'une journée : même famille que le reste */
html.fin-on #ctjOv .ctj-acts .a3-btn{font-size:13.5px;padding:9px 18px;min-height:40px;border-radius:10px}

/* ---------- 3. Focus visible au clavier ---------- */
html.fin-on :is(#s57.fin-scope,#s43.fin-scope,#ctjOv,#cv2F) :is(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline:none;box-shadow:var(--f-focus)!important}

/* ---------- 4. Onglets de vue et segments : cibles de 32 px ---------- */
html.fin-on #s57.fin-scope .e2-vue{border-radius:10px;background:var(--card);box-shadow:var(--f-sh1)}
html.fin-on #s57.fin-scope .e2-vue button{min-height:32px;padding-top:6px;padding-bottom:6px;transition:background-color .14s var(--f-ease),color .14s}
html.fin-on #s57.fin-scope .e2-vue button:not(.on):hover{background:var(--card2);color:var(--ink)}
html.fin-on #s57.fin-scope .e2-vue button.on{background:var(--f-pri);color:#fff}
html.fin-on #s57.fin-scope .cp3-seg{border-radius:10px}
html.fin-on #s57.fin-scope .cp3-seg button{min-height:32px}
html.fin-on #s57.fin-scope :is(.cp3-seg,.ffc-mode) button.on{background:var(--f-pri);color:#fff}
html.fin-on #s43.fin-scope .av2-tab{transition:color .14s,border-color .14s}

/* ---------- 5. Puces et statuts : une palette, cinq tons ---------- */
html.fin-on :is(#s57.fin-scope,#s43.fin-scope,#ctjOv) :is(.e1-chip,.dp-st,.cp3-pill,.ctj-pill,.cm-pill){line-height:1.3}
html.fin-on :is(#s57.fin-scope,#s43.fin-scope) .dp-st{background:var(--f-neu-bg);color:var(--f-neu)}
html.fin-on :is(#s57.fin-scope,#s43.fin-scope) :is(.dp-st.ok,.cp3-pill.ok,.e1-chip.g,.cm-pill.ok){background:var(--f-ok-bg);color:var(--f-ok)}
html.fin-on :is(#s57.fin-scope,#s43.fin-scope) :is(.dp-st.warn,.cp3-pill.warn,.e1-chip.a,.cm-pill.dp,.cm-pill.as){background:var(--f-warn-bg);color:var(--f-warn)}
html.fin-on :is(#s57.fin-scope,#s43.fin-scope) :is(.cp3-pill.err,.e1-chip.r,.cm-pill.dn,.cm-pill.ec){background:var(--f-bad-bg);color:var(--f-bad)}
html.fin-on :is(#s57.fin-scope,#s43.fin-scope) :is(.e1-chip.b,.cm-pill.ex){background:var(--f-info-bg);color:var(--f-info)}
html.fin-on :is(#s57.fin-scope,#s43.fin-scope) .dp-st.ink{background:var(--f-pri);color:#fff}
html.fin-on #s57.fin-scope .cp3-pill{background:var(--f-neu-bg);color:var(--f-neu)}
html.fin-on #ctjOv .ctj-pill.a{background:var(--f-warn-bg);color:var(--f-warn)}
html.fin-on #ctjOv .ctj-pill.b{background:var(--f-info-bg);color:var(--f-info)}
html.fin-on #ctjOv .ctj-pill.g{background:var(--f-ok-bg);color:var(--f-ok)}
html.fin-on #ctjOv .ctj-pill.r{background:var(--f-bad-bg);color:var(--f-bad)}
html.fin-on #cv2F .cvf-pill.ok{background:var(--f-ok-bg);color:var(--f-ok)}
html.fin-on #cv2F .cvf-pill.val{background:var(--f-info-bg);color:var(--f-info)}
html.fin-on #cv2F .cvf-pill.ec{background:var(--f-bad-bg);color:var(--f-bad)}
html.fin-on #cv2F .cvf-pill.at{background:var(--f-warn-bg);color:var(--f-warn)}
/* Fiche refonte (flag caisse_refonte_fiche) : « Journée validée » en VERT de
   validation, pas le bleu info (règle owner « un seul vert = validé », 11/10).
   Spécificité (1,4,2) > la règle fin-on ci-dessus (1,3,1), les deux thèmes via
   les variables --f-ok / --f-ok-bg. L'en-tête de la fiche s'aligne ainsi sur la
   pastille verte de la carte et de la vue du mois. */
html.fin-on body.cvf-refonte #cv2F .cvf-pill.val{background:var(--f-ok-bg);color:var(--f-ok)}
/* Fiche refonte (11/10, défaut 1) : « Banque en attente » = pastille GRISE même
   sous la finition (un seul libellé + une seule couleur, cohérent avec la carte
   et la vue du mois). Sans ça, la règle fin-on (1,2,0) repassait l'en-tête en
   ambre « Pièce ou dépôt en attente ». Spécificité (1,3,1) > (1,2,0). Une vraie
   pièce manquante garde sa pastille ambre (.pm, non reprise ici). */
html.fin-on body.cvf-refonte #cv2F .cvf-pill.at{background:var(--card2);color:var(--mut)}
/* textes orange posés en ligne (exclue, à supprimer...) : jaune d'avertissement */
html.fin-on #s57.fin-scope .dp-tbl [style*="#b45309"]{color:var(--f-warn)!important}

/* Puces de FILTRE (file, Dépenses) : neutres, la couleur passe sur un point.
   14 pastilles de 5 couleurs deviennent une rangée calme ; le signal reste. */
html.fin-on #s57.fin-scope :is(.e2-filters,.dp-chips) .e1-chip{
  background:var(--card); color:var(--txt); border:1px solid var(--line); padding:2px 9px 2px 8px; gap:5px; min-height:24px;
  transition:background-color .14s var(--f-ease),border-color .14s; font-weight:600
}
html.fin-on #s57.fin-scope :is(.e2-filters,.dp-chips) .e1-chip::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--line);flex:none}
html.fin-on #s57.fin-scope :is(.e2-filters,.dp-chips) .e1-chip.a::before{background:#c9a227}
html.fin-on #s57.fin-scope :is(.e2-filters,.dp-chips) .e1-chip.g::before{background:var(--f-ok)}
html.fin-on #s57.fin-scope :is(.e2-filters,.dp-chips) .e1-chip.b::before{background:var(--f-info)}
html.fin-on #s57.fin-scope :is(.e2-filters,.dp-chips) .e1-chip.r::before{background:var(--f-bad)}
html.fin-on #s57.fin-scope :is(.e2-filters,.dp-chips) .e1-chip:hover{background:var(--card2)}
html.fin-on #s57.fin-scope :is(.e2-filters,.dp-chips) .e1-chip.on{background:var(--f-pri);border-color:var(--f-pri);color:#fff}
html.fin-on #s57.fin-scope :is(.e2-filters,.dp-chips) .e1-chip.on::before{background:#fff}

/* ---------- 6. Blocs : mêmes rayons, même ombre légère ---------- */
html.fin-on #s57.fin-scope :is(.e2-queue,.cp3-fiche,.cp3-top,.dp-bar,.dp-card,.dp-panel){border-radius:var(--f-r2);box-shadow:var(--f-sh1);border-color:var(--line)}
html.fin-on #s57.fin-scope .e2-detail>div>.a3-card,html.fin-on #s57.fin-scope .e2-detail .a3-run{border-radius:var(--f-r3)}
html.fin-on #ctjOv .ctj-card{border-radius:var(--f-r2);box-shadow:var(--f-sh1)}
html.fin-on #s43.fin-scope :is(.av2-kpi,.av2-curbox){border-radius:var(--f-r2)}
html.fin-on #s43.fin-scope .cba :is(.sec,.kpi){border-radius:var(--f-r3);box-shadow:var(--f-sh1)}
html.fin-on #cv2F :is(.cvf-head,.cvf-card){box-shadow:var(--f-sh1)}

/* ---------- 7. Titres de rubrique : une seule forme ---------- */
html.fin-on :is(#s57.fin-scope,#s43.fin-scope,#ctjOv) :is(.cp3-h4,.ctj-grp,.ctj-eb,.cba .kpi .l,.av2-kpi .l){font-size:11px;letter-spacing:.08em;font-weight:700;color:var(--mut)}
html.fin-on #s57.fin-scope .e2-head .ttl{letter-spacing:-.01em}

/* ---------- 8. File de contrôle (factures) : cartes plus calmes ---------- */
html.fin-on #s57.fin-scope .e2-qrow{transition:background-color .12s var(--f-ease)}
html.fin-on #s57.fin-scope .e2-qrow.on{box-shadow:inset 3px 0 0 var(--f-pri)}
html.fin-on.theme-dark #s57.fin-scope .e2-qrow.on{box-shadow:inset 3px 0 0 #7fb6f5}
html.fin-on #s57.fin-scope .e2-qrow .e2-qm{font-weight:500;color:var(--mut)}
html.fin-on #s57.fin-scope .cp-miss{border-radius:999px}

/* Étapes 1 à 5 de la fiche facture */
html.fin-on #s57.fin-scope .ff-tab{border-radius:10px;transition:background-color .14s,border-color .14s}
html.fin-on #s57.fin-scope .ff-tab .num{background:var(--card);color:var(--ink);border-color:var(--line)}
html.fin-on.theme-dark #s57.fin-scope .ff-tab .num{background:#24485a;color:#eaf3f7;border-color:#3a6276}
html.fin-on #s57.fin-scope :is(.ff-tab.ok,.ff-tab.na){background:var(--f-ok-bg);border-color:color-mix(in srgb,var(--f-ok) 55%,transparent);color:var(--f-ok)}
html.fin-on #s57.fin-scope :is(.ff-tab.ok,.ff-tab.na) .num{background:var(--f-ok);color:#fff;border-color:var(--f-ok)}
html.fin-on.theme-dark #s57.fin-scope :is(.ff-tab.ok,.ff-tab.na) .num{color:#0f2530}
html.fin-on #s57.fin-scope .ff-tab.wait{background:var(--f-warn-bg);border-color:var(--f-warn-line);color:var(--f-warn)}
html.fin-on #s57.fin-scope .ff-tab.wait .num{background:#c9a227;color:#1f1a05;border-color:#c9a227}
html.fin-on #s57.fin-scope .ff-tab.err{background:var(--f-bad-bg);border-color:color-mix(in srgb,var(--f-bad) 55%,transparent);color:var(--f-bad)}
html.fin-on #s57.fin-scope .ff-tab.cur{box-shadow:0 0 0 2px var(--f-pri) inset}
html.fin-on.theme-dark #s57.fin-scope .ff-tab.cur{box-shadow:0 0 0 2px #7fb6f5 inset}
html.fin-on #s57.fin-scope .ff-tabhead .num{background:var(--f-pri);color:#fff}
html.fin-on #s57.fin-scope .cp3-foot{background:var(--card2)}
html.fin-on #s57.fin-scope .cp3-fiche :is(input,select){border-radius:8px;transition:border-color .14s,box-shadow .14s}
html.fin-on #s57.fin-scope .cp3-fld .inp.miss{background:var(--f-warn-bg);border-color:#c9a227}

/* ---------- 9. Tableaux : Dépenses et virements, Suivi des dépenses ---------- */
html.fin-on #s57.fin-scope .dp-tbl th{background:var(--card2);z-index:2}
html.fin-on #s57.fin-scope .dp-tbl tbody tr{transition:background-color .12s}
html.fin-on #s57.fin-scope .dp-tbl tbody tr:hover td{background:color-mix(in srgb,var(--card2) 70%,transparent)}
/* Suivi : en-tête collant sous le bandeau du haut, survol de ligne */
html.fin-on #s57.fin-scope #svTbl>div,html.fin-on #s57.fin-scope #svBody>.e1-card{overflow:visible!important}
html.fin-on #s57.fin-scope #svTbl .dpp-tbl th{position:sticky;top:var(--topdock,0px);z-index:2;background:var(--card2);color:var(--mut);letter-spacing:.06em;font-weight:700;box-shadow:0 1px 0 var(--line)}
html.fin-on #s57.fin-scope #svTbl .dpp-tbl tbody tr{transition:background-color .12s}
html.fin-on #s57.fin-scope #svTbl .dpp-tbl tbody tr:hover td{background:var(--card2)}

/* ---------- 10. Encarts d'information : une forme, le ton en liseré ---------- */
/* liseré dessiné en ombre intérieure : aucune largeur ne change (pas de retour à la ligne) */
html.fin-on #ctjOv .ctj-al{--f-lis:#c9a227;background:var(--card);border-color:var(--line);box-shadow:inset 3px 0 0 var(--f-lis),var(--f-sh1)}
html.fin-on #ctjOv .ctj-al.b{--f-lis:var(--f-info)}
html.fin-on #ctjOv .ctj-al.g{--f-lis:var(--f-ok)}
html.fin-on #ctjOv .ctj-al.r{--f-lis:var(--f-bad);background:var(--f-bad-bg)}
html.fin-on #s43.fin-scope .cba .gate{background:var(--card);border-color:var(--line);box-shadow:inset 3px 0 0 #c9a227,var(--f-sh1)}

/* ---------- 11. Contrôle d'une journée (Benelyon) ---------- */
html.fin-on #ctjOv .ctj-top{box-shadow:var(--f-sh1);position:relative;z-index:2}
html.fin-on #ctjOv .ctj-tabs button{min-height:32px;transition:background-color .14s,color .14s}
html.fin-on #ctjOv .ctj-tabs button:not(.on):hover{color:var(--ink)}
html.fin-on #ctjOv .ctj-tabs i{background:var(--f-pri);color:#fff}
html.fin-on #ctjOv .ctj-it{transition:background-color .12s}
html.fin-on #ctjOv .ctj-it.on{background:var(--sel);border-left-color:var(--f-pri)}
html.fin-on #ctjOv .ctj-it.on b{color:var(--ink)}
html.fin-on.theme-dark #ctjOv .ctj-it.on{border-left-color:#7fb6f5}
html.fin-on #ctjOv .ctj-viewer{border-radius:var(--f-r3);box-shadow:var(--f-sh2)}
html.fin-on #ctjOv .ctj-vt button{min-height:32px;transition:background-color .14s}
html.fin-on #ctjOv .ctj-vt button:not(.on):hover{background:rgba(255,255,255,.08)}
html.fin-on #ctjOv .ctj-in{border-radius:8px;min-height:34px;transition:border-color .14s,box-shadow .14s}
html.fin-on #ctjOv .ctj-in.ec{border-color:#c9a227;background:var(--f-warn-bg)}
html.fin-on #ctjOv .ctj-ec{color:var(--f-warn)}
html.fin-on #ctjOv .ctj-ok{color:var(--f-ok)}
html.fin-on #ctjOv .ctj-tbl tbody tr.lnk{transition:background-color .12s}

/* ---------- 12. Accès des boutiques (Benelyon) ---------- */
html.fin-on #s43.fin-scope .cba table.cba-t th{position:sticky;top:var(--topdock,0px);background:var(--card);z-index:2;box-shadow:0 1px 0 var(--line)}
html.fin-on #s43.fin-scope .cba table.cba-t tbody tr{transition:background-color .12s}
html.fin-on #s43.fin-scope .cba table.cba-t tbody tr:hover td{background:var(--card2)}
html.fin-on #s43.fin-scope .cba .cba-chip{transition:background-color .14s,border-color .14s}
html.fin-on #s43.fin-scope .cba .cba-chip:not(.on):hover{background:var(--card2)}
html.fin-on #s43.fin-scope .cba{--ca:var(--f-warn);--cas:var(--f-warn-bg)}

/* ---------- 13. Vue du mois (caisse) ---------- */
html.fin-on #s57.fin-scope #cmGrid tbody tr{transition:background-color .12s}
/* boutique sélectionnée : marine (le rouge reste réservé au danger) */
html.fin-on #s57.fin-scope #cmRoot .cm-tab{transition:background-color .14s,border-color .14s}
html.fin-on #s57.fin-scope #cmRoot .cm-tab.on{background:var(--f-pri);border-color:var(--f-pri);color:#fff}
html.fin-on #s57.fin-scope #cmRoot :is(.cm-card,.cm-kpi){box-shadow:var(--f-sh1)}

/* ---------- 14. Boutons flottants compactés sur ces écrans ---------- */
/* On ne rétrécit pas le contenu (ce serait des retours à la ligne partout) :
   sur ces écrans seulement, les trois ronds passent de 52-56 px à 36 px, collés
   au bord ; ils ne recouvrent plus que la marge des cartes. */
html.fin-on body:has(#s57.fin-scope.on,#s43.fin-scope.on,#ctjOv,#cv2F:not([style*="none"])) :is(.asst-fab,.chat-fab,.sfp-fab){width:36px!important;height:36px!important;right:2px!important;opacity:.92;box-shadow:0 4px 12px rgba(0,0,0,.18)!important}
html.fin-on body:has(#s57.fin-scope.on,#s43.fin-scope.on,#ctjOv,#cv2F:not([style*="none"])) .asst-fab{bottom:10px!important;font-size:16px}
html.fin-on body:has(#s57.fin-scope.on,#s43.fin-scope.on,#ctjOv,#cv2F:not([style*="none"])) .chat-fab{bottom:52px!important}
html.fin-on body:has(#s57.fin-scope.on,#s43.fin-scope.on,#ctjOv,#cv2F:not([style*="none"])) .sfp-fab{bottom:94px!important}
html.fin-on body:has(#s57.fin-scope.on,#s43.fin-scope.on,#ctjOv,#cv2F:not([style*="none"])) :is(.asst-fab,.chat-fab,.sfp-fab) svg{width:17px;height:17px}
html.fin-on body:has(#s57.fin-scope.on,#s43.fin-scope.on,#ctjOv,#cv2F:not([style*="none"])) :is(.asst-fab,.chat-fab,.sfp-fab):hover{opacity:1}

/* ---------- 15. Mouvement : court, et coupé si l'utilisateur le demande ---------- */
@media (prefers-reduced-motion:reduce){
  html.fin-on :is(#s57.fin-scope,#s43.fin-scope,#ctjOv,#cv2F) *{transition:none!important;animation:none!important}
}

/* ==========================================================================
   REFONTE DES DEPENSES MARMELADZ (drapeau depenses_refonte, 11/10/2026)
   Ergonomie de la caisse Benelyon portee a l'automatisme Factures fournisseurs,
   SANS changer les fonctionnalites : en-tete compact, tuiles, pastilles de
   filtre, tableaux aeres, un seul vert de validation, ambre a faire, gris en
   attente, bleu dans le fichier, rouge vrai blocage. Tout est scope sous
   #s57.dref-scope (pose par _drefSync) ; le mode sombre bascule par variables.
   Classes prefixees dref- pour ne jamais entrer en collision avec le Desk.
   ========================================================================== */
#s57.dref-scope{
  --dr-ok:#18794e; --dr-ok-bg:rgba(24,121,78,.10); --dr-ok-line:rgba(24,121,78,.28);
  --dr-warn:#8a5a00; --dr-warn-bg:rgba(138,90,0,.10); --dr-warn-line:rgba(138,90,0,.30);
  --dr-info:#0b62c4; --dr-info-bg:rgba(11,98,196,.10); --dr-info-line:rgba(11,98,196,.28);
  --dr-bad:#b42332; --dr-bad-bg:rgba(180,35,50,.10); --dr-bad-line:rgba(180,35,50,.30);
  --dr-neu:#51626c; --dr-neu-bg:var(--card2); --dr-neu-line:var(--line);
  --dr-pri:var(--ink); --dr-go:#18794e; --dr-go-h:#14683f;
  --dr-r1:8px; --dr-r2:12px; --dr-r3:16px;
  --dr-sh1:0 1px 2px rgba(16,40,52,.06),0 1px 3px rgba(16,40,52,.05);
  --dr-sh2:0 6px 18px rgba(16,40,52,.10);
}
html.theme-dark #s57.dref-scope{
  --dr-ok:#8ce0b4; --dr-ok-bg:rgba(63,185,80,.14); --dr-ok-line:rgba(63,185,80,.30);
  --dr-warn:#f2c94c; --dr-warn-bg:rgba(242,201,76,.12); --dr-warn-line:rgba(242,201,76,.30);
  --dr-info:#9cc7f8; --dr-info-bg:rgba(156,199,248,.12); --dr-info-line:rgba(156,199,248,.30);
  --dr-bad:#ff9aa5; --dr-bad-bg:rgba(255,154,165,.12); --dr-bad-line:rgba(255,154,165,.30);
  --dr-neu:#a9bcc6; --dr-pri:#2b5a70; --dr-go:#2f9e6a; --dr-go-h:#36b079;
  --dr-sh1:0 1px 2px rgba(0,0,0,.30); --dr-sh2:0 8px 22px rgba(0,0,0,.35);
}
#s57.dref-scope .dref{min-width:0}
/* suivi et parametrage : corps existant habille ; tableaux larges en defilement
   INTERNE (jamais la page) pour rester propres sur mobile 390. */
#s57.dref-scope #svBody,#s57.dref-scope #pmBody{max-width:100%;overflow-x:auto}
#s57.dref-scope .dref-crumb{font-size:11.5px;color:var(--mut);font-weight:600;margin-bottom:8px}
#s57.dref-scope .dref-crumb b{color:var(--ink)}
#s57.dref-scope .dref-crumb a{color:var(--mut);cursor:pointer}
#s57.dref-scope .dref-crumb a:hover{color:var(--ink);text-decoration:underline}
#s57.dref-scope .dref-hbar{display:flex;align-items:flex-start;gap:18px;flex-wrap:wrap}
#s57.dref-scope .dref-htitle{display:flex;flex-direction:column;gap:9px;min-width:0}
#s57.dref-scope .dref-t1{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
#s57.dref-scope .dref-t1 h1{margin:0;font-size:21px;font-weight:800;color:var(--ink);letter-spacing:.2px}
#s57.dref-scope .dref-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11.5px;color:var(--mut)}
#s57.dref-scope .dref-pz{font-weight:700;border-radius:999px;padding:2px 9px;font-size:11px}
#s57.dref-scope .dref-pz.ok{background:var(--dr-ok-bg);color:var(--dr-ok);border:1px solid var(--dr-ok-line)}
#s57.dref-scope .dref-pz.att{background:var(--dr-warn-bg);color:var(--dr-warn);border:1px solid var(--dr-warn-line)}
#s57.dref-scope .dref-vtabs{display:inline-flex;gap:3px;background:var(--card2);border:1px solid var(--line);border-radius:999px;padding:3px;box-shadow:var(--dr-sh1);flex-wrap:wrap}
#s57.dref-scope .dref-vtab{font:inherit;font-size:12.5px;font-weight:700;color:var(--mut);background:transparent;border:0;border-radius:999px;padding:7px 13px;cursor:pointer;white-space:nowrap}
#s57.dref-scope .dref-vtab:hover{color:var(--ink)}
#s57.dref-scope .dref-vtab.on{background:var(--card);color:var(--ink);box-shadow:var(--dr-sh1)}
#s57.dref-scope .dref-hacts{margin-left:auto;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
#s57.dref-scope .dref-btn{font:inherit;font-weight:700;font-size:13.5px;border-radius:10px;padding:10px 15px;border:1px solid var(--line);background:var(--card);color:var(--txt);cursor:pointer;box-shadow:var(--dr-sh1);display:inline-flex;align-items:center;gap:8px}
#s57.dref-scope .dref-btn:hover{background:var(--card2)}
#s57.dref-scope .dref-btn.primary{background:var(--dr-go);border-color:var(--dr-go);color:#fff;font-size:14px;padding:11px 18px}
#s57.dref-scope .dref-btn.primary:hover{background:var(--dr-go-h)}
#s57.dref-scope .dref-btn .n{background:rgba(255,255,255,.22);border-radius:999px;padding:1px 9px;font-weight:800;font-size:13px}
#s57.dref-scope .dref-btn.secondary .n{background:var(--card2);color:var(--mut)}
#s57.dref-scope .dref-ico{width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--mut);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--dr-sh1)}
#s57.dref-scope .dref-ico:hover{background:var(--card2);color:var(--ink)}
#s57.dref-scope .dref-more{position:relative}
#s57.dref-scope .dref-more .menu{position:absolute;right:0;top:calc(100% + 6px);z-index:40;background:var(--card);border:1px solid var(--line);border-radius:var(--dr-r2);box-shadow:var(--dr-sh2);padding:6px;min-width:230px;display:none}
#s57.dref-scope .dref-more.open .menu{display:block}
#s57.dref-scope .dref-more .mi{padding:9px 11px;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;color:var(--txt)}
#s57.dref-scope .dref-more .mi:hover{background:var(--card2)}
#s57.dref-scope .dref-more .sep{height:1px;background:var(--line);margin:5px 4px}
/* tuiles */
#s57.dref-scope .dref-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0 14px}
#s57.dref-scope .dref-kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--dr-r2);padding:13px 15px;box-shadow:var(--dr-sh1);position:relative;overflow:hidden}
#s57.dref-scope .dref-kpi .kl{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--mut)}
#s57.dref-scope .dref-kpi .kv{font-size:25px;font-weight:800;color:var(--ink);margin-top:3px;line-height:1.05;font-variant-numeric:tabular-nums}
#s57.dref-scope .dref-kpi .ks{font-size:11.5px;color:var(--mut);margin-top:4px}
#s57.dref-scope .dref-kpi .bar{position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--line)}
#s57.dref-scope .dref-kpi.accent{background:linear-gradient(180deg,var(--dr-warn-bg),var(--card));border-color:var(--dr-warn-line)}
#s57.dref-scope .dref-kpi.accent .kv{color:var(--dr-warn)} #s57.dref-scope .dref-kpi.accent .bar{background:var(--dr-warn)}
#s57.dref-scope .dref-kpi.good .bar{background:var(--dr-ok)} #s57.dref-scope .dref-kpi.info .bar{background:var(--dr-info)}
/* filtres */
#s57.dref-scope .dref-toolrow{display:flex;align-items:center;gap:10px;margin:4px 0 12px;flex-wrap:wrap}
#s57.dref-scope .dref-chips{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
#s57.dref-scope .dref-chip{font:inherit;font-size:12.5px;font-weight:600;color:var(--mut);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:7px 13px;cursor:pointer;display:inline-flex;gap:7px;align-items:center}
#s57.dref-scope .dref-chip .c{font-weight:800;font-size:11px;background:var(--card2);border-radius:999px;padding:0 6px;color:var(--mut)}
#s57.dref-scope .dref-chip:hover{background:var(--card2)}
#s57.dref-scope .dref-chip.on{background:var(--dr-pri);color:#fff;border-color:var(--dr-pri)} #s57.dref-scope .dref-chip.on .c{background:rgba(255,255,255,.2);color:#fff}
#s57.dref-scope .dref-chip.more{border-style:dashed;color:var(--mut)}
#s57.dref-scope .dref-search{margin-left:auto;display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 12px;color:var(--mut);min-width:230px;box-shadow:var(--dr-sh1)}
#s57.dref-scope .dref-search input{border:0;background:transparent;font:inherit;font-size:13px;color:var(--txt);outline:0;width:100%}
#s57.dref-scope .dref-morefilt{display:none;gap:7px;flex-wrap:wrap;margin:0 0 12px}
#s57.dref-scope .dref-morefilt.open{display:flex}
#s57.dref-scope .dref-sumline{font-size:11.5px;color:var(--mut);padding:0 2px 8px}
#s57.dref-scope .dref-sumline b{color:var(--ink)}
/* tableau */
#s57.dref-scope .dref-tablecard{background:var(--card);border:1px solid var(--line);border-radius:var(--dr-r2);box-shadow:var(--dr-sh1);overflow:hidden}
#s57.dref-scope .dref-matrix{overflow:visible}
#s57.dref-scope table.dref-cm{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}
#s57.dref-scope table.dref-cm thead th{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--mut);text-align:right;padding:11px 12px;background:var(--card2);border-bottom:1px solid var(--line);white-space:nowrap}
#s57.dref-scope table.dref-cm thead th.l{text-align:left}
#s57.dref-scope .dref-subh td{font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--mut);background:var(--card2);padding:7px 12px;border-bottom:1px solid var(--line);white-space:normal}
#s57.dref-scope .dref-subh td .sc{font-weight:800;color:var(--ink)}
#s57.dref-scope table.dref-cm tbody td{padding:11px 12px;text-align:right;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:break-word}
#s57.dref-scope table.dref-cm tbody td.l{text-align:left}
#s57.dref-scope table.dref-cm.dense tbody td{padding:9px 10px;font-size:12.5px}
#s57.dref-scope table.dref-cm tbody tr.row{cursor:pointer}
#s57.dref-scope table.dref-cm tbody tr.row:hover td{background:var(--card2)}
#s57.dref-scope .dref-fcell{display:flex;flex-direction:column;gap:2px}
#s57.dref-scope .dref-fcell .fn{font-weight:700;color:var(--ink);line-height:1.25}
#s57.dref-scope .dref-fcell .fs{font-size:11px;color:var(--mut)}
#s57.dref-scope .dref-ttc{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
#s57.dref-scope .dref-valmut{color:var(--mut)}
#s57.dref-scope .dref-cx{display:inline-block;background:var(--card2);border:1px solid var(--line);border-radius:7px;padding:1px 7px;font-size:11px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#s57.dref-scope .dref-st{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;border-radius:999px;padding:4px 10px;border:1px solid transparent;white-space:nowrap}
#s57.dref-scope table.dref-cm.dense .dref-st{white-space:normal;max-width:100%}
#s57.dref-scope table.dref-cm.dense tbody td{overflow-wrap:anywhere}
#s57.dref-scope .dref-st .dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex:0 0 auto}
#s57.dref-scope .dref-st.ok{background:var(--dr-ok-bg);color:var(--dr-ok);border-color:var(--dr-ok-line)}
#s57.dref-scope .dref-st.warn{background:var(--dr-warn-bg);color:var(--dr-warn);border-color:var(--dr-warn-line)}
#s57.dref-scope .dref-st.neu{background:var(--dr-neu-bg);color:var(--dr-neu);border-color:var(--dr-neu-line)}
#s57.dref-scope .dref-st.info{background:var(--dr-info-bg);color:var(--dr-info);border-color:var(--dr-info-line)}
#s57.dref-scope .dref-st.bad{background:var(--dr-bad-bg);color:var(--dr-bad);border-color:var(--dr-bad-line)}
#s57.dref-scope .dref-penny{font-size:11px;font-weight:700;border-radius:999px;padding:2px 8px}
#s57.dref-scope .dref-penny.oui{background:var(--dr-info-bg);color:var(--dr-info);border:1px solid var(--dr-info-line)}
#s57.dref-scope .dref-penny.non{background:var(--dr-neu-bg);color:var(--mut);border:1px solid var(--dr-neu-line)}
#s57.dref-scope .dref-rowacts{display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-end}
#s57.dref-scope .dref-rowbtn{font:inherit;font-size:11px;font-weight:600;border:1px solid var(--line);background:var(--card);color:var(--txt);border-radius:8px;padding:5px 8px;cursor:pointer;white-space:nowrap}
#s57.dref-scope .dref-rowbtn:hover{background:var(--card2)}
#s57.dref-scope .dref-rowbtn.go{border-color:var(--dr-ok-line);background:var(--dr-ok-bg);color:var(--dr-ok)}
#s57.dref-scope .dref-cbx{width:19px;height:19px;border-radius:6px;border:2px solid var(--line);display:inline-flex;align-items:center;justify-content:center;color:#fff;vertical-align:middle}
#s57.dref-scope .dref-cbx.on{background:var(--dr-go);border-color:var(--dr-go)}
#s57.dref-scope .dref-man{color:var(--dr-warn);font-weight:700;font-size:12px}
#s57.dref-scope .dref-okl{color:var(--dr-ok);font-weight:700;font-size:12px}
#s57.dref-scope .dref-lk{color:var(--dr-info);font-weight:700;font-size:12px;cursor:pointer}
#s57.dref-scope .dref-hint{font-size:11.5px;color:var(--mut);padding:10px 14px;line-height:1.4}
#s57.dref-scope .dref-intl{font-size:11px;font-weight:700;border-radius:999px;padding:2px 8px;background:var(--dr-bad-bg);color:var(--dr-bad);border:1px solid var(--dr-bad-line)}
/* section repliable */
#s57.dref-scope .dref-sec{margin-top:14px;background:var(--card);border:1px solid var(--line);border-radius:var(--dr-r2);box-shadow:var(--dr-sh1);overflow:hidden}
#s57.dref-scope .dref-sec>summary{list-style:none;cursor:pointer;padding:13px 16px;display:flex;align-items:center;gap:12px;font-weight:700;font-size:13.5px;color:var(--ink)}
#s57.dref-scope .dref-sec>summary::-webkit-details-marker{display:none}
#s57.dref-scope .dref-sec>summary .ssub{font-weight:500;color:var(--mut);font-size:12px}
#s57.dref-scope .dref-sec>summary .stag{margin-left:auto;font-size:11px;font-weight:700;border-radius:999px;padding:2px 9px;background:var(--dr-neu-bg);color:var(--mut);border:1px solid var(--dr-neu-line)}
#s57.dref-scope .dref-sec .body{padding:2px 16px 16px;font-size:13px}
/* modale */
#s57.dref-scope .dref-modal{position:fixed;inset:0;z-index:9500;display:none;align-items:center;justify-content:center;padding:24px}
#s57.dref-scope .dref-modal.on{display:flex}
#s57.dref-scope .dref-modal .scrim{position:absolute;inset:0;background:rgba(10,24,32,.5)}
#s57.dref-scope .dref-modal .box{position:relative;width:720px;max-width:100%;max-height:86vh;background:var(--card);border:1px solid var(--line);border-radius:var(--dr-r3);box-shadow:var(--dr-sh2);display:flex;flex-direction:column;overflow:hidden}
#s57.dref-scope .dref-modal .mhd{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;gap:12px}
#s57.dref-scope .dref-modal .mhd h3{margin:0;font-size:16px;font-weight:800;color:var(--ink)}
#s57.dref-scope .dref-modal .mhd .ms{font-size:12px;color:var(--mut);margin-top:3px;line-height:1.4}
#s57.dref-scope .dref-modal .mhd .x{margin-left:auto;width:34px;height:34px;border:1px solid var(--line);background:var(--card);border-radius:9px;cursor:pointer;color:var(--mut);flex:0 0 auto}
#s57.dref-scope .dref-modal .mbd{overflow:auto;padding:6px 0}
#s57.dref-scope .dref-modal .mtools{display:flex;gap:10px;padding:8px 18px;border-bottom:1px solid var(--line);font-size:12px}
#s57.dref-scope .dref-modal .mtools button{font:inherit;font-size:12px;font-weight:600;color:var(--dr-info);background:transparent;border:0;cursor:pointer}
#s57.dref-scope .dref-modal .mft{padding:13px 18px;border-top:1px solid var(--line);display:flex;align-items:center;gap:12px;background:var(--card2);flex-wrap:wrap}
#s57.dref-scope .dref-modal .mft .cnt{font-size:13px;color:var(--mut);font-weight:600}
#s57.dref-scope .dref-modal .sp{flex:1}
#s57.dref-scope .dref-rwk{font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--mut);padding:10px 18px 4px;background:var(--card2);display:flex;justify-content:space-between}
#s57.dref-scope .dref-rrow{display:flex;align-items:center;gap:12px;padding:11px 18px;border-bottom:1px solid var(--line)}
#s57.dref-scope .dref-rrow .rl{min-width:0;flex:1}
#s57.dref-scope .dref-rrow .rb{font-weight:700;color:var(--ink);font-size:13.5px}
#s57.dref-scope .dref-rrow .rj{font-size:11.5px;color:var(--mut)}
#s57.dref-scope .dref-rrow .rm{font-variant-numeric:tabular-nums;font-weight:700;color:var(--txt);font-size:13.5px;white-space:nowrap}
#s57.dref-scope .dref-grp{padding:12px 18px;border-bottom:1px solid var(--line)}
#s57.dref-scope .dref-grp .gh{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}
#s57.dref-scope .dref-grp .gn{font-weight:800;color:var(--ink);font-size:14px}
#s57.dref-scope .dref-grp .gc{font-size:12px;color:var(--mut)}
#s57.dref-scope .dref-grp .gb{margin-left:auto}
#s57.dref-scope .dref-grp .gl{font-size:12px;color:var(--mut);line-height:1.5}
#s57.dref-scope .dref-apercu{margin-top:8px;border:1px solid var(--line);border-radius:var(--dr-r2);background:var(--card2);padding:10px 12px;font-size:12px;color:var(--txt);line-height:1.5}
#s57.dref-scope .dref-ta{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font:inherit;font-size:13px;background:var(--card);color:var(--txt);resize:vertical;min-height:70px;margin-top:6px}
/* reskin de la fiche existante (controle v2) : stepper facon maquette */
#s57.dref-scope .ff-tabs{gap:6px;flex-wrap:wrap}
#s57.dref-scope .ff-tab{border-radius:999px!important}
#s57.dref-scope .ff-tab.cur,#s57.dref-scope .ff-tab.on{box-shadow:inset 0 0 0 1px var(--dr-pri)}
/* mobile : les tuiles en 2 colonnes, le tableau en cartes, pas de debordement */
@media (max-width:1100px){
  #s57.dref-scope .dref-kpis{grid-template-columns:1fr 1fr}
  #s57.dref-scope .dref-search{min-width:0;flex:1 1 160px;margin-left:0}
}
@media (max-width:760px){
  #s57.dref-scope .dref-hacts{margin-left:0;width:100%}
  #s57.dref-scope .dref-vtabs{width:100%;overflow:auto}
  #s57.dref-scope table.dref-cm,#s57.dref-scope table.dref-cm thead,#s57.dref-scope table.dref-cm tbody,#s57.dref-scope table.dref-cm tr,#s57.dref-scope table.dref-cm td{display:block;width:auto}
  #s57.dref-scope table.dref-cm thead{display:none}
  #s57.dref-scope table.dref-cm tbody tr.row{border:1px solid var(--line);border-radius:var(--dr-r2);margin:0 0 9px;padding:4px 2px;background:var(--card)}
  #s57.dref-scope table.dref-cm tbody tr.dref-subh{border:0;background:transparent;margin:10px 0 2px}
  #s57.dref-scope table.dref-cm tbody td{text-align:left;border:0;padding:4px 12px}
  #s57.dref-scope .dref-rowacts{justify-content:flex-start}
}
