/* charte-site.css — l'identité de elefantia.ai sur la plateforme (09/10/2026, demande de Quentin).
   Un seul fichier pour le Board, l'Ops, le BA et le Hub : Poppins, fond blanc, vert #134739, texte #171717,
   boutons et onglets en pilules, cartes très arrondies ; la colonne de gauche reste, en vert, logo du site. */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap');
:root{--g1:#134739;--g2:#0F3D30;--g3:#1F6A52;--g4:#6FA08C;--pink:#FFECEE;--pink-l:#FFF4F5;--beige:#F6F6F8;--beige-d:#ECECF0;--beige-l:#FAFAFB;
  --text:#171717;--text-m:#5F6368;--text-l:#8A8F98;--border:#E8E8EC;--r:16px;--shadow:none;--shadow-s:none;--shadow-m:0 10px 30px rgba(19,71,57,.10)}
html,body{font-family:Poppins,system-ui,sans-serif!important;background:#fff!important;color:#171717}
body{-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,.hdr-ctx,.sh,.section-hdr,.section-title,.card-hdr h3,.subtab,.bname,.hero h1,header h1,.kpi .val,.summary .val{font-family:Poppins,system-ui,sans-serif!important}
/* ── header : blanc, encre, pilules ── */
header{background:#fff!important;color:#171717!important;box-shadow:none!important;border-bottom:1px solid #E8E8EC}
header::after{display:none!important}
.hdr-ctx,header .hdr-ctx{color:#171717!important;font-size:17px!important;font-weight:700!important;letter-spacing:-.2px!important}
header h1{color:#171717!important} header .sub{color:#5F6368!important}
.hdr-chip,.hdr-month-select,.user-chip,.hub-link{background:#fff!important;color:#171717!important;border:2px solid #171717!important;border-radius:999px!important;font-weight:500!important;font-size:12px!important;padding:6px 14px!important;font-family:Poppins,sans-serif!important}
/* chips de l'Ops qui portent un libellé + un select : une seule pilule, le select sans bordure */
.hdr-chip:has(select){padding:0 4px 0 0!important}
.hdr-chip select{background:transparent!important;border:0!important;color:#171717!important;padding:5px 8px 5px 0!important;border-radius:0!important;font-family:Poppins,sans-serif!important;font-weight:600!important}
.hdr-chip label{color:#5F6368!important}
.hdr-month-select{padding-right:30px!important;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23171717' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 12px center!important}
.user-chip button,.hdr-meta button,header .meta button{color:#171717!important;font-family:Poppins,sans-serif!important}
.hub-link:hover,.hdr-month-select:hover,.user-chip:hover{background-color:#F6F6F8!important}
.hdr-brand-mini{color:#171717!important}
.hdr-brand-mini img,#login-card .brand img{width:auto!important;height:24px!important;background:none!important;padding:0!important;border-radius:0!important}
#login-card .brand img{height:30px!important}
/* ── colonne de gauche : vert du site, logo clair, actif en pilule ── */
nav.sb-nav,nav.ops-tabs{background:#134739!important;box-shadow:none!important}
nav.sb-nav .brand,nav.ops-tabs .brand{border-bottom:1px solid rgba(255,255,255,.18)!important;padding:20px 18px 16px!important}
nav.sb-nav .brand .wm,nav.ops-tabs .brand .wm{width:128px!important;height:auto!important;background:none!important;padding:0!important;border-radius:0!important}
nav.sb-nav .brand .bname,nav.ops-tabs .brand .bname{font-size:15px!important;margin-top:12px!important;font-weight:600!important}
nav.sb-nav .brand .btag,nav.ops-tabs .brand .btag{color:rgba(255,255,255,.6)!important}
nav.sb-nav .navgrp,nav.ops-tabs .navgrp{color:rgba(255,255,255,.6)!important;font-size:9.5px!important;letter-spacing:.16em!important;padding-top:18px!important}
nav.sb-nav button,nav.ops-tabs button{margin:2px 12px!important;padding:8px 14px!important;border:2px solid transparent!important;border-radius:999px!important;color:#fff!important;font-weight:500!important;font-size:12.5px!important;font-family:Poppins,sans-serif!important}
nav.sb-nav button:hover,nav.ops-tabs button:hover{background:rgba(255,255,255,.12)!important}
nav.sb-nav button.active,nav.ops-tabs button.active{background:transparent!important;border-color:#fff!important;color:#fff!important;font-weight:600!important}
nav.sb-nav button svg,nav.ops-tabs button svg{opacity:1!important}
nav.ops-tabs button .badge{background:rgba(255,255,255,.22)!important;color:#fff!important}
nav.ops-tabs button.active .badge{background:#fff!important;color:#134739!important}
nav.sb-nav .nav-foot,nav.ops-tabs .nav-foot{border-top:1px solid rgba(255,255,255,.18)!important}
nav.sb-nav .nav-foot .wikilnk,nav.ops-tabs .nav-foot .wikilnk{border-radius:999px!important;border:2px solid rgba(255,255,255,.55)!important;background:transparent!important;color:#fff!important;font-family:Poppins,sans-serif!important}
nav.sb-nav .nav-foot .wikilnk.active,nav.ops-tabs .nav-foot .wikilnk.active{background:#fff!important;color:#134739!important;border-color:#fff!important}
nav.sb-nav .nav-foot .wq,nav.ops-tabs .nav-foot .wq{background:#FFECEE!important;color:#134739!important}
nav.sb-nav .nav-tag,nav.ops-tabs .nav-tag{color:rgba(255,255,255,.45)!important}
@media(max-width:900px){nav.sb-nav button,nav.ops-tabs button{margin:4px 2px!important;border-bottom-width:2px!important} nav.sb-nav button.active,nav.ops-tabs button.active{border-color:#fff!important}}
/* ── barre des mois (Board) ── */
.mpills-bar{background:#fff!important;border-top:0!important;border-bottom:1px solid #E8E8EC!important;padding:9px 32px!important}
.mpills-lbl{color:#5F6368!important}
.mpill{background:#fff!important;border:2px solid #E8E8EC!important;color:#171717!important;border-radius:999px!important;font-weight:500!important;font-family:Poppins,sans-serif!important}
.mpill:hover{border-color:#134739!important;background:#fff!important}
.mpill.on,.mpill.active,.mpill.mpill-active{background:#134739!important;border-color:#134739!important;color:#fff!important;font-weight:600!important}
.mpill .mpill-sub,.mpills-bar .hint{color:#8A8F98!important}
/* ── titres de section : texte nu, comme les titres du site ── */
.sh,.section-hdr,.section-title{background:none!important;border:0!important;border-radius:0!important;padding:0!important;font-size:16px!important;font-weight:700!important;letter-spacing:-.2px!important;text-transform:none!important;color:#171717!important;margin:26px 0 12px!important;display:flex;align-items:baseline;gap:12px}
.sh .aside,.section-hdr .total,.section-hdr .cnt,.sh span{font-size:12px!important;font-weight:500!important;color:#5F6368!important;letter-spacing:0!important;background:none!important;text-transform:none!important}
.sh+.kpi-grid,.section-hdr+.summary-grid{margin-top:0}
/* ── cartes ── */
.card,.kpi,.summary,.tbl-wrap,.sc-card,.fin-banner,.bpv-chart,.pil-card,.bpc-cards>div,.wk-card{border-radius:18px!important;border:1px solid #E8E8EC!important;box-shadow:none!important;background:#fff}
.kpi{border-top:1px solid #E8E8EC!important;padding:18px 20px 16px!important}
.kpi:hover,.summary.drillable:hover,.summary.eled-clic:hover,.kpi.drillable:hover{box-shadow:0 10px 30px rgba(19,71,57,.10)!important;border-color:#CFE0D7!important;transform:translateY(-2px)}
.kpi .lbl,.summary .lbl{font-size:11.5px!important;font-weight:500!important;text-transform:none!important;letter-spacing:0!important;color:#5F6368!important}
.kpi .val,.summary .val{font-size:26px!important;font-weight:600!important;color:#134739!important;letter-spacing:-.5px!important;line-height:1.15!important}
.kpi .val.neg,.summary .val.neg{color:#134739!important}
.kpi .sub,.summary .sub{font-size:12px!important;color:#171717!important}
.kpi .drill-hint{color:#134739!important} .kpi .trend .trend-up,.kpi .trend .trend-dn{color:#171717!important}
.card-hdr{background:#fff!important;border-bottom:1px solid #E8E8EC!important;padding:14px 20px 10px!important}
.card-hdr h3{color:#171717!important;font-size:15px!important;font-weight:600!important;text-transform:none!important;letter-spacing:-.2px!important}
.card-hdr .sub{color:#5F6368!important;font-weight:400!important}
/* ── sous-onglets, filtres et boutons en pilules ── */
.subnav{border-bottom:0!important;gap:6px!important;margin:18px 0 16px!important}
.subtab{border:2px solid #E8E8EC!important;border-radius:999px!important;padding:6px 16px!important;color:#171717!important;font-weight:500!important;margin-bottom:0!important;background:#fff!important}
.subtab:hover{border-color:#134739!important;color:#134739!important}
.subtab.on{background:#134739!important;border-color:#134739!important;color:#fff!important;font-weight:600!important}
.btn,.btn-primary,button.primary,.bpv-btn,.magic-btn,#login-card button,.card .btn,.d-btn,.pg-btn,.toolbar button{border-radius:999px!important;font-family:Poppins,sans-serif!important}
.btn-primary,#login-card button[type=submit]{background:#134739!important}
.toolbar select,.toolbar input,.tbl-toolbar select,.tbl-toolbar input,.ctrl-filters select,.ctrl-filters input{border-radius:999px!important;border:2px solid #E8E8EC!important;padding:5px 12px!important;font-family:Poppins,sans-serif!important}
/* ── tableaux : en-têtes clairs, texte encre ── */
.cft th,table.bpv-t thead th,.ctrl-grid th,table.cmp th,table.dt th,.bpv-table th,.tbl th,table.tbl th{background:#F6F6F8!important;color:#171717!important;border-bottom:1px solid #E8E8EC!important}
.cft th.cft-lbl,table.bpv-t thead th.l,.bpv-table th.grp{background:#F6F6F8!important}
.cft-section td.cft-lbl,.cft tr.cft-section td{background:#134739!important;color:#fff!important}
/* colonnes mises en avant par un style en ligne (mois focus, cumul) : elles restent en vert, texte blanc */
.cft th[style*="#0d3"],.ctrl-grid th[style*="--g1"],table th[style*="background:var(--g1)"]{background:#134739!important;color:#fff!important}
thead[style*="--g1"]{background:#F6F6F8!important;color:#171717!important}
thead[style*="--g1"] th{color:#171717!important}
.cft th.cft-cur-hdr{background:#134739!important;color:#fff!important}
/* ── bannières, notes ── */
.warn-banner,.ctrl-hint,.bpv-banner,.note-banner,.pnl-reserves,.pil-leg{border-radius:14px!important}
.section-hdr+.ctrl-hint{margin-top:0}
/* ── bouton « Une question ? » et login ── */
#ele-ask-btn{border-radius:999px!important;font-family:Poppins,sans-serif!important}
#login-overlay{background:#134739!important}
#login-card{border-radius:24px!important;font-family:Poppins,sans-serif}
#login-card input{border-radius:999px!important;border:2px solid #E8E8EC!important}
#login-card h2{font-family:Poppins,sans-serif!important}
/* ── BA (sans colonne) et Hub ── */
header>img,header .brand img{height:28px!important;width:auto!important;background:none!important;padding:0!important;border-radius:0!important}
.hero img{height:30px!important;width:auto!important;background:none!important;padding:0!important;border-radius:0!important}
.hero h1{color:#171717!important}
.card{border-top:1px solid #E8E8EC!important}
.card h3{color:#171717!important}
/* ── le bloc de tête de l'Overview, dans l'esprit du hero du site ── */
.ele-hero{display:grid;grid-template-columns:1.05fr 1fr;background:#134739;border-radius:24px;overflow:hidden;color:#fff;min-height:250px;margin:0 0 22px}
.ele-hero .txt{padding:30px 34px;display:flex;flex-direction:column;justify-content:center;gap:8px}
.ele-hero .k{font-size:11px;letter-spacing:.1em;text-transform:uppercase;opacity:.78;font-weight:600}
.ele-hero h1{font-size:34px;line-height:1.1;font-weight:700;letter-spacing:-.5px;margin:0;color:#fff!important;cursor:pointer;font-variant-numeric:tabular-nums}
.ele-hero p{font-size:13px;opacity:.9;max-width:460px;margin:0;line-height:1.5}
.ele-hero .cta{display:flex;gap:10px;margin-top:8px;flex-wrap:wrap}
.ele-hero .cta button{border:2px solid #fff!important;background:transparent!important;color:#fff!important;border-radius:999px!important;padding:8px 16px!important;font:600 12.5px Poppins,sans-serif!important;cursor:pointer;width:auto!important;margin:0!important;text-transform:none!important;letter-spacing:0!important}
.ele-hero .cta button.plein{background:#fff!important;color:#134739!important}
.ele-hero .mosaique{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);gap:6px;padding:6px;transform:rotate(-4deg) scale(1.08);opacity:.92;min-height:220px}
.ele-hero .mosaique img{width:100%;height:100%;object-fit:cover;border-radius:12px;display:block}
@media(max-width:900px){.ele-hero{grid-template-columns:1fr}.ele-hero .mosaique{display:none}}

/* ═══════════════ TÉLÉPHONE (09/10/2026, demande de Quentin : « que les gens puissent regarder sur leur téléphone ») ═══════════════
   Règle : la page ne défile jamais de côté ; seuls les tableaux larges défilent, dans leur cadre. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
/* tablette et petit portable : l'en-tête reste sur une ligne */
.hdr-chip,.user-chip,.hub-link,.hdr-month-select{white-space:nowrap}
@media (max-width:1280px){#hdr-gen{display:none!important}}
@media (max-width:1120px){#user-email,#hdr-period2{display:none!important}}
@media (max-width:900px){
  body{overflow-x:hidden}
  /* en-tête : une ligne compacte, les pastilles secondaires masquées */
  header{flex-wrap:wrap!important;padding:8px 14px!important;gap:6px 8px!important;position:sticky!important;top:0;z-index:250!important}
  .hdr-meta,header .meta{flex-wrap:wrap!important;gap:6px!important;margin-left:auto!important;justify-content:flex-end}
  #hdr-gen,#hdr-period2,#hdr-period,#hdr-chip-total,header .meta>#hdr-period{display:none!important}
  #user-email{display:none!important}
  .user-chip,.hub-link,.hdr-chip,.hdr-month-select{padding:5px 11px!important;font-size:11.5px!important}
  .hdr-month-select{padding-right:26px!important}
  .hdr-ctx,header .hdr-ctx{display:none!important}
  .hdr-brand-mini,header .hdr-brand-mini{display:flex!important}
  /* barres qui défilent au doigt au lieu de s'empiler */
  .mpills-bar{flex-wrap:nowrap!important;overflow-x:auto!important;padding:8px 14px!important;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .mpills-bar::-webkit-scrollbar,.subnav::-webkit-scrollbar,nav.sb-nav::-webkit-scrollbar,nav.ops-tabs::-webkit-scrollbar{display:none}
  .mpills-lbl{display:none!important}
  /* le mois se choisit dans l'en-tête : la barre des mois ferait doublon sur un petit écran */
  .mpills-bar{display:none!important}
  .mpill,.subtab{flex:none!important;white-space:nowrap!important}
  .subnav{flex-wrap:nowrap!important;overflow-x:auto!important;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px}
  nav.sb-nav,nav.ops-tabs{scrollbar-width:none;-webkit-overflow-scrolling:touch}
  /* marges */
  .main,main{padding:14px 14px 48px!important;max-width:100%!important}
  /* grilles : une colonne ; cartes de chiffres : deux colonnes */
  .g2,.g3,.g32,.g21,.deux,.sc-grid4,.px-two{grid-template-columns:minmax(0,1fr)!important}
  [style*="grid-template-columns:1fr 1fr"],[style*="grid-template-columns: 1fr 1fr"],[style*="grid-template-columns:1fr 1.5fr"],
  [style*="grid-template-columns:repeat(3"],[style*="grid-template-columns:repeat(4"],[style*="grid-template-columns:repeat(5"],[style*="grid-template-columns:repeat(6"],
  [style*="grid-template-columns:repeat(auto-fit"]{grid-template-columns:minmax(0,1fr)!important}
  .kpi-grid,.summary-grid,.bpc-cards,.tuiles,.summary-grid[style]{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
  .kpi,.summary{min-width:0!important;padding:13px 14px 12px!important}
  .kpi .val,.summary .val{font-size:19px!important;letter-spacing:-.3px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .kpi .sub,.summary .sub{font-size:11px!important;overflow-wrap:anywhere}
  .kpi .lbl,.summary .lbl{font-size:11px!important}
  .pil-leg,.warn-banner,.ctrl-hint,.bpv-banner,.note-banner,.fin-banner{max-width:100%;overflow-wrap:anywhere}
  /* en-têtes de cartes et de sections qui passent à la ligne */
  .card-hdr,.sh,.section-hdr,.bpv-bar2,.toolbar,.tbl-toolbar{flex-wrap:wrap!important;row-gap:4px}
  .card-hdr h3{white-space:normal!important}
  .toolbar input,.tbl-toolbar input{max-width:100%}
  /* tableaux : ils défilent dans leur cadre, libellé figé plus étroit */
  .cft td.cft-lbl,.cft th.cft-lbl{min-width:148px!important;max-width:180px;white-space:normal!important}
  table.bpv-t th.l,table.bpv-t td.l{min-width:140px!important}
  .card-body,.tbl-wrap,.bpv-scroll,.bpv-grid,.eled-scroll{overflow-x:auto!important;-webkit-overflow-scrolling:touch}
  [style*="overflow:hidden"]>table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
  table.ledger,table.cmp,table.dt{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  /* Hub : bloc d'accueil sur trois lignes (logo, bonjour, compte) */
  .app-wrap{padding:20px 16px 36px!important}
  .hero{flex-wrap:wrap!important;padding:18px 18px 16px!important;gap:10px 14px!important;margin-bottom:24px!important}
  .hero .text{flex:1 1 100%!important}
  .hero .user-info{flex-direction:row!important;align-items:center!important;flex-wrap:wrap;gap:8px 12px!important}
  .hero h1{font-size:21px!important}
  /* bloc de tête */
  .ele-hero{min-height:0;border-radius:20px;margin-bottom:16px}
  .ele-hero .txt{padding:22px 20px!important}
  .ele-hero h1{font-size:30px!important}
  /* connexion */
  #login-card{width:calc(100vw - 32px)!important;max-width:400px;padding:28px 22px!important}
  #login-card input,select,input[type=search],input[type=text],input[type=number]{font-size:16px!important}
  /* bouton « Une question ? » plus discret */
  #ele-ask-btn{right:12px!important;bottom:12px!important;padding:9px 14px!important;font-size:12.5px!important}
}
@media (min-width:601px) and (max-width:900px){
  .kpi-grid,.summary-grid,.bpc-cards,.tuiles,.summary-grid[style]{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media (max-width:420px){
  .kpi .val,.summary .val{font-size:17px!important}
  .ele-hero h1{font-size:27px!important}
}

/* ── Tableau de cash flow (Board + Ops, 09/10/2026) ──────────────────────
   Un seul modèle sur les deux écrans : 12 mois jusqu'au mois focus + cumul de
   l'année, libellés figés à gauche, sections en filet vert (pas de bandeau
   plein), totaux en gras, négatifs entre parenthèses en noir, zéros en tiret
   gris. Classe .cfv posée sur la table, en plus de .cft (Board) ou
   .ctrl-grid (Ops). */
.cfv-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 10px}
.cfv-bar .cfv-note{font-size:11px;color:#6B6F76}
.cfv-wrap{overflow:auto;max-height:74vh;border:1px solid #E8E8EC;border-radius:14px;background:#fff}
table.cfv{width:100%;border-collapse:separate;border-spacing:0;overflow:visible!important;border:none!important;border-radius:0!important;margin:0!important;font-size:12px;font-variant-numeric:tabular-nums}
table.cfv th,table.cfv td{white-space:nowrap;padding:7px 8px!important;border-bottom:1px solid #F0F0F3!important}
table.cfv thead th{position:sticky;top:0;z-index:3;background:#F6F6F8!important;color:#6B6F76!important;font-size:10.5px!important;font-weight:600!important;letter-spacing:.04em;text-transform:uppercase;text-align:right!important;border-bottom:1px solid #E8E8EC!important}
table.cfv thead th:first-child{left:0;z-index:5;text-align:left!important;min-width:250px}
table.cfv tbody td:first-child{position:sticky;left:0;z-index:2;background:#fff!important;text-align:left!important;color:#171717!important;box-shadow:1px 0 0 #E8E8EC}
table.cfv tbody td{text-align:right;color:#171717!important;background:#fff!important;font-style:normal!important;font-weight:400}
/* sections : titre vert sur fond blanc, filet dessous */
table.cfv tr.cfv-sec td,table.cfv tr.cfv-sec td:first-child{background:#fff!important;color:#134739!important;font-size:10.5px!important;font-weight:700!important;text-transform:uppercase;letter-spacing:.07em;padding:16px 10px 6px!important;border-bottom:1.5px solid #134739!important;box-shadow:none}
table.cfv tr.cfv-sec:first-child td{padding-top:10px!important}
/* lignes de détail en retrait, totaux en gras avec filet au-dessus */
table.cfv td.cfv-ind{padding-left:24px!important;color:#3F4349!important}
table.cfv tr.cfv-tot td{font-weight:700!important;border-top:1px solid #C9CCD1!important;background:#FAFAFB!important}
table.cfv tr.cfv-tot td:first-child{background:#FAFAFB!important}
table.cfv tr.cfv-key td{font-weight:700!important;color:#134739!important}
table.cfv tr.cfv-sub td{color:#3F4349!important}
/* chiffres */
table.cfv td.cfv-z{color:#C4C7CC!important}
table.cfv .cft-neg,table.cfv .cft-pos-num{color:inherit!important}
/* colonnes : mois focus, séparateur d'année, cumul */
table.cfv th.cfv-cur{background:#134739!important;color:#fff!important}
table.cfv td.cfv-cur{background:#F1F6F3!important}
table.cfv tr.cfv-tot td.cfv-cur{background:#E6EFEA!important}
table.cfv .cfv-ysep{border-left:1px solid #D5D8DC!important}
table.cfv .cfv-ytd{border-left:2px solid #134739!important;font-weight:600}
table.cfv th.cfv-ytd{color:#134739!important}
table.cfv tbody tr:hover td{background:#F7F8F9!important}
table.cfv tbody tr.cfv-sec:hover td{background:#fff!important}
table.cfv td.cfv-fc{background:#F7FAF8!important}
table.cfv thead th.cfv-fch{background:#EEF3F0!important;color:#134739!important}
/* forecast (Board) : en-tête clair, cases légèrement teintées pour le distinguer du réalisé */
table.cfv thead th.cft-fc{background:#EEF3F0!important;color:#134739!important;border-left:none!important}
@media (max-width:900px){
  table.cfv thead th:first-child{min-width:150px}
  table.cfv tbody td:first-child{white-space:normal;min-width:150px}
}

/* ── Cash flow : courbe, pont, tableau par année (ele-cashflow.js, 09/10/2026) ── */
.ecf-bloc{background:#fff;border:1px solid #E8E8EC;border-radius:18px;padding:16px 18px;margin:0 0 16px}
.ecf-tete{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 10px}
.ecf-tete strong{font-size:14px;color:#134739;font-weight:600}
.ecf-note{font-size:11.5px;color:#6B6F76}
.ecf-leg{display:flex;gap:16px;flex-wrap:wrap;font-size:11.5px;color:#6B6F76;margin:0 0 8px}
.ecf-leg i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}
.ecf-graphe{position:relative}
.ecf-bascule{display:inline-flex;border:1px solid #E8E8EC;border-radius:999px;padding:2px;background:#F6F6F8}
.ecf-bascule button{border:0;background:transparent;font:inherit;font-size:11.5px;padding:4px 12px;border-radius:999px;cursor:pointer;color:#3F4349}
.ecf-bascule button.on{background:#134739;color:#fff}
.ecf-pied{margin-top:10px;font-size:11px;color:#6B6F76;line-height:1.55}
.ecf-vide{padding:20px;text-align:center;color:#6B6F76;font-size:12px}
.ecf-tbl{border-radius:12px}
table.cfv th.ecf-an{vertical-align:bottom;min-width:96px}
table.cfv .ecf-an{font-weight:600}
table.cfv td.ecf-an{background:#FAFAFB!important}
table.cfv .ecf-an-tot{border-left:2px solid #134739!important}
.ecf-plie{border:0;background:transparent;font:inherit;font-size:12px;font-weight:700;color:#134739;cursor:pointer;padding:0;display:inline-flex;align-items:center;gap:5px;letter-spacing:.02em}
.ecf-chev{display:inline-flex;width:15px;height:15px;align-items:center;justify-content:center;border:1px solid #C9CCD1;border-radius:4px;font-size:11px;line-height:1;color:#134739}
.ecf-st{display:block;font-size:9.5px;font-weight:400;color:#8A8E95;text-transform:none;letter-spacing:0;margin-top:2px;white-space:nowrap}
table.cfv td.ecf-neg{color:#B42318!important}

/* ── Seconde barre latérale, comme Pennylane (tous les onglets à sous-pages, 09/10/2026) ──
   ele-sidenav.js : carte #ele-side (fixe, collée à la barre principale --sbw) qui reflète la
   navigation réelle de l'onglet actif et clique ses boutons. Classes posées sur <html> :
   .ele-side-on (l'onglet actif a des sous-pages), .ele-side-ferme (carte repliée, mémorisé).
   La navigation d'origine (.ele-side-src) est masquée tant que la carte est affichée.
   Sous 900 px : pas de carte, les pastilles d'origine restent. */
:root{--subw:248px}
.ele-side,.ele-side-open{display:none}
@media not all and (max-width:900px){
  html.ele-side-on:not(.ele-side-ferme) :is(#dashboard-root,#app){padding-left:calc(var(--sbw) + var(--subw) + 16px)}
  html.ele-side-on:not(.ele-side-ferme) .ele-side-src{display:none!important}
  html.ele-side-on:not(.ele-side-ferme) .ele-side:not([hidden]){display:flex;flex-direction:column;position:fixed;
    left:calc(var(--sbw) + 8px);top:10px;bottom:10px;width:var(--subw);z-index:250;padding:20px 14px;overflow-y:auto;
    background:#fff;border:1px solid #E8E8EC;border-radius:16px;box-shadow:0 8px 28px rgba(23,23,23,.08);
    font-family:Poppins,system-ui,sans-serif}
  .ele-side-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 8px 18px}
  .ele-side-title{font-size:19px;font-weight:700;color:#171717;letter-spacing:-.01em;line-height:1.2}
  .ele-side-fold{flex:none;width:30px;height:30px;border:0;border-radius:8px;background:transparent;color:#171717;
    cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
  .ele-side-fold:hover{background:#F0F1F3}
  .ele-side-item{display:block;width:100%;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    margin:1px 0;border:0;border-radius:10px;background:transparent;color:#171717;font:inherit;font-weight:400;
    font-size:14px;padding:10px 12px;cursor:pointer}
  .ele-side-item:hover{background:#F4F5F6}
  .ele-side-item.on{background:#E6EFEA;color:#134739;font-weight:600}
  .ele-side-item.n2{font-size:13px;padding:7px 12px 7px 26px;color:#3F4349}
  .ele-side-item.n2.on{background:#F1F6F3;color:#134739;font-weight:600}
  .ele-side-item:focus-visible,.ele-side-fold:focus-visible,.ele-side-open:focus-visible{outline:2px solid #134739;outline-offset:2px}
  .ele-side-sep{height:1px;background:#E8E8EC;margin:12px 8px;flex:none}
  html.ele-side-on.ele-side-ferme .ele-side-open{display:inline-flex;position:fixed;left:var(--sbw);top:16px;z-index:250;
    align-items:center;justify-content:center;width:22px;height:40px;border:1px solid #E8E8EC;border-left:0;
    border-radius:0 10px 10px 0;background:#fff;color:#134739;font-size:18px;line-height:1;cursor:pointer;
    box-shadow:0 4px 14px rgba(23,23,23,.08)}
  /* le contenu perd 272 px : les grilles suivent la place réelle, pas la largeur de l'écran */
  html.ele-side-on:not(.ele-side-ferme) :is(#dashboard-root,#app) .kpi-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))!important}
  @media (max-width:1200px){
    html.ele-side-on:not(.ele-side-ferme) :is(#dashboard-root,#app) :is(.g2,.g3,.g32,.g21,[style*="grid-template-columns:1fr 1.5fr"]){grid-template-columns:minmax(0,1fr)!important}
  }
  /* Board : titre de l'en-tête sur une ligne dès 1 000 px ; sous 1 500 px, on retire les étiquettes
     secondaires (période, déjà dans le sélecteur ; date de génération) */
  @media (min-width:1000px){ html.ele-side-on:not(.ele-side-ferme) #dashboard-root .hdr-ctx{white-space:nowrap} }
  @media (max-width:1500px){ html.ele-side-on:not(.ele-side-ferme) #dashboard-root :is(#hdr-gen,#hdr-period2){display:none!important} }
}
