/*
 * MRC Gestion — © MR COPER Systems. Tous droits réservés.
 * Logiciel protégé par le droit d'auteur (Code de la propriété intellectuelle, art. L.111-1, L.112-2, L.122-4, L.122-6 et L.335-2).
 * Toute reproduction, copie, représentation, modification, adaptation, traduction, décompilation ou diffusion, totale ou
 * partielle, par quelque procédé que ce soit, sans autorisation écrite préalable de MR COPER Systems est interdite. Voir le fichier LICENCE.
 */
[hidden]{display:none!important}
:root{--bg:#f4f5f7;--card:#fff;--txt:#1b1f24;--mut:#6b7280;--line:#e3e6ea;--pri:#1f3a5f;--acc:#f2a900;--ok:#1e8e3e;--err:#c62828;--r:10px}
@media (prefers-color-scheme:dark){:root:where(:not([data-theme="clair"])){--bg:#121417;--card:#1b1e23;--txt:#e8eaed;--mut:#9aa0a6;--line:#2c3036;--pri:#8ab4f8}}
:root:where([data-theme="sombre"]){--bg:#121417;--card:#1b1e23;--txt:#e8eaed;--mut:#9aa0a6;--line:#2c3036;--pri:#8ab4f8}
*{box-sizing:border-box}body{margin:0;font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--txt)}
a{color:var(--pri)}small,.small{font-size:.85em}.muted{color:var(--mut)}
.top{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;padding:12px 20px;background:var(--pri);color:var(--sur-pri)}
.top a{color:var(--sur-pri);text-decoration:none;opacity:.8}.top a.on,.top a:hover{opacity:1;border-bottom:2px solid var(--acc)}
.top nav{display:flex;gap:16px;flex-wrap:wrap;flex:1}.logo{font-size:1.1em}.out{font-size:.85em}
.theme-bascule{background:transparent;color:inherit;border:1px solid rgba(255,255,255,.4);border-radius:8px;padding:3px 8px;font-size:1em;line-height:1.2;cursor:pointer;box-shadow:none;transition:background-color .15s}
.theme-bascule:hover{background:rgba(255,255,255,.18);filter:none}
main{max-width:1200px;margin:0 auto;padding:20px 16px}
.head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
h1{margin:0;font-size:1.5em}h2{font-size:1.1em;margin:18px 0 10px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px;margin-bottom:16px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:20px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px}
.kpi span{display:block;color:var(--mut);font-size:.85em}.kpi b{font-size:1.5em}.kpi.accent{border-color:var(--acc);border-width:2px}
.table-wrap{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--r)}
table{width:100%;border-collapse:collapse}th,td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{font-size:.8em;text-transform:uppercase;color:var(--mut);letter-spacing:.03em}tfoot td{font-weight:600}
tr.off{opacity:.5}
input,select,textarea,button{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--txt)}
.form label{display:block;margin-bottom:12px;font-weight:500}.form label input,.form label select,.form label textarea{display:block;width:100%;margin-top:4px;font-weight:400}
.form label.check{display:flex;gap:8px;align-items:center}.form label.check input{width:auto;margin:0}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:0 16px}
button,.btn{background:var(--pri);color:var(--sur-pri);border:0;cursor:pointer;text-decoration:none;display:inline-block;padding:9px 14px;border-radius:8px}
button.ghost,.btn.ghost{background:transparent;color:var(--pri);border:1px solid var(--pri)}
.actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:8px}
.filtres{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}form.inline{display:inline}
.flash{padding:10px 14px;border-radius:8px;margin-bottom:14px;background:#e6f4ea;color:var(--ok)}.flash.err{background:#fdecea;color:var(--err)}
.tag{display:inline-block;font-size:.72em;padding:1px 6px;border-radius:20px;background:var(--acc);color:#000;margin-left:4px}
.st{display:inline-block;font-size:.78em;padding:2px 8px;border-radius:20px;background:var(--line)}
.estim{padding:12px;border-radius:8px;background:var(--bg);margin:6px 0 12px}
table.edit input{width:100%;min-width:60px}.big{font-size:1.2em}.log{padding-left:18px;margin:0}
body.login{display:grid;place-items:center;min-height:100vh;padding:16px}body.login .card{width:100%;max-width:360px}
body.login label{display:block;margin:10px 0}body.login input{width:100%;margin-top:4px}body.login button{width:100%;margin-top:10px}
/* --- v2 multi-groupes --- */
.sousbar{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;padding:8px 20px;background:var(--card);border-bottom:1px solid var(--line)}
.sousbar nav{display:flex;flex-wrap:wrap;gap:14px}.sousbar a{text-decoration:none;color:var(--txt);opacity:.75}.sousbar a.on,.sousbar a:hover{opacity:1;color:var(--pri);font-weight:600}
.pastille{display:inline-block;min-width:18px;padding:0 5px;border-radius:10px;background:var(--acc);color:#000;font-size:.75em;text-align:center;font-weight:700}
.tag.rouge{background:#fdecea;color:var(--err)}.tag.bleu{background:#e3ecfa;color:#1f3a5f}
.kpi small{display:block;color:var(--mut);font-size:.78em;margin-top:2px}.kpi.lien{text-decoration:none;color:inherit}.kpi.lien:hover{border-color:var(--pri)}
.graphes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:8px}   /* 2 graphiques côte à côte (50 % chacun), le large en dessous */
@media (max-width:760px){.graphes{grid-template-columns:1fr}}
.graphe h2{margin:0 0 10px}.graphe .zone{position:relative;height:280px}.graphe.large{grid-column:1/-1}
.code-box{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;justify-content:space-between}
.code{font:700 1.8em/1.2 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.12em;color:var(--pri)}
.cartes{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;margin-bottom:12px}
.attente{border-left:4px solid var(--acc)}.attente h3{margin:0 0 8px;font-size:1.05em}
.attente dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0 0 6px;font-size:.92em}.attente dt{color:var(--mut)}.attente dd{margin:0}
.btn.petit,button.petit{padding:5px 10px;font-size:.85em}button.danger{color:var(--err);border-color:var(--err)}
.nowrap{white-space:nowrap}table.mini td{padding:5px 6px;font-size:.9em}
table.matrice th span{writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap}table.matrice td{text-align:center}
table.matrice tbody th{text-align:right;white-space:nowrap}table.matrice input{width:18px;height:18px}
.head h2{margin:18px 0 10px}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="clair"])) .tag.rouge{background:#3a1d1d}:where(:root:not([data-theme="clair"])) .tag.bleu{background:#1d2a3d;color:#8ab4f8}:where(:root:not([data-theme="clair"])) .flash{background:#1d3324}:where(:root:not([data-theme="clair"])) .flash.err{background:#3a1d1d}}
:where(:root[data-theme="sombre"]) .tag.rouge{background:#3a1d1d}:where(:root[data-theme="sombre"]) .tag.bleu{background:#1d2a3d;color:#8ab4f8}:where(:root[data-theme="sombre"]) .flash{background:#1d3324}:where(:root[data-theme="sombre"]) .flash.err{background:#3a1d1d}
/* --- droits back-office --- */
.permissions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-top:12px}
.perm-box{border:1px solid var(--line);border-radius:10px;padding:10px 12px;min-width:0}
.perm-box legend{font-weight:700;padding:0 6px}
.form label.perm-line{display:flex;align-items:flex-start;gap:9px;margin:8px 0;font-weight:400}
.perm-line input{width:auto;margin:3px 0 0}
.perm-line span{display:block}.perm-line small{display:block;color:var(--mut);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;margin-top:2px}
/* --- v3 : sécurité + chat --- */
.flash.warn{background:#fff3cd;color:#7a5b00}
.pastille.rouge{background:var(--err);color:#fff}
.chat-layout{display:grid;grid-template-columns:1fr 260px;gap:16px;align-items:start}
@media (max-width:760px){.chat-layout{grid-template-columns:1fr}}
.chat-box{display:flex;flex-direction:column}
.fil{display:flex;flex-direction:column;gap:10px;height:min(60vh,560px);overflow-y:auto;padding:4px}
.msg{max-width:80%;align-self:flex-start;background:var(--bg);border:1px solid var(--line);border-radius:12px 12px 12px 4px;padding:8px 12px}
.msg.mien{align-self:flex-end;background:#e3ecfa;border-color:#c9d8f2;border-radius:12px 12px 4px 12px}
.msg.equipe{border-left:3px solid var(--acc)}
.msg .meta{font-size:.8em;color:var(--mut);margin-bottom:3px}.msg .txt{overflow-wrap:anywhere}
.msg .suppr{background:none;border:0;color:var(--err);padding:0 4px;cursor:pointer}
.envoi{display:flex;gap:10px;margin-top:12px;align-items:flex-end}.envoi textarea{flex:1;resize:vertical}
.annuaire ul{list-style:none;margin:0;padding:0}.annuaire li{padding:8px 0;border-bottom:1px solid var(--line)}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="clair"])) .flash.warn{background:#3a3115;color:#e3b341}:where(:root:not([data-theme="clair"])) .msg.mien{background:#1d2a3d;border-color:#2c3e5a}}
:where(:root[data-theme="sombre"]) .flash.warn{background:#3a3115;color:#e3b341}:where(:root[data-theme="sombre"]) .msg.mien{background:#1d2a3d;border-color:#2c3e5a}
/* --- v5 : journal des connexions --- */
.tag.ok{background:#e6f4ea;color:var(--ok)}.tag.err{background:#fdecea;color:var(--err)}.tag.warn{background:#fff3cd;color:#7a5b00}
.alerte{color:var(--err);font-weight:600}
.seg-admin{display:flex;gap:8px;flex-wrap:wrap}
.filtre-actif{padding:10px 14px;border-left:4px solid var(--pri)}
.liste-mini{margin:4px 0 0;padding-left:18px}.liste-mini li{margin:3px 0}
table.journal td{font-size:.92em}table.journal tr.res-echec td:first-child{border-left:3px solid var(--err)}
table.journal tr.res-refus td:first-child{border-left:3px solid var(--acc)}table.journal tr.res-succes td:first-child{border-left:3px solid var(--ok)}
.pagination{display:flex;gap:12px;align-items:center;justify-content:center;margin:14px 0}
h3{font-size:1em;margin:14px 0 6px}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="clair"])) .tag.ok{background:#1d3324}:where(:root:not([data-theme="clair"])) .tag.err{background:#3a1d1d}:where(:root:not([data-theme="clair"])) .tag.warn{background:#3a3115;color:#e3b341}}
:where(:root[data-theme="sombre"]) .tag.ok{background:#1d3324}:where(:root[data-theme="sombre"]) .tag.err{background:#3a1d1d}:where(:root[data-theme="sombre"]) .tag.warn{background:#3a3115;color:#e3b341}
pre.log-php{margin:0;white-space:pre-wrap;word-break:break-word;font-size:.85em}
.notifs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.notifs .flash{margin:0;flex:1 1 280px}.notifs a{font-weight:600}
/* Utilisateurs (super-admin) */
.liste-users{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.liste-users>.ligne-entete,.liste-users>details>summary{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.4fr .9fr 1fr;gap:10px;padding:9px 12px;align-items:start}
.liste-users .ligne-entete{font-weight:600;border-bottom:1px solid var(--line)}
.liste-users>details{border-bottom:1px solid var(--line)}.liste-users>details:last-child{border-bottom:0}
.liste-users>details.off>summary{opacity:.55}
.liste-users>details>summary{cursor:pointer;list-style:none}.liste-users>details>summary::-webkit-details-marker{display:none}
.liste-users>details>summary:hover,.liste-users>details[open]>summary{background:var(--bg)}
.liste-users>details>summary span{min-width:0;overflow-wrap:anywhere}
.detail-user{padding:4px 16px 14px;background:var(--bg)}.detail-user h3{margin:14px 0 6px;font-size:1em}
.detail-user table.mini th{width:38%;font-weight:500;color:var(--mut)}
ul.droits{list-style:none;padding:0;margin:0;font-size:.9em}ul.droits li{padding:2px 0}ul.droits li.non{color:var(--mut)}
button.danger-plein{background:var(--err);color:#fff}.btn.danger{color:var(--err);border-color:var(--err)}
.confirm-suppr{border:2px solid var(--err)}
@media (max-width:800px){.liste-users>.ligne-entete{display:none}.liste-users>details>summary{grid-template-columns:1fr 1fr!important}}
details.modif{margin-bottom:6px}details.modif>summary{list-style:none;display:inline-block}details.modif>summary::-webkit-details-marker{display:none}
details.modif[open]>summary{margin-bottom:10px}details.modif form{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px}
/* Notifications push */
header.top a.cloche{text-decoration:none;font-size:1.1em;padding:4px 8px;border-radius:8px}header.top a.cloche.on{background:rgba(255,255,255,.15)}
.invite-notif{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:#e3ecfa;color:#1f3a5f}
.invite-notif .fermer{margin-left:auto;background:none;border:0;color:inherit;padding:2px 6px;cursor:pointer}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="clair"])) .invite-notif{background:#1d2a3d;color:#8ab4f8}}
:where(:root[data-theme="sombre"]) .invite-notif{background:#1d2a3d;color:#8ab4f8}
/* Finances */
.n{text-align:right;white-space:nowrap}tr.total td{font-weight:700;border-top:2px solid var(--line)}
.liste-factures>.ligne-entete,.liste-factures>details>summary{grid-template-columns:1.2fr 1.2fr .8fr .9fr 1fr 1fr}
.kpi b.alerte{color:var(--err)}
/* Logo */
.top a.logo{display:flex;align-items:center;gap:8px;opacity:1;border:0;color:var(--sur-pri);text-decoration:none;flex:none}.top a.logo:hover{border:0}
.top a.logo img{width:28px;height:28px;border-radius:7px;flex:none}
.logo-login{display:block;margin:0 auto 4px;width:150px;max-width:55%;height:auto}.centre{text-align:center}
body.login .card h1.centre{margin-top:0}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="clair"])) .logo-login{background:#fff;border-radius:14px;padding:8px}}
:where(:root[data-theme="sombre"]) .logo-login{background:#fff;border-radius:14px;padding:8px}
/* --- v11 : clients, donneurs d'ordre, étapes --- */
tr.clic{cursor:pointer}tr.clic:hover td{background:var(--bg)}
.statuts-filtre{display:flex;flex-wrap:wrap;gap:6px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:6px 10px;margin:0}
.statuts-filtre legend{padding:0 4px}.statuts-filtre label.st{display:inline-flex;gap:4px;align-items:center;cursor:pointer;padding:3px 9px}
.statuts-filtre input{margin:0;padding:0}
.statuts-filtre:has(.statuts-groupe){flex-wrap:nowrap;align-items:stretch}
.statuts-lignes{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}
.statuts-tous{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;padding:0 10px 0 16px;border-left:1px solid var(--line);margin-left:6px}   /* 2e colonne : « Tous », « Règlement en attente » */
.statuts-filtre button.actif,.filtres-ligne button.actif{background:var(--ok);color:#fff;border:1px solid var(--ok)}   /* filtre activé : vert plein */
.recherche-params{position:relative;max-width:460px;margin:0 0 12px}.recherche-params input{width:100%}   /* recherche d'un paramètre */
.param-trouve{outline:3px solid var(--acc);outline-offset:4px;border-radius:6px;transition:outline-color .4s}
.statuts-simple{flex-wrap:wrap}.statuts-simple .choix-st{opacity:.5}.statuts-simple .choix-st:hover{opacity:.85}   /* vue simple : non sélectionné = translucide */
.statuts-simple .choix-st.actif{opacity:1;background:var(--ok);color:#fff;border-color:var(--ok)}
.filtres .btn.reinit{background:#e8a200;color:#1c1300;border:1px solid #e8a200}.filtres .btn.reinit:hover{filter:brightness(1.06)}   /* réinitialiser les listes : orange */
.filtres:has(.filtres-ligne)>.statuts-filtre,.filtres-ligne{flex-basis:100%}
.filtres-ligne{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.statuts-groupe{display:flex;flex-wrap:wrap;gap:6px;align-items:center}   /* une ligne « En cours », une ligne « Clôturées » */
.statuts-groupe>small{font-weight:600;text-transform:uppercase;letter-spacing:.03em;font-size:.7em;min-width:76px}
.etapes{display:flex;gap:3px;margin:6px 0}.etapes span{flex:1;padding:4px 6px;border-radius:6px;background:var(--line);font-size:.8em;color:var(--mut);text-align:center}
.etapes span.fait{background:#e6f4ea;color:var(--ok)}.etapes span.ici{background:var(--acc);color:#000;font-weight:600}
.etapes.mini{min-width:80px}.etapes.mini span{height:5px;padding:0}.etapes.arret span:not(.fait){opacity:.4}
.seg-radio{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.form .seg-radio label{display:flex;gap:6px;align-items:center;margin:0;padding:8px 12px;border:1px solid var(--line);border-radius:8px;font-weight:500;cursor:pointer}
.form .seg-radio label input{width:auto;margin:0;display:inline}.form .seg-radio label:has(input:checked){border-color:var(--pri);background:var(--bg)}
.seg-radio.paiements label{flex:1 1 200px;flex-direction:column;align-items:flex-start;gap:2px}
.form label.ac{position:relative}
.sugg{position:absolute;z-index:20;left:0;right:0;background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 18px rgba(0,0,0,.12);overflow:hidden}
.sugg:empty{display:none}.sugg div{padding:8px 10px;cursor:pointer;font-weight:400}.sugg div:hover{background:var(--bg)}.sugg .vide{cursor:default;color:var(--mut)}
.lien-commission{display:block;width:100%;text-align:left;margin:-4px 0 10px;padding:7px 10px;border:1px dashed var(--line);border-radius:8px;background:var(--bg);color:var(--txt);font-weight:400;box-shadow:none;cursor:pointer;transition:border-color .15s}   /* commission prévue sous le chauffeur exécutant */
.lien-commission:hover:not(.fixe){border-color:var(--pri);color:var(--pri)}.lien-commission.fixe{cursor:default;border-style:solid}
.lien-commission input{width:70px;padding:3px 6px;margin-left:6px;text-align:right;cursor:text}
.champ-erreur{border-color:var(--err)!important;box-shadow:0 0 0 2px rgba(198,40,40,.15)}.erreur-meme{display:block;margin-top:4px;color:var(--err);font-weight:500}
.adr-trace{margin:-6px 0 12px;padding:6px 10px;border-radius:8px;background:var(--bg);color:var(--ok);line-height:1.4}   /* sous un champ d'adresse : qui l'a trouvée, déroulé de la recherche */
.adr-trace.incertaine{background:#fff4e5;color:#8a4b00}.adr-trace ul{margin:4px 0 0;padding-left:18px;color:var(--mut)}.adr-trace b{font-weight:600}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="clair"])) .adr-trace.incertaine{background:#3a2a12;color:#f3c37a}}
:where(:root[data-theme="sombre"]) .adr-trace.incertaine{background:#3a2a12;color:#f3c37a}
.estim.ok{background:#e6f4ea}.explication{background:var(--bg)}.explication h3{margin:0 0 6px;font-size:1em}.explication ul{margin:0;padding-left:18px}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="clair"])) .etapes span.fait,:where(:root:not([data-theme="clair"])) .estim.ok{background:#1d3324}}
:where(:root[data-theme="sombre"]) .etapes span.fait,:where(:root[data-theme="sombre"]) .estim.ok{background:#1d3324}
/* --- v12 : tout ce qui est cliquable a un curseur main et un retour visuel --- */
a,button,.btn,summary,select,label.check,label:has(>input[type=checkbox]),label:has(>input[type=radio]),
input[type=checkbox],input[type=radio],input[type=submit],input[type=month],input[type=date],input[type=datetime-local],
tr.clic,[data-href],[data-coche],[data-utiliser],.kpi.lien,.sugg div,.statuts-filtre label{cursor:pointer}
button,.btn,.kpi.lien,.statuts-filtre label.st,.seg-radio label,tr.clic td{transition:background-color .15s,box-shadow .15s,transform .1s,opacity .15s,border-color .15s}
button:hover,.btn:hover{filter:brightness(1.1);box-shadow:0 2px 8px rgba(0,0,0,.15)}
button:active,.btn:active{transform:translateY(1px)}
button:disabled,button:disabled:hover{cursor:not-allowed;filter:none;box-shadow:none;opacity:.55}
button.ghost:hover,.btn.ghost:hover{background:var(--bg)}
.kpi.lien:hover{box-shadow:0 4px 14px rgba(0,0,0,.1);transform:translateY(-2px)}
.statuts-filtre label.st:hover{box-shadow:0 0 0 2px var(--pri) inset}
.statuts-filtre label.st:has(input:checked){box-shadow:0 0 0 2px var(--pri) inset;font-weight:600}
.seg-radio label:hover{border-color:var(--pri)}
tr.clic:hover td{background:var(--bg)}tr.clic:hover td:first-child{box-shadow:3px 0 0 var(--acc) inset}
.top nav a,.sousbar a{transition:opacity .15s}
a:not(.btn):hover{text-decoration:underline}.top a:hover,.sousbar a:hover,.kpi.lien:hover{text-decoration:none}
tr.non-comptee td{opacity:.55}tr.non-comptee td:nth-child(4),tr.non-comptee td:nth-child(5){text-decoration:line-through}
.avancement{justify-content:flex-start;align-items:center}
.lien-chauffeur .copie{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.lien-chauffeur .copie input{flex:1 1 280px;font-family:ui-monospace,Menlo,monospace;font-size:.85em}
.btn.whatsapp{background:#25d366;color:#fff}
/* --- v12 : verrou d'édition --- */
.btn-verrou{float:right;margin:0 0 8px 8px}
form.verrouille input:disabled,form.verrouille select:disabled,form.verrouille textarea:disabled{background:var(--bg);color:var(--txt);opacity:1;cursor:default}
form.verrouille .actions button:disabled{display:none}
/* --- v12 : onglets de page (réglages, paramètres) --- */
.onglets-nav{display:flex;flex-wrap:wrap;gap:4px;border-bottom:2px solid var(--line);margin-bottom:16px}
.onglets-nav button{background:none;color:var(--mut);border-radius:8px 8px 0 0;padding:9px 14px;margin-bottom:-2px;border-bottom:2px solid transparent;box-shadow:none}
.onglets-nav button:hover{color:var(--pri);background:var(--card);filter:none;box-shadow:none}
.onglets-nav button.on{color:var(--pri);border-bottom-color:var(--acc);font-weight:600;background:var(--card)}
/* --- Aperçu du tarif d'abonnement --- */
.abo-apercu{padding:8px 0}.abo-apercu .abo-total{font-size:1.15em}.abo-apercu.change .abo-total b{color:var(--pri)}
.abo-apercu ul{margin:6px 0 0;padding-left:20px;font-size:.9em}.abo-apercu li{margin:2px 0}
.abo-groupe{border-bottom:1px solid var(--line);padding:6px 0}.abo-groupe>summary{cursor:pointer}.abo-groupe>summary:hover{color:var(--pri)}
/* --- Comparatif ancien / nouveau tarif --- */
.abo-comparatif{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}.abo-comparatif.seul{grid-template-columns:1fr}
@media (max-width:700px){.abo-comparatif{grid-template-columns:1fr}}
.abo-col{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--card)}
.abo-col.nouveau{border:2px solid var(--acc)}.abo-col.nouveau.identique{border:2px dashed var(--line)}
.abo-titre{font-size:.8em;text-transform:uppercase;letter-spacing:.04em;color:var(--mut)}
.abo-total{font-size:1.4em;margin:2px 0 6px}.abo-col ul{margin:0;padding-left:18px;font-size:.88em}.abo-col li{margin:2px 0}
.abo-sans-effet{margin-top:8px!important;color:#7a5b00}.abo-ecart{font-size:.95em}.abo-ecart.hausse b{color:var(--err)}.abo-ecart.baisse b{color:var(--ok)}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="clair"])) .abo-sans-effet{color:#f2c94c}}
:where(:root[data-theme="sombre"]) .abo-sans-effet{color:#f2c94c}
.abo-duree{margin-top:10px;padding:8px 12px;border-left:3px solid var(--acc);background:var(--card);border-radius:0 8px 8px 0}.abo-duree ul{margin:4px 0 0;padding-left:18px}
.duree-contrat label{flex:1 1 260px;align-items:flex-start}
.onglets-nav a{color:var(--mut);text-decoration:none;border-radius:8px 8px 0 0;padding:9px 14px;margin-bottom:-2px;border-bottom:2px solid transparent;transition:color .15s,background-color .15s}
.onglets-nav a:hover{color:var(--pri);background:var(--card);text-decoration:none}
.onglets-nav a.on{color:var(--pri);border-bottom-color:var(--acc);font-weight:600;background:var(--card)}
.onglets-page.sans-nav>.onglets-nav{display:none}   /* onglets pilotés par une barre au-dessus de la page (🛡️ Sécurité) */
.onglets-nav.par-lignes{flex-direction:column;flex-wrap:nowrap;gap:2px}   /* onglets sur plusieurs lignes titrées (⚙️ Paramètres du super-admin) */
.onglets-ligne{display:flex;flex-wrap:wrap;align-items:center;gap:4px}
.onglets-ligne+.onglets-ligne{border-top:1px solid var(--line)}
.onglets-titre{min-width:90px;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--mut)}
textarea.message-contrat{min-width:min(560px,80vw);font-size:.9em;line-height:1.45}
/* --- Tableau de bord : KPI cliquables, chiffres du mois --- */
.kpis-live{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.chiffres-mois td,.chiffres-mois th{padding:7px 10px}.chiffres-mois tr.famille td{padding:8px 10px 5px;font-size:.8em;font-weight:700;color:var(--txt);background:color-mix(in srgb,var(--pri) 10%,var(--card));border-top:1px solid color-mix(in srgb,var(--pri) 30%,var(--line))}.chiffres-mois tr.ligne,.chiffres-mois tr.famille{cursor:pointer}
.chiffres-mois tr.ligne:hover td{background:color-mix(in srgb,var(--pri) 5%,transparent)}.chiffres-mois tr.famille:hover td{background:color-mix(in srgb,var(--pri) 16%,var(--card))}
.chiffres-mois tr.choisie td{background:var(--bg)}.chiffres-mois tr.choisie td:first-child{box-shadow:3px 0 0 var(--acc) inset}
.evol{font-size:.85em;padding:1px 7px;border-radius:20px;background:var(--line)}.evol.hausse{background:#e6f4ea;color:var(--ok)}.evol.baisse{background:#fdecea;color:var(--err)}
tr.en-retard td:first-child{box-shadow:3px 0 0 var(--err) inset}
td.n,th.n{text-align:right;white-space:nowrap}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="clair"])) .evol.hausse{background:#1d3324}:where(:root:not([data-theme="clair"])) .evol.baisse{background:#3a1d1d}}
:where(:root[data-theme="sombre"]) .evol.hausse{background:#1d3324}:where(:root[data-theme="sombre"]) .evol.baisse{background:#3a1d1d}
/* --- v16 : chat (initiales, équipe, mentions, réponses) --- */
.msg-ligne{display:flex;gap:8px;align-items:flex-end}.msg-ligne.mien{justify-content:flex-end}.msg-ligne .msg{max-width:calc(80% - 40px)}
.avatar{flex:none;width:34px;height:34px;border-radius:50%;display:inline-grid;place-items:center;font-size:.75em;font-weight:700;background:var(--line);color:var(--txt);overflow:hidden;border:2px solid transparent}
.avatar.equipe{border-color:var(--pri);box-shadow:0 0 0 2px var(--acc);background:var(--card);color:var(--pri)}
.avatar.logo img{width:100%;height:100%;object-fit:contain;background:#fff}
.msg .auteur{font-size:.8em;font-weight:700;color:var(--pri);margin-bottom:2px}.msg .auteur .badge{font-weight:500;font-size:.85em;padding:1px 6px;border-radius:10px;background:var(--line);color:var(--txt)}
.msg .heure{font-size:.72em;color:var(--mut);text-align:right;margin-top:3px}
.msg.pour-moi{border:2px solid var(--acc)}.pour-moi-tag{font-size:.75em;font-weight:700;color:#7a5b00}
.mention{font-weight:600;color:var(--pri);background:rgba(31,58,95,.1);border-radius:4px;padding:0 3px}.mention.moi{background:var(--acc);color:#000}
.citation{display:block;width:100%;text-align:left;font:inherit;font-size:.82em;background:rgba(0,0,0,.05);color:inherit;border:0;border-left:3px solid var(--acc);border-radius:6px;padding:4px 8px;margin:2px 0 5px;cursor:pointer}
.chat-act{background:none;border:0;color:var(--mut);padding:0 0 0 8px;cursor:pointer;font-size:1em}.chat-act:hover{color:var(--pri);box-shadow:none;filter:none}.chat-act.suppr:hover{color:var(--err)}
.flash-msg .msg{animation:clignote 1.6s}@keyframes clignote{0%,50%{box-shadow:0 0 0 4px var(--acc)}100%{box-shadow:none}}
form.envoi{position:relative;flex-wrap:wrap}form.envoi textarea{flex:1}
.mentions-sugg{position:absolute;left:0;right:110px;bottom:calc(100% + 4px);background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 -6px 18px rgba(0,0,0,.12);overflow:hidden;z-index:20}
.mentions-sugg button{display:flex;gap:8px;align-items:center;width:100%;background:none;color:var(--txt);border-radius:0;padding:7px 10px;text-align:left}
.mentions-sugg button:hover{background:var(--bg);box-shadow:none;filter:none}
.reponse-a{display:flex;justify-content:space-between;gap:8px;align-items:center;width:100%;font-size:.85em;padding:6px 10px;background:var(--bg);border-left:3px solid var(--acc);border-radius:8px}
.reponse-a .annuler{background:none;color:var(--mut);padding:2px 6px}
.annuaire li.membre{display:flex;gap:8px;align-items:center}.annuaire li.membre>span:nth-child(2){flex:1}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="clair"])) .pour-moi-tag{color:#f2c94c}:where(:root:not([data-theme="clair"])) .mention{background:rgba(138,180,248,.15)}}
:where(:root[data-theme="sombre"]) .pour-moi-tag{color:#f2c94c}:where(:root[data-theme="sombre"]) .mention{background:rgba(138,180,248,.15)}
/* --- v16 : apparence du groupe --- */
.top .logo-groupe{height:32px;width:auto;max-width:120px;object-fit:contain;background:#fff;border-radius:6px;padding:2px;vertical-align:middle;margin-right:6px}
.themes{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:12px}
.form label.theme-carte{display:flex;flex-direction:column;gap:6px;align-items:center;margin:0;padding:10px;border:2px solid var(--line);border-radius:10px;cursor:pointer;font-weight:400}
.form label.theme-carte:has(input:checked){border-color:var(--acc);box-shadow:0 0 0 3px rgba(242,169,0,.25)}.form label.theme-carte:hover{border-color:var(--pri)}
.form label.theme-carte input{display:none}
.chargement-apercu{display:flex;align-items:center;justify-content:center;min-height:84px;width:100%;overflow:hidden}   /* aperçus des animations de chargement (la route qui défile reste dans la carte) */
.theme-apercu{position:relative;width:100%;height:58px;border-radius:8px;overflow:hidden;background:#f4f5f7;border:1px solid var(--line)}
.theme-apercu .barre{position:absolute;inset:0 0 auto 0;height:18px;background:var(--p)}
.theme-apercu .bouton{position:absolute;left:8px;bottom:8px;background:var(--p);color:#fff;font-size:.7em;padding:3px 8px;border-radius:5px}
.theme-apercu .accent{position:absolute;right:10px;bottom:10px;width:16px;height:16px;border-radius:50%;background:var(--a)}
.logo-actuel{display:flex;gap:14px;align-items:center;margin-bottom:10px}.logo-actuel img{max-height:64px;max-width:180px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:4px}
.logo-actuel img.icone{width:48px;height:48px;border-radius:12px;padding:0}
/* --- v17 : planning --- */
.planning-barre{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;justify-content:space-between;margin-bottom:8px}.planning-nav{display:flex;gap:12px;align-items:center}
.planning-barre .planning-filtre{flex-basis:100%}
/* Boutons accolés en un seul bloc : ‹ Aujourd’hui › et Jour | Semaine | Mois */
.groupe-btn{display:inline-flex}.groupe-btn>.btn{border-radius:0;margin:0}.groupe-btn>.btn+.btn{margin-left:-1px}
.groupe-btn>.btn:first-child{border-radius:8px 0 0 8px}.groupe-btn>.btn:last-child{border-radius:0 8px 8px 0}
.groupe-btn>.btn.on{border:1px solid var(--pri);position:relative;z-index:1}
.planning-wrap{overflow-x:auto}#agenda{margin-top:16px}
table.planning{table-layout:fixed;min-width:820px}table.planning th,table.planning td{border:1px solid var(--line);padding:3px;vertical-align:top}
table.planning thead th{text-align:center;font-size:.8em;text-transform:none;background:var(--bg)}table.planning th.auj,table.planning td.auj{background:rgba(242,169,0,.08)}
table.planning th.heure{width:70px;font-size:.75em;text-align:right;color:var(--mut);background:var(--bg)}
table.planning.semaine td,table.planning.heures td{height:45px}table.planning.mois td{height:96px}
table.planning td.ajout{cursor:copy}table.planning td.ajout.plein.multi{padding-bottom:14px}table.planning td.ajout:hover:not(:has(a.puce:hover)){background:color-mix(in srgb,var(--pri) 13%,transparent);box-shadow:inset 0 0 0 1px var(--pri)}
table.planning td.passe{background:repeating-linear-gradient(45deg,transparent 0 6px,rgba(0,0,0,.02) 6px 12px)}
table.planning td.hors-mois{opacity:.45}
/* Bulle de détail d'une course du planning (survol), placée par dialogue.js */
.puce-bulle{position:fixed;z-index:80;max-width:min(340px,90vw);padding:10px 13px;border-radius:12px;background:#1f2633;color:#f3f5f8;font-size:.82rem;line-height:1.45;
  box-shadow:0 12px 32px rgba(0,0,0,.28);pointer-events:none;opacity:0;transform:translateY(4px);transition:opacity .12s,transform .12s}
.puce-bulle.visible{opacity:1;transform:none}.puce-bulle>span{display:block}.puce-bulle b{color:#fff}
.puce-bulle .pb-tete{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:4px;padding-bottom:5px;border-bottom:1px solid rgba(255,255,255,.14)}
/* Une seule course dans le créneau : ~80 % de la case, sans agrandir la ligne ; le bas reste libre pour en ajouter une autre */
table.planning:is(.semaine,.heures) td.plein:not(.multi) a.puce{height:31px;margin:0;line-height:1.2;white-space:nowrap;text-overflow:ellipsis}
table.planning:is(.semaine,.heures) td.plein:not(.multi) a.puce small{overflow:hidden;text-overflow:ellipsis}
.planning .nb{display:inline-block;min-width:18px;padding:0 5px;border-radius:9px;background:var(--pri);color:var(--sur-pri);font-size:.9em}
.planning .jour{display:inline-block;font-weight:700;font-size:.85em;color:var(--txt);text-decoration:none;margin-bottom:2px}
.planning .plus{display:block;font-size:.72em;color:var(--mut)}
a.puce{display:block;font-size:.74em;line-height:1.25;padding:2px 5px;margin:1px 0;border-radius:5px;text-decoration:none;color:inherit;overflow:hidden;
  white-space:nowrap;text-overflow:ellipsis;border-left:3px solid rgba(0,0,0,.25);transition:transform .1s,box-shadow .15s}
a.puce:hover{transform:translateY(-1px);box-shadow:0 2px 6px rgba(0,0,0,.15);text-decoration:none}
a.puce small{display:block;opacity:.75}a.puce.mad{border-left-color:var(--acc);border-left-width:5px}
/* Fenêtre (modal) */
.vtc-modal{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.45);display:grid;place-items:center;padding:16px}
.vtc-modal-boite{background:var(--card);border-radius:12px;width:min(900px,100%);height:min(92vh,1000px);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.vtc-modal-barre{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line)}
.vtc-modal-boite iframe{flex:1;border:0;width:100%;background:var(--bg)}
body.modal-ouvert{overflow:hidden}body.dans-modal main{padding:12px}
.copie{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.copie input{flex:1 1 280px;font-family:ui-monospace,Menlo,monospace;font-size:.85em}
details.corriger-trajet>summary{cursor:pointer;list-style:none}details.corriger-trajet>summary::-webkit-details-marker{display:none}
details.corriger-trajet>summary:hover b{color:var(--pri)}details.corriger-trajet[open]>summary{margin-bottom:10px}
button.pastille.non-lus{border:0;cursor:pointer;padding:0 6px;font-size:.75em;line-height:18px;vertical-align:middle;animation:pulse-nl 2s infinite}
button.pastille.non-lus:hover{filter:brightness(1.1)}@keyframes pulse-nl{0%,100%{box-shadow:0 0 0 0 rgba(198,40,40,.5)}50%{box-shadow:0 0 0 4px rgba(198,40,40,0)}}
/* --- Planning : pastilles lisibles (fond / texte contrastés pour chaque statut, contraste ≥ 7,5:1 en clair et en sombre) --- */
a.puce{font-weight:500}a.puce b{font-weight:700}a.puce small{opacity:.9}
a.puce.mad{border-left-width:5px;border-left-style:double}
/* --- v18 : menu burger sur smartphone, suppression en bas des fiches, KPI sans débordement --- */
.burger{display:none}
.kpi{min-width:0;overflow-wrap:anywhere}
/* Suppression : bouton rouge pâle, discret (fiches, fenêtres de confirmation, petites suppressions) */
.zone-suppression{text-align:right;margin:8px 0 24px}
button.btn-suppr,.btn.btn-suppr{background:#fbeceb;color:#a3413b;border:1px solid #f0d0cd;box-shadow:none}
button.btn-suppr:hover,.btn.btn-suppr:hover{background:#f6dcda;color:#8f2f29;border-color:#e8b9b5;filter:none;box-shadow:none}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="clair"])) button.btn-suppr,:where(:root:not([data-theme="clair"])) .btn.btn-suppr{background:#3a2524;color:#e8a6a1;border-color:#55332f}:where(:root:not([data-theme="clair"])) button.btn-suppr:hover,:where(:root:not([data-theme="clair"])) .btn.btn-suppr:hover{background:#462c2a;color:#f2bbb6}}
:where(:root[data-theme="sombre"]) button.btn-suppr,:where(:root[data-theme="sombre"]) .btn.btn-suppr{background:#3a2524;color:#e8a6a1;border-color:#55332f}:where(:root[data-theme="sombre"]) button.btn-suppr:hover,:where(:root[data-theme="sombre"]) .btn.btn-suppr:hover{background:#462c2a;color:#f2bbb6}
.dlg-champ{display:block;margin:4px 0 0}.dlg-champ span{display:block;font-size:.9em;margin-bottom:4px}.dlg-champ input{width:100%}
.dlg-erreur{display:block;color:var(--err);margin-top:4px}
@media (max-width:860px){
  .top{gap:10px;padding:10px 14px}
  .top a.logo{flex:1;min-width:0}.top a.logo strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .burger{display:inline-flex;align-items:center;gap:6px;background:transparent;color:inherit;border:1px solid rgba(255,255,255,.55);
    border-radius:8px;padding:6px 12px;font-size:1.05em;line-height:1.2;cursor:pointer;box-shadow:none;transition:background-color .15s}
  .burger:hover,.ouvert>.burger{background:rgba(255,255,255,.18);filter:none}
  .top:has(nav .pastille)>.burger::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--acc)}
  .top nav,.top .out{display:none}
  .top.ouvert nav{display:flex;flex-direction:column;flex-basis:100%;order:10;gap:0}
  .top.ouvert nav a{padding:11px 6px;border-bottom:1px solid rgba(255,255,255,.15)}
  .top.ouvert nav a.on,.top.ouvert nav a:hover{border-bottom:1px solid rgba(255,255,255,.15);box-shadow:inset 3px 0 0 var(--acc);background:rgba(255,255,255,.08)}
  .top.ouvert .out{display:block;order:11;flex-basis:100%;padding:11px 6px}
  .sousbar{padding:8px 14px}
  .sousbar>.burger{border-color:var(--line);font-size:.95em;margin-left:auto}
  .sousbar>.burger:hover,.sousbar.ouvert>.burger{background:var(--bg)}
  .sousbar:has(nav .pastille)>.burger::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--acc)}
  .sousbar nav{display:none}
  .sousbar.ouvert nav{display:flex;flex-direction:column;flex-basis:100%;gap:0}
  .sousbar.ouvert nav a{padding:10px 6px;border-bottom:1px solid var(--line)}
  .sousbar.ouvert nav a.on{box-shadow:inset 3px 0 0 var(--acc)}
  .kpis{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
}
/* --- v19 : libellé avec explication au survol (ex. « PAB CB » = paiement à bord par carte) --- */
/* --- v20 : course aller / retour --- */
fieldset.retour-seul{border:1px dashed var(--pri);border-radius:var(--r);padding:10px 14px 4px;margin:6px 0 14px;min-width:0}
fieldset.retour-seul legend{padding:0 6px;font-weight:600;color:var(--pri)}
/* --- v21 : formulaires de création en blocs numérotés --- */
.form-blocs{counter-reset:bloc}
.form-blocs .bloc{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px 6px;margin:0 0 14px;min-width:0}
.form-blocs .bloc>h2{display:flex;align-items:center;gap:10px;margin:0 0 12px;font-size:1.05em}
.form-blocs .bloc>h2::before{counter-increment:bloc;content:counter(bloc);flex:none;width:26px;height:26px;border-radius:50%;background:var(--pri);color:var(--sur-pri);
  display:inline-grid;place-items:center;font-size:.85em;font-weight:700}
.form-blocs .bloc.retour-seul{border:1px dashed var(--pri)}
/* Paramètres (flotte, super-admin) : chaque section de chaque onglet numérotée à partir de 1, cartes comprises ;
   l'étiquette de portée (👥 Flotte / 👤 Mon compte) toujours à droite du titre */
.onglets-page[data-recherche]>section[data-onglet]{counter-reset:bloc}
.onglets-page[data-recherche] .form-blocs{counter-reset:none}
.onglets-page[data-recherche]>section[data-onglet] h2:not(.encart-portee-titre){display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.onglets-page[data-recherche]>section[data-onglet] h2:not(.encart-portee-titre):first-of-type::before{counter-increment:bloc;content:counter(bloc);flex:none;width:26px;height:26px;
  border-radius:50%;background:var(--pri);color:var(--sur-pri);display:inline-grid;place-items:center;font-size:.85em;font-weight:700}
h2 .portee{float:none;margin-left:auto}
.onglets-page[data-recherche]>section[data-onglet] h2:not(.encart-portee-titre):not(:first-of-type){font-size:1em;margin-top:18px;padding-top:12px;border-top:1px solid var(--line)}   /* sous-titres d'une même section */
table.carnet tbody tr{transition:background-color .12s}table.carnet tbody tr:hover{background:var(--bg)}table.carnet tr.non-fiable td:first-child{color:var(--mut)}   /* carnet d'adresses */
.ajout-adresse{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin:0 0 12px}.ajout-adresse label.ac{flex:1;min-width:240px;margin:0}.ajout-adresse .actions{margin:0}
.purge-carnet{display:flex;gap:6px 14px;align-items:center;flex-wrap:wrap;margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}.purge-carnet label.check{margin:0}
.aide-bareme{background:var(--bg);border-radius:8px;padding:8px 12px;margin:0 0 12px;line-height:1.6}
.barre-edition{position:fixed;left:50%;transform:translateX(-50%);bottom:16px;max-width:calc(100vw - 32px);flex-wrap:wrap;justify-content:center;z-index:300;display:flex;gap:8px;padding:8px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.18)}   /* Paramètres : déverrouiller / enregistrer toute la page */
.barre-edition button:disabled{opacity:.5;cursor:default}
.form input[readonly]{background:var(--bg);color:var(--mut);cursor:not-allowed}   /* champ repris d'ailleurs (ex. email de la flotte) */
body:has(.barre-edition) main{padding-bottom:80px}
.check-ligne{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin:-4px 0 12px}.form .check-ligne label.check{margin:0}   /* cases côte à côte (canaux d'envoi) */
.form-blocs > .actions{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px 16px}
.bloc .explication{padding:10px 12px;border-radius:8px;margin:10px 0}
/* Fenêtre de question (vtcDialogue) */
.dlg-fond{position:fixed;inset:0;z-index:200;background:rgba(15,20,30,.45);display:grid;place-items:center;padding:16px;opacity:0;transition:opacity .15s}
.dlg-fond.ouvert{opacity:1}
.dlg{background:var(--card);color:var(--txt);border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.3);width:min(460px,100%);padding:20px 22px 16px;
  transform:translateY(8px) scale(.98);transition:transform .15s}
.dlg-fond.ouvert .dlg{transform:none}
.dlg h3{margin:0 0 10px;font-size:1.15em}.dlg-corps p{margin:0 0 8px}
.dlg-corps label:not(.check){display:block;margin:10px 0 0;font-weight:500}.dlg-corps label input:not([type=checkbox]):not([type=radio]){display:block;width:100%;margin-top:4px;font-weight:400}   /* champs dans une fenêtre (ex. prix à saisir) : sans déborder */
.dlg-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin-top:14px}
.dlg-actions button.discret{border-color:transparent;color:var(--mut)}.dlg-actions button.discret:hover{background:var(--bg);color:var(--txt)}
@media (max-width:520px){.dlg-actions{flex-direction:column-reverse}.dlg-actions button{width:100%}}
/* --- v22 : page Notifications (choix notification / mail) --- */
table.notif-choix td.centre,table.notif-choix th.centre{text-align:center;width:120px}table.notif-choix input{width:18px;height:18px;cursor:pointer}
/* --- v23 : tableau de bord (créneaux de 2 h, sections réordonnables) --- */
table.planning td.maintenant{box-shadow:inset 0 0 0 2px var(--acc)}
.tdb-section+.tdb-section{margin-top:22px}
.tdb-ordre{list-style:none;padding:0;margin:0 0 12px;counter-reset:tdb}
.tdb-ordre li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 10px;border:1px solid var(--line);border-radius:8px;margin-bottom:6px;background:var(--card)}
.tdb-ordre li::before{counter-increment:tdb;content:counter(tdb);font-weight:700;color:var(--mut);width:18px}
.tdb-ordre li label{flex:1;margin:0}.tdb-fleches{display:flex;gap:4px}.tdb-fleches button{padding:3px 10px}

/* --- v24 : écran de chargement (voiture qui roule) : bloque la page tout de suite, visible après 250 ms --- */
.chargement{position:fixed;inset:0;z-index:400;display:none;place-items:center;cursor:progress}
.chargement.actif{display:grid;animation:chg-fond .2s .25s both}
.chargement-boite{text-align:center;opacity:0}
.chargement.actif .chargement-boite{animation:chg-boite .2s .25s both}
@keyframes chg-fond{from{background:rgba(15,20,30,0)}to{background:rgba(15,20,30,.35)}}
@keyframes chg-boite{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.chargement-boite{background:var(--card);border-radius:16px;padding:18px 26px 14px;box-shadow:0 14px 40px rgba(0,0,0,.25)}
.chargement-texte{margin:6px 0 0;font-weight:600;color:var(--txt)}
.chargement-masquer{margin-top:10px}
.voiture{width:150px;height:75px;overflow:visible}
.voiture .caisse{fill:var(--pri)}.voiture .vitres{fill:#cfe0f5}.voiture .phare{fill:var(--acc)}
.voiture .roue circle{fill:#2b2f36}.voiture .roue .jante{fill:#c9ced6}.voiture .rayon{stroke:#2b2f36;stroke-width:1.6}
.voiture .route rect{fill:var(--mut)}.voiture .vent rect{fill:var(--mut);opacity:.6}
.chargement.actif .voiture .roue{animation:chg-roue .5s linear infinite}
.chargement.actif .voiture .carrosserie{animation:chg-cahot .35s ease-in-out infinite alternate}
.chargement.actif .voiture .route{animation:chg-route .45s linear infinite}
.chargement.actif .voiture .vent{animation:chg-vent .6s linear infinite}
@keyframes chg-roue{to{transform:rotate(360deg)}}
@keyframes chg-cahot{from{transform:translateY(0)}to{transform:translateY(-1.5px)}}
@keyframes chg-route{from{transform:translateX(0)}to{transform:translateX(-36px)}}
@keyframes chg-vent{from{transform:translateX(6px);opacity:.7}to{transform:translateX(-8px);opacity:0}}
@media (prefers-reduced-motion:reduce){.chargement.actif .voiture *{animation:none!important}}
/* --- v25 : tableaux triables, légende des statuts --- */
table.triable th.tri{cursor:pointer;user-select:none;white-space:nowrap;transition:background-color .15s,color .15s}
table.triable th.tri:hover,table.triable th.tri:focus-visible{background:var(--bg);color:var(--pri)}
table.triable th.tri::after{content:"↕";margin-left:6px;font-size:.85em;color:var(--mut);opacity:.6}
table.triable th.tri[aria-sort=ascending]::after{content:"▲";opacity:1;color:var(--pri)}
table.triable th.tri[aria-sort=descending]::after{content:"▼";opacity:1;color:var(--pri)}
.legende-statuts{position:relative;display:inline-block;margin:8px 0 4px;padding:3px 9px;border-radius:6px;font-size:.88em;color:var(--mut);cursor:pointer;outline:none}
.legende-statuts:hover,.legende-statuts:focus,.legende-statuts:focus-within{background:var(--card);color:var(--pri)}
.legende-pop{position:absolute;z-index:50;left:0;top:calc(100% + 4px);display:none;flex-wrap:wrap;gap:6px;width:max-content;max-width:min(520px,90vw);
  padding:10px 12px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 8px 24px rgba(0,0,0,.14)}
.legende-statuts:hover .legende-pop,.legende-statuts:focus .legende-pop,.legende-statuts:focus-within .legende-pop{display:flex}
.legende-pop .st{font-size:.82em}
.type-presta{display:block;font-size:.78em;font-weight:600;color:var(--pri);margin-bottom:2px;white-space:nowrap}.type-presta.mad{color:#7a3e00}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="clair"])) .type-presta.mad{color:#ffb74d}}
:where(:root[data-theme="sombre"]) .type-presta.mad{color:#ffb74d}
#reglage-statuts label .st{margin-bottom:4px}
/* --- v26 : barre d'avancement plus contrastée, statut centré dans les listes --- */
.etapes span.fait{background:#c8e6d0;color:#17692f}
.etapes.mini span.fait{background:var(--ok)}.etapes.mini span.ici{background:var(--acc)}.etapes.mini span{background:#d5d9de}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="clair"])) .etapes span.fait{background:#24502f;color:#8fdba3}:where(:root:not([data-theme="clair"])) .etapes.mini span.fait{background:#3fb950}:where(:root:not([data-theme="clair"])) .etapes.mini span{background:#3a3f46}}
:where(:root[data-theme="sombre"]) .etapes span.fait{background:#24502f;color:#8fdba3}:where(:root[data-theme="sombre"]) .etapes.mini span.fait{background:#3fb950}:where(:root[data-theme="sombre"]) .etapes.mini span{background:#3a3f46}
td.statut{text-align:center}td.statut .etapes{margin:6px auto 0;max-width:180px}
/* ==========================================================================
   v27 : couleurs des statuts — UNE palette pour tout (pastilles, planning, barre d'avancement, légende).
   Chaque statut : --st-a accent (pastille, liseré, étape en cours), --st-f fond doux, --st-t texte.
   Progression : ambre (à agir) → indigo → ciel → violet → sarcelle → vert ; annulée framboise, absent ardoise.
   ========================================================================== */
.st-disponible{--st-a:#d97706;--st-f:#fef3c7;--st-t:#92400e}
.st-attribuee{--st-a:#4f46e5;--st-f:#e0e7ff;--st-t:#3730a3}
.st-en_route{--st-a:#0284c7;--st-f:#e0f2fe;--st-t:#075985}
.st-sur_place{--st-a:#7c3aed;--st-f:#ede9fe;--st-t:#5b21b6}
.st-en_cours,.st-mad_en_cours{--st-a:#0d9488;--st-f:#ccfbf1;--st-t:#115e59}
.st-terminee,.st-paye{--st-a:#16a34a;--st-f:#dcfce7;--st-t:#166534}
.st-annulee{--st-a:#e11d48;--st-f:#ffe4e6;--st-t:#9f1239}
.st-no_show{--st-a:#64748b;--st-f:#f1f5f9;--st-t:#334155}
.st-a_valider{--st-a:#ea580c;--st-f:#ffedd5;--st-t:#9a3412}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="clair"])) .st-disponible{--st-a:#f59e0b;--st-f:#3b2a0a;--st-t:#fcd34d}:where(:root:not([data-theme="clair"])) .st-attribuee{--st-a:#818cf8;--st-f:#1e1b4b;--st-t:#c7d2fe}:where(:root:not([data-theme="clair"])) .st-en_route{--st-a:#38bdf8;--st-f:#082f49;--st-t:#bae6fd}:where(:root:not([data-theme="clair"])) .st-sur_place{--st-a:#a78bfa;--st-f:#2e1065;--st-t:#ddd6fe}:where(:root:not([data-theme="clair"])) .st-en_cours,:where(:root:not([data-theme="clair"])) .st-mad_en_cours{--st-a:#2dd4bf;--st-f:#042f2e;--st-t:#99f6e4}:where(:root:not([data-theme="clair"])) .st-terminee,:where(:root:not([data-theme="clair"])) .st-paye{--st-a:#4ade80;--st-f:#052e16;--st-t:#bbf7d0}:where(:root:not([data-theme="clair"])) .st-annulee{--st-a:#fb7185;--st-f:#4c0519;--st-t:#fecdd3}:where(:root:not([data-theme="clair"])) .st-no_show{--st-a:#94a3b8;--st-f:#1e293b;--st-t:#cbd5e1}:where(:root:not([data-theme="clair"])) .st-a_valider{--st-a:#fb923c;--st-f:#431407;--st-t:#fed7aa}}
:where(:root[data-theme="sombre"]) .st-disponible{--st-a:#f59e0b;--st-f:#3b2a0a;--st-t:#fcd34d}:where(:root[data-theme="sombre"]) .st-attribuee{--st-a:#818cf8;--st-f:#1e1b4b;--st-t:#c7d2fe}:where(:root[data-theme="sombre"]) .st-en_route{--st-a:#38bdf8;--st-f:#082f49;--st-t:#bae6fd}:where(:root[data-theme="sombre"]) .st-sur_place{--st-a:#a78bfa;--st-f:#2e1065;--st-t:#ddd6fe}:where(:root[data-theme="sombre"]) .st-en_cours,:where(:root[data-theme="sombre"]) .st-mad_en_cours{--st-a:#2dd4bf;--st-f:#042f2e;--st-t:#99f6e4}:where(:root[data-theme="sombre"]) .st-terminee,:where(:root[data-theme="sombre"]) .st-paye{--st-a:#4ade80;--st-f:#052e16;--st-t:#bbf7d0}:where(:root[data-theme="sombre"]) .st-annulee{--st-a:#fb7185;--st-f:#4c0519;--st-t:#fecdd3}:where(:root[data-theme="sombre"]) .st-no_show{--st-a:#94a3b8;--st-f:#1e293b;--st-t:#cbd5e1}:where(:root[data-theme="sombre"]) .st-a_valider{--st-a:#fb923c;--st-f:#431407;--st-t:#fed7aa}
/* Pastille : fond doux, texte foncé, point de l'accent */
.st{display:inline-flex;align-items:center;gap:6px;background:var(--st-f,var(--line));color:var(--st-t,var(--txt));font-weight:600;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--st-a,var(--line)) 22%,transparent)}
.st::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--st-a,var(--mut));flex:none}
td.statut .st{justify-content:center}
.statuts-filtre label.st::before{display:none}
.statuts-filtre label.st:has(input:checked){box-shadow:inset 0 0 0 2px var(--st-a)}
/* Planning : même fond et même texte, liseré de l'accent */
a.puce[class*=" st-"]{background:var(--st-f);color:var(--st-t);border-left-color:var(--st-a)}
a.puce.st-annulee{text-decoration:line-through}
/* Barre d'avancement : étapes faites en vert, étape en cours dans la couleur du statut */
.etapes span.ici{background:var(--st-a,var(--acc));color:#fff}
.etapes.mini span.ici{background:var(--st-a,var(--acc))}
.etapes.st-disponible span.ici{color:#1c1300}
/* --- v28 : bulles d'explication « ? » (au survol de la souris, ou au toucher / au clavier) --- */
.info{position:relative;display:inline-grid;place-items:center;width:18px;height:18px;margin-left:4px;border-radius:50%;flex:none;
  background:var(--line);color:var(--mut);font-size:12px;font-weight:700;line-height:1;cursor:help;vertical-align:middle;
  transition:background-color .15s,color .15s;font-style:normal;text-transform:none;letter-spacing:0}
.info::before{content:"?"}
.info:hover,.info:focus-visible,.info.ouverte{background:var(--pri);color:var(--sur-pri);outline:none}
.info-bulle{position:absolute;z-index:60;top:calc(100% + 10px);left:50%;transform:translate(-50%,4px);width:max-content;max-width:min(340px,86vw);
  padding:12px 14px;border-radius:12px;background:#1f2633;color:#f3f5f8;font-size:.86rem;font-weight:400;line-height:1.5;text-align:left;
  white-space:normal;box-shadow:0 12px 32px rgba(0,0,0,.28);opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .15s,transform .15s,visibility .15s;cursor:default}
.info-bulle::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}   /* passage de la souris vers la bulle */
.info-bulle::after{content:"";position:absolute;top:-6px;left:50%;width:12px;height:12px;background:#1f2633;transform:translateX(-50%) rotate(45deg);border-radius:2px}
.info:hover .info-bulle,.info:focus-within .info-bulle,.info.ouverte .info-bulle{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
.info-bulle.fixe{position:fixed;right:auto;transform:translate(-50%,4px)!important}   /* sortie d'une zone qui la couperait (dialogue.js) */
.info:hover .info-bulle.fixe,.info:focus-within .info-bulle.fixe,.info.ouverte .info-bulle.fixe{transform:translate(-50%,0)!important}
.info-bulle.fixe::after{left:50%!important;right:auto!important;transform:translateX(-50%) rotate(45deg)!important}
.info-bulle.fixe.dessus::after{top:auto;bottom:-6px}.info-bulle.fixe.dessus::before{top:auto;bottom:-12px}
.info-bulle b{color:#fff}.info-bulle a{color:#9cc3ff}.info-bulle code{background:rgba(255,255,255,.12);padding:0 4px;border-radius:4px}
.info.a-gauche .info-bulle{left:auto;right:-10px;transform:translateY(4px)}.info.a-gauche .info-bulle::after{left:auto;right:13px;transform:rotate(45deg)}
.info.a-gauche:hover .info-bulle,.info.a-gauche:focus-within .info-bulle,.info.a-gauche.ouverte .info-bulle{transform:none}
.info.a-droite .info-bulle{left:-10px;transform:translateY(4px)}.info.a-droite .info-bulle::after{left:13px;transform:rotate(45deg)}
.info.a-droite:hover .info-bulle,.info.a-droite:focus-within .info-bulle,.info.a-droite.ouverte .info-bulle{transform:none}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="clair"])) .info-bulle,:where(:root:not([data-theme="clair"])) .info-bulle::after{background:#2b3442}}
:where(:root[data-theme="sombre"]) .info-bulle,:where(:root[data-theme="sombre"]) .info-bulle::after{background:#2b3442}
h1 .info,h2 .info,h3 .info{font-size:12px}
.aide-ligne{margin:0 0 10px;font-size:.9em;color:var(--mut);display:flex;align-items:center;gap:4px}
/* KPI du tableau de bord : couleur du statut */
.kpi-statut{border-top:4px solid var(--st-a)}
.kpi-statut .st{font-size:.8em;margin-bottom:6px}
.kpi-statut b{display:block;color:var(--st-t);font-size:1.9em;line-height:1.1}
/* KPI à zéro : grisé (rien à suivre), redevient coloré au survol */
.kpi-zero{border-top-color:var(--line);opacity:.55;filter:grayscale(1)}
.kpi-zero:hover{opacity:.85;filter:none}
.note-puce{cursor:help;margin-left:4px;font-size:.9em}
/* --- v29 : texte posé sur la couleur du thème. En mode sombre, la couleur du thème est claire : texte foncé (avant : blanc, illisible) --- */
:root{--sur-pri:#fff}
@media (prefers-color-scheme:dark){:root:where(:not([data-theme="clair"])){--sur-pri:#0e141b}}
:root:where([data-theme="sombre"]){--sur-pri:#0e141b}
.top a{opacity:.9}
.burger{color:var(--sur-pri)}
@media (max-width:860px){.burger{border-color:color-mix(in srgb,var(--sur-pri) 55%,transparent)}}
/* Demande spécifique du client : mise en avant sur la fiche course */
.demande-specifique{margin:8px 0;padding:10px 12px;border:2px solid #d97706;border-radius:8px;background:#fef3c7;color:#78350f;white-space:pre-line}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="clair"])) .demande-specifique{background:#3b2a0a;color:#fcd34d;border-color:#f59e0b}}
:where(:root[data-theme="sombre"]) .demande-specifique{background:#3b2a0a;color:#fcd34d;border-color:#f59e0b}
/* --- v30 : aperçu en fenêtre (client, chauffeur, donneur d'ordre) --- */
.dlg-large .dlg{width:min(560px,100%);max-height:88vh;overflow-y:auto}
.apercu{margin-top:-4px}
.ap-tete{display:flex;gap:14px;align-items:center;padding-bottom:12px;margin-bottom:4px;border-bottom:1px solid var(--line)}
.ap-avatar{width:54px;height:54px;border-radius:50%;flex:none;display:grid;place-items:center;font-weight:800;font-size:1.15em;
  background:color-mix(in srgb,var(--pri) 14%,var(--card));color:var(--pri);object-fit:contain}
img.ap-avatar{background:#fff;border:1px solid var(--line);border-radius:12px}
.ap-nom{font-size:1.15em;font-weight:700;line-height:1.25}.ap-sous{color:var(--mut);font-size:.88em}
.ap-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.ap-section{margin-top:14px}.ap-section h4{margin:0 0 6px;font-size:.74em;text-transform:uppercase;letter-spacing:.06em;color:var(--mut)}
.ap-ligne{display:flex;justify-content:space-between;gap:16px;padding:6px 0;border-bottom:1px dashed var(--line);font-size:.92em}
.ap-ligne:last-child{border-bottom:0}.ap-ligne span{color:var(--mut)}.ap-ligne b{font-weight:600;text-align:right;overflow-wrap:anywhere}
.ap-chiffres{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:4px}
.ap-chiffres div{background:var(--bg);border-radius:10px;padding:8px;text-align:center}.ap-chiffres b{display:block;font-size:1.05em}
.ap-chiffres span{font-size:.75em;color:var(--mut)}
a[data-apercu]{cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}a[data-apercu]:hover{text-decoration:underline}
/* --- v31 : bulle sur une valeur (ex. prix → commission), et bulles dans les tableaux --- */
.info.texte{display:inline;width:auto;height:auto;margin:0;background:none;color:inherit;border-radius:0;font-size:inherit;font-weight:inherit;
  text-decoration:underline dotted;text-underline-offset:3px;cursor:help;vertical-align:baseline}
.info.texte::before{content:none}
.info.texte:hover,.info.texte:focus-visible,.info.texte.ouverte{background:none;color:var(--pri)}
.info.fixe .info-bulle{position:fixed;transform:none}.info.fixe:hover .info-bulle,.info.fixe:focus-within .info-bulle,.info.fixe.ouverte .info-bulle{transform:none}
.info.fixe .info-bulle::after{display:none}
/* --- v32 : règles des courses (détail du prix, retouche, reprise) --- */
.prix-detail{margin:8px 0;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);font-size:.92em}
.prix-detail div{display:flex;justify-content:space-between;gap:12px;padding:3px 0}.prix-detail span{color:var(--mut)}
details.prix-retouche{margin:8px 0}details.prix-retouche>summary{cursor:pointer;color:var(--pri);font-weight:600}
.card.reprise{border:2px solid var(--acc)}.card.reprise form{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 16px}
.inline-label{display:inline-flex;align-items:center;gap:6px;margin:0 8px}

/* ---------- Fiche course : étapes, sections, historique, durée des étapes ---------- */
.etapes:not(.mini) span{line-height:1.25}
.etapes span small{display:block;font-size:.72em;font-weight:600;text-transform:uppercase;letter-spacing:.05em;opacity:.75;margin-bottom:1px}
.card h2 .modif-section{float:right;font-size:.72em;font-weight:500;padding:3px 9px;border:1px solid var(--line);border-radius:6px;text-decoration:none;color:var(--pri);cursor:pointer;transition:background .15s,border-color .15s}
.card h2 .modif-section:hover{background:var(--bg);border-color:var(--pri)}
.fiche-lignes{margin:0 0 8px}
.fiche-lignes>div{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:6px 0;border-bottom:1px solid var(--line)}
.fiche-lignes>div:last-child{border-bottom:0}
.fiche-lignes>div>span{color:var(--mut);flex:none;max-width:45%}   /* l'intitulé seulement, pas les pastilles de la valeur */
.fiche-lignes>div:has(.st){align-items:center}
.fiche-lignes b{font-weight:500;text-align:right;min-width:0;overflow-wrap:anywhere}
ol.histo{list-style:none;margin:0;padding:0 0 0 6px;border-left:2px solid var(--line)}
ol.histo li{display:flex;gap:10px;padding:6px 0 6px 0;margin-left:-15px}
ol.histo .histo-ic{flex:none;width:26px;height:26px;border-radius:50%;background:var(--card);border:2px solid var(--line);display:grid;place-items:center;font-size:.8em}
ol.histo li.statut .histo-ic{border-color:var(--st-a,var(--pri))}
ol.histo li small{display:block}
ol.histo .histo-det{color:var(--mut)}
table.durees{width:100%;border-collapse:collapse}
table.durees th,table.durees td{padding:7px 6px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:.93em}
table.durees tr:last-child th,table.durees tr:last-child td{border-bottom:0}
table.durees th{font-weight:600}table.durees th small{display:block;font-weight:400}
table.durees td.duree{white-space:nowrap;font-variant-numeric:tabular-nums}
table.durees tr.phase-l td{background:var(--bg);color:var(--mut);font-size:.88em;padding-top:4px;padding-bottom:4px}   /* phase entre deux étapes */
table.durees tr.phase-l td:first-child{padding-left:18px}table.durees tr.etape-l.attendue th{color:var(--mut);font-weight:500}
.ponct{display:inline-block;padding:1px 8px;border-radius:20px;font-size:.92em}
.ponct.ok{background:#e6f4ea;color:var(--ok)}.ponct.err{background:#fdecea;color:var(--err)}.ponct.warn{background:#fff3cd;color:#7a5b00}
.form-blocs .bloc.bloc-cible{border-color:var(--pri);box-shadow:0 0 0 2px var(--pri)}
.form-blocs .bloc h2 small{font-weight:400}
.alerte-modif{font-weight:500}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="clair"])) .ponct.ok{background:#1d3324}:where(:root:not([data-theme="clair"])) .ponct.err{background:#3a1d1d}:where(:root:not([data-theme="clair"])) .ponct.warn{background:#3a3115;color:#e3b341}}
:where(:root[data-theme="sombre"]) .ponct.ok{background:#1d3324}:where(:root[data-theme="sombre"]) .ponct.err{background:#3a1d1d}:where(:root[data-theme="sombre"]) .ponct.warn{background:#3a3115;color:#e3b341}
@media (max-width:600px){.fiche-lignes>div{flex-direction:column;gap:2px}.fiche-lignes>div>span{max-width:none}.fiche-lignes>div:has(.st){align-items:flex-start}.fiche-lignes b{text-align:left}.card h2 .modif-section{float:none;display:inline-block;margin-left:6px}}

/* ---------- Statut « Périmée », bandeau Prestations, modèles de mails (v29) ---------- */
.st-perimee{--st-a:#c2410c;--st-f:#fff1e6;--st-t:#9a3412}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="clair"])) .st-perimee{--st-a:#fb923c;--st-f:#3b1a07;--st-t:#fdba74}}
:where(:root[data-theme="sombre"]) .st-perimee{--st-a:#fb923c;--st-f:#3b1a07;--st-t:#fdba74}
.pastille.orange{background:#ea580c;color:#fff}
.bandeau-perimees{margin:0 0 14px;padding:12px 16px;border-radius:var(--r);background:#fff1e6;border:1px solid #fdba74;border-left:5px solid #ea580c;color:#7c2d12}
.bandeau-perimees p{margin:6px 0 8px}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="clair"])) .bandeau-perimees{background:#3b1a07;border-color:#9a3412;color:#fed7aa}}
:where(:root[data-theme="sombre"]) .bandeau-perimees{background:#3b1a07;border-color:#9a3412;color:#fed7aa}
.perimee-classer{border-left:5px solid #ea580c}
.classements{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:10px 0}
.classements form.classement{border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;display:flex;flex-direction:column;gap:6px;margin:0}
.classements form.classement h3{margin:0;font-size:1em}
.classements form.classement button{margin-top:auto;align-self:flex-start}
table.mails-auto{width:100%;border-collapse:collapse;margin:4px 0 10px}
table.mails-auto td,table.mails-auto th{padding:8px 6px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
table.mails-auto tr.groupe-mails th{padding-top:14px;font-size:.9em;color:var(--mut);font-weight:600;text-align:left}   /* intertitres : groupes de mails */
table.notif-choix tr.groupe-mails th{padding:8px 10px;background:var(--line);color:var(--txt);font-weight:700;font-size:.92em;text-align:left;border-radius:6px}   /* catégories de notifications : contrastées */
table.notif-choix tbody tr:not(.groupe-mails){transition:background-color .12s}table.notif-choix tbody tr:not(.groupe-mails):hover{background:var(--bg)}   /* ligne survolée */
table.mails-auto td.envoi{width:34px;text-align:center}table.mails-auto td.act{text-align:right;white-space:nowrap}
table.mails-auto tr[data-mail]{cursor:pointer;transition:background .15s}table.mails-auto tr[data-mail]:hover{background:var(--bg)}
.vars-mail{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:4px 0 10px}
button.var-mail{padding:2px 8px;font-size:.8em;font-family:ui-monospace,monospace;background:var(--bg);color:var(--pri);border:1px solid var(--line);border-radius:6px;cursor:pointer}
button.var-mail:hover{border-color:var(--pri)}
.apercu-mail{border:1px solid var(--line);border-radius:8px;background:var(--bg);padding:10px 12px;margin-bottom:8px}
.apercu-mail pre{white-space:pre-wrap;word-break:break-word;font-family:inherit;margin:8px 0 0}
.apercu-mail .apercu-sujet{padding-bottom:6px;border-bottom:1px solid var(--line)}
.apercu-mail.generique{opacity:.85}

/* ---------- Pied de page : copyright ---------- */
.pied-site{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 18px;margin-top:24px;padding:14px 16px 22px;border-top:1px solid var(--line);font-size:.76em;color:var(--mut);text-align:center}
.pied-site b{color:var(--txt);font-weight:600}.pied-site a{color:inherit;text-decoration:none;border-bottom:1px solid currentColor;cursor:pointer;transition:color .15s}.pied-site a:hover{color:var(--pri)}
body.login .pied-site{margin-top:12px;padding:12px 16px 0;border-top:0}
/* Statut de paiement (fiche course) : pastille sur une ligne, jamais coupée verticalement */
.fiche-lignes .st{white-space:nowrap;overflow-wrap:normal;word-break:normal;flex:none}
.fiche-lignes b:has(.st){min-width:max-content}
/* v33 : Paramètres › Adresses et distance */
.comparatif{margin:12px 0;border:1px solid var(--line);border-radius:10px}
.comparatif>summary{cursor:pointer;padding:9px 12px;font-weight:600;border-radius:10px}
.comparatif>summary:hover,.comparatif[open]>summary{background:var(--bg)}
.comparatif .table-wrap{padding:0 12px 12px}.comparatif th{text-align:left}
.comparatif .etoiles{display:block;font-size:1.45em;line-height:1.1;letter-spacing:1px;color:var(--acc);white-space:nowrap;margin-bottom:3px}.comparatif .etoiles>span{color:var(--line)}   /* note sur 5 : étoiles pleines, puis vides */
.tests-carto{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-top:14px}
.test-carto .resultat-test{margin-top:6px;line-height:1.45;word-break:break-word}

/* v39 : aides lisibles (encarts ℹ️ à la place des bulles « ? ») ; masquées par compte (body.sans-aides) */
.aide{display:flex;flex-wrap:wrap;align-items:flex-start;gap:4px 10px;margin:6px 0 14px;padding:10px 14px;border-radius:10px;
  background:color-mix(in srgb,var(--pri) 7%,var(--card,#fff));border-left:3px solid color-mix(in srgb,var(--pri) 55%,transparent);
  color:var(--txt);font-size:.9rem;font-weight:400;line-height:1.55;text-transform:none;letter-spacing:0}
.aide::before{content:"ℹ️";flex:none;line-height:1.55}
.aide-texte{flex:1;min-width:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.aide.deplie .aide-texte{display:block;-webkit-line-clamp:unset}
.aide-texte b{color:inherit}.aide-texte a{color:var(--pri);text-decoration:underline}
.aide-texte code{background:rgba(127,127,127,.15);padding:0 4px;border-radius:4px}
.aide-plus{flex-basis:100%;margin-left:26px;padding:0;border:0;background:none;color:var(--pri);font-size:.85rem;font-weight:600;cursor:pointer;text-align:left}
.aide-plus:hover{text-decoration:underline}
.aide-champ{margin:-4px 0 12px;font-size:.86rem}
.grid2>.aide-champ,.grid3>.aide-champ{grid-column:1/-1}
.info.info-puce{cursor:pointer;background:color-mix(in srgb,var(--pri) 14%,transparent);color:var(--pri)}
.info.info-puce::before{content:"i";font-family:Georgia,serif;font-style:italic;font-weight:700}
.info.info-puce:hover,.info.info-puce.ouverte{background:var(--pri);color:var(--sur-pri)}
body.sans-aides .info,body.sans-aides .aide{display:none!important}

/* v40 : Aide et support — guide et tickets */
.guide{display:grid;grid-template-columns:260px 1fr;gap:16px;align-items:start}
.guide-sommaire{position:sticky;top:12px;padding:12px}
.guide-sommaire input{width:100%;margin-bottom:10px}
.guide-sommaire ol{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:2px}
.guide-sommaire a{display:block;padding:6px 8px;border-radius:8px;color:var(--txt);text-decoration:none}
.guide-sommaire a:hover{background:var(--bg);color:var(--pri)}
.guide-chapitre{scroll-margin-top:12px}
.guide-texte{line-height:1.65;max-width:75ch}
.guide-texte h3{margin:18px 0 6px;font-size:1.05rem}.guide-texte h4{margin:14px 0 4px;font-size:.97rem}
.guide-texte ul,.guide-texte ol{margin:6px 0 10px;padding-left:22px}.guide-texte li{margin:3px 0}
.guide-texte p{margin:8px 0}.guide-texte code{background:var(--bg);padding:1px 5px;border-radius:5px}
.guide-texte a{color:var(--pri)}
.guide-note .aide-texte{-webkit-line-clamp:unset;display:block}
.guide-edition textarea{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.88rem;line-height:1.5}
@media (max-width:820px){.guide{grid-template-columns:1fr}.guide-sommaire{position:static}}
.ticket-statut{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.85rem;font-weight:600;white-space:nowrap;background:var(--bg)}
.st-t-ouvert{background:#e3efff;color:#1d4ed8}.st-t-en_cours{background:#fff1dc;color:#9a5b00}.st-t-attente{background:#efe6ff;color:#6b21a8}
.st-t-resolu{background:#e6f4ea;color:var(--ok)}.st-t-ferme{background:var(--bg);color:var(--mut)}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="clair"])) .st-t-ouvert{background:#1d2a44;color:#93c5fd}:where(:root:not([data-theme="clair"])) .st-t-en_cours{background:#3a2c15;color:#fbbf24}:where(:root:not([data-theme="clair"])) .st-t-attente{background:#2e2140;color:#d8b4fe}:where(:root:not([data-theme="clair"])) .st-t-resolu{background:#1d3324;color:#86efac}}
:where(:root[data-theme="sombre"]) .st-t-ouvert{background:#1d2a44;color:#93c5fd}:where(:root[data-theme="sombre"]) .st-t-en_cours{background:#3a2c15;color:#fbbf24}:where(:root[data-theme="sombre"]) .st-t-attente{background:#2e2140;color:#d8b4fe}:where(:root[data-theme="sombre"]) .st-t-resolu{background:#1d3324;color:#86efac}
.ticket-entete{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center}
.ticket-fil{display:grid;gap:12px;margin-bottom:16px}
.ticket-msg{background:var(--card);border:1px solid var(--line);border-radius:12px;max-width:820px;overflow:hidden}
.ticket-nouveau{background:var(--acc);color:#1c1300;font-weight:700;font-size:.8rem;padding:4px 16px}
.ticket-msg header.ticket-msg-tete{background:var(--bg);border-bottom:1px solid var(--line);padding:8px 16px;margin:0}
.ticket-corps{padding:12px 16px}
.ticket-lu{border-top:1px dashed var(--line);padding:6px 16px;font-size:.78rem;color:var(--mut)}
/* Mon côté (support pour le super-admin, groupe pour le groupe) : à droite, liseré couleur du thème ; le correspondant : à gauche, liseré orange */
.ticket-msg{border-left:4px solid var(--acc)}
.ticket-msg.mon-cote{margin-left:auto;border-left-color:var(--pri)}
.ticket-msg header{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;margin-bottom:6px}
.ticket-texte{line-height:1.6;white-space:normal}.ticket-evt{margin:0 0 6px;font-weight:600;font-size:.9rem}
.ticket-pj{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:6px}
.ticket-pj img{display:block;max-width:240px;max-height:180px;border-radius:8px;border:1px solid var(--line);margin-bottom:4px}
tr.lien-ligne{cursor:pointer}tr.lien-ligne:hover td{background:var(--bg)}
/* Liste des tickets : n° en étiquette grise, titre foncé sur une ligne, catégorie en étiquette de couleur */
.ticket-num{display:inline-block;padding:2px 8px;border-radius:6px;background:var(--bg);color:var(--mut);font:600 .8rem ui-monospace,Menlo,Consolas,monospace}
.ticket-titre,.ticket-titre:hover{display:block;max-width:min(52ch,60vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--txt);font-weight:700;text-decoration:none}
.ticket-bulle{position:fixed;z-index:80;max-width:min(420px,90vw);padding:12px 14px;border-radius:12px;background:#1f2633;color:#f3f5f8;
  font-size:.86rem;line-height:1.5;box-shadow:0 12px 32px rgba(0,0,0,.28);pointer-events:none}
.ticket-bulle b{display:block;margin-bottom:6px;color:#fff}.ticket-bulle p{margin:0;white-space:pre-line;color:#d6dbe3}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="clair"])) .ticket-bulle{background:#2b3442}}
:where(:root[data-theme="sombre"]) .ticket-bulle{background:#2b3442}
.lien-etat{display:inline-grid;place-items:center;align-self:center;width:28px;height:28px;border-radius:50%;flex:none;font-weight:700}
.lien-etat.actif{background:#e6f4ea;color:var(--ok)}.lien-etat.expire{background:#fdecea;color:var(--err)}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="clair"])) .lien-etat.actif{background:#1d3324}:where(:root:not([data-theme="clair"])) .lien-etat.expire{background:#3a1d1d}}
:where(:root[data-theme="sombre"]) .lien-etat.actif{background:#1d3324}:where(:root[data-theme="sombre"]) .lien-etat.expire{background:#3a1d1d}
.ticket-groupe{color:var(--g);font-weight:700}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="clair"])) .ticket-groupe{color:var(--g-sombre)}}
:where(:root[data-theme="sombre"]) .ticket-groupe{color:var(--g-sombre)}
.ticket-infos{display:block;margin-top:4px;white-space:nowrap}
.ticket-cat{display:inline-block;padding:1px 8px;border-radius:999px;font-size:.75rem;font-weight:600;background:var(--bg);color:var(--mut)}   /* type de demande : gris, l'icône suffit */
.liste-tickets tr.ticket-a-traiter td:first-child{box-shadow:inset 4px 0 0 var(--acc)}.liste-tickets tr.ticket-a-traiter .ticket-titre{font-weight:800}   /* à traiter : liseré jaune à gauche, titre en gras */
/* Liste du support, sur PC : page en pleine largeur ; demande coupée (titre complet au survol), flotte et personne sans coupure */
@media (min-width:1000px){main:has(section[data-onglet]:not([hidden]) .liste-tickets){max-width:none}}
.liste-tickets .ticket-titre{display:inline-block;max-width:34ch;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}
.liste-tickets .ticket-infos{display:block}
.filtres-tickets{margin:8px 0 12px}.filtre-groupe-tickets{display:inline-block;margin:0 0 0 8px}.filtre-groupe-tickets select{width:auto}.purge-tickets{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin-top:14px}
.purge-tickets label{margin:0}
/* v42 : pièces jointes des tickets (liste des fichiers choisis, refusés en rouge) */
.pj-liste{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px;font-size:.9rem}
.pj-liste li{padding:4px 8px;border-radius:6px;background:var(--bg)}.pj-liste li.refuse{background:#fdecea;color:var(--err)}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="clair"])) .pj-liste li.refuse{background:#3a1d1d}}
:where(:root[data-theme="sombre"]) .pj-liste li.refuse{background:#3a1d1d}
.pj-acceptes{margin-top:10px}.pj-acceptes summary{cursor:pointer;color:var(--pri)}.pj-acceptes p{line-height:1.7;margin:6px 0 0}

/* v43 : réglage des chiffres du mois */
.chiffres-outils{display:flex;flex-wrap:wrap;gap:10px;align-items:end}
.chiffres-familles{list-style:none;margin:8px 0;padding:0;display:grid;gap:14px}
.chiffres-famille-tete{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 10px;border-radius:8px 8px 0 0;background:color-mix(in srgb,var(--pri) 10%,var(--card));border-bottom:3px solid color-mix(in srgb,var(--pri) 40%,var(--line))}
.chiffres-famille-tete .chiffres-replier{flex:1;display:flex;align-items:center;gap:6px;justify-content:flex-start;background:none;border:0;box-shadow:none;padding:4px 0;color:var(--txt);font:inherit;text-align:left;cursor:pointer;min-width:0}
.chiffres-famille-tete .chiffres-replier:hover{background:none;color:var(--pri)}.chiffres-replier .fleche{width:1em;color:var(--pri)}
.chiffres-famille-voir{margin:0;cursor:pointer;font-size:.9em;white-space:nowrap}.chiffres-famille-voir:hover{color:var(--pri)}
.chiffres-famille.masquee .chiffres-replier,.chiffres-famille.masquee .chiffres-ordre{opacity:.45}   /* catégorie masquée du tableau de bord */
.chiffres-ordre{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:4px}
.chiffres-ordre li{display:flex;align-items:center;gap:10px;padding:5px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card)}
.chiffres-ordre li.avant{box-shadow:3px 0 0 var(--acc) inset}
.chiffres-ordre li{transition:background .15s,border-color .15s}.chiffres-ordre li:hover{background:color-mix(in srgb,var(--pri) 6%,var(--card));border-color:color-mix(in srgb,var(--pri) 45%,var(--line))}
.chiffres-ordre li .check{cursor:pointer}
.chiffres-ordre .marque-defaut{margin:0;cursor:pointer;display:flex;align-items:center}.chiffres-ordre .marque-defaut input{position:absolute;opacity:0;pointer-events:none}
.chiffres-ordre .marque-defaut span{font-size:.78em;color:var(--mut);padding:2px 8px;border:1px solid var(--line);border-left:3px solid var(--line);border-radius:4px;opacity:.6;transition:opacity .15s,border-color .15s,color .15s}
.chiffres-ordre .marque-defaut:hover span{opacity:1}
.chiffres-ordre .marque-defaut input:checked+span{opacity:1;color:var(--txt);border-left-color:var(--acc);background:var(--bg)}
.chiffres-ordre .marque-defaut input:focus-visible+span{outline:2px solid var(--pri)}
.chiffres-ordre li .check{flex:1;margin:0}.chiffres-ordre .fam{display:inline-block;width:1.4em}
.chiffres-ordre .etoile{margin:0;cursor:pointer;display:flex;align-items:center}.chiffres-ordre .etoile input{position:absolute;opacity:0;pointer-events:none}
.chiffres-ordre .etoile span{filter:grayscale(1);opacity:.35;transition:opacity .15s,filter .15s}.chiffres-ordre .etoile:hover span{opacity:.7}
.chiffres-ordre .etoile input:checked+span{filter:none;opacity:1}
.chiffres-ordre .etoile input:focus-visible+span{outline:2px solid var(--pri);border-radius:4px}

/* v46 : facturation manuelle */
.st.st-a_decider{background:#e6f4ea;color:var(--ok)}   /* « À facturer » : étape normale de gestion, pas une alerte */
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="clair"])) .st.st-a_decider{background:#1d3324;color:#7fd6a2}}
:where(:root[data-theme="sombre"]) .st.st-a_decider{background:#1d3324;color:#7fd6a2}
.a-facturer{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;padding:10px 14px;border-radius:10px;background:#fff1dc;box-shadow:3px 0 0 var(--acc) inset}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="clair"])) .a-facturer{background:#3a2c15}}
:where(:root[data-theme="sombre"]) .a-facturer{background:#3a2c15}
.choix-liste{display:grid;gap:6px;margin-bottom:8px}.choix-liste .check{align-items:flex-start;padding:6px 10px;border:1px solid var(--line);border-radius:8px;margin:0}
.choix-liste .check:has(input:checked){border-color:var(--pri);background:var(--bg)}.choix-liste .check.muted{opacity:.6}
.valider-com{padding:8px 12px;border-radius:8px;background:#fff1dc;font-weight:600}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="clair"])) .valider-com{background:#3a2c15}}
:where(:root[data-theme="sombre"]) .valider-com{background:#3a2c15}

/* v47 : tableau de bord en direct */
.direct-etat{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.direct{position:relative;display:inline-flex;align-items:center;gap:6px;border-radius:6px;padding:2px 4px}
.direct-ligne{display:flex;justify-content:flex-end;margin:-4px 0 4px}
.direct-rond{--p:0%;width:14px;height:14px;border-radius:50%;flex:none;border:1.5px solid var(--pri);
  background:conic-gradient(var(--pri) var(--p),transparent 0);transition:background .4s linear}
.direct.lecture .direct-rond{animation:directPulse .8s ease-in-out infinite alternate}
.direct.hors-ligne .direct-texte{color:var(--err)}
.direct.hors-ligne .direct-rond{border-color:var(--err);background:conic-gradient(var(--err) var(--p),transparent 0)}
@keyframes directPulse{from{opacity:1}to{opacity:.35}}
@media (prefers-reduced-motion:reduce){.direct-rond{transition:none}.direct.lecture .direct-rond{animation:none}}

/* v49 : état du paiement d'une course pas encore terminée */
.st.st-en-attente{background:var(--line);color:var(--mut)}

/* Mails et bon : mails toujours envoyés (raison à la place de la case) */
.mail-obligatoire{position:relative;display:inline-block;cursor:help;font-size:.95rem;opacity:.7;outline:none;border-radius:4px}
.mail-obligatoire:hover,.mail-obligatoire:focus{opacity:1}.mail-obligatoire:focus-visible{box-shadow:0 0 0 2px var(--pri)}
/* Raison au survol (ou au toucher), même bulle que le décompte du tableau de bord */
.mail-obligatoire::after{content:attr(data-bulle);position:absolute;z-index:60;left:-6px;top:calc(100% + 8px);width:max-content;max-width:240px;
  padding:8px 11px;border-radius:10px;background:#1f2633;color:#f3f5f8;font-size:.8rem;line-height:1.4;text-align:left;white-space:normal;
  box-shadow:0 10px 28px rgba(0,0,0,.25);opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .15s,transform .15s,visibility .15s;pointer-events:none}
.mail-obligatoire:hover::after,.mail-obligatoire:focus::after{opacity:1;visibility:visible;transform:none}

/* v52 : lignes du bon de réservation */
.bon-lignes{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin:8px 0 14px}
.bon-lignes fieldset{border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin:0}
.bon-lignes legend{font-weight:600;padding:0 4px}.bon-lignes .check{margin:4px 0}

/* Paramètres : portée de chaque réglage (👥 tout le groupe / 👤 le compte) et encarts de Fonctionnement */
.portee{float:right;margin-left:10px;padding:2px 9px;border-radius:999px;font-size:.62em;font-weight:600;line-height:1.6;white-space:nowrap;
  background:color-mix(in srgb,var(--pri) 10%,transparent);color:var(--pri)}
.portee.compte{background:color-mix(in srgb,var(--acc) 18%,transparent);color:#7a5200}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="clair"])) .portee.compte{color:#f2c45a}}
:where(:root[data-theme="sombre"]) .portee.compte{color:#f2c45a}
.encart-portee{border:1px solid var(--line);border-radius:var(--r);padding:12px 12px 0;margin-bottom:18px;background:color-mix(in srgb,var(--bg) 50%,transparent)}
.encart-portee-titre{margin:2px 4px 12px;font-size:1.05rem}.encart-portee-titre small{font-weight:400;color:var(--mut);margin-left:6px}
.paliers-annul{display:grid;gap:8px}.palier-annul{display:grid;grid-template-columns:80px repeat(3,minmax(0,1fr));gap:4px 12px;align-items:end}
.palier-annul label{margin:0}.palier-num{font-weight:600;color:var(--mut);padding-bottom:10px}
@media (max-width:640px){.palier-annul{grid-template-columns:1fr 1fr}.palier-num{grid-column:1/-1;padding:0}}
/* Bannières d'alerte (Annonces, v61) : information, attention, urgent */
.bannieres-alerte{display:grid;gap:0}
.banniere-alerte{display:grid;grid-template-rows:1fr;font-size:.92em;border-bottom:1px solid rgba(0,0,0,.08);transition:grid-template-rows .35s ease,opacity .3s,border-color .3s}
.banniere-alerte>.ba-boite{overflow:hidden;min-height:0;display:flex;align-items:flex-start;gap:10px;padding:10px 20px;transition:padding .35s}
.banniere-alerte.repliee{grid-template-rows:0fr;opacity:0;border-bottom-color:transparent}.banniere-alerte.repliee>.ba-boite{padding-top:0;padding-bottom:0}
.banniere-alerte .ba-titre{display:block;margin-bottom:2px}.banniere-alerte .ba-message{display:block}
.banniere-alerte.info{background:#e8f0fe;color:#174ea6}.banniere-alerte.attention{background:#fff4d6;color:#7a5200}.banniere-alerte.urgent{background:#c62828;color:#fff}
.banniere-alerte .ba-texte{flex:1}.banniere-alerte .ba-ic{flex:none}
.banniere-alerte .ba-fermer{flex:none;background:transparent;color:inherit;border:0;padding:0 4px;font-size:1em;opacity:.7;box-shadow:none;cursor:pointer}
.banniere-alerte .ba-fermer:hover{opacity:1;filter:none}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="clair"])) .banniere-alerte.info{background:#1d2a3d;color:#a8c7fa}:where(:root:not([data-theme="clair"])) .banniere-alerte.attention{background:#3a3115;color:#f2c45a}}
:where(:root[data-theme="sombre"]) .banniere-alerte.info{background:#1d2a3d;color:#a8c7fa}:where(:root[data-theme="sombre"]) .banniere-alerte.attention{background:#3a3115;color:#f2c45a}
/* Super-admin : témoins dans l'en-tête (maintenance active, annonces en cours) */
.temoins{display:flex;gap:6px;align-items:center}
.top .temoin{opacity:1;border:0;padding:3px 10px;border-radius:20px;font-size:.8em;font-weight:700;text-decoration:none;white-space:nowrap;transition:filter .15s,transform .15s}
.top .temoin:hover{border:0;filter:brightness(1.1);transform:translateY(-1px)}
.top .temoin.maintenance{background:#c62828;color:#fff;animation:temoin-pulse 1.6s ease-in-out infinite}
.top .temoin.annonce{background:var(--acc);color:#1c1300}
.top .temoin.logs{background:#fff;color:#1b1f24;display:inline-flex;gap:8px}   /* logs : un compteur par type (bug du site, service extérieur, droits) */
.top button.temoin{border:0;box-shadow:none;cursor:pointer}.top .temoin.annonce.a-rouvrir{animation:temoin-rappel 2s ease-in-out infinite}
@keyframes temoin-rappel{0%,100%{transform:none}50%{transform:scale(1.08)}}
@keyframes temoin-pulse{0%,100%{box-shadow:0 0 0 0 rgba(198,40,40,.6)}50%{box-shadow:0 0 0 5px rgba(198,40,40,0)}}
@media (prefers-reduced-motion:reduce){.top .temoin.maintenance,.top .temoin.annonce.a-rouvrir{animation:none}.banniere-alerte,.banniere-alerte>.ba-boite{transition:none}}
/* Journal des connexions : connexions par lien de transfert mises en avant, alertes « autre appareil » */
table.journal tr.via-lien td{background:rgba(124,58,237,.07)}
.tag.lien-tag{background:#ede9fe;color:#5b21b6;margin-top:4px;display:inline-block}
.kpi.kpi-lien{border-color:#c4b5fd}.kpi.kpi-lien.kpi-alerte{border-color:var(--err)}
.kpi.kpi-lien b small{display:inline;color:var(--err);font-size:.6em;margin-left:6px;font-weight:700}
.alertes-lien{border-left:4px solid var(--err)}.alertes-lien form.inline{display:inline-flex;gap:6px;align-items:center}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme="clair"])) .tag.lien-tag{background:#2e2350;color:#c4b5fd}:where(:root:not([data-theme="clair"])) table.journal tr.via-lien td{background:rgba(167,139,250,.09)}}
:where(:root[data-theme="sombre"]) .tag.lien-tag{background:#2e2350;color:#c4b5fd}:where(:root[data-theme="sombre"]) table.journal tr.via-lien td{background:rgba(167,139,250,.09)}
/* Chauffeurs : boutons d'en-tête, sous-onglet « Droits et conditions » (✓ / ✗ par droit, conditions négociées) */
.actions-tete{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
table.droits-conditions .groupes-colonnes th{text-align:center;font-size:.75em;text-transform:uppercase;letter-spacing:.06em;padding:5px 8px;border-bottom:0}
table.droits-conditions .groupe-droits{background:color-mix(in srgb,var(--ok) 14%,var(--card));border-radius:8px 8px 0 0}
table.droits-conditions .groupe-conditions{background:color-mix(in srgb,var(--pri) 14%,var(--card));border-radius:8px 8px 0 0;border-left:2px solid var(--card)}
table.droits-conditions th.centre,table.droits-conditions td.droit{text-align:center;white-space:nowrap}
table.droits-conditions td.droit{font-weight:700;font-size:1.05em}
table.droits-conditions td.droit small{font-weight:400;font-size:.75em;color:var(--mut)}
table.droits-conditions td.oui{color:var(--ok)}table.droits-conditions td.non{color:var(--err)}
table.droits-conditions .sep-conditions{border-left:2px solid var(--line)}
/* Comparatif des droits du super-admin : nom toujours visible en défilant, un trait par domaine de droits */
table.droits-conditions .col-fixe{position:sticky;left:0;z-index:1;background:var(--card);box-shadow:1px 0 0 var(--line)}
table.droits-conditions tr.clic:hover .col-fixe{background:color-mix(in srgb,var(--pri) 6%,var(--card))}
table.droits-conditions .sep-zone{border-left:2px solid var(--line)}
table.droits-conditions .groupes-colonnes .sep-zone{border-left:2px solid var(--card);border-radius:8px 8px 0 0}
table.droits-conditions thead th[title]{cursor:help}
/* MRC Gestion : formulaire réparti sur plusieurs onglets → numérotation des blocs propre à chaque onglet */
.onglets-page[data-recherche]>form>section[data-onglet].form-blocs{counter-reset:bloc}
/* Choix de l'affaire */
.choix-affaire h2{display:flex;align-items:center;gap:8px}.choix-affaire.courante{border-color:var(--pri)}
.pastille-couleur{display:inline-block;width:14px;height:14px;border-radius:50%;flex:none}
