/* ═══════════════════════════════════════════════════════════════════
   GMAO CMCP — v7.2 : menu groupé, fluidité, animations courtes
   Identité inchangée (encre, orange, Geist, angles nets).
   Règles de mouvement : < 220 ms, ease-out marqué, transform/opacity
   seulement, rien sur ce qui se répète 100 fois par jour, et tout
   s'éteint avec « réduire les animations ».
   ═══════════════════════════════════════════════════════════════════ */
:root { --gm-ease: cubic-bezier(0.23, 1, 0.32, 1); }

/* ── menu groupé ───────────────────────────────────────────────────── */
.gmao-nav-group, .gst-navlab {
  padding: 16px 16px 6px !important; margin: 0 !important;
  font-size: 10px; font-weight: 700; color: #6b7280; text-transform: uppercase; letter-spacing: 0.1em;
  user-select: none; pointer-events: none;
}
aside nav > .gmao-nav-group:first-child { padding-top: 6px !important; }
.gmao-nav-sep { height: 1px; margin: 10px 10px !important; background: #27272a; }
aside nav.space-y-1 > .gmao-nav-group + button { margin-top: 0 !important; }
#gmao-slide-panel .gmao-sp-group { padding: 16px 20px 6px; font-size: 10px; font-weight: 700; color: #6b7280; text-transform: uppercase; letter-spacing: 0.1em; }
#gmao-slide-panel .gmao-sp-nav > .gmao-sp-group:first-child { padding-top: 8px; }

/* ── témoin de connexion rangé dans le pied de la barre latérale (v7.3 → v7.4) ──
   « html body » : passe devant les règles de mobile-ux.css qui le collaient en haut. */
aside > .gm-net-foot { justify-content: space-between !important; align-items: center; flex-wrap: wrap; gap: 6px 8px; padding: 6px 16px 10px !important; }
aside > .gm-net-foot > span:last-child { font-size: 9px !important; color: #52525b !important; }
html body #gmao-net-pill.gm-net-docked {
  position: static !important; inset: auto !important; transform: none !important; z-index: auto !important;
  width: auto !important; height: auto !important; max-width: none !important; min-width: 0 !important;
  display: inline-flex !important; align-items: center; justify-content: flex-start !important; gap: 6px !important; padding: 2px 0 !important;
  background: transparent !important; box-shadow: none !important; border-radius: 0 !important;
  -webkit-backdrop-filter: none !important; backdrop-filter: none !important;
  color: #a3a3ad !important; opacity: 1 !important; pointer-events: auto !important; white-space: nowrap !important;
  font: 500 10.5px/1.2 Geist, system-ui, sans-serif !important; letter-spacing: 0.01em;
  transition: color 120ms ease !important;
}
@media (hover: hover) { html body #gmao-net-pill.gm-net-docked:hover { color: #fff !important; } }
html body #gmao-net-pill.gm-net-docked > span:first-child { width: 6px !important; height: 6px !important; border-radius: 0; }
html body #gmao-net-pill.gm-net-docked > span:last-child { display: inline !important; }
/* alerte : même place, encadré lisible sur toute la largeur du pied */
html body #gmao-net-pill.gm-net-docked:not(.gm-net-dot)[data-net="apidown"],
html body #gmao-net-pill.gm-net-docked:not(.gm-net-dot)[data-net="offline"] {
  width: 100% !important; align-items: flex-start; padding: 8px 10px !important; white-space: normal !important;
  font-weight: 600 !important; font-size: 11px !important; line-height: 1.35 !important;
  animation: gm-net-in 200ms var(--gm-ease) both;
}
html body #gmao-net-pill.gm-net-docked[data-net="apidown"] { color: #fcd34d !important; background: rgba(245, 158, 11, 0.1) !important; box-shadow: inset 2px 0 #f59e0b !important; }
html body #gmao-net-pill.gm-net-docked[data-net="offline"] { color: #fca5a5 !important; background: rgba(239, 68, 68, 0.12) !important; box-shadow: inset 2px 0 #ef4444 !important; }
html body #gmao-net-pill.gm-net-docked:not(.gm-net-dot)[data-net="apidown"] > span:first-child,
html body #gmao-net-pill.gm-net-docked:not(.gm-net-dot)[data-net="offline"] > span:first-child { margin-top: 4px; }
aside > .gm-net-foot.gm-net-alert > span:last-child { width: 100%; text-align: right; }
@keyframes gm-net-in { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
/* barre repliée : le point seul, centré ; en alerte il pulse doucement */
aside > .gm-net-mini { display: flex; justify-content: center; padding: 4px 0 12px; }
html body #gmao-net-pill.gm-net-docked.gm-net-dot > span:last-child { display: none !important; }
html body #gmao-net-pill.gm-net-docked.gm-net-dot { padding: 6px !important; background: transparent !important; box-shadow: none !important; }
html body #gmao-net-pill.gm-net-dot[data-net="apidown"] > span:first-child,
html body #gmao-net-pill.gm-net-dot[data-net="offline"] > span:first-child { width: 8px !important; height: 8px !important; animation: gm-net-pulse 1.6s ease-in-out infinite; }
@keyframes gm-net-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(245, 158, 11, 0.5); } 50% { box-shadow: 0 0 0 5px rgba(245, 158, 11, 0); } }

/* ── saisies pas encore envoyées (v7.5) : plus de bande rouge sur tout le bas de l'écran ── */
html.gm-sync-docked #gmao-sync-banner { display: none !important; }
aside > .gm-net-foot > .gm-sync-dock {
  width: 100%; display: grid; grid-template-columns: 1fr; gap: 3px; padding: 9px 10px;
  background: rgba(239, 68, 68, 0.12); box-shadow: inset 2px 0 #ef4444; color: #fecaca;
  font: 500 11px/1.35 Geist, system-ui, sans-serif; animation: gm-net-in 200ms var(--gm-ease) both;
}
aside > .gm-net-foot > .gm-sync-dock > b { font-weight: 700; color: #fca5a5; }
aside > .gm-net-foot > .gm-sync-dock > span { color: #d4d4d8; font-size: 10.5px; }
aside > .gm-net-foot > .gm-sync-dock > button {
  justify-self: start; margin-top: 5px; height: 26px; padding: 0 10px; border: 1px solid rgba(252, 165, 165, 0.45);
  background: transparent; color: #fff; font: 600 11px Geist, system-ui, sans-serif; cursor: pointer;
  transition: background-color 120ms ease, transform 120ms var(--gm-ease);
}
@media (hover: hover) { aside > .gm-net-foot > .gm-sync-dock > button:hover:not(:disabled) { background: rgba(239, 68, 68, 0.25); } }
aside > .gm-net-foot > .gm-sync-dock > button:active { transform: scale(0.97); }
aside > .gm-net-foot > .gm-sync-dock > button:disabled { opacity: 0.6; cursor: default; }
aside > .gm-net-foot:has(.gm-sync-dock) > span:last-child { width: 100%; text-align: right; }
aside > .gm-net-mini.gm-sync-bad #gmao-net-pill > span:first-child { background: #ef4444 !important; width: 8px !important; height: 8px !important; animation: gm-net-pulse 1.6s ease-in-out infinite; }
/* téléphone : un encart sobre au-dessus de la barre du bas, plus une bande rouge sur toute la largeur */
@media (max-width: 767px) {
  html body #gmao-sync-banner {
    left: 10px !important; right: 10px !important; bottom: calc(76px + env(safe-area-inset-bottom, 0px)) !important;
    padding: 9px 12px !important; text-align: left !important; background: #0a0a0b !important; color: #fff !important;
    box-shadow: inset 3px 0 #ef4444, 0 8px 24px rgba(0, 0, 0, 0.3) !important; font: 600 12px/1.4 Geist, system-ui, sans-serif !important;
  }
  html body #gmao-sync-banner br, html body #gmao-sync-banner span { display: none !important; }
  html body #gmao-sync-banner::after { content: "Toucher pour relancer l\2019 envoi"; display: block; margin-top: 2px; font-weight: 400; color: #fca5a5; }
}

/* ── Équipements : libellés sans machine, repliés en une ligne discrète (v7.5) ── */
.gmao-unatt:not(:has(> .mt-2)) {
  display: inline-flex !important; width: max-content !important; max-width: 100%; align-self: flex-start; padding: 6px 10px !important;
  background: #fff !important; border-color: #e4e4e7 !important; color: #52525b !important;
}
.gmao-unatt:not(:has(> .mt-2)) > button { width: auto !important; gap: 8px !important; }
.gmao-unatt:not(:has(> .mt-2)) > button > b { font-weight: 600; color: #3f3f46; }
.gmao-unatt:not(:has(> .mt-2)) > button > b::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 8px; vertical-align: 1px; background: #f59e0b; }
.gmao-unatt:not(:has(> .mt-2)) > button > span:nth-of-type(1) { display: none !important; }
.gmao-unatt:not(:has(> .mt-2)) > button > span:last-child { color: #a1a1aa !important; }
@media (hover: hover) { .gmao-unatt:not(:has(> .mt-2)):hover { border-color: #a1a1aa !important; } }

/* ── Utilisateurs : liste claire, recherche en tête (v7.5) ── */
.gm-users-bar { position: sticky; top: -16px; z-index: 4; gap: 10px !important; padding: 14px 16px !important; background: #fafafa !important; }
.gm-users-search { order: -1; flex: 1 1 100%; position: relative; }
.gm-users-search > svg { left: 14px !important; width: 16px !important; height: 16px !important; color: #71717a !important; }
html body input.gm-users-q {
  height: 42px; padding: 0 14px 0 40px !important; font-size: 14px !important; border: 1px solid #d4d4d8 !important; background: #fff !important;
  border-radius: 0 !important; transition: border-color 120ms ease, box-shadow 120ms ease;
}
html body input.gm-users-q:focus { border-color: #0a0a0b !important; box-shadow: 0 0 0 3px rgba(255, 106, 19, 0.18) !important; outline: none; }
.gm-users-search::after {
  content: "/"; position: absolute; right: 12px; top: 50%; transform: translateY(-50%); width: 20px; height: 20px; display: grid; place-items: center;
  border: 1px solid #e4e4e7; color: #a1a1aa; font: 500 11px "Geist Mono", ui-monospace, monospace; pointer-events: none;
}
.gm-users-search:focus-within::after { display: none; }
html body input.gm-users-q::-webkit-search-cancel-button {
  -webkit-appearance: none; appearance: none; width: 16px; height: 16px; cursor: pointer;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2371717a' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E") center / 16px no-repeat;
}
@media (hover: none) { .gm-users-search::after { display: none; } }
.gm-users-bar > div:first-child { overflow-x: auto; flex-wrap: nowrap !important; scrollbar-width: none; max-width: 100%; }
.gm-users-bar > div:first-child::-webkit-scrollbar { display: none; }
.gm-users-bar > div:first-child > button { flex: none; }
/* cartes d'identité horizontales (v7.8) : photo à gauche, champs alignés à droite */
.gm-idcards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 380px), 1fr)); gap: 14px; padding: 16px; background: #fafafa; }
.gm-id-group {
  grid-column: 1 / -1; display: flex; align-items: center; gap: 8px; padding: 10px 2px 0;
  font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #71717a;
}
.gm-id-group:first-child { padding-top: 0; }
.gm-id-group > span { padding: 1px 6px; background: #fff; border: 1px solid #e4e4e7; color: #52525b; font-variant-numeric: tabular-nums; letter-spacing: 0; }
.gm-id-group::after { content: ""; flex: 1; height: 1px; background: #e4e4e7; }

.gm-idcard {
  position: relative; display: flex; flex-direction: column; overflow: hidden;
  background: #fff; border: 1px solid #e4e4e7; transition: border-color 120ms ease, box-shadow 160ms ease;
}
@media (hover: hover) { .gm-idcard:hover { border-color: #a1a1aa; box-shadow: 0 10px 24px -18px rgba(10, 10, 11, 0.45); } }
.gm-id-strip { height: 3px; flex: none; }
.gm-id-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 9px 14px 0; }
.gm-id-kind { display: inline-flex; align-items: center; gap: 7px; font-size: 9.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #a1a1aa; }
.gm-id-kind::before { content: ""; width: 7px; height: 7px; background: #ff6a13; }
.gm-id-st { flex: none; display: inline-flex; align-items: center; gap: 5px; font-size: 10.5px; font-weight: 600; color: #71717a; }
.gm-id-st::before { content: ""; width: 6px; height: 6px; background: #a1a1aa; }
.gm-id-st.on { color: #15803d; } .gm-id-st.on::before { background: #16a34a; }
.gm-id-st.ext { color: #a1a1aa; } .gm-id-st.ext::before { background: #d4d4d8; }

.gm-id-body { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 16px; align-items: start; padding: 12px 14px 14px; }
.gm-id-photo {
  width: 76px; height: 92px; display: grid; place-items: center; color: #fff;
  font-size: 26px; font-weight: 800; letter-spacing: 0.02em; border-radius: 0 !important;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
}
.gm-id-fields { display: grid; grid-template-columns: 68px minmax(0, 1fr); column-gap: 10px; row-gap: 5px; margin: 0; align-items: baseline; }
.gm-id-fields dt { font-size: 9.5px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #a1a1aa; }
.gm-id-fields dd { margin: 0; min-width: 0; font-size: 12.5px; color: #27272a; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gm-id-fields dd.gm-id-name { font-size: 14px; font-weight: 700; color: #0a0a0b; }
.gm-id-fields dd.gm-id-mono { font-family: "Geist Mono", ui-monospace, monospace; font-size: 12px; }
.gm-id-fields a.gm-tel { color: inherit; text-decoration: none; }
@media (hover: hover) { .gm-id-fields a.gm-tel:hover { color: #0a0a0b; text-decoration: underline; text-underline-offset: 2px; } }

.gm-id-foot { margin-top: auto; display: flex; align-items: center; gap: 6px; padding: 8px 10px 8px 14px; border-top: 1px dashed #e4e4e7; background: #fcfcfc; }
.gm-id-user { flex: 1; min-width: 0; font: 500 11px "Geist Mono", ui-monospace, monospace; color: #a1a1aa; letter-spacing: 0.04em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gm-id-edit, .gm-id-del {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 30px; padding: 0 12px;
  border: 1px solid #e4e4e7; background: #fff; color: #3f3f46; font: 600 11.5px Geist, system-ui, sans-serif; cursor: pointer;
  transition: border-color 120ms ease, color 120ms ease, background-color 120ms ease, transform 120ms var(--gm-ease);
}
.gm-id-del { width: 30px; padding: 0; color: #dc2626; }
@media (hover: hover) {
  .gm-id-edit:hover { border-color: #0a0a0b; color: #0a0a0b; }
  .gm-id-del:hover { border-color: #fca5a5; background: #fef2f2; }
}
.gm-id-edit:active, .gm-id-del:active { transform: scale(0.97); }
@media (max-width: 480px) {
  .gm-idcards { padding: 12px; gap: 12px; }
  .gm-id-body { grid-template-columns: 62px minmax(0, 1fr); gap: 12px; }
  .gm-id-photo { width: 62px; height: 76px; font-size: 21px; }
  .gm-id-fields { grid-template-columns: 58px minmax(0, 1fr); }
  .gm-id-edit, .gm-id-del { height: 36px; } .gm-id-del { width: 36px; }
}

/* ── téléphone : un seul bouton menu (v7.8) ──
   Le ≡ du haut faisait doublon avec « Menu » de la barre du bas : il est masqué quand
   la barre du bas est affichée (il reste dans la page, c'est lui que « Menu » actionne). */
@media (max-width: 767px) {
  header.h-20.flex.items-center.justify-between { padding-left: 16px !important; }
}
#gmx-bnav button[data-k="__menu"] { position: relative; }
html body #gmao-net-pill.gm-net-docked.gm-net-bnav {
  position: absolute !important; top: 7px !important; left: calc(50% + 8px) !important; padding: 0 !important;
  width: auto !important; height: auto !important; pointer-events: none !important; background: transparent !important;
}
html body #gmao-net-pill.gm-net-bnav > span:first-child { width: 7px !important; height: 7px !important; box-shadow: 0 0 0 2px #0a0a0b; }

/* ── Configuration Rôles : boutons dans la barre du haut (v8.0) ── */
.gm-acl-head { display: none !important; }
.gm-page-acts { display: inline-flex; align-items: center; gap: 6px; flex-shrink: 0; padding-right: 10px; margin-right: 4px; border-right: 1px solid #ececf0; }
.gm-page-acts .gmao-act-btn { position: relative; }
@media (max-width: 767px) { .gm-page-acts { border-right: 0; padding-right: 0; margin-right: 0; } }
.gm-page-acts .gm-pa-save:disabled { opacity: 0.45; cursor: default; box-shadow: none; }
.gm-page-acts .gm-pa-save.is-saved { color: #15803d; border-color: #bbf7d0; background: #f0fdf4; opacity: 1; }
.gm-pa-dot { display: none; position: absolute; top: -3px; right: -3px; width: 8px; height: 8px; background: #0a0a0b; box-shadow: 0 0 0 2px #fff; }
.gm-pa-save.is-dirty .gm-pa-dot { display: block; }

/* ── Plan d'action : panneau de commande (v8.3) ──────────────────────────
   Ordinateur : bandeau noir (navigation, vue, compteurs, actions) + ligne de filtres
   rangée par question (Qui · Quoi · Où · Type). Téléphone : disposition d'origine. */
@media (max-width: 767px) {
  .gm-pa-d, .gm-pa-l { display: none !important; }
  .gm-pa-secsel.is-n { display: none !important; }
}
@media (min-width: 768px) {
  .gm-pa-m, [data-gm="m"],
  .gmao-planning-toolbar > .gmao-stb, .gmao-planning-toolbar > .gmao-stb-cp, .gmao-planning-toolbar > .gmao-xp3 { display: none !important; }
  .gmao-pa-seg.is-sec { display: none !important; }

  /* bandeau */
  .gmao-planning-main-header { padding: 0 !important; border-bottom: 1px solid #e4e4e7 !important; }
  .gm-pa-top {
    gap: 10px !important; padding: 10px 14px; background: #0a0a0b; color: #fff; min-height: 56px;
  }
  .gm-pa-top > div:first-child { gap: 2px !important; }
  .gm-pa-top > div:first-child > button[aria-label] { color: #d4d4d8 !important; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 0 !important; }
  .gm-pa-top > div:first-child > button[aria-label]:hover { background: #1f1f23 !important; color: #fff !important; }
  .gm-pa-top > div:first-child > button:not([aria-label]) {
    margin-left: 6px !important; height: 32px; padding: 0 12px !important; border: 1px solid #3f3f46 !important; background: transparent !important;
    color: #e4e4e7 !important; border-radius: 0 !important; font-size: 11.5px !important; letter-spacing: 0.02em;
  }
  .gm-pa-top > div:first-child > button:not([aria-label]):hover { border-color: #ff6a13 !important; color: #fff !important; }
  .gm-pa-top > h2 {
    flex: 0 1 auto !important; color: #fff !important; font-size: 17px !important; letter-spacing: 0.06em; text-transform: uppercase;
    padding-right: 14px; margin-right: 2px; border-right: 1px solid #27272a;
  }
  .gm-pa-top > .gm-pa-view { border-color: #3f3f46 !important; border-radius: 0 !important; background: #0a0a0b; }
  .gm-pa-top > .gm-pa-view > button { background: transparent !important; color: #a1a1aa !important; border-color: #3f3f46 !important; height: 32px; padding: 0 14px !important; transition: color 120ms ease, background-color 120ms ease; }
  .gm-pa-top > .gm-pa-view > button:hover { color: #fff !important; }
  .gm-pa-top > .gm-pa-view > button.bg-gray-900 { background: #ff6a13 !important; color: #fff !important; }
  /* compteurs « aujourd'hui / à faire » en pastilles sombres */
  .gm-pa-top > div.hidden.sm\:flex { gap: 6px !important; margin-left: 4px; }
  .gm-pa-top > div.hidden.sm\:flex > span {
    border-radius: 0 !important; padding: 5px 8px !important; font-size: 10.5px !important; letter-spacing: 0.06em;
    background: #18181b !important; border-color: #27272a !important; color: #e4e4e7 !important;
  }
  .gm-pa-top > div.hidden.sm\:flex > span:first-child { color: #fbbf24 !important; }
  /* actions à droite */
  .gm-pa-acts { margin-left: auto; display: flex; align-items: center; gap: 8px; }
  .gm-pa-acts .gmao-stb { height: 32px; background: transparent; border-color: #7f1d1d; color: #fca5a5; border-radius: 0; }
  .gm-pa-acts .gmao-stb:hover { background: #2a0f0f; }
  .gm-pa-acts .gmao-stb-cp { height: 32px; border-radius: 0 !important; }
  .gm-pa-acts .gm-pa-stop { border-radius: 0 !important; background: #1c1407 !important; border-color: #78350f !important; color: #fcd34d !important; }
  .gm-pa-acts .gm-pa-tour { border-radius: 0 !important; background: transparent !important; border-color: #4c1d95 !important; color: #c4b5fd !important; }
  .gm-pa-acts .gmao-xp3 { margin-left: 0; border-color: #3f3f46; border-radius: 0; background: transparent; }
  .gm-pa-acts .gmao-xp3-b { background: transparent; color: #e4e4e7; }
  .gm-pa-acts .gmao-xp3-b + .gmao-xp3-b { border-left-color: #3f3f46; }
  .gm-pa-acts .gmao-xp3-b.is-xl { color: #86efac; }

  /* contraste du bandeau : on passe devant les styles généraux des boutons */
  html body .gm-pa-top > div:first-child > button[aria-label] { background: transparent !important; border: 1px solid #3f3f46 !important; box-shadow: none !important; }
  html body .gm-pa-top > div:first-child > button[aria-label]:hover { background: #1f1f23 !important; border-color: #71717a !important; }
  #root .gm-pa-top > .gm-pa-view > button[class*="bg-gray-900"] { background-color: #ff6a13 !important; color: #fff !important; border-color: #ff6a13 !important; }
  html body .gm-pa-acts .gmao-stb-cp { background: transparent !important; border: 1px solid #3f3f46 !important; color: #e4e4e7 !important; box-shadow: none !important; }
  html body .gm-pa-acts .gmao-stb-cp:hover:not(:disabled) { border-color: #ff6a13 !important; color: #fff !important; }
  html body .gm-pa-acts .gmao-stb-cp:disabled { opacity: 0.4; }
  html body .gm-pa-acts .gmao-xp3, html body .gm-pa-acts .gmao-xp3-b { background: transparent !important; box-shadow: none !important; }
  html body .gm-pa-acts .gmao-xp3-b { color: #e4e4e7 !important; height: 32px; }
  html body .gm-pa-acts .gmao-xp3-b:hover { background: #1f1f23 !important; color: #fff !important; }
  html body .gm-pa-acts .gmao-xp3-b.is-xl { color: #86efac !important; }

  /* ligne de filtres : Qui · Quoi · Où · Type */
  .gmao-planning-toolbar { margin: 0 !important; padding: 10px 14px; gap: 8px !important; align-items: center; background: #fff; flex-wrap: wrap !important; overflow: visible !important; }
  .gmao-planning-toolbar > * { order: 20; }
  .gmao-planning-toolbar > .gmao-pa-bar { order: 1; display: flex; align-items: center; gap: 8px; }
  .gmao-planning-toolbar > .l-qui2 { order: 0; } .gmao-planning-toolbar > .gm-pa-who { order: 1; }
  .gmao-planning-toolbar > .l-ou { order: 3; } .gmao-planning-toolbar > .gm-pa-secsel { order: 4; } .gmao-planning-toolbar > .gm-pa-mach { order: 5; }
  .gmao-planning-toolbar > .l-type { order: 6; } .gmao-planning-toolbar > .gm-pa-type { order: 7; } .gmao-planning-toolbar > .gm-pa-clear { order: 8; }
  .gm-pa-l {
    display: inline-flex; align-items: center; gap: 8px; font-size: 10px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; color: #a1a1aa;
  }
  .gm-pa-l:not(.l-qui):not(.l-qui2)::before { content: ""; width: 1px; height: 22px; background: #e4e4e7; margin: 0 6px 0 4px; }
  .gmao-planning-toolbar select { height: 34px !important; border-radius: 0 !important; border-color: #d4d4d8 !important; font-weight: 600; color: #27272a !important; }
  .gmao-planning-toolbar select:focus { outline: none; border-color: #0a0a0b !important; }
  .gmao-planning-toolbar .gmao-pa-seg { border-radius: 0 !important; }
  .gmao-planning-toolbar .gmao-pa-seg .gmao-pa-b { border-radius: 0 !important; }
  .gm-pa-clear { border-radius: 0 !important; height: 34px; }
  html body .gm-pa-clear { background: #fff !important; border: 1px solid #d4d4d8 !important; color: #52525b !important; }
  html body .gm-pa-clear:hover { border-color: #0a0a0b !important; color: #0a0a0b !important; }
  /* légende sous la barre, plus discrète */
  .gmao-planning-main-header > :not(.gm-pa-top):not(.gmao-planning-toolbar) { padding: 0 14px 8px; }
}
/* écrans moyens : les intitulés Qui / Quoi / Où / Type cèdent la place, les séparateurs restent */
@media (min-width: 768px) and (max-width: 1439px) {
  .gm-pa-l { font-size: 0 !important; gap: 0 !important; }
  .gm-pa-l.l-qui, .gm-pa-l.l-qui2 { display: none !important; }
  .gmao-planning-toolbar select { max-width: 150px !important; }
}

/* ── Plan d'action : en planification, le calendrier part d'aujourd'hui (v8.4) ── */
/* v8.9.1 : on n'efface plus le passé — les jours passés restent visibles et modifiables,
   seulement teintés pour les distinguer. */
html.gm-planning .gm-past { background-color: #fafafa !important; }

/* ── Plan d'action : planifier par jours choisis (v8.7) ─────────────────
   Préventif / Correctif : choisir un ou plusieurs jours, puis une page avec une colonne par jour.
   Une seule chose dominante par écran, intitulés en phrase, aucun filtre en double. */
/* v8.9.1 : Préventif / Correctif ouvrent sur le CALENDRIER COMPLET (navigation, Jour / Sem. / Mois,
   semaines passées comprises pour corriger un ancien OT). « Choisir des jours » ouvre le choix par jours. */
html.gm-planning .gmao-planning-toolbar,
html.gm-planning .gmao-planning-main-header > :not(.gm-pa-top) { display: none !important; }
.gm-pa-pickd { flex: none; height: 32px; padding: 0 14px; border: 1px solid #ff6a13; background: #ff6a13; color: #fff; font-size: 12px; font-weight: 700; cursor: pointer; white-space: nowrap; }
@media (hover: hover) { .gm-pa-pickd:hover { background: #e85d0c; } }
.gm-cal-back-pick { align-self: flex-start; margin: 0 0 10px; height: 36px; padding: 0 14px; border: 1px solid #d4d4d8; background: #fff; color: #0a0a0b; font-size: 13px; font-weight: 700; cursor: pointer; }
@media (hover: hover) { .gm-cal-back-pick:hover { border-color: #0a0a0b; } }
.gm-dayp-chg.gm-cal-back { background: #fff; color: #0a0a0b; border: 1px solid #d4d4d8; }
@media (hover: hover) { .gm-dayp-chg.gm-cal-back:hover { background: #f4f4f5; } }
.gm-days-on { background: #f6f6f7; }
.gm-load { display: block; height: 4px; background: #f0f0f2; position: relative; overflow: hidden; }
.gm-load::after { content: ""; position: absolute; inset: 0 auto 0 0; width: calc(var(--l, 0) * 100%); background: #0a0a0b; }

/* choisir les jours */
.gm-pick { max-width: 1120px; margin: 0 auto; padding: 22px 10px 28px; display: flex; flex-direction: column; gap: 14px; animation: gm-page-in 200ms var(--gm-ease) backwards; }
.gm-pick-h h3 { margin: 0 0 6px; font-size: 30px; line-height: 1.05; font-weight: 800; letter-spacing: -0.03em; color: #0a0a0b; }
.gm-pick-h p { margin: 0 0 8px; font-size: 14px; color: #3f3f46; max-width: 64ch; }
.gm-wk { margin-top: 6px; font-size: 14px; font-weight: 700; color: #0a0a0b; }
.gm-tiles { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 10px; }
.gm-tile {
  position: relative; display: flex; flex-direction: column; gap: 8px; padding: 14px; min-height: 136px; text-align: left; cursor: pointer;
  background: #fff; border: 0; outline: 2px solid transparent; outline-offset: -2px;
  transition: outline-color 120ms ease, background-color 140ms ease, transform 160ms var(--gm-ease);
}
@media (hover: hover) { .gm-tile:hover { outline-color: #0a0a0b; } }
.gm-tile:active { transform: scale(0.98); }
.gm-tile.is-we { background: #fbfbfb; }
.gm-tile.is-today .gm-tile-wd { color: #ff6a13; }
.gm-tile.is-on { background: #0a0a0b; color: #fff; outline-color: #0a0a0b; }
.gm-tile.is-on .gm-tile-wd, .gm-tile.is-on .gm-tile-d, .gm-tile.is-on .gm-tile-f { color: #d4d4d8; }
.gm-tile.is-on .gm-tile-d b { color: #fff; }
.gm-tile.is-on .gm-load { background: #27272a; }
.gm-tile.is-on .gm-load::after { background: #ff6a13; }
.gm-tile-ck { position: absolute; top: 12px; right: 12px; width: 18px; height: 18px; background: #f0f0f2; transition: background-color 120ms ease; }
.gm-tile.is-on .gm-tile-ck { background: #ff6a13; }
.gm-tile.is-on .gm-tile-ck::after { content: ""; position: absolute; left: 6px; top: 2px; width: 5px; height: 10px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.gm-tile-wd { font-size: 13px; font-weight: 700; color: #52525b; text-transform: capitalize; padding-right: 22px; }
.gm-tile-d { display: flex; align-items: baseline; gap: 4px; font-size: 13px; color: #71717a; }
.gm-tile-d b { font-size: 34px; font-weight: 800; letter-spacing: -0.03em; color: #0a0a0b; line-height: 1; }
.gm-tile-f { margin-top: auto; display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: 12.5px; color: #52525b; }
.gm-tile-st { display: inline-flex; align-items: center; gap: 5px; color: #c2410c; font-weight: 700; }
.gm-tile.is-on .gm-tile-st { color: #fdba74; }
.gm-tile-st::before { content: ""; width: 7px; height: 7px; background: #ff6a13; }
.gm-pick-f { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 8px; }
.gm-other { display: inline-flex; align-items: center; gap: 10px; padding: 0 0 0 14px; background: #fff; font-size: 13px; font-weight: 600; color: #3f3f46; }
.gm-other input { height: 44px; border: 0; border-left: 1px solid #f0f0f2; padding: 0 10px; font: inherit; background: #fff; border-radius: 0; }
.gm-extra { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.gm-extra button { height: 34px; padding: 0 10px; background: #0a0a0b; color: #fff; border: 0; font-size: 12.5px; font-weight: 700; cursor: pointer; text-transform: capitalize; }
.gm-go {
  margin-left: auto; height: 52px; padding: 0 26px; border: 0; background: #ff6a13; color: #fff; font-size: 15px; font-weight: 800; cursor: pointer;
  transition: background-color 120ms ease, transform 120ms var(--gm-ease), opacity 120ms ease;
}
@media (hover: hover) { .gm-go:hover:not(:disabled) { background: #e55a08; } }
.gm-go:active:not(:disabled) { transform: scale(0.98); }
.gm-go:disabled { background: #d4d4d8; cursor: default; }

/* la page des jours choisis */
.gm-dayp { max-width: 1400px; margin: 0 auto; padding: 16px 10px 28px; display: flex; flex-direction: column; gap: 12px; animation: gm-page-in 200ms var(--gm-ease) backwards; }
.gm-dayp.is-one { max-width: 1100px; }
.gm-dayp-h { display: flex; align-items: center; gap: 10px; padding: 16px 18px; background: #fff; }
.gm-dayp-t { flex: 1; min-width: 0; }
.gm-dayp-t h3 { margin: 0 0 2px; font-size: 26px; line-height: 1.1; font-weight: 800; letter-spacing: -0.02em; color: #0a0a0b; text-transform: none; }
.gm-dayp-t h3::first-letter { text-transform: uppercase; }
.gm-dayp-c { font-size: 13px; color: #52525b; }
.gm-dayp-nav { width: 44px; height: 44px; flex: none; border: 0; background: #f4f4f5; font-size: 22px; line-height: 1; color: #3f3f46; cursor: pointer; transition: background-color 120ms ease; }
@media (hover: hover) { .gm-dayp-nav:hover { background: #e4e4e7; } }
.gm-dayp-chg { flex: none; height: 44px; padding: 0 16px; border: 0; background: #0a0a0b; color: #fff; font-size: 13px; font-weight: 700; cursor: pointer; }
@media (hover: hover) { .gm-dayp-chg:hover { background: #27272a; } }
.gm-cols { display: grid; grid-template-columns: repeat(var(--n, 1), minmax(220px, 1fr)); gap: 12px; overflow-x: auto; }
.gm-col { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.gm-col-h { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 12px 14px; background: #0a0a0b; color: #fff; }
.gm-col-h b { font-size: 15px; font-weight: 800; }
.gm-col-h b::first-letter { text-transform: uppercase; }
.gm-col-h em { font-style: normal; min-width: 24px; height: 22px; padding: 0 7px; display: grid; place-items: center; background: #ff6a13; color: #fff; font-size: 12px; font-weight: 800; }
.gm-col-z {
  flex: 1; display: flex; flex-direction: column; gap: 10px; min-height: 340px; padding: 12px; background: #fff;
  outline: 2px solid transparent; outline-offset: -2px; transition: outline-color 120ms ease, background-color 120ms ease;
}
.gm-dayp.is-one .gm-col-z { min-height: 420px; }
.gm-col-l { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; }
.gm-col-drop {
  flex: 1; min-height: 110px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; text-align: center;
  background: #f6f6f7; color: #71717a; padding: 18px; transition: background-color 120ms ease, color 120ms ease;
}
.gm-col-drop b { font-size: 15px; color: #3f3f46; }
.gm-col-drop span { font-size: 12.5px; }
.gm-col-z:not(.is-empty) .gm-col-drop { flex: 0 0 auto; min-height: 76px; }
body.gmao-dragging .gm-col-drop { background: #fff7ed; color: #c2410c; }
.gm-col-z.gmao-dz-on { outline-color: #ff6a13; background: #fff7ed; }
.gm-col-z.gmao-dz-on .gm-col-drop { background: #ffedd5; color: #9a3412; }

/* liste « À planifier » : un seul bloc de filtres (v9.1 : listes déroulantes au lieu des pastilles,
   pour que la liste des demandes reste visible) */
.gm-qf { display: flex !important; flex-direction: column; gap: 6px; }
.gm-qf-q { display: flex; align-items: center; gap: 8px; height: 40px; padding: 0 12px; background: #fff; color: #71717a; outline: 2px solid transparent; outline-offset: -2px; transition: outline-color 120ms ease; }
.gm-qf-q:focus-within { outline-color: #0a0a0b; }
.gm-qf-q svg { width: 16px; height: 16px; flex: none; }
.gm-qf-q input { flex: 1; min-width: 0; height: 100%; min-height: 0 !important; border: 0 !important; background: transparent !important; font-size: 14px; color: #0a0a0b; outline: none !important; box-shadow: none !important; padding: 0 !important; }
/* Section · Machine · Métier · Afficher : 2 par ligne dans une colonne étroite, 4 quand elle est large */
.gm-qf-sel { display: flex; flex-wrap: wrap; gap: 6px; }
.gm-qf-s {
  position: relative; flex: 1 1 92px; min-width: 0; height: 40px; padding: 0 24px 0 10px; overflow: hidden;
  display: flex; flex-direction: column; justify-content: center; gap: 2px;
  background: #fff; color: #0a0a0b; cursor: pointer; outline: 2px solid transparent; outline-offset: -2px;
  transition: background-color 120ms ease, color 120ms ease, outline-color 120ms ease;
}
.gm-qf-s small { font-size: 9.5px; line-height: 1; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: #a1a1aa; }
.gm-qf-s b { display: block; min-width: 0; font-size: 13px; line-height: 1.2; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gm-qf-s b em { font-style: normal; margin-left: 5px; font-size: 11.5px; font-weight: 700; color: #a1a1aa; font-variant-numeric: tabular-nums; }
.gm-qf-s::after {
  content: ""; position: absolute; right: 11px; top: 50%; width: 6px; height: 6px; margin-top: -5px;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); opacity: 0.5; pointer-events: none;
}
/* la vraie liste native est posée par-dessus, invisible : clavier, lecteur d'écran et sélecteur du téléphone restent natifs */
html body label.gm-qf-s > select {
  position: absolute; inset: 0; width: 100%; height: 100% !important; min-height: 0 !important; margin: 0; padding: 0 !important;
  opacity: 0; cursor: pointer; border: 0 !important; -webkit-appearance: none; appearance: none; font-size: 16px !important;
}
.gm-qf-s:focus-within { outline-color: #0a0a0b; }
@media (hover: hover) { .gm-qf-s:hover:not(.is-on) { background: #e4e4e7; } }
html body .gm-qf-s.is-on { background: #0a0a0b; color: #fff; }
.gm-qf-s.is-on small { color: #fdba74; }
.gm-qf-s.is-on:focus-within { outline-color: #ff6a13; }
.gm-qf-clear { align-self: flex-start; border: 0; background: transparent; padding: 2px 0; font-size: 12.5px; font-weight: 700; color: #c2410c; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }

/* « Prochains arrêts » / « Pareto des pannes » : une ligne repliée, dépliable à la demande */
.gmao-planning-sidebar-header > .flex:first-child > div:first-child { flex: 1 1 auto; min-width: 0; } /* le bandeau ne déborde plus de la colonne */
.gmao-stup.gm-ins, .gmao-cpar.gm-ins { padding: 0 !important; }
.gm-ins-h { display: flex; align-items: center; gap: 4px; margin: 0 !important; container-type: inline-size; }
@container (max-width: 236px) { .gm-ins-sum { display: none; } } /* colonne très étroite : le titre et le nombre suffisent */
.gm-ins-h .gm-ins-t {
  flex: 1; min-width: 0; height: 36px; padding: 0 10px; display: flex; align-items: center; gap: 8px;
  border: 0; border-radius: 6px; background: transparent; color: #fff; font: inherit; text-align: left; text-decoration: none; cursor: pointer;
}
@media (hover: hover) { .gm-ins-h .gm-ins-t:hover { background: #27272a; } }
.gm-ins-h .gm-ins-t b { display: inline; flex: none; font-size: 10.5px; font-weight: 800; letter-spacing: 0.07em; text-transform: uppercase; color: #fca5a5; white-space: nowrap; }
.gm-ins-h .gm-ins-t em { flex: none; min-width: 18px; height: 18px; padding: 0 5px; display: grid; place-items: center; font-style: normal; font-size: 10.5px; font-weight: 800; background: #3f3f46; color: #fff; }
.gm-ins-sum { margin-left: auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; font-weight: 700; color: #fdba74; }
.gm-ins-chev { flex: none; width: 7px; height: 7px; margin: 0 1px 0 -1px; border-right: 2px solid #a1a1aa; border-bottom: 2px solid #a1a1aa; transform: rotate(-45deg); transition: transform 160ms var(--gm-ease); }
.gm-ins.is-open .gm-ins-chev { transform: rotate(45deg); margin-top: -3px; }
.gm-ins-h .gm-ins-a { flex: none; margin-right: 8px; padding: 0; border: 0; background: none; font: inherit; font-size: 11px; font-weight: 700; color: #d4d4d8; text-decoration: underline; cursor: pointer; white-space: nowrap; }
/* déplié : hauteur bornée, la liste des demandes garde sa place */
.gm-ins-b { padding: 0 6px 6px; max-height: 32vh; overflow-y: auto; }
.gmao-cpar.gm-ins .gmao-cpar-l, .gmao-cpar.gm-ins .gmao-cpar-l.is-all { padding: 0 6px; max-height: 32vh; overflow-y: auto; }
.gmao-cpar.gm-ins .gmao-cpar-more { width: calc(100% - 12px); margin: 4px 6px 6px; }
.gmao-cpar.gm-ins:not(:has(.gmao-cpar-more)) .gmao-cpar-l { padding-bottom: 6px; }
@media (prefers-reduced-motion: reduce) { .gm-ins-chev { transition: none; } }

/* boutons « + jour » sur les cartes */
.gm-adds { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.gm-add {
  flex: 1 1 auto; height: 36px; padding: 0 10px; display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  border: 0; background: #fff1e6; color: #c2410c; font-size: 13px; font-weight: 800; cursor: pointer; text-transform: capitalize;
  transition: background-color 120ms ease, color 120ms ease, transform 120ms var(--gm-ease);
}
@media (hover: hover) { .gm-add:hover { background: #ff6a13; color: #fff; } }
.gm-add:active { transform: scale(0.97); }
.gm-add em { font-style: normal; padding: 1px 6px; background: #ff6a13; color: #fff; font-size: 11px; text-transform: lowercase; }
@media (hover: hover) { .gm-add:hover em { background: #fff; color: #c2410c; } }
.gm-add.is-span { flex-basis: 100%; background: #0a0a0b; color: #fff; }
.gm-add.is-span em { background: #ff6a13; }
@media (hover: hover) { .gm-add.is-span:hover { background: #27272a; } }

/* fenêtre « Planifier l'intervention » : durée d'arrêt obligatoire */
.gm-req { color: #dc2626; font-weight: 800; }
.gm-arr.is-req input { border-color: #fca5a5 !important; background: #fef2f2 !important; }
.gm-arr.is-req.is-shake { animation: gm-shake 320ms ease; }
.gm-arr.is-req.is-shake::after { content: "Obligatoire : indiquez la durée, ou « Sans arrêt »"; display: block; margin-top: 4px; font-size: 11.5px; font-weight: 700; color: #dc2626; }
.gm-act.is-req textarea { border-color: #fca5a5 !important; background: #fef2f2 !important; }
.gm-act.is-req.is-shake { animation: gm-shake 320ms ease; }
.gm-act.is-req.is-shake::after { content: "Obligatoire : décrivez l'action à réaliser"; display: block; margin-top: 4px; font-size: 11.5px; font-weight: 700; color: #dc2626; }
@media (prefers-reduced-motion: reduce) { .gm-act.is-req.is-shake { animation: none; } }
@keyframes gm-shake { 0%, 100% { transform: none; } 25% { transform: translateX(-5px); } 50% { transform: translateX(4px); } 75% { transform: translateX(-2px); } }
@media (prefers-reduced-motion: reduce) { .gm-arr.is-req.is-shake { animation: none; } }

@media (max-width: 1100px) { .gm-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  .gm-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gm-pick-h h3 { font-size: 23px; }
  .gm-dayp-t h3 { font-size: 20px; }
  .gm-dayp-h { flex-wrap: wrap; }
  .gm-dayp-chg { width: 100%; }
  .gm-cols { grid-template-columns: 1fr; }
  .gm-col-z, .gm-dayp.is-one .gm-col-z { min-height: 200px; }
  .gm-go { width: 100%; margin-left: 0; }
  .gm-pick-f { position: sticky; bottom: 0; z-index: 5; padding: 10px 0 4px; background: #f6f6f7; }
  html.gm-planning .gm-pa-top::before { display: none; }
}

/* ── fenêtre « Planifier l'intervention » (v8.9) ───────────────────────── */
.gm-pm-ov { background: rgba(10, 10, 11, 0.62) !important; }
html body .gm-pm { max-width: 1080px !important; border-radius: 0 !important; box-shadow: 0 30px 80px -30px rgba(0, 0, 0, 0.6) !important; max-height: 92vh !important; }
/* en-tête noir : la machine en grand */
html body .gm-pm-ov.gm-pm-ov.gm-pm-ov.gm-pm-ov.gm-pm-ov .gm-pm-h { background: #0a0a0b !important; border: 0 !important; padding: 18px 22px !important; align-items: flex-start !important; box-shadow: inset 0 -3px 0 #ff6a13 !important; }
html body .gm-pm-ov.gm-pm-ov.gm-pm-ov.gm-pm-ov.gm-pm-ov .gm-pm-t span { display: block; font-size: 12.5px; font-weight: 600; color: #a1a1aa; }
html body .gm-pm-ov.gm-pm-ov.gm-pm-ov.gm-pm-ov.gm-pm-ov .gm-pm-t h3 { margin: 4px 0 0 !important; padding: 0 !important; font-size: 24px !important; line-height: 1.1 !important; font-weight: 800 !important; letter-spacing: -0.02em !important; color: #fff !important; }
html body .gm-pm-ov.gm-pm-ov.gm-pm-ov.gm-pm-ov.gm-pm-ov .gm-pm-t p { margin: 3px 0 0; font-size: 13px; color: #d4d4d8; }
html body .gm-pm-ov.gm-pm-ov.gm-pm-ov.gm-pm-ov.gm-pm-ov .gm-pm-h > button { width: 38px; height: 38px; display: grid; place-items: center; color: #a1a1aa !important; background: #18181b; transition: background-color 120ms ease, color 120ms ease; }
html body .gm-pm-ov.gm-pm-ov.gm-pm-ov.gm-pm-ov.gm-pm-ov .gm-pm-h > button:hover { background: #27272a; color: #fff !important; }
/* corps : deux colonnes, « quoi » sur fond clair, « quand et qui » sur blanc */
html body .gm-pm-b { padding: 0 !important; gap: 0 !important; align-items: stretch !important; background: #fff; }
html body .gm-pm-b > div { padding: 20px 22px !important; }
html body .gm-pm-b > div:first-child { background: #f7f7f8; }
.gm-pm-b > div::before { display: block; margin-bottom: 14px; font-size: 16px; font-weight: 800; letter-spacing: -0.01em; color: #0a0a0b; }
.gm-pm-b > div:first-child::before { content: "Ce qu'il faut faire"; }
.gm-pm-b > div:last-child::before { content: "Quand et qui"; }
/* intitulés en phrase, lisibles */
html body .gm-pm .uppercase.tracking-wide { text-transform: none !important; letter-spacing: 0 !important; font-size: 13px !important; font-weight: 700 !important; color: #27272a !important; }
html body .gm-pm .text-\[10px\].uppercase { text-transform: none !important; letter-spacing: 0 !important; font-size: 12px !important; color: #71717a !important; }
/* constat : une citation avec un filet orange */
html body .gm-pm-b > div:first-child > div:first-child.bg-gray-50 { background: #fff !important; border: 0 !important; border-radius: 0 !important; box-shadow: inset 3px 0 0 #ff6a13; padding: 12px 14px !important; font-size: 14px; color: #27272a; }
/* champs */
html body .gm-pm input[type="date"], html body .gm-pm input[type="time"], html body .gm-pm input[type="number"] { height: 44px; border-radius: 0 !important; border-color: #e4e4e7 !important; font-size: 14px !important; }
html body .gm-pm textarea { border-radius: 0 !important; border-color: #e4e4e7 !important; font-size: 14px !important; line-height: 1.5; min-height: 120px; background: #fff; }
html body .gm-pm input:focus, html body .gm-pm textarea:focus { border-color: #0a0a0b !important; box-shadow: 0 0 0 3px rgba(255, 106, 19, 0.18) !important; outline: none !important; }
/* intervenants : des tuiles à cocher */
html body .gm-pm .max-h-72 { border: 0 !important; border-radius: 0 !important; display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 6px; max-height: 260px !important; }
html body .gm-pm .max-h-72 > label {
  border: 0 !important; background: #f4f4f5; padding: 10px 12px !important; min-height: 46px; transition: background-color 120ms ease, color 120ms ease;
}
html body .gm-pm .max-h-72 > label:hover { background: #e4e4e7 !important; }
html body .gm-pm .max-h-72 > label:has(input:checked) { background: #0a0a0b !important; }
html body .gm-pm .max-h-72 > label:has(input:checked) .text-gray-800 { color: #fff !important; }
html body .gm-pm .max-h-72 > label input[type="checkbox"] { accent-color: #ff6a13; width: 16px; height: 16px; }
/* pied : résumé vivant, puis les boutons */
html body .gm-pm-f { align-items: center; gap: 10px !important; padding: 14px 22px !important; background: #fff !important; border-top: 1px solid #f0f0f2 !important; }
.gm-pm-sum { margin-right: auto; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; font-size: 13px; color: #52525b; min-width: 0; }
.gm-pm-sum b { font-size: 15px; font-weight: 800; color: #0a0a0b; text-transform: capitalize; }
.gm-pm-sum span { display: inline-flex; align-items: center; gap: 6px; }
.gm-pm-sum span::before { content: ""; width: 4px; height: 4px; background: #d4d4d8; }
.gm-pm-sum .is-miss { color: #dc2626; font-weight: 700; }
.gm-pm-sum .is-warn { color: #c2410c; font-weight: 700; }
html body .gm-pm-f > button { height: 46px; border-radius: 0 !important; font-size: 14px !important; padding: 0 18px !important; }
html body .gm-pm-f > button:last-child { background: #ff6a13 !important; color: #fff !important; font-weight: 800 !important; padding: 0 26px !important; transition: background-color 120ms ease, transform 120ms var(--gm-ease); }
html body .gm-pm-f > button:last-child:hover { background: #e55a08 !important; }
html body .gm-pm-f > button:last-child:active { transform: scale(0.98); }
@media (max-width: 1023px) { html body .gm-pm-b > div:first-child { background: #fff; } }
@media (max-width: 767px) {
  html body .gm-pm-ov.gm-pm-ov.gm-pm-ov.gm-pm-ov.gm-pm-ov { padding: 0 !important; align-items: stretch !important; }
  html body .gm-pm-ov.gm-pm-ov.gm-pm-ov.gm-pm-ov.gm-pm-ov > .gm-pm { max-height: 100dvh !important; height: 100dvh; max-width: none !important; padding: 0 !important; margin: 0 !important; }
  html body .gm-pm-ov.gm-pm-ov.gm-pm-ov.gm-pm-ov.gm-pm-ov .gm-pm-t h3 { font-size: 20px !important; }
  html body .gm-pm-b > div { padding: 16px !important; }
  html body .gm-pm-f { flex-wrap: wrap; padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px)) !important; }
  .gm-pm-sum { width: 100%; margin-right: 0; }
  html body .gm-pm-f > button { flex: 1; }
}

/* ── fenêtre de planification v9.0 : propositions, compteur, équipe ─────── */
/* propositions sous « Action à faire » */
.gm-sug { margin-top: 10px; }
.gm-sug-h { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 6px; }
.gm-sug-h > span { font-size: 12px; font-weight: 700; color: #71717a; }
.gm-sug-ai { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 10px; font-size: 12px; font-weight: 700; color: #0a0a0b; background: #fff; border: 1px solid #e4e4e7; transition: border-color 120ms ease, background-color 120ms ease; }
.gm-sug-ai::before { content: ""; width: 8px; height: 8px; background: #ff6a13; transform: rotate(45deg); }
.gm-sug-ai:hover { border-color: #0a0a0b; }
.gm-sug-ai:disabled { color: #a1a1aa; cursor: progress; }
.gm-sug-ai:disabled::before { animation: gm-sug-spin 900ms linear infinite; }
@keyframes gm-sug-spin { to { transform: rotate(405deg); } }
.gm-sug-l { display: flex; flex-direction: column; gap: 6px; }
.gm-sug-c { display: flex; align-items: flex-start; gap: 10px; width: 100%; padding: 9px 12px; text-align: left; background: #fff; border: 1px solid #e4e4e7; font-size: 13.5px; line-height: 1.35; color: #18181b; transition: border-color 120ms ease, background-color 120ms ease, transform 120ms ease; }
.gm-sug-c:hover { border-color: #0a0a0b; }
.gm-sug-c:active { transform: scale(0.99); }
.gm-sug-c i { flex: none; font-style: normal; font-size: 10.5px; font-weight: 800; padding: 2px 6px; margin-top: 1px; background: #f4f4f5; color: #52525b; white-space: nowrap; }
.gm-sug-c.is-ai i { background: #fff1e8; color: #c2410c; }
.gm-sug-c.is-used { background: #f4f4f5; color: #71717a; border-color: transparent; }
.gm-sug-c.is-used::after { content: "✓"; margin-left: auto; font-weight: 800; color: #16a34a; }
.gm-sug-sk { display: block; height: 38px; background: linear-gradient(90deg, #f4f4f5 0%, #e9e9ec 50%, #f4f4f5 100%); background-size: 200% 100%; animation: gm-sug-sh 1.2s ease-in-out infinite; }
@keyframes gm-sug-sh { from { background-position: 100% 0; } to { background-position: -100% 0; } }
.gm-sug-e { margin: 0; font-size: 12.5px; color: #71717a; }
/* compteur de durée d'arrêt */
html body .gm-pm .gm-step { display: flex; align-items: stretch; height: 48px; margin-top: 4px; border: 1px solid #e4e4e7; background: #fff; max-width: 260px !important; }
html body .gm-pm .gm-step.is-req { border-color: #fca5a5; background: #fef2f2; }
html body .gm-pm .gm-step > button { flex: none; width: 52px; display: grid; place-items: center; font-size: 22px; font-weight: 700; color: #0a0a0b; background: #f4f4f5; transition: background-color 120ms ease, transform 100ms ease; user-select: none; }
html body .gm-pm .gm-step > button:hover:not(:disabled) { background: #e4e4e7; }
html body .gm-pm .gm-step > button:active:not(:disabled) { transform: scale(0.94); }
html body .gm-pm .gm-step > button:last-child { background: #0a0a0b; color: #fff; }
html body .gm-pm .gm-step > button:last-child:hover { background: #27272a; }
html body .gm-pm .gm-step > button:disabled { color: #d4d4d8; cursor: not-allowed; }
.gm-step-v { flex: 1; display: flex; align-items: center; justify-content: center; gap: 4px; min-width: 0; }
html body .gm-pm .gm-step-v input { width: 64px; height: 100% !important; border: 0 !important; background: transparent !important; box-shadow: none !important; text-align: right; font-size: 20px !important; font-weight: 800; font-variant-numeric: tabular-nums; color: #0a0a0b; padding: 0 !important; -moz-appearance: textfield; }
.gm-step-v input::-webkit-outer-spin-button, .gm-step-v input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.gm-step-v span { font-size: 15px; font-weight: 700; color: #71717a; }
html body .gm-pm .gm-step:focus-within { border-color: #0a0a0b; box-shadow: 0 0 0 3px rgba(255, 106, 19, 0.18); }
.gm-step-hint { display: block; margin-top: 6px; font-size: 12.5px; font-weight: 600; color: #52525b; }
.gm-step-hint.is-req { color: #dc2626; }
.gm-arr.gm-step.is-shake { animation: gm-shake 380ms ease; }
.gm-arr.gm-step::after { display: none !important; }
html body .gm-pm .gm-arr.gm-step.is-req input { background: transparent !important; }
/* équipe : responsable + aides */
.gm-team-h { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.gm-team-h em { font-style: normal; font-size: 12.5px; font-weight: 600; color: #52525b; }
.gm-team-h em.is-warn { color: #c2410c; }
html body .gm-pm .gm-team-q { width: 100%; height: 40px; padding: 0 12px; margin-bottom: 8px; border: 1px solid #e4e4e7; font-size: 14px; }
.gm-team-l { display: flex; flex-direction: column; gap: 4px; max-height: 300px; overflow-y: auto; }
.gm-team-e { padding: 14px; font-size: 13px; color: #a1a1aa; text-align: center; background: #f7f7f8; }
.gm-tm { display: flex; align-items: center; gap: 10px; padding: 8px 8px 8px 10px; background: #f7f7f8; border: 1px solid transparent; transition: background-color 120ms ease, border-color 120ms ease; }
.gm-tm.is-lead { background: #0a0a0b; }
.gm-tm.is-aide { background: #fff; border-color: #0a0a0b; }
.gm-tm-av { flex: none; width: 34px; height: 34px; display: grid; place-items: center; font-size: 12px; font-weight: 800; letter-spacing: 0.02em; color: #52525b; background: #e4e4e7; }
.gm-tm.is-lead .gm-tm-av { background: #ff6a13; color: #fff; }
.gm-tm.is-aide .gm-tm-av { background: #0a0a0b; color: #fff; }
.gm-tm-n { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.gm-tm-n b { font-size: 14px; font-weight: 700; color: #0a0a0b; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gm-tm-n small { font-size: 11.5px; color: #71717a; }
.gm-tm.is-lead .gm-tm-n b { color: #fff; }
.gm-tm.is-lead .gm-tm-n small { color: #ffb184; font-weight: 700; }
.gm-tm.is-aide .gm-tm-n small { color: #0a0a0b; font-weight: 700; }
.gm-tm-r { flex: none; display: flex; gap: 4px; }
.gm-tm-r button { height: 32px; padding: 0 10px; font-size: 12px; font-weight: 700; color: #3f3f46; background: #fff; border: 1px solid #e4e4e7; transition: background-color 120ms ease, border-color 120ms ease, color 120ms ease, transform 100ms ease; }
.gm-tm-r button:hover { border-color: #0a0a0b; color: #0a0a0b; }
.gm-tm-r button:active { transform: scale(0.96); }
.gm-tm-r button.is-lead.is-on { background: #ff6a13; border-color: #ff6a13; color: #fff; }
.gm-tm-r button.is-aide.is-on { background: #0a0a0b; border-color: #0a0a0b; color: #fff; }
.gm-tm.is-lead .gm-tm-r button:not(.is-on) { background: #18181b; border-color: #3f3f46; color: #d4d4d8; }
@media (max-width: 480px) { .gm-tm-r button { padding: 0 9px; font-size: 12px; } .gm-tm-av { width: 30px; height: 30px; } .gm-tm-x { display: none; } .gm-tm-r button.is-lead::after { content: "."; } .gm-tm { gap: 8px; } }
/* le compteur prend toute la ligne */
html body .gm-pm label:has(> .gm-step) { grid-column: 1 / -1; }

/* ── actions sur plusieurs jours : une barre fusionnée (v9.0) ─────────────── */
.gm-wkg { --gm-wt: 81px; --gm-wl: 48px; }
.gmao-pa-month { --gm-mt: 34px; --gm-ml: 22px; }
.gm-wkg > .gm-wkc > div:first-child { height: 64px; box-sizing: border-box; }
@media (min-width: 640px) { .gmao-pa-month > .gmao-pa-cell > div:first-child { height: 24px; margin-bottom: 4px !important; } }
.gm-lsp { flex: none; }
.gm-lsp-w { height: calc(var(--n) * var(--gm-wl)); }
.gm-lsp-m { height: calc(var(--n) * var(--gm-ml)); }
.gm-bar {
  position: relative; z-index: 3; align-self: start; min-width: 0; overflow: hidden;
  display: grid; text-align: left; color: #fff; background: #0a0a0b; box-shadow: inset 4px 0 0 #ff6a13;
  transition: background-color 120ms ease, transform 120ms ease, box-shadow 120ms ease; cursor: pointer;
}
.gm-bar:hover { background: #27272a; }
.gm-bar:active { transform: scale(0.995); }
.gm-bar:focus-visible { outline: 2px solid #ff6a13; outline-offset: 2px; }
.gm-bar.is-ok { background: #14532d; }
.gm-bar.is-nok { background: #7f1d1d; }
.gm-bar.is-done { background: #3f3f46; }
.gm-bar.k-C { box-shadow: inset 4px 0 0 #f87171; }
.gm-bar > * { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gm-bar-k { font-size: 11px; font-weight: 800; font-variant-numeric: tabular-nums; color: #ffb184; }
.gm-bar-t { font-size: 12.5px; font-weight: 700; }
.gm-bar-n { font-style: normal; font-size: 10.5px; font-weight: 800; padding: 1px 6px; background: #ff6a13; color: #fff; justify-self: end; }
.gm-bar-m, .gm-bar-who { font-size: 11px; color: #d4d4d8; }
.gm-bar-who { justify-self: end; font-weight: 700; color: #fff; }
.gm-bar-who.is-none { color: #fca5a5; }
/* semaine : deux lignes */
.gm-bar--w {
  margin: calc(var(--gm-wt) + var(--ln) * var(--gm-wl)) 9px 0; height: calc(var(--gm-wl) - 6px);
  grid-template-columns: auto minmax(0, 1fr) auto; grid-template-rows: 1fr 1fr; column-gap: 8px; align-items: center; padding: 3px 10px 3px 12px;
}
.gm-bar--w .gm-bar-k { grid-row: 1; grid-column: 1; }
.gm-bar--w .gm-bar-t { grid-row: 1; grid-column: 2; }
.gm-bar--w .gm-bar-n { grid-row: 1; grid-column: 3; }
.gm-bar--w .gm-bar-m { grid-row: 2; grid-column: 1 / 3; }
.gm-bar--w .gm-bar-who { grid-row: 2; grid-column: 3; }
/* mois : une ligne */
.gm-bar--m {
  margin: calc(var(--gm-mt) + var(--ln) * var(--gm-ml)) 4px 0; height: calc(var(--gm-ml) - 3px);
  grid-template-columns: auto minmax(0, 1fr) auto; column-gap: 6px; align-items: center; padding: 0 6px 0 9px;
}
.gm-bar--m .gm-bar-k { font-size: 10px; }
.gm-bar--m .gm-bar-t { font-size: 11.5px; }
.gm-bar--m .gm-bar-n { font-size: 10px; padding: 0 4px; }
.gm-bar--m .gm-bar-m, .gm-bar--m .gm-bar-who { display: none; }
/* la barre continue sur la semaine d'avant / d'après */
.gm-bar.cut-l { margin-left: 0; box-shadow: none; padding-left: 16px; }
.gm-bar.cut-l::before { content: "‹"; position: absolute; left: 4px; top: 50%; transform: translateY(-50%); font-weight: 800; color: #ff6a13; }
.gm-bar.cut-r { margin-right: 0; padding-right: 16px; }
.gm-bar.cut-r::after { content: "›"; position: absolute; right: 4px; top: 50%; transform: translateY(-50%); font-weight: 800; color: #ff6a13; }
@media (max-width: 639px) { .gm-bar--m, .gm-lsp-m { display: none; } }
/* page « jours choisis » : barres sur ordinateur, cartes « Jour 1/2 » sur téléphone */
.gm-cols { --gm-dt: 54px; --gm-dl: 50px; }
.gm-cols > .gm-col > .gm-col-h { height: 46px; box-sizing: border-box; }
.gm-lsp-d { height: calc(var(--n) * var(--gm-dl) - 8px); }
.gm-bar--d {
  margin: calc(var(--gm-dt) + var(--ln) * var(--gm-dl)) 0 0; height: calc(var(--gm-dl) - 6px);
  grid-template-columns: auto minmax(0, 1fr) auto; grid-template-rows: 1fr 1fr; column-gap: 10px; align-items: center; padding: 4px 12px 4px 14px;
}
.gm-bar--d .gm-bar-k { grid-row: 1; grid-column: 1; }
.gm-bar--d .gm-bar-t { grid-row: 1; grid-column: 2; font-size: 13.5px; }
.gm-bar--d .gm-bar-n { grid-row: 1; grid-column: 3; }
.gm-bar--d .gm-bar-m { grid-row: 2; grid-column: 1 / 3; font-size: 12px; }
.gm-bar--d .gm-bar-who { grid-row: 2; grid-column: 3; font-size: 12px; }
@media (min-width: 768px) { .gm-cols .gmao-fi.gm-md { display: none; } }
@media (max-width: 767px) {
  .gm-cols > .gm-col { grid-row: auto !important; grid-column: auto !important; }
  .gm-bar--d, .gm-lsp-d { display: none; }
}
/* plusieurs actions d'une même machine sur les mêmes jours : une barre « N actions » */
.gm-bar-t i { font-style: normal; margin-left: 8px; padding: 0 5px; font-size: 10.5px; font-weight: 800; background: #fff; color: #0a0a0b; }
.gm-bar--m .gm-bar-t i { font-size: 9.5px; margin-left: 6px; }
.gm-bar.is-grp { box-shadow: inset 4px 0 0 #ff6a13, inset 0 0 0 1px rgba(255, 255, 255, 0.12); }
/* trop de barres : « + N autres » au lieu de déborder sur la semaine suivante */
html body .gm-bar.gm-bar-more { background: #fff; color: #0a0a0b; box-shadow: inset 0 0 0 1px #0a0a0b; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: 1fr; }
.gm-bar.gm-bar-more:hover { background: #fff1e8; }
.gm-bar-more .gm-bar-t { grid-row: 1 !important; grid-column: 1 !important; }
.gm-bar-more .gm-bar-n { grid-row: 1 !important; grid-column: 2 !important; background: #0a0a0b; }
/* carte posée un jour donné d'une action multi-jours */
.gm-fi-span { margin-left: auto; padding: 1px 6px; font-size: 10.5px; font-weight: 800; background: #0a0a0b; color: #fff; white-space: nowrap; }
.gmao-fi-who b { font-weight: 800; color: inherit; }
html body .gm-lead-chip { background: #0a0a0b !important; color: #fff !important; }
.gm-lead-chip b { color: #ffb184; font-weight: 800; }

/* ── fluidité ──────────────────────────────────────────────────────── */
/* « transition-all » sur le menu faisait animer chaque propriété à chaque survol */
aside nav > button { transition-property: background-color, color !important; transition-duration: 120ms !important; transition-timing-function: ease !important; }
aside nav > button svg { transition: color 120ms ease !important; transform: none !important; }
/* liste mobile des demandes : le navigateur saute les cartes hors écran */
.gmao-mdt-list > * { content-visibility: auto; contain-intrinsic-size: auto 140px; }
/* « Afficher plus » des Demandes Travaux */
.gm-more { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 12px; font-size: 12.5px; color: #6b6b75; }
.gm-more-row td { padding: 0 !important; background: #fafafb; }
.gm-more-btn { height: 32px; padding: 0 14px; border: 1px solid #d4d4d8; background: #fff; font: inherit; font-size: 12.5px; font-weight: 600; color: #0a0a0b; cursor: pointer; transition: border-color 120ms ease, transform 120ms var(--gm-ease); }
.gm-more-btn.ghost { border-color: transparent; background: transparent; color: #6b6b75; }
@media (hover: hover) { .gm-more-btn:hover { border-color: #0a0a0b; } .gm-more-btn.ghost:hover { color: #0a0a0b; } }
.gm-more-btn:active { transform: scale(0.97); }
table tbody tr.gm-more-row:hover > td { box-shadow: none !important; }

/* ── animations ────────────────────────────────────────────────────── */
@keyframes gm-page-in { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
@keyframes gm-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes gm-pop-in { from { opacity: 0; transform: translateY(6px) scale(0.985); } to { opacity: 1; transform: none; } }
/* changement de page : le nouveau contenu arrive, sans faire attendre */
/* « backwards » et non « both » : une animation de transform laissée « en vigueur » après la fin
   fait du contenu de la page le cadre des fenêtres « fixed » (elles s'ouvraient coupées sous l'en-tête). */
main > * { animation: gm-page-in 180ms var(--gm-ease) backwards; }
/* fenêtres : fond qui s'assombrit, panneau qui se pose */
.fixed.inset-0[class*="bg-black"] { animation: gm-fade-in 140ms ease-out both; }
.fixed.inset-0[class*="bg-black"] > div[class*="bg-white"] { animation: gm-pop-in 200ms var(--gm-ease) both; }
/* appui : le bouton répond sous le doigt */
button:not(:disabled):not(.absolute):not([class*="translate"]):active { transform: scale(0.97); }
aside nav > button:active, tr button:active, button.w-full:active { transform: scale(0.99) !important; }
button { -webkit-tap-highlight-color: transparent; }
/* la cloche ne se balance plus à chaque survol */
.group:hover .group-hover\:animate-swing { animation: none !important; }

/* ── tableaux (v7.4) ──────────────────────────────────────────────────
   Les en-têtes ne sont plus coupés, la flèche de filtre n'apparaît qu'au survol,
   l'en-tête reste visible en défilant, le survol d'une ligne est discret. */
table.tbx-on thead th { padding-right: 22px !important; }
table.tbx-on thead th:empty { padding-right: 8px !important; }
table.tbx-on thead th:empty::after { content: none !important; }
table.tbx-on thead th::after { opacity: 0; }
table.tbx-on thead th:hover::after, table.tbx-on thead th.tbx-filt-on::after { opacity: 1; }
@media (hover: none) { table.tbx-on thead th::after { opacity: 1; } }
table.tbx-on thead th { white-space: nowrap; }
table.tbx-on thead tr { border-bottom-width: 1px !important; }
/* en-tête fixe quand le tableau tient dans la largeur (gm-fit posé par table-export.js) */
.gm-fit { overflow: visible !important; }
.gm-fit > table.tbx-on { overflow: clip !important; } /* « hidden » sur le tableau empêchait l'en-tête de rester visible */
html body .gm-fit > table.tbx-on > thead th {
  position: sticky !important; top: 0; z-index: 3;
  background-color: #f4f4f5; box-shadow: inset 0 -1px #d4d4d8;
}
/* cache au-dessus de l'en-tête : les lignes ne défilent pas visibles dans la marge haute */
html body .gm-fit > table.tbx-on > thead th::before { content: ""; position: absolute; left: -1px; right: -1px; top: -18px; height: 18px; background: #f9fafb; pointer-events: none; }
/* survol d'une ligne : fond léger + filet orange à gauche (au lieu du cadre bleu de 2 px) */
html body table tbody tr:hover > td { box-shadow: none !important; background-image: linear-gradient(rgba(10, 10, 11, 0.028), rgba(10, 10, 11, 0.028)); }
html body table tbody tr:hover > td:first-child { box-shadow: inset 2px 0 #ff6a13 !important; }
html body table tbody tr.gm-more-row:hover > td { background-image: none; box-shadow: none !important; }
/* l'état et la date ne se coupent plus */
table.tbx-on td .whitespace-nowrap { white-space: nowrap; }

@media (prefers-reduced-motion: reduce) {
  html body #gmao-net-pill.gm-net-docked, html body #gmao-net-pill.gm-net-dot > span:first-child { animation: none !important; }
  main > *, .fixed.inset-0[class*="bg-black"], .fixed.inset-0[class*="bg-black"] > div[class*="bg-white"] { animation: none !important; }
  button:active { transform: none !important; }
}
#gst table tbody tr:hover > td { background-image: none; }

/* ── v9.2.2 — Plan d'action · barres aux couleurs des cartes ─────────────────
   Une action sur plusieurs jours garde la couleur de son état, comme une carte :
   Planifié bleu · Réalisé (à réceptionner / en observation) ambre · OK vert · NOK rouge · Tournée violet. */
.gm-bar { --fi: #2563eb; --fi-bg: #eff6ff; color: #18181b; background: var(--fi-bg); box-shadow: inset 3px 0 0 var(--fi); box-shadow: inset 3px 0 0 var(--fi), inset 0 0 0 1px color-mix(in srgb, var(--fi) 30%, transparent); }
.gm-bar.is-done { --fi: #d97706; --fi-bg: #fffbeb; background: var(--fi-bg); }
.gm-bar.is-ok { --fi: #059669; --fi-bg: #ecfdf5; background: var(--fi-bg); }
.gm-bar.is-nok { --fi: #dc2626; --fi-bg: #fef2f2; background: var(--fi-bg); }
.gm-bar.k-T { --fi: #7c3aed; --fi-bg: #f5f3ff; }
.gm-bar.k-C { box-shadow: inset 3px 0 0 var(--fi), inset 0 0 0 1px color-mix(in srgb, var(--fi) 30%, transparent); }
.gm-bar:hover { background: color-mix(in srgb, var(--fi) 15%, #fff); }
.gm-bar:focus-visible { outline-color: var(--fi); }
.gm-bar-k { color: var(--fi); }
.gm-bar-m { color: #52525b; }
.gm-bar-who { color: #18181b; }
.gm-bar-who.is-none { color: #b45309; }
.gm-bar-n { background: var(--fi); color: #fff; }
.gm-bar-t i { background: #fff; color: var(--fi); box-shadow: inset 0 0 0 1px var(--fi); }
.gm-bar.is-grp { box-shadow: inset 3px 0 0 var(--fi), inset 0 0 0 1px var(--fi); }
.gm-bar.cut-l { box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--fi) 30%, transparent); }
.gm-bar.cut-l::before, .gm-bar.cut-r::after { color: var(--fi); }

/* ── v9.2.2 — Suivi · vue Mois : en-tête noir « date | arrêts programmés »,
   puis la liste des actions de la semaine (barres fusionnées sur plusieurs jours,
   la plus longue en haut puis en descendant). L'indicateur de défilement se place
   à gauche de la case survolée. */
.gmao-pa-month { --gm-sl: 21px; }
/* en-tête de case : bandeau noir, date comprise */
.gmao-pa-month > .gmao-pa-cell.gm-su > div:first-child {
  margin: -4px -4px 3px !important; padding: 2px 4px; background: #0a0a0b; color: #fff !important;
  align-self: stretch; justify-content: flex-start;
}
@media (min-width: 640px) {
  .gmao-pa-month > .gmao-pa-cell.gm-su > div:first-child {
    height: var(--gm-hd, 30px); margin: -6px -6px 4px !important; padding: 3px 6px; align-items: flex-start; overflow: hidden;
  }
}
.gm-su-d { flex: none; display: inline-flex; align-items: center; min-height: 20px; }
.gm-su-hd > .gm-su-d { padding-right: 7px; margin-right: 2px; border-right: 1px solid #3f3f46; color: #fff; }
/* arrêts programmés à côté de la date : machine + heure */
.gm-su-hd > .gmao-stc { flex: 1 1 0; min-width: 0; margin: 2px 0 0; max-height: 100%; overflow-y: auto; scrollbar-width: none; gap: 2px; }
.gm-su-hd > .gmao-stc::-webkit-scrollbar { display: none; }
.gm-su-hd .gmao-stc-i { background: transparent; padding: 0 2px; font-size: 10.5px; }
.gm-su-hd .gmao-stc-i em { color: #ffb184; }
.gm-su-hd .gmao-stc-i.is-off { background: transparent; color: #71717a; }
.gm-su-hd .gmao-stc-i.is-todo { background: #dc2626; }
.gm-su-hd .gmao-stc-i.is-todo em { color: #fff; }
.gm-su-hd .gmao-stc-i:hover { background: #27272a; }
/* la liste de la semaine */
.gm-wl { position: relative; z-index: 3; align-self: stretch; min-height: 0; margin-top: calc(var(--gm-hd, 30px) + 6px); overflow: hidden; cursor: pointer; overscroll-behavior: contain; --gm-sc: 0; }
/* barres communes (plusieurs cases) : défilent ensemble */
.gm-wl-m { position: absolute; left: 0; right: 0; top: 0; display: grid; grid-template-columns: repeat(var(--gm-n, 7), minmax(0, 1fr)); grid-auto-rows: var(--gm-sl); column-gap: 1px; will-change: transform; }
/* actions propres à une case : sous ses barres communes, défilent seules une fois celles-ci passées */
.gm-wl-c { position: absolute; top: 0; left: calc((100% + 1px) * var(--gm-k) / var(--gm-n, 7)); width: calc((100% + 1px) / var(--gm-n, 7) - 1px); padding-top: calc(var(--gm-pt, 0) * var(--gm-sl)); display: flex; flex-direction: column; pointer-events: none; will-change: transform; }
.gm-wl-c > .gm-bar--s { flex: none; align-self: stretch; min-width: 0; pointer-events: auto; margin-bottom: 3px; }
/* indicateur de défilement : à gauche de la case survolée, pour cette case
   (ses barres communes d'abord, puis ses propres actions) */
.gm-wl-sb {
  position: absolute; z-index: 5; top: 0; bottom: 4px; width: 5px; display: none; touch-action: none;
  left: calc((100% + 1px) * var(--gm-sc) / var(--gm-n, 7)); background: rgba(10, 10, 11, 0.1); border-radius: 3px;
  opacity: 0.55; transition: left 140ms ease, opacity 140ms ease; cursor: grab;
}
.gm-wl.has-ov .gm-wl-sb { display: block; }
.gm-wl:hover .gm-wl-sb, .gm-wl-sb:active { opacity: 1; }
.gm-wl-sb i { position: absolute; left: 0; right: 0; top: var(--gm-tt, 0px); height: var(--gm-th, 16px); background: #0a0a0b; border-radius: 3px; }
.gm-wl-sb:hover i, .gm-wl-sb:active i { background: #ff6a13; }
.gm-bar--s { margin: 0 4px 0 7px; height: calc(var(--gm-sl) - 3px); display: flex; align-items: center; gap: 5px; padding: 0 6px 0 8px; }
.gm-bar--s .gm-bar-k { flex: none; font: 700 10px/1 "Geist Mono", ui-monospace, monospace; }
.gm-bar--s .gm-bar-t { flex: 0 1 auto; font-size: 10.5px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.01em; }
.gm-bar--s .gm-bar-a { flex: 1 1 0; font-size: 10.5px; color: #52525b; }
.gm-bar--s.is-grp .gm-bar-a { flex: 0 1 auto; font-weight: 800; color: var(--fi); }
.gm-bar--s .gm-bar-n { flex: none; margin-left: auto; font-size: 9.5px; padding: 0 4px; line-height: 14px; }
.gm-bar--s.cut-l { margin-left: 0; padding-left: 14px; }
.gm-bar--s.cut-r { margin-right: 0; padding-right: 14px; }
@media (max-width: 639px) {
  .gm-wl { display: none; }
  .gm-su-hd { flex-wrap: wrap; }
  .gm-su-hd > .gm-su-d { border-right: 0; padding-right: 0; }
  .gm-su-hd > .gmao-stc { flex-basis: 100%; flex-direction: row; flex-wrap: wrap; margin: 1px 0 0; }
  .gm-su-hd .gmao-stc-i, .gm-su-hd .gmao-stc-i.is-todo { flex: none; width: 8px; height: 4px; padding: 0; background: #ef4444; }
  .gm-su-hd .gmao-stc-i i { display: none; }
}
/* aujourd'hui : pastille orange sur le bandeau noir */
.gm-su-hd .gm-su-d > span.bg-primary { background: #ff6a13 !important; color: #fff !important; }
