/* Fransou · Commerce v2 · thème Encre (charte v0.3, § 3 à 5). Toutes les classes portent le préfixe cm- et tout est rangé sous .cm2 :
   aucune règle ne déborde sur le reste de l'appli, aucune règle de l'appli ne déborde ici. Six jetons, aucun dégradé ni verre ni ombre,
   rien sous 12 px, un seul bouton plein par écran. Sur Encre, le texte secondaire est #BCC6C9 ; #536066 ne sert qu'aux filets.
   Les teintes de données (d1 à d4) ne servent qu'aux graphiques et aux pastilles de légende. */
@font-face{font-family:'Fransou Texte';src:url('factures-v2/fonts/FransouTexte-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Fransou Texte';src:url('factures-v2/fonts/FransouTexte-Medium.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Fransou Texte';src:url('factures-v2/fonts/FransouTexte-Semibold.woff2') format('woff2');font-weight:600;font-display:swap}

.cm2{
  --encre:#0C181C;--blanc:#FFFFFF;--surface:#F3F4F3;--ligne:#D7DDDE;
  --police:'Fransou Texte',system-ui,sans-serif;
  --r-pastille:4px;--r-champ:5px;--r-bouton:8px;--r-carte:10px;--r-bloc:12px;--duree:160ms;--courbe:cubic-bezier(.2,.7,.2,1);
  position:absolute;inset:0;overflow:hidden;z-index:1;font:400 15px/1.6 var(--police);font-synthesis:none;font-variant-numeric:tabular-nums;-webkit-text-size-adjust:100%;text-align:left;letter-spacing:normal
}
.cm2[data-theme="sombre"],.cm2:not([data-theme]){--fond:#0C181C;--texte:#FFFFFF;--sec:#BCC6C9;--filet:#536066;--carte:#122328;--carte-2:#17303a;--soie:#FFFFFF;--soie-op:.045;--plein-fond:#FFFFFF;--plein-texte:#0C181C;--survol:#1c3640;--d1:#8EC5FF;--d2:#9AD9A6;--d3:#F0C987;--d4:#F29E9E;--cellule:142,197,255}
.cm2[data-theme="clair"]{--fond:#FFFFFF;--texte:#0C181C;--sec:#536066;--filet:#D7DDDE;--carte:#F3F4F3;--carte-2:#E8ECEC;--soie:#0C181C;--soie-op:.04;--plein-fond:#0C181C;--plein-texte:#FFFFFF;--survol:#E8ECEC;--d1:#1F5FAE;--d2:#2A7A3B;--d3:#8A5A00;--d4:#B03A3A;--cellule:31,95,174}
.cm2{background:var(--fond);color:var(--texte)}
.cm2 *,.cm2 *::before,.cm2 *::after{box-sizing:border-box}
.cm2 a{color:inherit;text-decoration:none}
.cm2 button,.cm2 input,.cm2 textarea,.cm2 select{font:inherit;color:inherit;letter-spacing:normal;margin:0}
.cm2 button{cursor:pointer;background:transparent;border:0;padding:0;text-align:inherit}
.cm2 button:disabled,.cm2 [aria-disabled="true"]{cursor:default;opacity:.55}
.cm2 svg{width:20px;height:20px;flex:none}
.cm2 svg.cm-svg{width:100%;height:auto}
.cm2 h1,.cm2 h2,.cm2 h3,.cm2 p,.cm2 ul,.cm2 ol,.cm2 dl,.cm2 dd,.cm2 figure{margin:0}
.cm2 table{border-spacing:0;border-collapse:collapse}
.cm2 :focus-visible{outline:2px solid var(--texte);outline-offset:3px}
.cm2 .cm-vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.cm2 .cm-chargement{padding:28px 40px;color:var(--sec)}
.cm2 .cm-ecran{display:flex;flex-direction:column;height:100%;position:relative}

/* En-tête : le nom seul (charte p. 11), un filet dessous */
.cm2 .cm-entete{display:flex;align-items:center;justify-content:space-between;gap:24px;height:72px;flex:none;padding:0 40px;border-bottom:1px solid var(--filet);position:relative;z-index:3;background:var(--fond)}
.cm2 .cm-gauche{display:flex;align-items:center;gap:32px;min-width:0}
.cm2 .cm-sig{display:inline-flex;align-items:center;min-height:44px}
.cm2 .cm-sig img{height:20px;width:auto}
.cm2[data-theme="clair"] .cm-sig img{filter:invert(1)}
.cm2 .cm-ariane{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--sec);white-space:nowrap;min-width:0}
.cm2 .cm-ariane a{color:var(--sec);min-height:44px;display:inline-flex;align-items:center}
.cm2 .cm-ariane a:hover{color:var(--texte)}
.cm2 .cm-ariane b{font-weight:500;color:var(--texte);overflow:hidden;text-overflow:ellipsis}
.cm2 .cm-ariane i{font-style:normal;color:var(--sec)}
.cm2 .cm-droite{display:flex;align-items:center;gap:12px}
.cm2 .cm-icone{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--filet);border-radius:var(--r-bouton)}
.cm2 .cm-icone:hover{border-color:var(--texte)}

/* Boutons et liens */
.cm2 .cm-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 18px;border-radius:var(--r-bouton);border:1px solid var(--filet);background:transparent;color:var(--texte);font:500 15px/1.2 var(--police);white-space:normal;text-align:center;transition:border-color var(--duree),background var(--duree),transform 140ms var(--courbe)}
.cm2 .cm-btn:hover{border-color:var(--texte)}
.cm2 .cm-btn:active{transform:scale(.98)}
.cm2 .cm-btn.cm-plein{background:var(--plein-fond);border-color:var(--plein-fond);color:var(--plein-texte);font-weight:600;min-height:48px;padding:12px 22px}
.cm2 .cm-btn.cm-petit{min-height:44px;padding:8px 14px;font-size:14px}
.cm2 .cm-btn.cm-discret{border-color:transparent;color:var(--sec)}
.cm2 .cm-btn.cm-discret:hover{color:var(--texte)}
.cm2 .cm-btn.cm-danger{border-style:dashed}
.cm2 .cm-btn svg{width:18px;height:18px}
.cm2 .cm-lien{display:inline-flex;align-items:center;gap:6px;min-height:44px;color:var(--texte);text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px;font-weight:500}
.cm2 .cm-lien.cm-sec{color:var(--sec)}
.cm2 .cm-lien.cm-sec:hover{color:var(--texte)}
.cm2 .cm-lien svg{width:16px;height:16px}
.cm2 .cm-rangee{display:flex;flex-wrap:wrap;align-items:center;gap:12px}

/* Cadre : barre de côté et page */
.cm2 .cm-cadre{display:grid;grid-template-columns:264px minmax(0,1fr);flex:1;min-height:0}
.cm2 .cm-cote{border-right:1px solid var(--filet);padding:24px 20px 20px;display:flex;flex-direction:column;gap:6px;position:relative;overflow:hidden;min-height:0}
.cm2 .cm-cote>*{position:relative;z-index:1}
.cm2 .cm-titre-app{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--sec);padding:0 12px 8px}
.cm2 .cm-titre-2{margin-top:18px}
.cm2 .cm-nav{display:flex;flex-direction:column;gap:2px}
.cm2 .cm-nav-lien{display:flex;align-items:center;gap:12px;min-height:44px;padding:8px 12px;border-radius:var(--r-bouton);border:1px solid transparent;color:var(--texte);font-weight:500}
.cm2 .cm-nav-lien:hover{background:var(--survol)}
.cm2 .cm-nav-lien.cm-actif{border-color:var(--filet);background:var(--carte)}
.cm2 .cm-badge-nav{margin-left:auto;min-width:24px;height:24px;border-radius:12px;background:var(--plein-fond);color:var(--plein-texte);font-size:12px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;padding:0 7px}
.cm2 .cm-cote-pied{margin-top:auto;padding:12px;border-top:1px solid var(--filet);display:flex;flex-direction:column;gap:4px}
.cm2 .cm-cote-pied b{font-size:13px;font-weight:600;overflow-wrap:anywhere}
.cm2 .cm-cote-pied span{font-size:12px;color:var(--sec);line-height:1.45}
/* Le signe SOIE : un motif fixe du cadre, au même endroit et au même dosage sur chaque page de l'appli */
.cm2 .cm-soie,.cm2 .cm-soie-tel{pointer-events:none;background:var(--soie);opacity:var(--soie-op);aspect-ratio:632/288;-webkit-mask:url('commerce-v2/soie.svg') center/contain no-repeat;mask:url('commerce-v2/soie.svg') center/contain no-repeat}
.cm2 .cm-soie{position:absolute!important;z-index:0!important;left:-150px;bottom:-12px;width:520px;clip-path:inset(0 98px 0 0)}
.cm2 .cm-soie-tel{display:none;position:absolute;z-index:0;right:-70px;top:-26px;width:260px;clip-path:inset(0 70px 28px 0)}
.cm2 .cm-halo{position:absolute;pointer-events:none;width:420px;height:420px;right:-120px;top:120px;border-radius:50%;background:var(--soie);opacity:.018;z-index:0}

/* La page */
.cm2 .cm-principal{overflow-y:auto;overflow-x:hidden;padding:36px 56px 96px;position:relative;min-width:0;outline:0}
.cm2 .cm-principal>*{position:relative;z-index:1}
.cm2 .cm-principal>.cm-soie-tel,.cm2 .cm-principal>.cm-halo{position:absolute}
.cm2 .cm-tete{display:flex;flex-direction:column;gap:10px;margin-bottom:24px;max-width:860px}
.cm2 .cm-surtitre{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--sec)}
.cm2 h1{font:600 clamp(28px,3.2vw,40px)/1.15 var(--police);letter-spacing:-.012em}
.cm2 h2{font:600 18px/1.3 var(--police)}
.cm2 h3{font:600 16px/1.35 var(--police)}
.cm2 .cm-lede{font-size:17px;line-height:1.55;color:var(--sec)}
.cm2 .cm-note{font-size:13px;line-height:1.5;color:var(--sec)}
.cm2 .cm-onglets{display:flex;flex-wrap:wrap;gap:6px;padding:4px;border:1px solid var(--filet);border-radius:var(--r-bloc);width:fit-content;max-width:100%;margin:0 0 28px}
.cm2 .cm-onglet{display:inline-flex;align-items:center;min-height:44px;padding:8px 16px;border-radius:var(--r-bouton);color:var(--sec);font-weight:500}
.cm2 .cm-onglet:hover{color:var(--texte)}
.cm2 .cm-onglet.cm-actif{background:var(--plein-fond);color:var(--plein-texte);font-weight:600}
.cm2 .cm-bloc{border:1px solid var(--filet);border-radius:var(--r-bloc);padding:24px;margin:0 0 20px;background:var(--carte)}
.cm2 .cm-bloc-tete{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.cm2 .cm-bloc-tete h2{margin-bottom:4px}
.cm2 .cm-grille{display:grid;gap:20px;margin:0 0 20px}
.cm2 .cm-grille>.cm-bloc{margin:0;min-width:0}
.cm2 .cm-g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.cm2 .cm-g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.cm2 .cm-g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.cm2 .cm-g21{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.cm2 .cm-g12{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}

/* Chiffres */
.cm2 .cm-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:0;border:1px solid var(--filet);border-radius:var(--r-bloc);margin:0 0 20px;background:var(--carte);overflow:hidden}
.cm2 .cm-kpi{display:flex;flex-direction:column;gap:6px;padding:20px 22px;border-right:1px solid var(--filet);border-bottom:1px solid var(--filet);margin:0 -1px -1px 0;min-width:0}
.cm2 a.cm-kpi:hover{background:var(--survol)}
.cm2 .cm-kpi-lb{font-size:13px;color:var(--sec)}
.cm2 .cm-kpi-val{font:600 28px/1.15 var(--police);letter-spacing:-.01em;overflow-wrap:anywhere}
.cm2 .cm-kpi-note{font-size:13px;color:var(--sec);line-height:1.45}
.cm2 .cm-kpi-source{font-size:12px;color:var(--sec);border-top:1px solid var(--filet);padding-top:8px;margin-top:4px}
.cm2 .cm-ton-alerte .cm-kpi-val{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
.cm2 .cm-decisions{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin:0 0 24px}
.cm2 .cm-decision{display:flex;flex-direction:column;gap:12px;padding:22px;border:1px solid var(--filet);border-radius:var(--r-bloc);background:var(--carte);align-items:flex-start}
.cm2 .cm-decision.cm-premiere{border-color:var(--texte)}
.cm2 .cm-decision-tete{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%}
.cm2 .cm-decision-chiffre{font:600 30px/1.1 var(--police)}
.cm2 .cm-etat{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:2px 9px;border:1px solid var(--texte);border-radius:var(--r-pastille);font-size:12px;font-weight:500;white-space:nowrap}
.cm2 .cm-etat svg{width:14px;height:14px}
.cm2 .cm-etat-fort{background:var(--plein-fond);color:var(--plein-texte)}
.cm2 .cm-etat-ok{border-color:var(--filet);color:var(--sec)}

/* Champs et formulaires */
.cm2 .cm-champ{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--filet);border-radius:var(--r-champ);background:var(--fond);color:var(--texte);font-size:16px}
.cm2 textarea.cm-champ{min-height:96px;resize:vertical}
.cm2 .cm-champ:hover{border-color:var(--sec)}
.cm2 .cm-champ:focus{border-color:var(--texte);outline:0}
.cm2 .cm-champ-r{display:flex;flex-direction:column;gap:6px;min-width:0}
.cm2 .cm-lb{font-size:13px;color:var(--sec);font-weight:500}
.cm2 .cm-req{color:var(--texte)}
.cm2 .cm-case{display:flex;align-items:center;gap:12px;min-height:44px;flex-wrap:wrap}
.cm2 .cm-case input{width:22px;height:22px;accent-color:var(--texte)}
.cm2 .cm-form{display:flex;flex-direction:column;gap:18px}
.cm2 .cm-form-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
.cm2 .cm-segments{display:inline-flex;flex-wrap:wrap;gap:6px}
.cm2 .cm-seg{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 16px;border:1px solid var(--filet);border-radius:var(--r-bouton);font-weight:500}
.cm2 .cm-seg i{font-style:normal;font-size:12px;border-radius:10px;min-width:22px;padding:0 6px;text-align:center;border:1px solid var(--filet)}
.cm2 .cm-seg.cm-actif{background:var(--plein-fond);color:var(--plein-texte);border-color:var(--plein-fond);font-weight:600}
.cm2 .cm-seg.cm-actif i{border-color:currentColor}
.cm2 .cm-barre{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:0 0 16px}
.cm2 .cm-recherche{display:flex;align-items:center;gap:8px;flex:1 1 260px;min-width:0;position:relative}
.cm2 .cm-recherche svg{position:absolute;left:12px;pointer-events:none;color:var(--sec)}
.cm2 .cm-recherche .cm-champ{padding-left:38px}
.cm2 .cm-filtre{flex:0 1 200px;min-width:0}
.cm2 .cm-barre-actions{margin-left:auto}

/* Tableaux */
.cm2 .cm-defile-x{overflow-x:auto}
.cm2 .cm-tableau{width:100%;font-size:15px}
.cm2 .cm-tableau th{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--sec);text-align:left;font-weight:500;padding:10px 12px;border-bottom:1px solid var(--filet);white-space:nowrap}
.cm2 .cm-tableau td{padding:12px;border-bottom:1px solid var(--filet);vertical-align:middle;min-width:0}
.cm2 .cm-tableau .cm-num{text-align:right;font-variant-numeric:tabular-nums}
.cm2 .cm-tableau tr:hover td{background:var(--survol)}
.cm2 .cm-tableau tr.cm-choisie td{background:var(--carte-2)}
.cm2 .cm-th-tri{display:inline-flex;gap:6px;align-items:center;min-height:32px;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit}
.cm2 .cm-th-sel{width:44px}
.cm2 .cm-th-sel input{width:20px;height:20px;accent-color:var(--texte)}
.cm2 .cm-lien-ligne{display:inline-flex;flex-direction:column;min-height:44px;justify-content:center;font-weight:500;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.cm2 .cm-td-vide{text-align:center;color:var(--sec);padding:32px 12px}
.cm2 .cm-pied-tableau{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;padding-top:12px}
.cm2 .cm-groupe{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:10px 12px;margin-bottom:12px;border:1px solid var(--texte);border-radius:var(--r-bouton)}
.cm2 .cm-fiche{display:grid;grid-template-columns:minmax(120px,200px) minmax(0,1fr);gap:0}
.cm2 .cm-fiche dt{color:var(--sec);font-size:13px;padding:10px 0;border-bottom:1px solid var(--filet)}
.cm2 .cm-fiche dd{padding:10px 0;border-bottom:1px solid var(--filet);overflow-wrap:anywhere}
.cm2 .cm-fil{list-style:none;padding:0;display:flex;flex-direction:column}
.cm2 .cm-fil li{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid var(--filet)}
.cm2 .cm-fil time{font-size:13px;color:var(--sec)}
.cm2 .cm-fil div{display:flex;flex-direction:column;gap:2px}

/* Conseils, trouvé pour vous */
.cm2 .cm-conseil{display:flex;flex-direction:column;gap:10px;padding:20px;border:1px solid var(--filet);border-radius:var(--r-bloc);background:var(--fond)}
.cm2 .cm-conseil.cm-ecarte{opacity:.6}
.cm2 .cm-conseil-tete{display:flex;gap:8px;flex-wrap:wrap}
.cm2 .cm-conseil-regle{font-weight:600}
.cm2 .cm-source{font-size:12px;color:var(--sec);line-height:1.5;overflow-wrap:anywhere}
.cm2 .cm-source a{text-decoration:underline;text-underline-offset:3px}
.cm2 .cm-trouve{display:flex;flex-direction:column;gap:14px}
.cm2 .cm-constat{display:flex;flex-direction:column;gap:8px;padding:16px 18px;border:1px solid var(--filet);border-radius:var(--r-carte);background:var(--fond)}
.cm2 .cm-question{display:flex;flex-direction:column;gap:10px;margin-top:4px}
.cm2 .cm-liste-conseils{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}

/* États : vide, lecture, échec, message, confirmation */
.cm2 .cm-vide{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:28px;border:1px dashed var(--filet);border-radius:var(--r-bloc);color:var(--sec)}
.cm2 .cm-vide p{max-width:620px}
.cm2 .cm-squelette{display:flex;flex-direction:column;gap:14px;color:var(--sec)}
.cm2 .cm-squelette span{display:block;height:68px;border-radius:var(--r-bloc);background:var(--carte);border:1px solid var(--filet)}
.cm2 .cm-echec{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:24px;border:1px solid var(--texte);border-radius:var(--r-bloc)}
.cm2 .cm-dire{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);z-index:20;display:flex;align-items:center;gap:18px;max-width:min(92vw,640px);padding:12px 18px;border:1px solid var(--texte);border-radius:var(--r-bouton);background:var(--fond);animation:cm-monte var(--duree) var(--courbe)}
@keyframes cm-monte{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}
.cm2 .cm-confirmer{position:sticky;bottom:16px;z-index:10;display:flex;flex-direction:column;gap:12px;padding:18px 20px;border:1px solid var(--texte);border-radius:var(--r-bloc);background:var(--fond);margin-top:20px}

/* Graphiques */
.cm2 .cm-fig{display:flex;flex-direction:column;gap:10px;min-width:0}
.cm2 .cm-fig figcaption{font-size:13px;color:var(--sec);line-height:1.5}
.cm2 .cm-grille-l{stroke:var(--filet);stroke-width:1;opacity:.7}
.cm2 .cm-repere{stroke:var(--sec);stroke-width:1;stroke-dasharray:4 4}
.cm2 .cm-axe{fill:var(--sec);font:400 12px var(--police)}
.cm2 .cm-trait{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.cm2 .cm-aire{fill:var(--d1);opacity:.1}
.cm2 .cm-point{stroke:var(--fond);stroke-width:2}
.cm2 .d1{stroke:var(--d1);fill:var(--d1);background:var(--d1)}
.cm2 .d2{stroke:var(--d2);fill:var(--d2);background:var(--d2)}
.cm2 .d3{stroke:var(--d3);fill:var(--d3);background:var(--d3)}
.cm2 .d4{stroke:var(--d4);fill:var(--d4);background:var(--d4)}
.cm2 .cm-trait.d1{fill:none}
.cm2 .cm-colonne{stroke:none}
.cm2 .cm-part{stroke:var(--carte);stroke-width:1}
.cm2 .cm-anneau{max-width:200px;margin:0 auto}
.cm2 .cm-anneau-total{fill:var(--texte);font:600 14px var(--police)}
.cm2 .cm-legende{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13px;color:var(--sec)}
.cm2 .cm-legende li{display:flex;align-items:center;gap:8px}
.cm2 .cm-pastille{display:inline-block;width:12px;height:12px;border-radius:3px}
.cm2 .cm-hbarres{display:flex;flex-direction:column;gap:10px}
.cm2 .cm-hb-bouton{display:block;width:100%;text-align:left;border-radius:var(--r-champ)}
.cm2 .cm-hb-bouton:hover{background:var(--survol)}
.cm2 .cm-hbarre{display:grid;grid-template-columns:minmax(90px,170px) minmax(0,1fr) auto;gap:12px;align-items:center;min-height:32px}
.cm2 .cm-hb-lb{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}
.cm2 .cm-hb-piste{height:10px;border-radius:5px;background:var(--carte-2);overflow:hidden}
.cm2 .cm-hb-rempli{display:block;height:100%;border-radius:5px}
.cm2 .cm-hb-val{font-size:14px;font-weight:600;text-align:right;min-width:64px}
.cm2 .cm-jauge{display:flex;flex-direction:column;gap:8px}
.cm2 .cm-jauge-tete{display:flex;justify-content:space-between;gap:12px;font-size:14px}
.cm2 .cm-jauge-piste{height:10px;border-radius:5px;background:var(--carte-2);overflow:hidden}
.cm2 .cm-jauge-rempli{display:block;height:100%;background:var(--texte);border-radius:5px}
.cm2 .cm-chaleur th{font-size:12px;color:var(--sec);font-weight:500;padding:4px 8px;text-align:center}
.cm2 .cm-chaleur tbody th{text-align:right}
.cm2 .cm-cellule{min-width:34px;height:34px;border:2px solid var(--fond);background:rgba(var(--cellule),calc(.08 + var(--i)*.82));border-radius:4px}
.cm2 .cm-entonnoir{list-style:none;padding:0;display:flex;flex-direction:column;gap:8px}
.cm2 .cm-entonnoir li{display:flex;flex-direction:column;gap:2px}
.cm2 .cm-ent-bar{display:block;padding:8px 12px;border-radius:var(--r-champ);color:var(--fond);font-size:14px;background:var(--d1)}
.cm2 .cm-ent-bar b{font-weight:600}

/* Glisser-déposer */
.cm2 [data-cm-glisse]{cursor:grab}
.cm2 .cm-glisse{opacity:.5}
.cm2 .cm-depot-sur{outline:2px dashed var(--texte);outline-offset:-2px}

/* Téléphone : la barre du bas remplace la barre de côté ; boutons empilés, principal au-dessus */
.cm2 .cm-bas{display:none}
@media (max-width:760px){
  .cm2 .cm-entete{height:64px;padding:0 16px;gap:8px}
  .cm2 .cm-gauche{gap:12px}
  .cm2 .cm-ariane{display:none}
  .cm2 .cm-cadre{grid-template-columns:minmax(0,1fr)}
  .cm2 .cm-cote{display:none}
  .cm2 .cm-principal{padding:24px 16px 120px}
  .cm2 .cm-soie-tel{display:block}
  .cm2 .cm-bas{display:flex;position:absolute;left:0;right:0;bottom:0;z-index:15;background:var(--fond);border-top:1px solid var(--filet);padding:4px 4px calc(4px + env(safe-area-inset-bottom));overflow-x:auto;gap:2px}
  .cm2 .cm-bas .cm-nav-lien{flex:1 0 auto;flex-direction:column;gap:2px;min-width:64px;font-size:12px;padding:6px 8px;min-height:52px;justify-content:center;text-align:center}
  .cm2 .cm-bas .cm-badge-nav{position:absolute;margin:0;transform:translate(14px,-14px)}
  .cm2 .cm-bas .cm-nav-lien{position:relative}
  .cm2 .cm-g2,.cm2 .cm-g3,.cm2 .cm-g4,.cm2 .cm-g21,.cm2 .cm-g12{grid-template-columns:minmax(0,1fr)}
  .cm2 .cm-bloc{padding:18px}
  .cm2 .cm-btn{width:auto}
  .cm2 .cm-rangee.cm-empile{flex-direction:column;align-items:stretch}
  .cm2 .cm-rangee.cm-empile>.cm-plein{order:-1}
  .cm2 .cm-hbarre{grid-template-columns:minmax(70px,110px) minmax(0,1fr) auto}
  .cm2 .cm-fil li{grid-template-columns:minmax(0,1fr)}
  .cm2 .cm-fiche{grid-template-columns:minmax(0,1fr)}
  .cm2 .cm-fiche dt{border-bottom:0;padding-bottom:0}
  .cm2 .cm-cache-mobile{display:none}
  .cm2 .cm-dire{bottom:84px}
  .cm2 .cm-onglets{width:100%;overflow-x:auto;flex-wrap:nowrap}
  .cm2 .cm-onglet{white-space:nowrap}
  .cm2 .cm-kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
  .cm2 .cm-filtre{flex:1 1 140px}
}
@media (prefers-reduced-motion:reduce){.cm2 *,.cm2 *::before,.cm2 *::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* ---- Listes simples, alertes, apercus, champs de nombre ---- */
.cm2 .cm-liste-simple,.cm2 .cm-liste-alertes,.cm2 .cm-liste-lots{list-style:none;padding:0;display:flex;flex-direction:column;gap:0}
.cm2 .cm-liste-simple li,.cm2 .cm-liste-lots li{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid var(--filet)}
.cm2 .cm-alerte{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:14px 0;border-bottom:1px solid var(--filet)}
.cm2 .cm-alerte>div:first-child{display:flex;flex-direction:column;gap:4px;align-items:flex-start;min-width:0;flex:1 1 280px}
.cm2 .cm-attente{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.cm2 .cm-attente>div:first-child{min-width:0;flex:1 1 260px}
.cm2 .cm-champ-nb{width:96px;min-height:44px;text-align:right}
.cm2 .cm-bloc-alerte{border-color:var(--texte);display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.cm2 .cm-rendu{font-size:20px}
.cm2 .cm-rendu b{font-size:26px;font-weight:600}
.cm2 .cm-fieldset{border:1px solid var(--filet);border-radius:var(--r-carte);padding:14px 16px;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:4px 16px}
.cm2 .cm-fieldset legend{font-size:13px;color:var(--sec);padding:0 6px}
.cm2 .cm-mini{font-size:14px;margin-top:14px}
.cm2 .cm-mini th,.cm2 .cm-mini td{padding:6px 8px}
.cm2 .cm-apercu,.cm2 .cm-registre{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-top:16px;padding:16px;border:1px solid var(--filet);border-radius:var(--r-carte);background:var(--fond)}
.cm2 .cm-ligne-reception{border:1px solid var(--filet);border-radius:var(--r-carte);padding:14px 16px;margin:0 0 12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px 16px;min-width:0}
.cm2 .cm-ligne-reception legend{font-weight:600;padding:0 6px}
.cm2 .cm-form-z .cm-form-grille{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.cm2 .cm-form-scan .cm-form-grille{grid-template-columns:minmax(0,1fr)}
.cm2 .cm-form-scan{flex-direction:row;align-items:flex-end;flex-wrap:wrap;margin-bottom:16px}
.cm2 .cm-form-scan .cm-form-grille{flex:1 1 220px}

/* ---- La caisse : tuiles et panier ---- */
.cm2 .cm-pos{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:20px;align-items:start}
.cm2 .cm-pos-gauche{min-width:0}
.cm2 .cm-tuiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.cm2 .cm-tuile{display:flex;flex-direction:column;justify-content:space-between;gap:6px;min-height:104px;padding:12px 14px;border:1px solid var(--filet);border-radius:var(--r-carte);background:var(--carte);text-align:left;transition:border-color var(--duree),transform 140ms var(--courbe)}
.cm2 .cm-tuile:hover{border-color:var(--texte)}
.cm2 .cm-tuile:active{transform:scale(.97)}
.cm2 .cm-tuile-nom{font-weight:500;line-height:1.3;overflow-wrap:anywhere}
.cm2 .cm-tuile b{font-size:17px;font-weight:600}
.cm2 .cm-tuile small{font-size:12px;color:var(--sec);min-height:18px}
.cm2 .cm-tuile-vide{opacity:.6;border-style:dashed}
.cm2 .cm-pos-panier{position:sticky;top:0;display:flex;flex-direction:column;gap:14px;padding:20px;border:1px solid var(--texte);border-radius:var(--r-bloc);background:var(--carte);min-width:0}
.cm2 .cm-pos-lignes{list-style:none;padding:0;display:flex;flex-direction:column;gap:0}
.cm2 .cm-pos-ligne{display:flex;flex-direction:column;gap:8px;padding:12px 0;border-bottom:1px solid var(--filet)}
.cm2 .cm-pos-l1{display:flex;justify-content:space-between;gap:12px}
.cm2 .cm-pos-l2{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cm2 .cm-pos-qte{display:flex;align-items:center;gap:6px}
.cm2 .cm-pos-qte .cm-btn{min-width:44px;padding:8px}
.cm2 .cm-pos-rem .cm-champ-nb{width:88px}
.cm2 .cm-pos-bas{display:flex;flex-direction:column;gap:14px}
.cm2 .cm-pos-total{display:flex;flex-direction:column;gap:2px;padding:12px 0;border-top:1px solid var(--texte)}
.cm2 .cm-pos-total b{font:600 34px/1.1 var(--police)}
.cm2 .cm-pos-paiement{display:flex;flex-direction:column;gap:12px}
.cm2 .cm-ticket{font-family:ui-monospace,Menlo,monospace;font-size:13px;line-height:1.5;padding:16px;border:1px solid var(--filet);border-radius:var(--r-carte);background:var(--fond);overflow-x:auto}
.cm2 .cm-ticket-l{white-space:pre}
.cm2 .cm-impression{display:none}
@media print{body.cm-imprime-ticket>*:not(.cm-impression){display:none!important}body.cm-imprime-ticket .cm-impression{display:block!important;position:static;color:#000;background:#fff}body.cm-imprime-ticket .cm-impression pre{font:12px/1.4 ui-monospace,Menlo,monospace}}
@media (max-width:980px){.cm2 .cm-pos{grid-template-columns:minmax(0,1fr)}.cm2 .cm-pos-panier{position:static}}
.cm2 form,.cm2 fieldset{background:none;border-radius:0;box-shadow:none;margin:0;padding:0}
.cm2 .cm-fieldset{padding:14px 16px;border-radius:var(--r-carte)}
.cm2 .cm-form-scan{margin-bottom:16px}

/* ---- Éditer sur place, actions visibles, mentions de ce qui est figé ---- */
.cm2 .cm-edit{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:2px 8px;margin:-2px -8px;border:1px dashed transparent;border-radius:var(--r-champ);color:inherit;text-align:left;font:inherit}
.cm2 button.cm-edit:hover{border-color:var(--filet);background:var(--survol)}
.cm2 .cm-edit svg{width:14px;height:14px;color:var(--sec);flex:none}
.cm2 .cm-edit-fige{cursor:default}
.cm2 .cm-champ-edit{min-height:40px;padding:6px 10px;max-width:260px}
.cm2 .cm-acts{display:inline-flex;flex-wrap:wrap;gap:2px}
.cm2 .cm-acts .cm-btn{min-height:44px;padding:6px 10px;font-size:13px}
.cm2 .cm-fige{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--sec);line-height:1.5}
.cm2 .cm-fige svg{margin-top:3px}
.cm2 .cm-carte-objet{display:flex;flex-direction:column;gap:10px;padding:16px 18px;border:1px solid var(--filet);border-radius:var(--r-carte);background:var(--fond);min-width:0}
.cm2 .cm-carte-objet-tete{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.cm2 .cm-cartes{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}

/* ---- Réservations : planning du jour (colonnes par ressource, glisser pour déplacer), semaine, créneaux ---- */
.cm2 .cm-planning{display:flex;gap:0;overflow-x:auto;border:1px solid var(--filet);border-radius:var(--r-carte);background:var(--fond)}
.cm2 .cm-col-heures{flex:none;width:56px;border-right:1px solid var(--filet)}
.cm2 .cm-col-planning{flex:1 0 150px;min-width:150px;border-right:1px solid var(--filet)}
.cm2 .cm-col-planning:last-child{border-right:0}
.cm2 .cm-col-tete{display:flex;flex-direction:column;gap:0;min-height:56px;padding:8px 10px;border-bottom:1px solid var(--filet);justify-content:center}
.cm2 .cm-col-tete b{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm2 .cm-col-grille{display:grid;grid-template-columns:minmax(0,1fr);position:relative}
.cm2 .cm-col-heures .cm-col-grille{grid-template-columns:minmax(0,1fr)}
.cm2 .cm-heure{font-size:12px;color:var(--sec);padding:2px 8px;align-self:start}
.cm2 .cm-cell-planning{display:block;grid-column:1;width:100%;height:28px;border-bottom:1px dashed var(--filet);border-radius:0;transition:background var(--duree) var(--courbe)}
.cm2 button.cm-cell-planning:hover,.cm2 .cm-cell-planning.cm-depot-sur{background:var(--survol)}
.cm2 .cm-cell-fermee{background:repeating-linear-gradient(135deg,transparent 0 6px,var(--carte) 6px 12px);cursor:not-allowed}
.cm2 .cm-bloc-resa{grid-column:1;display:flex;flex-direction:column;gap:2px;margin:1px 4px;padding:4px 8px;border:1px solid var(--filet);border-left:4px solid var(--texte);border-radius:var(--r-champ);background:var(--carte-2);font-size:13px;line-height:1.3;overflow:hidden;z-index:2;min-height:26px}
.cm2 .cm-bloc-resa b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm2 .cm-bloc-resa span{color:var(--sec);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm2 .cm-bloc-resa.cm-glisse{opacity:.45}
.cm2 .cm-bloc-resa[draggable="true"]{cursor:grab}
.cm2 .cm-resa-demandee{border-style:dashed}
.cm2 .cm-resa-honoree{opacity:.75}
.cm2 .cm-resa-absente,.cm2 .cm-resa-annulee{opacity:.55;text-decoration:line-through}
.cm2 .cm-semaine{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.cm2 .cm-jour-sem{display:flex;flex-direction:column;gap:6px;padding:10px;border:1px solid var(--filet);border-radius:var(--r-carte);min-height:150px;min-width:0}
.cm2 .cm-jour-sem.cm-aujourdhui{border-color:var(--texte)}
.cm2 .cm-jour-tete{display:flex;flex-direction:column;gap:0;min-height:44px;justify-content:center}
.cm2 .cm-jour-tete b{font-weight:600;text-transform:capitalize}
.cm2 .cm-mini-resa{display:block;padding:4px 8px;border-left:3px solid var(--texte);border-radius:var(--r-champ);background:var(--carte);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-height:28px}
.cm2 .cm-creneaux-r{display:flex;flex-direction:column;gap:8px;padding:12px 0;border-bottom:1px solid var(--filet)}
.cm2 .cm-attente{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.cm2 .cm-ligne-horaire{display:grid;grid-template-columns:110px repeat(5,minmax(0,1fr));gap:10px;align-items:end;padding:10px 0;border:0;border-bottom:1px solid var(--filet);margin:0}
.cm2 .cm-ligne-horaire legend{float:left;width:110px;text-transform:capitalize;font-weight:600;padding:0}
.cm2 .cm-rs-nom{display:inline-flex;align-items:center;gap:8px}
.cm2 .cm-pastille{display:inline-block;width:12px;height:12px;border-radius:50%;flex:none}
@media (max-width:980px){.cm2 .cm-semaine{grid-template-columns:minmax(0,1fr)}.cm2 .cm-jour-sem{min-height:0}.cm2 .cm-ligne-horaire{grid-template-columns:repeat(2,minmax(0,1fr))}.cm2 .cm-ligne-horaire legend{float:none;width:auto;grid-column:1/-1}}
.cm2 td[data-cm-col="debut"],.cm2 td[data-cm-col="ress"],.cm2 td[data-cm-col="etat"]{white-space:nowrap}
.cm2 .cm-arrets{list-style:none;padding:0;display:flex;flex-direction:column;gap:8px}
.cm2 .cm-arret{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--filet);border-radius:var(--r-carte);background:var(--fond);flex-wrap:wrap}
.cm2 .cm-arret[draggable="true"]{cursor:grab}
.cm2 .cm-arret.cm-depot-sur{background:var(--survol)}
.cm2 .cm-arret.cm-glisse{opacity:.45}
.cm2 .cm-arret-n{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--texte);border-radius:50%;font-weight:600;flex:none}
.cm2 .cm-arret-corps{display:flex;flex-direction:column;flex:1;min-width:160px}
.cm2 .cm-grand{font:600 20px/1.35 var(--police)}
/* pendant un glisser, les blocs déjà posés laissent passer le dépôt : on peut viser un créneau occupé et recevoir la réponse du serveur */
.cm2.cm-en-glisse .cm-bloc-resa:not(.cm-glisse){pointer-events:none}

/* le texte d'une case à cocher suit le thème (une règle de l'ancienne appli le laissait clair sur fond clair) */
.cm2 label.cm-case,.cm2 label.cm-case span{color:var(--texte)}
