/* Volet « Équipe » du tableau de bord (21/10/2026) — style KPI animé, demandé « très moderne ». Surfaces blanches, filets
   fins, texte à l'encre ; vert / rouge seulement pour « juste » / « pas juste » et la santé de l'anneau. Animations :
   compteurs qui défilent, barres et anneau qui se remplissent (variable --v posée par EquipePage._animer), tuiles qui
   montent à l'arrivée, nouveaux constats qui glissent dans le fil, témoin « en veille » qui pulse. Rien ne bouge quand
   l'appareil demande moins de mouvement. Tout passe par les variables du thème (mode sombre compris). */
.eqv{--eqv-vert:#0E8A5F;--eqv-ambre:#E8930C;--eqv-rouge:#C8382A;--eqv-ligne:var(--border-color);max-width:1360px;margin:0 auto;padding:4px 4px 24px;color:var(--text-primary)}
[data-theme="dark"] .eqv{--eqv-vert:#5BD6A9;--eqv-rouge:#F08A80}
.eqv *{box-sizing:border-box}

/* En-tête : témoin en direct + mode */
.eqv-tete{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:2px 0 14px}
.eqv-direct{display:inline-flex;align-items:center;gap:10px;font-size:13.5px;font-weight:600;color:var(--text-secondary)}
.eqv-point{position:relative;width:9px;height:9px;border-radius:50%;background:var(--text-muted);flex-shrink:0}
.eqv-on .eqv-point{background:var(--eqv-vert)}
.eqv-on .eqv-point::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--eqv-vert);animation:eqv-pouls 2s ease-out infinite}
.eqv-ko .eqv-point{background:var(--eqv-ambre)}
.eqv-ko{color:var(--eqv-ambre)}
.eqv-mode{display:inline-flex;align-items:center;gap:7px;padding:5px 12px;border-radius:999px;background:var(--bg-tertiary);font-size:12px;font-weight:700;color:var(--text-secondary)}
.eqv-mode::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--eqv-ambre)}
.eqv-mode-envoi::before{background:var(--eqv-vert)}
.eqv-avert{margin:-6px 0 12px;font-size:12.5px;color:var(--eqv-rouge)}

/* Tuiles KPI */
.eqv-tuiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.eqv-tuile{position:relative;display:flex;flex-direction:column;min-width:0;padding:16px 18px 14px;border:1px solid var(--eqv-ligne);border-radius:16px;background:var(--bg-secondary);overflow:hidden}
.eqv-t-titre{font-size:12.5px;font-weight:500;color:var(--text-secondary)}
.eqv-t-val{display:block;margin-top:8px;font-size:clamp(26px,2.4vw,34px);font-weight:750;line-height:1.05;letter-spacing:-1px;font-variant-numeric:tabular-nums}
.eqv-t-sous{margin-top:6px;font-size:12px;line-height:1.4;color:var(--text-muted)}
.eqv-heures{display:flex;align-items:flex-end;gap:2px;height:40px;margin-top:auto;padding-top:12px}
.eqv-heures i{flex:1 1 0;min-width:2px;max-width:10px;height:max(3px,calc(var(--v) * 1%));border-radius:3px 3px 1px 1px;background:var(--text-secondary);opacity:.45;transition:height .9s cubic-bezier(.2,.7,.2,1)}
.eqv-heures i:last-child{opacity:.9}
.eqv-jauge{height:6px;margin-top:auto;border-radius:6px;background:var(--bg-tertiary);overflow:hidden}
.eqv-tuile>.eqv-jauge{margin-top:auto}
.eqv-tuile .eqv-t-sous+.eqv-jauge{margin-top:14px}
.eqv-jauge i{display:block;height:100%;width:calc(var(--v) * 1%);border-radius:6px;background:var(--text-primary);transition:width 1s cubic-bezier(.2,.7,.2,1)}
.eqv-tuile-anneau{flex-direction:row;align-items:center;justify-content:space-between;gap:10px}
.eqv-tuile-lien{cursor:pointer;transition:border-color .2s,transform .2s}
.eqv-tuile-lien:hover{border-color:var(--text-muted);transform:translateY(-2px)}
.eqv-tuile-lien:focus-visible{outline:2px solid var(--text-primary);outline-offset:2px}
/* Ton d'une tuile : rouge = ce qui manque, ambre = à regarder, vert = objectif tenu */
.eqv-t-rouge .eqv-t-val{color:var(--eqv-rouge)} .eqv-t-rouge .eqv-jauge i{background:var(--eqv-rouge)}
.eqv-t-ambre .eqv-t-val{color:var(--eqv-ambre)} .eqv-t-ambre .eqv-jauge i{background:var(--eqv-ambre)}
.eqv-t-vert .eqv-t-val{color:var(--eqv-vert)} .eqv-t-vert .eqv-jauge i{background:var(--eqv-vert)}
/* Dans Contrôle d'exploitation : la fiche de l'employé choisi, ses tuiles, puis le fil dans la réponse */
.ctrl-page .eqv{padding:0;max-width:none}
.ctrl-page .eqv-resume{margin:0 0 18px}
.eqv-fiche-hote{margin:0 0 16px}.eqv-fiche-hote:empty{display:none}
/* L'employé hébergé dans la page de son domaine (Caisse, Planning, Data et prédictif, Rapports) ; son orbe dans l'onglet ou le menu de cette page */
.eqv-hote-externe{margin:4px 0 22px}
.eqv-hote-externe .eqv-fil-hote{margin-top:4px}
.cx-orbe,.obs-orbe,.pl-orbe{width:24px;height:24px;box-shadow:none;flex-shrink:0}
.pl-vues-ico .pl-orbe{width:20px;height:20px}
.eqv-fiche-hote .eqv-detail{margin:0;padding:14px 18px;border:1px solid var(--eqv-ligne);border-radius:16px;background:var(--bg-secondary)}
.eqv-fiche-hote .eqv-detail-tete{display:flex;flex-wrap:wrap;align-items:center;gap:14px}
.eqv-detail-txt{flex:1 1 220px;min-width:0}
.eqv-fiche-hote .eqv-emp-resume{margin:0;font-size:13px;line-height:1.55;color:var(--text-secondary)}
.eqv-fiche-hote .eqv-emp-resume b{font-size:15px;color:var(--text-primary)}
.eqv-fiche-hote .eqv-emp-resume .eqv-pastille{margin-left:6px;vertical-align:2px}
.eqv-fiche-hote .eqv-actions{margin:0;margin-left:auto}
.eqv-fiche-hote .eqv-note{margin:0;flex:1 1 100%}
.eqv-fiche-hote .eqv-regles{margin-top:12px}
.ctrl-page .eqv-fil-hote{margin-top:4px}
.ctrl-page .cz-fil:has(.eqv-fil-hote),.ctrl-page .cz-fil:has(.eqv-archive){max-width:none}   /* le fil de l'équipe prend toute la largeur (la réponse de Zoé reste à 1 000 px) */
.eqv-tuile-anneau>div{display:flex;flex-direction:column;min-width:0}
.eqv-anneau{width:72px;height:72px;flex-shrink:0;transform:rotate(-90deg)}
.eqv-anneau circle{fill:none;stroke-width:7}
.eqv-anneau-fond{stroke:var(--bg-tertiary)}
.eqv-anneau-arc{stroke:var(--text-muted);stroke-linecap:round;stroke-dasharray:calc(var(--c) * 1px);stroke-dashoffset:calc(var(--c) * 1px * (1 - var(--v) / 100));transition:stroke-dashoffset 1.1s cubic-bezier(.2,.7,.2,1),stroke .3s}
.eqv-bon .eqv-anneau-arc{stroke:var(--eqv-vert)} .eqv-moyen .eqv-anneau-arc{stroke:var(--eqv-ambre)} .eqv-faible .eqv-anneau-arc{stroke:var(--eqv-rouge)}
.eqv-attente .eqv-tuile{opacity:0;transform:translateY(12px)}
.eqv-entree .eqv-tuile{animation:eqv-monte .6s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i,0) * 80ms)}
.eqv-squelette{min-height:132px;gap:10px}
.eqv-squelette span{display:block;height:12px;border-radius:6px;background:linear-gradient(90deg,var(--bg-tertiary) 0%,var(--bg-primary,var(--bg-tertiary)) 50%,var(--bg-tertiary) 100%);background-size:200% 100%;animation:eqv-lueur 1.3s linear infinite}
.eqv-squelette span:nth-child(1){width:45%} .eqv-squelette span:nth-child(2){width:30%;height:28px} .eqv-squelette span:nth-child(3){width:70%}

/* Le fil, seul dans la réponse ; les cartes */
.eqv-carte{background:var(--bg-secondary);border:1px solid var(--eqv-ligne);border-radius:16px;padding:16px 18px}
.eqv-alerte p{margin:6px 0 10px;font-size:13px;color:var(--text-secondary)}
.eqv-h{margin:0 0 10px;font-size:13.5px;font-weight:700;letter-spacing:-.1px}

/* Employé */
.eqv-emp-tete{display:flex;align-items:center;gap:12px}
.eqv-emp-nom{display:flex;flex-direction:column;flex:1;min-width:0}
.eqv-emp-nom b{font-size:16px;font-weight:700}
.eqv-emp-nom small{font-size:12px;color:var(--text-muted)}
/* Avatars des employés (26/10/2026) : des ORBES VIVANTS, d'après le composant React « LiveOrb » fourni par le
   propriétaire (« pour les autres agents je veux ce style ») — une sphère de la couleur de l'employé, éclairée
   uniformément, deux yeux en capsule qui suivent le pointeur, clignent et regardent ailleurs quand la souris se repose,
   dessinée en WebGL par OrbeVivant (js/components/orbe-vivant.js). Ici, la TÊTE EN CSS (`.eqv-orbe-face`) : la même
   sphère immobile, visible sans WebGL et pour les orbes fixes (fil des messages, onglets) ; le canvas la recouvre dès
   qu'il dessine (`.eqv-orbe-gl`). Les couleurs sont posées par le composant (--orbe-corps, --orbe-oeil). Le cadre .eqv-av
   passe l'orbe en gris quand l'employé est arrêté (.eqv-av-off) ; plus aucun point ni anneau à côté de l'orbe. */
.eqv-av{position:relative;display:inline-flex;flex-shrink:0;width:44px;height:44px}
.eqv-av .zoe-avatar{--zoe-a:100%;transition:filter .3s,opacity .3s}
.eqv-av .eqv-orbe{width:100%;height:100%}
.eqv-av-off .zoe-avatar,.eqv-av-off .eqv-orbe{filter:grayscale(1);opacity:.45}
.eqv-orbe{position:relative;display:inline-flex;flex-shrink:0;width:48px;height:48px;border-radius:50%;overflow:hidden;transition:transform .8s cubic-bezier(.34,1.56,.64,1),filter .3s,opacity .3s}
.eqv-orbe-face{position:absolute;inset:2%;border-radius:50%;overflow:hidden;background:var(--orbe-corps,#2C7BEA)}
.eqv-orbe-yeux{position:absolute;inset:0}
.eqv-orbe-yeux i{position:absolute;top:34%;width:13%;height:28%;border-radius:999px;background:var(--orbe-oeil,#F4F4F5)}
.eqv-orbe-yeux i:first-child{left:31%}
.eqv-orbe-yeux i+i{left:56%}
.eqv-orbe-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.eqv-orbe-gl .eqv-orbe-face{visibility:hidden}
.cz-agent:active .eqv-orbe{transform:scale(1.15,1.3)}
/* Les classes .eqv-orbe-<couleur> restent posées (repères des tests et des pages) ; la couleur vient du composant. */
/* Plus de témoin « veille » (point et anneau) sur le cadre de l'orbe : retiré le 26/10/2026 à la demande du propriétaire
   (« supprime le petit cercle blanc qui est à côté des orbes ») ; l'état de veille reste dit dans la ligne de situation. */
.eqv-av-l{width:58px;height:58px}
.eqv-av-fil{width:30px;height:30px}
.eqv-pastille{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--eqv-ligne);border-radius:999px;font-size:11.5px;font-weight:700;color:var(--text-secondary);white-space:nowrap}
.eqv-pastille::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--text-muted)}
.eqv-p-obs::before{background:var(--eqv-ambre)} .eqv-p-on::before{background:var(--eqv-vert)}
.eqv-emp-resume{margin:12px 0 0;font-size:13px;line-height:1.5;color:var(--text-secondary)}
.eqv-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.eqv-btn{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 13px;border:1px solid var(--eqv-ligne);border-radius:10px;background:var(--bg-secondary);color:var(--text-primary);font:inherit;font-size:13px;font-weight:650;cursor:pointer;transition:background .15s,transform .15s}
.eqv-btn:hover{background:var(--bg-tertiary)}
.eqv-btn:active{transform:scale(.97)}
.eqv-btn-plein{background:var(--text-primary);border-color:var(--text-primary);color:var(--bg-secondary)}
.eqv-btn-plein:hover{background:var(--text-primary);opacity:.88}
.eqv-regles{margin-top:12px;border-top:1px solid var(--eqv-ligne);padding-top:10px}
.eqv-regles summary{cursor:pointer;font-size:12.5px;font-weight:650;color:var(--text-secondary)}
.eqv-regles ul{margin:8px 0 0;padding-left:18px;font-size:12.5px;line-height:1.55;color:var(--text-secondary)}

/* Classements */
.eqv-rang{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 10px;margin:9px 0;font-size:13px}
.eqv-rang b{font-variant-numeric:tabular-nums}
.eqv-rang-av{grid-template-columns:auto 1fr auto}
.eqv-rang-b{grid-column:1 / -1;height:5px;border-radius:5px;background:var(--bg-tertiary);overflow:hidden}
.eqv-rang-b i{display:block;height:100%;width:calc(var(--v) * 1%);border-radius:5px;background:var(--text-secondary);transition:width 1s cubic-bezier(.2,.7,.2,1)}
.eqv-rang-av .eqv-rang-b{grid-column:2 / -1}
.eqv-mini-av{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--bg-tertiary);color:var(--text-secondary);font-size:12px;font-weight:700;flex-shrink:0}
.eqv-auteur{background:var(--text-primary);color:var(--bg-secondary)}

.eqv-note{margin:10px 0 0;font-size:12.5px;color:var(--text-muted)}
.eqv-puce{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:3px 9px;border:0;border-radius:999px;background:var(--text-primary);color:var(--bg-secondary);font:inherit;font-size:11.5px;font-weight:650;cursor:pointer;vertical-align:1px}
.eqv-puce iconify-icon{font-size:13px}

/* Fil du jour */
.eqv-fil-tete{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.eqv-fil-tete .eqv-h{margin:0}
.eqv-segments{display:inline-flex;gap:2px;padding:3px;border-radius:11px;background:var(--bg-tertiary)}
.eqv-seg{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--text-secondary);font:inherit;font-size:12.5px;font-weight:650;padding:6px 11px;border-radius:8px;cursor:pointer;transition:background .2s,color .2s}
.eqv-seg span{font-variant-numeric:tabular-nums;color:var(--text-muted);font-weight:600}
.eqv-seg.actif{background:var(--bg-secondary);color:var(--text-primary);box-shadow:0 1px 2px rgba(0,0,0,.08)}
/* Le fil (23/10/2026, « ce type de section doit être beaucoup plus moderne ») : une ligne de temps à gauche (l'heure, l'avatar
   de l'employé posé sur le rail), une carte par message sans filet lourd, l'étiquette du constat colorée selon la gravité
   (rouge = manquement, ambre = pour le bureau, neutre = information), le statut en pastille, les pouces discrets. */
.eqv-fil{position:relative;display:flex;flex-direction:column;gap:10px;padding:2px 0}
.eqv-fil::before{content:"";position:absolute;left:67px;top:20px;bottom:20px;width:2px;border-radius:2px;background:var(--eqv-ligne)}
.eqv-fil:has(.eqv-vide)::before{display:none}
.eqv-l{position:relative;display:grid;grid-template-columns:82px minmax(0,1fr);gap:0 12px;align-items:start}
.eqv-l-rail{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding-top:13px}
.eqv-l-h{font-size:12px;font-weight:650;color:var(--text-muted);font-variant-numeric:tabular-nums;letter-spacing:.01em}
.eqv-l-rail .eqv-av{width:30px;height:30px;border-radius:50%;background:var(--bg-primary);box-shadow:0 0 0 3px var(--bg-primary)}
.eqv-l-rail .eqv-orbe{box-shadow:none}
.eqv-l-carte{min-width:0;padding:14px 18px 12px;border-radius:18px;background:var(--bg-secondary);border:1px solid color-mix(in srgb,var(--eqv-ligne) 55%,transparent);box-shadow:0 1px 2px rgba(0,0,0,.03),0 10px 24px -18px rgba(0,0,0,.25);transition:transform .2s,box-shadow .2s,border-color .2s}
.eqv-l:hover .eqv-l-carte{transform:translateY(-1px);box-shadow:0 2px 4px rgba(0,0,0,.04),0 14px 30px -16px rgba(0,0,0,.3);border-color:var(--eqv-ligne)}
.eqv-l-retenu .eqv-l-carte{opacity:.6}
.eqv-l-tete{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px}
.eqv-l-qui{display:flex;align-items:center;gap:10px;min-width:0}
.eqv-l-ini{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:34px;height:34px;border-radius:50%;background:var(--bg-tertiary);color:var(--text-secondary);font-size:12px;font-weight:700;letter-spacing:.02em}
.eqv-l-id{display:flex;flex-direction:column;min-width:0;line-height:1.3}
.eqv-l-nom{font-size:14.5px;font-weight:700;color:var(--text-primary);overflow-wrap:anywhere}
.eqv-l-id small{font-size:11.5px;color:var(--text-muted)}
.eqv-tag{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:11.5px;font-weight:650;color:var(--text-secondary);background:var(--bg-tertiary);white-space:nowrap}
.eqv-tag i{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.75}
.eqv-tag-rouge{color:var(--eqv-rouge);background:color-mix(in srgb,var(--eqv-rouge) 11%,transparent)}
.eqv-tag-ambre{color:var(--eqv-ambre);background:color-mix(in srgb,var(--eqv-ambre) 13%,transparent)}
.eqv-msg{margin:10px 0 0;font-size:13.5px;line-height:1.55;color:var(--text-secondary);max-width:80ch}
.eqv-msg b{color:var(--text-primary);font-weight:650}
.eqv-msg-long{white-space:pre-line;margin-top:12px;padding:12px 14px;border-radius:12px;background:var(--bg-tertiary)}
.eqv-l-pied{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:10px;padding-top:10px;border-top:1px solid color-mix(in srgb,var(--eqv-ligne) 60%,transparent)}
.eqv-l-statut{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--text-muted)}
.eqv-l-statut iconify-icon{font-size:15px}
.eqv-s-vert{color:var(--eqv-vert)}.eqv-s-ambre{color:var(--eqv-ambre)}.eqv-s-rouge{color:var(--eqv-rouge)}
.eqv-avis-txt{display:inline-flex;align-items:center;gap:5px;margin:0;font-size:12px;color:var(--text-muted)}
/* Alertes du bureau (23/10/2026) : qui s'en occupe, « Je m'en occupe », remontée au propriétaire */
.eqv-prendre{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border:1px solid var(--text-primary);border-radius:999px;background:var(--text-primary);color:var(--bg-secondary);font:inherit;font-size:12px;font-weight:650;cursor:pointer;transition:transform .15s,opacity .2s}
.eqv-prendre:hover{opacity:.88}.eqv-prendre:active{transform:scale(.96)}.eqv-prendre iconify-icon{font-size:15px}
.eqv-pris{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;background:color-mix(in srgb,var(--eqv-vert) 12%,transparent);color:var(--eqv-vert);font-size:12px;font-weight:650}
.eqv-pris iconify-icon{font-size:14px}
.eqv-remonte{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--eqv-ambre)}
.eqv-lien{border:0;background:none;padding:0;color:var(--text-secondary);font:inherit;font-size:12px;text-decoration:underline;cursor:pointer}
/* Fenêtre « Alertes du bureau » */
.eqa{display:flex;flex-direction:column;gap:18px}
.eqa-bloc h4{margin:0 0 8px;font-size:14px}
.eqa-etat{display:flex;align-items:center;gap:6px;margin:0 0 10px;font-size:13px;color:var(--text-secondary)}.eqa-etat iconify-icon{color:var(--eqv-vert,#0E8A5F);font-size:16px}
.eqa-note{margin:8px 0 0;font-size:12px;line-height:1.5;color:var(--text-muted)}
.eqa-compte{padding:12px 14px;border:1px solid var(--border-color);border-radius:14px;margin-top:10px;background:var(--bg-secondary)}
.eqa-tete{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}.eqa-tete small{color:var(--text-muted);font-size:12px}
.eqa-actif{display:inline-flex;align-items:center;gap:8px;font-size:14px}
.eqa-app{margin-left:auto;font-size:12px;color:var(--text-muted)}.eqa-app-ok{color:var(--eqv-vert,#0E8A5F);font-weight:600}
.eqa-postes{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px}
.eqa-poste{display:inline-flex;align-items:center;gap:6px;font-size:13px}
.eqa-orbe{width:18px;height:18px;box-shadow:none}
.eqa-reglages{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin-top:10px;font-size:12.5px;color:var(--text-secondary)}
.eqa-reglages label{display:inline-flex;align-items:center;gap:6px}
.eqa-heure{width:auto;min-height:32px;padding:2px 8px}.eqa-wa input{width:190px;min-height:32px}
.eqv-avis-txt iconify-icon{font-size:14px}.eqv-avis-juste iconify-icon{color:var(--eqv-vert)}.eqv-avis-faux iconify-icon{color:var(--eqv-rouge)}
.eqv-avis{display:flex;gap:4px;margin-left:auto;opacity:.6;transition:opacity .2s}
.eqv-l:hover .eqv-avis,.eqv-avis:focus-within,.eqv-avis:has(.actif){opacity:1}
@media(hover:none){.eqv-avis{opacity:1}}
.eqv-avis-b{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:0;border-radius:50%;background:transparent;color:var(--text-secondary);font-size:17px;cursor:pointer;transition:transform .15s,background .2s,color .2s}
.eqv-avis-b:hover{background:var(--bg-tertiary);transform:scale(1.08)}
.eqv-avis-b:active{transform:scale(.92)}
.eqv-oui.actif{background:var(--eqv-vert);color:#fff}
.eqv-non.actif{background:var(--eqv-rouge);color:#fff}
.eqv-arrive{animation:eqv-monte .5s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(250ms + var(--i,0) * 55ms)}
.eqv-neuf{animation:eqv-glisse .7s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i,0) * 70ms)}
.eqv-neuf .eqv-l-carte{animation:eqv-eclat 2.4s ease-out both;animation-delay:calc(var(--i,0) * 70ms + .2s)}
.eqv-vide{display:flex;flex-direction:column;align-items:center;gap:12px;padding:30px 16px;text-align:center;color:var(--text-muted);font-size:13.5px;border:1px dashed var(--eqv-ligne);border-radius:14px}
.eqv-radar{position:relative;width:14px;height:14px;border-radius:50%;background:var(--eqv-vert)}
.eqv-radar::before,.eqv-radar::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--eqv-vert);animation:eqv-radar 2.4s ease-out infinite}
.eqv-radar::after{animation-delay:1.2s}

/* Schéma « l'équipe → Zoé → les bilans » (26/10/2026), au-dessus des tuiles de Zoé (EquipePage._schema). Dessiné en
   unités du plan (--u = 1/800 ou 1/340 de sa largeur) : traits, orbes, textes et feuilles grandissent ensemble, comme
   un dessin. Encre et filets du thème ; la couleur ne vient que des orbes (et du point qui file, de la couleur de
   l'employé), de la jauge du bilan (vert / ambre / rouge, comme la tuile du Rapporteur) et des manquements en rouge. */
.eqs{margin:0 0 14px;padding:14px 18px 12px;border:1px solid var(--eqv-ligne);border-radius:16px;background:var(--bg-secondary)}
.eqs-tete{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px;margin:0 0 2px}
.eqs-tete .eqv-h{margin:0}
.eqs-passage{font-size:12px;color:var(--text-muted)}
.eqs-choix{margin-left:auto;font-size:12px;color:var(--text-muted)}
.eqs-plan{position:relative;width:100%;margin:0 auto;container-type:inline-size}
.eqs-large{max-width:860px;aspect-ratio:800/280;--u:calc(100cqw / 800)}
.eqs-traits{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.eqs-t{fill:none;stroke:var(--text-muted);stroke-width:1.2;opacity:.55}
.eqs-plein{stroke:var(--text-secondary);opacity:.85}
.eqs-tiret,.eqs-t-off{stroke-dasharray:2 4}
.eqs-t-off{opacity:.25}
.eqs-flux{fill:none;stroke:var(--text-primary);stroke-width:1.8;stroke-linecap:round;stroke-dasharray:5 55;opacity:.9;animation:eqs-flux 1.8s linear infinite}
.eqs-noeud{fill:var(--text-secondary)}
.eqs-onde{fill:none;stroke:var(--text-secondary);stroke-width:1;transform-box:fill-box;transform-origin:center;animation:eqs-onde 2.4s ease-out infinite}
/* Un employé : un point d'ancrage sans taille, l'orbe centré dessus, son nom du côté libre */
.eqs-emp{position:absolute;z-index:1;width:0;height:0;margin:0;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer}
.eqs-emp:hover,.eqs-emp:focus-visible{z-index:4;outline:none}
.eqs-emp .eqv-av{position:absolute;left:0;top:0;width:calc(38 * var(--u));height:calc(38 * var(--u));transform:translate(-50%,-50%);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.eqs-emp:hover .eqv-av,.eqs-emp:focus-visible .eqv-av{transform:translate(-50%,-50%) scale(1.12)}
.eqs-emp:focus-visible .eqv-av{outline:2px solid var(--text-primary);outline-offset:3px;border-radius:50%}
.eqs-txt{position:absolute;display:flex;flex-direction:column;gap:1px;line-height:1.2;white-space:nowrap;text-align:left;pointer-events:none}
.eqs-txt b{font-size:calc(12 * var(--u));font-weight:700;color:var(--text-primary)}
.eqs-txt small{font-size:calc(10.5 * var(--u));color:var(--text-muted);font-variant-numeric:tabular-nums}
.eqs-off .eqs-txt b{color:var(--text-muted)}
.eqs-l-haut .eqs-txt{left:0;bottom:calc(24 * var(--u));transform:translateX(-50%);align-items:center;text-align:center}
.eqs-l-bas .eqs-txt{left:0;top:calc(24 * var(--u));transform:translateX(-50%);align-items:center;text-align:center}
.eqs-l-droite .eqs-txt{left:calc(25 * var(--u));top:0;transform:translateY(-50%)}
.eqs-l-gauche .eqs-txt{right:calc(25 * var(--u));top:0;width:max-content;max-width:calc(80 * var(--u));transform:translateY(-50%);align-items:flex-end;text-align:right;white-space:normal}
.eqs-bulle{position:absolute;left:0;bottom:calc(27 * var(--u));width:max-content;max-width:calc(230 * var(--u));padding:6px 9px;border-radius:8px;background:var(--text-primary);color:var(--bg-secondary);font-size:calc(11 * var(--u));font-weight:500;line-height:1.35;text-align:center;white-space:normal;opacity:0;pointer-events:none;transform:translate(-50%,4px);transition:opacity .2s,transform .2s}
.eqs-l-haut .eqs-bulle{bottom:auto;top:calc(27 * var(--u));transform:translate(-50%,-4px)}
.eqs-emp:hover .eqs-bulle,.eqs-emp:focus-visible .eqs-bulle{opacity:1;transform:translate(-50%,0)}
/* Zoé, la cheffe : sa tête de chat, le compte des messages de la journée ; un halo respire tant que l'équipe veille */
.eqs-zoe{position:absolute;z-index:2;display:flex;align-items:center;gap:calc(10 * var(--u));width:calc(200 * var(--u));height:calc(58 * var(--u));padding:0 calc(14 * var(--u)) 0 calc(10 * var(--u));transform:translate(-50%,-50%);border:1px solid var(--eqv-ligne);border-radius:calc(14 * var(--u));background:var(--bg-secondary);color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;box-shadow:0 10px 24px -16px rgba(0,0,0,.35);transition:border-color .2s}
.eqs-zoe:hover{border-color:var(--text-muted)}
.eqs-zoe:focus-visible{outline:2px solid var(--text-primary);outline-offset:2px}
.eqs-zoe::before{content:"";position:absolute;inset:calc(-5 * var(--u));border:1px solid var(--eqv-ligne);border-radius:calc(18 * var(--u));pointer-events:none}
.eqs-zoe-on::before{animation:eqs-halo 2.4s ease-in-out infinite}
.eqs-zoe .eqv-av{width:calc(38 * var(--u));height:calc(38 * var(--u))}
.eqs-zoe-txt{display:flex;flex-direction:column;min-width:0;line-height:1.2}
.eqs-zoe-txt b{font-size:calc(14 * var(--u));font-weight:750}
.eqs-zoe-txt small{font-size:calc(10.5 * var(--u));color:var(--text-muted)}
.eqs-zoe-n{display:flex;flex-direction:column;align-items:flex-end;margin-left:auto;line-height:1.05}
.eqs-zoe-n b{font-size:calc(22 * var(--u));font-weight:750;letter-spacing:-.5px;font-variant-numeric:tabular-nums}
.eqs-zoe-n small{font-size:calc(9.5 * var(--u));color:var(--text-muted)}
/* La pile des bilans : le bilan de la veille devant, les plus anciens derrière */
.eqs-pile{position:absolute;width:0;height:0}
.eqs-feuille{position:absolute;left:0;top:0;width:calc(150 * var(--u));height:calc(112 * var(--u));border:1px solid var(--eqv-ligne);border-radius:calc(6 * var(--u));background:var(--bg-secondary);transform:translate(-50%,-50%)}
.eqs-f1{opacity:.8;transform:translate(calc(-50% + 10 * var(--u)),calc(-50% - 10 * var(--u)))}
.eqs-f2{opacity:.55;transform:translate(calc(-50% + 20 * var(--u)),calc(-50% - 20 * var(--u)))}
.eqs-f0{display:flex;flex-direction:column;align-items:stretch;padding:calc(10 * var(--u)) calc(12 * var(--u)) calc(9 * var(--u));color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;box-shadow:0 10px 22px -14px rgba(0,0,0,.3);transition:border-color .2s}
.eqs-f0:hover{border-color:var(--text-muted)}
.eqs-f0:focus-visible{outline:2px solid var(--text-primary);outline-offset:2px}
.eqs-f-neuve{animation:eqs-feuille .7s cubic-bezier(.2,.8,.2,1) both}
.eqs-f-tete{font-size:calc(9 * var(--u));font-weight:600;color:var(--text-muted);letter-spacing:.02em}
.eqs-f-val{margin-top:calc(4 * var(--u));font-size:calc(17 * var(--u));font-weight:750;letter-spacing:-.4px;line-height:1.1;font-variant-numeric:tabular-nums}
.eqs-f-vide{color:var(--text-muted)}
.eqs-f-jauge{display:block;height:calc(5 * var(--u));margin-top:calc(6 * var(--u));border-radius:9px;background:color-mix(in srgb,var(--text-muted) 20%,transparent);overflow:hidden}
.eqs-f-jauge i{display:block;width:calc(var(--v) * 1%);height:100%;border-radius:9px;background:var(--text-primary);transition:width 1s cubic-bezier(.2,.7,.2,1)}
.eqs-ton-vert i{background:var(--eqv-vert)} .eqs-ton-ambre i{background:var(--eqv-ambre)} .eqs-ton-rouge i{background:var(--eqv-rouge)}
.eqs-f-sous{margin-top:calc(4 * var(--u));font-size:calc(9.5 * var(--u));line-height:1.3;color:var(--text-secondary)}
.eqs-f-chiffres{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:calc(4 * var(--u));margin-top:auto;padding-top:calc(6 * var(--u));border-top:1px solid var(--eqv-ligne)}
.eqs-f-chiffres span{display:flex;flex-direction:column;font-size:calc(8.5 * var(--u));line-height:1.25;color:var(--text-muted)}
.eqs-f-chiffres b{font-size:calc(12 * var(--u));color:var(--text-primary);font-variant-numeric:tabular-nums}
.eqs-f-chiffres .eqs-rouge b{color:var(--eqv-rouge)}
.eqs-archives{position:absolute;display:inline-flex;align-items:center;gap:4px;padding:2px 4px;border:0;background:none;color:var(--text-secondary);font:inherit;font-size:calc(11 * var(--u));font-weight:600;white-space:nowrap;cursor:pointer;transform:translateX(-50%)}
.eqs-archives:hover{color:var(--text-primary)}
[data-theme="dark"] .eqs-feuille,[data-theme="dark"] .eqs-zoe{background:var(--bg-tertiary)}
/* Légende */
.eqs-legende{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 16px;margin-top:6px;font-size:11.5px;color:var(--text-muted)}
.eqs-legende span{display:inline-flex;align-items:center;gap:6px}
.eqs-legende i{display:inline-block;width:18px;height:0;border-top:1.5px solid var(--text-secondary)}
.eqs-legende .eqs-leg-tiret{border-top:1.5px dashed var(--text-muted)}
.eqs-legende .eqs-leg-flux{height:1.5px;border:0;background:linear-gradient(var(--text-primary),var(--text-primary)) no-repeat -6px 0/6px 100%,color-mix(in srgb,var(--text-secondary) 35%,transparent);animation:eqs-leg 1.8s linear infinite}
.eqs-legende .eqs-leg-point{width:7px;height:7px;border:0;border-radius:50%;background:var(--text-secondary)}
@keyframes eqs-flux{from{stroke-dashoffset:60}to{stroke-dashoffset:0}}
@keyframes eqs-onde{0%{transform:scale(1);opacity:.7}100%{transform:scale(3.2);opacity:0}}
@keyframes eqs-halo{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(1.035)}}
@keyframes eqs-feuille{from{opacity:0;transform:translate(calc(-50% + 14 * var(--u)),calc(-50% - 10 * var(--u))) rotate(4deg)}to{opacity:1;transform:translate(-50%,-50%)}}
@keyframes eqs-leg{to{background-position:18px 0,0 0}}
/* Carte étroite (téléphone) : la liste simple, sans traits — une ligne par employé, le bilan de la veille dessous. */
.eqs-liste .eqs-tete{flex-wrap:nowrap;align-items:flex-start;margin:0}
.eqs-tete-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.eqs-total{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0;margin-left:auto;padding:0;border:0;background:none;color:var(--text-primary);font:inherit;line-height:1.05;cursor:pointer}
.eqs-total b{font-size:22px;font-weight:750;letter-spacing:-.5px;font-variant-numeric:tabular-nums}
.eqs-total small{font-size:11px;color:var(--text-muted)}
.eqs-li{list-style:none;margin:10px 0 12px;padding:0}
.eqs-ligne{display:flex;align-items:center;gap:12px;width:100%;padding:9px 0;border:0;border-top:1px solid var(--eqv-ligne);background:none;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}
.eqs-li li:last-child .eqs-ligne{border-bottom:1px solid var(--eqv-ligne)}
.eqs-ligne:focus-visible{outline:2px solid var(--text-primary);outline-offset:2px;border-radius:8px}
.eqs-ligne .eqv-av{width:34px;height:34px;flex-shrink:0}
.eqs-ligne-txt{display:flex;flex-direction:column;min-width:0;line-height:1.3}
.eqs-ligne-txt b{font-size:14px;font-weight:700}
.eqs-ligne-txt small{font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums}
.eqs-off .eqs-ligne-txt b{color:var(--text-muted)}
.eqs-attention{color:#A9620A;font-weight:600}
[data-theme="dark"] .eqs-attention{color:#F2B566}
.eqs-ligne-fin{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:auto}
.eqs-ligne-fin b{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}
.eqs-ligne-fin iconify-icon{font-size:14px;color:var(--text-muted)}
.eqs-bilan{--u:1.3px;display:flex;flex-direction:column;align-items:stretch;width:100%;padding:12px 14px 11px;border:1px solid var(--eqv-ligne);border-radius:12px;background:var(--bg-secondary);color:var(--text-primary);font:inherit;text-align:left;cursor:pointer}
.eqs-bilan:focus-visible{outline:2px solid var(--text-primary);outline-offset:2px}
.eqs-bilan .eqs-f-chiffres{margin-top:8px}
[data-theme="dark"] .eqs-bilan{background:var(--bg-tertiary)}
.eqs-archives-l{display:inline-flex;align-items:center;gap:4px;margin:8px 0 0;padding:2px 0;border:0;background:none;color:var(--text-secondary);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
@media (max-width:560px){ .eqs{padding:12px 12px 10px} }

@keyframes eqv-pouls{0%{transform:scale(1);opacity:.6}100%{transform:scale(3);opacity:0}}
@keyframes eqv-radar{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.9);opacity:0}}
@keyframes eqv-halo{0%{transform:scale(1);opacity:.8}100%{transform:scale(1.28);opacity:0}}
@keyframes eqv-monte{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes eqv-glisse{from{opacity:0;transform:translateX(-18px)}to{opacity:1;transform:translateX(0)}}
@keyframes eqv-eclat{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--eqv-vert) 45%,transparent)}100%{box-shadow:0 0 0 10px transparent}}
@keyframes eqv-lueur{from{background-position:200% 0}to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){
  .eqv *,.eqv *::before,.eqv *::after,.eqv-orbe *{animation:none!important;transition:none!important}
  .eqv-attente .eqv-tuile{opacity:1;transform:none}
}

/* Une colonne (tablette, téléphone) : l'employé et ses boutons d'abord, puis le fil, puis les classements. */
@media (max-width:1100px){ .eqv-tuiles{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:560px){
  .eqv-tuiles{gap:9px} .eqv-tuile{padding:13px 14px 12px} .eqv-t-val{font-size:26px}
  .eqv-anneau{width:56px;height:56px}
  .eqv-fil::before{display:none}
  .eqv-l{grid-template-columns:1fr;gap:4px}
  .eqv-l-rail{justify-content:flex-start;padding:0 0 0 6px}
  .eqv-l-rail .eqv-av{width:24px;height:24px;box-shadow:none}
  .eqv-l-carte{padding:12px 14px 10px;border-radius:16px}
  .eqv-l-tete{flex-direction:column;align-items:flex-start}
  .eqv-fiche-hote .eqv-detail{padding:12px 14px}
  .eqv-fiche-hote .eqv-actions{margin-left:0;flex:1 1 100%}
  .eqv-av-l{width:48px;height:48px}
}

/* Bilans archivés (22/10/2026) : choisir une journée, relire le bilan complet, exporter */
.eqv-arch-tete{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:14px}
.eqv-arch-titre{margin:0;font-size:19px;font-weight:700;letter-spacing:-.3px}
.eqv-arch-sous{margin:4px 0 0;font-size:12.5px;color:var(--text-muted)}
.eqv-arch-nav{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.eqv-arch-nav .eqv-btn[disabled]{opacity:.4;cursor:default}
.eqv-arch-choix{width:auto;min-width:170px;min-height:36px}
.eqv-archive .eqv-tuiles{margin-bottom:12px}
.eqv-archive .eqv-tuile{min-height:0}
.eqv-arch-texte{margin:0 0 14px;padding:12px 14px;border:1px solid var(--eqv-ligne);border-radius:12px;background:var(--bg-secondary)}
.eqv-arch-table-zone{overflow-x:auto;border:1px solid var(--eqv-ligne);border-radius:14px;background:var(--bg-secondary)}
.eqv-arch-table{width:100%;border-collapse:collapse;font-size:12.5px;font-variant-numeric:tabular-nums}
.eqv-arch-table th{position:sticky;top:0;padding:9px 10px;text-align:left;font-size:11.5px;font-weight:650;color:var(--text-muted);border-bottom:1px solid var(--eqv-ligne);white-space:nowrap;background:var(--bg-secondary)}
.eqv-arch-table td{padding:9px 10px;border-bottom:1px solid var(--eqv-ligne);vertical-align:top;color:var(--text-secondary)}
.eqv-arch-table tr:last-child td{border-bottom:0}
.eqv-arch-table td.nom{font-weight:650;color:var(--text-primary);white-space:nowrap}
.eqv-arch-table .n{text-align:right;white-space:nowrap}
.eqv-arch-table td{white-space:nowrap}
.eqv-arch-table td.manq{white-space:normal;min-width:160px}
.eqv-arch-table td small{display:block;margin-top:2px;font-size:11.5px;font-weight:500;color:var(--text-muted)}
.eqv-arch-table td small.fin-sortie{color:var(--eqv-rouge)}
.eqv-arch-ligne{margin:10px 0 0;font-size:12.5px;color:var(--text-secondary);line-height:1.5}
.eqv-arch-ligne b{color:var(--text-primary)}
.eqv-archive .eqv-note{margin-top:10px}
@media (max-width:560px){ .eqv-arch-nav{width:100%} .eqv-arch-choix{flex:1;min-width:0} }

/* Fenêtre « Régler » */
.eq-reglages fieldset{border:1px solid var(--border-color);border-radius:10px;padding:10px 12px;margin:12px 0 0}
.eq-reglages legend{font-size:12.5px;font-weight:650;padding:0 6px}
.eq-champ{display:grid;grid-template-columns:1fr 90px 64px;align-items:center;gap:8px;margin:6px 0;font-size:13px}
.eq-champ em{font-style:normal;color:var(--text-muted);font-size:12px}
.eq-champ-nom{grid-template-columns:1fr 1.4fr}
.eq-coche{display:flex;align-items:center;gap:8px;margin:6px 0;font-size:13px}
@media (max-width:560px){ .eq-champ{grid-template-columns:1fr 80px 52px} }

/* Messages sur l'argent à vérifier avant envoi (27/10/2026) : en tête du fil, toutes journées ; envoyés ou écartés par
   un compte du bureau (fleet_equipe_verifier). */
.eqv-verif{margin:0 0 18px;padding:14px 14px 4px;border:1px solid color-mix(in srgb,var(--eqv-ambre,#E8930C) 45%,transparent);border-radius:14px;background:color-mix(in srgb,var(--eqv-ambre,#E8930C) 6%,var(--bg-secondary))}
.eqv-verif .eqv-h{display:flex;align-items:center;gap:8px;margin:0 0 4px}
.eqv-verif-n{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:var(--eqv-ambre,#E8930C);color:#fff;font-size:12px;font-weight:700}
.eqv-verif-aide{margin:0 0 10px;color:var(--text-secondary);font-size:13px;line-height:1.45}
.eqv-verif-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:10px 0 2px}
.eqv-verif-actions .eqv-btn{min-height:40px}

/* ===== Contrôle d'exploitation en tuiles (27/10/2026, propriétaire : « appliquons notre nouveau style ici aussi ») —
   Zoé choisie : une grille (EquipePage._tuiles) — le schéma de l'équipe en grande tuile, « Pour les chauffeurs » en tuile
   pleine citron à côté, puis les manquements heure par heure (les plus concernés), ce qui attend le bureau (l'urgent en
   rouge) et l'anneau des avis ; un employé choisi : ses quatre tuiles, la première pleine citron quand elle n'a rien
   d'alarmant. Jetons --czb-* de css/controle-exploitation.css ; limité à la page (.ctrl-page) : les employés hébergés
   dans la Caisse, le Planning ou Data et prédictif gardent leur habillage. Les orbes ne sont pas touchés. ===== */
.ctrl-page .eqv-resume{container-type:inline-size;margin:0 0 12px}
.ctrl-page .eqv-tuiles{gap:12px;margin:0}
.ctrl-page .eqv-tuile{padding:20px;border:1px solid var(--czb-filet);border-radius:26px;background:var(--czb-carte);transition:border-color .2s ease}
.ctrl-page .eqv-tuile-lien:hover{transform:none;border-color:color-mix(in srgb,var(--text-primary) 22%,transparent)}
.ctrl-page .eqv-tuile-lien:focus-visible{outline:2px solid var(--czb-acc-t);outline-offset:2px}
.ctrl-page .eqv-th{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:24px}
.ctrl-page .eqv-t-titre{font-size:13px;font-weight:500;color:var(--czb-gris)}
.ctrl-page .eqv-t-note{font-size:11.5px;color:var(--czb-gris)}
.ctrl-page .eqv-t-val{margin-top:10px;font-size:42px;font-weight:600;line-height:1;letter-spacing:-.045em;color:var(--text-primary)}
.ctrl-page .eqv-t-val small{font-size:15px;font-weight:600;letter-spacing:0;margin-left:7px;color:var(--czb-gris)}
.ctrl-page .eqv-t-sous{margin-top:7px;font-size:12px;line-height:1.4;color:var(--czb-gris)}
.ctrl-page .eqv-jauge{height:6px;border-radius:99px;background:var(--czb-doux)}
.ctrl-page .eqv-tuile .eqv-t-sous+.eqv-jauge{margin-top:auto}
.ctrl-page .eqv-tuile>.eqv-t-sous{margin-bottom:16px}
.ctrl-page .eqv-jauge i{border-radius:99px;background:var(--text-primary)}
.ctrl-page .eqv-t-rouge .eqv-t-val{color:var(--czb-neg-t)} .ctrl-page .eqv-t-rouge .eqv-jauge i{background:var(--czb-neg)}
.ctrl-page .eqv-t-ambre .eqv-t-val{color:var(--czb-proche-t)} .ctrl-page .eqv-t-ambre .eqv-jauge i{background:var(--czb-proche)}
.ctrl-page .eqv-t-vert .eqv-t-val{color:var(--czb-acc-t)} .ctrl-page .eqv-t-vert .eqv-jauge i{background:var(--czb-acc)}
.ctrl-page .eqv-pill{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 9px;border-radius:99px;font-size:11px;font-weight:600;white-space:nowrap;background:var(--czb-doux);color:var(--czb-gris)}
.ctrl-page .eqv-pill-urgent{background:var(--czb-neg);color:#fff;font-weight:700;letter-spacing:.06em}
/* Tuile pleine citron (comme « En service » de la Flotte en direct). */
.ctrl-page .eqv-tuile.eqv-plein{background:var(--czb-acc);border-color:transparent;color:var(--czb-sur)}
.ctrl-page .eqv-plein :is(.eqv-t-titre,.eqv-t-val,.eqv-t-val small,.eqv-t-sous,.eqv-boite-h,.eqv-dl dt,.eqv-dl dd){color:var(--czb-sur)}
.ctrl-page .eqv-plein .eqv-t-titre{opacity:.75;font-weight:600}
.ctrl-page .eqv-plein .eqv-t-sous{opacity:.72;font-weight:500}
.ctrl-page .eqv-plein .eqv-jauge{background:oklch(0.24 0.06 135 / .14)} .ctrl-page .eqv-plein .eqv-jauge i{background:var(--czb-sur)}
.ctrl-page .eqv-plein.eqv-tuile-lien:hover{border-color:transparent;box-shadow:0 0 0 2px var(--czb-sur)}
.ctrl-page .eqv-pill-sur{background:oklch(0.24 0.06 135 / .12);color:var(--czb-sur)} .ctrl-page .eqv-pill-sur i{width:6px;height:6px;border-radius:50%;background:var(--czb-sur)}
.ctrl-page .eqv-boite{margin-top:16px;padding:11px 12px;border-radius:16px;background:oklch(0.24 0.06 135 / .1)}
.ctrl-page .eqv-boite-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:12px;font-weight:600}
.ctrl-page .eqv-boite-h span{opacity:.72;white-space:nowrap}
.ctrl-page .eqv-rail{margin-top:8px;height:6px;border-radius:99px;overflow:hidden;background:oklch(0.24 0.06 135 / .14)}
.ctrl-page .eqv-rail i{display:block;height:100%;width:calc(var(--v) * 1%);border-radius:99px;background:var(--czb-sur);transition:width 1s cubic-bezier(.2,.7,.2,1)}
.ctrl-page .eqv-dl{margin:12px 0 0;display:flex;flex-direction:column;gap:6px;font-size:12.5px}
.ctrl-page .eqv-dl>div{display:flex;justify-content:space-between;gap:10px} .ctrl-page .eqv-dl dt{opacity:.72} .ctrl-page .eqv-dl dd{margin:0;font-weight:600}
.ctrl-page .eqv-plein-btn{display:flex;align-items:center;justify-content:center;min-height:46px;margin-top:auto;border-radius:99px;background:var(--czb-sur);color:var(--czb-acc);font-size:13.5px;font-weight:600}
.ctrl-page .eqv-tb-chauffeurs .eqv-dl{margin-bottom:18px}
/* La grille de Zoé : le schéma (3 colonnes) et la tuile citron, puis manquements (2 colonnes), bureau, avis. */
.ctrl-page .eqv-bento{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-areas:"chauf manq manq bureau" "justes justes . ."}
.ctrl-page .eqv-bento-schema{grid-template-areas:"schema schema schema chauf" "manq manq bureau justes"}
.ctrl-page .eqv-bento>.eqs{grid-area:schema;margin:0}
.ctrl-page .eqv-tb-chauffeurs{grid-area:chauf} .ctrl-page .eqv-tb-manq{grid-area:manq} .ctrl-page .eqv-tb-bureau{grid-area:bureau} .ctrl-page .eqv-tb-justes{grid-area:justes}
.ctrl-page .eqv-tb-chauffeurs .eqv-t-val{font-size:54px;line-height:.95;letter-spacing:-.05em}
/* Manquements : le nombre et les plus concernés, puis une barre par heure de la journée (05h → maintenant). */
.ctrl-page .eqv-manq-h{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:12px 32px}
.ctrl-page .eqv-manq-h .eqv-liste{justify-self:end;width:100%;max-width:280px;margin:12px 0 0;padding:0;border:0}
.ctrl-page .eqv-heures{gap:4px;height:auto;min-height:104px;flex:1 1 104px;margin-top:0;padding-top:22px}
.ctrl-page .eqv-heures i{max-width:none;min-width:3px;border-radius:5px 5px 2px 2px;background:var(--czb-neg);opacity:.55}
.ctrl-page .eqv-heures i:last-child{opacity:1}
.ctrl-page .eqv-heures i.eqv-h0{background:var(--czb-doux);opacity:1}
.ctrl-page .eqv-heures-l{display:flex;justify-content:space-between;gap:10px;margin-top:8px;font-size:11px;color:var(--czb-gris)}
.ctrl-page .eqv-heures-l span:last-child{color:var(--text-primary);font-weight:500}
/* Listes (les plus concernés, ce qui attend le bureau). */
.ctrl-page .eqv-liste{list-style:none;margin:14px 0 0;padding:12px 0 0;border-top:1px solid var(--czb-filet);display:flex;flex-direction:column;gap:8px}
.ctrl-page .eqv-liste li{display:flex;align-items:center;gap:9px;min-width:0;font-size:12.5px;color:var(--text-primary)}
.ctrl-page .eqv-ini{width:24px;height:24px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:10px;font-weight:600;background:var(--czb-doux);color:var(--text-primary)}
.ctrl-page .eqv-ini iconify-icon{font-size:13px;color:var(--czb-gris)}
.ctrl-page .eqv-li-n{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ctrl-page .eqv-li-v{flex-shrink:0;max-width:58%;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--czb-gris);font-weight:500}
.ctrl-page .eqv-li-v.eqv-rouge{color:var(--czb-neg-t)}
.ctrl-page .eqv-li2 .eqv-li-n{display:flex;flex-direction:column;line-height:1.3}
.ctrl-page .eqv-li2 .eqv-li-n b{font-weight:500;overflow:hidden;text-overflow:ellipsis}
.ctrl-page .eqv-li2 .eqv-li-n small{font-size:11.5px;color:var(--czb-gris);overflow:hidden;text-overflow:ellipsis}
.ctrl-page .eqv-li2 .eqv-li-n small.eqv-rouge{color:var(--czb-neg-t)}
.ctrl-page .eqv-tb-bureau .eqv-liste{gap:10px}
.ctrl-page .eqv-plus{margin:8px 0 0 33px;font-size:11.5px;color:var(--czb-gris)}
/* Pour le bureau : teinte rouge quand une situation urgente n'est prise par personne. */
.ctrl-page .eqv-tb-bureau.eqv-urgent{background:color-mix(in oklch,var(--czb-neg) 6%,var(--czb-carte));border-color:color-mix(in oklch,var(--czb-neg) 38%,transparent)}
.ctrl-page .eqv-tb-bureau.eqv-urgent:hover{border-color:var(--czb-neg)}
.ctrl-page .eqv-urgent .eqv-t-val{color:var(--czb-neg-t)}
/* L'anneau des avis. */
.ctrl-page .eqv-tuile-anneau{flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0}
.ctrl-page .eqv-tuile-anneau>.eqv-th,.ctrl-page .eqv-tuile-anneau>.eqv-legs{flex-direction:row}
.ctrl-page .eqv-tuile-anneau>.eqv-anneau-c{display:block}
.ctrl-page .eqv-anneau-c{position:relative;width:min(100%,148px);aspect-ratio:1;margin:8px auto 0}
.ctrl-page .eqv-anneau{width:100%;height:100%;overflow:visible}
.ctrl-page .eqv-anneau circle{stroke-width:10}
.ctrl-page .eqv-anneau-fond{stroke:var(--czb-doux)}
.ctrl-page .eqv-anneau-arc{stroke:var(--czb-hors)}
.ctrl-page .eqv-bon .eqv-anneau-arc{stroke:var(--czb-acc)} .ctrl-page .eqv-moyen .eqv-anneau-arc{stroke:var(--czb-proche)} .ctrl-page .eqv-faible .eqv-anneau-arc{stroke:var(--czb-neg)}
.ctrl-page .eqv-anneau-m{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none}
.ctrl-page .eqv-anneau-m .eqv-t-val{margin:0;font-size:34px}
.ctrl-page .eqv-anneau-m>span{margin-top:3px;font-size:11px;color:var(--czb-gris)}
.ctrl-page .eqv-tb-justes>.eqv-t-sous{margin:10px 0 0;text-align:center}
.ctrl-page .eqv-legs{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:10px}
.ctrl-page .eqv-legs span{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border-radius:99px;border:1px solid var(--czb-filet);font-size:11.5px;color:var(--text-primary);white-space:nowrap}
.ctrl-page .eqv-legs b{font-weight:600}
.ctrl-page .eqv-legs i{width:7px;height:7px;border-radius:50%;background:var(--czb-hors)} .ctrl-page .eqv-legs .eqv-leg-bon{background:var(--czb-acc)} .ctrl-page .eqv-legs .eqv-leg-faux{background:var(--czb-neg)}
/* Le schéma de l'équipe en grande tuile (plans, traits et orbes inchangés). */
.ctrl-page .eqs{display:flex;flex-direction:column;padding:20px 22px 16px;border:1px solid var(--czb-filet);border-radius:26px;background:var(--czb-carte)}
.ctrl-page .eqs-tete .eqv-h{font-size:13px;font-weight:500;letter-spacing:0;color:var(--czb-gris)}
.ctrl-page .eqs-passage,.ctrl-page .eqs-choix{color:var(--czb-gris)}
.ctrl-page .eqs-large{margin:auto}
.ctrl-page .eqs-zoe{border-color:var(--czb-filet);border-radius:calc(18 * var(--u));background:var(--czb-carte2);box-shadow:0 12px 28px -20px rgba(0,0,0,.45)}
.ctrl-page .eqs-zoe::before{border-color:var(--czb-filet);border-radius:calc(22 * var(--u))}
.ctrl-page .eqs-zoe:hover{border-color:color-mix(in srgb,var(--text-primary) 25%,transparent)}
.ctrl-page .eqs-zoe-n b{font-weight:600;letter-spacing:-.04em}
.ctrl-page .eqs-feuille{border-color:var(--czb-filet);border-radius:calc(12 * var(--u));background:var(--czb-carte2)}
.ctrl-page .eqs-f0:hover{border-color:color-mix(in srgb,var(--text-primary) 25%,transparent)}
.ctrl-page .eqs-f-val{font-weight:600;letter-spacing:-.04em}
.ctrl-page .eqs-f-sous{font-size:calc(9 * var(--u));letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ctrl-page .eqs-f-chiffres span{font-size:calc(8 * var(--u));white-space:nowrap}
.ctrl-page .eqs-f-jauge{background:var(--czb-doux)}
.ctrl-page .eqs-ton-vert i{background:var(--czb-acc)} .ctrl-page .eqs-ton-ambre i{background:var(--czb-proche)} .ctrl-page .eqs-ton-rouge i{background:var(--czb-neg)}
.ctrl-page .eqs-f-chiffres{border-color:var(--czb-filet)} .ctrl-page .eqs-f-chiffres .eqs-rouge b{color:var(--czb-neg-t)}
.ctrl-page .eqs-archives,.ctrl-page .eqs-archives-l{color:var(--czb-gris);font-weight:500;text-decoration:underline;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,var(--czb-gris) 45%,transparent)}
.ctrl-page .eqs-archives:hover,.ctrl-page .eqs-archives-l:hover{color:var(--text-primary)}
.ctrl-page .eqs-legende{color:var(--czb-gris)}
.ctrl-page .eqs-total b{font-weight:600;letter-spacing:-.04em}
.ctrl-page .eqs-ligne,.ctrl-page .eqs-li li:last-child .eqs-ligne{border-color:var(--czb-filet)}
.ctrl-page .eqs-bilan{border-color:var(--czb-filet);border-radius:16px;background:var(--czb-carte2)}
/* La fiche de l'employé choisi, ses boutons. */
.ctrl-page .eqv-fiche-hote{margin:0 0 12px}
.ctrl-page .eqv-fiche-hote .eqv-detail{padding:16px 20px;border:1px solid var(--czb-filet);border-radius:26px;background:var(--czb-carte)}
.ctrl-page .eqv-fiche-hote .eqv-emp-resume{color:var(--czb-gris)}
.ctrl-page .eqv-btn{min-height:36px;padding:0 15px;border:1px solid var(--czb-filet);border-radius:99px;background:transparent;font-weight:500}
.ctrl-page .eqv-btn:hover{background:var(--czb-doux)}
.ctrl-page .eqv-btn-plein,.ctrl-page .eqv-btn-plein:hover{background:var(--text-primary);border-color:var(--text-primary);color:var(--czb-carte)}
.ctrl-page .eqv-regles{border-color:var(--czb-filet)}
/* Le fil de l'équipe dans la réponse : chaque message en tuile, les filtres en pilules (le choisi à l'encre). */
.ctrl-page .eqv-fil-tete .eqv-h{font-size:15px;font-weight:600;letter-spacing:-.01em}
.ctrl-page .eqv-segments{gap:6px;padding:0;background:none}
.ctrl-page .eqv-seg{height:32px;padding:0 13px;border:1px solid var(--czb-filet);border-radius:99px;font-weight:500;color:var(--text-primary)}
.ctrl-page .eqv-seg:hover{background:var(--czb-doux)}
.ctrl-page .eqv-seg.actif{background:var(--text-primary);border-color:var(--text-primary);color:var(--czb-carte);box-shadow:none}
.ctrl-page .eqv-seg.actif span{color:inherit;opacity:.7}
.ctrl-page .eqv-fil::before{background:var(--czb-filet)}
.ctrl-page .eqv-l-carte{padding:16px 20px 12px;border:1px solid var(--czb-filet);border-radius:22px;background:var(--czb-carte);box-shadow:none}
.ctrl-page .eqv-l:hover .eqv-l-carte{transform:none;box-shadow:none;border-color:color-mix(in srgb,var(--text-primary) 22%,transparent)}
.ctrl-page .eqv-l-ini{border-radius:10px;background:var(--czb-doux);color:var(--text-primary);font-weight:600}
.ctrl-page .eqv-l-nom{font-weight:600;letter-spacing:-.01em}
.ctrl-page .eqv-l-id small,.ctrl-page .eqv-l-h{color:var(--czb-gris)}
.ctrl-page .eqv-tag{font-weight:600;background:var(--czb-doux);color:var(--czb-gris)}
.ctrl-page .eqv-tag-rouge{color:var(--czb-neg-t);background:color-mix(in oklch,var(--czb-neg) 12%,transparent)}
.ctrl-page .eqv-tag-ambre{color:var(--czb-proche-t);background:color-mix(in oklch,var(--czb-proche) 16%,transparent)}
.ctrl-page .eqv-msg-long{border-radius:14px;background:var(--czb-doux)}
.ctrl-page .eqv-l-pied{border-color:var(--czb-filet)}
.ctrl-page .eqv-s-vert{color:var(--czb-acc-t)} .ctrl-page .eqv-s-ambre{color:var(--czb-proche-t)} .ctrl-page .eqv-s-rouge{color:var(--czb-neg-t)}
.ctrl-page .eqv-pris{color:var(--czb-acc-t);background:color-mix(in oklch,var(--czb-acc) 20%,transparent)}
.ctrl-page .eqv-avis-b:hover{background:var(--czb-doux)}
/* Tablette : deux colonnes ; téléphone : une seule, le schéma en liste (EquipePage._schemaListe). */
@container (max-width:980px){
  .ctrl-page .eqv-bento-schema{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"schema schema" "chauf manq" "bureau justes"}
  .ctrl-page .eqv-bento:not(.eqv-bento-schema){grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"chauf manq" "bureau justes"}
}
@container (max-width:620px){
  .ctrl-page .eqv-bento-schema{grid-template-columns:minmax(0,1fr);grid-template-areas:"schema" "chauf" "bureau" "manq" "justes"}
  .ctrl-page .eqv-bento:not(.eqv-bento-schema){grid-template-columns:minmax(0,1fr);grid-template-areas:"chauf" "bureau" "manq" "justes"}
  .ctrl-page .eqv-manq-h{grid-template-columns:minmax(0,1fr)}
  .ctrl-page .eqv-manq-h .eqv-liste{justify-self:stretch;max-width:none;margin:2px 0 0;padding:12px 0 0;border-top:1px solid var(--czb-filet)}
}
@media (max-width:560px){
  .ctrl-page .eqv-tuile{padding:16px;border-radius:22px}
  .ctrl-page .eqv-t-val{font-size:36px}
  .ctrl-page .eqv-tb-chauffeurs .eqv-t-val{font-size:46px}
  .ctrl-page .eqv-anneau-m .eqv-t-val{font-size:30px}
  .ctrl-page .eqs{padding:16px 14px 12px;border-radius:22px}
}
