:root{
  --marine:#00264D;--marine-2:#0b3a6b;--accent:#B5523B;--accent-2:#9a4430;
  --fond:#EEF1F5;--carte:#ffffff;--trait:#D9DEE5;--texte:#16191D;--doux:#5A5E64;--pale:#8A8E94;
  --ok:#2f7d4f;--ok-fond:#e6f4ec;--att:#a86a00;--att-fond:#fff4dc;--urg:#b3261e;--urg-fond:#fdecea;--info-fond:#e8eef6;
  --rayon:10px;--ombre:0 1px 2px rgba(0,38,77,.06),0 4px 14px rgba(0,38,77,.06);
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font-family:"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;font-size:14px;color:var(--texte);background:var(--fond);
  display:grid;grid-template-columns:232px 1fr;grid-template-rows:58px 1fr;grid-template-areas:"menu barre" "menu vue"}
a{color:var(--marine-2)}
#menu{grid-area:menu;background:var(--marine);color:#cfd8e3;overflow-y:auto;position:sticky;top:0;height:100vh}
.marque{display:block;padding:16px 18px 10px;background:#fff;margin:0 0 6px}
.marque img{height:46px;display:block}
#favoris h4,#nav h4{font-size:10.5px;letter-spacing:1.2px;text-transform:uppercase;color:#7f95ad;margin:16px 18px 4px;font-weight:600}
#favoris a{display:block;padding:6px 18px;color:#f3d9b3;text-decoration:none;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#favoris a:hover{background:rgba(255,255,255,.06)}
table.liste td.ouvrir{cursor:pointer}table.liste td.ouvrir:first-child{font-weight:600;color:var(--marine)}
table.liste td.editable{cursor:text}table.liste td.editable:hover{background:#f3f6fa;box-shadow:inset 0 0 0 1px var(--trait)}
table.liste tr:hover td{background:#fafbfd}
.edition .champ label{display:none}.edition .champ{min-width:120px}.edition .aide{display:none}
.bascule{display:inline-flex;gap:4px}
select.btn{font-weight:600}
#nav a{display:flex;align-items:center;gap:8px;padding:7px 18px;color:#d7e0ea;text-decoration:none;border-left:3px solid transparent}
#nav a:hover{background:rgba(255,255,255,.06)}
#nav a.actif{background:rgba(255,255,255,.1);border-left-color:var(--accent);color:#fff;font-weight:600}
#nav .pastille{margin-left:auto;background:var(--accent);color:#fff;border-radius:9px;font-size:11px;padding:0 7px;line-height:18px}
#barre{grid-area:barre;background:#fff;border-bottom:1px solid var(--trait);display:flex;align-items:center;gap:12px;padding:0 20px;position:sticky;top:0;z-index:20}
.burger{display:none;background:none;border:0;font-size:22px;cursor:pointer;color:var(--marine)}
.recherche{flex:1;max-width:560px;position:relative}
.recherche input{width:100%;padding:9px 12px;border:1px solid var(--trait);border-radius:8px;background:var(--fond);font-size:14px}
#resultats{position:absolute;top:42px;left:0;right:0;background:#fff;border:1px solid var(--trait);border-radius:8px;box-shadow:var(--ombre);max-height:60vh;overflow:auto;display:none}
#resultats a{display:flex;justify-content:space-between;padding:8px 12px;text-decoration:none;color:var(--texte);border-bottom:1px solid var(--fond)}
#resultats a:hover{background:var(--fond)}#resultats small{color:var(--pale)}
#moi{display:flex;align-items:center;gap:8px;white-space:nowrap;font-size:13px}#moi a{text-decoration:none;color:var(--marine);font-weight:600}
.cloche{position:relative;text-decoration:none;font-size:20px}
.cloche span{position:absolute;top:-6px;right:-10px;background:var(--urg);color:#fff;font-size:11px;border-radius:9px;padding:0 6px;line-height:17px}
.cloche span:empty{display:none}
#vue{grid-area:vue;padding:22px 26px 60px;min-width:0}
h1{font-size:22px;margin:0;color:var(--marine)}
h2{font-size:16px;margin:0 0 12px;color:var(--marine)}
h3{font-size:14px;margin:0 0 8px;color:var(--marine)}
.entete{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.entete .sous{color:var(--doux);font-size:13px;width:100%;margin-top:-6px}
.entete .actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.btn{background:#fff;border:1px solid var(--trait);color:var(--marine);padding:8px 14px;border-radius:8px;cursor:pointer;font-size:13.5px;font-weight:600;white-space:nowrap;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.btn:hover{border-color:var(--marine-2)}
.btn.prim{background:var(--marine);border-color:var(--marine);color:#fff}.btn.prim:hover{background:var(--marine-2)}
.btn.accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn.accent:hover{background:var(--accent-2)}
.btn.ok{background:var(--ok);border-color:var(--ok);color:#fff}
.btn.danger{color:var(--urg)}.btn.danger:hover{border-color:var(--urg)}
.btn.petit{padding:4px 9px;font-size:12px}
.btn:disabled{opacity:.5;cursor:default}
.carte{background:var(--carte);border-radius:var(--rayon);box-shadow:var(--ombre);padding:16px 18px;margin-bottom:16px;min-width:0}
.grille{display:grid;gap:16px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.kpi{background:#fff;border-radius:var(--rayon);box-shadow:var(--ombre);padding:14px 16px;border-top:3px solid var(--marine)}
.kpi .l{font-size:12px;color:var(--doux);text-transform:uppercase;letter-spacing:.5px}
.kpi .v{font-size:22px;font-weight:700;color:var(--marine);margin-top:4px;font-variant-numeric:tabular-nums}
.kpi .s{font-size:12px;color:var(--pale);margin-top:2px}
.kpi.alerte{border-top-color:var(--urg)}.kpi.alerte .v{color:var(--urg)}.kpi.acc{border-top-color:var(--accent)}
table.liste{width:100%;border-collapse:collapse;background:#fff}
table.liste th{text-align:left;font-size:12px;color:var(--doux);font-weight:600;padding:9px 10px;border-bottom:2px solid var(--trait);white-space:nowrap;cursor:pointer;user-select:none}
table.liste td{padding:9px 10px;border-bottom:1px solid var(--fond);vertical-align:top}
table.liste tr.clic:hover td{background:#f6f8fb;cursor:pointer}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.defile{overflow-x:auto}
.outils{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.outils input,.outils select{padding:8px 10px;border:1px solid var(--trait);border-radius:8px;font-size:13.5px;background:#fff}
.outils .compte{color:var(--pale);margin-left:auto;font-size:12.5px}
.badge{display:inline-block;padding:2px 9px;border-radius:12px;font-size:12px;font-weight:600;background:var(--info-fond);color:var(--marine-2);white-space:nowrap}
.badge.ok{background:var(--ok-fond);color:var(--ok)}.badge.att{background:var(--att-fond);color:var(--att)}.badge.urg{background:var(--urg-fond);color:var(--urg)}.badge.gris{background:#eef0f2;color:var(--doux)}
form.fiche{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px}
.champ{display:flex;flex-direction:column;gap:4px;min-width:0}
.champ.large{grid-column:1/-1}
.champ label{font-size:12px;font-weight:600;color:var(--doux)}
.champ .aide{font-size:11.5px;color:var(--pale)}
.champ input,.champ select,.champ textarea{padding:8px 10px;border:1px solid var(--trait);border-radius:7px;font:inherit;background:#fff;width:100%}
.champ input:focus,.champ select:focus,.champ textarea:focus,.outils input:focus{outline:2px solid #a9bcd0;border-color:var(--marine-2)}
.champ input[readonly]{background:var(--fond);color:var(--doux)}
.champ textarea{min-height:70px;resize:vertical}
.champ input[type=color]{height:42px;padding:3px;cursor:pointer;max-width:160px}
.champ.case{flex-direction:row;align-items:center;gap:8px}.champ.case input{width:auto}
.puces{display:flex;flex-wrap:wrap;gap:6px}
.puces label{display:flex;align-items:center;gap:5px;font-weight:500;border:1px solid var(--trait);padding:4px 9px;border-radius:14px;cursor:pointer;font-size:12.5px;color:var(--texte)}
.puces label.on{background:var(--marine);border-color:var(--marine);color:#fff}
.puces input{display:none}
.checklist label{display:flex;gap:8px;align-items:center;padding:4px 0;font-weight:500;color:var(--texte)}
.fichier img{max-width:220px;max-height:160px;border-radius:6px;display:block;margin-top:6px}
.onglets{display:flex;gap:4px;border-bottom:2px solid var(--trait);margin:4px 0 16px;overflow-x:auto}
.onglets button{background:none;border:0;padding:9px 14px;font-weight:600;color:var(--doux);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;white-space:nowrap;font-size:13.5px}
.onglets button.on{color:var(--marine);border-bottom-color:var(--accent)}
.barre-prog{height:8px;background:var(--fond);border-radius:5px;overflow:hidden;min-width:70px}
.barre-prog i{display:block;height:100%;background:var(--marine-2)}
.kanban{display:flex;gap:12px;overflow-x:auto;padding-bottom:12px;align-items:flex-start}
.colonne{background:#e3e8ef;border-radius:var(--rayon);min-width:240px;width:240px;flex-shrink:0;padding:8px}
.colonne h3{display:flex;justify-content:space-between;font-size:13px;padding:4px 6px}
.colonne .total{font-size:11.5px;color:var(--doux);padding:0 6px 6px}
.colonne.survol{background:#cfd9e6}
.carte-k{background:#fff;border-radius:8px;padding:10px;margin-bottom:8px;box-shadow:0 1px 2px rgba(0,0,0,.08);cursor:grab;border-left:3px solid var(--marine-2)}
.carte-k b{display:block;font-size:13px;margin-bottom:3px}.carte-k small{color:var(--doux);display:block}
.carte-k .m{font-weight:700;color:var(--marine);margin-top:4px}
.lignes{width:100%;border-collapse:collapse;min-width:940px}
.lignes th{font-size:11.5px;color:var(--doux);text-align:left;padding:6px 4px;border-bottom:2px solid var(--trait)}
.lignes td{padding:4px;border-bottom:1px solid var(--fond);vertical-align:top}
.lignes input,.lignes select,.lignes textarea{width:100%;padding:6px 7px;border:1px solid var(--trait);border-radius:6px;font:inherit;font-size:13px}
.lignes textarea{min-height:34px;resize:vertical}
.lignes tr.titre td{background:var(--fond)}.lignes tr.titre textarea{font-weight:700;color:var(--marine)}
.lignes .tot{font-weight:600;text-align:right;white-space:nowrap;padding-top:10px}
.lignes .mini{display:flex;gap:2px}.lignes .mini button{border:0;background:none;cursor:pointer;font-size:14px;padding:3px;color:var(--doux)}
.totaux{display:flex;justify-content:flex-end;gap:28px;flex-wrap:wrap;padding:14px 4px 0;font-variant-numeric:tabular-nums}
.totaux div{text-align:right}.totaux small{display:block;color:var(--doux);font-size:11.5px}.totaux b{font-size:17px;color:var(--marine)}
.alerte-ligne{display:flex;gap:12px;align-items:flex-start;padding:11px 12px;border-radius:8px;margin-bottom:8px;background:#fff;box-shadow:var(--ombre);border-left:4px solid var(--marine-2)}
.alerte-ligne.urgent{border-left-color:var(--urg)}.alerte-ligne.attention{border-left-color:var(--att)}
.alerte-ligne.lue{opacity:.55}
.alerte-ligne .txt{flex:1}.alerte-ligne small{color:var(--pale);display:block;margin-top:2px}
.email{background:#fff;border-radius:var(--rayon);box-shadow:var(--ombre);padding:14px 16px;margin-bottom:12px}
.email textarea{width:100%;min-height:150px;font:inherit;padding:9px;border:1px solid var(--trait);border-radius:7px}
.email input{width:100%;padding:8px;border:1px solid var(--trait);border-radius:7px;font:inherit;margin-bottom:8px}
.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.photo{background:#fff;border-radius:8px;overflow:hidden;box-shadow:var(--ombre);cursor:pointer}
.photo img{width:100%;height:130px;object-fit:cover;display:block;background:var(--fond)}
.photo div{padding:7px 9px;font-size:12px}.photo small{color:var(--pale)}
.gantt{position:relative;overflow-x:auto;background:#fff;border-radius:var(--rayon);box-shadow:var(--ombre)}
.gantt table{border-collapse:collapse;min-width:100%}
.gantt td,.gantt th{border-bottom:1px solid var(--fond);padding:0;height:30px;font-size:12px}
.gantt th{font-weight:600;color:var(--doux);text-align:left;padding:4px 6px;position:sticky;top:0;background:#fff}
.gantt .nom{padding:4px 10px;white-space:nowrap;position:sticky;left:0;background:#fff;z-index:2;min-width:230px;max-width:280px;overflow:hidden;text-overflow:ellipsis}
.gantt .grp td{background:var(--fond);font-weight:700;color:var(--marine)}
.gantt .piste{position:relative}
.gantt .b{position:absolute;top:6px;height:18px;border-radius:4px;background:var(--marine-2);color:#fff;font-size:11px;padding:0 5px;overflow:hidden;white-space:nowrap}
.gantt .b.st{background:var(--accent)}
.gantt .b i{position:absolute;left:0;top:0;bottom:0;background:rgba(255,255,255,.28)}
.gantt .auj{position:absolute;top:0;bottom:0;width:2px;background:var(--urg);z-index:1}
.vide{color:var(--pale);padding:18px;text-align:center}
#modale{position:fixed;inset:0;background:rgba(0,20,40,.45);z-index:50;display:flex;align-items:flex-start;justify-content:center;padding:4vh 12px;overflow:auto}
#modale[hidden]{display:none}
.modale-boite{background:#fff;border-radius:12px;padding:20px 22px;width:min(760px,100%);box-shadow:0 20px 60px rgba(0,0,0,.25)}
.modale-boite .pied{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--marine);color:#fff;padding:11px 18px;border-radius:8px;opacity:0;transition:.25s;pointer-events:none;z-index:60;max-width:90vw}
#toast.on{opacity:1}#toast.err{background:var(--urg)}
.stat{display:flex;flex-direction:column}.stat small{color:var(--doux);font-size:11.5px}.stat b{font-size:16px;color:var(--marine)}
.liste-simple{list-style:none;margin:0;padding:0}.liste-simple li{padding:7px 0;border-bottom:1px solid var(--fond);display:flex;gap:8px;align-items:center}
.liste-simple li:last-child{border-bottom:0}
.regle{padding:12px 0;border-bottom:1px solid var(--fond)}.regle b{color:var(--marine)}.regle p{margin:3px 0 0;color:var(--doux)}
.bandeau-demo{background:var(--accent);color:#fff;padding:8px 14px;border-radius:8px;margin-bottom:14px;font-weight:600}
svg text{font-family:inherit}
:root{--module:#00264D}
.entete h1{color:var(--module);display:flex;align-items:center;gap:8px}
.ico-titre{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:10px;background:color-mix(in srgb,var(--module) 12%,white);font-size:20px}
#nav a .ico{width:20px;text-align:center;font-size:14px}
#nav a.actif{border-left-color:var(--m)}
.vide-grand{text-align:center;padding:46px 20px}.vide-grand .ico-vide{font-size:46px}.vide-grand p{color:var(--doux);max-width:520px;margin:6px auto 18px}
.avatar{display:inline-grid;place-items:center;border-radius:50%;color:#fff;font-weight:700;flex-shrink:0;overflow:hidden;border:2px solid var(--c,#0b3a6b);background:var(--c,#0b3a6b)}
.avatar img{width:100%;height:100%;object-fit:cover}
.pe{border-collapse:separate;border-spacing:0;min-width:100%;background:#fff}
.pe th{position:sticky;top:0;background:#fff;z-index:2;font-size:12px;color:var(--doux);padding:8px 6px;border-bottom:2px solid var(--trait);min-width:118px;text-align:left}
.pe th.auj{color:var(--accent)}.pe td.auj{background:#fff8f3}
.pe td{border-bottom:1px solid var(--fond);border-left:1px solid var(--fond);vertical-align:top;padding:4px;height:64px;cursor:pointer}
.pe td.we{background:#f7f8fa}
.pe td:hover{background:#f3f6fa}
.pe .pers{position:sticky;left:0;background:#fff;z-index:1;cursor:default;min-width:180px;border-left:4px solid var(--c)}
.pe .pers div{display:flex;gap:8px;align-items:center}
.pe .bloc{border-radius:6px;padding:4px 6px;margin-bottom:3px;font-size:12px;line-height:1.25;background:color-mix(in srgb,var(--c) 16%,white);border-left:4px solid var(--c);color:#16191D}
.pe .bloc.conflit{outline:2px solid var(--urg)}
.pe .bloc small{display:block;color:var(--doux)}
.pe .tache{font-size:11.5px;color:var(--doux);padding:1px 4px}
.etapes li{display:flex;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid var(--fond)}
.etapes .ok{color:var(--ok)}.etapes .non{color:var(--pale)}
.cabine-grille{grid-template-columns:minmax(0,320px) minmax(0,1fr);align-items:start}
@media (max-width:1100px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:1fr}}
@media (max-width:860px){
  body{grid-template-columns:1fr;grid-template-areas:"barre" "vue"}
  #menu{position:fixed;left:-260px;width:250px;z-index:40;transition:left .2s}
  body.menu-ouvert #menu{left:0}
  body.menu-ouvert #voile{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:30}
  .burger{display:block}
  #barre{padding:0 12px;gap:8px}#barre .btn.accent{padding:8px 10px;font-size:0}#barre .btn.accent::after{content:"+ Demande";font-size:13px}
  #vue{padding:16px 16px 60px}
  #moi .btn{display:none}#moi a{font-size:0}#moi a::first-letter{font-size:18px}
  .g2,.g4,.cabine-grille{grid-template-columns:1fr}
  form.fiche{grid-template-columns:1fr}
  table.liste.repliable thead{display:none}
  table.liste.repliable tr{display:block;border-bottom:1px solid var(--trait);padding:6px 0}
  table.liste.repliable td{display:flex;justify-content:space-between;gap:12px;border:0;padding:3px 10px;text-align:right}
  table.liste.repliable td::before{content:attr(data-l);color:var(--pale);font-size:12px;text-align:left}
}
.palette{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px}
.palette button{display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid var(--trait);border-radius:10px;background:var(--carte);cursor:pointer;font:inherit;font-size:13px;color:var(--texte);text-align:left}
.palette button i{width:22px;height:22px;border-radius:50%;background:var(--c);flex-shrink:0;box-shadow:inset 0 0 0 2px rgba(255,255,255,.35)}
.palette button.on{border-color:var(--c);box-shadow:0 0 0 2px var(--c);font-weight:600}
/* agenda */
.ag-filtres{display:flex;gap:6px;flex-wrap:wrap;margin:-6px 0 12px}
.ag-pers{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--trait);background:var(--carte);color:var(--texte);border-radius:16px;padding:5px 11px;font:inherit;font-size:13px;cursor:pointer}
.ag-pers i{width:10px;height:10px;border-radius:50%;display:inline-block}
.ag-pers.on{background:var(--marine-2);border-color:var(--marine-2);color:#fff}
.ag-carte{padding:10px 12px}
.ag-evt{overflow:hidden;line-height:1.25;font-size:12px;padding:1px 2px}.ag-evt small{display:block;opacity:.9}
.fc{--fc-border-color:var(--trait);--fc-today-bg-color:color-mix(in srgb,var(--accent) 9%,transparent);--fc-button-bg-color:var(--marine-2);--fc-button-border-color:var(--marine-2);
  --fc-button-active-bg-color:var(--marine);--fc-button-active-border-color:var(--marine);--fc-button-hover-bg-color:var(--marine);--fc-now-indicator-color:var(--urg);font-size:13px}
.fc .fc-toolbar-title{font-size:18px;color:var(--marine);text-transform:capitalize}
.fc .fc-button{font-size:13px;border-radius:8px;text-transform:none}
.fc .fc-col-header-cell-cushion,.fc .fc-daygrid-day-number{color:var(--texte);text-decoration:none;text-transform:capitalize}
.fc .fc-non-business{background:color-mix(in srgb,var(--fond) 70%,transparent)}
.fc-event{cursor:pointer;border-radius:6px}
/* fichiers partagés */
.pt-chemin{margin:-6px 0 10px;font-size:14px}.pt-chemin a{text-decoration:none;font-weight:600}
.pt-zone{min-height:300px;transition:.15s}.pt-zone.survol{outline:3px dashed var(--marine-2);background:var(--info-fond)}
.pt-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.pt-item{position:relative;border:1px solid var(--trait);border-radius:12px;padding:14px 10px 10px;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;text-align:center;background:var(--carte);min-width:0}
.pt-item:hover{border-color:var(--marine-2);box-shadow:var(--ombre)}
.pt-item b{font-size:13px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.pt-item small{color:var(--pale);font-size:11.5px}
.pt-ico{font-size:40px;line-height:1.1}
.pt-vignette{width:100%;height:90px;object-fit:cover;border-radius:8px}
.pt-menu{position:absolute;top:4px;right:6px;border:0;background:none;font-size:18px;cursor:pointer;color:var(--doux);padding:2px 6px;border-radius:6px}
.pt-menu:hover{background:var(--fond)}
.pt-actions{display:flex;flex-direction:column;gap:8px}
.pt-progression{margin-bottom:12px;font-size:13px}.pt-progression span{display:block;height:6px;background:var(--fond);border-radius:3px;margin-top:4px;overflow:hidden}
.pt-progression i{display:block;height:100%;background:var(--ok)}
img.vignette{border-radius:9px;object-fit:cover;display:block;flex-shrink:0;background:#EEF2F7}
.avec-vignette{display:flex;align-items:center;gap:10px}
/* ------------------------------------------------------------ mode sombre */
.theme{background:none;border:1px solid var(--trait);border-radius:8px;width:36px;height:34px;cursor:pointer;font-size:16px}
.theme::after{content:"🌙"}
:root[data-theme="dark"] .theme::after{content:"☀️"}
:root[data-theme="dark"]{
  --fond:#0e1621;--carte:#172231;--trait:#2a3a4f;--texte:#e4ebf3;--doux:#a8b6c7;--pale:#7f90a4;
  --marine:#8fb8ff;--marine-2:#6aa1ff;--info-fond:#1c2d45;
  --ok:#5fd08e;--ok-fond:#163525;--att:#f2b24a;--att-fond:#3a2c12;--urg:#ff7a70;--urg-fond:#3d1b1a;
  --ombre:0 1px 2px rgba(0,0,0,.4),0 4px 14px rgba(0,0,0,.3);color-scheme:dark}
:root[data-theme="dark"] body{background:var(--fond);color:var(--texte)}
:root[data-theme="dark"] #menu{background:#08111c}
:root[data-theme="dark"] .marque{background:#f4f6f9}
:root[data-theme="dark"] #barre,:root[data-theme="dark"] .carte,:root[data-theme="dark"] .kpi,:root[data-theme="dark"] table.liste,
:root[data-theme="dark"] .modale-boite,:root[data-theme="dark"] .carte-k,:root[data-theme="dark"] .email,:root[data-theme="dark"] .photo,
:root[data-theme="dark"] .gantt,:root[data-theme="dark"] .gantt th,:root[data-theme="dark"] .gantt .nom,:root[data-theme="dark"] .pe,
:root[data-theme="dark"] .pe th,:root[data-theme="dark"] .pe .pers,:root[data-theme="dark"] #resultats,:root[data-theme="dark"] .alerte-ligne{background:var(--carte);color:var(--texte)}
:root[data-theme="dark"] .btn{background:var(--carte);color:var(--texte);border-color:var(--trait)}
:root[data-theme="dark"] .btn.prim{background:#2f6fd6;border-color:#2f6fd6;color:#fff}
:root[data-theme="dark"] .btn.accent{background:var(--accent);border-color:var(--accent);color:#fff}
:root[data-theme="dark"] .btn.ok{background:#2f8a57;border-color:#2f8a57;color:#fff}
:root[data-theme="dark"] input,:root[data-theme="dark"] select,:root[data-theme="dark"] textarea{background:#0f1a27 !important;color:var(--texte);border-color:var(--trait) !important}
:root[data-theme="dark"] .champ input[readonly]{background:#132030 !important;color:var(--doux)}
:root[data-theme="dark"] .recherche input{background:#0f1a27}
:root[data-theme="dark"] .colonne{background:#121c29}:root[data-theme="dark"] .colonne.survol{background:#1b2a3d}
:root[data-theme="dark"] table.liste tr:hover td,:root[data-theme="dark"] table.liste tr.clic:hover td{background:#1c2a3b}
:root[data-theme="dark"] table.liste td.editable:hover{background:#1f2f43}
:root[data-theme="dark"] .lignes tr.titre td,:root[data-theme="dark"] .gantt .grp td{background:#1b293a}
:root[data-theme="dark"] .pe td.we{background:#131d2a}:root[data-theme="dark"] .pe td.auj{background:#2a2016}:root[data-theme="dark"] .pe td:hover{background:#1c2a3b}
:root[data-theme="dark"] .pe .bloc{background:color-mix(in srgb,var(--c) 30%,#172231);color:var(--texte)}
:root[data-theme="dark"] .ico-titre{background:color-mix(in srgb,var(--module) 30%,#172231)}
:root[data-theme="dark"] .entete h1{color:color-mix(in srgb,var(--module) 25%,white)}
:root[data-theme="dark"] .badge{background:#22344d;color:#b9d2ff}
:root[data-theme="dark"] .badge.gris{background:#26313e;color:var(--doux)}
:root[data-theme="dark"] .puces label{color:var(--texte)}:root[data-theme="dark"] .puces label.on{background:#2f6fd6;border-color:#2f6fd6}
:root[data-theme="dark"] .barre-prog{background:#24344a}
:root[data-theme="dark"] #toast{background:#2f6fd6}
:root[data-theme="dark"] a{color:#8fb8ff}
:root[data-theme="dark"] svg text{fill:var(--doux)}
@media print{#menu,#barre,.actions,.outils{display:none}body{display:block;background:#fff}}

/* ------------------------------------------------------------ téléphone : ergonomie inspirée d'iOS */
#onglets-bas,#titre-barre,.plus-tete,.plus-fin,#retour{display:none}
@media (max-width:760px){
  :root{--ios-fond:#F2F2F7;--ios-cellule:#fff;--ios-sep:rgba(60,60,67,.18);--ios-gris:#8E8E93;--ios-bleu:var(--marine-2);--ios-barre:rgba(249,249,251,.82)}
  :root[data-theme="dark"]{--ios-fond:#000;--ios-cellule:#1C1C1E;--ios-sep:rgba(84,84,88,.6);--ios-gris:#8E8E93;--ios-barre:rgba(22,22,24,.82)}
  html{-webkit-text-size-adjust:100%}
  body{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,sans-serif;font-size:16px;background:var(--ios-fond);
    -webkit-tap-highlight-color:transparent;display:block;height:auto;min-height:100%}
  :root[data-theme="dark"] body{background:var(--ios-fond)}

  /* barre du haut : translucide, recherche arrondie, titre compact au défilement */
  #barre{height:auto !important;min-height:52px;padding:calc(env(safe-area-inset-top) + 6px) 14px 8px;background:var(--ios-barre) !important;
    -webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-bottom:.5px solid var(--ios-sep);gap:10px;flex-wrap:wrap}
  .burger,.theme,#moi,#barre .marque{display:none !important}
  .recherche{order:3;flex:1 1 100%;max-width:none;transition:.2s}
  .recherche input{background:rgba(118,118,128,.12);border:0;border-radius:10px;padding:9px 12px 9px 34px;font-size:16px;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%238E8E93' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='7' cy='7' r='5.5'/%3E%3Cpath d='m11 11 4 4'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:11px center}
  :root[data-theme="dark"] .recherche input{background-color:rgba(118,118,128,.24) !important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%238E8E93' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='7' cy='7' r='5.5'/%3E%3Cpath d='m11 11 4 4'/%3E%3C/svg%3E") !important;background-repeat:no-repeat !important;background-position:11px center !important}
  :root[data-theme="dark"] .champ input,:root[data-theme="dark"] .champ select,:root[data-theme="dark"] .champ textarea,:root[data-theme="dark"] .outils input,
  :root[data-theme="dark"] .outils select,:root[data-theme="dark"] .lignes input,:root[data-theme="dark"] .lignes select,:root[data-theme="dark"] .lignes textarea{background:rgba(118,118,128,.24) !important;border:0 !important}
  #barre .btn.accent{order:2;margin-left:auto;width:34px;height:34px;padding:0;border-radius:50%;font-size:0;justify-content:center}
  #barre .btn.accent::after{content:"+";font-size:24px;font-weight:400;line-height:1}
  .cloche{order:1;font-size:21px}
  #retour{display:flex;align-items:center;gap:4px;order:-1;background:none;border:0;padding:6px 4px;color:var(--marine-2);font-size:17px;
    font-family:inherit;max-width:40vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
  #retour[hidden]{display:none}
  #retour span{overflow:hidden;text-overflow:ellipsis}
  .entete > a.btn.petit:first-child{display:none !important}
  #titre-barre{display:block;order:0;flex:1;font-weight:600;font-size:17px;text-align:center;opacity:0;transition:opacity .15s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--texte)}
  body.defile-bas #titre-barre{opacity:1}
  body.defile-bas .recherche{display:none}

  /* contenu : grands titres, cellules groupées */
  #vue{padding:8px 16px calc(96px + env(safe-area-inset-bottom))}
  .entete{margin:6px 0 14px;gap:10px}
  .entete h1{font-size:32px;font-weight:700;letter-spacing:.2px;color:var(--texte) !important;width:100%}
  .ico-titre{display:none !important}
  .entete .sous{font-size:14px;color:var(--ios-gris);margin-top:-4px}
  .entete .actions{margin-left:0;width:100%;flex-wrap:wrap}
  .entete .actions > *{flex:1 1 auto;justify-content:center}
  .entete .actions::-webkit-scrollbar{display:none}
  h2{font-size:20px;font-weight:700;color:var(--texte)}
  .entete > a.btn.petit:first-child,:root[data-theme="dark"] .entete > a.btn.petit:first-child{background:none;padding:0;min-height:0;font-size:17px;font-weight:400;color:var(--marine-2)}
  .carte,.kpi,.email,.alerte-ligne,table.liste{background:var(--ios-cellule) !important;border-radius:12px;box-shadow:none;border:0}
  .carte{padding:14px 16px;margin-bottom:18px}
  .grille{gap:12px}
  .g3{grid-template-columns:1fr}
  .g4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpi{border-top:0;padding:14px}
  .kpi .l{text-transform:none;letter-spacing:0;font-size:13px;color:var(--ios-gris)}
  .kpi .v{font-size:24px;color:var(--texte)}
  .kpi.alerte .v{color:var(--urg)}

  /* boutons : formes arrondies, zones tactiles de 44 px */
  .btn{min-height:40px;border-radius:12px;padding:9px 16px;font-size:15px;border:0;background:rgba(118,118,128,.12);color:var(--ios-bleu)}
  :root[data-theme="dark"] .btn{background:rgba(118,118,128,.24);border:0}
  .btn.prim,:root[data-theme="dark"] .btn.prim{background:var(--marine-2);color:#fff}
  .btn.accent,:root[data-theme="dark"] .btn.accent{background:var(--accent);color:#fff}
  .btn.ok{background:var(--ok);color:#fff}
  .btn.danger{color:var(--urg)}
  .btn.petit{min-height:32px;padding:5px 12px;font-size:13.5px;border-radius:9px}

  /* listes : une cellule par fiche, titre + détails, chevron */
  .defile{overflow-x:auto}
  .carte.defile,.carte[style*="padding:0"]{padding:0 !important;overflow:hidden}
  table.liste.repliable,table.liste.repliable tbody{display:block}
  table.liste.repliable tr{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;position:relative;padding:11px 34px 11px 16px;border-bottom:.5px solid var(--ios-sep)}
  table.liste.repliable tr:last-child{border-bottom:0}
  table.liste.repliable tr:hover td{background:none !important}
  table.liste.repliable tr.clic:active,table.liste.repliable tr:active{background:rgba(118,118,128,.12)}
  table.liste.repliable tr.clic::after,table.liste.repliable tr:has(td.ouvrir)::after{content:"";position:absolute;right:16px;top:50%;width:8px;height:8px;
    border-top:2px solid #C4C4C7;border-right:2px solid #C4C4C7;transform:translateY(-50%) rotate(45deg)}
  table.liste.repliable td{display:inline;padding:0;border:0;text-align:left;font-size:13.5px;color:var(--ios-gris);background:none !important}
  table.liste.repliable td::before{display:none}
  table.liste.repliable td:first-child{display:block;flex:1 1 100%;font-size:17px;font-weight:600;color:var(--texte);margin-bottom:1px}
  table.liste.repliable td.n{font-variant-numeric:tabular-nums}
  table.liste.repliable td:empty{display:none}
  table.liste.repliable .badge{font-size:12px;padding:1px 8px}
  .outils{gap:8px}
  .outils input,.outils select{font-size:16px;border:0;border-radius:10px;background:rgba(118,118,128,.12);padding:9px 12px}
  .outils .compte{width:100%;margin-left:0;text-align:right}

  /* formulaires : champs larges en 16 px (pas de zoom automatique sur iPhone) */
  form.fiche{gap:14px}
  .champ label{font-size:13px;font-weight:500;color:var(--ios-gris);text-transform:none}
  .champ input,.champ select,.champ textarea,.lignes input,.lignes select,.lignes textarea,.email input,.email textarea{font-size:16px;border-radius:10px;padding:11px 12px;border:0;background:rgba(118,118,128,.12)}
  .champ input:focus,.champ select:focus,.champ textarea:focus{outline:2px solid var(--marine-2)}

  /* onglets internes : contrôle segmenté */
  .onglets{border:0;background:rgba(118,118,128,.12);border-radius:10px;padding:2px;gap:2px;margin:4px 0 16px;flex-wrap:wrap;overflow:visible}
  .onglets button{flex:1 1 auto}
  .onglets button{border:0;border-radius:8px;padding:7px 12px;margin:0;font-size:13.5px;color:var(--texte)}
  .onglets button.on{background:var(--ios-cellule);box-shadow:0 1px 3px rgba(0,0,0,.12);color:var(--texte)}

  /* fenêtres : feuilles qui montent du bas avec poignée */
  #modale{align-items:flex-end;padding:0;background:rgba(0,0,0,.4)}
  .modale-boite{width:100%;max-height:92vh;overflow:auto;border-radius:14px 14px 0 0;padding:26px 18px calc(18px + env(safe-area-inset-bottom));
    animation:feuille .28s cubic-bezier(.2,.8,.2,1);background:var(--ios-cellule) !important;transition:transform .15s}
  .modale-boite::before{content:"";position:absolute;margin:-18px 0 0 calc(50% - 36px);width:36px;height:5px;border-radius:3px;background:rgba(118,118,128,.4)}
  .modale-boite .pied{flex-direction:column-reverse;gap:8px}
  .modale-boite .pied .btn{width:100%;justify-content:center;min-height:48px;font-size:17px}
  @keyframes feuille{from{transform:translateY(100%)}to{transform:translateY(0)}}

  /* menu « Plus » : liste groupée plein écran, comme Réglages */
  #menu{position:fixed;top:0;bottom:0;right:0;left:auto !important;width:86vw;max-width:360px;height:auto;z-index:49;background:var(--ios-fond) !important;color:var(--texte);
    transform:translateX(105%);transition:transform .3s cubic-bezier(.2,.8,.2,1);padding:0 16px calc(24px + env(safe-area-inset-bottom));overflow-y:auto;
    box-shadow:none;overscroll-behavior:contain;visibility:hidden}
  body.menu-ouvert #menu{transform:none;visibility:visible;box-shadow:-10px 0 30px rgba(0,0,0,.18)}
  body.menu-ouvert #voile{display:block;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:47}
  .plus-tete{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:2;background:var(--ios-fond);
    padding:calc(env(safe-area-inset-top) + 14px) 2px 8px}
  .plus-tete b{font-size:32px}
  .plus-tete button{background:none;border:0;color:var(--marine-2);font-size:17px;font-weight:600;padding:6px}
  #menu .marque{display:none}
  #favoris h4,#nav h4{color:var(--ios-gris) !important;opacity:1 !important;font-size:13px;letter-spacing:0;text-transform:uppercase;margin:22px 16px 6px;font-weight:400}
  #nav{display:block}
  #nav a,#favoris a{background:var(--ios-cellule);color:var(--texte) !important;padding:11px 16px;border-left:0 !important;font-size:17px;gap:12px;position:relative}
  #nav a::after{content:"";position:absolute;right:16px;top:50%;width:7px;height:7px;border-top:2px solid #C4C4C7;border-right:2px solid #C4C4C7;transform:translateY(-50%) rotate(45deg)}
  #nav a.actif{background:var(--ios-cellule);font-weight:400}
  #nav a .ico{width:29px;height:29px;border-radius:7px;display:inline-grid;place-items:center;font-size:16px;background:var(--m,#8E8E93);flex-shrink:0}
  #nav a .pastille{margin-right:18px}
  /* coins arrondis des groupes : premier / dernier lien après chaque titre de section */
  #nav h4 + a{border-radius:12px 12px 0 0}
  #nav a:has(+ h4),#nav a:last-child{border-radius:0 0 12px 12px}
  #nav h4 + a:has(+ h4),#nav h4 + a:last-child{border-radius:12px}
  #nav a + a{box-shadow:inset 57px .5px 0 -57px var(--ios-sep)}
  #nav a + a::before{content:"";position:absolute;left:57px;right:0;top:0;border-top:.5px solid var(--ios-sep)}

  .plus-fin{display:block;margin-top:28px;border-radius:12px;overflow:hidden}
  .plus-fin button{display:block;width:100%;text-align:left;background:var(--ios-cellule);border:0;border-bottom:.5px solid var(--ios-sep);padding:13px 16px;font-size:17px;color:var(--marine-2)}
  .plus-fin button:last-child{border-bottom:0}.plus-fin .rouge{color:#FF3B30}
  /* barre d'onglets du bas */
  #onglets-bas{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:48;background:var(--ios-barre);
    -webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-top:.5px solid var(--ios-sep);
    padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
  #onglets-bas a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;text-decoration:none;color:var(--ios-gris);font-size:10.5px;font-weight:500}
  #onglets-bas a.on{color:var(--marine-2)}
  #onglets-bas a.on svg{stroke-width:2.2}
  #toast{bottom:calc(84px + env(safe-area-inset-bottom));border-radius:20px;padding:11px 20px;font-size:15px}

  /* tableaux larges (lignes de devis, planning) : défilement horizontal propre */
  .lignes{min-width:760px}
  .carte .defile:has(.lignes),.gantt,.pe{-webkit-overflow-scrolling:touch;overflow-x:auto}
  .totaux{justify-content:space-between;gap:12px}
  .kanban{scroll-snap-type:x mandatory}.colonne{scroll-snap-align:start;min-width:84vw;width:84vw;border-radius:14px}
  /* écran fixe : rien ne dépasse, pas de glissement gauche / droite de la page */
  html,body{overflow-x:hidden;max-width:100%;overscroll-behavior-x:none}
  html{touch-action:pan-y}
  #vue{overflow-x:hidden;max-width:100vw}
  #vue *{max-width:100%}
  #vue table:not(.liste):not(.lignes):not(.pe),#vue img,#vue svg,#vue video{max-width:100%}
  .carte,.grille,.grille > *,form.fiche,.champ{min-width:0}
  .defile,.gantt,.kanban,.carte .defile{touch-action:pan-x pan-y;max-width:100%}
  .lignes,.pe,.gantt table{max-width:none}
  #vue .fc *{max-width:none;overflow-wrap:normal}
  .fc .fc-toolbar{flex-wrap:wrap;gap:8px}.fc .fc-toolbar-title{font-size:17px}
  .fc .fc-button{padding:6px 10px}
  .fc .fc-timegrid-axis-cushion{white-space:nowrap;font-size:11px}
  .ag-filtres{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.ag-pers{flex-shrink:0}
  .ag-carte{padding:6px}
  .entete .actions .btn,.entete .actions select{flex-shrink:0}
  .outils > *{max-width:100%}.outils input,.outils select{flex:1 1 140px;min-width:0}
  td,th,b,a,span,small{overflow-wrap:anywhere}
  .totaux b{font-size:16px}

  /* accueil téléphone */
  .m-raccourcis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:2px 0 18px}
  .m-raccourcis a,.m-raccourcis button{display:flex;flex-direction:column;align-items:center;gap:6px;text-decoration:none;color:var(--texte);font-size:12px;
    font-weight:500;background:none;border:0;padding:0;position:relative;font-family:inherit}
  .m-raccourcis span{width:56px;height:56px;border-radius:16px;background:var(--ios-cellule);display:grid;place-items:center;font-size:24px;color:var(--marine-2)}
  .m-raccourcis button span{background:var(--accent);color:#fff;font-size:28px}
  .m-raccourcis i{position:absolute;top:-4px;right:calc(50% - 34px);background:#FF3B30;color:#fff;font-style:normal;font-size:11px;font-weight:700;border-radius:10px;padding:1px 6px}
  .m-kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:6px}
  .m-kpis a{background:var(--ios-cellule);border-radius:14px;padding:12px 14px;text-decoration:none;color:var(--texte);display:flex;flex-direction:column;gap:2px;min-width:0}
  .m-kpis small{color:var(--ios-gris);font-size:13px}.m-kpis b{font-size:21px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .m-kpis em{font-style:normal;font-size:12px;color:var(--urg)}.m-kpis em.gris,.m-cell .gris{color:var(--ios-gris)}
  .m-titre{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;font-weight:400;text-transform:uppercase;color:var(--ios-gris);margin:22px 16px 6px}
  .m-titre a{text-transform:none;font-size:15px;color:var(--marine-2);text-decoration:none}
  .m-groupe{background:var(--ios-cellule);border-radius:12px;overflow:hidden}
  .m-cell{display:flex;align-items:center;gap:12px;padding:11px 16px;text-decoration:none;color:var(--texte);position:relative;min-height:48px}
  .m-cell + .m-cell::before{content:"";position:absolute;left:16px;right:0;top:0;border-top:.5px solid var(--ios-sep)}
  a.m-cell{padding-right:34px}
  a.m-cell::after{content:"";position:absolute;right:16px;top:50%;width:7px;height:7px;border-top:2px solid #C4C4C7;border-right:2px solid #C4C4C7;transform:translateY(-50%) rotate(45deg)}
  .m-cell:active{background:rgba(118,118,128,.12)}
  .m-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
  .m-txt b{font-size:16px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .m-txt small{font-size:13.5px;color:var(--ios-gris);line-height:1.35}
  .m-pastille{width:12px;height:12px;border-radius:50%;flex-shrink:0}
  .m-prog{width:54px;height:6px;border-radius:3px;background:rgba(118,118,128,.18);overflow:hidden;flex-shrink:0}
  .m-prog i{display:block;height:100%;background:var(--ok)}
  .m-cell input[type=checkbox]{width:22px;height:22px;accent-color:var(--marine-2);flex-shrink:0}
}

/* ------------------------------------------------------------ accueil : jauges (anneaux) et compte rendu du jour */
.jauges{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin-bottom:16px}
@media (max-width:1380px){.jauges{grid-template-columns:repeat(3,minmax(0,1fr))}}
.jauge{--c:var(--pale);display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;background:var(--carte);color:var(--texte);
  border-radius:var(--rayon);box-shadow:var(--ombre);padding:16px 12px 12px;text-decoration:none;border-top:4px solid var(--c);transition:transform .15s,box-shadow .15s}
.jauge:hover{transform:translateY(-2px);box-shadow:0 2px 4px rgba(0,38,77,.08),0 10px 24px rgba(0,38,77,.10)}
.jauge.vert{--c:var(--ok)}.jauge.orange{--c:var(--att)}.jauge.rouge{--c:var(--urg)}.jauge.gris{--c:var(--pale)}
.jauge svg{margin-bottom:6px}
.jauge .anneau-fond{fill:none;stroke:var(--trait);stroke-width:11}
.jauge .anneau{fill:none;stroke:var(--c);stroke-width:11;stroke-linecap:round;transition:stroke-dasharray .6s}
:root .jauge svg text.centre{fill:var(--texte);font-size:26px;font-weight:700;font-variant-numeric:tabular-nums}
:root .jauge svg text.centre.petit{font-size:19px}
.jauge b{font-size:13px;text-transform:uppercase;letter-spacing:.4px;color:var(--doux)}
.jauge .val{font-size:16px;font-weight:700;color:var(--texte);font-variant-numeric:tabular-nums}
.jauge small{font-size:11.5px;color:var(--pale);line-height:1.35}
.jauge .etat{margin-top:6px;font-size:11.5px;font-weight:700;color:var(--c);background:color-mix(in srgb,var(--c) 13%,transparent);padding:2px 10px;border-radius:20px}
.jauge em{font-style:normal;font-size:10.5px;color:var(--pale);margin-top:4px}
.accueil-haut{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);margin-bottom:16px;align-items:start}
.accueil-haut .carte{margin-bottom:0}.accueil-haut .kpi{height:100%;box-sizing:border-box}
.niv{width:10px;height:10px;border-radius:50%;flex-shrink:0;background:var(--pale)}
.niv.urgent{background:var(--urg)}.niv.attention{background:var(--att)}.niv.info{background:var(--marine-2)}
.cr-bandeau{border-radius:var(--rayon);padding:14px 18px;margin-bottom:16px;font-size:15px;border-left:5px solid var(--c);background:color-mix(in srgb,var(--c) 10%,var(--carte))}
.cr-bandeau.vert{--c:var(--ok)}.cr-bandeau.orange{--c:var(--att)}.cr-bandeau.rouge{--c:var(--urg)}
.cr-corps{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:start}
.cr-titre{margin:0 0 10px}
.cr-constat{border-left:4px solid var(--pale)}.cr-constat.urgent{border-left-color:var(--urg)}.cr-constat.attention{border-left-color:var(--att)}.cr-constat.info{border-left-color:var(--marine-2)}
.cr-tete{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cr-tete h3{flex:1;margin:0;font-size:15px;min-width:200px}
.cr-constat p{color:var(--doux);margin:6px 0 4px;font-size:13px}
.cr-constat li small{color:var(--pale);text-align:right}
@media (max-width:1100px){.accueil-haut,.cr-corps{grid-template-columns:1fr}}
@media (max-width:760px){
  .jauges{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .jauge{padding:12px 8px 10px}.jauge svg{width:96px;height:96px}.jauge em{display:none}
  .m-jauges{display:flex;overflow-x:auto;gap:10px;padding:2px 2px 10px;margin:0 -2px;scroll-snap-type:x mandatory}
  .m-jauges .jauge{flex:0 0 150px;scroll-snap-align:start;box-shadow:none;background:var(--ios-cellule,#fff)}
  .m-jauges .jauge small,.m-jauges .jauge .val{display:none}
  .cr-tete h3{min-width:0}
}
@media print{.jauge{box-shadow:none;border:1px solid #ddd}.cr-bandeau{border:1px solid #ddd}}
/* ------------------------------------------------------------ agenda des encaissements */
.enc-reel{fill:none;stroke:var(--ok);stroke-width:3}
.enc-prevu{fill:none;stroke:var(--ok);stroke-width:3;stroke-dasharray:7 5;opacity:.75}
.enc-point{fill:var(--carte);stroke:var(--ok);stroke-width:2.5}
.enc-grille{stroke:var(--trait);stroke-width:1}
.enc-auj{stroke:var(--accent);stroke-width:1.5;stroke-dasharray:3 3}
:root svg text.enc-auj-t{fill:var(--accent)}
.enc-legende{display:flex;gap:18px;flex-wrap:wrap;font-size:12.5px;color:var(--doux);margin-top:6px}
.enc-legende i{display:inline-block;width:22px;height:0;border-top:3px solid var(--ok);vertical-align:middle;margin-right:4px}
.enc-legende i.prevu{border-top-style:dashed}.enc-legende .rouge{color:var(--urg)}
.enc-corps{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start}
.fc .enc-total{background:var(--marine-2) !important;border-color:var(--marine-2) !important;font-weight:700}
.fc .enc-total .fc-event-title{color:#fff}
.fc .enc-facture{background:var(--ok-fond) !important;border-color:var(--ok) !important}
.fc .enc-facture .fc-event-title{color:var(--ok)}
.fc .enc-retard{background:var(--urg-fond) !important;border-color:var(--urg) !important}
.fc .enc-retard .fc-event-title{color:var(--urg);font-weight:700}
.recap-apercu{width:100%;height:65vh;border:1px solid var(--trait);border-radius:8px;background:#EEF1F5}
@media (max-width:1100px){.enc-corps{grid-template-columns:1fr}}