/* ══════════════════════════════════════════════════════════════════════════
   Madal ERP — Interface Financement partagée (M5 Distribution + M12 Comptabilité)
   Charte M12 (comptabilité), confinée sous .finui : les variables et règles
   ci-dessous ne s'appliquent qu'aux écrans et fenêtres de ce module, quelle
   que soit la feuille de style de la page hôte.
   ══════════════════════════════════════════════════════════════════════════ */
.finui {
  --vert:   #0A3D1F; --vert2: #1A6B38; --vert3: #22C55E; --vert4: #EDF7F3;
  --or:     #C9A84C; --or2:   #FBF3DC; --or3: #8B6914;
  --rouge:  #C0392B; --rouge2:#FDECEA;
  --bleu:   #1A4A7A; --bleu2: #E8F0FB;
  --bg:     #F4F2ED; --bg2: #FAFAF7; --card:  #FFFFFF; --txt: #111111;
  --muted:  #6B6B5A; --border:#DDD9D0; --border2:#C8C4BB;
  font-family: 'Segoe UI', system-ui, sans-serif;
  font-size: 13px; line-height: 1.4; color: var(--txt);
}
.finui *, .finui *::before, .finui *::after { box-sizing: border-box; }

/* ── En-tête de page ─────────────────────────────── */
.finui .fin-ph{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap;
  margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--border);}
.finui .fin-pt{font-size:18px;font-weight:700;color:var(--txt);}
.finui .fin-ps{font-size:11px;color:var(--muted);margin-top:2px;}
.finui .fin-pa{display:flex;gap:6px;flex-wrap:wrap;align-items:center;}

/* ── Boutons ─────────────────────────────────────── */
.finui .fin-btn{display:inline-block;padding:6px 14px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;
  border:1px solid var(--border);background:var(--card);color:var(--txt);line-height:1.4;height:auto;
  transition:all .15s;font-family:inherit;white-space:nowrap;text-transform:none;box-shadow:none;}
.finui .fin-btn:hover{background:var(--bg);}
.finui .fin-btn:focus-visible{outline:2px solid var(--vert2);outline-offset:1px;}
.finui .fin-btn-p{background:var(--vert);color:#fff;border-color:var(--vert);}
.finui .fin-btn-p:hover{background:var(--vert2);}
.finui .fin-btn-danger{background:var(--rouge2);color:var(--rouge);border-color:var(--rouge);}
.finui .fin-btn-sm{padding:4px 10px;font-size:11px;}
.finui .fin-btn:disabled{opacity:.45;cursor:not-allowed;}

/* ── Cartes, indicateurs ─────────────────────────── */
.finui .fin-card{background:var(--card);border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-bottom:14px;padding:0;box-shadow:none;}
.finui .fin-ct{font-size:11px;font-weight:600;color:var(--muted);padding:8px 14px;
  background:var(--bg);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:6px;}
.finui .fin-pip{width:7px;height:7px;border-radius:50%;background:var(--vert3);display:inline-block;flex:none;}
.finui .fin-kpi-grid{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;}
.finui .fin-kpi-card{background:var(--card);border:1px solid var(--border);border-radius:7px;padding:10px 14px;min-width:130px;flex:1;}
.finui .fin-kpi-label{font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;margin-bottom:4px;}
.finui .fin-kpi-val{font-size:15px;font-weight:700;font-family:monospace;}

/* ── Tableaux (neutralise les styles de tableau de la page hôte) ── */
.finui .fin-tw{overflow-x:auto;}
.finui table{border-collapse:collapse;width:100%;font-size:12px;table-layout:auto;margin:0;}
.finui th{background:var(--vert);color:#fff;padding:7px 10px;font-weight:500;font-size:11px;text-align:left;
  white-space:nowrap;border:none;border-right:1px solid rgba(255,255,255,.08);text-transform:none;letter-spacing:normal;}
.finui th:last-child{border-right:none;}
.finui td{padding:6px 10px;border-bottom:1px solid var(--border);vertical-align:middle;font-size:12px;color:var(--txt);}
.finui tr:hover td{background:#FAFAF7;}
.finui tr:last-child td{border-bottom:none;}
.finui .fin-mono{font-family:'Consolas','Courier New',monospace;font-size:11px;}
.finui .fin-dc{color:var(--rouge);}
.finui .fin-cc{color:var(--vert2);}
.finui .fin-num{text-align:right;font-family:'Consolas','Courier New',monospace;white-space:nowrap;}

/* ── Étiquettes d'état ───────────────────────────── */
.finui .fin-tg{font-size:9px;font-weight:700;padding:2px 6px;border-radius:3px;text-transform:uppercase;display:inline-block;}
.finui .fin-tg-v{background:#D4EDDA;color:#155724;}
.finui .fin-tg-b{background:#FFF3CD;color:#856404;}
.finui .fin-tg-o{background:var(--bleu2);color:var(--bleu);}

/* ── Messages (chargement, succès, erreur, avertissement) ── */
.finui .fin-al{padding:8px 12px;border-radius:6px;font-size:12px;margin-bottom:10px;display:none;}
.finui .fin-al.ok{background:#EDF7F0;color:#1A6B38;border:1px solid #A8D8B8;display:block;}
.finui .fin-al.err{background:var(--rouge2);color:var(--rouge);border:1px solid #F5B8B0;display:block;}
.finui .fin-al.warn{background:var(--or2);color:var(--or3);border:1px solid #E0C870;display:block;}

/* ── Formulaires ─────────────────────────────────── */
.finui label{font-size:11px;color:var(--muted);font-weight:600;display:block;margin-bottom:3px;text-transform:none;letter-spacing:normal;}
.finui .fin-fi{width:100%;padding:7px 10px;border:1px solid var(--border);border-radius:6px;height:auto;
  font-size:12px;font-family:inherit;outline:none;background:var(--card);color:var(--txt);transition:border-color .15s;}
.finui .fin-fi:focus{border-color:var(--vert);box-shadow:0 0 0 2px var(--vert4);}
.finui .fin-fi-mono{font-family:'Consolas','Courier New',monospace;}
.finui textarea.fin-fi{resize:vertical;}
.finui .fin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:10px;}
.finui .fin-grid.fin-grid-2{grid-template-columns:repeat(2,minmax(0,1fr));}
.finui .fin-sim{border:1px solid var(--border);border-radius:6px;background:var(--bg2);padding:10px;margin-top:6px;font-size:11px;}
.finui .fin-sim table{font-size:11px;}
.finui .fin-hint{background:var(--vert4);border-radius:6px;padding:8px 12px;font-size:11px;color:var(--muted);margin-bottom:10px;line-height:1.5;}
.finui .fin-card-assoc{cursor:pointer;}
.finui .fin-card-assoc.on{border-color:var(--vert);box-shadow:0 0 0 2px var(--vert4);}
.finui .fin-card-assoc:focus-visible{outline:2px solid var(--vert);outline-offset:2px;}

/* ── Fenêtres de saisie ──────────────────────────── */
.finui .fin-modal{display:none;position:fixed;inset:0;z-index:10050;
  background:rgba(0,0,0,.4);align-items:center;justify-content:center;padding:10px;}
.finui .fin-modal.open{display:flex;}
.finui .fin-modal-inner{background:#fff;border-radius:10px;width:520px;max-width:94vw;
  max-height:88vh;display:flex;flex-direction:column;box-shadow:0 6px 30px rgba(0,0,0,.2);}
.finui .fin-modal-h{background:var(--vert);color:#fff;padding:12px 18px;border-radius:10px 10px 0 0;
  display:flex;align-items:center;justify-content:space-between;gap:10px;}
.finui .fin-modal-h-title{font-weight:700;font-size:14px;color:#fff;}
.finui .fin-modal-close{background:rgba(255,255,255,.18);border:none;color:#fff;border-radius:5px;
  width:26px;height:26px;cursor:pointer;font-size:13px;flex:none;}
.finui .fin-modal-close:hover{background:rgba(255,255,255,.3);}
.finui .fin-modal-body-inner{padding:18px;overflow-y:auto;flex:1;}
.finui .fin-modal-foot-inner{padding:12px 18px;border-top:1px solid var(--border);
  display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;}

/* ── Indicateurs (version détaillée) ─────────────── */
.finui .fin-kpi-pro{position:relative;border-left:4px solid var(--kpi-accent, var(--vert2));padding:11px 14px 10px;
  box-shadow:0 1px 2px rgba(10,61,31,.05);min-width:160px;}
.finui .fin-kpi-pro .fin-kpi-label{display:flex;align-items:center;gap:5px;letter-spacing:.02em;}
.finui .fin-kpi-pro .fin-kpi-val{font-size:17px;margin-top:2px;}
.finui .fin-kpi-sous{font-size:10.5px;color:var(--muted);margin-top:3px;line-height:1.35;}

/* ── En-tête de carte avec outils (onglets, recherche, période) ── */
.finui .fin-ct-outils{flex-wrap:wrap;justify-content:space-between;gap:8px;padding:7px 12px;}
.finui .fin-titre-ct{display:flex;align-items:center;gap:6px;}
.finui .fin-outils{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:auto;}
.finui .fin-tabs{display:inline-flex;background:var(--card);border:1px solid var(--border);border-radius:7px;padding:2px;gap:2px;}
.finui .fin-tab{border:none;background:transparent;color:var(--muted);font:inherit;font-size:11.5px;font-weight:600;
  padding:4px 10px;border-radius:5px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;}
.finui .fin-tab:hover{background:var(--bg);color:var(--txt);}
.finui .fin-tab.on{background:var(--vert);color:#fff;}
.finui .fin-tab:focus-visible{outline:2px solid var(--vert2);outline-offset:1px;}
.finui .fin-tab-n{background:var(--bg);color:var(--muted);border-radius:9px;padding:0 6px;font-size:10px;min-width:18px;text-align:center;}
.finui .fin-tab.on .fin-tab-n{background:rgba(255,255,255,.22);color:#fff;}
.finui .fin-search{width:220px;max-width:100%;padding:5px 10px 5px 28px;border:1px solid var(--border);border-radius:6px;
  font:inherit;font-size:12px;background:var(--card) no-repeat 8px 50%/13px;color:var(--txt);outline:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B6B5A' stroke-width='2.5'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-4-4'/%3E%3C/svg%3E");}
.finui .fin-search:focus,.finui .fin-fi-inline:focus{border-color:var(--vert);box-shadow:0 0 0 2px var(--vert4);}
.finui .fin-fi-inline{width:auto;padding:4px 8px;font-size:11.5px;}
.finui .fin-dates{display:inline-flex;align-items:center;gap:6px;}
.finui .fin-dates label{display:inline;margin:0;}
.finui .fin-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

/* ── Lignes de tableau : clic, groupes, totaux, progression ── */
.finui .fin-ligne-clic{cursor:pointer;}
.finui .fin-ligne-clic:hover td{background:var(--vert4);}
.finui .fin-ligne-clic:focus-visible{outline:2px solid var(--vert2);outline-offset:-2px;}
.finui .fin-ligne-annulee td{color:var(--muted);text-decoration:line-through;text-decoration-color:rgba(0,0,0,.25);}
.finui .fin-ligne-annulee td .fin-tg{text-decoration:none;}
.finui .fin-ligne-groupe td{background:var(--bg)!important;font-weight:700;color:var(--vert);font-size:11.5px;border-top:1px solid var(--border);}
.finui tfoot .fin-total td{background:var(--vert4);font-weight:700;border-top:2px solid var(--vert2);border-bottom:none;}
.finui .fin-muted{font-size:10.5px;color:var(--muted);}
.finui .fin-chevron{color:var(--muted);font-size:16px;}
.finui .fin-progress{height:6px;background:var(--bg);border-radius:4px;overflow:hidden;min-width:70px;}
.finui .fin-progress span{display:block;height:100%;border-radius:4px;transition:width .3s;}
.finui .fin-progress-txt{font-size:10px;color:var(--muted);margin-top:2px;}
.finui .fin-tg-r{background:var(--rouge2);color:var(--rouge);}
.finui .fin-vide-bloc{padding:14px;color:var(--muted);font-size:12px;}

/* ── Barre d'actions sous un tableau (sélection) ── */
.finui .fin-actions-bas{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:10px 12px;border-top:1px solid var(--border);}
.finui .fin-actions-bas:empty{display:none;}
.finui input[type=checkbox]{width:15px;height:15px;accent-color:var(--vert);cursor:pointer;}

/* ── Bandeau d'information (dotations automatiques) ── */
.finui .fin-bandeau{display:flex;gap:10px;align-items:flex-start;background:var(--bleu2);color:var(--bleu);
  border:1px solid #C9D9EF;border-radius:7px;padding:9px 13px;font-size:12px;margin-bottom:12px;line-height:1.5;}
.finui .fin-bandeau-off{background:var(--or2);color:var(--or3);border-color:#E0C870;}


/* ── Associés & capital ── */
.finui [hidden]{display:none!important;}   /* l'attribut hidden l'emporte sur les display des composants */
.finui .fin-grid.fin-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.finui .fin-sections{margin:0 0 12px;}
.finui .fin-sections .fin-tab{padding:6px 12px;font-size:12px;}
.finui .fin-ph-sous{margin-bottom:8px;}
.finui .fin-cap-duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start;}
.finui .fin-cap-l{display:flex;justify-content:space-between;gap:12px;padding:6px 2px;border-bottom:1px solid var(--border);font-size:12px;}
.finui .fin-cap-l span{color:var(--muted);}
.finui .fin-cap-l b{text-align:right;}
.finui .fin-capop-attr{display:grid;grid-template-columns:minmax(0,1fr) 110px auto;gap:6px;margin-bottom:6px;}
.finui .fin-capop-avap{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.finui .fin-capop-avap>div{flex:1;min-width:150px;border:1px solid var(--border);border-radius:7px;padding:7px 10px;background:var(--card);}
.finui .fin-capop-avap small{display:block;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;}
.finui .fin-capop-avap b{display:block;font-size:14px;} .finui .fin-capop-avap span{font-size:11px;color:var(--muted);}
.finui .fin-capop-avap .fin-capop-fl{flex:0;min-width:0;border:none;background:none;font-size:18px;color:var(--vert2);}
.finui .fin-capop-ecr{width:100%;margin:8px 0 4px;font-size:11.5px;}
.finui .fin-capop-ecr th{background:var(--bg);color:var(--txt);font-weight:600;}
.finui .fin-ag-pres{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;align-items:center;margin-bottom:6px;font-size:12px;}
.finui .fin-ag-res{border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin-bottom:8px;background:var(--card);display:grid;gap:6px;}
.finui .fin-ag-res-h{display:flex;justify-content:space-between;align-items:center;font-size:12px;}
.finui .fin-ag-votes{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,.6fr)) auto;gap:6px;align-items:center;}
@media(max-width:680px){.finui .fin-ag-pres,.finui .fin-ag-votes{grid-template-columns:1fr;}}
.finui tr.fin-sous-ligne td{background:var(--bg);font-size:11.5px;color:var(--muted);border-top:none;}

/* ── Tablettes / téléphones ──────────────────────── */
@media(max-width:680px){
  .finui .fin-grid,.finui .fin-grid.fin-grid-2,.finui .fin-grid.fin-grid-3,.finui .fin-cap-duo{grid-template-columns:1fr;}
  .finui .fin-ph{flex-direction:column;}
  .finui .fin-modal-inner{max-height:94vh;}
  .finui .fin-outils{margin-left:0;width:100%;}
  .finui .fin-search{width:100%;}
  .finui .fin-tabs{flex-wrap:wrap;}
}
@media(prefers-reduced-motion:reduce){.finui .fin-progress span{transition:none;}}
