/* Marinelli+ — design system v1 (29/10/2026). Interface claire et neutre ; orange = action principale et marque. */
:root{
  --orange:#f26b1d;--orange-fonce:#d6570f;--orange-pale:#fff1e8;--noir:#111214;
  --fond:#f5f6f8;--surface:#ffffff;--surface-2:#f9fafb;--bord:#e5e7eb;--bord-fort:#d1d5db;
  --texte:#1f2328;--texte-2:#57606a;--texte-3:#8b949e;--inverse:#fff;
  --vert:#15803d;--vert-pale:#dcfce7;--bleu:#1d4ed8;--bleu-pale:#dbeafe;--violet:#6d28d9;--violet-pale:#ede9fe;--cyan:#0e7490;--cyan-pale:#cffafe;--rouge:#b91c1c;--rouge-pale:#fee2e2;--jaune:#a16207;--jaune-pale:#fef9c3;--neutre:#4b5563;--neutre-pale:#f3f4f6;
  --rayon:8px;--rayon-g:12px;--ombre:0 1px 2px rgba(16,24,40,.06),0 1px 3px rgba(16,24,40,.08);--ombre-g:0 10px 30px rgba(16,24,40,.14);
  --nav-l:232px;--nav-reduite:60px;--barre-h:52px;--police:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
*{box-sizing:border-box}html{font-size:14px}body{margin:0;font-family:var(--police);color:var(--texte);background:var(--fond);line-height:1.45;-webkit-font-smoothing:antialiased}
a{color:var(--bleu);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.01em}h1{font-size:20px}h2{font-size:16px}h3{font-size:14px}
[x-cloak]{display:none!important}i[data-lucide],svg.lucide{width:18px;height:18px;flex:none}small,.petit{font-size:12px}.muted{color:var(--texte-2)}.muted-3{color:var(--texte-3)}.orange{color:var(--orange)}kbd{font:11px/1 var(--police);color:var(--texte-3);border:1px solid var(--bord);border-radius:4px;padding:2px 5px;background:var(--surface)}
/* Navigation */
.nav{position:fixed;inset:0 auto 0 0;width:var(--nav-l);background:var(--noir);color:#cfd3d8;display:flex;flex-direction:column;padding:10px 8px;transition:width .15s;z-index:30}
.nav-reduite .nav{width:var(--nav-reduite)}.nav-reduite .nav span,.nav-reduite .marque-texte{display:none}.nav-reduite .marque-mono{display:block}.nav-reduite .page{margin-left:var(--nav-reduite)}
.nav-marque{display:flex;align-items:center;gap:10px;padding:10px 10px 16px;color:#fff;text-decoration:none;min-height:46px}.nav-marque .marque-texte{width:150px;height:auto;display:block}.nav-marque .marque-mono{display:none;width:30px;height:30px}
.marque-logo{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:var(--orange);color:#fff;font:italic 700 16px Georgia,serif;letter-spacing:-1px}.marque-logo span{font-style:normal;font-size:12px;margin-top:-8px}.marque-logo.grand{width:48px;height:48px;font-size:26px;margin:0 auto 10px}
.nav nav{display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}.nav-lien{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:7px;color:#cfd3d8;font-weight:500;border:0;background:none;cursor:pointer;font:inherit;width:100%;text-align:left;white-space:nowrap}
.nav-lien:hover{background:rgba(255,255,255,.07);color:#fff;text-decoration:none}.nav-lien.actif{background:rgba(242,107,29,.18);color:#fff}.nav-lien.actif i{color:var(--orange)}
.nav-bas{margin-top:auto;display:flex;flex-direction:column;gap:2px;border-top:1px solid rgba(255,255,255,.08);padding-top:8px}
.page{margin-left:var(--nav-l);min-height:100vh;transition:margin .15s}
.barre{height:var(--barre-h);display:flex;align-items:center;gap:12px;padding:0 20px;background:var(--surface);border-bottom:1px solid var(--bord);position:sticky;top:0;z-index:20}
.recherche-bouton{flex:1;max-width:560px;display:flex;align-items:center;gap:10px;height:34px;padding:0 10px 0 12px;border:1px solid var(--bord);border-radius:var(--rayon);background:var(--surface-2);color:var(--texte-3);font:inherit;cursor:text;text-align:left}.recherche-bouton span{flex:1}.recherche-bouton:hover{border-color:var(--bord-fort)}
.barre-droite{margin-left:auto;display:flex;align-items:center;gap:6px}.avatar{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--orange-pale);color:var(--orange-fonce);font-weight:600;font-size:12px}.utilisateur{position:relative}.utilisateur-nom{font-weight:500}.point{position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background:var(--orange);border:2px solid #fff}
.menu{position:absolute;right:0;top:calc(100% + 6px);min-width:200px;background:var(--surface);border:1px solid var(--bord);border-radius:var(--rayon);box-shadow:var(--ombre-g);padding:6px;z-index:40}.menu-entete{padding:8px 10px;font-weight:600;border-bottom:1px solid var(--bord);margin-bottom:4px}.menu-entete small{display:block;font-weight:400;color:var(--texte-3)}.menu-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:6px;color:var(--texte)}.menu-item:hover{background:var(--surface-2);text-decoration:none}
.contenu{padding:20px 24px 60px;max-width:1900px}
.btn.btn-icone.nav-mobile{display:none}
/* Boutons, pastilles, cartes */
.btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:var(--rayon);border:1px solid var(--bord-fort);background:var(--surface);color:var(--texte);font:inherit;font-weight:500;cursor:pointer;white-space:nowrap}.btn:hover{background:var(--surface-2);text-decoration:none}.btn i{width:16px;height:16px}
.btn-primaire{background:var(--orange);border-color:var(--orange);color:#fff}.btn-primaire:hover{background:var(--orange-fonce)}.btn-secondaire{background:var(--surface)}.btn-fantome{border-color:transparent;background:transparent}.btn-fantome:hover{background:var(--neutre-pale)}.btn-icone{width:32px;padding:0;justify-content:center}.btn-petit{height:26px;padding:0 8px;font-size:12px}.btn-large{height:40px;font-size:15px;justify-content:center}
.pastille{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:999px;font-size:12px;font-weight:500;background:var(--neutre-pale);color:var(--neutre);white-space:nowrap}.pastille i{width:12px;height:12px}
.pastille-vert{background:var(--vert-pale);color:var(--vert)}.pastille-bleu{background:var(--bleu-pale);color:var(--bleu)}.pastille-violet{background:var(--violet-pale);color:var(--violet)}.pastille-cyan{background:var(--cyan-pale);color:var(--cyan)}.pastille-rouge{background:var(--rouge-pale);color:var(--rouge)}.pastille-orange{background:var(--orange-pale);color:var(--orange-fonce)}.pastille-jaune{background:var(--jaune-pale);color:var(--jaune)}
.carte{background:var(--surface);border:1px solid var(--bord);border-radius:var(--rayon-g);box-shadow:var(--ombre)}.carte-corps{padding:16px}.carte-entete{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--bord)}.carte-entete h2{flex:1}
.entete-page{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.entete-page .actions{margin-left:auto;display:flex;gap:8px}
.grille{display:grid;gap:16px}.grille-4{grid-template-columns:repeat(4,1fr)}.grille-3{grid-template-columns:repeat(3,1fr)}.grille-2{grid-template-columns:repeat(2,1fr)}
.kpi{padding:14px 16px}.kpi .val{font-size:26px;font-weight:700;letter-spacing:-.02em;line-height:1.1}.kpi .lib{color:var(--texte-2);margin-top:2px}.kpi.alerte .val{color:var(--rouge)}.kpi a{color:inherit}
/* Tableaux et listes */
.tableau{width:100%;border-collapse:collapse}.tableau th{text-align:left;font-weight:600;font-size:12px;color:var(--texte-2);padding:8px 12px;border-bottom:1px solid var(--bord);background:var(--surface-2);white-space:nowrap}.tableau td{padding:9px 12px;border-bottom:1px solid var(--bord);vertical-align:middle}.tableau tr:last-child td{border-bottom:0}.tableau tbody tr{cursor:pointer}.tableau tbody tr:hover{background:#fbfbfc}.tableau tr.selection{background:var(--orange-pale)}.tableau .num{text-align:right;font-variant-numeric:tabular-nums}.tableau .dense td{padding:6px 12px}
.cellule-titre{font-weight:500}.cellule-sous{color:var(--texte-3);font-size:12px}
.filtres{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.filtres input[type=search],.filtres select,.champ{height:32px;padding:0 10px;border:1px solid var(--bord-fort);border-radius:var(--rayon);font:inherit;background:var(--surface)}.filtres input[type=search]{min-width:300px}.filtres select{padding-right:28px}
.puces{display:flex;gap:6px;flex-wrap:wrap}.puce{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:999px;border:1px solid var(--bord);background:var(--surface);color:var(--texte-2);font-size:12px;font-weight:500;cursor:pointer}.puce.actif{background:var(--noir);color:#fff;border-color:var(--noir)}.puce b{font-weight:600;color:inherit}
.pagination{display:flex;align-items:center;gap:8px;padding:10px 12px;color:var(--texte-2);font-size:12px}.pagination .btn{height:26px}
/* Liste + panneau latéral */
.liste-detail{display:grid;grid-template-columns:1fr 440px;gap:16px;align-items:start}.panneau{position:sticky;top:calc(var(--barre-h) + 16px);max-height:calc(100vh - var(--barre-h) - 32px);overflow:auto}.panneau .vide{padding:40px 20px;text-align:center;color:var(--texte-3)}
.panneau-entete{display:flex;gap:12px;padding:16px;border-bottom:1px solid var(--bord)}.panneau-entete .ic{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--neutre-pale);color:var(--texte-2);flex:none}.panneau-entete h2{font-size:16px;line-height:1.25}
.section{padding:12px 16px;border-bottom:1px solid var(--bord)}.section:last-child{border-bottom:0}.section h3{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--texte-3);margin-bottom:8px}
.dl{display:grid;grid-template-columns:120px 1fr;gap:4px 10px;font-size:13px}.dl dt{color:var(--texte-3)}.dl dd{margin:0}
.ligne-item{display:flex;gap:10px;padding:7px 0;border-bottom:1px dashed var(--bord);font-size:13px}.ligne-item:last-child{border-bottom:0}.ligne-item .li-ic{color:var(--texte-3)}.ligne-item .li-corps{flex:1;min-width:0}.ligne-item .li-droite{color:var(--texte-3);white-space:nowrap}
/* Fiche */
.fiche{display:grid;grid-template-columns:320px 1fr;gap:16px;align-items:start}.fiche-cote{position:sticky;top:calc(var(--barre-h) + 16px)}
.fiche-titre{display:flex;align-items:flex-start;gap:12px}.fiche-titre .ic{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--orange-pale);color:var(--orange-fonce);flex:none}.fiche-titre .ic i{width:24px;height:24px}
.onglets{display:flex;gap:2px;border-bottom:1px solid var(--bord);margin-bottom:16px;flex-wrap:wrap}.onglet{padding:10px 14px;color:var(--texte-2);font-weight:500;border-bottom:2px solid transparent;white-space:nowrap}.onglet:hover{color:var(--texte);text-decoration:none}.onglet.actif{color:var(--texte);border-bottom-color:var(--orange)}.onglet .n{margin-left:6px;font-size:11px;background:var(--neutre-pale);padding:1px 6px;border-radius:999px;color:var(--texte-2)}
.chrono{list-style:none;margin:0;padding:0}.chrono li{display:grid;grid-template-columns:20px 1fr auto;gap:10px;padding:10px 0;border-bottom:1px solid var(--bord)}.chrono li:last-child{border-bottom:0}.chrono .ch-ic{width:20px;height:20px;border-radius:50%;background:var(--neutre-pale);display:flex;align-items:center;justify-content:center;color:var(--texte-2)}.chrono .ch-ic i{width:12px;height:12px}.chrono .ch-date{color:var(--texte-3);font-size:12px;white-space:nowrap}
.actions-rapides{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.alerte{padding:10px 12px;border-radius:var(--rayon);font-size:13px}.alerte-erreur{background:var(--rouge-pale);color:var(--rouge)}.alerte-info{background:var(--bleu-pale);color:var(--bleu)}.alerte-orange{background:var(--orange-pale);color:var(--orange-fonce)}
.vide-page{padding:60px 20px;text-align:center}.vide-page i{width:40px;height:40px;color:var(--texte-3)}.vide-page p{max-width:520px;margin:8px auto}
.vide{padding:24px;text-align:center;color:var(--texte-3)}
/* Recherche globale */
.modale-fond{position:fixed;inset:0;background:rgba(17,18,20,.45);z-index:50;display:flex;align-items:flex-start;justify-content:center;padding-top:12vh}.modale{width:640px;max-width:calc(100vw - 32px);background:var(--surface);border-radius:var(--rayon-g);box-shadow:var(--ombre-g);overflow:hidden}
.recherche-champ{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--bord)}.recherche-champ input{flex:1;border:0;outline:0;font:inherit;font-size:16px}.recherche-resultats{max-height:60vh;overflow:auto;padding:6px}.recherche-groupe{padding:8px 10px 4px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--texte-3)}
.recherche-item{display:grid;grid-template-columns:18px 1fr auto;gap:10px;align-items:center;padding:8px 10px;border-radius:6px;color:var(--texte)}.recherche-item:hover,.recherche-item.actif{background:var(--surface-2);text-decoration:none}.recherche-item i{color:var(--texte-3)}.ri-sous{color:var(--texte-3);font-size:12px}
/* Connexion */
.connexion-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--noir)}.connexion{width:360px;background:var(--surface);padding:32px;border-radius:16px;box-shadow:var(--ombre-g);text-align:center}.connexion h1{font-size:22px}.connexion label{display:block;text-align:left;margin:14px 0 0;font-weight:500;font-size:13px}.connexion input{display:block;width:100%;margin-top:4px;height:38px;padding:0 10px;border:1px solid var(--bord-fort);border-radius:var(--rayon);font:inherit}.connexion .btn{width:100%;margin-top:18px}
.toasts{position:fixed;bottom:16px;right:16px;display:flex;flex-direction:column;gap:8px;z-index:60}.toast{background:var(--noir);color:#fff;padding:10px 14px;border-radius:var(--rayon);box-shadow:var(--ombre-g);font-size:13px}
/* Réactif */
@media (max-width:1100px){.liste-detail{grid-template-columns:1fr}.panneau{position:fixed;inset:var(--barre-h) 0 0 auto;width:min(480px,100vw);max-height:none;border-radius:0;z-index:25;box-shadow:var(--ombre-g)}.fiche{grid-template-columns:1fr}.fiche-cote{position:static}.grille-4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:760px){.nav{transform:translateX(-100%)}.page{margin-left:0}.btn.btn-icone.nav-mobile{display:inline-flex}.recherche-bouton span{display:none}.utilisateur-nom{display:none}.contenu{padding:14px 16px 60px}.grille-4,.grille-3,.grille-2{grid-template-columns:1fr}.filtres input[type=search]{min-width:0;flex:1}}

/* Formulaires et modale */
.modale-form{width:720px;max-height:88vh;overflow:auto}.modale-form .modale-entete{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--bord)}.modale-form .modale-entete h2{flex:1}.modale-form .modale-corps{padding:16px 20px}.modale-form .modale-pied{display:flex;gap:8px;justify-content:flex-end;padding:12px 20px;border-top:1px solid var(--bord);background:var(--surface-2)}
.form-grille{display:grid;grid-template-columns:repeat(2,1fr);gap:12px 16px}.form-grille .large{grid-column:1/-1}
.champ-groupe{display:flex;flex-direction:column;gap:4px}.champ-groupe label{font-size:12px;font-weight:500;color:var(--texte-2)}.champ-groupe input,.champ-groupe select,.champ-groupe textarea{height:34px;padding:0 10px;border:1px solid var(--bord-fort);border-radius:var(--rayon);font:inherit;background:var(--surface);width:100%}.champ-groupe textarea{height:auto;min-height:70px;padding:8px 10px}.champ-groupe input:focus,.champ-groupe select:focus,.champ-groupe textarea:focus{outline:2px solid var(--orange-pale);border-color:var(--orange)}.champ-groupe .aide{font-size:11px;color:var(--texte-3)}.champ-groupe.erreur input{border-color:var(--rouge)}.champ-groupe .msg{font-size:12px;color:var(--rouge)}
.case{display:flex;align-items:center;gap:8px;font-size:13px}.case input{width:auto;height:auto}
.segmente{display:inline-flex;border:1px solid var(--bord-fort);border-radius:var(--rayon);overflow:hidden}.segmente label{padding:6px 10px;font-size:12px;font-weight:500;cursor:pointer;color:var(--texte-2);border-right:1px solid var(--bord)}.segmente label:last-child{border-right:0}.segmente input{display:none}.segmente input:checked+span{color:var(--texte)}.segmente label:has(input:checked){background:var(--orange-pale);color:var(--orange-fonce)}
.comparer{display:grid;grid-template-columns:140px 1fr 1fr;gap:0;font-size:13px}.comparer>div{padding:8px 10px;border-bottom:1px solid var(--bord)}.comparer .cle{color:var(--texte-3)}.comparer .val{cursor:pointer;border-radius:6px}.comparer .val:hover{background:var(--surface-2)}.comparer .val.choisi{background:var(--orange-pale);outline:1px solid var(--orange)}.comparer .entete{font-weight:600;background:var(--surface-2)}.comparer .diff .val{font-weight:500}
/* --- Étape C : interventions & planning --- */
.erreur-champ{color:var(--rouge);font-size:12px;margin-top:3px}.sous-titre{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--texte-3);margin:8px 0 0;padding-top:10px;border-top:1px solid var(--bord)}
.avatar-tech{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;color:#fff;font-size:11px;font-weight:700;letter-spacing:.02em;flex:none}
.btn-groupe{display:inline-flex}.btn-groupe .btn{border-radius:0}.btn-groupe .btn:first-child{border-radius:var(--rayon) 0 0 var(--rayon)}.btn-groupe .btn:last-child{border-radius:0 var(--rayon) var(--rayon) 0}.btn-groupe .btn+.btn{margin-left:-1px}.btn.actif{background:var(--texte);border-color:var(--texte);color:#fff}
.tableau tr.urgente td:first-child{box-shadow:inset 3px 0 0 var(--rouge)}.tableau tr.ligne-faite td{color:var(--texte-3);background:var(--vert-pale)}.tableau tr.ligne-faite i{width:14px;height:14px;vertical-align:-2px;color:var(--vert)}
.selecteur-tiers{position:relative}.selecteur-res{position:absolute;left:0;right:0;top:100%;z-index:5;background:var(--surface);border:1px solid var(--bord-fort);border-radius:var(--rayon);box-shadow:var(--ombre-g);max-height:260px;overflow:auto}.selecteur-res:empty{display:none}
.selecteur-res button{display:flex;gap:10px;align-items:center;width:100%;padding:8px 10px;border:0;background:none;font:inherit;text-align:left;cursor:pointer;border-bottom:1px solid var(--bord)}.selecteur-res button:hover{background:var(--orange-pale)}.selecteur-res button i{width:16px;height:16px;color:var(--texte-3);flex:none}.selecteur-res button span{display:flex;flex-direction:column;min-width:0}.selecteur-res button small{color:var(--texte-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.modale-form:has(.modale-form-interv){width:860px}
/* planning */
.planning-wrap{display:grid;grid-template-columns:1fr 300px;gap:16px;align-items:start}.planning-corps{overflow:auto}.backlog{position:sticky;top:calc(var(--barre-h) + 16px);max-height:calc(100vh - var(--barre-h) - 32px);display:flex;flex-direction:column}.backlog-liste{overflow:auto;padding:8px;min-height:120px;flex:1}
table.planning{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}table.planning th{font-weight:600;font-size:12px;color:var(--texte-2);padding:8px;border-bottom:1px solid var(--bord);background:var(--surface-2);text-align:left}table.planning thead th.auj{color:var(--orange-fonce)}table.planning thead th.samedi{color:var(--texte-3)}table.planning thead th a{cursor:pointer}
table.planning .col-tech{width:120px;vertical-align:top;border-right:1px solid var(--bord)}table.planning tbody th.col-tech{display:flex;gap:8px;align-items:center;background:var(--surface);border-bottom:0;font-weight:600}table.planning tbody tr.sans-tech th.col-tech{color:var(--texte-3);font-weight:500}table.planning tbody tr.sans-tech th i{width:18px;height:18px}
table.planning td.cellule{vertical-align:top;padding:4px;border-bottom:1px solid var(--bord);border-right:1px solid var(--bord);min-height:60px;height:64px;position:relative;transition:background .12s}table.planning td.cellule.auj{background:#fffaf6}.cellule.survol{background:var(--orange-pale)!important;outline:2px dashed var(--orange);outline-offset:-2px}
.charge{position:absolute;right:6px;bottom:3px;font-size:10px;color:var(--texte-3);font-variant-numeric:tabular-nums}.charge.sur{color:var(--rouge);font-weight:700}
.carte-interv{position:relative;background:var(--surface);border:1px solid var(--bord);border-left:3px solid var(--c);border-radius:6px;padding:4px 6px 4px 7px;margin-bottom:4px;font-size:12px;line-height:1.3;cursor:grab;box-shadow:0 1px 1px rgba(0,0,0,.03);overflow:hidden}.carte-interv:hover{border-color:var(--bord-fort);border-left-color:var(--c);box-shadow:var(--ombre)}.carte-interv.drag{opacity:.4}.carte-interv:not([draggable]){cursor:pointer}
.carte-interv .ci-ligne1{display:flex;gap:5px;align-items:center;min-width:0}.carte-interv .ci-ligne1 b{font-variant-numeric:tabular-nums;color:var(--texte-2)}.carte-interv .ci-ligne1 i{width:13px;height:13px;flex:none;color:var(--texte-3)}.carte-interv .ci-titre{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.carte-interv .ci-ok{color:var(--vert)!important}.carte-interv .ci-ligne2{color:var(--texte-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}
.carte-interv.statut-terminee{background:repeating-linear-gradient(135deg,var(--surface) 0 6px,var(--surface-2) 6px 12px);opacity:.8}.carte-interv.statut-en_route,.carte-interv.statut-en_cours{background:var(--orange-pale);border-color:#fdba74}.carte-interv.statut-en_cours{box-shadow:inset 0 0 0 1px var(--orange)}.carte-interv.fixe{background:var(--bleu-pale);border-color:#93c5fd}.carte-interv.annonce{box-shadow:inset 0 0 0 2px #f59e0b}.coul-pastille{display:inline-block;width:22px;height:22px;border-radius:50%;border:2px solid transparent}.coul-pastille.choisie{outline:2px solid var(--c);outline-offset:2px}.ci-retard{font-size:10.5px;font-weight:700;color:#92400e;background:#fef3c7;border-radius:999px;padding:0 5px;white-space:nowrap} /* U22 */.carte-interv.urgente{border-color:var(--rouge);background:var(--rouge-pale)}.reserve{display:flex;gap:4px;align-items:center;font-size:11px;color:#b45309;background:repeating-linear-gradient(135deg,#fff7ed 0 6px,#ffedd5 6px 12px);border:1px dashed #f59e0b;border-radius:6px;padding:2px 6px;margin-bottom:4px;cursor:pointer}.reserve i{width:12px;height:12px}.reserve.liberee{opacity:.55;border-style:dotted}.reserve.consommee{background:var(--rouge-pale);border-color:var(--rouge);color:var(--rouge)}.reserve-jour{position:absolute;left:4px;right:4px;bottom:4px;z-index:2;margin:0}.ci-urg{border:0;background:var(--rouge);color:#fff;border-radius:50%;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:none;padding:0}.ci-urg i{width:11px;height:11px;color:#fff!important}.carte-interv.retard{border-color:var(--jaune);background:var(--jaune-pale)}.carte-interv.statut-a_replanifier{border-style:dashed}
.carte-interv.type-depannage .ci-ligne1 i{color:var(--rouge)}.carte-interv.type-pose .ci-ligne1 i{color:var(--violet)}.carte-interv.type-mesurage .ci-ligne1 i{color:var(--cyan)}.carte-interv.type-entretien .ci-ligne1 i{color:var(--vert)}
.jour{min-width:720px}.jour-entete{display:flex;border-bottom:1px solid var(--bord);background:var(--surface-2);font-size:12px;font-weight:600}.jour-entete .col-tech-j{padding:8px;display:flex;gap:6px;align-items:center;border-left:1px solid var(--bord)}.col-heures{width:52px;flex:none;position:relative}.col-tech-j{flex:1;min-width:0;position:relative}
.jour-corps{display:flex;position:relative}.jour-corps .heure{position:absolute;right:6px;transform:translateY(-7px);font-size:11px;color:var(--texte-3);font-variant-numeric:tabular-nums}.jour-corps .col-tech-j{border-left:1px solid var(--bord)}.jour-corps .ligne-h{position:absolute;left:0;right:0;border-top:1px solid var(--bord);pointer-events:none}.jour-corps .ligne-h:nth-child(2n){border-top-style:dashed;border-top-color:#eee}
.jour-corps .pos{position:absolute;left:3px;right:3px;z-index:2}.jour-corps .pos .carte-interv{height:100%;margin:0;box-sizing:border-box}.jour-corps .sans-heure{position:absolute;left:3px;right:3px;z-index:2}.jour-corps .sans-heure .carte-interv{opacity:.85;border-style:dashed}
.maintenant{position:absolute;left:52px;right:0;border-top:2px solid var(--orange);z-index:3;pointer-events:none}.maintenant:before{content:'';position:absolute;left:-5px;top:-5px;width:8px;height:8px;border-radius:50%;background:var(--orange)}
@media (max-width:1100px){.planning-wrap{grid-template-columns:1fr}.backlog{position:static;max-height:320px}}
/* --- Étape D : demandes & dossiers --- */
.boite-mail{display:grid;grid-template-columns:400px 1fr;gap:16px;align-items:start}.boite-mail>.carte:first-child{max-height:calc(100vh - var(--barre-h) - 150px);overflow:auto}.lecture{position:sticky;top:calc(var(--barre-h) + 16px);max-height:calc(100vh - var(--barre-h) - 32px);overflow:auto}.lecture .vide{padding:60px 20px;text-align:center;color:var(--texte-3)}
.tableau tr.non-lue .cellule-titre{font-weight:700}.tableau tr.non-lue td:first-child{box-shadow:inset 3px 0 0 var(--orange)}.ic-cat{width:16px;height:16px}.ton-rouge{color:var(--rouge)}.ton-bleu{color:var(--bleu)}.ton-vert{color:var(--vert)}.ton-violet{color:var(--violet)}.ton-orange{color:var(--orange-fonce)}.ton-cyan{color:var(--cyan)}.ton-neutre{color:var(--texte-3)}
.propose{border-bottom:1px dashed var(--orange);color:var(--orange-fonce)}
.lecture-entete{display:flex;gap:12px;padding:14px 16px;border-bottom:1px solid var(--bord);align-items:flex-start}.lecture-titre{flex:1;min-width:0}.lecture-titre h2{font-size:16px;line-height:1.3}.lecture-actions{display:flex;gap:6px;align-items:center;flex:none}
.section.agent{background:#fdf8f3;border-left:3px solid var(--orange)}.section.agent h3{display:flex;gap:6px;align-items:center;text-transform:none;letter-spacing:0;font-size:12px;color:var(--orange-fonce)}.section.agent h3 i{width:14px;height:14px}.section.agent p{font-size:13px;margin:4px 0 6px}
.ratt{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;font-size:13px}.barre-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px dashed var(--bord)}
.message .message-entete{display:flex;gap:6px;align-items:baseline;font-size:13px;margin-bottom:2px}.corps-mail{white-space:pre-wrap;word-break:break-word;font:13px/1.5 Inter,system-ui,sans-serif;margin:8px 0 0;max-height:520px;overflow:auto;color:var(--texte)}
.pieces{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.piece{display:inline-flex;gap:5px;align-items:center;padding:3px 8px;border:1px solid var(--bord-fort);border-radius:var(--rayon);font-size:12px;background:var(--surface-2)}.piece i{width:13px;height:13px}
.liste-choix{max-height:380px;overflow:auto;border:1px solid var(--bord);border-radius:var(--rayon)}.liste-choix button{display:flex;gap:10px;align-items:center;width:100%;padding:8px 10px;border:0;border-bottom:1px solid var(--bord);background:none;font:inherit;text-align:left;cursor:pointer;flex-wrap:wrap}.liste-choix button:hover{background:var(--orange-pale)}.liste-choix button i{width:16px;height:16px;color:var(--texte-3)}.liste-choix button small{flex-basis:100%;color:var(--texte-3)}
@media (max-width:1100px){.boite-mail{grid-template-columns:1fr}.lecture{position:static;max-height:none}}
/* --- C2 : absences, notifications --- */
.segmente label.actif{background:var(--orange-pale);color:var(--orange-fonce);font-weight:600} .pai-onglets label.actif{border-bottom:2px solid var(--orange)} .pai-panneau{padding:12px;border:1px solid var(--bord);border-top:0;border-radius:0 0 var(--rayon) var(--rayon);margin-bottom:8px} .pai-panneau.pai-vert{background:#f0fdf4;border-color:#bbf7d0} .pai-panneau.pai-orange{background:#fff7ed;border-color:#fed7aa} .pai-panneau.pai-violet{background:#f5f3ff;border-color:#ddd6fe} /* U26 */
td.cellule.ferie,.col-tech-j.cellule.ferie{background:repeating-linear-gradient(135deg,#fef3c7 0 6px,#fde68a 6px 12px)!important;cursor:not-allowed}th.ferie a{color:#92400e}th.ferie a::after{content:' · férié';font-size:10px} /* U25 */
td.cellule.absent,.col-tech-j.cellule.absent{background:repeating-linear-gradient(135deg,#f3f4f6 0 6px,#e9eaee 6px 12px)}td.cellule.absent.demi-matin{background:linear-gradient(180deg,#e9eaee 0 50%,transparent 50%)}td.cellule.absent.demi-apres_midi{background:linear-gradient(180deg,transparent 0 50%,#e9eaee 50%)}
.absence{display:flex;gap:4px;align-items:center;font-size:11px;color:var(--texte-2);padding:2px 4px;margin-bottom:4px}.absence i{width:12px;height:12px}.absence-jour{position:absolute;top:4px;left:4px;right:4px;z-index:1;background:#fff;border-radius:4px;border:1px dashed var(--bord-fort)}
.notifs{position:relative}.menu-notifs{width:360px;right:0;max-height:70vh;overflow:auto}.menu-notifs .menu-entete{display:flex;align-items:center;gap:8px}.notif{display:flex;gap:10px;align-items:flex-start;white-space:normal}.notif i{flex:none;width:16px;height:16px;margin-top:2px;color:var(--orange-fonce)}.notif.lue{opacity:.6}.notif.lue i{color:var(--texte-3)}
.photos-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:6px}.photos-grille a{display:flex;align-items:center;justify-content:center;aspect-ratio:1;border-radius:6px;overflow:hidden;background:var(--surface-2);border:1px solid var(--bord)}.photos-grille img{width:100%;height:100%;object-fit:cover}
/* --- Étape E : facturation --- */
.barre-selection{display:flex;gap:10px;align-items:center;padding:8px 12px;border-bottom:1px solid var(--bord);background:var(--surface-2);font-size:13px;color:var(--texte-2)}
.lignes-edit td{padding:4px 6px;vertical-align:top}.lignes-edit tbody tr{cursor:default}.lignes-edit .champ{height:28px;padding:0 6px;font-size:13px}.lignes-edit .champ.num{text-align:right}.lignes-edit tr.ligne-titre textarea{font-weight:600}.lignes-edit tr.ligne-commentaire textarea{color:var(--texte-2);font-style:italic}
.tableau tr.ligne-titre td{font-weight:600;background:var(--surface-2)}.tableau tr.ligne-commentaire td{color:var(--texte-2);font-style:italic}
.donnees-form td{padding:4px 10px;font-size:12.5px}.donnees-form tbody tr{cursor:default}
.chrono li.cliquable{cursor:pointer}.chrono li.cliquable:hover{background:var(--surface-2)}.chrono li a{color:inherit}.chrono li a:hover{color:var(--orange-fonce)}
/* --- Étape F : dossiers --- */
.kanban{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(230px,1fr);gap:10px;overflow-x:auto;align-items:start;padding-bottom:8px}.kcol{background:var(--surface-2);border:1px solid var(--bord);border-radius:var(--rayon-g);min-height:200px;transition:background .12s}.kcol.survol{background:var(--orange-pale);outline:2px dashed var(--orange);outline-offset:-2px}.kcol-entete{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border-bottom:1px solid var(--bord)}.kcol-corps{padding:8px;display:flex;flex-direction:column;gap:8px;max-height:calc(100vh - 260px);overflow:auto}
.kcarte{display:block;background:var(--surface);border:1px solid var(--bord);border-radius:8px;padding:8px 10px;box-shadow:0 1px 1px rgba(0,0,0,.04);color:inherit;cursor:grab;font-size:12.5px}.kcarte:hover{border-color:var(--bord-fort);text-decoration:none;box-shadow:var(--ombre)}.kcarte.drag{opacity:.4}.kcarte.retard{border-left:3px solid var(--rouge)}.kc-ref{font-size:11px;color:var(--texte-3);font-weight:600}.kc-titre{font-weight:600;margin:2px 0;line-height:1.3}.kc-sous{color:var(--texte-2);font-size:12px}.kc-pied{display:flex;justify-content:space-between;gap:6px;margin-top:6px;font-size:11.5px}
.kv div{display:flex;gap:8px;justify-content:space-between;padding:3px 0;font-size:13px;border-bottom:1px dashed var(--bord)}.kv div:last-child{border:0}.kv span:first-child{color:var(--texte-3);flex:none}.kv span:last-child{text-align:right}
.colonne-fixe{position:sticky;top:calc(var(--barre-h) + 16px)}.alerte-retard{background:var(--rouge-pale)}
.segmente-vert{display:grid;grid-template-columns:1fr 1fr;gap:6px}.segmente-vert label{display:flex;gap:8px;align-items:center;padding:7px 10px;border:1px solid var(--bord);border-radius:var(--rayon);cursor:pointer;font-size:13px}.segmente-vert label.actif{border-color:var(--orange);background:var(--orange-pale)}
.onglet.petit{font-size:12px;padding:6px 8px}.chrono li.commentaire div>div:first-child{white-space:pre-wrap}
.kc-action{margin-top:4px;font-size:11px;color:var(--texte-2);display:flex;gap:4px;align-items:center}.kc-action.retard{color:var(--rouge)}

/* Chantiers (F2) */
.progres{height:6px;background:var(--neutre-pale);border-radius:3px;overflow:hidden}.progres-barre{height:100%;background:var(--vert);border-radius:3px;transition:width .2s}.progres-barre.retard{background:var(--orange)}
.etapes{list-style:none;margin:0;padding:6px 0 4px}.etape{display:flex;gap:10px;align-items:flex-start;padding:9px 16px;border-top:1px solid var(--bord)}.etape:first-child{border-top:0}.etape.faite .et-lib{color:var(--texte-3);text-decoration:line-through}.etape.sans-objet .et-lib{color:var(--texte-3);font-style:italic}.etape.retard .et-titre .et-num{background:var(--rouge-pale);color:var(--rouge)}.etape.en-cours .et-num{background:var(--bleu-pale);color:var(--bleu)}
.et-statut{border:0;background:none;cursor:pointer;padding:2px;color:var(--texte-3);margin-top:1px}.et-statut i,.et-statut svg{width:20px;height:20px}.etape.faite .et-statut{color:var(--vert)}.etape.en-cours .et-statut{color:var(--bleu)}.et-statut:hover{color:var(--orange)}
.et-corps{flex:1;min-width:0}.et-titre{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.et-num{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;border-radius:10px;background:var(--neutre-pale);color:var(--texte-2);font-size:11px;font-weight:600;padding:0 6px}.et-lib{font-weight:500}.et-detail{margin-top:2px}.et-commentaire{margin-top:3px}
.et-droite{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end;max-width:420px}.et-resp,.et-date{height:28px;font-size:12px;border:1px solid var(--bord);border-radius:6px;padding:0 6px;background:var(--surface);color:var(--texte-2);font-family:var(--police)}.et-date.retard{color:var(--rouge);border-color:var(--rouge)}.et-resp{max-width:110px}
.menu-etape{position:relative}.menu-etape .menu{top:100%}
.ck-public{margin:6px 0 10px}.ck-public-titre{margin-bottom:4px}.ck-action{display:flex;gap:10px;align-items:flex-start;padding:7px 0;border-top:1px solid var(--bord)}.ck-action.faite .ck-lib{color:var(--texte-3);text-decoration:line-through}.ck-action.faite .et-statut{color:var(--vert)}.ck-corps{flex:1;min-width:0}.ck-lib{font-weight:500}
@media (max-width:900px){.etape{flex-wrap:wrap}.et-droite{width:100%;justify-content:flex-start;max-width:none}}

/* Installations (G) */
.prop-item{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-top:1px solid var(--bord);cursor:pointer}.prop-item:first-of-type{border-top:0}.prop-item input{margin-top:4px}
.photos-grille a{position:relative}.photo-legende{position:absolute;left:4px;bottom:4px;background:rgba(0,0,0,.55);color:#fff;font-size:10px;padding:1px 5px;border-radius:4px}
.htmx-indicator{display:none}.htmx-request .htmx-indicator,.htmx-request.htmx-indicator{display:inline}

/* K1 — import EKO OKNA */
.modale-form:has(.modale-form-large){width:980px}

/* L1c — largeur : montants jamais coupés, fenêtres de rapprochement plus larges */
.tableau td.num,.tableau th.num,.kpi .val{white-space:nowrap}.modale-form:has(.modale-form-banque){width:960px}.liste-choix .num{white-space:nowrap}

.page-modale{display:flex;justify-content:center;padding:8px 0}.page-modale .modale-form{max-height:none;overflow:visible;max-width:100%}
.tuiles-type{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.tuiles-type label{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 6px;border:1px solid var(--bord-fort);border-radius:var(--rayon);cursor:pointer;font-size:12px;font-weight:500;color:var(--texte-2);background:#fff;transition:border-color .12s,background .12s}.tuiles-type label i,.tuiles-type label svg{width:22px;height:22px}.tuiles-type label:hover{border-color:var(--orange)}.tuiles-type label.actif{background:var(--orange-pale);border-color:var(--orange);color:var(--orange-fonce)}.tuiles-type input{display:none}
.champ-suffixe{position:relative}.champ-suffixe input{width:100%;padding-right:28px}.champ-suffixe span{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--texte-3)}
@media (max-width:700px){.tuiles-type{grid-template-columns:repeat(3,1fr)}}
/* Demandes : suivi des documents liés + recherche de tiers */
.section.suivi{background:#f4fbf6;border-left:3px solid var(--vert,#2f9e5b)}.suivi-cartes{display:flex;flex-direction:column;gap:8px}.suivi-carte{display:flex;gap:12px;align-items:center;padding:10px 12px;background:#fff;border:1px solid var(--bord);border-radius:var(--rayon);cursor:pointer}.suivi-carte:hover{border-color:var(--bord-fort);box-shadow:0 1px 4px rgba(0,0,0,.06)}.suivi-carte.clos{opacity:.72}.suivi-ic{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--fond-2,#f4f5f7);flex:none}.suivi-ic svg{width:19px;height:19px}.suivi-ic.ton-vert{background:#e7f6ec;color:#1f7a44}.suivi-ic.ton-bleu{background:#e8f0fb;color:#2458b3}.suivi-ic.ton-orange{background:var(--orange-pale);color:var(--orange-fonce)}.suivi-ic.ton-violet{background:#f0e9fb;color:#6b3fb3}.suivi-ic.ton-cyan{background:#e4f6f8;color:#116f7c}.suivi-ic.ton-jaune{background:#fdf6dc;color:#8a6a00}.suivi-ic.ton-rouge{background:#fde9e7;color:#b3261e}.suivi-corps{flex:1;min-width:0}.suivi-titre{font-weight:600;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.suivi-droite{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:none}.suivi-liens{display:flex;gap:4px}
#dem-liste .lie{display:inline-flex;align-items:center;gap:4px}#dem-liste .lie svg{width:12px;height:12px}
.autocomplete{position:relative}.autocomplete-champ{position:relative;display:flex;align-items:center}.autocomplete-champ>svg{position:absolute;left:10px;width:15px;height:15px;color:var(--texte-3);pointer-events:none}.autocomplete-champ input{width:100%;padding-left:32px;padding-right:96px}.autocomplete-champ.choisi input{border-color:#2f9e5b;background:#f4fbf6}.autocomplete-champ .pastille{position:absolute;right:8px}.autocomplete-res:empty{display:none}.autocomplete-res{position:absolute;left:0;right:0;top:100%;z-index:20;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.12);max-height:300px}

/* Menu mobile (bouton ☰ sous 760 px) : panneau latéral ouvrable, voile de fermeture */
.nav-voile{display:none}@media (max-width:760px){.nav{transition:transform .18s}.nav.ouverte{transform:none;box-shadow:0 0 40px rgba(0,0,0,.4)}.nav-voile{display:block;position:fixed;inset:0;background:rgba(17,18,20,.45);z-index:29}}

/* ---- R1 : entonnoir, tâches, @mentions, facturation express ---- */
.entonnoir-entete{display:flex;align-items:flex-end;justify-content:space-between;margin:4px 0 10px}.entonnoir-entete h2{display:flex;align-items:center;gap:8px;font-size:16px}.entonnoir-entete h2 i{width:18px;height:18px;color:var(--orange)}
.entonnoir{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;margin-bottom:16px}
.entonnoir .etape{background:var(--surface);border:1px solid var(--bord);border-radius:var(--rayon-g);padding:10px 10px 8px;display:flex;flex-direction:column;gap:4px;min-height:92px;position:relative}
.entonnoir .etape.vide{background:var(--surface-2);border-style:dashed}
.entonnoir .etape-entete{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--texte-2);padding-bottom:6px;border-bottom:1px solid var(--bord);margin-bottom:4px}.entonnoir .etape-entete i{width:15px;height:15px;color:var(--orange)}.entonnoir .etape-entete b{margin-left:auto;font-size:12px;background:var(--neutre-pale);border-radius:10px;padding:1px 8px;color:var(--texte)}.entonnoir .etape.vide .etape-entete b{background:var(--vert-pale);color:var(--vert)}
.liste-travail{display:flex;align-items:center;gap:9px;padding:6px 6px;border-radius:var(--rayon);text-decoration:none;color:inherit;font-size:13px;line-height:1.2}.liste-travail:hover{background:var(--surface-2)}.liste-travail b{min-width:30px;height:26px;padding:0 7px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-size:13px;background:var(--neutre-pale);color:var(--texte);flex:none}.liste-travail span{flex:1;display:flex;flex-direction:column;gap:1px}.liste-travail small{color:var(--texte-3);font-size:11px}.liste-travail>i{width:14px;height:14px;color:var(--texte-3)}
.liste-travail.ton-rouge b{background:var(--rouge-pale);color:var(--rouge)}.liste-travail.ton-orange b{background:var(--orange-pale);color:var(--orange-fonce)}.liste-travail.ton-bleu b{background:var(--bleu-pale);color:var(--bleu)}.liste-travail.ton-vert b{background:var(--vert-pale);color:var(--vert)}.liste-travail.zero{opacity:.55}.liste-travail.zero b{background:var(--surface-2)}
/* tâches */
.taches-bloc{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.taches-bloc.compact{margin-bottom:0}.taches-entete{display:flex;align-items:center;gap:8px}.taches-entete h3{flex:1;font-size:13px;display:flex;align-items:center;gap:6px;margin:0}.taches-entete>i{width:16px;height:16px;color:var(--orange)}
.tache{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border:1px solid var(--bord);border-radius:var(--rayon);background:var(--surface);transition:box-shadow .3s}.tache.haute{border-color:var(--rouge-pale);box-shadow:inset 3px 0 0 var(--rouge)}.tache.retard{background:var(--rouge-pale)}.tache.faite{opacity:.7;background:var(--surface-2);border-style:dashed}.tache.cible,tr.cible td{animation:cible 2.4s ease-out}
@keyframes cible{0%{background:var(--orange-pale);box-shadow:0 0 0 3px var(--orange)}100%{box-shadow:0 0 0 0 transparent}}
.tache-coche{width:26px;height:26px;border-radius:50%;border:1px solid var(--bord-fort);background:var(--surface);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:none;color:var(--texte-3);padding:0}.tache-coche:hover{border-color:var(--vert);color:var(--vert);background:var(--vert-pale)}.tache-coche i{width:15px;height:15px}.tache-coche.ok{border-color:transparent;color:var(--vert);cursor:default}
.tache-corps{flex:1;min-width:0}.tache-titre{font-weight:600;font-size:13px}.tache-detail{font-size:12.5px;color:var(--texte-2);margin-top:2px;white-space:pre-line}.tache-meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:11.5px;color:var(--texte-2);margin-top:4px}.tache-meta span{display:inline-flex;align-items:center;gap:4px}.tache-meta i{width:12px;height:12px}.tache-meta .rouge,.rouge{color:var(--rouge)}
.taches-faites summary{cursor:pointer;padding:2px 0}.taches-faites .tache{margin-top:6px}
.tableau tr.retard td{background:var(--rouge-pale)}.taches-table .lien-fiche{display:inline-flex;align-items:center;gap:6px;font-size:12.5px}.taches-table .lien-fiche i{width:14px;height:14px;color:var(--texte-3)}
.tache-contexte{display:flex;gap:10px;align-items:center;padding:8px 12px;background:var(--surface-2);border-radius:var(--rayon);margin-bottom:12px;font-size:13px}.tache-contexte i{width:18px;height:18px;color:var(--orange);flex:none}
.choix-collegues{display:flex;flex-wrap:wrap;gap:6px}.chip-collegue{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 5px;border:1px solid var(--bord-fort);border-radius:20px;cursor:pointer;font-size:13px;background:var(--surface);user-select:none}.chip-collegue input{display:none}.chip-collegue small{color:var(--texte-3);font-size:11px}.chip-collegue.actif{border-color:var(--orange);background:var(--orange-pale);box-shadow:0 0 0 1px var(--orange)}.chip-collegue.equipe{padding-left:9px}.chip-collegue.equipe i{width:14px;height:14px;color:var(--texte-2)}
.avatar-mini{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--noir);color:#fff;font-size:11px;font-weight:700;flex:none}
.echeance-rapide{display:flex;flex-direction:column;gap:6px}.case{display:flex;align-items:center;gap:8px;height:34px;font-size:13px;cursor:pointer}.case input{width:auto!important;height:auto!important}
/* @mentions */
.commentaire-form{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}.commentaire-form .mentions{flex:1;min-width:260px}.commentaire-form textarea{width:100%;height:auto;padding:8px 10px}
.mentions{position:relative}.mentions-menu{position:absolute;left:0;top:100%;z-index:50;min-width:260px;background:var(--surface);border:1px solid var(--bord-fort);border-radius:var(--rayon);box-shadow:var(--ombre-g);padding:4px;margin-top:2px;max-height:260px;overflow:auto}.mentions-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer;font-size:13px}.mentions-item small{color:var(--texte-3);margin-left:auto}.mentions-item.actif,.mentions-item:hover{background:var(--orange-pale)}
/* facturation express */
.express-haut{display:grid;grid-template-columns:1.1fr 1fr;gap:16px;margin-bottom:12px}.express-client{background:var(--surface-2);border-radius:var(--rayon);padding:10px 12px;font-size:13px;display:flex;flex-direction:column;gap:2px}.express-options{display:grid;gap:10px}
.express-interv{border:1px solid var(--bord);border-radius:var(--rayon-g);padding:10px 12px;margin-bottom:10px}.express-interv-entete{margin-bottom:6px;font-size:13px}.express-lignes input.champ{height:30px;padding:0 8px;font-size:13px}.express-lignes input.num{text-align:right}.express-lignes input.attention{border-color:var(--orange);background:var(--orange-pale)}.express-lignes tr.supprimee td{opacity:.45;text-decoration:line-through}
.express-total{display:flex;justify-content:flex-end;align-items:baseline;gap:10px 14px;padding:10px 12px;background:var(--surface-2);border-radius:var(--rayon);font-size:13px;flex-wrap:wrap}.express-total b.grand{font-size:18px}
.modale-form:has(.modale-form-tache){width:640px}
@media (max-width:760px){.express-haut{grid-template-columns:1fr}.entonnoir{grid-template-columns:1fr}}
/* S2 : en-têtes triables */
.tableau th a.tri{color:inherit;text-decoration:none;white-space:nowrap}.tableau th a.tri:hover{color:var(--orange)}.tableau th a.tri.actif{color:var(--orange)}.tableau th a.tri .tri-sens{font-size:9px;vertical-align:1px}
/* lot 6 : agendas et rendez-vous en ligne */
.planning.agenda td.cellule{min-height:70px;height:72px}.planning.agenda td.cellule:hover{background:#fcfcfd}.carte-interv.ag{cursor:pointer;display:block;color:inherit;text-decoration:none}.carte-interv.ag .ci-ligne1 i[data-lucide=globe]{color:var(--orange)}.carte-interv.ev-externe{border-style:dashed;color:var(--texte-3);background:var(--surface-2)}.carte-interv.ev-bloc,.carte-interv.ev-perso{background:var(--surface-2)}.carte-interv.st-annule{opacity:.5;text-decoration:line-through}.carte-interv.st-realise .ci-ligne1 b{color:var(--vert)}.agenda-wrap .backlog-liste{max-height:60vh;overflow:auto}.chip-collegue .avatar-mini{color:#fff}
/* S3 : filtres multi-choix */
.multi{position:relative;display:inline-block}.multi-btn{height:32px;padding:0 8px 0 10px;border:1px solid var(--bord-fort);border-radius:var(--rayon);font:inherit;background:var(--surface);display:inline-flex;align-items:center;gap:6px;cursor:pointer;max-width:240px;white-space:nowrap}.multi-btn span{overflow:hidden;text-overflow:ellipsis}.multi-btn i{width:14px;height:14px;color:var(--texte-3);flex:none}.multi-btn.actif{border-color:var(--orange);background:var(--orange-pale);color:var(--orange-fonce);font-weight:600}.multi-btn.actif i{color:var(--orange-fonce)}
.multi-menu{position:absolute;left:0;top:calc(100% + 4px);min-width:220px;max-height:340px;overflow:auto;background:var(--surface);border:1px solid var(--bord);border-radius:var(--rayon);box-shadow:var(--ombre-g);padding:4px;z-index:45}.multi-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 8px;border-radius:6px;cursor:pointer;font-size:13px;white-space:nowrap}.multi-item:hover{background:var(--surface-2)}.multi-item input{margin:0;accent-color:var(--orange);width:15px;height:15px;flex:none}.multi-tout{border-bottom:1px solid var(--bord);margin-bottom:3px;color:var(--texte-2)}
/* Y1 : équipes */
.carte-interv.equipier{border-style:dashed;opacity:.85;cursor:pointer}.express-temps{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:6px}.express-temps-item{display:inline-flex;gap:6px;align-items:center;font-size:13px}.express-temps-item input{width:70px;height:28px}.express-temps-item input.attention{border-color:var(--orange)}

/* ---- D3 : flux des demandes — bandeau d'étapes, liste en cartes, qualification, prochaine action, vue Flux ---- */
.flux-bandeau{display:flex;gap:14px;align-items:stretch;flex-wrap:wrap;margin-bottom:14px}
.flux-etapes{display:flex;align-items:center;gap:4px;flex:1;min-width:0;flex-wrap:wrap;row-gap:6px;padding-bottom:2px}
.flux-etape{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:10px;align-items:center;min-width:150px;padding:8px 12px;border:1px solid var(--bord);border-radius:var(--rayon-g);background:var(--surface);color:var(--texte);text-decoration:none;box-shadow:var(--ombre);position:relative;flex:1}
.flux-etape:hover{text-decoration:none;border-color:var(--bord-fort)}.flux-etape.actif{border-color:var(--noir);box-shadow:inset 0 -3px 0 var(--noir)}
.flux-etape i{grid-row:1/3;width:22px;height:22px;color:var(--texte-3)}.flux-etape b{font-size:22px;line-height:1.05;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.flux-etape span{grid-column:2;font-size:12px;font-weight:600;color:var(--texte-2);margin-top:-2px}.flux-etape small{grid-column:1/3;color:var(--texte-3);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.flux-etape.ton-orange i{color:var(--orange-fonce)}.flux-etape.ton-bleu i{color:var(--bleu)}.flux-etape.ton-violet i{color:var(--violet)}.flux-etape.ton-vert i{color:var(--vert)}.flux-etape.ton-neutre b{color:var(--texte-2)}
.flux-fleche{width:16px;height:16px;color:var(--bord-fort);flex:none}
.flux-alertes{display:flex;flex-direction:column;gap:6px;justify-content:center;min-width:170px}
.flux-alerte{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:999px;border:1px solid var(--bord);background:var(--surface);color:var(--texte-2);font-size:12px;text-decoration:none;white-space:nowrap}
.flux-alerte i{width:13px;height:13px}.flux-alerte b{color:var(--texte)}.flux-alerte.rouge{border-color:var(--rouge-pale);background:var(--rouge-pale);color:var(--rouge)}.flux-alerte.rouge b,.flux-alerte.rouge i{color:var(--rouge)}.flux-alerte.orange{background:var(--orange-pale);border-color:var(--orange-pale);color:var(--orange-fonce)}.flux-alerte.orange b{color:var(--orange-fonce)}.flux-alerte.actif{border-color:var(--noir);color:var(--texte)}.flux-alerte:hover{text-decoration:none;border-color:var(--bord-fort)}
/* liste en cartes */
.boite-mail.v2{grid-template-columns:minmax(380px,5fr) minmax(0,7fr)}
.dem-cartes{display:flex;flex-direction:column}
.dem-carte{display:flex;gap:10px;padding:10px 12px 10px 14px;border-bottom:1px solid var(--bord);cursor:pointer;position:relative;background:var(--surface)}.dem-carte:last-child{border-bottom:0}.dem-carte:hover{background:#fbfbfc}.dem-carte.selection{background:var(--orange-pale)}
.dem-carte:before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:transparent}.dem-carte.prio-urgente:before{background:var(--rouge)}.dem-carte.prio-haute:before{background:var(--orange)}.dem-carte.prio-basse:before{background:var(--bord-fort)}
.dem-carte.non-lue .dc-titre{font-weight:700}.dem-carte.non-lue .dc-ic{box-shadow:0 0 0 2px var(--orange-pale)}
.dc-ic{width:34px;height:34px;border-radius:10px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;flex:none;margin-top:2px}.dc-ic i{width:17px;height:17px}
.dc-corps{flex:1;min-width:0}.dc-l1{display:flex;gap:8px;align-items:baseline}.dc-titre{flex:1;min-width:0;font-weight:500;line-height:1.3}.dc-age{color:var(--texte-3);font-size:11px;white-space:nowrap;font-variant-numeric:tabular-nums}
.dc-l2{color:var(--texte-3);font-size:12px;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dc-tiers{color:var(--texte-2);font-weight:500}.dc-mini{width:11px;height:11px;vertical-align:-1px}
.dc-l3{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:5px;min-height:18px}.dc-l3:empty{display:none}
.dc-cat{font-size:11px;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.dc-cat small{font-weight:700;color:var(--orange-fonce)}
.dc-lie{display:inline-flex;align-items:center;gap:4px;font-size:11px}.dc-lie i{width:12px;height:12px;color:var(--texte-3)}.dc-lie .pastille{height:18px;font-size:11px}
.dc-etape{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600}.dc-etape i{width:12px;height:12px}
/* lecture : qualification et prochaine action */
.lect-fil{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.section.qualif{background:var(--surface-2)}.section.qualif h3,.section.action h3{display:flex;gap:6px;align-items:center;text-transform:none;letter-spacing:0;font-size:12px}.section.qualif h3 i,.section.action h3 i{width:14px;height:14px}
.qualif-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px 16px}.qualif-bloc .segmente{display:flex;flex-wrap:wrap;max-width:100%}.qualif-bloc .segmente .prio-btn{flex:1;justify-content:center;padding:0 8px}.qualif-bloc label{display:block;font-size:11px;font-weight:600;color:var(--texte-3);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.qualif-bloc .champ{width:100%;height:32px}.qualif-tiers{display:flex;gap:6px;align-items:center;flex-wrap:wrap;min-height:32px}
.segmente .prio-btn{height:30px;padding:0 10px;border:0;border-right:1px solid var(--bord);background:var(--surface);font:inherit;font-size:12px;font-weight:500;color:var(--texte-2);cursor:pointer;display:inline-flex;align-items:center;gap:4px}.segmente .prio-btn:last-child{border-right:0}.segmente .prio-btn i{width:12px;height:12px}.segmente .prio-btn:hover{background:var(--surface-2)}.segmente .prio-btn:disabled{cursor:default;opacity:.7}
.segmente .prio-btn.actif{background:var(--noir);color:#fff}.prio-seg .prio-btn.ton-rouge.actif{background:var(--rouge)}.prio-seg .prio-btn.ton-orange.actif{background:var(--orange)}.prio-seg .prio-btn.ton-bleu.actif{background:var(--bleu)}.prio-seg .prio-btn.ton-neutre.actif{background:var(--neutre)}
.tuiles-action{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.tuile-action{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border:1px solid var(--bord-fort);border-radius:var(--rayon-g);background:var(--surface);color:var(--texte);font:inherit;text-align:left;cursor:pointer;text-decoration:none;position:relative;min-height:84px;transition:border-color .12s,box-shadow .12s}
.tuile-action:hover{border-color:var(--orange);box-shadow:var(--ombre);text-decoration:none}.tuile-action:disabled{opacity:.5;cursor:default}
.tuile-action i{width:20px;height:20px;margin-bottom:4px}.tuile-action span{font-weight:600;font-size:13px;line-height:1.2}.tuile-action small{color:var(--texte-3);font-size:11px;line-height:1.25}.tuile-action em{position:absolute;top:8px;right:8px;font-style:normal;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:1px 6px;border-radius:999px;background:var(--orange-pale);color:var(--orange-fonce)}
.tuile-action.suggeree{border-color:var(--orange);background:#fffaf6}.tuile-action.retenue{border-color:var(--noir);box-shadow:inset 0 0 0 1px var(--noir)}.tuile-action.retenue em{background:var(--noir);color:#fff}
.tuile-action.ton-rouge i{color:var(--rouge)}.tuile-action.ton-bleu i{color:var(--bleu)}.tuile-action.ton-jaune i{color:var(--jaune)}.tuile-action.ton-cyan i{color:var(--cyan)}.tuile-action.ton-violet i{color:var(--violet)}.tuile-action.ton-neutre i{color:var(--texte-3)}
/* vue Flux (kanban) */
.flux-legende{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.flux-legende span{display:inline-flex;gap:5px;align-items:center}.flux-legende i{width:13px;height:13px;color:var(--texte-3)}
.flux-kanban{grid-auto-columns:minmax(250px,1fr)}.flux-col-titre{display:inline-flex;gap:6px;align-items:center;font-size:13px}.flux-col-titre i{width:15px;height:15px}.flux-col-titre.ton-orange i{color:var(--orange-fonce)}.flux-col-titre.ton-bleu i{color:var(--bleu)}.flux-col-titre.ton-violet i{color:var(--violet)}.flux-col-titre.ton-vert i{color:var(--vert)}
.dem-kcarte{cursor:pointer;position:relative;flex:none}.dem-kcarte.prio-urgente{border-left:3px solid var(--rouge)}.dem-kcarte.prio-haute{border-left:3px solid var(--orange)}.dem-kcarte .kc-ref{display:flex;gap:4px;align-items:center}.dem-kcarte .kc-ref i{width:12px;height:12px}.dem-kcarte .kc-pied .pastille{height:18px;font-size:11px}
@media (max-width:1100px){.boite-mail.v2{grid-template-columns:1fr}.flux-alertes{flex-direction:row;flex-wrap:wrap}}

/* ---- F3 : prévente visible, bouton statut, factures modifiables ---- */
.kanban-groupes{display:flex;gap:12px;overflow-x:auto;align-items:flex-start;padding-bottom:8px}
.kgroupe{flex:none;padding:8px 8px 6px;border-radius:14px;border:1px solid var(--bord);background:var(--surface-2)}.kgroupe .kanban{overflow:visible;padding-bottom:0;grid-auto-columns:236px}
.kgroupe.prevente{background:#fff6ee;border-color:#f8d3b8}.kgroupe.vendu{background:#f0faf3;border-color:#bfe8cc}.kgroupe.perdu{background:var(--surface-2)}
.kgroupe-entete{display:flex;align-items:center;gap:8px;padding:2px 6px 8px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--texte-2)}.kgroupe-entete i{width:15px;height:15px}.kgroupe-entete small{font-weight:600;text-transform:none;letter-spacing:0;color:var(--texte-3)}.kgroupe-entete em{font-style:normal;font-weight:500;text-transform:none;letter-spacing:0;color:var(--texte-3);margin-left:auto;font-size:11px}
.kgroupe.prevente .kgroupe-entete{color:var(--orange-fonce)}.kgroupe.prevente .kgroupe-entete i{color:var(--orange)}.kgroupe.vendu .kgroupe-entete{color:var(--vert)}.kgroupe.vendu .kgroupe-entete i{color:var(--vert)}
.kgroupe.prevente .kcol{background:#fffaf5;border-color:#f3dcc8}.kgroupe.vendu .kcol{background:#f6fcf8;border-color:#cdeed8}
.etiq-groupe{display:inline-flex;align-items:center;height:18px;padding:0 6px;border-radius:4px;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;vertical-align:1px}.etiq-groupe.prevente{background:var(--orange);color:#fff}.etiq-groupe.vendu{background:var(--vert);color:#fff}.etiq-groupe.perdu{background:var(--neutre);color:#fff}
.btn-statut{height:40px;padding:0 12px 0 8px;gap:8px;border-width:2px}.btn-statut .bs-lib{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:5px;font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#fff}.btn-statut b{font-size:14px}.btn-statut i{width:16px;height:16px;color:var(--texte-3)}
.btn-statut.groupe-prevente{border-color:var(--orange)}.btn-statut.groupe-prevente .bs-lib{background:var(--orange)}.btn-statut.groupe-vendu{border-color:var(--vert)}.btn-statut.groupe-vendu .bs-lib{background:var(--vert)}.btn-statut.groupe-perdu{border-color:var(--bord-fort)}.btn-statut.groupe-perdu .bs-lib{background:var(--neutre)}.btn-statut:hover{background:var(--orange-pale)}
.statut-groupe-titre{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--texte-3);margin:10px 0 6px}.statut-groupe-titre:first-of-type{margin-top:0}.statut-groupe-titre i{width:14px;height:14px}.statut-groupe-titre.prevente{color:var(--orange-fonce)}.statut-groupe-titre.vendu{color:var(--vert)}
.segmente-vert.grand label{padding:10px 12px;font-size:14px}.segmente-vert.grand label .pastille{height:20px}
@media (max-width:1100px){.kanban-groupes{flex-direction:column}.kgroupe{flex:auto}}

/* ---- R1 : rentabilité par métier dans le cockpit ---- */
.renta-metier{display:block;color:inherit;border:1px solid var(--bord)}.renta-metier:hover{text-decoration:none;border-color:var(--bord-fort);box-shadow:var(--ombre)}.renta-metier.actif{border-color:var(--noir);box-shadow:inset 0 -3px 0 var(--noir)}
.renta-metier.ton-orange .lib b{color:var(--orange-fonce)}.renta-metier.ton-vert .lib b{color:var(--vert)}.renta-metier.ton-bleu .lib b{color:var(--bleu)}

/* ---- T3 : syndic en 1 clic, propositions IA ---- */
.syndic-bloc.a-faire{background:#fff8f1}.syndic-actuel{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.syndic-prop{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid var(--orange);border-radius:var(--rayon);background:#fff;margin-bottom:8px}.syndic-prop b{font-size:14px}.syndic-prop-btn{display:flex;gap:4px;align-items:center;flex:none}
.syndic-choix{display:none;margin-top:6px}.syndic-choix.ouvert{display:block}.syndic-choix .autocomplete-champ input{padding-right:10px}
.prop-ligne{display:flex;gap:8px;align-items:center;justify-content:space-between;min-width:280px}.prop-ligne>div{min-width:0}

/* ---- U2 : colonnes personnelles (⚙ dans le dernier en-tête) ---- */
.colpick{position:relative;display:inline-block;margin-left:6px;vertical-align:middle}.colpick-btn{border:0;background:none;cursor:pointer;color:var(--texte-3);padding:0;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center}.colpick-btn i{width:14px;height:14px}.colpick-btn:hover,.colpick-btn.actif{color:var(--orange)}
.colpick-menu{display:none;position:absolute;right:0;top:calc(100% + 6px);z-index:40;min-width:260px;background:var(--surface);border:1px solid var(--bord);border-radius:var(--rayon);box-shadow:var(--ombre-g);padding:8px;text-align:left;font-weight:400;text-transform:none;letter-spacing:0;font-size:13px;color:var(--texte)}.colpick-menu.ouvert{display:block}
.colpick-titre{font-weight:600;padding:2px 4px 8px;border-bottom:1px solid var(--bord);margin-bottom:4px;white-space:nowrap}.colpick-menu ul{list-style:none;margin:0;padding:0;max-height:320px;overflow:auto}.colpick-menu li{display:flex;align-items:center;gap:8px;padding:4px 4px}.colpick-menu li label{flex:1;display:flex;gap:6px;align-items:center;cursor:pointer;white-space:nowrap}.colpick-menu li input[type=checkbox]{accent-color:var(--orange)}
.colpick-fleches button{border:1px solid var(--bord);background:var(--surface);border-radius:4px;width:22px;height:22px;cursor:pointer;color:var(--texte-2);font-size:12px;padding:0}.colpick-fleches button:hover{border-color:var(--orange);color:var(--orange)}.colpick-pied{display:flex;gap:6px;justify-content:flex-end;padding-top:8px;border-top:1px solid var(--bord);margin-top:4px}

/* ---- V2 : interventions par technicien, carte ---- */
.techs-wrap{display:grid;grid-template-columns:minmax(420px,5fr) minmax(0,6fr);gap:16px;align-items:start}.techs-cartes{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - var(--barre-h) - 200px);overflow:auto;padding-right:2px}
.tech-carte{background:var(--surface);border:1px solid var(--bord);border-radius:var(--rayon-g);padding:10px 12px;cursor:pointer;box-shadow:var(--ombre)}.tech-carte:hover{border-color:var(--bord-fort)}.tech-carte.actif{border-color:var(--noir);box-shadow:inset 0 0 0 1px var(--noir)}.tech-carte.absent{opacity:.6;background:repeating-linear-gradient(135deg,#fff 0 8px,#f3f4f6 8px 16px)}.tech-carte.vide{opacity:.75}
.tc-entete{display:flex;align-items:center;gap:10px}.tc-nom{flex:1;min-width:0}.tc-chiffres{text-align:center;min-width:52px}.tc-chiffres b{display:block;font-size:14px;line-height:1.1}.tc-chiffres small{color:var(--texte-3);font-size:10px;text-transform:uppercase;letter-spacing:.04em}
.tc-ligne{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:13px}.tc-ligne>i{width:15px;height:15px;color:var(--texte-3);flex:none}.tc-vehicule{height:28px;font-size:12px;max-width:260px}
.tc-encours{margin-top:6px;padding:6px 8px;border-radius:6px;background:var(--orange-pale);color:var(--orange-fonce);font-size:12.5px;display:flex;gap:6px;align-items:center}.tc-encours i{width:14px;height:14px}
.tc-etapes{list-style:none;margin:8px 0 0;padding:0}.tc-etapes li{display:flex;align-items:center;gap:8px;padding:5px 0;border-top:1px dashed var(--bord);font-size:12.5px}.tc-etapes li.st-terminee{opacity:.6}.tc-etapes li:hover{background:var(--surface-2)}
.tc-num{width:20px;height:20px;border-radius:50%;color:#fff;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex:none}.tc-h{width:40px;font-variant-numeric:tabular-nums;color:var(--texte-2);flex:none}.tc-t{flex:1;min-width:0;display:flex;flex-direction:column}.tc-t small{color:var(--texte-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tc-d{color:var(--texte-3);white-space:nowrap;font-size:11.5px;min-width:44px;text-align:right}.tc-d i{width:13px;height:13px;color:var(--rouge)}.tc-etapes .pastille{height:18px;font-size:11px}
.techs-carte-wrap{position:sticky;top:calc(var(--barre-h) + 16px);overflow:hidden}#techs-carte{height:calc(100vh - var(--barre-h) - 240px);min-height:420px}.techs-legende{display:flex;gap:14px;align-items:center;padding:6px 12px;border-top:1px solid var(--bord)}.techs-legende i{width:13px;height:13px;vertical-align:-2px}
.tm-base i{display:flex;width:26px;height:26px;border-radius:6px;background:var(--noir);color:#fff;align-items:center;justify-content:center;font-style:normal;font-size:16px;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.3)}
.tm-etape b{display:flex;width:24px;height:24px;border-radius:50%;color:#fff;align-items:center;justify-content:center;font-size:12px;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.35)}.tm-etape.st-terminee b{opacity:.55}
.tm-tech span{display:flex;width:30px;height:30px;border-radius:50%;color:#fff;align-items:center;justify-content:center;font-size:11px;font-weight:800;border:3px solid #fff;box-shadow:0 0 0 3px rgba(242,107,29,.35),0 2px 6px rgba(0,0,0,.35)}
@media (max-width:1100px){.techs-wrap{grid-template-columns:1fr}.techs-cartes{max-height:none}.techs-carte-wrap{position:static}#techs-carte{height:420px}}

/* ---- H3 : validation des heures en 3 gestes ---- */
.gestes-heures{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.geste-heure{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:10px 12px;border:1px solid var(--bord-fort);border-radius:var(--rayon-g);background:var(--surface);font:inherit;text-align:left;cursor:pointer;min-height:96px}.geste-heure i{width:20px;height:20px;margin-bottom:2px}.geste-heure b{font-size:14px}.geste-heure small{color:var(--texte-3);font-size:11.5px;line-height:1.3}
.geste-heure.valider{border-color:var(--vert)}.geste-heure.valider i{color:var(--vert)}.geste-heure.valider:hover{background:var(--vert-pale)}.geste-heure.rejeter i{color:var(--rouge)}.geste-heure.rejeter:hover{background:var(--rouge-pale)}.geste-heure.modifier i{color:var(--bleu)}.geste-heure.modifier:hover,.geste-heure.modifier.actif{background:var(--bleu-pale);border-color:var(--bleu)}
@media (max-width:700px){.gestes-heures{grid-template-columns:1fr}}
/* Z2 : toast avec action (Rétablir) */
.toast-action{display:flex;align-items:center;gap:12px}.toast-action .btn{background:#fff;color:var(--noir);border-color:#fff}
/* Z5 : suggestions d'articles et de libellés dans les lignes */
.sugg{position:absolute;left:0;top:100%;min-width:560px;max-width:760px;width:max-content;z-index:30;background:var(--surface);border:1px solid var(--bord);border-radius:var(--rayon);box-shadow:var(--ombre-g);max-height:340px;overflow:auto;margin-top:2px}
.sugg-item{display:flex;gap:8px;align-items:baseline;width:100%;text-align:left;padding:7px 10px;border:0;background:none;cursor:pointer;font-size:13px;color:inherit}
.sugg-item.actif,.sugg-item:hover{background:var(--surface-2)}
.sugg-type{font-size:10px;text-transform:uppercase;letter-spacing:.04em;padding:1px 6px;border-radius:8px;background:var(--surface-2);color:var(--texte-2);flex:none}.sugg-type.libelle{background:#e8f1ff;color:#1d4ed8}
.sugg-nom{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sugg-prix{flex:none;font-size:12px;color:var(--texte-2)}
.sugg-vide{padding:8px 10px;font-size:12px;color:var(--texte-2);display:flex;gap:8px;align-items:center;justify-content:space-between}
.sugg-aide{padding:4px 10px;font-size:11px;color:var(--texte-3,#9aa0a6);border-top:1px solid var(--bord)}
/* Z6 : vue Aujourd'hui par rôle */
.tuiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-bottom:16px}
.tuile{background:var(--surface);border:1px solid var(--bord);border-radius:var(--rayon-g,10px);padding:12px 14px;display:flex;flex-direction:column;gap:6px;min-width:0}
.tuile-charge{min-height:62px;justify-content:center}.tuile-alerte{border-left:3px solid var(--rouge)}
.tuile-zero,.tuile-indispo{padding:8px 12px;grid-column:span 1}.tuile-ligne{display:flex;gap:8px;align-items:center;color:inherit;text-decoration:none;font-size:13px}.tuile-ligne span:nth-child(2){flex:1}
.tuile-entete{display:flex;gap:8px;align-items:center;font-weight:600;font-size:13px}.tuile-entete i{width:16px;height:16px;color:var(--texte-2)}
.tuile-chiffres{display:flex;gap:10px;align-items:baseline}.tuile-n{font-size:26px;line-height:1}.tuile-m{font-size:14px;font-weight:600}.tuile-m small{font-weight:400;color:var(--texte-2)}
.tuile-sous{font-size:12px}.tuile-apercu{list-style:none;margin:2px 0;padding:0;border-top:1px solid var(--bord)}.tuile-apercu li a{display:flex;flex-direction:column;padding:5px 0;border-bottom:1px solid var(--bord);color:inherit;text-decoration:none;font-size:12px}
.tuile-apercu li a small{color:var(--texte-2)}.tuile-apercu li.retard a span{color:var(--rouge)}.tuile-action{align-self:flex-start;margin-top:auto;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.tuile-action i{width:14px;height:14px}
.pour-moi{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.mention-ligne{display:inline-flex;gap:6px;align-items:center;font-size:13px;padding:4px 10px;border:1px solid var(--bord);border-radius:16px;background:var(--surface);color:inherit;text-decoration:none}.mention-ligne small{color:var(--texte-2)}
/* Z7 : dépôt de PDF */
.depot-zone{display:flex;flex-direction:column;align-items:center;gap:6px;padding:26px;border:2px dashed var(--bord-fort);border-radius:var(--rayon-g,10px);cursor:pointer;text-align:center;background:var(--surface-2)}.depot-zone.survol{border-color:var(--orange);background:var(--orange-pale)}.depot-zone i{width:30px;height:30px;color:var(--texte-2)}
.tourne{animation:tourne 1s linear infinite}@keyframes tourne{to{transform:rotate(360deg)}}
/* Z9 (audit 17) : aucune page ne déborde à 1 440 px — les colonnes de grille peuvent rétrécir, les tableaux larges défilent dans leur carte */
.grille>*,.liste-detail>*,.fiche>*{min-width:0}
.entete-page .actions{flex-wrap:wrap;justify-content:flex-end}
.carte:has(>table.tableau),.carte:has(>form>table.tableau){overflow-x:auto}
/* Z9 — connexion sur téléphone : largeur fluide, case « Rester connecté », pas de zoom iOS */
.connexion{max-width:calc(100vw - 24px)} .connexion input{font-size:16px}
.connexion label.rester{display:flex;gap:8px;align-items:center;font-weight:400;margin-top:12px;cursor:pointer} .connexion label.rester input{display:inline-block;width:18px;height:18px;margin:0;flex:none}
@media (max-width:420px){.connexion{padding:24px 18px;border-radius:12px}}
/* Z9 — action en cours : roue sur le bouton qui a lancé la requête (BCE, propositions, recalculs…) et pas de double clic */
.btn.htmx-request,form.htmx-request button[type=submit]{pointer-events:none;opacity:.75;cursor:progress}
.btn.htmx-request::after,form.htmx-request button[type=submit]::after{content:'';display:inline-block;width:11px;height:11px;margin-left:7px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:tourne .7s linear infinite;vertical-align:-1px}
/* Z10 — filtre des dossiers clos (masqués · 30 jours · tous) et statuts en parallèle */
.filtre-clos{display:inline-flex;align-items:center;gap:6px}.filtres .segmente{background:var(--surface)}.filtres .segmente label{height:30px;display:inline-flex;align-items:center}
.kcarte.parallele{border-style:dashed;background:var(--fond, #f7f7f8);opacity:.92}.kcarte.parallele .kc-par-titre{font-size:10.5px;font-weight:600;letter-spacing:.3px;text-transform:uppercase;color:var(--texte-3);margin-bottom:2px}
.kc-par{margin-top:5px;display:flex;flex-wrap:wrap;gap:3px}.pastille-parallele{border:1px dashed currentColor}.pastille-parallele.petit{font-size:10.5px;padding:1px 6px}
.statut-section{font-weight:600;font-size:13px;margin:4px 0 6px}.statut-mode{display:grid;gap:6px;margin-bottom:12px;padding:8px 10px;border:1px solid var(--bord);border-radius:var(--rayon);background:var(--orange-pale)}.statut-mode label{display:flex;gap:8px;align-items:flex-start;font-size:13px;cursor:pointer}
.bs-plus{font-size:11px;font-weight:600;padding:0 5px;border-radius:999px;background:rgba(0,0,0,.08);margin-left:4px}
/* Z11 — compteur d'heures au jour */
.jh-barre{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--bord);background:var(--surface-2)}.jh-sep{width:1px;height:22px;background:var(--bord-fort);margin:0 4px}.jh-note{height:28px;padding:0 8px;border:1px solid var(--bord-fort);border-radius:var(--rayon);font:inherit;font-size:12px;min-width:220px;flex:1}
.jours-heures .jh-groupe td{background:var(--surface-2);border-top:1px solid var(--bord-fort)}.jours-heures .jh-actions{white-space:nowrap}.jours-heures .jh-actions .btn{margin-left:3px}.jh-retenir{width:58px;height:26px;padding:0 6px;border:1px solid var(--bord-fort);border-radius:var(--rayon);font:inherit;font-size:12px;text-align:right}
.jours-heures tr.jh-refusee td,.jours-heures tr.jh-compte td{color:var(--texte-2)}
.modale:has(.jours-heures){width:min(1080px,96vw);max-width:96vw}

/* CB1c (06/11/2026) : un bouton désactivé se voit (il ressemblait à un bouton actif) */
.btn:disabled,.btn[disabled]{opacity:.45;cursor:not-allowed}.btn-primaire:disabled:hover{background:var(--orange)}

/* 06/11 : titre de l'intervention sur sa propre ligne dans le planning (2 lignes au plus) */
.carte-interv .ci-titre2{font-weight:600;color:var(--texte);white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word;margin-top:1px}.carte-interv .ci-ligne2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--texte-3)}

/* U8 */
.nav-groupe{margin:10px 10px 3px;font-size:10.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:rgba(255,255,255,.38);white-space:nowrap}.nav nav>.nav-groupe:first-child{margin-top:0}
.nav-reduite .nav-groupe{height:0;margin:6px 8px 4px;padding:0;border-top:1px solid rgba(255,255,255,.12);font-size:0;overflow:hidden}
.barre-charge{position:fixed;top:0;left:0;height:2px;width:0;background:var(--orange);z-index:200;opacity:0;pointer-events:none;transition:width .4s ease,opacity .2s}.barre-charge.active{opacity:1;width:72%}.barre-charge.fin{width:100%;opacity:0;transition:width .12s ease,opacity .3s ease .12s}
.kcol.vide{min-height:auto}.kcol.vide .kcol-corps{min-height:46px;max-height:46px;border:1px dashed var(--bord);border-radius:8px;margin:0 8px 8px;padding:0;align-items:center;justify-content:center;color:var(--texte-3);font-size:12px}.kcol-vide{pointer-events:none}
