/* =====================================================================
   TOUMA V2 · LE SOCLE VISUEL
   ---------------------------------------------------------------------
   CE QUE CE FICHIER CHERCHE

   Un centre de commande, pas un tableau de bord. La difference tient en
   trois choses, et elles sont toutes ici :

     LA PROFONDEUR   le fond n'est pas plat. Des halos tres sourds
                     posent un relief, les surfaces flottent au-dessus,
                     et l'oeil sait tout de suite ce qui est au premier
                     plan. Un aplat gris donne un formulaire.

     LA LUMIERE      ce qui est actif porte un filet lumineux, pas un
                     aplat de couleur. Une selection qui s'allume se
                     lit sans effort et ne crie pas.

     LA DENSITE      des chiffres tres grands, des etiquettes tres
                     petites, et de l'air entre les deux. Un ecart de
                     graisse fait la hierarchie mieux qu'un encadre.

   Il ne redefinit AUCUNE couleur de marque : il lit les jetons de
   styles.css, qui portent deja le theme sombre. Tout est prefixe `v2-`.
   ===================================================================== */

:root{
  --v2-r: 14px;
  --v2-r-s: 10px;
  --v2-rail: 260px;   /* 248 avant le 06/10/2026 : « Optimisation des bâtiments » doit tenir sur une ligne */
  --v2-panneau: 420px;
  --v2-panneau-large: 620px;
  --v2-bandeau: 60px;
  --v2-t: 180ms;
  --v2-t-lent: 260ms;
  /* les couches, en clair */
  --v2-fond: #F2F5F9;
  --v2-halo-1: rgba(15,61,138,.07);
  --v2-halo-2: rgba(232,121,29,.05);
  --v2-verre: rgba(255,255,255,.82);
  --v2-surface: #FFFFFF;
  --v2-surface-2: #F7F9FC;
  --v2-trait: #E6EBF2;
  --v2-trait-fort: #D3DBE6;
  --v2-ombre: 0 1px 2px rgba(16,28,48,.04), 0 12px 28px -18px rgba(16,28,48,.28);
  --v2-ombre-haute: 0 24px 60px -28px rgba(16,28,48,.45);
  --v2-lueur: 0 0 0 1px rgba(15,61,138,.10), 0 8px 24px -12px rgba(15,61,138,.35);
}
:root[data-theme="dark"]{
  --v2-fond: #070B12;
  --v2-halo-1: rgba(47,70,116,.30);
  --v2-halo-2: rgba(232,121,29,.07);
  --v2-verre: rgba(17,24,38,.78);
  --v2-surface: #0F1725;
  --v2-surface-2: #131C2C;
  --v2-trait: #1C2537;
  --v2-trait-fort: #2A3548;
  --v2-ombre: 0 1px 2px rgba(0,0,0,.4), 0 14px 34px -20px rgba(0,0,0,.8);
  --v2-ombre-haute: 0 28px 70px -30px rgba(0,0,0,.9);
  --v2-lueur: 0 0 0 1px rgba(143,179,245,.16), 0 10px 30px -14px rgba(60,100,180,.55);
}

/* ================= la coquille ================= */
.v2{position:fixed;inset:0;display:flex;flex-direction:column;
  background:var(--v2-fond);color:var(--ink);font-family:var(--ui);font-size:13.5px;overflow:hidden}
.v2::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(1100px 620px at 12% -8%, var(--v2-halo-1), transparent 62%),
    radial-gradient(900px 520px at 96% 4%, var(--v2-halo-2), transparent 60%),
    radial-gradient(1200px 700px at 50% 112%, var(--v2-halo-1), transparent 65%)}
.v2 *{box-sizing:border-box}
.v2-corps{position:relative;z-index:1;flex:1;display:flex;min-height:0}
.v2-page{flex:1;min-width:0;position:relative;overflow:auto;display:flex;flex-direction:column;scrollbar-gutter:stable}
.v2-page::-webkit-scrollbar{width:10px;height:10px}
.v2-page::-webkit-scrollbar-thumb{background:var(--v2-trait-fort);border-radius:8px;
  border:3px solid transparent;background-clip:content-box}
.v2-page::-webkit-scrollbar-track{background:transparent}

/* ================= le bandeau ================= */
.v2-bandeau{position:relative;z-index:3;height:var(--v2-bandeau);flex-shrink:0;
  display:flex;align-items:center;gap:20px;padding:0 20px 0 18px;
  background:var(--v2-verre);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--v2-trait)}
.v2-marque{display:flex;align-items:center;gap:11px;text-decoration:none;color:inherit;
  padding:6px 10px 6px 6px;border-radius:var(--v2-r-s);transition:background var(--v2-t)}
.v2-marque:hover{background:var(--v2-surface-2)}
.v2-marque img{display:block;height:28px;width:auto}
/* LA MARQUE A LA LARGEUR DU MENU (25/09/2026, demande de Bayss) : le petit
   trait qui separe Touma du pays tombe sur la verticale de la bordure du
   menu lateral (le trait reste court, comme avant : un trait sur toute la
   hauteur faisait tableau), et le nom du pays tombe sur la meme verticale
   que le fil d'Ariane de la page (32 px apres le menu). */
.v2-bandeau{padding-left:0}
.v2-bandeau > .v2-marque{width:var(--v2-rail);flex-shrink:0;margin-right:-21px;padding:6px 16px 6px 16px}
.v2-bandeau > .v2-marque img{height:40px}
.v2-bandeau > .v2-fil{margin-left:10px}
/* La pastille DEV : discrete, mais impossible a manquer. */
.v2-env{font:600 10px/1 var(--v2-police, inherit);letter-spacing:.08em;padding:4px 6px;
  border-radius:4px;color:#fff;background:#c2410c}
.v2-sep{width:1px;height:24px;background:var(--v2-trait);flex-shrink:0}
.v2-grandir{flex:1}

/* le fil : permanent, cliquable, discret */
/* OU L'ON SE TROUVE SE LIT D'UN COUP D'OEIL.
   Le pays et le territoire etaient ecrits en 13,5 px, en gris, colles au
   logo : sur une barre large et vide, la premiere information de l'ecran
   -- QUEL pays, QUEL territoire -- etait la moins visible de la page. */
.v2-fil{display:flex;align-items:center;gap:11px;font-size:16px;min-width:0;flex-wrap:nowrap}
.v2-fil a{color:var(--muted);font-weight:600;text-decoration:none;white-space:nowrap;
  padding:4px 7px;border-radius:7px;transition:background var(--v2-t),color var(--v2-t)}
.v2-fil a:hover{background:var(--v2-surface-2);color:var(--brand-2)}
.v2-fil b{font-weight:800;color:var(--ink);white-space:nowrap;padding:4px 2px;letter-spacing:-.01em}
.v2-fil svg{flex-shrink:0;opacity:.4}
/* « Pays / Comores » : le mot Pays a la taille du nom (demande de Bayss, 25/09/2026),
   plus leger et gris ; la barre separe sans peser. */
.v2-fil-lab{padding-left:2px;font-weight:600;color:var(--muted);white-space:nowrap}
.v2-fil-sep{color:var(--muted);opacity:.55;font-weight:400;margin:0 -3px}

/* l'heure du pays : discrete, jamais celle du navigateur */
.v2-heure{display:flex;flex-direction:column;align-items:flex-end;line-height:1.25;flex-shrink:0}
.v2-heure .h{font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.01em}
.v2-heure .d{font-size:11px;color:var(--muted)}

/* Le temps qu'il fait au chef-lieu. Meme forme que l'heure, a sa gauche :
   deux reperes de contexte, pas deux widgets. Vide tant que la source n'a
   pas repondu -- une case vide se remplit, un tiret ressemble a une
   valeur. */
.v2-meteo{display:flex;flex-direction:column;align-items:flex-end;line-height:1.25;flex-shrink:0}
.v2-meteo .t{font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}
.v2-meteo .d{font-size:11px;color:var(--muted)}

/* la recherche : une touche, pas un champ qui traine */
.v2-loupe{display:flex;align-items:center;gap:10px;height:38px;padding:0 12px 0 13px;min-width:230px;
  background:var(--v2-surface);border:1px solid var(--v2-trait);border-radius:var(--v2-r-s);
  color:var(--muted);cursor:text;font:inherit;font-size:13px;transition:border-color var(--v2-t),box-shadow var(--v2-t)}
/* Commenter (14/10/2026) : le meme gabarit que la recherche, a sa taille, un pas avant elle */
.v2-loupe.v2-commenter{min-width:0;margin-right:10px;cursor:pointer;color:var(--ink-2)}
/* L'etat des saisies (C5, 17/10/2026) : le meme gabarit, un pas avant Commenter, seulement quand quelque chose
   n'est pas en base ; un point de couleur et un mot, jamais une icone */
.v2-synchro{display:flex;align-items:center;gap:8px;height:38px;padding:0 12px;margin-right:10px;flex-shrink:0;white-space:nowrap;
  background:var(--v2-surface);border:1px solid var(--v2-trait);border-radius:var(--v2-r-s);color:var(--ink-2);
  font:inherit;font-size:13px;cursor:pointer;transition:border-color var(--v2-t)}
.v2-synchro .p{width:8px;height:8px;border-radius:50%;background:var(--muted);flex-shrink:0}
.v2-synchro[data-etat="nonTransmis"],.v2-synchro[data-etat="bloque"],.v2-synchro[data-etat="refusee"]{border-color:var(--crit);color:var(--crit)}
.v2-synchro[data-etat="nonTransmis"] .p,.v2-synchro[data-etat="bloque"] .p,.v2-synchro[data-etat="refusee"] .p{background:var(--crit)}
.v2-synchro[data-etat="baseInjoignable"]{border-color:var(--warn);color:var(--warn)}
.v2-synchro[data-etat="baseInjoignable"] .p{background:var(--warn)}
.v2-synchro:disabled{opacity:.6;cursor:progress}
/* son panneau : le destinataire et le texte, dans la police de l'application */
.v2-com-sel,.v2-com-txt{width:100%;font:inherit;font-size:14px;color:var(--ink);background:var(--v2-surface);
  border:1px solid var(--v2-trait-fort);border-radius:var(--v2-r-s);transition:border-color var(--v2-t),box-shadow var(--v2-t)}
.v2-com-sel{height:40px;padding:0 10px}
/* (171) un champ simple dans une ligne de travail (la file de l'equipe) ; 16 px au telephone (pas de zoom a la saisie) */
.v2-in{height:34px;padding:0 10px;font:inherit;font-size:13px;color:var(--ink);background:var(--v2-surface);
  border:1px solid var(--v2-trait-fort);border-radius:var(--v2-r-s);min-width:0}
.v2-in:focus{outline:none;border-color:var(--brand);box-shadow:var(--v2-lueur)}
@media (max-width:640px){.v2-in{font-size:16px;height:40px}}
.v2-com-txt{min-height:180px;padding:11px 12px;line-height:1.5;resize:vertical}
.v2-com-sel:focus,.v2-com-txt:focus{outline:0;border-color:var(--brand);box-shadow:var(--v2-lueur)}
/* Equipes (162) : les memes colonnes d'une organisation a l'autre */
.v2-eq-tbl{table-layout:fixed;width:100%}
.v2-eq-tbl th:nth-child(1){width:24%}.v2-eq-tbl th:nth-child(2){width:20%}.v2-eq-tbl th:nth-child(3){width:22%}
.v2-eq-tbl th:nth-child(4){width:13%}.v2-eq-tbl th:nth-child(5){width:21%}
.v2-eq-tbl td{overflow:hidden;text-overflow:ellipsis}
/* Missions (163) : une carte par mission, une information par ligne */
.mi-carte{display:flex;flex-direction:column;gap:0;padding:0;overflow:hidden}
.mi-tete{display:flex;align-items:flex-start;gap:14px;padding:18px 22px 14px}
.mi-etat{flex-shrink:0;font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;border:1px solid var(--v2-trait-fort);color:var(--muted)}
.mi-etat.mi-en_cours{background:var(--brand);border-color:var(--brand);color:#fff}
.mi-etat.mi-close{background:var(--v2-surface-2)}
.mi-ligne{display:grid;grid-template-columns:150px 1fr;gap:14px;padding:11px 22px;border-top:1px solid var(--v2-trait);font-size:13.5px;align-items:baseline}
.mi-lib{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.mi-val{min-width:0;color:var(--ink)}
.mi-natures{display:flex;flex-wrap:wrap;gap:6px}
.mi-consignes{white-space:pre-wrap;line-height:1.5}
.mi-gestes{display:flex;flex-wrap:wrap;gap:10px;padding:14px 22px;border-top:1px solid var(--v2-trait);background:var(--v2-surface-2)}
.mi-gestes a.v2-b{text-decoration:none}
.mi-form{display:flex;flex-direction:column;gap:18px}
.mi-agents{table-layout:fixed;width:100%}
/* Comptes de test (164) : une carte par profil, une information par ligne */
.ct-intro{display:flex;flex-direction:column;gap:4px;margin-bottom:14px}
.ct-page{display:flex;flex-direction:column;gap:14px;max-width:920px}
.ct-sect{margin-top:8px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.ct-point{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.ct-rang+.ct-rang{border-top:1px solid var(--v2-trait)}
.ct-rang-l{display:flex;align-items:center;gap:10px;padding:11px 18px;min-height:46px;box-sizing:border-box}
.ct-rang.ouvert{background:color-mix(in srgb,var(--brand) 3%,transparent)}
.ct-carte{padding:0;overflow:hidden;display:flex;flex-direction:column}
.ct-tete{display:flex;align-items:center;gap:10px;padding:14px 18px}
.ct-titre{flex:1;min-width:0;font-size:14px;font-weight:600;color:var(--ink)}
.ct-ligne{display:grid;grid-template-columns:130px 1fr;gap:12px;padding:9px 18px;border-top:1px solid var(--v2-trait);font-size:13px;align-items:center}
.ct-lib{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ct-val{min-width:0;color:var(--ink)}
.ct-id-l{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ct-id{font:600 13px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--ink);background:var(--v2-surface-2);padding:3px 8px;border-radius:6px}
.ct-puces{display:flex;flex-wrap:wrap;gap:5px}
.ct-puce{font-size:11.5px;padding:2px 8px;border-radius:999px;background:var(--v2-surface-2);color:var(--ink-2)}
.ct-gestes{display:flex;gap:8px;padding:10px 18px;border-top:1px solid var(--v2-trait)}
.ct-form{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.ct-mdp-l{display:flex;gap:8px;width:100%}
.ct-mdp{flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.ct-note{font-size:12px;color:var(--muted)}
.ct-montre{border-top:1px solid var(--v2-trait);background:color-mix(in srgb,var(--brand) 6%,transparent)}
.ct-montre-t{padding:10px 18px 0;font-size:12.5px;font-weight:600;color:var(--ink)}
.ct-montre .ct-ligne{border-top:0}
.ct-marque{margin-left:8px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 6px;border-radius:4px;background:var(--v2-surface-2);color:var(--muted);vertical-align:middle}
@media (max-width:640px){.ct-ligne{grid-template-columns:1fr;gap:4px}}
.mi-agents th:nth-child(1){width:16%}.mi-agents th:nth-child(2){width:44%}
@media (max-width:640px){.mi-ligne{grid-template-columns:1fr;gap:4px}}
.v2-loupe:hover{border-color:var(--v2-trait-fort)}
.v2-loupe kbd{margin-left:auto;font:600 10.5px var(--ui);letter-spacing:.04em;color:var(--muted);
  background:var(--v2-surface-2);border:1px solid var(--v2-trait);border-radius:6px;padding:3px 6px}

/* ================= le rail ================= */
.v2-rail{position:relative;z-index:2;width:var(--v2-rail);flex-shrink:0;display:flex;flex-direction:column;
  background:var(--v2-verre);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-right:1px solid var(--v2-trait)}
.v2-rail-nav{flex:1;overflow:auto;padding:16px 12px 8px;display:flex;flex-direction:column;gap:2px}
.v2-rail-nav::-webkit-scrollbar{width:0}
.v2-sect{font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);
  padding:16px 12px 7px}
.v2-sect:first-child{padding-top:4px}
.v2-nav{position:relative;display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--v2-r-s);
  color:var(--ink-2);text-decoration:none;font-size:13.5px;font-weight:600;border:0;background:transparent;
  width:100%;text-align:left;cursor:pointer;font-family:inherit;
  transition:background var(--v2-t),color var(--v2-t)}
.v2-nav:hover{background:var(--v2-surface-2);color:var(--ink)}
.v2-nav svg{flex-shrink:0;opacity:.75}
.v2-nav.on{background:linear-gradient(90deg,var(--brand-soft),transparent 130%);color:var(--brand);font-weight:700}
.v2-nav.on svg{opacity:1}
.v2-nav.on::before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;
  background:var(--brand);box-shadow:0 0 12px 1px rgba(31,95,204,.55)}
.v2-nav .cnt{margin-left:auto;font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:20px;
  background:var(--surface-3);color:var(--ink-2)}
.v2-nav .cnt.crit{background:var(--crit-soft);color:var(--crit)}
.v2-nav .cnt.warn{background:var(--warn-soft);color:var(--warn)}

/* le profil, en bas du rail */
.v2-profil{flex-shrink:0;border-top:1px solid var(--v2-trait);padding:10px 12px}
.v2-profil-b{display:flex;align-items:center;gap:11px;width:100%;padding:9px 10px;border:0;background:transparent;
  border-radius:var(--v2-r-s);cursor:pointer;font-family:inherit;text-align:left;
  transition:background var(--v2-t)}
.v2-profil-b:hover{background:var(--v2-surface-2)}
.v2-pastille{width:34px;height:34px;border-radius:11px;flex-shrink:0;display:flex;align-items:center;
  justify-content:center;font-size:12.5px;font-weight:800;color:#fff;
  background:linear-gradient(140deg,var(--brand),var(--brand-2));box-shadow:var(--v2-lueur)}
.v2-profil-t{min-width:0;flex:1}
.v2-profil-t .n{display:block;font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v2-profil-t .o{display:block;font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* le menu du profil */
.v2-menu{position:fixed;z-index:80;min-width:262px;background:var(--v2-surface);border:1px solid var(--v2-trait);
  border-radius:var(--v2-r);box-shadow:var(--v2-ombre-haute);padding:7px;
  animation:v2-monte var(--v2-t) ease-out}
@keyframes v2-monte{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.v2-menu button,.v2-menu a{display:flex;align-items:center;gap:11px;width:100%;padding:9px 11px;border:0;
  background:transparent;border-radius:9px;cursor:pointer;font:inherit;font-size:13px;color:var(--ink);
  text-align:left;text-decoration:none;transition:background var(--v2-t)}
.v2-menu button:hover,.v2-menu a:hover{background:var(--v2-surface-2)}
.v2-menu .sep{height:1px;background:var(--v2-trait);margin:6px 4px}
.v2-menu .tt{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);padding:8px 11px 5px}
.v2-menu .val{margin-left:auto;font-size:11.5px;color:var(--muted);font-weight:600}
/* Le sous-menu lateral : meme boite, pose a cote de son entree. */
.v2-sous-menu{min-width:214px;z-index:81}

/* ================= titres, etiquettes, chiffres ================= */
.v2-h1{margin:0;font-size:36px;font-weight:800;letter-spacing:-.035em;line-height:1.02}
.v2-h2{margin:0;font-size:21px;font-weight:700;letter-spacing:-.025em}
.v2-h3{margin:0;font-size:15px;font-weight:700;letter-spacing:-.01em}
.v2-lab{font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.v2-sub{font-size:12.5px;color:var(--ink-2)}
.v2-faible{font-size:12px;color:var(--muted)}
.v2-mono{font-variant-numeric:tabular-nums}

.v2-n{font-size:44px;font-weight:800;letter-spacing:-.04em;line-height:1;display:inline-block;
  padding-bottom:5px;border-bottom:4px solid transparent;font-variant-numeric:tabular-nums}
.v2-n.xl{font-size:58px}
.v2-n.m{font-size:32px;border-bottom-width:3px}
.v2-n.s{font-size:23px;border-bottom-width:3px;padding-bottom:3px}
.v2-n.xs{font-size:16px;border-bottom-width:2.5px;padding-bottom:2px}
.v2-mesure{border-bottom-color:var(--good)}
.v2-declare{border-bottom-color:var(--brand)}
.v2-estime{border-bottom-style:dashed;border-bottom-color:var(--s-ref)}
.v2-inconnu{color:var(--faint);border-bottom-style:dotted;border-bottom-color:var(--line-2)}
.v2-defaut{color:var(--warn);border-bottom-style:dotted;border-bottom-color:var(--orange)}
.v2-conflit{color:var(--warn);border-bottom-style:double;border-bottom-width:4px;border-bottom-color:var(--orange)}
.v2-unite{font-size:15px;font-weight:600;color:var(--ink-2);margin-left:7px}

/* La meme grammaire, en taille de tableau. Un chiffre porte sa provenance
   partout ou il s'affiche, sinon la regle ne tient que sur les grands. */
.v2-val{display:inline-block;font-variant-numeric:tabular-nums;font-weight:600;
  padding-bottom:2px;border-bottom:2px solid transparent}
.v2-val.v2-mesure{border-bottom-color:var(--good)}
.v2-val.v2-declare{border-bottom-color:var(--brand)}
.v2-val.v2-estime{border-bottom-style:dashed;border-bottom-color:var(--s-ref)}
.v2-val.v2-inconnu{color:var(--faint);font-weight:500;border-bottom-style:dotted;border-bottom-color:var(--line-2)}
.v2-val.v2-defaut{color:var(--warn);border-bottom-style:dotted;border-bottom-color:var(--orange)}
.v2-val.v2-conflit{color:var(--warn);border-bottom-style:double;border-bottom-width:3px;border-bottom-color:var(--orange)}

/* ================= la barre de filtres ================= */
.v2-filtres{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.v2-champ{display:flex;align-items:center;gap:9px;height:38px;padding:0 13px;min-width:260px;
  background:var(--v2-surface);border:1px solid var(--v2-trait);border-radius:var(--v2-r-s);
  color:var(--muted);box-shadow:var(--v2-ombre)}
.v2-champ:focus-within{border-color:var(--brand);box-shadow:var(--v2-lueur)}
.v2-champ input{flex:1;min-width:0;border:0;background:transparent;font:inherit;font-size:13px;
  color:var(--ink);outline:none}
.v2-puces{display:flex;gap:7px;flex-wrap:wrap}
.v2-puces .v2-puce{padding:8px 13px;font-size:12.5px;display:inline-flex;align-items:baseline;gap:7px}

/* ================= surfaces ================= */
.v2-carte{position:relative;background:var(--v2-surface);border:1px solid var(--v2-trait);
  border-radius:var(--v2-r);padding:22px 24px;box-shadow:var(--v2-ombre)}
.v2-carte.creuse{background:transparent;box-shadow:none;border-style:dashed}
.v2-carte.sombre{background:linear-gradient(160deg,#101a2c,#0a1220);border-color:#1e293c;color:#E6EBF3}
.v2-carte.clic{cursor:pointer;transition:transform var(--v2-t),box-shadow var(--v2-t),border-color var(--v2-t)}
.v2-carte.clic:hover{transform:translateY(-2px);box-shadow:var(--v2-ombre-haute);border-color:var(--v2-trait-fort)}
.v2-grille{display:grid;gap:18px}
.v2-rangee{display:flex;gap:18px}

/* ================= boutons ================= */
.v2-b{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border:1px solid var(--v2-trait-fort);background:var(--v2-surface);color:var(--ink);
  border-radius:var(--v2-r-s);padding:10px 16px;font:inherit;font-size:13px;font-weight:600;cursor:pointer;
  transition:background var(--v2-t),border-color var(--v2-t),transform var(--v2-t)}
.v2-b:hover{background:var(--v2-surface-2);border-color:var(--muted)}
.v2-b:active{transform:translateY(1px)}
.v2-b.premier{background:linear-gradient(140deg,var(--brand),var(--brand-2));border-color:transparent;
  color:#fff;font-weight:700;box-shadow:var(--v2-lueur)}
.v2-b.premier:hover{filter:brightness(1.06)}
.v2-b.sm{padding:7px 12px;font-size:12.5px}
.v2-b.plein{width:100%}
.v2-b[disabled]{opacity:.45;cursor:not-allowed}

.v2-seg{display:inline-flex;background:var(--v2-surface);border:1px solid var(--v2-trait);
  border-radius:var(--v2-r-s);padding:3px;box-shadow:var(--v2-ombre)}
.v2-seg button{border:0;background:transparent;color:var(--ink-2);border-radius:7px;padding:7px 14px;
  font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;transition:background var(--v2-t),color var(--v2-t)}
.v2-seg button[aria-pressed="true"]{background:var(--ink);color:var(--surface);font-weight:700}

.v2-puce{border:1px solid var(--v2-trait);background:var(--v2-surface);color:var(--ink-2);border-radius:20px;
  padding:7px 14px;font:inherit;font-size:12.5px;font-weight:500;cursor:pointer;transition:all var(--v2-t)}
.v2-puce:hover{border-color:var(--v2-trait-fort)}
.v2-puce[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--surface);font-weight:600}
.v2-puce .n{color:var(--muted);margin-left:6px}

/* ================= le panneau contextuel =================
   Il s'ancre au CORPS, qui ne defile pas, et non a la page qui defile :
   sinon il se pose au haut du contenu -- donc hors de vue des qu'on a
   descendu -- et sa largeur allonge la page vers la droite. Voir le
   commentaire de `shell.js`, au montage.

   `overflow:hidden` sur le corps garde le panneau ferme hors du cadre :
   glisse a droite, il ne doit pas exister. */
/* CLIP, PAS SEULEMENT HIDDEN (25/09/2026, revue de Territoire) : le panneau
   ferme attend hors champ, 460 px a droite. En overflow:hidden, une mise au
   point faisait defiler le corps vers lui et toute l ecran glissait a gauche.
   overflow:clip interdit tout defilement ; hidden reste le repli. */
.v2-corps{overflow:hidden;overflow:clip}
.v2-panneau{position:absolute;right:0;top:0;bottom:0;width:var(--v2-panneau);z-index:40;
  background:var(--v2-surface);border-left:1px solid var(--v2-trait);box-shadow:var(--v2-ombre-haute);
  display:flex;flex-direction:column;
  transform:translateX(calc(100% + 40px));transition:transform var(--v2-t-lent) cubic-bezier(.22,.7,.3,1)}
.v2-panneau.ouvert{transform:none}
.v2-panneau.large{width:min(var(--v2-panneau-large), 92vw)}
.v2-panneau-tete{padding:22px 24px 18px;border-bottom:1px solid var(--v2-trait);display:flex;gap:12px;align-items:flex-start}
.v2-panneau-corps{padding:20px 24px;display:flex;flex-direction:column;gap:22px;flex:1;overflow:auto}
.v2-panneau-pied{padding:16px 24px;border-top:1px solid var(--v2-trait);display:flex;flex-direction:column;gap:9px;
  background:var(--v2-surface-2)}
.v2-fermer{width:32px;height:32px;border-radius:9px;border:1px solid var(--v2-trait);background:var(--v2-surface);
  color:var(--muted);font-size:16px;cursor:pointer;flex-shrink:0;line-height:1;transition:background var(--v2-t)}
.v2-fermer:hover{background:var(--v2-surface-2);color:var(--ink)}

/* ================= la palette de commandes ================= */
.v2-palette-fond{position:fixed;inset:0;z-index:90;background:rgba(8,14,26,.42);
  backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;align-items:flex-start;
  justify-content:center;padding-top:12vh;animation:v2-fondu var(--v2-t) ease-out}
@keyframes v2-fondu{from{opacity:0}to{opacity:1}}
.v2-palette{width:min(680px,92vw);background:var(--v2-surface);border:1px solid var(--v2-trait);
  border-radius:16px;box-shadow:var(--v2-ombre-haute);overflow:hidden;animation:v2-monte var(--v2-t) ease-out}
.v2-palette-haut{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--v2-trait)}
.v2-palette-haut input{flex:1;border:0;background:transparent;font:inherit;font-size:16px;color:var(--ink);outline:none}
.v2-palette-liste{max-height:54vh;overflow:auto;padding:8px}
.v2-res{display:flex;align-items:center;gap:13px;width:100%;padding:10px 12px;border:0;background:transparent;
  border-radius:10px;cursor:pointer;font:inherit;text-align:left;color:var(--ink)}
.v2-res:hover,.v2-res.on{background:var(--brand-soft)}
.v2-res .ic{width:30px;height:30px;border-radius:9px;background:var(--v2-surface-2);display:flex;
  align-items:center;justify-content:center;flex-shrink:0;color:var(--ink-2)}
.v2-res > svg{flex-shrink:0;color:var(--ink-2)}
.v2-res .t{flex:1;min-width:0}
.v2-res .t .n{display:block;font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v2-res .t .d{display:block;font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v2-res .k{font-size:10.5px;color:var(--faint);font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.v2-palette-haut kbd{font:600 10.5px var(--ui);letter-spacing:.04em;color:var(--muted);
  background:var(--v2-surface-2);border:1px solid var(--v2-trait);border-radius:6px;padding:3px 7px;flex-shrink:0}
.v2-palette-pied{padding:10px 18px;border-top:1px solid var(--v2-trait);background:var(--v2-surface-2);
  font-size:11.5px;color:var(--muted)}
.v2-palette .v2-sect{padding:12px 12px 5px}
.v2-palette .v2-sect:first-child{padding-top:6px}

/* ================= tables ================= */
.v2-tbl{width:100%;border-collapse:collapse;font-size:13px}
.v2-tbl thead th{text-align:left;padding:11px 14px;background:var(--v2-surface-2);
  font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);
  border-bottom:1px solid var(--v2-trait);position:sticky;top:0;z-index:2;cursor:pointer;white-space:nowrap}
.v2-tbl thead th:hover{color:var(--ink)}
.v2-tbl tbody td{padding:13px 14px;border-bottom:1px solid var(--v2-trait)}
.v2-tbl tbody tr{cursor:pointer;transition:background var(--v2-t)}
.v2-tbl tbody tr:hover{background:var(--v2-surface-2)}
.v2-tbl tbody tr.on{background:var(--brand-soft);box-shadow:inset 3px 0 0 var(--brand)}
.v2-tbl .r{text-align:right;font-variant-numeric:tabular-nums}
.v2-tbl .nom{font-weight:600}
.v2-tbl .sous{display:block;margin-top:3px;font-size:11.5px;color:var(--muted)}
.v2-tbl thead th .u{display:block;margin-top:3px;font-size:9.5px;font-weight:600;letter-spacing:.06em;
  text-transform:none;color:var(--faint)}
.v2-tbl thead th[aria-sort]{color:var(--ink)}
.v2-tbl thead th[aria-sort]::after{content:" ↓";font-size:10px}
.v2-tbl thead th[aria-sort="ascending"]::after{content:" ↑"}

/* ================= jauges, crans, barres ================= */
.v2-jauge{height:8px;border-radius:5px;background:var(--surface-3);overflow:hidden;display:flex}
.v2-jauge i{display:block;height:100%;transition:width var(--v2-t-lent) ease-out}
.v2-crans{display:flex;gap:5px}
.v2-crans i{flex:1;height:7px;border-radius:4px;background:var(--surface-3)}
.v2-crans i.on{background:var(--good)}
.v2-crans i.en{background:var(--brand)}
.v2-hachure{background:repeating-linear-gradient(135deg,var(--s-ref) 0 5px,transparent 5px 10px)}

/* ================= etat vide, concu ================= */
.v2-vide{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  padding:48px 40px;gap:14px;color:var(--ink-2);flex:1}
.v2-vide svg{opacity:.35}
.v2-vide .t{font-size:20px;font-weight:700;letter-spacing:-.02em;color:var(--ink)}

/* ================= le bandeau de presentation ================= */
.v2-presentation{position:relative;z-index:4;display:flex;align-items:center;gap:14px;
  padding:9px 20px;background:linear-gradient(90deg,var(--orange-soft),transparent 70%);
  border-bottom:1px solid var(--orange);font-size:12.5px}
.v2-presentation b{color:var(--warn)}

/* ================= la banniere d'un ecran ================= */
/* Une image du territoire, pleine largeur, et des chiffres poses dessus.
   C'est la signature de Touma : on voit le pays avant de lire un mot. */
.v2-hero{position:relative;overflow:hidden;flex-shrink:0;display:flex;flex-direction:column;
  background:#0C1320;color:#fff}
.v2-hero .voile{position:absolute;inset:0;pointer-events:none}
.v2-hero .dedans{position:relative;z-index:2;flex:1;display:flex;flex-direction:column;padding:26px 30px 24px}
.v2-hero a{color:#C7D1E0}

/* La carte occupe tout l'ecran, et ses commandes flottent dessus. Les
   boutons viennent du MOTEUR (`.map-ctl`, avec la vue entiere) : le socle
   les habille au lieu d'en poser une seconde serie qui en saurait moins. */
.v2 .v2-carte-boite{background:var(--map-bg)}
.v2 .map-ctl{right:18px;top:18px;gap:7px;z-index:3}
.v2 .map-ctl button{width:36px;height:36px;border-radius:10px;font-size:17px;
  background:var(--v2-verre);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border:1px solid var(--v2-trait);box-shadow:var(--v2-ombre);transition:background var(--v2-t)}
/* LES OUTILS DE CARTE, EN UNE SEULE COLONNE EN HAUT A DROITE (24/09/2026) :
   recherche et couches au-dessus, zoom et recentrage (le moteur) dessous.
   Les modes de lecture restent seuls en bas a gauche. */
.v2 .v2-carte-boite .map-ctl{top:104px}
.v2 .v2-outils{position:absolute;top:18px;right:18px;z-index:4;display:flex;flex-direction:column;
  align-items:flex-end;gap:7px}
.v2 .v2-outil{all:unset;box-sizing:border-box;position:relative;width:36px;height:36px;border-radius:10px;
  display:grid;place-items:center;cursor:pointer;color:var(--ink);background:var(--v2-verre);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--v2-trait);
  box-shadow:var(--v2-ombre);transition:background var(--v2-t)}
.v2 .v2-outil:hover,.v2 .v2-outil[aria-expanded="true"]{background:var(--surface)}
.v2 .v2-outil:focus-visible{outline:2px solid var(--v2-accent,#3b66c1);outline-offset:2px}
.v2 .v2-badge{position:absolute;top:-5px;right:-5px;min-width:16px;height:16px;padding:0 4px;box-sizing:border-box;
  border-radius:8px;background:var(--v2-accent,#1E3A8A);color:#fff;font-size:10px;font-weight:700;line-height:16px;text-align:center}
.v2 .v2-recherche{display:flex;align-items:center;height:36px;border-radius:10px;background:var(--v2-verre);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--v2-trait);box-shadow:var(--v2-ombre)}
.v2 .v2-recherche input{border:0;background:transparent;font:inherit;font-size:12.5px;color:var(--ink);outline:none;
  width:250px;padding:0 4px 0 12px}
.v2 .v2-recherche .v2-outil{border:0;box-shadow:none;background:transparent}
.v2 .v2-suggestions{position:absolute;top:42px;right:0;width:300px;max-height:320px;overflow:auto;z-index:6;
  background:var(--surface);border:1px solid var(--line);border-radius:11px;box-shadow:var(--v2-ombre);padding:5px}
.v2 .v2-suggestions button{all:unset;box-sizing:border-box;display:flex;align-items:baseline;gap:8px;width:100%;
  padding:7px 9px;border-radius:7px;cursor:pointer;font-size:12.5px;color:var(--ink)}
.v2 .v2-suggestions button:hover,.v2 .v2-suggestions button.on{background:var(--surface-2)}
.v2 .v2-suggestions .v2-faible{margin-left:auto;font-size:11px}
.v2 .map-hint{left:18px;bottom:16px;z-index:3;font-family:var(--ui);font-size:11px;padding:6px 11px;
  border-radius:8px;background:var(--v2-verre);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border:1px solid var(--v2-trait);opacity:1}

/* une ligne de couverture, dans la colonne posee sur la carte */
.v2-pref{display:block;width:100%;text-align:left;border:0;background:transparent;cursor:pointer;
  font:inherit;color:var(--ink);padding:9px 10px;border-radius:9px;transition:background var(--v2-t)}
.v2-pref:hover{background:var(--v2-surface-2)}

/* une decision : une ligne qui s'ouvre, pas une carte de plus */
.v2-decision{transition:background var(--v2-t),padding-left var(--v2-t)}
.v2-decision:hover{background:var(--v2-surface-2);padding-left:8px;border-radius:9px}
.v2-decision svg{opacity:.4}

/* ================= une scene ================= */
/* Un fond profond pour une figure qui doit dominer l'ecran : la chaine
   de l'energie, une carte, un flux. Ce n'est pas une carte de plus dans
   une grille, c'est le sujet de la page. */
.v2-scene{position:relative;overflow:hidden;flex-shrink:0;
  background:linear-gradient(170deg,var(--v2-surface) 0%,var(--v2-surface-2) 100%);
  border-bottom:1px solid var(--v2-trait)}
.v2-scene .voile{position:absolute;inset:0;pointer-events:none;opacity:.6}
.v2-maillon{cursor:pointer;outline:none}
.v2-maillon rect{transition:opacity var(--v2-t)}
.v2-maillon:hover rect,.v2-maillon:focus-visible rect{fill-opacity:1;filter:brightness(1.08)}
.v2-maillon:focus-visible rect{stroke:var(--brand);stroke-width:2;stroke-dasharray:none}

.v2-select{height:38px;padding:0 12px;border-radius:var(--v2-r-s);border:1px solid var(--v2-trait);
  background:var(--v2-surface);color:var(--ink);font:inherit;font-size:13px;cursor:pointer;
  box-shadow:var(--v2-ombre)}
.v2-select:focus{outline:none;border-color:var(--brand);box-shadow:var(--v2-lueur)}

/* LE TABLEAU DES BATIMENTS (06/10/2026, retour de Bayss) : l'ile d'abord,
   les filtres en listes deroulantes, la recherche a droite, deux gestes au
   bout de chaque ligne (v2/batiments.js). */
.bt-tete{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}
.bt-iles-tel{display:none}
.bt-carte-gestes{display:flex;justify-content:flex-end;margin-top:-2px}
.bt-iles button{display:inline-flex;align-items:baseline;gap:7px}
.bt-iles button .n{color:var(--muted);font-weight:500;font-size:11.5px;font-variant-numeric:tabular-nums}
.bt-iles button[aria-pressed="true"] .n{color:inherit;opacity:.7}
.bt-filtres{gap:10px}
.bt-choix{width:200px}
.bt-choix.on{border-color:var(--brand);color:var(--brand);font-weight:600}
.bt-plus .n{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--brand);color:#fff;
  font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.bt-plus.on{border-color:var(--brand)}
.bt-cherche{width:320px}
.bt-gestes{display:inline-flex;gap:6px;white-space:nowrap;cursor:default}
.bt-gestes .v2-b.sm{padding:5px 10px;font-size:12px}
.v2-tbl .bt-td-gestes,.v2-tbl th.bt-th-gestes{width:1%;white-space:nowrap;text-align:center}
/* LES TITRES DES COLONNES SUR UNE MEME LIGNE (06/10/2026, « les titres ne sont pas ecrits au meme niveau ») :
   une colonne qui porte son unite dessous ne descend plus les autres au milieu. */
.bt-tbl thead th{vertical-align:top}
/* l etiquette « un seul batiment » sur la carte de Territoire */
.terr-solo{position:absolute;left:12px;top:12px;z-index:3;display:flex;align-items:center;gap:10px;max-width:calc(100% - 92px);
  padding:6px 6px 6px 13px;border-radius:var(--v2-r-s);background:var(--v2-surface);border:1px solid var(--v2-trait);font-size:13px}
.terr-solo .k{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.terr-solo b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.terr-solo .v2-b.sm{flex-shrink:0}
/* une ville ou un village sans contour : on le dit, sans quitter la carte */
.terr-avis{margin:0 6px 8px;padding:9px 11px;border-radius:var(--v2-r-s);background:var(--brand-soft);color:var(--ink);
  font-size:12.5px;line-height:1.45;border:1px solid color-mix(in srgb,var(--brand) 30%,transparent)}
/* le batiment d une facture, choisi : un choix pose, une croix pour en changer (06/10/2026) */
.fac-site{display:flex;align-items:center;gap:10px;margin-top:9px;padding:10px 10px 10px 14px;border:1px solid var(--brand);
  border-radius:var(--v2-r-s);background:var(--brand-soft)}
.fac-site-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.fac-site-t b{font-size:14px;color:var(--ink)}
.fac-site-t span{font-size:12px;color:var(--muted)}
.fac-site-x{flex-shrink:0;width:30px;height:30px;border-radius:8px;border:1px solid var(--v2-trait);background:var(--v2-surface);
  color:var(--ink-2);font:inherit;font-size:18px;line-height:1;cursor:pointer}
.fac-site-x:hover{border-color:var(--muted);color:var(--ink)}
/* un chiffre et son unite ne se coupent pas (« 366,5 / MWh » sur deux lignes, a 1280 px) */
.bt-tbl td.r{white-space:nowrap}
/* jusqu a 1600 px de large : des cases plus serrees, des listes plus etroites */
@media (max-width:1600px){
  .bt-choix{width:165px}
  .bt-cherche{width:250px}
  .bt-tbl thead th,.bt-tbl tbody td{padding-left:8px;padding-right:8px}
  .bt-tbl thead th{letter-spacing:.04em}
  /* la courbe des douze mois cede sa place : elle se relit dans la fiche */
  .bt-tbl .bt-mois{display:none}
  .bt-gestes .v2-b.sm{padding:5px 8px}
}
@media (max-width:640px){
  .bt-tete .bt-iles-boite{order:3;width:100%}
  .bt-iles{display:none}
  .bt-iles-tel{display:block;width:100%}
  .bt-choix{width:auto;flex:1 1 calc(50% - 5px);min-width:0}
  .bt-cherche{width:auto;flex:1 1 100%;order:-1;min-width:0}
}

/* ================= onglets d'un ecran ================= */
/* Un onglet n'est pas un bouton de plus : il dit ou on est dans un meme
   sujet. Le filet sous l'actif suffit, et il ne crie pas. */
.v2-onglet{position:relative;border:0;background:transparent;color:var(--ink-2);font:inherit;
  font-size:13.5px;font-weight:600;padding:11px 15px;cursor:pointer;border-radius:9px 9px 0 0;
  transition:color var(--v2-t),background var(--v2-t)}
.v2-onglet:hover{color:var(--ink);background:var(--v2-surface-2)}
.v2-onglet.on{color:var(--brand);font-weight:700}
.v2-onglet.on::after{content:"";position:absolute;left:12px;right:12px;bottom:0;height:2.5px;
  border-radius:3px 3px 0 0;background:var(--brand);box-shadow:0 0 10px 0 rgba(31,95,204,.5)}

/* La barre d'un espace de travail : elle porte les sous-sections d'une
   meme entree de rail, et se pose sous le titre de l'espace. */
.v2-espace-barre{display:flex;gap:4px;margin-top:20px;flex-wrap:wrap}

/* ================= une ligne qui s'ouvre ================= */
.v2-ligne{display:flex;align-items:center;gap:14px;width:100%;text-align:left;font:inherit;
  color:var(--ink);cursor:pointer;padding:14px 18px;border-radius:var(--v2-r);
  background:var(--v2-surface);border:1px solid var(--v2-trait);box-shadow:var(--v2-ombre);
  transition:border-color var(--v2-t),transform var(--v2-t)}
.v2-ligne:hover{border-color:var(--v2-trait-fort);transform:translateX(2px)}
.v2-ligne .sev{width:4px;align-self:stretch;border-radius:3px;flex-shrink:0}
.v2-ligne svg{opacity:.35;flex-shrink:0}

/* ================= un tableau de cartes ================= */
.v2-kanban{display:flex;gap:14px;align-items:flex-start;overflow-x:auto;padding-bottom:8px}
.v2-col{flex:1;min-width:230px;background:var(--v2-surface-2);border:1px solid var(--v2-trait);
  border-radius:var(--v2-r);padding:12px;display:flex;flex-direction:column;gap:10px}
.v2-col .tete{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:2px 4px 6px}
.v2-col .tete .n{margin-left:auto;font-size:11px;letter-spacing:0;color:var(--ink-2)}
.v2-tk{display:flex;flex-direction:column;gap:7px;width:100%;text-align:left;font:inherit;
  color:var(--ink);cursor:pointer;padding:12px 13px;border-radius:10px;background:var(--v2-surface);
  border:1px solid var(--v2-trait);transition:border-color var(--v2-t),transform var(--v2-t)}
.v2-tk:hover{border-color:var(--brand);transform:translateY(-1px)}
.v2-tk .t{font-size:13px;font-weight:700}
.v2-tk .b{font-size:11.5px;color:var(--muted)}
.v2-tk .r{display:flex;justify-content:space-between;gap:10px;font-size:11.5px;color:var(--ink-2)}
.v2-tk .jauge{display:block;height:4px;border-radius:3px;background:var(--surface-3);overflow:hidden}
.v2-tk .jauge i{display:block;height:100%;background:var(--brand)}

/* ================= crans d'un cycle ================= */
.v2-cran{width:14px;height:5px;border-radius:3px;background:var(--surface-3);display:inline-block}
.v2-cran.on{background:var(--good)}

/* ================= suggestions sous un champ ================= */
.v2-suggestions{position:absolute;top:calc(100% + 6px);right:0;z-index:30;min-width:280px;
  background:var(--v2-surface);border:1px solid var(--v2-trait);border-radius:var(--v2-r);
  box-shadow:var(--v2-ombre-haute);padding:6px;max-height:280px;overflow:auto}

/* ================= la fin d'une session ================= */
/* L'avis : discret, en bas a droite, il n'interrompt pas la saisie en
   cours. Quelqu'un qui l'ignore perd sa session, pas son travail : il a
   ete prevenu et il peut encore agir. */
.v2-avis{position:fixed;right:20px;bottom:20px;z-index:85;display:flex;align-items:center;gap:13px;
  padding:13px 16px;border-radius:var(--v2-r);background:var(--v2-surface);
  border:1px solid var(--orange);box-shadow:var(--v2-ombre-haute);font-size:13px;max-width:440px;
  animation:v2-monte var(--v2-t) ease-out}
.v2-avis .pt{width:9px;height:9px;border-radius:50%;background:var(--orange);flex-shrink:0}

/* La fin : un voile, une phrase, un bouton. Rien derriere ne se lit plus,
   et c'est voulu : les chiffres affiches ne se rafraichissent plus. */
.v2-fin{position:fixed;inset:0;z-index:95;display:flex;align-items:center;justify-content:center;
  background:rgba(8,14,26,.62);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  animation:v2-fondu var(--v2-t) ease-out}
.v2-fin .boite{width:min(430px,92vw);padding:30px 32px;border-radius:16px;text-align:center;
  background:var(--v2-surface);border:1px solid var(--v2-trait);box-shadow:var(--v2-ombre-haute)}

/* ================= animations d'entree ================= */
.v2-apparait{animation:v2-apparait var(--v2-t-lent) ease-out both}
@keyframes v2-apparait{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
/* Le panneau est HORS de cette regle. Une animation en `both` fige sa
   derniere image, `transform:none`, et un panneau ferme resterait alors
   ouvert par-dessus l'ecran : l'animation gagne toujours contre la
   propriete. Le bogue est invisible a la lecture, pas a l'usage. */
.v2-page > *:not(.v2-panneau){animation:v2-apparait var(--v2-t-lent) ease-out both}

/* ================= lu, mais pas vu =================

   UN ECRAN PEUT NE PAS AVOIR DE TITRE VISIBLE SANS ETRE SANS TITRE.

   La carte du territoire est une toile plein cadre : lui poser un grand
   titre par-dessus mangerait la carte, qui EST la page. Mais un document
   sans `h1` n'a pas de plan : un lecteur d'ecran annonce « region
   principale », sans dire de quoi, et l'utilisateur doit explorer pour
   comprendre ou il vient d'arriver.

   Ce titre existe donc, et il ne se voit pas. Pas `display:none`, qui le
   retirerait aussi des lecteurs d'ecran : la technique qui garde
   l'element dans l'arbre d'accessibilite tout en le sortant du dessin. */
.v2-hors-ecran{position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

/* ================= responsive ================= */
@media (max-width:1240px){
  :root{--v2-rail:72px;--v2-panneau:380px}
  .v2-nav span.t,.v2-sect,.v2-profil-t{display:none}
  .v2-nav{justify-content:center;padding:11px 0}
  .v2-nav .cnt{position:absolute;top:4px;right:10px;margin:0}
  .v2-profil-b{justify-content:center}
  .v2-loupe{min-width:44px;padding:0 11px}
  .v2-loupe span.t,.v2-loupe kbd{display:none}
  /* Menu replie a 72 px : le logo ne tient plus dans sa largeur, la
     marque reprend sa taille naturelle et son petit separateur. */
  .v2-bandeau{padding-left:18px}
  .v2-bandeau > .v2-marque{width:auto;height:auto;margin-right:0;padding:6px 10px 6px 6px;
    border-right:0;border-radius:var(--v2-r-s)}
  .v2-bandeau > .v2-marque img{height:28px}
  .v2-bandeau > .v2-sep{display:block}
  .v2-bandeau > .v2-fil{margin-left:0}
}
@media (max-width:820px){
  :root{--v2-panneau:100%}
  .v2-h1{font-size:28px}
  .v2-n{font-size:34px}
  .v2-n.xl{font-size:42px}
  .v2-heure,.v2-meteo{display:none}
}

/* ================= le rail passe EN BAS sur un telephone =================

   A 375 px, un rail lateral replie prend 72 px : dix-neuf pour cent de la
   largeur, en permanence, pour une colonne d'icones. Sur le terrain, c'est
   la place d'un nom de batiment ou d'une valeur de compteur.

   Et ce n'est pas seulement une question de place : sur un telephone tenu
   d'une main, le haut de l'ecran et le bord gauche sont ce que le pouce
   atteint le plus mal. La navigation descend donc la ou le pouce arrive.

   CE QUI CHANGE, ET CE QUI NE CHANGE PAS

   Le rail devient une barre fixe en bas, en rangee, defilable
   horizontalement si les entrees ne tiennent pas. Le profil en sort : il
   rejoint le bandeau du haut, ou il est rare qu'on ait besoin de lui vite.
   Les SECTIONS disparaissent -- « COMMANDER », « CONNAITRE », « AGIR »
   n'ont pas de sens en rangee.

   Le contenu garde sa place sous la barre grace a `padding-bottom` : sans
   cela, la derniere ligne de chaque ecran vit sous la barre et ne se lit
   jamais. C'est le defaut classique des barres basses, et il ne se voit
   qu'en bas de page.

   On garde la marque de l'ecran actif, en trait au-DESSUS de l'entree
   plutot qu'a gauche : le meme signe, tourne avec la barre.
   ========================================================================= */
@media (max-width:640px){
  .v2-page{flex-direction:column}
  .v2-rail{
    position:fixed;left:0;right:0;bottom:0;top:auto;width:auto;height:auto;
    flex-direction:row;z-index:30;
    border-right:0;border-top:1px solid var(--v2-trait);
    box-shadow:0 -6px 24px -14px rgba(10,16,28,.5);
    /* La barre ne mange pas la zone du geste de retour des telephones. */
    padding-bottom:env(safe-area-inset-bottom,0)
  }
  .v2-rail-nav{
    flex:1;flex-direction:row;overflow-x:auto;overflow-y:hidden;
    padding:6px 8px;gap:2px;scroll-snap-type:x proximity
  }
  .v2-rail-nav .v2-sect{display:none}
  .v2-nav{
    flex-direction:column;gap:4px;min-width:64px;padding:7px 6px;
    font-size:10.5px;font-weight:600;text-align:center;scroll-snap-align:center
  }
  /* Le libelle revient : une rangee d'icones sans mot se devine, elle ne
     se lit pas. Il est petit, mais il est la. */
  .v2-nav span.t{display:block;font-size:10px;line-height:1.15;
    max-width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .v2-nav .cnt{position:absolute;top:2px;right:10px;margin:0;font-size:9.5px;padding:1px 5px}
  .v2-nav.on::before{left:12px;right:12px;top:0;bottom:auto;width:auto;height:3px;
    border-radius:0 0 3px 3px}
  /* LE PROFIL RESTE, REDUIT A SA PASTILLE.

     Un premier jet le cachait : en bas, il prend la place d'un ecran, et
     on ne l'ouvre qu'une fois par session. Mais le bandeau du haut ne
     porte ni le compte, ni la langue, ni le theme, ni la deconnexion :
     le cacher les rendait tous les quatre INATTEIGNABLES sur telephone.
     Un raccourci qu'on retire doit laisser un autre chemin ; sinon ce
     n'est pas un gain de place, c'est une fonction perdue. */
  .v2-profil{border-top:0;border-left:1px solid var(--v2-trait);
    padding:6px 8px;display:flex;align-items:center}
  .v2-profil-b{padding:7px 8px;min-width:48px;justify-content:center}
  .v2-profil-t{display:none}
  .v2-corps{padding-bottom:calc(66px + env(safe-area-inset-bottom,0))}
  /* Le panneau lateral couvre l'ecran entier sur telephone : il doit donc
     passer AU-DESSUS de la barre, sinon ses boutons sont sous elle. */
  .v2-panneau{z-index:40;bottom:0}
  .v2-panneau-pied{padding-bottom:calc(16px + env(safe-area-inset-bottom,0))}
}
@media (prefers-reduced-motion:reduce){
  .v2-panneau,.v2-jauge i,.v2-b,.v2-carte.clic{transition:none}
  .v2-page > *,.v2-apparait,.v2-menu,.v2-palette,.v2-palette-fond{animation:none}
}

/* UNE LIGNE QU'ON PEUT CORRIGER SE VOIT AU SURVOL, PAS AVANT.
   Elle garde l'allure d'une ligne de lecture : souligner en permanence
   dix lignes de fiche ferait un formulaire la ou l'on vient lire. */
.v2-ligne-clic { transition: background .12s ease, color .12s ease; }
.v2-ligne-clic svg { opacity: 0; color: var(--brand); transition: opacity .12s ease; }
.v2-ligne-clic:hover, .v2-ligne-clic:focus-visible { background: var(--surface-2); }
.v2-ligne-clic:hover svg, .v2-ligne-clic:focus-visible svg { opacity: 1; }


/* ---------------------------------------------------------------------
   L'ENTREE (26/09/2026)
   Le logo se forme a partir de particules, la signature s'ecrit, puis
   l'accueil. Un seul fond sombre, quel que soit le theme : c'est une
   scene, pas une page de lecture.
   --------------------------------------------------------------------- */
.v2-entree{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(ellipse at 50% 42%,#0E1A2E 0,#05080D 68%);cursor:pointer;outline:none;overflow:hidden}
.v2-entree canvas{position:absolute;inset:0;width:100%;height:100%}
.v2-entree-signature{position:absolute;left:0;right:0;top:66%;text-align:center;font-family:var(--mono,ui-monospace,monospace);
  font-size:clamp(16px,1.6vw,22px);letter-spacing:.3em;text-transform:uppercase;color:rgba(242,245,249,.86);opacity:0;transform:translateY(8px);
  transition:opacity .9s ease,transform .9s ease}
.v2-entree-signature.on{opacity:1;transform:none}
.v2-entree-bouton{position:absolute;left:50%;bottom:64px;transform:translateX(-50%);background:transparent;
  border-color:rgba(242,245,249,.28);color:#F2F5F9}
.v2-entree-bouton:hover{background:rgba(242,245,249,.08);border-color:rgba(242,245,249,.5)}
.v2-entree-aide{position:absolute;left:0;right:0;bottom:30px;text-align:center;font-size:13.5px;letter-spacing:.1em;
  text-transform:uppercase;color:rgba(242,245,249,.55)}
.v2-entree:focus-visible{box-shadow:inset 0 0 0 2px var(--brand)}
/* LE GERME (06/10/2026) : le logo qui s'allume et la barre qui court. Le
   meme au chargement (app.js, `ecranAttente`, dans `.att`) et au debut de
   l'entree (entree.js, dans `.v2-entree-germe`) : les deux cadres couvrent
   la fenetre, et le logo a son centre a 42 % de la hauteur, la ou le grand
   logo de l'entree aura le sien. Assez grand pour qu'on le voie. Dans
   l'entree, la place du logo est vide : c'est le canvas qui le dessine. */
.touma-germe,.v2-entree-germe{--lw:clamp(170px,30vw,400px);--lh:calc(var(--lw) * .275);--ecart:max(14px,calc(var(--lh) * .45))}
.touma-germe{position:fixed;inset:0;background:var(--ground);z-index:60;pointer-events:none}
.v2-entree-germe{position:absolute;pointer-events:none}
.touma-germe-logo{position:absolute;left:50%;top:42%;display:block;width:var(--lw);height:var(--lh);transform:translate(-50%,-50%)}
.v2-entree-germe .touma-germe-logo{visibility:hidden}
.touma-germe-piste{position:absolute;left:50%;top:calc(42% + var(--lh) / 2 + var(--ecart));display:block;width:var(--lw);height:3px;
  transform:translateX(-50%);border-radius:2px;background:var(--line);overflow:hidden}
.touma-germe-piste i{display:block;width:38%;height:3px;border-radius:2px;background:var(--brand);animation:touma-att 1.6s ease-in-out infinite}
@keyframes touma-att{0%{transform:translateX(-110%)}100%{transform:translateX(320%)}}
@media (prefers-reduced-motion:reduce){.touma-germe-piste i{animation:none;width:100%;opacity:.5}}
.v2-entree-voile{position:absolute;inset:0;background:var(--ground);pointer-events:none}
/* L'entree ne fait pas l'entree des pages (06/10/2026, Bayss : « pendant un
   instant l'ecran reapparait, avec un petit decalage »). `.v2-page > *`
   fait monter chaque ecran de 8 px depuis une opacite nulle : l'entree, qui
   prend la suite du chargement au meme pixel, repartait transparente et
   8 px trop bas. Seule l'entree est en plein ecran (`pleinEcran`, shell.js). */
.v2-plein .v2-page > *{animation:none}
.v2-entree-bouton{opacity:0;transition:opacity .8s ease,background-color .2s ease,border-color .2s ease}
.v2-entree-bouton.on{opacity:1}

/* ---------------------------------------------------------------------
   L'ACCUEIL EN BANDES (26/09/2026)
   La journee, la chaine d'un bout a l'autre, les systemes, puis ce qu'il
   y a a faire. Le trait sous un chiffre dit son etat ; un maillon vide
   est creux, en tirets, jamais un zero.
   --------------------------------------------------------------------- */
.v2-jour{display:flex;height:10px;border-radius:5px;overflow:hidden;background:var(--v2-trait)}
.v2-jour i{display:block;height:100%}
.v2-hero .v2-jour{background:rgba(255,255,255,.12)}
.v2-pouls{display:grid;grid-template-columns:repeat(2,minmax(150px,1fr));gap:18px 26px}
.v2-pouls .v{font-size:30px;font-weight:800;letter-spacing:-.04em;line-height:1;color:#fff;font-variant-numeric:tabular-nums}
.v2-pouls .v small{font-size:13px;font-weight:600;margin-left:5px;color:#C7D1E0}
.v2-pouls .ref{margin-top:6px;font-size:11.5px;color:#8792A5}
.v2-chaine{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:14px;align-items:stretch}
.v2-maillon{position:relative;padding:16px 18px 14px;border:1px solid var(--v2-trait);border-radius:var(--v2-r-s);
  background:var(--v2-surface-2);min-width:0}
.v2-maillon + .v2-maillon{margin-left:26px}
.v2-maillon + .v2-maillon::before{content:"";position:absolute;left:-26px;top:50%;width:26px;height:2px;
  background:linear-gradient(90deg,var(--v2-trait-fort),var(--brand));transform:translateY(-50%)}
.v2-maillon + .v2-maillon::after{content:"";position:absolute;left:-8px;top:50%;width:7px;height:7px;
  border-top:2px solid var(--brand);border-right:2px solid var(--brand);transform:translateY(-50%) rotate(45deg)}
.v2-maillon.creux{background:transparent;border-style:dashed}
.v2-maillon .grand{margin-top:10px;font-size:30px;font-weight:800;letter-spacing:-.04em;line-height:1.05;font-variant-numeric:tabular-nums}
.v2-maillon .grand small{font-size:13px;font-weight:600;color:var(--ink-2);margin-left:5px}
.v2-maillon .ligne{display:flex;align-items:baseline;gap:8px;margin-top:7px;font-size:12.5px;color:var(--ink-2)}
.v2-maillon .ligne b{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.v2-systemes{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:14px}
.v2-systeme{text-align:left;font:inherit;color:inherit;display:flex;flex-direction:column;gap:10px;padding:16px 18px;
  border:1px solid var(--v2-trait);border-radius:var(--v2-r-s);background:var(--v2-surface-2);cursor:pointer;
  transition:transform var(--v2-t),border-color var(--v2-t),box-shadow var(--v2-t)}
.v2-systeme:hover,.v2-systeme:focus-visible{transform:translateY(-2px);border-color:var(--v2-trait-fort);box-shadow:var(--v2-ombre)}
.v2-systeme.fixe{cursor:default}
.v2-systeme.fixe:hover{transform:none;border-color:var(--v2-trait);box-shadow:none}
.v2-systeme .nom{font-size:16px;font-weight:800;letter-spacing:-.01em}
.v2-systeme .att{font-size:11.5px;color:var(--warn);font-weight:600}
.v2-systeme .grand{font-size:26px;font-weight:800;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}
.v2-systeme .grand small{font-size:12px;font-weight:600;color:var(--ink-2);margin-left:4px}
.v2-systeme .deux{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media (max-width:1180px){
  .v2-chaine{grid-template-columns:1fr 1fr;gap:12px}
  .v2-maillon + .v2-maillon{margin-left:0}
  .v2-maillon + .v2-maillon::before,.v2-maillon + .v2-maillon::after{display:none}
}
@media (prefers-reduced-motion:reduce){.v2-entree-signature,.v2-systeme{transition:none}}


/* ---------------------------------------------------------------------
   L'ACCUEIL EN SCENE (26/09/2026, apres-midi)
   La carte du pays est le fond ; la donnee de l'etape s'ecrit dessus, a
   gauche, sur un degrade qui la rend lisible sans l'enfermer dans une
   boite. Les etapes se choisissent en bas a gauche.
   --------------------------------------------------------------------- */
.v2-acc-scene{position:relative;flex-shrink:0;height:clamp(600px,68vh,840px);overflow:hidden;background:#04070C;color:#F2F5F9}
.v2-acc-scene canvas,.v2-acc-fond,.v2-acc-fond img{position:absolute;inset:0;width:100%;height:100%}
.v2-acc-fond img{object-fit:cover;object-position:center}
.v2-acc-voile{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(4,7,12,.9) 0,rgba(4,7,12,.72) 30%,rgba(4,7,12,.18) 56%,rgba(4,7,12,0) 72%),
             linear-gradient(0deg,rgba(4,7,12,.8) 0,rgba(4,7,12,0) 26%),
             linear-gradient(180deg,rgba(4,7,12,.35) 0,rgba(4,7,12,0) 18%)}
.v2-acc-panneau{position:absolute;left:36px;top:30px;bottom:78px;width:min(580px,46%);display:flex;flex-direction:column;justify-content:center;padding-top:44px;
  z-index:2;opacity:0;transform:translateY(10px);transition:opacity .6s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.v2-acc-panneau.on{opacity:1;transform:none}
.v2-acc-lab{color:#8FB3F5}
.v2-acc-num{position:absolute;left:0;top:0}
.v2-acc-annee{margin-top:6px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#8792A5}
.v2-acc-pays{display:flex;flex-direction:column;height:100%}
.v2-acc-panneau.pays{justify-content:flex-start;padding-top:22px}
.v2-acc-pays .v2-acc-titre{margin-top:0}
.v2-acc-pays .v2-acc-roue{margin:26px 0 0}
.v2-acc-pays .v2-acc-barre-b{margin-top:30px}
.v2-acc-roue-t em{font-style:normal;margin-top:6px;font-size:12px;color:#8792A5;letter-spacing:.06em}
.v2.v2-plein .v2-bandeau,.v2.v2-plein .v2-rail{display:none}
.v2.v2-plein .v2-page{padding:0}
.v2-acc-titre{font-size:46px;font-weight:800;letter-spacing:-.035em;line-height:1.02;margin-top:8px}
.v2-acc-sous{margin-top:10px;font-size:14px;color:#C7D1E0;line-height:1.5}
.v2-acc-grand>span,.v2-acc-moyen>span{display:inline-block}
.v2-acc-grand{margin-top:12px;font-size:76px;font-weight:800;letter-spacing:-.045em;line-height:1;font-variant-numeric:tabular-nums}
.v2-acc-grand small{font-size:22px;font-weight:600;letter-spacing:-.01em;margin-left:10px;color:#C7D1E0}
.v2-acc-moyen{margin-top:7px;font-size:28px;font-weight:800;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}
.v2-acc-moyen small{font-size:13px;font-weight:600;margin-left:5px;color:#C7D1E0}
.v2-acc-ligne{display:flex;align-items:baseline;gap:10px;margin-top:9px;font-size:14px;color:#C7D1E0}
.v2-acc-ligne b{font-weight:800;color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap}
.v2-acc-ligne b.faible{color:#8792A5;font-weight:600}
.v2-acc-jours{display:flex;flex-direction:column;gap:12px;margin-top:10px}
.v2-acc-jour{display:flex;height:8px;border-radius:4px;overflow:hidden;background:rgba(255,255,255,.12)}
.v2-acc-jour i{display:block;height:100%}
.v2-acc-pouls{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:16px 22px;margin-top:22px;padding-top:18px;border-top:1px solid rgba(255,255,255,.14)}
.v2-acc-etapes{position:absolute;left:36px;bottom:26px;z-index:3;display:flex;gap:6px;flex-wrap:wrap}
.v2-acc-etapes button{font:inherit;font-size:12.5px;display:flex;align-items:center;gap:9px;color:#A7B4C8;background:rgba(4,7,12,.45);
  border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:7px 13px 7px 10px;cursor:pointer;transition:background var(--v2-t),color var(--v2-t)}
.v2-acc-etapes button i{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.5}
.v2-acc-etapes button.on{color:#fff;background:rgba(240,138,46,.2);border-color:rgba(240,138,46,.55)}
.v2-acc-etapes button.on i{background:var(--brand,#F08A2E);opacity:1}
.v2-acc-etapes button:hover{color:#fff;background:rgba(255,255,255,.1)}
.v2-acc-etapes button:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.v2-acc-note{position:absolute;right:26px;top:22px;z-index:3;text-align:right;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:rgba(242,245,249,.5)}
.v2-acc-etiquettes{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:hidden}
.v2-acc-salut{position:absolute;right:30px;top:26px;z-index:3;text-align:right;opacity:0;transition:opacity .6s ease}
.v2-acc-salut.on{opacity:1}
.v2-acc-salut span{display:block;font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:#8FB3F5}
.v2-acc-salut b{display:block;margin-top:2px;font-size:22px;font-weight:800;letter-spacing:-.02em;color:#fff}
.v2-acc-etiq.nu{padding:0;background:none;border:0;backdrop-filter:none;text-shadow:0 1px 8px rgba(0,0,0,.9),0 0 2px rgba(0,0,0,.9)}
.v2-acc-etiq.nu b{font-size:15px}
.v2-acc-etiq.nu span{font-size:12.5px;color:#DCE4F0}
.v2-acc-etiq.nu.d .in{transform:translate(0,-50%);text-align:left}
.v2-acc-etiq.nu.h .in{transform:translate(-50%,-100%);text-align:center}
.v2-acc-etiq.nu.b .in{transform:translate(-50%,0);text-align:center}
.v2-acc-etiq.nu.g .in{transform:translate(-100%,-50%);text-align:right}
.v2-acc-etiq.tard{opacity:0!important;transition:opacity .7s ease}
.v2-acc-etiquettes.prete .v2-acc-etiq.tard{opacity:1!important}
.v2-acc-bienvenue{position:absolute;inset:0;z-index:6;display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:#04070C;transition:opacity .6s ease .5s;text-align:center}
.v2-acc-bienvenue span{font-size:clamp(14px,1.4vw,18px);letter-spacing:.3em;text-transform:uppercase;color:#8FB3F5;
  animation:v2-acc-in .9s cubic-bezier(.2,.7,.2,1) .05s both;transition:transform 1.1s cubic-bezier(.4,0,.2,1),opacity .8s ease .3s}
.v2-acc-bienvenue b{margin-top:10px;font-size:clamp(34px,5vw,72px);font-weight:800;letter-spacing:-.03em;color:#fff;
  animation:v2-acc-in .9s cubic-bezier(.2,.7,.2,1) .2s both;transition:transform 1.1s cubic-bezier(.4,0,.2,1),opacity .8s ease .3s}
@keyframes v2-acc-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
/* Le bonjour couvre toute la fenetre : au-dessus du menu, de la barre et
   des cartes, sous l'avis de fin de session (95). */
.v2-acc-bienvenue.plein{position:fixed;z-index:92}
/* le bonjour part en 1,15 s au lieu de 1,6 (06/10/2026, « raccourcis aussi le bonjour ») */
.v2-acc-bienvenue.part{opacity:0;pointer-events:none;transition:opacity .7s ease .45s}
.v2-acc-bienvenue.part span,.v2-acc-bienvenue.part b{animation:none;transform:translate(38vw,-34vh) scale(.35);opacity:0}
.v2-acc-scene.attend .v2-acc-panneau,.v2-acc-scene.attend .v2-acc-etiquettes,.v2-acc-scene.attend .v2-acc-etapes,.v2-acc-scene.attend .v2-acc-salut{opacity:0!important}
/* LE THEME CLAIR : la scene passe au jour. Les memes elements, en clair. */
html:not([data-theme="dark"]) .v2-acc-scene{background:#DCE8F3;color:#0B1729}
html:not([data-theme="dark"]) .v2-carte,html:not([data-theme="dark"]) .v2-systeme{border-color:rgba(11,23,41,.22)}
html:not([data-theme="dark"]) .v2-systeme:hover,html:not([data-theme="dark"]) .v2-systeme:focus-visible{border-color:rgba(11,23,41,.4)}
html:not([data-theme="dark"]) .v2-acc-voile{background:linear-gradient(90deg,rgba(236,243,249,.94) 0,rgba(236,243,249,.8) 30%,rgba(236,243,249,.25) 56%,rgba(236,243,249,0) 72%),
  linear-gradient(0deg,rgba(236,243,249,.85) 0,rgba(236,243,249,0) 26%),linear-gradient(180deg,rgba(236,243,249,.4) 0,rgba(236,243,249,0) 18%)}
html:not([data-theme="dark"]) .v2-acc-lab,html:not([data-theme="dark"]) .v2-acc-salut span{color:#2F5FB3}
html:not([data-theme="dark"]) .v2-acc-salut b,html:not([data-theme="dark"]) .v2-acc-roue-t b,html:not([data-theme="dark"]) .v2-acc-roue-l b,
html:not([data-theme="dark"]) .v2-acc-ligne b,html:not([data-theme="dark"]) .v2-acc-etiq.nu b,html:not([data-theme="dark"]) .v2-acc-cascade b{color:#0B1729}
html:not([data-theme="dark"]) .v2-acc-sous,html:not([data-theme="dark"]) .v2-acc-grand small,html:not([data-theme="dark"]) .v2-acc-moyen small,
html:not([data-theme="dark"]) .v2-acc-ligne,html:not([data-theme="dark"]) .v2-acc-roue-l span,html:not([data-theme="dark"]) .v2-acc-roue-t small,
html:not([data-theme="dark"]) .v2-acc-barre-l span,html:not([data-theme="dark"]) .v2-acc-mix-l em,html:not([data-theme="dark"]) .v2-acc-etiq.nu span,
html:not([data-theme="dark"]) .v2-acc-cascade .n{color:#3A4A62}
html:not([data-theme="dark"]) .v2-acc-mini,html:not([data-theme="dark"]) .v2-acc-annee,html:not([data-theme="dark"]) .v2-acc-roue-t span,html:not([data-theme="dark"]) .v2-acc-roue-t em{color:#5B6B84}
html:not([data-theme="dark"]) .v2-acc-etiq.nu{text-shadow:0 1px 8px rgba(255,255,255,.95),0 0 2px rgba(255,255,255,.95)}
html:not([data-theme="dark"]) .v2-acc-barre,html:not([data-theme="dark"]) .v2-acc-jour,html:not([data-theme="dark"]) .v2-acc-cascade .j{background:rgba(11,23,41,.12)}
html:not([data-theme="dark"]) .v2-acc-barre i[style*="rgba(255,255,255,.35)"]{background:rgba(11,23,41,.28)!important}
html:not([data-theme="dark"]) .v2-acc-sep,html:not([data-theme="dark"]) .v2-acc-trio,html:not([data-theme="dark"]) .v2-acc-deux,html:not([data-theme="dark"]) .v2-acc-somme,html:not([data-theme="dark"]) .v2-acc-pouls{border-color:rgba(11,23,41,.14)}
html:not([data-theme="dark"]) .v2-acc-sep{background:rgba(11,23,41,.14)}
html:not([data-theme="dark"]) .v2-acc-etapes button{color:#3A4A62;background:rgba(255,255,255,.55);border-color:rgba(11,23,41,.14)}
html:not([data-theme="dark"]) .v2-acc-etapes button.on{color:#0B1729;background:rgba(240,138,46,.18);border-color:rgba(240,138,46,.6)}
html:not([data-theme="dark"]) .v2-acc-etapes button:hover{color:#0B1729;background:rgba(255,255,255,.85)}
html:not([data-theme="dark"]) .v2-acc-note{color:rgba(11,23,41,.55)}
html:not([data-theme="dark"]) .v2-acc-bienvenue{background:#ECF3F9}
html:not([data-theme="dark"]) .v2-acc-bienvenue b{color:#0B1729}
html:not([data-theme="dark"]) .v2-entree{background:radial-gradient(ellipse at 50% 42%,#FFFFFF 0,#DCE4EE 70%)}
html:not([data-theme="dark"]) .v2-entree-signature{color:rgba(11,23,41,.78)}
html:not([data-theme="dark"]) .v2-entree-bouton{border-color:rgba(11,23,41,.28);color:#0B1729}
html:not([data-theme="dark"]) .v2-entree-bouton:hover{background:rgba(11,23,41,.06);border-color:rgba(11,23,41,.5)}
.v2-acc-roue{display:flex;align-items:center;gap:26px;margin-top:22px}
.v2-acc-roue-c{position:relative;width:190px;height:190px;flex-shrink:0}
.v2-acc-roue-c .v2-acc-anneau{width:190px;height:190px}
.v2-acc-roue-t{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.v2-acc-roue-t b{font-size:40px;font-weight:800;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}
.v2-acc-roue-t small{font-size:14px;font-weight:600;color:#C7D1E0;margin-top:2px}
.v2-acc-roue-t span{margin-top:4px;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:#8FB3F5}
.v2-acc-roue-l{display:flex;flex-direction:column;gap:14px}
.v2-acc-roue-l>div{display:grid;grid-template-columns:10px auto;gap:2px 10px;align-items:baseline}
.v2-acc-roue-l i{width:10px;height:10px;border-radius:3px;transform:translateY(1px)}
.v2-acc-roue-l b{font-size:24px;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.v2-acc-roue-l span{grid-column:2;font-size:13px;color:#C7D1E0}
.v2-acc-barre-b{margin-top:14px}
.v2-acc-barre{display:flex;height:10px;border-radius:5px;overflow:hidden;background:rgba(255,255,255,.1)}
.v2-acc-barre i{display:block;height:100%}
.v2-acc-barre-l{display:flex;gap:26px;margin-top:10px;flex-wrap:wrap}
.v2-acc-barre-l>div{display:flex;align-items:baseline;gap:8px}
.v2-acc-barre-l i{width:9px;height:9px;border-radius:3px;flex-shrink:0;transform:translateY(0)}
.v2-acc-barre-l b{font-size:17px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.v2-acc-barre-l span{font-size:13px;color:#C7D1E0}
.v2-acc-sep{height:1px;background:rgba(255,255,255,.14);margin:22px 0 16px}
.v2-acc-somme{display:flex;align-items:center;gap:18px;margin-top:22px;padding-top:18px;border-top:1px solid rgba(255,255,255,.14)}
.v2-acc-somme .part{display:flex;gap:12px;align-items:flex-start;flex:1;min-width:0}
.v2-acc-somme .part>i{width:6px;border-radius:3px;align-self:stretch;flex-shrink:0}
.v2-acc-somme .part>i.th{background:#8B96A6}
.v2-acc-somme .part>i.sol{background:#F08A2E}
.v2-acc-somme .plus{font-size:30px;font-weight:300;color:#8FB3F5}
.v2-acc-cascade{display:flex;flex-direction:column;gap:9px;margin-top:20px}
.v2-acc-cascade .l{display:grid;grid-template-columns:minmax(90px,140px) 1fr auto;gap:12px;align-items:center;font-size:13.5px;opacity:0;transform:translateX(-8px);animation:v2-acc-casc .5s ease forwards}
.v2-acc-cascade .n{color:#C7D1E0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v2-acc-cascade .j{height:8px;border-radius:4px;background:rgba(255,255,255,.1);overflow:hidden}
.v2-acc-cascade .j i{display:block;height:100%;border-radius:4px}
.v2-acc-cascade b{font-variant-numeric:tabular-nums;white-space:nowrap}
@keyframes v2-acc-casc{to{opacity:1;transform:none}}
.v2-systeme .centrales .c{display:flex;flex-direction:column;gap:4px;font-size:12.5px}
.v2-systeme .centrales .c .t{display:flex;align-items:baseline;gap:8px}
.v2-systeme .centrales .c .j{height:4px;border-radius:2px;background:var(--v2-trait);overflow:hidden}
.v2-systeme .centrales .c .j i{display:block;height:100%;border-radius:2px}
.v2-acc-etiq{position:absolute;left:0;top:0;transform:translate(-9999px,-9999px);opacity:0;transition:opacity .6s ease;
  padding:7px 11px;border-radius:10px;background:rgba(4,7,12,.62);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(6px);
  color:#F2F5F9;white-space:nowrap;line-height:1.25}
.v2-acc-etiq.on{opacity:1}
.v2-acc-etiq b{display:block;font-size:13.5px;font-weight:800;letter-spacing:-.01em}
.v2-acc-etiq span{display:block;margin-top:2px;font-size:12px;color:#C7D1E0;font-variant-numeric:tabular-nums}
.v2-acc-etiq .in{transform:translate(0,-50%)}
.v2-acc-etiq.g .in{transform:translate(-100%,-50%)}
.v2-acc-etiq.th .in,.v2-acc-etiq.sol .in{transform:translate(0,-50%)}
.v2-acc-etiq.th{border-color:rgba(240,138,46,.5)}
.v2-acc-etiq.sol{border-color:rgba(120,170,255,.55)}
.v2-acc-mix{display:flex;align-items:center;gap:22px;margin-top:22px}
.v2-acc-anneau{width:130px;height:130px;flex-shrink:0}
.v2-acc-mix-txt{display:flex;flex-direction:column;gap:8px}
.v2-acc-mix-l{display:flex;align-items:baseline;gap:10px}
.v2-acc-mix-l i{width:10px;height:10px;border-radius:3px;flex-shrink:0;transform:translateY(-1px)}
.v2-acc-mix-l em{font-style:normal;font-size:14px;color:#C7D1E0}
.v2-acc-mix-l .v2-acc-moyen{margin-top:0}
.v2-acc-trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:26px;padding-top:18px;border-top:1px solid rgba(255,255,255,.14)}
.v2-acc-deux{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:22px;padding-top:16px;border-top:1px solid rgba(255,255,255,.14)}
.v2-acc-compteur{min-width:0}
.v2-acc-mini{margin-top:7px;font-size:12px;color:#8792A5;line-height:1.35}
.v2-systeme .centrales{display:flex;flex-direction:column;gap:9px}
.v2-systeme .centrales .c i{width:7px;height:7px;border-radius:50%;flex-shrink:0;transform:translateY(-1px)}
.v2-systeme .centrales .c .n{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v2-systeme .centrales .c.chantier{color:var(--muted)}
@media (max-width:1180px){
  .v2-acc-panneau{width:min(560px,70%)}
  .v2-acc-trio{grid-template-columns:1fr 1fr}
  .v2-acc-grand{font-size:56px}
}
@media (prefers-reduced-motion:reduce){.v2-acc-panneau{transition:none}}




.v2-ope-onglets{display:flex;gap:6px;padding:16px 26px 12px;flex-wrap:wrap;border-bottom:1px solid var(--v2-trait);margin-bottom:12px}
.v2-ope-onglets a{display:flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;text-decoration:none;color:var(--ink-2);font-size:13px;font-weight:600;border:1px solid transparent}
.v2-ope-onglets a:hover{background:var(--v2-surface-2);color:var(--ink)}
.v2-ope-onglets a.on{background:var(--ink);color:var(--surface);border-color:var(--ink)}

/* ---------------------------------------------------------------------
   LA COMPAGNIE D'ELECTRICITE : le systeme d'ingenierie (27/09/2026)
   Un canvas calme, des filets, une grille rigoureuse. Une donnee a une
   place, une unite, une couleur, les memes d'une ile a l'autre.
   Couleurs semantiques :
     thermique ambre    solaire jaune    hydro bleu    stockage violet
     produit bleu Touma facture vert     pertes corail
     ferme bleu profond pointe corail    a confirmer orange leger
   --------------------------------------------------------------------- */
.v2-cie-page{--c-th:#B8681F;--c-pv:#C99A12;--c-hy:#2F7FD1;--c-st:#7B61B8;--c-prod:#1F4FA3;--c-fact:#1F8A5B;--c-perte:#D9534F;--c-ferme:#1F4FA3;--c-pointe:#D9534F;
  --c-der:#E8912D;--c-inc:#A3AEC2;--c-ref:#B8860B;--c-decl:#1F4FA3;--c-inst:#C9D4E6;--c-land:#D8E0EC;--c-coast:#8A99B5;
  --c-line:rgba(20,32,56,.13);--c-line2:rgba(20,32,56,.32);--c-surf:rgba(255,255,255,.6);--c-surf2:rgba(20,32,56,.035);
  flex:1;min-height:0;display:flex;flex-direction:column;background:var(--bg)}
html[data-theme="dark"] .v2-cie-page{--c-th:#E39A4B;--c-pv:#E8C34A;--c-hy:#63A8F0;--c-st:#A991E0;--c-prod:#8FB3F5;--c-fact:#4CC98C;--c-perte:#F27C72;--c-ferme:#8FB3F5;--c-pointe:#F27C72;
  --c-der:#F0A054;--c-inc:#5F6A7C;--c-ref:#D9B24A;--c-decl:#8FB3F5;--c-inst:#24314A;--c-land:#182236;--c-coast:#4A5F86;
  --c-line:rgba(160,180,220,.14);--c-line2:rgba(160,180,220,.36);--c-surf:rgba(255,255,255,.03);--c-surf2:rgba(255,255,255,.04)}
.v2-cie-page .n{font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.v2-cie-page b.n{display:inline-block;font-weight:800;color:var(--ink);line-height:1;white-space:nowrap;padding-bottom:2px;border-bottom:2px solid transparent}
.v2-cie-page b.n small{font-size:.5em;font-weight:600;color:var(--muted);margin-left:4px;letter-spacing:0}
.v2-cie-page .e-decl{border-bottom-color:var(--c-decl)}.v2-cie-page .e-ref{border-bottom-color:var(--c-ref)}
.v2-cie-page .e-der{border-bottom-style:dashed;border-bottom-color:var(--c-der)}
.v2-cie-page .e-inc{border-bottom-style:dotted;border-bottom-color:var(--c-inc);color:var(--c-inc)!important;font-family:var(--ui)!important;font-weight:600!important;font-size:12px!important;letter-spacing:0!important}
.v2-cie-page b.n.clic{cursor:pointer}.v2-cie-page b.n.clic:hover{color:var(--brand)}
.v2-cie-page .lien{background:none;border:0;padding:0;font:inherit;font-size:12px;font-weight:700;color:var(--brand);cursor:pointer;text-decoration:none}
.v2-cie-page .lien:hover{text-decoration:underline}
/* l'en-tete */
.v2-cie-tete{display:grid;grid-template-columns:1fr auto auto;gap:36px;align-items:end;margin:22px 30px 0;padding-bottom:18px;border-bottom:1px solid var(--c-line2)}
.v2-cie-tete h1{margin:6px 0 0;font-size:34px;font-weight:800;letter-spacing:-.04em;line-height:1}
.v2-cie-tete .qui .v2-lab{color:var(--brand)}
.v2-cie-tete .inst{display:flex;gap:0}
.v2-cie-tete .inst>div{padding:10px 22px;border-left:0;display:flex;flex-direction:column;gap:4px;align-items:center;text-align:center;border-radius:14px;background:var(--c-surf2);margin-left:8px}
.v2-cie-tete .inst>div:first-child{margin-left:0}
.v2-cie-tete .inst b{font-size:22px;font-weight:800;letter-spacing:-.03em;line-height:1}
.v2-cie-tete .inst span{font-size:11.5px;color:var(--muted)}
.v2-cie-tete .maj{display:flex;flex-direction:column;gap:4px;padding:10px 18px;border:1px solid rgba(240,138,46,.45);border-radius:14px;background:rgba(240,138,46,.07);text-decoration:none;color:inherit;min-width:150px;align-items:center;text-align:center}
.v2-cie-tete .maj b{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:800;letter-spacing:-.01em;line-height:1.2}
.v2-cie-tete .maj b i{width:8px;height:8px;border-radius:50%;background:var(--c-der);flex-shrink:0}
.v2-cie-tete .maj.ok b i{background:var(--c-fact)}
.v2-cie-tete .maj .m{font-size:11.5px;color:var(--muted)}
/* la navigation : une regle */
.v2-cie-page .v2-ope-onglets{gap:0;padding:0 30px;margin:0 0 22px;border-bottom:1px solid var(--c-line);background:var(--c-surf2)}
.v2-cie-page .v2-ope-onglets a{border:0;border-bottom:2px solid transparent;border-radius:0;padding:13px 18px 11px;margin-bottom:-1px;color:var(--muted);background:transparent;font-size:13px}
.v2-cie-page .v2-ope-onglets a:hover{background:transparent;color:var(--ink)}
.v2-cie-page .v2-ope-onglets a.on{background:transparent;color:var(--ink);border-bottom-color:var(--brand)}
.v2-cie-page .v2-ope-onglets a svg{display:none}
/* le corps */
.v2-cie{display:flex;flex-direction:column;gap:0;padding:0 30px 40px}
.v2-cie-titre{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:8px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--c-line2)}
.v2-cie-titre h2{margin:0;font-size:15px;font-weight:800;letter-spacing:-.01em}
.v2-cie-titre .echelle{font-size:11.5px;color:var(--muted)}
.v2-cie-titre+.v2-cie-titre,.v2-cie *+.v2-cie-titre{margin-top:30px}
.v2-cie .cel{display:flex;flex-direction:column;gap:5px;min-width:0}
.v2-cie .cel .k{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700;white-space:normal;line-height:1.25}
.v2-cie .cel b.n{font-size:20px;align-self:flex-start;max-width:100%}
.v2-cie .cel.g b.n{font-size:26px}
.v2-cie .cel .s{font-size:11.5px;color:var(--muted);line-height:1.3}
.v2-cie .cel.c-inst b.n{border-bottom-color:var(--c-inst)}.v2-cie .cel.c-ferme .k::before,.v2-cie .cel.c-pointe .k::before,.v2-cie .cel.c-inst .k::before,.v2-cie .cel.c-prod .k::before,.v2-cie .cel.c-fact .k::before,.v2-cie .cel.c-perte .k::before{content:"";display:inline-block;width:8px;height:8px;margin-right:6px;vertical-align:-1px;border-radius:2px}
.v2-cie .cel.c-inst .k::before{background:var(--c-inst)}.v2-cie .cel.c-ferme .k::before{background:var(--c-ferme)}.v2-cie .cel.c-pointe .k::before{background:var(--c-pointe)}
.v2-cie .cel.c-prod .k::before{background:var(--c-prod)}.v2-cie .cel.c-fact .k::before{background:var(--c-fact)}.v2-cie .cel.c-perte .k::before{background:var(--c-perte)}
.v2-cie-ligne4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--c-line);margin-bottom:22px}
.v2-cie-ligne4>.cel{padding:14px 22px 16px 0;border-left:1px solid var(--c-line);padding-left:22px}
.v2-cie-ligne4>.cel:first-child{border-left:0;padding-left:0}
.v2-cie-legende{display:flex;gap:20px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin-top:34px;padding-top:10px;border-top:1px solid var(--c-line)}
.v2-cie-legende span{display:flex;align-items:center;gap:7px}
.v2-cie-legende i{display:inline-block;width:20px;height:0;border-bottom:2px solid}
.v2-cie-legende b{font-weight:600}
.v2-cie-note,.v2-cie-avis{font-size:12px;color:var(--muted);line-height:1.5;margin-top:14px;max-width:820px}
.v2-cie-avis{border-left:2px solid var(--c-der);padding-left:12px;margin:0 0 12px}
/* les indicateurs par famille */
.v2-cie-ind{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}
.v2-cie-ind.deux{grid-template-columns:1fr 1fr}
.v2-cie-ind .fam{padding:0 26px 0 0;border-left:1px solid var(--c-line);padding-left:26px}
.v2-cie-ind .fam:first-child{border-left:0;padding-left:0}
.v2-cie .ft{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);font-weight:800;padding-bottom:8px;border-bottom:1px solid var(--c-line);margin-bottom:10px}
.v2-cie-ind .fc{display:flex;flex-direction:column;gap:0}
.v2-cie-ind .fc .cel{flex-direction:row;align-items:baseline;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--c-line)}
.v2-cie-ind .fc .cel .k{letter-spacing:.04em;text-transform:none;font-size:12.5px;font-weight:600;color:var(--ink-2)}
.v2-cie-ind .fc .cel b.n{font-size:16px;align-self:auto}
.v2-cie-ind .fc .cel .s{flex-basis:100%;text-align:right;font-size:10.5px;margin-top:-4px}
.v2-cie-ind .fc .cel{flex-wrap:wrap}
.v2-cie-ind.deux .fc{display:grid;grid-template-columns:1fr 1fr;gap:0 26px}
.v2-cie-ind.deux .fc .cel{flex-direction:column;align-items:flex-start;padding:12px 0}
.v2-cie-ind.deux .fc .cel .s{flex-basis:auto;text-align:left;margin-top:0}
/* les trois systemes */
.v2-cie-sys{display:grid;grid-template-columns:220px minmax(0,1.2fr) minmax(0,1fr) 230px;column-gap:0}
.v2-cie-sys .entete,.v2-cie-sys .rang{display:contents}
.v2-cie-sys .entete span{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:800;padding:0 22px 8px;border-bottom:1px solid var(--c-line2)}
.v2-cie-sys .entete span:first-child{padding-left:0}
.v2-cie-sys .rang>section{padding:20px 22px 22px;border-bottom:1px solid var(--c-line);border-left:1px solid var(--c-line);min-width:0;display:flex;flex-direction:column;gap:12px}
.v2-cie-sys .rang>section:first-child{border-left:0;padding-left:0}
.v2-cie-sys .rang.ko>section:first-child{box-shadow:inset 3px 0 0 var(--c-pointe);padding-left:14px}
.v2-cie-sys .sil{width:100%;max-width:200px;height:auto;display:block}
.v2-cie-sys .sil.vide{height:150px}
.v2-cie-sys .sil .terre{fill:var(--c-land);stroke:var(--c-coast);stroke-width:.8}
.v2-cie-sys .sil .th{fill:var(--c-th)}.v2-cie-sys .sil .pv{fill:var(--c-pv)}.v2-cie-sys .sil .hy{fill:var(--c-hy)}
.v2-cie-sys .sil .th,.v2-cie-sys .sil .pv,.v2-cie-sys .sil .hy{stroke:var(--bg);stroke-width:1.2}
.v2-cie-sys .iid .nom{font-size:19px;font-weight:800;letter-spacing:-.03em;line-height:1.1}
.v2-cie-sys .iid .chef{font-size:12px;color:var(--muted);margin-top:-8px}
.v2-cie-sys .iid .mix{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:var(--ink-2)}
.v2-cie-sys .iid .mix span::before{content:"";display:inline-block;width:8px;height:8px;margin-right:7px;border-radius:2px;vertical-align:-1px}
.v2-cie-sys .iid .mix .th::before{background:var(--c-th)}.v2-cie-sys .iid .mix .pv::before{background:var(--c-pv);border-radius:50%}.v2-cie-sys .iid .mix .hy::before{background:var(--c-hy)}
.v2-cie-sys .iech{position:relative;height:18px;background:var(--c-surf2);border-radius:2px;overflow:visible}
.v2-cie-sys .iech i{position:absolute;left:0;top:0;height:100%;display:block}
.v2-cie-sys .iech i.inst{background:var(--c-inst)}
.v2-cie-sys .iech i.ferme{background:var(--c-ferme)}
.v2-cie-sys .iech b.pointe{position:absolute;top:-6px;width:3px;height:30px;background:var(--c-pointe);transform:translateX(-50%)}
.v2-cie-sys .grad{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:-6px}
.v2-cie-sys .pu .trois{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.v2-cie-sys .pu .marge{display:flex;align-items:baseline;gap:10px;padding-top:10px;border-top:1px solid var(--c-line)}
.v2-cie-sys .pu .marge .k{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700}
.v2-cie-sys .pu .marge b.n{font-size:20px}
.v2-cie-sys .pu .marge.ko b.n{color:var(--c-pointe)}
.v2-cie-sys .pu .marge .s{font-size:11.5px;color:var(--muted)}
.v2-cie-sys .en .ibilan{display:flex;height:18px;border-radius:2px;overflow:hidden;background:var(--c-surf2)}
.v2-cie-sys .en .ibilan i{display:block;height:100%}
.v2-cie-sys .en .ibilan i.fact{background:var(--c-fact)}.v2-cie-sys .en .ibilan i.perte{background:var(--c-perte)}
.v2-cie-sys .en .deux{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.v2-cie-sys .se .ft{margin-bottom:6px}
.v2-cie-sys .se .cel{margin-bottom:4px}
.v2-cie-sys .se .ft+ .cel{margin-top:2px}
.v2-cie-sys .se .cel:nth-of-type(3){margin-bottom:12px}
.v2-cie .j24{display:flex;height:10px;border-radius:2px;overflow:hidden;background:var(--c-surf2);width:100%}
.v2-cie .j24 i{display:block;height:100%}
.v2-cie .j24 i.avec{background:var(--c-inst)}.v2-cie .j24 i.sans{background:var(--c-perte)}
.v2-cie .j24.inc{border:1px dashed var(--c-inc);background:transparent}
/* production : trois voies */
.v2-cie-voies{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;align-items:start}
.v2-cie .voie{display:flex;flex-direction:column;min-width:0}
.v2-cie .voie .vt{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding-bottom:8px;border-bottom:1px solid var(--c-line2)}
.v2-cie .voie .vt b{font-size:18px;font-weight:800;letter-spacing:-.03em}
.v2-cie .voie .vt span{font-size:11.5px;color:var(--muted)}
.v2-cie .voie .v4{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;padding:12px 0 14px;border-bottom:1px solid var(--c-line)}
.v2-cie .voie .v4 .cel b.n{font-size:17px}
.v2-cie .site{padding:14px 0 14px 14px;border-bottom:1px solid var(--c-line);position:relative;display:flex;flex-direction:column;gap:10px}
.v2-cie .site::before{content:"";position:absolute;left:0;top:16px;bottom:16px;width:3px;background:var(--c-th)}
.v2-cie .site.pv::before{background:var(--c-pv)}.v2-cie .site.hy::before{background:var(--c-hy)}.v2-cie .site.ch::before{background:var(--c-inc)}
.v2-cie .site.ch{opacity:.65}
.v2-cie .site .ist{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:start}
.v2-cie .site .sn b{display:block;font-size:14px;font-weight:800;letter-spacing:-.01em;line-height:1.2}
.v2-cie .site .sn span{display:block;font-size:11px;color:var(--muted);margin-top:3px;line-height:1.3}
.v2-cie .site b.n.mw{font-size:19px;justify-self:end}
.v2-cie .site .ikv{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 12px;font-size:12px;align-items:baseline}
.v2-cie .site .ikv .k{color:var(--muted)}
.v2-cie .site .ikv .v{color:var(--ink);font-weight:600;justify-self:end;font-variant-numeric:tabular-nums;font-size:12.5px}
.v2-cie .site .ikv b.n{font-size:13px;justify-self:end}
/* reseau */
.v2-cie-res{display:grid;grid-template-columns:160px minmax(0,1.6fr) repeat(5,minmax(0,1fr))}
.v2-cie-res .entete,.v2-cie-res .rang{display:contents}
.v2-cie-res .entete span{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:800;padding:0 16px 8px 0;border-bottom:1px solid var(--c-line2)}
.v2-cie-res .rang>div{padding:18px 16px 18px 0;border-bottom:1px solid var(--c-line);display:flex;flex-direction:column;gap:6px;min-width:0}
.v2-cie-res .rang .sy b{font-size:16px;font-weight:800;letter-spacing:-.02em}
.v2-cie-res .rang .sy span{font-size:11.5px;color:var(--muted)}
.v2-cie-res .rang .co .hh{display:flex;justify-content:space-between;font-size:11.5px}
.v2-cie-res .rang .co .hh .avec{color:var(--ink-2)}.v2-cie-res .rang .co .hh .sans{color:var(--c-perte);font-weight:700}
.v2-cie-res .rang b.n{font-size:17px;align-self:flex-start}
.v2-cie-res .rang .s{font-size:11px;color:var(--muted)}
/* tableaux */
.v2-cie-tblbox{border-top:1px solid var(--c-line2);margin-top:22px}
.v2-cie-tbl th{cursor:default!important}
.v2-cie-tbl td .sous{display:block;font-size:11px;color:var(--muted)}
.v2-cie-tbl b.n{font-size:13px}
.v2-cie-tbl .etat{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.v2-cie-tbl .etat.validee{color:var(--c-fact)}.v2-cie-tbl .etat.a_verifier,.v2-cie-tbl .etat.controlee{color:var(--c-der)}.v2-cie-tbl .etat.rejetee{color:var(--c-perte)}
/* la matrice */
.v2-cie .annees{display:flex;gap:0;border:1px solid var(--c-line2);border-radius:3px;overflow:hidden}
.v2-cie .annees button{border:0;border-left:1px solid var(--c-line);background:transparent;color:var(--muted);font:inherit;font-size:12.5px;font-weight:700;padding:6px 14px;cursor:pointer;display:flex;align-items:center;gap:6px}
.v2-cie .annees button:first-child{border-left:0}
.v2-cie .annees button.on{background:var(--ink);color:var(--surface)}
.v2-cie .annees button i{width:5px;height:5px;border-radius:50%;background:var(--c-decl)}
.v2-cie-matrice{overflow:auto;max-height:70vh;border:1px solid var(--c-line2);border-radius:3px;background:var(--surface)}
.v2-cie-matrice table{border-collapse:separate;border-spacing:0;width:100%;font-size:12.5px}
.v2-cie-matrice th{position:sticky;top:0;z-index:2;background:var(--surface);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700;text-align:right;padding:10px 10px;border-bottom:1px solid var(--c-line2)}
.v2-cie-matrice th.g,.v2-cie-matrice td.g{position:sticky;left:0;z-index:1;text-align:left;background:var(--surface);min-width:190px;border-right:1px solid var(--c-line2)}
.v2-cie-matrice th.g{z-index:3}
.v2-cie-matrice td{padding:0;border-bottom:1px solid var(--c-line);text-align:right;font-variant-numeric:tabular-nums;height:38px}
.v2-cie-matrice td.g{padding:6px 12px;font-family:var(--ui)}
.v2-cie-matrice td.g b{display:block;font-weight:700;font-size:13px}
.v2-cie-matrice td.g span{font-size:11px;color:var(--muted)}
.v2-cie-matrice td.c{padding:0 10px;color:var(--ink);white-space:nowrap}
.v2-cie-matrice td.c.clic{cursor:pointer}.v2-cie-matrice td.c.clic:hover{background:var(--brand-soft)}
.v2-cie-matrice td.c.e-decl{box-shadow:inset 0 -2px 0 var(--c-decl);font-weight:700}
.v2-cie-matrice td.c.e-ref{box-shadow:inset 0 -2px 0 var(--c-ref)}
.v2-cie-matrice td.c.e-der{color:var(--ink-2);background-image:linear-gradient(90deg,var(--c-der) 50%,transparent 50%);background-size:6px 2px;background-repeat:repeat-x;background-position:0 100%}
.v2-cie-matrice td.c.vide{color:var(--c-inc)}
.v2-cie-matrice td.c.futur{background:var(--c-surf2)}
.v2-cie-matrice td.an{padding:0 12px;font-weight:800;border-left:1px solid var(--c-line2)}
.v2-cie-matrice td.d{padding:0 10px;text-align:right}
.v2-cie-detail{display:flex;flex-direction:column}
.v2-cie-detail>div{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid var(--v2-trait);font-size:13px}
.v2-cie-detail .k{color:var(--muted)}
.v2-cie-detail b{text-align:right;font-weight:700}
.v2-cie-12{display:grid;grid-template-columns:1fr 1fr;gap:6px 18px}
.v2-cie-l12{display:grid;grid-template-columns:86px 1fr auto;gap:8px;align-items:center;font-size:12.5px;color:var(--ink-2)}
.v2-cie-l12 em{font-style:normal;color:var(--muted);font-size:11.5px}
.v2-cie-fichiers{margin-top:26px}
.v2-cie-fichiers .liste{display:flex;flex-direction:column}
.v2-cie-fichiers .f{display:flex;align-items:center;gap:10px;font-size:13px;padding:8px 0;border-bottom:1px solid var(--c-line)}
.v2-cie-fichiers .f .n{font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--ui)}
.v2-cie-fichiers .depot{margin-top:14px;display:grid;grid-template-columns:1fr 1fr;gap:12px 22px;align-items:end;max-width:760px}
.v2-cie-fichiers .depot>input[type=file]{grid-column:1/-1}
/* registre */
.v2-cie .iact{display:flex;gap:18px;font-size:12.5px}
.v2-cie .iact a{color:var(--brand);text-decoration:none;font-weight:700}
.v2-cie-chaine{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:6px 0 18px;border-bottom:1px solid var(--c-line)}
.v2-cie-chaine>div{display:flex;flex-direction:column;gap:5px}
.v2-cie-chaine>div b.n{font-size:22px}
.v2-cie-chaine>div span{font-size:11.5px;color:var(--muted)}
.v2-cie-chaine>i{width:22px;height:1px;background:var(--c-line2);position:relative}
.v2-cie-chaine>i::after{content:"";position:absolute;right:-1px;top:-3px;width:6px;height:6px;border-top:1px solid var(--c-line2);border-right:1px solid var(--c-line2);transform:rotate(45deg)}
@media (max-width:1366px){.v2-cie-sys{grid-template-columns:180px minmax(0,1.2fr) minmax(0,1fr) 200px}.v2-cie-sys .rang>section{padding:16px 14px 18px}.v2-cie-ind{grid-template-columns:1fr 1fr}.v2-cie-ind .fam:nth-child(3){border-left:0;padding-left:0}.v2-cie-res{grid-template-columns:140px minmax(0,1.4fr) repeat(5,minmax(0,1fr))}}
@media (max-width:1100px){.v2-cie-sys{grid-template-columns:1fr 1fr}.v2-cie-sys .entete{display:none}.v2-cie-voies{grid-template-columns:1fr}.v2-cie-res{grid-template-columns:1fr 1fr 1fr 1fr}.v2-cie-res .entete{display:none}}


/* Les panneaux : ce qui ressort du canvas. Arrondis, un bord fin, une
   surface a peine plus claire, une ombre courte. */
.v2-cie .pan{background:var(--surface);border:1px solid var(--c-line);border-radius:12px;box-shadow:var(--v2-ombre)}
html[data-theme="dark"] .v2-cie .pan{background:var(--v2-surface)}
.v2-cie .k0{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:800;margin-bottom:8px}
.v2-cie-ligne4.pan{border-bottom:1px solid var(--c-line);padding:0 22px}
.v2-cie-ligne4.pan>.cel{padding-top:16px;padding-bottom:16px}
/* la vue d'ensemble : trois panneaux, un par systeme, compacts */
.v2-cie-sys{display:flex;flex-direction:column;gap:14px}
.v2-cie-sys .rang{display:grid;grid-template-columns:290px minmax(0,1.25fr) minmax(0,1.1fr) 270px;overflow:hidden}
.v2-cie-sys .rang>section{padding:16px 20px 16px;border-left:1px solid var(--c-line);border-bottom:0;min-width:0;display:flex;flex-direction:column;gap:10px}
.v2-cie-sys .rang>section:first-child{border-left:0;padding-left:20px}
.v2-cie-sys .rang.ko>section:first-child{box-shadow:inset 4px 0 0 var(--c-pointe)}
.v2-cie-sys .iid .haut{display:flex;gap:12px;align-items:flex-start}
.v2-cie-sys .iid .haut>div{display:flex;flex-direction:column;gap:6px;min-width:0}
.v2-cie-sys .sil{width:130px;height:96px;flex-shrink:0;display:block}
.v2-cie-sys .sil.vide{width:130px;height:96px}
.v2-cie-sys .iid .nom{font-size:18px;font-weight:800;letter-spacing:-.03em;line-height:1.1}
.v2-cie-sys .iid .chef{font-size:11.5px;color:var(--muted);margin-top:-4px}
.v2-cie-sys .iid .cel b.n{font-size:18px}
.v2-cie-sys .chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}
.v2-cie-sys .chips span{font-size:11px;font-weight:700;padding:3px 8px 3px 6px;border-radius:999px;border:1px solid var(--c-line);color:var(--ink-2);display:inline-flex;align-items:center;gap:6px}
.v2-cie-sys .chips span::before{content:"";width:7px;height:7px;border-radius:2px;display:inline-block}
.v2-cie-sys .chips .th::before{background:var(--c-th)}.v2-cie-sys .chips .pv::before{background:var(--c-pv);border-radius:50%}.v2-cie-sys .chips .hy::before{background:var(--c-hy)}
.v2-cie-sys .pu .trois,.v2-cie-sys .en .trois{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.v2-cie-sys .cel b.n{font-size:18px}
.v2-cie-sys .cel .s{font-size:11px}
.v2-cie-sys .se .g4{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}
.v2-cie-sys .se .g4 .cel .j24{margin-top:2px}
/* production : voies en panneaux, sites en tuiles */
.v2-cie .voie.pan{padding:14px 16px 8px}
.v2-cie .voie .vt{border-bottom:0;padding-bottom:4px}
.v2-cie .voie .v4{border-bottom:1px solid var(--c-line);margin-bottom:10px}
.v2-cie .site.tuile{border:1px solid var(--c-line);border-radius:10px;padding:12px 14px 12px 18px;margin-bottom:8px;background:var(--c-surf2)}
html[data-theme="dark"] .v2-cie .site.tuile{background:rgba(255,255,255,.025)}
.v2-cie .site.tuile::before{left:6px;top:12px;bottom:12px;border-radius:2px}
/* reseau : une ligne = un panneau */
.v2-cie-res{display:flex;flex-direction:column;gap:10px}
.v2-cie-res .entete{display:grid;grid-template-columns:150px minmax(0,1.6fr) repeat(5,minmax(0,1fr)) 110px;padding:0 20px;column-gap:18px}
.v2-cie-res .entete span{border-bottom:0;padding:0 12px 6px 0}
.v2-cie-res .rang{display:grid;grid-template-columns:150px minmax(0,1.6fr) repeat(5,minmax(0,1fr)) 110px;padding:0 20px;align-items:center;column-gap:18px}
.v2-cie-res .rang>div{border-bottom:0;padding:16px 12px 16px 0}
.v2-cie-res .rang .act{text-align:right;padding-right:0}
.v2-cie-res .rang b.n.clic:hover{color:var(--brand)}
/* la matrice : des cellules qui se voient */
.v2-cie-matrice{border:0;background:transparent;max-height:72vh}
.v2-cie-matrice table{border-spacing:0 6px}
.v2-cie-matrice th{background:var(--bg);border-bottom:1px solid var(--c-line2)}
.v2-cie-matrice th.g,.v2-cie-matrice td.g{background:var(--bg);border-right:0}
.v2-cie-matrice td{border-bottom:0}
.v2-cie-matrice td.c{box-shadow:none!important;background:var(--surface);border:1px solid var(--c-line);border-radius:8px;padding:0 10px;height:40px;background-image:none!important}
.v2-cie-matrice td.c.e-decl{border-color:var(--c-line);box-shadow:inset 0 -2px 0 var(--c-decl)!important;font-weight:700}
.v2-cie-matrice td.c.e-ref{border-color:var(--c-line);box-shadow:inset 0 -2px 0 var(--c-ref)!important}
.v2-cie-matrice td.c.e-der{border-style:solid;border-color:var(--c-line);box-shadow:inset 0 -2px 0 var(--c-der)!important;color:var(--ink)}
.v2-cie-matrice td.c.vide{border-style:solid;border-color:var(--c-line);color:var(--c-inc);background:var(--c-surf2)}
.v2-cie-matrice td.c.futur{background:transparent;border-color:transparent}
.v2-cie-matrice td.c.clic:hover{border-color:var(--brand);background:var(--brand-soft)}
.v2-cie-matrice td.an{border-left:0}
/* registre */
.v2-cie-chaine.pan{padding:16px 22px;border-bottom:1px solid var(--c-line)}
.v2-cie .rech{font:inherit;font-size:13px;padding:7px 12px;border:1px solid var(--c-line2);border-radius:8px;background:var(--surface);color:var(--ink);min-width:260px;outline:none}
.v2-cie .rech:focus{border-color:var(--brand)}
@media (max-width:1366px){.v2-cie-sys .rang{grid-template-columns:210px minmax(0,1.2fr) minmax(0,1fr) 230px}.v2-cie-res .entete,.v2-cie-res .rang{grid-template-columns:130px minmax(0,1.4fr) repeat(5,minmax(0,1fr)) 100px}}
@media (max-width:1100px){.v2-cie-sys .rang{grid-template-columns:1fr 1fr}.v2-cie-sys .rang>section:nth-child(3){border-left:0}}


/* ---------------------------------------------------------------------
   LE RELIEF (27/09/2026, retour de Bayss) : des volumes, pas des filets.
   Les panneaux se detachent par la lumiere ; les barres sont des tubes ;
   les separations internes sont des changements de surface.
   --------------------------------------------------------------------- */
.v2-cie .pan{border-radius:16px;border:1px solid rgba(255,255,255,.7);
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,255,255,.82));
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 1px 2px rgba(16,28,48,.06),0 10px 30px -14px rgba(16,28,48,.28),0 24px 48px -30px rgba(16,28,48,.25)}
html[data-theme="dark"] .v2-cie .pan{border-color:rgba(255,255,255,.07);
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.02));
  box-shadow:0 1px 0 rgba(255,255,255,.05) inset,0 1px 2px rgba(0,0,0,.5),0 14px 34px -16px rgba(0,0,0,.8)}
/* les systemes : plus de traits verticaux, des zones de surface */
.v2-cie-sys .rang{gap:0;padding:6px}
.v2-cie-sys .rang>section{border-left:0!important;border-radius:12px;padding:14px 18px 16px;margin:0 3px}
.v2-cie-sys .rang>section.pu,.v2-cie-sys .rang>section.se{background:var(--c-surf2)}
.v2-cie-sys .cel.c-inst .k::before{background:#8CA6D6}
.v2-cie .lien-cel{text-decoration:none;color:inherit;border-radius:8px;padding:4px 6px;margin:-4px -6px;transition:background .15s}
.v2-cie .lien-cel:hover{background:var(--brand-soft)}
html[data-theme="dark"] .v2-cie-sys .rang>section.pu,html[data-theme="dark"] .v2-cie-sys .rang>section.se{background:rgba(255,255,255,.03)}
.v2-cie-sys .rang.ko>section:first-child{box-shadow:none;position:relative}
.v2-cie-sys .rang.ko>section:first-child::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:4px;border-radius:2px;background:var(--c-pointe)}
.v2-cie-sys .rang.ko>section:first-child{padding-left:16px}
/* les tubes */
.v2-cie-sys .iech,.v2-cie-sys .en .ibilan,.v2-cie .j24{height:14px;border-radius:999px;background:linear-gradient(180deg,rgba(20,32,56,.10),rgba(20,32,56,.05));box-shadow:inset 0 1px 2px rgba(20,32,56,.18)}
html[data-theme="dark"] .v2-cie-sys .iech,html[data-theme="dark"] .v2-cie-sys .en .ibilan,html[data-theme="dark"] .v2-cie .j24{background:rgba(255,255,255,.06);box-shadow:inset 0 1px 3px rgba(0,0,0,.6)}
.v2-cie-sys .iech i{border-radius:999px;box-shadow:inset 0 1px 0 rgba(255,255,255,.45),inset 0 -1px 0 rgba(0,0,0,.12)}
.v2-cie-sys .en .ibilan i,.v2-cie .j24 i{border-radius:0;box-shadow:inset 0 1px 0 rgba(255,255,255,.3)}
.v2-cie-sys .en .ibilan,.v2-cie .j24{overflow:hidden;gap:0}
.v2-cie-sys .iech i.inst{background:linear-gradient(180deg,#A9BEE3,#8CA6D6)}
html[data-theme="dark"] .v2-cie-sys .iech i.inst{background:linear-gradient(180deg,#3E5386,#2C3B5C)}
.v2-cie-sys .iech i.ferme{background:linear-gradient(180deg,#3F73D8,#1F4FA3)}
.v2-cie-sys .iech b.pointe{border-radius:2px;top:-5px;height:24px;box-shadow:0 0 0 2px var(--surface),0 2px 6px rgba(217,83,79,.5)}
.v2-cie-sys .en .ibilan i.fact{background:linear-gradient(180deg,#34A874,#1F8A5B)}
.v2-cie-sys .en .ibilan i.perte{background:linear-gradient(180deg,#E8706B,#D9534F)}
.v2-cie .j24 i.avec{background:linear-gradient(180deg,#D8E2F2,#BFCDE6)}
html[data-theme="dark"] .v2-cie .j24 i.avec{background:linear-gradient(180deg,#2C3B5C,#1E2B45)}
.v2-cie .j24 i.sans{background:linear-gradient(180deg,#E8706B,#D9534F)}
.v2-cie .j24{height:10px}
/* la ligne nationale et les indicateurs : surfaces, pas filets */
.v2-cie-ligne4.pan{border-bottom:1px solid rgba(255,255,255,.7);padding:6px}
.v2-cie-ligne4.pan>.cel{border-left:0;border-radius:10px;padding:14px 18px;margin:0 2px}
.v2-cie-ligne4.pan>.cel:nth-child(even){background:var(--c-surf2)}
html[data-theme="dark"] .v2-cie-ligne4.pan>.cel:nth-child(even){background:rgba(255,255,255,.03)}
.v2-cie-ind.pan{padding:6px;gap:6px}
.v2-cie-ind.pan .fam{border-left:0;padding:14px 18px;border-radius:12px}
.v2-cie-ind.pan .fam:nth-child(even){background:var(--c-surf2)}
html[data-theme="dark"] .v2-cie-ind.pan .fam:nth-child(even){background:rgba(255,255,255,.03)}
.v2-cie-ind .fc .cel{border-bottom:0;padding:8px 0}
.v2-cie .ft{border-bottom:0;padding-bottom:6px}
.v2-cie-tblbox.pan{padding:6px 10px;border-top:0}
.v2-cie-tbl thead th{background:transparent}
/* production : tuiles en volume */
.v2-cie .voie.pan{padding:14px 12px 10px}
.v2-cie .voie .v4{border-bottom:0;background:var(--c-surf2);border-radius:10px;padding:12px 14px 12px;margin:6px 0 10px}
html[data-theme="dark"] .v2-cie .voie .v4{background:rgba(255,255,255,.03)}
.v2-cie .site.tuile{border-radius:12px;border:1px solid rgba(255,255,255,.7);background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(255,255,255,.6));box-shadow:0 1px 2px rgba(16,28,48,.05),0 8px 20px -14px rgba(16,28,48,.3);transition:transform .15s ease,box-shadow .15s ease}
html[data-theme="dark"] .v2-cie .site.tuile{border-color:rgba(255,255,255,.06);background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));box-shadow:0 8px 20px -14px rgba(0,0,0,.7)}
.v2-cie .site.tuile:hover{transform:translateY(-1px);box-shadow:0 2px 4px rgba(16,28,48,.06),0 14px 28px -14px rgba(16,28,48,.35)}
.v2-cie .site .sn b.ouvrir,.v2-cie-res .sy b.ouvrir{cursor:pointer}
.v2-cie .site .sn b.ouvrir:hover,.v2-cie-res .sy b.ouvrir:hover{color:var(--brand)}
/* reseau : lignes en volume */
.v2-cie-res .rang.pan{padding:4px 20px}
/* la fiche d'une installation */
.v2-cie .fil{display:flex;align-items:center;gap:10px;font-size:13px;margin:0 0 14px;color:var(--muted)}
.v2-cie .fil i{width:5px;height:5px;border-radius:50%;background:var(--c-line2)}
.v2-cie .fil b{color:var(--ink);font-weight:800}
.v2-cie .ftete{display:flex;align-items:center;gap:26px;padding:18px 22px;position:relative;overflow:hidden}
.v2-cie .ftete::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--c-th)}
.v2-cie .ftete.pv::before{background:var(--c-pv)}.v2-cie .ftete.hy::before{background:var(--c-hy)}
.v2-cie .ftete .g{flex:1;min-width:0;padding-left:8px}
.v2-cie .ftete .typ{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:800}
.v2-cie .ftete h2{margin:4px 0 0;font-size:26px;font-weight:800;letter-spacing:-.03em}
.v2-cie .ftete .sub{font-size:12.5px;color:var(--muted);margin-top:4px}
.v2-cie .ftete .d{display:flex;gap:26px}
.v2-cie .fgrille{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
.v2-cie .fbloc{padding:16px 20px 18px;display:flex;flex-direction:column}
.v2-cie .fbloc.large{grid-column:1/-1}
.v2-cie .ft.flex{display:flex;align-items:center;justify-content:space-between}
.v2-cie .fkv{display:grid;grid-template-columns:auto 1fr;gap:8px 18px;font-size:13px}
.v2-cie .fkv .k{color:var(--muted)}.v2-cie .fkv .v{font-weight:600}
.v2-cie .fmatbox{overflow:auto}
.v2-cie .fmat{border-collapse:separate;border-spacing:4px 6px;width:100%;font-size:12.5px}
.v2-cie .fmat th{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700;text-align:right;padding:4px 8px}
.v2-cie .fmat th.g,.v2-cie .fmat td.g{text-align:left;min-width:150px}
.v2-cie .fmat td.g b{display:block;font-weight:700}.v2-cie .fmat td.g span{font-size:11px;color:var(--muted)}
.v2-cie .fmat td.c{text-align:right;padding:0 8px;height:36px;border-radius:8px;border:1px solid var(--c-line);background:var(--surface);font-variant-numeric:tabular-nums;white-space:nowrap}
.v2-cie .fmat td.c.e-decl{border-color:var(--c-decl);font-weight:700}.v2-cie .fmat td.c.e-ref{border-color:var(--c-ref)}
.v2-cie .fmat td.c.e-der{box-shadow:inset 0 -2px 0 var(--c-der)}.v2-cie .fmat td.c.vide{color:var(--c-inc);background:var(--c-surf2)}.v2-cie .fmat td.c.futur{border-color:transparent;background:transparent}
.v2-cie .fmat td.c.clic{cursor:pointer}.v2-cie .fmat td.c.clic:hover{border-color:var(--brand);background:var(--brand-soft)}
.v2-cie .fmat td.an{text-align:right;font-weight:800;padding:0 8px}
.v2-cie .jl{display:flex;flex-direction:column;gap:10px;margin-top:6px}
.v2-cie .jl .j{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border-radius:10px;background:var(--c-surf2)}
.v2-cie .jl .j>i{width:10px;height:10px;border-radius:50%;background:var(--muted);margin-top:4px;flex-shrink:0}
.v2-cie .jl .j.panne>i{background:var(--c-perte)}.v2-cie .jl .j.maintenance>i{background:var(--c-hy)}.v2-cie .jl .j.travaux>i{background:var(--c-der)}.v2-cie .jl .j.ajout>i{background:var(--c-fact)}
.v2-cie .jl .jt{display:flex;gap:10px;align-items:baseline;font-size:13px}.v2-cie .jl .jt b{font-weight:800}.v2-cie .jl .jt span{color:var(--muted);font-size:12px}
.v2-cie .jl .jd{font-size:13px;margin-top:3px}.v2-cie .jl .ja{font-size:11px;color:var(--muted);margin-top:3px}
/* les zones : prefectures et communes */
.v2-cie-zones{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-top:14px}
.v2-cie .zone{padding:14px 16px;display:grid;grid-template-columns:90px 1fr auto;grid-template-rows:auto auto;gap:6px 14px;align-items:center;position:relative;transition:transform .15s ease,box-shadow .15s ease}
.v2-cie .zone.clic{cursor:pointer}.v2-cie .zone.clic:hover{transform:translateY(-2px)}
.v2-cie .zone .sil{width:90px;height:70px;grid-row:1/3}
.v2-cie .zone .sil .terre{fill:var(--c-land);stroke:var(--c-coast);stroke-width:.8}
.v2-cie .zone .zt b{display:block;font-size:15px;font-weight:800;letter-spacing:-.02em}.v2-cie .zone .zt span{font-size:11.5px;color:var(--muted)}
.v2-cie .zone .zc{grid-column:2/4;display:grid;grid-template-columns:1fr 1fr;gap:6px 12px}
.v2-cie .zone .zc .cel b.n{font-size:15px}
.v2-cie .zone .chev{font-size:22px;color:var(--muted);grid-row:1}
/* registre */
.v2-cie .iact{align-items:center}
.v2-cie .iact a.v2-b.premier{padding:7px 14px;font-size:12.5px;color:var(--surface)}
.v2-cie-chaine .maillon{text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:5px;padding:8px 10px;border-radius:10px;transition:background .15s}
.v2-cie-chaine .maillon:hover{background:var(--brand-soft)}
.v2-cie-chaine .maillon b.n{font-size:22px}.v2-cie-chaine .maillon span{font-size:11.5px;color:var(--muted)}
@media (max-width:1100px){.v2-cie .fgrille{grid-template-columns:1fr}}


/* ---------------------------------------------------------------------
   LA VUE D'ENSEMBLE, HABIT A + B (27/09/2026) : verre sombre et relief,
   KPI a pastille, jauge de puissance, courbe de production, journal.
   Les donnees et la structure ne bougent pas.
   --------------------------------------------------------------------- */
.v2-cie.vueB .kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}
.v2-cie.vueB .kpi{padding:16px 18px;position:relative;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:6px;transition:transform .15s,box-shadow .15s}
.v2-cie.vueB .kpi:hover{transform:translateY(-2px)}
.v2-cie.vueB .kpi .ico{position:absolute;right:14px;top:14px;width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--brand);background:var(--brand-soft);border:1px solid var(--c-line)}
.v2-cie.vueB .kpi .k{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:700}
.v2-cie.vueB .kpi b.n{font-size:30px;margin-top:6px;align-self:flex-start}
.v2-cie.vueB .kpi .s{font-size:11.5px;color:var(--c-fact);font-weight:600}
.v2-cie.vueB .deux{display:grid;grid-template-columns:1.6fr 1fr;gap:12px;margin-bottom:22px}
.v2-cie.vueB .ct{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}
.v2-cie.vueB .ct b{font-size:14px;font-weight:800}.v2-cie.vueB .ct>span{font-size:11.5px;color:var(--muted)}.v2-cie.vueB .ct .lien{margin-left:auto}
.v2-cie.vueB .courbe,.v2-cie.vueB .journal{padding:16px 18px}
.v2-cie.vueB .cp{width:100%;height:auto;display:block}
.v2-cie.vueB .cp .gr{stroke:var(--c-line)}
.v2-cie.vueB .cp .ligne{fill:none;stroke:var(--c-prod);stroke-width:2.5;stroke-linejoin:round}
.v2-cie.vueB .cp .pt{fill:var(--c-prod);opacity:.7}.v2-cie.vueB .cp .pt.decl{fill:var(--c-fact);opacity:1}
.v2-cie.vueB .cp .curseur{stroke:var(--muted);stroke-dasharray:3 3}
.v2-cie.vueB .cp .focus{fill:var(--surface);stroke:var(--c-prod);stroke-width:2.5}
.v2-cie.vueB .cp .bulle{fill:var(--surface);stroke:var(--c-line2)}
.v2-cie.vueB .cp .bl{fill:var(--muted);font-size:10px}.v2-cie.vueB .cp .bv{fill:var(--c-prod);font-size:11px;font-weight:700}
.v2-cie.vueB .cp .grad,.v2-cie .jauge .grad{fill:var(--muted);font-size:10px;font-weight:600}
.v2-cie.vueB .feed>div{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--c-line);font-size:12.5px}
.v2-cie.vueB .feed>div:last-child{border-bottom:0}
.v2-cie.vueB .feed i{width:26px;height:26px;border-radius:50%;background:var(--brand-soft);color:var(--brand);font-size:10px;font-weight:800;font-style:normal;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.v2-cie.vueB .feed code{font-family:inherit;color:var(--c-prod);font-weight:700;font-size:12px}
.v2-cie.vueB .feed small{display:block;color:var(--muted);font-size:11px;margin-top:2px}
/* la jauge */
.v2-cie .jauge{width:100%;max-width:230px;height:auto;display:block;margin:0 auto}
.v2-cie .jauge .piste{fill:none;stroke:var(--c-line);stroke-width:12;stroke-linecap:round}
.v2-cie .jauge .inst{fill:none;stroke:#8CA6D6;stroke-width:12;stroke-linecap:round;opacity:.55}
.v2-cie .jauge .ferme{fill:none;stroke:var(--c-ferme);stroke-width:12;stroke-linecap:round}
.v2-cie .jauge .pointe{stroke:var(--c-pointe);stroke-width:3;stroke-linecap:round}
.v2-cie .jauge .centre{fill:var(--ink);font-size:20px;font-weight:800;letter-spacing:-.02em}
html[data-theme="dark"] .v2-cie .jauge .inst{stroke:#3E5386;opacity:.9}
/* le verre, en sombre */
html[data-theme="dark"] .v2-cie .pan{background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.025));border-color:rgba(255,255,255,.1);backdrop-filter:blur(10px)}
html[data-theme="dark"] .v2-cie-page{background:radial-gradient(900px 500px at 15% -5%,#16274D 0%,#0B1224 40%,#070B16 100%)}
@media (max-width:1200px){.v2-cie.vueB .kpis{grid-template-columns:1fr 1fr}.v2-cie.vueB .deux{grid-template-columns:1fr}}


/* ---------------------------------------------------------------------
   PASSE DE COHERENCE (27/09/2026) : en-tete compact, rail repliable,
   echelle horizontale, tout cliquable, statuts discrets.
   --------------------------------------------------------------------- */
.v2-cie-tete{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:14px 30px 0;padding-bottom:0;border-bottom:1px solid var(--c-line)}
.v2-cie-tete .qui{padding-bottom:12px}
.v2-cie-tete h1{margin:4px 0 0;font-size:28px}
.v2-cie-tete .droite{display:flex;flex-direction:column;align-items:flex-end;gap:6px;min-width:0}
.v2-cie-tete .micro{display:flex;align-items:center;gap:0;font-size:12px;color:var(--muted)}
.v2-cie-tete .micro>span{display:flex;align-items:baseline;gap:5px;padding:0 14px;border-left:1px solid var(--c-line)}
.v2-cie-tete .micro>span:first-child{border-left:0}
.v2-cie-tete .micro b{font-size:14px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.v2-cie-tete .micro em{font-style:normal}
.v2-cie-tete .micro .maj{display:flex;align-items:baseline;gap:7px;padding:0 0 0 14px;border-left:1px solid var(--c-line);text-decoration:none;color:inherit}
.v2-cie-tete .micro .maj i{width:7px;height:7px;border-radius:50%;background:var(--c-der);align-self:center}
.v2-cie-tete .micro .maj.ok i{background:var(--c-fact)}
.v2-cie-tete .micro .maj b{color:var(--c-der)}.v2-cie-tete .micro .maj.ok b{color:var(--c-fact)}
.v2-cie-page .v2-cie-tete .v2-ope-onglets{padding:0;margin:0;border:0;background:transparent;flex-wrap:nowrap}
.v2-cie-page .v2-cie-tete .v2-ope-onglets a{padding:10px 14px 12px;margin-bottom:-1px;font-size:13px;white-space:nowrap}
.v2-cie{padding-top:18px}
/* le rail repliable */
.v2-rail-pli{position:absolute;right:-12px;top:14px;width:24px;height:24px;border-radius:50%;border:1px solid var(--v2-trait);background:var(--surface);color:var(--muted);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:5;padding:0;box-shadow:var(--v2-ombre)}
.v2-rail-pli svg{transform:rotate(180deg);transition:transform .2s}
.v2-rail-pli:hover{color:var(--ink)}
.v2.v2-rail-compact{--v2-rail:68px}
.v2.v2-rail-compact .v2-bandeau > .v2-marque{width:68px;margin-right:0;padding:6px 0 6px 12px;overflow:hidden}
.v2.v2-rail-compact .v2-bandeau > .v2-marque img{height:34px;max-width:none}
.v2.v2-rail-compact .v2-rail-pli svg{transform:none}
.v2.v2-rail-compact .v2-nav .t,.v2.v2-rail-compact .v2-nav .cnt,.v2.v2-rail-compact .v2-profil-t{display:none}
.v2.v2-rail-compact .v2-sect{visibility:hidden}
.v2.v2-rail-compact .v2-nav{justify-content:flex-start;padding:10px 12px;gap:12px}
.v2.v2-rail-compact .v2-rail-nav{padding:16px 12px 8px;overflow-x:hidden}
.v2.v2-rail-compact .v2-profil-b{justify-content:center;padding:9px 0}
@media (max-width:640px){.v2-rail-pli{display:none}}
/* vue d'ensemble : indicateurs compacts */
.v2-cie.vueC .inds{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:4px;margin-bottom:6px}
.v2-cie.vueC .ind{display:flex;flex-direction:column;gap:5px;padding:12px 18px;border-left:1px solid var(--c-line);text-decoration:none;color:inherit;border-radius:10px;transition:background .15s}
.v2-cie.vueC .ind:first-child{border-left:0}
.v2-cie.vueC .ind:hover{background:var(--brand-soft)}
.v2-cie.vueC .ind .k{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:700}
.v2-cie.vueC .ind b.n{font-size:22px;align-self:flex-start}
/* les systemes : silhouette plus grande, echelle horizontale lisible */
.v2-cie-sys .rang{grid-template-columns:330px minmax(0,1.25fr) minmax(0,1.1fr) 270px}
.v2-cie-sys .sil{width:160px;height:118px}
.v2-cie-sys .sil.vide{width:160px;height:118px}
.v2-cie-sys .iech{height:16px}
.v2-cie-sys .iech i.inst{background:linear-gradient(180deg,#B7C8E8,#98AEDA)}
.v2-cie-sys .iech b.pointe{top:-6px;height:28px}
.v2-cie-sys .grad{margin-top:-4px;font-size:10.5px}
.v2-cie-sys .chips a{text-decoration:none;cursor:pointer}
.v2-cie-sys .chips a:hover{border-color:var(--brand);color:var(--brand)}
.v2-cie .lien-cel{position:relative}
.v2-cie .lien-cel::after{content:"›";position:absolute;right:6px;top:4px;font-size:14px;color:var(--muted);opacity:0;transition:opacity .15s}
.v2-cie .lien-cel:hover::after{opacity:1}
/* production : focus */
.v2-cie .voie.estompe{opacity:.45}
.v2-cie .voie.focus{box-shadow:0 0 0 2px var(--brand),var(--v2-ombre)}
.v2-cie-voies.focus-thermique .site.pv,.v2-cie-voies.focus-thermique .site.hy,.v2-cie-voies.focus-solaire .site.th,.v2-cie-voies.focus-solaire .site.hy,.v2-cie-voies.focus-hydro .site.th,.v2-cie-voies.focus-hydro .site.pv{opacity:.35}
.v2-cie-avis.focus{display:flex;gap:8px;align-items:baseline;border-left-color:var(--brand)}
/* reseau, ventes : la ligne et la carte sont l'acces */
.v2-cie-res .rang.clic{cursor:pointer;transition:transform .15s,box-shadow .15s}
.v2-cie-res .rang.clic:hover{transform:translateY(-1px)}
.v2-cie .chev{font-size:20px;color:var(--muted)}
.v2-cie-tbl tr.clic:hover td{background:var(--brand-soft)}
.v2-cie .zone .zc .cel b.n.e-inc{font-size:11px!important;opacity:.7}
.v2-cie .zone .zt b{font-size:16px}
.v2-cie .zone .sil .terre{fill:var(--c-land)}
/* donnees : statuts discrets */
.v2-cie-matrice td.c.e-decl,.v2-cie-matrice td.c.e-ref,.v2-cie-matrice td.c.e-der{box-shadow:none!important;position:relative}
.v2-cie-matrice td.c.e-decl::after,.v2-cie-matrice td.c.e-ref::after,.v2-cie-matrice td.c.e-der::after{content:"";position:absolute;right:5px;top:5px;width:5px;height:5px;border-radius:50%}
.v2-cie-matrice td.c.e-decl::after{background:var(--c-decl)}.v2-cie-matrice td.c.e-ref::after{background:var(--c-ref)}.v2-cie-matrice td.c.e-der::after{background:var(--c-der);opacity:.7}
.v2-cie-matrice td.c.e-der{color:var(--ink-2)}
.v2-cie-matrice td.c.clic:hover{border-color:var(--brand)}
.v2-cie .fmat td.c.e-der{box-shadow:none;position:relative}
.v2-cie .fmat td.c.e-der::after{content:"";position:absolute;right:5px;top:5px;width:5px;height:5px;border-radius:50%;background:var(--c-der);opacity:.7}
/* le sombre : pas de halos, la meme structure */
html[data-theme="dark"] .v2-cie .pan{backdrop-filter:none}
@media (max-width:1440px){.v2-cie-sys .rang{grid-template-columns:290px minmax(0,1.2fr) minmax(0,1fr) 240px}.v2-cie-sys .sil{width:140px;height:104px}}
@media (max-width:1366px){.v2-cie-tete{flex-direction:column;align-items:stretch}.v2-cie-tete .droite{align-items:flex-start}.v2-cie-tete .qui{padding-bottom:6px}.v2-cie-page .v2-cie-tete .v2-ope-onglets{flex-wrap:wrap}.v2-cie.vueC .inds{grid-template-columns:repeat(5,minmax(0,1fr))}.v2-cie.vueC .ind{padding:10px 12px}.v2-cie.vueC .ind b.n{font-size:19px}}

/* ---------------------------------------------------------------------
   LE COCKPIT : UNE GRILLE DE DOUZE

   Un poste de pilotage doit porter plusieurs lectures cote a cote. Une
   pile de cartes pleine largeur laisse 70 % de vide sur un moniteur et
   oblige a faire defiler pour comparer deux chiffres qui se repondent.

   Sous 1180 px, chaque carte reprend la largeur entiere : comparer cote
   a cote n'a plus de sens quand chaque colonne fait 200 px.
   --------------------------------------------------------------------- */
@media (max-width: 1180px) {
  .v2-cockpit > * { grid-column: 1 / -1 !important; }
}

/* ---------------------------------------------------------------------
   LE PILOTAGE TERRITORIAL

   Trois colonnes : l'arbre du pays, la carte, la synthese de la zone.
   Sous 1240 px elles s'empilent -- trois colonnes de 250 px ne sont pas
   trois colonnes, et la carte y devient un timbre.
   --------------------------------------------------------------------- */
@media (max-width: 1240px) {
  .v2-terr { grid-template-columns: 1fr !important; }
  .v2-terr > * { min-height: 320px; }
}

/* Un noeud de l'arbre. Le decalage dit le niveau ; il n'y a ni chevron
   ni ligne pointillee, parce qu'on ne deplie que la zone ouverte. */
.v2-arbre { display:flex; align-items:center; gap:9px; width:100%; text-align:left;
  border:0; background:transparent; font:inherit; font-size:13px; font-weight:600;
  color:var(--ink); padding:7px 9px; border-radius:8px; cursor:pointer;
  transition:background var(--v2-t), color var(--v2-t) }
.v2-arbre:hover { background:var(--v2-surface-2) }
.v2-arbre.actif { background:var(--ink); color:var(--surface) }
.v2-arbre.n1 { padding-left:15px }
.v2-arbre.n2 { padding-left:27px; font-weight:500; font-size:12.5px; color:var(--ink-2) }
.v2-arbre .n { font-size:12px; font-weight:700; font-variant-numeric:tabular-nums; opacity:.7 }

/* ================= la desserte : tiroir du temps, panneau, fiche (24/09/2026) =================
   Le tiroir se pose SUR la carte : la toile ne change pas de taille. */
:root{ --dz-inconnu:#C9D2DE; --dz-raye:rgba(90,104,128,.55); --dz-verre:rgba(255,255,255,.94);
  --dz-ok:#5DB88A; --dz-coupe:#E0605A; --dz-partiel:#EDA64A }
:root[data-theme="dark"]{ --dz-inconnu:#3A465C; --dz-raye:rgba(190,204,226,.45); --dz-verre:rgba(15,23,37,.94) }
/* Le tiroir se pose AU-DESSUS de la barre de la carte (fond, lecture) :
   elle doit rester accessible en toutes circonstances (25/09/2026). */
.dz-tiroir{position:absolute;left:10px;right:10px;bottom:62px;z-index:6;background:var(--dz-verre);
  border:1px solid var(--v2-trait);border-radius:12px;box-shadow:var(--v2-ombre-haute);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--ink);display:flex;flex-direction:column;
  max-height:calc(100% - 132px);transition:box-shadow var(--v2-t)}
.dz-tiroir.dz-ouvert{max-height:62%}
.dz-tete{display:flex;align-items:center;gap:8px;padding:7px 10px;min-height:38px;flex-wrap:wrap}
.dz-titre{border:0;background:transparent;color:inherit;font:inherit;font-size:13px;cursor:pointer;padding:2px 4px;border-radius:6px;text-align:left}
.dz-titre:hover{background:var(--v2-surface-2)}
.dz-titre .dz-a{color:var(--brand);font-weight:600}
.dz-icone{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:7px;
  border:1px solid var(--v2-trait);background:var(--v2-surface);color:var(--ink-2);cursor:pointer;font:inherit;font-weight:700;font-size:12px}
.dz-icone:hover{color:var(--ink);background:var(--v2-surface-2)}
.dz-icone.on{background:var(--brand-soft);color:var(--brand);border-color:var(--brand-line)}
.dz-icone:disabled{opacity:.35;cursor:default;background:var(--v2-surface);color:var(--ink-2)}
.dz-nav{display:flex;align-items:center;gap:2px}
.dz-per{border:0;background:transparent;color:var(--ink-2);font:inherit;font-size:12.5px;padding:4px 9px;border-radius:6px;cursor:pointer}
.dz-per:hover{background:var(--v2-surface-2);color:var(--ink)}
.dz-per.on{background:var(--brand-soft);color:var(--brand);font-weight:700}
.dz-maint{border:1px solid var(--brand-line);background:var(--brand-soft);color:var(--brand);font:inherit;font-size:12px;
  font-weight:600;padding:3px 10px;border-radius:999px;cursor:pointer}
.dz-demo,.dz-puce.demo{font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--warn);
  background:var(--warn-soft);border-radius:999px;padding:2px 8px}
.dz-bandeau-demo{font-size:11.5px;font-weight:600;color:var(--warn);background:var(--warn-soft);border-radius:8px;padding:6px 9px;margin:0 0 10px}
.dz-corps{padding:2px 12px 10px;overflow:auto;min-height:0;display:flex;flex-direction:column;gap:8px}

/* les etats, une seule palette pour la frise, les cases, la legende, le panneau */
.dz-e-coupe{background:var(--dz-coupe)} .dz-e-alimente{background:var(--dz-ok)} .dz-e-partiel{background:var(--dz-partiel)}
.dz-e-inconnu{background:var(--dz-inconnu)}
.dz-e-incomplet{background:repeating-linear-gradient(135deg,var(--dz-raye) 0 2px,var(--dz-inconnu) 2px 6px)}
.dz-e-futur{background:var(--dz-inconnu)}
/* signalee, a confirmer (R-E, 10/10/2026) : le contour en tirets de la carte */
.dz-e-signale{background:transparent;border:2px dashed var(--warn);box-sizing:border-box}
.dz-futur{opacity:.38}
.dz-prov{box-shadow:inset 0 3px 0 0 var(--warn)}

/* la frise du jour */
.dz-jour{position:relative;padding:24px 0 0}
.dz-piste{position:relative;height:26px;border-radius:6px;overflow:visible;background:var(--dz-inconnu);cursor:crosshair;outline:none}
.dz-piste:focus-visible{box-shadow:0 0 0 2px var(--brand-line)}
.dz-seg{position:absolute;top:0;bottom:0}
.dz-maintenant{position:absolute;top:-4px;bottom:-4px;width:2px;margin-left:-1px;background:var(--ink);opacity:.7;pointer-events:none}
.dz-curseur{position:absolute;top:-6px;bottom:-6px;width:2px;margin-left:-1px;background:var(--brand);pointer-events:none;
  box-shadow:0 0 0 1px var(--v2-surface)}
.dz-curseur-l{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);margin-bottom:2px;font-size:11px;font-weight:700;
  color:#fff;background:var(--brand);border-radius:5px;padding:1px 6px;white-space:nowrap}
:root[data-theme="dark"] .dz-curseur-l{color:#0B1220}
.dz-evts{position:relative;margin-top:5px}
.dz-evt{position:absolute;height:7px;border:0;padding:0;border-radius:3px;cursor:pointer;min-width:4px}
.dz-evt.dz-t-coupe{background:var(--crit)} .dz-evt.dz-t-alimente{background:var(--good)}
.dz-evt.dz-s-a_confirmer{background:transparent !important;border:1.5px dashed var(--warn)}
.dz-evt.dz-s-rejete{background:transparent !important;border:1px dashed var(--muted);opacity:.7}
.dz-evt.dz-herite{opacity:.55}
.dz-evt:hover,.dz-evt:focus-visible{outline:2px solid var(--ink);outline-offset:1px}
.dz-grad{position:relative;height:16px;margin-top:3px}
.dz-tick{position:absolute;top:0;width:1px;height:4px;background:var(--v2-trait-fort)}
.dz-tick.fort{height:6px;background:var(--muted)}
.dz-tick span{position:absolute;top:6px;left:0;transform:translateX(-50%);font-size:10.5px;color:var(--muted);font-variant-numeric:tabular-nums}

/* semaine, mois, annee */
.dz-cases{display:flex;gap:3px;align-items:stretch;height:92px}
.dz-case{flex:1;min-width:0;display:flex;flex-direction:column;align-items:stretch;gap:3px;border:0;background:transparent;
  padding:0;cursor:pointer;font:inherit;color:inherit;position:relative}
.dz-barre{flex:1;display:flex;flex-direction:column-reverse;border-radius:4px;overflow:hidden;background:var(--dz-inconnu)}
.dz-barre>span{display:block;width:100%}
.dz-case:hover .dz-barre,.dz-case:focus-visible .dz-barre{outline:2px solid var(--brand);outline-offset:1px}
.dz-case-l{font-size:10.5px;color:var(--muted);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dz-case-n{position:absolute;top:2px;left:0;right:0;text-align:center;font-size:10px;font-weight:700;color:#fff;text-shadow:0 0 3px rgba(0,0,0,.5)}

.dz-legende{display:flex;gap:12px;flex-wrap:wrap;font-size:11.5px;color:var(--ink-2)}
.dz-legende>span,.dz-detail>span,.dz-aide-l{display:inline-flex;align-items:center;gap:6px}
.dz-legende i,.dz-detail i,.dz-aide-l i{display:inline-block;width:10px;height:10px;border-radius:3px;flex:0 0 auto}

.dz-synth{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px;margin-top:2px}
.dz-chiffre{display:flex;flex-direction:column;gap:1px;padding:7px 9px;border:1px solid var(--v2-trait);border-radius:8px;background:var(--v2-surface)}
.dz-chiffre-l{font-size:11px;color:var(--muted)}
.dz-chiffre-v{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}
.dz-chiffre-s{font-size:11px;color:var(--ink-2)}
.dz-liste{min-width:0}
.dz-tbl td,.dz-tbl th{font-size:12px}
.dz-tbl tbody tr:hover{background:var(--v2-surface-2)}
.dz-puce{display:inline-block;font-size:10.5px;font-weight:600;border-radius:999px;padding:1px 7px;margin:1px 4px 1px 0;white-space:nowrap}
.dz-puce.good{color:var(--good);background:var(--good-soft)} .dz-puce.warn{color:var(--warn);background:var(--warn-soft)}
.dz-puce.crit{color:var(--crit);background:var(--crit-soft)} .dz-puce.brand{color:var(--brand);background:var(--brand-soft)}
.dz-puce.muted{color:var(--ink-2);background:var(--v2-surface-2);border:1px solid var(--v2-trait)}

/* le panneau */
.dz-panneau{padding:2px 2px 14px}
.dz-info{width:22px;height:22px;border-radius:50%;font-style:italic;font-family:Georgia,serif}
.dz-aide{background:var(--v2-surface-2);border:1px solid var(--v2-trait);border-radius:8px;padding:9px 10px;margin-bottom:10px;
  font-size:12px;display:flex;flex-direction:column;gap:5px;color:var(--ink-2)}
.dz-etat{display:flex;align-items:center;gap:10px;padding:10px 11px;border:1px solid var(--v2-trait);border-radius:10px;background:var(--v2-surface)}
.dz-etat>i{width:14px;height:34px;border-radius:4px;flex:0 0 auto}
.dz-etat-v{font-size:16px;font-weight:700}
.dz-note{font-size:12px;border-radius:8px;padding:7px 9px;margin-top:8px}
.dz-note.warn{color:var(--warn);background:var(--warn-soft)} .dz-note.good{color:var(--good);background:var(--good-soft)}
.dz-note.crit{color:var(--crit);background:var(--crit-soft)}
.dz-lignes{display:flex;flex-direction:column;margin-top:10px}
.dz-ligne{display:flex;align-items:baseline;gap:10px;padding:5px 0;font-size:12.5px}
.dz-ligne>span:first-child{flex:1 1 46%;min-width:0}
.dz-ligne>span:last-child{max-width:58%;text-align:right;overflow-wrap:anywhere}
.dz-jauge{height:6px;border-radius:999px;background:var(--dz-inconnu);overflow:hidden;margin:0 0 6px}
.dz-jauge>span{display:block;height:100%;background:var(--brand)}
.dz-detail{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:11.5px;color:var(--ink-2);margin:2px 0 6px}
.dz-alertes{margin-top:12px;display:flex;flex-direction:column;gap:5px;align-items:flex-start}
.dz-alerte{border:0;font:inherit;font-size:12px;font-weight:600;border-radius:7px;padding:5px 9px;cursor:pointer;text-align:left}
.dz-alerte.crit{color:var(--crit);background:var(--crit-soft)} .dz-alerte.warn{color:var(--warn);background:var(--warn-soft)}
.dz-alerte.brand{color:var(--brand);background:var(--brand-soft)}

/* la fiche */
.dz-retour{display:inline-flex;align-items:center;gap:4px;border:0;background:transparent;color:var(--ink-2);font:inherit;
  font-size:12.5px;cursor:pointer;padding:3px 4px;margin:0 0 8px -4px;border-radius:6px}
.dz-retour:hover{color:var(--ink);background:var(--v2-surface-2)}
.dz-fiche-t{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14px}
.dz-fiche-t>i{width:10px;height:10px;border-radius:3px}
.dz-puces{margin:6px 0 4px}
.dz-gestes{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.dz-form{display:flex;flex-direction:column;gap:7px;margin-top:10px;padding:10px;border:1px solid var(--v2-trait);border-radius:10px;background:var(--v2-surface-2)}
.dz-champ{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--ink-2)}
.dz-champ input[type=text],.dz-champ input[type=datetime-local],.dz-champ textarea{font:inherit;font-size:12.5px;color:var(--ink);
  background:var(--v2-surface);border:1px solid var(--v2-trait-fort);border-radius:7px;padding:6px 8px}
.dz-case-a-cocher{flex-direction:row;align-items:center;gap:7px}
.dz-prop{border:1px solid var(--v2-trait);border-radius:8px;padding:8px 9px;font-size:12px;margin-bottom:6px}
.dz-histoire{list-style:none;margin:0;padding:0 0 0 12px;border-left:2px solid var(--v2-trait);display:flex;flex-direction:column;gap:9px;font-size:12px}
.dz-histoire li{position:relative}
.dz-histoire li::before{content:"";position:absolute;left:-17px;top:4px;width:8px;height:8px;border-radius:50%;background:var(--brand)}
.dz-motif{font-style:italic;color:var(--ink-2)}

/* desserte map-first (25/09/2026) */
.dz-titre-etat{display:inline-flex;align-items:center;gap:6px;margin-left:8px;font-weight:600}
.dz-titre-etat i{display:inline-block;width:10px;height:10px;border-radius:3px}
.dz-actifs{display:flex;flex-direction:column;gap:5px}
.dz-actif{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:1px solid var(--v2-trait);
  background:var(--v2-surface);border-radius:8px;padding:7px 9px;font:inherit;font-size:12px;color:var(--ink);cursor:pointer}
.dz-actif:hover,.dz-actif:focus-visible{border-color:var(--brand-line);background:var(--v2-surface-2)}
.dz-actif>i{width:9px;height:26px;border-radius:3px;flex:0 0 auto}
.dz-actif-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dz-zt{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin-top:10px;font-size:12px}
.dz-zt .v2-lab{margin-right:4px}
.dz-champ select{font:inherit;font-size:12.5px;color:var(--ink);background:var(--v2-surface);border:1px solid var(--v2-trait-fort);border-radius:7px;padding:6px 8px}

/* ================= Territoire > Desserte, Densite, Analyse, Liste (25/09/2026) ================= */
/* la vue Desserte : la carte entiere en haut, le temps dessous ; la colonne defile */
.dz-colonne{display:flex;flex-direction:column;gap:14px;min-height:0;overflow:auto;padding-bottom:18px}
.dz-cadre-carte{flex:0 0 auto !important;height:clamp(340px,56vh,620px)}
.dz-temps{border:1px solid var(--v2-trait);border-radius:12px;background:var(--v2-surface);padding:10px 14px 12px}
.dz-temps-tete{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.dz-quand-t{font-weight:700;font-size:13.5px}
.dz-temps-corps{display:flex;flex-direction:column;gap:10px}
.dz-attente{opacity:.55}
.dz-plages{display:flex;flex-wrap:wrap;gap:6px}
.dz-plage{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--v2-trait);background:var(--v2-surface-2);
  border-radius:8px;padding:6px 10px;font:inherit;font-size:13px;color:var(--ink);cursor:pointer}
.dz-plage:hover,.dz-plage:focus-visible{border-color:var(--brand-line)}
.dz-plage i{width:10px;height:10px;border-radius:3px}
.dz-plage.aucune{cursor:default;color:var(--ink-2)}
.dz-resume{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13px}
.dz-historique{margin-top:10px;border-top:1px solid var(--v2-trait);padding-top:8px}
.dz-historique>summary{cursor:pointer;font-weight:600;font-size:12.5px;color:var(--ink-2);padding:4px 0}
.dz-bloc{margin-top:14px}
.dz-bloc-t{margin-bottom:6px}
.dz-bloc .dz-actif{margin-bottom:5px}
.dz-tendance{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.dz-tend{display:flex;flex-direction:column;align-items:flex-start;padding:6px 8px;border:1px solid var(--v2-trait);border-radius:8px;font-size:11.5px}
.dz-tend b{font-size:14px}
.dz-plus{margin-top:4px}
.dz-plus>summary{cursor:pointer;font-size:12px;color:var(--ink-2);padding:4px 0}
.dz-plus[open]{display:flex;flex-direction:column;gap:7px}
.dz-champ input[type=datetime-local]:disabled{opacity:.45}
.dz-panneau{padding:2px 2px 18px}

/* la densite : une legende continue, la meme rampe que la carte */
.v2-legende-dens{display:flex;align-items:center;gap:8px;background:var(--v2-surface);border:1px solid var(--v2-trait);
  border-radius:10px;padding:6px 10px;font-size:11.5px;color:var(--ink-2)}
.v2-rampe-dens{display:inline-block;width:110px;height:9px;border-radius:5px;
  background:linear-gradient(90deg,rgba(254,240,138,.45),rgb(251,191,36),rgb(249,115,22),rgb(220,38,38),rgb(127,29,29))}

/* analyse et liste */
.ta-page{display:flex;flex-direction:column;gap:12px;padding-bottom:18px}
.ta-tuiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.ta-tuile{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--v2-trait);border-radius:10px;background:var(--v2-surface)}
.ta-tuile-l{font-size:11.5px;color:var(--muted)}
.ta-tuile-v{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}
.ta-tuile-s{font-size:11.5px;color:var(--ink-2)}
.ta-titre{margin:6px 2px 0}
.ta-tbl td,.ta-tbl th{font-size:12.5px}
.ta-tbl tbody tr:hover{background:var(--v2-surface-2)}
.ta-barre{display:inline-block;width:110px;height:7px;border-radius:4px;background:var(--v2-surface-2);vertical-align:middle;overflow:hidden}
.ta-barre i{display:block;height:100%;background:var(--brand)}
.ta-prio{display:flex;flex-direction:column;gap:5px}
.ta-prio-l{text-align:left;border:1px solid var(--v2-trait);background:var(--v2-surface);border-radius:8px;padding:7px 10px;
  font:inherit;font-size:12.5px;color:var(--ink);cursor:pointer}
.ta-prio-l:disabled{cursor:default}
.ta-prio-l.crit{border-color:var(--crit);color:var(--crit);background:var(--crit-soft)}
.ta-outils{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ta-recherche,.ta-filtre{font:inherit;font-size:12.5px;color:var(--ink);background:var(--v2-surface);border:1px solid var(--v2-trait-fort);
  border-radius:8px;padding:7px 10px}
.ta-recherche{min-width:220px}
.ta-triable{cursor:pointer;user-select:none}
.ta-triable:hover{color:var(--ink)}

/* Desserte, lecture sobre (25/09/2026, correction finale) */
.dz-bandes{display:flex;flex-direction:column;gap:3px}
.dz-bandes.serre{gap:1px}
.dz-bande{display:flex;align-items:center;gap:8px;border:0;background:transparent;padding:0;font:inherit;color:inherit;cursor:pointer;text-align:left}
.dz-bande:hover .dz-bande-p{outline:1px solid var(--brand-line)}
.dz-bande-l{flex:0 0 64px;font-size:11px;color:var(--muted);white-space:nowrap}
.dz-bande-p{position:relative;flex:1;height:14px;border-radius:3px;background:var(--dz-inconnu);overflow:hidden}
.dz-bandes.serre .dz-bande-p{height:8px}
.dz-bande-p.sans{background:transparent;overflow:visible;height:16px}
.dz-bande-p>i{position:absolute;top:0;bottom:0}
.dz-bande-p .dz-grad{margin-top:0}
.dz-barres{display:flex;gap:4px;align-items:stretch;height:120px}
.dz-barre-h{background:var(--v2-surface-2) !important}
.dz-habitude{display:flex;align-items:baseline;gap:10px;padding:4px 0;font-size:14px}
.dz-habitude b{font-variant-numeric:tabular-nums}
.dz-types{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12.5px;padding:4px 0}
.dz-provenance{margin-top:14px;font-size:11.5px;color:var(--muted);line-height:1.5}
.dz-bloc .dz-plage{margin:0 6px 6px 0}
.dz-plage.dz-futur{opacity:.85;border-style:dashed}
.dz-barres-l{font-size:11.5px;margin:0 0 6px}
.dz-legende{gap:12px;flex-wrap:wrap}
.dz-leg{display:inline-flex;align-items:center;gap:5px}
.dz-leg i{display:inline-block;width:11px;height:11px;border-radius:3px}
/* Desserte, lecture calendaire (25/09/2026) */
:root{ --dz-ok-pale:#D6EEDF }
:root[data-theme="dark"]{ --dz-ok-pale:#23483A }
.dz-bande-p{height:18px;border-radius:4px;background:var(--dz-ok-pale)}
.dz-bande-p.vide{background:repeating-linear-gradient(135deg,var(--dz-raye) 0 1px,var(--dz-inconnu) 1px 6px)}
.dz-bande-p.avenir{background:transparent;border:1px dashed var(--v2-trait)}
.dz-bande-txt{position:absolute;left:8px;top:1px;font-size:11px;color:var(--muted)}
.dz-bande-l{flex:0 0 70px;font-size:12px;color:var(--ink-2)}
.dz-legende-l{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px;font-size:11.5px;color:var(--ink-2)}
.dz-legende-l i{display:inline-block;width:11px;height:11px;border-radius:3px}
.dz-chaleur{background:linear-gradient(90deg,rgb(246,214,160),rgb(214,72,66))!important;width:34px!important}
.dz-vide{background:repeating-linear-gradient(135deg,var(--dz-raye) 0 1px,var(--dz-inconnu) 1px 5px)!important}
.dz-profil{margin-bottom:14px}
.dz-profil-t{font-size:12.5px;margin-bottom:6px}
.dz-profil-b{display:flex;align-items:flex-end;gap:2px;height:64px;border-bottom:1px solid var(--v2-trait)}
.dz-profil-c{flex:1;height:100%;display:flex;align-items:flex-end}
.dz-profil-c i{display:block;width:100%;border-radius:3px 3px 0 0}
.dz-profil-ax{position:relative;height:16px;font-size:10.5px;color:var(--muted)}
.dz-profil-ax span{position:absolute;transform:translateX(-50%);top:2px}
.dz-profil-ax span:first-child{transform:none}.dz-profil-ax span:last-child{transform:translateX(-100%)}
.dz-cals{display:grid;grid-template-columns:minmax(0,420px);gap:18px}
.dz-cals.trois{grid-template-columns:repeat(3,minmax(0,1fr))}
.dz-cal-t{font-size:12.5px;font-weight:700;margin-bottom:6px;text-transform:capitalize}
.dz-cal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.dz-cal-n{font-size:10.5px;color:var(--muted);text-align:center;text-transform:uppercase}
.dz-cal-j{position:relative;aspect-ratio:1.25;border:0;border-radius:5px;padding:3px 4px;font:inherit;cursor:pointer;
  display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;color:#222;background:var(--dz-ok-pale)}
.dz-cal-j:hover{outline:2px solid var(--brand-line)}
.dz-cal-j.vide{background:repeating-linear-gradient(135deg,var(--dz-raye) 0 1px,var(--dz-inconnu) 1px 5px);color:var(--ink-2)}
.dz-cal-j.avenir{background:transparent;border:1px dashed var(--v2-trait);color:var(--muted);cursor:default}
.dz-cal-num{font-size:11px;font-weight:600}
.dz-cal-v{font-size:10.5px;font-weight:700;align-self:flex-end}
.dz-cals.trois .dz-cal-v{display:none}
.dz-annee{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.dz-mois{border:1px solid var(--v2-trait);border-radius:10px;background:var(--v2-surface);padding:10px 12px;text-align:left;
  font:inherit;color:inherit;cursor:pointer;display:flex;flex-direction:column;gap:4px;min-height:74px}
.dz-mois:hover{border-color:var(--brand-line)}
.dz-mois.avenir{cursor:default;border-style:dashed;background:transparent}
.dz-mois.vide{background:repeating-linear-gradient(135deg,transparent 0 6px,var(--dz-inconnu) 6px 7px)}
.dz-mois-n{font-size:12px;font-weight:700;text-transform:capitalize}
.dz-mois-v{display:flex;align-items:center;gap:6px;font-size:15px}
.dz-mois-v i{width:10px;height:10px;border-radius:3px}
.dz-mois-s{font-size:11.5px}
.dz-tuiles{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:4px 0 10px}
.dz-tuile{border:1px solid var(--v2-trait);border-radius:10px;padding:9px 11px;background:var(--v2-surface);min-width:0}
.dz-tuile-m{font-size:11.5px;color:var(--muted);line-height:1.25}
.dz-tuile-v{font-size:19px;font-weight:800;margin-top:3px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.dz-tuile-s{font-size:11px;color:var(--muted);margin-top:1px}
.dz-habitude{display:grid;grid-template-columns:auto auto 1fr;align-items:baseline;gap:10px;padding:6px 0;border-bottom:1px solid var(--v2-trait)}
.dz-habitude b{font-size:17px}
.dz-habitude-d{font-weight:700;color:var(--dz-coupe)}
.dz-habitude-f{text-align:right;font-size:12px}
.dz-types i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px}
.dz-jours-doc{font-size:11.5px;margin:-4px 0 6px}


.v2-cie .cel .s.rouge{color:var(--c-pointe);font-weight:700}
@media (max-width:1366px){.v2-cie-sys .en .trois,.v2-cie-sys .pu .trois{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.v2-cie-sys .en .trois .k,.v2-cie-sys .pu .trois .k,.v2-cie-sys .en .trois .lbl,.v2-cie-sys .pu .trois .lbl{font-size:9.5px;letter-spacing:.06em}.v2-cie-sys .rang{grid-template-columns:230px minmax(0,1.1fr) minmax(0,1.1fr) 210px}.v2-cie-sys .sil{width:104px;max-width:104px;height:96px}.v2-cie-sys .iid .nom{font-size:17px}.v2-cie-sys .rang>section{padding:16px 14px 18px}}


/* =====================================================================
   LE POSTE DE TRAVAIL SONELEC (27/09/2026). Un cadre stable, des surfaces
   de travail, un panneau contextuel commun. Densite maitrisee, lignes et
   surfaces plutot que conteneurs, details a la demande.
   ===================================================================== */
.v2-cie-page{display:flex;flex-direction:column;min-height:0}
.v2-ws-tete{margin:18px 30px 0;padding:0;border-bottom:1px solid var(--c-line2)}
.v2-ws-tete .qui .v2-lab{color:var(--brand);letter-spacing:.16em}
.v2-ws-tete h1{margin:4px 0 6px;font-size:28px;font-weight:800;letter-spacing:-.035em;line-height:1}
.v2-ws-tete .menu{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}
.v2-cie-page .v2-ws-tete .v2-ope-onglets{gap:0;padding:0;margin:0;border:0;background:transparent}
.v2-cie-page .v2-ws-tete .v2-ope-onglets a{border:0;border-bottom:2px solid transparent;border-radius:0;padding:9px 0 10px;margin:0 22px 0 0;color:var(--ink-2);font-weight:500;font-size:13.5px;background:transparent}
.v2-cie-page .v2-ws-tete .v2-ope-onglets a:hover{color:var(--ink)}
.v2-cie-page .v2-ws-tete .v2-ope-onglets a.on{color:var(--brand);font-weight:700;border-bottom-color:var(--brand)}
.v2-ws-tete .maj{display:flex;align-items:center;gap:8px;margin-bottom:8px;padding:6px 12px;border-radius:8px;border:1px solid rgba(232,145,45,.45);background:rgba(232,145,45,.09);text-decoration:none;color:var(--ink)}
.v2-ws-tete .maj i{width:7px;height:7px;border-radius:50%;background:var(--c-der)}
.v2-ws-tete .maj.ok{border-color:var(--c-line);background:transparent}.v2-ws-tete .maj.ok i{background:var(--c-fact)}
.v2-ws-tete .maj b{font-size:12.5px;font-weight:700}.v2-ws-tete .maj em{font-style:normal;font-size:11px;color:var(--muted)}
.v2-cie-page>div:last-child{padding-top:18px!important}

/* la grammaire commune */
.v2-ws{display:flex;flex-direction:column;gap:18px;min-width:0}
.v2-ws .k{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:700}
.v2-ws .k.flex{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.v2-ws .k.flex em{font-style:normal;letter-spacing:0;text-transform:none;font-weight:500;font-size:11px;color:var(--muted)}
.v2-ws .k.flex a{letter-spacing:0;text-transform:none;font-weight:700;font-size:12px;color:var(--brand);text-decoration:none}
.v2-ws .cel{display:flex;flex-direction:column;gap:5px;min-width:0}
.v2-ws .cel .k{font-size:10px;letter-spacing:.1em;white-space:normal;line-height:1.25}
.v2-ws .cel b.n{font-size:19px;padding-bottom:3px;border-bottom:2px solid transparent}
.v2-ws .cel .s{font-size:11px;color:var(--muted);line-height:1.3}
.v2-ws .cel .s b.sans{color:var(--c-perte);font-weight:700}
.v2-ws .cel b.n.rouge{color:var(--c-perte)}
.v2-ws .cel.c-pointe b.n,.v2-ws .cel.c-perte b.n{color:var(--c-perte)}
.v2-ws .cel.c-fact b.n,.v2-ws .cel.c-enc b.n{color:var(--c-fact)}
.v2-ws .cel.c-inst b.n{color:var(--ink)}
.v2-ws .sil .terre{fill:var(--c-land);stroke:var(--c-coast);stroke-width:.9}
.v2-ws .sil .th{fill:var(--c-th)}.v2-ws .sil .pv{fill:var(--c-pv)}.v2-ws .sil .hy{fill:var(--c-hy)}
.v2-ws .sil .th,.v2-ws .sil .pv,.v2-ws .sil .hy{stroke:var(--surface);stroke-width:1.2}
.v2-ws .sil .clic{cursor:pointer}.v2-ws .sil .clic:hover{stroke:var(--brand);stroke-width:2}
.v2-ws .j24{display:flex;height:8px;border-radius:999px;overflow:hidden;background:var(--c-surf2);box-shadow:inset 0 1px 2px rgba(20,32,56,.15)}
.v2-ws .j24 i{display:block;height:100%}.v2-ws .j24 i.avec{background:linear-gradient(90deg,#9DB6E3,#5C86D1)}.v2-ws .j24 i.sans{background:var(--c-perte)}
.v2-ws .j24.inc{background:repeating-linear-gradient(45deg,var(--c-surf2) 0 4px,transparent 4px 8px);border:1px dashed var(--c-inc);box-shadow:none}
html[data-theme="dark"] .v2-ws .j24{background:rgba(255,255,255,.07);box-shadow:inset 0 1px 3px rgba(0,0,0,.5)}
.v2-ws-resume{display:flex;flex-wrap:wrap;gap:0;border-bottom:1px solid var(--c-line)}
.v2-ws-resume .it{display:flex;flex-direction:column;gap:3px;padding:2px 28px 14px 0;margin-right:28px;border-right:1px solid var(--c-line)}
.v2-ws-resume .it:last-child{border-right:0;margin-right:0}
.v2-ws-resume .it b.n{font-size:20px}.v2-ws-resume .it .s{font-size:11px;color:var(--muted)}
.v2-ws-barre{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.v2-ws-barre .liens{margin-left:auto;display:flex;align-items:center;gap:16px;font-size:12.5px}
.v2-ws-barre .liens a{color:var(--brand);text-decoration:none;font-weight:600}
.v2-ws-barre .liens a.v2-b{color:#fff}
.v2-ws-barre .v2-b{margin-left:auto}
.v2-ws-chips{display:flex;gap:0;border:1px solid var(--c-line2);border-radius:6px;overflow:hidden}
.v2-ws-chips button{border:0;border-left:1px solid var(--c-line);background:transparent;color:var(--muted);font:inherit;font-size:12.5px;font-weight:600;padding:6px 13px;cursor:pointer}
.v2-ws-chips button:first-child{border-left:0}
.v2-ws-chips button.on{background:var(--ink);color:var(--surface)}
.v2-ws-chips button:hover:not(.on){background:var(--brand-soft);color:var(--ink)}
.v2-ws-chips.fils{border:0;flex-wrap:wrap;gap:6px;margin-top:10px;overflow:visible}
.v2-ws-chips.fils button{border:1px solid rgba(232,145,45,.5);border-radius:999px;background:rgba(232,145,45,.08);color:var(--ink)}
.v2-ws-rech{border:1px solid var(--c-line2);border-radius:6px;padding:7px 12px;font:inherit;font-size:13px;background:var(--surface);color:var(--ink);width:280px}
.v2-ws-rech:focus{outline:none;border-color:var(--brand);box-shadow:var(--v2-lueur)}
.v2-ws-tblbox{border-top:1px solid var(--c-line2);overflow:auto}
.v2-ws-tbl{width:100%;border-collapse:collapse;font-size:13px}
.v2-ws-tbl th{text-align:left;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:700;padding:11px 12px 9px 0;border-bottom:1px solid var(--c-line);white-space:nowrap}
.v2-ws-tbl th.r,.v2-ws-tbl td.r{text-align:right}
.v2-ws-tbl td{padding:10px 12px 10px 0;border-bottom:1px solid var(--c-line);vertical-align:middle;font-variant-numeric:tabular-nums}
.v2-ws-tbl td:last-child,.v2-ws-tbl th:last-child{padding-right:14px}
.v2-ws-tbl td .nom{font-weight:700;color:var(--ink)}
.v2-ws-tbl td .sous{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.v2-ws-tbl td b.n{font-size:13.5px;font-weight:700}
.v2-ws-tbl td b.n small{font-size:.75em;display:inline-block;min-width:30px;text-align:left}
.v2-ws-tbl td.r{white-space:nowrap}
.v2-ws-tbl td.r b.n.e-inc{font-weight:500}
.v2-ws-tbl td.r>span.v2-faible,.v2-ws-tbl td.r>.v2-faible{display:inline-block;min-width:30px}
.v2-ws-tbl tr.clic{cursor:pointer}
.v2-ws-tbl tr.clic:hover td{background:var(--brand-soft)}
.v2-ws-tbl tr.on td{background:var(--brand-soft)}
.v2-ws-tbl tr.on td:first-child{box-shadow:inset 3px 0 0 var(--brand);padding-left:10px}
.v2-ws-tbl tr.groupe td{padding:16px 0 8px;border-bottom:1px solid var(--c-line2);background:transparent;cursor:pointer}
.v2-ws-tbl tr.groupe td b{font-size:15px;font-weight:800;letter-spacing:-.01em;margin-right:12px}
.v2-ws-tbl tr.groupe td span{font-size:12px;color:var(--muted)}
.v2-ws-tbl tr.groupe:hover td{color:var(--brand)}
.v2-ws-tbl tr.site td:first-child{padding-left:14px;position:relative}
.v2-ws-tbl tr.site i.fam{position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:22px;border-radius:2px;background:var(--c-th)}
.v2-ws-tbl tr.site.pv i.fam{background:var(--c-pv)}.v2-ws-tbl tr.site.hy i.fam{background:var(--c-hy)}.v2-ws-tbl tr.site.ch i.fam{background:var(--c-inc)}
.v2-ws-tbl tr.site.ch td{color:var(--muted)}
.v2-ws-tbl .etat{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.v2-ws-tbl .etat.validee,.v2-ws-tbl .etat.service{color:var(--c-fact)}.v2-ws-tbl .etat.a_verifier,.v2-ws-tbl .etat.controlee,.v2-ws-tbl .etat.chantier{color:var(--c-der)}.v2-ws-tbl .etat.rejetee{color:var(--c-perte)}
.v2-ws-tbl td.co{min-width:180px}.v2-ws-tbl td.co .j24{margin-bottom:5px;max-width:200px}.v2-ws-tbl td.co .sous b.sans{color:var(--c-perte);font-weight:700}
.v2-ws-tbl td.zn{display:flex;align-items:center;gap:10px}.v2-ws-tbl td.zn .sil{width:44px;height:34px;flex:none}
.v2-ws-tbl.exploitation td .nom{font-size:14px}
.v2-ws-bloc{display:flex;flex-direction:column;gap:12px;padding-top:6px}
.v2-ws-bloc .v2-b{align-self:flex-start}
.v2-ws-journal{display:flex;flex-direction:column;gap:0}
.v2-ws-journal .ev{display:grid;grid-template-columns:10px 1fr;gap:12px;padding:9px 0;border-bottom:1px solid var(--c-line);font-size:12.5px}
.v2-ws-journal .ev.clic{cursor:pointer}.v2-ws-journal .ev.clic:hover{background:var(--brand-soft)}
.v2-ws-journal .ev>i{width:8px;height:8px;border-radius:50%;background:var(--c-decl);margin-top:5px}
.v2-ws-journal .ev.panne>i{background:var(--c-perte)}.v2-ws-journal .ev.maintenance>i,.v2-ws-journal .ev.travaux>i{background:var(--c-der)}
.v2-ws-journal .ev .et{display:flex;gap:8px;flex-wrap:wrap;align-items:baseline}
.v2-ws-journal .ev .et b{font-weight:700}.v2-ws-journal .ev .et span{color:var(--muted);font-size:11.5px}
.v2-ws-journal .ev .ed{color:var(--ink-2);margin-top:2px}.v2-ws-journal .ev .ea{color:var(--muted);font-size:11px;margin-top:2px}
.v2-ws-kv{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;font-size:13px;align-items:baseline}
.v2-ws-kv .k{color:var(--muted);letter-spacing:.02em;text-transform:none;font-size:12.5px;font-weight:500}
.v2-ws-kv b{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}
.v2-ws-kv b.n{font-size:14px}
.v2-panneau .v2-ws-journal .ev{grid-template-columns:8px 1fr}
.v2-panneau .v2-ws-journal>.k{margin-bottom:6px}
.v2-ws-liste{display:flex;flex-direction:column}
.v2-ws-liste .l{text-align:left;border:0;border-bottom:1px solid var(--c-line);background:transparent;font:inherit;font-size:13px;font-weight:600;color:var(--ink);padding:11px 0;cursor:pointer}
.v2-ws-liste .l:hover{color:var(--brand)}
.v2-ws-detail{display:flex;flex-direction:column;gap:14px;padding:16px 18px 18px;border:1px solid var(--c-line);border-radius:10px;background:var(--c-surf)}
html[data-theme="dark"] .v2-ws-detail{background:rgba(255,255,255,.03)}
.v2-ws-detail .fil{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted)}
.v2-ws-detail .fil i{width:5px;height:5px;border-radius:50%;background:var(--c-line2)}
.v2-ws-detail .fil b{color:var(--ink);font-weight:800;font-size:15px}
.v2-ws-detail .echelon{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;padding-bottom:12px;border-bottom:1px solid var(--c-line)}
.v2-ws-detail .echelon .cel.clic{cursor:pointer}.v2-ws-detail .echelon .cel.clic:hover b.n{color:var(--brand)}
.v2-ws-detail .v2-ws-tblbox{border-top:0}

/* vue d'ensemble : selection a gauche, systeme actif a droite */
.v2-ws.vue{display:grid;grid-template-columns:250px minmax(0,1fr);gap:26px;align-items:start}
.v2-ws-sel{display:flex;flex-direction:column;gap:8px;position:sticky;top:10px}
.v2-ws-sel>.k{margin-bottom:2px}
.v2-ws-sel .sys{display:flex;flex-direction:column;gap:7px;text-align:left;border:1px solid var(--c-line);border-left:3px solid transparent;border-radius:8px;background:var(--surface);padding:11px 13px 12px;cursor:pointer;font:inherit;color:var(--ink);transition:border-color .12s,background .12s}
.v2-ws-sel .sys:hover{border-color:var(--c-line2)}
.v2-ws-sel .sys.on{border-color:var(--brand);border-left-color:var(--brand);background:var(--brand-soft)}
.v2-ws-sel .sys.ko{border-left-color:var(--c-perte)}.v2-ws-sel .sys.ko.on{border-left-color:var(--brand)}
.v2-ws-sel .sys .nom{font-size:15px;font-weight:800;letter-spacing:-.01em}
.v2-ws-sel .sys .l{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}
.v2-ws-sel .sys .l b{color:var(--ink);font-variant-numeric:tabular-nums}
.v2-ws-sel .sys .s{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}
.v2-ws-refs{display:flex;flex-direction:column}
.v2-ws-refs .r{display:grid;grid-template-columns:minmax(0,1fr) auto 36px;gap:10px;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--c-line);font-size:12px}
.v2-ws-refs .r .k{letter-spacing:0;text-transform:none;font-weight:500;font-size:12px;color:var(--ink-2)}
.v2-ws-refs .r b.n{font-size:12.5px;font-weight:700;padding-bottom:0;border-bottom:0!important}
.v2-ws-refs .r .an{font-size:10.5px;color:var(--muted);text-align:right}
.v2-ws-refs .r.h{display:block;padding:14px 0 4px;border-bottom:1px solid var(--c-line)}
.v2-ws-refs .r.h .k{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.v2-ws-focus{display:flex;flex-direction:column;gap:18px;min-width:0}
.v2-ws-focus .ft{display:flex;align-items:flex-end;gap:26px;padding-bottom:12px;border-bottom:1px solid var(--c-line2)}
.v2-ws-focus .ft .g{flex:1;min-width:0}
.v2-ws-focus .ft h2{margin:4px 0 0;font-size:26px;font-weight:800;letter-spacing:-.03em;line-height:1}
.v2-ws-focus .ft .sub{font-size:12.5px;color:var(--muted);margin-top:5px}
.v2-ws-focus .ft .ab{display:flex;flex-direction:column;align-items:flex-end;gap:2px;border:0;background:transparent;font:inherit;cursor:pointer;color:var(--ink);padding:0 22px 0 0;border-right:1px solid var(--c-line)}
.v2-ws-focus .ft .ab b.n{font-size:22px}.v2-ws-focus .ft .ab span{font-size:11px;color:var(--muted)}
.v2-ws-focus .ft .ab:hover b.n{color:var(--brand)}
.v2-ws-focus .ft .liens{display:flex;gap:16px;font-size:12.5px;padding-bottom:4px}
.v2-ws-focus .ft .liens a{color:var(--brand);text-decoration:none;font-weight:700}
.v2-ws-focus .fg{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr);gap:18px 28px}
.v2-ws-focus .bloc{display:flex;flex-direction:column;gap:12px;min-width:0}
.v2-ws-focus .bloc .v2-b{align-self:flex-start}
.v2-ws-focus .bloc.carte{grid-row:span 2}
.v2-ws-focus .bloc.carte .sil{width:100%;max-width:300px;height:auto;align-self:center}
.v2-ws-focus .bloc.carte .sil.vide{height:160px}
.v2-ws-focus .mix{display:flex;flex-direction:column}
.v2-ws-focus .mix a{display:grid;grid-template-columns:12px minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--c-line);text-decoration:none;color:var(--ink);font-size:13px}
.v2-ws-focus .mix a:hover span{color:var(--brand)}
.v2-ws-focus .mix a i{width:9px;height:9px;border-radius:2px;background:var(--c-th)}
.v2-ws-focus .mix a.pv i{background:var(--c-pv);border-radius:50%}.v2-ws-focus .mix a.hy i{background:var(--c-hy);clip-path:polygon(50% 0,100% 100%,0 100%)}
.v2-ws-focus .mix a b{font-variant-numeric:tabular-nums}.v2-ws-focus .mix a em{font-style:normal;font-size:11px;color:var(--muted);min-width:50px;text-align:right}
.v2-ws-focus .cels{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 16px}
.v2-ws-focus .cels.cinq{grid-template-columns:repeat(5,minmax(0,1fr))}
.v2-ws-focus .ech{position:relative;height:30px;margin-top:4px}
.v2-ws-focus .ech .bar{position:absolute;left:0;top:6px;height:14px;border-radius:3px;overflow:hidden;display:flex;box-shadow:inset 0 1px 0 rgba(255,255,255,.35)}
.v2-ws-focus .ech .bar i{display:block;height:100%}
.v2-ws-focus .ech .bar i.th{background:var(--c-th)}.v2-ws-focus .ech .bar i.pv{background:var(--c-pv)}.v2-ws-focus .ech .bar i.hy{background:var(--c-hy)}
.v2-ws-focus .ech .axe{position:absolute;left:0;right:0;top:26px;height:1px;background:var(--c-line2)}
.v2-ws-focus .ech .rep{position:absolute;top:2px;width:2px;height:22px;transform:translateX(-1px);border-radius:1px}
.v2-ws-focus .ech .rep.dispo{background:var(--ink)}.v2-ws-focus .ech .rep.pointe{background:var(--c-perte);height:26px;top:0}
.v2-ws-focus .grad{position:relative;height:14px;margin-bottom:6px}
.v2-ws-focus .grad span{position:absolute;top:0;transform:translateX(-50%);font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.v2-ws-focus .grad span:first-child{transform:none}.v2-ws-focus .grad span:last-child{transform:translateX(-100%)}
.v2-ws-focus .cel.c-ferme .k::before,.v2-ws-focus .cel.c-pointe .k::before{content:"";display:inline-block;width:10px;height:2px;margin-right:6px;vertical-align:3px;background:var(--ink)}
.v2-ws-focus .cel.c-pointe .k::before{background:var(--c-perte)}
.v2-ws-focus .flux{display:flex;height:10px;border-radius:999px;overflow:hidden;background:var(--c-surf2)}
.v2-ws-focus .flux i{display:block;height:100%}.v2-ws-focus .flux i.fact{background:linear-gradient(180deg,#34A874,#1F8A5B)}.v2-ws-focus .flux i.perte{background:linear-gradient(180deg,#E8706B,#D9534F)}
.v2-ws-focus .flux.inc{border:1px dashed var(--c-inc);background:transparent}
.v2-ws-focus .bloc.ev{grid-column:1 / -1}

/* clients & ventes : la chaine commerciale */
.v2-ws-chaine{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;gap:0 10px;align-items:stretch;padding:4px 0 18px;border-bottom:1px solid var(--c-line2)}
.v2-ws-chaine .et{display:flex;flex-direction:column;gap:5px;padding:16px 20px 18px;border:1px solid var(--c-line);border-radius:12px;background:var(--surface);box-shadow:0 1px 2px rgba(16,28,48,.05),0 10px 24px -18px rgba(16,28,48,.3)}
html[data-theme="dark"] .v2-ws-chaine .et{background:rgba(255,255,255,.035);box-shadow:none}
.v2-ws-chaine .et .k{font-size:10.5px}
.v2-ws-chaine .et b.n{font-size:30px;letter-spacing:-.03em}
.v2-ws-chaine .et .s{font-size:11.5px;color:var(--muted)}
.v2-ws-chaine .pe{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;font-size:11px;color:var(--ink-2);min-width:128px;text-align:center}
.v2-ws-chaine .pe span{padding:3px 10px;border-radius:999px;border:1px solid var(--c-line);background:var(--surface2,var(--c-surf2));font-weight:600;white-space:nowrap}
.v2-ws-chaine .pe i{width:100%;height:2px;border-radius:1px;background:linear-gradient(90deg,var(--c-line2),var(--brand));position:relative}
.v2-ws-chaine .pe i::after{content:"";position:absolute;right:-2px;top:-4px;width:0;height:0;border-left:8px solid var(--brand);border-top:5px solid transparent;border-bottom:5px solid transparent}

/* donnees : la grille nue, le statut en point */
.v2-cie-matrice{border:0;border-top:1px solid var(--c-line2);border-radius:0;background:transparent}
.v2-cie-matrice th{background:var(--v2-fond)}
.v2-cie-matrice th.g,.v2-cie-matrice td.g{background:var(--v2-fond);border-right:1px solid var(--c-line)}
.v2-cie-matrice td{height:34px}
.v2-cie-matrice table{border-spacing:5px 6px}
.v2-cie-matrice th{border-bottom:0}
.v2-cie-matrice td{border-bottom:0}
.v2-cie-matrice td.g{border-right:0}
.v2-cie-matrice td.c{border:1px solid var(--c-line)!important;border-radius:9px!important;background:var(--surface)!important;height:36px;padding:0 16px 0 10px;box-shadow:0 1px 1px rgba(16,28,48,.04)!important;cursor:pointer}
html[data-theme="dark"] .v2-cie-matrice td.c{background:rgba(255,255,255,.04)!important;box-shadow:none!important}
.v2-cie-matrice td.c.futur{border-color:transparent!important;box-shadow:none!important}
.v2-cie-matrice td.c.vide{border-style:dashed!important}
.v2-cie-matrice td.c.clic:hover{border-color:var(--brand)!important}
.v2-cie-matrice td.c.clic:active{transform:translateY(1px)}
.v2-cie-matrice td.c.e-decl{font-weight:700}
.v2-cie-matrice td.c.e-der{color:var(--ink-2)}
.v2-cie-matrice td.c.vide{color:var(--c-inc);background:transparent!important}
.v2-cie-matrice td.c.futur{color:transparent;background:repeating-linear-gradient(45deg,transparent 0 6px,var(--c-surf2) 6px 12px)!important;cursor:default}
.v2-cie-matrice td.c.e-decl::after,.v2-cie-matrice td.c.e-ref::after,.v2-cie-matrice td.c.e-der::after{right:4px;top:50%;transform:translateY(-50%);width:5px;height:5px}
.v2-cie-matrice td.c.clic:hover{background:var(--brand-soft)!important}
.v2-cie-matrice td.an{font-weight:800;font-variant-numeric:tabular-nums;padding:0 12px;text-align:right;border-bottom:1px solid var(--c-line);border-left:1px solid var(--c-line)}
.v2-cie .fmat td.c{border:0;border-bottom:1px solid var(--c-line);border-radius:0;background:transparent}
.v2-cie .fmat td.c.e-decl{font-weight:700;border-color:var(--c-line)}.v2-cie .fmat td.c.e-ref{border-color:var(--c-line)}
.v2-cie .fmat td.c.vide{background:transparent}

@media (max-width:1440px){.v2-ws.vue{grid-template-columns:225px minmax(0,1fr);gap:20px}.v2-ws-focus .fg{gap:16px 20px}.v2-ws-focus .cels.cinq{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:1280px){.v2-ws-focus .fg{grid-template-columns:1fr}.v2-ws-focus .bloc.carte{grid-row:auto}.v2-ws-focus .bloc.carte .sil{max-width:240px}}
@media (max-width:1100px){.v2-ws.vue{grid-template-columns:1fr}.v2-ws-sel{position:static;flex-direction:row;flex-wrap:wrap}.v2-ws-sel .sys{flex:1 1 180px}.v2-ws-sel>.k,.v2-ws-refs{width:100%}.v2-ws-chaine{grid-template-columns:1fr 1fr;gap:14px}.v2-ws-chaine .pe{display:none}.v2-ws-detail .echelon{grid-template-columns:1fr 1fr}}

/* la vue d'ensemble : l'entree nationale, la journee type, les trois iles */
.v2-ws-sel .sys.nat{background:var(--surface2,var(--c-surf2))}
.v2-ws-sel .sys.nat.on{background:var(--brand-soft)}
.v2-ws-focus .bloc.jour{grid-column:2}
.v2-ws-focus .bloc.carte{grid-row:span 3}
.v2-ws-focus .cj{width:100%;height:auto;display:block}
.v2-ws-focus .cj .gr{stroke:var(--c-line);stroke-width:1}
.v2-ws-focus .cj .grad{font-size:9.5px;fill:var(--muted);font-family:var(--ui)}
.v2-ws-focus .cj .thermique{fill:var(--c-th);opacity:.85}
.v2-ws-focus .cj .solaire{fill:var(--c-pv);opacity:.9}
.v2-ws-focus .cj .batterie{fill:var(--c-st);opacity:.8}
.v2-ws-focus .cj .coupure{fill:url(#v2-hach);fill:var(--c-perte);opacity:.28}
.v2-ws-focus .cj .demande{fill:none;stroke:var(--ink);stroke-width:1.8;stroke-linejoin:round}
.v2-ws-focus .legj{display:flex;gap:14px;align-items:center;font-size:11px;color:var(--muted);flex-wrap:wrap}
.v2-ws-focus .legj span::before{content:"";display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px;background:var(--c-line2)}
.v2-ws-focus .legj .demande::before{height:2px;background:var(--ink);vertical-align:3px}
.v2-ws-focus .legj .thermique::before{background:var(--c-th)}.v2-ws-focus .legj .solaire::before{background:var(--c-pv)}.v2-ws-focus .legj .coupure::before{background:var(--c-perte);opacity:.35}
.v2-ws-focus .legj .lien{margin-left:auto}
.v2-ws-focus .trio{display:flex;gap:6px;align-items:flex-end;justify-content:space-between}
.v2-ws-focus .trio .ile{flex:1;border:0;background:transparent;font:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--ink-2);font-size:11.5px;font-weight:600;padding:4px;border-radius:8px}
.v2-ws-focus .trio .ile:hover{background:var(--brand-soft);color:var(--brand)}
.v2-ws-focus .trio .ile .sil{width:100%;max-width:120px;height:auto}
.v2-ws-focus .cel .s.mini{display:grid;grid-template-columns:78px 1fr auto;gap:8px;align-items:center;font-size:11px}
.v2-ws-focus .cel .s.mini .j24{height:6px}
.v2-ws-bats{display:flex;flex-direction:column;padding:10px 0 4px}
.v2-ws-bats .b{display:flex;gap:12px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--c-line);text-decoration:none;color:var(--ink)}
.v2-ws-bats .b .nom{font-weight:700}.v2-ws-bats .b .sous{font-size:11px;color:var(--muted)}
.v2-ws-bats .b:hover .nom{color:var(--brand)}
@media (max-width:1280px){.v2-ws-focus .bloc.jour{grid-column:auto}.v2-ws-focus .bloc.carte{grid-row:auto}}

/* le systeme actif, seconde forme : carte et graphiques au meme niveau,
   puis des bandes par domaine, chacune sur son fond */
.v2-ws-focus .fh{display:grid;grid-template-columns:minmax(0,.62fr) minmax(0,1.38fr);gap:18px 20px;align-items:stretch}
.v2-ws-focus .bloc.graphes{display:flex;flex-direction:column;gap:18px}
.v2-ws-focus .graphe{display:flex;flex-direction:column;gap:8px}
.v2-ws-focus .cg,.v2-ws-focus .cb{width:100%;height:auto;display:block}
.v2-ws-focus .cg .gr,.v2-ws-focus .cb .gr{stroke:var(--c-line);stroke-width:1}
.v2-ws-focus .cg .grad,.v2-ws-focus .cb .grad{font-size:9.5px;fill:var(--muted);font-family:var(--ui)}
.v2-ws-focus .cb .val{font-size:9.5px;fill:var(--ink);font-weight:700;font-family:var(--ui)}
.v2-ws-focus .cg .ligne{fill:none;stroke:#3D6BE8;stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}
.v2-ws-focus .cg .pt{fill:var(--surface);stroke:#3D6BE8;stroke-width:1.6}
.v2-ws-focus .cg .pt.decl{fill:#3D6BE8;stroke:var(--surface);stroke-width:2}
.v2-ws-focus .cb .b{cursor:pointer;opacity:.92}
.v2-ws-focus .cb .b:hover{opacity:1;stroke:var(--brand);stroke-width:1.5}
.v2-ws-focus .cb .b.th{fill:url(#ws-bth)}.v2-ws-focus .cb .b.pv{fill:url(#ws-bpv)}.v2-ws-focus .cb .b.hy{fill:url(#ws-bhy)}
.v2-ws-focus .cb .b.th{fill:#3D6BE8}.v2-ws-focus .cb .b.pv{fill:#8A7BF0}.v2-ws-focus .cb .b.hy{fill:#33B5C9}
.v2-ws-focus .legg{display:flex;gap:14px;font-size:11px;color:var(--muted);align-items:center}
.v2-ws-focus .legg span::before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:-1px;background:#3D6BE8}
.v2-ws-focus .legg .rec::before{background:var(--surface);border:1.6px solid #3D6BE8;width:7px;height:7px}
.v2-ws-focus .legg a{margin-left:auto;color:var(--brand);text-decoration:none;font-weight:700}
.v2-ws-focus .bandes{display:flex;flex-direction:column;gap:10px}
.v2-ws-focus .bande{border-radius:12px;padding:11px 16px 12px;border:1px solid var(--c-line);background:var(--surface)}
.v2-ws-focus .bande .bt{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}
.v2-ws-focus .bande .bt em{font-style:normal;font-size:11px;color:var(--muted)}
.v2-ws-focus .bande.puissance{background:rgba(61,107,232,.05);border-color:rgba(61,107,232,.16)}
.v2-ws-focus .bande.energie{background:rgba(31,138,91,.05);border-color:rgba(31,138,91,.16)}
.v2-ws-focus .bande.commercial{background:rgba(138,123,240,.06);border-color:rgba(138,123,240,.2)}
.v2-ws-focus .bande.service{background:rgba(232,145,45,.05);border-color:rgba(232,145,45,.18)}
html[data-theme="dark"] .v2-ws-focus .bande.puissance{background:rgba(61,107,232,.09)}
html[data-theme="dark"] .v2-ws-focus .bande.energie{background:rgba(52,168,116,.08)}
html[data-theme="dark"] .v2-ws-focus .bande.commercial{background:rgba(138,123,240,.1)}
html[data-theme="dark"] .v2-ws-focus .bande.service{background:rgba(232,145,45,.08)}
.v2-ws-focus .bande.puissance .bt .k{color:#2F5AC8}.v2-ws-focus .bande.energie .bt .k{color:#1F8A5B}.v2-ws-focus .bande.commercial .bt .k{color:#6A5AD8}.v2-ws-focus .bande.service .bt .k{color:#B8681F}
.v2-ws-focus .bande .corps{display:flex;flex-direction:column;gap:12px}
.v2-ws-focus .bande.puissance .corps{display:flex;flex-direction:column;gap:16px}
.v2-ws-focus .bande .cels.trois{grid-template-columns:repeat(3,minmax(0,1fr))}
.v2-ws-focus .bande .cel.c-ab b.n{color:var(--ink)}
.v2-ws-focus .bande.commercial .cel.c-fact b.n,.v2-ws-focus .bande.commercial .cel.c-enc b.n{color:#6A5AD8}
.v2-ws-focus .bande.energie .cel.c-fact b.n{color:#1F8A5B}
@media (max-width:1280px){.v2-ws-focus .fh{grid-template-columns:1fr}.v2-ws-focus .bande.puissance .corps{grid-template-columns:1fr}}

/* reseau : trois panneaux d'exploitation */
.v2-ws-res3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.v2-ws-res3 .sys{border:1px solid var(--c-line);border-radius:12px;background:var(--surface);padding:16px 18px 14px;display:flex;flex-direction:column;gap:10px}
.v2-ws-res3 .sys.on{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.v2-ws-res3 .sys .tete{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.v2-ws-res3 .sys .tete b{display:block;font-size:17px;font-weight:800;letter-spacing:-.02em}
.v2-ws-res3 .sys .tete span{font-size:11.5px;color:var(--muted)}
.v2-ws-res3 .sys .tete b.n.acces{font-size:22px}
.v2-ws-res3 .h24{display:grid;grid-template-columns:repeat(24,1fr);gap:2px;height:22px}
.v2-ws-res3 .h24 i{display:block;border-radius:3px;background:var(--c-surf2)}
.v2-ws-res3 .h24 i.avec{background:linear-gradient(180deg,#7FA2E6,#4F7BD6)}.v2-ws-res3 .h24 i.sans{background:linear-gradient(180deg,#E8706B,#D9534F)}
.v2-ws-res3 .h24.inc i{border:1px dashed var(--c-inc);background:transparent}
.v2-ws-res3 .hh{display:flex;justify-content:space-between;font-size:11.5px;color:var(--ink-2)}
.v2-ws-res3 .hh b.sans{color:var(--c-perte)}
.v2-ws-res3 .cels{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;padding-top:6px;border-top:1px solid var(--c-line)}
.v2-ws-res3 .cel b.n{font-size:16px}
.v2-ws-res3 .sys .lien{align-self:flex-start;margin-top:4px}
@media (max-width:1100px){.v2-ws-res3{grid-template-columns:1fr}}

/* la palette des graphiques, commune aux deux themes */
.v2-cie-page{--g1:#3D6BE8;--g2:#8A7BF0;--g3:#33B5C9;--g4:#4FD1A5;--g5:#E86BB3;--g6:#F2B84B}
html[data-theme="dark"] .v2-cie-page{--g1:#5B86FF;--g2:#A497FF;--g3:#4CCBE0;--g4:#6BE3B9;--g5:#F58BC7;--g6:#FFCB6B}
.v2-ws-focus .graphe.prod{min-width:0}
.v2-ws-focus .cg .ligne{stroke:var(--g1)}.v2-ws-focus .cg .pt{stroke:var(--g1)}.v2-ws-focus .cg .pt.decl{fill:var(--g1)}
.v2-ws-focus .legg .note{margin-left:0;font-size:10.5px}.v2-ws-focus .legg .note::before{display:none}
/* puissance en barres horizontales */
.hbars{display:flex;flex-direction:column;gap:9px}
.hrow{display:grid;grid-template-columns:78px minmax(0,1fr) 92px;gap:12px;align-items:center}
.hrow .hk{font-size:11px;color:var(--muted);font-weight:600}
.hrow .hv{font-size:13px;font-weight:800;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.hpiste{height:16px;border-radius:999px;background:var(--c-surf2);position:relative;overflow:hidden}
.hb{height:100%;border-radius:999px;display:flex;overflow:hidden;min-width:2px;transition:width .3s}
.hb i{display:block;height:100%;background:var(--g1)}
.hb.inst i.th{background:var(--g1)}.hb.inst i.pv{background:var(--g6)}.hb.inst i.hy{background:var(--g3)}
.hb.ferme i{background:var(--g4)}.hb.pointe i{background:var(--g5)}
.hrow.axe{margin-top:-2px}.hrow.axe .grad{position:relative;height:14px}
.hrow.axe .grad span{position:absolute;top:0;transform:translateX(-50%);font-size:10px;color:var(--muted);white-space:nowrap}
.hrow.axe .grad span:first-child{transform:none}.hrow.axe .grad span:last-child{transform:translateX(-100%)}
/* reseau : table a gauche, carte graphique a droite */
.v2-ws-res{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;align-items:start}
.v2-ws-carte{border:1px solid var(--c-line);border-radius:12px;background:var(--surface);padding:16px 18px 14px;display:flex;flex-direction:column;gap:12px}
html[data-theme="dark"] .v2-ws-carte{background:rgba(255,255,255,.035)}
.v2-ws-carte.pics .sys{display:flex;flex-direction:column;gap:5px;padding:6px 0 8px;border-bottom:1px solid var(--c-line)}
.v2-ws-carte.pics .sys>b{font-size:13px}
.v2-ws-carte.pics .hrow{grid-template-columns:52px minmax(0,1fr) 78px;gap:8px}
.v2-ws-carte.pics .hpiste{height:11px}.v2-ws-carte.pics .hv{font-size:12px;padding-bottom:0}
.v2-ws-carte .legg{display:flex;gap:14px;font-size:11px;color:var(--muted)}
.v2-ws-carte .legg span::before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:-1px}
.v2-ws-carte .legg .pointe::before{background:var(--g5)}.v2-ws-carte .legg .ferme::before{background:var(--g4)}
.v2-ws-tbl td.co .h24{display:grid;grid-template-columns:repeat(24,1fr);gap:2px;height:14px;max-width:220px;margin-bottom:5px}
.v2-ws-tbl td.co .h24 i{display:block;border-radius:2px;background:var(--c-surf2)}
.v2-ws-tbl td.co .h24 i.avec{background:var(--g1)}.v2-ws-tbl td.co .h24 i.sans{background:#E0453A}
.v2-ws-tbl td.co .h24.inc i{border:1px dashed var(--c-inc);background:transparent}
/* ventes : les anneaux */
.v2-ws-carte.anneaux{gap:18px}
.anneau{display:grid;grid-template-columns:120px minmax(0,1fr);gap:14px;align-items:center}
.anneau>.k{grid-column:1 / -1}
.anneau .ring{width:120px;height:120px}
.anneau .ring circle{fill:none;stroke-width:14;transform:rotate(-90deg);transform-origin:60px 60px}
.anneau .ring .piste{stroke:var(--c-surf2)}
.anneau .ring .part.g1{stroke:var(--g1)}.anneau .ring .part.g2{stroke:var(--g2)}.anneau .ring .part.g3{stroke:var(--g3)}.anneau .ring .part.g4{stroke:var(--g4)}.anneau .ring .part.g5{stroke:var(--g5)}.anneau .ring .part.g6{stroke:var(--g6)}
.anneau .ring .cv{font-size:19px;font-weight:800;fill:var(--ink);font-family:var(--ui)}
.anneau .ring .cs{font-size:9.5px;fill:var(--muted);font-family:var(--ui)}
.anneau .rl{display:flex;flex-direction:column;gap:8px;font-size:12px}
.anneau .rl span{display:grid;grid-template-columns:10px 1fr auto;gap:8px;align-items:center;color:var(--ink-2)}
.anneau .rl span i{width:10px;height:10px;border-radius:3px;background:var(--g1)}
.anneau .rl span.g2 i{background:var(--g2)}.anneau .rl span.g3 i{background:var(--g3)}.anneau .rl span.g4 i{background:var(--g4)}.anneau .rl span.g5 i{background:var(--g5)}.anneau .rl span.g6 i{background:var(--g6)}
.anneau .rl span b{font-variant-numeric:tabular-nums}
@media (max-width:1280px){.v2-ws-res{grid-template-columns:1fr}}
.hb>i:only-child{width:100%}
.hrow{grid-template-columns:78px minmax(0,1fr) 110px}
.hrow.axe .grad span{font-size:10.5px}
.v2-ws-focus .legg{flex-wrap:wrap}.v2-ws-focus .legg .note{flex-basis:100%;order:9}
.v2-ws-focus .legg a{margin-left:auto}

/* la courbe dans sa boite, les cartes de la liste, l'anneau de puissance */
.v2-ws-focus .graphe.prod{border:1px solid rgba(61,107,232,.18);border-radius:14px;padding:16px 18px 14px;background:linear-gradient(180deg,rgba(61,107,232,.07),rgba(61,107,232,.03))}
html[data-theme="dark"] .v2-ws-focus .graphe.prod{background:linear-gradient(180deg,rgba(91,134,255,.12),rgba(91,134,255,.04));border-color:rgba(91,134,255,.25)}
.v2-ws-focus .cg{background:var(--surface);border-radius:10px;padding:6px 4px 2px}
html[data-theme="dark"] .v2-ws-focus .cg{background:rgba(255,255,255,.03)}
.v2-ws-focus .cg .ligne.avenir{stroke-dasharray:4 5;opacity:.7}
.v2-ws-focus .cg .pt.avenir{opacity:.55}
.v2-ws-focus .legg .av::before{background:var(--surface);border:1.6px dashed var(--g1);width:7px;height:7px}
.v2-ws-sel .sys{border-left:3px solid var(--c-line2)}
.v2-ws-sel .sys.on{border-left-color:var(--brand)}
.v2-ws-sel .sys.nat{border-left-color:var(--c-line2)}
.v2-ws-focus .bande.puissance .corps.deux{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px 32px;align-items:center}
.v2-ws-focus .cels.carre{grid-template-columns:1fr 1fr;gap:12px}
.v2-ws-focus .cels.carre .cel{border:1px solid rgba(61,107,232,.16);border-radius:10px;padding:8px 12px;background:var(--surface);gap:2px}
html[data-theme="dark"] .v2-ws-focus .cels.carre .cel{background:rgba(255,255,255,.04)}
.anneau.puissance{grid-template-columns:160px minmax(0,1fr);min-width:360px}
.anneau.puissance .ringp{width:160px;height:160px}
.anneau.puissance .ringp circle{fill:none;stroke-width:12;transform:rotate(-90deg);transform-origin:80px 80px}
.anneau.puissance .ringp .piste{stroke:var(--c-surf2)}
.anneau.puissance .ringp .part.th{stroke:#E0453A}.anneau.puissance .ringp .part.pv{stroke:#F2B84B}.anneau.puissance .ringp .part.hy{stroke:#2F80ED}
.anneau.puissance .ringp .part.ferme{stroke:#27AE60}.anneau.puissance .ringp .part.pointe{stroke:#8A7BF0}
.anneau.puissance .ringp .cv{font-size:20px;font-weight:800;fill:var(--ink);font-family:var(--ui)}
.anneau.puissance .ringp .cs{font-size:8.5px;fill:var(--muted);font-family:var(--ui)}
.anneau.puissance .rl span.th i{background:#E0453A}.anneau.puissance .rl span.pv i{background:#F2B84B}.anneau.puissance .rl span.hy i{background:#2F80ED}
.anneau.puissance .rl span.ferme i{background:#27AE60}.anneau.puissance .rl span.pointe i{background:#8A7BF0}
@media (max-width:1280px){.v2-ws-focus .bande.puissance .corps.deux{grid-template-columns:1fr}}
.v2-ws-focus .graphe.prod>.k.flex>span{white-space:nowrap}.v2-ws-focus .graphe.prod>.k.flex em{text-align:right}
/* le bloc des installations : sur toute la hauteur, un fond leger, les iles plus grandes */
.v2-ws-focus .bloc.carte{border:1px solid rgba(51,181,201,.22);border-radius:14px;padding:16px 18px 6px;background:linear-gradient(180deg,rgba(51,181,201,.08),rgba(51,181,201,.03));justify-content:space-between}
html[data-theme="dark"] .v2-ws-focus .bloc.carte{background:linear-gradient(180deg,rgba(76,203,224,.12),rgba(76,203,224,.04));border-color:rgba(76,203,224,.28)}
.v2-ws-focus .bloc.carte .sil{max-width:82%;flex:1 1 0;min-height:0;height:0;align-self:center}
.v2-ws-focus .bloc.carte .trio{flex:1;align-items:center}
.v2-ws-focus .bloc.carte .trio .ile .sil{max-width:100%}
.v2-ws-focus .bloc.carte .mix a{padding:9px 0}
.v2-ws-focus .bloc.carte .mix a:last-child{border-bottom:0}
.v2-ws-focus .graphe.prod{justify-content:space-between}
.v2-ws-focus .graphe.prod .cg{flex:1}
.anneau.puissance .rl span.sep{margin-top:6px;padding-top:8px;border-top:1px solid var(--c-line)}
.anneau.puissance .rl span.indispo i{background:var(--c-inc)}

/* les tableaux en boites : chaque ligne une surface, des traits a moitie */
.v2-ws-tbl.boite{border-collapse:separate;border-spacing:0 8px;margin-top:-8px}
.v2-ws-tblbox:has(.v2-ws-tbl.boite){border-top:0}
.v2-ws-tbl.boite th{border-bottom:0;padding-bottom:2px}
.v2-ws-tbl.boite tbody td{border-bottom:0;background:var(--surface);padding:12px 14px 12px 0}
html[data-theme="dark"] .v2-ws-tbl.boite tbody td{background:rgba(255,255,255,.04)}
.v2-ws-tbl.boite tbody td:first-child{border-radius:12px 0 0 12px;padding-left:16px;box-shadow:inset 3px 0 0 var(--c-line2)}
.v2-ws-tbl.boite tbody td:last-child{border-radius:0 12px 12px 0;padding-right:16px}
.v2-ws-tbl.boite tbody td+td{background-image:linear-gradient(180deg,transparent 30%,var(--c-line) 30%,var(--c-line) 70%,transparent 70%);background-size:1px 100%;background-repeat:no-repeat;background-position:0 0;padding-left:14px}
.v2-ws-tbl.boite tr.on td{background-color:var(--brand-soft)}
.v2-ws-tbl.boite tr.on td:first-child{box-shadow:inset 3px 0 0 var(--brand)}
.v2-ws-tbl.boite tr.clic:hover td{background-color:var(--brand-soft)}
.v2-ws-tbl.boite tr.groupe td{background:transparent;box-shadow:none;border-radius:0;padding:14px 0 4px;background-image:none}
.v2-ws-tbl.boite tr.site td:first-child{padding-left:16px}
.v2-ws-tbl.boite tr.site i.fam{left:6px}
.v2-ws-tbl td b.n{display:inline-flex;align-items:baseline;gap:3px}
.v2-ws-tbl td b.n small{margin-left:0;vertical-align:baseline;min-width:0}
.v2-ws-tbl td.gr{width:250px;min-width:230px}
/* les pics dans la ligne */
.minipics{display:flex;flex-direction:column;gap:4px;min-width:220px}
.mrow{display:grid;grid-template-columns:54px minmax(0,1fr) 46px;gap:8px;align-items:center;font-size:10.5px}
.mrow .mk{color:var(--muted);font-weight:600}
.mrow .mv{font-size:11px;font-weight:800;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;padding-bottom:0;border-bottom:0!important}
.mpiste{height:8px;border-radius:999px;background:var(--c-surf2);overflow:hidden}
.mpiste i{display:block;height:100%;border-radius:999px;background:var(--g1)}
.mpiste i.ferme{background:var(--g4)}.mpiste i.pointe{background:#E0453A}
/* les anneaux dans la ligne */
.minianneaux{display:flex;gap:18px;align-items:center}
.minianneaux .ma{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted)}
.mring{width:48px;height:48px;flex:none}
.mring circle{fill:none;stroke-width:6;transform:rotate(-90deg);transform-origin:24px 24px}
.mring .piste{stroke:var(--c-surf2)}
.mring .part.g1{stroke:var(--g1)}.mring .part.g2{stroke:var(--g2)}.mring .part.g5{stroke:var(--g5)}.mring .part.g6{stroke:var(--g6)}
.mring .cv{font-size:10px;font-weight:800;fill:var(--ink);font-family:var(--ui)}
.v2-ws-focus .cg .vpt{font-size:9px;fill:var(--ink);font-weight:700;font-family:var(--ui)}
.v2-ws-focus .cg .grad{font-size:9.5px}
.v2-ws-focus .fh .bloc.carte{padding:12px 16px 4px}
.v2-ws-focus .bloc.carte .mix a{padding:6px 0;font-size:12.5px}
.v2-ws-focus .graphe.prod{padding:12px 16px 10px;gap:6px}
.v2-ws-focus .bande .bt{margin-bottom:6px}
.v2-ws-focus .bande.puissance .corps.deux{gap:10px 24px}
.v2-ws-focus .cels.carre{gap:8px}
.v2-ws-focus .cels.carre .cel b.n{font-size:17px}
.anneau.puissance .ringp{width:130px;height:130px}.anneau.puissance{grid-template-columns:130px minmax(0,1fr)}
.v2-ws-tbl td.co .h24 i.sans,.mpiste i.pointe{background:#E0453A}
.v2-ws-focus .fh .bloc.carte{align-self:stretch;overflow:hidden;min-height:0}
.v2-ws-focus .fh .graphe.prod{align-self:start}
.v2-ws-focus .bloc.carte .trio{flex:1 1 0;min-height:0}
.v2-ws-focus .bloc.carte .trio .ile{min-height:0}
.v2-ws-focus .bloc.carte .trio .ile .sil{height:auto;flex:1 1 0}
.v2-ws-focus .fh .bloc.carte{grid-row:auto}
.v2-sect{white-space:nowrap;overflow:hidden}
.v2-nav{min-height:37px}
.v2-nav svg{display:block}
.v2-ws-focus .bloc.carte .trio .ile .sil{flex:none;height:auto;width:100%;max-height:150px}
@media (min-width:1241px){.v2 .v2-rail-nav .v2-nav{height:40px;box-sizing:border-box;padding-top:0;padding-bottom:0;align-items:center}}

/* L ECRAN DU PORTABLE LUI-MEME (12/10/2026). Sur un ecran de 1536 x 960
   a 125 %, la fenetre du navigateur laisse 830 px au document : le rail du
   decideur (sept sections, quatorze entrees, le profil) en demandait 37 de
   plus, et la derniere entree vivait sous le profil, sans barre de
   defilement pour le dire. Sous 900 px de haut, le rail se resserre :
   entrees de 33 px, sections moins espacees, profil plus bas. Rien ne
   change sur un moniteur. */
@media (max-height:900px) and (min-width:641px){
  .v2 .v2-rail-nav{padding:8px 12px 4px}
  .v2 .v2-rail-nav .v2-sect{padding:9px 12px 4px}
  .v2 .v2-rail-nav .v2-sect:first-child{padding-top:2px}
  .v2 .v2-rail-nav .v2-nav{height:33px;min-height:33px;box-sizing:border-box;padding-top:0;padding-bottom:0;align-items:center}
  .v2 .v2-profil{padding:6px 12px}
  .v2 .v2-profil-b{padding:7px 10px}
}
@media (max-height:760px) and (min-width:641px){
  .v2 .v2-rail-nav .v2-sect{padding:6px 12px 2px}
  .v2 .v2-rail-nav .v2-nav{height:30px;min-height:30px}
  .v2 .v2-rail-nav{gap:1px}
}

/* LE MENU SE RESSERRE QUAND IL DEBORDE, PAS SEULEMENT QUAND LA FENETRE EST BASSE (14/10/2026). shell.js (ajusterRail)
   mesure le menu du compte ouvert : les memes deux crans que ci-dessus, poses par classe ; au-dela, il defile avec une
   barre fine. Et un titre de section ne s ecrase plus jamais : sans flex-shrink, le menu defile au lieu de rogner. */
@media (min-width:641px){
  .v2 .v2-rail-nav > *{flex-shrink:0}
  .v2.v2-rail-serre .v2-rail-nav{padding:8px 12px 4px}
  .v2.v2-rail-serre .v2-rail-nav .v2-sect{padding:9px 12px 4px}
  .v2.v2-rail-serre .v2-rail-nav .v2-sect:first-child{padding-top:2px}
  .v2.v2-rail-serre .v2-rail-nav .v2-nav{height:33px;min-height:33px;box-sizing:border-box;padding-top:0;padding-bottom:0;align-items:center}
  .v2.v2-rail-serre .v2-profil{padding:6px 12px}
  .v2.v2-rail-serre .v2-profil-b{padding:7px 10px}
  .v2.v2-rail-tres-serre .v2-rail-nav .v2-sect{padding:6px 12px 2px}
  .v2.v2-rail-tres-serre .v2-rail-nav .v2-nav{height:30px;min-height:30px}
  .v2.v2-rail-tres-serre .v2-rail-nav{gap:1px}
  .v2 .v2-rail-nav.deborde{scrollbar-width:thin;padding-right:8px}
  .v2 .v2-rail-nav.deborde .v2-nav{padding-left:10px;padding-right:6px;gap:10px}
  .v2 .v2-rail-nav.deborde::-webkit-scrollbar{width:4px}
  .v2 .v2-rail-nav.deborde::-webkit-scrollbar-thumb{background:var(--v2-trait-fort);border-radius:4px}
  /* une entree tient sur une ligne, meme quand la barre de defilement prend sa place */
  .v2 .v2-rail-nav .v2-nav span.t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
}
/* un lien habille en bouton ne se souligne pas (« Equipes », « Missions », les gestes d une mission) */
.v2 a.v2-b{text-decoration:none}

/* =====================================================================
   PRODUITS PETROLIERS (v2/poste_petrole.js, 28/09/2026). Jetons
   seulement, clair et sombre a parite : les fonds par domaine sont des
   melanges de la palette --g1 a --g6 avec le transparent.
   ===================================================================== */
.v2-ws-tete h1.clic{cursor:pointer}.v2-ws-tete h1.clic:hover{color:var(--brand)}
.v2-pp .bande{border-radius:12px;padding:11px 16px 12px;border:1px solid var(--c-line);background:var(--surface);min-width:0}
.v2-pp .bande.logistique { background: color-mix(in srgb, var(--g3) 6%, transparent); border-color: color-mix(in srgb, var(--g3) 24%, transparent); }
.v2-pp .bande.technique  { background: color-mix(in srgb, var(--g1) 6%, transparent); border-color: color-mix(in srgb, var(--g1) 22%, transparent); }
.v2-pp .bande.commercial { background: color-mix(in srgb, var(--g2) 6%, transparent); border-color: color-mix(in srgb, var(--g2) 24%, transparent); }
.v2-pp .bande.financier  { background: color-mix(in srgb, var(--g6) 6%, transparent); border-color: color-mix(in srgb, var(--g6) 30%, transparent); }
.v2-pp .bande>.bt{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;flex-wrap:wrap}
.v2-pp .bande>.bt .k{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;font-weight:800;text-decoration:none}
.v2-pp .bande>.bt a.k:hover{text-decoration:underline}
.v2-pp .bande>.bt em{font-style:normal;font-size:11px;color:var(--muted)}
.v2-pp .bande.logistique>.bt .k{color:color-mix(in srgb, var(--g3) 62%, var(--ink))}
.v2-pp .bande.technique>.bt .k{color:color-mix(in srgb, var(--g1) 72%, var(--ink))}
.v2-pp .bande.commercial>.bt .k{color:color-mix(in srgb, var(--g2) 70%, var(--ink))}
.v2-pp .bande.financier>.bt .k{color:color-mix(in srgb, var(--g6) 55%, var(--ink))}
.v2-pp .bande .corps{display:flex;flex-direction:column;gap:10px;min-width:0}
.v2-pp .bande .cels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}
.v2-pp .bande .cels.trois{grid-template-columns:repeat(3,minmax(0,1fr));padding-top:8px;border-top:1px solid var(--c-line)}
.v2-pp .cel b.n{font-size:18px}
.v2-pp .cel .lien{align-self:flex-start;margin-top:1px;font-size:11.5px}
.v2-pp .cel.alerte .s{color:var(--c-perte);font-weight:700}
.v2-pp b.n.rouge{color:var(--c-perte)}.v2-pp b.n.vert{color:var(--good)}
.v2-pp .pp-chip,.pp-chip{display:inline-block;padding:1px 7px;border-radius:999px;border:1px solid var(--c-line2,rgba(20,32,56,.3));font-size:10.5px;font-weight:600;color:var(--ink-2);background:var(--surface);white-space:nowrap}
.pp-roles{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
/* la vue d'ensemble */
.v2-pp .v2-ws-focus{gap:12px}
.v2-pp .v2-ws-focus .ft{padding-bottom:8px}
.v2-pp .v2-ws-focus .ft h2{font-size:24px}
.v2-pp .pp-r1{display:grid;grid-template-columns:minmax(0,1.62fr) minmax(0,1fr);gap:12px;align-items:stretch}
.v2-pp .pp-r2{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:stretch}
.v2-pp .pp-anneau{display:flex;flex-direction:column;justify-content:center;gap:8px}
.v2-pp .pp-anneau .anneau{grid-template-columns:118px minmax(0,1fr);gap:12px}
.v2-pp .pp-anneau .anneau>.k{margin-bottom:2px}
.v2-pp .pp-anneau .anneau .rl{gap:6px;font-size:11.5px}
.v2-pp .pp-anneau .anneau .rl span.clic,.v2-pp .pp-anneau circle.clic{cursor:pointer}
.v2-pp .pp-anneau .anneau .rl span.clic:hover{color:var(--brand)}
.v2-pp .v2-ws-sel .sys .s span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v2-pp .v2-ws-refs .r b.n.clic{cursor:pointer}.v2-pp .v2-ws-refs .r b.n.clic:hover{color:var(--brand)}
.v2-pp .v2-ws-focus .bloc.ev{gap:8px}
.v2-pp .v2-ws-journal.deux{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}
.v2-pp .v2-ws-journal .ev{padding:7px 0}
.v2-pp .v2-ws-journal .ev.dechargee>i{background:var(--g1)}.v2-pp .v2-ws-journal .ev.rupture>i,.v2-pp .v2-ws-journal .ev.suspect>i,.v2-pp .v2-ws-journal .ev.echouage>i{background:var(--c-perte)}
.v2-pp .v2-ws-journal .ev.changementPrix>i{background:var(--g6)}.v2-pp .v2-ws-journal .ev.greve>i{background:var(--c-der)}.v2-pp .v2-ws-journal .ev.autonomieAnnoncee>i{background:var(--g3)}
.v2-pp .v2-ws-journal .ev .et .susp{color:var(--c-perte)}
/* les jours de stock (7.6) */
.v2-pp-jours { display: grid; grid-template-columns: 120px repeat(3, 1fr); gap: 8px 14px; align-items: center; }
.v2-pp-jours .gh{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--ink-2)}
.v2-pp-jours .gh i{width:9px;height:9px;border-radius:2px;background:var(--c)}
.v2-pp-jours .rl{display:flex;align-items:center;gap:7px;font-size:12.5px;min-width:0}
.v2-pp-jours .rl b{font-weight:700}.v2-pp-jours .rl.pays b{font-weight:800}
.v2-pp-jours .jg { position: relative; height: 16px; cursor:pointer; }
.v2-pp-jours .jg .piste  { position: absolute; left: 0; top: 0; bottom: 0; border: 1.5px dashed var(--c); border-radius: 3px; }
.v2-pp-jours .jg .rempli { position: absolute; left: 0; top: 2px; bottom: 2px; background: var(--c); border-radius: 2px; }
.v2-pp-jours .jg .rempli.vieux { opacity: .35; }
.v2-pp-jours .jg .depasse { position: absolute; top: 0; bottom: 0;
  background: repeating-linear-gradient(45deg, var(--c-perte) 0 3px, transparent 3px 6px); }
.v2-pp-jours .jg .trait { position: absolute; top: -3px; bottom: -3px; width: 2px; background: var(--ink); }
.v2-pp-jours .jg .v { position: absolute; top: -1px; font-variant-numeric: tabular-nums; font-size: 12px; margin-left: 6px; font-weight:700; white-space:nowrap; color:var(--ink) }
.v2-pp-jours .jg .v.rouge{color:var(--c-perte)}
.v2-pp-jours .jg.inc::after{display:none}.v2-pp-jours .jg.inc .v{margin-left:0;font-weight:500;font-size:11.5px;color:var(--c-inc)}
.v2-pp-jours .jg:hover .piste{border-width:2px}
.v2-pp .pp-leg{display:flex;gap:16px;flex-wrap:wrap;align-items:center;font-size:11px;color:var(--muted)}
.v2-pp .pp-leg>span{display:flex;align-items:center;gap:6px}
.v2-pp .pp-leg i{display:inline-block;width:12px;height:10px;border-radius:2px;background:var(--ink-2)}
.v2-pp .pp-leg .piste i{width:16px;background:transparent;border:1.5px dashed var(--ink-2)}
.v2-pp .pp-leg .trait i{width:2px;height:13px;background:var(--ink)}
.v2-pp .pp-leg .ser i{background:var(--c);height:3px;width:16px}
.v2-pp .pp-leg .rec i{width:9px;height:9px;border-radius:50%;background:var(--surface);border:1.6px solid var(--ink-2)}
.v2-pp .pp-leg .av i{height:0;width:16px;border-top:2px dashed var(--ink-2);background:transparent}
.v2-pp .pp-leg.frise .off i{width:10px;height:10px;border-radius:50%;background:var(--g1)}
.v2-pp .pp-leg.frise .presse i{width:10px;height:10px;border-radius:50%;background:var(--surface);border:1.5px solid var(--g1)}
.v2-pp .pp-leg.frise .susp i{width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,transparent 45%,var(--c-perte) 45%,var(--c-perte) 58%,transparent 58%);border:1.5px solid var(--g1)}
.v2-pp .pp-leg.frise .att i{width:10px;height:10px;border-radius:50%;background:var(--surface);border:1.5px dashed var(--g1)}
.v2-pp .pp-leg .sw.caf i{background:var(--g1)}.v2-pp .pp-leg .sw.taxe i{background:var(--g2)}.v2-pp .pp-leg .sw.cout i{background:var(--g3)}.v2-pp .pp-leg .sw.rev i{background:var(--g4)}
.v2-pp .pp-leg .sw.ces i{width:2px;height:13px;background:var(--ink)}
.v2-pp .pp-leg .sw.perte i{background:repeating-linear-gradient(45deg, var(--c-perte) 0 3px, transparent 3px 6px)}
/* les marques d'une valeur */
.v2-cie-page .n.conf::after { content: ""; display: inline-block; width: 6px; height: 6px; margin-left: 4px;
  border-radius: 50%; background: var(--c-perte); vertical-align: super; }
.v2-cie-page .n.doute::after{content:"";display:inline-block;width:6px;height:6px;margin-left:4px;border-radius:50%;border:1.5px solid var(--c-der);vertical-align:super}
.v2-cie-page .n.susp { text-decoration: line-through; text-decoration-color: var(--c-perte); }
.v2-panneau b.n{font-variant-numeric:tabular-nums}
.v2-panneau b.n small{font-size:.82em;font-weight:600;color:var(--muted);margin-left:3px}
.v2-panneau b.n.e-inc{color:var(--muted);font-weight:500}
.v2-panneau b.n.rouge,.v2-panneau b.rouge,.v2-panneau .k.rouge{color:var(--crit)}
.v2-panneau .n.conf::after{content:"";display:inline-block;width:6px;height:6px;margin-left:4px;border-radius:50%;background:var(--crit);vertical-align:super}
.v2-panneau .n.doute::after{content:"";display:inline-block;width:6px;height:6px;margin-left:4px;border-radius:50%;border:1.5px solid var(--warn);vertical-align:super}
.v2-panneau .n.susp{text-decoration:line-through;text-decoration-color:var(--crit)}
.v2-panneau .v2-ws-kv .k.sous,.v2-panneau .v2-ws-kv b.sous{font-size:11.5px}
.v2-ws-kv .k.sous{padding-left:14px}
.v2-cie-detail .tenue{justify-content:flex-start}.v2-cie-detail .tenue .k{color:var(--warn);font-weight:600}
.v2-cie-autres{display:flex;flex-direction:column;margin-top:16px}
.v2-cie-autres>.k{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:2px}
.v2-cie-autres .a{display:flex;flex-direction:column;gap:2px;padding:8px 0;border-bottom:1px solid var(--v2-trait)}
.v2-cie-autres .a b{font-weight:700;font-size:13px;font-variant-numeric:tabular-nums}
.v2-cie-autres .a span{font-size:12px;color:var(--muted);line-height:1.4}
.v2-cie-autres .a.douteux b{color:var(--warn)}
/* les onglets : barres, blocs, tableaux */
.v2-pp .v2-ws-barre .gestes{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap}
.v2-pp .v2-ws-barre .gestes .v2-b{margin-left:0}
.v2-pp .pp-bloc{display:flex;flex-direction:column;gap:6px;min-width:0}
.v2-pp .pp-bloc>.k{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:700}
.v2-pp .pp-deux{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:22px;align-items:start}
.v2-pp .pp-deux.ventes{grid-template-columns:minmax(0,55fr) minmax(0,45fr)}
.v2-pp .pp-deux.comptes{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}
.v2-pp .pp-deux.stations{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:30px}
.v2-pp .pp-bloc.contrat .v2-ws-kv{padding-top:6px}
.v2-pp .pp-lignes{display:flex;flex-direction:column;gap:5px;align-items:flex-end}
.v2-pp .pp-lignes>div{display:flex;flex-direction:column;align-items:flex-end}
.v2-pp .pp-lignes .s{font-size:11px;color:var(--muted);font-weight:500}
.v2-pp .v2-ws-kv b.n{font-size:13.5px}
.v2-pp .v2-ws-tbl tr.site i.fam{background:var(--c)}
.v2-pp .v2-ws-tbl.boite tr.ensemble td{background:color-mix(in srgb, var(--ink) 5%, var(--surface));font-weight:700}
html[data-theme="dark"] .v2-pp .v2-ws-tbl.boite tr.ensemble td{background:rgba(255,255,255,.075)}
.v2-pp .v2-ws-tbl.boite tr.ile td{background:color-mix(in srgb, var(--g3) 11%, var(--surface))}
html[data-theme="dark"] .v2-pp .v2-ws-tbl.boite tr.ile td{background:color-mix(in srgb, var(--g3) 14%, transparent)}
.v2-pp .v2-ws-tbl.boite tr.ile td:first-child b{font-weight:800}
.v2-pp .v2-ws-tbl.boite tr.cent td:first-child{padding-left:32px}
.v2-pp .v2-ws-tbl.boite tr.attendue td .nom{font-style:italic}
.v2-pp .v2-ws-tbl td b.n{font-size:13px}
.v2-pp .v2-ws-tbl td.pt{min-width:120px}
.v2-pp .pp-part{display:grid;grid-template-columns:64px auto;gap:8px;align-items:center;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.v2-pp .pp-part i{display:block;height:6px;border-radius:3px;background:var(--c);min-width:2px}
.v2-pp .pp-jr{display:grid;grid-template-columns:110px auto;gap:8px;align-items:center;min-width:150px}
.v2-pp .pp-jr .cadre{position:relative;height:12px;border:1.5px solid var(--c);border-radius:3px;overflow:hidden;box-sizing:border-box}
.v2-pp .pp-jr .cadre i{position:absolute;left:0;top:0;bottom:0;background:var(--c)}
.v2-pp .pp-jr.vide .cadre{border-style:dashed;border-color:color-mix(in srgb, var(--c) 65%, transparent)}
.v2-pp .pp-jr span{font-size:11.5px;font-weight:700}
.v2-pp .v2-ws-tbl td.jr{min-width:160px}
/* la structure du prix (7.6) */
.v2-pp .v2-ws-tbl td.dc{min-width:230px;width:24%}
.v2-pp .pp-axe{display:flex;justify-content:space-between;font-size:9.5px;letter-spacing:0;text-transform:none;font-weight:600;color:var(--muted);margin-top:3px}
.v2-pp-barre { position: relative; height: 12px; display: flex; background:var(--c-surf2); border-radius:2px }
.v2-pp-barre i { display: block; height: 100%; }
.v2-pp-barre .caf { background: var(--g1); } .v2-pp-barre .taxe { background: var(--g2); }
.v2-pp-barre .cout { background: var(--g3); } .v2-pp-barre .rev { background: var(--g4); }
.v2-pp-barre .perte { background: repeating-linear-gradient(45deg, var(--c-perte) 0 3px, transparent 3px 6px); }
.v2-pp-barre .gain { background: color-mix(in srgb, var(--good) 45%, transparent); }
.v2-pp-barre .cession { position: absolute; top: -3px; bottom: -3px; width: 2px; background: var(--ink); }
.v2-cie-page .anneau .part.c1 { stroke: var(--g1); } .v2-cie-page .anneau .part.c2 { stroke: var(--g2); } .v2-cie-page .anneau .part.c3 { stroke: var(--g3); }
.v2-cie-page .anneau .part.c4 { stroke: var(--g4); } .v2-cie-page .anneau .part.c5 { stroke: var(--g5); } .v2-cie-page .anneau .part.c6 { stroke: var(--g6); }
/* la frise des arrivees (7.6) */
.v2-pp-frise{width:100%;height:auto;display:block}
.v2-pp-frise text { font-size: 11px; fill: var(--ink-2); font-family:var(--ui) }
.v2-pp-frise .axe{stroke:var(--c-line2);stroke-width:1.5}.v2-pp-frise .tick{stroke:var(--c-line2)}
.v2-pp-frise .pt { fill: var(--g1); stroke:var(--surface); stroke-width:2 }
.v2-pp-frise .pt.presse { fill: var(--surface); stroke: var(--g1); stroke-width: 1.5; }
.v2-pp-frise .pt.attendue { fill: var(--surface); stroke: var(--g1); stroke-dasharray: 2 2; stroke-width:1.5 }
.v2-pp-frise .pt.depassee { stroke: var(--c-perte) }
.v2-pp-frise .barre{stroke:var(--c-perte);stroke-width:1.6}
.v2-pp-frise .duree{stroke:var(--g1);stroke-width:4;stroke-linecap:round;opacity:.45}
.v2-pp-frise .ecl{stroke:var(--c-line2);stroke-width:1}
.v2-pp-frise .ecart{font-size:10.5px;font-weight:700}
.v2-pp-frise .ecart.rouge { fill: var(--c-perte); }
.v2-pp-frise .qte{font-weight:700;fill:var(--ink)}.v2-pp-frise .qte.susp{text-decoration:line-through;fill:var(--c-perte)}
.v2-pp-frise .clic{cursor:pointer}.v2-pp-frise .clic:hover circle{stroke-width:2.5}
/* les courbes du poste */
.v2-pp .graphe{display:flex;flex-direction:column;gap:6px}
.v2-pp .pp-cg{width:100%;height:auto;display:block;background:var(--surface);border-radius:10px}
html[data-theme="dark"] .v2-pp .pp-cg{background:rgba(255,255,255,.03)}
.v2-pp .pp-cg .gr{stroke:var(--c-line);stroke-width:1}
.v2-pp .pp-cg .grad{font-size:10px;fill:var(--muted);font-family:var(--ui)}
.v2-pp .pp-cg .ligne{fill:none;stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}
.v2-pp .pp-cg .ligne.avenir{stroke-dasharray:4 5;opacity:.75}
.v2-pp .pp-cg .pt{fill:var(--surface);stroke-width:1.6}.v2-pp .pp-cg .pt.avenir{opacity:.55}
.v2-pp .pp-cg .plafond{stroke-dasharray:6 4;stroke-width:1.2;opacity:.7}
.v2-pp .pp-cg .vpt{font-size:9.5px;font-weight:700;fill:var(--ink);font-family:var(--ui)}
/* la fiche d'un depot */
.v2-cie .ftete.pp::before{background:var(--c)}
.v2-cie .ftete.pp .d{flex-wrap:wrap;gap:18px 26px}
.v2-cie .ftete.pp .d .cel{display:flex;flex-direction:column;gap:4px}
.v2-cie .ftete.pp .d .cel .k{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700}
.v2-cie .ftete.pp .d .cel b.n{font-size:20px}
.v2-pp .fmat tr.prod td{padding-top:12px;border-bottom:0}
.v2-pp .fmat tr.prod td b{font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.v2-pp .fmat td.c.ecart{color:var(--c-perte);font-weight:700}
.v2-pp .fbloc.graphe .pp-leg{margin-top:4px}
/* les formulaires */
.pp-sel{width:100%;border:0;border-bottom:2px solid var(--v2-trait);background:transparent;font:inherit;font-size:14px;font-weight:600;color:var(--ink);padding:7px 0;outline:none}
.pp-sel option{color:#14203A}
.pp-coches{display:flex;gap:16px;flex-wrap:wrap;padding:6px 0}
.pp-coches label{display:flex;gap:6px;align-items:center;font-size:13px;font-weight:600;color:var(--ink)}
.pp-prods{display:flex;flex-direction:column;gap:12px}
.pp-prod{border:1px solid var(--v2-trait);border-radius:10px;padding:6px 14px 12px;margin:0;display:flex;flex-direction:column;gap:10px;min-width:0}
.pp-prod legend{font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:0 6px}
.pp-form2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}
.pp-ecartl{display:flex;justify-content:space-between;align-items:baseline;font-size:12.5px}
.pp-ecart{font-variant-numeric:tabular-nums}.pp-ecart.rouge{color:var(--crit)}
.pp-cand .l{display:flex;align-items:center;gap:10px;cursor:default;flex-wrap:wrap}
.pp-cand .l .nom{flex:1;min-width:120px;font-weight:700}
.pp-cand .gestes{display:flex;gap:6px}
.pp-cand .gestes .v2-b{padding:4px 10px;font-size:12px}
@media (max-width:1440px){.v2-pp .pp-r2{grid-template-columns:repeat(3,minmax(0,1fr))}.v2-pp .bande .cels{grid-template-columns:1fr 1fr}}
@media (max-width:1280px){.v2-pp .pp-r1,.v2-pp .pp-r2,.v2-pp .pp-deux,.v2-pp .pp-deux.ventes,.v2-pp .pp-deux.comptes,.v2-pp .pp-deux.stations{grid-template-columns:1fr}.v2-pp .v2-ws-journal.deux{grid-template-columns:1fr}}
@media (max-width:760px){.v2-pp-jours{grid-template-columns:84px repeat(3,1fr);gap:8px}.pp-form2{grid-template-columns:1fr}}
/* les puces d'annee du poste, hors du gabarit .v2-cie */
.v2-pp .annees{display:flex;gap:0;border:1px solid var(--c-line2);border-radius:3px;overflow:hidden}
.v2-pp .annees button{border:0;border-left:1px solid var(--c-line);background:transparent;color:var(--muted);font:inherit;font-size:12.5px;font-weight:700;padding:6px 14px;cursor:pointer;display:flex;align-items:center;gap:6px}
.v2-pp .annees button:first-child{border-left:0}
.v2-pp .annees button.on{background:var(--ink);color:var(--surface)}
.v2-pp .annees button i{width:5px;height:5px;border-radius:50%;background:var(--c-decl)}
/* l'anneau du poste : la legende sur deux lignes, le libelle puis la valeur */
.v2-pp .pp-anneau .anneau .rl>span{grid-template-columns:10px minmax(0,1fr);row-gap:1px;column-gap:8px;align-items:start}
.v2-pp .pp-anneau .anneau .rl>span>span{display:block;color:var(--ink-2)}
.v2-pp .pp-anneau .anneau .rl>span>i{margin-top:3px}
.v2-pp .pp-anneau .anneau .rl>span>b{grid-column:2;font-weight:600;color:var(--muted);font-size:11px}
/* le pied de la bande des stocks, sur une ligne */
.v2-pp .bande.technique .cels.trois .cel{flex-direction:row;flex-wrap:wrap;align-items:baseline;column-gap:8px;row-gap:2px}
.v2-pp .bande.technique .cels.trois .cel .k{flex-basis:100%}
.v2-pp .bande.technique .cels.trois .cel b.n{font-size:16px}
/* le journal du poste : nature, date et source sur une ligne, le detail dessous */
.v2-pp .v2-ws-journal .ev .et .src{margin-left:auto;color:var(--muted);font-size:11px}
.v2-pp .v2-ws-journal .ev .ed{margin-top:1px}
.v2-pp .pp-deux.appro{grid-template-columns:minmax(0,1.9fr) minmax(0,1fr)}
.v2-pp .v2-ws-tbl.cabotage td:nth-child(-n+2),.v2-pp .v2-ws-tbl.cabotage td:nth-child(6){white-space:nowrap}
.v2-pp .v2-ws-tbl.cargaisons td:last-child,.v2-pp .v2-ws-tbl.pompe td:last-child{white-space:nowrap}
.v2-pp .fmat tr.mv td{height:28px;padding-top:4px;padding-bottom:4px}
.v2-pp .fmat tr.mv td.g b{font-weight:600;font-size:12.5px}
.v2-pp .v2-ws-tbl td.prod>span:first-child{white-space:nowrap}
/* la classe .conf de la V1 (police chasse fixe) ne s'applique pas a une valeur en conflit */
/* seule la police est reprise : l'affichage, l'ecart entre nombre et unite et l'alignement restent ceux de la valeur */
.v2-cie-page b.n.conf,.v2-panneau b.n.conf{font-family:inherit}
.v2-panneau b.n.conf{font-size:inherit;color:inherit}
.v2-ws-kv .k.plein{grid-column:1 / -1}
.v2-ws-kv .k.sous.plein{padding-left:14px;font-size:11.5px;line-height:1.4;margin-top:-4px}
.v2-panneau .v2-ws-kv{grid-template-columns:minmax(96px,auto) minmax(0,1fr)}
.v2-panneau .v2-ws-kv b{overflow-wrap:anywhere}
.v2-pp-jours .rl{flex-wrap:wrap;row-gap:2px}
html[data-theme="dark"] .v2-pp .bande.logistique{background:color-mix(in srgb, var(--g3) 10%, transparent)}
html[data-theme="dark"] .v2-pp .bande.technique{background:color-mix(in srgb, var(--g1) 10%, transparent)}
html[data-theme="dark"] .v2-pp .bande.commercial{background:color-mix(in srgb, var(--g2) 10%, transparent)}
html[data-theme="dark"] .v2-pp .bande.financier{background:color-mix(in srgb, var(--g6) 9%, transparent)}
.v2-pp .v2-cie-matrice td.d .lien{white-space:nowrap}

/* =====================================================================
   LA CHAINE DE L'ENERGIE (v2/systeme.js, 28/09/2026). Jetons seulement,
   clair et sombre a parite. Les bandes par domaine sont celles du poste
   petrolier ; la cascade teinte ses lignes de groupe.
   ===================================================================== */
.v2-chn .v2-ws-tete .maj{font:inherit;cursor:pointer;color:var(--ink)}
.v2-chn .v2-ws-tete .maj:hover{border-color:var(--c-der)}
.v2-chn .v2-ws-tete .maj.inc i{background:var(--c-inc)}
.v2-chn .chn-hote{padding:14px 26px 30px;display:flex;flex-direction:column;gap:16px;flex:1;min-height:0}
.v2-chn .chn-r1{display:grid;grid-template-columns:minmax(0,40fr) minmax(0,60fr);gap:14px;align-items:start}
.v2-chn .bande{border-radius:12px;padding:11px 16px 12px;border:1px solid var(--c-line);background:var(--surface);min-width:0}
.v2-chn .bande.logistique { background: color-mix(in srgb, var(--g3) 6%, transparent); border-color: color-mix(in srgb, var(--g3) 24%, transparent); }
.v2-chn .bande.financier  { background: color-mix(in srgb, var(--g6) 6%, transparent); border-color: color-mix(in srgb, var(--g6) 30%, transparent); }
html[data-theme="dark"] .v2-chn .bande.financier{background:color-mix(in srgb, var(--g6) 9%, transparent)}
.v2-chn .bande>.bt{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;flex-wrap:wrap}
.v2-chn .bande>.bt .k{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;font-weight:800}
.v2-chn .bande.financier>.bt .k{color:color-mix(in srgb, var(--g6) 55%, var(--ink))}
.v2-chn .bande>.bt em{font-style:normal;font-size:11px;color:var(--muted)}
.v2-chn .bande .corps{display:flex;flex-direction:column;gap:10px;min-width:0}
/* qui paie le litre : l'anneau et ses parts */
.v2-chn .anneau.chn-qp{grid-template-columns:128px minmax(0,1fr);gap:16px;align-items:center}
.v2-chn .anneau.chn-qp .ring{width:128px;height:128px}
.v2-chn .anneau.chn-qp .ring circle.clic{cursor:pointer}
.v2-chn .anneau.chn-qp .ring circle.clic:hover{stroke-width:17}
.v2-chn .anneau.chn-qp .v2-ws-tblbox{border-top:0}
.v2-chn .chn-qpt th{padding:4px 8px 5px 0;font-size:10px}
.v2-chn .chn-qpt td{padding:7px 8px 7px 0;font-size:12px;vertical-align:top}
.v2-chn .chn-qpt td:last-child,.v2-chn .chn-qpt th:last-child{padding-right:0}
.v2-chn .chn-qpt td b.n{font-size:13px}
.v2-chn .chn-qpt .lg{display:grid;grid-template-columns:10px minmax(0,1fr);gap:8px;align-items:start;color:var(--ink-2);line-height:1.3}
.v2-chn .chn-qpt .lg i{width:10px;height:10px;border-radius:3px;margin-top:2px;background:var(--g1)}
.v2-chn .chn-qpt .lg.g2 i{background:var(--g2)}.v2-chn .chn-qpt .lg.g3 i{background:var(--g3)}
.v2-chn .chn-qpt tr.total td{border-bottom:0;border-top:1px solid var(--c-line2);padding-top:8px}
.v2-chn .chn-qpt tr.clic:hover td{background:var(--brand-soft)}
.v2-chn .chn-vol{padding-top:8px;border-top:1px solid var(--c-line)}
/* les tableaux en boites de la page : des lignes plus serrees */
.v2-chn .v2-ws-tbl.boite tbody td{padding-top:7px;padding-bottom:7px}
.v2-chn .v2-ws-tbl.boite td .sous{font-size:10.5px}
.v2-chn .chn-flux td .src,.v2-chn .chn-flux td .per{font-size:11.5px;color:var(--muted)}
.v2-chn .chn-flux td{font-size:12.5px}
.v2-chn .chn-flux td.nat{min-width:170px}
.v2-chn .chn-flux td:nth-child(-n+2){white-space:nowrap}
.v2-chn .chn-bloc{display:flex;flex-direction:column;gap:6px;min-width:0}
.v2-chn .chn-bloc>.k{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:800;padding-bottom:2px}
/* la cascade : une ligne de groupe par domaine, sur le fond de sa bande */
.v2-chn tr.groupe td{padding:9px 16px 7px!important;border-radius:10px!important;cursor:default}
.v2-chn tr.groupe td b{font-size:10.5px!important;letter-spacing:.13em;text-transform:uppercase;font-weight:800}
.v2-chn .bande.logistique, .v2-chn tr.groupe.logistique td { background: color-mix(in srgb, var(--g3) 6%, transparent); }
.v2-chn tr.groupe.technique td { background: color-mix(in srgb, var(--g1) 6%, transparent); }
.v2-chn tr.groupe.financier td { background: color-mix(in srgb, var(--g6) 6%, transparent); }
html[data-theme="dark"] .v2-chn tr.groupe.logistique td{background:color-mix(in srgb, var(--g3) 11%, transparent)}
html[data-theme="dark"] .v2-chn tr.groupe.technique td{background:color-mix(in srgb, var(--g1) 11%, transparent)}
html[data-theme="dark"] .v2-chn tr.groupe.financier td{background:color-mix(in srgb, var(--g6) 10%, transparent)}
.v2-chn tr.groupe.logistique td b{color:color-mix(in srgb, var(--g3) 62%, var(--ink))}
.v2-chn tr.groupe.technique td b{color:color-mix(in srgb, var(--g1) 72%, var(--ink))}
.v2-chn tr.groupe.financier td b{color:color-mix(in srgb, var(--g6) 55%, var(--ink))}
.v2-chn .chn-cascade tr.lg.logistique td:first-child{box-shadow:inset 3px 0 0 color-mix(in srgb, var(--g3) 55%, transparent)}
.v2-chn .chn-cascade tr.lg.technique td:first-child{box-shadow:inset 3px 0 0 color-mix(in srgb, var(--g1) 55%, transparent)}
.v2-chn .chn-cascade tr.lg.financier td:first-child{box-shadow:inset 3px 0 0 color-mix(in srgb, var(--g6) 60%, transparent)}
.v2-chn .chn-cascade td:first-child{width:34%}
.v2-chn .chn-cascade tr.lg:not(.clic){cursor:default}
/* les ecarts entre sources */
.v2-chn .chn-ecarts td .au+.au{margin-top:4px}
.v2-chn .chn-ecarts td.r{white-space:normal}
.v2-chn .chn-ecarts td:first-child{min-width:220px;width:23%}
.v2-chn .chn-ecarts td:nth-child(4){white-space:nowrap}
.v2-chn .chn-ecarts td .sous{line-height:1.35}
.v2-chn .chn-ecarts td.r .sous{text-align:right}
.v2-chn .chn-ecarts b.n.raison{font-weight:500;color:var(--muted)}
.v2-chn .chn-ecarts .v2-b.sm{padding:4px 10px;font-size:11.5px;white-space:nowrap}
.v2-chn b.n.clic{cursor:pointer}.v2-chn b.n.clic:hover{color:var(--brand)}
.v2-chn b.n.doute{text-decoration:underline dotted var(--c-perte)}
@media (max-width:1280px){.v2-chn .chn-r1{grid-template-columns:1fr}}
@media (max-width:760px){.v2-chn .chn-hote{padding:10px 16px 24px}.v2-chn .anneau.chn-qp{grid-template-columns:1fr}.v2-chn .v2-ws-tblbox{overflow-x:auto}}

/* =====================================================================
   REVUE DU 28/09/2026 : corrections des constats (poste petrolier, Chaine)
   ===================================================================== */
/* une unite dans un en-tete en capitales garde sa casse : m³, t, Md */
.v2-ws-tbl th .u,.v2-cie-matrice th .u,.v2-lab .u,.v2-cie .ft .u,.v2-pp .pp-bloc>.k .u{text-transform:none;letter-spacing:.02em}
/* la marque de conflit ou de doute : une pastille posee apres la valeur, hors du flux, pour que les unites restent alignees */
.v2-cie-page b.n.conf,.v2-cie-page b.n.doute{position:relative}
.v2-cie-page .n.conf::after,.v2-cie-page .n.doute::after{position:absolute;right:-9px;top:-3px;margin-left:0}
.v2-cie-page .cel>b.n.conf,.v2-cie-page .cel>b.n.doute{align-self:flex-start}
.v2-pp .v2-ws-tbl.cargaisons tbody td{padding-top:7px;padding-bottom:7px}
/* les jauges de jours : graduations sous la piste, jamais sous la valeur ecrite */
.v2-pp-jours{row-gap:14px}
.v2-pp-jours .jg::after{content:"";position:absolute;left:0;width:72%;bottom:-6px;height:5px;pointer-events:none;
  background:linear-gradient(var(--c-line2), var(--c-line2)) 100% 0 / 1px 5px no-repeat, repeating-linear-gradient(90deg, var(--c-line2) 0 1px, transparent 1px 25%) 0 0 / 100% 4px no-repeat, linear-gradient(var(--c-line), var(--c-line)) 0 0 / 100% 1px no-repeat}
.v2-pp-jours .gh span{white-space:nowrap}
/* au-dessus du prix de revient : un hachure vert, symetrique de la perte, distinct du prix de revient */
.v2-pp-barre .gain{background:repeating-linear-gradient(-45deg, var(--good) 0 3px, transparent 3px 6px)}
.v2-pp .pp-leg .sw.gain i{background:repeating-linear-gradient(-45deg, var(--good) 0 3px, transparent 3px 6px)}
/* les mois reconstruits d'une courbe : un pointille, distinct des tirets de la projection */
.v2-pp .pp-cg .ligne.derive{stroke-dasharray:1.5 4.5;opacity:.9}
/* une arrivee dont aucun volume n'est connu : une seule cellule */
.v2-pp .v2-ws-tbl td.fus{text-align:center}
/* les donnees du poste : douze mois de litres tiennent dans la boite */
.v2-pp.v2-cie-page .pp-donnees .v2-cie-matrice td.c,.v2-cie-page .pp-donnees .v2-cie-matrice td.c{padding:0 6px}
.v2-cie-page .pp-donnees .v2-cie-matrice th{padding:10px 6px}
.v2-cie-page .pp-donnees .v2-cie-matrice th.g,.v2-cie-page .pp-donnees .v2-cie-matrice td.g{min-width:170px}
.v2-cie-page .pp-donnees .v2-cie-matrice td.d{padding:0 8px}
/* la Chaine : le litre de la compagnie par annee, sous l'anneau ; la periode d'un flux sur une ligne */
.v2-chn .chn-ans-b{display:flex;flex-direction:column;gap:4px;padding-top:8px;border-top:1px solid var(--c-line)}
.v2-chn .chn-ans-b>.k{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:800}
.v2-chn .chn-ans-b .v2-ws-tblbox{border-top:0}
.v2-chn .chn-ans th{padding:4px 8px 5px 0;font-size:10px}
.v2-chn .chn-ans td{padding:6px 8px 6px 0;font-size:12px}
.v2-chn .chn-ans td:last-child,.v2-chn .chn-ans th:last-child{padding-right:0}
.v2-chn .chn-ans td b.n{font-size:13px}
.v2-chn .chn-ans tr.on td{background:color-mix(in srgb, var(--g6) 9%, transparent)}
.v2-chn .chn-ans tr.on td:first-child{box-shadow:inset 3px 0 0 var(--g6);padding-left:8px}
.v2-chn b.n.rouge{color:var(--c-perte)}.v2-chn b.n.vert{color:var(--good)}
.v2-chn .chn-flux td .per{white-space:nowrap}
/* sous 1440 px : les grilles cote a cote passent en pile, les en-tetes vont a la ligne */
@media (max-width:1440px){
  .v2-chn .chn-r1{grid-template-columns:minmax(0,38fr) minmax(0,62fr)}
  .v2-chn .anneau.chn-qp{grid-template-columns:92px minmax(0,1fr);gap:12px}
  .v2-chn .anneau.chn-qp .ring{width:92px;height:92px}
  .v2-chn .chn-qpt td{padding-right:6px}
  .v2-chn .chn-flux td.nat{min-width:140px}
  .v2-pp .pp-deux.ventes{grid-template-columns:1fr}
  .v2-cie-page .v2-ws-tbl th{white-space:normal;letter-spacing:.08em;vertical-align:bottom}
  .v2-cie-page .v2-ws-tbl th .u{white-space:nowrap}
  .v2-cie-page .v2-ws-tbl td{padding-right:9px}
  .v2-pp .pp-deux.appro{grid-template-columns:1fr}
  .v2-pp .v2-ws-tbl td.dc{min-width:170px}
  .v2-pp .v2-ws-tbl td.jr{min-width:120px}
  .v2-pp .pp-jr{grid-template-columns:80px auto;min-width:118px}
}

/* =====================================================================
   COMPAGNIE D'ELECTRICITE, PASSE DE RIGUEUR (28/09/2026)
   Un etat de plus (reporte), la disponibilite en barre, la regle du temps
   dans les matrices, la selection d'une cellule, le choix d'un fichier.
   ===================================================================== */
.v2-cie-page{--c-rep:#8C7A4E}
html[data-theme="dark"] .v2-cie-page{--c-rep:#C2AE7C}
/* REPORTE : une reference ancienne, pas un calcul. Trait pointille long, couleur de la reference, attenuee */
.v2-cie-page .e-rep{border-bottom-style:dashed;border-bottom-color:var(--c-rep)}
.v2-cie-legende i.e-rep{border-bottom:2px dashed var(--c-rep)}
.v2-cie-matrice td.c.e-rep,.v2-cie .fmat td.c.e-rep{position:relative;color:var(--ink-2);box-shadow:none!important}
.v2-cie-matrice td.c.e-rep::after,.v2-cie .fmat td.c.e-rep::after{content:"";position:absolute;right:5px;top:5px;width:5px;height:5px;border-radius:50%;border:1.5px solid var(--c-rep);box-sizing:border-box}
/* la selection : une cellule marquee tant que son panneau est ouvert ; le survol reste discret */
.v2-cie-matrice td.c.clic:hover,.v2-cie .fmat td.c.clic:hover{background:var(--surface);border-color:var(--c-line2)}
.v2-cie-matrice td.c.sel,.v2-cie .fmat td.c.sel,.v2-cie-matrice td.c.sel:hover,.v2-cie .fmat td.c.sel:hover{border-color:var(--brand)!important;background:var(--brand-soft)!important;box-shadow:0 0 0 2px var(--brand-soft)!important}
/* la regle du temps : le dernier mois clos et le mois en cours se distinguent */
.v2-cie-matrice th span,.v2-cie .fmat th span{display:block}
.v2-cie-matrice th small,.v2-cie .fmat th small{display:block;font-size:9px;letter-spacing:.04em;text-transform:none;font-weight:600;margin-top:1px}
.v2-cie-matrice th.attendu,.v2-cie .fmat th.attendu{color:var(--brand)}
.v2-cie-matrice th.courant,.v2-cie .fmat th.courant{color:var(--c-der)}
.v2-cie-matrice td.c.courant,.v2-cie .fmat td.c.courant{background:repeating-linear-gradient(135deg,var(--c-surf2) 0 4px,transparent 4px 8px)!important;border:1px dashed var(--c-line2)!important}
.v2-cie-matrice td.c.mcourant:not(.courant),.v2-cie .fmat td.c.mcourant:not(.courant){border-style:dashed!important}
/* la synthese de la ligne : le nombre, puis ce qu'il est */
.v2-cie-matrice td.an,.v2-cie .fmat td.an{white-space:nowrap}
.v2-cie-matrice td.an b.n,.v2-cie .fmat td.an b.n{display:block;font-weight:800;border-bottom-width:2px;border-bottom-style:solid;padding-bottom:1px}
.v2-cie-matrice td.an b.n.e-rep,.v2-cie .fmat td.an b.n.e-rep,.v2-cie-matrice td.an b.n.e-der,.v2-cie .fmat td.an b.n.e-der{border-bottom-style:dashed}
.v2-cie-matrice td.an small,.v2-cie .fmat td.an small{display:block;font-size:10px;font-weight:500;color:var(--muted);margin-top:2px}
.v2-cie-matrice th.an{min-width:96px}

/* la synthese nationale au-dessus des systemes electriques */
.v2-ws-sel .k.sep{margin-top:10px}
.v2-ws-sel .sys.nat{border-style:solid;border-left-width:3px;background:var(--c-surf2)}
.v2-ws-sel .sys .l b{white-space:nowrap}

/* puissance : les cellules et la barre de disponibilite a gauche, l'anneau de composition a droite */
.v2-ws-focus .pgauche{display:flex;flex-direction:column;gap:12px;min-width:0}
.dispo-barre{display:flex;flex-direction:column;gap:6px}
.dispo-barre>.k{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700}
.dispo-barre .dp-piste{position:relative;height:14px;border-radius:999px;background:var(--c-surf2)}
.dispo-barre .dp-inst{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:var(--c-inst);overflow:hidden}
.dispo-barre .dp-rempli{position:absolute;left:0;top:0;bottom:0;background:#27AE60;border:0!important}
.dispo-barre .dp-rempli.e-der{background:repeating-linear-gradient(135deg,#27AE60 0 5px,#5CC98A 5px 9px)}
.dispo-barre .dp-pointe{position:absolute;top:-4px;width:2px;height:22px;margin-left:-1px;border-radius:1px;background:var(--c-perte,#D9534F)}
.dispo-barre .dp-lg{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:11.5px;color:var(--ink-2)}
.dispo-barre .dp-lg>span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.dispo-barre .dp-lg i{display:inline-block;width:10px;height:10px;border-radius:3px}
.dispo-barre .dp-d i{background:#27AE60}.dispo-barre .dp-nd i{background:var(--c-inst)}.dispo-barre .dp-p i{width:2px;height:12px;border-radius:1px;background:var(--c-perte,#D9534F)}
.dispo-barre .dp-sur{color:var(--muted)}
.anneau.puissance .rl .tt{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:2px}
.anneau.puissance .rl .conv{font-size:10.5px;line-height:1.4;color:var(--muted);margin-top:4px;max-width:250px}

/* service : l'acces par ile */
.v2-ws-focus .cel.c-acces .s.mini{grid-template-columns:78px auto;justify-content:space-between}
.v2-ws-focus .cel.c-acces .s.mini b.n{font-size:12px;font-weight:700;padding-bottom:0}
.v2-ws-focus .cel.c-acces>.s:last-child{font-size:10.5px;color:var(--muted);margin-top:2px}

/* clients & ventes : le titre de la chaine et son contexte commercial */
.v2-ws-chaine-tete{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:-4px}
.v2-ws-chaine-tete>.k{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700}
.v2-ws-chaine-tete .ctx{display:inline-flex;align-items:baseline;gap:7px;font-size:12px;color:var(--ink-2)}
.v2-ws-chaine-tete .ctx b.n{font-size:14px;font-weight:800}

/* declarations : les elements a confirmer */
.v2-ws .aconf .v2-ws-tbl .etat-mot{font-weight:600;font-size:12px}
.v2-ws .aconf .v2-ws-tbl .etat-mot.e-rep{color:var(--c-rep)}.v2-ws .aconf .v2-ws-tbl .etat-mot.e-der{color:var(--c-der)}.v2-ws .aconf .v2-ws-tbl .etat-mot.e-ref{color:var(--c-ref)}.v2-ws .aconf .v2-ws-tbl .etat-mot.e-inc{color:var(--c-inc)}
.v2-ws .aconf .v2-ws-tbl .etat-mot{border:0!important}
.v2-ws .aconf .v2-ws-tbl td .sous{display:block;max-width:420px;white-space:normal}
.v2-ws .aconf .v2-ws-tbl td.r .v2-b{white-space:nowrap}

/* registre : la reference de l'operateur, puis ce que Touma a lu */
.v2-ws-regtete{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:24px;align-items:stretch;padding-bottom:14px;border-bottom:1px solid var(--c-line)}
.v2-ws-regtete .refop{display:flex;flex-direction:column;gap:4px;padding:12px 16px;border:1px dashed var(--c-line2);border-radius:10px;background:var(--c-surf2)}
.v2-ws-regtete .refop .l{display:flex;align-items:baseline;gap:7px}
.v2-ws-regtete .refop .l b.n{font-size:20px;font-weight:800}
.v2-ws-regtete .refop .u{font-size:12px;color:var(--ink-2)}
.v2-ws-regtete .refop .s{font-size:11px;color:var(--muted);line-height:1.4}
.v2-ws-regtete .ingere{display:flex;flex-direction:column;gap:8px;min-width:0}
.v2-ws-regtete .ingere .v2-ws-resume{border-bottom:0}
.v2-ws-regtete>div>.k{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700}
@media (max-width:1100px){.v2-ws-regtete{grid-template-columns:1fr}}

/* le choix d'un fichier, dans la langue et le style de Touma */
.v2-fichier{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.v2-fichier .v2-fichier-natif{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.v2-fichier .v2-fichier-nom{font-size:12.5px;color:var(--muted)}
.v2-fichier .v2-fichier-nom.choisi{color:var(--ink);font-weight:600}

/* la courbe mensuelle : le mois en cours se lit a l'axe */
.v2-ws-focus .cg text.grad.courant{fill:var(--c-der);font-weight:700}
.v2-cie-matrice td.d .lien{white-space:nowrap}
.v2-cie-matrice th small,.v2-cie .fmat th small{white-space:nowrap}
/* le selecteur des systemes a 1366 : la puissance et la pointe passent a la ligne proprement */
.v2-ws-sel .sys .l,.v2-ws-sel .sys .s{flex-wrap:wrap;gap:2px 10px}
.v2-ws-sel .sys .l>span,.v2-ws-sel .sys .s>span{white-space:nowrap}
/* la matrice, de 1366 a 1920 : la colonne de synthese reste visible sans
   defilement (le tableau s'etire sur les grands ecrans, il ne deborde plus
   sur les petits) */
@media all{
  .v2-cie-matrice th.g,.v2-cie-matrice td.g{min-width:150px}
  .v2-cie-matrice td.g b{font-size:12.5px}
  .v2-cie-matrice td.c{padding:0 7px!important;font-size:12px}
  .v2-cie-matrice th{padding:10px 5px}
  .v2-cie-matrice th.an{min-width:84px}
  .v2-cie-matrice td.d .lien{white-space:normal;line-height:1.2;text-align:right}
  .v2-cie-matrice td.d{padding:0 4px 0 8px}
}
@media all{
  .v2-cie-matrice th.g,.v2-cie-matrice td.g{min-width:138px}
  .v2-cie-matrice th.an{min-width:0;white-space:normal;letter-spacing:.04em}
  .v2-cie-matrice td.an{white-space:normal;padding:0 8px}
  .v2-cie-matrice td.an small{max-width:74px}
  .v2-cie-matrice td.c{padding:0 6px!important}
}
/* les marques d'etat dans le coin haut droit, toutes au meme endroit : elles ne touchent plus le nombre */
.v2-cie-matrice td.c.e-decl::after,.v2-cie-matrice td.c.e-ref::after,.v2-cie-matrice td.c.e-der::after,.v2-cie-matrice td.c.e-rep::after{top:4px;right:4px;transform:none}
.v2-cie-matrice td.an small{white-space:nowrap;max-width:none;font-size:9.5px}
.v2-cie-matrice th.g,.v2-cie-matrice td.g{min-width:120px}
.v2-cie-matrice th.an{padding-left:4px;padding-right:4px}

/* =====================================================================
   COMOR HYDROCARBURES : LE PUPITRE D'APPROVISIONNEMENT (28/09/2026)
   Un poste de pilotage d'importateur, pas une grille de cartes et pas la
   compagnie d'electricite repeinte : une bande de commande (l'etat du
   jour, un instrument par produit, la frise des arrivages), puis la
   chaine sur une seule surface, puis le journal et trois reperes.
   ===================================================================== */
.v2-ch{display:flex;flex-direction:column;gap:22px;--ch-nuit:#0D1830;--ch-texte:#E9EEF7;--ch-texte-2:#9DB0CF;--ch-trait:rgba(160,184,230,.18);--ch-rouge:#FF6B5E;--ch-ambre:#F2B84B;--ch-vert:#4FD1A5}
/* la bande de commande */
.ch-pupitre{position:relative;overflow:hidden;border-radius:18px;padding:20px 24px 18px;display:flex;flex-direction:column;gap:18px;color:var(--ch-texte);
  background:radial-gradient(120% 160% at 0% 0%,#1C3260 0%,var(--ch-nuit) 52%,#091225 100%);box-shadow:0 1px 2px rgba(16,28,48,.08),0 22px 44px -26px rgba(9,18,37,.75)}
html[data-theme="dark"] .ch-pupitre{background:radial-gradient(120% 160% at 0% 0%,#18294A 0%,#0C1628 55%,#08101E 100%);border:1px solid var(--v2-trait-fort)}
.ch-pupitre b.n{color:#fff}
.ch-pupitre b.n small{color:var(--ch-texte-2)}
.ch-pupitre b.n.clic:hover{color:#BFD3FF}
.ch-pupitre .e-inc{color:#8A9BB8!important}
.ch-tete{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.ch-tete .t{display:flex;flex-direction:column;gap:3px;margin-right:auto}
.ch-tete .t .k{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ch-texte-2);font-weight:700}
.ch-tete .t h2{margin:0;font-size:26px;font-weight:800;letter-spacing:-.02em;color:#fff}
.ch-tete .etat{display:flex;align-items:center;gap:12px;border:1px solid var(--ch-trait);background:rgba(255,255,255,.045);border-radius:12px;padding:9px 16px 9px 13px;color:inherit;font:inherit;text-align:left;cursor:pointer;max-width:520px}
.ch-tete .etat:hover{background:rgba(255,255,255,.08)}
.ch-tete .etat>i{width:10px;height:10px;border-radius:50%;flex-shrink:0;background:var(--ch-ambre);box-shadow:0 0 0 4px rgba(242,184,75,.18)}
.ch-tete .etat.alerte>i{background:var(--ch-rouge);box-shadow:0 0 0 4px rgba(255,107,94,.22);animation:ch-pouls 2.6s ease-in-out infinite}
.ch-tete .etat.ok>i{background:var(--ch-vert);box-shadow:0 0 0 4px rgba(79,209,165,.18)}
.ch-tete .etat b{display:block;font-size:14.5px;font-weight:700;color:#fff}
.ch-tete .etat.alerte b{color:#FFB3AB}
.ch-tete .etat span span{display:block;font-size:12px;color:var(--ch-texte-2);margin-top:2px}
@keyframes ch-pouls{0%,100%{box-shadow:0 0 0 4px rgba(255,107,94,.22)}50%{box-shadow:0 0 0 9px rgba(255,107,94,.04)}}
@media (prefers-reduced-motion:reduce){.ch-tete .etat.alerte>i{animation:none}}

/* un instrument par produit : le produit critique passe en tete */
.ch-produits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.ch-prod{display:flex;flex-direction:column;gap:9px;padding:15px 18px 14px;border-radius:14px;border:1px solid var(--ch-trait);background:rgba(255,255,255,.035);min-width:0}
.ch-prod.critique{border-color:rgba(255,107,94,.55);background:linear-gradient(180deg,rgba(255,107,94,.13),rgba(255,255,255,.03) 70%)}
.ch-prod .h{display:flex;align-items:center;gap:9px}
.ch-prod .h>i{width:10px;height:10px;border-radius:3px;background:var(--c)}
.ch-prod .h b{font-size:14px;font-weight:700;color:#fff}
.ch-prod .h .pastille{margin-left:auto;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:#D8463B;border-radius:6px;padding:3px 8px}
.ch-prod .jours{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.ch-prod .jours .k{width:100%;font-size:11.5px;color:var(--ch-texte-2);letter-spacing:.02em}
.ch-prod .jours b.n.gros{font-size:44px;font-weight:800;letter-spacing:-.04em}
.ch-prod .jours b.n.gros small{font-size:15px}
.ch-prod .jours .s{font-size:12px;color:var(--ch-texte-2)}
.ch-prod .barre{position:relative;height:10px;border-radius:6px;background:rgba(255,255,255,.07);margin-top:2px}
.ch-prod .barre .piste{position:absolute;left:0;top:0;bottom:0;border-radius:6px;background:linear-gradient(90deg,color-mix(in srgb,var(--c) 35%,transparent),color-mix(in srgb,var(--c) 85%,transparent))}
.ch-prod .barre .stock{position:absolute;left:0;top:0;bottom:0;border-radius:6px;background:var(--c)}
.ch-prod .barre .zone{position:absolute;top:-5px;bottom:-5px;width:3px;margin-left:-1px;border-radius:2px;background:var(--ch-rouge);box-shadow:0 0 0 2px rgba(13,24,48,.7)}
.ch-prod .barre .rep{position:absolute;top:-3px;bottom:-3px;width:0;border-left:1.5px dashed rgba(233,238,247,.55)}
.ch-prod .barre .rep.max{border-left-style:solid;border-left-color:rgba(233,238,247,.8)}
.ch-prod .axe{display:flex;align-items:center;gap:10px;font-size:10.5px;color:var(--ch-texte-2);font-variant-numeric:tabular-nums}
.ch-prod .axe .reps{flex:1;display:flex;justify-content:center;gap:14px;flex-wrap:wrap}
.ch-prod .axe .reps>span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.ch-prod .axe .reps i{display:inline-block;width:0;height:10px;border-left:1.5px dashed rgba(233,238,247,.6)}
.ch-prod .axe .reps .max i{border-left-style:solid;border-left-color:rgba(233,238,247,.85)}
.ch-prod .axe .reps .max{color:#DCE5F4}
.ch-prod .z{font-size:12px;color:var(--ch-texte-2);line-height:1.4}
.ch-prod .z.alerte{color:#FFB3AB;font-weight:600}
.ch-prod .kv{display:flex;flex-direction:column;gap:0;margin-top:2px;border-top:1px solid var(--ch-trait)}
.ch-prod .kv .l{display:grid;grid-template-columns:1fr auto;align-items:baseline;column-gap:10px;padding:7px 0;border-bottom:1px solid rgba(160,184,230,.09);font-size:12.5px}
.ch-prod .kv .l .k{color:var(--ch-texte-2)}
.ch-prod .kv .l b.n{font-size:15px;justify-self:end}
.ch-prod .kv .l .s{grid-column:1 / -1;font-size:11px;color:var(--ch-texte-2)}
.ch-prod .kv .l.manque b.n{color:#FFB3AB!important;font-size:13px!important;border-bottom-color:rgba(255,107,94,.6)!important}

/* la frise des arrivages et de la couverture */
.ch-frise{display:flex;flex-direction:column;gap:10px;padding-top:4px}
.ch-frise>.k{display:flex;align-items:baseline;gap:12px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ch-texte-2);font-weight:700}
.ch-frise>.k a{margin-left:auto;letter-spacing:0;text-transform:none;font-weight:600;font-size:12px;color:#BFD3FF;text-decoration:none}
.ch-frise>.k a:hover{text-decoration:underline}
.ch-frise .piste{position:relative;height:76px;margin:0 8px;border-bottom:1px solid var(--ch-trait)}
.ch-frise .piste .mois{position:absolute;bottom:-18px;font-size:10.5px;color:var(--ch-texte-2);transform:translateX(-50%)}
.ch-frise .piste .mois::before{content:"";position:absolute;left:50%;top:-5px;height:5px;border-left:1px solid var(--ch-trait)}
.ch-frise .piste .couv{position:absolute;bottom:0;height:16px;background:linear-gradient(90deg,rgba(79,209,165,.55),rgba(79,209,165,.35));border-radius:3px 0 0 3px}
.ch-frise .piste .couv.fin{background:linear-gradient(90deg,rgba(79,209,165,.35),rgba(79,209,165,.08));border-radius:0 3px 3px 0}
.ch-frise .piste .trou{position:absolute;bottom:0;height:16px;border-radius:3px;background:repeating-linear-gradient(135deg,rgba(255,107,94,.55) 0 4px,rgba(255,107,94,.12) 4px 9px);box-shadow:inset 0 0 0 1px rgba(255,107,94,.55)}
.ch-frise .piste .trou span{position:absolute;right:6px;bottom:22px;white-space:nowrap;font-size:11.5px;font-weight:700;color:#FFB3AB}
.ch-frise .piste .marq{position:absolute;bottom:0;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;background:none;border:0;padding:0;color:inherit;font:inherit;cursor:pointer}
.ch-frise .piste .marq>i{display:block;width:12px;height:12px;border-radius:50%;margin-bottom:-6px;background:#fff;box-shadow:0 0 0 3px rgba(13,24,48,.9)}
.ch-frise .piste .marq .et{position:absolute;bottom:14px;white-space:nowrap;font-size:11px;color:#DCE5F4;font-variant-numeric:tabular-nums}
.ch-frise .piste .marq .et.haut{bottom:40px;color:var(--ch-vert);font-weight:700}
.ch-frise .piste .marq.arr.dechargee>i{background:#8FB3F5}
.ch-frise .piste .marq.arr.nonConfirmee>i,.ch-frise .piste .marq.arr.attendue>i{background:transparent;border:2px solid var(--ch-rouge);width:14px;height:14px;box-sizing:border-box}
.ch-frise .piste .marq.arr.attendue>i{border-color:#8FB3F5}
.ch-frise .piste .marq.arr.nonConfirmee .et{color:#FFB3AB;font-weight:700}
.ch-frise .piste .marq.annonce>i{background:var(--ch-vert);border-radius:2px;transform:rotate(45deg)}
.ch-frise .piste .marq.rupture>i{width:0;height:0;border-radius:0;background:none;box-shadow:none;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:12px solid var(--ch-rouge);margin-bottom:-2px}
.ch-frise .piste .auj{position:absolute;top:-4px;bottom:-4px;border-left:2px solid #fff;opacity:.9}
.ch-frise .piste .auj b{position:absolute;top:-4px;left:7px;font-size:11px;font-weight:700;color:#fff;white-space:nowrap}
.ch-frise .leg{display:flex;gap:18px;flex-wrap:wrap;margin-top:16px;font-size:11px;color:var(--ch-texte-2)}
.ch-frise .leg>span{display:flex;align-items:center;gap:6px}
.ch-frise .leg i{display:inline-block;width:12px;height:10px;border-radius:2px}
.ch-frise .leg .l-arr i{width:9px;height:9px;border-radius:50%;background:#8FB3F5}
.ch-frise .leg .l-nc i{width:10px;height:10px;border-radius:50%;border:2px solid var(--ch-rouge);box-sizing:border-box}
.ch-frise .leg .l-couv i{background:rgba(79,209,165,.5)}
.ch-frise .leg .l-trou i{background:repeating-linear-gradient(135deg,rgba(255,107,94,.65) 0 3px,rgba(255,107,94,.15) 3px 6px)}
.ch-frise .leg .l-rup i{width:0;height:0;border-radius:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:9px solid var(--ch-rouge)}

/* la chaine : une seule surface, quatre maillons et leurs flux */
.ch-chaine{background:var(--v2-surface);border:1px solid var(--v2-trait);border-radius:18px;padding:18px 22px 20px;box-shadow:var(--v2-ombre)}
.ch-chaine-t{display:flex;align-items:baseline;gap:12px;margin-bottom:14px}
.ch-chaine-t h3{margin:0;font-size:16px;font-weight:800;letter-spacing:-.01em;color:var(--ink)}
.ch-chaine-t span{font-size:12px;color:var(--muted)}
.ch-maillons{display:grid;grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr) 64px minmax(0,1fr) 34px minmax(0,1.35fr);align-items:stretch}
.ch-maillon{display:flex;flex-direction:column;gap:12px;min-width:0;padding:4px 4px 0}
.ch-maillon .titre{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--ink);font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.ch-maillon .titre b{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--brand);color:#fff;font-size:11px;letter-spacing:0}
.ch-maillon .titre:hover span{color:var(--brand)}
.ch-maillon .corps{display:flex;flex-direction:column;gap:0}
.ch-maillon .g{display:flex;flex-direction:column;gap:3px;padding-bottom:10px;margin-bottom:4px;border-bottom:1px solid var(--v2-trait)}
.ch-maillon .g b.n.gros{font-size:30px;font-weight:800;letter-spacing:-.03em;align-self:flex-start}
.ch-maillon .g .s{font-size:12px;color:var(--muted)}
.ch-maillon .l{display:grid;grid-template-columns:auto 1fr;align-items:baseline;column-gap:10px;padding:6px 0;border-bottom:1px solid var(--v2-trait);font-size:12.5px}
.ch-maillon .l:last-child{border-bottom:0}
.ch-maillon .l .k{color:var(--ink-2)}
.ch-maillon .l b.n{font-size:13.5px;justify-self:end;text-align:right;white-space:normal}
.ch-maillon .l .s{grid-column:1 / -1;font-size:11px;color:var(--muted);text-align:right}
.ch-maillon .l.alerte .k{color:var(--crit);font-weight:700}
.ch-maillon .l.alerte b.n,.ch-maillon b.n.rouge{color:var(--crit)}
.ch-maillon .l.manque b.n{color:var(--crit)!important;font-size:12.5px!important}
.ch-maillon .barres{display:flex;flex-direction:column;gap:7px;padding:6px 0 10px;border-bottom:1px solid var(--v2-trait)}
.ch-maillon .barres .b{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"n v" "j j";gap:4px 10px;background:none;border:0;padding:0;font:inherit;color:inherit;text-align:left}
.ch-maillon .barres button.b{cursor:pointer}.ch-maillon .barres button.b:hover .n b{color:var(--brand)}
.ch-maillon .barres .n{grid-area:n;display:flex;gap:8px;align-items:baseline;min-width:0;font-size:12.5px}
.ch-maillon .barres .n b{font-weight:700;color:var(--ink)}
.ch-maillon .barres .n span{color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-maillon .barres .v{grid-area:v;display:flex;gap:8px;align-items:baseline;font-size:12.5px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink)}
.ch-maillon .barres .v b.n{font-size:12.5px}
.ch-maillon .barres .v em{font-style:normal;color:var(--muted);font-weight:600;min-width:34px;text-align:right}
.ch-maillon .barres .j{grid-area:j;height:6px;border-radius:4px;background:var(--surface-3)}
.ch-maillon .barres .j i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,var(--brand-2),var(--brand))}
/* les destinations : la part de chaque usage, a sa couleur */
.ch-maillon.dest .d{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"n v" "j j";gap:5px 12px;padding:9px 0;border:0;border-bottom:1px solid var(--v2-trait);background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}
.ch-maillon.dest .d:hover .n b{color:var(--brand)}
.ch-maillon.dest .d .n{grid-area:n;display:flex;flex-direction:column;gap:1px;min-width:0}
.ch-maillon.dest .d .n b{font-size:13.5px;font-weight:700;color:var(--ink)}
.ch-maillon.dest .d .n span{font-size:11px;color:var(--muted)}
.ch-maillon.dest .d .v{grid-area:v;display:flex;gap:10px;align-items:baseline;align-self:center}
.ch-maillon.dest .d .v b.n{font-size:18px}
.ch-maillon.dest .d .v em{font-style:normal;font-size:12px;font-weight:700;color:var(--muted);min-width:36px;text-align:right}
.ch-maillon.dest .d .j{grid-area:j;height:9px;border-radius:5px;background:var(--surface-3)}
.ch-maillon.dest .d .j i{display:block;height:100%;border-radius:5px;background:var(--c)}
/* le flux entre deux maillons */
.ch-liaison{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:62px}
.ch-liaison>i{position:absolute;top:74px;left:6px;right:6px;height:2px;background:linear-gradient(90deg,var(--v2-trait-fort),var(--brand-line))}
.ch-liaison>i::after{content:"";position:absolute;right:-2px;top:-4px;border-left:7px solid var(--brand-line);border-top:5px solid transparent;border-bottom:5px solid transparent}
.ch-liaison>span{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;background:var(--v2-surface);padding:0 4px;margin-top:-22px;text-align:center}
.ch-liaison>span b.n{font-size:13px}
.ch-liaison>span small{font-size:9.5px;color:var(--muted);white-space:nowrap}

/* le bas : le journal et trois reperes economiques */
.ch-bas{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:18px;align-items:start}
.ch-bas .bloc{background:var(--v2-surface);border:1px solid var(--v2-trait);border-radius:16px;padding:16px 20px 14px;display:flex;flex-direction:column;gap:10px;min-width:0}
.ch-bas .bloc>.k{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.ch-bas .bloc>.k.flex{display:flex;align-items:baseline;gap:12px}
.ch-bas .bloc>.k.flex a{margin-left:auto;font-size:12px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--brand);text-decoration:none}
.ch-bas .bloc .v2-b{align-self:flex-start}
.ch-bas .v2-ws-journal.deux{display:grid;grid-template-columns:1fr 1fr;column-gap:22px}
.ch-eco .l{display:grid;grid-template-columns:1fr auto;align-items:baseline;column-gap:10px;padding:8px 0;border-bottom:1px solid var(--v2-trait);font-size:12.5px}
.ch-eco .l:last-child{border-bottom:0}
.ch-eco .l .k{color:var(--ink-2)}
.ch-eco .l b.n{font-size:16px;justify-self:end}
.ch-eco .l .s{grid-column:1 / -1;font-size:11px;color:var(--muted);text-align:right}
.ch-eco .l.incertain .s{color:var(--warn);font-weight:600}
.ch-eco .l.ancien b.n{opacity:.8}

/* sous 1440 px, puis sous 1100 : on empile */
@media (max-width:1440px){
  .ch-maillons{grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr) 48px minmax(0,1fr);row-gap:18px}
  .ch-maillons .ch-liaison:nth-of-type(6){display:none}
  .ch-maillon.dest{grid-column:1 / -1}
  .ch-maillon .g b.n.gros{font-size:26px}
}
@media (max-width:1100px){
  .ch-produits{grid-template-columns:1fr}
  .ch-maillons{grid-template-columns:1fr}
  .ch-liaison{display:none}
  .ch-bas{grid-template-columns:1fr}
  .ch-bas .v2-ws-journal.deux{grid-template-columns:1fr}
}

/* la frise de l'approvisionnement : aujourd'hui, et l'avenir en retrait */
.v2-pp-frise .futur{fill:rgba(15,61,138,.045)}
html[data-theme="dark"] .v2-pp-frise .futur{fill:rgba(143,179,245,.06)}
.v2-pp-frise line.auj{stroke:var(--ink);stroke-width:1.5}
.v2-pp-frise text.auj{fill:var(--ink);font-size:11px;font-weight:700}
.v2-pp-frise circle.pt.depassee{fill:transparent;stroke:var(--crit);stroke-width:2.5}
/* les depots, un par ligne : stock sur capacite, autonomie, alimentation, etat */
.v2-ws-tbl.depots-ch td{vertical-align:top;padding-top:11px;padding-bottom:11px}
.v2-ws-tbl.depots-ch td.stocks{min-width:340px}
.depots-ch .jauges{display:flex;flex-direction:column;gap:7px}
.depots-ch .jg{display:grid;grid-template-columns:118px minmax(80px,1fr) auto;align-items:center;gap:10px;font-size:12px}
.depots-ch .jg .n{color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.depots-ch .jg .cadre{display:block;height:9px;border-radius:5px;background:var(--surface-3);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c) 45%,transparent);overflow:hidden}
.depots-ch .jg .cadre i{display:block;height:100%;background:var(--c)}
.depots-ch .jg .v{white-space:nowrap;font-variant-numeric:tabular-nums}
.depots-ch .jg .v small{color:var(--muted);font-size:11px}
.depots-ch .jg .v b.n{font-size:12.5px}
.depots-ch td.jours>div{white-space:nowrap;font-size:12px;line-height:1.9}
.depots-ch td.jours>div.max>span{color:var(--muted);font-size:11px}
.depots-ch td.jours small{color:var(--muted);font-size:11px}
.depots-ch td.alim small,.depots-ch .etat-dep small{display:block;margin-top:4px;font-size:11px;color:var(--muted)}
.depots-ch td.alim.alerte small{color:var(--crit);font-weight:600}
.depots-ch .etat-dep small.rouge{color:var(--crit)}
/* ventes : les destinations de la periode courante en tete, l'historique en dessous */
.dest-ch .prods{display:flex;flex-wrap:wrap;gap:6px 14px}
.dest-ch .prods .pr{display:inline-flex;align-items:baseline;gap:6px;font-size:12px;color:var(--ink-2);white-space:nowrap}
.dest-ch .prods .pr i{display:inline-block;width:8px;height:8px;border-radius:2px;background:var(--c);align-self:center}
.dest-ch .prods .pr b.n{font-size:12.5px}
.dest-ch td.r b.n.fort{font-size:17px}
.pp-histo{display:flex;flex-direction:column;gap:10px;margin-top:6px}
/* prix : l'applicable en tete ; l'ancien reste lisible mais en retrait */
.prix-ch td.r b.n.fort{font-size:17px}
.prix-ch td.incertain .sous{color:var(--warn);font-weight:600}
.prix-ch td.ancien b.n{opacity:.82}
.prix-ch td.dc .sous{display:block;margin-top:5px}
/* declarations : les N a confirmer de l'en-tete, une ligne chacun, avec son geste */
.ch-aconf{display:flex;flex-direction:column;margin-top:6px}
.ch-aconf .l{display:grid;grid-template-columns:26px minmax(160px,.9fr) minmax(0,2fr) auto;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--v2-trait)}
.ch-aconf .l:last-child{border-bottom:0}
.ch-aconf .l>.i{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--warn-soft);color:var(--warn);font-size:11px}
.ch-aconf .l .n{display:flex;flex-direction:column;gap:1px;min-width:0}
.ch-aconf .l .n b{font-size:13px;color:var(--ink)}
.ch-aconf .l .n span{font-size:11px;color:var(--muted)}
.ch-aconf .l .m{font-size:12px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-aconf .l .m{font-family:var(--ui,inherit);letter-spacing:0}

/* la structure du prix tient dans sa boite de 1366 a 1920 : la decomposition se resserre */
.v2-pp .v2-ws-tbl.structure td.dc{min-width:150px;width:18%}
.v2-pp .v2-ws-tbl.structure th,.v2-pp .v2-ws-tbl.structure td{padding-left:8px;padding-right:8px}

/* =====================================================================
   LE SYSTEME PETROLIER, L'ILE D'ABORD (29/09/2026) : le perimetre en
   tuiles, six pages en onglets, des panneaux blancs, les cuves dessinees,
   la saisie sur place. Prefixe hy-. Les couleurs des produits suivent
   l'usage du metier (essence ambre, gasoil bleu, kerosene violet, Jet
   turquoise, gaz vert) ; les etats viennent de --crit, --warn, --good,
   --brand.
   ===================================================================== */
.v2-pp.hy{--g6:#E0A11B;--g1:#2A63C8;--g2:#5B8CF0;--g3:#B5367A;--g4:#0E9DAE;--g5:#3A9A5B;
  --hy-coque-a:#FFFFFF;--hy-coque-b:#E6EBF1;--hy-coque-c:#C7D0DC;--hy-coque-trait:#8E9CB0;--hy-socle:#D3DAE4;--hy-pochoir:#1C2536;
  --hy-orange:#E8791D}
/* le mode sombre (29/09/2026) : les cuves restent en acier clair eclaire,
   comme sur le terrain ; seul le fond s'assombrit. Le kerosene passe du
   violet au framboise : a cote du bleu du gasoil, le violet se confondait
   (ecart de perception mesure trop faible, daltoniens comme non-daltoniens). */
:root[data-theme="dark"] .v2-pp.hy{--g6:#E3A52E;--g1:#5B8CF0;--g2:#8FB0F5;--g3:#D65A9C;--g4:#3CC4D3;--g5:#5CC482;
  --hy-coque-a:#F2F5F9;--hy-coque-b:#D3DAE4;--hy-coque-c:#A6B2C3;--hy-coque-trait:#8190A6;--hy-socle:#0A0F18;--hy-pochoir:#1C2536;--hy-orange:#F09A4A}
.v2-pp.hy .faible{color:var(--muted);font-weight:600}
.v2-pp.hy .rouge{color:var(--crit)}
.v2-pp.hy .vert{color:var(--good)}
.v2-pp.hy .nw{white-space:nowrap}
/* l'unite se lit a cote du chiffre (29/09/2026) : la regle generale la reduit
   a la moitie du chiffre, en gris clair ; ici elle garde les quatre cinquiemes */
.v2-pp.hy b.n small{font-size:.8em;font-weight:700;color:var(--ink-2);margin-left:.22em;letter-spacing:0}

/* le perimetre : le pays ou une ile, en tuiles */
.v2-pp .hy-portee{display:flex;gap:10px;padding:6px 26px 0;overflow-x:auto;scrollbar-width:thin}
.v2-pp .hy-tuile{flex:1 1 0;min-width:170px;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:11px 16px 12px;border:1px solid var(--v2-trait);border-radius:14px;background:var(--v2-surface);box-shadow:var(--v2-ombre);cursor:pointer;font:inherit;color:var(--ink-2);text-align:left;position:relative;transition:border-color var(--v2-t),background var(--v2-t)}
.v2-pp .hy-tuile b{font-size:15px;font-weight:800;color:var(--ink);letter-spacing:-.01em}
.v2-pp .hy-tuile span{font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap}
.v2-pp .hy-tuile:hover{border-color:var(--v2-trait-fort)}
.v2-pp .hy-tuile.on{border-color:var(--brand);background:var(--brand-soft)}
.v2-pp .hy-tuile.on b{color:var(--brand)}
.v2-pp .hy-tuile.on::before{content:"";position:absolute;top:14px;right:14px;width:8px;height:8px;border-radius:50%;background:var(--hy-orange)}

/* les six pages, en onglets ronds */
.v2-pp .hy-modules{display:flex;gap:6px;flex-wrap:wrap;padding:14px 26px 0}
.v2-pp .hy-modules a{border:1px solid var(--v2-trait-fort);background:var(--v2-surface);border-radius:999px;padding:7px 16px;font-size:13px;font-weight:700;color:var(--ink-2);text-decoration:none;white-space:nowrap}
.v2-pp .hy-modules a:hover{color:var(--ink);border-color:var(--ink-2)}
.v2-pp .hy-modules a.on{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}

/* la page */
.v2-pp .hy-hote{padding:16px 26px 34px;display:flex;flex-direction:column;gap:16px;flex:1;min-height:0}
.v2-pp .hy-grille{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}
.v2-pp .hy-grille>*{grid-column:span 12;min-width:0}
.v2-pp .hy-grille>.c8{grid-column:span 8}.v2-pp .hy-grille>.c7{grid-column:span 7}.v2-pp .hy-grille>.c6{grid-column:span 6}.v2-pp .hy-grille>.c5{grid-column:span 5}.v2-pp .hy-grille>.c4{grid-column:span 4}
.v2-pp .hy-pan{background:var(--v2-surface);border:1px solid var(--v2-trait);border-radius:16px;box-shadow:var(--v2-ombre);padding:16px 20px 18px;display:flex;flex-direction:column;gap:14px;min-width:0}
.v2-pp .hy-pt{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-height:30px}
.v2-pp .hy-pt h3{margin:0;font-size:15.5px;font-weight:800;letter-spacing:-.01em;color:var(--ink);flex-shrink:0}
.v2-pp .hy-pt .hy-q{font-size:12px;font-weight:700;color:var(--muted)}
.v2-pp .hy-pt .hy-d{margin-left:auto;display:flex;align-items:center;gap:8px}
.v2-pp .hy-tete-page{display:flex;align-items:center;gap:12px}
.v2-pp .hy-src{font-size:11.5px;color:var(--muted);line-height:1.5}
.v2-pp .hy-sous{display:block;font-size:11.5px;color:var(--muted);font-weight:600;margin-top:2px}
.v2-pp .hy-sous.fort{font-size:12.5px;color:var(--ink-2);font-weight:700;margin:0}
.v2-pp .hy-vide{font-size:13px;color:var(--muted);font-weight:600;padding:10px 12px;border:1px dashed var(--v2-trait-fort);border-radius:12px}
.v2-pp .hy-pa{display:inline-block;width:10px;height:10px;border-radius:3px;background:var(--c);flex-shrink:0;margin-right:8px;vertical-align:-1px}
.v2-pp .hy-lien{border:0;background:none;padding:0;font:inherit;font-size:12.5px;font-weight:800;color:var(--brand);cursor:pointer}
.v2-pp .hy-lien:hover{text-decoration:underline}

/* listes deroulantes, champs, bascules */
.v2-pp .hy-select,.v2-pp .hy-in{font:inherit;font-size:13px;color:var(--ink);background:var(--v2-surface);border:1px solid var(--v2-trait-fort);border-radius:9px;padding:6px 10px;min-width:0}
.v2-pp .hy-in.court{width:70px}
.v2-pp .hy-choix{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.v2-pp .hy-choix .faible{font-size:12px}
.v2-pp .hy-bascule{display:inline-flex;border:1px solid var(--v2-trait-fort);border-radius:10px;overflow:hidden;background:var(--v2-surface)}
.v2-pp .hy-bascule button{border:0;background:none;padding:7px 13px;font:inherit;font-size:12.5px;font-weight:700;color:var(--ink-2);cursor:pointer;white-space:nowrap}
.v2-pp .hy-bascule button+button{border-left:1px solid var(--v2-trait)}
.v2-pp .hy-bascule button.on{background:var(--brand);color:#fff}
.v2-pp .hy-bascule.petit button{padding:4px 9px;font-size:12px}

/* la saisie sur place : un chiffre qu'on touche devient un champ */
.v2-pp .hy-saisie{display:inline-flex;align-items:center;gap:6px;border-radius:7px;padding:1px 4px;margin:-1px -4px}
.v2-pp .hy-saisie.modifiable{cursor:pointer;border-bottom:1.5px dashed transparent}
.v2-pp .hy-saisie.modifiable:hover,.v2-pp .hy-saisie.modifiable:focus-visible{background:var(--brand-soft);border-bottom-color:var(--brand);outline:none}
.v2-pp .hy-saisie.edition{background:var(--brand-soft);padding:4px 6px;cursor:default}
.v2-pp .hy-saisie .hy-in{width:110px;padding:4px 8px;text-align:right;font-family:var(--mono,ui-monospace,monospace)}
.v2-pp .hy-saisie small{font-size:11.5px;color:var(--ink-2);font-weight:700}
.v2-pp .hy-ok{border:0;background:var(--brand);color:#fff;border-radius:7px;padding:5px 10px;font:inherit;font-size:12px;font-weight:800;cursor:pointer}
.v2-pp .hy-ok[disabled]{opacity:.5}
.v2-pp .hy-msg{font-size:12px;font-weight:700;color:var(--warn)}
.v2-pp .hy-attente{display:inline-flex;align-items:baseline;gap:.3em;color:var(--warn)}
.v2-pp .hy-attente b{font-weight:700;font-style:italic}
.v2-pp .hy-attente small{font-size:11px;font-weight:700}
.v2-pp .hy-attente em{font-style:normal;font-size:11px;font-weight:800;padding:1px 7px;border-radius:999px;background:var(--warn-soft)}
.v2-pp .hy-attente.refus{color:var(--crit)}
.v2-pp .hy-attente.refus em{background:var(--crit-soft)}
.v2-pp .hy-saisie .hy-ok{padding:3px 9px;font-size:11.5px}
.v2-pp .hy-multi{display:inline-flex;flex-direction:column;align-items:flex-end;gap:2px}
.v2-pp .hy-multi .hy-sous{margin:4px 0 0}

/* les cuves */
.v2-pp .hy-cuve{display:block;overflow:visible}
.v2-pp .hy-cuve text.hy-pochoir{font-family:var(--mono,ui-monospace,monospace);font-weight:700;fill:var(--hy-pochoir);paint-order:stroke;stroke:var(--hy-coque-a);stroke-width:2.6px;stroke-linejoin:round;letter-spacing:.02em}

/* le stock : une carte par produit */
.v2-pp .hy-stocks{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:12px}
.v2-pp .hy-stock{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 10px 14px;border-radius:14px;background:var(--v2-surface-2);border:1px solid var(--v2-trait);min-width:0;text-align:center}
.v2-pp .hy-stock .n{display:flex;align-items:center;font-size:14px;font-weight:800;color:var(--ink);white-space:nowrap}
.v2-pp .hy-dessin{height:150px;display:flex;align-items:flex-end;justify-content:center;margin:2px 0 6px}
.v2-pp .hy-dessin svg{width:auto;height:100%;max-width:100%}
.v2-pp .hy-dessin.couchee svg{width:100%;height:auto;max-height:100%}
.v2-pp .hy-stock .v{min-height:28px;display:flex;align-items:center;justify-content:center}
.v2-pp .hy-stock .v b.n{font-size:19px;font-weight:700;font-family:var(--mono,ui-monospace,monospace);letter-spacing:-.02em}
.v2-pp .hy-stock .v b.n small{font-size:12px;font-family:var(--ui)}
.v2-pp .hy-stock .v .hy-lien{font-size:13px}
.v2-pp .hy-stock .s{font-size:12px;font-weight:600;color:var(--ink-2)}
.v2-pp .hy-stock .s b.n{font-weight:800;color:var(--ink)}
.v2-pp .hy-stock .j{font-size:12px;font-weight:700;color:var(--ink)}
.v2-pp .hy-stock .j.faible{color:var(--muted);font-weight:600}
.v2-pp .hy-stock .n{justify-content:center}

/* le chiffre d'affaires */
.v2-pp .hy-ca{display:flex;flex-direction:column;gap:12px}
.v2-pp .hy-ca .grand{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.v2-pp .hy-ca .grand b.n{font-size:30px;font-weight:700;letter-spacing:-.03em;font-family:var(--mono,ui-monospace,monospace)}
.v2-pp .hy-ca .grand b.n small{font-size:14px;font-family:var(--ui);font-weight:700;color:var(--ink-2)}
.v2-pp .hy-ca .an{font-size:13px;font-weight:800;color:var(--muted)}
.v2-pp .hy-ca .var{font-size:12.5px;font-weight:800;padding:3px 9px;border-radius:999px}
.v2-pp .hausse{color:var(--good)}.v2-pp .baisse{color:var(--crit)}
.v2-pp .hy-ca .var.hausse{background:var(--good-soft)}.v2-pp .hy-ca .var.baisse{background:var(--crit-soft)}
.v2-pp .hy-lignes{display:flex;flex-direction:column}
.v2-pp .hy-ligne{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--v2-trait);font-size:13px}
.v2-pp .hy-ligne:last-child{border-bottom:0}
.v2-pp .hy-ligne .n{flex:1;min-width:0;font-weight:600;color:var(--ink-2)}
.v2-pp .hy-ligne>b{font-family:var(--mono,ui-monospace,monospace);font-weight:600;color:var(--ink)}
.v2-pp .hy-ligne>small{font-size:11.5px;color:var(--muted);font-weight:700;min-width:62px}
.v2-pp .hy-ligne.neg .n{color:var(--crit)}
.v2-pp .hy-mois{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.v2-pp .hy-mois .l{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:12px;background:var(--v2-surface-2);border:1px solid var(--v2-trait)}
.v2-pp .hy-mois .k{font-size:11.5px;font-weight:700;color:var(--muted)}

/* les iles : stock et finances de chacune */
.v2-pp .hy-iles{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:14px}
.v2-pp .hy-ile{display:flex;flex-direction:column;gap:12px;padding:14px 16px;border:1px solid var(--v2-trait);border-radius:14px;background:var(--v2-surface-2);text-align:left;font:inherit;color:inherit;cursor:pointer;min-width:0;transition:border-color var(--v2-t),box-shadow var(--v2-t)}
.v2-pp .hy-ile:hover{border-color:var(--brand);box-shadow:var(--v2-lueur)}
.v2-pp .hy-ile .ih{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.v2-pp .hy-ile .ih b{font-size:16px;font-weight:800;color:var(--ink)}
.v2-pp .hy-ile .ih span{font-size:12px;font-weight:600;color:var(--muted)}
.v2-pp .hy-mini{display:flex;align-items:flex-end;gap:8px;min-height:84px}
.v2-pp .hy-mini .t{display:flex;flex-direction:column;align-items:center;gap:2px}
.v2-pp .hy-mini .t svg{width:var(--w,46px);height:auto}
.v2-pp .hy-mini small{font-size:10.5px;font-weight:700;color:var(--muted)}
.v2-pp .hy-bloc{display:flex;flex-direction:column;gap:6px;padding-top:10px;border-top:1px solid var(--v2-trait)}
.v2-pp .hy-bloc>.t{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:800;color:var(--muted)}
.v2-pp .hy-kvs{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px 14px}
.v2-pp .hy-kvs .kv{display:flex;flex-direction:column;gap:1px;min-width:0}
.v2-pp .hy-kvs .kv span{font-size:11.5px;font-weight:600;color:var(--muted)}
.v2-pp .hy-kvs .kv b{font-size:14px;font-weight:800;color:var(--ink)}
.v2-pp .hy-kvs .kv.faible b{color:var(--muted);font-weight:700;font-size:13px}
.v2-pp .hy-ile .ouvrir{font-size:12.5px;font-weight:800;color:var(--brand)}

/* le bilan des cuves d'une ile : un bloc par depot */
.v2-pp .hy-depots{display:flex;flex-direction:column;gap:14px}
.v2-pp .hy-depot{border:1px solid var(--v2-trait);border-radius:14px;background:var(--v2-surface-2);padding:12px 14px 14px;display:flex;flex-direction:column;gap:10px}
.v2-pp .hy-depot.on{border-color:var(--brand)}
.v2-pp .hy-depot .dh{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.v2-pp .hy-depot .dh b{font-size:14.5px;font-weight:800;color:var(--ink)}
.v2-pp .hy-depot .dh span{font-size:12px;font-weight:600;color:var(--muted)}
.v2-pp .hy-depot .dh .hy-lien{margin-left:auto}
.v2-pp .hy-depot .dc{display:flex;gap:18px;align-items:flex-end;flex-wrap:wrap}
.v2-pp .hy-depot .dc>.hy-tblbox{flex:1 1 820px;background:var(--v2-surface)}
.v2-pp .v2-ws-tbl.hy-tbl td:first-child{white-space:nowrap}
.v2-pp .hy-rang{display:flex;gap:6px;align-items:flex-end;flex:0 0 auto}
.v2-pp .hy-rang .t{display:flex;flex-direction:column;align-items:center;gap:3px}
.v2-pp .hy-rang .t svg{width:var(--w,80px);height:auto}
.v2-pp .hy-rang small{font-size:10.5px;font-weight:700;color:var(--muted);white-space:nowrap}
.v2-pp .hy-rang .hy-legende{align-self:center;margin-left:8px}
.v2-pp .hy-evts{display:flex;flex-wrap:wrap;gap:6px}

/* les tableaux */
.v2-pp .hy-tblbox{border:1px solid var(--v2-trait);border-radius:12px;overflow:auto;background:var(--v2-surface)}
.v2-pp .hy-tblbox.haut{max-height:480px}
.v2-pp .v2-ws-tbl.hy-tbl{width:100%;border-collapse:collapse;font-size:13px}
.v2-pp .v2-ws-tbl.hy-tbl th{font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-weight:800;text-align:left;padding:9px 12px;background:var(--v2-surface-2);border-bottom:1px solid var(--v2-trait);white-space:nowrap;position:sticky;top:0;z-index:1}
.v2-pp .v2-ws-tbl.hy-tbl th.r,.v2-pp .v2-ws-tbl.hy-tbl td.r{text-align:right}
.v2-pp .v2-ws-tbl.hy-tbl td{padding:9px 12px;border-bottom:1px solid var(--v2-trait);vertical-align:middle;color:var(--ink-2)}
.v2-pp .v2-ws-tbl.hy-tbl tbody tr:last-child td{border-bottom:0}
.v2-pp .v2-ws-tbl.hy-tbl td b{color:var(--ink);font-weight:700}
.v2-pp .v2-ws-tbl.hy-tbl td.r b,.v2-pp .v2-ws-tbl.hy-tbl td.r>span{font-variant-numeric:tabular-nums}
.v2-pp .v2-ws-tbl.hy-tbl .nom{font-weight:700;color:var(--ink)}
.v2-pp .v2-ws-tbl.hy-tbl tr.total td{background:var(--v2-surface-2);font-weight:800}
.v2-pp .v2-ws-tbl.hy-tbl tr.clic{cursor:pointer}
.v2-pp .v2-ws-tbl.hy-tbl tr.clic:hover td{background:var(--brand-soft)}
.v2-pp .v2-ws-tbl.hy-tbl tr.on td{background:var(--brand-soft)}
.v2-pp .v2-ws-tbl.hy-tbl tr.detail td{background:var(--v2-surface-2);font-size:12.5px;padding-top:6px;padding-bottom:6px}
.v2-pp .v2-ws-tbl.hy-tbl tr.detail td:first-child{padding-left:34px}
.v2-pp .v2-ws-tbl.hy-tbl tr.premier td{border-top:1px solid var(--v2-trait-fort)}
.v2-pp .v2-ws-tbl.hy-tbl tr.connu td{background:var(--v2-surface-2)}
.v2-pp .hy-fl{display:inline-block;width:0;height:0;border-left:5px solid var(--muted);border-top:4px solid transparent;border-bottom:4px solid transparent;margin-right:10px;transition:transform var(--v2-t)}
.v2-pp .hy-fl.o{transform:rotate(90deg)}
.v2-pp .hy-pps{display:flex;gap:10px;flex-wrap:wrap}
.v2-pp .hy-pps>span{display:inline-flex;align-items:center;font-size:12px;font-weight:600;white-space:nowrap}
.v2-pp .hy-pps .hy-pa{width:8px;height:8px;margin-right:5px}

/* chiffres cles */
.v2-pp .hy-chs{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1px;background:var(--v2-trait);border:1px solid var(--v2-trait);border-radius:12px;overflow:hidden}
.v2-pp .hy-chs.trois{grid-template-columns:repeat(3,minmax(0,1fr))}
.v2-pp .hy-ch{padding:12px 14px;display:flex;flex-direction:column;gap:4px;min-width:0;background:var(--v2-surface)}
.v2-pp .hy-ch .k{font-size:11px;font-weight:800;color:var(--muted);letter-spacing:.05em;text-transform:uppercase}
.v2-pp .hy-ch b.n{font-size:20px;font-weight:700;font-family:var(--mono,ui-monospace,monospace);letter-spacing:-.02em}
.v2-pp .hy-ch b.n small{font-size:12px;font-family:var(--ui)}
.v2-pp .hy-ch .d{font-size:11.5px;color:var(--ink-2);font-weight:600}
.v2-pp .hy-ch.neg b.n{color:var(--crit)}

/* la comparaison de deux periodes */
.v2-pp .hy-cmp-leg{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:12px;font-weight:700;color:var(--ink-2)}
.v2-pp .hy-cmp-leg span{display:inline-flex;align-items:center;gap:6px}
.v2-pp .hy-cmp-leg i{display:inline-block;width:12px;height:12px;border-radius:3px;background:var(--ink-2)}
.v2-pp .hy-cmp-leg .a i{opacity:.35}
.v2-pp .hy-cmp-leg b{margin-left:auto;font-weight:800}
.v2-pp .hy-fig{width:100%;overflow-x:auto}
.v2-pp .hy-fig svg{display:block;width:100%;height:auto;min-width:360px}
.v2-pp .hy-cmp text{font-family:var(--ui)}
.v2-pp .hy-cmp text.v{font-size:10.5px;font-weight:700;fill:var(--ink)}
.v2-pp .hy-cmp text.n{font-size:11px;font-weight:700;fill:var(--ink-2)}
.v2-pp .hy-cmp text.dv{font-size:11px;font-weight:800}
.v2-pp .hy-cmp text.hausse{fill:var(--good)}.v2-pp .hy-cmp text.baisse{fill:var(--crit)}

/* les alertes, en bas */
.v2-pp .hy-alertes{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}
.v2-pp .hy-alerte{display:flex;flex-direction:column;gap:3px;padding:10px 12px 10px 14px;border-radius:12px;background:var(--v2-surface-2);border:1px solid var(--v2-trait);border-left:4px solid var(--warn)}
.v2-pp .hy-alerte.crit{border-left-color:var(--crit)}.v2-pp .hy-alerte.bleu{border-left-color:var(--brand)}.v2-pp .hy-alerte.ok{border-left-color:var(--good)}
.v2-pp .hy-alerte b{font-size:13px;font-weight:800;color:var(--ink);line-height:1.35}
.v2-pp .hy-alerte span{font-size:12px;color:var(--ink-2);line-height:1.45}
.v2-pp .hy-alerte.clic{cursor:pointer}
.v2-pp .hy-alerte.clic:hover{border-color:var(--v2-trait-fort)}

/* etiquettes d'etat */
.v2-pp .hy-etiq{display:inline-flex;align-items:center;gap:.35em;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap;background:var(--v2-surface-2);color:var(--ink-2);border:1px solid var(--v2-trait)}
.v2-pp .hy-etiq b{font-weight:800}
.v2-pp .hy-etiq.ok{background:var(--good-soft);color:var(--good);border-color:transparent}
.v2-pp .hy-etiq.att{background:var(--warn-soft);color:var(--warn);border-color:transparent}
.v2-pp .hy-etiq.crit{background:var(--crit-soft);color:var(--crit);border-color:transparent}
.v2-pp .hy-etiq.bleu{background:var(--brand-soft);color:var(--brand);border-color:transparent}

/* gestes, formulaires en ligne */
.v2-pp .hy-gestes{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;margin-top:10px}
.v2-pp .hy-ajout{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;border-radius:12px;background:var(--v2-surface-2);border:1px solid var(--v2-trait)}
.v2-pp .hy-ajout .k{font-size:12px;font-weight:800;color:var(--ink);margin-right:4px}
.v2-pp .hy-ajout .hy-in{flex:0 1 150px}
.v2-pp .hy-ajout input[type=text]{flex:1 1 180px}
.v2-pp .hy-politique{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:12px;font-size:12.5px;color:var(--ink-2);font-weight:600}
.v2-pp .hy-politique .k{font-weight:800;color:var(--ink)}
.v2-pp .hy-politique label{display:inline-flex;align-items:center;gap:6px}
.v2-pp .hy-politique small{color:var(--muted);font-weight:700}
.v2-pp .hy-outil{display:flex;flex-direction:column;gap:12px}
.v2-pp .hy-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.v2-pp .hy-champ{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:700;color:var(--ink-2)}

/* commandes : le parcours d'une commande */
.v2-pp .hy-etapes{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.v2-pp .hy-etapes .et{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:12px;background:var(--v2-surface-2);border:1px solid var(--v2-trait);position:relative}
.v2-pp .hy-etapes .et b{font-size:13px;font-weight:800;color:var(--ink)}
.v2-pp .hy-etapes .et span{font-size:12px;color:var(--ink-2);line-height:1.4}
.v2-pp .hy-etapes .et em{font-style:normal;font-size:11.5px;font-weight:700;color:var(--muted)}

/* navires */
.v2-pp .hy-navires{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.v2-pp .hy-navire{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:12px 14px;border-radius:12px;background:var(--v2-surface-2);border:1px solid var(--v2-trait);font:inherit;color:inherit;text-align:left;cursor:pointer}
.v2-pp .hy-navire:hover{border-color:var(--brand)}
.v2-pp .hy-navire .d{font-size:12px;font-weight:800;color:var(--muted)}
.v2-pp .hy-navire>b{font-size:14px;font-weight:800;color:var(--ink)}
.v2-pp .hy-navire .t b{font-family:var(--mono,ui-monospace,monospace);font-size:16px;font-weight:700}
.v2-pp .hy-navire .hy-src{font-size:11px}

/* la tenue des cargaisons, en courbe */
.v2-pp .hy-tenue text{font-family:var(--ui)}
.v2-pp .hy-tenue .grad{font-size:11px;fill:var(--muted)}
.v2-pp .hy-tenue .axe{stroke:var(--v2-trait-fort);stroke-width:1}
.v2-pp .hy-tenue .auj{stroke:var(--hy-orange);stroke-width:1.2;stroke-dasharray:4 3}
.v2-pp .hy-tenue text.auj{fill:var(--hy-orange);stroke:none;font-size:11px;font-weight:700}
.v2-pp .hy-tenue .et{font-size:11px;font-weight:700;fill:var(--ink-2)}
.v2-pp .hy-tenue .dent{fill:var(--brand);fill-opacity:.12}
.v2-pp .hy-tenue .dent.incertain{fill:var(--muted);fill-opacity:.08}
.v2-pp .hy-tenue .pente{fill:none;stroke:var(--brand);stroke-width:2}
.v2-pp .hy-tenue .pente.incertain{stroke:var(--muted);stroke-dasharray:5 4}
.v2-pp .hy-tenue .pt-nav{fill:var(--brand)}
.v2-pp .hy-tenue .manque{stroke:var(--crit);stroke-width:4;stroke-linecap:round}
.v2-pp .hy-tenue text.manque{fill:var(--crit);stroke:none;font-size:11px;font-weight:800}
.v2-pp .hy-tenue .cv{font-size:11px;font-weight:700;fill:var(--brand)}
.v2-pp .hy-tenue .rupture{fill:var(--crit)}
.v2-pp .hy-leg{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:12px;color:var(--ink-2);font-weight:600;margin-top:6px}
.v2-pp .hy-leg span{display:inline-flex;align-items:center;gap:7px}
.v2-pp .hy-leg i{display:inline-block;width:16px;height:10px;border-radius:3px}
.v2-pp .hy-leg .l-tonnes i{background:var(--brand);opacity:.35}
.v2-pp .hy-leg .l-manque i{height:4px;background:var(--crit)}
.v2-pp .hy-leg .l-incertain i{height:0;border-top:2px dashed var(--muted);border-radius:0}

@media (max-width:1250px){.v2-pp .hy-grille>.c8,.v2-pp .hy-grille>.c7,.v2-pp .hy-grille>.c6,.v2-pp .hy-grille>.c5,.v2-pp .hy-grille>.c4{grid-column:span 12}
  .v2-pp .hy-etapes{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:980px){.v2-pp .hy-portee,.v2-pp .hy-modules{padding-left:14px;padding-right:14px}.v2-pp .hy-hote{padding-left:14px;padding-right:14px}
  .v2-pp .hy-tuile{flex:0 0 auto}.v2-pp .hy-form{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v2-pp .hy-mois{grid-template-columns:1fr}.v2-pp .hy-chs.trois{grid-template-columns:1fr}
  .v2-pp .hy-etapes{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* le tableau de bord en lecture (30/09/2026) : la situation en tuiles, les cartes qui menent aux pages */
.v2-pp .hy-sits{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.v2-pp .hy-sit{display:flex;flex-direction:column;gap:3px;padding:12px 16px 13px;border-radius:14px;background:var(--v2-surface);border:1px solid var(--v2-trait);box-shadow:var(--v2-ombre);border-top:3px solid var(--v2-trait-fort);min-width:0}
.v2-pp .hy-sit .k{font-size:11px;font-weight:800;color:var(--muted);letter-spacing:.05em;text-transform:uppercase}
.v2-pp .hy-sit b{font-size:19px;font-weight:800;color:var(--ink);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v2-pp .hy-sit .s{font-size:12px;font-weight:600;color:var(--ink-2)}
.v2-pp .hy-sit.att{border-top-color:var(--warn)}.v2-pp .hy-sit.att b{color:var(--warn)}
.v2-pp .hy-sit.crit{border-top-color:var(--crit)}.v2-pp .hy-sit.crit b{color:var(--crit)}
.v2-pp .hy-sit.ok{border-top-color:var(--good)}
.v2-pp .clic{cursor:pointer}
.v2-pp .hy-sit.clic:hover,.v2-pp .hy-stock.clic:hover,.v2-pp .hy-ile.clic:hover{border-color:var(--brand);box-shadow:var(--v2-lueur)}
.v2-pp .hy-sit.clic:focus-visible,.v2-pp .hy-stock.clic:focus-visible,.v2-pp .hy-ile.clic:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.v2-pp .hy-stock.clic{transition:border-color var(--v2-t),box-shadow var(--v2-t)}
.v2-pp .hy-kvs1{align-self:stretch;display:flex;flex-direction:column;gap:6px;text-align:left;padding-top:8px;border-top:1px solid var(--v2-trait)}
.v2-pp .hy-kvs1 .kv{display:flex;flex-direction:column;gap:0}
.v2-pp .hy-kvs1 .kv span{font-size:11px;font-weight:700;color:var(--muted)}
.v2-pp .hy-kvs1 .kv b{font-size:13.5px;font-weight:800;color:var(--ink)}
.v2-pp .hy-kvs1 .kv b.faible{color:var(--muted);font-weight:600}
.v2-pp .hy-kvs1 .kv.second span,.v2-pp .hy-kvs1 .kv.second>span+span{color:var(--muted)}
.v2-pp .hy-kvs1 .kv.second>span:last-child{font-size:12.5px;font-weight:600}
.v2-pp .hy-kvs .kv.second b{color:var(--ink-2);font-weight:700}
.v2-pp .hy-ca .grand .n{font-size:30px;font-weight:700;letter-spacing:-.03em;font-family:var(--mono,ui-monospace,monospace);color:var(--ink)}
.v2-pp .hy-ca .grand .u{font-size:14px;font-weight:700;color:var(--ink-2)}
.v2-pp .hy-ca .hy-ligne>small{min-width:40px;text-align:right}
.v2-pp .hy-manque{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;border-radius:10px;background:var(--warn-soft);font-size:12.5px;font-weight:600;color:var(--ink-2)}
.v2-pp .hy-manque b{color:var(--warn);font-weight:800}
.v2-pp .hy-gestes.gauche{justify-content:flex-start;margin-top:0}

/* a traiter, et les suites d'une ile */
.v2-pp .hy-atraiter{display:flex;flex-direction:column;gap:8px}
.v2-pp .hy-atraiter .hy-alerte{flex-direction:row;align-items:center;gap:12px}
.v2-pp .hy-atraiter .hy-alerte .tx{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.v2-pp .hy-atraiter .hy-alerte em{font-style:normal;font-size:12px;font-weight:800;color:var(--brand);white-space:nowrap}
.v2-pp .hy-suites{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 4px}
.v2-pp .hy-suite{border:1px solid var(--v2-trait);border-left:4px solid var(--warn);background:var(--v2-surface-2);border-radius:10px;padding:6px 12px;font:inherit;font-size:12.5px;font-weight:700;color:var(--ink);cursor:pointer}
.v2-pp .hy-suite.crit{border-left-color:var(--crit)}.v2-pp .hy-suite.bleu{border-left-color:var(--brand)}
.v2-pp .hy-suite:hover{border-color:var(--brand)}
.v2-pp .hy-tbl td small.faible{font-size:11px}

/* la comparaison : la question, la phrase, le graphique sobre, le detail */
.v2-pp .hy-cmp2{display:flex;flex-direction:column;gap:14px}
.v2-pp .hy-cmp-tete{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.v2-pp .hy-cmp-tete label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:800;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}
.v2-pp .hy-cmp-tete .hy-select{text-transform:none;letter-spacing:0;font-weight:600;min-width:150px}
.v2-pp .hy-phrase{margin:0;font-size:14px;line-height:1.55;color:var(--ink);font-weight:600;padding:10px 14px;border-radius:12px;background:var(--brand-soft)}
.v2-pp .hy-cmp-corps{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:20px;align-items:start}
.v2-pp .hy-duo-leg{display:flex;align-items:center;gap:14px;font-size:12px;font-weight:700;color:var(--ink-2);margin-bottom:8px}
.v2-pp .hy-duo-leg span{display:inline-flex;align-items:center;gap:6px}
.v2-pp .hy-duo-leg i{display:inline-block;width:14px;height:8px;border-radius:3px;background:var(--ink-2)}
.v2-pp .hy-duo-leg .a i{opacity:.3}
.v2-pp .hy-duo-leg small{margin-left:auto;color:var(--muted)}
.v2-pp .hy-duo{display:flex;flex-direction:column;gap:10px}
.v2-pp .hy-duo .r{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;align-items:center}
.v2-pp .hy-duo .n{display:flex;align-items:center;font-size:12.5px;font-weight:700;color:var(--ink);min-width:0}
.v2-pp .hy-duo .n span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v2-pp .hy-duo .t{display:flex;flex-direction:column;gap:3px}
.v2-pp .hy-duo .t>div{display:flex;align-items:center;gap:8px}
.v2-pp .hy-duo .t i{display:block;height:9px;border-radius:5px;min-width:2px}
.v2-pp .hy-duo .t .a i{opacity:.3}
.v2-pp .hy-duo .t em{font-style:normal;font-size:11.5px;font-weight:700;color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap}
.v2-pp .hy-duo .t .b em{color:var(--ink)}
@media (max-width:1250px){.v2-pp .hy-sits{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:1100px){.v2-pp .hy-cmp-corps{grid-template-columns:1fr}}
@media (max-width:760px){.v2-pp .hy-sits{grid-template-columns:repeat(2,minmax(0,1fr))}.v2-pp .hy-duo .r{grid-template-columns:110px minmax(0,1fr)}}

/* =====================================================================
   TOUJOURS UN CHIFFRE (29/09/2026) : l'archipel comme perimetre, la ligne
   d'etat, la marque « estime », les jauges, les courbes des Tendances.
   ===================================================================== */
/* le perimetre, sur la carte de l'archipel */
.v2-pp .hy-archipel{display:flex;align-items:stretch;gap:14px;padding:8px 26px 0;flex-wrap:wrap}
.v2-pp .hy-pays{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;min-width:200px;padding:12px 16px;border:1px solid var(--v2-trait);border-radius:14px;background:var(--v2-surface);cursor:pointer;font:inherit;color:var(--ink-2);text-align:left;transition:border-color var(--v2-t),background var(--v2-t)}
.v2-pp .hy-pays .k{font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.v2-pp .hy-pays b{font-size:17px;font-weight:800;color:var(--ink);letter-spacing:-.01em}
.v2-pp .hy-pays .s{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--ink-2);white-space:nowrap}
.v2-pp .hy-pays .hy-jauge{width:150px}
.v2-pp .hy-pays:hover{border-color:var(--v2-trait-fort)}
.v2-pp .hy-pays.on{border-color:var(--brand);background:var(--brand-soft)}
.v2-pp .hy-pays.on b{color:var(--brand)}
.v2-pp .hy-iles-texte{display:flex;gap:10px;flex-wrap:wrap}
.v2-pp .hy-carte-hote{flex:0 1 430px;min-width:0;border:1px solid var(--v2-trait);border-radius:14px;background:var(--v2-surface);padding:4px 8px}
.v2-pp .hy-carte{display:block;width:100%;height:auto;max-height:200px}
.v2-pp .hy-carte .ile{cursor:pointer;outline:none}
.v2-pp .hy-carte .ile .terre{fill:var(--v2-surface-2);stroke:var(--v2-trait-fort);stroke-width:1.2;transition:fill var(--v2-t),stroke var(--v2-t)}
.v2-pp .hy-carte .ile:hover .terre,.v2-pp .hy-carte .ile:focus-visible .terre{stroke:var(--brand);fill:var(--brand-soft)}
.v2-pp .hy-carte .ile.on .terre{fill:var(--brand);fill-opacity:.22;stroke:var(--brand);stroke-width:1.8}
.v2-pp .hy-carte .eti text{font-family:var(--ui)}
.v2-pp .hy-carte .eti .nom{font-size:12.5px;font-weight:800;fill:var(--ink)}
.v2-pp .hy-carte .ile.on .eti .nom{fill:var(--brand)}
.v2-pp .hy-carte .eti .val{font-size:10.5px;font-weight:600;fill:var(--ink-2)}
.v2-pp .hy-carte .eti .piste{fill:var(--v2-trait)}
.v2-pp .hy-carte .eti .plein{fill:var(--brand)}

/* une jauge : le stock contre la capacite */
.v2-pp .hy-jauge{display:block;width:100%;min-width:48px;height:6px;border-radius:3px;background:var(--v2-trait);overflow:hidden}
.v2-pp .hy-jauge i{display:block;height:100%;border-radius:3px;background:var(--brand)}
.v2-pp .hy-jauge.crit i{background:var(--crit)}

/* la ligne d'etat : du texte, pas des tuiles */
.v2-pp .hy-etat{display:flex;flex-wrap:wrap;align-items:center;gap:4px 22px;padding:2px 2px 0}
.v2-pp .hy-etat-i{display:inline-flex;align-items:baseline;gap:7px;border:0;background:none;padding:4px 0;font:inherit;font-size:13px;color:var(--ink-2);cursor:pointer}
.v2-pp .hy-etat-i i{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--muted);align-self:center}
.v2-pp .hy-etat-i b{font-weight:800;color:var(--ink)}
.v2-pp .hy-etat-i.att i{background:var(--warn)}.v2-pp .hy-etat-i.crit i{background:var(--crit)}.v2-pp .hy-etat-i.ok i{background:var(--good)}.v2-pp .hy-etat-i.bleu i{background:var(--brand)}
.v2-pp .hy-etat-i.crit b{color:var(--crit)}
.v2-pp .hy-etat-i:hover span{text-decoration:underline}

/* un chiffre calcule par Touma se lit comme les autres (29/09/2026, Bayss) :
   ni marque « estime », ni gris, ni pointilles ; sa methode reste au clic */
.v2-pp .hy-estime{display:inline-flex;align-items:center;gap:6px}
.v2-pp.hy b.n.e-der{border-bottom-color:transparent}
.v2-pp .hy-vst{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px}
.v2-pp .hy-vst.hy-col{flex-direction:column;align-items:flex-start;gap:4px}
.v2-pp .hy-vst.hy-col .hy-jauge{width:120px}
.v2-pp .hy-vst.fin{justify-content:flex-end;align-items:center}
.v2-pp .hy-vst.fin .hy-jauge{width:56px}
.v2-pp .hy-vst .pct{font-size:12px;font-weight:800;color:var(--ink-2)}
.v2-pp .hy-vst small{font-size:11.5px;font-weight:600;color:var(--muted)}
.v2-pp .hy-vst.vide small{color:var(--crit);font-weight:700}
.v2-pp .hy-kvs1 .kv .hy-vst b.n{font-size:17px}
.v2-pp .hy-kvs1 .kv .hy-vst b.n small{font-size:13px}
.v2-pp .hy-ca .grand .grand-n{font-size:30px;font-weight:700;letter-spacing:-.03em;font-family:var(--mono,ui-monospace,monospace);color:var(--ink)}
.v2-pp .hy-ca .grand .grand-n small{font-size:14px;font-family:var(--ui);font-weight:700;color:var(--ink-2);margin-left:.3em}

/* le navire propose, face au port en lourd */
.v2-pp .hy-cmp-navire{display:flex;flex-direction:column;gap:6px;margin-top:12px;padding:10px 14px;border-radius:12px;background:var(--v2-surface-2);border:1px solid var(--v2-trait)}
.v2-pp .hy-cmp-navire .l{display:flex;justify-content:space-between;gap:12px;font-size:13px;font-weight:700;color:var(--ink-2)}
.v2-pp .hy-cmp-navire .l b{font-size:15px;color:var(--ink)}
.v2-pp .hy-cmp-navire small{font-size:12px;color:var(--muted);font-weight:600}
.v2-pp .hy-cmp-navire .hy-jauge{height:8px}
.v2-pp .hy-cargo{display:flex;flex-direction:column;gap:2px;align-self:stretch}
.v2-pp .hy-cargo .r{display:flex;align-items:center;font-size:12px;font-weight:600;color:var(--ink-2)}
.v2-pp .hy-cargo .r .n{flex:1}
.v2-pp .hy-cargo .r b{font-variant-numeric:tabular-nums;color:var(--ink)}
.v2-pp .hy-cargo .hy-pa{width:8px;height:8px;margin-right:6px}
.v2-pp .hy-cargo small{font-size:11px;color:var(--muted);font-style:italic}

/* les courbes : filets de grille, traits de 2 px, lavis a 10 % */
.v2-pp .hy-multiples{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:14px}
.v2-pp .hy-mult{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px solid var(--v2-trait);border-radius:12px;background:var(--v2-surface-2);min-width:0}
.v2-pp .hy-mult-t{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12.5px;font-weight:600;color:var(--ink-2)}
.v2-pp .hy-mult-t b{font-size:14px;font-weight:800;color:var(--ink)}
.v2-pp .hy-survol{position:relative}
.v2-pp .hy-ch2{display:block;width:100%;height:auto;min-width:320px;overflow:visible}
.v2-pp .hy-ch2 text{font-family:var(--ui)}
.v2-pp .hy-ch2 .grad{font-size:11px;fill:var(--muted);font-variant-numeric:tabular-nums}
.v2-pp .hy-ch2 .grad.est{font-weight:800;fill:var(--ink-2)}
.v2-pp .hy-ch2 .grille{stroke:var(--v2-trait);stroke-width:1}
.v2-pp .hy-ch2 .axe{stroke:var(--v2-trait-fort);stroke-width:1}
.v2-pp .hy-ch2 .ligne{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.v2-pp .hy-ch2 .ligne.tirets{stroke-dasharray:6 5;stroke-opacity:.8}
.v2-pp .hy-ch2 .aire{fill-opacity:.1;stroke:none}
.v2-pp .hy-ch2 .pt{stroke:var(--v2-surface);stroke-width:2}
.v2-pp .hy-ch2 .fin-t,.v2-pp .hy-ch2 .cap-t{font-size:11.5px;font-weight:700;fill:var(--ink)}
.v2-pp .hy-ch2 .seuil{stroke:var(--ink-2);stroke-width:1;stroke-opacity:.45;stroke-dasharray:2 3}
.v2-pp .hy-ch2 .seuil.cap{stroke:var(--ink);stroke-opacity:.55;stroke-dasharray:none}
.v2-pp .hy-ch2 .seuil.crit{stroke:var(--crit);stroke-opacity:.7}
.v2-pp .hy-ch2 .seuil-t{font-size:10.5px;font-weight:700;fill:var(--ink-2)}
.v2-pp .hy-ch2 .marque{stroke:var(--ink-2);stroke-width:1;stroke-opacity:.35}
.v2-pp .hy-ch2 .marque.probable{stroke-dasharray:3 3}
.v2-pp .hy-ch2 .marque-t{font-size:10px;font-weight:700;fill:var(--muted)}
.v2-pp .hy-ch2 .auj{stroke:var(--hy-orange);stroke-width:1.2;stroke-dasharray:4 3}
.v2-pp .hy-ch2 text.auj{fill:var(--hy-orange);stroke:none;font-size:10.5px;font-weight:700}
.v2-pp .hy-ch2 .curseur{stroke:var(--ink-2);stroke-width:1;stroke-opacity:.6}
.v2-pp .hy-ch2 .capte{fill:transparent;cursor:crosshair;outline:none}
.v2-pp .hy-ch2 .hy-colonne .capte{cursor:default}
.v2-pp .hy-ch2 .hy-colonne:hover .seg,.v2-pp .hy-ch2 .hy-colonne:focus-visible .seg{filter:brightness(1.08)}
.v2-pp .hy-ch2 .hy-colonne{outline:none}
.v2-pp .hy-bulle{position:absolute;top:8px;left:0;min-width:150px;max-width:230px;padding:8px 10px;border-radius:10px;background:var(--v2-surface);border:1px solid var(--v2-trait-fort);box-shadow:var(--v2-ombre);font-size:12px;pointer-events:none;opacity:0;transition:opacity .12s;z-index:3}
.v2-pp .hy-bulle.on{opacity:1}
.v2-pp .hy-bulle .d{font-size:11px;font-weight:800;color:var(--muted);margin-bottom:4px}
.v2-pp .hy-bulle .r{display:flex;align-items:center;gap:7px;padding:1px 0}
.v2-pp .hy-bulle .r i{display:inline-block;width:12px;height:2px;border-radius:1px}
.v2-pp .hy-bulle .r b{font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.v2-pp .hy-bulle .r span{color:var(--ink-2)}
.v2-pp .hy-bulle .r.tot{border-top:1px solid var(--v2-trait);margin-top:3px;padding-top:4px}
.v2-pp .hy-leg .l-serie i{height:3px;border-radius:2px}
.v2-pp .hy-leg .l-stock i{height:3px;background:var(--ink-2)}
.v2-pp .hy-leg .l-proj i{height:0;border-top:2px dashed var(--ink-2);border-radius:0}
.v2-pp .hy-leg .l-navire i{width:1px;height:12px;background:var(--ink-2);opacity:.5;border-radius:0}
.v2-pp .hy-leg .l-probable i{width:0;height:12px;border-left:1px dashed var(--ink-2);border-radius:0}
.v2-pp .hy-leg .l-seuil i{height:0;border-top:1px dashed var(--crit);border-radius:0}
@media (max-width:980px){.v2-pp .hy-archipel{padding-left:14px;padding-right:14px}.v2-pp .hy-pays{flex:1 1 100%}}
@media (forced-colors:active){.v2-pp .hy-ch2 .ligne{stroke:CanvasText}.v2-pp .hy-jauge i{background:Highlight}}
.v2-pp .hy-ajout.pre{border-color:var(--brand);background:var(--brand-soft)}
/* la flotte : codes, identifiants, gestes de ligne, vehicules retires */
.v2-pp .hy-gestes-l{display:inline-flex;gap:12px;white-space:nowrap}
.v2-pp .hy-lien.rouge{color:var(--crit)}
/* (170) une mission : son statut, son geste suivant, sa comptabilisation, une information par ligne */
.v2-pp .hy-mis-statut{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.v2-pp .hy-mis-statut .hy-sous{margin-top:0}
.v2-pp .hy-mis-statut .hy-sous.rouge,.v2-pp .hy-mis-q .hy-sous.rouge{color:var(--crit)}
.v2-pp .hy-mis-q{display:flex;flex-direction:column;align-items:flex-end;gap:2px;white-space:nowrap}
.v2-pp .hy-mis-q .hy-sous{margin-top:0}
.v2-pp .hy-mis-geste{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px}
.v2-pp .hy-mis-geste .hy-in{flex:0 1 130px}
.v2-pp .hy-mis-report{display:flex;flex-direction:column;align-items:flex-end;gap:2px;margin-top:4px}
.v2-pp .hy-lien.arme{background:var(--crit-soft);border-radius:6px;padding:2px 8px}
.v2-pp .hy-idt{font-family:var(--mono,ui-monospace,monospace);font-size:12px;color:var(--ink)}
.v2-pp .hy-estime.fin{justify-content:flex-end}
.v2-pp .hy-retires{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:10px;font-size:12.5px;font-weight:600;color:var(--ink-2)}
.v2-pp .hy-ajout-veh .hy-in.cap{flex:0 1 110px}
.v2-pp .hy-tbl-flotte td{white-space:nowrap}
/* la ligne de stock et la ligne de jours d'une carte : une seule taille, un seul gras */
.v2-pp .hy-kvs1 .kv .hy-lst,.v2-pp .hy-kvs1 .kv .hy-lj{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;min-width:0}
/* la meme taille et le meme gras que la capacite (13,5 px, 800), pas plus (29/09/2026, Bayss) */
.v2-pp .hy-kvs1 .kv .hy-lst b.n,.v2-pp .hy-kvs1 .kv .hy-lj b.n{font-size:13.5px;font-weight:800;color:var(--ink);letter-spacing:0;white-space:nowrap}
.v2-pp .hy-kvs1 .kv .hy-lj b.n.rouge{color:var(--crit)}
.v2-pp .hy-kvs1 .kv .hy-lj .ph{margin-left:auto;text-align:right;font-size:12px;font-weight:700;color:var(--ink-2)}
.v2-pp .hy-kvs1 .kv .hy-lj.vide .ph{color:var(--crit)}

/* LA CHAINE EN UNE BANDE (29/09/2026) : cinq chiffres de l'annee en cours,
   relies par ce qui passe de l'un a l'autre ; et, comme sur le poste
   petrolier, un chiffre calcule se lit comme un chiffre (ni souligne
   d'etat, ni legende) */
.v2-chn .chn-ligne{padding:12px 16px 14px;border:1px solid var(--c-line);border-radius:12px;background:var(--surface)}
.v2-chn .chn-etapes{display:flex;align-items:stretch;flex-wrap:wrap;row-gap:10px}
.v2-chn .chn-etapes .et{flex:1 1 140px;display:flex;flex-direction:column;justify-content:center;gap:5px;padding:10px 14px;border-radius:10px;background:var(--surface-3);min-width:0}
.v2-chn .chn-etapes .et .k{font-size:11.5px;font-weight:700;color:var(--muted);line-height:1.3}
.v2-chn .chn-etapes .et b.n{font-size:18px;font-weight:800;color:var(--ink);white-space:nowrap}
.v2-chn .chn-etapes .lien{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:0 8px;min-width:78px;font-size:11.5px;font-weight:700;color:var(--ink-2);text-align:center;white-space:nowrap}
.v2-chn .chn-etapes .lien i{display:block;width:100%;min-width:40px;height:2px;background:var(--c-line2);position:relative}
.v2-chn .chn-etapes .lien i::after{content:"";position:absolute;right:-2px;top:-4px;border-left:7px solid var(--c-line2);border-top:5px solid transparent;border-bottom:5px solid transparent}
.v2-chn b.n.e-der,.v2-chn b.n.e-ref,.v2-chn b.n.e-decl,.v2-chn b.n.e-rep{border-bottom-color:transparent}

/* =====================================================================
   LE VOYAGE DE L'ELECTRICITE (v2/systeme.js, 29/09/2026, soir). Cinq
   chiffres qui se lisent comme une phrase, le paysage qui les porte, un
   bouton Energie / Argent. Le paysage est peint a la lumiere du jour,
   venue de la gauche ; en sombre, la meme scene de nuit, fenetres et
   hublots allumes. Le gasoil en bleu (celui du poste petrolier), le
   courant en or, les pertes en rouge, l'argent en vert.
   ===================================================================== */
.v2-chn{
  --chn-ciel-1:#5F9BD3;--chn-ciel-2:#A9CDEB;--chn-ciel-3:#E6EFF5;--chn-astre:#FFF1BF;--chn-astre-c:#FFF8E3;--chn-nuages:.9;--chn-etoiles:0;
  --chn-crete:#AFC3D2;--chn-volcan-1:#76706B;--chn-volcan-2:#71835C;--chn-volcan-3:#5F7F4B;--chn-cratere:#4E4A48;--chn-nuee:.8;--chn-riviere:#8EC1E8;
  --chn-mer-1:#93C0E2;--chn-mer-2:#468BC3;--chn-mer-3:#2A6AA0;--chn-vagues:.38;--chn-scintille:#FFF6D8;
  --chn-coque-1:#3B434F;--chn-coque-2:#1E232A;--chn-coque-rouge:#9E322A;--chn-sup:#F4F6F8;--chn-sup-ombre:#C9D1DA;--chn-sup-dessus:#FFFFFF;--chn-hublot:#3C4A5E;
  --chn-vitre-1:#A9CBEA;--chn-vitre-2:#35557A;--chn-feu:0;
  --chn-sol-1:#A9B78E;--chn-sol-2:#8CA262;--chn-sol-3:#6C8748;--chn-plage:#EADFC2;--chn-route:#7E8085;--chn-route-ligne:#F1F1EA;
  --chn-quai:#CAC7BF;--chn-quai-face:#9D9A93;--chn-dalle:#C3C0B8;--chn-merlon:#D6D3CB;--chn-merlon-d:#E8E5DE;
  --chn-acier-1:#FFFFFF;--chn-acier-2:#E2E7ED;--chn-acier-3:#A9B3C0;--chn-trait:#8C97A5;--chn-ombre:rgba(24,34,22,.3);
  --chn-tole-1:#DADFE4;--chn-tole-2:#C2C9D1;--chn-tole-ombre:#A7B0BB;--chn-toit:#EAEDF0;--chn-fumee:#A3ABB6;
  --chn-radiateur:#6D7784;--chn-radiateur-o:#56606C;--chn-radiateur-d:#8B95A1;--chn-gravier:#CAC5B6;
  --chn-pv-1:#B4D1EF;--chn-pv-2:#315F9F;--chn-pv-3:#16305C;--chn-pyl:#798494;--chn-fil:#56606B;
  --chn-mur-1:#FBF7EF;--chn-mur-2:#E9E1D2;--chn-mur-3:#CDC4B2;--chn-mur-ombre:#D2C8B5;--chn-toit-d:#EFE9DE;--chn-loin:#DDD6C8;--chn-loin-o:#C4BBAB;
  --chn-rouille:#A95C3A;--chn-bois:#7A5A3E;--chn-fen:#9DB1C6;--chn-lumiere:#FFD66B;
  --chn-palme-1:#56A057;--chn-palme-2:#2F6B36;--chn-stipe:#8B6F4E;--chn-buisson:#3F6E3A;--chn-buisson-c:#5E8F4F;
  --chn-gasoil:#2A63C8;--chn-elec:#F2A900;--chn-perte:#D9534F;--chn-argent:#1F8A5B;--chn-piece:#2FA56B}
html[data-theme="dark"] .v2-chn{
  --chn-ciel-1:#040914;--chn-ciel-2:#0C1930;--chn-ciel-3:#1A2B46;--chn-astre:#D9E3F4;--chn-astre-c:#EEF2F9;--chn-nuages:.1;--chn-etoiles:.85;
  --chn-crete:#14213A;--chn-volcan-1:#1D232E;--chn-volcan-2:#1B2729;--chn-volcan-3:#16241E;--chn-cratere:#0F1318;--chn-nuee:.12;--chn-riviere:#35557A;
  --chn-mer-1:#1C3557;--chn-mer-2:#102545;--chn-mer-3:#091831;--chn-vagues:.12;--chn-scintille:#DCE5F4;
  --chn-coque-1:#2A313C;--chn-coque-2:#141920;--chn-coque-rouge:#6E2621;--chn-sup:#B8C1CD;--chn-sup-ombre:#8C97A5;--chn-sup-dessus:#C9D1DC;--chn-hublot:#FFD66B;
  --chn-vitre-1:#FFE39A;--chn-vitre-2:#E0A93A;--chn-feu:1;
  --chn-sol-1:#1C2822;--chn-sol-2:#16221A;--chn-sol-3:#101A13;--chn-plage:#3A3A34;--chn-route:#272B32;--chn-route-ligne:#646A75;
  --chn-quai:#474A52;--chn-quai-face:#31343A;--chn-dalle:#383B42;--chn-merlon:#474A52;--chn-merlon-d:#555861;
  --chn-acier-1:#C9D1DC;--chn-acier-2:#9CA7B6;--chn-acier-3:#6B7788;--chn-trait:#7D899B;--chn-ombre:rgba(0,0,0,.45);
  --chn-tole-1:#7A838F;--chn-tole-2:#69727E;--chn-tole-ombre:#4D5561;--chn-toit:#89919C;--chn-fumee:#465061;
  --chn-radiateur:#454D58;--chn-radiateur-o:#353C45;--chn-radiateur-d:#58606B;--chn-gravier:#34363A;
  --chn-pv-1:#3E5578;--chn-pv-2:#1B3052;--chn-pv-3:#0D1B33;--chn-pyl:#8391A6;--chn-fil:#98A4B6;
  --chn-mur-1:#C7C0B2;--chn-mur-2:#A69E90;--chn-mur-3:#8C8474;--chn-mur-ombre:#7E7768;--chn-toit-d:#B2AB9D;--chn-loin:#5F5A53;--chn-loin-o:#4A4640;
  --chn-rouille:#7C4630;--chn-bois:#5E4632;--chn-fen:#262F3F;--chn-lumiere:#FFD26A;
  --chn-palme-1:#2E5C35;--chn-palme-2:#1C3E23;--chn-stipe:#5E4B37;--chn-buisson:#1D3321;--chn-buisson-c:#27432B;
  --chn-gasoil:#5B8CF0;--chn-elec:#FFC23A;--chn-perte:#F27C72;--chn-argent:#4CC98C;--chn-piece:#5BD99A}

.v2-chn .chn-voy{border:1px solid var(--c-line);border-radius:14px;background:var(--surface);overflow:hidden;min-width:0;flex:0 0 auto}
.v2-chn .chn-voy>.tete{display:flex;justify-content:space-between;align-items:flex-end;gap:12px 24px;flex-wrap:wrap;padding:18px 22px 6px}
.v2-chn .chn-voy>.tete h2{margin:0;font-size:19px;font-weight:800;letter-spacing:-.01em;color:var(--ink)}
.v2-chn .chn-voy>.tete p{margin:4px 0 0;font-size:13px;color:var(--muted);max-width:680px}
.v2-chn .chn-voy>.tete .choix{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.v2-chn .chn-voy .v2-seg button{padding:6px 13px;font-size:12.5px}
.v2-chn .chn-mode button[aria-pressed="true"]{background:var(--ink);color:var(--surface)}
.v2-chn .chn-voy>.cadre{overflow-x:auto}
.v2-chn .chn-voy .corps{min-width:980px}

/* les cinq etapes */
.v2-chn .etapes{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:14px 22px 0;gap:0}
.v2-chn .etapes .et{padding:4px 16px 10px 0;min-width:0;position:relative}
.v2-chn .etapes .et+.et{padding-left:18px;border-left:1px solid var(--c-line)}
.v2-chn .etapes .kk{display:flex;align-items:center;gap:7px;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:800;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v2-chn .etapes .kk i{--c:var(--chn-elec);display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;flex:0 0 18px;border-radius:50%;
  border:1.5px solid var(--c);color:var(--c);background:var(--surface);font-style:normal;font-size:10.5px;letter-spacing:0;font-weight:800}
.v2-chn .etapes .e1 .kk i{--c:var(--chn-gasoil)}
.v2-chn .etapes .e4 .kk i{--c:var(--chn-perte)}
.v2-chn .etapes .e5 .kk i{--c:var(--chn-argent)}
.v2-chn .etapes.economie .kk i{--c:var(--chn-argent)}
.v2-chn .etapes.economie .e4 .kk i{--c:var(--chn-perte)}
.v2-chn .etapes .total{display:inline-flex;flex-direction:column;gap:1px;margin-top:8px;padding:7px 12px 8px;border-radius:10px;
  border:1px solid color-mix(in srgb, var(--chn-elec) 45%, transparent);background:color-mix(in srgb, var(--chn-elec) 10%, var(--surface))}
.v2-chn .etapes .total .tl{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:800;color:var(--muted)}
.v2-chn .etapes .total .tv{font-size:13px;font-weight:700;color:var(--ink-2)}
.v2-chn .etapes .total .tv b.n{font-size:21px;font-weight:800;letter-spacing:-.01em;color:var(--ink);border-bottom-color:transparent}
.v2-chn .etapes .total .tv b.n small{font-size:12px;font-weight:700;margin-left:4px;color:var(--muted)}
.v2-chn .etapes .ph{margin-top:6px;font-size:13px;color:var(--ink-2);line-height:1.35;min-height:35px}
.v2-chn .etapes .nb{margin:2px 0 6px}
.v2-chn .etapes .nb b.n{font-size:30px;font-weight:800;letter-spacing:-.02em;line-height:1.1;color:var(--ink);border-bottom-color:transparent}
.v2-chn .etapes .nb b.n small{font-size:14px;font-weight:700;letter-spacing:0;margin-left:5px;color:var(--muted)}
.v2-chn .etapes .nb b.n.rouge{color:var(--chn-perte)}
.v2-chn .etapes .ss{font-size:12px;color:var(--muted);line-height:1.45;margin-top:2px}
.v2-chn .etapes .ss b.n{font-size:12px;font-weight:800;color:var(--ink-2);border-bottom-color:transparent}
.v2-chn .etapes .ss b.n small{font-size:1em;font-weight:700;margin-left:3px}
.v2-chn .etapes .ss b.n.rouge,.v2-chn .etapes .ss.rougeT{color:var(--chn-perte)}
.v2-chn .etapes .ss.alerte{color:var(--chn-perte);font-weight:700}
.v2-chn .etapes .ss.tendu{color:var(--chn-perte)}
.v2-chn .etapes .ss.faible{font-style:italic}
.v2-chn .etapes .ss .part{display:inline-block;vertical-align:middle;width:46px;height:6px;border-radius:3px;background:var(--c-line2);margin-right:7px;overflow:hidden}
.v2-chn .etapes .ss .part i{display:block;height:100%;background:var(--chn-gasoil)}
.v2-chn .etapes .tag{display:flex;align-items:flex-start;gap:8px;margin-top:8px;padding:7px 10px;border:1px solid color-mix(in srgb, var(--brand) 30%, transparent);
  border-radius:9px;background:color-mix(in srgb, var(--brand) 7%, transparent);font:inherit;font-size:12px;line-height:1.4;color:var(--ink-2);text-align:left;cursor:pointer}
.v2-chn .etapes .tag>span>*{display:block}
.v2-chn .etapes .tag>span>b{font-weight:700;color:var(--ink)}
.v2-chn .etapes .tag:hover{background:color-mix(in srgb, var(--brand) 13%, transparent)}
.v2-chn .etapes .tag i{flex:0 0 10px;width:10px;height:10px;margin-top:3px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 2px color-mix(in srgb, var(--brand) 25%, transparent)}
.v2-chn .etapes b.n.e-der,.v2-chn .etapes b.n.e-ref,.v2-chn .etapes b.n.e-decl,.v2-chn .etapes b.n.e-rep{border-bottom-color:transparent}

/* le paysage (29/09/2026, soir) : une image peinte, de jour en clair, de nuit en sombre ; un calque qui s'anime et se clique */
.v2-chn .chn-voy .scene{margin-top:6px;line-height:0;position:relative}
.v2-chn .scene-peinte{position:relative;line-height:0;aspect-ratio:2000/607;background:#8DB8D8;overflow:hidden}
html[data-theme="dark"] .v2-chn .scene-peinte{background:#0A1631}
.v2-chn .scene-peinte img.peinte{display:block;width:100%;height:100%;object-fit:cover;user-select:none;-webkit-user-drag:none}
.v2-chn .scene-peinte img.nuit{display:none}
html[data-theme="dark"] .v2-chn .scene-peinte img.jour{display:none}
html[data-theme="dark"] .v2-chn .scene-peinte img.nuit{display:block}
.v2-chn .scene-peinte svg.dessus{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none}
.v2-chn .scene-peinte .zone{fill:transparent;pointer-events:all;transition:fill .15s}
.v2-chn .scene-peinte .zone.clic{cursor:pointer}
.v2-chn .scene-peinte .zone.clic:hover{fill:rgba(255,255,255,.09)}
.v2-chn .scene-peinte .repere .anneau{fill:transparent;stroke:#fff;stroke-width:0;pointer-events:all;transition:stroke-width .15s}
.v2-chn .scene-peinte .repere.clic{cursor:pointer}
.v2-chn .scene-peinte .repere.clic:hover .anneau{stroke-width:4;filter:drop-shadow(0 0 5px rgba(255,255,255,.9))}
.v2-chn .scene-peinte .trait line{stroke-linecap:round}
.v2-chn .scene-peinte .trait .halo-t{stroke-width:7;opacity:.75}
.v2-chn .scene-peinte .trait .coeur-t{stroke-width:3}
.v2-chn .scene-peinte .trait.gasoil .halo-t{stroke:#4F8DF5}.v2-chn .scene-peinte .trait.gasoil .coeur-t{stroke:#EAF2FF}
.v2-chn .scene-peinte .trait.or .halo-t{stroke:#FFB81F}.v2-chn .scene-peinte .trait.or .coeur-t{stroke:#FFF9E3}
.v2-chn .scene-peinte .trait.perte .halo-t{stroke:#FF4A3A}.v2-chn .scene-peinte .trait.perte .coeur-t{stroke:#FFE6E0}
.v2-chn .scene-peinte .trait.vert .halo-t,.v2-chn .scene-peinte .trait.argent .halo-t{stroke:#2FCB82}
.v2-chn .scene-peinte .trait.vert .coeur-t,.v2-chn .scene-peinte .trait.argent .coeur-t{stroke:#E6FFF2}
/* le courant en eclairs : un halo, un corps, un coeur presque blanc, de petites ramifications, un eclat ; la couleur est celle du cable */
.v2-chn .scene-peinte .arc path{fill:none;stroke-linecap:round;stroke-linejoin:round}
.v2-chn .scene-peinte .arc .arc-halo{stroke-width:6;opacity:.65}
.v2-chn .scene-peinte .arc .arc-mi{stroke-width:2;opacity:.95}
.v2-chn .scene-peinte .arc .arc-coeur{stroke-width:.9}
.v2-chn .scene-peinte .arc .ram-halo{stroke-width:3;opacity:.55}
.v2-chn .scene-peinte .arc .ram-coeur{stroke-width:.7;opacity:.95}
.v2-chn .scene-peinte .arc .eclat{opacity:.7}
.v2-chn .scene-peinte .arc .eclat-c{fill:#FFFFFF}
/* la couleur du cable traverse */
.v2-chn .scene-peinte .arc.or .arc-halo,.v2-chn .scene-peinte .arc.or .ram-halo{stroke:#FFB81F}
.v2-chn .scene-peinte .arc.or .arc-mi{stroke:#FFD86B}.v2-chn .scene-peinte .arc.or .arc-coeur,.v2-chn .scene-peinte .arc.or .ram-coeur{stroke:#FFF8DE}
.v2-chn .scene-peinte .arc.or .eclat{fill:#FFD86B}
.v2-chn .scene-peinte .arc.perte .arc-halo,.v2-chn .scene-peinte .arc.perte .ram-halo{stroke:#FF4A3A}
.v2-chn .scene-peinte .arc.perte .arc-mi{stroke:#FF8C7C}.v2-chn .scene-peinte .arc.perte .arc-coeur,.v2-chn .scene-peinte .arc.perte .ram-coeur{stroke:#FFEAE5}
.v2-chn .scene-peinte .arc.perte .eclat{fill:#FF8C7C}
.v2-chn .scene-peinte .arc.vert .arc-halo,.v2-chn .scene-peinte .arc.vert .ram-halo{stroke:#2FCB82}
.v2-chn .scene-peinte .arc.vert .arc-mi{stroke:#86EDB9}.v2-chn .scene-peinte .arc.vert .arc-coeur,.v2-chn .scene-peinte .arc.vert .ram-coeur{stroke:#EAFFF3}
.v2-chn .scene-peinte .arc.vert .eclat{fill:#86EDB9}
.v2-chn .scene-peinte .etincelle{fill:#FF6A3D;opacity:0;transform-box:fill-box;transform-origin:center;animation:chn-chute 2.6s ease-in infinite}
.v2-chn .scene-peinte .flux.economie{display:none}
.v2-chn .scene.economie .scene-peinte .flux.economie{display:inline}
.v2-chn .scene.economie .scene-peinte .flux.energie{display:none}
@keyframes chn-chute{0%{opacity:0;transform:translate(0,-6px)}15%{opacity:.95}100%{opacity:0;transform:translate(0,46px)}}
@media (prefers-reduced-motion: reduce){.v2-chn .scene-peinte *{animation:none!important}}

/* sous le paysage, une phrase par lecture ; les huit etats empiles dans la meme case */
.v2-chn .pile{display:grid}
.v2-chn .pile>*{grid-area:1/1;min-width:0}
.v2-chn .pile>.cache{visibility:hidden;pointer-events:none}
.v2-chn .chn-voy .bande-bas{display:flex;flex-wrap:wrap;align-content:center;gap:6px 28px;padding:12px 22px 14px;border-top:1px solid var(--c-line);
  background:color-mix(in srgb, var(--chn-elec) 5%, var(--surface));font-size:13px;line-height:1.5;color:var(--ink-2)}
.v2-chn .chn-voy .bande-bas.economie{background:color-mix(in srgb, var(--chn-argent) 5%, var(--surface))}
.v2-chn .chn-voy .bande-bas b{color:var(--ink)}
.v2-chn .chn-voy .bande-bas .tendu{color:var(--chn-perte)}
.v2-chn .chn-voy .bande-bas .grp{display:flex;flex-wrap:wrap;align-items:center;row-gap:6px}
.v2-chn .chn-voy .bande-bas .grp>b{margin-right:14px}
.v2-chn .chn-voy .bande-bas .cel+.cel{margin-left:14px;padding-left:14px;border-left:1px solid var(--c-line2)}
.v2-chn .chn-voy .bande-bas .cel.fort{font-weight:700;color:var(--ink)}

/* les teintes de la ville et des cuves (pour memoire des variables) */
.v2-chn{--chn-int-1:#2A3139;--chn-int-2:#4B5563;--chn-fuel-1:#5A8FE6;--chn-fuel-2:#1E4C9E;--chn-creme:#F6EEDC;--chn-blanc:#FAFAF7;--chn-ocre:#EBD3A6;--chn-bleu:#D5E3EE}
html[data-theme="dark"] .v2-chn{--chn-int-1:#12161C;--chn-int-2:#232A34;--chn-fuel-1:#78A6F7;--chn-fuel-2:#2F62C9;--chn-creme:#B9B09E;--chn-blanc:#C3C0B8;--chn-ocre:#A8946F;--chn-bleu:#8C9CAB}

/* le detail, replie */
.v2-chn .chn-pli{border:1px solid var(--c-line);border-radius:12px;background:var(--surface);flex:0 0 auto}
.v2-chn .chn-pli>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;cursor:pointer;user-select:none}
.v2-chn .chn-pli>summary::-webkit-details-marker{display:none}
.v2-chn .chn-pli>summary .k{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:800}
.v2-chn .chn-pli>summary i{width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform .15s;margin-right:4px}
.v2-chn .chn-pli[open]>summary i{transform:rotate(-135deg)}
.v2-chn .chn-pli>summary:hover .k{color:var(--ink)}
.v2-chn .chn-pli .pli-corps{padding:0 14px 14px}
.v2-chn .chn-pli .chn-bloc>.k{display:none}

/* la chaine zone par zone : le groupe des usagers */
.v2-chn tr.groupe.usagers td{background:color-mix(in srgb, var(--g4) 8%, transparent)}
html[data-theme="dark"] .v2-chn tr.groupe.usagers td{background:color-mix(in srgb, var(--g4) 12%, transparent)}
.v2-chn tr.groupe.usagers td b{color:color-mix(in srgb, var(--g4) 55%, var(--ink))}
.v2-chn .chn-cascade tr.lg.usagers td:first-child{box-shadow:inset 3px 0 0 color-mix(in srgb, var(--g4) 60%, transparent)}

/* l'air sous le dernier pli : la page ne finit pas collee au bord */
.v2-chn .chn-hote{flex:0 0 auto;min-height:auto;padding-bottom:56px}

/* =====================================================================
   L'ATELIER DU MINI-RESEAU (30/09/2026) : la localite choisie sur la
   carte, la commande de l'etude, la scene dessinee a l'heure choisie,
   la semaine heure par heure, l'annee, la comparaison. Les couleurs des
   sources sont celles de la Compagnie d'electricite (solaire, stockage,
   thermique, reseau) : la meme energie se lit pareil partout.
   ===================================================================== */
.v2-mr{--mr-pv:#C99A12;--mr-bat:#7B61B8;--mr-gen:#B8681F;--mr-res:#2F7FD1;--mr-ns:#D9534F;--mr-perdu:#B4BDCB;
  --mr-nuit:#101C36;--mr-jour:#CFE3F4;--mr-colline:#A8C487;--mr-sol:#8DAE68;--mr-mur:#F4EBDA;--mr-toit:#B9653C;
  --mr-fen:#56607A;--mr-fen-on:#FFD66B;--mr-panneau:#2A4E84;--mr-panneau-on:#3F74BE;--mr-cadre:#C8D3E3;
  --mr-caisse:#5E6E86;--mr-jauge:#263045;--mr-abri:#8C7B69;--mr-etiq:#243021;--mr-texte:#14213D;--mr-texte-2:#33415C;
  --mr-halo:rgba(255,255,255,.82);--mr-ombre:rgba(20,33,61,.055);--c-land:#D8E0EC;--c-coast:#8A99B5;
  display:flex;flex-direction:column;flex:1;min-height:0}
html[data-theme="dark"] .v2-mr{--mr-pv:#E8C34A;--mr-bat:#A991E0;--mr-gen:#E39A4B;--mr-res:#63A8F0;--mr-ns:#F27C72;--mr-perdu:#5F6A7C;
  --mr-jour:#5F87B0;--mr-colline:#3C5A36;--mr-sol:#2E4A2E;--mr-mur:#CFC4B1;--mr-toit:#8E4B2D;--mr-fen:#2B3244;
  --mr-panneau:#1E3A66;--mr-panneau-on:#335F9E;--mr-cadre:#7F8FA8;--mr-caisse:#48566C;--mr-jauge:#1A2130;--mr-abri:#6E6153;
  --mr-etiq:#E6EBF3;--mr-texte:#F2F5FA;--mr-texte-2:#D5DDEA;--mr-halo:rgba(8,14,28,.78);--mr-ombre:rgba(255,255,255,.035);
  --c-land:#182236;--c-coast:#4A5F86}
.v2-mr-corps{padding:18px 26px 34px;display:flex;flex-direction:column;gap:16px}

/* le choix de la localite */
.v2-mr-choix{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}
@media (max-width:1100px){.v2-mr-choix{grid-template-columns:1fr}}
.v2-mr-cartecadre{padding:14px 16px}
.v2-mr-carte{width:100%;height:auto;max-height:560px;display:block}
.v2-mr-carte .terre path{fill:var(--c-land);stroke:var(--c-coast);stroke-width:.8;stroke-linejoin:round}
.v2-mr-carte .p{stroke:var(--v2-surface);stroke-width:1;cursor:pointer}
.v2-mr-carte .p.loin{fill:var(--mr-pv)}
.v2-mr-carte .p.pres{fill:color-mix(in srgb,var(--mr-pv) 45%,var(--v2-surface))}
.v2-mr-carte .p.rac{fill:var(--mr-res)}
.v2-mr-carte .p.hors{fill:var(--faint);opacity:.4;cursor:default}
.v2-mr-carte .p:not(.hors):hover{stroke:var(--ink);stroke-width:2}
.v2-mr-leg{display:flex;gap:6px 16px;flex-wrap:wrap;font-size:12px;color:var(--ink-2);margin-top:10px}
.v2-mr-leg span::before{content:"";display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px;background:var(--faint)}
.v2-mr-leg .loin::before{background:var(--mr-pv);border-radius:50%}
.v2-mr-leg .pres::before{background:color-mix(in srgb,var(--mr-pv) 45%,var(--v2-surface));border-radius:50%}
.v2-mr-leg .rac::before{background:var(--mr-res);border-radius:50%}
.v2-mr-leg .hors::before{opacity:.45;border-radius:50%}
.v2-mr-leg .pv::before{background:var(--mr-pv)}
.v2-mr-leg .bat::before{background:var(--mr-bat)}
.v2-mr-leg .gen::before{background:var(--mr-gen)}
.v2-mr-leg .res::before{background:var(--mr-res)}
.v2-mr-leg .ns::before{background:var(--mr-ns)}
.v2-mr-leg .perdu::before{background:var(--mr-perdu)}
.v2-mr-leg .exp::before{background:color-mix(in srgb,var(--mr-res) 45%,var(--v2-surface))}
.v2-mr-leg .na::before{background:repeating-linear-gradient(135deg,var(--mr-perdu) 0 2px,transparent 2px 4px)}
.v2-mr-leg .demande::before{height:2px;width:14px;border-radius:0;vertical-align:3px;background:var(--ink)}
.v2-mr-liste{display:flex;flex-direction:column}
.v2-mr-liste .ligne{display:flex;flex-direction:column;align-items:flex-start;width:100%;text-align:left;border:0;background:transparent;
  padding:9px 10px;border-radius:8px;cursor:pointer;font:inherit;color:var(--ink)}
.v2-mr-liste .ligne:hover{background:var(--v2-surface-2)}
.v2-mr-liste .nom{font-weight:700;font-size:13px}
.v2-mr-liste .sous{font-size:11.5px;color:var(--muted);margin-top:2px}

/* l'atelier : la commande a gauche, ce qu'elle donne a droite */
.v2-mr-atelier{display:grid;grid-template-columns:320px minmax(0,1fr);gap:18px;align-items:start}
@media (max-width:1180px){.v2-mr-atelier{grid-template-columns:1fr}}
.v2-mr-commande{display:flex;flex-direction:column;gap:10px;min-width:0}
.v2-mr-etape{background:var(--v2-surface);border:1px solid var(--v2-trait);border-radius:var(--v2-r);padding:14px 16px;box-shadow:var(--v2-ombre)}
.v2-mr-etape .tete,.v2-mr-bloc .tete{display:flex;align-items:center;gap:9px;margin-bottom:12px}
.v2-mr-etape .corps{display:flex;flex-direction:column;gap:11px}
.v2-mr .num{width:20px;height:20px;border-radius:50%;background:var(--ink);color:var(--v2-surface);font-size:11px;font-weight:800;
  display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
.v2-mr-faits{display:grid;grid-template-columns:1fr 1fr;gap:9px 12px;margin:0}
.v2-mr-faits dt,.v2-enr-hy-kv dt{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-weight:700}
.v2-mr-faits dd,.v2-enr-hy-kv dd{margin:3px 0 0;font-weight:700;font-variant-numeric:tabular-nums}
.v2-mr-objectifs{display:flex;flex-direction:column;gap:7px}
.v2-mr-objectifs .obj{display:flex;flex-direction:column;align-items:flex-start;text-align:left;border:1px solid var(--v2-trait);
  background:var(--v2-surface);border-radius:10px;padding:10px 12px;cursor:pointer;font:inherit;color:var(--ink);
  transition:border-color var(--v2-t),background var(--v2-t)}
.v2-mr-objectifs .obj:hover{border-color:var(--v2-trait-fort)}
.v2-mr-objectifs .obj .t{font-weight:700;font-size:13px}
.v2-mr-objectifs .obj .d{font-size:11.5px;color:var(--ink-2);margin-top:3px;line-height:1.35}
.v2-mr-objectifs .obj.on{border-color:var(--ink);background:var(--v2-surface-2);box-shadow:inset 3px 0 0 var(--mr-pv)}
.v2-mr-objectifs .obj[disabled]{opacity:.45;cursor:not-allowed}
.v2-mr-archi{display:flex;gap:6px;flex-wrap:wrap}
.v2-mr-archi .a{font-size:12px;font-weight:600;padding:5px 10px;border-radius:14px;border:1px solid var(--v2-trait);display:inline-flex;align-items:center;gap:6px}
.v2-mr-archi .a::before{content:"";width:8px;height:8px;border-radius:2px;background:var(--faint)}
.v2-mr-archi .a.pv::before{background:var(--mr-pv)}
.v2-mr-archi .a.bat::before{background:var(--mr-bat)}
.v2-mr-archi .a.gen::before{background:var(--mr-gen)}
.v2-mr-archi .a.res::before{background:var(--mr-res)}
.v2-mr-champ{display:flex;flex-direction:column;gap:6px}
.v2-mr-champ .lab{display:flex;justify-content:space-between;gap:10px;font-size:12px;font-weight:600;color:var(--ink-2)}
.v2-mr-champ .val{color:var(--ink);font-weight:800;font-variant-numeric:tabular-nums}
.v2-mr-champ input[type=range]{width:100%;accent-color:var(--ink);margin:0}
.v2-mr-nombre{min-width:0;height:34px;box-shadow:none}
.v2-mr .v2-seg.sm{box-shadow:none;align-self:flex-start}
.v2-mr .v2-seg.sm button{padding:5px 10px;font-size:12px}
.v2-mr-niveaux{display:flex;gap:5px;flex-wrap:wrap}
.v2-mr-niveaux .v2-puce{padding:4px 9px;font-size:11.5px}
.v2-mr-avance{background:var(--v2-surface);border:1px dashed var(--v2-trait-fort);border-radius:var(--v2-r);padding:10px 14px}
.v2-mr-avance summary{cursor:pointer;font-size:12px;font-weight:700;color:var(--ink-2)}
.v2-mr-avance>*:not(summary){margin-top:10px}

/* ce que l'etude donne */
.v2-mr-resultat{display:flex;flex-direction:column;gap:14px;min-width:0}
.v2-mr-demande{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2);font-weight:600}
.v2-mr-i{display:inline-flex;width:16px;height:16px;border-radius:50%;border:1px solid var(--v2-trait-fort);font-size:10px;font-weight:700;
  font-style:italic;font-family:Georgia,serif;color:var(--muted);align-items:center;justify-content:center;cursor:help;flex:0 0 auto}
.v2-mr-alerte{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--warn-soft);
  border:1px solid color-mix(in srgb,var(--warn) 35%,transparent);border-radius:var(--v2-r);padding:12px 16px;font-size:13px;color:var(--ink)}
.v2-mr-bloc{padding:18px 20px}
.v2-mr-tailles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:8px}
.v2-mr-tailles .tuile{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:3px;border:1px solid var(--v2-trait);
  border-radius:12px;padding:14px 16px 12px 18px;background:var(--v2-surface);font:inherit;color:var(--ink);position:relative;overflow:hidden}
.v2-mr-tailles .tuile::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--faint)}
.v2-mr-tailles .tuile.pv::before{background:var(--mr-pv)}
.v2-mr-tailles .tuile.bat::before{background:var(--mr-bat)}
.v2-mr-tailles .tuile.gen::before{background:var(--mr-gen)}
.v2-mr-tailles .tuile.res::before{background:var(--mr-res)}
.v2-mr-tailles .t{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.v2-mr-tailles .v{font-size:28px;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.15}
.v2-mr-tailles .s{font-size:12px;color:var(--ink-2)}
.v2-mr-tailles .q{font-size:11px;color:var(--brand);font-weight:600;margin-top:5px}
.v2-mr-tailles .tuile .q{width:auto;height:auto;white-space:nowrap}
.v2-mr-tailles .tuile.clic{cursor:pointer;transition:border-color var(--v2-t),box-shadow var(--v2-t)}
.v2-mr-tailles .tuile.clic:hover{border-color:var(--v2-trait-fort);box-shadow:var(--v2-ombre-haute)}
.v2-mr-barre{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}

/* la scene */
.v2-mr-scene{border-radius:12px;overflow:hidden;border:1px solid var(--v2-trait)}
.v2-mr-svg{width:100%;height:auto;display:block}
.v2-mr-svg .ciel-nuit{fill:var(--mr-nuit)}
.v2-mr-svg .ciel-jour{fill:var(--mr-jour)}
.v2-mr-svg .astre{fill:#FFD34D}
.v2-mr-svg .astre-halo{fill:#FFE9A3}
.v2-mr-svg .etoile{fill:#E8EEF8;opacity:.85}
.v2-mr-svg .lune{fill:#E9EEF6}
.v2-mr-svg .colline{fill:var(--mr-colline)}
.v2-mr-svg .sol{fill:var(--mr-sol)}
.v2-mr-svg .panneau{fill:var(--mr-panneau);stroke:var(--mr-cadre);stroke-width:.8}
.v2-mr-svg .champ.actif .panneau{fill:var(--mr-panneau-on)}
.v2-mr-svg .pied{stroke:var(--mr-cadre);stroke-width:1.2}
.v2-mr-svg .caisse{fill:var(--mr-caisse)}
.v2-mr-svg .nervure{stroke:rgba(255,255,255,.18);stroke-width:1}
.v2-mr-svg .jauge{fill:var(--mr-jauge)}
.v2-mr-svg .niveau{fill:var(--mr-bat)}
.v2-mr-svg .niv{font-size:11px;font-weight:800;fill:#fff;paint-order:stroke;stroke:rgba(0,0,0,.35);stroke-width:2px}
.v2-mr-svg .abri{fill:var(--mr-abri)}
.v2-mr-svg .cheminee{fill:#4A4F5A}
.v2-mr-svg .grille{fill:#3B3F48}
.v2-mr-svg .fumee{fill:#A3ACBA;opacity:.55;animation:mr-fume 1.8s ease-out infinite}
.v2-mr-svg .fumee.f1{animation-delay:.6s}
.v2-mr-svg .fumee.f2{animation-delay:1.2s}
@keyframes mr-fume{from{transform:translateY(6px);opacity:.7}to{transform:translateY(-12px);opacity:0}}
.v2-mr-svg .pylone path{fill:none;stroke:var(--mr-texte-2);stroke-width:2}
.v2-mr-svg .pylone.coupe path{stroke:var(--mr-ns)}
.v2-mr-svg .ligne-res{fill:none;stroke:var(--mr-texte-2);stroke-width:1.4}
.v2-mr-svg .ligne-res.coupe{stroke:var(--mr-ns);stroke-dasharray:4 5}
.v2-mr-svg .mur{fill:var(--mr-mur)}
.v2-mr-svg .toit{fill:var(--mr-toit)}
.v2-mr-svg .fenetre{fill:var(--mr-fen)}
.v2-mr-svg .fenetre.allumee{fill:var(--mr-fen-on)}
.v2-mr-svg .maison.eteinte .mur{fill:color-mix(in srgb,var(--mr-mur) 55%,#4a4f5a)}
.v2-mr-svg .f{fill:none;stroke-linecap:round;stroke-dasharray:7 9;animation:mr-flux 1s linear infinite}
.v2-mr-svg .f.pv{stroke:var(--mr-pv)}
.v2-mr-svg .f.bat{stroke:var(--mr-bat)}
.v2-mr-svg .f.gen{stroke:var(--mr-gen)}
.v2-mr-svg .f.res{stroke:var(--mr-res)}
@keyframes mr-flux{to{stroke-dashoffset:-16}}
.v2-mr-svg .etiq{font-size:11px;font-weight:700;fill:var(--mr-etiq)}
.v2-mr-svg .etiq.alerte{fill:var(--mr-ns)}
.v2-mr-svg .heure,.v2-mr-svg .resume{paint-order:stroke;stroke:var(--mr-halo);stroke-width:4px;stroke-linejoin:round}
.v2-mr-svg .heure{font-size:15px;font-weight:800;fill:var(--mr-texte)}
.v2-mr-svg .resume{font-size:12px;font-weight:600;fill:var(--mr-texte-2)}
.v2-mr-svg .resume.alerte{fill:var(--mr-ns)}
/* la nuit, les textes du ciel passent en clair */
.v2-mr-svg.nuit .heure{fill:#F2F5FA}
.v2-mr-svg.nuit .resume{fill:#D5DDEA}
.v2-mr-svg.nuit .heure,.v2-mr-svg.nuit .resume,.v2-mr-svg.nuit .etiq.ciel{stroke:rgba(8,14,28,.6)}
.v2-mr-svg .etiq.ciel{paint-order:stroke;stroke:var(--mr-halo);stroke-width:3px}
.v2-mr-svg.nuit .etiq.ciel{fill:#F2F5FA}

/* la semaine */
.v2-mr-graphe{margin-top:10px}
.v2-mr-svg.graphe .nuit{fill:var(--mr-ombre)}
.v2-mr-svg.graphe .aire.pv{fill:var(--mr-pv);opacity:.88}
.v2-mr-svg.graphe .aire.bat{fill:var(--mr-bat);opacity:.85}
.v2-mr-svg.graphe .aire.gen{fill:var(--mr-gen);opacity:.9}
.v2-mr-svg.graphe .aire.res{fill:var(--mr-res);opacity:.85}
.v2-mr-svg.graphe .aire.ns{fill:var(--mr-ns);opacity:.7}
.v2-mr-svg.graphe .aire.bat.charge{opacity:.32}
.v2-mr-svg.graphe .aire.perdu{fill:var(--mr-perdu);opacity:.65}
.v2-mr-svg.graphe .ligne{fill:none}
.v2-mr-svg.graphe .ligne.pv{stroke:var(--mr-pv);stroke-width:1.1;stroke-dasharray:2 2}
.v2-mr-svg.graphe .ligne.demande{stroke:var(--ink);stroke-width:1.6}
.v2-mr-svg.graphe .axe{stroke:var(--ink-2);stroke-width:1}
.v2-mr-svg.graphe .jour{stroke:var(--v2-trait);stroke-width:1}
.v2-mr-svg.graphe .soc-fond{fill:var(--v2-surface-2)}
.v2-mr-svg.graphe .soc{fill:color-mix(in srgb,var(--mr-bat) 35%,transparent);stroke:var(--mr-bat);stroke-width:1.2}
.v2-mr-svg.graphe .axe-t{font-size:10px;fill:var(--muted);font-variant-numeric:tabular-nums}
.v2-mr-svg.graphe .curseur{stroke:var(--ink);stroke-width:1.3;stroke-dasharray:3 3}
.v2-mr-svg.graphe .zone{fill:transparent;cursor:crosshair}

/* l'annee */
.v2-mr-bilan{display:flex;height:30px;border-radius:8px;overflow:hidden;margin-top:10px;background:var(--v2-surface-2)}
.v2-mr-bilan .seg{display:flex;align-items:center;justify-content:center;min-width:2px;color:#fff;font-size:11.5px;font-weight:700;overflow:hidden;white-space:nowrap}
.v2-mr-bilan .seg .p{padding:0 6px}
.v2-mr-bilan .seg.pv{background:var(--mr-pv)}
.v2-mr-bilan .seg.bat{background:var(--mr-bat)}
.v2-mr-bilan .seg.gen{background:var(--mr-gen)}
.v2-mr-bilan .seg.res{background:var(--mr-res)}
.v2-mr-bilan .seg.ns{background:var(--mr-ns)}
.v2-mr-bilan .seg.perdu{background:var(--mr-perdu);color:var(--ink)}
.v2-mr-bilan .seg.exp{background:color-mix(in srgb,var(--mr-res) 45%,var(--v2-surface));color:var(--ink)}
.v2-mr-bilan .seg.na{background:repeating-linear-gradient(135deg,var(--mr-perdu) 0 4px,color-mix(in srgb,var(--mr-perdu) 35%,var(--v2-surface)) 4px 8px);color:var(--ink)}
.v2-mr-bilan-det{display:flex;gap:8px 20px;flex-wrap:wrap;margin-top:8px;font-size:12px}
.v2-mr-bilan-det>div{display:flex;flex-direction:column}
.v2-mr-bilan-det .k{color:var(--ink-2)}
.v2-mr-bilan-det .k::before{content:"";display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px;background:var(--faint)}
.v2-mr-bilan-det .pv .k::before{background:var(--mr-pv)}
.v2-mr-bilan-det .bat .k::before{background:var(--mr-bat)}
.v2-mr-bilan-det .gen .k::before{background:var(--mr-gen)}
.v2-mr-bilan-det .res .k::before{background:var(--mr-res)}
.v2-mr-bilan-det .ns .k::before{background:var(--mr-ns)}
.v2-mr-bilan-det .v{font-weight:700;font-variant-numeric:tabular-nums;padding-left:14px}
.v2-mr-chiffres{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:16px}
.v2-mr-chiffres .ch{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:10px;background:var(--v2-surface-2)}
.v2-mr-chiffres .k{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.v2-mr-chiffres .v{font-size:20px;font-weight:800;font-variant-numeric:tabular-nums}
.v2-mr-chiffres .s{font-size:11.5px;color:var(--ink-2)}

/* la comparaison, le pied */
.v2-mr-cmp th.cour,.v2-mr-cmp td.cour{background:color-mix(in srgb,var(--mr-pv) 11%,transparent)}
.v2-mr-cmp tr.diff td{font-weight:700}
.v2-mr-x{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:14px;margin-left:6px}
.v2-mr-pied{display:flex;flex-direction:column;gap:6px;align-items:flex-start;font-size:11.5px;color:var(--muted);padding:2px}
@media (prefers-reduced-motion:reduce){.v2-mr-svg .f,.v2-mr-svg .fumee{animation:none}}

/* l'hydraulique */
.v2-enr-hy{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.v2-enr-hy-total{display:flex;gap:40px;flex-wrap:wrap;align-items:flex-end}
.v2-enr-hy-total .v2-n{margin-top:8px}
.v2-enr-hy-kv{display:grid;grid-template-columns:1fr 1fr;gap:9px 14px;margin:14px 0 0}

/* =====================================================================
   LE SOLAIRE : LES CENTRALES, ET LE PARCOURS D'UNE NOUVELLE (30/09/2026)
   Une identite propre : l'or du soleil sur le bleu de la nuit, une
   phrase de chiffres en tete, les centrales en lignes avec leur barre
   de puissance, un parcours en cinq etapes.
   ===================================================================== */
.v2-sol{--sol-or:#C99A12;--sol-or-vif:#F2C94C;--sol-nuit:#13203A;--sol-nuit-2:#1E3558;--sol-doux:#FBF4DF;--sol-parc:#35507F;
  display:flex;flex-direction:column;flex:1;min-height:0}
html[data-theme="dark"] .v2-sol{--sol-or:#E8C34A;--sol-or-vif:#F5D36B;--sol-doux:#2A2616;--sol-parc:#8FB3F5}
.v2-enr-tete{padding:22px 26px 0;display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.v2-enr-tete .sur{display:flex;align-items:center;gap:8px;color:var(--sol-or)}
.v2-enr-tete .v2-h1{font-size:28px}
.v2-enr-filiere{margin-top:10px}
.v2-sol-corps{padding:18px 26px 40px;display:flex;flex-direction:column;gap:22px}

/* le bandeau : l'image quand elle existe, la nuit qui se leve sinon */
.v2-sol-bandeau{position:relative;border-radius:18px;overflow:hidden;min-height:230px;display:flex;
  background:linear-gradient(115deg,var(--sol-nuit) 0%,var(--sol-nuit-2) 52%,#6B5A2A 88%,var(--sol-or) 118%);color:#fff;
  box-shadow:0 18px 40px -24px rgba(19,32,58,.55)}
.v2-sol-bandeau .fond{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.v2-sol-bandeau .voile{position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,20,38,.86) 0%,rgba(12,20,38,.62) 45%,rgba(12,20,38,.05) 80%)}
.v2-sol-bandeau.sans-image .voile{background:radial-gradient(ellipse at 92% 120%,rgba(242,201,76,.55),transparent 55%)}
.v2-sol-bandeau .contenu{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:22px;padding:30px 34px;max-width:880px}
.v2-sol-bandeau .phrase{display:block;line-height:1.25;font-size:19px;color:rgba(255,255,255,.88)}
.v2-sol-bandeau .phrase .n{font-size:46px;font-weight:800;letter-spacing:-.03em;color:var(--sol-or-vif);font-variant-numeric:tabular-nums}
.v2-sol-bandeau .phrase .u{font-size:18px;font-weight:700;color:#fff;margin:0 8px 0 6px}
.v2-sol-bandeau .phrase .t{margin-right:12px}
.v2-sol-bandeau .v2-b.premier{align-self:flex-start;background:var(--sol-or-vif);color:var(--sol-nuit);box-shadow:none;font-size:14px;padding:12px 20px}
.v2-sol-bandeau .v2-b.premier .plus{font-size:18px;line-height:1;font-weight:800}

/* les centrales, en lignes */
.v2-sol-groupe .tete{display:flex;align-items:baseline;gap:14px;margin-bottom:10px}
.v2-sol-liste{background:var(--v2-surface);border:1px solid var(--v2-trait);border-radius:14px;overflow:hidden}
.v2-sol-liste .ligne{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,240px) 112px 112px;gap:18px;align-items:center;
  padding:14px 20px;border-bottom:1px solid var(--v2-trait)}
.v2-sol-liste .ligne:last-child{border-bottom:0}
.v2-sol-liste .ligne:hover{background:var(--v2-surface-2)}
.v2-sol-liste .id{display:flex;flex-direction:column;min-width:0}
.v2-sol-liste .nom{font-weight:700;font-size:14px}
.v2-sol-liste .sous{font-size:12px;color:var(--muted);margin-top:3px}
.v2-sol-liste .barre{height:8px;border-radius:4px;background:var(--v2-surface-2);overflow:hidden}
.v2-sol-liste .barre i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,var(--sol-or),var(--sol-or-vif))}
.v2-sol-liste .ch{text-align:right;white-space:nowrap}
.v2-sol-liste .ch b{font-size:19px;font-weight:800;font-variant-numeric:tabular-nums}
.v2-sol-liste .ch small{font-size:11.5px;color:var(--muted);margin-left:5px;font-weight:600}
.v2-sol-liste .ch.bat b{color:var(--ink-2)}
.v2-sol-liste.projets .ligne{grid-template-columns:minmax(0,1fr) auto auto}
.v2-sol-liste .tailles{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.v2-sol-liste .tailles span{font-size:12px;font-weight:700;padding:5px 10px;border-radius:14px;background:var(--v2-surface-2);font-variant-numeric:tabular-nums}
.v2-sol-liste .tailles .part{background:var(--sol-doux);color:var(--ink)}
.v2-sol-liste .actions{display:flex;gap:8px}
@media (max-width:900px){.v2-sol-liste .ligne{grid-template-columns:minmax(0,1fr) 100px 100px}.v2-sol-liste .barre{display:none}}

/* le parcours */
.v2-nc-haut{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.v2-nc-retour{border:0;background:transparent;color:var(--brand);font:inherit;font-size:13px;font-weight:600;cursor:pointer;padding:0}
.v2-nc-etapes{list-style:none;margin:0;padding:0;display:flex;gap:0;counter-reset:n}
.v2-nc-etapes li{flex:1;position:relative}
.v2-nc-etapes li::after{content:"";position:absolute;top:16px;left:calc(50% + 22px);right:calc(-50% + 22px);height:2px;background:var(--v2-trait)}
.v2-nc-etapes li:last-child::after{display:none}
.v2-nc-etapes li.fait::after{background:var(--sol-or)}
.v2-nc-etapes button{display:flex;flex-direction:column;align-items:center;gap:7px;width:100%;border:0;background:transparent;font:inherit;cursor:pointer;color:var(--muted)}
.v2-nc-etapes button[disabled]{cursor:default}
.v2-nc-etapes .num{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;
  background:var(--v2-surface);border:2px solid var(--v2-trait-fort);color:var(--ink-2)}
.v2-nc-etapes .t{font-size:12.5px;font-weight:600}
.v2-nc-etapes li.fait .num{background:var(--sol-nuit);border-color:var(--sol-nuit);color:#fff}
.v2-nc-etapes li.on .num{background:var(--sol-or);border-color:var(--sol-or);color:var(--sol-nuit)}
.v2-nc-etapes li.on .t{color:var(--ink);font-weight:800}
.v2-nc-panneau{display:flex;flex-direction:column;gap:16px}
.v2-nc-bloc{background:var(--v2-surface);border:1px solid var(--v2-trait);border-radius:14px;padding:20px 22px;display:flex;flex-direction:column;gap:12px;min-width:0}
.v2-nc-titre{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.v2-nc-q{display:flex;flex-direction:column;gap:7px}
.v2-nc-q .lab{display:flex;justify-content:space-between;gap:10px;font-size:12px;font-weight:700;color:var(--ink-2)}
.v2-nc-q .val{color:var(--ink);font-weight:800;font-variant-numeric:tabular-nums}
.v2-nc-q input[type=range]{width:100%;accent-color:var(--sol-or);margin:0}
.v2-nc .v2-seg{box-shadow:none;align-self:flex-start;flex-wrap:wrap}
.v2-nc .v2-seg.sm button{padding:5px 11px;font-size:12px}
.v2-nc-lieu{display:grid;grid-template-columns:380px minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:1150px){.v2-nc-lieu{grid-template-columns:1fr}}
.v2-nc-choix,.v2-nc-carte{background:var(--v2-surface);border:1px solid var(--v2-trait);border-radius:14px;padding:18px 20px;display:flex;flex-direction:column;gap:14px;min-width:0}
.v2-nc-rech{min-width:0;height:36px;box-shadow:none}
.v2-nc-rech input{font-size:13px}
.v2-nc-liste{display:flex;flex-direction:column;max-height:330px;overflow:auto;margin:0 -8px}
.v2-nc-liste .ligne{display:flex;flex-direction:column;align-items:flex-start;text-align:left;border:0;background:transparent;border-radius:8px;
  padding:9px 10px 9px 12px;font:inherit;color:var(--ink);cursor:pointer;border-left:3px solid transparent}
.v2-nc-liste .ligne:hover{background:var(--v2-surface-2)}
.v2-nc-liste .ligne.on{background:var(--sol-doux);border-left-color:var(--sol-or)}
.v2-nc-liste .nom{font-weight:700;font-size:13px}
.v2-nc-liste .sous{font-size:11.5px;color:var(--muted);margin-top:2px}
.v2-nc-svg{width:100%;height:auto;display:block;max-height:520px}
.v2-nc-svg .pref{fill:var(--c-land,#D8E0EC);stroke:var(--v2-surface);stroke-width:1.2;stroke-linejoin:round}
html[data-theme="dark"] .v2-nc-svg .pref{fill:#1E2A40}
.v2-nc-svg .pref.clic{cursor:pointer}
.v2-nc-svg .commune{fill:transparent;stroke:var(--brand);stroke-width:.8;stroke-opacity:.45;cursor:pointer}
.v2-nc-svg .commune:hover{fill:color-mix(in srgb,var(--brand) 12%,transparent)}
.v2-nc-svg .commune.on{fill:color-mix(in srgb,var(--sol-or) 30%,transparent);stroke:var(--sol-or);stroke-opacity:1;stroke-width:1.6}
.v2-nc-svg .pref.clic:hover{fill:color-mix(in srgb,var(--sol-or) 18%,var(--c-land,#D8E0EC))}
.v2-nc-svg .pref.on{fill:color-mix(in srgb,var(--sol-or) 34%,var(--c-land,#D8E0EC));stroke:var(--sol-or);stroke-width:1.6}
.v2-nc-svg .loc{cursor:pointer;stroke:var(--v2-surface);stroke-width:1}
.v2-nc-svg .loc.sans{fill:var(--sol-or)}
.v2-nc-svg .loc.rac{fill:color-mix(in srgb,#2F7FD1 70%,var(--v2-surface))}
.v2-nc-svg .loc.on{stroke:var(--ink);stroke-width:2.4}
.v2-nc-svg .rayon{fill:color-mix(in srgb,var(--sol-or) 14%,transparent);stroke:var(--sol-or);stroke-width:1.4;stroke-dasharray:4 4;pointer-events:none}
.v2-nc-svg .bat{fill:var(--sol-nuit);pointer-events:none}
html[data-theme="dark"] .v2-nc-svg .bat{fill:#E6EBF3}
.v2-nc-svg .bat.exclu{fill:var(--faint)}
.v2-nc-rayon{display:flex;flex-direction:column;gap:6px}
.v2-nc-rayon .lab{display:flex;justify-content:space-between;font-size:12px;font-weight:700;color:var(--ink-2)}
.v2-nc-rayon input{accent-color:var(--sol-or)}
.v2-nc-tblbox{max-height:400px;overflow:auto;border:1px solid var(--v2-trait);border-radius:10px}
.v2-nc-tbl{width:100%;border-collapse:collapse;font-size:13px}
.v2-nc-tbl th{position:sticky;top:0;background:var(--v2-surface);text-align:left;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--v2-trait-fort)}
.v2-nc-tbl td{padding:9px 12px;border-bottom:1px solid var(--v2-trait);vertical-align:middle}
.v2-nc-tbl .r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.v2-nc-tbl .c{width:34px;text-align:center}
.v2-nc-tbl input[type=checkbox]{accent-color:var(--sol-or);width:15px;height:15px}
.v2-nc-tbl .nom{font-weight:600;display:block}
.v2-nc-tbl .sous{font-size:11.5px;color:var(--muted)}
.v2-nc-tbl tr.maisons td{background:var(--sol-doux)}
.v2-nc-tbl tr.exclu td{opacity:.45}
.v2-nc-barre{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.v2-nc-deux{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:stretch}
@media (max-width:1100px){.v2-nc-deux{grid-template-columns:1fr}}
.v2-nc-grand{display:flex;align-items:baseline;gap:8px}
.v2-nc-grand b{font-size:34px;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.v2-nc-grand small{font-size:13px;color:var(--muted);font-weight:600}
.v2-nc-formule{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;background:var(--sol-doux);border-radius:10px;padding:11px 14px;font-variant-numeric:tabular-nums}
.v2-nc-nombre{min-width:0;width:240px;height:36px;box-shadow:none}
.v2-nc-nombre .u{font-size:12px;color:var(--muted);white-space:nowrap}
.v2-nc-horizon{display:flex;gap:28px;flex-wrap:wrap}
.v2-nc-total{display:flex;gap:26px;align-items:flex-end;flex-wrap:wrap;padding-top:6px;border-top:1px solid var(--v2-trait)}
.v2-nc-total .fleche{font-size:26px;color:var(--muted);padding-bottom:4px}
.v2-nc-part{display:flex;height:10px;border-radius:5px;overflow:hidden;background:var(--v2-surface-2)}
.v2-nc-part .parc{background:var(--sol-parc)}
.v2-nc-part .lg{background:var(--sol-or)}
.v2-nc-connu{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0}
@media (max-width:900px){.v2-nc-connu{grid-template-columns:1fr}}
.v2-nc-connu>div{background:var(--v2-surface-2);border-radius:10px;padding:12px 14px}
.v2-nc-connu dt{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.v2-nc-connu dd{margin:5px 0 0;font-size:17px;font-weight:800}
.v2-nc-connu .sous{display:block;font-size:11.5px;color:var(--ink-2);margin-top:3px}
.v2-nc-objectifs{display:flex;flex-direction:column;gap:8px}
.v2-nc-objectifs .obj{display:flex;flex-direction:column;align-items:flex-start;text-align:left;border:1px solid var(--v2-trait);background:var(--v2-surface);
  border-radius:12px;padding:12px 14px;cursor:pointer;font:inherit;color:var(--ink);transition:border-color var(--v2-t),background var(--v2-t)}
.v2-nc-objectifs .obj:hover{border-color:var(--v2-trait-fort)}
.v2-nc-objectifs .obj .t{font-weight:700;font-size:14px}
.v2-nc-objectifs .obj .d{font-size:12px;color:var(--ink-2);margin-top:4px;line-height:1.4}
.v2-nc-objectifs .obj.on{border-color:var(--sol-or);background:var(--sol-doux);box-shadow:inset 4px 0 0 var(--sol-or)}
.v2-nc-objectifs .obj[disabled]{opacity:.45;cursor:not-allowed}
.v2-nc-avance{border-top:1px dashed var(--v2-trait-fort);padding-top:10px}
.v2-nc-avance summary{cursor:pointer;font-size:12px;font-weight:700;color:var(--ink-2)}
.v2-nc-avance>*:not(summary){margin-top:10px}
.v2-nc-recaps{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:1100px){.v2-nc-recaps{grid-template-columns:1fr}}
.v2-nc-recap{background:var(--v2-surface);border:1px solid var(--v2-trait);border-radius:14px;padding:18px 22px}
.v2-nc-recap dl{margin:12px 0 0;display:flex;flex-direction:column}
.v2-nc-recap dl>div{display:grid;grid-template-columns:minmax(120px,36%) minmax(0,1fr);gap:16px;padding:9px 0;border-bottom:1px solid var(--v2-trait);align-items:baseline}
.v2-nc-recap dl>div:last-child{border-bottom:0}
.v2-nc-recap dt{font-size:12.5px;color:var(--ink-2)}
.v2-nc-recap dd{margin:0;font-weight:700;font-size:13px;text-align:right;overflow-wrap:anywhere}
.v2-nc-resultat{display:flex;flex-direction:column;gap:8px;padding:22px 26px;border-radius:16px;
  background:linear-gradient(115deg,var(--sol-nuit),var(--sol-nuit-2));color:#fff}
.v2-nc-resultat .v2-lab{color:var(--sol-or-vif)}
.v2-nc-resultat .phrase{margin:0;font-size:22px;font-weight:600;line-height:1.4;max-width:980px}
.v2-nc-scene{position:relative;aspect-ratio:12/5;border-radius:14px;overflow:hidden;background:var(--sol-nuit)}
.v2-nc-scene img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .22s linear}
.v2-nc-heure{display:flex;gap:14px;align-items:baseline;flex-wrap:wrap;font-size:13px;color:var(--ink-2)}
.v2-nc-heure b{color:var(--ink);font-size:14px}
.v2-nc-heure .alerte{color:var(--mr-ns)}
.v2-nc-heure .soc{margin-left:auto;color:var(--mr-bat);font-weight:700}
.v2-nc-svg.graphe{max-height:none}
.v2-nc-svg.graphe .ciel-nuit{fill:var(--sol-nuit)}
.v2-nc-svg.graphe .ciel{fill:var(--sol-or-vif)}
.v2-nc-svg.graphe .aire.pv{fill:var(--mr-pv);opacity:.9}
.v2-nc-svg.graphe .aire.bat{fill:var(--mr-bat);opacity:.88}
.v2-nc-svg.graphe .aire.gen{fill:var(--mr-gen);opacity:.9}
.v2-nc-svg.graphe .aire.res{fill:var(--mr-res);opacity:.85}
.v2-nc-svg.graphe .aire.ns{fill:var(--mr-ns);opacity:.75}
.v2-nc-svg.graphe .aire.bat.charge{opacity:.3}
.v2-nc-svg.graphe .aire.perdu{fill:var(--mr-perdu);opacity:.7}
.v2-nc-svg.graphe .aire.res.export{opacity:.35}
.v2-nc-svg.graphe .aire.res.charge,.v2-nc-svg.graphe .aire.gen.charge{opacity:.3}
.v2-nc-svg.graphe .reserve{stroke:var(--mr-bat);stroke-width:1.2;stroke-dasharray:4 3}
.v2-nc-svg.graphe .aire.na{fill:var(--mr-perdu);opacity:.3;stroke:var(--mr-perdu);stroke-width:1;stroke-dasharray:3 3}
.v2-nc-svg.graphe .demande{fill:none;stroke:var(--ink);stroke-width:1.8;stroke-linejoin:round}
.v2-nc-svg.graphe .axe{stroke:var(--ink-2);stroke-width:1}
.v2-nc-svg.graphe .jour{stroke:var(--v2-trait);stroke-width:1}
.v2-nc-svg.graphe .soc-fond{fill:var(--v2-surface-2)}
.v2-nc-svg.graphe .soc{fill:color-mix(in srgb,var(--mr-bat) 30%,transparent);stroke:var(--mr-bat);stroke-width:1.4;stroke-linejoin:round}
.v2-nc-svg.graphe .axe-t{font-size:11px;fill:var(--muted);font-variant-numeric:tabular-nums}
.v2-nc-svg.graphe .curseur{stroke:var(--ink);stroke-width:1.2;stroke-dasharray:3 3}
.v2-nc-svg.graphe .point{fill:var(--v2-surface);stroke:var(--ink);stroke-width:2}
.v2-nc-svg.graphe .zone{fill:transparent;cursor:crosshair}
.v2-nc-pied{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.v2-nc .v2-b.premier{background:var(--sol-or);color:var(--sol-nuit);box-shadow:none}
.v2-nc .v2-b.premier:hover{filter:brightness(1.05)}

/* les etudes : la liste, les statuts */
.v2-sol-etudes-tete{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap}
.v2-sol-etudes-tete .v2-sub{margin:6px 0 0}
.v2-sol-nouvelle{background:var(--sol-or)!important;color:var(--sol-nuit)!important;box-shadow:none!important;font-size:14px;padding:12px 20px}
.v2-sol-nouvelle .plus{font-size:18px;line-height:1;font-weight:800}
.v2-sol-vide{border:1px dashed var(--v2-trait-fort);border-radius:14px;padding:28px;text-align:center;display:flex;flex-direction:column;gap:8px;align-items:center}
.v2-sol-vide .v2-sub{max-width:620px;margin:0}
.v2-sol-liste.etudes .ligne{grid-template-columns:minmax(0,1fr) auto auto}
.v2-sol-liste .nom .statut,.v2-nc-haut .statut{margin-right:10px}
.v2-sol .statut{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border-radius:10px;vertical-align:2px}
.v2-sol .statut.etude{background:var(--v2-surface-2);color:var(--ink-2);border:1px solid var(--v2-trait)}
.v2-sol .statut.projet{background:var(--sol-doux);color:var(--ink);border:1px solid var(--sol-or)}

/* le parcours en huit etapes */
.v2-nc-etapes .t{text-align:center;line-height:1.2}
.v2-nc-types{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
@media (max-width:1100px){.v2-nc-types{grid-template-columns:1fr 1fr}}
.v2-nc-types .obj,.v2-nc-objectifs .obj{display:flex;flex-direction:column;align-items:flex-start;text-align:left;border:1px solid var(--v2-trait);
  background:var(--v2-surface);border-radius:12px;padding:12px 14px;cursor:pointer;font:inherit;color:var(--ink);gap:5px;
  transition:border-color var(--v2-t),background var(--v2-t)}
.v2-nc-types .obj:hover,.v2-nc-objectifs .obj:hover{border-color:var(--v2-trait-fort)}
.v2-nc-types .obj .t,.v2-nc-objectifs .obj .t{font-weight:700;font-size:14px}
.v2-nc-types .obj .d,.v2-nc-objectifs .obj .d{font-size:12px;color:var(--ink-2);line-height:1.4}
.v2-nc-objectifs .obj .c{font-size:11px;font-weight:700;color:var(--sol-or);margin-top:2px}
.v2-nc-types .obj.on,.v2-nc-objectifs .obj.on{border-color:var(--sol-or);background:var(--sol-doux);box-shadow:inset 4px 0 0 var(--sol-or)}
.v2-nc-types .obj[disabled],.v2-nc-objectifs .obj[disabled]{opacity:.5;cursor:not-allowed}
.v2-nc-objectifs.grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.v2-nc-connu.quatre{grid-template-columns:repeat(3,minmax(0,1fr))}
.v2-nc-affiner{border-top:1px solid var(--v2-trait);padding-top:12px}
.v2-nc-affiner summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--brand)}
.v2-nc-affiner>*:not(summary){margin-top:10px}
.v2-nc-tblbox.court{max-height:260px}
.v2-nc-tblbox.libre{max-height:none}
.v2-nc-note{font-size:12.5px;color:var(--ink-2);background:var(--v2-surface-2);border-radius:8px;padding:9px 12px}
.v2-nc-estimation{display:flex;flex-direction:column;gap:8px}
.v2-nc-estimation .etiquette{align-self:flex-start;font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  padding:3px 9px;border-radius:10px;border:1px dashed var(--muted);color:var(--ink-2)}
.v2-nc-equation{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap}
.v2-nc-equation .terme{display:flex;flex-direction:column;gap:3px;padding:10px 14px;border-radius:10px;background:var(--v2-surface-2);min-width:130px}
.v2-nc-equation .terme .k{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.v2-nc-equation .terme b{font-size:19px;font-weight:800;font-variant-numeric:tabular-nums}
.v2-nc-equation .terme .s{font-size:11px;color:var(--ink-2);font-style:italic}
.v2-nc-equation .terme.fort{background:var(--sol-nuit);color:#fff}
.v2-nc-equation .terme.fort .k{color:var(--sol-or-vif)}
.v2-nc-equation .op{align-self:center;font-size:22px;font-weight:700;color:var(--muted)}
.v2-nc-manque{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--ink-2)}
.v2-nc-lancement .v2-sub{margin:0;max-width:900px}
.v2-nc .v2-b.premier.v2-nc-lancer{font-size:14.5px;padding:13px 22px}
.v2-mr-tailles.raisons .raison{font-size:12.5px;color:var(--ink-2);line-height:1.4;margin-top:2px}
.v2-nc-cmp th.cour,.v2-nc-cmp td.cour{background:color-mix(in srgb,var(--sol-or) 11%,transparent)}
.v2-nc-cmp tr.diff td{font-weight:700}
.v2-nc-cmp td:first-child{color:var(--ink-2)}
.v2-nc-svg .bat-parc{fill:var(--faint);cursor:pointer}
.v2-nc-svg .bat-parc.on{fill:var(--sol-or);stroke:var(--sol-nuit);stroke-width:1.2}
.v2-nc-svg.graphe .coupure{fill:color-mix(in srgb,var(--mr-ns) 9%,transparent)}
.v2-mr-leg .coupure::before{background:color-mix(in srgb,var(--mr-ns) 25%,transparent)}
/* les libelles des champs du parcours : pas le style global .lab (capitales espacees) */
.v2-nc-q .lab,.v2-nc-rayon .lab{font-family:inherit;text-transform:none;letter-spacing:0;font-size:12.5px}

/* LA DEMANDE EN QUATRE GRANDEURS (TOUMA-DEMANDE v2, 01/10/2026) : la
   chaine des menages, les hypotheses de scenario, les quatre grandeurs */
.v2-nc-grand .k{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);align-self:center;margin-right:4px}
.v2-nc-grand.petit b{font-size:22px}
.v2-nc-chaine td,.v2-nc-quatre td{padding:9px 0}
.v2-nc-chaine td .k,.v2-nc-quatre td .k{display:block;font-weight:600}
.v2-nc-chaine td .s,.v2-nc-quatre td .s{display:block;font-size:11.5px;color:var(--muted);margin-top:2px}
.v2-nc-chaine tr.fort td,.v2-nc-quatre tr.fort td{font-weight:800}
.v2-nc-quatre tr.fort td.r{font-size:15px}
.v2-nc-quatre tr.total td{border-top:1px solid var(--v2-trait-fort);border-bottom:0}
.v2-nc-quatre tr.barre td.r{color:var(--muted);text-decoration:line-through}
.v2-nc-q-in{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:6px}
.v2-nc-hyp{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border:1px dashed var(--v2-trait-fort);border-radius:12px}
.v2-nc-hyp .lab{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;color:var(--ink-2);font-family:inherit;text-transform:none;letter-spacing:0}
.v2-nc-sens td.cour{background:var(--sol-doux);font-weight:800}
.v2-nc-hyp .etiquette{align-self:flex-start;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:var(--sol-doux);color:var(--ink);border:1px solid var(--sol-or)}
.v2-nc-hyp-choix{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.v2-nc-hyp-choix .v2-nc-nombre{max-width:190px}
.v2-nc-hyp-choix .v2-nc-nombre input{min-width:92px}
.v2-nc-nd{display:flex;flex-direction:column;gap:10px;padding-top:12px;border-top:1px solid var(--v2-trait)}
.v2-nc-nd-tete{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.v2-nc-case{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;cursor:pointer}
.v2-nc-case input{accent-color:var(--sol-or);width:15px;height:15px}
/* la carte des solutions : tenue en vert, frontiere soulignee, choix entoure */
.v2-nc-carte-hote{display:flex;align-items:stretch;gap:6px;overflow-x:auto}
.v2-nc-carte-y{writing-mode:vertical-rl;transform:rotate(180deg);font-size:11px;font-weight:700;color:var(--muted);text-align:center}
.v2-nc-carte{display:block;width:100%;min-width:640px;height:auto}
.v2-nc-carte .case{cursor:pointer;outline:none}
.v2-nc-carte .case rect{fill:var(--v2-surface-2);stroke:var(--v2-trait);stroke-width:1;transition:stroke var(--v2-t)}
.v2-nc-carte .case text{font-size:10.5px;font-weight:700;fill:var(--muted);font-family:var(--ui);pointer-events:none}
.v2-nc-carte .case.tenue rect{fill:color-mix(in srgb,#1F8A5B 22%,var(--v2-surface))}
.v2-nc-carte .case.tenue text{fill:var(--ink)}
.v2-nc-carte .case.place rect{fill:var(--v2-surface);stroke:var(--v2-trait-fort);stroke-dasharray:3 2}
.v2-nc-carte .case.place text{fill:var(--faint,var(--muted));opacity:.7}
.v2-nc-carte .case.front rect{fill:color-mix(in srgb,#1F8A5B 42%,var(--v2-surface));stroke:#1F8A5B;stroke-width:1.5}
.v2-nc-carte .case.choix rect{stroke:var(--sol-or);stroke-width:3}
.v2-nc-carte .case:hover rect,.v2-nc-carte .case:focus-visible rect{stroke:var(--ink);stroke-width:1.8}
.v2-nc-carte .axe{font-size:10.5px;fill:var(--muted);font-family:var(--ui)}
.v2-nc-carte .axe.t{font-weight:700}
.v2-nc-carte-leg .tenue::before{background:color-mix(in srgb,#1F8A5B 22%,var(--v2-surface));border:1px solid var(--v2-trait)}
.v2-nc-carte-leg .non::before{background:var(--v2-surface-2);border:1px solid var(--v2-trait)}
.v2-nc-carte-leg .place::before{background:repeating-linear-gradient(135deg,var(--v2-trait-fort) 0 2px,transparent 2px 4px)}
.v2-nc-carte-leg .front::before{background:color-mix(in srgb,#1F8A5B 42%,var(--v2-surface));border:1.5px solid #1F8A5B}
.v2-nc-carte-leg .choix::before{background:transparent;border:3px solid var(--sol-or)}

/* =====================================================================
   LES ENERGIES RENOUVELABLES (refonte du 01/10/2026) : la grammaire du
   poste petrolier (perimetre sur la carte, onglets ronds, panneaux), les
   couleurs de filiere de la compagnie (--c-pv, --c-hy, --c-st)
   ===================================================================== */
.v2-enr{--enr-sans:#D9772B;--enr-avec:#9AA6BA}
html[data-theme="dark"] .v2-enr{--enr-sans:#F0A060;--enr-avec:#6E7A90}
.v2-enr .v2-ws-tete .menu{padding-bottom:10px}
.v2-enr .enr-nouvelle{display:inline-flex;align-items:center;gap:8px}
.v2-enr .enr-nouvelle .plus{font-size:17px;line-height:1;font-weight:700}
.v2-enr .hy-jauge.enr i,.v2-enr .hy-carte .eti .plein.enr{background:var(--c-pv);fill:var(--c-pv)}
.v2-enr .hy-pays .hy-jauge.enr{width:150px}
.v2-enr .hy-chs.quatre{grid-template-columns:repeat(4,minmax(0,1fr))}
.v2-enr b.n.clic{cursor:pointer;transition:color var(--v2-t)}
.v2-enr b.n.clic:hover{color:var(--brand)}
.v2-enr .enr-grand b.n{font-size:40px;font-weight:700;font-family:var(--mono,ui-monospace,monospace);letter-spacing:-.03em;line-height:1}
.v2-enr .enr-grand b.n small{font-size:15px;font-family:var(--ui);font-weight:700;margin-left:6px;color:var(--ink-2)}
.v2-enr .enr-sous-titre{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.v2-enr .enr-objectif{border-top:1px solid var(--v2-trait);padding-top:14px;display:flex;flex-direction:column;gap:12px}
.v2-enr .enr-route{position:relative;height:12px;border-radius:6px;background:var(--v2-trait);margin:4px 0 2px}
.v2-enr .enr-route i{position:absolute;top:0;height:100%;border-radius:6px}
.v2-enr .enr-route i.fait{left:0;background:var(--c-pv)}
.v2-enr .enr-route i.chantier{background:repeating-linear-gradient(135deg,var(--c-pv) 0 5px,color-mix(in srgb,var(--c-pv) 35%,var(--v2-surface)) 5px 10px);border-radius:0 6px 6px 0}
.v2-enr .enr-route b.cible{position:absolute;top:-5px;width:3px;height:22px;margin-left:-1px;border-radius:2px;background:var(--ink)}
.v2-enr .hy-ch b.n.cible{color:var(--ink)}
.v2-enr .enr-manque{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:10px 14px;border-radius:12px;background:color-mix(in srgb,var(--c-pv) 10%,var(--v2-surface));border:1px solid color-mix(in srgb,var(--c-pv) 35%,var(--v2-trait))}
.v2-enr .enr-manque.ok{background:color-mix(in srgb,var(--c-fact) 10%,var(--v2-surface));border-color:color-mix(in srgb,var(--c-fact) 35%,var(--v2-trait))}
.v2-enr .enr-manque .k,.v2-enr .enr-midi .k,.v2-enr .enr-apres .k{font-size:12.5px;font-weight:700;color:var(--ink-2)}
.v2-enr .enr-manque b.n,.v2-enr .enr-midi b.n,.v2-enr .enr-apres b.n{font-size:19px;font-weight:700;font-family:var(--mono,ui-monospace,monospace)}
.v2-enr .enr-manque b.n small,.v2-enr .enr-midi b.n small,.v2-enr .enr-apres b.n small{font-size:12px;font-family:var(--ui);margin-left:4px}
.v2-enr .enr-manque .s,.v2-enr .enr-midi .s{font-size:12px;color:var(--ink-2);font-weight:600}
.v2-enr .enr-midi{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.v2-enr .enr-midi b.n.haut{color:var(--c-perte)}
.v2-enr .enr-midi.c{padding-top:10px;border-top:1px dashed var(--v2-trait)}
.v2-enr .enr-apres{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding-top:12px;border-top:1px solid var(--v2-trait)}
/* les tableaux a filets : une information par colonne */
.v2-enr .enr-tbl-hote{overflow-x:auto}
.v2-enr .enr-tbl{width:100%;border-collapse:collapse;font-size:13px}
.v2-enr .enr-tbl th{font-size:10.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);text-align:left;padding:0 10px 8px;border-bottom:1px solid var(--v2-trait-fort);white-space:nowrap}
.v2-enr .enr-tbl td{padding:10px;border-bottom:1px solid var(--v2-trait);color:var(--ink);vertical-align:middle}
.v2-enr .enr-tbl th:first-child,.v2-enr .enr-tbl td:first-child{padding-left:0}
.v2-enr .enr-tbl th:last-child,.v2-enr .enr-tbl td:last-child{padding-right:0}
.v2-enr .enr-tbl .r{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.v2-enr .enr-tbl td .nom{display:block;font-weight:700}
.v2-enr .enr-tbl td .sous{display:block;font-size:11.5px;color:var(--muted);margin-top:2px}
.v2-enr .enr-tbl td.nom{font-weight:700}
.v2-enr .enr-tbl td.fort{color:var(--c-perte);font-weight:700}
.v2-enr .enr-tbl tr.clic{cursor:pointer}
.v2-enr .enr-tbl tr.clic:hover td{background:var(--brand-soft)}
.v2-enr .enr-tbl tr.total td{font-weight:800;border-bottom:0;border-top:1px solid var(--v2-trait-fort)}
.v2-enr .enr-tbl tr.vide td{color:var(--muted);padding:18px 0}
.v2-enr .enr-tbl td.actions{display:flex;gap:6px;justify-content:flex-end}
.v2-enr .enr-tbl .fil{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700}
.v2-enr .enr-tbl .fil::before{content:"";width:8px;height:8px;border-radius:2px;background:var(--c-pv)}
.v2-enr .enr-tbl .fil.hydro::before{background:var(--c-hy)}
.v2-enr .statut{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.03em;border:1px solid var(--v2-trait-fort);color:var(--ink-2)}
.v2-enr .statut.projet{border-color:color-mix(in srgb,var(--c-fact) 55%,transparent);color:var(--c-fact);background:color-mix(in srgb,var(--c-fact) 9%,transparent)}
/* la journee type : la demande, le solaire, ce qui depasse */
.v2-enr .enr-jour{display:block;width:100%;height:auto}
.v2-enr .enr-jour .grille{stroke:var(--v2-trait);stroke-width:1}
.v2-enr .enr-jour .axe{font-size:10px;fill:var(--muted);font-family:var(--ui)}
.v2-enr .enr-jour .sol{fill:color-mix(in srgb,var(--c-pv) 30%,transparent);stroke:var(--c-pv);stroke-width:1.6}
.v2-enr .enr-jour .sol-c{fill:none;stroke:var(--c-pv);stroke-width:1.4;stroke-dasharray:4 3}
.v2-enr .enr-jour .surplus{fill:color-mix(in srgb,var(--c-perte) 45%,transparent)}
.v2-enr .enr-jour .surplus.c{fill:color-mix(in srgb,var(--c-perte) 18%,transparent)}
.v2-enr .enr-jour .dem{fill:none;stroke:var(--ink);stroke-width:2;stroke-linejoin:round}
.v2-enr .enr-leg{display:flex;gap:16px;flex-wrap:wrap;font-size:11.5px;color:var(--ink-2);font-weight:600}
.v2-enr .enr-leg span{display:inline-flex;align-items:center;gap:6px}
.v2-enr .enr-leg span::before{content:"";width:12px;height:10px;border-radius:2px}
.v2-enr .enr-leg .dem::before{height:2px;background:var(--ink)}
.v2-enr .enr-leg .sol::before{background:color-mix(in srgb,var(--c-pv) 45%,transparent);border:1px solid var(--c-pv)}
.v2-enr .enr-leg .sol-c::before{height:0;border-top:2px dashed var(--c-pv)}
.v2-enr .enr-leg .surplus::before{background:color-mix(in srgb,var(--c-perte) 45%,transparent)}
.v2-enr .enr-leg .sans::before{width:10px;border-radius:50%;background:var(--enr-sans)}
.v2-enr .enr-leg .avec::before{width:6px;height:6px;border-radius:50%;background:var(--enr-avec)}
.v2-enr .enr-leg .centrale::before{width:9px;height:9px;background:var(--c-pv)}
/* ou electrifier : la carte des localites, et la liste */
.v2-enr .enr-el{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:22px;align-items:start}
.v2-enr .enr-el-carte{display:flex;flex-direction:column;gap:10px;min-width:0}
.v2-enr .enr-el-liste{display:flex;flex-direction:column;gap:14px;min-width:0}
.v2-enr .enr-carte{display:block;width:100%;height:auto;max-height:340px}
.v2-enr .enr-carte .terre{fill:var(--v2-surface-2);stroke:var(--v2-trait-fort);stroke-width:1}
.v2-enr .enr-carte .avec{fill:var(--enr-avec);opacity:.7}
.v2-enr .enr-carte .sans{fill:var(--enr-sans);fill-opacity:.55;stroke:var(--enr-sans);stroke-width:1;cursor:pointer}
.v2-enr .enr-carte .sans:hover{fill-opacity:.9}
.v2-enr .enr-carte .centrale{fill:var(--c-pv);stroke:var(--v2-surface);stroke-width:1}
.v2-enr .enr-carte .centrale.hydro{fill:var(--c-hy)}
.v2-enr .enr-carte .centrale.chantier{fill:var(--v2-surface);stroke:var(--c-pv);stroke-width:1.6}
.v2-pp .hy-grille>.enr-col{display:flex;flex-direction:column;gap:16px;min-width:0}
.v2-enr .enr-lien{border:0;background:none;padding:0;font:inherit;font-size:12.5px;font-weight:700;color:var(--brand);cursor:pointer}
/* le parcours d'une etude garde l'en-tete et les onglets de la page */
.v2-enr.tete-seule{flex:0 0 auto;background:transparent}
.v2-enr.tete-seule .hy-modules{padding-bottom:4px}
.v2-nc-usages{width:100%;border-collapse:collapse;font-size:12.5px;margin:4px 0}
.v2-nc-usages th{font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:left;padding:0 8px 6px;border-bottom:1px solid var(--v2-trait-fort)}
.v2-nc-usages td{padding:7px 8px;border-bottom:1px solid var(--v2-trait)}
.v2-nc-usages .r{text-align:right;white-space:nowrap}
.v2-nc-usages input.v2-nc-saisie{width:120px;min-height:30px;padding:4px 8px;border:1px solid var(--v2-trait-fort);border-radius:8px;background:var(--v2-surface);color:var(--ink);font:inherit}

/* =====================================================================
   ENERGIES RENOUVELABLES, LE REFERENTIEL (01/10/2026)
   La marche des renouvelables, le registre du parc, la fiche d'une
   installation, le cycle des etudes. Les couleurs de filiere sont celles
   de la Chaine (--c-pv, --c-hy) ; la nature d'une donnee se lit par la
   matiere (pleine, hachuree), jamais par une couleur de plus.
   ===================================================================== */
.v2-enr{--pr-mes:#1F8A5B;--pr-dec:#2F6FBF;--pr-pub:#7E93B5;--pr-est:#9AA6BA;--pr-pv0:#C99A12;--pr-pv1:#DDB43A;--pr-pv2:#B3870B}
html[data-theme="dark"] .v2-enr{--pr-mes:#4CC98C;--pr-dec:#7FB0F0;--pr-pub:#8C9DB8;--pr-est:#6E7A90;--pr-pv0:#E8C34A;--pr-pv1:#F2D77A;--pr-pv2:#C9A42E}
.v2-enr .pr-msg{padding:10px 14px;border-radius:12px;font-size:12.5px;font-weight:600;border:1px solid var(--v2-trait);background:var(--v2-surface-2);color:var(--ink-2)}
.v2-enr .pr-msg.ok{border-color:color-mix(in srgb,var(--c-fact) 40%,var(--v2-trait));background:color-mix(in srgb,var(--c-fact) 8%,var(--v2-surface));color:var(--c-fact)}
.v2-enr .pr-msg.ko{border-color:color-mix(in srgb,var(--c-perte) 40%,var(--v2-trait));background:color-mix(in srgb,var(--c-perte) 8%,var(--v2-surface));color:var(--c-perte)}
.v2-enr .pr-msg.info{color:var(--ink-2)}
.v2-enr .hy-grille>.pr-msg{grid-column:1/-1}
.v2-enr .pr-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.v2-enr .pr-l{display:grid;grid-template-columns:minmax(150px,42%) minmax(0,1fr);gap:12px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--v2-trait)}
.v2-enr .pr-l:last-child{border-bottom:0}
.v2-enr .pr-l>.k{font-size:12.5px;color:var(--ink-2);font-weight:600}
.v2-enr .pr-l>.v,.v2-enr .pr-l>b.n{font-size:13.5px;color:var(--ink);font-weight:600;min-width:0}
.v2-enr .pr-l b.n{font-size:17px;font-family:var(--mono,ui-monospace,monospace);font-weight:700}
.v2-enr .pr-l b.n small{font-size:12px;font-family:var(--ui);margin-left:4px}
.v2-enr .pr-l b.n.cible{color:var(--ink)}
.v2-enr .pr-l.manque{background:color-mix(in srgb,var(--c-pv) 9%,var(--v2-surface));border:1px solid color-mix(in srgb,var(--c-pv) 30%,var(--v2-trait));border-radius:12px;padding:10px 12px;margin-top:6px}
.v2-enr .pr-l.manque .v{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.v2-enr .pr-l.manque .s{font-size:12px;color:var(--ink-2);font-weight:600}
.v2-enr .pr-l.attente .enr-lien{color:var(--warn,#B7791F)}

/* le glyphe de filiere : le soleil, la goutte */
.v2-enr svg.pr-g{width:15px;height:15px;flex:0 0 auto;vertical-align:-2px}
.v2-enr svg.pr-g.pv circle{fill:var(--c-pv)}
.v2-enr svg.pr-g.pv line{stroke:var(--c-pv);stroke-width:1.4;stroke-linecap:round}
.v2-enr svg.pr-g.hy path{fill:var(--c-hy)}

/* LA TRAJECTOIRE : le socle (le reste est plus bas, 01/10/2026) */
.v2-enr .pr-marche{grid-column:1/-1}
.v2-enr .pr-traj-hote{overflow-x:auto}
.v2-enr .pr-traj{display:block;width:100%;min-width:760px;height:auto}
.v2-enr .pr-traj .an{stroke:var(--v2-trait);stroke-width:1}
.v2-enr .pr-traj .grille{stroke:var(--v2-trait);stroke-width:1;stroke-dasharray:2 4}
.v2-enr .pr-traj .axe{font-size:10.5px;fill:var(--muted);font-family:var(--ui)}
.v2-enr .pr-leg{display:flex;gap:16px;flex-wrap:wrap;font-size:11.5px;color:var(--ink-2);font-weight:600}
.v2-enr .pr-leg span{display:inline-flex;align-items:center;gap:6px}
.v2-enr .pr-leg span::before{content:"";width:12px;height:10px;border-radius:2px;background:var(--v2-trait-fort)}
.v2-enr .pr-leg .pv::before{background:var(--c-pv)}
.v2-enr .pr-leg .hy::before{background:var(--c-hy)}
.v2-enr .pr-leg .estime::before{background:repeating-linear-gradient(135deg,var(--c-pv) 0 2px,transparent 2px 5px);border:1px solid var(--c-pv)}
.v2-enr .pr-leg .attendu::before{height:0;border-top:2px solid var(--ink);background:none}

/* le fil : ce qui a change, ce qui arrive, les evenements */
.v2-enr .pr-fil{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.v2-enr .pr-fil li{display:grid;grid-template-columns:118px minmax(0,1fr) auto;gap:4px 12px;align-items:baseline;padding:10px 4px;border-bottom:1px solid var(--v2-trait)}
.v2-enr .pr-fil li:last-child{border-bottom:0}
.v2-enr .pr-fil li.clic{cursor:pointer;border-radius:10px}
.v2-enr .pr-fil li.clic:hover{background:var(--brand-soft)}
.v2-enr .pr-fil .quand{font-size:12px;color:var(--ink-2);font-weight:700}
.v2-enr .pr-fil .quoi{display:flex;gap:7px;align-items:baseline;flex-wrap:wrap;min-width:0}
.v2-enr .pr-fil .quoi b{font-size:13px;color:var(--ink)}
.v2-enr .pr-fil .ou{font-size:12px;color:var(--muted)}
.v2-enr .pr-fil .combien{font-family:var(--mono,ui-monospace,monospace);font-weight:700;font-size:13px;color:var(--ink);white-space:nowrap;display:flex;gap:6px;align-items:center}
.v2-enr .pr-fil .plus{grid-column:2/-1;font-size:11.5px;color:var(--muted)}
.v2-enr .pr-fil li.vide{display:block;color:var(--muted);font-size:12.5px}
.v2-enr .pr-fil.evt li.rejete,.v2-enr .pr-fil.evt li.remplace{opacity:.55}

/* LE REGISTRE */
.v2-enr .pr-attente{grid-column:1/-1}
.v2-enr .pr-registre td .nom{display:flex;align-items:center;gap:7px}
.v2-enr .pr-st{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:800;border:1px solid var(--v2-trait-fort);color:var(--ink-2);white-space:nowrap}
.v2-enr .pr-st.en_service{border-color:color-mix(in srgb,var(--c-fact) 50%,transparent);color:var(--c-fact);background:color-mix(in srgb,var(--c-fact) 8%,transparent)}
.v2-enr .pr-st.en_construction,.v2-enr .pr-st.prevue{border-style:dashed;color:var(--c-pv)}
.v2-enr .pr-st.a_l_arret,.v2-enr .pr-st.retiree{color:var(--c-perte)}
.v2-enr .pr-cal{display:inline-grid;grid-template-columns:repeat(12,9px);gap:2px;vertical-align:middle}
.v2-enr .pr-cal i{display:block;width:9px;height:14px;border-radius:2px;background:var(--v2-trait)}
.v2-enr .pr-cal-leg{grid-column:1/-1;display:flex;gap:18px;flex-wrap:wrap;font-size:11.5px;color:var(--ink-2);font-weight:600}
.v2-enr .pr-cal-leg span{display:inline-flex;gap:6px;align-items:center}
.v2-enr .pr-cal-leg span::before{content:"";width:9px;height:13px;border-radius:2px}
.v2-enr .pr-cal-leg .hors::before{border:1px dashed var(--v2-trait-fort)}
.v2-enr .pr-etat{display:inline-block;padding:1px 8px;border-radius:999px;font-size:10.5px;font-weight:800;border:1px solid var(--v2-trait-fort);color:var(--ink-2);white-space:nowrap}
.v2-enr .pr-etat.declare{border-color:color-mix(in srgb,var(--warn,#D69E2E) 55%,transparent);color:var(--warn,#B7791F)}
.v2-enr .pr-etat.controle{border-color:color-mix(in srgb,var(--pr-dec) 55%,transparent);color:var(--pr-dec)}
.v2-enr .pr-etat.valide{border-color:color-mix(in srgb,var(--pr-mes) 55%,transparent);color:var(--pr-mes)}
.v2-enr .pr-etat.rejete{border-color:color-mix(in srgb,var(--c-perte) 55%,transparent);color:var(--c-perte)}
.v2-enr .pr-etat.remplace{color:var(--muted);text-decoration:line-through}
.v2-enr .pr-nat{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;color:var(--ink-2)}
.v2-enr .pr-nat::before{content:"";width:8px;height:8px;border-radius:2px;background:var(--v2-trait-fort)}
.v2-enr .pr-nat.MEASURED::before{background:var(--pr-mes)}
.v2-enr .pr-nat.DECLARED::before,.v2-enr .pr-nat.IMPORTED::before{background:var(--pr-dec)}
.v2-enr .pr-nat.OFFICIAL::before,.v2-enr .pr-nat.DERIVED::before{background:var(--pr-pub)}
.v2-enr .pr-nat.ESTIMATED::before{background:repeating-linear-gradient(135deg,var(--pr-est) 0 2px,transparent 2px 4px);border:1px solid var(--pr-est)}
.v2-enr .pr-nat.aucune::before{background:transparent;border:1px solid var(--c-perte)}
.v2-enr td .versions{margin-left:8px;font-size:11px;color:var(--brand);font-weight:700}
.v2-enr .enr-tbl td.estime{color:var(--ink-2);font-style:italic}
.v2-enr .enr-tbl tr.hors td{color:var(--muted);font-size:12.5px;font-style:italic}
.v2-enr .pr-fil .combien .pr-etat,.v2-enr .pr-fil .combien .v2-b{font-family:var(--ui)}
.v2-enr .enr-tbl td.bas{color:var(--c-perte);font-weight:700}
.v2-enr .enr-tbl td .sous.ko{color:var(--c-perte)}

/* LA FICHE */
.v2-enr .pr-retour{grid-column:1/-1}
.v2-enr .pr-fiche-tete{grid-column:1/-1;display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;padding:4px 2px 6px}
.v2-enr .pr-fiche-tete h2{display:flex;align-items:center;gap:10px;margin:6px 0 8px}
.v2-enr .pr-fiche-tete h2 svg.pr-g{width:22px;height:22px}
.v2-enr .pr-fiche-puces{display:flex;gap:8px;align-items:center}
.v2-enr .pr-fiche-puces .code{font-family:var(--mono,ui-monospace,monospace);font-size:12px;color:var(--muted)}
.v2-enr .pr-dl{display:flex;flex-direction:column}
.v2-enr .pr-mois{display:block;width:100%;height:auto}
.v2-enr .pr-mois .grille{stroke:var(--v2-trait);stroke-width:1}
.v2-enr .pr-mois .axe{font-size:10px;fill:var(--muted);font-family:var(--ui)}
.v2-enr .pr-mois .b.retenu.pv{fill:var(--c-pv)}
.v2-enr .pr-mois .b.retenu.hy{fill:var(--c-hy)}
.v2-enr .pr-mois .b.estime{fill:color-mix(in srgb,var(--pr-est) 22%,transparent);stroke:var(--pr-est);stroke-width:1;stroke-dasharray:3 2}
.v2-enr .pr-mois .attendu{stroke:var(--ink);stroke-width:2;fill:none;stroke-linecap:round}
.v2-enr .pr-mois .attente{fill:var(--warn,#D69E2E)}
.v2-enr .pr-production,.v2-enr .pr-histoire{min-width:0}
.v2-enr .pr-histoire{grid-column:1/-1}
.v2-enr .pr-in{width:100%;min-height:36px;padding:7px 11px;border:1px solid var(--v2-trait-fort);border-radius:10px;background:var(--v2-surface);color:var(--ink);font:inherit;font-size:13px}
.v2-enr .pr-in:focus,.v2-panneau .pr-in:focus{outline:none;border-color:var(--brand);box-shadow:var(--v2-lueur)}
.v2-enr .pr-in.sm,.v2-panneau .pr-in.sm{width:auto;min-height:30px;padding:3px 8px;font-size:12.5px}
.v2-panneau .pr-in{width:100%;min-height:36px;padding:7px 11px;border:1px solid var(--v2-trait-fort);border-radius:10px;background:var(--v2-surface);color:var(--ink);font:inherit;font-size:13px}
.v2-panneau .pr-champ{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.v2-panneau .pr-champ .k{font-size:12px;font-weight:700;color:var(--ink-2)}
.v2-panneau .pr-champ .aide{font-size:11.5px;color:var(--muted)}
.v2-panneau .pr-deux{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.v2-panneau .pr-grille-mois{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:4px 0 14px}
.v2-panneau .pr-grille-mois label{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:var(--ink-2);font-weight:600}
.v2-panneau .pr-colle{font-family:var(--mono,ui-monospace,monospace);font-size:12.5px;resize:vertical}
.v2-panneau .pr-apercu{font-size:12px;color:var(--ink-2);margin:-4px 0 12px}
.v2-panneau .pr-msg{padding:10px 12px;border-radius:10px;font-size:12.5px;margin-bottom:12px;background:var(--surface-2,#F7F9FC);color:var(--ink-2);border:1px solid var(--v2-trait)}
.v2-panneau .pr-msg.ko{color:var(--c-perte,#D9534F);border-color:color-mix(in srgb,#D9534F 40%,transparent)}
.v2-panneau .pr-versions{display:flex;flex-direction:column;gap:10px}
.v2-panneau .pr-version{padding:12px 14px;border-radius:12px;border:1px solid var(--v2-trait);background:var(--v2-surface)}
.v2-panneau .pr-version.remplace,.v2-panneau .pr-version.rejete{opacity:.7}
.v2-panneau .pr-version .haut{display:flex;gap:9px;align-items:baseline;flex-wrap:wrap;margin-bottom:6px}
.v2-panneau .pr-version .val{font-family:var(--mono,ui-monospace,monospace);font-size:15px}
.v2-panneau .pr-version.remplace .val,.v2-panneau .pr-version.rejete .val{text-decoration:line-through}
.v2-panneau .pr-version .per{font-size:12px;color:var(--muted)}
.v2-panneau .pr-l{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px;padding:4px 0;font-size:12px}
.v2-panneau .pr-l>.k{color:var(--muted)}
.v2-panneau .pr-l>.v{color:var(--ink)}
.v2-panneau .pr-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.v2-panneau .pr-etat{display:inline-block;padding:1px 8px;border-radius:999px;font-size:10.5px;font-weight:800;border:1px solid var(--v2-trait-fort);color:var(--ink-2)}
.v2-panneau .pr-nat{font-size:12px;font-weight:700;color:var(--ink-2)}

/* LE CYCLE DES ETUDES */
.v2-enr .pr-cycle-pan{grid-column:1/-1}
.v2-enr ol.pr-cycle{list-style:none;margin:0;padding:0;display:flex;align-items:stretch;gap:10px;flex-wrap:wrap}
.v2-enr ol.pr-cycle li{flex:1 1 150px;display:flex;flex-direction:column;gap:3px;padding:12px 14px;border-radius:14px;border:1px solid var(--v2-trait);background:var(--v2-surface-2);cursor:pointer;transition:border-color var(--v2-t)}
.v2-enr ol.pr-cycle li:hover,.v2-enr ol.pr-cycle li.on{border-color:var(--brand)}
.v2-enr ol.pr-cycle li.on{box-shadow:var(--v2-lueur)}
.v2-enr ol.pr-cycle li b{font-size:24px;font-family:var(--mono,ui-monospace,monospace);color:var(--ink)}
.v2-enr ol.pr-cycle li .t{font-size:13px;font-weight:800;color:var(--ink)}
.v2-enr ol.pr-cycle li .s{font-size:11.5px;color:var(--muted)}
.v2-enr ol.pr-cycle li.installation{border-left:3px solid var(--pr-mes)}
.v2-enr ol.pr-cycle li.fleche{flex:0 0 auto;border:0;background:none;cursor:default;justify-content:center;color:var(--muted);font-size:18px;padding:0}
.v2-enr .statut.realise{border-color:color-mix(in srgb,var(--pr-mes) 55%,transparent);color:var(--pr-mes)}
.v2-enr .statut.abandonne{color:var(--muted);text-decoration:line-through}
.v2-enr tr.abandonne td{opacity:.6}
.v2-enr .pr-perimetres{grid-column:1/-1}
.v2-enr .pr-types{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.v2-enr .pr-type{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border-radius:12px;border:1px solid var(--v2-trait);background:var(--v2-surface-2)}
.v2-enr .pr-type b{font-size:12.5px;color:var(--ink)}
.v2-enr .pr-type span{font-size:11.5px;color:var(--muted)}
.v2-enr .pr-type.indispo{border-style:dashed;opacity:.75}
.v2-enr button.pr-type{font:inherit;text-align:left;cursor:pointer;transition:border-color var(--v2-t)}
.v2-enr button.pr-type:hover{border-color:var(--brand)}

/* les installations sur la carte de l'archipel */
.v2-enr .hy-carte .site{stroke:var(--v2-surface);stroke-width:1;pointer-events:none}
.v2-enr .hy-carte .site.pv{fill:var(--c-pv)}
.v2-enr .hy-carte .site.hy{fill:var(--c-hy)}
.v2-enr .hy-carte .site.chantier{fill:var(--v2-surface);stroke:var(--c-pv);stroke-width:1.2}
@media (max-width:1250px){.v2-enr .pr-fil li{grid-template-columns:96px minmax(0,1fr) auto}}
@media (max-width:620px){.v2-enr .pr-l{grid-template-columns:1fr}.v2-panneau .pr-deux{grid-template-columns:1fr}.v2-panneau .pr-grille-mois{grid-template-columns:repeat(2,minmax(0,1fr))}}

@media (max-width:1250px){.v2-enr .enr-el{grid-template-columns:1fr}.v2-enr .hy-chs.quatre{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.v2-enr .enr-grand b.n{font-size:32px}.v2-enr .hy-chs.quatre{grid-template-columns:1fr}}

/* LE REGISTRE D'UN SEUL TENANT : chercher, trier, filtrer ; le resume a cote */
.v2-enr .pr-table.pleine{grid-column:1/-1}
.v2-enr .pr-outils{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.v2-enr .pr-outils .pr-in{width:auto;min-height:38px}
.v2-enr .pr-outils .pr-recherche{flex:1 1 280px;max-width:380px;padding-left:34px;background:var(--v2-surface) no-repeat 12px 50%/14px 14px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%238792A5' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='7' cy='7' r='4.6'/%3E%3Cpath d='M10.4 10.4L14 14'/%3E%3C/svg%3E")}
.v2-enr .pr-outils select.pr-in{flex:0 1 210px;cursor:pointer}
.v2-enr .pr-outils .enr-lien{padding:0 4px}
.v2-enr .pr-compte{margin-left:auto;font-size:12px;color:var(--muted);font-weight:600;white-space:nowrap}
.v2-enr .pr-registre th{padding-top:0;padding-bottom:0}
.v2-enr .pr-tri{border:0;background:none;padding:8px 0;font:inherit;font-size:inherit;font-weight:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.v2-enr .pr-tri::after{content:"";width:7px;height:7px;opacity:.35;background:no-repeat center/7px 7px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath d='M4 0l3 3H1zM4 8L1 5h6z' fill='%238792A5'/%3E%3C/svg%3E")}
.v2-enr .pr-tri:hover{color:var(--ink)}
.v2-enr .pr-tri.monte::after,.v2-enr .pr-tri.descend::after{opacity:1;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath d='M4 1l3.5 5h-7z' fill='%232563D9'/%3E%3C/svg%3E")}
.v2-enr .pr-tri.descend::after{transform:rotate(180deg)}
.v2-enr .pr-tri.monte,.v2-enr .pr-tri.descend{color:var(--pr-ligne)}
.v2-enr th.r .pr-tri{flex-direction:row-reverse}
.v2-enr .pr-registre tr.choisie td{background:var(--brand-soft)}
.v2-enr .pr-registre tr.choisie td:first-child{box-shadow:inset 3px 0 0 var(--pr-ligne)}
.v2-enr .pr-registre tr.vide td{text-align:center;color:var(--muted);font-size:12.5px;padding:18px}
.v2-enr .pr-registre td .sous{font-family:var(--mono,ui-monospace,monospace);font-size:11px;letter-spacing:.02em}

/* le resume d'une installation */
.v2-enr .pr-resume{gap:14px;align-self:start;position:sticky;top:12px}
.v2-enr .pr-res-tete{display:flex;align-items:flex-start;gap:10px}
.v2-enr .pr-res-tete svg.pr-g{width:24px;height:24px;margin-top:2px}
.v2-enr .pr-res-tete .t{flex:1 1 auto;min-width:0}
.v2-enr .pr-res-tete h3{margin:0;font-size:16.5px;font-weight:800;color:var(--ink);letter-spacing:-.01em}
.v2-enr .pr-res-tete .code{font-family:var(--mono,ui-monospace,monospace);font-size:11.5px;color:var(--muted)}
.v2-enr .pr-fermer{border:0;background:var(--v2-surface-2);color:var(--ink-2);width:28px;height:28px;border-radius:8px;font-size:18px;line-height:1;cursor:pointer;flex:0 0 auto}
.v2-enr .pr-fermer:hover{color:var(--ink);background:var(--v2-trait)}
.v2-enr .pr-resume>.pr-st{align-self:flex-start}
.v2-enr .pr-kvs{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--v2-trait)}
.v2-enr .pr-kv{display:flex;flex-direction:column;gap:3px;padding:10px 0;border-bottom:1px solid var(--v2-trait);min-width:0}
.v2-enr .pr-kv:nth-child(odd){padding-right:12px}
.v2-enr .pr-kv .k{font-size:11.5px;color:var(--muted);font-weight:600}
.v2-enr .pr-kv b{font-size:13.5px;color:var(--ink);font-weight:700;overflow-wrap:anywhere}
.v2-enr .pr-res-prod{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border-radius:12px;background:var(--v2-surface-2)}
.v2-enr .pr-res-prod .k{font-size:11.5px;color:var(--muted);font-weight:600}
.v2-enr .pr-res-prod b{font-size:20px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.v2-enr .pr-res-source{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--ink-2);padding:10px 12px;border:1px solid var(--v2-trait);border-radius:12px}
.v2-enr .pr-res-source .k{font-size:11.5px;color:var(--muted);font-weight:600}
@media (max-width:1250px){.v2-enr .pr-resume{position:static}}
.v2-enr .pr-registre.compacte .c-ile,.v2-enr .pr-registre.compacte .c-stockage,.v2-enr .pr-registre.compacte .c-mise{display:none}
.v2-enr .pr-registre td .sous{white-space:nowrap}
.v2-enr .pr-registre td.c-nom .nom{font-weight:700;color:var(--ink)}

/* =====================================================================
   ENERGIES RENOUVELABLES, LA VUE D'ENSEMBLE (01/10/2026, reprise sur les
   retours de Bayss) : la grammaire de la maison (panneaux, titres,
   chiffres en chasse fixe), des dessins traces a leur taille reelle, des
   traits fins. Le mix electrique, a cote de la carte, choisit la source.
   ===================================================================== */
.v2-enr{--pr-ligne:#2563D9;--pr-ligne-doux:#9DB8EE;--pr-th:color-mix(in srgb,var(--c-th) 42%,var(--v2-surface-2))}
html[data-theme="dark"] .v2-enr{--pr-ligne:#7FB0F0;--pr-ligne-doux:#4A6FA8;--pr-th:color-mix(in srgb,var(--c-th) 45%,var(--v2-surface-2))}
.v2-enr .hy-jauge.enr.hy i,.v2-enr .hy-carte .eti .plein.hy{background:var(--c-hy);fill:var(--c-hy)}

/* le mix electrique : la barre, l'accolade EnR, et le choix de la source */
.v2-enr .pr-mix{flex:1 1 380px;min-width:0;display:flex;flex-direction:column;gap:14px;border:1px solid var(--v2-trait);border-radius:14px;background:var(--v2-surface);padding:14px 18px}
.v2-enr .pr-mx-tete{display:flex;align-items:baseline;gap:10px}
.v2-enr .pr-mx-tete .k{font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.v2-enr .pr-mx-tete b{font-size:13px;font-weight:800;color:var(--ink)}
.v2-enr .pr-mx-graphe{display:flex;flex-direction:column;gap:3px}
.v2-enr .pr-mx-enr{align-self:flex-start;display:flex;align-items:baseline;justify-content:center;gap:6px;border:1.5px solid var(--v2-trait-fort);border-bottom:0;border-radius:7px 7px 0 0;background:transparent;padding:2px 6px 5px;font:inherit;cursor:pointer;color:var(--ink-2);white-space:nowrap;transition:border-color var(--v2-t),color var(--v2-t)}
.v2-enr .pr-mx-enr b{font-size:12px;font-weight:800;letter-spacing:.04em}
.v2-enr .pr-mx-enr span{font-family:var(--mono,ui-monospace,monospace);font-size:12.5px;font-weight:700}
.v2-enr .pr-mx-enr.choisi{border-color:var(--c-pv);color:var(--ink)}
.v2-enr .pr-mx-enr:hover{border-color:var(--ink-2);color:var(--ink)}
.v2-enr .pr-mx-barre{display:flex;height:24px;border-radius:7px;overflow:hidden;background:var(--v2-trait)}
.v2-enr .pr-mx-seg{display:flex;align-items:center;justify-content:center;min-width:0;height:100%;border:0;padding:0;margin:0;font:inherit;transition:opacity var(--v2-t),filter var(--v2-t)}
.v2-enr .pr-mx-seg span{font-family:var(--mono,ui-monospace,monospace);font-size:11.5px;font-weight:700;white-space:nowrap;overflow:hidden}
.v2-enr button.pr-mx-seg{cursor:pointer}
.v2-enr button.pr-mx-seg:hover{filter:brightness(1.08)}
.v2-enr .pr-mx-seg.pv{background:var(--c-pv);color:#2B2205}
.v2-enr .pr-mx-seg.hy{background:var(--c-hy);color:#fff}
.v2-enr .pr-mx-seg.th{background:var(--pr-th);color:var(--ink-2)}
.v2-enr .pr-mx-seg.eteint{opacity:.3}
.v2-enr .pr-mx-seg.choisi{box-shadow:inset 0 0 0 2px var(--ink)}
.v2-enr .pr-mx-seg:focus-visible,.v2-enr .pr-mx-enr:focus-visible,.v2-enr .pr-mx-it:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.v2-enr .pr-mx-leg{display:flex;gap:10px 40px;flex-wrap:wrap;padding-top:4px}
.v2-enr .pr-mx-it{flex:0 0 auto;width:max-content;display:inline-flex;align-items:baseline;gap:9px;border:0;background:none;padding:2px 0;font:inherit;font-size:12.5px;color:var(--ink-2);white-space:nowrap}
.v2-enr button.pr-mx-it{cursor:pointer;border-bottom:2px solid transparent}
.v2-enr button.pr-mx-it:hover{color:var(--ink)}
.v2-enr .pr-mx-it.choisi{border-bottom-color:var(--ink);color:var(--ink)}
.v2-enr .pr-mx-it.eteint{opacity:.45}
.v2-enr .pr-mx-it i{width:10px;height:10px;border-radius:3px;align-self:center}
.v2-enr .pr-mx-it i.pv{background:var(--c-pv)}.v2-enr .pr-mx-it i.hy{background:var(--c-hy)}.v2-enr .pr-mx-it i.th{background:var(--pr-th)}
.v2-enr .pr-mx-it .n{font-weight:700}
.v2-enr .pr-mx-it b{font-family:var(--mono,ui-monospace,monospace);font-weight:700;color:var(--ink)}
.v2-enr .pr-mx-it .pr-q{font-family:var(--mono,ui-monospace,monospace);color:var(--muted)}
.v2-enr .pr-mx-chiffres{display:flex;gap:10px 44px;flex-wrap:wrap;margin-top:auto;padding-top:10px;border-top:1px solid var(--v2-trait)}
.v2-enr .pr-mx-chiffres>span{display:inline-flex;align-items:baseline;gap:6px;font-size:12px;color:var(--ink-2)}
.v2-enr .pr-mx-chiffres b{font-family:var(--mono,ui-monospace,monospace);font-size:16px;font-weight:700;color:var(--ink)}

/* les dessins, a leur taille reelle */
.v2-enr .pr-dessin{position:relative;min-width:0}
.v2-enr .pr-dessin svg{display:block;width:100%;height:auto;min-width:0;overflow:visible}
.v2-enr .pr-traj-hote{min-height:300px;overflow:visible}
.v2-enr .pr-mois-hote{min-height:230px}
.v2-enr .pr-dessin .axe{font-size:11.5px;fill:var(--muted);font-family:var(--ui)}
.v2-enr .pr-dessin .axe.fort{fill:var(--ink);font-weight:700}
.v2-enr .pr-dessin .axe.unite{font-size:10.5px}
.v2-enr .pr-dessin .grille{stroke:var(--v2-trait);stroke-width:1;stroke-dasharray:none}
.v2-enr .pr-dessin .base{stroke:var(--v2-trait-fort);stroke-width:1}
.v2-enr .pr-dessin .survol{fill:transparent;cursor:pointer}
.v2-enr .pr-traj .cible{fill:var(--brand);stroke:var(--v2-surface);stroke-width:2}
.v2-enr .pr-traj .objectif-tx{font-size:11.5px;font-weight:700;fill:var(--brand);font-family:var(--ui)}
.v2-enr .pr-traj stop.aire-haut{stop-color:var(--pr-ligne);stop-opacity:.13}
.v2-enr .pr-traj stop.aire-bas{stop-color:var(--pr-ligne);stop-opacity:0}
.v2-enr .pr-traj .aire{fill:url(#pr-traj-aire);stroke:none}
.v2-enr .pr-traj .trait{fill:none;stroke:var(--pr-ligne);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.v2-enr .pr-traj .trait.projection{stroke-dasharray:5 5}
.v2-enr .pr-traj .pt{fill:var(--v2-surface);stroke:var(--pr-ligne);stroke-width:2}
.v2-enr .pr-traj .pt.courante{fill:var(--pr-ligne);stroke:var(--v2-surface);stroke-width:2.5}
.v2-enr .pr-traj .pt.projection{stroke:var(--pr-ligne-doux)}
.v2-enr .pr-traj .val{font-family:var(--mono,ui-monospace,monospace);font-size:11.5px;font-weight:600;fill:var(--ink-2)}
.v2-enr .pr-traj .val.courante{fill:var(--ink);font-weight:800;font-size:12.5px}
.v2-enr .pr-traj .val.projection{fill:var(--muted)}
.v2-enr .pr-traj .guide{stroke:var(--ink-2);stroke-width:1;stroke-dasharray:2 3}
.v2-enr .pr-info{position:absolute;z-index:5;pointer-events:none;display:flex;flex-direction:column;gap:2px;min-width:170px;max-width:280px;padding:8px 11px;border:1px solid var(--v2-trait-fort);border-radius:10px;background:var(--v2-surface);box-shadow:var(--v2-ombre);font-size:12px;color:var(--ink-2)}
.v2-enr .pr-info b{font-size:12.5px;color:var(--ink);font-family:var(--mono,ui-monospace,monospace)}
.v2-enr .pr-info[hidden]{display:none}
.v2-enr .pr-leg.traj,.v2-enr .pr-leg.mois{justify-content:center;gap:22px;font-size:11.5px;font-weight:600}
.v2-enr .pr-leg.traj .passe::before{width:22px;height:0;border-radius:0;border-top:2px solid var(--pr-ligne);background:none}
.v2-enr .pr-leg.traj .projection::before{width:22px;height:0;border-radius:0;border-top:2px dashed var(--pr-ligne);background:none}
.v2-enr .pr-leg.traj .objectif::before{width:9px;height:9px;transform:rotate(45deg);border-radius:1px;background:var(--brand)}
.v2-enr .pr-leg.mois .pv::before{background:var(--c-pv)}
.v2-enr .pr-leg.mois .hy::before{background:var(--c-hy)}
.v2-enr .pr-leg.mois .avenir::before{background:var(--c-pv);opacity:.35}
.v2-enr .pr-leg.mois .ch::before{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--ink-2) 45%,transparent) 0 2px,transparent 2px 5px);box-shadow:inset 0 0 0 1px var(--ink-2)}

/* la production mois par mois */
.v2-enr .pr-mois-g rect.pv{fill:var(--c-pv)}
.v2-enr .pr-mois-g rect.hy{fill:var(--c-hy)}
.v2-enr .pr-mois-g .mois.avenir rect.pv,.v2-enr .pr-mois-g .mois.avenir rect.hy{opacity:.35}
.v2-enr .pr-mois-g .mois:hover rect.pv,.v2-enr .pr-mois-g .mois:hover rect.hy{filter:brightness(1.08)}

/* la production de l'annee */
.v2-enr .pr-prod{justify-content:space-between}
.v2-enr .pr-prod-haut{display:flex;align-items:center;gap:14px 28px;flex-wrap:wrap;padding-bottom:18px;border-bottom:1px solid var(--v2-trait)}
.v2-enr .pr-evol{display:flex;align-items:center;gap:9px}
.v2-enr .pr-evol b{display:block;font-family:var(--mono,ui-monospace,monospace);font-size:14px;font-weight:700}
.v2-enr .pr-evol span{display:block;font-size:12px;color:var(--ink-2)}
.v2-enr svg.pr-fleche{width:20px;height:20px;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.v2-enr .pr-evol.hausse b,.v2-enr svg.pr-fleche.hausse{color:var(--c-fact);stroke:var(--c-fact)}
.v2-enr .pr-evol.baisse b,.v2-enr svg.pr-fleche.baisse{color:var(--c-perte);stroke:var(--c-perte)}
.v2-enr .pr-evol.stable b{color:var(--ink-2)}.v2-enr svg.pr-fleche.stable{stroke:var(--ink-2)}
.v2-enr .pr-stats{display:grid;grid-template-columns:1fr 1fr}
.v2-enr .pr-stat{padding:0 16px;border-left:1px solid var(--v2-trait);display:flex;flex-direction:column;gap:4px;min-width:0}
.v2-enr .pr-stat:first-child{padding-left:0;border-left:0}
.v2-enr .pr-stat b.n{font-size:20px;font-family:var(--mono,ui-monospace,monospace);font-weight:700;color:var(--ink)}
.v2-enr .pr-stat b.n small{font-size:12px;margin-left:4px;font-family:var(--ui)}
.v2-enr .pr-stat>span{font-size:12px;color:var(--ink-2);line-height:1.3}
.v2-enr .pr-split{display:flex;flex-direction:column;gap:12px;padding-top:18px;border-top:1px solid var(--v2-trait)}
.v2-enr .pr-split-barre{display:flex;height:8px;border-radius:4px;overflow:hidden;background:var(--v2-trait)}
.v2-enr .pr-split-barre i{display:block;height:100%}
.v2-enr .pr-split-barre i.pv{background:var(--c-pv)}.v2-enr .pr-split-barre i.hy{background:var(--c-hy)}
.v2-enr .pr-split-leg{display:flex;gap:8px 32px;flex-wrap:wrap}
.v2-enr .pr-split-leg .pr-f{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-2);white-space:nowrap}
.v2-enr .pr-split-leg .pr-f::before{content:"";width:9px;height:9px;border-radius:2px}
.v2-enr .pr-split-leg .pr-f.pv::before{background:var(--c-pv)}.v2-enr .pr-split-leg .pr-f.hy::before{background:var(--c-hy)}
.v2-enr .pr-split-leg .pr-f b{font-family:var(--mono,ui-monospace,monospace);font-weight:700;color:var(--ink)}
.v2-enr .pr-split-leg .pr-q{font-family:var(--mono,ui-monospace,monospace);color:var(--muted)}
.v2-enr .pr-split-leg .pr-f.eteint{opacity:.45}

/* les mises en service, les chantiers */
.v2-enr .pr-changements .pr-fil li,.v2-enr .pr-avenir .pr-fil li{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"quoi combien" "quand combien";gap:2px 14px;align-items:center}
.v2-enr .pr-changements .pr-fil .quoi,.v2-enr .pr-avenir .pr-fil .quoi{grid-area:quoi;align-items:center;flex-wrap:nowrap}
.v2-enr .pr-changements .pr-fil .quand,.v2-enr .pr-avenir .pr-fil .quand{grid-area:quand;font-weight:500;font-size:11.5px;color:var(--muted);line-height:1.25;padding-left:15px}
.v2-enr .pr-changements .pr-fil .combien,.v2-enr .pr-avenir .pr-fil .combien{grid-area:combien}
.v2-enr .pr-pastille{flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:var(--c-pv)}
.v2-enr .pr-pastille.hy{background:var(--c-hy)}
.v2-enr .pr-route-ligne{margin-top:auto;display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:12px;background:var(--brand-soft);font-size:12.5px;color:var(--ink-2)}
.v2-enr .pr-route-ligne b{color:var(--ink);font-size:13px}
.v2-enr .pr-route-ligne.clic{cursor:pointer}
.v2-enr .pr-route-ligne.atteint{background:color-mix(in srgb,var(--c-fact) 10%,var(--v2-surface))}
.v2-enr .pr-route-ligne.atteint b{color:var(--c-fact)}

/* le gasoil evite */
.v2-enr .pr-gasoil-iles{display:flex;flex-direction:column;border-top:1px solid var(--v2-trait-fort);padding-top:6px}
.v2-enr .pr-gasoil-iles .r{display:grid;grid-template-columns:minmax(0,1fr) auto 86px;gap:12px;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--v2-trait);font-size:12.5px;color:var(--ink-2)}
.v2-enr .pr-gasoil-iles .r:last-child{border-bottom:0}
.v2-enr .pr-gasoil-iles .g{font-family:var(--mono,ui-monospace,monospace);color:var(--muted)}
.v2-enr .pr-gasoil-iles b{font-family:var(--mono,ui-monospace,monospace);color:var(--ink);text-align:right}

/* la puissance par ile */
.v2-enr .pr-pu-l{display:grid;grid-template-columns:130px minmax(0,1fr) 180px;gap:20px;align-items:center;padding:11px 8px;border-radius:10px}
.v2-enr .pr-pu-l.clic{cursor:pointer}
.v2-enr .pr-pu-l.total{margin-top:6px;padding-top:14px;border-top:1px solid var(--v2-trait-fort);border-radius:0}
.v2-enr .pr-pu-l.total .n{font-size:12.5px;color:var(--muted)}
.v2-enr .pr-pu-l.clic:hover{background:var(--brand-soft)}
.v2-enr .pr-pu-l.eteint{opacity:.45}
.v2-enr .pr-pu-l .nom{font-size:13px;font-weight:700;color:var(--ink)}
.v2-enr .pr-pu-l .barre{display:flex;height:14px;border-radius:4px;overflow:hidden;background:var(--v2-trait)}
.v2-enr .pr-pu-l .barre i{display:block;height:100%}
.v2-enr .pr-pu-l .barre i.pv{background:var(--c-pv)}.v2-enr .pr-pu-l .barre i.hy{background:var(--c-hy)}
.v2-enr .pr-pu-l .barre i.ch.pv{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--c-pv) 55%,transparent) 0 2px,transparent 2px 5px);box-shadow:inset 0 0 0 1px var(--c-pv)}
.v2-enr .pr-pu-l .barre i.ch.hy{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--c-hy) 55%,transparent) 0 2px,transparent 2px 5px);box-shadow:inset 0 0 0 1px var(--c-hy)}
.v2-enr .pr-pu-l .v{display:flex;flex-direction:column;gap:1px}
.v2-enr .pr-pu-l .v b{font-family:var(--mono,ui-monospace,monospace);font-size:13.5px;color:var(--ink)}
.v2-enr .pr-pu-l .v span{font-size:11.5px;color:var(--muted)}

/* les donnees a completer */
.v2-enr .pr-dc-haut{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.v2-enr .pr-dc-txt{display:flex;flex-direction:column;gap:2px;font-size:12.5px;color:var(--ink-2)}
.v2-enr .pr-dc-txt b{font-size:13.5px;color:var(--warn,#B7791F)}
.v2-enr .pr-dc-barre{height:8px;border-radius:4px;overflow:hidden;background:var(--v2-trait)}
.v2-enr .pr-dc-barre i{display:block;height:100%;background:var(--pr-mes)}
.v2-enr .pr-dc-liste{display:flex;flex-direction:column}
.v2-enr .pr-dc-liste .r{display:grid;grid-template-columns:minmax(0,1fr) auto 104px;gap:14px;align-items:center;padding:8px 4px;border-bottom:1px solid var(--v2-trait);border-radius:8px}
.v2-enr .pr-dc-liste .r:hover{background:var(--brand-soft)}
.v2-enr .pr-dc-liste .nom{font-size:13px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v2-enr .pr-dc-liste .v{font-size:12px;font-weight:700;color:var(--warn,#B7791F);text-align:right}
.v2-enr .pr-dc-liste .v.ok{color:var(--pr-mes)}
.v2-enr .pr-dc-pied{display:flex;justify-content:space-between;align-items:center;gap:12px 24px;flex-wrap:wrap;margin-top:auto}
.v2-enr .pr-dc-pied .pr-cal-leg{gap:20px}

/* les cases des donnees a completer, dans le parc et dans la vue d'ensemble */
.v2-enr .pr-cal i.saisi{background:var(--pr-mes)}
.v2-enr .pr-cal i.manque{background:var(--warn,#D69E2E)}
.v2-enr .pr-cal i.avenir{background:var(--v2-trait)}
.v2-enr .pr-cal i.hors{background:transparent;box-shadow:inset 0 0 0 1px var(--v2-trait-fort)}
.v2-enr .pr-cal i.attente{box-shadow:0 0 0 2px var(--pr-ligne)}
.v2-enr .pr-cal-leg .saisi::before{background:var(--pr-mes)}
.v2-enr .pr-cal-leg .manque::before{background:var(--warn,#D69E2E)}
.v2-enr .pr-cal-leg .avenir::before{background:var(--v2-trait)}
.v2-enr .pr-cal-leg .attente::before{background:var(--v2-trait);box-shadow:0 0 0 2px var(--pr-ligne)}
.v2-enr .pr-cal-hote{display:inline-flex;align-items:center;gap:9px;white-space:nowrap}
.v2-enr .pr-cal-n{font-size:11.5px;font-weight:700;color:var(--muted)}
.v2-enr .pr-cal-n.manque{color:var(--warn,#B7791F)}
@media (max-width:1250px){.v2-enr .pr-pu-l{grid-template-columns:96px minmax(0,1fr) 140px}}
@media (max-width:620px){.v2-enr .pr-pu-l{grid-template-columns:1fr}.v2-enr .pr-dc-liste .r{grid-template-columns:1fr}}

.v2-enr .pr-mois-pied{display:flex;justify-content:space-between;align-items:center;gap:10px 24px;flex-wrap:wrap}
.v2-enr .pr-mois-pied .pr-leg.mois{justify-content:flex-start}
.v2-enr .pr-mois-total{display:inline-flex;align-items:baseline;gap:10px;font-size:12.5px;color:var(--ink-2)}
.v2-enr .pr-mois-total b{font-family:var(--mono,ui-monospace,monospace);font-size:15px;color:var(--ink)}
.v2-enr .pr-an{min-width:92px}

/* la trajectoire d'une seule source : sa couleur, les EnR en filigrane */
.v2-enr .pr-traj .trait.reference{stroke:var(--muted);stroke-width:1.4;opacity:.45}
.v2-enr .pr-traj.pv .trait:not(.reference),.v2-enr .pr-traj.pv .pt{stroke:var(--pr-pv2)}
.v2-enr .pr-traj.pv .pt.courante{fill:var(--pr-pv2);stroke:var(--v2-surface)}
.v2-enr .pr-traj.pv stop.aire-haut,.v2-enr .pr-traj.pv stop.aire-bas{stop-color:var(--c-pv)}
.v2-enr .pr-traj.hy .trait:not(.reference),.v2-enr .pr-traj.hy .pt{stroke:var(--c-hy)}
.v2-enr .pr-traj.hy .pt.courante{fill:var(--c-hy);stroke:var(--v2-surface)}
.v2-enr .pr-traj.hy stop.aire-haut,.v2-enr .pr-traj.hy stop.aire-bas{stop-color:var(--c-hy)}
.v2-enr .pr-leg.traj.pv .passe::before{border-top-color:var(--pr-pv2)}
.v2-enr .pr-leg.traj.pv .projection::before{border-top-color:var(--pr-pv2)}
.v2-enr .pr-leg.traj.hy .passe::before,.v2-enr .pr-leg.traj.hy .projection::before{border-top-color:var(--c-hy)}
.v2-enr .pr-leg.traj .reference::before{width:22px;height:0;border-radius:0;border-top:1.5px solid var(--muted);opacity:.6;background:none}
/* la vue nationale, en titre de sa carte */
.v2-enr .hy-archipel>.hy-pays{justify-content:space-between;gap:10px;padding:16px 18px 18px}
.v2-enr .hy-archipel>.hy-pays .k{font-size:15px;font-weight:800;letter-spacing:-.01em;text-transform:none;color:var(--ink)}
.v2-enr .hy-archipel>.hy-pays.on .k{color:var(--brand)}
.v2-enr .hy-archipel>.hy-pays b{margin-top:auto}

/* le registre : des colonnes fixes, le compte en haut a droite */
.v2-enr .pr-registre{table-layout:fixed;min-width:1100px}
.v2-enr .pr-registre.compacte{min-width:760px}
.v2-enr .pr-registre td{overflow-wrap:anywhere}
.v2-enr .pr-registre td.c-donnees{overflow:hidden}
.v2-enr .pr-table .hy-pt .pr-compte{margin-left:auto}
.v2-enr .pr-registre th.c-donnees,.v2-enr .pr-registre td.c-donnees{padding-left:28px}
.v2-enr .pr-outils>.pr-actions{margin-left:auto}

/* =====================================================================
   OPTIMISATION DES BATIMENTS (02/10/2026)
   Une page de dossiers : un bandeau regle, des tableaux de registre, et
   pour chaque dossier un cartouche de plan, des lignes reglees et des
   prestations numerotees. Rien de decoratif.
   ===================================================================== */
.v2-op{display:flex;flex-direction:column;min-width:0;padding-bottom:40px}
.v2-op .op-tete .menu{align-items:flex-end}
.v2-op .op-tete .menu>.v2-b{margin-bottom:10px}
.op-onglets{display:flex;gap:28px}
.op-onglets a{display:flex;align-items:baseline;gap:8px;padding:10px 0 11px;font-size:13.5px;font-weight:700;color:var(--ink-2);text-decoration:none;border-bottom:2.5px solid transparent;margin-bottom:-1px}
.op-onglets a b{font-size:12px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.op-onglets a:hover{color:var(--ink)}
.op-onglets a.on{color:var(--ink);border-bottom-color:var(--brand)}
.op-onglets a.on b{color:var(--brand)}
.op-plus{font-size:17px;line-height:1;font-weight:700}
.op-corps{padding:22px 30px 0;display:flex;flex-direction:column;gap:18px;min-width:0}
.op-attente{padding:40px 0;color:var(--muted);font-size:13px}
.op-err{color:var(--crit);font-size:12.5px;margin-top:8px}
.op-err:empty{display:none}
.op-lien{color:var(--brand);font-weight:700;text-decoration:none;font-size:12.5px;cursor:pointer}
.op-lien:hover{text-decoration:underline}

/* le bandeau */
.op-bandeau{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:2px solid var(--ink);border-bottom:1px solid var(--v2-trait-fort)}
.op-chiffre{display:flex;flex-direction:column;gap:9px;padding:13px 18px 15px;border-left:1px solid var(--v2-trait);min-width:0}
.op-chiffre:first-child{border-left:0;padding-left:0}
.op-chiffre .k{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);line-height:1.3}
.op-chiffre b.n{align-self:flex-start;font-size:30px;font-weight:700;font-family:var(--mono,ui-monospace,monospace);letter-spacing:-.03em;line-height:1;padding-bottom:3px;border-bottom:2px solid transparent}
.op-chiffre b.n.v2-estime{border-bottom:2px dashed var(--s-ref)}
.op-chiffre b.n.v2-mesure{border-bottom-color:var(--good)}

/* les panneaux */
.op-pan{background:var(--v2-surface);border:1px solid var(--v2-trait);border-radius:12px;padding:15px 18px 16px;min-width:0}
.op-pan-t{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:9px;border-bottom:1px solid var(--v2-trait-fort);margin-bottom:4px}
.op-pan-t h2{margin:0;font-size:14px;font-weight:800;letter-spacing:-.005em}
.op-pan-n{font-size:12px;color:var(--muted);font-weight:600}
.op-pan-c{display:flex;flex-direction:column;min-width:0}
.op-pan-large{padding:15px 0 2px}
.op-pan-large .op-pan-t{margin:0 18px 0}
.op-sous{font-size:10px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin:14px 0 3px}
.op-repli{align-self:flex-start;border:0;background:transparent;font:inherit;font-size:12.5px;font-weight:700;color:var(--brand);cursor:pointer;padding:6px 0}
.op-repli::before{content:"+ "}
.op-repli[aria-expanded="true"]::before{content:"\2212  "}

/* une ligne reglee : le libelle, la valeur, la source */
.op-l{display:grid;grid-template-columns:minmax(0,1fr) auto 84px;gap:12px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--v2-trait);font-size:13px}
.op-l:last-child{border-bottom:0}
.op-l-k{color:var(--ink-2);min-width:0}
.op-l-v{text-align:right;font-weight:600;font-variant-numeric:tabular-nums;min-width:0}
.op-l-s{font-size:11px;color:var(--muted);text-align:right}
.op-l.att .op-l-v .v2-val{color:var(--warn)}
.op-l.clic{cursor:pointer}
.op-l.clic:hover .op-l-k{color:var(--brand)}

/* la jauge des donnees pretes */
.op-jauge{display:inline-flex;align-items:center;gap:8px;justify-content:flex-end}
.op-jauge .t{display:block;width:54px;height:5px;border-radius:3px;background:var(--v2-trait);overflow:hidden}
.op-jauge .t i{display:block;height:100%;background:var(--brand)}
.op-jauge b{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;min-width:38px;text-align:right}
.op-jauge.large{display:block;margin:8px 0 2px}
.op-jauge.large .t{width:100%;height:6px}

/* la barre et les tableaux */
.op-barre{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.op-champ,.op-select{border:1px solid var(--c-line2,var(--v2-trait-fort));border-radius:6px;padding:7px 12px;font:inherit;font-size:13px;background:var(--surface);color:var(--ink);min-width:0}
.op-champ:focus,.op-select:focus{outline:none;border-color:var(--brand);box-shadow:var(--v2-lueur)}
.op-rech{width:280px}
.op-compte{margin-left:auto;font-size:12.5px;color:var(--muted);font-weight:600}
.op-tbl-hote{overflow-x:auto;border-top:1px solid var(--v2-trait-fort)}
.op-pan-large .op-tbl-hote{border-top:0}
.op-tbl{width:100%;border-collapse:collapse;font-size:13px}
.op-tbl th{text-align:left;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700;padding:10px 12px 8px;border-bottom:1px solid var(--v2-trait-fort);white-space:nowrap;vertical-align:bottom}
.op-tbl th .u{display:block;margin-top:2px;font-size:9.5px;letter-spacing:.03em;text-transform:none;font-weight:600}
.op-tbl th.r{text-align:right}
.op-tbl th.tri{cursor:pointer}
.op-tbl th.tri:hover{color:var(--ink)}
.op-tbl th[aria-sort]{color:var(--ink)}
.op-tbl th[aria-sort="descending"]>span:first-child::after{content:" \2193"}
.op-tbl th[aria-sort="ascending"]>span:first-child::after{content:" \2191"}
.op-tbl td{padding:10px 12px;border-bottom:1px solid var(--v2-trait);vertical-align:middle;font-variant-numeric:tabular-nums}
.op-tbl td:first-child,.op-tbl th:first-child{padding-left:18px}
.op-tbl td:last-child,.op-tbl th:last-child{padding-right:18px}
.op-tbl .r{text-align:right;white-space:nowrap}
.op-tbl td.nw{white-space:nowrap}
.op-tbl .nom{display:block;font-weight:700;color:var(--ink)}
.op-tbl .sous{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.op-tbl tr.clic{cursor:pointer}
.op-tbl tr.clic:hover td{background:var(--brand-soft)}
.op-tbl tr:last-child td{border-bottom:0}
.op-tbl b.n{font-weight:700}
.op-tbl b.n.att{color:var(--warn)}
.op-tbl td.op-obj span{display:block;font-size:12px;line-height:1.45}
.op-suite{align-self:center}
.op-etat{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:4px;border:1px solid var(--v2-trait-fort);color:var(--ink-2);white-space:nowrap}
.op-etat.aDecider{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 45%,transparent)}
.op-etat.retenue,.op-etat.ajoutee{color:var(--good);border-color:color-mix(in srgb,var(--good) 45%,transparent);background:color-mix(in srgb,var(--good) 8%,transparent)}
.op-etat.ecartee,.op-etat.clos{color:var(--muted)}
.op-etat.ouvert{color:var(--brand);border-color:color-mix(in srgb,var(--brand) 40%,transparent)}

/* le dossier : la tete, le cartouche, deux colonnes */
.op-dtete{padding:18px 30px 0}
.op-dtete-h{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}
.op-retour{font-size:12px;font-weight:700;color:var(--brand);text-decoration:none;letter-spacing:.02em}
.op-dtete h1{margin:6px 0 0;font-size:28px;font-weight:800;letter-spacing:-.035em;line-height:1.05}
.op-gestes{display:flex;gap:8px;flex-wrap:wrap}
.op-cartouche{margin-top:16px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border:1.5px solid var(--ink);border-radius:2px;background:var(--v2-surface)}
.op-cartouche .c{display:flex;flex-direction:column;gap:4px;padding:8px 12px;border-left:1px solid var(--v2-trait-fort);min-width:0}
.op-cartouche .c:first-child{border-left:0}
.op-cartouche .c span{font-size:9.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.op-cartouche .c b{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.op-clos-motif{margin:12px 30px 0;padding:10px 14px;border-left:3px solid var(--muted);background:var(--v2-surface-2);display:flex;gap:10px;font-size:13px}
.op-clos-motif span{color:var(--muted);font-weight:700}
.op-grille{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:18px;padding:18px 30px 0;align-items:start}
.op-col{display:flex;flex-direction:column;gap:18px;min-width:0}

/* les objectifs */
.op-puces{display:flex;flex-wrap:wrap;gap:6px;padding-top:8px}
.op-puce{border:1px solid var(--v2-trait-fort);background:transparent;color:var(--ink-2);border-radius:6px;padding:6px 10px;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
.op-puce:hover{border-color:var(--ink-2);color:var(--ink)}
.op-puce.on{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}
.op-puce.fixe{cursor:default}
.op-puce[disabled]{opacity:.5;cursor:wait}

/* les donnees du dossier */
.op-grand{display:flex;align-items:baseline;gap:8px;margin-top:8px}
.op-grand b{font-size:30px;font-weight:700;font-family:var(--mono,ui-monospace,monospace);letter-spacing:-.03em;line-height:1}
.op-grand span{font-size:13px;color:var(--muted);font-weight:600}
.op-donnee{display:grid;grid-template-columns:10px minmax(0,1fr) auto 66px;gap:8px;align-items:center;padding:5px 0;font-size:12.5px;border-bottom:1px dotted var(--v2-trait)}
.op-donnee .p{width:7px;height:7px;border-radius:50%;background:var(--v2-trait-fort)}
.op-donnee.prete .p{background:var(--good)}
.op-donnee.manque .p{background:var(--warn)}
.op-donnee.aFournir .p{background:transparent;box-shadow:inset 0 0 0 1.5px var(--muted)}
.op-donnee .e{font-size:11px;font-weight:700;color:var(--muted)}
.op-donnee.prete .e{color:var(--good)}
.op-donnee.manque .e{color:var(--warn)}
.op-donnee.sansObjet{opacity:.55}
.op-donnee .s{font-size:10.5px;color:var(--muted);text-align:right}

/* les prestations, numerotees */
.op-presta{border-top:1px solid var(--v2-trait-fort);padding:14px 0 14px}
.op-pan-c>.op-presta:first-child{border-top:0}
.op-presta-t{display:flex;align-items:baseline;gap:12px}
.op-presta-t .no{font-family:var(--mono,ui-monospace,monospace);font-size:12px;font-weight:700;color:var(--muted);min-width:18px}
.op-presta-t h3{margin:0;font-size:15.5px;font-weight:800;letter-spacing:-.01em;flex:1;min-width:0}
.op-presta-c{padding-left:30px;display:flex;flex-direction:column}
.op-texte{margin:3px 0 2px;font-size:13px;color:var(--ink);line-height:1.5}
.op-livrable{font-weight:600;color:var(--ink);text-align:right}
.op-presta.ecartee .op-presta-t h3{color:var(--muted)}
.op-presta.ecartee .op-presta-c{opacity:.72}
.op-presta-a{display:flex;align-items:center;gap:8px;margin-top:12px;flex-wrap:wrap}
.op-motif{display:flex;gap:8px;flex:1;align-items:center;min-width:280px}
.op-motif .op-champ{flex:1}
.op-besoin{display:flex;flex-wrap:wrap;gap:6px;padding:8px 0 4px}
.op-besoin span{font-size:11.5px;padding:3px 8px;border-radius:4px;border:1px solid var(--v2-trait)}
.op-besoin span.prete{color:var(--good);border-color:color-mix(in srgb,var(--good) 40%,transparent)}
.op-besoin span.manque{color:var(--muted);border-style:dashed}
.op-autre{display:grid;grid-template-columns:minmax(0,230px) minmax(0,1fr) auto;gap:14px;align-items:center;padding:9px 0;border-bottom:1px solid var(--v2-trait);font-size:12.5px}
.op-autre .k{font-weight:700}
.op-autre .mi{color:var(--muted)}

/* le journal */
.op-j{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:3px 12px;padding:8px 0;border-bottom:1px solid var(--v2-trait);font-size:12.5px}
.op-j:last-child{border-bottom:0}
.op-j .jd{color:var(--muted)}
.op-j .jq{font-weight:600}
.op-j .jp{color:var(--muted);text-align:right}
.op-j .jm{grid-column:2/4;font-size:12px;color:var(--ink-2)}

/* les panneaux lateraux */
.op-ouvrir{display:flex;flex-direction:column;gap:8px}
.op-choisi{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--v2-trait-fort);border-radius:8px}
.op-choisi b{display:block;font-size:14px}
.op-choisi span{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.op-sugg-t{margin-top:8px}
.op-sugg{display:flex;flex-direction:column}
.op-sugg-l{display:flex;flex-direction:column;align-items:flex-start;gap:2px;border:0;border-bottom:1px solid var(--v2-trait);background:transparent;padding:9px 2px;font:inherit;text-align:left;cursor:pointer;color:var(--ink)}
.op-sugg-l:hover b{color:var(--brand)}
.op-sugg-l b{font-size:13px}
.op-sugg-l span{font-size:11.5px;color:var(--muted)}
.op-zone{width:100%;resize:vertical;margin-top:8px;box-sizing:border-box}
.op-pan-mini{display:flex;flex-direction:column;margin-bottom:20px}
.op-pan-mini .v2-lab{margin-bottom:4px}
.op-apercu-p{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--v2-trait);font-size:13px;font-weight:600}
.op-apercu-p .no{font-family:var(--mono,ui-monospace,monospace);font-size:11px;color:var(--muted)}

@media (max-width:1180px){
  .op-grille{grid-template-columns:1fr}
  .op-cartouche{grid-template-columns:repeat(3,minmax(0,1fr))}
  .op-cartouche .c:nth-child(4){border-left:0}
  .op-cartouche .c:nth-child(n+4){border-top:1px solid var(--v2-trait-fort)}
}
@media (max-width:980px){
  .op-corps,.op-grille,.op-dtete{padding-left:14px;padding-right:14px}
  .op-bandeau{grid-template-columns:repeat(2,minmax(0,1fr))}
  .op-chiffre:nth-child(3){border-left:0;padding-left:0}
  .op-rech{width:100%}
}

/* le dossier technique, a l'impression seulement */
.op-imprime{display:none}
@media print{
  html.op-impression body>*:not(.op-imprime){display:none!important}
  html.op-impression body{background:#fff}
  html.op-impression .op-imprime{display:block!important;color:#111;background:#fff;font-size:10.5pt;font-family:var(--ui,system-ui,sans-serif)}
  .op-imprime .op-x-lab{font-size:7.5pt;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#555;margin-top:6pt}
  .op-imprime h1{font-size:19pt;margin:4pt 0 2pt;letter-spacing:-.02em}
  .op-imprime h2{font-size:13pt;margin:0 0 10pt;font-weight:600}
  .op-imprime h3{font-size:11.5pt;margin:16pt 0 6pt;border-bottom:1.5pt solid #111;padding-bottom:3pt}
  .op-imprime h4{font-size:10.5pt;margin:12pt 0 3pt}
  .op-imprime p{margin:2pt 0;font-size:10pt;line-height:1.45}
  .op-imprime p.liv{color:#333}
  .op-imprime table{width:100%;border-collapse:collapse;margin:4pt 0 8pt}
  .op-imprime th,.op-imprime td{text-align:left;padding:3pt 6pt;border-bottom:.5pt solid #bbb;font-size:9.5pt;vertical-align:top}
  .op-imprime table.op-kv th{width:46%;font-weight:400;color:#333}
  .op-imprime td.s{color:#666;width:16%}
  .op-imprime table.meta th{font-size:7.5pt;text-transform:uppercase;letter-spacing:.08em;color:#555;width:15%;font-weight:700}
  .op-imprime ul{margin:2pt 0 6pt 14pt;padding:0;font-size:9.5pt}
  .op-imprime .presta{break-inside:avoid}
  .op-imprime footer{margin-top:18pt;font-size:8pt;color:#555;border-top:.5pt solid #bbb;padding-top:4pt}
}

/* =====================================================================
   LES FINANCEMENTS (02/10/2026, repris sur la revue du meme jour)
   Deux vues. Le portefeuille : une equation en tete (decaisse publie,
   reste, sans decaissement publie), puis un rail par programme ou
   l'argent, le temps et ce qu'il finance ne se melangent pas. Le
   registre : les tableaux pour travailler. Traits fins, peu de cadres.
   ===================================================================== */
.v2-fn{display:flex;flex-direction:column;min-width:0;padding-bottom:44px;
  --fn-cols:minmax(220px,1.1fr) minmax(210px,1fr) minmax(210px,1fr) minmax(280px,1.45fr);--fn-gap:30px}
.fn-onglets{display:flex;gap:28px}
.fn-onglets a{padding:10px 0 11px;font-size:13.5px;font-weight:700;color:var(--ink-2);text-decoration:none;border-bottom:2.5px solid transparent;margin-bottom:-1px}
.fn-onglets a:hover{color:var(--ink)}
.fn-onglets a.on{color:var(--ink);border-bottom-color:var(--brand)}
.v2-fn .fn-tete .menu{align-items:flex-end}
.v2-fn .fn-tete .menu>.fn-devise{margin-bottom:9px}
.fn-corps{padding:24px 30px 0;display:flex;flex-direction:column;gap:30px;min-width:0}
.fn-corps button{font:inherit;color:inherit}

/* la situation : l'equation, et ce qui n'en fait pas partie */
.fn-situation{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(280px,1fr);border-bottom:1px solid var(--v2-trait-fort);padding-bottom:24px}
.fn-eq{display:flex;flex-direction:column;gap:16px;padding-right:34px;min-width:0}
.fn-eq-tete,.fn-eq-it,.fn-hors-l{border:0;background:transparent;text-align:left;cursor:pointer;padding:0}
.fn-eq-tete{display:flex;flex-direction:column;gap:6px;align-self:flex-start}
.fn-eq-tete .k,.fn-hors .k-t{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.fn-eq-tete .v{display:flex;align-items:baseline;gap:8px}
.fn-eq-tete b.n{font-size:44px;font-weight:700;font-family:var(--mono,ui-monospace,monospace);letter-spacing:-.04em;line-height:1;color:var(--ink);transition:color var(--v2-t)}
.fn-eq-tete small{font-size:14px;font-weight:700;color:var(--ink-2);word-spacing:.15em}
.fn-eq-tete .s{font-size:12.5px;color:var(--muted)}
.fn-eq-tete:hover b.n{color:var(--brand)}
.fn-eq-barre{display:flex;gap:3px;height:18px}
.fn-eq-barre i{display:block;height:100%;border-radius:3px}
.fn-eq-barre i.decaisse,.fn-eq-it.decaisse>i{background:var(--brand)}
.fn-eq-barre i.reste,.fn-eq-it.reste>i{background:color-mix(in srgb,var(--brand) 20%,var(--v2-surface))}
.fn-eq-barre i.nonPublie,.fn-eq-it.nonPublie>i{background:transparent;box-shadow:inset 0 0 0 1.5px var(--muted);border-radius:3px}
.fn-eq-barre i.nonPublie{background:repeating-linear-gradient(90deg,transparent 0 5px,color-mix(in srgb,var(--muted) 14%,transparent) 5px 6px)}
.fn-eq-leg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.fn-eq-it{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"i v" "i k" "i p";gap:2px 10px;padding:2px 16px 2px 16px;border-left:1px solid var(--v2-trait)}
.fn-eq-it:first-child{border-left:0;padding-left:0}
.fn-eq-it>i{grid-area:i;width:6px;height:38px;border-radius:2px;margin-top:3px}
.fn-eq-it .v{grid-area:v;display:flex;align-items:baseline;gap:6px}
.fn-eq-it .v b{font-size:21px;font-weight:700;font-family:var(--mono,ui-monospace,monospace);letter-spacing:-.03em;color:var(--ink)}
.fn-eq-it .v small{font-size:11.5px;font-weight:700;color:var(--ink-2);word-spacing:.15em}
.fn-eq-it .k{grid-area:k;font-size:12.5px;font-weight:600;color:var(--ink-2)}
.fn-eq-it .p{grid-area:p;font-size:11.5px;color:var(--muted)}
.fn-eq-it:hover .v b{color:var(--brand)}
.fn-hors{display:flex;flex-direction:column;border-left:1px solid var(--v2-trait-fort);padding-left:28px;min-width:0}
.fn-hors-l{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"k v" "s s";gap:2px 14px;align-items:baseline;padding:9px 0 10px;border-bottom:1px solid var(--v2-trait)}
.fn-hors-l:first-child{padding-top:0}
.fn-hors-l:last-child{border-bottom:0}
.fn-hors-l .k{grid-area:k;font-size:13px;font-weight:700;color:var(--ink)}
.fn-hors-l .v{grid-area:v;display:flex;align-items:baseline;gap:5px}
.fn-hors-l .v b{font-size:17px;font-weight:700;font-family:var(--mono,ui-monospace,monospace);letter-spacing:-.02em;color:var(--ink)}
.fn-hors-l .v small{font-size:11px;font-weight:700;color:var(--ink-2);word-spacing:.15em}
.fn-hors-l .s{grid-area:s;font-size:11.5px;color:var(--muted);line-height:1.35}
.fn-hors-l.att .k,.fn-hors-l.att .v b{color:var(--warn)}
.fn-hors-l:hover .k{color:var(--brand)}
.fn-hors-l.att:hover .k{color:var(--warn);text-decoration:underline}

/* les rails : un programme par ligne */
.fn-rails{display:flex;flex-direction:column;min-width:0}
.fn-rails-t{display:flex;align-items:baseline;gap:12px;padding-bottom:10px}
.fn-rails-t h2{margin:0;font-size:15px;font-weight:800;letter-spacing:-.01em}
.fn-rails-cols{display:grid;grid-template-columns:var(--fn-cols);gap:0 var(--fn-gap);padding-bottom:7px;border-bottom:1px solid var(--v2-trait-fort)}
.fn-rails-cols span{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.fn-rail{display:grid;grid-template-columns:var(--fn-cols);gap:0 var(--fn-gap);align-items:start;padding:16px 12px 17px;margin:0 -12px;border-bottom:1px solid var(--v2-trait);cursor:pointer;transition:background var(--v2-t)}
.fn-rail:hover,.fn-rail:focus-visible{background:var(--v2-surface);outline:none;box-shadow:inset 0 0 0 1px var(--v2-trait)}
.fn-c{min-width:0}
.fn-c .t{margin-top:7px;font-size:12px;color:var(--ink-2);line-height:1.35}
.fn-c .t.muet{color:var(--muted)}
.fn-c .t.att{color:var(--warn);font-weight:700}
.fn-c.ident{display:flex;flex-direction:column;gap:3px}
.fn-c.ident .nom{font-size:14px;font-weight:700;color:var(--ink);line-height:1.3}
.fn-c.ident .sous{font-size:12px;color:var(--muted)}
.fn-c.ident .sous2{font-size:11.5px;color:var(--ink-2)}
.fn-c.ident .fn-etat{margin-top:6px}
.fn-c.argent .m{display:flex;align-items:baseline;gap:6px}
.fn-c.argent .m b{font-size:20px;font-weight:700;font-family:var(--mono,ui-monospace,monospace);letter-spacing:-.03em;color:var(--ink);line-height:1.1}
.fn-c.argent .m small{font-size:11.5px;font-weight:700;color:var(--ink-2);word-spacing:.15em}
.fn-barre{margin-top:9px;height:7px;border-radius:4px;overflow:hidden;background:color-mix(in srgb,var(--brand) 18%,var(--v2-surface))}
.fn-barre i{display:block;height:100%;background:var(--brand);border-radius:4px}
.fn-barre.inconnue{background:transparent;box-shadow:inset 0 0 0 1.5px var(--v2-trait-fort)}
.fn-dessin{display:block;width:100%;min-width:0}
.fn-dessin svg{display:block;overflow:visible}
.fn-c.temps .fn-dessin{margin-top:4px}
.fn-temps .reste{stroke:var(--v2-trait-fort);stroke-width:2}
.fn-temps .ecoule{stroke:var(--ink-2);stroke-width:2}
.fn-temps .ouvert{stroke:var(--muted);stroke-width:1.5;stroke-dasharray:2 4}
.fn-temps .sig{fill:var(--v2-fond);stroke:var(--ink-2);stroke-width:1.5}
.fn-temps .clo{stroke:var(--ink-2);stroke-width:1.5}
.fn-temps .auj{fill:var(--brand);stroke:var(--v2-fond);stroke-width:1.5}
.fn-c.temps .bornes{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:var(--muted);margin-top:1px}
.fn-c.objets .real{display:flex;align-items:baseline;gap:8px;font-size:12px;margin-bottom:6px;min-width:0}
.fn-c.objets .real .k{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);flex-shrink:0}
.fn-c.objets .real b{font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fn-arbre{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:start}
.fn-branches{display:block}
.fn-branches .tronc,.fn-branches .branche{fill:none;stroke:var(--v2-trait-fort);stroke-width:1.4;stroke-linecap:round}
.fn-branches .branche.installation{stroke:color-mix(in srgb,var(--good) 70%,var(--v2-trait-fort))}
.fn-branches .branche.projet{stroke:color-mix(in srgb,var(--brand) 60%,var(--v2-trait-fort))}
.fn-feuilles{list-style:none;margin:0;padding:0;min-width:0}
.fn-feuilles li{height:36px;padding-left:4px;min-width:0}
.fn-feuilles .l1{display:flex;align-items:baseline;gap:9px;line-height:22px;font-size:12.5px;min-width:0}
.fn-feuilles .l1 .nom{font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.fn-feuilles .l1 .pu{font-weight:700;color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap}
.fn-feuilles .l2{display:flex;align-items:baseline;gap:8px;font-size:11px;line-height:12px;color:var(--muted);white-space:nowrap;min-width:0}
.fn-feuilles .l2>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis}
.fn-feuilles li.clic:hover .nom{color:var(--brand);text-decoration:underline}
.fn-rails.clos .fn-c.ident .nom,.fn-rails.clos .fn-c.argent .m b{color:var(--ink-2)}
.fn-rails.clos .fn-barre i{background:color-mix(in srgb,var(--brand) 55%,var(--v2-surface))}

/* les etats et les etapes : un mot, une couleur */
.fn-etat,.fn-etape{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;line-height:1.35}
.fn-etat.en-cours{color:var(--good)}.fn-etat.a-confirmer,.fn-etat.arret{color:var(--warn)}.fn-etat.clos{color:var(--muted)}
.fn-etape.etude{color:var(--ink-2)}.fn-etape.projet{color:var(--brand)}.fn-etape.installation{color:var(--good)}

/* le registre */
.fn-pan{background:var(--v2-surface);border:1px solid var(--v2-trait);border-radius:12px;min-width:0;padding-top:14px;overflow:hidden}
.fn-pan-t{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:0 18px 10px}
.fn-pan-t h2{margin:0;font-size:14px;font-weight:800;letter-spacing:-.005em}
.fn-outils{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:0 18px 12px}
.fn-seg{display:inline-flex;border:1px solid var(--v2-trait-fort);border-radius:7px;overflow:hidden;background:var(--v2-surface)}
.fn-seg button{display:inline-flex;align-items:baseline;gap:7px;border:0;border-left:1px solid var(--v2-trait-fort);background:transparent;font:inherit;font-size:12.5px;font-weight:600;color:var(--ink-2);padding:6px 12px;cursor:pointer;white-space:nowrap}
.fn-seg button:first-child{border-left:0}
.fn-seg button b{font-size:11.5px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.fn-seg button:hover{color:var(--ink)}
.fn-seg button.on{background:var(--brand-soft);color:var(--brand)}
.fn-seg button.on b{color:var(--brand)}
.fn-select{border:1px solid var(--v2-trait-fort);border-radius:7px;padding:6px 10px;font:inherit;font-size:12.5px;background:var(--surface);color:var(--ink);max-width:280px}
.fn-select:focus{outline:none;border-color:var(--brand);box-shadow:var(--v2-lueur)}
.fn-compte{margin-left:auto;font-size:12.5px;color:var(--muted);font-weight:600;white-space:nowrap}
.fn-pan-t .fn-compte,.fn-rails-t .fn-compte{margin-left:0}
.fn-plus{font-size:17px;line-height:1;font-weight:700}
.fn-tbl-hote{overflow-x:auto;border-top:1px solid var(--v2-trait-fort)}
.fn-reg,.fn-obj{width:100%;border-collapse:collapse;table-layout:fixed;font-size:13px}
.fn-reg{min-width:1000px}
.fn-obj{min-width:820px}
.fn-reg col.c-etat{width:150px}.fn-reg col.c-dev{width:76px}.fn-reg col.c-orig{width:112px}.fn-reg col.c-m{width:104px}.fn-reg col.c-date{width:124px}.fn-reg col.c-releve{width:150px}
.fn-obj col.c-etape{width:120px}.fn-obj col.c-pu{width:110px}.fn-obj col.c-ile{width:150px}.fn-obj col.c-contrib{width:30%}.fn-obj col.c-date{width:200px}
.fn-reg th,.fn-obj th{text-align:left;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700;padding:8px 12px 7px;border-bottom:1px solid var(--v2-trait-fort);border-left:1px solid var(--v2-trait);white-space:normal;line-height:1.3;vertical-align:bottom}
.fn-reg th .u,.fn-obj th .u{display:block;margin-top:2px;font-size:9.5px;letter-spacing:.03em;text-transform:none;font-weight:600}
.fn-reg td,.fn-obj td{padding:0 12px;height:52px;border-bottom:1px solid var(--v2-trait);border-left:1px solid var(--v2-trait);vertical-align:middle;font-variant-numeric:tabular-nums;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.fn-reg th:first-child,.fn-reg td:first-child,.fn-obj th:first-child,.fn-obj td:first-child{border-left:0;padding-left:18px}
.fn-reg th:last-child,.fn-reg td:last-child,.fn-obj th:last-child,.fn-obj td:last-child{padding-right:18px}
.fn-reg th.r,.fn-reg td.r,.fn-obj th.r,.fn-obj td.r{text-align:right}
.fn-reg td.muet,.fn-obj td.muet{color:var(--muted)}
.fn-reg td .fn-etat{display:block;white-space:normal}
.fn-reg tbody tr:last-child td,.fn-obj tbody tr:last-child td{border-bottom:0}
.fn-reg .nom,.fn-obj .nom{display:block;font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis}
.fn-reg .sous,.fn-obj .sous{display:block;margin-top:2px;font-size:11.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis}
.fn-reg tr.enfant td{height:40px}
.fn-reg tr.enfant td:first-child{padding-left:38px}
.fn-reg tr.enfant .nom{font-weight:600;color:var(--ink-2)}
.fn-obj .nom-b{display:block;overflow:hidden;text-overflow:ellipsis}
.fn-reg tr.clic,.fn-obj tr.clic{cursor:pointer}
.fn-reg tr.clic:hover td,.fn-obj tr.clic:hover td,.fn-reg tr:focus-visible td,.fn-obj tr:focus-visible td{background:var(--brand-soft)}
.fn-reg tr:focus-visible,.fn-obj tr:focus-visible{outline:none}

/* les lignes reglees des panneaux */
.fn-lignes{display:flex;flex-direction:column;margin-bottom:16px}
.fn-sous{font-size:10px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);padding:2px 0 7px;border-bottom:1px solid var(--v2-trait-fort)}
.fn-l{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 14px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--v2-trait);font-size:13px}
.fn-l:last-child{border-bottom:0}
.fn-l .k{color:var(--ink-2);min-width:0}
.fn-l .v{text-align:right;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink)}
.fn-l .note{grid-column:1 / -1;font-size:11.5px;color:var(--muted);line-height:1.45}
.fn-l.total{border-top:1px solid var(--ink-2);margin-top:2px}
.fn-l.long{grid-template-columns:auto minmax(0,1fr)}
.fn-l.long .v{font-weight:600}
.fn-pied-note{font-size:11.5px;color:var(--muted);line-height:1.45}

@media (max-width:1400px){
  .v2-fn{--fn-cols:minmax(170px,1fr) minmax(170px,.95fr) minmax(170px,.95fr) minmax(240px,1.35fr);--fn-gap:22px}
  .fn-situation{grid-template-columns:minmax(0,1.5fr) minmax(250px,1fr)}
  .fn-eq{padding-right:26px}.fn-hors{padding-left:22px}
  .fn-eq-tete b.n{font-size:38px}.fn-eq-it .v b{font-size:18px}
  .fn-select{max-width:200px}
  .fn-reg,.fn-obj{font-size:12.5px}
  .fn-reg{min-width:930px}.fn-obj{min-width:760px}
  .fn-reg col.c-etat{width:108px}.fn-reg col.c-dev{width:58px}.fn-reg col.c-orig{width:88px}.fn-reg col.c-m{width:90px}.fn-reg col.c-date{width:112px}.fn-reg col.c-releve{width:122px}
  .fn-reg td:first-child .nom{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3}
  .fn-obj col.c-etape{width:106px}.fn-obj col.c-pu{width:96px}.fn-obj col.c-ile{width:124px}.fn-obj col.c-contrib{width:24%}.fn-obj col.c-date{width:196px}
}
@media (max-width:1000px){
  .fn-situation{grid-template-columns:1fr;gap:22px}
  .fn-eq{padding-right:0}.fn-hors{border-left:0;padding-left:0;border-top:1px solid var(--v2-trait-fort);padding-top:14px}
  .v2-fn{--fn-cols:minmax(0,1fr) minmax(0,1fr)}
  .fn-rails-cols{display:none}
  .fn-rail{row-gap:14px}
  .fn-corps{padding:18px 16px 0}
}
@media (max-width:620px){
  .v2-fn{--fn-cols:minmax(0,1fr)}
  .fn-eq-leg{grid-template-columns:1fr}.fn-eq-it{border-left:0;padding-left:0;padding-top:8px}
}

/* =====================================================================
   LES FINANCEMENTS, LE POSTE DE TRAVAIL DU REGISTRE (03/10/2026)
   Un releve en tete (de quand date ce qu'on lit, d'ou il vient, ce qui
   attend), des chiffres en colonnes alignees, des totaux soulignes d'un
   double trait comme dans un livre de comptes, et des rapports qui sont
   du papier : blancs, au format A4, quel que soit le theme.
   ===================================================================== */
.v2-fn .fn-tete{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:24px;align-items:end}
.v2-fn .fn-tete .qui{grid-column:1;grid-row:1}
.v2-fn .fn-tete .menu{grid-column:1 / -1}
/* les gestes de saisie, a droite du titre, sur chaque vue (14/10/2026) */
.v2-fn .fn-tete .fn-gestes{grid-column:2;grid-row:1;display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;margin-bottom:12px}
.fn-releve{grid-column:2;grid-row:1;display:flex;margin-bottom:12px;border:1px solid var(--v2-trait-fort);border-radius:8px;background:var(--v2-surface);overflow:hidden}
.fn-releve .c{display:flex;flex-direction:column;gap:2px;padding:7px 14px 8px;border-left:1px solid var(--v2-trait);min-width:0}
.fn-releve .c:first-child{border-left:0}
.fn-releve .k{font-size:9.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.fn-releve b{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap}
.fn-releve .c.att b{color:var(--warn)}
.fn-onglets a{display:inline-flex;align-items:center;gap:7px}
.fn-compteur{display:inline-block;min-width:18px;padding:0 5px;border-radius:9px;background:var(--brand-soft);color:var(--brand);font-size:10.5px;font-weight:800;line-height:17px;text-align:center;font-variant-numeric:tabular-nums}
.fn-compteur.crit{background:var(--crit-soft);color:var(--crit)}
.fn-c .al{margin-top:4px;font-size:11.5px;font-weight:700;color:var(--crit);line-height:1.35}

/* la composition : par partenaire, par instrument */
.fn-compo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 44px;border-bottom:1px solid var(--v2-trait-fort);padding-bottom:22px}
.fn-compo-t{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding-bottom:8px;border-bottom:1px solid var(--v2-trait-fort)}
.fn-compo-t h3{margin:0;font-size:10.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.fn-compo-t .u{font-size:11px;font-weight:700;color:var(--muted);word-spacing:.15em}
.fn-compo-l{display:grid;grid-template-columns:minmax(110px,1.1fr) minmax(60px,1.5fr) 64px 42px;gap:12px;align-items:center;padding:7px 0;border-bottom:1px solid var(--v2-trait);font-size:12.5px}
.fn-compo-l:last-child{border-bottom:0}
.fn-compo-l .k{font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fn-compo-l .trait{height:6px;border-radius:3px;background:var(--v2-surface-2);box-shadow:inset 0 0 0 1px var(--v2-trait);overflow:hidden}
.fn-compo-l .trait i{display:block;height:100%;border-radius:3px;background:var(--brand)}
.fn-compo-l .v{text-align:right;font-family:var(--mono,ui-monospace,monospace);font-weight:700;color:var(--ink)}
.fn-compo-l .p{text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}
.fn-compo-l.muet .k,.fn-compo-l.muet .v{color:var(--muted)}
.fn-compo-l.muet .trait i{background:repeating-linear-gradient(90deg,var(--muted) 0 3px,transparent 3px 6px)}

/* l'execution */
.fn-ex-tete{display:grid;grid-template-columns:minmax(230px,1.35fr) repeat(3,minmax(0,1fr));border:1px solid var(--v2-trait);border-radius:12px;background:var(--v2-surface);overflow:hidden}
.fn-ex-c{display:flex;flex-direction:column;gap:5px;padding:16px 20px 17px;border-left:1px solid var(--v2-trait);min-width:0}
.fn-ex-c:first-child{border-left:0}
.fn-ex-c .k{font-size:10.5px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}
.fn-ex-c b{font-size:22px;font-weight:700;font-family:var(--mono,ui-monospace,monospace);letter-spacing:-.03em;color:var(--ink);line-height:1.1}
.fn-ex-c.grand b{font-size:40px;color:var(--brand)}
.fn-ex-c.muet b{color:var(--muted)}
.fn-ex-c .s{font-size:11.5px;color:var(--muted);line-height:1.35;overflow-wrap:anywhere}
.fn-courbe{padding:4px 18px 16px}
.fn-courbe .grille{stroke:var(--v2-trait);stroke-width:1}
.fn-courbe .grille.base{stroke:var(--v2-trait-fort)}
.fn-courbe .axe,.fn-frise .axe{font-size:10.5px;fill:var(--muted);font-variant-numeric:tabular-nums}
.fn-courbe .ligne{fill:none;stroke-linecap:round;stroke-linejoin:round}
.fn-courbe .ligne.realise{stroke:var(--brand);stroke-width:2.4}
.fn-courbe .ligne.prevu{stroke:var(--muted);stroke-width:1.6;stroke-dasharray:5 5}
.fn-courbe .fn-pt.realise{fill:var(--brand);stroke:var(--v2-surface);stroke-width:1.5}
.fn-courbe .fn-pt.prevu{fill:var(--v2-surface);stroke:var(--muted);stroke-width:1.4}
.fn-courbe .auj{stroke:var(--orange);stroke-width:1.2;stroke-dasharray:3 3}
.fn-leg{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:8px;font-size:11.5px;color:var(--ink-2)}
.fn-leg>span{display:inline-flex;align-items:center;gap:7px}
.fn-leg i{display:inline-block;width:18px;height:0;border-top:2.4px solid var(--brand)}
.fn-leg .prevu i{border-top:1.6px dashed var(--muted)}
.fn-leg .cloture i,.fn-leg .grace i{width:9px;height:9px;border:0;background:var(--ink)}
.fn-leg .grace i{background:var(--muted)}
.fn-leg .audit i,.fn-leg .rfi i,.fn-leg .etat i{width:9px;height:9px;border:0;border-radius:50%;background:var(--info)}
.fn-leg .rfi i{background:var(--brand)}
.fn-leg .etat.enRetard i{background:var(--crit)}
.fn-leg .etat.remis i{background:var(--good)}
.fn-vide-l{padding:26px 0;color:var(--muted);font-size:12.5px;text-align:center}
.fn-ex-tbl{min-width:1180px}
.fn-ex-tbl th:nth-child(2){width:72px}.fn-ex-tbl th:nth-child(n+3){width:118px}.fn-ex-tbl th:nth-child(7){width:130px}.fn-ex-tbl th:nth-child(10){width:136px}
.fn-reg td.neg{color:var(--crit)}
.fn-reg td.num{font-variant-numeric:tabular-nums;white-space:nowrap}

/* les echeances */
.fn-frise{padding:6px 18px 16px}
.fn-frise .axe-l{stroke:var(--v2-trait-fort);stroke-width:1.5}
.fn-frise .tic{stroke:var(--v2-trait-fort);stroke-width:1}
.fn-frise .tic.an{stroke:var(--ink-2)}
.fn-frise .auj{stroke:var(--orange);stroke-width:1.5;stroke-dasharray:3 3}
.fn-frise .auj-t{font-size:10.5px;font-weight:700;fill:var(--orange)}
.fn-frise .pied{stroke:var(--v2-trait-fort);stroke-width:1}
.fn-frise .m{stroke:var(--v2-surface);stroke-width:1.5}
.fn-frise .m.cloture{fill:var(--ink)}.fn-frise .m.grace{fill:var(--muted)}
.fn-frise .m.audit{fill:var(--info)}.fn-frise .m.rfi{fill:var(--brand)}
.fn-frise .m.enRetard{fill:var(--crit)}.fn-frise .m.remis{fill:var(--good)}.fn-frise .m.passee{opacity:.45}
.fn-ech-tbl{min-width:900px}
.fn-ech-tbl th:nth-child(1){width:140px}.fn-ech-tbl th:nth-child(3){width:240px}.fn-ech-tbl th:nth-child(4){width:150px}
.fn-ech-tbl th:nth-child(5){width:210px}.fn-ech-tbl th:nth-child(6){width:150px}
.fn-reg td.fn-jour{white-space:nowrap;font-variant-numeric:tabular-nums}
.fn-ech-etat{display:inline-block;padding:2px 9px;border-radius:10px;font-size:11px;font-weight:700;white-space:nowrap;background:var(--v2-surface-2);color:var(--ink-2)}
.fn-ech-etat.enRetard{background:var(--crit-soft);color:var(--crit)}
.fn-ech-etat.remis{background:var(--good-soft);color:var(--good)}
.fn-ech-etat.aVenir{background:var(--brand-soft);color:var(--brand)}
.fn-ech-etat.passee{color:var(--muted)}
.fn-att-tbl{min-width:900px}
.fn-att-tbl th:nth-child(1){width:250px}.fn-att-tbl th:nth-child(2){width:230px}.fn-att-tbl th:nth-child(3){width:210px}
.fn-att-tbl td:last-child{white-space:normal;line-height:1.4;padding-top:8px;padding-bottom:8px}

/* le registre : les outils, les accords, le grand livre */
.fn-corps>.fn-outils{padding:0}
.fn-espace{flex:1 1 auto}
.fn-bandeau-info{margin-top:-16px;padding:9px 14px;border-radius:8px;border:1px solid color-mix(in srgb,var(--info) 28%,transparent);background:var(--info-soft);color:var(--ink-2);font-size:12px;line-height:1.45}
.fn-accords{min-width:1400px}
.fn-accords th:nth-child(1){width:118px}.fn-accords th:nth-child(3){width:110px}.fn-accords th:nth-child(4){width:70px}
.fn-accords th:nth-child(5){width:140px}.fn-accords th:nth-child(6){width:118px}.fn-accords th:nth-child(7),.fn-accords th:nth-child(8){width:118px}
.fn-accords th:nth-child(9){width:118px}.fn-accords th:nth-child(10){width:200px}
.fn-livre{min-width:1520px}
.fn-livre th:nth-child(1){width:116px}.fn-livre th:nth-child(3){width:156px}.fn-livre th:nth-child(4){width:150px}
.fn-livre th:nth-child(5){width:170px}.fn-livre th:nth-child(6){width:140px}.fn-livre th:nth-child(7){width:124px}
.fn-livre th:nth-child(8){width:104px}.fn-livre th:nth-child(9){width:290px}
.fn-reg td.actes{white-space:nowrap}
.fn-reg td.actes .fn-lien+.fn-lien{margin-left:11px}
.fn-reg .nom-b{display:block;font-weight:600;overflow:hidden;text-overflow:ellipsis}
.fn-reg tr.rejete td{background:color-mix(in srgb,var(--crit-soft) 55%,transparent)}
.fn-reg tr.rejete td.num{color:var(--muted);text-decoration:line-through}
.fn-lien,.fn-corps .fn-lien{border:0;background:transparent;padding:0;font:inherit;font-size:12.5px;font-weight:700;color:var(--brand);cursor:pointer}
.fn-lien:hover{text-decoration:underline}
.fn-lien.crit,.fn-corps .fn-lien.crit{color:var(--crit)}
.fn-lien:disabled,.fn-corps .fn-lien:disabled{color:var(--muted);cursor:not-allowed;text-decoration:none}
.fn-verif{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;white-space:nowrap}
.fn-verif::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:0 0 auto}
.fn-verif.saisi{color:var(--warn)}.fn-verif.verifie{color:var(--good)}.fn-verif.rejete{color:var(--crit)}.fn-verif.hors{color:var(--muted)}
.fn-nat{font-size:10.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2)}
.fn-nat.decaissement,.fn-nat.ouverture{color:var(--brand)}.fn-nat.annulation{color:var(--crit)}
.fn-nat.augmentation{color:var(--good)}.fn-nat.contrepartie{color:var(--orange)}

/* les formulaires du registre */
.fn-grille{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;margin:0 0 18px;padding:0;border:0;min-width:0}
.fn-grille>legend{float:left;grid-column:1 / -1;width:100%;margin:0;padding:0 0 7px;border-bottom:1px solid var(--v2-trait-fort);font-size:10px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.fn-ch{display:flex;flex-direction:column;gap:5px;min-width:0}
.fn-ch.large{grid-column:1 / -1}
.fn-ch .k{font-size:11.5px;font-weight:700;color:var(--ink-2)}
.fn-champ{width:100%;border:1px solid var(--v2-trait-fort);border-radius:7px;padding:7px 10px;font:inherit;font-size:13px;background:var(--surface);color:var(--ink);font-variant-numeric:tabular-nums}
.fn-champ:focus{outline:none;border-color:var(--brand);box-shadow:var(--v2-lueur)}
.fn-zone{resize:vertical;min-height:62px;line-height:1.45}
.fn-err{margin:4px 0;color:var(--crit);font-size:12.5px;font-weight:600}
.fn-err:empty{display:none}
.fn-fiche-b{margin-bottom:18px}
.fn-mini{width:100%;border-collapse:collapse;margin:4px 0 8px;font-size:12.5px}
.fn-mini td{padding:6px;border-bottom:1px solid var(--v2-trait);vertical-align:top;font-variant-numeric:tabular-nums}
.fn-mini td.r{text-align:right}.fn-mini td.num{white-space:nowrap}.fn-mini td.muet{color:var(--muted)}
.fn-ligne-saisie{display:grid;grid-template-columns:76px minmax(0,1fr) 130px auto;gap:8px;align-items:end}
.fn-journal{display:flex;flex-direction:column;font-size:12px;color:var(--muted)}
.fn-j{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:2px 10px;padding:6px 0;border-bottom:1px solid var(--v2-trait);color:var(--ink-2)}
.fn-j .d{color:var(--muted);font-variant-numeric:tabular-nums}.fn-j .q{min-width:0;overflow-wrap:anywhere}.fn-j .p{font-weight:700}
.fn-j .m{grid-column:2 / -1;font-style:italic;color:var(--muted)}

/* les rapports : le choix a gauche, le papier a droite */
.fr-cadre{display:grid;grid-template-columns:300px minmax(0,1fr);gap:26px;align-items:start}
.fr-choix{position:sticky;top:12px;display:flex;flex-direction:column;gap:14px;min-width:0}
.fr-choix-t h2{margin:0;font-size:15px;font-weight:800;letter-spacing:-.01em}
.fr-choix-t p{margin:4px 0 0;font-size:12px;color:var(--muted);line-height:1.45}
.fr-types{display:flex;flex-direction:column;gap:8px}
.fr-type{display:flex;flex-direction:column;gap:3px;padding:11px 14px;border:1px solid var(--v2-trait-fort);border-radius:10px;background:var(--v2-surface);text-align:left;cursor:pointer;transition:border-color var(--v2-t),background var(--v2-t)}
.fr-type b{font-size:13px;font-weight:800;color:var(--ink)}
.fr-type .pour{font-size:11px;font-weight:700;color:var(--brand)}
.fr-type span:last-child{font-size:11.5px;color:var(--muted);line-height:1.4}
.fr-type:hover{border-color:var(--brand-line)}
.fr-type.on{border-color:var(--brand);background:var(--brand-soft);box-shadow:inset 3px 0 0 var(--brand)}
.fr-reglages{display:flex;flex-direction:column;gap:10px}
.fr-ch{display:flex;flex-direction:column;gap:5px}
.fr-ch .k{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.fr-ch .fn-select{width:100%;max-width:none}
.fr-etat{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border-radius:8px;font-size:12px;line-height:1.4;color:var(--ink-2)}
.fr-etat b{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase}
.fr-etat.travail{background:var(--warn-soft)}.fr-etat.travail b{color:var(--warn)}
.fr-etat.verifie{background:var(--good-soft)}.fr-etat.verifie b{color:var(--good)}
.fr-imprimer{width:100%}
.fr-aide{margin:0;font-size:11.5px;color:var(--muted);line-height:1.45}
.fr-apercu{min-width:0;padding:22px;border-radius:12px;background:color-mix(in srgb,var(--ink) 7%,var(--v2-fond));overflow:hidden}
.fr-feuilles{display:flex;flex-direction:column;align-items:center;gap:18px}

/* LE PAPIER. Ses couleurs sont les siennes : un rapport imprime ne suit
   pas le theme de l'ecran. */
.fr-page{--p-ink:#16202F;--p-ink2:#4A5568;--p-muet:#7B8596;--p-trait:#D5DBE3;--p-trait-f:#9AA5B4;--p-accent:#0F3D8A;--p-accent-soft:#EAF0F9;--p-or:#9A5B00;--p-vert:#1D6B43;--p-rouge:#B42318;
  flex:0 0 auto;display:flex;flex-direction:column;width:210mm;height:297mm;padding:13mm 15mm 10mm;overflow:hidden;
  background:#FFFFFF;color:var(--p-ink);color-scheme:light;font-family:var(--ui);font-size:9.2pt;line-height:1.42;font-variant-numeric:tabular-nums;
  box-shadow:0 1px 3px rgba(0,0,0,.14),0 14px 34px -14px rgba(0,0,0,.4)}
.fr-tete{display:flex;justify-content:space-between;gap:10mm;margin-bottom:6mm;padding-bottom:2.5mm;border-bottom:.8pt solid var(--p-ink);font-size:7.4pt;line-height:1.35}
.fr-tete b{display:block;font-size:7.4pt;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.fr-tete span{color:var(--p-ink2)}
.fr-tete .d{text-align:right}
.fr-corps{flex:1 1 auto;min-height:0;overflow:hidden}
.fr-pied{display:grid;grid-template-columns:1fr auto 1fr;gap:6mm;align-items:center;margin-top:4mm;padding-top:2mm;border-top:.5pt solid var(--p-trait-f);font-size:7pt;color:var(--p-muet)}
.fr-pied .c{font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.fr-pied .c.travail{color:var(--p-or)}.fr-pied .c.verifie{color:var(--p-vert)}
.fr-pied .pg{text-align:right;font-weight:700;color:var(--p-ink2)}
.fr-h2{display:flex;align-items:baseline;gap:3mm;margin:6mm 0 3mm;padding-bottom:1.6mm;border-bottom:1.2pt solid var(--p-accent);font-family:Georgia,"Times New Roman",serif;font-size:13.5pt;font-weight:700;color:var(--p-ink);letter-spacing:-.005em}
.fr-corps>.fr-h2:first-child,.fr-corps>.fr-suite+.fr-h2{margin-top:0}
.fr-h2 .n{align-self:center;padding:.4mm 2mm;border-radius:2px;background:var(--p-accent);color:#FFFFFF;font-family:var(--ui);font-size:8.6pt;font-weight:800;letter-spacing:.04em}
.fr-h3{margin:4mm 0 2mm;font-size:7.8pt;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--p-ink2)}
.fr-p{margin:0 0 2.5mm;font-size:9pt}
.fr-p.intro{color:var(--p-ink2);font-size:8.4pt}
.fr-notes{margin:1.5mm 0 3mm;padding-left:3mm;border-left:1pt solid var(--p-trait)}
.fr-notes p{margin:0 0 .8mm;font-size:7.3pt;line-height:1.4;color:var(--p-muet)}
.fr-suite{margin-bottom:2mm;font-size:7.4pt;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--p-muet)}
.fr-t{width:100%;margin:0 0 2mm;border-collapse:collapse;table-layout:fixed;font-size:8.1pt}
.fr-t thead th{padding:1.6mm 1.6mm 1.2mm;border-top:1pt solid var(--p-ink);border-bottom:.6pt solid var(--p-ink);text-align:left;vertical-align:bottom;font-size:6.8pt;font-weight:800;letter-spacing:.06em;text-transform:uppercase;line-height:1.25;color:var(--p-ink2)}
.fr-t th .u{display:block;font-size:6.3pt;font-weight:600;letter-spacing:0;text-transform:none;color:var(--p-muet)}
.fr-t td{padding:1.4mm 1.6mm;border-bottom:.4pt solid var(--p-trait);vertical-align:top;line-height:1.3;overflow-wrap:anywhere}
.fr-t td .s{display:block;margin-top:.3mm;font-size:7pt;color:var(--p-muet)}
.fr-t .r{text-align:right}
.fr-t td.r{white-space:nowrap;overflow-wrap:normal}
.fr-t td.nd,.fr-t td.nd .v{color:var(--p-muet);font-style:italic}
.fr-t tr.gr td{padding-top:1.2mm;padding-bottom:1.2mm;background:var(--p-accent-soft);color:var(--p-accent);font-size:7pt;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.fr-t tr.sous td{border-top:.6pt solid var(--p-trait-f);font-weight:700}
.fr-t tfoot tr.total td{padding-top:1.6mm;padding-bottom:1.6mm;border-top:.8pt solid var(--p-ink);border-bottom:2.2pt double var(--p-ink);font-weight:800}
.fr-t tr.vide td{padding:3mm 1.6mm;color:var(--p-muet);font-style:italic}
.fr-t td.etat.enRetard{color:var(--p-rouge);font-weight:700}.fr-t td.etat.remis{color:var(--p-vert)}
.fr-t td.regle{font-size:7.5pt;color:var(--p-ink2)}
.fr-t td.att{color:var(--p-or);font-weight:700}
.fr-t td.long{font-size:7.5pt}
.fr-kv{width:100%;margin:0 0 3mm;border-collapse:collapse;font-size:8.6pt}
.fr-kv th{width:38%;padding:1.3mm 3mm 1.3mm 0;border-bottom:.4pt solid var(--p-trait);text-align:left;vertical-align:top;font-weight:600;color:var(--p-ink2)}
.fr-kv td{padding:1.3mm 0;border-bottom:.4pt solid var(--p-trait);vertical-align:top;font-weight:600}
.fr-kv.ident th{width:32%}
.fr-kv.defs th{width:30%;font-weight:700;color:var(--p-ink)}
.fr-kv.defs td{font-size:8pt;font-weight:400;color:var(--p-ink2)}
.fr-kv.long td{font-weight:400}
.fr-chiffres{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:1mm 0 4mm;border:.8pt solid var(--p-ink)}
.fr-chiffres .c{display:flex;flex-direction:column;gap:.6mm;padding:3mm 3.4mm;border-left:.4pt solid var(--p-trait-f);border-top:.4pt solid var(--p-trait-f)}
.fr-chiffres .c:nth-child(3n+1){border-left:0}
.fr-chiffres .c:nth-child(-n+3){border-top:0}
.fr-chiffres .k{font-size:6.7pt;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--p-ink2)}
.fr-chiffres b{font-size:17pt;font-weight:700;letter-spacing:-.02em;line-height:1.1;color:var(--p-ink)}
.fr-chiffres .c.grand b{color:var(--p-accent)}
.fr-chiffres .c.muet b{color:var(--p-ink2)}
.fr-chiffres .s{font-size:7pt;line-height:1.3;color:var(--p-muet)}
.fr-eq{margin:0 0 4mm}
.fr-barre{display:flex;gap:.6mm;height:4mm}
.fr-barre i{display:block;height:100%}
.fr-barre i.dec,.fr-eq .leg .dec i{background:var(--p-accent)}
.fr-barre i.reste,.fr-eq .leg .reste i{background:#A9BFE3}
.fr-barre i.np,.fr-eq .leg .np i{background:repeating-linear-gradient(90deg,#C5CCD6 0 1mm,#FFFFFF 1mm 1.6mm);box-shadow:inset 0 0 0 .5pt #9AA5B4}
.fr-eq .leg{display:flex;gap:6mm;margin-top:1.5mm;font-size:7.2pt;color:var(--p-ink2)}
.fr-eq .leg span{display:inline-flex;align-items:center;gap:1.5mm}
.fr-eq .leg i{display:inline-block;width:3mm;height:3mm}
.fr-resume{margin:0 0 3mm;padding:1mm 0 1mm 4mm;border-left:2pt solid var(--p-accent)}
.fr-resume p{margin:0 0 1.6mm;font-size:9.2pt;line-height:1.5}
.fr-trait{display:block;height:2.4mm;margin-top:.8mm;background:#EEF1F5}
.fr-trait i{display:block;height:100%;background:var(--p-accent)}
.fr-trait i.pret{background:#5B7FBF}.fr-trait i.garantie{background:#8A9BB5}.fr-trait i.nonRenseigne{background:#C5CCD6}
.fr-visas{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:5mm;margin-top:2mm}
.fr-visa{display:flex;flex-direction:column;gap:2mm;min-height:46mm;padding:2.5mm 3mm;border:.6pt solid var(--p-trait-f)}
.fr-visa .t{font-size:7.2pt;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--p-ink)}
.fr-visa .l{display:flex;align-items:flex-end;min-height:5mm;padding-bottom:.6mm;border-bottom:.4pt dotted var(--p-trait-f);font-size:7pt;color:var(--p-muet)}
.fr-visa .sig{flex:1;font-size:7pt;color:var(--p-muet)}
.fr-page.couv{padding:16mm 18mm 10mm}
.fr-couv{display:flex;flex-direction:column;height:100%}
.fr-couv .haut{padding-bottom:5mm;border-bottom:.6pt solid var(--p-trait-f);text-align:center}
.fr-couv .pays{font-size:11pt;font-weight:800;letter-spacing:.22em;text-transform:uppercase}
.fr-couv .org{margin-top:1.5mm;font-size:9.5pt;color:var(--p-ink2)}
.fr-couv .titre{margin:20mm 0 10mm;padding-left:6mm;border-left:3pt solid var(--p-accent)}
.fr-couv .sur,.fr-entete-doc .sur{font-size:7.8pt;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--p-accent)}
.fr-couv h1{margin:3mm 0 5mm;font-family:Georgia,"Times New Roman",serif;font-size:24pt;font-weight:700;line-height:1.15;letter-spacing:-.01em;color:var(--p-ink)}
.fr-couv .per{font-size:14pt;font-weight:700}
.fr-couv .per2{margin-top:1.5mm;font-size:9pt;color:var(--p-ink2)}
.fr-tampon{align-self:flex-start;display:flex;flex-direction:column;gap:.8mm;margin-bottom:10mm;padding:2.4mm 4mm;border:1.2pt solid currentColor}
.fr-tampon b{font-size:9pt;letter-spacing:.18em;text-transform:uppercase}
.fr-tampon span{font-size:7.6pt}
.fr-tampon.travail{color:var(--p-or)}.fr-tampon.verifie{color:var(--p-vert)}
.fr-sommaire{margin-bottom:auto}
.fr-sommaire h3{margin:0 0 2.5mm;padding-bottom:1.5mm;border-bottom:.8pt solid var(--p-ink);font-size:7.8pt;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--p-ink2)}
.fr-sommaire .l{display:flex;align-items:baseline;gap:2.5mm;padding:1.2mm 0;font-size:9.4pt}
.fr-sommaire .n{width:7mm;font-weight:800;color:var(--p-accent)}
.fr-sommaire .pts{flex:1;border-bottom:.6pt dotted var(--p-trait-f)}
.fr-sommaire .pg{min-width:6mm;text-align:right;font-weight:700}
.fr-fiche-doc{margin-top:6mm;font-size:7.8pt}
.fr-fiche-doc th{width:28%}
.fr-entete-doc{margin:0 0 5mm;padding:1mm 0 1mm 5mm;border-left:3pt solid var(--p-accent)}
.fr-entete-doc h1{margin:1.5mm 0;font-family:Georgia,"Times New Roman",serif;font-size:17pt;font-weight:700;line-height:1.2}
.fr-entete-doc .per{font-size:9pt;color:var(--p-ink2)}
#fr-impression{display:none}
@media print{
  @page{size:A4;margin:0}
  html.fr-impression body>*:not(#fr-impression){display:none!important}
  html.fr-impression,html.fr-impression body{height:auto!important;overflow:visible!important;background:#FFFFFF!important}
  html.fr-impression #fr-impression{display:block!important;zoom:1!important}
  #fr-impression .fr-page{margin:0;box-shadow:none;break-after:page;page-break-after:always}
  #fr-impression .fr-page:last-child{break-after:auto;page-break-after:auto}
  #fr-impression *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
@media (max-width:1400px){
  .fn-ex-tbl th:nth-child(n+3){width:100px}.fn-ex-tbl th:nth-child(7){width:110px}.fn-ex-tbl th:nth-child(10){width:120px}
  .fn-releve .c{padding:6px 10px 7px}
  .fn-ex-c.grand b{font-size:34px}
}
@media (max-width:1100px){
  .v2-fn .fn-tete{grid-template-columns:1fr}
  .v2-fn .fn-tete .fn-gestes{grid-column:1;grid-row:auto;justify-content:flex-start;margin:6px 0 10px}
  .fn-releve{grid-column:1;grid-row:auto;flex-wrap:wrap;margin-top:6px}
  .fr-cadre{grid-template-columns:1fr}
  .fr-choix{position:static}
  .fn-ex-tete{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fn-ex-c:nth-child(3){border-left:0}
  .fn-ex-c:nth-child(n+3){border-top:1px solid var(--v2-trait)}
}
@media (max-width:760px){
  .fn-compo{grid-template-columns:1fr;gap:18px}
  .fn-grille{grid-template-columns:1fr}
  .fn-ligne-saisie{grid-template-columns:1fr 1fr}
  .fr-apercu{padding:10px}
}

/* =====================================================================
   LES FINANCEMENTS, REFONTE DU 03/10/2026 : la barre de contexte collee
   en haut (date de situation, exercice, periode, comparaison, devise),
   la lecture d'ensemble du portefeuille (un releve, puis les programmes,
   l'attention, les objets finances, les exercices).
   ===================================================================== */
.fn-contexte{position:sticky;top:0;z-index:6;display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px 26px;
  margin:0;padding:12px 30px 12px;background:color-mix(in srgb,var(--v2-fond) 92%,transparent);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--v2-trait-fort)}
.fn-contexte .c{display:flex;flex-direction:column;gap:5px;min-width:0}
.fn-contexte .c>.k{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.fn-contexte .c>b{font-size:14px;font-weight:700;color:var(--ink);line-height:28px;white-space:nowrap}
.fn-contexte .c.situ>b{font-size:15px}
.fn-contexte .c.adate>b::after{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--brand);margin-left:8px;vertical-align:middle}
.fn-contexte .c.reg>b{font-size:13px;font-weight:600;color:var(--ink-2)}
.fn-contexte .c.reg.att>b{color:var(--warn);font-weight:700}
.fn-contexte .fn-select{height:30px}
.fn-contexte .fn-seg button{padding:5px 12px;line-height:18px}
.fn-bascule{height:30px;padding:0 12px;border:1px solid var(--v2-trait-fort);border-radius:7px;background:var(--v2-surface);font:inherit;font-size:12.5px;
  font-weight:600;color:var(--ink-2);cursor:pointer;white-space:nowrap}
.fn-bascule.on{border-color:var(--brand);color:var(--brand);background:color-mix(in srgb,var(--brand) 8%,var(--v2-surface))}
.fn-bascule:disabled,.fn-contexte .fn-select:disabled{opacity:.45;cursor:default}
.v2-fn .fn-tete .menu{padding-bottom:0}

/* la lecture d'ensemble : deux colonnes, puis les exercices en pleine largeur */
.fn-lecture{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr);gap:30px;align-items:start}
.fn-lecture>.g,.fn-lecture>.d{display:flex;flex-direction:column;gap:30px;min-width:0}

/* le releve de situation : une rubrique par ligne */
.fn-lp{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.fn-lp th{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:left;padding:0 10px 8px;
  border-bottom:1px solid var(--v2-trait-fort);white-space:nowrap}
.fn-lp th:first-child{padding-left:0}
.fn-lp th.r,.fn-lp td.r{text-align:right}
.fn-lp td{padding:11px 10px;border-bottom:1px solid var(--v2-trait);vertical-align:baseline}
.fn-lp tr.clic{cursor:pointer;transition:background var(--v2-t)}
.fn-lp tr.clic:hover{background:var(--v2-surface-2)}
.fn-lp td.k{font-size:13.5px;font-weight:600;color:var(--ink);padding-left:0}
.fn-lp td.v b{font-family:var(--mono,ui-monospace,monospace);font-size:19px;font-weight:700;letter-spacing:-.02em;color:var(--ink)}
.fn-lp tr.fort td.k{font-size:14.5px;font-weight:800}
.fn-lp tr.fort td.v b{font-size:30px;letter-spacing:-.035em}
.fn-lp tr.muet td.v b,.fn-lp tr.muet td.k{color:var(--ink-2)}
.fn-lp tr.att td.k,.fn-lp tr.att td.v b{color:var(--warn)}
.fn-lp tr.flux td{background:color-mix(in srgb,var(--brand) 3%,transparent)}
.fn-lp td.p,.fn-lp td.v1{font-family:var(--mono,ui-monospace,monospace);font-size:13px;color:var(--ink-2);white-space:nowrap}
.fn-lp td.e{font-family:var(--mono,ui-monospace,monospace);font-size:13px;font-weight:700;white-space:nowrap;color:var(--ink-2)}
.fn-lp td.e.plus{color:var(--good)}
.fn-lp td.e.moins{color:var(--crit)}
.fn-lp td.s{font-size:12px;color:var(--muted);line-height:1.35;padding-right:0}
.fn-lp-pan .fn-eq-barre{margin-top:16px}
.fn-eq-l{margin-top:8px}
.fn-eq-l .decaisse i{background:var(--brand)}
.fn-eq-l .reste i{background:color-mix(in srgb,var(--brand) 20%,var(--v2-surface))}
.fn-eq-l .nonPublie i{background:transparent;box-shadow:inset 0 0 0 1.5px var(--muted)}

/* les programmes : l'argent et le temps cote a cote */
.fn-prog td.jg{white-space:nowrap}
.fn-jauge{display:inline-block;vertical-align:middle;width:84px;height:6px;border-radius:3px;background:var(--v2-trait);overflow:hidden;margin-right:9px}
.fn-jauge i{display:block;height:100%;border-radius:3px}
.fn-jauge.dec i{background:var(--brand)}
.fn-jauge.tps i{background:color-mix(in srgb,var(--ink-2) 55%,transparent)}
.fn-jauge.inconnue{background:transparent;box-shadow:inset 0 0 0 1px var(--v2-trait-fort)}
.fn-prog .pc{display:inline-block;min-width:44px;font-family:var(--mono,ui-monospace,monospace);font-size:12.5px;color:var(--ink);vertical-align:middle}
.fn-prog .pc.muet{color:var(--muted);font-family:var(--ui);font-size:12px}
.fn-prog tr.gr td{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:14px 10px 6px;
  border-bottom:1px solid var(--v2-trait-fort);background:transparent;cursor:default}
.fn-etat2{display:inline-block;font-size:12px;font-weight:700;padding:2px 9px;border-radius:999px;white-space:nowrap;
  background:var(--v2-surface-2);color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--v2-trait-fort)}
.fn-etat2.ok{color:var(--good);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--good) 40%,transparent);background:color-mix(in srgb,var(--good) 7%,transparent)}
.fn-etat2.retard{color:var(--warn);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--warn) 45%,transparent);background:color-mix(in srgb,var(--warn) 8%,transparent)}
.fn-etat2.arret{color:var(--crit);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--crit) 40%,transparent);background:color-mix(in srgb,var(--crit) 7%,transparent)}
.fn-etat2.inconnu,.fn-etat2.aConfirmer,.fn-etat2.clos{color:var(--muted)}

/* ce qui demande attention */
.fn-att{display:flex;flex-direction:column}
.fn-att-l{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"sig cst" "qui qui";gap:2px 12px;text-align:left;border:0;
  background:transparent;padding:9px 0;border-bottom:1px solid var(--v2-trait);cursor:pointer}
.fn-att-l .sig{grid-area:sig;font-size:13px;font-weight:700;color:var(--warn)}
.fn-att-l .qui{grid-area:qui;font-size:12px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fn-att-l .cst{grid-area:cst;font-size:12px;font-family:var(--mono,ui-monospace,monospace);color:var(--ink-2);white-space:nowrap}
.fn-att-l.ech .sig{color:var(--ink);font-weight:600;font-family:var(--mono,ui-monospace,monospace);font-size:12.5px}
.fn-att-l.ech.enRetard .sig{color:var(--crit)}
.fn-att-l:hover .qui{color:var(--brand)}
.fn-att-vide{font-size:12.5px;color:var(--muted);padding:9px 0}
.fn-pan-t.sous{margin-top:18px}
.fn-pan-t.sous h3{margin:0;font-size:13px;font-weight:800}

/* ce que l'argent finance */
.fn-obj-t{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:12px;border-bottom:1px solid var(--v2-trait)}
.fn-obj-t .c{display:flex;flex-direction:column;gap:2px;padding:0 12px 12px;border-left:1px solid var(--v2-trait)}
.fn-obj-t .c:first-child{border-left:0;padding-left:0}
.fn-obj-t .k{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.fn-obj-t b{font-family:var(--mono,ui-monospace,monospace);font-size:22px;font-weight:700;color:var(--ink)}
.fn-obj-t .s{font-size:12px;color:var(--ink-2);font-family:var(--mono,ui-monospace,monospace)}
.fn-obj .sous2{font-size:12px;color:var(--ink-2)}

/* les exercices */
.fn-ann-grille{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:30px;align-items:start}
.fn-annees svg .flux{fill:color-mix(in srgb,var(--brand) 42%,transparent)}
.fn-annees svg .flux.partiel{fill:color-mix(in srgb,var(--brand) 22%,transparent);stroke:color-mix(in srgb,var(--brand) 45%,transparent);stroke-width:1;stroke-dasharray:2 2}
.fn-annees svg .axe.adate{fill:var(--brand);font-weight:700}
.fn-annees .fn-leg .flux i{background:color-mix(in srgb,var(--brand) 45%,transparent);width:7px;height:12px}
.fn-ann td.partiel{color:var(--ink-2);text-decoration:underline dotted;text-underline-offset:3px}
.fn-ann tr.adate td .nom{color:var(--brand)}

@media (max-width:1380px){
  .fn-lecture{grid-template-columns:1fr}
  .fn-ann-grille{grid-template-columns:1fr}
}
@media (max-width:900px){
  .fn-contexte{padding:10px 16px;gap:8px 16px}
  .fn-lp td.s{display:none}
}

/* les tableaux de la lecture d'ensemble tiennent dans leur colonne */
.fn-reg.fn-prog,.fn-reg.fn-objets,.fn-reg.fn-ann{min-width:0}
.fn-prog th:nth-child(1){width:27%}.fn-prog th:nth-child(2){width:9%}.fn-prog th:nth-child(3){width:8%}
.fn-prog th:nth-child(4){width:14%}.fn-prog th:nth-child(5){width:13%}.fn-prog th:nth-child(6){width:17%}.fn-prog th:nth-child(7){width:12%}
.fn-prog .fn-jauge{width:58px}
.fn-prog td .fn-etat2{max-width:100%;overflow:hidden;text-overflow:ellipsis}
.fn-objets th:nth-child(1){width:56%}.fn-objets th:nth-child(2){width:22%}.fn-objets th:nth-child(3){width:22%}
.fn-ann th:nth-child(1){width:18%}
.fn-eq-l span i,.fn-leg.fn-eq-l .decaisse i,.fn-leg.fn-eq-l .reste i,.fn-leg.fn-eq-l .nonPublie i{width:14px;height:8px;border-top:0;border-radius:2px}
.fn-annees .fn-leg .flux i{border-top:0}

/* les blocs de la lecture gardent la marge de leur carte */
.fn-lp-pan .fn-lp{width:calc(100% - 36px);margin:0 18px}
.fn-lp-pan .fn-eq-barre,.fn-lp-pan .fn-eq-l{margin-left:18px;margin-right:18px}
.fn-lp-pan{padding-bottom:16px}
.fn-att{padding:0 18px}
.fn-att-pan{padding-bottom:10px}
.fn-obj-t{padding:0 18px}
.fn-prog td{height:auto;padding-top:9px;padding-bottom:9px}
.fn-prog .pc{min-width:34px}
@media (max-width:1600px){.fn-prog .fn-jauge{width:40px;margin-right:7px}}

/* LES RAPPORTS, MOTEUR DE PUBLICATION (03/10/2026) : le cadre de
   publication, les commentaires a part des chiffres, la courbe imprimee. */
.fr-choix{top:96px}
.fr-per{font-size:13px;font-weight:700;color:var(--ink);overflow-wrap:anywhere}
.fr-pub{display:flex;flex-direction:column;gap:7px;padding:12px 14px;border:1px solid var(--v2-trait-fort);border-radius:10px;background:var(--v2-surface)}
.fr-pub .t{display:flex;flex-direction:column;gap:3px}
.fr-pub .t .k,.fr-pub .l .k,.fr-versions .k{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.fr-pub .t b{font-size:13px;font-weight:800;color:var(--ink)}
.fr-pub.apercu .t b,.fr-pub.brouillon .t b,.fr-pub.a_verifier .t b{color:var(--warn)}
.fr-pub.valide .t b,.fr-pub.approuve .t b{color:var(--brand)}
.fr-pub.publie .t b{color:var(--good)}
.fr-pub.remplace .t b{color:var(--muted)}
.fr-pub .l{display:grid;grid-template-columns:82px minmax(0,1fr);gap:2px 8px;align-items:baseline;font-size:12px;color:var(--ink-2)}
.fr-pub .l .fn-lien{grid-column:2;justify-self:start}
.fr-pub .l.att span:not(.k){color:var(--warn);font-weight:700}
.fr-pub .l.renvoi span:not(.k){font-style:italic}
.fr-pub .a{display:flex;flex-direction:column;gap:7px;margin-top:4px}
.fr-pub .a .v2-b{width:100%;justify-content:center}
.fr-pub .a .v2-b:disabled{opacity:.5;cursor:not-allowed}
.fr-versions{display:flex;flex-direction:column;gap:3px;margin-top:4px;padding-top:8px;border-top:1px solid var(--v2-trait)}
.fr-versions .fn-lien{text-align:left}
.fr-versions .fn-lien.on{font-weight:800;text-decoration:underline}

/* sur le papier */
.fr-narratif{margin:2mm 0 4mm;padding:2.4mm 3.4mm 1mm;border:.6pt solid var(--p-trait-f);border-left:2.4pt solid var(--p-ink2);background:#FAFBFC}
.fr-narratif .t{margin-bottom:1.2mm;font-size:6.8pt;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--p-ink2)}
.fr-narratif p{margin:0 0 1.6mm;font-size:9pt;line-height:1.5;color:var(--p-ink)}
.fr-narratif.vide{border-style:dashed;background:transparent}
.fr-narratif.vide p{color:var(--p-muet);font-style:italic}
.fr-graphe{margin:1mm 0 3mm}
.fr-courbe{display:block;width:100%;height:auto}
.fr-courbe .gr{stroke:var(--p-trait);stroke-width:.6}
.fr-courbe .gr.base{stroke:var(--p-trait-f)}
.fr-courbe .ax{font-size:8px;fill:var(--p-muet);font-family:var(--ui)}
.fr-courbe .cu{fill:none;stroke:var(--p-accent);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.fr-courbe .fr-pt{fill:var(--p-accent)}
.fr-courbe .fl{fill:#A9BFE3}
.fr-courbe .fl.partiel{fill:#D6E0F0;stroke:#7F9BCB;stroke-width:.6;stroke-dasharray:1.6 1.2}
.fr-leg{display:flex;gap:6mm;margin-top:1mm;font-size:7.2pt;color:var(--p-ink2)}
.fr-leg span{display:inline-flex;align-items:center;gap:1.5mm}
.fr-leg .cu i{display:inline-block;width:5mm;height:0;border-top:1.4pt solid var(--p-accent)}
.fr-leg .fl i{display:inline-block;width:2mm;height:3mm;background:#A9BFE3}
.fr-t td.partiel{color:var(--p-ink2)}
.fr-t.serre{font-size:7.4pt}
.fr-t.serre td,.fr-t.serre th{padding-left:1mm;padding-right:1mm}
.fr-visa.plein .l span{color:var(--p-ink);font-weight:600}
.fr-couv .titre{margin:12mm 0 8mm}
.fr-tampon{margin-bottom:7mm}
.fr-fiche-doc{margin-top:4mm}
.fr-fiche-doc th,.fr-fiche-doc td{padding-top:.9mm;padding-bottom:.9mm}
.fr-sommaire .l{padding:.75mm 0}
.fr-couv .titre{margin:9mm 0 6mm}
.fr-couv h1{font-size:21pt;margin:2mm 0 4mm}
.fr-couv .haut{padding-bottom:4mm}

/* =====================================================================
   LES FINANCEMENTS, SECONDE REVUE DU 03/10/2026 : rien ne bouge quand on
   change de devise, de date ou de periode (chaque case a sa largeur), la
   comparaison dans le releve, le calendrier des obligations, la fiche en
   pleine page, la page de garde et le sommaire des rapports.
   ===================================================================== */
/* la barre de contexte : des cases de largeur fixe */
.fn-contexte .c{flex:0 0 auto}
.fn-contexte .c.situ{width:176px}
.fn-contexte .c.ex{width:92px}
.fn-contexte .c.per{width:150px}
.fn-contexte .c.bornes{width:262px}
.fn-contexte .c.ex .fn-select,.fn-contexte .c.per .fn-select{width:100%}
.fn-contexte .c>b.bornes{font-size:13px;font-weight:600;color:var(--ink-2);white-space:pre}
.fn-contexte .c.devise .fn-seg button{min-width:52px;text-align:center}
.fn-contexte .c.reg{width:118px}
.fn-contexte .c.reg+.c.reg{width:86px}
.fn-contexte .c>b,.fn-contexte .c>.k{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fn-onglets a{flex:0 0 auto}

/* le releve : des colonnes de largeur fixe, la comparaison dans son titre */
.fn-lp{table-layout:fixed}
.fn-lp col.c-k{width:34%}.fn-lp col.c-v{width:18%}.fn-lp col.c-p{width:9%}.fn-lp col.c-s{width:auto}
.fn-lp.cmp col.c-k{width:28%}.fn-lp.cmp col.c-v{width:15%}.fn-lp.cmp col.c-p{width:7%}.fn-lp.cmp col.c-v1{width:13%}.fn-lp.cmp col.c-e{width:11%}
.fn-lp td{overflow:hidden;text-overflow:ellipsis}
.fn-lp td.k span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fn-lp td.s{white-space:nowrap}
.fn-lp th{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fn-lp tr.gr td{padding:18px 0 7px;font-size:10.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--brand);border-bottom:1px solid var(--v2-trait-fort);background:transparent}
.fn-lp tbody tr.gr:first-child td{padding-top:6px}
.fn-cmp{display:inline-flex;align-items:center;gap:9px;flex:0 0 auto}
.fn-cmp .k{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.fn-cmp .fn-select{width:150px;height:30px}

/* les obligations de la lecture d'ensemble : date, financement */
.fn-oblig{width:calc(100% - 36px);margin:0 18px 6px;border-collapse:collapse;table-layout:fixed;font-size:12.5px}
.fn-oblig td{padding:8px 0;border-bottom:1px solid var(--v2-trait);vertical-align:top}
.fn-oblig tr:last-child td{border-bottom:0}
.fn-oblig td.d{width:96px;padding-right:12px;font-weight:700;color:var(--ink-2);white-space:nowrap;font-variant-numeric:tabular-nums}
.fn-oblig td.fn-ob-q{min-width:0}
.fn-oblig .nom{display:block;font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fn-oblig .sous{display:block;margin-top:2px;font-size:11.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fn-oblig tr.enRetard td.d{color:var(--crit)}
.fn-oblig tr.clic{cursor:pointer}
.fn-oblig tr.clic:hover td{background:var(--v2-surface-2)}
.fn-oblig td.vide{color:var(--muted);font-size:12px;line-height:1.45}
.fn-pan-t h3{margin:0;font-size:12.5px;font-weight:800}

/* l'execution : dix colonnes, l'engagement dans la devise d'affichage */
.fn-ex-tbl{min-width:1260px}
.fn-ex-tbl th:nth-child(n+2){width:112px}.fn-ex-tbl th:nth-child(7){width:104px}.fn-ex-tbl th:nth-child(8){width:126px}.fn-ex-tbl th:nth-child(10){width:132px}
.fn-ex-tbl td .num{display:block}
.fn-ex-tbl td.r .sous{text-align:right}

/* le calendrier des obligations, sur le modele de Bayss (04/10/2026) :
   le temps de gauche a droite, chaque obligation posee a son jour */
.fn-cal-pan .fn-pan-t{align-items:center;flex-wrap:wrap}
.fn-pan.fn-cal-pan>.fn-pied-note{border-top:0;padding-top:4px}
.fn-cal-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fn-cal-b{width:32px;height:32px;padding:0;border:1px solid var(--v2-trait-fort);border-radius:8px;background:var(--v2-surface);color:var(--ink);font:inherit;font-size:19px;line-height:1;cursor:pointer}
.fn-cal-b:hover{background:var(--v2-surface-2)}
.fn-cal-plage{width:252px;box-sizing:border-box;height:32px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--v2-trait-fort);border-radius:8px;background:var(--v2-surface);font-size:12.5px;font-weight:700;color:var(--ink);white-space:nowrap}
.fn-cal-nav .fn-select{height:32px;width:112px}
.fn-tl-hote{overflow-x:auto;border-top:1px solid var(--v2-trait-fort);padding-bottom:6px}
.fn-tl{position:relative;min-width:940px;--nom:230px;--fn-auj:#EA580C}
@media (max-width:1500px){.fn-tl{--nom:190px}}
.fn-tl-tete{position:relative;display:flex;height:54px;border-bottom:1px solid var(--v2-trait-fort)}
.fn-tl-tete .c-nom{flex:0 0 var(--nom);display:flex;align-items:flex-end;padding:0 12px 9px 18px;font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border-right:1px solid var(--v2-trait);box-sizing:border-box}
.fn-tl-echelle{position:relative;flex:1 1 auto}
.fn-tl-echelle .tl-mois{position:absolute;top:0;bottom:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding-bottom:9px;box-sizing:border-box}
.fn-tl-echelle .tl-mois.debut{border-left:1px solid var(--v2-trait-fort)}
.fn-tl-echelle .tl-an{position:absolute;top:8px;left:8px;font-size:11.5px;font-weight:800;color:var(--ink)}
.fn-tl-echelle .tl-m{font-size:11px;font-weight:600;color:var(--muted);text-transform:capitalize}
.fn-tl-echelle .tl-mois.auj .tl-m{color:var(--fn-auj);font-weight:800}
.fn-tl-corps{position:relative}
.fn-tl-l{display:flex;border-bottom:1px solid var(--v2-trait)}
.fn-tl-l:last-child{border-bottom:0}
.fn-tl-l .c-nom{flex:0 0 var(--nom);display:flex;flex-direction:column;justify-content:center;gap:3px;padding:10px 12px 10px 18px;margin:0;border:0;border-right:1px solid var(--v2-trait);background:transparent;text-align:left;font:inherit;cursor:pointer;min-width:0;box-sizing:border-box}
.fn-tl-l .c-nom .n{font-size:13px;font-weight:700;color:var(--ink);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fn-tl-l .c-nom .r{font-size:11px;color:var(--muted)}
.fn-tl-l .c-nom:hover .n{color:var(--brand);text-decoration:underline}
.fn-tl-piste{position:relative;flex:1 1 auto;height:80px}
.fn-tl-grille{position:absolute;inset:0;pointer-events:none}
.fn-tl-grille i{position:absolute;top:0;bottom:0;width:0;border-left:1px solid color-mix(in srgb,var(--v2-trait) 55%,transparent)}
.fn-tl-grille i.tl-tr{border-left-color:var(--v2-trait)}
.fn-tl-grille i.tl-an{border-left-color:var(--v2-trait-fort)}
.fn-tl-auj{position:absolute;top:26px;bottom:0;width:0;left:calc(var(--nom) + (100% - var(--nom)) * var(--f));border-left:1.5px dashed var(--fn-auj);pointer-events:none;z-index:0}
.fn-tl-auj-t{position:absolute;top:4px;left:calc(var(--nom) + (100% - var(--nom)) * var(--f));transform:translateX(-50%);z-index:3;pointer-events:none}
.fn-tl-auj-t span{display:inline-block;padding:2px 8px;border-radius:5px;background:var(--fn-auj);color:#fff;font-size:10.5px;font-weight:800;line-height:16px;white-space:nowrap}
.fn-ev{position:absolute;display:flex;align-items:center;gap:7px;height:31px;padding:0 10px 0 4px;margin:0;box-sizing:border-box;border:1px solid color-mix(in srgb,var(--c) 30%,transparent);border-radius:8px;background:color-mix(in srgb,var(--c) 9%,var(--v2-surface));font:inherit;text-align:left;cursor:pointer;z-index:1}
.fn-ev.droite{flex-direction:row-reverse;padding:0 4px 0 10px;text-align:right}
.fn-ev>i{flex:0 0 10px;width:10px;height:10px;border-radius:50%;background:var(--c);box-shadow:0 0 0 2px var(--v2-surface);box-sizing:border-box}
.fn-ev .tx{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.fn-ev .t{font-size:11.5px;font-weight:800;color:color-mix(in srgb,var(--c) 78%,var(--ink));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fn-ev .d{font-size:10.5px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fn-ev:hover,.fn-ev:focus-visible{box-shadow:0 3px 10px color-mix(in srgb,var(--c) 28%,transparent);z-index:4;outline:none}
.fn-ev.rfi,.fn-ev-l.rfi{--c:#2563EB}
.fn-ev.audit,.fn-ev-l.audit{--c:#7C3AED}
.fn-ev.cloture,.fn-ev-l.cloture{--c:#16A34A}
.fn-ev.grace,.fn-ev-l.grace{--c:#D97706}
.fn-ev.enRetard,.fn-ev-l.enRetard{--c:#DC2626}
.fn-ev.remis{opacity:.62}
.fn-ev.remis>i{background:var(--v2-surface);border:2px solid var(--c)}
.fn-ev.passee{opacity:.5}
.fn-ev-avant{position:absolute;left:8px;height:30px;margin-top:4px;padding:0 10px;border:1px solid color-mix(in srgb,#DC2626 35%,transparent);border-radius:8px;background:color-mix(in srgb,#DC2626 10%,var(--v2-surface));color:color-mix(in srgb,#DC2626 82%,var(--ink));font:inherit;font-size:11.5px;font-weight:800;cursor:pointer;z-index:1;white-space:nowrap}
.fn-tl-leg{display:flex;flex-wrap:wrap;gap:10px 22px;padding:14px 18px 6px;border-top:1px solid var(--v2-trait)}
.fn-ev-l{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-2)}
.fn-ev-l i{width:10px;height:10px;border-radius:50%;background:var(--c);box-sizing:border-box}
.fn-ev-l.remis{--c:var(--muted)}
.fn-ev-l.remis i{background:transparent;border:2px solid var(--c)}
.fn-ev .plus{position:absolute;top:-7px;right:-6px;min-width:18px;height:16px;padding:0 4px;box-sizing:border-box;border-radius:8px;background:var(--ink);color:var(--v2-surface);font-size:10px;font-weight:800;line-height:16px;text-align:center}
.fn-cal-r{width:78px;text-align:center}
.fn-tl-etat{display:flex;align-items:center;gap:16px;height:40px;padding:0 18px;border-top:1px solid var(--v2-trait);font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden}
.fn-tl-etat .fn-lien{overflow:hidden;text-overflow:ellipsis}

/* les valeurs au survol des courbes */
.fn-dessin{position:relative}
.fn-dessin svg{touch-action:pan-y}
.fn-dessin .zone-survol{fill:transparent;cursor:crosshair}
.fn-dessin .guide{stroke:var(--ink-2);stroke-width:1;stroke-dasharray:3 3;pointer-events:none}
.fn-dessin .vus{pointer-events:none}
.fn-dessin .fn-pt.vu{stroke:var(--v2-surface);stroke-width:2}
.fn-bulle{position:absolute;z-index:5;min-width:200px;max-width:300px;padding:9px 12px 10px;border:1px solid var(--v2-trait-fort);border-radius:9px;background:var(--v2-surface);box-shadow:0 8px 24px rgba(15,23,42,.14);pointer-events:none;font-size:12px}
.fn-bulle[hidden]{display:none}
.fn-bulle .t{margin-bottom:6px;font-weight:800;color:var(--ink);white-space:nowrap}
.fn-bulle .l{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:3px 0;border-top:1px solid var(--v2-trait);color:var(--ink-2)}
.fn-bulle .l b{font-family:var(--mono,ui-monospace,monospace);font-weight:700;color:var(--ink);white-space:nowrap}
.fn-bulle .l.realise span::before,.fn-bulle .l.prevu span::before,.fn-bulle .l.flux span::before{content:"";display:inline-block;width:12px;margin-right:7px;vertical-align:middle;border-top:2px solid var(--brand)}
.fn-bulle .l.prevu span::before{border-top-style:dashed;border-top-color:var(--ink-2)}
.fn-bulle .l.flux span::before{width:6px;height:9px;border:0;background:color-mix(in srgb,var(--brand) 40%,transparent)}
.fn-bulle .n{margin-top:6px;font-size:11px;color:var(--muted);line-height:1.4;white-space:normal}

/* le registre : deux montants, celui de l'accord et sa contre-valeur */
.fn-accords{min-width:1560px}
.fn-accords th:nth-child(1){width:118px}.fn-accords th:nth-child(3){width:110px}.fn-accords th:nth-child(4){width:70px}
.fn-accords th:nth-child(5){width:140px}.fn-accords th:nth-child(6){width:150px}.fn-accords th:nth-child(7){width:118px}
.fn-accords th:nth-child(8),.fn-accords th:nth-child(9){width:112px}.fn-accords th:nth-child(10){width:112px}.fn-accords th:nth-child(11){width:200px}
.fn-livre{min-width:1560px}
.fn-livre th:nth-child(1){width:112px}.fn-livre th:nth-child(3){width:150px}.fn-livre th:nth-child(4){width:138px}
.fn-livre th:nth-child(5){width:170px}.fn-livre th:nth-child(6){width:140px}.fn-livre th:nth-child(7){width:150px}
.fn-livre th:nth-child(8){width:116px}.fn-livre th:nth-child(9){width:104px}.fn-livre th:nth-child(10){width:260px}

/* la fiche d'un financement, en pleine page */
.fn-fp-tete{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}
.fn-fp-tete .g{min-width:0;flex:1 1 520px}
.fn-fp-tete h2{margin:6px 0 6px;font-size:24px;font-weight:800;letter-spacing:-.015em;line-height:1.2;color:var(--ink)}
.fn-fp-tete .sous{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;font-size:12.5px;color:var(--muted)}
.fn-fp-tete .a{display:flex;flex-wrap:wrap;gap:8px}
.fn-retour{font-size:12.5px}
.fn-retour::before{content:"\2190";margin-right:6px}
.fn-fp-chiffres{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--v2-trait);border-radius:12px;background:var(--v2-surface);overflow:hidden}
.fn-fp-chiffres .c{display:flex;flex-direction:column;gap:5px;min-width:0;padding:14px 16px 15px;border-left:1px solid var(--v2-trait)}
.fn-fp-chiffres .c:first-child{border-left:0}
.fn-fp-chiffres .c>.k{font-size:10px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fn-fp-chiffres .c>b{font-size:18px;font-weight:700;font-family:var(--mono,ui-monospace,monospace);letter-spacing:-.02em;color:var(--ink);line-height:1.2}
.fn-fp-chiffres .c>b.muet{color:var(--muted)}
.fn-fp-chiffres .c>.s{font-size:11.5px;color:var(--muted);line-height:1.35;overflow:hidden;text-overflow:ellipsis}
.fn-deux{display:flex;flex-direction:column;gap:3px;min-width:0}
.fn-deux b{font-size:16px;font-weight:700;font-family:var(--mono,ui-monospace,monospace);letter-spacing:-.02em;color:var(--ink);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fn-deux span{font-size:11.5px;font-family:var(--mono,ui-monospace,monospace);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fn-fp-note{margin:-8px 2px 0;font-size:11.5px;color:var(--muted);line-height:1.5}
.fn-fp-grille{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(320px,1fr);gap:var(--fn-gap,22px);align-items:start}
.fn-fp-grille>.g,.fn-fp-grille>.d{display:flex;flex-direction:column;gap:var(--fn-gap,22px);min-width:0}
.fn-reg.fn-fp-t{min-width:0}
.fn-fp-t td{height:44px}
.fn-fp-mv{min-width:820px}
.fn-reg.fn-fp-mv{min-width:820px}
.fn-fp-mv th:nth-child(1){width:108px}.fn-fp-mv th:nth-child(2){width:120px}.fn-fp-mv th:nth-child(4),.fn-fp-mv th:nth-child(5){width:130px}
.fn-fp-mv th:nth-child(6){width:96px}.fn-fp-mv th:nth-child(7){width:150px}
.fn-fp-plus{display:block;margin:10px 18px 0}
.fn-fp-saisie{display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px 12px;padding:14px 18px 2px;border-top:1px solid var(--v2-trait)}
.fn-fp-saisie .fn-err{flex-basis:100%;color:var(--crit);font-size:12px}
.fn-fp-saisie .fn-err:empty{display:none}
.fn-fp-kv{display:flex;flex-direction:column;padding:0 18px 12px}
.fn-fp-kv .l{display:grid;grid-template-columns:minmax(110px,40%) minmax(0,1fr);gap:4px 14px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--v2-trait);font-size:12.5px}
.fn-fp-kv .l:last-child{border-bottom:0}
.fn-fp-kv .l .k{color:var(--muted);min-width:0;overflow-wrap:anywhere}
.fn-fp-kv .l .v{color:var(--ink);font-weight:600;min-width:0;overflow-wrap:anywhere;line-height:1.45}
.fn-fp-kv .l.clic{cursor:pointer}
.fn-fp-kv .l.clic:hover .v{color:var(--brand);text-decoration:underline}
.fn-fp-kv .l.muet{display:block;color:var(--muted)}
.fn-fp-kv.att .l .k{color:var(--warn);font-weight:700}
.fn-fp-source{margin:0;padding:0 18px 14px;font-size:12px;color:var(--ink-2);line-height:1.55;overflow-wrap:anywhere}
.fn-reg.fn-fp-journal{min-width:900px}
.fn-fp-journal th:nth-child(1){width:120px}.fn-fp-journal th:nth-child(2){width:130px}.fn-fp-journal th:nth-child(4){width:180px}.fn-fp-journal th:nth-child(5){width:34%}
.fn-fp-journal td{height:40px}
@media (max-width:1500px){
  .fn-fp-chiffres{grid-template-columns:repeat(4,minmax(0,1fr))}
  .fn-fp-chiffres .c:nth-child(5){border-left:0}
  .fn-fp-chiffres .c:nth-child(n+5){border-top:1px solid var(--v2-trait)}
  .fn-fp-grille{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:760px){
  .fn-fp-chiffres{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fn-fp-chiffres .c:nth-child(odd){border-left:0}
  .fn-fp-chiffres .c:nth-child(n+3){border-top:1px solid var(--v2-trait)}
  .fn-contexte .c.bornes{display:none}
}

/* les rapports : la page de garde, puis la page du sommaire */
.fr-couv{display:flex;flex-direction:column;height:100%}
.fr-couv .titre{margin:auto 0 auto;padding-left:6mm}
.fr-couv h1{font-size:25pt;margin:3mm 0 5mm}
.fr-couv .per{font-size:13pt}
.fr-couv .fr-tampon{margin-bottom:auto}
.fr-couv .bas{display:grid;grid-template-columns:1.5fr .6fr .8fr 1.1fr;gap:4mm;padding-top:4mm;border-top:.6pt solid var(--p-trait-f)}
.fr-couv .bas .c{display:flex;flex-direction:column;gap:1mm;min-width:0}
.fr-couv .bas .k{font-size:6.8pt;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--p-muet)}
.fr-couv .bas b{font-size:8.6pt;color:var(--p-ink);overflow-wrap:anywhere}
.fr-p2{display:flex;flex-direction:column;gap:8mm}
.fr-p2 .fr-sommaire{margin-bottom:0}
.fr-p2 .fr-sommaire .l{padding:1.3mm 0}
.fr-p2 .fr-sommaire .l.sn .t{font-style:italic;color:var(--p-ink2)}
.fr-p2-b h3{margin:0 0 2.5mm;padding-bottom:1.5mm;border-bottom:.8pt solid var(--p-ink);font-size:7.8pt;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--p-ink2)}
.fr-p2 .fr-fiche-doc{margin-top:0}
.fr-sigles{font-size:7.8pt}
.fr-sigles th{width:18%;font-family:var(--mono,ui-monospace,monospace)}
.fn-contexte .c.bornes.inactif{opacity:.45}
.fn-contexte .c.bornes.inactif>b::before{content:"\00a0"}
.fn-prog th:nth-child(1){width:26%}.fn-prog th:nth-child(2){width:11%}.fn-prog th:nth-child(3){width:8%}
.fn-prog th:nth-child(4){width:13%}.fn-prog th:nth-child(5){width:12%}.fn-prog th:nth-child(6){width:17%}.fn-prog th:nth-child(7){width:13%}
.fn-ex-tbl th:nth-child(7){width:132px}
.fn-accords th:nth-child(1){width:140px}
.fn-livre th:nth-child(1){width:122px}
.fn-att-tbl th:nth-child(2){width:280px}
.fn-pan>.fn-pied-note{padding:10px 18px 14px;border-top:1px solid var(--v2-trait)}
.fn-fp-mv th:nth-child(1){width:124px}
.fr-pied .c{font-weight:600;letter-spacing:.06em;color:var(--p-muet)}
@media (max-width:1500px){
  .fn-ech-tbl th:nth-child(1){width:118px}.fn-ech-tbl th:nth-child(3){width:180px}.fn-ech-tbl th:nth-child(4){width:130px}
  .fn-ech-tbl th:nth-child(5){width:170px}.fn-ech-tbl th:nth-child(6){width:130px}
}

/* le « +1 » du calendrier : la liste de ce qui est groupe, et un repere au
   jour de chaque obligation groupee (04/10/2026) */
.fn-ev.groupe{box-shadow:3px -3px 0 -1px var(--v2-surface),3px -3px 0 0 color-mix(in srgb,var(--c) 35%,transparent)}
.fn-ev-plusw{position:absolute;height:31px;pointer-events:none;z-index:5}
.fn-ev-plus{position:absolute;top:-8px;right:-8px;min-width:22px;height:18px;padding:0 5px;border:0;border-radius:9px;background:var(--ink);color:var(--v2-surface);font:inherit;font-size:10.5px;font-weight:800;line-height:18px;cursor:pointer;pointer-events:auto;box-shadow:0 0 0 2px var(--v2-surface)}
.fn-ev-plus:hover,.fn-ev-plus[aria-expanded="true"]{background:var(--brand);color:#fff}
.fn-ev-pop{position:absolute;top:36px;left:0;z-index:8;min-width:260px;padding:8px;border:1px solid var(--v2-trait-fort);border-radius:10px;background:var(--v2-surface);box-shadow:0 10px 28px rgba(15,23,42,.18);pointer-events:auto}
.fn-ev-pop[hidden]{display:none}
.fn-ev-pop .h{padding:2px 6px 7px;font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.fn-ev-li{display:grid;grid-template-columns:10px auto 1fr auto;align-items:center;gap:8px;width:100%;padding:7px 6px;border:0;border-top:1px solid var(--v2-trait);border-radius:0;background:transparent;font:inherit;font-size:12.5px;text-align:left;cursor:pointer;color:var(--ink)}
.fn-ev-li:hover{background:var(--v2-surface-2)}
.fn-ev-li i{width:10px;height:10px;border-radius:50%;background:var(--c)}
.fn-ev-li .t{font-weight:800;color:color-mix(in srgb,var(--c) 78%,var(--ink));white-space:nowrap}
.fn-ev-li .d{color:var(--ink-2);white-space:nowrap}
.fn-ev-li .e{font-size:11px;color:var(--muted);white-space:nowrap}
.fn-ev-li.rfi{--c:#2563EB}.fn-ev-li.audit{--c:#7C3AED}.fn-ev-li.cloture{--c:#16A34A}.fn-ev-li.grace{--c:#D97706}.fn-ev-li.enRetard{--c:#DC2626}
.fn-ev-mark{position:absolute;top:73px;width:8px;height:5px;border-radius:2px;background:var(--c);opacity:.85}
.fn-ev-mark.rfi{--c:#2563EB}.fn-ev-mark.audit{--c:#7C3AED}.fn-ev-mark.cloture{--c:#16A34A}.fn-ev-mark.grace{--c:#D97706}.fn-ev-mark.enRetard{--c:#DC2626}
.fn-fp-journal td.fn-j-q{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fn-fp-journal td.fn-j-m{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink-2)}
.fn-ev-plusw.droite .fn-ev-pop{left:auto;right:0}
.fn-ex-tbl th:nth-child(7){width:156px}
.fn-livre th:nth-child(3){width:140px}.fn-livre th:nth-child(4){width:124px}.fn-livre th:nth-child(5){width:160px}.fn-livre th:nth-child(6){width:132px}.fn-livre th:nth-child(7){width:142px}.fn-livre th:nth-child(8){width:110px}.fn-livre th:nth-child(9){width:100px}.fn-livre th:nth-child(10){width:236px}
.fn-reg td.actes{white-space:normal;line-height:1.7}

/* =====================================================================
   LE BUDGET DE L'ENERGIE (04/10/2026) : la page reprend le systeme des
   Financements (v2-fn) ; ce qui suit lui est propre, prefixe bu-.
   ===================================================================== */
.bu-contexte .c.exb{width:240px}
.bu-contexte .c.exb .fn-select{width:100%}
.bu-contexte .c.perim .fn-seg button{min-width:86px;text-align:center}
/* les points d'attention : une ligne cliquable chacun */
/* les tableaux */
.bu-arbre{min-width:1180px}
.bu-arbre th:nth-child(1){width:auto}.bu-arbre th:nth-child(n+2){width:112px}.bu-arbre th:nth-child(6){width:72px}.bu-arbre th:nth-child(9){width:100px}
.bu-arbre tr.gr-s td{background:var(--v2-surface-2);height:54px}
.bu-arbre tr.gr-s .nom{display:flex;align-items:center;gap:8px}
.bu-arbre tr.gr-s td.fort,.bu-arbre tfoot td.fort{font-weight:800;color:var(--ink)}
.bu-arbre tr.nat td{height:42px}
.bu-arbre tr.nat td:first-child{padding-left:42px}
.bu-arbre tr.hors td{color:var(--muted)}
.bu-arbre tr.hors .nom span{color:var(--muted)}
.bu-pli{display:inline-block;width:0;height:0;border-left:5px solid var(--muted);border-top:4px solid transparent;border-bottom:4px solid transparent;transition:transform var(--v2-t)}
.bu-pli.ouvert{transform:rotate(90deg)}
.fn-reg tfoot tr.total td{height:46px;border-top:1px solid var(--v2-trait-fort);font-weight:700;background:var(--v2-surface-2)}
.bu-deux{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}
/* l'execution */
.bu-vide-p{margin:0;padding:0 18px 12px;font-size:13px;line-height:1.6;color:var(--ink-2);max-width:900px}
.bu-courbe .bu-pt.engage{fill:var(--bu-eng)}.bu-courbe .bu-pt.paye{fill:var(--bu-pay)}
.fn-bulle .l.paye span::before{content:"";display:inline-block;width:12px;margin-right:7px;vertical-align:middle;border-top:2px solid #0F766E}
/* le registre */
.bu-reg{min-width:1180px}
.bu-reg th:nth-child(1){width:24%}.bu-reg th:nth-child(2){width:170px}.bu-reg th:nth-child(3),.bu-reg th:nth-child(4){width:120px}.bu-reg th:nth-child(6){width:110px}.bu-reg th:nth-child(7){width:190px}
.bu-reg td:nth-child(5){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bu-livre{min-width:1280px}
.bu-livre th:nth-child(1){width:118px}.bu-livre th:nth-child(3){width:150px}.bu-livre th:nth-child(4){width:18%}.bu-livre th:nth-child(5){width:140px}.bu-livre th:nth-child(6){width:140px}.bu-livre th:nth-child(7){width:110px}.bu-livre th:nth-child(8){width:180px}
.bu-st{display:inline-block;padding:2px 8px;border-radius:5px;font-size:11px;font-weight:700;white-space:nowrap;background:var(--v2-surface-2);color:var(--ink-2)}
.bu-st.engagement{background:color-mix(in srgb,var(--brand) 12%,transparent);color:var(--brand)}
.bu-st.liquidation{background:color-mix(in srgb,#7C3AED 12%,transparent);color:#6D28D9}
.bu-st.ordonnancement{background:color-mix(in srgb,#D97706 14%,transparent);color:#B45309}
.bu-st.paiement,.bu-st.encaissement{background:color-mix(in srgb,#0F766E 14%,transparent);color:#0F766E}
.bu-st.virement,.bu-st.ouverture,.bu-st.report{background:var(--v2-surface-2);color:var(--ink-2)}
.bu-st.annulation{background:color-mix(in srgb,var(--crit) 12%,transparent);color:var(--crit)}
/* la fiche d'un credit */
.fn-fp-chiffres.bu-fl-chiffres{grid-template-columns:repeat(4,minmax(0,1fr))}
.bu-fl-chiffres .c:nth-child(5){border-left:0}
.bu-fl-chiffres .c:nth-child(n+5){border-top:1px solid var(--v2-trait)}
@media (max-width:1500px){
  .bu-deux{grid-template-columns:minmax(0,1fr)}
}
:root[data-theme="dark"] .bu-st.liquidation{color:#C4B5FD}
:root[data-theme="dark"] .bu-st.ordonnancement{color:#FCD34D}
:root[data-theme="dark"] .bu-st.paiement,:root[data-theme="dark"] .bu-st.encaissement{color:#5EEAD4}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .bu-st.liquidation{color:#C4B5FD}
  :root:not([data-theme="light"]) .bu-st.ordonnancement{color:#FCD34D}
  :root:not([data-theme="light"]) .bu-st.paiement,:root:not([data-theme="light"]) .bu-st.encaissement{color:#5EEAD4}
}

/* ---------------------------------------------------------------------
   LES DESSINS DU BUDGET (04/10/2026, « du visuel, pas des tableaux ») :
   une couleur par sens, la meme partout ; claire au theme clair, plus
   lumineuse au sombre. --bu-c porte la couleur de l'objet.
   --------------------------------------------------------------------- */
:root{
  --bu-rec:#059669; --bu-per:#1E3A8A; --bu-bs:#3557D6; --bu-tr:#6C8CF5; --bu-inv:#A7B9FB; --bu-ext:#94A3B8;
  --bu-imp:#E11D48; --bu-dette:#B91C1C; --bu-gen:#CBD5E1; --bu-etat:#0F3D8A;
  --bu-ouv:#CBD5E1; --bu-eng:#5C7CFA; --bu-liq:#748FFC; --bu-ord:#3B5BDB; --bu-pay:#1E3A8A;
  --bu-sur:#FFFFFF; --bu-c:var(--brand); --bu-piste:#E8EDF5;
}
:root[data-theme="dark"]{
  --bu-rec:#34D399; --bu-per:#C7D2FE; --bu-bs:#A5B4FC; --bu-tr:#818CF8; --bu-inv:#6366F1; --bu-ext:#64748B;
  --bu-imp:#FB7185; --bu-dette:#F87171; --bu-gen:#475569; --bu-etat:#8FB3F5;
  --bu-ouv:#475569; --bu-eng:#818CF8; --bu-liq:#A5B4FC; --bu-ord:#6366F1; --bu-pay:#C7D2FE;
  --bu-sur:#0B1220; --bu-piste:#1F2A3D;
}
.k-rec{--bu-c:var(--bu-rec)}.k-per{--bu-c:var(--bu-per)}.k-bs{--bu-c:var(--bu-bs)}.k-tr{--bu-c:var(--bu-tr)}.k-inv{--bu-c:var(--bu-inv)}
.k-ext{--bu-c:var(--bu-ext)}.k-imp{--bu-c:var(--bu-imp)}.k-dette{--bu-c:var(--bu-dette)}.k-gen{--bu-c:var(--bu-gen)}.k-etat{--bu-c:var(--bu-etat)}
.k-ouv{--bu-c:var(--bu-ouv)}.k-eng{--bu-c:var(--bu-eng)}.k-liq{--bu-c:var(--bu-liq)}.k-ord{--bu-c:var(--bu-ord)}.k-pay{--bu-c:var(--bu-pay)}
.fn-dessin.bu-d{position:relative;width:auto;margin:2px 18px 14px}
.bu-d svg text{font-variant-numeric:tabular-nums}
.bu-f{fill:var(--bu-c)}
.bu-f.pale{fill-opacity:.32}
.bu-d .clic,.bu-d .noeud.clic{cursor:pointer}
.bu-d .noeud:hover,.bu-d .tuile rect:hover{fill-opacity:.82}
.bu-renvoi{fill:none;stroke:var(--v2-trait-fort);stroke-width:1}
.bu-col{font-size:10.5px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;fill:var(--muted)}
.bu-grille{stroke:var(--v2-trait);stroke-width:1}
.bu-grille.base{stroke:var(--v2-trait-fort)}
.bu-grille.v{stroke-dasharray:2 4}
.bu-axe{font-size:10.5px;fill:var(--muted)}
.bu-zone{fill:transparent}
.bu-zone:hover{fill:color-mix(in srgb,var(--ink) 3%,transparent)}
.bu-temps{stroke:var(--ink-2);stroke-width:1.4;stroke-dasharray:4 4}
.bu-leg2{padding:2px 0 0}
.bu-leg2 i{width:12px;height:12px;border:0;border-radius:3px;background:var(--bu-c)}
.bu-leg2 .imp i{background:transparent;border:1.4px dashed var(--bu-imp)}
.bu-leg2 .temps i{width:0;height:15px;border-radius:0;background:none;border-left:1.5px dashed var(--ink-2)}
.bu-leg2 .ref i{width:3px;height:15px;border-radius:1px;background:var(--ink)}
.bu-leg2 .pale i{opacity:.35}
.bu-bulle .l.c span::before{content:"";display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:7px;vertical-align:-1px;background:var(--bu-c)}
/* les quatre chiffres de tete */
/* le circuit, l'avancement, les annees, la composition */
/* l'attribution */
.bu-rl{font-size:12.5px;font-weight:600;fill:var(--ink-2)}
.bu-ec.baisse{fill:var(--crit)}.bu-ec.hausse{fill:var(--bu-rec)}.bu-ec.muet{fill:var(--muted)}
/* l'entonnoir, les pistes */
.bu-pl-h{padding:0 18px 4px;overflow-x:auto}
.bu-pl{min-width:860px}
.bu-pl-r{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.6fr) 100px 110px 110px 110px;gap:18px;align-items:center;min-height:54px;border-top:1px solid var(--v2-trait)}
.bu-pl-r.tete{min-height:34px;border-top:0;font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.bu-pl-r.total{min-height:60px;border-top:1px solid var(--v2-trait-fort);border-bottom:1px solid var(--v2-trait-fort);background:var(--v2-surface-2)}
.bu-pl-r.total .n b{font-size:13.5px;font-weight:800}
.bu-pl-r.clic{cursor:pointer}
.bu-pl-r.clic:hover{background:color-mix(in srgb,var(--brand) 4%,transparent)}
.bu-pl-r .n{display:flex;flex-direction:column;gap:2px;min-width:0;padding-left:2px}
.bu-pl-r .n b{font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bu-pl-r .n span{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bu-pl-r .r{text-align:right}
.bu-pl-r .num{display:flex;flex-direction:column;align-items:flex-end;gap:1px;font-family:var(--mono,ui-monospace,monospace);font-size:13px;color:var(--ink-2)}
.bu-pl-r .num b{font-size:13.5px;color:var(--ink)}
.bu-pl-r .num span{font-size:11px;color:var(--muted)}
.bu-pl-r .num.att b{color:var(--warn)}
.bu-pl-r .num.muet{color:var(--muted)}
.bu-pl-r .piste{position:relative;height:14px;border-radius:7px;background:var(--v2-surface-2);border:1px solid var(--v2-trait)}
.bu-pl-r .piste.vide{background:transparent;border-style:dashed}
.bu-pl-r .piste .e{position:absolute;left:0;top:0;bottom:0;border-radius:7px;background:color-mix(in srgb,var(--bu-eng) 30%,transparent)}
.bu-pl-r .piste .p{position:absolute;left:0;top:0;bottom:0;border-radius:7px;background:var(--bu-pay)}
.bu-pr .bu-pl-r .piste .p{background:var(--bu-rec)}
.bu-pl-r .piste .ref{position:absolute;top:-5px;bottom:-5px;width:3px;margin-left:-1.5px;border-radius:1px;background:var(--ink)}
.bu-pl-r .piste .t{position:absolute;top:-7px;bottom:-7px;width:0;border-left:1.5px dashed var(--ink-2)}
.bu-pl-r .piste .nd{position:absolute;left:10px;top:-1px;font-size:11px;line-height:14px;color:var(--muted)}
.bu-pl-leg{padding:6px 18px 10px}
/* le bilan, le schema */
.bu-tipp{margin:8px 18px 16px;padding:14px 16px;border:1px solid var(--v2-trait);border-radius:10px;background:color-mix(in srgb,var(--bu-rec) 4%,var(--v2-surface))}
.bu-tipp .t{margin-bottom:10px;font-size:12px;font-weight:800;color:var(--ink)}
.bu-tipp .r{display:grid;grid-template-columns:240px minmax(0,1fr) 170px;gap:16px;align-items:center;min-height:32px}
.bu-tipp .k{font-size:12.5px;color:var(--ink-2)}
.bu-tipp .j{height:12px;border-radius:6px;background:var(--v2-surface-2)}
.bu-tipp .j i{display:block;height:100%;border-radius:6px}
.bu-tipp .j .loi{background:color-mix(in srgb,var(--bu-rec) 35%,transparent)}
.bu-tipp .j .vol{background:var(--bu-rec)}
.bu-tipp b{font-family:var(--mono,ui-monospace,monospace);font-size:13px;color:var(--ink);text-align:right}
.bu-tipp b.att{color:var(--warn)}
.bu-tipp .r.e{margin-top:4px;padding-top:8px;border-top:1px solid var(--v2-trait)}
.bu-tipp .s{font-size:11.5px;color:var(--muted)}
.bu-bf{padding:2px 18px 6px}
.bu-bf .r{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.4fr) 96px 120px 170px;gap:18px;align-items:center;min-height:56px;border-top:1px solid var(--v2-trait);cursor:pointer}
.bu-bf .r:first-child{border-top:0}
.bu-bf .r:hover{background:color-mix(in srgb,var(--brand) 4%,transparent)}
.bu-bf .n{display:flex;flex-direction:column;gap:2px;min-width:0}
.bu-bf .n b{font-size:13px;color:var(--ink)}
.bu-bf .n span{font-size:11.5px;color:var(--muted)}
.bu-bf .j{height:12px;border-radius:6px;background:var(--v2-surface-2)}
.bu-bf .j i{display:block;height:100%;border-radius:6px;background:var(--bu-c)}
.bu-bf .num{font-family:var(--mono,ui-monospace,monospace);font-size:13.5px;color:var(--ink);text-align:right}
.bu-bf .a{font-size:12px;color:var(--ink-2)}
.bu-bf .fn-lien{justify-self:end}
/* l'investissement exterieur */
.bu-vd{display:flex;flex-direction:column;gap:14px;padding:8px 18px 10px}
.bu-vd .r{display:grid;grid-template-columns:150px minmax(0,1fr) 170px;gap:16px;align-items:center}
.bu-vd .k{font-size:12.5px;font-weight:700;color:var(--ink-2)}
.bu-vd .j{position:relative;display:flex;gap:2px;height:28px;border-radius:7px;background:var(--v2-surface-2)}
.bu-vd .j .vote{display:block;height:100%;border-radius:7px;background:var(--bu-piste)}
.bu-vd .j .bu-seg{display:block;height:100%}
.bu-vd .j .bu-seg:first-child{border-radius:7px 0 0 7px}
.bu-vd .j .bu-seg:last-of-type{border-radius:0 7px 7px 0}
.bu-vd .j .bu-seg:only-of-type{border-radius:7px}
.bu-vd .j .repere{position:absolute;top:-6px;bottom:-6px;width:0;border-left:2px solid var(--ink)}
.bu-vd b{font-family:var(--mono,ui-monospace,monospace);font-size:14px;color:var(--ink);text-align:right}
.bu-n1{background:var(--bu-per)}.bu-n2{background:var(--bu-bs)}.bu-n3{background:var(--bu-tr)}
.bu-n4{background:var(--bu-inv)}.bu-n5{background:color-mix(in srgb,var(--bu-per) 45%,var(--v2-surface))}.bu-n6{background:var(--bu-gen)}
.bu-vd-l{padding:4px 18px 4px}
.bu-vd-l .x{display:grid;grid-template-columns:14px minmax(0,1fr) 130px 70px;gap:14px;align-items:center;min-height:52px;border-top:1px solid var(--v2-trait)}
.bu-vd-l .x.clic{cursor:pointer}
.bu-vd-l .x.clic:hover{background:color-mix(in srgb,var(--brand) 4%,transparent)}
.bu-vd-l .pas{width:12px;height:12px;border-radius:3px}
.bu-vd-l .x.muet .pas{background:transparent;border:1px dashed var(--v2-trait-fort)}
.bu-vd-l .n{display:flex;flex-direction:column;gap:2px;min-width:0}
.bu-vd-l .n b{font-size:13px;color:var(--ink)}
.bu-vd-l .n span{font-size:11.5px;color:var(--muted)}
.bu-vd-l .num{font-family:var(--mono,ui-monospace,monospace);font-size:13.5px;color:var(--ink);text-align:right}
.bu-vd-l .x.muet .num{font-family:inherit;font-size:12px;color:var(--muted)}
.bu-vd-l .s{font-size:12px;color:var(--muted);text-align:right}
/* l'etat du registre */
.bu-er{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--v2-trait);border-radius:12px;background:var(--v2-surface);overflow:hidden}
.bu-er .c{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"k b" "j j" "s s";gap:9px 12px;padding:15px 20px;border-left:1px solid var(--v2-trait)}
.bu-er .c:first-child{border-left:0}
.bu-er .k{grid-area:k;font-size:10.5px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}
.bu-er b{grid-area:b;text-align:right;font-family:var(--mono,ui-monospace,monospace);font-size:18px;color:var(--ink)}
.bu-er .j{grid-area:j;display:flex;gap:2px;height:10px;border-radius:5px;overflow:hidden;background:var(--v2-surface-2)}
.bu-er .j i{display:block;height:100%}
.bu-er .j .verifie,.bu-er .s .verifie i{background:var(--bu-pay)}
.bu-er .j .saisi,.bu-er .s .saisi i{background:var(--warn)}
.bu-er .j .rejete,.bu-er .s .rejete i{background:var(--crit)}
.bu-er .s{grid-area:s;display:flex;flex-wrap:wrap;gap:4px 16px;font-size:11.5px;color:var(--ink-2)}
.bu-er .s i{display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:2px}
/* la frise d'un credit */
.bu-pt2{fill-opacity:.85;stroke:var(--v2-surface);stroke-width:1.5}
.bu-pt2.saisi{fill-opacity:.35;stroke:var(--bu-c);stroke-dasharray:2 2}
.bu-annees,.bu-entonnoir,.bu-bilan,.bu-schema,.bu-frise,.bu-deuxans{overflow:visible}
@media (max-width:1500px){
  .bu-sect,.bu-l2,.bu-l3{grid-template-columns:minmax(0,1fr)}
  .bu-pl-r{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) 84px 96px 96px 96px;gap:14px}
  .bu-av{grid-template-columns:150px minmax(0,1fr) 170px}
}
/* ---------------------------------------------------------------------
   LA SYNTHESE DU FINANCIER (04/10/2026) : quatre cartes, l'execution mois
   par mois, la repartition en anneau, le budget et le realise par
   service, les recettes. Une famille de bleus pour les credits, le vert
   pour les recettes, l'orange et le rouge pour les seules alertes.
   --------------------------------------------------------------------- */
.bu-kpi-mini .pr{--bu-c:var(--bu-per)}.bu-kpi-mini .ex{--bu-c:var(--bu-ext)}
.bu-carte-p{border-radius:16px;box-shadow:var(--v2-ombre)}
.bu-pan-t{display:flex;align-items:center;gap:12px;padding:2px 20px 8px}
.bu-axe.futur{opacity:.55}
.bu-filtre{display:flex;align-items:center;gap:12px;padding:10px 16px;border:1px solid var(--v2-trait);border-radius:12px;background:var(--v2-surface)}
.bu-filtre .k{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.bu-chip{display:inline-flex;align-items:center;gap:7px;padding:4px 11px;border-radius:999px;background:color-mix(in srgb,var(--bu-c) 12%,transparent);font-size:12.5px;font-weight:700;color:var(--ink)}
.bu-chip i{width:9px;height:9px;border-radius:2px;background:var(--bu-c)}
@media (max-width:1500px){
  .bu-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bu-g21{grid-template-columns:minmax(0,1fr)}
}
/* les credits par service, les flux entre acteurs */
.bu-fx{display:flex;flex-direction:column;padding:2px 20px 14px}
.bu-fx .g{display:flex;align-items:center;gap:8px;margin-top:14px;padding-bottom:6px;font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.bu-fx .g:first-child{margin-top:4px}
.bu-fx .g i{width:10px;height:10px;border-radius:3px;background:var(--bu-c)}
.bu-fx .r{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) 96px;gap:16px;align-items:center;min-height:48px;border-top:1px solid var(--v2-trait)}
.bu-fx .n{display:flex;flex-direction:column;gap:2px;min-width:0}
.bu-fx .n b{font-size:13px;color:var(--ink)}
.bu-fx .n b .fl{color:var(--muted);font-weight:500}
.bu-fx .n>span{font-size:11.5px;color:var(--muted)}
.bu-fx .j{height:10px;border-radius:5px;background:var(--bu-piste)}
.bu-fx .j i{display:block;height:100%;border-radius:5px;background:var(--bu-c)}
.bu-fx .num{font-family:var(--mono,ui-monospace,monospace);font-size:13.5px;color:var(--ink);text-align:right}

/* =====================================================================
   LE BUDGET DE L'ENERGIE, RECADRAGE DU 04/10/2026
   ---------------------------------------------------------------------
   Une couleur par sens, tenue dans toute la page :
     marine   le budget, l'enveloppe, la reference
     bleu     l'engagement, la progression
     vert     l'encaisse, le paye, le realise
     orange   l'attention, les soutiens implicites
     rouge    le risque, l'ecart defavorable
     gris     l'inconnu, le non consolide
   Les natures de credit sont des nuances du marine ; les partenaires
   exterieurs, un gris-bleu. Tout est prefixe bu-.
   ===================================================================== */
:root{
  --bu-navy:#142F66; --bu-bleu:#2563EB; --bu-vert:#0E8A5F; --bu-orange:#D97706; --bu-rouge:#C53030; --bu-gris:#A3ADBD;
  --bu-per:#23407F; --bu-bs:#4767B8; --bu-tr:#7F98D8; --bu-inv:#B3C3EC; --bu-ext:#8E99AB; --bu-rec:#0E8A5F; --bu-imp:#D97706;
  --bu-eng:#2563EB; --bu-pay:#0E8A5F; --bu-liq:#5B8DEF; --bu-ord:#3B6FD8; --bu-fond-an:#EEF3FB;
}
:root[data-theme="dark"]{
  --bu-navy:#9DB8F2; --bu-bleu:#6E9BF5; --bu-vert:#43C08A; --bu-orange:#F0A54A; --bu-rouge:#F07A72; --bu-gris:#56627A;
  --bu-per:#C3D3F7; --bu-bs:#93AEEE; --bu-tr:#6C8BDB; --bu-inv:#3E5BA6; --bu-ext:#6B778C; --bu-rec:#43C08A; --bu-imp:#F0A54A;
  --bu-eng:#6E9BF5; --bu-pay:#43C08A; --bu-liq:#8DB0F7; --bu-ord:#7FA3F2; --bu-fond-an:#16223A;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bu-navy:#9DB8F2; --bu-bleu:#6E9BF5; --bu-vert:#43C08A; --bu-orange:#F0A54A; --bu-rouge:#F07A72; --bu-gris:#56627A;
    --bu-per:#C3D3F7; --bu-bs:#93AEEE; --bu-tr:#6C8BDB; --bu-inv:#3E5BA6; --bu-ext:#6B778C; --bu-rec:#43C08A; --bu-imp:#F0A54A;
    --bu-eng:#6E9BF5; --bu-pay:#43C08A; --bu-liq:#8DB0F7; --bu-ord:#7FA3F2; --bu-fond-an:#16223A;
  }
}
.k-nav{--bu-c:var(--bu-navy)}.k-imp{--bu-c:var(--bu-imp)}
.bu-bulle .l.eng{--bu-c:var(--bu-eng)}.bu-bulle .l.pay{--bu-c:var(--bu-pay)}.bu-bulle .l.liq{--bu-c:var(--bu-liq)}
.bu-bulle .l.ord{--bu-c:var(--bu-ord)}.bu-bulle .l.env{--bu-c:var(--bu-navy)}
.bu-bulle .l.src{border-top-style:dashed}
.bu-bulle .l.src span{color:var(--muted)}
.bu-bulle .l.src b{white-space:normal;font-family:inherit;font-weight:500;font-size:11.5px;color:var(--muted);text-align:right}
.bu-bulle{max-width:340px}

/* ---------- les sections ---------- */
.bu-bloc{padding:18px 0 16px}
.bu-bloc-t{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:0 22px 14px}
.bu-bloc-t .t{display:flex;flex-direction:column;gap:4px;min-width:0}
.bu-bloc-t h2{margin:0;font-size:15px;font-weight:800;letter-spacing:-.005em;color:var(--ink)}
.bu-bloc-t .s{font-size:12.5px;color:var(--ink-2);line-height:1.45}
.bu-bloc-t .c{display:flex;gap:10px;flex-shrink:0}
.bu-seg button{min-width:0}
.bu-meth{display:flex;flex-direction:column;gap:3px;margin:6px 22px 0;padding:10px 0 0;border-top:1px solid var(--v2-trait);font-size:12px;line-height:1.5;color:var(--ink-2)}
.bu-meth .t{font-weight:700;color:var(--ink)}
.bu-leg3{display:flex;flex-wrap:wrap;gap:6px 20px;padding:4px 22px 0;font-size:11.5px;color:var(--ink-2)}
.bu-leg3 .l{display:inline-flex;align-items:center;gap:7px}
.bu-leg3 .l i{display:inline-block;width:12px;height:12px;border-radius:3px;background:var(--bu-c)}
.bu-leg3 .l.env i{height:0;width:18px;border-radius:0;border-top:2px solid var(--bu-navy);background:none}
.bu-leg3 .l.eng i{height:0;width:18px;border-radius:0;border-top:2.4px solid var(--bu-eng);background:none}
.bu-leg3 .l.pay i{height:0;width:18px;border-radius:0;border-top:2.4px solid var(--bu-pay);background:none}
.bu-leg3 .l.plan i{width:8px;height:8px;border-radius:1px;transform:rotate(45deg);background:var(--v2-surface);border:1.6px solid var(--bu-navy)}
.bu-leg3 .l.proj i{width:18px;height:10px;border-radius:2px;background:color-mix(in srgb,var(--bu-eng) 18%,transparent)}
.bu-leg3 .l.ini i{background:var(--bu-per);opacity:.38}
.bu-leg3 .l.exe i{background:var(--bu-vert)}
.bu-leg3 .l.lacc i{background:var(--v2-surface-2);border:1px solid var(--v2-trait-fort)}
.bu-leg3 .l.cum i{background:var(--bu-ext)}
.bu-leg3 .l.an i{background:var(--bu-vert)}
.bu-leg3 .l.e-etude i{background:var(--bu-gris)}.bu-leg3 .l.e-projet i{background:var(--bu-bleu)}.bu-leg3 .l.e-installation i{background:var(--bu-vert)}
.bu-anim .bu-bloc,.bu-anim .bu-sy{animation:bu-entree var(--v2-t-lent) ease-out both}
.bu-anim .bu-trace{stroke-dasharray:3000;animation:bu-trace 700ms ease-out both}
@keyframes bu-entree{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@keyframes bu-trace{from{stroke-dashoffset:3000}to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){.bu-anim .bu-bloc,.bu-anim .bu-sy,.bu-anim .bu-trace{animation:none}}
.v2-bu [tabindex="0"]:focus-visible,.v2-bu [role="button"]:focus-visible{outline:2px solid var(--bu-bleu);outline-offset:2px}

/* ---------- A. la situation ---------- */
.bu-sy{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:0;padding:0;overflow:hidden}
.bu-sy>.g{padding:24px 30px 24px 28px;display:flex;flex-direction:column;gap:6px;min-width:0}
.bu-sy>.d{padding:24px 28px;border-left:1px solid var(--v2-trait);background:var(--v2-surface-2);display:flex;flex-direction:column;gap:12px;min-width:0}
.bu-sy-k{display:flex;align-items:center;gap:12px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.bu-statut{display:inline-block;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:.02em;text-transform:none;border:1px solid currentColor}
.bu-statut.s-vote{color:var(--bu-navy)}.bu-statut.s-rectifie{color:var(--bu-bleu)}.bu-statut.s-realise{color:var(--bu-vert)}.bu-statut.s-enCours{color:var(--bu-orange)}
.bu-sy-v{display:flex;align-items:baseline;gap:10px;margin-top:4px}
.bu-sy-v b{font-size:46px;line-height:1.05;font-weight:800;letter-spacing:-.02em;color:var(--bu-navy);font-variant-numeric:tabular-nums}
.bu-sy-v .u{font-size:17px;font-weight:700;color:var(--ink-2)}
.bu-sy-l{font-size:14px;color:var(--ink-2)}
.bu-sy-l2{font-size:12.5px;color:var(--muted)}
.bu-sy-compo{margin-top:16px}
.bu-sy-barre{display:flex;height:12px;border-radius:6px;overflow:hidden;background:var(--v2-surface-2);border:1px solid var(--v2-trait)}
.bu-sy-barre .pr{background:var(--bu-navy)}
.bu-sy-barre .ex{background:var(--bu-ext)}
.bu-sy-compo .libs{display:flex;justify-content:space-between;gap:20px;margin-top:10px}
.bu-sy-compo .c{display:flex;flex-direction:column;gap:2px;min-width:0}
.bu-sy-compo .c.ex{text-align:right;align-items:flex-end}
.bu-sy-compo .c .k{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--ink-2)}
.bu-sy-compo .c .k i{width:10px;height:10px;border-radius:2px;background:var(--bu-navy)}
.bu-sy-compo .c.ex .k i{background:var(--bu-ext)}
.bu-sy-compo .c b{font-size:16px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.bu-sy-compo .c .p{font-size:12px;font-weight:700;color:var(--muted)}
.bu-sy-compo .c .nd{font-size:12px;color:var(--muted)}
.bu-sy-h{font-size:13px;font-weight:800;color:var(--ink)}
.bu-sy-cs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.bu-sy-c{display:flex;flex-direction:column;gap:2px;padding-left:10px;border-left:3px solid var(--bu-gris)}
.bu-sy-c.eng{border-left-color:var(--bu-eng)}.bu-sy-c.pay{border-left-color:var(--bu-pay)}.bu-sy-c.dis{border-left-color:var(--bu-navy)}
.bu-sy-c .k{font-size:11.5px;color:var(--muted);font-weight:700}
.bu-sy-c b{font-size:19px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.bu-sy-c .s{font-size:11.5px;color:var(--ink-2)}
.bu-sy-c b.muet{color:var(--muted);font-weight:700}
.bu-ve{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 10px;padding:10px 12px;border-radius:9px;font-size:13px;background:color-mix(in srgb,var(--bu-vert) 9%,transparent);color:var(--ink)}
.bu-ve i{width:9px;height:9px;border-radius:50%;background:var(--bu-vert);align-self:center}
.bu-ve b{font-weight:800;color:var(--bu-vert)}
.bu-ve.v-aSurveiller{background:color-mix(in srgb,var(--bu-orange) 11%,transparent)}.bu-ve.v-aSurveiller i{background:var(--bu-orange)}.bu-ve.v-aSurveiller b{color:var(--bu-orange)}
.bu-ve.v-retardImportant{background:color-mix(in srgb,var(--bu-rouge) 10%,transparent)}.bu-ve.v-retardImportant i{background:var(--bu-rouge)}.bu-ve.v-retardImportant b{color:var(--bu-rouge)}
.bu-ve.v-avance{background:color-mix(in srgb,var(--bu-bleu) 10%,transparent)}.bu-ve.v-avance i{background:var(--bu-bleu)}.bu-ve.v-avance b{color:var(--bu-bleu)}
.bu-sy-src{font-size:11.5px;color:var(--muted);line-height:1.45}
.bu-sy>.d.vide{background:color-mix(in srgb,var(--bu-orange) 5%,var(--v2-surface-2))}
.bu-sy>.d.vide .bu-sy-h{font-size:17px;color:var(--ink)}
.bu-sy-p{margin:0;font-size:13.5px;line-height:1.5;color:var(--ink-2)}
.bu-sy-a{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.bu-sy-rep{display:flex;flex-direction:column;gap:3px;margin-top:6px;padding-top:12px;border-top:1px dashed var(--v2-trait-fort);font-size:12.5px;line-height:1.45;color:var(--ink-2)}
.bu-sy-rep .k{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.bu-sy-rep .src{font-size:11.5px;color:var(--muted)}

/* ---------- B. la trajectoire ---------- */
.fn-dessin.bu-d.bu-tj-d{margin:4px 22px 6px}
.bu-tj-env{stroke:var(--bu-navy);stroke-width:1.6}
.bu-tj-lab{font-size:11.5px;font-weight:700;fill:var(--ink-2)}
.bu-tj-lab.env{fill:var(--bu-navy)}.bu-tj-lab.eng{fill:var(--bu-eng)}.bu-tj-lab.pay{fill:var(--bu-pay)}.bu-tj-lab.muet{fill:var(--muted)}
.bu-tj-val{font-size:13px;font-weight:800;fill:var(--ink);font-variant-numeric:tabular-nums}
.bu-tj-val.muet{font-weight:600;fill:var(--muted)}
.bu-tj-avenir{fill:color-mix(in srgb,var(--ink) 2.5%,transparent)}
.bu-tj-temps{stroke:var(--ink-2);stroke-width:1.2;stroke-dasharray:3 4}
.bu-tj-tlab{font-size:11px;font-weight:700;fill:var(--ink-2)}
.bu-tj-proj.eng{fill:color-mix(in srgb,var(--bu-eng) 16%,transparent);stroke:color-mix(in srgb,var(--bu-eng) 45%,transparent);stroke-width:1;stroke-dasharray:4 3}
.bu-tj-proj.pay{fill:color-mix(in srgb,var(--bu-pay) 16%,transparent);stroke:color-mix(in srgb,var(--bu-pay) 45%,transparent);stroke-width:1;stroke-dasharray:4 3}
.bu-tj-aire{fill:color-mix(in srgb,var(--bu-pay) 10%,transparent)}
.bu-tj-c{fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.bu-tj-c.eng{stroke:var(--bu-eng)}.bu-tj-c.pay{stroke:var(--bu-pay)}
.bu-tj-pt{stroke:var(--v2-surface);stroke-width:2}
.bu-tj-pt.eng{fill:var(--bu-eng)}.bu-tj-pt.pay{fill:var(--bu-pay)}.bu-tj-pt.env{fill:var(--bu-navy)}
.bu-tj-plan{fill:var(--v2-surface);stroke:var(--bu-navy);stroke-width:1.6;cursor:help}
.bu-guide{stroke:var(--ink-2);stroke-width:1;stroke-dasharray:3 3;pointer-events:none}
.bu-axe.futur{fill:color-mix(in srgb,var(--muted) 60%,transparent)}
.bu-tj-note{font-size:12.5px;fill:var(--muted);font-style:italic}
.bu-tj-vide{display:grid;grid-template-columns:minmax(0,1fr) 46px minmax(0,1fr) 46px minmax(0,1fr);align-items:stretch;margin:6px 22px 0}
.bu-tj-vide .bu-sta{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border-radius:12px;border:1.5px solid var(--v2-trait-fort)}
.bu-tj-vide .bu-sta .k{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.bu-tj-vide .bu-sta b{font-size:21px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.bu-tj-vide .bu-sta .s{font-size:12px;color:var(--ink-2)}
.bu-tj-vide .bu-sta.on{border-color:var(--bu-navy);background:color-mix(in srgb,var(--bu-navy) 6%,var(--v2-surface))}
.bu-tj-vide .bu-sta.on b{color:var(--bu-navy)}
.bu-tj-vide .bu-sta.att{border-style:dashed;border-color:var(--bu-orange);background:color-mix(in srgb,var(--bu-orange) 6%,var(--v2-surface))}
.bu-tj-vide .bu-sta.off{border-style:dashed;border-color:var(--bu-gris)}
.bu-tj-vide .bu-sta.off b{color:var(--muted)}
.bu-tj-vide .fl{align-self:center;justify-self:center;width:30px;height:0;border-top:1.6px solid var(--v2-trait-fort);position:relative}
.bu-tj-vide .fl::after{content:"";position:absolute;right:-1px;top:-5px;border-left:7px solid var(--v2-trait-fort);border-top:4px solid transparent;border-bottom:4px solid transparent}
.bu-tj-an{margin:46px 22px 4px;position:relative}
.bu-tj-an .p{position:relative;height:10px;border-radius:5px;background:var(--v2-surface-2);border:1px solid var(--v2-trait)}
.bu-tj-an .p .e{position:absolute;left:0;top:0;bottom:0;border-radius:5px;background:color-mix(in srgb,var(--bu-gris) 55%,transparent)}
.bu-tj-an .p .bu-q{position:absolute;top:-1px;width:0;height:0}
.bu-tj-an .p .bu-q i{position:absolute;left:-5px;top:0;width:9px;height:9px;transform:rotate(45deg);background:var(--v2-surface);border:1.6px solid var(--bu-navy)}
.bu-tj-an .p .bu-q b{position:absolute;bottom:8px;left:0;transform:translateX(-50%);font-size:10.5px;color:var(--bu-navy);font-weight:700;white-space:nowrap}
.bu-tj-an .p .bu-q.fin b{transform:translateX(-100%)}
.bu-tj-an .p .bu-mk{position:absolute;top:-6px;height:52px;width:0;border-left:1.5px dashed var(--ink-2)}
.bu-tj-an .p .bu-mk b{position:absolute;top:100%;left:0;transform:translateX(-50%);padding-top:2px;font-size:11.5px;font-weight:700;color:var(--ink-2);white-space:nowrap}
.bu-tj-an .mois{position:relative;height:16px;margin-top:8px}
.bu-tj-an{padding-bottom:22px}
.bu-tj-an .mois span{position:absolute;font-size:10.5px;color:var(--muted)}
.bu-tj-acts{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:16px 22px 0}
.bu-tj-acts p{margin:0;font-size:13.5px;color:var(--ink)}

/* ---------- C. la construction, en flux ---------- */
.fn-dessin.bu-d.bu-co-d,.fn-dessin.bu-d.bu-rf-d{margin:6px 22px 4px}
.bu-ruban{fill:var(--bu-c);fill-opacity:.24;transition:fill-opacity var(--v2-t);cursor:pointer}
.bu-ruban:hover,.bu-ruban:focus-visible{fill-opacity:.46}
.bu-ruban.impl{fill-opacity:.08;stroke:var(--bu-imp);stroke-width:1.1;stroke-dasharray:4 3}
.bu-noeud{fill:var(--bu-c);cursor:pointer}
.bu-noeud.fort{cursor:default}
.bu-noeud.impl{fill:var(--v2-surface);stroke:var(--bu-imp);stroke-width:1.4;stroke-dasharray:3 2}
.bu-co-k{font-size:12.5px;font-weight:700;fill:var(--ink)}
.bu-co-k.fort{font-size:13px;font-weight:800}
.bu-co-k.impl{fill:var(--bu-orange)}
.bu-co-v{font-size:12px;fill:var(--ink-2);font-variant-numeric:tabular-nums}
.bu-rf-pip{stroke:var(--bu-ext);stroke-width:6;stroke-linecap:round;stroke-dasharray:2 7;opacity:.8}

/* ---------- D. d'un exercice a l'autre ---------- */
.fn-dessin.bu-d.bu-lt-d{margin:4px 22px 4px}
.bu-lt-an{cursor:pointer}
.bu-lt-fond{fill:transparent;transition:fill var(--v2-t)}
.bu-lt-an:hover .bu-lt-fond{fill:color-mix(in srgb,var(--bu-navy) 4%,transparent)}
.bu-lt-an.on .bu-lt-fond{fill:var(--bu-fond-an);stroke:color-mix(in srgb,var(--bu-navy) 25%,transparent);stroke-width:1}
.bu-lt-seg{fill:var(--bu-c)}
.bu-lt-seg.ini{fill-opacity:.38}
.bu-lt-exe{fill:var(--bu-vert)}
.bu-lt-v{font-size:11px;font-weight:700;fill:var(--ink);font-variant-numeric:tabular-nums}
.bu-lt-k{font-size:10.5px;fill:var(--muted)}
.bu-lt-an-t{font-size:15px;font-weight:800;fill:var(--ink)}
.bu-lt-st{font-size:11.5px;font-weight:700;fill:var(--ink-2)}
.bu-lt-st.s-vote{fill:var(--bu-navy)}.bu-lt-st.s-rectifie{fill:var(--bu-bleu)}.bu-lt-st.s-realise{fill:var(--bu-vert)}.bu-lt-st.s-enCours{fill:var(--bu-orange)}
.bu-lt-pip{font-size:11px;fill:var(--muted)}
.bu-ex{margin:14px 22px 0;padding-top:14px;border-top:1px solid var(--v2-trait)}
.bu-ex h3{margin:0 0 10px;font-size:13px;font-weight:800}
.bu-ex.vide{font-size:12.5px;color:var(--muted)}
.bu-ex-t{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 14px;margin-bottom:10px}
.bu-ex-t b{font-size:13.5px;font-weight:700;color:var(--ink)}
.bu-ex-t .v{font-size:18px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--ink)}
.bu-ex-t .p{font-size:13px;font-weight:700;color:var(--muted)}
.bu-ex-l{display:flex;flex-direction:column}
.bu-ex-l .r{display:grid;grid-template-columns:minmax(220px,1.3fr) minmax(180px,1.4fr) 150px minmax(150px,.8fr);align-items:center;gap:16px;min-height:46px;border-top:1px solid var(--v2-trait)}
.bu-ex-l .r.clic{cursor:pointer}
.bu-ex-l .r.clic:hover{background:var(--v2-surface-2)}
.bu-ex-l .n{display:flex;flex-direction:column;gap:1px;min-width:0}
.bu-ex-l .n b{font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bu-ex-l .n span{font-size:11.5px;color:var(--muted)}
.bu-ex-l .j{position:relative;height:14px}
.bu-ex-l .j i{position:absolute;top:0;bottom:0;border-radius:3px}
.bu-ex-l .j i.plus{background:var(--bu-navy)}
.bu-ex-l .j i.moins{background:var(--bu-ext)}
.bu-ex-l .j i.axe{left:50%;width:0;top:-6px;bottom:-6px;border-left:1px solid var(--v2-trait-fort);border-radius:0}
.bu-ex-l .bu-n{font-size:13.5px;font-weight:800;text-align:right;font-variant-numeric:tabular-nums;color:var(--ink)}
.bu-ex-l .s{font-size:11.5px;color:var(--muted)}
.bu-ex-n{margin-top:8px;font-size:12px;color:var(--ink-2)}

/* ---------- E. les points d'attention ---------- */
.bu-pa{display:grid;grid-template-columns:repeat(auto-fill,minmax(460px,1fr));gap:14px;padding:0 22px}
.bu-pa-c{display:flex;flex-direction:column;gap:8px;padding:14px 16px 12px;border-radius:12px;border:1px solid var(--v2-trait);border-top:3px solid var(--bu-gris);background:var(--v2-surface)}
.bu-pa-c.s-risque{border-top-color:var(--bu-rouge)}.bu-pa-c.s-att{border-top-color:var(--bu-orange)}.bu-pa-c.s-info{border-top-color:var(--bu-navy)}
.bu-pa-c .sg{display:flex;align-items:center;gap:8px}
.bu-pa-c .sg i{width:9px;height:9px;border-radius:50%;background:var(--bu-gris);flex-shrink:0}
.bu-pa-c.s-risque .sg i{background:var(--bu-rouge)}.bu-pa-c.s-att .sg i{background:var(--bu-orange)}.bu-pa-c.s-info .sg i{background:var(--bu-navy)}
.bu-pa-c .sg b{font-size:14px;font-weight:800;color:var(--ink);flex:1}
.bu-pa-c .sg .nv{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.bu-pa-c .x{display:grid;grid-template-columns:96px minmax(0,1fr);gap:10px;align-items:baseline}
.bu-pa-c .x .k{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.bu-pa-c .x p{margin:0;font-size:12.8px;line-height:1.48;color:var(--ink-2)}
.bu-pa-c .src{font-size:11px;color:var(--muted)}
.bu-pa-va{align-self:flex-start;margin-top:2px}

/* ---------- les credits : l'arbre ---------- */
.bu-ic-fil{display:flex;flex-wrap:wrap;gap:6px;padding:0 22px 12px}
.bu-ic-fil button{display:inline-flex;align-items:baseline;gap:8px;padding:5px 11px;border-radius:20px;border:1px solid var(--v2-trait-fort);background:var(--v2-surface);font-size:12.5px;color:var(--ink-2);cursor:pointer}
.bu-ic-fil button b{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.bu-ic-fil button.on{border-color:var(--bu-navy);color:var(--bu-navy);font-weight:700}
.bu-ic-fil button+button::before{content:"›";margin-right:4px;color:var(--muted)}
.bu-ic{margin:0 22px;display:flex;flex-direction:column;gap:4px}
.bu-ic-r1{display:flex;align-items:baseline;gap:14px;height:48px;padding:0 16px;border-radius:9px;background:var(--bu-c);color:#fff;align-items:center}
.bu-ic-r1 .n{font-size:14px;font-weight:800;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bu-ic-r1 b{font-size:16px;font-weight:800;font-variant-numeric:tabular-nums}
.bu-ic-r1 .p{font-size:12px;opacity:.85}
.bu-ic-r1.k-inv,.bu-ic-r1.k-tr,.bu-ic-r1.k-ext{color:#0B1A3A}
.bu-ic-r2,.bu-ic-r3{position:relative;height:56px}
.bu-ic-r3{height:34px}
.bu-ic-r2 .b,.bu-ic-r3 .b{position:absolute;top:0;bottom:0;display:flex;flex-direction:column;justify-content:center;gap:1px;padding:0 10px;border:0;border-right:2px solid var(--v2-surface);border-radius:6px;background:var(--bu-c);color:#fff;text-align:left;overflow:hidden;cursor:pointer;font:inherit}
.bu-ic-r3 .b{background:color-mix(in srgb,var(--bu-c) 55%,var(--v2-surface));color:var(--ink)}
.bu-ic-r2 .b.k-inv,.bu-ic-r2 .b.k-tr,.bu-ic-r2 .b.k-ext{color:#0B1A3A}
.bu-ic-r2 .b:hover,.bu-ic-r3 .b:hover{filter:brightness(1.08)}
.bu-ic-r2 .b .n,.bu-ic-r3 .b .n{font-size:12.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bu-ic-r3 .b .n{font-size:11.5px;font-weight:600}
.bu-ic-r2 .b b{font-size:12px;font-variant-numeric:tabular-nums;opacity:.9;white-space:nowrap}
.bu-ic-r2 .b.etroit .n,.bu-ic-r2 .b.etroit b,.bu-ic-r3 .b.etroit .n{display:none}
.bu-ic-r2 .b.etroit,.bu-ic-r3 .b.etroit{padding:0;border-right-width:1px}
.bu-ic-l{display:flex;flex-direction:column;margin:16px 22px 0}
.bu-ic-l .r{display:grid;grid-template-columns:minmax(220px,1.3fr) minmax(160px,1.5fr) 140px 70px 150px;align-items:center;gap:16px;min-height:50px;padding:0;border:0;border-top:1px solid var(--v2-trait);background:transparent;font:inherit;text-align:left;color:inherit;cursor:pointer}
.bu-ic-l .r:hover{background:var(--v2-surface-2)}
.bu-ic-l .r.tete{min-height:30px;cursor:default;font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border-top:0}
.bu-ic-l .r.tete:hover{background:transparent}
.bu-ic-l .n{display:grid;grid-template-columns:12px minmax(0,1fr);column-gap:10px;align-items:center;min-width:0}
.bu-ic-l .n i{width:10px;height:10px;border-radius:2px;background:var(--bu-c);grid-row:1 / 3}
.bu-ic-l .n b{font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bu-ic-l .n span{font-size:11.5px;color:var(--muted)}
.bu-ic-l .j{height:10px;border-radius:5px;background:var(--v2-surface-2);overflow:hidden}
.bu-ic-l .j i{display:block;height:100%;border-radius:5px;background:var(--bu-c)}
.bu-ic-l .bu-n{text-align:right;font-size:13px;font-variant-numeric:tabular-nums;color:var(--ink-2)}
.bu-ic-l b.bu-n{font-weight:800;color:var(--ink)}
.bu-ic-l .bu-n.hausse{color:var(--bu-navy);font-weight:700}
.bu-ic-l .bu-n.baisse{color:var(--ink-2);font-weight:700}

/* ---------- l'execution : la chaine ---------- */
.fn-dessin.bu-d.bu-ch-d{margin:6px 22px 4px}
.bu-ch-pass{fill:color-mix(in srgb,var(--bu-bleu) 9%,transparent)}
.bu-ch-bloque{fill:color-mix(in srgb,var(--bu-orange) 22%,transparent)}
.bu-ch-bloque.on{fill:color-mix(in srgb,var(--bu-orange) 42%,transparent)}
.bu-ch-nd{stroke:var(--bu-gris);stroke-width:1.4;stroke-dasharray:3 4}
.bu-ch-taux{font-size:13px;font-weight:800;fill:var(--ink)}
.bu-ch-blq{font-size:11.5px;font-weight:700;fill:var(--bu-orange)}
.bu-ch-blq.muet{fill:var(--muted);font-weight:600}
.bu-ch-blq.on{text-decoration:underline}
.bu-ch-b{fill:var(--bu-c)}
.bu-ch-b.e0{--bu-c:var(--bu-navy)}.bu-ch-b.e1{--bu-c:var(--bu-eng)}.bu-ch-b.e2{--bu-c:var(--bu-liq)}.bu-ch-b.e3{--bu-c:var(--bu-ord)}.bu-ch-b.e4{--bu-c:var(--bu-pay)}
.bu-ch-vide{fill:transparent;stroke:var(--bu-gris);stroke-width:1.4;stroke-dasharray:4 3}
.bu-ch-k{font-size:12.5px;font-weight:800;fill:var(--ink)}
.bu-ch-v{font-size:13px;font-weight:700;fill:var(--ink);font-variant-numeric:tabular-nums}
.bu-ch-v.muet{fill:var(--muted);font-weight:600}
.bu-ch-p{font-size:11.5px;fill:var(--muted)}
.bu-filtre{display:flex;align-items:center;gap:12px;padding:0 18px 10px}
.bu-chip{display:inline-flex;align-items:center;gap:7px;padding:4px 10px;border-radius:20px;background:color-mix(in srgb,var(--bu-orange) 12%,transparent);color:var(--ink);font-size:12.5px;font-weight:700}
.bu-chip i{width:8px;height:8px;border-radius:50%;background:var(--bu-orange)}

/* ---------- recettes et flux publics ---------- */
.bu-rf-solde{display:flex;flex-direction:column;margin:10px 22px 0;padding-top:10px;border-top:1px solid var(--v2-trait)}
.bu-rf-solde .r{display:grid;grid-template-columns:240px minmax(0,1fr) 160px minmax(180px,.7fr);align-items:center;gap:16px;min-height:38px}
.bu-rf-solde .r .k{font-size:13px;font-weight:700;color:var(--ink)}
.bu-rf-solde .r .j{height:12px;border-radius:6px;background:var(--v2-surface-2);overflow:hidden}
.bu-rf-solde .r .j i{display:block;height:100%;border-radius:6px;background:var(--bu-c)}
.bu-rf-solde .r.impl .j i{background:transparent;border:1.3px dashed var(--bu-imp);box-sizing:border-box}
.bu-rf-solde .r .bu-n{text-align:right;font-size:14px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--ink)}
.bu-rf-solde .r .s{font-size:11.5px;color:var(--muted)}
.bu-rf-solde .r.tot{border-top:1px solid var(--v2-trait-fort);margin-top:4px}
.bu-rf-solde .r.tot .k{font-weight:800}
.bu-rf-solde .r.tot.impl .k,.bu-rf-solde .r.tot.impl .bu-n{color:var(--bu-orange)}
.bu-eg{display:flex;flex-direction:column;gap:16px;padding:0 18px 16px}
.bu-eg-g .t{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}
.bu-eg-g .t b{font-size:13px;color:var(--ink)}
.bu-eg-g .t .src{font-size:11px;color:var(--muted)}
.bu-eg-g .a{display:flex;flex-wrap:wrap;gap:8px}
.bu-eg-g .c{display:flex;flex-direction:column;gap:2px;padding:8px 12px;border-radius:8px;border:1px solid var(--v2-trait);min-width:120px}
.bu-eg-g .c.on{border-color:var(--bu-navy)}
.bu-eg-g .c .k{font-size:11px;color:var(--muted)}
.bu-eg-g .c b{font-size:13.5px;font-variant-numeric:tabular-nums;color:var(--ink)}

/* ---------- les investissements ---------- */
.bu-iv-t{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:0;overflow:hidden}
.bu-iv-t .bu-mo{display:flex;flex-direction:column;gap:6px;padding:22px 26px;border-top:4px solid var(--bu-c)}
.bu-iv-t .bu-mo+.bu-mo{border-left:1px solid var(--v2-trait)}
.bu-iv-t .bu-mo>.k{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.bu-iv-t .bu-mo>b{font-size:30px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.bu-iv-t .bu-mo>.s{font-size:12.5px;color:var(--ink-2)}
.bu-iv-t .x{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px;font-size:12.8px;color:var(--ink-2);padding-top:6px;border-top:1px solid var(--v2-trait)}
.bu-iv-t .k2{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.bu-iv-t .h{display:flex;flex-direction:column;gap:3px;margin-top:6px;font-size:12.5px;color:var(--ink-2)}
.bu-iv-s{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 22px 14px}
.bu-iv-s .c{display:flex;flex-direction:column;gap:2px}
.bu-iv-s .k{font-size:11.5px;color:var(--muted);font-weight:700}
.bu-iv-s b{font-size:17px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.bu-iv-s .s{font-size:11.5px;color:var(--ink-2)}
.bu-iv-l{display:flex;flex-direction:column;margin:0 22px}
.bu-iv-l .r{display:grid;grid-template-columns:minmax(220px,1.1fr) minmax(200px,1.3fr) 170px minmax(220px,1.2fr);gap:18px;align-items:center;min-height:64px;padding:8px 0;border-top:1px solid var(--v2-trait)}
.bu-iv-l .r.clic{cursor:pointer}
.bu-iv-l .r.clic:hover{background:var(--v2-surface-2)}
.bu-iv-l .r.tete{min-height:30px;padding:0;font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border-top:0}
.bu-iv-l .f{display:flex;flex-direction:column;gap:2px;min-width:0}
.bu-iv-l .f b{font-size:13px;color:var(--ink);line-height:1.3}
.bu-iv-l .f span{font-size:11.5px;color:var(--muted)}
.bu-iv-l .j{height:14px}
.bu-iv-l .j .bu-acc{position:relative;display:block;height:100%;border-radius:4px;background:var(--v2-surface-2);border:1px solid var(--v2-trait-fort)}
.bu-iv-l .j .cum{position:absolute;left:0;top:0;bottom:0;border-radius:3px;background:var(--bu-ext)}
.bu-iv-l .j .an{position:absolute;top:0;bottom:0;border-radius:3px;background:var(--bu-vert)}
.bu-iv-l .v{display:flex;flex-direction:column;align-items:flex-end;gap:1px}
.bu-iv-l .v b{font-size:13px;color:var(--ink)}
.bu-iv-l .v span{font-size:11.5px;color:var(--muted)}
.bu-iv-l .v .an{color:var(--bu-vert);font-weight:700}
.bu-iv-l .o{display:flex;flex-wrap:wrap;gap:5px}
.bu-iv-l .o .muet{font-size:11.5px;color:var(--muted)}
.bu-obj{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:3px 9px;border-radius:14px;background:var(--v2-surface-2);border:1px solid var(--v2-trait);font-size:11.5px;color:var(--ink-2)}
.bu-obj span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:190px}
.bu-obj i{width:7px;height:7px;border-radius:50%;background:var(--bu-bleu);flex-shrink:0}
.bu-obj.e-etude i{background:var(--bu-gris)}.bu-obj.e-installation i{background:var(--bu-vert)}

/* ---------- le registre : les textes publies ---------- */
.bu-src{min-width:760px}
.bu-src th:nth-child(2){width:150px}.bu-src th:nth-child(3){width:150px}

/* ---------- a 1280 px ---------- */
@media (max-width:1500px){
  .bu-sy{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .bu-sy-v b{font-size:40px}
  .bu-sy-cs{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
  .bu-sy-c b{font-size:16px}
  .bu-ex-l .r{grid-template-columns:minmax(180px,1.2fr) minmax(140px,1fr) 130px minmax(120px,.7fr);gap:12px}
  .bu-ic-l .r{grid-template-columns:minmax(180px,1.3fr) minmax(110px,1fr) 130px 60px 130px;gap:12px}
  .bu-iv-l .r{grid-template-columns:minmax(170px,1fr) minmax(150px,1.1fr) 150px minmax(170px,1fr);gap:12px}
  .bu-iv-s{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bu-rf-solde .r{grid-template-columns:200px minmax(0,1fr) 140px minmax(150px,.7fr);gap:12px}
}
/* les sections que la page vise (un lien y defile) : sous la barre collante */
.bu-pa-b,.bu-cm,.bu-ic-b,.bu-detail,.bu-rf-detail{scroll-margin-top:110px}
.bu-ic-renvoi{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:12px 22px 0;padding:12px 14px;border-radius:9px;background:color-mix(in srgb,var(--bu-ext) 10%,transparent);font-size:12.8px;color:var(--ink-2)}

/* ---------------------------------------------------------------------
   LE POSTE DE PILOTAGE DU BUDGET (04/10/2026, midi). Une ligne de
   contexte, un bandeau qui se lit en trois secondes, deux figures.
   --------------------------------------------------------------------- */
:root{--bu-hausse:#2563EB;--bu-stable:#3D5A8C;--bu-baisse:#E07A12;--bu-nc:#9AA6B8;--bu-glow:transparent}
:root[data-theme="dark"]{--bu-hausse:#6E9BF5;--bu-stable:#8EA4CC;--bu-baisse:#F2A14A;--bu-nc:#5D6A80;--bu-glow:rgba(110,155,245,.55)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bu-hausse:#6E9BF5;--bu-stable:#8EA4CC;--bu-baisse:#F2A14A;--bu-nc:#5D6A80;--bu-glow:rgba(110,155,245,.55)}}

/* la ligne de contexte */
.fn-contexte.bu-ctx2{flex-wrap:nowrap;align-items:center;gap:22px;padding:10px 30px;min-height:64px}
.bu-ctx2-situ{display:flex;flex-direction:column;gap:1px;flex:0 0 auto;min-width:150px}
.bu-ctx2-situ .k{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.bu-ctx2-situ b{font-size:15px;font-weight:800;color:var(--ink);white-space:nowrap}
.bu-ctx2-situ.adate b::after{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--bu-bleu);margin-left:7px;vertical-align:middle}
.bu-ctx2-situ .s{font-size:11px;color:var(--muted);white-space:nowrap}
.bu-ans{display:flex;gap:6px;flex:0 0 auto}
.bu-ans .a{display:flex;flex-direction:column;align-items:flex-start;gap:0;width:84px;padding:5px 10px 6px;border-radius:9px;border:1px solid var(--v2-trait-fort);background:var(--v2-surface);font:inherit;cursor:pointer;text-align:left;transition:border-color var(--v2-t),box-shadow var(--v2-t)}
.bu-ans .a b{font-size:14px;font-weight:800;color:var(--ink);line-height:1.2}
.bu-ans .a span{font-size:10.5px;font-weight:700;color:var(--muted);white-space:nowrap}
.bu-ans .a span::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:5px;vertical-align:1px;background:var(--bu-gris)}
.bu-ans .a.s-vote span::before{background:var(--bu-navy)}.bu-ans .a.s-rectifie span::before{background:var(--bu-bleu)}
.bu-ans .a.s-realise span::before{background:var(--bu-vert)}.bu-ans .a.s-enCours span::before{background:var(--bu-orange)}
.bu-ans .a:hover{border-color:var(--bu-navy)}
.bu-ans .a.on{border-color:var(--bu-navy);background:var(--bu-navy);box-shadow:0 6px 16px -10px var(--bu-navy)}
.bu-ans .a.on b,.bu-ans .a.on span{color:#fff}
:root[data-theme="dark"] .bu-ans .a.on b,:root[data-theme="dark"] .bu-ans .a.on span{color:#0B1220}
.bu-ctx2 .bu-ctx2-per{height:34px;width:132px}
.bu-ctx2 .fn-seg button{padding:7px 12px}
.bu-ctx2 .fn-devise button{min-width:50px;text-align:center}

/* le bandeau */
.bu-hero{display:grid;grid-template-columns:minmax(0,1.08fr) auto minmax(0,1fr);gap:0;padding:0;overflow:hidden}
.bu-hero-g,.bu-hero-m,.bu-hero-d{padding:24px 28px;min-width:0}
.bu-hero-m{border-left:1px solid var(--v2-trait);border-right:1px solid var(--v2-trait);display:flex;flex-direction:column;align-items:center;gap:10px;
  background:radial-gradient(closest-side,color-mix(in srgb,var(--bu-navy) 5%,transparent),transparent)}
.bu-hero-k{display:flex;align-items:center;gap:12px;width:100%;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.bu-hero-k .n{margin-left:auto;letter-spacing:.04em;text-transform:none;font-weight:700}
.bu-hero-k .bu-statut{letter-spacing:.02em;text-transform:none}
.bu-hero-v{display:flex;align-items:baseline;gap:12px;margin-top:14px}
.bu-hero-v .n{font-size:68px;line-height:1;font-weight:800;letter-spacing:-.035em;color:var(--bu-navy);font-variant-numeric:tabular-nums}
.bu-hero-v .u{font-size:20px;font-weight:700;color:var(--ink-2)}
.bu-hero-l{margin-top:8px;font-size:14.5px;color:var(--ink-2)}
.bu-hero-l2{margin-top:2px;font-size:12.5px;color:var(--muted)}
.bu-hero-compo{margin-top:22px}
.bu-hero-compo .barre{display:flex;height:16px;border-radius:8px;overflow:hidden;background:var(--v2-surface-2)}
.bu-hero-compo .barre .pr{background:var(--bu-navy)}
.bu-hero-compo .barre .ex{background:repeating-linear-gradient(135deg,var(--bu-ext) 0 6px,color-mix(in srgb,var(--bu-ext) 78%,var(--v2-surface)) 6px 12px)}
.bu-hero-compo .libs{display:flex;justify-content:space-between;gap:16px;margin-top:10px}
.bu-hero-compo .c{display:flex;flex-direction:column;gap:1px;min-width:0}
.bu-hero-compo .c.ex{align-items:flex-end;text-align:right}
.bu-hero-compo .c .k{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--ink-2)}
.bu-hero-compo .c .k i{width:10px;height:10px;border-radius:2px;background:var(--bu-navy)}
.bu-hero-compo .c.ex .k i{background:var(--bu-ext)}
.bu-hero-compo .c b{font-size:17px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.bu-hero-compo .c .p{font-size:12px;font-weight:700;color:var(--muted)}
.bu-hero-compo .c .nd{font-size:12px;color:var(--muted)}
.bu-hero-faits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:22px}
.bu-fait{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;border-radius:12px;border:1px solid var(--v2-trait);background:var(--v2-surface-2);font:inherit;text-align:left;cursor:pointer;transition:border-color var(--v2-t),transform var(--v2-t)}
.bu-fait:hover{border-color:var(--v2-trait-fort);transform:translateY(-1px)}
.bu-fait .k{font-size:11.5px;font-weight:700;color:var(--ink-2)}
.bu-fait b{font-size:20px;white-space:nowrap;font-weight:800;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.bu-fait .s{font-size:11.5px;color:var(--muted)}
.bu-fait.rec b{color:var(--bu-vert)}.bu-fait.imp b{color:var(--bu-orange)}.bu-fait.gar b{color:var(--bu-navy)}
.bu-bl .bu-bloc-t,.bu-va .bu-bloc-t{flex-wrap:wrap}
.bu-bl .bu-bloc-t .t{flex:1 1 420px}

/* le cadran */
.bu-cd{position:relative}
.bu-cd svg{display:block;overflow:visible}
.bu-cd-mois{font-size:10.5px;font-weight:700;fill:var(--ink-2);text-transform:capitalize}
.bu-cd-mois.futur{fill:var(--muted);opacity:.6}
.bu-cd-tick{stroke:var(--v2-trait-fort);stroke-width:1.4}
.bu-cd-env{fill:none;stroke:var(--bu-navy);stroke-width:2.2}
.bu-cd-ecoule{fill:none;stroke:color-mix(in srgb,var(--bu-navy) 6%,transparent)}
.bu-cd-piste{fill:none;stroke:var(--v2-surface-2)}
.bu-cd-piste.vide{stroke:var(--v2-surface-2)}
.bu-cd-arc{fill:none;stroke-linecap:round;stroke-dasharray:1 1;stroke-dashoffset:0;animation:bu-balayer 1100ms cubic-bezier(.2,.7,.2,1) both;cursor:help;filter:drop-shadow(0 0 6px var(--bu-glow))}
.bu-cd-arc.eng{stroke:var(--bu-eng)}.bu-cd-arc.pay{stroke:var(--bu-pay)}.bu-cd-arc.depasse{stroke:var(--bu-rouge)}
.bu-cd-retard{fill:none;stroke:color-mix(in srgb,var(--bu-orange) 30%,transparent);stroke-linecap:butt}
.bu-cd-plus{fill:none;stroke:var(--bu-rouge);stroke-width:2;stroke-dasharray:3 4}
.bu-cd-aiguille{stroke:var(--ink);stroke-width:2;stroke-linecap:round}
.bu-cd-pointe{fill:var(--ink);stroke:var(--v2-surface);stroke-width:2}
@keyframes bu-balayer{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){.bu-cd-arc{animation:none}}
.bu-cd-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;pointer-events:none;text-align:center}
.bu-cd-c .v{font-size:46px;line-height:1;font-weight:800;letter-spacing:-.03em;color:var(--ink);font-variant-numeric:tabular-nums}
.bu-cd-c .v.rouge{color:var(--bu-rouge)}
.bu-cd-c .k{font-size:12.5px;font-weight:700;color:var(--ink-2)}
.bu-cd-c .x{font-size:12px;font-weight:700;color:var(--muted)}
.bu-cd-c .x.pay{color:var(--bu-pay)}.bu-cd-c .x.att{color:var(--bu-orange)}.bu-cd-c .x.rouge{color:var(--bu-rouge)}
.bu-cd-base{font-size:12.5px;font-weight:700;color:var(--ink-2)}
.bu-cd-leg{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 14px;font-size:11.5px;color:var(--ink-2)}
.bu-cd-leg .l{display:inline-flex;align-items:center;gap:6px}
.bu-cd-leg i{display:inline-block;width:16px;height:6px;border-radius:3px}
.bu-cd-leg .eng i{background:var(--bu-eng)}.bu-cd-leg .pay i{background:var(--bu-pay)}
.bu-cd-leg .ecoule i{background:color-mix(in srgb,var(--bu-navy) 14%,transparent)}.bu-cd-leg .retard i{background:color-mix(in srgb,var(--bu-orange) 40%,transparent)}

/* a faire maintenant */
.bu-af{display:flex;flex-direction:column;gap:6px;margin-top:12px}
.bu-af-i{border-radius:10px;border:1px solid var(--v2-trait);background:var(--v2-surface);overflow:hidden;border-left:3px solid var(--bu-gris)}
.bu-af-i.s-risque{border-left-color:var(--bu-rouge)}.bu-af-i.s-att{border-left-color:var(--bu-orange)}.bu-af-i.s-info{border-left-color:var(--bu-navy)}
.bu-af-i.on{box-shadow:0 10px 24px -18px rgba(16,28,48,.5)}
.bu-af-i .t{display:flex;align-items:center;gap:9px;width:100%;padding:9px 12px 3px;border:0;background:transparent;font:inherit;text-align:left;cursor:pointer;color:var(--ink)}
.bu-af-i .t i{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--bu-gris)}
.bu-af-i.s-risque .t i{background:var(--bu-rouge)}.bu-af-i.s-att .t i{background:var(--bu-orange)}.bu-af-i.s-info .t i{background:var(--bu-navy)}
.bu-af-i .t b{font-size:13px;font-weight:800;flex:1;min-width:0}
.bu-af-i .t .nv{font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.bu-af-i .r1{padding:0 12px 9px 29px;font-size:12px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bu-af-i .c{display:flex;flex-direction:column;gap:6px;padding:4px 12px 12px 29px}
.bu-af-i .x{display:grid;grid-template-columns:78px minmax(0,1fr);gap:8px;align-items:baseline}
.bu-af-i .x .k{font-size:9.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.bu-af-i .x p{margin:0;font-size:12.3px;line-height:1.45;color:var(--ink-2)}
.bu-af-i .src{font-size:10.5px;color:var(--muted)}
.bu-af-va{align-self:flex-start;font-size:12.5px}

/* la seconde rangee */
.bu-r2{display:grid;grid-template-columns:minmax(0,1.42fr) minmax(0,1fr);gap:24px}
.fn-dessin.bu-d.bu-bl-d,.fn-dessin.bu-d.bu-va-d{margin:2px 22px 4px}
.bu-bl-g{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;fill:var(--ink-2)}
.bu-bl-gv{font-size:12px;font-weight:700;fill:var(--muted);font-variant-numeric:tabular-nums}
.bu-bl-n{transition:transform 750ms cubic-bezier(.2,.7,.2,1);cursor:pointer;outline:none}
.bu-bl-c{transition:r 750ms cubic-bezier(.2,.7,.2,1);fill:var(--bu-stable);stroke:var(--v2-surface);stroke-width:1.5}
.bu-bl-n.e-hausse .bu-bl-c,.bu-bl-n.e-nouveau .bu-bl-c{fill:var(--bu-hausse)}
.bu-bl-n.e-baisse .bu-bl-c{fill:var(--bu-baisse)}
.bu-bl-n.e-nc .bu-bl-c{fill:var(--bu-nc)}
.bu-bl-n:hover .bu-bl-c,.bu-bl-n:focus-visible .bu-bl-c{stroke:var(--ink);stroke-width:2}
.bu-bl-avant{fill:none;stroke:var(--ink-2);stroke-width:1.3;stroke-dasharray:4 4;opacity:.55}
.bu-bl-n.e-supprime .bu-bl-avant{opacity:.9;stroke:var(--bu-baisse);fill:color-mix(in srgb,var(--bu-baisse) 7%,transparent)}
.bu-bl-v{font-size:12.5px;font-weight:800;fill:#fff;pointer-events:none;font-variant-numeric:tabular-nums}
.bu-bl-n.e-supprime .bu-bl-v{fill:var(--bu-baisse)}
.bu-bl-p{font-size:11px;font-weight:700;fill:rgba(255,255,255,.85);pointer-events:none}
.bu-bl-n.e-supprime .bu-bl-p{fill:var(--ink-2)}
:root[data-theme="dark"] .bu-bl-v{fill:#0B1220}:root[data-theme="dark"] .bu-bl-p{fill:rgba(11,18,32,.8)}
.bu-bl-leg .l i{border-radius:50%}
.bu-bl-leg .e-hausse i{background:var(--bu-hausse)}.bu-bl-leg .e-stable i{background:var(--bu-stable)}.bu-bl-leg .e-baisse i{background:var(--bu-baisse)}
.bu-bl-leg .e-nc i{background:var(--bu-nc)}.bu-bl-leg .e-supprime i{background:transparent;border:1.4px dashed var(--bu-baisse)}
.bu-bl-leg .avant i{background:transparent;border:1.4px dashed var(--ink-2)}
.bu-bl-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:12px 22px 0;padding-top:12px;border-top:1px solid var(--v2-trait)}
.bu-bl-top .k{font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-right:4px}
.bu-bl-top .m{display:inline-flex;align-items:baseline;gap:8px;padding:6px 11px;border-radius:20px;border:1px solid var(--v2-trait);background:var(--v2-surface-2);font:inherit;font-size:12.3px;color:var(--ink-2);cursor:pointer}
.bu-bl-top .m b{font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.bu-bl-top .m.e-baisse b,.bu-bl-top .m.e-supprime b{color:var(--bu-baisse)}.bu-bl-top .m.e-hausse b,.bu-bl-top .m.e-nouveau b{color:var(--bu-hausse)}
.bu-bl-top .m:hover{border-color:var(--v2-trait-fort)}
.bu-va-an{cursor:pointer;outline:none}
.bu-va-fond{fill:transparent;transition:fill var(--v2-t)}
.bu-va-an:hover .bu-va-fond,.bu-va-an:focus-visible .bu-va-fond{fill:color-mix(in srgb,var(--bu-navy) 4%,transparent)}
.bu-va-an.on .bu-va-fond{fill:var(--bu-fond-an);stroke:color-mix(in srgb,var(--bu-navy) 22%,transparent)}
.bu-va-vote{fill:var(--bu-navy)}
.bu-va-ini{stroke:var(--v2-surface);stroke-width:2.4;stroke-dasharray:4 3}
.bu-va-exe{fill:var(--bu-vert)}
.bu-va-hors{fill:var(--bu-rouge)}
.bu-va-nd{fill:none;stroke:var(--bu-gris);stroke-width:1.4;stroke-dasharray:4 4}
.bu-va-v{font-size:11.5px;font-weight:800;fill:var(--ink);font-variant-numeric:tabular-nums}
.bu-va-r{font-size:11.5px;font-weight:800;fill:var(--bu-vert)}
.bu-va-r.rouge{fill:var(--bu-rouge)}
.bu-va-k{font-size:10.5px;fill:var(--muted)}
.bu-va-an-t{font-size:16px;font-weight:800;fill:var(--ink)}
.bu-leg3 .l.vote i{background:var(--bu-navy)}.bu-leg3 .l.hors i{background:var(--bu-rouge)}
.bu-leg3 .l.ini i{background:transparent;height:0;width:16px;border-top:2.4px dashed var(--ink-2);border-radius:0;opacity:1}

/* l'execution sans mouvement */
.bu-ev{display:grid;grid-template-columns:auto minmax(0,1fr);gap:36px;align-items:center;padding:26px 32px}
.bu-ev h2{margin:0 0 8px;font-size:20px;font-weight:800}
.bu-ev p{margin:0 0 18px;font-size:14px;line-height:1.5;color:var(--ink-2);max-width:720px}
.bu-ev-ch{display:flex;align-items:stretch;gap:0;margin-bottom:20px}
.bu-ev-ch .e{flex:1;display:flex;flex-direction:column;gap:3px;padding:12px 14px;border:1.4px dashed var(--bu-gris);border-left:0;position:relative}
.bu-ev-ch .e:first-child{border-left:1.4px solid var(--bu-navy);border-style:solid;border-color:var(--bu-navy);border-radius:10px 0 0 10px;background:color-mix(in srgb,var(--bu-navy) 6%,var(--v2-surface))}
.bu-ev-ch .e:last-child{border-radius:0 10px 10px 0}
.bu-ev-ch .e .k{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.bu-ev-ch .e b{font-size:15px;font-weight:800;color:var(--ink)}
.bu-ev-ch .e.vide b{color:var(--muted);font-weight:700}
.bu-ev .a{display:flex;gap:10px}
.bu-meth2{display:block}
.bu-meth2 summary{cursor:pointer;font-weight:700;color:var(--ink-2);list-style:none}
.bu-meth2 summary::-webkit-details-marker{display:none}
.bu-meth2 summary::after{content:" +";color:var(--muted)}
.bu-meth2[open] summary::after{content:" −"}
.bu-meth2 summary{margin-bottom:2px}

/* a 1280 px : le bandeau sur deux rangees, les figures l'une sous l'autre */
@media (max-width:1600px){
  .bu-hero{grid-template-columns:minmax(0,1fr) auto}
  .bu-hero-d{grid-column:1 / -1;border-top:1px solid var(--v2-trait)}
  .bu-hero-m{border-right:0}
  .bu-hero-v .n{font-size:54px}
  .bu-hero-faits{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bu-af{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .bu-r2{grid-template-columns:minmax(0,1fr)}
  .bu-ans .a{width:76px;padding:4px 8px 5px}
  .fn-contexte.bu-ctx2{gap:14px;padding:10px 22px}
}
.bu-bl .bu-bl-n.e-supprime .bu-bl-v{fill:var(--bu-baisse)}
.bu-bl .bu-bl-n.e-supprime .bu-bl-p{fill:var(--ink-2)}

/* ---------------------------------------------------------------------
   LE BUDGET, D'APRES LA MAQUETTE DE BAYSS (04/10/2026, apres-midi) :
   cartes blanches, pictogrammes teintes, couleurs franches, une roue qui
   se souleve, des sous-parties en pastilles.
   --------------------------------------------------------------------- */
:root{
  --bu-k-navy:#1E3A8A;--bu-k-bleu:#2563EB;--bu-k-ciel:#0EA5E9;--bu-k-vert:#10B981;--bu-k-orange:#F59E0B;--bu-k-violet:#8B5CF6;--bu-k-indigo:#6366F1;--bu-k-rouge:#EF4444;--bu-k-gris:#94A3B8;
  --bu-c-dec:#3B82F6;--bu-c-pay:#10B981;--bu-carte:#FFFFFF;--bu-carte-trait:#E6EBF2;
  --bu-ombre:0 1px 2px rgba(16,24,40,.04),0 10px 24px -16px rgba(16,24,40,.22);
}
:root[data-theme="dark"]{--bu-k-navy:#93B4F5;--bu-k-bleu:#60A5FA;--bu-k-ciel:#38BDF8;--bu-k-vert:#34D399;--bu-k-orange:#FBBF24;--bu-k-violet:#A78BFA;--bu-k-indigo:#818CF8;--bu-k-rouge:#F87171;--bu-k-gris:#64748B;
  --bu-c-dec:#60A5FA;--bu-c-pay:#34D399;--bu-carte:#0F1725;--bu-carte-trait:#1C2537;--bu-ombre:0 1px 2px rgba(0,0,0,.4),0 14px 30px -20px rgba(0,0,0,.8)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bu-k-navy:#93B4F5;--bu-k-bleu:#60A5FA;--bu-k-ciel:#38BDF8;--bu-k-vert:#34D399;--bu-k-orange:#FBBF24;--bu-k-violet:#A78BFA;--bu-k-indigo:#818CF8;--bu-k-rouge:#F87171;--bu-k-gris:#64748B;
  --bu-c-dec:#60A5FA;--bu-c-pay:#34D399;--bu-carte:#0F1725;--bu-carte-trait:#1C2537;--bu-ombre:0 1px 2px rgba(0,0,0,.4),0 14px 30px -20px rgba(0,0,0,.8)}}
.t-navy{--tc:var(--bu-k-navy)}.t-bleu{--tc:var(--bu-k-bleu)}.t-ciel{--tc:var(--bu-k-ciel)}.t-vert{--tc:var(--bu-k-vert)}.t-orange{--tc:var(--bu-k-orange)}
.t-violet{--tc:var(--bu-k-violet)}.t-indigo{--tc:var(--bu-k-indigo)}.t-rouge{--tc:var(--bu-k-rouge)}.t-gris{--tc:var(--bu-k-gris)}
.n-per{--nc:#6366F1}.n-bs{--nc:#0EA5E9}.n-tr{--nc:#F59E0B}.n-inv{--nc:#10B981}.n-ext{--nc:#3B82F6}.n-prop{--nc:#1E3A8A}
.n-b1{--nc:#1E3A8A}.n-b2{--nc:#3B82F6}.n-b3{--nc:#10B981}.n-b4{--nc:#F59E0B}.n-b5{--nc:#8B5CF6}.n-b6{--nc:#0EA5E9}
:root[data-theme="dark"] .n-prop,:root[data-theme="dark"] .n-b1{--nc:#93B4F5}
.s-ouv{--sc:var(--bu-k-navy)}.s-eng{--sc:var(--bu-k-bleu)}.s-liq{--sc:var(--bu-k-indigo)}.s-ord{--sc:var(--bu-k-violet)}.s-pay{--sc:var(--bu-k-vert)}

/* les cartes, partout dans la page */
.v2-bu .fn-corps{gap:20px}
.v2-bu .fn-pan,.bu-card{background:var(--bu-carte);border:1px solid var(--bu-carte-trait);border-radius:16px;box-shadow:var(--bu-ombre)}
.bu-card{padding:18px 20px 18px;min-width:0;display:flex;flex-direction:column}
.bu-card-t{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.bu-card-t .ic{flex-shrink:0;width:32px;height:32px;border-radius:9px;display:grid;place-items:center;color:var(--tc);background:color-mix(in srgb,var(--tc) 13%,transparent)}
.bu-card-t .tt{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.bu-card-t h3{margin:0;font-size:15px;font-weight:800;color:var(--ink);letter-spacing:-.005em}
.bu-card-t .tt>span{font-size:12px;color:var(--muted);line-height:1.4}
.bu-card-t .cmd{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.bu-card .fn-dessin.bu-d{margin:0}
.bu-card .bu-leg3{padding:8px 0 0}
.bu-card .bu-meth{margin:10px 0 0}

/* l'en-tete d'une vue et ses sous-parties */
.bu-ev2{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}
.bu-ev2 .t h2{margin:0;font-size:22px;font-weight:800;letter-spacing:-.015em;color:var(--ink)}
.bu-ev2 .t p{margin:4px 0 0;font-size:13px;color:var(--muted)}
.bu-ev2-r{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.bu-sp{display:inline-flex;gap:4px;padding:4px;border-radius:12px;background:color-mix(in srgb,var(--ink) 5%,transparent);border:1px solid var(--bu-carte-trait)}
.bu-sp button{display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border:0;border-radius:9px;background:transparent;font:inherit;font-size:13px;font-weight:700;color:var(--ink-2);cursor:pointer;white-space:nowrap}
.bu-sp button b{font-size:11px;font-weight:800;padding:1px 7px;border-radius:9px;background:color-mix(in srgb,var(--ink) 8%,transparent);color:var(--ink-2)}
.bu-sp button:hover{color:var(--ink)}
.bu-sp button.on{background:var(--bu-k-navy);color:#fff;box-shadow:0 6px 14px -8px var(--bu-k-navy)}
.bu-sp button.on b{background:rgba(255,255,255,.2);color:#fff}
:root[data-theme="dark"] .bu-sp button.on,:root[data-theme="dark"] .bu-sp button.on b{color:#0B1220}
.bu-ou2{display:flex;gap:8px}

/* les chiffres cles */
.bu-kpis2{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.bu-k2{display:flex;align-items:flex-start;gap:14px;padding:16px 16px 15px;border-radius:16px;border:1px solid var(--bu-carte-trait);background:var(--bu-carte);box-shadow:var(--bu-ombre);
  font:inherit;text-align:left;color:inherit;min-width:0;transition:transform var(--v2-t),box-shadow var(--v2-t),border-color var(--v2-t)}
button.bu-k2{cursor:pointer}
button.bu-k2:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--tc) 40%,var(--bu-carte-trait))}
.bu-k2 .ic{flex-shrink:0;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;color:var(--tc);background:color-mix(in srgb,var(--tc) 13%,transparent)}
.bu-k2 .tx{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.bu-k2 .k{font-size:12px;font-weight:700;color:var(--ink-2)}
.bu-k2 .v{font-size:23px;font-weight:800;letter-spacing:-.02em;color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums}
.bu-k2.vide .v{font-size:18px;color:var(--muted)}
.bu-k2 .bar{display:block;height:6px;border-radius:3px;background:color-mix(in srgb,var(--tc) 14%,transparent);overflow:hidden;margin:3px 0 1px}
.bu-k2 .bar i{display:block;height:100%;border-radius:3px;background:var(--tc)}
.bu-k2 .s{font-size:11.5px;color:var(--muted);line-height:1.35}
.bu-k2 .d{display:inline-flex;align-items:baseline;gap:6px;font-size:11.5px;color:var(--muted)}
.bu-k2 .d b{font-weight:800}
.bu-k2 .d.hausse b{color:var(--bu-k-vert)}.bu-k2 .d.baisse b{color:var(--bu-k-rouge)}

/* les grilles */
.bu-g2{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:20px}
.bu-g2.inv{grid-template-columns:minmax(0,1fr) minmax(0,1.65fr)}
.bu-g2.egal{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.bu-g3{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,1fr);gap:20px}
.bu-g2>.fn-pan,.bu-g3>.fn-pan{margin:0}

/* la trajectoire */
.bu-tr .fn-dessin.bu-tr-d{margin:0}
.bu-tr-ref{stroke-width:1.4;stroke-dasharray:6 5}
.bu-tr-ref.vote{stroke:var(--bu-k-navy)}.bu-tr-ref.ext{stroke:var(--bu-c-dec);opacity:.7}.bu-tr-ref.ouv{stroke:var(--bu-k-gris)}
.bu-tr-l{fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.bu-tr-l.dec{stroke:var(--bu-c-dec)}.bu-tr-l.pay{stroke:var(--bu-c-pay)}
.bu-tr-aire{pointer-events:none}
.bu-tr-col.dec{fill:var(--bu-c-dec)}.bu-tr-col.pay{fill:var(--bu-c-pay)}
.bu-tr-auj{stroke:var(--ink-2);stroke-width:1.2;stroke-dasharray:3 4}
.bu-tr-badge{fill:var(--bu-k-navy)}
.bu-tr-badge-t{font-size:10.5px;font-weight:800;fill:#fff}
:root[data-theme="dark"] .bu-tr-badge-t{fill:#0B1220}
.bu-tr-pt{stroke:var(--bu-carte);stroke-width:2}
.bu-tr-pt.vote{fill:var(--bu-k-navy)}.bu-tr-pt.ext{fill:var(--bu-c-dec);opacity:.7}.bu-tr-pt.ouv{fill:var(--bu-k-gris)}.bu-tr-pt.dec{fill:var(--bu-c-dec)}.bu-tr-pt.pay{fill:var(--bu-c-pay)}
.bu-tr-dv{font-size:13px;font-weight:800;fill:var(--ink);font-variant-numeric:tabular-nums}
.bu-tr-dv.fort{font-size:15px;fill:var(--bu-c-dec)}
.bu-tr-dk{font-size:11px;fill:var(--muted)}
.bu-tr-leg .l.dec i{background:var(--bu-c-dec)}.bu-tr-leg .l.pay i{background:var(--bu-c-pay)}
.bu-tr-leg .l.ref i{background:none;height:0;width:18px;border-top:1.6px dashed var(--bu-k-navy);border-radius:0}
.bu-leg3 .l.eteint{opacity:.55}
.bu-leg3 .l.temps i{width:0;height:14px;border-radius:0;background:none;border-left:1.5px dashed var(--ink-2)}
.bu-leg3 .l.nat i{background:var(--nc)}
.bu-tr-vide{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:220px;text-align:center;border-radius:12px;background:var(--v2-surface-2);color:var(--ink-2);font-size:13px;padding:20px}
.bu-tr-vide b{font-size:15px;color:var(--ink)}
.bu-bulle .l.dec span::before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;background:var(--bu-c-dec)}
.bu-bulle .l.pay span::before,.bu-bulle .l.eng span::before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;background:var(--bu-c-pay)}
.bu-bulle .l.eng span::before{background:var(--bu-k-bleu)}

/* la roue */
.bu-ro{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.bu-ro-g{position:relative;flex-shrink:0}
.bu-ro-g svg{display:block;overflow:visible}
.bu-ro-p{transition:transform 280ms cubic-bezier(.2,.8,.2,1),opacity 200ms;cursor:pointer;outline:none}
.bu-ro-a{fill:var(--nc);stroke:var(--bu-carte);stroke-width:1.2}
.bu-ro-p.on{transform:translate(var(--dx),var(--dy)) scale(1.035);transform-origin:center;transform-box:fill-box;filter:drop-shadow(0 8px 10px rgba(16,24,40,.22))}
.bu-ro.survol .bu-ro-p:not(.on){opacity:.42}
.bu-ro-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;text-align:center;padding:0 40px}
.bu-ro-c .v{font-size:22px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.bu-ro-c .k{font-size:11.5px;font-weight:700;color:var(--ink-2);line-height:1.25;margin-top:2px}
.bu-ro-c .p{font-size:11.5px;color:var(--muted)}
.bu-ro-l{display:flex;flex-direction:column;gap:2px;flex:1;min-width:200px}
.bu-ro-l .r{display:grid;grid-template-columns:12px minmax(0,1fr) auto 52px;align-items:center;gap:10px;padding:7px 8px;border:0;border-radius:8px;background:transparent;font:inherit;text-align:left;color:inherit;cursor:pointer}
.bu-ro-l .r:hover,.bu-ro-l .r.on{background:color-mix(in srgb,var(--nc,var(--ink)) 9%,transparent)}
.bu-ro-l i{width:10px;height:10px;border-radius:3px;background:var(--nc)}
.bu-ro-l .n{display:flex;flex-direction:column;min-width:0}
.bu-ro-l .n b{font-size:12.5px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bu-ro-l .n span{font-size:11px;color:var(--muted)}
.bu-ro-l .bu-rm{font-size:12.5px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.bu-ro-l .pc{font-size:11.5px;color:var(--muted);text-align:right}
.bu-ro-c2 .bu-ro{justify-content:center}

/* les anneaux de la chaine */
.bu-an2{display:flex;align-items:flex-start;justify-content:space-between;gap:4px}
.bu-an2 .it{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;min-width:0;flex:1;transition:transform var(--v2-t)}
.bu-an2 .it:hover{transform:translateY(-3px)}
.bu-an2-s{display:block}
.bu-an2-f{fill:none;stroke:var(--v2-surface-2);stroke-width:8}
.bu-an2-f.vide{stroke:var(--bu-k-gris);stroke-dasharray:3 4;stroke-width:2}
.bu-an2-a{fill:none;stroke:var(--sc);stroke-width:8;stroke-linecap:round;animation:bu-balayer 900ms ease-out both}
.bu-an2-p{font-size:15px;font-weight:800;fill:var(--ink)}
.bu-an2-p.vide{fill:var(--muted);font-size:18px}
.bu-an2 .k{font-size:12px;font-weight:800;color:var(--ink);margin-top:4px}
.bu-an2 b{font-size:12.5px;font-weight:700;color:var(--ink-2);white-space:nowrap}
.bu-an2 .it.vide b{color:var(--muted)}
.bu-an2 .s{font-size:10.5px;color:var(--muted)}
.bu-an2 .fl{align-self:center;margin-top:-34px;color:var(--muted);flex-shrink:0}
.bu-an2-n{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding-top:12px;border-top:1px solid var(--v2-trait);font-size:12.5px;color:var(--ink-2)}
.bu-an2-c .bu-an2{margin-top:6px}

/* les depenses par nature */
.bu-bn{display:flex;flex-direction:column;gap:4px}
.bu-bn .r{display:grid;grid-template-columns:minmax(110px,.9fr) minmax(0,1.3fr) auto 50px;align-items:center;gap:10px;padding:8px 6px;border:0;border-radius:8px;background:transparent;font:inherit;text-align:left;color:inherit;cursor:pointer}
.bu-bn .r:hover{background:var(--v2-surface-2)}
.bu-bn .k{font-size:12.5px;font-weight:600;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bu-bn .j{height:12px;border-radius:6px;background:var(--v2-surface-2);overflow:hidden}
.bu-bn .j i{display:block;height:100%;border-radius:6px;background:var(--nc)}
.bu-bn b{font-size:12.5px;font-weight:800;color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums}
.bu-bn .p{font-size:11.5px;color:var(--muted);text-align:right}

/* voter et executer, dans une carte */
.bu-va-c .fn-dessin.bu-va-d{margin:0}
.bu-va-c .bu-leg3{flex-wrap:wrap}

/* les alertes */
.bu-al2{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.bu-al2 .it{display:flex;flex-direction:column;gap:8px;padding:14px 16px;border-radius:12px;border:1px solid var(--bu-carte-trait);background:var(--v2-surface-2);border-left:4px solid var(--bu-k-gris)}
.bu-al2 .it.s-risque{border-left-color:var(--bu-k-rouge)}.bu-al2 .it.s-att{border-left-color:var(--bu-k-orange)}.bu-al2 .it.s-info{border-left-color:var(--bu-k-navy)}
.bu-al2 .h{display:flex;align-items:center;gap:10px}
.bu-al2 .h .ic{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;color:var(--tc);background:color-mix(in srgb,var(--tc) 14%,transparent);flex-shrink:0}
.bu-al2 .h b{font-size:13.5px;font-weight:800;color:var(--ink);flex:1}
.bu-al2 .h .nv{font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.bu-al2 .c{margin:0;font-size:12.5px;line-height:1.45;color:var(--ink-2)}
.bu-al2 .a{margin:0;font-size:12.5px;line-height:1.45;color:var(--ink)}
.bu-al2 .a span:first-child{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-right:8px}
.bu-al2 .fn-lien{align-self:flex-start;font-size:12.5px}
.bu-al2-c .bu-al2{margin-top:2px}

/* les listes a progression (services, bailleurs, investissements, documents) */
.bu-ls,.bu-bt,.bu-ip,.bu-dc{display:flex;flex-direction:column}
.bu-ls .r,.bu-bt .r,.bu-ip .r,.bu-dc .r{display:grid;align-items:center;gap:14px;min-height:56px;padding:8px 10px;border:0;border-top:1px solid var(--v2-trait);border-radius:0;background:transparent;font:inherit;text-align:left;color:inherit}
button.r{cursor:pointer}
.bu-ls .r:hover,.bu-bt .r:hover,.bu-ip .r:hover,.bu-dc .r:hover{background:var(--v2-surface-2)}
.bu-ls .r.tete,.bu-bt .r.tete,.bu-ip .r.tete{min-height:34px;border-top:0;font-size:10.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);cursor:default}
.bu-ls .r.tete:hover,.bu-bt .r.tete:hover,.bu-ip .r.tete:hover{background:transparent}
.bu-ls .r{grid-template-columns:minmax(240px,1.6fr) 130px 110px 110px minmax(180px,1.2fr)}
.bu-bt .r{grid-template-columns:minmax(200px,1.5fr) 130px 70px 130px minmax(150px,1fr) 120px}
.bu-ip .r{grid-template-columns:minmax(220px,1.6fr) 130px 130px minmax(150px,1fr) minmax(200px,1.3fr)}
.bu-dc .r{grid-template-columns:44px minmax(0,1fr) 170px 120px 130px;min-height:64px}
.bu-ls .n,.bu-bt .n,.bu-ip .n{text-align:right;font-size:13px;font-variant-numeric:tabular-nums;color:var(--ink-2);white-space:nowrap}
.bu-ls b.n,.bu-bt b.n,.bu-ip b.n{font-weight:800;color:var(--ink)}
.bu-ls .nm{display:flex;align-items:center;gap:10px;min-width:0}
.bu-ls .nm .x{display:flex;flex-direction:column;gap:2px;min-width:0}
.bu-ls .nm b,.bu-ip .nm b,.bu-dc .nm b{font-size:13.5px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bu-ls .nm .x span,.bu-ip .nm span,.bu-dc .nm span{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bu-ls .pli{width:0;height:0;border-left:5px solid var(--muted);border-top:4px solid transparent;border-bottom:4px solid transparent;transition:transform var(--v2-t);flex-shrink:0}
.bu-ls .r.ouvert .pli{transform:rotate(90deg)}
.bu-ls .r.sous{min-height:44px;background:color-mix(in srgb,var(--ink) 2%,transparent)}
.bu-ls .r.sous .nm{padding-left:22px}
.bu-ls .pt{width:9px;height:9px;border-radius:3px;background:var(--nc);flex-shrink:0}
.bu-ls .pr,.bu-bt .pr,.bu-ip .pr{display:flex;align-items:center;gap:10px}
.bu-ls .j,.bu-bt .j,.bu-ip .j{position:relative;flex:1;height:10px;border-radius:5px;background:var(--v2-surface-2);overflow:visible}
.bu-ls .j .e{position:absolute;left:0;top:0;bottom:0;border-radius:5px;background:color-mix(in srgb,var(--bu-k-bleu) 35%,transparent)}
.bu-ls .j .p{position:absolute;left:0;top:0;bottom:0;border-radius:5px;background:var(--bu-k-vert)}
.bu-ls .j .t{position:absolute;top:-4px;bottom:-4px;width:0;border-left:1.5px dashed var(--ink-2)}
.bu-ls .pr b,.bu-bt .pr b,.bu-ip .pr b{font-size:12.5px;font-weight:800;color:var(--ink);min-width:40px;text-align:right}
.bu-bt .j i{display:block;height:100%;border-radius:5px;background:var(--bu-k-indigo)}
.bu-bt .nm{display:flex;align-items:center;gap:10px;min-width:0}
.bu-bt .nm i{width:10px;height:10px;border-radius:50%;background:var(--nc);flex-shrink:0}
.bu-bt .nm b{font-size:13.5px;font-weight:700;color:var(--ink)}
.bu-ip .nm{display:flex;flex-direction:column;gap:2px;min-width:0}
.bu-ip .j i{display:block;height:100%;border-radius:5px;background:var(--bu-k-bleu)}
.bu-ip .j i.ph-clos{background:var(--bu-k-gris)}.bu-ip .j i.ph-arret{background:var(--bu-k-rouge)}.bu-ip .j i.ph-aConfirmer{background:var(--bu-k-orange)}
.bu-ip .ob{display:flex;flex-wrap:wrap;gap:5px;min-width:0}
.bu-ip .ob .muet{font-size:11.5px;color:var(--muted)}
.bu-chip2{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11.5px;font-weight:700;white-space:nowrap;background:color-mix(in srgb,var(--cc,var(--bu-k-gris)) 14%,transparent);color:var(--cc,var(--ink-2))}
.bu-chip2.gris{--cc:var(--bu-k-gris)}
.bu-chip2.ph-enCours{--cc:var(--bu-k-bleu)}.bu-chip2.ph-arret{--cc:var(--bu-k-rouge)}.bu-chip2.ph-aConfirmer{--cc:var(--bu-k-orange)}.bu-chip2.ph-clos,.bu-chip2.ph-annule{--cc:var(--bu-k-gris)}
.bu-chip2.d-loi{--cc:var(--bu-k-navy)}.bu-chip2.d-rapport{--cc:var(--bu-k-vert)}.bu-chip2.d-donnees{--cc:var(--bu-k-bleu)}.bu-chip2.d-dette{--cc:var(--bu-k-orange)}
.bu-dc .ic{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;color:var(--tc);background:color-mix(in srgb,var(--tc) 13%,transparent)}
.bu-dc .nm{display:flex;flex-direction:column;gap:3px;min-width:0}
.bu-dc .nm b{white-space:normal}
.bu-dc .nm span{white-space:normal}
.bu-dc .dt{font-size:12.5px;color:var(--ink-2);white-space:nowrap}
.bu-dc .v2-b{justify-self:end;text-decoration:none}

/* les natures d'une annee a l'autre */
.bu-ln-l{fill:none;stroke:var(--nc);stroke-width:2.6;stroke-linecap:round}
.bu-ln-p{fill:var(--nc);stroke:var(--bu-carte);stroke-width:2;cursor:help}
.bu-va-an-t.on{fill:var(--bu-k-navy)}

/* le cadran, dans une carte */
.bu-cd-c2 .bu-hero-m{border:0;padding:0;background:none}

@media (max-width:1600px){
  .bu-kpis2{gap:12px}
  .bu-k2{padding:14px 12px;gap:10px}
  .bu-k2 .ic{width:36px;height:36px}
  .bu-k2 .v{font-size:19px}
  .bu-g2,.bu-g2.inv,.bu-g3{grid-template-columns:minmax(0,1fr)}
  .bu-al2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bu-ls .r{grid-template-columns:minmax(200px,1.5fr) 110px 90px 90px minmax(140px,1fr)}
  .bu-ip .r{grid-template-columns:minmax(200px,1.5fr) 110px 120px minmax(120px,1fr)}
  .bu-ip .r>.ob{display:none}
  .bu-bt .r{grid-template-columns:minmax(160px,1.4fr) 110px 60px 110px minmax(110px,1fr) 70px}
}
@media (max-width:1350px){
  .bu-kpis2{grid-template-columns:repeat(3,minmax(0,1fr))}
}
.bu-va-v.petit{font-size:9.5px}
/* les natures, des memes couleurs partout (maquette de Bayss) */
:root{--bu-per:#6366F1;--bu-bs:#0EA5E9;--bu-tr:#F59E0B;--bu-inv:#10B981;--bu-ext:#3B82F6}
:root[data-theme="dark"]{--bu-per:#818CF8;--bu-bs:#38BDF8;--bu-tr:#FBBF24;--bu-inv:#34D399;--bu-ext:#60A5FA}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bu-per:#818CF8;--bu-bs:#38BDF8;--bu-tr:#FBBF24;--bu-inv:#34D399;--bu-ext:#60A5FA}}
.bu-ic-r1.k-inv,.bu-ic-r1.k-ext,.bu-ic-r2 .b.k-inv,.bu-ic-r2 .b.k-ext{color:#fff}
.bu-ic-r1.k-tr,.bu-ic-r2 .b.k-tr{color:#3B2600}
.bu-ro.pile{flex-direction:column;align-items:stretch}
.bu-ro.pile .bu-ro-g{align-self:center}
.bu-ro.pile .bu-ro-l{min-width:0}
/* la liste des recettes */
.bu-lr{display:flex;flex-direction:column}
.bu-lr .r{display:grid;grid-template-columns:minmax(220px,1.4fr) 130px 100px minmax(200px,1.4fr) 110px;align-items:center;gap:14px;min-height:56px;padding:8px 10px;border:0;border-top:1px solid var(--v2-trait);background:transparent;font:inherit;text-align:left;color:inherit}
.bu-lr .r:hover{background:var(--v2-surface-2)}
.bu-lr .r.tete{min-height:34px;border-top:0;font-size:10.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);cursor:default}
.bu-lr .r.tete:hover{background:transparent}
.bu-lr .nm{display:flex;flex-direction:column;gap:2px;min-width:0}
.bu-lr .nm b{font-size:13.5px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bu-lr .nm span{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bu-lr .n{text-align:right;font-size:13px;color:var(--ink-2);white-space:nowrap;font-variant-numeric:tabular-nums}
.bu-lr b.n{font-weight:800;color:var(--ink)}
.bu-lr .pr{display:flex;align-items:center;gap:10px}
.bu-lr .j{position:relative;flex:1;height:12px;border-radius:6px;background:var(--v2-surface-2)}
.bu-lr .j .prev{position:absolute;left:0;top:0;bottom:0;border-radius:6px;background:color-mix(in srgb,var(--bu-k-vert) 22%,transparent)}
.bu-lr .j .enc{position:absolute;left:0;top:0;bottom:0;border-radius:6px;background:var(--bu-k-vert)}
.bu-lr .j .ref{position:absolute;top:-4px;bottom:-4px;width:3px;margin-left:-1px;border-radius:2px;background:var(--ink)}
.bu-lr .pr b{font-size:12px;font-weight:800;color:var(--ink);min-width:58px;text-align:right}
.bu-lr .pr b.muet{color:var(--muted);font-weight:600}
.bu-leg3 .l.lprev i{background:color-mix(in srgb,var(--bu-k-vert) 22%,transparent)}.bu-leg3 .l.lenc i{background:var(--bu-k-vert)}
.bu-leg3 .l.lref i{width:3px;height:14px;border-radius:1px;background:var(--ink)}
.bu-tp2{margin-top:16px;padding:14px 16px;border-radius:12px;background:color-mix(in srgb,var(--bu-k-vert) 6%,var(--v2-surface-2));border:1px solid var(--bu-carte-trait)}
.bu-tp2 .h{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}
.bu-tp2 .h b{font-size:13.5px;color:var(--ink)}
.bu-tp2 .h span{font-size:11.5px;color:var(--muted)}
.bu-tp2 .b{display:grid;grid-template-columns:200px minmax(0,1fr) 130px;align-items:center;gap:14px;min-height:30px}
.bu-tp2 .b .k{font-size:12.5px;color:var(--ink-2)}
.bu-tp2 .b .j{height:10px;border-radius:5px;background:var(--v2-surface)}
.bu-tp2 .b .j i{display:block;height:100%;border-radius:5px}
.bu-tp2 .b .j i.loi{background:color-mix(in srgb,var(--bu-k-vert) 40%,transparent)}.bu-tp2 .b .j i.vol{background:var(--bu-k-vert)}
.bu-tp2 .b b{text-align:right;font-size:13px;font-weight:800;color:var(--ink);white-space:nowrap}
.bu-tp2 .e{display:flex;justify-content:space-between;gap:14px;margin-top:8px;padding-top:8px;border-top:1px solid var(--bu-carte-trait);font-size:11.5px;color:var(--muted)}
.bu-tp2 .e b{font-size:13px;font-weight:800}
.bu-tp2 .e b.baisse{color:var(--bu-k-orange)}.bu-tp2 .e b.hausse{color:var(--bu-k-vert)}
@media (max-width:1600px){.bu-lr .r{grid-template-columns:minmax(180px,1.3fr) 110px 80px minmax(140px,1fr) 100px}}
.bu-va-k.petit{font-size:9px}
.bu-ro-c2>.bu-ro{flex:1;align-content:center}
@media (max-width:1600px){
  .bu-g3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bu-g3>:first-child{grid-column:1 / -1}
}
@media (max-width:1350px){
  .bu-kpis2{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
  .bu-k2{padding:13px 12px}
  .bu-k2 .ic{display:none}
  .bu-k2 .v{font-size:17px}
}
/* LA CARTE DU SECTEUR (04/10/2026) : la mer, les iles teintees selon la
   lecture, les centrales en disques ; une couleur par famille, tenue
   dans la carte, la fiche et les listes */
:root{--bu-ca-terre:#E9EEF5;--bu-ca-merc:#F4F8FC;--bu-ca-th:#475569;--bu-ca-so:#EAB308;--bu-ca-hy:#0EA5E9}
:root[data-theme="dark"]{--bu-ca-terre:#1E293B;--bu-ca-merc:#0E1726;--bu-ca-th:#94A3B8;--bu-ca-so:#FACC15;--bu-ca-hy:#38BDF8}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bu-ca-terre:#1E293B;--bu-ca-merc:#0E1726;--bu-ca-th:#94A3B8;--bu-ca-so:#FACC15;--bu-ca-hy:#38BDF8}}
.f-thermique{--fc:var(--bu-ca-th)}.f-solaire{--fc:var(--bu-ca-so)}.f-hydro{--fc:var(--bu-ca-hy)}.f-autre{--fc:var(--bu-k-gris)}
.bu-ca-d{position:relative;min-height:540px}
.bu-ca-d svg{display:block}
.bu-ca-mer{fill:var(--bu-ca-merc)}
.bu-ca-gr{stroke:color-mix(in srgb,var(--bu-k-ciel) 22%,transparent);stroke-width:1;stroke-dasharray:2 5}
.bu-ca-grt{font-size:10px;fill:var(--muted);font-variant-numeric:tabular-nums}
.bu-ca-ech{fill:none;stroke:var(--ink-2);stroke-width:1.4}
.bu-ca-ile{cursor:pointer;outline:none;transition:transform .28s cubic-bezier(.2,.7,.3,1),filter .28s}
.bu-ca-ile .bord{fill:none;stroke:color-mix(in srgb,var(--bu-k-navy) 30%,transparent);stroke-width:2.4;stroke-linejoin:round;transition:stroke .2s,stroke-width .2s}
.bu-ca-ile .terre{fill:color-mix(in srgb,var(--bu-k-bleu) var(--t),var(--bu-ca-terre));transition:fill .45s}
.bu-ca-ile.nd .terre{fill:url(#bu-ca-hach)}
.bu-ca-hf{fill:var(--bu-ca-terre)}.bu-ca-hl{stroke:color-mix(in srgb,var(--ink) 16%,transparent);stroke-width:2}
.bu-ca-ile .pref{fill:none;stroke:rgba(255,255,255,.8);stroke-width:.8;stroke-linejoin:round;pointer-events:none}
:root[data-theme="dark"] .bu-ca-ile .pref{stroke:rgba(11,18,32,.65)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .bu-ca-ile .pref{stroke:rgba(11,18,32,.65)}}
.bu-ca-ile:hover,.bu-ca-ile:focus-visible{transform:translate(0,-4px);filter:drop-shadow(0 7px 9px rgba(15,23,42,.2))}
.bu-ca-ile.on .bord,.bu-ca-ile:focus-visible .bord{stroke:var(--bu-k-navy);stroke-width:3.4}
.bu-ca-chef{pointer-events:none}
.bu-ca-chef circle{fill:var(--v2-surface);stroke:var(--bu-k-navy);stroke-width:2.2}
.bu-ca-chef text{font-size:11px;font-weight:700;fill:var(--ink);paint-order:stroke;stroke:var(--bu-ca-terre);stroke-width:3px;stroke-linejoin:round}
.bu-ca-eti{pointer-events:none}
.bu-ca-eti circle{pointer-events:auto;cursor:pointer}
.bu-ca-eti text{paint-order:stroke;stroke:var(--bu-ca-merc);stroke-width:4px;stroke-linejoin:round}
.bu-ca-eti .nom{font-size:13px;font-weight:800;fill:var(--ink)}
.bu-ca-eti.on .nom{fill:var(--bu-k-bleu)}
.bu-ca-eti .val{font-size:18px;font-weight:800;fill:var(--bu-k-navy);font-variant-numeric:tabular-nums}
.bu-ca-eti .val.muet{font-size:13px;font-weight:700;fill:var(--muted)}
.bu-ca-eti .sous{font-size:11px;fill:var(--muted)}
.bu-ca-c{fill:var(--fc);stroke:var(--v2-surface);stroke-width:1.6;cursor:pointer;outline:none;transform-box:fill-box;transform-origin:center;animation:bu-ca-pop .5s cubic-bezier(.2,.8,.3,1.2) both;animation-delay:calc(var(--i,0) * 35ms);transition:opacity .3s,stroke .15s,stroke-width .15s}
.bu-ca-c.e-chantier,.bu-ca-c.e-projet{fill:color-mix(in srgb,var(--fc) 22%,transparent);stroke:var(--fc);stroke-width:1.9;stroke-dasharray:3 2.2}
.bu-ca-c.e-ralenti{fill:color-mix(in srgb,var(--fc) 22%,transparent);stroke:var(--bu-k-rouge);stroke-width:2.1;stroke-dasharray:3 2.2}
.bu-ca-c.faible{opacity:.26}
.bu-ca-c:hover,.bu-ca-c:focus-visible{stroke:var(--ink);stroke-width:2.4;stroke-dasharray:none}
@keyframes bu-ca-pop{from{transform:scale(0)}}
@media (prefers-reduced-motion:reduce){.bu-ca-c{animation:none}.bu-ca-ile{transition:none}}
.bu-ca-cn{font-size:10.5px;font-weight:650;fill:var(--ink-2);pointer-events:none;paint-order:stroke;stroke:var(--bu-ca-terre);stroke-width:3px;stroke-linejoin:round}
/* la legende */
.bu-leg3 .l.ca-teinte i{width:34px;background:linear-gradient(90deg,color-mix(in srgb,var(--bu-k-bleu) 16%,var(--bu-ca-terre)),color-mix(in srgb,var(--bu-k-bleu) 74%,var(--bu-ca-terre)))}
.bu-leg3 .l.ca-nd i{background:repeating-linear-gradient(45deg,var(--bu-ca-terre) 0 3px,color-mix(in srgb,var(--ink) 20%,var(--bu-ca-terre)) 3px 5px)}
.bu-leg3 .l.ca-chef i{width:10px;height:10px;border-radius:50%;background:var(--v2-surface);border:2.2px solid var(--bu-k-navy)}
.bu-leg3 .l.ca-f i{border-radius:50%;background:var(--fc)}
.bu-leg3 .l.ca-e i{border-radius:50%;background:transparent;border:1.8px dashed var(--bu-ca-th)}
.bu-leg3 .l.ca-e.e-ralenti i{border-color:var(--bu-k-rouge)}
.bu-leg3 .l.ca-taille i{width:20px;height:14px;border-radius:0;background:radial-gradient(circle at 4px 9px,var(--muted) 3px,transparent 3.6px),radial-gradient(circle at 13px 7px,var(--muted) 6px,transparent 6.6px)}
/* la fiche de l'ile, toujours les memes lignes */
.bu-ca-g{align-items:stretch}
.bu-ca-fc{min-height:640px}
.bu-ca-ft{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:10px}
.bu-ca-ft>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.bu-ca-ft .k{font-size:10.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.bu-ca-ft h3{margin:0;font-size:22px;font-weight:800;color:var(--ink);letter-spacing:-.01em}
.bu-ca-ft .s{font-size:12px;color:var(--muted)}
.bu-ca-fl{display:flex;flex-direction:column}
.bu-ca-st{margin-top:14px;padding:10px 0 4px;border-top:1px solid var(--bu-carte-trait);font-size:10.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.bu-ca-fl>.bu-ca-st:first-child{margin-top:0}
.bu-ca-fl .r{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:29px}
.bu-ca-fl .r .k{font-size:12.5px;color:var(--ink-2)}
.bu-ca-fl .r b{font-size:13px;font-weight:700;color:var(--ink);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.bu-ca-fl .r.fort b{font-size:16px;font-weight:800;color:var(--bu-k-navy)}
.bu-ca-fl .r b.muet{font-size:12px;font-weight:600;color:var(--muted)}
.bu-ca-pile{display:flex;height:10px;margin:6px 0 8px;border-radius:5px;overflow:hidden;background:var(--v2-surface-2)}
.bu-ca-pile i{display:block;height:100%;background:var(--fc);transition:width .45s}
.bu-ca-pile i+i{box-shadow:inset 2px 0 0 var(--v2-surface)}
.bu-ca-lp{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:4px}
.bu-ca-lp>span{display:grid;grid-template-columns:10px minmax(0,1fr);column-gap:7px;align-items:center;font-size:11.5px;color:var(--ink-2)}
.bu-ca-lp i{width:10px;height:10px;border-radius:50%;background:var(--fc)}
.bu-ca-lp b{grid-column:2;font-size:12.5px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
/* les trois iles cote a cote */
.bu-ca-cmp{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 32px}
.bu-ca-in{display:flex;flex-direction:column;gap:4px;min-width:0}
.bu-ca-in>.k{font-size:10.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.bu-ca-in .b{display:grid;grid-template-columns:112px minmax(0,1fr) 118px;align-items:center;gap:10px;min-height:27px;border-radius:7px;padding:0 6px;margin:0 -6px;transition:background .2s}
.bu-ca-in .b.on{background:color-mix(in srgb,var(--bu-k-bleu) 9%,transparent)}
.bu-ca-in .b .n{font-size:12.5px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bu-ca-in .b.on .n{color:var(--bu-k-bleu);font-weight:800}
.bu-ca-in .b .j{height:10px;border-radius:5px;background:var(--v2-surface-2);overflow:hidden}
.bu-ca-in .b .j i{display:block;height:100%;border-radius:5px;transition:width .45s}
.bu-ca-in .b>b{font-size:12.5px;font-weight:800;color:var(--ink);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.bu-ca-in .b>b.muet{font-weight:600;color:var(--muted)}
.bu-ca-in i.c-navy{background:var(--bu-k-navy)}.bu-ca-in i.c-bleu{background:var(--bu-k-bleu)}.bu-ca-in i.c-ciel{background:var(--bu-k-ciel)}
.bu-ca-in i.c-vert{background:var(--bu-k-vert)}.bu-ca-in i.c-orange{background:var(--bu-k-orange)}.bu-ca-in i.c-violet{background:var(--bu-k-violet)}
.bu-ca-dit{margin-top:18px;padding:12px 16px;border-radius:12px;background:color-mix(in srgb,var(--bu-k-navy) 5%,var(--v2-surface-2));border:1px solid var(--bu-carte-trait)}
.bu-ca-dit p{margin:3px 0;font-size:13px;line-height:1.5;color:var(--ink)}
.bu-ca-dit p.muet{font-size:12px;color:var(--muted)}
/* les centrales, ile par ile */
.bu-ca-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.bu-ca-col{border:1px solid var(--bu-carte-trait);border-radius:12px;padding:12px 14px;min-width:0;transition:border-color .2s,box-shadow .2s}
.bu-ca-col.on{border-color:var(--bu-k-bleu);box-shadow:0 0 0 2px color-mix(in srgb,var(--bu-k-bleu) 22%,transparent)}
.bu-ca-col .h{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding-bottom:8px}
.bu-ca-col .h b{font-size:14px;font-weight:800;color:var(--ink)}
.bu-ca-col .h span{font-size:13px;font-weight:800;color:var(--bu-k-navy);font-variant-numeric:tabular-nums}
.bu-ca-col .c{display:grid;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:48px;padding:6px 0;border-top:1px solid var(--bu-carte-trait)}
.bu-ca-pt{width:11px;height:11px;border-radius:50%;background:var(--fc)}
.bu-ca-pt.e-chantier,.bu-ca-pt.e-projet{background:transparent;border:2px dashed var(--fc);width:9px;height:9px}
.bu-ca-pt.e-ralenti{background:transparent;border:2px dashed var(--bu-k-rouge);width:9px;height:9px}
.bu-ca-col .nm{display:flex;flex-direction:column;gap:2px;min-width:0}
.bu-ca-col .nm b{font-size:13px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bu-ca-col .nm span{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bu-ca-col .dr{display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.bu-ca-col .dr b{font-size:13px;font-weight:800;color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums}
.bu-ca-col .dr .sp{font-size:10.5px;color:var(--muted);white-space:nowrap}
.bu-ca-col .vide{padding:14px 0;font-size:12.5px;color:var(--muted);border-top:1px solid var(--bu-carte-trait)}
.bu-chip2.ca-chantier,.bu-chip2.ca-projet{background:color-mix(in srgb,var(--bu-k-orange) 16%,transparent);color:color-mix(in srgb,var(--bu-k-orange) 70%,var(--ink))}
.bu-chip2.ca-ralenti{background:color-mix(in srgb,var(--bu-k-rouge) 14%,transparent);color:var(--bu-k-rouge)}
@media (max-width:1600px){.bu-ca-in .b{grid-template-columns:96px minmax(0,1fr) 104px}.bu-ca-cmp{gap:18px 24px}}
@media (max-width:1350px){.bu-ca-cmp{grid-template-columns:repeat(2,minmax(0,1fr))}}
.v2-bu .fn-onglets .bu-o-ct{display:none}
@media (max-width:1600px){
  .v2-bu .fn-onglets{gap:22px}
  .v2-bu .fn-onglets .bu-o-lg{display:none}
  .v2-bu .fn-onglets .bu-o-ct{display:inline}
  .bu-ca-fc{min-height:0}
  .bu-ca-fl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 32px}
  .bu-ca-fl .bu-ca-st{margin-top:0}
}
.bu-ca-d{min-height:600px}
@media (min-width:1601px){.bu-ca-fc{min-height:700px}}
/* LES RAPPORTS DU MINISTERE (migration 128) : un rapport par ligne */
.bu-rl{display:flex;flex-direction:column}
.bu-rl .r{display:grid;grid-template-columns:minmax(240px,1.6fr) minmax(180px,1fr) 70px 130px minmax(160px,1fr);align-items:center;gap:14px;min-height:56px;padding:8px 10px;border:0;border-top:1px solid var(--v2-trait);background:transparent;font:inherit;text-align:left;color:inherit;cursor:pointer}
.bu-rl .r:hover{background:var(--v2-surface-2)}
.bu-rl .r.tete{min-height:34px;border-top:0;font-size:10.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);cursor:default}
.bu-rl .r.tete:hover{background:transparent}
.bu-rl .nm{display:flex;flex-direction:column;gap:2px;min-width:0}
.bu-rl .nm b{font-size:13.5px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bu-rl .nm span{font-size:11.5px;color:var(--muted)}
.bu-rl .rf{font-size:12.5px;font-weight:700;color:var(--ink-2);font-variant-numeric:tabular-nums}
.bu-rl .n{font-size:12.5px;color:var(--ink-2);font-variant-numeric:tabular-nums}
.bu-rl .dt{font-size:12px;color:var(--muted)}
.bu-chip2.rp-brouillon{background:var(--v2-surface-2);color:var(--ink-2)}
.bu-chip2.rp-a_verifier,.bu-chip2.rp-valide{background:color-mix(in srgb,var(--bu-k-orange) 16%,transparent);color:color-mix(in srgb,var(--bu-k-orange) 70%,var(--ink))}
.bu-chip2.rp-approuve{background:color-mix(in srgb,var(--bu-k-bleu) 14%,transparent);color:var(--bu-k-bleu)}
.bu-chip2.rp-publie{background:color-mix(in srgb,var(--bu-k-vert) 16%,transparent);color:color-mix(in srgb,var(--bu-k-vert) 70%,var(--ink))}
.bu-chip2.rp-remplace{background:var(--v2-surface-2);color:var(--muted)}
.bu-ca-fh{min-width:0}
.bu-ca-sec{display:flex;flex-direction:column;min-width:0}
/* =====================================================================
   BUDGET, REVUE DE BAYSS DU 04/10/2026 AU SOIR
   ===================================================================== */
/* des couleurs franches, une par nature (plus trois bleus voisins) */
.n-per{--nc:#8B5CF6}.n-bs{--nc:#EC4899}.n-tr{--nc:#F59E0B}.n-inv{--nc:#10B981}.n-ext{--nc:#3B82F6}.n-prop{--nc:#10B981}
:root{--bu-per:#8B5CF6;--bu-bs:#EC4899;--bu-tr:#F59E0B;--bu-inv:#10B981;--bu-ext:#3B82F6}
:root[data-theme="dark"]{--bu-per:#A78BFA;--bu-bs:#F472B6;--bu-tr:#FBBF24;--bu-inv:#34D399;--bu-ext:#60A5FA}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bu-per:#A78BFA;--bu-bs:#F472B6;--bu-tr:#FBBF24;--bu-inv:#34D399;--bu-ext:#60A5FA}}
:root[data-theme="dark"] .n-per{--nc:#A78BFA}:root[data-theme="dark"] .n-bs{--nc:#F472B6}:root[data-theme="dark"] .n-tr{--nc:#FBBF24}
:root[data-theme="dark"] .n-inv,:root[data-theme="dark"] .n-prop{--nc:#34D399}:root[data-theme="dark"] .n-ext{--nc:#60A5FA}
/* le haut : le titre et la situation, puis une seule barre collante */
.v2-bu .bu-tete3{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;border-bottom:0;padding-bottom:12px}
.bu-situ3{display:flex;flex-direction:column;align-items:flex-end;gap:2px;margin-bottom:6px}
.bu-situ3 span{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.bu-situ3 b{font-size:15px;font-weight:800;color:var(--ink);white-space:nowrap}
.bu-situ3.adate b::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--bu-k-bleu);margin-right:8px;vertical-align:middle}
.bu-gestes{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;margin:0 0 6px auto}
@media (max-width:1100px){.v2-bu .bu-tete3{flex-wrap:wrap}.bu-gestes{order:3;width:100%;justify-content:flex-start;margin:4px 0 0}}
.fn-contexte.bu-nav3{flex-wrap:nowrap;align-items:center;gap:16px;padding:0 30px;min-height:54px}
.v2-bu .bu-nav3 .fn-onglets{gap:28px;align-self:stretch}
.v2-bu .bu-nav3 .fn-onglets a{display:inline-flex;align-items:center;padding:0;margin-bottom:-1px;font-size:13.5px}
.bu-nav3 .bu-an3{height:34px;width:230px;font-weight:700}
.bu-nav3 .fn-devise button{min-width:50px;text-align:center;padding:7px 12px}
@media (max-width:1600px){.v2-bu .bu-nav3 .fn-onglets{gap:22px}.bu-nav3 .bu-an3{width:200px}.fn-contexte.bu-nav3{padding:0 22px}}
/* les chiffres cles, petits, a droite du titre de la vue */
.bu-ch3{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}
.bu-ch3 .c{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:122px;padding:8px 14px 9px;border-radius:12px;border:1px solid var(--bu-carte-trait);
  background:var(--bu-carte);box-shadow:var(--bu-ombre);font:inherit;color:inherit;text-align:left}
button.bu-ch3 .c,.bu-ch3 button.c{cursor:pointer}
.bu-ch3 button.c:hover{border-color:var(--bu-k-navy)}
.bu-ch3 .k{font-size:11px;font-weight:600;color:var(--muted);white-space:nowrap}
.bu-ch3 .v{font-size:16.5px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:-.01em}
.bu-ch3 .s{font-size:11px;color:var(--muted);white-space:nowrap}
.bu-ch3 .s.hausse{color:var(--bu-k-vert)}.bu-ch3 .s.baisse{color:var(--bu-k-rouge)}
.bu-ch3 .c.est{border-style:dashed}
.bu-ch3 .c.rouge .v{color:var(--bu-k-rouge)}
.bu-ch3 .c.muet .v{color:var(--muted);font-size:14px}
.bu-sp-r{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:-6px}
/* la repartition : la roue en grand, le detail de chaque part a cote */
.bu-r3 .bu-ro{display:grid;grid-template-columns:auto minmax(0,1fr);gap:40px;align-items:center;padding:4px 8px 8px}
.bu-ro-l.riche{display:flex;flex-direction:column;gap:4px;min-width:0}
.bu-ro-l .rd{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:14px;align-items:start;padding:11px 14px;border-radius:12px;cursor:pointer;outline:none;transition:background .2s}
.bu-ro-l .rd:hover,.bu-ro-l .rd.on,.bu-ro-l .rd:focus-visible{background:color-mix(in srgb,var(--nc) 10%,transparent)}
.bu-ro-l .rd .bu-pt3{width:12px;height:12px;border-radius:4px;background:var(--nc);margin-top:4px}
.bu-ro-l .rd .tx{display:flex;flex-direction:column;gap:2px;min-width:0}
.bu-ro-l .rd .tx>b{font-size:14.5px;font-weight:800;color:var(--ink)}
.bu-ro-l .rd .so{font-size:11.5px;color:var(--muted);line-height:1.35}
.bu-ro-l .rd .li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;margin-top:2px;font-size:12px;color:var(--ink-2);max-width:460px}
.bu-ro-l .rd .li span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bu-ro-l .rd .li .bu-mt3{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.bu-ro-l .rd .lien{margin-top:4px;font-size:12px;font-weight:700;color:var(--bu-k-bleu)}
.bu-ro-l .rd .vl{display:flex;flex-direction:column;align-items:flex-end;gap:2px;padding-top:1px}
.bu-ro-l .rd .vl b{font-size:15.5px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.bu-ro-l .rd .vl .pc{font-size:12px;color:var(--muted)}
.bu-ro-l .rd .vl .d{font-size:11.5px;font-weight:700;white-space:nowrap}
.bu-ro-l .rd .vl .d.hausse{color:var(--bu-k-vert)}.bu-ro-l .rd .vl .d.baisse{color:var(--bu-k-rouge)}
.bu-r3 .bu-ro-c .v{font-size:28px}
.bu-r3 .bu-ro-c .k{font-size:12.5px}
@media (max-width:1350px){.bu-r3 .bu-ro{gap:24px}.bu-ro-l .rd{padding:9px 10px}}
/* la trajectoire budgetaire */
.bu-t3-d{position:relative}
.bu-t3-l{fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.bu-t3-l.lfi{stroke:var(--bu-k-navy);stroke-dasharray:6 4;stroke-width:2}
.bu-t3-l.lfr{stroke:var(--bu-k-navy)}
.bu-t3-l.exe{stroke:var(--bu-k-vert);stroke-width:2.8}
.bu-t3-l.est{stroke:var(--bu-k-vert);stroke-dasharray:5 4}
.bu-t3-l.plan{stroke:color-mix(in srgb,var(--bu-k-navy) 45%,transparent);stroke-dasharray:2 4;stroke-width:2}
.bu-t3-l.eng{stroke:var(--bu-k-bleu)}
.bu-t3-p{stroke-width:2;pointer-events:none}
.bu-t3-p.lfi{fill:var(--bu-carte);stroke:var(--bu-k-navy)}.bu-t3-p.lfr{fill:var(--bu-k-navy);stroke:var(--bu-carte)}
.bu-t3-p.exe{fill:var(--bu-k-vert);stroke:var(--bu-carte)}.bu-t3-p.est{fill:var(--bu-carte);stroke:var(--bu-k-vert)}
.bu-t3-p.plan{fill:var(--bu-carte);stroke:color-mix(in srgb,var(--bu-k-navy) 50%,transparent)}.bu-t3-p.eng{fill:var(--bu-k-bleu);stroke:var(--bu-carte)}
.bu-t3-band{fill:color-mix(in srgb,var(--bu-k-vert) 16%,transparent);stroke:color-mix(in srgb,var(--bu-k-vert) 55%,transparent);stroke-dasharray:3 3}
.bu-t3-est{fill:var(--bu-carte);stroke:var(--bu-k-vert);stroke-width:2.2}
.bu-t3-aire{fill:color-mix(in srgb,var(--bu-k-vert) 12%,transparent)}
.bu-t3-h{stroke-width:1.8}.bu-t3-h.lfi{stroke:var(--bu-k-navy);stroke-dasharray:6 4}.bu-t3-h.lfr{stroke:var(--bu-k-navy)}
.bu-t3-tx{font-size:11px;font-weight:800;fill:var(--bu-k-vert)}.bu-t3-tx.depasse{fill:var(--bu-k-rouge)}
.bu-t3-st{font-size:10px;font-weight:600;fill:var(--muted)}
.bu-t3-guide{stroke:var(--v2-trait-fort);stroke-width:1;stroke-dasharray:2 3}
.bu-t3-dv{font-size:13px;font-weight:800;fill:var(--ink);font-variant-numeric:tabular-nums}
.bu-t3-dv.lfi,.bu-t3-dv.lfr{fill:var(--bu-k-navy)}.bu-t3-dv.exe,.bu-t3-dv.est{fill:var(--bu-k-vert)}
.bu-t3-dk{font-size:10.5px;fill:var(--muted)}
.bu-t3-situ{stroke:var(--ink-2);stroke-width:1.2;stroke-dasharray:3 3}
.bu-t3-badge{fill:var(--bu-k-navy)}
.bu-t3-badget{font-size:10.5px;font-weight:800;fill:#fff}
:root[data-theme="dark"] .bu-t3-badget{fill:#0B1220}
.bu-leg3 .l.t3 i{width:20px;height:0;border-radius:0;background:none;border-top:2.4px solid var(--bu-k-navy)}
.bu-leg3 .l.t3.lfi i{border-top-style:dashed}
.bu-leg3 .l.t3.exe i{border-top-color:var(--bu-k-vert);border-top-width:2.8px}
.bu-leg3 .l.t3.est i{height:10px;border:1.6px dashed var(--bu-k-vert);border-radius:3px;background:color-mix(in srgb,var(--bu-k-vert) 14%,transparent)}
.bu-leg3 .l.t3.plan i{border-top:2px dotted color-mix(in srgb,var(--bu-k-navy) 55%,transparent)}
.bu-leg3 .l.t3.eng i{border-top-color:var(--bu-k-bleu)}
/* l'execution : budget et realise, nature par nature */
.bu-x3{display:flex;flex-direction:column}
.bu-x3 .r{display:grid;grid-template-columns:minmax(190px,1.1fr) minmax(220px,2fr) 110px 110px 80px 170px;align-items:center;gap:14px;min-height:54px;padding:6px 10px;border-top:1px solid var(--v2-trait)}
.bu-x3 .r.tete{min-height:34px;border-top:0;font-size:10.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.bu-x3 .nm{display:flex;align-items:center;gap:10px;min-width:0}
.bu-x3 .nm b{font-size:13.5px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bu-x3 .bu-pt3{width:11px;height:11px;border-radius:4px;background:var(--nc);flex-shrink:0}
.bu-x3 .j{position:relative;height:14px;border-radius:7px;background:var(--v2-surface-2)}
.bu-x3 .j i{position:absolute;left:0;top:0;bottom:0;border-radius:7px}
.bu-x3 .j i.cr{background:color-mix(in srgb,var(--bu-k-navy) 18%,transparent)}
.bu-x3 .j.ext i.cr{background:color-mix(in srgb,var(--bu-ext) 26%,transparent)}
.bu-x3 .j i.re{top:3px;bottom:3px;border-radius:4px;background:var(--bu-k-vert)}
.bu-x3 .j i.re.estime{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--bu-k-vert) 75%,transparent) 0 5px,color-mix(in srgb,var(--bu-k-vert) 30%,transparent) 5px 9px)}
.bu-x3 .j i.re.depasse{background:var(--bu-k-rouge)}
.bu-x3 .n{text-align:right;font-size:13px;color:var(--ink-2);white-space:nowrap;font-variant-numeric:tabular-nums}
.bu-x3 b.n{font-weight:800;color:var(--ink)}
.bu-x3 .n.depasse{color:var(--bu-k-rouge);font-weight:800}
.bu-chip2.x3-saisi{background:color-mix(in srgb,var(--bu-k-bleu) 14%,transparent);color:var(--bu-k-bleu)}
.bu-chip2.x3-publie{background:color-mix(in srgb,var(--bu-k-vert) 16%,transparent);color:color-mix(in srgb,var(--bu-k-vert) 70%,var(--ink))}
.bu-chip2.x3-estime{background:transparent;border:1px dashed color-mix(in srgb,var(--bu-k-vert) 60%,transparent);color:color-mix(in srgb,var(--bu-k-vert) 70%,var(--ink))}
.bu-chip2.x3-nonPublie,.bu-chip2.x3-aucun{background:var(--v2-surface-2);color:var(--muted)}
.bu-chip2.lien{border:0;cursor:pointer;font:inherit;font-size:11.5px;font-weight:700;background:color-mix(in srgb,var(--bu-k-bleu) 12%,transparent);color:var(--bu-k-bleu)}
.bu-leg3 .l.x3.cr i{background:color-mix(in srgb,var(--bu-k-navy) 18%,transparent)}
.bu-leg3 .l.x3.re i{background:var(--bu-k-vert)}
.bu-leg3 .l.x3.est i{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--bu-k-vert) 75%,transparent) 0 4px,color-mix(in srgb,var(--bu-k-vert) 30%,transparent) 4px 7px)}
@media (max-width:1600px){.bu-x3 .r{grid-template-columns:minmax(205px,1.15fr) minmax(130px,1.3fr) 92px 92px 58px 150px;gap:10px}}
@media (min-width:1601px){.bu-r3 .bu-ro-l.riche{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 20px;align-content:center}}
.bu-t3-tx{paint-order:stroke;stroke:var(--bu-carte);stroke-width:3px;stroke-linejoin:round}
.bu-x3-hors{font-size:12px;color:var(--muted);font-style:italic}
.bu-ls.simple .r{grid-template-columns:minmax(260px,2fr) 140px minmax(220px,1.4fr)}
.bu-ls.simple .pr .j i.e{background:var(--bu-k-navy)}
.bu-ls .bu-pt3{width:10px;height:10px;border-radius:3px;background:var(--nc);flex-shrink:0}
.bu-ong3{flex-shrink:0}
/* =====================================================================
   BUDGET, REVUE DU 04/10/2026 VERS 18 H
   ===================================================================== */
/* les chiffres cles : un bandeau sobre, des cases de largeur fixe */
.bu-ch3{display:flex;flex-wrap:nowrap;gap:0;justify-content:flex-start;border:1px solid var(--bu-carte-trait);border-radius:14px;background:var(--bu-carte);box-shadow:var(--bu-ombre);overflow:hidden}
.bu-ch3 .c{width:148px;min-width:148px;padding:9px 14px 10px;border:0;border-radius:0;box-shadow:none;background:transparent}
.bu-ch3 .c+.c{border-left:1px solid var(--bu-carte-trait)}
.bu-ch3 .k{font-size:10.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.bu-ch3 .v{font-size:14.5px}
.bu-ch3 .s{font-size:10.5px;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.bu-ch3 .c.est{border-style:solid}
.bu-ch3 .c.muet .v{font-size:13px}
.bu-ch3 button.c:hover{background:var(--v2-surface-2)}
@media (max-width:1600px){.bu-ch3 .c{width:132px;min-width:132px;padding:8px 12px 9px}}
/* la repartition : une hauteur fixe, rien ne bouge en changeant de lecture ou d'annee */
.bu-r3 .bu-ro{height:400px;align-items:center}
.bu-r3 .bu-ro-l.riche{align-self:center;align-content:start;height:376px}
.bu-ro-l .rd{height:118px;overflow:hidden;box-sizing:border-box}
.bu-ro-l .rd .so{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:1600px){.bu-r3 .bu-ro{height:560px}.bu-r3 .bu-ro-l.riche{height:540px}.bu-ro-l .rd{height:104px}}
/* la trajectoire par annee : l'aire du budget vote */
.bu-t3-g0{stop-color:var(--bu-k-navy);stop-opacity:.22}.bu-t3-g1{stop-color:var(--bu-k-navy);stop-opacity:.02}
.bu-t3-aireV{fill:url(#bu-t3-grad)}
.bu-t3-l.vote{stroke:var(--bu-k-navy);stroke-width:2.6}
.bu-leg3 .l.t3.vote i{border-top-width:2.6px}
.bu-leg3 .l.t3.rond i{width:9px;height:9px;border:2px solid var(--bu-k-navy);border-radius:50%;background:var(--bu-carte)}
/* l'execution : la barre dans la couleur de la nature, le credit en entier */
.bu-x3 .j{background:color-mix(in srgb,var(--nc) 16%,var(--v2-surface-2))}
.bu-x3 .j i.re{top:0;bottom:0;border-radius:7px;background:var(--nc)}
.bu-x3 .j i.re.depasse{background:var(--bu-k-rouge)}
/* le flux Etat et secteur : une couleur par flux */
.fx-prod{--bu-c:#0EA5E9}.fx-carb{--bu-c:#14B8A6}.fx-elec{--bu-c:#6366F1}
.fx-inv{--bu-c:var(--bu-inv)}.fx-tr{--bu-c:var(--bu-tr)}.fx-adm{--bu-c:var(--bu-per)}
.bu-ruban.bu-rx{fill-opacity:.34}
.bu-ruban.bu-rx:hover,.bu-ruban.bu-rx:focus-visible{fill-opacity:.55}
.bu-ruban.bu-rx.impl{fill-opacity:.1}
/* la bulle : des chiffres en police du texte, une valeur longue revient a la ligne */
.bu-bulle{max-width:360px}
.bu-bulle .l b{font-family:inherit;font-variant-numeric:tabular-nums;white-space:normal;text-align:right}
/* les textes sources */
.bu-dc .r{grid-template-columns:minmax(0,1fr) 190px 130px 150px}
/* la carte, lecture du budget */
.bu-ca-fl .r.pj{min-height:26px}
.bu-ca-fl .r.pj .k{font-size:12px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bu-ca-fl .r.pj b{font-size:12.5px;font-weight:700}
.bu-ca-pt.n-prop,.bu-ca-pt.n-ext{background:var(--nc);border:0;width:10px;height:10px}
.bu-ca-col .c.bu-ca-lg{min-height:52px}
.bu-ca-nat{margin-top:14px;padding:12px 14px;border:1px solid var(--bu-carte-trait);border-radius:12px;display:flex;flex-direction:column;gap:2px}
.bu-ca-nat>.k{font-size:10.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.bu-ca-nat .c{display:grid;grid-template-columns:minmax(0,1fr) 220px 130px;gap:14px;align-items:center;min-height:30px;border-top:1px solid var(--bu-carte-trait);font-size:12.5px;color:var(--ink)}
.bu-ca-nat .c .b2{color:var(--muted)}
.bu-ca-nat .c b{text-align:right;font-variant-numeric:tabular-nums}
.bu-ca-nat .s{font-size:12px;color:var(--muted)}
.bu-ch3 .c{width:156px;min-width:156px}
@media (max-width:1600px){.bu-ch3 .c{width:138px;min-width:138px}}

/* revue du 04/10, 19 h : l'execution calculee porte des valeurs, sans le mot
   « estime » ; le tableau garde les memes colonnes d'un exercice a l'autre ;
   les gestes du registre tiennent sur une ligne */
.bu-x3{position:relative}
.bu-chip2.x3-calcule{background:var(--v2-surface-2);color:var(--ink-2)}
.bu-reg td.actes,.bu-livre td.actes{white-space:nowrap;line-height:1.4}
.bu-reg td.actes .fn-lien,.bu-livre td.actes .fn-lien{font-size:11.5px}
.bu-reg td.actes .fn-lien+.fn-lien,.bu-livre td.actes .fn-lien+.fn-lien{margin-left:9px}
.bu-reg th:nth-child(7){width:200px}
.bu-livre th:nth-child(8){width:200px}

/* les textes publies du budget de l'Etat, au registre (129) : une table par
   famille, aux memes colonnes */
.bu-tx{min-width:0}
.bu-tx th:nth-child(1){width:90px}.bu-tx th:nth-child(2){width:120px}.bu-tx th:nth-child(4){width:130px}.bu-tx th:nth-child(5){width:150px}
.bu-tx th:nth-child(6){width:22%}.bu-tx th:nth-child(7){width:110px}.bu-tx th:nth-child(8){width:200px}
.bu-tx td:nth-child(3) .nom{white-space:normal;overflow:visible;text-overflow:clip}
@media (max-width:1600px){.bu-tx th:nth-child(1){width:84px}.bu-tx th:nth-child(2){width:100px}.bu-tx th:nth-child(4){width:104px}.bu-tx th:nth-child(5){width:118px}
  .bu-tx th:nth-child(6){width:14%}.bu-tx th:nth-child(7){width:96px}.bu-tx th:nth-child(8){width:172px}}
.bu-tx td:nth-child(6){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bu-tx td.actes{white-space:nowrap;line-height:1.4}
.bu-tx td.actes .fn-lien{font-size:11.5px}
.bu-tx td.actes .fn-lien+.fn-lien{margin-left:9px}
.bu-tx-s{margin:-4px 0 10px;padding:0 18px;font-size:12.5px;color:var(--muted)}
.bu-er.q4{grid-template-columns:repeat(4,minmax(0,1fr))}
.bu-meth .bu-lien-tx{display:inline-block;margin-top:4px;font-size:12px}
.bu-meth span+.bu-lien-tx{margin-left:10px;margin-top:0}

/* ce que le budget de l'Etat dit d'un financement (migration 130), sur sa fiche */
.fn-ins-cmd{display:flex;gap:8px}
.fn-ins-note{margin:-4px 0 10px;padding:0 18px;font-size:12.5px;color:var(--muted)}
.fn-fp-ins td.fn-ins-src{max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fn-fp-ins td.actes{white-space:nowrap}

/* =====================================================================
   LES LARGEURS MOYENNES (05/10/2026)

   Bayss : « quand le navigateur n'est plus en plein écran, tout
   s'écrase ; un site pro ne devrait pas être comme ça ». Une fenêtre
   réduite ou un écran partagé (de 820 à 1240 px) se RÉORGANISE au lieu
   de rogner :
     - la carte du territoire garde la place, la synthèse passe dessous ;
     - les colonnes passent à la ligne au lieu de défiler ou de couper ;
     - les bandeaux de chiffres se replient en grille ;
     - les onglets restent sur une ligne et défilent ;
     - les grands tableaux défilent dans leur cadre, le nom reste visible.
   Mesuré sur la vraie application à 860 et 1024 px.
   ===================================================================== */

/* LE TERRITOIRE : l'explorateur, plus étroit, à gauche ; la carte au
   centre ; la synthèse de la zone sous la carte, et non plus à côté. */
@media (max-width:1240px){
  .v2-terr-grille{grid-template-columns:176px minmax(0,1fr) !important;grid-template-rows:minmax(0,1fr) auto}
  .v2-terr-grille.sans-panneau{grid-template-rows:minmax(0,1fr)}
  .v2-terr-grille>:nth-child(3){grid-column:1 / -1;max-height:38vh;overflow:auto;
    border-left:0 !important;padding-left:0 !important;border-top:1px solid var(--v2-trait);margin-top:10px;padding-top:12px}
}
@media (max-width:820px){
  .v2-terr-grille{grid-template-columns:1fr !important;grid-template-rows:auto minmax(52vh,1fr) auto}
  .v2-terr-grille.sans-panneau{grid-template-rows:auto minmax(0,1fr)}
  .v2-terr-grille>:first-child{max-height:26vh;overflow:auto;border-right:0 !important}
  .v2-terr-grille>:nth-child(2){padding:10px 0 0 !important}
}

/* LES EN-TETES DES PAGES METIER (compagnies, renouvelables) : les onglets
   sur une ligne, qui defile ; la pastille « à confirmer » ne se tasse pas. */
@media (max-width:1240px){
  .v2-ws-tete .menu{flex-wrap:wrap;align-items:flex-end;row-gap:6px}
  .v2-ws-tete .menu .v2-ope-onglets{flex:1 1 auto;min-width:0;max-width:100%;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}
  .v2-ws-tete .menu .v2-ope-onglets a{flex:0 0 auto;white-space:nowrap}
  .v2-ws-tete .maj{flex:0 0 auto;white-space:nowrap}
}

/* LA RANGEE DES ILES DES PAGES METIER REMPLIT SA LIGNE (05/10/2026,
   Bayss : « l'espace vide en haut à droite »). Depuis le 29/09, la vue
   nationale (200 px) et la carte (430 px) restaient calées à gauche d'une
   rangée de 1 300 px. La vue nationale garde une largeur raisonnable, la
   carte prend le reste et son dessin se centre. */
@media (min-width:981px){
  .v2-pp .hy-archipel>.hy-pays{flex:1 1 220px;max-width:340px}
  .v2-pp .hy-carte-hote{flex:3 1 430px}
  .v2-pp .hy-carte{max-height:220px}
}

/* LA CARTE DES ILES DES PAGES METIER : à côté de la vue nationale tant
   qu'il y a la place, au lieu d'une demi-ligne vide. */
@media (max-width:980px){
  .v2-pp .hy-pays{flex:1 1 240px}
  .v2-pp .hy-carte-hote{flex:1 1 380px;max-width:520px}
}

/* LA CHAINE DE L'ENERGIE : les étapes passent à la ligne (trois, puis
   deux par ligne) ; le dessin se réduit au lieu d'imposer 980 px. */
@media (max-width:1240px){
  .v2-chn .chn-voy .corps{min-width:0}
  .v2-chn .etapes{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:18px}
  .v2-chn .etapes .et:nth-child(3n+1){border-left:0;padding-left:0}
  .v2-chn .etapes .kk{white-space:normal}
}
@media (max-width:760px){
  .v2-chn .etapes{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v2-chn .etapes .et:nth-child(3n+1){border-left:1px solid var(--c-line);padding-left:18px}
  .v2-chn .etapes .et:nth-child(2n+1){border-left:0;padding-left:0}
}

/* LE BUDGET : la barre des onglets passe à la ligne au lieu de couper la
   devise ; les chiffres clés se replient en grille ; la répartition met
   la roue au-dessus de son détail, qui garde alors tout son texte. */
@media (max-width:1240px){
  .fn-contexte.bu-nav3{flex-wrap:wrap;row-gap:8px;padding-top:8px;padding-bottom:8px}
  .v2-bu .bu-nav3 .fn-onglets{flex:1 1 auto;min-width:0;max-width:100%;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}
  .bu-ch3{flex-wrap:wrap;gap:1px;background:var(--bu-carte-trait);width:100%}
  .bu-ch3 .c{flex:1 1 30%;width:auto;min-width:0;background:var(--bu-carte)}
  .bu-ch3 .c+.c{border-left:0}
  .bu-ev2>.bu-ch3{flex:1 1 100%}
}
@media (max-width:1100px){
  .bu-r3 .bu-ro{grid-template-columns:1fr;height:auto;justify-items:center;gap:18px}
  .bu-r3 .bu-ro-l.riche{height:auto;width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:6px 16px}
  .bu-ro-l .rd{height:auto;overflow:visible}
  .bu-ro-l .rd .so,.bu-ro-l .rd .li span:first-child{white-space:normal}
}

/* LE RELEVE DES FINANCEMENTS : les titres de colonne passent à la ligne
   plutôt que d'être coupés quand on compare deux dates. */
@media (max-width:1240px){
  .fn-lp th{white-space:normal;overflow:visible;line-height:1.25}
  .fn-lp.cmp col.c-k{width:30%}.fn-lp.cmp col.c-v{width:16%}.fn-lp.cmp col.c-p{width:9%}.fn-lp.cmp col.c-v1{width:15%}.fn-lp.cmp col.c-e{width:12%}
  .fn-lp td.s{white-space:normal}
}

/* LES COURBES DES FINANCEMENTS se réduisent avec leur cadre au lieu de
   déborder ; les noms des centrales de l'accueil passent à la ligne. */
@media (max-width:1240px){
  .fn-dessin{max-width:100%;min-width:0}
  .fn-dessin>svg{max-width:100%;height:auto}
  .v2-systeme .centrales .c .n{white-space:normal}
}

/* LES GRANDS TABLEAUX (bâtiments, optimisation) : ils défilent dans leur
   cadre, et la première colonne, le nom, reste visible. */
@media (max-width:1240px){
  .v2-carte>.v2-tbl th:first-child,.v2-carte>.v2-tbl td:first-child,
  .op-tbl-hote .op-tbl th:first-child,.op-tbl-hote .op-tbl td:first-child{position:sticky;left:0;z-index:2;background:var(--v2-surface)}
  .v2-carte>.v2-tbl th:first-child,.op-tbl-hote .op-tbl th:first-child{z-index:3}
}
/* Les tableaux des financements : sous 1100 px, ils gardent leurs montants
   entiers et défilent dans leur cadre, plutôt que de couper les chiffres. */
@media (max-width:1100px){
  .fn-reg.fn-prog,.fn-reg.fn-objets,.fn-reg.fn-ann{min-width:860px}
  .fn-tbl-hote .fn-reg th:first-child,.fn-tbl-hote .fn-reg td:first-child{position:sticky;left:0;z-index:2;background:var(--v2-surface)}
}

/* Les chiffres clés du budget : deux par ligne sous 760 px. Placé après
   la règle des largeurs moyennes, qui sinon l'emporte. */
@media (max-width:760px){.bu-ch3 .c{flex-basis:45%}}

/* ============================================================
   LE TELEPHONE (05/10/2026)
   Sous 640 px, rien ne se chevauche. La carte de l'accueil devient une
   bande en haut et le texte passe dessous ; le fil se réduit au lieu de
   passer sous la recherche ; les libellés du menu se lisent sur deux
   lignes au lieu d'être coupés ; les tableaux défilent dans leur cadre.
   ============================================================ */
@media (max-width:640px){
  /* l'accueil : la carte en bande, le texte dessous, les étapes en dernier */
  .v2-acc-scene{height:auto;display:flex;flex-direction:column;padding-top:290px}
  .v2-acc-scene canvas,.v2-acc-fond,.v2-acc-voile,.v2-acc-etiquettes{bottom:auto;height:290px}
  .v2-acc-voile{background:linear-gradient(0deg,#04070C 0,rgba(4,7,12,0) 30%),linear-gradient(180deg,rgba(4,7,12,.35) 0,rgba(4,7,12,0) 22%)}
  html:not([data-theme="dark"]) .v2-acc-voile{background:linear-gradient(0deg,#DCE8F3 0,rgba(220,232,243,0) 30%),linear-gradient(180deg,rgba(236,243,249,.4) 0,rgba(236,243,249,0) 22%)}
  .v2-acc-panneau,.v2-acc-panneau.pays{position:relative;left:auto;top:auto;bottom:auto;width:auto;
    padding:2px 16px 20px;justify-content:flex-start}
  .v2-acc-pays{height:auto}
  .v2-acc-num{position:static;margin-bottom:4px}
  /* LE SALUT REVIENT SUR TELEPHONE (12/10/2026, Bayss : « le bonjour
     n apparait plus »). Il quittait la bande de la carte, ou il n avait
     pas sa place : il ouvre maintenant le texte, sous la bande, et il
     reste la, quelle que soit l etape. */
  .v2-acc-salut{display:block;position:relative;right:auto;top:auto;order:-1;opacity:1;
    text-align:left;padding:12px 16px 6px}
  .v2-acc-salut span{font-size:11px}
  .v2-acc-salut b{font-size:20px;margin-top:1px}
  .v2-acc-note{right:12px;top:12px;max-width:62%;padding:4px 8px;border-radius:6px;background:rgba(4,7,12,.55);color:rgba(242,245,249,.8)}
  html:not([data-theme="dark"]) .v2-acc-note{background:rgba(236,243,249,.82);color:rgba(11,23,41,.7)}
  .v2-acc-note:empty{display:none}
  .v2-acc-barre-l>div{min-width:0}
  .v2-acc-barre-l b{white-space:nowrap}
  .v2-acc-etapes{position:relative;left:auto;bottom:auto;flex-wrap:nowrap;overflow-x:auto;
    padding:0 16px 18px;scroll-padding-inline:16px;scrollbar-width:none;scroll-snap-type:x proximity}
  .v2-acc-etapes::-webkit-scrollbar{display:none}
  .v2-acc-etapes button{flex-shrink:0;scroll-snap-align:start}
  .v2-acc-titre{font-size:30px}
  .v2-acc-grand{font-size:46px}
  .v2-acc-grand small{font-size:17px;margin-left:6px}
  .v2-acc-moyen{font-size:24px}
  .v2-acc-roue,.v2-acc-pays .v2-acc-roue{gap:18px;margin-top:18px}
  .v2-acc-roue-c,.v2-acc-roue-c .v2-acc-anneau{width:140px;height:140px}
  .v2-acc-roue-t b{font-size:30px}
  .v2-acc-roue-t small{font-size:12px}
  .v2-acc-roue-t span{font-size:10px}
  .v2-acc-roue-l{gap:10px;min-width:0}
  .v2-acc-roue-l b{font-size:19px}
  .v2-acc-pays .v2-acc-barre-b{margin-top:22px}
  .v2-acc-barre-l{gap:10px 18px}
  .v2-acc-pouls,.v2-acc-deux,.v2-acc-trio{gap:14px}
  .v2-acc-somme{flex-wrap:wrap;gap:14px}
  .v2-acc-cascade .l{grid-template-columns:minmax(70px,96px) 1fr auto;gap:8px;font-size:12.5px}
  /* le parc par usage : l'anneau se réduit pour que les usages se lisent en entier */
  .v2-acc-parc{gap:14px!important}
  .v2-acc-parc>svg{width:92px;height:92px}
  /* sur la bande, le nom des îles seul : leurs chiffres sont dans le texte dessous */
  .v2-acc-etiq.nu b{font-size:13.5px}
  .v2-acc-etiq.nu span{display:none}

  /* le fil : le pays et l'écran, sans le mot « Pays » ; il se coupe
     plutôt que de passer sous le bouton de recherche */
  .v2-bandeau{gap:10px;padding-left:10px;padding-right:12px}
  .v2-bandeau > .v2-marque{padding:6px 4px}
  .v2-bandeau > .v2-marque img{height:22px}
  .v2-bandeau > .v2-sep,.v2-bandeau > .v2-grandir{display:none}
  .v2-fil{flex:1 1 auto;gap:4px;font-size:14px;overflow:hidden}
  .v2-fil-lab,.v2-fil-lab+.v2-fil-sep{display:none}
  .v2-fil b{min-width:0;overflow:hidden;text-overflow:ellipsis}
  .v2-fil a{padding:4px 4px}
  .v2-loupe{flex-shrink:0;margin-left:auto;min-width:38px;padding:0 9px}
  /* l'etat des saisies passe avant la recherche, sans la decaler */
  .v2-synchro{margin-left:auto;margin-right:0;padding:0 9px;font-size:12px;gap:6px}
  .v2-synchro[data-etat] ~ .v2-loupe{margin-left:0}

  /* le menu du bas : deux lignes de libellé plutôt qu'un mot tronqué */
  .v2-nav{min-width:70px}
  .v2-nav span.t{max-width:76px;white-space:normal;text-overflow:clip;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.15;min-height:2.3em}

  /* le relevé des financements : les montants entiers, le tableau défile */
  .fn-lp-pan{overflow-x:auto}
  .fn-lp{min-width:560px}
  .fn-lp.cmp{min-width:680px}
  .fn-lp th:first-child,.fn-lp td:first-child{position:sticky;left:0;z-index:1;background:var(--v2-surface)}
  .fn-pan-t{flex-wrap:wrap;row-gap:8px}
  .fn-lp-pan select{max-width:100%}

  /* les comparatifs des compagnies : le nom du produit passe à la ligne */
  .v2-pp .hy-duo .n span{white-space:normal;line-height:1.2}

  /* la chaîne de l'énergie : une étape par ligne, chacune lisible en entier */
  .v2-chn .chn-voy>.tete{padding:16px 16px 6px}
  .v2-chn .etapes{grid-template-columns:1fr;padding:12px 16px 0}
  .v2-chn .etapes .et,.v2-chn .etapes .et+.et,.v2-chn .etapes .et:nth-child(2n+1),.v2-chn .etapes .et:nth-child(3n+1){border-left:0;padding-left:0;padding-right:0}
  .v2-chn .etapes .et+.et{border-top:1px solid var(--c-line);padding-top:14px}
  .v2-chn .etapes .ph{min-height:0}
}

/* =====================================================================
   LE TELEPHONE, LE CADRE (05/10/2026, seconde passe)

   Retour de Bayss sur son iPhone, quinze captures : « c'est vraiment pas
   opérationnel ». La premiere passe avait empeche les debordements ; elle
   gardait l'ecran d'ordinateur, resserre. Ce qui change ici, et RIEN de
   tout cela ne s'applique au-dessus de 640 px :

     - le DOCUMENT defile, plus un cadre interne. Les barres du navigateur
       se replient au defilement (sur iPhone, c'est le seul moyen), le
       geste « toucher l'heure pour remonter » marche, et une page n'est
       plus jamais ecrasee a la hauteur de l'ecran (le tableau des
       batiments faisait 2 px de haut sous ses filtres) ;
     - la barre du bas porte cinq cases fixes : les quatre premieres
       entrees du rail du metier et « Menu », qui ouvre une page entiere
       (tout le rail, puis le compte). Plus de bande qui defile, plus de
       libelle coupe, plus de menu du profil qui sort de l'ecran ;
     - les panneaux couvrent l'ecran, au-dessus des deux barres ;
     - rien ne colle en haut sous le bandeau, sauf le bandeau lui-meme :
       sur 650 px utiles, une barre collante de 180 px ne laisse rien.
   ===================================================================== */
.v2-nav-menu{display:none}
@media (max-width:640px){
  :root{--tel-bandeau:52px;--tel-haut:calc(var(--tel-bandeau) + env(safe-area-inset-top,0px));
    --tel-barre:calc(62px + env(safe-area-inset-bottom,0px))}

  /* le document defile */
  .v2{position:relative;inset:auto;display:block;overflow:visible;overflow-x:clip;min-height:100vh;min-height:100dvh}
  .v2::before{position:fixed}
  .v2-bandeau{position:sticky;top:0;z-index:35;height:var(--tel-haut);padding-top:env(safe-area-inset-top,0px)}
  .v2-corps{display:block;overflow:visible;padding-bottom:var(--tel-barre)}
  .v2-page{overflow:visible;display:block;scrollbar-gutter:auto}
  #v2-ecran{flex:none!important;display:block!important;min-height:0!important}
  .fn-contexte,.v2-ws-sel,.v2-enr .pr-resume,.fr-choix{position:static}

  /* les panneaux : tout l'ecran, au-dessus du bandeau et de la barre */
  .v2-panneau,.v2-panneau.large{position:fixed;inset:0;width:auto;z-index:60;border-left:0;
    padding-top:env(safe-area-inset-top,0px);visibility:hidden;
    transition:transform var(--v2-t-lent) cubic-bezier(.22,.7,.3,1),visibility 0s linear var(--v2-t-lent)}
  .v2-panneau.ouvert{visibility:visible;transition:transform var(--v2-t-lent) cubic-bezier(.22,.7,.3,1),visibility 0s}
  .v2-panneau-tete{padding:14px 16px 12px}
  .v2-panneau-corps{padding:16px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
  .v2-panneau-pied{padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))}
  .v2-fermer{width:40px;height:40px;font-size:20px}

  /* la barre du bas : cinq cases egales */
  .v2-rail{height:auto;padding-bottom:env(safe-area-inset-bottom,0px)}
  .v2-rail-nav{flex:4 1 0;min-width:0;overflow:hidden;padding:4px 0 4px 4px;gap:0;scroll-snap-type:none}
  .v2-rail-nav a.v2-nav:not(.tel){display:none}
  .v2-rail-nav a.tel1{order:1}.v2-rail-nav a.tel2{order:2}.v2-rail-nav a.tel3{order:3}.v2-rail-nav a.tel4{order:4}
  .v2-nav,.v2-nav-menu{flex:1 1 0;min-width:0;padding:8px 2px 6px;gap:3px}
  .v2-nav span.t,.v2-nav-menu span.t{max-width:100%;font-size:10.5px;text-align:center}
  .v2-nav-menu{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
    margin:4px 4px 4px 0;border:0;border-radius:var(--v2-r-s);background:transparent;color:var(--muted);
    font:inherit;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .v2-nav-menu svg{flex-shrink:0;opacity:.75}
  .v2-nav-menu span.t{display:block;line-height:1.15;min-height:2.3em}
  .v2-nav-menu.on{background:linear-gradient(180deg,var(--brand-soft),transparent 130%);color:var(--brand);font-weight:700}
  .v2-nav-menu.on svg{opacity:1}
  .v2-nav-menu.on::before{content:"";position:absolute;left:12px;right:12px;top:0;height:3px;border-radius:0 0 3px 3px;background:var(--brand)}
  .v2-nav-menu.signal::after{content:"";position:absolute;top:6px;left:calc(50% + 8px);width:7px;height:7px;border-radius:50%;background:var(--crit)}
  .v2-nav .cnt{right:auto;left:calc(50% + 4px)}
  .v2-profil{display:none}

  /* la page « Menu » */
  html.v2-feuille-ouverte,html.v2-feuille-ouverte body{overflow:hidden}
  .v2-feuille{position:fixed;inset:0;z-index:70;display:flex;flex-direction:column;background:var(--v2-fond);
    color:var(--ink);font-family:var(--ui);font-size:13.5px;animation:v2-apparait .16s ease-out both}
  .v2-feuille *{box-sizing:border-box}
  .v2-feuille-tete{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;height:var(--tel-haut);
    padding:env(safe-area-inset-top,0px) 12px 0 20px;background:var(--v2-surface);border-bottom:1px solid var(--v2-trait)}
  .v2-feuille-tete .t{font-size:17px;font-weight:700}
  .v2-feuille-corps{flex:1;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
    padding:6px 12px calc(28px + env(safe-area-inset-bottom,0px))}
  .v2-feuille-moi{display:flex;align-items:center;gap:12px;padding:14px 10px 6px}
  .v2-feuille-moi .v2-profil-t{display:block;min-width:0;flex:1}
  .v2-feuille-sect{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);
    padding:18px 10px 6px}
  .v2-feuille-l{display:flex;align-items:center;gap:14px;width:100%;min-height:46px;padding:10px;border:0;
    border-radius:var(--v2-r-s);background:transparent;color:var(--ink-2);font:inherit;font-size:15px;font-weight:600;
    text-align:left;text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .v2-feuille-l svg{flex-shrink:0;opacity:.72}
  .v2-feuille-l .t{flex:1;min-width:0}
  .v2-feuille-l .val{flex-shrink:1;min-width:0;max-width:48%;font-size:13px;font-weight:600;color:var(--muted);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right}
  .v2-feuille-l .cnt{font-size:11px;font-weight:700;padding:2px 8px;border-radius:20px;background:var(--v2-surface-2);color:var(--muted)}
  .v2-feuille-l .cnt.crit{background:var(--crit-soft);color:var(--crit)}
  .v2-feuille-l .cnt.warn{background:var(--warn-soft);color:var(--warn)}
  .v2-feuille-l.on{background:var(--brand-soft);color:var(--brand);font-weight:700}
  .v2-feuille-l.on svg{opacity:1}
  .v2-feuille-l:active{background:var(--v2-surface-2)}
  .v2-feuille-sous .v2-feuille-l{padding-left:42px;min-height:42px;font-size:14px;font-weight:500}
}

/* =====================================================================
   LE TELEPHONE, LES PAGES (05/10/2026, seconde passe)

   Ce qu'on regle ici, page par page, et toujours sous 640 px :
     - les en-tetes : un titre de 24 px, le sur-titre petit, la situation
       sur une ligne sous le titre au lieu d'une colonne a droite ;
     - les marges laterales passent de 26 a 16 px (ecrites dans le style
       des ecrans, d'ou les selecteurs d'attribut et les !important : ils
       ne valent que sur telephone) ;
     - les onglets restent sur UNE ligne partout, et defilent ;
     - la barre de reglages des Financements et du Budget tient en une
       ligne de commandes et une ligne d'etat ;
     - aucun montant coupe : le releve des Financements perd ses colonnes
       fixes, les programmes deviennent des fiches ;
     - une largeur fixe ecrite pour l'ordinateur (de 300 a 640 px) ne sort
       plus de l'ecran.
   ===================================================================== */
@media (max-width:640px){
  /* les titres et les marges */
  #v2-ecran h1.v2-h1{font-size:24px!important;line-height:1.1}
  #v2-ecran [style*="px 26px"]{padding-left:16px!important;padding-right:16px!important}
  #v2-ecran [style*="padding:22px 26px"],#v2-ecran [style*="padding:20px 26px"]{padding-top:16px!important}
  .v2-ws-tete{margin:14px 16px 0}
  .v2-ws-tete h1{font-size:24px;margin:2px 0 8px}
  .v2-ws-tete .qui .v2-lab{font-size:9.5px;letter-spacing:.12em;line-height:1.35}
  .v2-ws-tete .menu{flex-wrap:wrap;row-gap:6px}
  .v2-ws-tete .maj{margin-bottom:8px}
  .v2-enr .v2-ws-tete .menu .v2-b{height:36px;padding:0 12px;font-size:12.5px}

  /* les largeurs fixes de l'ordinateur */
  #v2-ecran [style*="width:300px"],#v2-ecran [style*="width:320px"],#v2-ecran [style*="width:340px"],
  #v2-ecran [style*="width:380px"],#v2-ecran [style*="width:390px"],#v2-ecran [style*="width:400px"],
  #v2-ecran [style*="width:420px"],#v2-ecran [style*="width:440px"],#v2-ecran [style*="width:460px"],
  #v2-ecran [style*="width:480px"],#v2-ecran [style*="width:500px"],#v2-ecran [style*="width:520px"],
  #v2-ecran [style*="width:640px"]{width:auto!important;min-width:0!important;max-width:100%!important;flex-shrink:1!important}
  #v2-ecran [style*="minmax(3"]{grid-template-columns:minmax(0,1fr)!important}
  #v2-ecran .v2-carte{max-width:100%}

  /* les onglets : une ligne, qui defile, l'actif ramene a l'ecran (shell.js) */
  .v2-espace-barre,.fn-onglets,.v2-pp .hy-modules,.v2-ws-tete .menu .v2-ope-onglets{
    flex-wrap:nowrap!important;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;
    -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 22px),transparent);
            mask-image:linear-gradient(90deg,#000 calc(100% - 22px),transparent)}
  .v2-espace-barre{margin-top:12px;gap:0;padding-right:22px}
  .v2-onglet{flex:0 0 auto;white-space:nowrap;padding:10px 11px}
  .fn-onglets{gap:20px;padding-right:22px}
  .fn-onglets a{flex:0 0 auto;white-space:nowrap}
  .v2-pp .hy-modules{padding:12px 22px 2px 16px;gap:6px}
  .v2-pp .hy-modules a{flex:0 0 auto;padding:7px 13px}
  .v2-ws-tete .menu .v2-ope-onglets{padding-right:22px}

  /* les Financements : une ligne de commandes, une ligne d'etat */
  .v2-fn .fn-tete{display:block}
  .fn-contexte:not(.bu-nav3){display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;
    padding:10px 16px;align-items:center}
  .fn-contexte:not(.bu-nav3) .c{width:auto!important;min-width:0;gap:0}
  .fn-contexte:not(.bu-nav3) .c>.k{display:none}
  .fn-contexte .c.ex{grid-row:1;grid-column:1}
  .fn-contexte .c.per{grid-row:1;grid-column:2}
  .fn-contexte .c.devise{grid-row:1;grid-column:3}
  .fn-contexte .c.bornes{grid-row:3;grid-column:1 / -1}
  .fn-contexte .c.ex .fn-select{width:86px}
  .fn-contexte .c.per .fn-select{width:100%;max-width:none}
  .fn-contexte .fn-select{height:34px}
  .fn-contexte .c.devise .fn-seg button{min-width:0;padding:7px 10px}
  .fn-contexte .c.situ{grid-row:2;grid-column:1 / 3;flex-direction:row;align-items:baseline;gap:6px;flex-wrap:wrap}
  .fn-contexte .c.situ>.k,.fn-contexte .c.reg.att>.k{display:inline}
  .fn-contexte .c.situ>b{font-size:13px;line-height:20px}
  .fn-contexte .c.reg{display:none}
  .fn-contexte .c.reg.att{display:flex;grid-row:2;grid-column:3;flex-direction:row;align-items:baseline;gap:6px;justify-self:end}
  .fn-contexte .c.reg.att>b{line-height:20px}

  /* le releve : plus de colonnes figees, plus un chiffre coupe */
  .fn-lp-pan{overflow-x:visible}
  .fn-lp-pan .fn-lp:not(.cmp){min-width:0;width:calc(100% - 32px);margin:0 16px;table-layout:auto}
  .fn-lp:not(.cmp) td,.fn-lp:not(.cmp) th{overflow:visible;text-overflow:clip}
  .fn-lp:not(.cmp) th:first-child,.fn-lp:not(.cmp) td:first-child{position:static}
  .fn-lp:not(.cmp) td.k span{white-space:normal}
  .fn-lp:not(.cmp) td.s,.fn-lp:not(.cmp) th:last-child,.fn-lp:not(.cmp) col.c-s{display:none}
  .fn-lp:not(.cmp) td.v,.fn-lp:not(.cmp) td.p{white-space:nowrap;padding-left:8px;padding-right:0}
  .fn-lp:not(.cmp) td.p{width:1%;padding-left:12px}
  .fn-lp td.v b{font-size:16px}
  .fn-lp tr.fort td.v b{font-size:24px}
  .fn-lp tr.gr td{white-space:normal;line-height:1.4}
  .fn-pan-t{padding-left:16px;padding-right:16px}

  /* les programmes : une fiche chacun, chaque chiffre avec son nom */
  .fn-tbl-hote .fn-reg.fn-prog{min-width:0;table-layout:auto}
  .fn-reg.fn-prog thead{display:none}
  .fn-reg.fn-prog,.fn-reg.fn-prog tbody{display:block}
  .fn-reg.fn-prog tr{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:14px;row-gap:8px;
    padding:14px 16px;border-bottom:1px solid var(--v2-trait)}
  .fn-reg.fn-prog tr.gr{display:block;padding:16px 16px 6px}
  .fn-reg.fn-prog td{display:block;height:auto;padding:0!important;border:0!important;overflow:visible;white-space:normal;background:transparent}
  .fn-reg.fn-prog td:first-child{grid-column:1 / -1}
  .fn-reg.fn-prog .nom,.fn-reg.fn-prog .sous{white-space:normal;overflow:visible}
  .fn-reg.fn-prog td[data-k]::before{content:attr(data-k);display:block;margin-bottom:3px;font-size:10px;font-weight:700;
    letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
  .fn-reg.fn-prog td.num{text-align:right;font-weight:700;font-size:15px}
  .fn-reg.fn-prog td.jg .fn-jauge{width:100%}

  /* le Budget : le titre, puis la situation ; les onglets, puis l'annee et la devise */
  .v2-bu .bu-tete3{display:block;padding-bottom:6px}
  .bu-situ3{flex-direction:row;align-items:baseline;gap:6px;margin:2px 0 0}
  .fn-contexte.bu-nav3{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;padding:0 16px 10px;min-height:0}
  .v2-bu .bu-nav3 .fn-onglets{grid-column:1 / -1;gap:20px;min-height:44px;align-self:stretch}
  .bu-nav3 .bu-an3{width:100%;max-width:none}
  .bu-ev2>.t h2{font-size:19px}
  .bu-al2{grid-template-columns:minmax(0,1fr)!important}
}
@media (max-width:640px){
  .bu-nav3>.v2-grandir{display:none}
  .bu-nav3 .bu-an3{grid-column:1;grid-row:2}
  .bu-nav3 .fn-devise{grid-column:2;grid-row:2}
  /* la roue du budget : le chiffre de chaque part passe sous son nom */
  .bu-ro-l .rd{grid-template-columns:12px minmax(0,1fr);gap:6px 12px;padding:11px 8px}
  .bu-ro-l .rd .vl{grid-column:2;flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:2px 12px;padding-top:0}
  .bu-ro-l .rd .vl .d{white-space:normal}
  .bu-ro-l .rd .li{max-width:none}
  .fn-reg.fn-prog td[data-k]::before{font-family:var(--ui)}
  .fn-reg.fn-prog td.num{text-align:left}
}
@media (max-width:640px){
  /* les filtres des batiments : une rangee par critere, qui defile */
  .v2-filtres .v2-puces{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;padding-right:22px;
    -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 22px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 22px),transparent)}
  .v2-filtres .v2-puces>*{flex:0 0 auto}
  .v2-filtres .v2-champ{width:100%;max-width:none}
  /* un titre d'ecran prend sa ligne ; ses boutons passent dessous */
  #v2-ecran div:has(> h1.v2-h1){flex:1 1 100%}
  /* les categories d'organisations : une rangee de pastilles au-dessus de la liste */
  #v2-ecran nav[style*="width:236px"]{width:100%!important;flex-direction:row!important;flex-wrap:nowrap;overflow-x:auto;
    gap:8px!important;padding:2px 22px 4px 0;scrollbar-width:thin;
    -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 22px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 22px),transparent)}
  #v2-ecran nav[style*="width:236px"]>a{flex:0 0 auto;padding:9px 13px!important;box-shadow:none}
}
@media (max-width:640px){
  .bu-r3 .bu-ro{padding:4px 0 8px}
  .bu-r3 .bu-ro-l.riche{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:640px){
  #v2-ecran div:has(> h1.v2-h1) ~ .v2-grandir{display:none}
  #v2-ecran div:has(> h1.v2-h1) ~ input{flex:1 1 100%;width:auto}
}
@media (max-width:640px){
  /* Mon compte : le nom de la ligne au-dessus de sa valeur */
  #v2-ecran div:has(> span[style*="width:190px"]){flex-wrap:wrap;row-gap:3px}
  #v2-ecran span[style*="width:190px"]{flex-basis:100%!important;width:auto!important;font-size:12px}
  #v2-ecran div:has(> span[style*="width:190px"])>span{min-width:0;overflow-wrap:anywhere}
}
@media (max-width:640px){
  /* le corps ne forme plus un empilement a part : un panneau ou la page
     Menu passent au-dessus du bandeau, pas dessous */
  .v2-corps{z-index:auto}
}
@media (max-width:640px){
  /* le Budget : un titre de carte prend sa ligne, ses commandes passent dessous */
  .bu-card-t{flex-wrap:wrap}
  .bu-card-t .tt{flex:1 1 100%}
  .bu-card-t .cmd{justify-content:flex-start}
  /* les sous-vues en pastilles : une rangee qui defile */
  .bu-sp{display:flex;max-width:100%;overflow-x:auto;scrollbar-width:thin}
  .bu-sp button{flex:0 0 auto}
  .bu-sp-r{margin-top:0}
  /* budget et realise : le tableau defile dans sa carte, la nature reste visible */
  .bu-x3{overflow-x:auto;scrollbar-width:thin}
  .bu-x3 .r{min-width:740px;grid-template-columns:150px 200px 96px 96px 64px 134px}
  .bu-x3 .r>:first-child{position:sticky;left:0;z-index:1;background:var(--bu-carte,var(--v2-surface))}
}
@media (max-width:640px){
  /* la compagnie d'electricite : une colonne qui ne depasse jamais, quatre chiffres en deux rangees */
  .v2-ws-focus .bande.puissance .corps.deux{grid-template-columns:minmax(0,1fr)}
  .v2-ws-focus .cels{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bu-x3 .nm b{white-space:normal;overflow:visible}
}
@media (max-width:640px){
  .anneau.puissance{min-width:0;grid-template-columns:116px minmax(0,1fr);gap:12px}
  .anneau.puissance .ringp{width:116px;height:116px}
}

/* =====================================================================
   LE TELEPHONE, TROISIEME PASSE (05/10/2026, sur l'iPhone de Bayss)

   « Quand on navigue sur le telephone en appli, la page bouge, le cadre
   d'affichage n'est pas fixe » : il glissait de gauche a droite des qu'un
   element depassait, et toute la page rebondissait, bandeau compris.
   Le cadre est maintenant celui d'une application :
     - rien ne depasse en largeur (rogne au niveau du document) ;
     - pas de rebond du document, ni de zoom au double toucher ;
     - un champ de saisie a 16 px, sinon iPhone zoome a la saisie et
       laisse la page decalee.
   « Appuyer sur le logo nous ramene sur un ecran blanc » : l'entree se
   mesurait sur un cadre qui, depuis que le document defile, n'a plus de
   hauteur. Elle prend l'ecran entier.
   ===================================================================== */
@media (max-width:640px){
  html,body{overflow-x:clip;overscroll-behavior:none;touch-action:manipulation}
  /* TOUS les champs, la porte d'entree comprise (05/10/2026, au soir). La
     regle ne couvrait que l'application ; or c'est a la porte qu'on tape en
     premier : l'iPhone zoomait sur le mot de passe (14,5 px), gardait ce zoom
     apres la connexion, et tout s'affichait decale sur le cote, la barre du
     bas hors de l'ecran, jusqu'a ce qu'on dezoome a deux doigts. */
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),select,textarea{font-size:16px!important}
  .v2-panneau:not(.ouvert){display:none}
  .v2.v2-plein .v2-corps{padding-bottom:0}
  .v2-entree{min-height:100vh;min-height:100dvh}
}
/* et sur une tablette tactile (iPad), qui zoome de la meme facon */
@media (hover:none) and (pointer:coarse){
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),select,textarea{font-size:16px!important}
}
@media (max-width:640px){
  /* un tableau trop large devient une liste de fiches (shell.js, adapterAuTelephone) */
  table.tel-fiches,table.tel-fiches>tbody{display:block;width:100%!important;min-width:0!important;max-width:100%!important;table-layout:auto}
  table.tel-fiches>thead,table.tel-fiches>colgroup,table.tel-fiches tr.tel-tete{display:none}
  table.tel-fiches>tbody>tr{display:block;padding:10px 12px;border-bottom:1px solid var(--v2-trait);height:auto!important}
  table.tel-fiches>tbody>tr:last-child{border-bottom:0}
  table.tel-fiches>tbody>tr>td{display:block;position:static!important;width:auto!important;min-width:0!important;max-width:none!important;
    height:auto!important;padding:3px 0!important;border:0!important;background:transparent;text-align:right;
    white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
  table.tel-fiches>tbody>tr>td::before{content:attr(data-k);float:left;max-width:52%;margin-right:12px;text-align:left;
    font-size:11px;font-weight:600;letter-spacing:.02em;text-transform:none;color:var(--muted);line-height:1.5}
  table.tel-fiches>tbody>tr>td::after{content:"";display:block;clear:both}
  table.tel-fiches>tbody>tr>td[data-k=""]::before{content:none}
  table.tel-fiches>tbody>tr>td:first-child{text-align:left;font-weight:700;padding-bottom:5px!important}
  table.tel-fiches>tbody>tr>td:first-child::before{content:none}
  table.tel-fiches>tbody>tr>td[colspan]{text-align:left}
  table.tel-fiches>tbody>tr>td[colspan]::before{content:none}
  table.tel-fiches>tbody>tr>td *{white-space:normal;max-width:100%}
  table.tel-fiches>tbody>tr>td input,table.tel-fiches>tbody>tr>td select{max-width:60%}
}
@media (max-width:640px){
  /* l'en-tete des compagnies : « tout le pays » sur une ligne, la carte des iles plus basse */
  .v2-pp .hy-archipel{padding:6px 16px 0;gap:8px}
  .v2-pp .hy-pays{flex:1 1 100%;flex-direction:row;flex-wrap:wrap;align-items:center;gap:2px 12px;min-width:0;padding:9px 12px}
  .v2-pp .hy-pays .k{flex-basis:100%}
  .v2-pp .hy-pays b{font-size:15px}
  .v2-pp .hy-pays .hy-jauge{width:90px}
  .v2-pp .hy-carte-hote{flex:1 1 100%;max-width:none;padding:2px 6px}
  .v2-pp .hy-carte{max-height:168px}
  /* les cuves : elles passent a la ligne, toutes visibles */
  .v2-pp .hy-rang{flex:1 1 100%;flex-wrap:wrap;justify-content:center;row-gap:10px}
  .v2-pp .hy-rang .t svg{width:min(var(--w,80px),27vw)}
  .v2-pp .hy-rang .hy-legende{flex-basis:100%;margin-left:0;text-align:center}
  .v2-pp .hy-depot .dc>.hy-tblbox{flex:1 1 100%}
  .v2-pp .hy-tblbox.haut{max-height:none}
  .v2-pp .v2-ws-tbl.hy-tbl td:first-child{white-space:normal}
  .v2-ws-tbl th{white-space:normal}
  /* la fiche de saisie d'un batiment : les rubriques en pastilles, le formulaire dessous */
  #v2-ecran nav[style*="width:250px"]{width:100%!important;flex-direction:row!important;flex-wrap:nowrap;overflow-x:auto;
    gap:8px!important;padding:2px 22px 4px 0;scrollbar-width:thin;
    -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 22px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 22px),transparent)}
  #v2-ecran nav[style*="width:250px"]>button{flex:0 0 auto;width:auto!important;padding:9px 13px!important;box-shadow:none}
  #v2-ecran nav[style*="width:250px"]>button>span:first-of-type{flex:0 0 auto!important;white-space:nowrap}
  #v2-ecran .v2-carte[style*="border-color:var(--brand)"]>.v2-lab{flex-basis:100%}
  #v2-ecran .v2-carte[style*="padding:22px 24px"]{padding:16px!important}
  /* la nouvelle etude : une colonne qui ne depasse pas */
  .v2-nc-lieu,.v2-nc-deux{grid-template-columns:minmax(0,1fr)}
  .v2-nc-connu{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v2-nc-choix,.v2-nc-carte{padding:14px}
  #v2-ecran li{min-width:0;overflow-wrap:anywhere}
  /* le systeme electrique d'une ile : le nom sur sa ligne, abonnes et liens dessous */
  .v2-ws-focus .ft{flex-wrap:wrap;align-items:flex-start;gap:10px 18px}
  .v2-ws-focus .ft .g{flex:1 1 100%}
  .v2-ws-focus .ft .ab{align-items:flex-start;padding-right:16px}
  .v2-ws-focus .ft .liens{flex-wrap:wrap;gap:8px 14px;align-self:center}
}
@media (max-width:640px){
  /* la fiche d'un batiment : l'etat et les gestes passent sous le nom */
  .v2-hero .dedans{padding:14px 16px 16px!important}
  .v2-hero .dedans>div[style*="gap:26px"]{flex-wrap:wrap;gap:12px!important}
  .v2-hero .dedans>div[style*="gap:26px"]>div[style*="text-align:right"]{flex:1 1 100%;text-align:left!important}
  .v2-hero .dedans>div[style*="gap:26px"]>div[style*="text-align:right"]>div[style*="justify-content:flex-end"]{justify-content:flex-start!important}
  .v2-hero .dedans span[style*="min-width:200px"]{min-width:0!important;flex-basis:100%}
}
@media (max-width:640px){table.tel-fiches>tbody>tr>td.tel-vide{display:none}}
@media (max-width:640px){
  /* les selecteurs en segments (annees, depots) : une rangee qui defile */
  #v2-ecran .v2-seg{max-width:100%;overflow-x:auto;scrollbar-width:thin;flex-wrap:nowrap}
  #v2-ecran .v2-seg>*{flex:0 0 auto}
}
@media (max-width:640px){
  /* l'etude en huit etapes : les numeros seuls, le nom de l'etape ouverte dessous */
  .v2-nc-etapes{flex-wrap:wrap;row-gap:6px}
  .v2-nc-etapes li{flex:1 1 0}
  .v2-nc-etapes li::after{left:calc(50% + 15px);right:calc(-50% + 15px);top:13px}
  .v2-nc-etapes .num{width:27px;height:27px;font-size:12px}
  .v2-nc-etapes .t{display:none}
  .v2-nc-etapes li.on .t{display:block;position:absolute;top:34px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:12px}
  .v2-nc-etapes li:first-child.on .t{left:0;transform:none}
  .v2-nc-etapes li:last-child.on .t{left:auto;right:0;transform:none}
  .v2-nc-etapes{padding-bottom:22px}
  .v2-nc-bloc{padding:14px}
}
@media (max-width:640px){
  /* le flux du budget, etroit : les noms sur un halo, par-dessus les rubans */
  .bu-rf-d svg.etroit text{paint-order:stroke;stroke:var(--v2-surface);stroke-width:4px;stroke-linejoin:round}
  .bu-rf-d svg.etroit .bu-co-k{font-size:11px}
  .bu-rf-d svg.etroit .bu-co-v{font-size:10.5px}
  /* les soldes : le nom et le montant sur une ligne, la jauge dessous */
  .bu-rf-solde{margin:10px 16px 0}
  .bu-rf-solde .r{grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:6px 0}
  .bu-rf-solde .r .k{grid-column:1;grid-row:1}
  .bu-rf-solde .r .bu-n{grid-column:2;grid-row:1}
  .bu-rf-solde .r .j{grid-column:1 / -1;grid-row:2}
  .bu-rf-solde .r .s{grid-column:1 / -1;grid-row:3}
  .bu-rf-solde .r .s:empty{display:none}
  /* les listes du budget (services, titres, investissements) : elles defilent, le nom reste */
  .bu-ls,.bu-bt,.bu-ip,.bu-dc{overflow-x:auto;scrollbar-width:thin}
  .bu-ls .r,.bu-bt .r,.bu-ip .r,.bu-dc .r{width:max-content;min-width:100%}
  .bu-ls .r>:first-child,.bu-bt .r>:first-child,.bu-ip .r>:first-child,.bu-dc .r>:first-child{position:sticky;left:0;z-index:1;background:var(--bu-carte,var(--v2-surface))}
}
@media (max-width:640px){
  /* la carte du budget : la fiche d'une ile sur une colonne, les iles l'une sous l'autre */
  .bu-ca-fl{display:flex;flex-direction:column;gap:0}
  .bu-ca-fl .bu-ca-st{margin-top:14px}
  .bu-ca-cmp{grid-template-columns:minmax(0,1fr)}
  .bu-ca-in .b{grid-template-columns:96px minmax(0,1fr) auto}
  .bu-ca-cols{grid-template-columns:minmax(0,1fr)!important;display:grid;gap:12px}
  .bu-ca-col .h{flex-wrap:wrap}
  .bu-ca-d{min-height:0}
  /* le releve des financements : la comparaison passe sous le titre */
  .fn-pan-t .fn-cmp{flex:1 1 100%;display:flex;align-items:center;gap:8px;min-width:0}
  .fn-pan-t .fn-cmp select{flex:1;min-width:0;max-width:100%}
}
@media (max-width:640px){table.tel-fiches>tbody>tr>td::before{font-family:var(--ui)}}
@media (max-width:640px){
  .tel-g{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 24px,#000 calc(100% - 22px),transparent)!important;
          mask-image:linear-gradient(90deg,transparent 0,#000 24px,#000 calc(100% - 22px),transparent)!important}
}
@media (max-width:640px){
  .v2-pp .hy-evts .hy-etiq{white-space:normal;max-width:100%}
  .bu-ca-nat .c{grid-template-columns:minmax(0,1fr) auto!important;row-gap:2px}
  .bu-ca-nat .c .b2{grid-row:2;grid-column:1}
  .v2-nc-carte{width:auto!important;max-width:100%;min-width:0}
  .v2-nc-carte svg,.v2-nc-carte canvas{max-width:100%;height:auto}
}
/* le flux du budget a ecran etroit (budget.js, `etroit`, sous 560 px de dessin) :
   un numero blanc sur chaque noeud, la legende dessous ; au-dela, rien de cela n'existe */
.bu-rf-d .bu-rf-no{font-size:10.5px;font-weight:800;fill:#fff;pointer-events:none;font-family:var(--ui)}
.bu-rf-leg{display:flex;flex-direction:column;gap:2px;margin-top:12px}
.bu-rf-leg>.k{font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.bu-rf-leg .l{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:10px;align-items:start;padding:6px 0;border-top:1px solid var(--v2-trait)}
.bu-rf-leg .l .nm{display:flex;flex-direction:column;min-width:0}
.bu-rf-leg .l .nm b{font-size:12.5px;font-weight:700;color:var(--ink)}
.bu-rf-leg .l .nm span{font-size:11px;color:var(--muted)}
.bu-rf-leg .l .v{font-size:12.5px;font-weight:800;color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums}
.bu-rf-leg .l.impl .nm b{color:var(--bu-orange,var(--warn))}
.bu-rf-d svg.etroit text.bu-rf-no,.bu-rf-leg .bu-rf-no{stroke:none}
.bu-rf-d .bu-rf-no.impl,.bu-rf-leg .bu-rf-no.impl{fill:var(--bu-orange,#E8912D)}
.bu-rf-leg .bu-rf-no{font-size:10.5px;font-weight:800;fill:#fff;font-family:var(--ui)}
@media (max-width:640px){
  .v2-pp .hy-fig svg{min-width:0}
  #v2-ecran h2,#v2-ecran h3{white-space:normal;min-width:0;overflow-wrap:break-word}
}
@media (max-width:640px){
  .v2-pp .hy-multiples{grid-template-columns:minmax(0,1fr)!important}
  .v2-pp .hy-pt{flex-wrap:wrap;min-width:0}
  .v2-pp .hy-pt>*{min-width:0}
}
@media (max-width:640px){.v2-pp .hy-pt h3{flex-shrink:1}}
@media (max-width:640px){
  /* la grille des douze mois : un mois a la fois (shell.js, moisAuTelephone) */
  .tel-mois-barre{display:flex;gap:6px;overflow-x:auto;padding:2px 22px 10px 0;scrollbar-width:thin;
    -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 22px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 22px),transparent)}
  .tel-mois-barre button{flex:0 0 auto;padding:7px 13px;border-radius:999px;border:1px solid var(--v2-trait-fort);background:var(--v2-surface);
    font:inherit;font-size:13px;font-weight:700;color:var(--ink-2);text-transform:capitalize;cursor:pointer}
  .tel-mois-barre button.on{background:var(--brand-soft);border-color:var(--brand);color:var(--brand)}
  .v2-cie-matrice{max-height:none;overflow:visible;border:0;background:transparent}
  .v2-cie-matrice table.tel-mois{width:100%;background:var(--surface);border:1px solid var(--c-line2);border-radius:8px}
  table.tel-mois .tel-cache,table.tel-mois th.d,table.tel-mois td.d{display:none}
  .v2-cie-matrice table.tel-mois th.g,.v2-cie-matrice table.tel-mois td.g{position:static;min-width:0;width:55%}
  .v2-cie-matrice table.tel-mois td{height:46px}
  .v2-cie-matrice table.tel-mois th{position:static}
}

/* =====================================================================
   UTILISATEURS ET ACCES (134, ACCES_CADRAGE.md 8.10, maquette v2 du 06/10)
   Les organisations en cartes, les personnes en pastilles a la couleur
   de leur type, les connexions du jour heure par heure, la fiche. Toute
   la largeur ; au telephone, les lignes deviennent des fiches.
   ===================================================================== */
.ua{padding:24px 28px 40px;display:flex;flex-direction:column;gap:0;min-width:0}
.ua-titre{font-size:30px}
.ua-h{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;padding-bottom:18px;flex-wrap:wrap}
.ua-h-t{min-width:0}
.ua-k{display:flex;flex-wrap:wrap}
.ua-k1{padding-left:18px;margin-left:18px;border-left:1px solid var(--v2-trait);text-align:right}
.ua-k1:first-child{border-left:0;margin-left:0;padding-left:0}
.ua-k1 b{display:block;font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.2;color:var(--ink)}
.ua-k1 span{font-size:11.5px;color:var(--ink-2);white-space:nowrap}
.ua-bar{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--v2-trait);margin-bottom:18px}
.ua-onglets{display:flex;gap:2px;min-width:0;overflow-x:auto;scrollbar-width:none}
.ua-onglets::-webkit-scrollbar{display:none}
.ua-esp{flex:1}
.ua-bar>.v2-b{flex:none;margin-bottom:6px}
.ua-form{max-width:1000px}
.ua-row-t .ua-n{white-space:normal}
.ua-tab{background:none;border:0;border-bottom:2px solid transparent;padding:10px 12px;font:inherit;font-size:13.5px;color:var(--ink-2);cursor:pointer;white-space:nowrap;margin-bottom:-1px}
.ua-tab:hover{color:var(--ink)}
.ua-tab.on{color:var(--ink);border-bottom-color:var(--brand-2);font-weight:650}
.ua-tab em{font-style:normal;font-size:11px;background:var(--brand-2);color:#fff;border-radius:9px;padding:1px 7px;margin-left:6px;font-weight:600}
.ua-corps{display:flex;flex-direction:column;gap:14px;min-width:0}
.ua-carte{background:var(--v2-surface);border:1px solid var(--v2-trait);border-radius:14px;min-width:0}
.ua-pad{padding:16px 18px}
.ua-carte-h{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.ua-ct{font-size:14px;font-weight:650;color:var(--ink)}
.ua-cs{font-size:12px;color:var(--ink-2)}
.ua-p{font-size:12px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ua-n{font-weight:650;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ua-nom{font-size:19px;font-weight:700;color:var(--ink);letter-spacing:-.01em}
.ua-v{font-size:12.5px;color:var(--ink)}
.ua-mn{min-width:0}
.ua-num{font-variant-numeric:tabular-nums}
.ua-gras{font-weight:650}
.ua-encre{color:var(--ink)!important}
.ua-pale{color:var(--muted)!important}
.ua-vert{color:var(--good)!important;font-weight:650}
.ua-orange{color:var(--warn)!important}
.ua-ell{overflow:hidden;text-overflow:ellipsis}
.ua-orgs{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.ua-org{padding:12px 14px;cursor:pointer;text-align:left;font:inherit;color:inherit;display:block;width:100%;transition:border-color var(--v2-t),box-shadow var(--v2-t)}
.ua-org:hover{border-color:var(--v2-trait-fort)}
.ua-org.on{border-color:var(--brand-2);box-shadow:0 0 0 1px var(--brand-2)}
.ua-org-h{display:flex;justify-content:space-between;gap:10px}
.ua-avs{display:flex;flex-wrap:wrap;gap:4px;margin-top:10px;min-height:26px}
.ua-av{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-weight:650;flex:none;letter-spacing:.02em}
.ua-av.carre{border-radius:9px}
.ua-av.creuse{background:transparent;color:var(--ink-2);border:1.5px dashed var(--line-2)}
.ua-pill{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink);white-space:nowrap;overflow:hidden;max-width:100%}
.ua-d{width:9px;height:9px;border-radius:50%;flex:none;display:inline-block}
.ua-d.creux{border:1.5px solid var(--line-2)}
.ua-frise{margin-top:10px;min-height:20px}
.ua-svg-t{font-size:11px;fill:var(--muted)}
.ua-svg-n{font-size:12px;fill:var(--ink)}
.ua-svg-maint{font-size:11px;font-weight:650;fill:var(--ink)}
.ua-liste-h{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.ua-table{overflow:hidden}
.ua-row{display:grid;grid-template-columns:30px minmax(0,1.6fr) minmax(0,1.2fr) minmax(0,.9fr) minmax(0,.9fr) 90px;align-items:center;gap:12px;
  padding:10px 16px;border-top:1px solid var(--v2-trait);cursor:pointer;transition:background var(--v2-t)}
.ua-row:hover{background:var(--v2-surface-2)}
.ua-row.sel{background:var(--v2-surface-2);box-shadow:inset 3px 0 0 var(--brand-2)}
.ua-hd,.ua-hd:hover{font-size:11px;color:var(--ink-2);cursor:default;border-top:0;background:none;padding-top:11px;padding-bottom:7px;font-weight:600}
.ua-row-t{grid-template-columns:minmax(0,1.8fr) minmax(0,1fr) 80px 110px}
.ua-row-o{grid-template-columns:28px minmax(0,1.6fr) minmax(0,1.1fr) minmax(0,1fr) 80px}
.ua-row-j{grid-template-columns:52px minmax(0,160px) minmax(0,1fr);cursor:default;padding:8px 16px}
.ua-row-j:hover{background:none}
.ua-tl{display:flex;gap:10px;align-items:center}
.ua-day{font-size:12px;font-weight:650;color:var(--ink-2);padding:14px 16px 5px;border-top:1px solid var(--v2-trait)}
.ua-day:first-child{border-top:0}
.ua-tete{display:flex;gap:14px;align-items:center}
.ua-tete-d{text-align:right;min-width:0;max-width:45%}
.ua-deux{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:14px;align-items:start}
.ua-deux-types{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
.ua-col{display:flex;flex-direction:column;gap:14px;min-width:0}
.ua-g2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 16px;margin-top:10px}
.ua-g3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px;margin-top:10px}
.ua-pleine{grid-column:1/-1}
.ua-lab{font-size:11px;color:var(--ink-2);margin-bottom:5px;font-weight:550}
.ua-in{width:100%;box-sizing:border-box;height:36px;border:1px solid var(--v2-trait-fort);border-radius:8px;padding:0 10px;
  font:inherit;font-size:13px;background:var(--surface);color:var(--ink)}
.ua-in:focus{outline:none;border-color:var(--brand);box-shadow:var(--v2-lueur)}
.ua-in[disabled]{background:var(--v2-surface-2);color:var(--ink-2)}
select.ua-in{padding-right:6px}
textarea.ua-in{height:auto;min-height:84px;padding:8px 10px;line-height:1.5;resize:vertical}
.ua-mono{font-family:var(--mono);font-size:12px}
.ua-puces{display:flex;flex-wrap:wrap;gap:5px}
.ua-chip{border:1px solid var(--v2-trait-fort);border-radius:14px;padding:5px 11px;font:inherit;font-size:12px;background:none;cursor:pointer;color:var(--ink-2)}
.ua-chip:hover{border-color:var(--muted)}
.ua-chip.on{background:var(--brand-2);border-color:var(--brand-2);color:#fff}
.ua-radios{display:flex;gap:16px;flex-wrap:wrap}
.ua-rad{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--ink);cursor:pointer}
.ua-periode{display:grid;grid-template-columns:24px minmax(0,1fr) 96px 24px minmax(0,1fr) 96px;gap:8px;align-items:center;margin-top:10px}
.ua-fn{display:flex;align-items:center;gap:9px;font-size:13px;padding:7px 0;border-top:1px solid var(--v2-trait);color:var(--ink)}
.ua-fn.off{color:var(--muted)}
.ua-fn input{margin:0}
.ua-sec{font-size:11.5px;font-weight:650;color:var(--ink-2);margin:16px 0 4px}
.ua-sec-l{margin:14px 0 0}
.ua-sep{height:1px;background:var(--v2-trait);margin:16px 0 4px}
.ua-li{display:grid;gap:10px;align-items:center;font-size:12.5px;padding:8px 0;border-top:1px solid var(--v2-trait);color:var(--ink)}
.ua-li-h{border-top:0;padding-top:12px;font-size:11px}
.ua-li2{grid-template-columns:140px minmax(0,1fr)}
.ua-li3{grid-template-columns:120px minmax(0,1fr) 80px}
.ua-li-h3{grid-template-columns:110px 50px minmax(0,1fr);align-items:start}
.ua-dr{text-align:right}
.ua-act{display:flex;justify-content:flex-end;gap:8px;margin-top:4px;flex-wrap:wrap}
.ua-carte .ua-act{margin-top:16px}
.ua-danger{color:var(--crit)!important;border-color:var(--crit-soft)!important}
.ua-danger:hover{background:var(--crit-soft)!important}
.ua-ok{font-size:12.5px;color:var(--good);margin:10px 0 0}
.ua-corps>.ua-ok{margin:0}
.ua-err{font-size:12px;color:var(--crit);margin-top:4px}
.ua-err-bloc{padding:10px 12px;border:1px solid var(--crit-soft);background:var(--crit-soft);border-radius:10px;margin:0}
.ua-note{font-size:12.5px;color:var(--ink-2);background:var(--v2-surface-2);border:1px solid var(--v2-trait);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}
.ua-tag{display:inline-block;font-size:11px;font-weight:650;padding:3px 10px;border-radius:10px;background:var(--v2-surface-2);color:var(--ink-2);border:1px solid var(--v2-trait)}
.ua-fini{opacity:.72}
.ua-lien{border-color:var(--brand-line)}
.ua-lien-l{display:flex;gap:8px;align-items:center;margin-top:12px}
.ua-lien-l .ua-in{flex:1}
@media (max-width:1180px){
  .ua-deux,.ua-deux-types{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:900px){
  .ua{padding:18px 16px 30px}
  .ua-k1 b{font-size:18px}
  .ua-row{grid-template-columns:30px minmax(0,1fr) minmax(0,auto);row-gap:4px}
  .ua-row>:nth-child(n+4){grid-column:2/-1}
  .ua-hd{display:none}
  .ua-row-t{grid-template-columns:minmax(0,1fr) auto}
  .ua-row-t>:nth-child(2),.ua-row-t>:nth-child(3){grid-column:auto}
  .ua-row-o{grid-template-columns:28px minmax(0,1fr) auto}
  .ua-row-j{grid-template-columns:48px minmax(0,1fr)}
  .ua-row-j>:nth-child(3){grid-column:2/-1}
  .ua-g3{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
}
@media (max-width:640px){
  .ua-titre{font-size:24px}
  .ua-h{align-items:flex-start}
  .ua-k{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}
  .ua-k1{padding-left:0;margin-left:0;border-left:0;text-align:left}
  .ua-bar{flex-direction:column-reverse;align-items:stretch;gap:10px}
  .ua-bar>.v2-b{margin-bottom:0}
  .ua-esp{display:none}
  .ua-g2,.ua-g3{grid-template-columns:minmax(0,1fr)}
  .ua-periode{grid-template-columns:24px minmax(0,1fr) 92px}
  .ua-tete{flex-wrap:wrap}
  .ua-tete-d{text-align:left;max-width:100%;width:100%}
  .ua-li3{grid-template-columns:90px minmax(0,1fr) 64px}
  .ua-lien-l{flex-wrap:wrap}
}

/* =====================================================================
   DONNEES & REFERENCES (refonte du 07/10/2026) : une page, deux vues.
   Les lignes sont des grilles fixes (grandeur, valeur, annee, source) :
   une information par colonne, les annees anciennes en orange.
   ===================================================================== */
.dr-barre{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.dr-barre .ua-dom{margin:0}
.dr-carte-h{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;padding:14px 18px 8px}
.dr-row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.9fr) 64px minmax(0,1.7fr);gap:16px;align-items:baseline;
  width:100%;padding:11px 18px;border:0;border-top:1px solid var(--v2-trait);background:none;font:inherit;color:inherit;text-align:left}
.dr-nom{font-size:13.5px;font-weight:600;color:var(--ink)}
.dr-val{text-align:right;min-width:0}
.dr-val b{font-size:15px;font-weight:700;color:var(--ink)}
.dr-an{text-align:right;font-size:13px;color:var(--ink)}
.dr-src{font-size:12px;color:var(--ink-2);line-height:1.45;min-width:0;overflow-wrap:anywhere}
/* la population des zones, sous les grandeurs de sa famille (07/10/2026) */
.dr-pop{margin-top:26px}
.dr-pop-h{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;padding:0 0 8px}
.dr-pop-n{flex-direction:column;align-items:flex-start}
.dr-pop-cl{font-size:11.5px;font-weight:500;color:var(--ink-2)}
.dr-l-an.att{color:var(--warn)}
.dr-pop-t{font-size:12.5px;font-weight:650;color:var(--ink)}
.dr-fil{font-size:12.5px}
.dr-lien{border:0;background:none;padding:0;font:inherit;color:var(--brand-2);cursor:pointer;text-align:left}
.dr-lien:hover{text-decoration:underline}
.dr-lien.dr-nom{color:var(--ink)}
.dr-abs{padding:12px 18px 14px;border-top:1px solid var(--v2-trait);background:var(--v2-surface-2);display:flex;flex-direction:column;gap:4px}
.dr-four{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:14px 18px 4px;border-top:1px solid var(--v2-trait);font-size:13px}
.dr-four + .dr-row{border-top:0}
.dr-flux{grid-template-columns:minmax(0,1.5fr) 80px minmax(0,1fr) minmax(0,1.6fr);align-items:center}
.dr-cran{grid-template-columns:minmax(0,1.5fr) 80px 64px minmax(0,2fr);align-items:center}
/* LE REFERENTIEL (chantier UX du 07/10/2026) : un en-tete sobre qui reste
   visible, les familles a gauche, les grandeurs a droite en lignes ; la valeur
   officielle et la nouvelle cote a cote, l'ecart, l'action. */
.dr-tete{position:sticky;top:0;z-index:6;margin:-24px -28px 16px;padding:22px 28px 12px;background:var(--v2-fond);border-bottom:1px solid var(--v2-trait)}
.dr-tete .dr-barre{margin-bottom:0}
.dr-tete .ua-dom{margin-bottom:0}
.dr-h{margin-bottom:14px}
.dr-h-s{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px;margin-top:6px;font-size:14px;color:var(--ink)}
.dr-h-p{padding-left:10px;border-left:1px solid var(--v2-trait);color:var(--ink-2)}
.dr-h-d{margin-top:3px;font-size:12.5px;color:var(--ink-2)}
.dr-esp{display:grid;grid-template-columns:228px minmax(0,1fr);gap:30px;align-items:start}
/* les familles : le nom et le nombre */
/* calee a sa place de repos (hauteur de l'en-tete + sa marge de 16 px) :
   avec 12 px, la colonne remontait de 4 px au premier defilement (07/10/2026) */
.dr-fams{position:sticky;top:calc(var(--dr-hh, 0px) + 16px);display:flex;flex-direction:column;gap:2px;padding-right:18px;border-right:1px solid var(--v2-trait)}
.dr-fam{display:flex;flex-direction:column;gap:3px;width:100%;padding:10px 12px;border:0;border-radius:10px;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer;transition:background var(--v2-t)}
.dr-fam:hover{background:var(--v2-surface-2)}
.dr-fam.on{background:var(--v2-surface);box-shadow:inset 2px 0 0 var(--brand-2),0 1px 2px rgba(16,24,40,.05)}
.dr-fam-l{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.dr-fam-n{font-size:13.5px;font-weight:600;color:var(--ink)}
.dr-fam-c{font-size:12.5px;color:var(--ink-2)}
/* l'espace de travail : la recherche et les filtres, puis les lignes */
.dr-det{min-width:0}
.dr-det-o{display:flex;align-items:center;flex-wrap:wrap;gap:12px 16px;margin-bottom:20px}
.dr-cherche{max-width:300px}
.dr-filtres{display:inline-flex;gap:2px;padding:3px;border-radius:10px;background:var(--v2-surface-2)}
.dr-filtre{padding:6px 12px;border:0;border-radius:8px;background:none;font:inherit;font-size:12.5px;color:var(--ink-2);cursor:pointer;white-space:nowrap}
.dr-filtre:hover{color:var(--ink)}
.dr-filtre.on{background:var(--v2-surface);color:var(--ink);font-weight:600;box-shadow:0 1px 2px rgba(16,24,40,.08)}
/* le haut du detail ne bouge pas : recherche, filtres, titre, colonnes ; seules les lignes defilent */
.dr-det-fixe{position:sticky;top:var(--dr-hh, 0px);z-index:3;margin-top:-16px;padding-top:16px;background:var(--v2-fond)}
.dr-det-h{display:flex;align-items:baseline;gap:10px;margin:0 0 6px}
.dr-det-t{margin:0;font-size:20px;font-weight:750;letter-spacing:-.01em;color:var(--ink)}
.dr-det-g{margin:22px 0 2px;font-size:14px;font-weight:700;color:var(--ink)}
.dr-det-l>.dr-det-g:first-child{margin-top:6px}
.dr-fam-a{font-style:normal;font-weight:650;color:var(--brand-2)}
.dr-det-vide{padding:22px 0;font-size:13px;color:var(--ink-2)}
/* les lignes : la grandeur, l'officielle, la nouvelle, l'ecart, l'action */
.dr-lignes{display:flex;flex-direction:column;max-width:1180px}
.dr-l{display:grid;grid-template-columns:minmax(0,1fr) 160px 160px 110px 104px;column-gap:20px;align-items:center;
  margin:0 -12px;padding:10px 12px;
  background-image:linear-gradient(var(--v2-trait),var(--v2-trait));background-size:calc(100% - 24px) 1px;background-position:12px 0;background-repeat:no-repeat}
.dr-l-h{padding-top:9px;padding-bottom:9px;background-image:none;
  font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2)}
.dr-l-h{box-shadow:0 1px 0 var(--v2-trait)}
.dr-lignes>.dr-l:first-child{background-image:none}
.dr-l-c{text-align:right;min-width:0}
.dr-l-n{display:flex;align-items:baseline;flex-wrap:wrap;column-gap:10px;row-gap:2px;font-size:13.5px;font-weight:600;line-height:1.35;color:var(--ink)}
.dr-l-b{display:flex;flex-direction:column;align-items:flex-end;gap:1px;margin:-6px -8px;padding:6px 8px;border:0;border-radius:8px;background:none;font:inherit;color:inherit;cursor:pointer;transition:background var(--v2-t)}
.dr-l-b:hover{background:var(--v2-surface-2)}
.dr-l-b.d:hover{background:var(--brand-soft)}
.dr-l-b:focus-visible{outline:2px solid var(--brand-2);outline-offset:0}
/* deux couleurs seulement : la nouvelle en bleu (valeur, unite, annee), le reste dans l'encre ; l'action garde la sienne */
.dr-l-an{font-size:11.5px;font-weight:600;color:var(--ink)}
.dr-l-b .dr-ru{color:var(--ink)}
.dr-l-tiret{font-size:16px;font-weight:600;line-height:1.2;color:var(--ink)}
.dr-l-b.d .dr-rv b,.dr-l-b.d .dr-ru,.dr-l-b.d .dr-l-an,.dr-l-b.d .dr-l-tiret{color:var(--brand-2)}
.dr-l-vide{font-size:12.5px;color:var(--ink-2)}
.dr-l-e{font-size:13px;font-weight:650;color:var(--ink)}
.dr-l-a{text-align:right}
.dr-act-b{margin:-4px -8px;padding:4px 8px;border:0;border-radius:8px;background:none;font:inherit;font-size:12.5px;font-weight:650;cursor:pointer;transition:background var(--v2-t)}
.dr-act-b:hover{background:var(--v2-surface-2)}
.dr-act-b.valider{color:var(--brand-2)}
.dr-act-b.actualiser{color:var(--warn)}
.dr-act-b.verifier{color:var(--ink)}
/* les petits elements partages avec les fiches */
.dr-rv b{font-size:16px;font-weight:700;letter-spacing:-.005em;color:var(--ink)}
.dr-ru{margin-left:4px;font-size:12px;color:var(--ink-2)}
.dr-rv.d b{color:var(--brand-2)}
.dr-rv.g b{font-size:24px}
.dr-rec-l{display:flex;align-items:baseline;flex-wrap:wrap;column-gap:12px;row-gap:2px}
.dr-rec-an{font-size:12.5px;font-weight:600;color:var(--ink-2)}
.dr-rec-t{font-size:11.5px;font-weight:650;color:var(--ink-2)}
.dr-rec-t.ok{color:var(--good)}
.dr-rec-t.att{color:var(--warn)}
.dr-rec-t.val{color:var(--brand-2)}
.dr-rec-vide{font-size:13px;color:var(--ink-2)}
/* les fiches de l'officielle et de la nouvelle */
.dr-ins-sec{display:flex;flex-direction:column;gap:8px}
.dr-ins-def{font-size:13px;line-height:1.5;color:var(--ink-2)}
.dr-ins-kv{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:12.5px;color:var(--ink-2)}
.dr-ins-kv>span:last-child{color:var(--ink);font-weight:600;text-align:right}
.dr-ins-kv>span.val{color:var(--brand-2)}
/* LE REFERENTIEL DE L'ANNEE (11/10/2026) : une ligne par valeur, sa periode et sa nature ; la fiche au clic */
.dra-t{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:4px 0 16px}
.dra-f{display:flex;flex-direction:column;margin:0 0 20px}
.dra-fl{padding:0 6px 6px}
.dra-l{display:grid;grid-template-columns:minmax(0,1fr) minmax(110px,auto) 150px 108px;gap:14px;align-items:baseline;width:100%;
  text-align:left;background:transparent;border:0;border-top:1px solid var(--v2-trait);padding:9px 6px;font:inherit;color:var(--ink);cursor:pointer}
.dra-l:hover{background:var(--v2-surface)}
.dra-l:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
.dra-n{font-size:13px;min-width:0}
.dra-v0{font-size:12.5px;color:var(--muted)}
.dra-p{font-size:12px;color:var(--ink-2)}
.dra-nat{font-size:11.5px;font-weight:600;color:var(--ink-2)}
.dra-nat.n-validee,.dra-nat.n-publiee,.dra-nat.n-etablie,.dra-nat.n-registre{color:var(--good)}
.dra-nat.n-estimee,.dra-nat.n-persistance,.dra-nat.n-reconduite{color:var(--warn)}
.dra-nat.n-retenue{color:var(--c-decl)}
.dra-nat.n-non_etablie{color:var(--crit)}
.dra-cal{margin-top:4px}
@media (max-width:760px){
  .dra-l{grid-template-columns:minmax(0,1fr) auto;gap:4px 12px}
  .dra-p,.dra-nat{grid-column:1 / -1}
}
.dr-ins-b{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:7px 0;border-top:1px solid var(--v2-trait);font-size:12.5px;color:var(--ink)}
.dr-ins-bs{grid-column:1/-1;font-size:11.5px;line-height:1.45;color:var(--ink-2)}
.dr-ins-r{font-size:12px;color:var(--ink-2)}
.dr-ins-src{display:flex;flex-direction:column;gap:2px;padding:7px 0;border-top:1px solid var(--v2-trait);font-size:12.5px;line-height:1.45;color:var(--ink)}
.dr-ins-src>span{font-size:11.5px;color:var(--ink-2)}
.dr-ins-page{display:flex;flex-direction:column;gap:1px;width:100%;padding:8px 0;border-top:1px solid var(--v2-trait)}
.dr-ins-page b{font-size:13px;color:var(--brand-2)}
.dr-ins-page span{font-size:12px;color:var(--ink-2)}
.dr-ins-q{font-size:12.5px;line-height:1.45;color:var(--ink)}
.dr-ins-q.att{color:var(--warn)}
.dr-ins-h{padding:7px 0;border-top:1px solid var(--v2-trait)}
.dr-ins-champ{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-2)}
.dr-ins-champ .ua-in{width:100%}
/* largeur intermediaire : des colonnes plus serrees, pour que le nom garde sa place */
@media (max-width:1440px){
  .dr-esp{grid-template-columns:196px minmax(0,1fr);gap:22px}
  .dr-l{grid-template-columns:minmax(0,1fr) 128px 128px 92px 84px;column-gap:14px}
}
/* sous 1200 px, chaque ligne devient une petite fiche : la grandeur, puis officielle
   et nouvelle cote a cote, puis l'ecart et l'action */
@media (max-width:1200px){
  .dr-l-h{display:none}
  .dr-l{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"n n" "o v" "e a";row-gap:8px;padding:12px}
  .dr-l>:nth-child(1){grid-area:n}
  .dr-l>:nth-child(2){grid-area:o}
  .dr-l>:nth-child(3){grid-area:v}
  .dr-l>:nth-child(4){grid-area:e}
  .dr-l>:nth-child(5){grid-area:a;align-self:end}
  .dr-l-c{text-align:left}
  .dr-l-b{align-items:flex-start;margin:-4px -6px;padding:4px 6px}
  .dr-l-c[data-l]::before{content:attr(data-l);display:block;margin-bottom:2px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
  .dr-l-rien{display:none}
}
/* la validation, a cote du rapport */
.dr-valid{display:flex;flex-direction:column;gap:10px;padding-top:14px;border-top:1px solid var(--v2-trait)}
.dr-valid-l{display:flex;flex-direction:column}
.dr-valid-faites{display:flex;flex-direction:column;gap:6px;margin-top:4px}
.dr-valid-f{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-top:1px solid var(--v2-trait)}
.dr-valid-f.col{flex-direction:column;align-items:stretch}
.dr textarea.ua-in{min-height:58px}
@media (max-width:900px){
  .dr-row{grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:10px 14px}
  .dr-row>.dr-an{text-align:left;grid-column:1/2}
  .dr-row>.dr-src,.dr-flux>.v2-jauge,.dr-cran>.v2-jauge{grid-column:1/-1}
  .dr-cherche{max-width:none}
  /* fenetre etroite : l'en-tete ne colle plus (il mangerait l'ecran), les familles en
     bandeau qui defile */
  .dr-tete{position:static;margin:0 0 14px;padding:0;border:0;background:none}
  .dr-det-fixe{position:static;margin-top:0;padding-top:0;background:none}
  .dr-esp{display:block}
  .dr-fams{position:static;flex-direction:row;overflow-x:auto;gap:6px;padding:0 0 10px;margin-bottom:16px;border-right:0;border-bottom:1px solid var(--v2-trait)}
  .dr-fam{flex:none;width:auto;min-width:150px}
  .dr-det-o{flex-direction:column;align-items:stretch}
  .dr-filtres{overflow-x:auto}
}

/* =====================================================================
   LES TROIS DOMAINES (07/10/2026) : le choix Public, Prive, Equipe Touma ;
   puis, dans le public et le prive, la liste a gauche et la fiche a droite.
   ===================================================================== */
.ua-dom{display:inline-flex;align-self:flex-start;gap:2px;margin:0 0 14px;padding:4px;border:1px solid var(--v2-trait);
  border-radius:12px;background:var(--v2-surface-2);max-width:100%;overflow-x:auto;scrollbar-width:none}
.ua-dom::-webkit-scrollbar{display:none}
.ua-dom-b{display:inline-flex;align-items:center;gap:8px;border:0;background:none;padding:9px 18px;border-radius:9px;
  font:inherit;font-size:14px;font-weight:600;color:var(--ink-2);cursor:pointer;white-space:nowrap;transition:background var(--v2-t),color var(--v2-t)}
.ua-dom-b:hover{color:var(--ink)}
.ua-dom-b.on{background:var(--v2-surface);color:var(--ink);box-shadow:0 1px 3px rgba(15,23,42,.10)}
.ua-dom-b em{font-style:normal;font-size:11px;background:var(--brand-2);color:#fff;border-radius:9px;padding:1px 7px;font-weight:600}
.ua-dom-touma{margin-left:12px;position:relative}
.ua-dom-touma::before{content:"";position:absolute;left:-7px;top:9px;bottom:9px;width:1px;background:var(--v2-trait-fort)}
.ua-md{display:grid;grid-template-columns:290px minmax(0,1fr);gap:14px;align-items:start}
.ua-md-g{display:flex;flex-direction:column;gap:8px;min-width:0;position:sticky;top:0}
.ua-md-d{display:flex;flex-direction:column;gap:14px;min-width:0}
.ua-md-liste{display:flex;flex-direction:column;background:var(--v2-surface);border:1px solid var(--v2-trait);border-radius:14px;
  padding:6px;max-height:calc(100vh - 290px);overflow:auto}
.ua-md-fam{font-size:11px;font-weight:650;color:var(--ink-2);padding:10px 8px 4px}
.ua-md-fam:first-child{padding-top:4px}
.ua-md-o{display:flex;align-items:center;gap:10px;width:100%;min-width:0;padding:8px;border:0;border-radius:10px;background:none;
  font:inherit;font-size:13px;color:var(--ink);text-align:left;cursor:pointer;transition:background var(--v2-t)}
.ua-md-o:hover{background:var(--v2-surface-2)}
.ua-md-o.on{background:var(--brand-soft);box-shadow:inset 3px 0 0 var(--brand-2)}
.ua-md-o .psoc-cells{margin:0;flex:none;min-height:0}
.ua-md-choix{display:none}
.ua-md-ajout{align-self:flex-start}
.ua-md-form .ua-act{margin-top:12px}
@media (max-width:900px){
  .ua-md{grid-template-columns:minmax(0,1fr)}
  .ua-md-g{position:static}
  .ua-md-liste{display:none}
  .ua-md-choix{display:block}
  .ua-dom-b{padding:8px 12px;font-size:13px}
}
@media (max-width:640px){
  .ua-md-d .ua-tete>.v2-b{width:100%}
}

/* =====================================================================
   LE DOMAINE PRIVE (135) : celui de l'admin pays (psoc-) et l'espace du
   titulaire (pmoi-). Memes cartes que les acces (ua-).
   Une case par batiment dit d'ou viennent ses factures : pleine pour la
   compagnie ou le proprietaire, creuse quand il n'y en a aucune.
   ===================================================================== */
.psoc-cell,.pmoi-cell{display:inline-block;width:12px;height:12px;border-radius:3px;flex:none}
.psoc-cell.creuse,.pmoi-cell.creuse{background:transparent;border:1.5px dashed var(--line-2)}
.psoc-sources{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.psoc-source{display:flex;flex-direction:column;gap:2px}
.psoc-n{font-size:26px;font-weight:700;line-height:1.15;color:var(--ink)}
.psoc-cells{display:flex;flex-wrap:wrap;gap:4px;margin-top:10px;min-height:12px}
.psoc-row-b{grid-template-columns:14px minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr) minmax(0,.8fr) minmax(0,.9fr) 28px}
.psoc-x{width:26px;height:26px;border-radius:7px;border:1px solid transparent;background:none;color:var(--muted);font-size:17px;line-height:1;cursor:pointer}
.psoc-x:hover{border-color:var(--crit-soft);color:var(--crit);background:var(--crit-soft)}
.psoc-li4{grid-template-columns:110px 50px minmax(0,1fr) minmax(0,1fr) auto}
.psoc-cherche{padding:0 16px 10px;display:flex;flex-direction:column;gap:6px}
.ua-form .psoc-cherche,.ua-pad .psoc-cherche{padding:0}
.psoc-resultats{display:flex;flex-direction:column}
.psoc-res{display:flex;align-items:center;gap:9px;padding:8px 6px;border:0;border-top:1px solid var(--v2-trait);background:none;font:inherit;font-size:13px;color:var(--ink);text-align:left;cursor:pointer;min-width:0}
.psoc-res:hover{background:var(--v2-surface-2)}
.psoc-res:first-child{border-top:0}

.pmoi-bat{padding:16px 18px;display:flex;flex-direction:column;gap:12px}
.pmoi-bat-h{display:flex;gap:16px;align-items:flex-start}
.pmoi-bat-k{text-align:right;flex:none}
.pmoi-bat-k b{display:block;font-size:22px;font-weight:700;line-height:1.2;color:var(--ink)}
.pmoi-bat-k span{font-size:11.5px;color:var(--ink-2)}
.pmoi-barres{display:flex;align-items:flex-end;gap:4px;height:52px;padding-bottom:2px;border-bottom:1px solid var(--v2-trait)}
.pmoi-barre{flex:1;max-width:34px;border-radius:3px 3px 0 0;background:var(--brand-2);opacity:.8}
.pmoi-barre:hover{opacity:1}
.pmoi-src{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-2)}
.pmoi-fac{display:flex;flex-direction:column}
.pmoi-fac-r{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr) minmax(0,1fr) minmax(0,1fr) 128px;gap:12px;align-items:center;font-size:12.5px;padding:7px 0;border-top:1px solid var(--v2-trait);color:var(--ink)}
.pmoi-fac-r.ua-hd{padding:4px 0;border-top:0}
.pmoi-fac-r .d{text-align:right}
.pmoi-fac-r>:last-child{justify-self:end}
.pmoi-depot{border-top:1px solid var(--v2-trait);padding-top:14px}
.pmoi-dos{padding:10px 0;border-top:1px solid var(--v2-trait);display:flex;flex-direction:column;gap:3px;margin-top:8px}
.pmoi-dos-h{display:flex;align-items:center;gap:10px}
.pmoi-dos-l{margin-top:4px}
@media (max-width:900px){
  .psoc-sources{gap:6px}
  .psoc-source{padding:10px}
  .psoc-n{font-size:20px}
  .psoc-row-b{grid-template-columns:14px minmax(0,1fr) 28px}
  .psoc-row-b>:nth-child(3),.psoc-row-b>:nth-child(4),.psoc-row-b>:nth-child(5),.psoc-row-b>:nth-child(6){grid-column:2/3}
  .psoc-li4{grid-template-columns:90px 46px minmax(0,1fr)}
  .psoc-li4>:nth-child(n+4){grid-column:3/4;justify-self:start!important}
  .pmoi-fac-r{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:2px}
  .pmoi-fac-r>:first-child{grid-column:1/-1;font-weight:600}
  .pmoi-fac-r>:last-child{grid-column:1/-1;justify-self:start}
  .pmoi-fac-r>:last-child:empty{display:none}
  .pmoi-fac-r.ua-hd{display:none}
  .pmoi-fac-r .d{text-align:left}
}

/* ================= la liseuse du Passeport (v2/liseuse.js) =================
   Le PDF de l'édition, tel qu'il a été fabriqué, sur un fond calme. Une
   barre, le sommaire du document à gauche quand on le demande, les pages
   au centre. Les pages restent blanches dans les deux thèmes : c'est le
   document imprimé, pas une surface de Touma. */
.v2-pdf{position:fixed;inset:0;z-index:96;display:flex;flex-direction:column;background:var(--v2-fond);
  animation:v2-fondu var(--v2-t) ease-out}
.v2-pdf-barre{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 16px;
  background:var(--v2-surface);border-bottom:1px solid var(--v2-trait);box-shadow:var(--v2-ombre)}
.v2-pdf-titre{flex:1 1 220px;min-width:0}
.v2-pdf-titre .t{font-weight:700;font-size:14px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v2-pdf-titre .s{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v2-pdf-outils{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.v2-pdf-groupe{display:flex;align-items:center;gap:6px}
.v2-pdf-carre{min-width:34px;padding-left:0;padding-right:0;font-size:15px}
.v2-pdf-champ{width:46px;text-align:center;font:inherit;font-size:13px;font-variant-numeric:tabular-nums;
  padding:6px 4px;border:1px solid var(--v2-trait-fort);border-radius:var(--v2-r-s);background:var(--v2-surface);color:var(--ink)}
.v2-pdf-total,.v2-pdf-niveau{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.v2-pdf-niveau{min-width:44px;text-align:center}
.v2-pdf-corps{flex:1;display:flex;min-height:0}
.v2-pdf-sommaire{width:290px;flex-shrink:0;overflow:auto;background:var(--v2-surface);border-right:1px solid var(--v2-trait);padding:14px 10px}
.v2-pdf-sommaire ul{list-style:none;margin:0;padding:0}
.v2-pdf-sommaire li a{display:block;padding:6px 10px;border-radius:8px;color:var(--ink);text-decoration:none;font-size:13px;line-height:1.35}
.v2-pdf-sommaire li a:hover{background:var(--v2-surface-2)}
.v2-pdf-sommaire li.n0 a{font-weight:700}
.v2-pdf-sommaire li.n1 a{padding-left:20px}
.v2-pdf-sommaire li.n2 a{padding-left:32px;color:var(--muted)}
.v2-pdf-sommaire li.vide{padding:6px 10px;font-size:13px;color:var(--muted)}
.v2-pdf-defile{flex:1;overflow:auto;outline:none;position:relative}
/* au zoom, la feuille s'élargit à la page la plus large : rien ne déborde à gauche, hors de portée du défilement */
.v2-pdf-feuilles{display:flex;flex-direction:column;align-items:center;gap:18px;padding:20px 20px 40px;width:max-content;min-width:100%;box-sizing:border-box}
.v2-pdf-page{position:relative;background:#FFFFFF;box-shadow:0 1px 3px rgba(16,28,48,.18),0 10px 28px -16px rgba(16,28,48,.45);
  flex-shrink:0;display:flex;align-items:center;justify-content:center}
.v2-pdf-page canvas{display:block}
.v2-pdf-num{font-size:12px;color:#8290A6;font-variant-numeric:tabular-nums}
.v2-pdf-lien{position:absolute;display:block;border-radius:2px}
.v2-pdf-lien:hover{background:rgba(15,61,138,.08)}
.v2-pdf-message{padding:60px 20px;text-align:center;color:var(--muted);font-size:14px}
.v2-pdf-message.erreur{color:var(--crit,#C8362B)}
@media (max-width:760px){
  .v2-pdf-barre{gap:6px;padding:7px 8px}
  .v2-pdf-titre{flex-basis:100%}
  .v2-pdf-titre .t{font-size:13px}
  .v2-pdf-titre .s,.v2-pdf-niveau,.v2-pdf-largeur{display:none}
  .v2-pdf-outils{gap:6px}
  .v2-pdf-barre .v2-b.sm{padding:6px 9px;font-size:12px}
  .v2-pdf-carre{min-width:30px}
  .v2-pdf-sommaire{position:absolute;z-index:2;top:0;bottom:0;left:0;width:min(86vw,320px);box-shadow:var(--v2-ombre-haute)}
  .v2-pdf-corps{position:relative}
  .v2-pdf-feuilles{padding:12px 8px 30px;gap:12px}
}

/* ================= LE TELEPHONE, TYPE PAR TYPE (15/10/2026) =================
   Revue des quinze types d'acces sur telephone (exploitation/parcours/p16_telephone.js). Bayss : « fais attention
   aux petits pieges : la barre de recherche, il y avait des trucs qui etaient coupes ». */
/* un texte qui ne tient pas passe a la ligne (shell.js, deplierTextes) */
@media (max-width:640px){
  .tel-deplie{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}
  /* un texte limite a deux lignes qui en demande trois : toutes ses lignes */
  .tel-lignes{display:block!important;-webkit-line-clamp:unset!important}
}
/* LA RECHERCHE NE COUPE PLUS SES RESULTATS, a toutes les tailles : un nom long passe a la ligne */
.v2-res .t .n,.v2-res .t .d{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:break-word}
.v2-palette-fermer{display:none;align-items:center;height:34px;padding:0 12px;border:1px solid var(--v2-trait);
  border-radius:9px;background:var(--v2-surface-2);font:600 13px var(--ui);color:var(--ink-2);flex-shrink:0;cursor:pointer}
/* au doigt, pas de touche Echap ni de fleches : un bouton Fermer */
@media (max-width:640px),(hover:none) and (pointer:coarse){
  .v2-palette-haut kbd,.v2-palette-pied{display:none}
  .v2-palette-fermer{display:inline-flex}
}
/* sur telephone, la fenetre en haut, toute la largeur, la liste dans ce qui reste au-dessus du clavier : recherche.js
   cale le fond sur la partie visible de l'ecran (visualViewport) */
@media (max-width:640px){
  .v2-palette-fond{box-sizing:border-box;padding:8px;align-items:flex-start}
  .v2-palette{width:100%;max-height:100%;display:flex;flex-direction:column;box-sizing:border-box}
  .v2-palette-haut{padding:10px 10px 10px 14px;gap:10px;flex-shrink:0}
  .v2-palette-liste{max-height:none;flex:1 1 auto;min-height:0}
}/* un champ garde la place de son texte : 16 px imposes sur telephone (le zoom de l'iPhone), et une hauteur fixe de
   30 px le rognait (« Sans comparaison » des Financements) */
@media (max-width:640px){
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]),select{min-height:38px}
}/* le Territoire sur telephone : la synthese de la zone suit la carte dans la page qui defile, au lieu de defiler dans
   un cadre de 38 % de l'ecran (la regle des largeurs moyennes) que la barre du bas recouvrait */
@media (max-width:640px){
  .v2-terr-grille>:nth-child(3){max-height:none;overflow:visible}
}/* des rangees de choix plus larges que l'ecran a 360 px (les filtres du Referentiel, les pastilles de la Production
   de la compagnie) : elles restent dans l'ecran et defilent dans leur cadre */
@media (max-width:640px){
  .dr-filtres{min-width:0;max-width:100%;overflow-x:auto;scrollbar-width:thin}
  .v2-ws-chips{min-width:0;max-width:100%;overflow-x:auto;scrollbar-width:thin}
  .v2-ws-chips button{flex:0 0 auto}
}/* le titre d'une section de la compagnie et ses annees : le titre se cassait au milieu du mot (« Donnee / s ») a cote
   des annees ; il passe au-dessus, les annees dessous, dans leur rangee qui defile */
@media (max-width:640px){
  .v2-cie-titre{flex-wrap:wrap;row-gap:8px;align-items:center}
  .v2-cie-titre h2{flex:1 0 auto}
  .v2-cie-titre>.annees{max-width:100%;overflow-x:auto;scrollbar-width:thin}
  .v2-cie-titre>.annees button{flex:0 0 auto}
}/* un libelle de la barre du bas fait d'un mot plus large que sa case (« Ma consommation ») : coupe avec un trait
   d'union, a la francaise, la ou le navigateur sait le faire (iPhone, Android) ; sinon shell.js le resserre */
@media (max-width:640px){
  .v2-rail .v2-nav span.t,.v2-nav-menu span.t{-webkit-hyphens:auto;hyphens:auto}
}/* SAISIR (15/10/2026, v2/saisir.js) : sur ordinateur, l'entree ne prend pas de place dans le menu (la page reste
   ouvrable par son adresse) ; sur telephone, c'est la premiere case de la barre du bas */
@media (min-width:641px){ .v2-rail-nav a.tel-seul{display:none} }/* ================= SAISIR (15/10/2026, v2/saisir.js) =================
   Pense pour un telephone tenu d'une main : de grandes cases, une seule colonne, des champs a 16 px (pas de zoom de
   l'iPhone), le bouton d'envoi en bas, large. Sur ordinateur, la meme page, centree. */
.sx{box-sizing:border-box;width:100%;max-width:676px;margin:0 auto;padding:24px 28px 40px;display:flex;flex-direction:column;gap:12px}
.sx-tete{display:flex;flex-direction:column;gap:4px;margin-bottom:4px}
.sx-titre{margin:0;font-size:26px;line-height:1.15}
.sx-sous{margin:0;line-height:1.4}
.sx-retour{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;min-height:40px;padding:0 12px 0 8px;margin:0 0 4px -8px;
  border:0;border-radius:10px;background:transparent;color:var(--brand);font:600 14px var(--ui);cursor:pointer}
.sx-retour svg{transform:rotate(180deg)}
.sx-sect{margin-top:8px}
.sx-mission{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border:1px solid var(--v2-trait);border-radius:14px;background:var(--v2-surface)}
.sx-mission>div{display:flex;flex-direction:column;gap:2px}
.sx-mission b{font-size:14px;color:var(--ink)}
.sx-mission span{font-size:13px;color:var(--muted)}
.sx-mission.vide{font-size:14px;color:var(--ink-2);line-height:1.45}
.sx-tuiles{display:flex;flex-direction:column;gap:10px}
.sx-tuile{display:flex;align-items:center;gap:14px;width:100%;min-height:76px;padding:14px 14px 14px 16px;text-align:left;
  border:1px solid var(--v2-trait);border-radius:16px;background:var(--v2-surface);color:var(--ink);font:inherit;cursor:pointer;
  box-shadow:var(--v2-ombre);-webkit-tap-highlight-color:transparent}
.sx-tuile:active,.sx-bat:active{transform:scale(.99);background:var(--brand-soft)}
.sx-tuile:hover{border-color:var(--v2-trait-fort)}
.sx-tuile>svg:last-child,.sx-bat>svg:last-child{flex-shrink:0;color:var(--muted)}
.sx-ic{width:44px;height:44px;flex:0 0 44px;border-radius:12px;background:var(--brand-soft);color:var(--brand);display:flex;align-items:center;justify-content:center}
.sx-tt{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.sx-tt b{font-size:16px;font-weight:700;color:var(--ink);line-height:1.25;overflow-wrap:break-word}
.sx-tt span{font-size:13px;color:var(--muted);line-height:1.35;overflow-wrap:break-word}
.sx-q{font-size:15px;color:var(--ink);margin-top:4px}
.sx-champ{width:100%;min-height:48px;padding:10px 14px;border:1px solid var(--v2-trait-fort);border-radius:12px;background:var(--v2-surface);
  color:var(--ink);font:inherit;font-size:16px;box-sizing:border-box}
textarea.sx-champ{min-height:72px;resize:vertical}
.sx-champ:focus{outline:2px solid var(--brand);outline-offset:1px}
.sx-ligne-pres{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.sx-pres{display:inline-flex;align-items:center;gap:8px;min-height:44px}
.sx-etat{font-size:13px}
.sx-liste{display:flex;flex-direction:column;gap:8px}
.sx-bat{display:flex;align-items:center;gap:12px;width:100%;min-height:60px;padding:10px 14px;text-align:left;border:1px solid var(--v2-trait);
  border-radius:12px;background:var(--v2-surface);color:var(--ink);font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.sx-bat.choisi{border-color:var(--brand);background:var(--brand-soft)}
.sx-changer{flex-shrink:0;font-size:13px;font-weight:700;color:var(--brand)}
.sx-vide{padding:6px 2px;line-height:1.45}
.sx-l{display:flex;flex-direction:column;gap:8px}
.sx-l>span{font-size:13px;font-weight:700;color:var(--ink-2)}
.sx-fixe{font-size:17px;color:var(--ink)}
.sx-form{display:flex;flex-direction:column;gap:16px}
.sx-puces{display:flex;flex-wrap:wrap;gap:8px}
.sx-puce{min-height:44px;padding:0 16px;border:1px solid var(--v2-trait-fort);border-radius:999px;background:var(--v2-surface);
  color:var(--ink);font:600 14px var(--ui);cursor:pointer;-webkit-tap-highlight-color:transparent}
.sx-puce.on{background:var(--ink);border-color:var(--ink);color:var(--v2-surface)}
.sx-piece{display:flex}
.sx-natif{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.sx-grand{width:100%;min-height:52px;justify-content:center;font-size:16px;border-radius:14px;display:inline-flex;align-items:center;gap:10px}
.sx-choisie{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px dashed var(--v2-trait-fort);border-radius:12px;color:var(--ink-2)}
.sx-envoyer{margin-top:4px}
.sx-envoyer[disabled]{opacity:.45}
.sx-aide{line-height:1.45}
.sx-erreur{padding:12px 14px;border-radius:12px;background:color-mix(in srgb,var(--crit) 10%,transparent);color:var(--crit);font-size:14px;line-height:1.45}
.sx-fait{display:flex;align-items:flex-start;gap:12px;padding:16px;border-radius:14px;background:color-mix(in srgb,var(--good) 12%,transparent);
  color:var(--ink);font-size:16px;line-height:1.4}
.sx-fait svg{flex-shrink:0;color:var(--good)}
.sx-actions{display:flex;flex-direction:column;gap:10px}
.sx-envois{display:flex;flex-direction:column;gap:6px}
.sx-envois>div{display:flex;gap:10px;font-size:14px;color:var(--ink-2);line-height:1.4}
.sx-envois .h{flex-shrink:0;font-variant-numeric:tabular-nums;color:var(--muted)}
.sx-lien{align-self:flex-start;margin-top:8px;font-size:14px;font-weight:600;color:var(--brand);text-decoration:none;padding:10px 0}
@media (max-width:640px){
  .sx{padding:14px 16px 30px}
  .sx-titre{font-size:24px}
}/* A QUI SERT UN TYPE D'ACCES (15/10/2026, v2/acces.js) : deux lignes dans sa fiche, avant ses fonctions */
.ua-qui{display:flex;flex-direction:column;gap:6px;margin-top:12px;padding:10px 12px;border-radius:10px;background:var(--v2-surface-2)}
.ua-qui>div{display:flex;flex-direction:column;gap:2px;font-size:13px;line-height:1.45;color:var(--ink)}
.ua-qui b{font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
/* =====================================================================
   MON COMPTE (15/10/2026, Bayss : « assez d'espace pour etre ecrit
   horizontalement »). Chaque bloc sur toute la largeur ; dedans, des
   colonnes a filets qui passent a la ligne d'elles-memes quand la fenetre
   retrecit, et s'empilent sur telephone. Chaque colonne porte son filet a
   gauche et en haut ; ceux du bord sont rognes par le conteneur.
   ===================================================================== */
.cpt-corps{padding:20px 26px 30px;display:flex;flex-direction:column;gap:16px}
.cpt-tete{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.cpt-gestes{display:flex;gap:10px;flex-wrap:wrap}
.cpt-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));margin:6px 0 0 -22px;overflow:hidden}
.cpt-col{min-width:0;padding:14px 22px 6px;margin:-1px 0 0 -1px;border-left:1px solid var(--v2-trait);border-top:1px solid var(--v2-trait)}
.cpt-tt{font-size:10.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.cpt-vals{display:flex;flex-direction:column;gap:10px}
.cpt-val{display:flex;flex-direction:column;gap:2px;font-size:13px;line-height:1.4;min-width:0;overflow-wrap:anywhere}
.cpt-val b{font-weight:600;color:var(--ink)}
.cpt-val .v2-faible{font-size:12px}
.cpt-hist{margin-top:18px}
.cpt-hl{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:14px;font-size:12.5px;padding:7px 0;border-bottom:1px solid var(--v2-trait)}
/* l identite : cinq faits courts, qui tiennent sur une ligne des 1024 px */
.cpt-cols.cpt-cinq{grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr))}
.cpt-bas{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:16px;align-items:start}
@media (max-width:640px){
  /* la marge du telephone, comme les autres ecrans */
  .cpt-corps{padding:16px 16px 30px}
  /* une colonne : le fait sous son nom, l un sous l autre */
  .cpt-cols,.cpt-cols.cpt-cinq{grid-template-columns:minmax(0,1fr)}
  .cpt-hl{grid-template-columns:minmax(0,1fr);gap:2px}
}

/* =====================================================================
   LE TELEPHONE, RETOUR DU 15/10/2026 APRES-MIDI (captures de Bayss sur
   iPhone). « La case de la date depasse, elle est plus longue que les
   autres » ; « pourquoi ca bouge a droite et a gauche ? » ; la barre de
   defilement des onglets « rentre dans le texte » ; « des boutons qui
   mettent du temps avant d'appuyer ».
   - Le champ date d'iPhone a une largeur propre qui ignore celle de sa
     colonne : il depassait, et le corps du panneau, qui defile, glissait
     alors de cote. Le champ tient dans sa colonne, aligne a gauche comme
     les autres, a leur hauteur ; et un panneau ne defile plus qu'en hauteur.
   - L'indicateur de defilement d'iPhone se pose au bas de la rangee : la
     rangee des pastilles garde une marge dessous pour lui.
   - Un toucher part tout de suite : aucun geste de zoom a attendre sur ce
     qui se touche.
   ===================================================================== */
@media (max-width:640px){
  input[type=date],input[type=datetime-local],input[type=month],input[type=time]{
    -webkit-appearance:none;appearance:none;min-width:0;max-width:100%;box-sizing:border-box;
    min-height:40px;text-align:left;line-height:1.3}
  input[type=date]::-webkit-date-and-time-value,input[type=datetime-local]::-webkit-date-and-time-value,
  input[type=month]::-webkit-date-and-time-value,input[type=time]::-webkit-date-and-time-value{text-align:left;margin:0}
  .v2-panneau input[type=date],.v2-panneau input[type=datetime-local],.v2-panneau input[type=month],
  .v2-panneau input[type=time],.sx input[type=datetime-local]{display:block;width:100%}
  .v2-panneau-corps{overflow-x:hidden}
  .v2-pp .hy-modules{padding-bottom:12px}
  a,button,select,label,summary,[role=button],[role=link],[role=tab],.clic{touch-action:manipulation}
}

/* =====================================================================
   SAISIR, LES CHIFFRES EN UNE FOIS (15/10/2026, apres-midi). Les stocks du
   petrolier, ile par ile ; la production du producteur, mois par mois. Un
   chiffre par carte, le champ a droite, la cuve qui se remplit pendant
   qu'on tape (hachuree tant que Touma l'estime) ; un seul bouton.
   ===================================================================== */
.sx-iles{gap:8px}
.sx-stocks,.sx-mois{display:flex;flex-direction:column;gap:10px}
.sx-stk,.sx-m{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 12px;padding:14px 14px 12px;
  border:1px solid var(--v2-trait);border-radius:14px;background:var(--v2-surface)}
.sx-stk .nom,.sx-m .m{display:flex;align-items:center;gap:9px;min-width:0;flex-wrap:wrap}
.sx-stk .nom b,.sx-m .m b{font-size:15.5px;color:var(--ink)}
.sx-stk .nom .v2-faible{font-size:12.5px}
.sx-stk .pastille{width:11px;height:11px;border-radius:3px;flex-shrink:0}
.sx-stk .saisie,.sx-m .saisie{display:flex;align-items:center;gap:7px}
.sx-nb{width:132px;min-height:46px;text-align:right;font-size:19px!important;font-weight:700;font-variant-numeric:tabular-nums;padding:8px 12px}
.sx-nb::placeholder{color:var(--faint);font-weight:500}
.sx-stk .u,.sx-m .u{font-size:13px;font-weight:600;color:var(--muted);min-width:30px}
.sx-stk .jauge{grid-column:1/-1;display:flex;align-items:center;gap:10px}
.sx-cuve{position:relative;flex:1;height:12px;border-radius:7px;background:var(--v2-surface-2);overflow:hidden;
  box-shadow:inset 0 0 0 1px var(--v2-trait)}
.sx-cuve i{display:block;height:100%;border-radius:7px;background:var(--c);transition:width .22s ease-out}
.sx-cuve.estime i{background:repeating-linear-gradient(135deg,var(--c) 0 5px,color-mix(in srgb,var(--c) 35%,transparent) 5px 9px)}
.sx-stk .pct{min-width:44px;text-align:right;font-size:13.5px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink-2)}
.sx-stk .pied{grid-column:1/-1;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
.sx-stk .pied .att,.sx-m.attente .etat{color:var(--warn,#B7791F);font-weight:600}
.sx-m .m i{width:10px;height:10px;border-radius:3px;flex-shrink:0;background:var(--v2-trait)}
.sx-m.saisi .m i{background:var(--good)}
.sx-m.manque .m i{background:var(--warn,#D69E2E)}
.sx-m.attente .m i{box-shadow:0 0 0 2px var(--brand)}
.sx-m .etat{grid-column:1/-1;font-size:12.5px;color:var(--muted);margin-top:-4px}
.sx-centrale .sx-cal-l{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:3px}
.sx-cal{display:inline-flex;gap:3px}
.sx-cal i{display:block;width:8px;height:13px;border-radius:2px;background:var(--v2-trait)}
.sx-cal i.saisi{background:var(--good)}
.sx-cal i.manque{background:var(--warn,#D69E2E)}
.sx-cal i.hors{background:transparent;box-shadow:inset 0 0 0 1px var(--v2-trait-fort)}
.sx-centrale em{font-style:normal;font-size:12.5px;font-weight:700;color:var(--good)}
.sx-centrale em.manque{color:var(--warn,#B7791F)}
@media (max-width:640px){
  .sx-nb{width:118px}
  /* une ligne cachee reste cachee, meme quand un tableau devient des fiches */
  [hidden]{display:none!important}
}
/* les couleurs des produits du petrolier, les memes que sur son poste (.v2-pp.hy) */
.sx{--g6:#E0A11B;--g1:#2A63C8;--g2:#5B8CF0;--g3:#B5367A;--g4:#0E9DAE;--g5:#3A9A5B}
:root[data-theme="dark"] .sx{--g6:#E3A52E;--g1:#5B8CF0;--g2:#8FB0F5;--g3:#D65A9C;--g4:#3CC4D3;--g5:#5CC482}
.sx-m .m b,.sx-stk .nom b{font-family:var(--ui);letter-spacing:0}
/* la mission d'un vehicule precis : son code se lit en entier (15/10/2026) */
.v2-pp .hy-ajout .hy-in.hy-veh{flex:0 1 220px}
/* le nouveau destinataire (18/10/2026, Bayss : au telephone, ses cases se collaient) : la forme des autres ajouts ;
   dans le formulaire de mission, il prend toute la ligne et se detache sur le fond */
.v2-pp .hy-mis-zone{flex:1 1 100%}
.v2-pp .hy-mis-zone:empty{display:none}
.v2-pp .hy-ajout .hy-ajout{background:var(--v2-surface)}
@media (max-width:640px){
  /* au telephone, un champ par ligne : rien n'est coupe, ni le code d'un camion, ni un depot */
  .v2-pp .hy-ajout{gap:10px}
  .v2-pp .hy-ajout>.k{flex:1 1 100%}
  .v2-pp .hy-ajout>.hy-in,.v2-pp .hy-ajout>input,.v2-pp .hy-ajout>select,.v2-pp .hy-ajout>.v2-b{flex:1 1 100%!important;min-width:0;max-width:100%}
}
/* LA CARTE DES INSTALLATIONS AU TELEPHONE (15/10/2026, Bayss : « quand tu choisis une île, tu retires la carte de
   l'île » ; et, en vue nationale, les trois îles « rentrent dans » le texte). Sur ordinateur, la carte remplit la
   hauteur que la grille lui donne (hauteur 0, puis etiree) ; au telephone, le bloc n'a pas de hauteur imposee : la
   carte d'une ile retombait a zero, et les trois iles debordaient sur le titre et les lignes. Ici, la carte prend la
   hauteur de son dessin. */
@media (max-width:640px){
  .v2-ws-focus .fh .bloc.carte{overflow:visible;min-height:auto}
  .v2-ws-focus .bloc.carte .sil{flex:none!important;height:auto!important;width:100%;max-width:260px;min-height:0;max-height:none}
  .v2-ws-focus .bloc.carte .trio{flex:none!important;min-height:auto;align-items:flex-end;margin:6px 0 4px}
  .v2-ws-focus .bloc.carte .trio .ile .sil{max-width:100%;max-height:130px;width:100%}
}

/* =====================================================================
   LES BATIMENTS AU TELEPHONE (15/10/2026, Bayss : « les filtres ne sont pas
   alignes d'une maniere homogene », « des donnees inutiles en haut, de la
   perte d'espace », « le bloc carre avec les informations », « ca se rentre
   dedans »). Une grille de deux colonnes egales : la recherche en entier,
   puis zone, usage, etat, donnees, deux par deux ; « Plus de filtres » et le
   tri cote a cote. Les cartes seulement : le tableau a huit colonnes devenait
   une suite de fiches mal alignees. Le bouton de la carte rejoint le titre.
   ===================================================================== */
.bt-etat{flex-shrink:0;align-self:flex-start;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700;line-height:1.35;white-space:nowrap;
  border:1px solid currentColor}
.bt-etat.warn{color:var(--warn,#B7791F);background:color-mix(in srgb,var(--warn,#B7791F) 9%,transparent)}
.bt-etat.crit{color:var(--crit);background:color-mix(in srgb,var(--crit) 9%,transparent)}
@media (max-width:640px){
  .bt-tete{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px 12px}
  .bt-tete>.v2-grandir{display:none}
  .bt-tete>a.v2-b{grid-column:2;grid-row:1;align-self:start;min-height:40px;padding:0 14px;font-size:13px}
  .bt-tete>.bt-iles-boite{display:none}
  .bt-filtres{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
  .bt-filtres>.bt-cherche{grid-column:1/-1;order:-2;width:auto}
  .bt-filtres>.bt-iles-boite{order:-1;display:block;width:auto}
  .bt-filtres>.bt-iles-boite .bt-iles{display:none}
  .bt-filtres>.bt-iles-boite .bt-iles-tel{display:block;width:100%}
  .bt-filtres>.v2-grandir{display:none}
  .bt-filtres>select,.bt-filtres>button{width:100%;min-width:0;max-width:100%;margin:0}
  .bt-filtres>.bt-vider{grid-column:1/-1}
  .bt-modes{display:grid!important;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center}
  .bt-modes>.v2-grandir{display:none}
  .bt-modes>label{justify-content:flex-end;min-width:0}
  .bt-modes>label select{min-width:0;flex:1;max-width:100%}
}
@media (max-width:640px){
  /* « Toutes les données » prend la ligne entiere, « Plus de filtres » remonte a cote de l'etat ; le tri sans son mot */
  .bt-filtres>select:nth-of-type(3){grid-column:1/-1;order:1}
  .bt-modes>label>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
}

/* LA RECHERCHE SUR ORDINATEUR (15/10/2026, Bayss : le texte du champ « Un batiment, un territoire, une action » rogne
   en haut). Le champ heritait de la hauteur de ligne serree de la page (`font:inherit`) : a 16 px, le haut des lettres
   depassait de sa boite. Il garde sa propre hauteur de ligne. */
.v2-palette-haut input{line-height:1.5;min-height:28px;padding:2px 0}

/* =====================================================================
   LA COMPAGNIE D'ELECTRICITE, RETOUR DU 15/10/2026 AU SOIR
   - La saisie dans la case : un champ, OK, et « i » pour le detail.
   - Au telephone, une rangee en boite devient une carte : son coin arrondi
     et son filet de gauche, penses pour une rangee, s'enroulaient autour du
     nom (« ( Voidjou »).
   - La Production au telephone : une carte par centrale, son nom, son type,
     puis trois chiffres cote a cote (installee, production du mois, gasoil
     ou stockage) ; un toucher ouvre sa fiche.
   - La fiche d'une centrale au telephone : le nom sur sa ligne (il se lisait
     une lettre par ligne), les chiffres en grille, les caracteristiques le
     nom au-dessus de la valeur.
   - Le choix d'une ile : une rangee de pastilles qui passe a la ligne.
   ===================================================================== */
.v2-case{display:inline-flex;align-items:center;gap:4px;justify-content:flex-end}
.v2-case-in{width:96px;min-width:0;font:inherit;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;text-align:right;padding:5px 7px;
  border:1px solid var(--brand);border-radius:7px;background:var(--v2-surface);color:var(--ink);outline:none;box-shadow:0 0 0 3px var(--brand-soft)}
.v2-case-in.ko{border-color:var(--crit);box-shadow:0 0 0 3px color-mix(in srgb,var(--crit) 15%,transparent)}
.v2-case-in::placeholder{color:var(--faint);font-weight:500}
.v2-case-ok{height:28px;padding:0 9px;border:0;border-radius:7px;background:var(--brand);color:#fff;font:700 12px var(--ui);cursor:pointer}
.v2-case-info{width:24px;height:24px;border-radius:50%;border:1px solid var(--v2-trait-fort);background:var(--v2-surface);color:var(--muted);
  font:700 12px/1 Georgia,serif;font-style:italic;cursor:pointer}
td.edition{background:var(--brand-soft)!important}
.v2-ws-barre.ile-choix{margin:4px 0 10px}
.sx-journal{display:flex;flex-direction:column;gap:12px;margin-top:10px;padding-top:12px;border-top:1px solid var(--v2-trait)}
.sx-deux{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:10px}
@media (max-width:640px){
  .v2-case-in{width:110px}
  .v2-ws-barre .v2-seg{flex-wrap:wrap;row-gap:6px}
  /* une rangee en boite devient une carte */
  table.tel-fiches.boite>tbody>tr>td{border-radius:0!important;box-shadow:none!important;background-image:none!important;background-color:transparent!important}
  /* une carte entiere, son filet tout autour : la barre grise de gauche se lisait comme un defaut d'affichage (15/10/2026) */
  table.tel-fiches.boite>tbody>tr:not(.groupe){background:var(--surface);border-radius:14px;margin:0 0 10px;border:1px solid var(--v2-trait);box-shadow:none}
  table.tel-fiches.boite>tbody>tr.on{border-color:var(--brand);background:var(--brand-soft)}
  /* la Production : une carte par centrale */
  table.registre.tel-fiches>tbody>tr.site{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px 12px;padding:12px 14px 12px 16px}
  table.registre.tel-fiches>tbody>tr.site>td{padding:0!important;text-align:left!important;font-size:13px}
  table.registre.tel-fiches>tbody>tr.site>td:nth-child(1){grid-column:1/-1;font-size:15px}
  table.registre.tel-fiches>tbody>tr.site>td:nth-child(2){grid-column:1/-1;font-size:12.5px;color:var(--muted);margin-bottom:8px}
  table.registre.tel-fiches>tbody>tr.site>td:nth-child(2)::before{content:none}
  table.registre.tel-fiches>tbody>tr.site>td:nth-child(4),table.registre.tel-fiches>tbody>tr.site>td:nth-child(6),
  table.registre.tel-fiches>tbody>tr.site>td:nth-child(8),table.registre.tel-fiches>tbody>tr.site:not(.ch)>td:nth-child(9){display:none}
  table.registre.tel-fiches>tbody>tr.site>td::before{float:none;display:block;max-width:none;margin:0 0 2px;font-size:10px;letter-spacing:.06em;line-height:1.3}
  table.registre.tel-fiches>tbody>tr.site i.fam{position:static;display:inline-block;transform:none;width:4px;height:15px;margin-right:8px;vertical-align:-2px}
  table.registre.tel-fiches>tbody>tr.site td:first-child{padding-left:0!important}
  table.registre.tel-fiches>tbody>tr.groupe>td{padding:16px 2px 6px!important}
  /* la fiche d'une centrale */
  .v2-cie .ftete{flex-direction:column;align-items:stretch;gap:12px;padding:16px 16px 14px 20px}
  .v2-cie .ftete .g{padding-left:0}
  .v2-cie .ftete h2{font-size:22px;overflow-wrap:break-word}
  .v2-cie .ftete .d{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px}
  .v2-cie .ftete .d .cel b.n{font-size:19px}
  .v2-cie .ftete>.v2-b{align-self:flex-start}
  .v2-cie .fbloc{padding:14px 16px 16px}
  .v2-cie .fkv{grid-template-columns:minmax(0,1fr);gap:1px;font-size:14px}
  .v2-cie .fkv .k{font-size:11.5px;margin-top:9px}
  .v2-cie .fkv .k:first-child{margin-top:0}
  .v2-cie .fkv .v{font-weight:600;overflow-wrap:break-word}
  .v2-cie .fil{flex-wrap:wrap;row-gap:4px}
}

/* LES BATIMENTS EN TABLEAU AU TELEPHONE (15/10/2026) : les colonnes restent, le tableau defile en largeur dans sa carte,
   le nom reste fige a gauche ; la case de selection et la courbe des douze mois passent (trop etroites pour le doigt) */
@media (max-width:640px){
  .bt-tbl.tel-defile{min-width:880px;font-size:13px}
  .bt-tbl.tel-defile th:first-child,.bt-tbl.tel-defile td:first-child,.bt-tbl.tel-defile .bt-mois{display:none}
  .bt-tbl.tel-defile th:nth-child(2),.bt-tbl.tel-defile td:nth-child(2){position:sticky;left:0;z-index:2;background:var(--v2-surface);
    min-width:150px;max-width:170px;box-shadow:1px 0 0 var(--v2-trait)}
  .bt-tbl.tel-defile thead th:nth-child(2){z-index:3}
  .bt-tbl.tel-defile td:nth-child(2) .nom{white-space:normal;overflow-wrap:break-word}
  .bt-tbl.tel-defile td,.bt-tbl.tel-defile th{padding-top:10px;padding-bottom:10px}
}

/* L'ACCUEIL AU TELEPHONE (15/10/2026) : le pays en tete, au-dessus de la carte ; le bonjour et le titre ne se repetent
   pas dans la scene */
.v2-acc-tete-tel{display:none}
@media (max-width:640px){
  .v2-acc-tete-tel{display:flex;flex-direction:column;gap:4px;padding:16px 16px 12px}
  .v2-acc-tete-tel .v2-lab{font-size:11px}
  .v2-acc-tete-tel .v2-acc-titre{margin:0;font-size:28px;line-height:1.1;color:var(--ink)}
  .v2-acc-pays>.v2-acc-titre,.v2-acc-salut{display:none!important}
}
@media (max-width:640px){
  /* les pastilles de choix (famille, ile) : elles passent a la ligne, chacune entiere, au lieu de couper la derniere */
  .v2-ws-chips{flex-wrap:wrap;border:0;border-radius:0;gap:6px;overflow:visible}
  .v2-ws-chips button{border:1px solid var(--c-line2)!important;border-radius:999px;padding:7px 13px;min-height:36px}
  .v2-ws-chips button.on{border-color:var(--ink)!important}
  /* le carre de couleur reste devant son libelle, meme long */
  .sx-m .m,.sx-stk .nom{flex-wrap:nowrap;align-items:flex-start}
  .sx-m .m i,.sx-stk .pastille{margin-top:5px}
  .sx-m .m b{min-width:0}
}
@media (max-width:640px){
  /* le depot d'un fichier : une colonne, chaque champ sur toute la largeur, le bouton en bas */
  .v2-cie-fichiers .depot{display:flex!important;flex-direction:column;align-items:stretch;gap:12px}
  .v2-cie-fichiers .depot>*{width:auto!important;max-width:100%;min-width:0;grid-column:auto!important}
  .v2-cie-fichiers .v2-fichier{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
  .v2-cie-fichiers .depot .v2-b.premier{width:100%;justify-content:center;min-height:46px}
}

/* =====================================================================
   LES DONNEES, UN TABLEUR (15/10/2026, Bayss : « le tableau est trop
   bizarre ; t'as de l'espace, utilise »). Sur ordinateur, plus une boite
   par case : des rangees aerees, le chiffre lisible, ce que la compagnie a
   declare en gras, ce que Touma propose en clair, le mois a confirmer
   souligne ; un clic sur une case la remplit sur place.
   ===================================================================== */
@media (min-width:641px){
  .v2-cie-matrice{max-height:none;border:1px solid var(--c-line2);border-radius:14px;background:var(--surface)}
  .v2-cie-matrice table{border-collapse:collapse;border-spacing:0;font-size:14px}
  .v2-cie-matrice th{background:var(--surface);padding:14px 14px 12px;font-size:11px}
  .v2-cie-matrice th.attendu{color:var(--warn,#B7791F);box-shadow:inset 0 -3px 0 var(--warn,#D69E2E)}
  .v2-cie-matrice th.g,.v2-cie-matrice td.g{background:var(--surface);border-right:1px solid var(--c-line2)}
  .v2-cie-matrice tbody tr td{border-bottom:1px solid var(--c-line)}
  .v2-cie-matrice tbody tr:last-child td{border-bottom:0}
  .v2-cie-matrice td.g{padding:12px 18px}
  .v2-cie-matrice td.g b{font-size:14px}
  .v2-cie-matrice td.c{border:0!important;border-radius:0!important;box-shadow:none!important;background:transparent;background-image:none!important;
    height:54px;padding:0 14px!important;font-size:14.5px;position:relative}
  .v2-cie-matrice td.c.e-decl{font-weight:800;color:var(--ink)}
  .v2-cie-matrice td.c.e-der,.v2-cie-matrice td.c.e-ref,.v2-cie-matrice td.c.e-rep,.v2-cie-matrice td.c.e-stale{font-weight:500;color:var(--muted)}
  .v2-cie-matrice td.c.vide{color:var(--faint);background:transparent}
  .v2-cie-matrice td.c.futur,.v2-cie-matrice td.c.courant{background:repeating-linear-gradient(135deg,transparent 0 6px,var(--c-surf2) 6px 9px)!important}
  .v2-cie-matrice td.c.clic:hover{background:var(--brand-soft)!important}
  .v2-cie-matrice td.an{background:var(--c-surf2);padding:0 18px;font-size:15px;border-left:1px solid var(--c-line2)}
  .v2-cie-matrice td.d{padding:0 16px}
}
@media (max-width:640px){
  /* les trois modes sur une ligne, le tri sur la suivante, entier */
  .bt-modes{grid-template-columns:minmax(0,1fr)!important}
  .bt-modes>label select{width:100%}
}

/* UNE LIGNE CALCULEE DANS SAISIR (15/10/2026) : elle se lit comme les autres, sans champ ; sa note dit d'ou elle vient */
.sx-m.calcule{cursor:default}
.sx-m.calcule .saisie{display:flex;align-items:baseline;justify-content:flex-end;gap:6px;min-height:44px}
.sx-m.calcule .sx-calc-v{font-size:20px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.sx-m.calcule .m i{background:var(--v2-trait)}
.sx-m.calcule .sx-petit{min-height:36px;padding:6px 12px;font-size:13px}
.v2-cie-matrice td.calc{cursor:default}

/* LE TERRAIN DE LA COMPAGNIE PETROLIERE DANS SAISIR (15/10/2026) : la question au-dessus de ses puces, le vehicule en
   tuile (son code en gros), les missions ouvertes en cartes avec leur statut au doigt */
.sx-q{margin:14px 0 8px;font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--muted)}
.sx-puces .sx-puce .pastille{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:8px;vertical-align:1px}
.sx-puce.discret{border-style:dashed;color:var(--muted)}
.sx-vehs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.sx-veh{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:68px;padding:10px 12px;text-align:left;
  border:1px solid var(--v2-trait-fort);border-radius:12px;background:var(--v2-surface);color:var(--ink);font:inherit;cursor:pointer}
.sx-veh b{font-size:16px;font-weight:650}
.sx-veh span{font-size:12px;color:var(--muted)}
.sx-veh .c{font-variant-numeric:tabular-nums}
.sx-veh.on{border-color:var(--brand);background:var(--brand-soft);box-shadow:inset 0 0 0 1px var(--brand)}
.sx-missions{display:flex;flex-direction:column;gap:10px}
.sx-mi{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid var(--v2-trait);border-radius:14px;background:var(--v2-surface)}
.sx-mi .t{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.sx-mi .t b{font-size:15px}
.sx-mi .t span,.sx-mi .s{font-size:13px;color:var(--muted)}
.sx-mi .sx-statuts{margin-top:6px}
.sx-mi .sx-statuts .sx-puce{min-height:40px;padding:0 14px}
.sx-deux.egal{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.sx-m .m .pastille{display:inline-block;width:9px;height:9px;border-radius:50%;flex:none}
.sx-tt .manque{color:var(--warn,#b7791f)}

/* LA FACTURE DU PROPRIETAIRE DANS SAISIR (15/10/2026) : le formulaire de sa page, a pleine largeur, ses champs a la
   taille du doigt */
.sx-pf{margin-top:12px}
.sx-pf .pmoi-depot{padding:0;border:0;background:none}
.sx-pf .ua-g2{gap:12px}
.sx-pf input{min-height:48px;font-size:16px}
.sx-pf .ua-act{margin-top:16px;gap:10px}
.sx-pf .ua-act .v2-b{flex:1;min-height:52px;font-size:16px}

/* LA SAISIE DANS UNE CELLULE D'ECHELON OU DANS LA CHAINE (15/10/2026) : le champ prend la place du chiffre */
.cel b.n.edition,.et b.n.edition{display:flex;align-items:center;gap:6px;font-size:inherit}
.cel b.n.edition .v2-case-in,.et b.n.edition .v2-case-in{width:min(140px,60vw);font-size:16px}

/* L'ILE QUI SE PLIE DANS LA PRODUCTION (15/10/2026) : la fleche dit l'etat ; pliee, l'ile est une carte d'une ligne */
.v2-ws-tbl tr.groupe.pli td{position:relative;padding-right:28px}
.v2-ws-tbl tr.groupe.pli td svg{position:absolute;right:6px;top:50%;margin-top:-2px;transition:transform .18s;color:var(--muted)}
.v2-ws-tbl tr.groupe.pli.plie td svg{transform:rotate(-90deg)}
@media (max-width:640px){
  .v2-ws-tbl tr.groupe.pli td{display:flex!important;flex-wrap:wrap;align-items:baseline;gap:4px 10px;min-height:52px;padding:14px 40px 12px 14px!important;
    border:1px solid var(--v2-trait);border-radius:14px;background:var(--v2-surface)!important;margin-top:10px}
  .v2-ws-tbl tr.groupe.pli td svg{right:14px;top:22px;margin-top:0}
}

/* LES SECTIONS PLIABLES DU POSTE PETROLIER AU TELEPHONE (15/10/2026) */
@media (max-width:640px){
  .v2-pp .hy-pan.pliable>.hy-pt{cursor:pointer;position:relative;padding-right:30px;min-height:28px}
  .v2-pp .hy-pan.pliable>.hy-pt>svg{position:absolute;right:0;top:3px;color:var(--muted);transition:transform .18s}
  .v2-pp .hy-pan.plie>.hy-pt>svg{transform:rotate(-90deg)}
  .v2-pp .hy-pan.plie>:not(.hy-pt){display:none!important}
  .v2-pp .hy-pan.plie{gap:0;padding-bottom:16px}
}

.sx-m.calcule>.v2-b.sx-petit{grid-column:1/-1;justify-self:start;margin-top:2px}

/* LA GRILLE DES DONNEES TIENT DANS L'ECRAN (15/10/2026, Bayss : « t'as de l'espace, utilise ») : a 1536 px, la colonne
   de l'annee finissait coupee a droite. Les mois se resserrent, le geste de la ligne passe sur deux lignes */
@media (min-width:641px){
  .v2-cie-matrice table{width:100%}
  .v2-cie-matrice td.c{padding:0 6px!important;font-variant-numeric:tabular-nums}
  .v2-cie-matrice th{padding:14px 6px 12px}
  .v2-cie-matrice th.g,.v2-cie-matrice td.g{min-width:0;width:150px;padding-left:16px;padding-right:12px}
  .v2-cie-matrice td.an{padding:0 12px;white-space:nowrap}
  .v2-cie-matrice td.d{padding:0 10px;width:92px}
  .v2-cie-matrice td.d .lien{white-space:normal;text-align:left;font-size:12px;line-height:1.3}
}
/* une ligne calculee encore vide ne montre pas son unite seule (les pertes la retrouvent quand on tape) */
.sx-m.calcule .sx-calc-v:empty+.u{display:none}

/* LES SECTIONS PLIABLES DES PAGES LONGUES AU TELEPHONE (15/10/2026 : Financements, Budget) */
@media (max-width:640px){
  .tel-pliable>.tel-pli-t{cursor:pointer;position:relative;padding-right:40px!important;min-height:30px}
  .tel-pliable>.tel-pli-t>svg:last-child{position:absolute;right:16px;top:2px;color:var(--muted);transition:transform .18s}
  .tel-plie>.tel-pli-t>svg:last-child{transform:rotate(-90deg)}
  .tel-plie>:not(.tel-pli-t){display:none!important}
  .tel-plie>.tel-pli-t .cmd{display:none}
  section.fn-pan.tel-plie{padding-bottom:4px}
  section.bu-card.tel-plie{padding-bottom:14px}
}

/* « BUDGET ET REALISE » AU TELEPHONE (15/10/2026) : chaque nature en fiche, son nom et sa barre sur toute la largeur,
   puis credit, realise et taux cote a cote avec leur libelle ; plus de defilement de cote */
@media (max-width:640px){
  .bu-x3{overflow:visible!important}
  .bu-x3 .r.tete{display:none}
  .bu-x3 .r{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px 12px!important;padding:14px 0!important;min-width:0!important}
  .bu-x3 .r>.nm,.bu-x3 .r>.j,.bu-x3 .r>:last-child{grid-column:1/-1}
  .bu-x3 .r>.n{text-align:left;white-space:normal}
  .bu-x3 .r>.n[data-k]::before{content:attr(data-k);display:block;margin-bottom:2px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
  .bu-x3 .nm b{white-space:normal}
}

/* LE TEXTE GARDE SA TAILLE SUR IPHONE (16/10/2026, Bayss : « pourquoi tout est écrit en grand comme ça ») : Safari
   grossit de lui-meme le texte des blocs qu'il juge longs (la fiche d'une centrale passait de 14 a 20 px) ; les tailles
   sont celles de la feuille de style, rien d'autre */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.v2-cie .ftete .fgestes{display:flex;flex-wrap:wrap;gap:10px}
@media (max-width:640px){
  /* la compagnie et ses fiches a pleine largeur : 30 px de marge s'ajoutaient aux 16 px de la page */
  .v2-cie{padding-left:0;padding-right:0}
  .v2-cie .ftete .fgestes{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:10px}
  .v2-cie .ftete .fgestes .v2-b{width:100%;justify-content:center;min-height:44px;padding:0 10px}
  /* les caracteristiques : le libelle a gauche, la valeur a droite, une ligne chacune */
  .v2-cie .fkv{grid-template-columns:minmax(96px,auto) minmax(0,1fr)!important;gap:0!important;font-size:13.5px}
  .v2-cie .fkv .k,.v2-cie .fkv .v{padding:9px 0;border-top:1px solid var(--v2-trait);margin:0!important}
  .v2-cie .fkv .k:first-child,.v2-cie .fkv .k:first-child+.v{border-top:0}
  .v2-cie .fkv .k{font-size:12px;padding-right:12px}
  .v2-cie .fkv .v{text-align:right}
}

/* SAISIR EN MENUS DEROULANTS (16/10/2026) : un menu sous son libelle, a la taille du doigt ; deux menus courts cote a
   cote ; des titres plus sobres (« t'as écrit tellement gros ») */
.sx-select{width:100%;min-height:46px;padding:0 38px 0 14px;border:1px solid var(--v2-trait-fort);border-radius:12px;background:var(--v2-surface);
  color:var(--ink);font:inherit;font-size:16px;-webkit-appearance:none;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%237a8699' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center}
.sx-l-menu{gap:6px;margin-top:10px}
.sx-l-menu>span{font-size:12px;font-weight:600;color:var(--muted)}
.sx-quoi{margin:8px 2px 2px;font-size:13px;color:var(--muted)}
.sx-pp{margin-top:12px}
.sx-pp .hy-ajout{background:var(--v2-surface)}
.sx-titre{font-size:22px!important;letter-spacing:-.01em}
.sx-sous{font-size:13px}
@media (max-width:640px){
  .sx-titre{font-size:21px!important}
  .sx-tuile{min-height:64px;padding:12px 12px 12px 14px;gap:12px}
}

/* LES FILTRES DES PAGES EN MENU AU TELEPHONE (16/10/2026) : le meme dessin que les menus de Saisir */
@media (max-width:640px){
  .v2-ws-select{flex:1 1 100%;width:100%;min-height:44px;padding:0 38px 0 14px;border:1px solid var(--v2-trait-fort);border-radius:12px;background-color:var(--v2-surface);
    color:var(--ink);font:inherit;font-size:16px;-webkit-appearance:none;appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%237a8699' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:right 14px center}
  .v2-ws-barre{gap:8px}
}
