/* =====================================================================
   GANDALF — UX refresh 2026
   Couche volontairement additive. Elle harmonise les espaces validés sans
   modifier les composants métier ni leurs contrats JavaScript.
   ===================================================================== */

:root {
  --ux-max: 1376px;
  --ux-radius-lg: 18px;
  --ux-radius-md: 12px;
  --ux-control-height: 44px;
  --ux-shadow: 0 1px 2px rgba(37, 31, 22, .04), 0 14px 42px -30px rgba(37, 31, 22, .32);
}

/* États partagés : mêmes repères pour attendre, filtrer et réessayer.
   Les variables du thème restent la source de couleur, y compris en sombre. */
.ux-state {
  box-sizing: border-box; min-width: 0; min-height: 152px;
  display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 16px;
  padding: clamp(20px, 3vw, 32px); border: 1px solid var(--gs-line, #e7e2d9);
  border-radius: var(--ux-radius-md); background: var(--gs-panel, #fff); color: var(--gs-ink, #272724);
}
.ux-state__message { width: 100%; display: grid; grid-template-columns: 36px minmax(0, 1fr); column-gap: 12px; row-gap: 4px; align-items: center; }
.ux-state__icon { grid-row: 1 / 3; display: grid; place-items: center; box-sizing: border-box; width: 36px; height: 36px; border-radius: 50%; background: var(--gs-panel-2, #f5f1e8); color: var(--gs-ink-dim, #655e50); font-size: 20px; font-weight: 700; }
.ux-state__title { margin: 0; font-size: 16px; font-weight: 650; line-height: 1.4; overflow-wrap: anywhere; }
.ux-state__description { grid-column: 2; margin: 0; max-width: 65ch; font-size: 14px; line-height: 1.5; color: var(--gs-ink-dim, #655e50); overflow-wrap: anywhere; }
.ux-state--error .ux-state__icon { color: var(--crm-crit-ink, #a14539); }
.ux-state--loading .ux-state__icon { width: 24px; height: 24px; margin: 6px; border: 2px solid var(--gs-line-strong, #e3d6b8); border-top-color: var(--gs-accent, #a8863f); background: none; animation: ux-state-spin .8s linear infinite; }
.ux-state__action, .ux-filter-reset {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: var(--ux-control-height); max-width: 100%; box-sizing: border-box; padding: 10px 16px;
  border: 1px solid var(--gs-line-strong, #d9cfba); border-radius: 10px;
  background: var(--gs-panel, #fff); color: var(--gs-ink, #272724);
  font: inherit; font-size: 14px; font-weight: 600; line-height: 1.4; cursor: pointer;
}
.ux-state__action:hover, .ux-filter-reset:hover { background: var(--gs-panel-2, #f5f1e8); }
.ux-state__action:disabled { opacity: .6; cursor: wait; }
.ux-state--compact { min-height: 104px; border: 0; border-radius: 0; padding: 20px; }
.ux-state__action:focus-visible, .ux-filter-reset:focus-visible { outline: 2px solid var(--gs-ink, #272724); outline-offset: 2px; }
.ux-filter-feedback { min-height: 44px; display: flex; align-items: center; flex-wrap: wrap; gap: 8px 16px; margin: 0 0 12px; color: var(--gs-ink-dim, #655e50); font-size: 14px; }
.ux-filter-feedback .ux-filter-reset { margin-inline-start: auto; }
.ux-filter-reset[hidden] { display: none; }
@keyframes ux-state-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .ux-state--loading .ux-state__icon { animation: none; }
}

/* Le focus ne dépend ni du survol ni de la couleur de sélection. */
body.shell-on :is(button, a, input, select, textarea, summary, [tabindex="0"]):focus-visible {
  outline: 2px solid var(--gs-ink);
  outline-offset: 2px;
}

/* Exception : la barre de recherche du lanceur « Espaces et applications ».
   Le champ est nu (border:0) à l'intérieur d'un cadre qui porte déjà son propre
   repère de focus — .gshell-launcher-search:focus-within passe la bordure en
   accent et ajoute un halo. Le contour d'encre générique venait donc se poser
   EN PLUS, par-dessus la barre, d'où le rectangle sombre signalé. On le retire
   ici seulement : l'indicateur de focus reste, porté par le cadre.
   Le champ est ouvert avec le focus, donc le contour était visible d'emblée. */
body.shell-on .gshell-launcher-search input:focus-visible {
  outline: 0;
  outline-offset: 0;
}

.gshell-launcher-status { margin: 0 0 10px; padding: 12px 14px; border-radius: 10px; background: var(--gs-panel-2); color: var(--gs-ink-dim); font-size: 14px; line-height: 1.5; }
.gshell-launcher-retry { margin-bottom: 16px; }

/* ── Aujourd'hui : hiérarchie plus nette, lecture plus confortable ───── */
.today-view > *:not(.today-head) { max-width: var(--ux-max); }
.today-view > .today-head {
  padding-left: max(34px, calc((100% - var(--ux-max)) / 2));
  padding-right: max(34px, calc((100% - var(--ux-max)) / 2));
  min-height: 126px;
  margin-bottom: 26px;
}
.today-head .today-hi { font-size: 31px; font-weight: 720; }
.today-head .today-date { font-size: 12.5px; }
.today-head .today-quote { max-width: 64ch; font-size: 12px; }
.today-grid { grid-template-columns: minmax(0, 1.7fr) minmax(340px, .8fr); gap: 24px; }
.today-col { gap: 11px; }
.today-brief {
  padding: 22px 24px;
  border-color: var(--gs-line-strong);
  box-shadow: var(--ux-shadow);
}
.today-brief .bname { font-size: 14.5px; }
.today-brief .btext { max-width: 76ch; font-size: 14.5px; line-height: 1.65; }
.today-brief-actions button { min-height: 39px; padding-inline: 14px; font-size: 12px; }
.today-lbl { margin-top: 4px; padding: 17px 3px 9px; font-size: 11.5px; }
.today-row { min-height: 66px; padding: 13px 15px; background: var(--gs-panel); }
.today-row .t1 { font-size: 13.5px; }
.today-row .t2 { font-size: 11px; }
.today-stats { gap: 10px; }
.today-stat { min-height: 82px; padding: 15px 13px; display: flex; flex-direction: column; justify-content: center; }
.today-stat .n { font-size: 25px; }
.today-stat .l { margin-top: 3px; font-size: 10px; letter-spacing: .04em; }
.today-recent-item { min-height: 62px; padding: 11px 13px; }
.today-fav { min-height: 104px; justify-content: space-between; }

/* ── Lanceur : vrai centre de navigation, dense mais respirant ────────── */
.gshell-launcher-overlay { padding: 72px 28px 28px; align-items: flex-start; }
.gshell-launcher {
  width: min(1292px, 100%);
  max-height: calc(100dvh - 100px);
  border-radius: var(--ux-radius-lg);
  box-shadow: 0 34px 100px -28px rgba(16, 13, 9, .58);
}
.gshell-launcher-head { padding: 20px 24px 16px; border-bottom: 0; }
.gshell-launcher-symbol { width: 46px; height: 46px; border-radius: 13px; }
.gshell-launcher-heading h2 { font-size: 25px; }
.gshell-launcher-heading p { font-size: 13px; }
.gshell-launcher-search { margin: 2px 24px 0; height: 48px; border-radius: 12px; }
.gshell-launcher-search input { font-size: 14px; }
.gshell-launcher-categories {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 14px 24px 12px;
  overflow-x: auto;
  scrollbar-width: none;
}
.gshell-launcher-categories::-webkit-scrollbar { display: none; }
.gshell-launcher-categories button {
  min-height: 34px;
  flex: 0 0 auto;
  border: 1px solid transparent;
  border-radius: 9px;
  padding: 0 13px;
  background: transparent;
  color: var(--gs-ink-faint);
  font: 650 12px 'Inter', sans-serif;
  cursor: pointer;
}
.gshell-launcher-categories button:hover { color: var(--gs-ink); background: var(--gs-panel-2); }
.gshell-launcher-categories button.on {
  color: var(--gs-ink);
  border-color: var(--gs-line-strong);
  background: var(--gs-panel-2);
}
.gshell-launcher-body { padding: 10px 24px 22px; }
.gshell-launcher-section + .gshell-launcher-section,
.gshell-native-group { margin-top: 24px; }
.gshell-launcher-section-head { margin-bottom: 10px; }
.gshell-launcher-section-head h3 { font-family: 'Inter', sans-serif; font-size: 11px; letter-spacing: .08em; }
.gshell-launcher-grid { grid-template-columns: repeat(auto-fill, minmax(245px, 1fr)); gap: 10px; }
.gshell-launcher-card { border-radius: 13px; box-shadow: 0 1px 1px rgba(30, 24, 16, .02); }
.gshell-launcher-card:hover { transform: translateY(-2px); box-shadow: var(--ux-shadow); }
.gli-main { min-height: 96px; gap: 14px; padding: 14px 45px 14px 14px; }
.gli-icon { width: 54px; height: 54px; border-radius: 12px; }
.gli-copy strong { font-size: 14.5px; }
.gli-copy small { font-size: 11.5px; line-height: 1.4; }
.gshell-launcher-foot {
  padding: 11px 24px 14px;
  border-top: 1px solid var(--gs-line);
  color: var(--gs-ink-faint);
  font-size: 11.5px;
}
.gshell-launcher-foot > span:first-child { margin-right: 7px; color: var(--gs-accent); font-weight: 750; }
.gshell-launcher-foot-copy { color: inherit; font-weight: inherit; }

/* ── Notes : liste et document dans un seul espace de travail ────────── */
.notes-view {
  max-width: none;
  min-height: calc(100dvh - var(--gs-head-h, 64px));
  padding: 0;
  display: grid;
  grid-template-columns: 374px minmax(0, 1fr);
  background: var(--gs-ground);
}
.notes-view.hidden { display: none; }
#notesHome {
  min-width: 0;
  padding: 24px 18px 34px;
  border-right: 1px solid var(--gs-line);
  background: var(--gs-panel);
  overflow-y: auto;
}
.notes-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.notes-head h2 { margin: 3px 0 0; color: var(--gs-ink); font: 720 25px/1.1 'Outfit', sans-serif; }
.notes-eyebrow { color: var(--gs-ink-faint); font: 700 9.5px/1 'Inter', sans-serif; text-transform: uppercase; letter-spacing: .14em; }
.notes-head-add {
  width: 36px; height: 36px; border: 0; border-radius: 10px;
  background: var(--gs-ink); color: var(--gs-panel); font: 600 21px/1 'Inter', sans-serif; cursor: pointer;
}
.notes-search {
  height: 42px; display: flex; align-items: center; gap: 8px; padding: 0 12px;
  border: 1px solid var(--gs-line); border-radius: 11px; background: var(--gs-panel-2); color: var(--gs-ink-faint);
}
.notes-search:focus-within { border-color: var(--gs-accent); box-shadow: 0 0 0 3px var(--gs-accent-soft); }
.notes-search input { min-width: 0; flex: 1; border: 0; outline: 0; background: transparent; color: var(--gs-ink); font: 500 12.5px 'Inter', sans-serif; }
.notes-filters { display: flex; gap: 3px; margin: 12px 0 15px; }
.notes-filters button {
  min-height: 31px; border: 0; border-radius: 8px; padding: 0 9px; background: transparent;
  color: var(--gs-ink-faint); font: 650 10.5px 'Inter', sans-serif; cursor: pointer;
}
.notes-filters button:hover, .notes-filters button.on { color: var(--gs-ink); background: var(--gs-panel-2); }
.notes-filters button > span:last-child { margin-left: 3px; opacity: .65; }
.notes-new-btn { min-height: 44px; margin-bottom: 12px; padding: 10px 13px; border-radius: 11px; font-size: 12.5px; }
.notes-grid { display: flex; flex-direction: column; gap: 7px; }
.note-card {
  min-height: 88px; padding: 13px 14px; gap: 5px; border-radius: 11px; transform: none;
}
.note-card:hover { transform: none; background: var(--gs-panel-2); }
.note-card.is-active { border-color: var(--gs-accent); background: var(--gs-accent-soft); box-shadow: inset 3px 0 0 var(--gs-accent); }
.note-card.pinned { background: linear-gradient(145deg, var(--gs-accent-soft), var(--gs-panel)); }
.note-title { font-size: 13.5px; }
.note-body { -webkit-line-clamp: 2; font-size: 11.5px; }
.notes-workspace-empty {
  min-width: 0; display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 48px; text-align: center; color: var(--gs-ink-dim);
}
.notes-workspace-empty.hidden { display: none; }
.notes-empty-mark { width: 64px; height: 64px; display: grid; place-items: center; border-radius: 20px; background: var(--gs-accent-soft); color: var(--gs-accent); font-size: 28px; }
.notes-workspace-empty h3 { margin: 18px 0 6px; color: var(--gs-ink); font: 700 21px 'Outfit', sans-serif; }
.notes-workspace-empty p { max-width: 46ch; margin: 0 0 20px; font-size: 13px; line-height: 1.55; color: var(--gs-ink-faint); }
.notes-view .note-page {
  max-width: none; min-width: 0; margin: 0; padding: 0; background: var(--gs-panel); overflow-y: auto;
}
.note-page-bar {
  position: sticky; top: 0; z-index: 4; min-height: 63px; box-sizing: border-box;
  margin: 0; padding: 11px 24px; border-bottom: 1px solid var(--gs-line); background: color-mix(in srgb, var(--gs-panel) 92%, transparent);
  backdrop-filter: blur(14px);
}
.note-page-bar > .btn:first-child { display: none; }
.note-read, .note-edit { max-width: 820px; margin: 0 auto; padding: 52px 54px 90px; }
.note-read h1 { font: 720 34px/1.22 'Outfit', sans-serif; letter-spacing: -.025em; }
.note-read .note-view-body { max-width: 68ch; font-size: 15.5px; line-height: 1.72; }
.note-edit textarea, .note-edit .grt-editor { min-height: 58vh; font-size: 15px; line-height: 1.65; }

/* ── Communications : thread central + contexte actionnable ─────────── */
body.shell-on .chat-view { background: var(--gs-ground); }
body.shell-on .chat-header { min-height: 64px; padding-inline: 22px; }
/* ≥861px SEULEMENT : sans la garde, cette règle (chargée après shell.css)
   écrasait l'override mobile `1fr` — la liste des conversations restait à
   330 px sur un écran de 430, laissant 100 px de vide à droite (capture
   Mathieu 02/09). */
@media (min-width: 861px) { body.shell-on .chat-body { grid-template-columns: 330px minmax(0, 1fr); } }
body.shell-on .chat-sidebar { background: var(--gs-panel); }
.chat-sidebar-actions { padding: 16px 16px 10px; border-bottom: 0; }
.chat-search-row { padding: 0 16px 10px; }
.chat-search-row input { min-height: 42px; border-radius: 11px; }
.chat-tabs-row { padding: 0 16px 13px; border-bottom: 1px solid var(--gs-line); }
.chat-tab { min-height: 36px; border-radius: 9px; background: transparent; color: var(--gs-ink-faint); }
.chat-tab.active { background: var(--gs-ink); border-color: var(--gs-ink); color: var(--gs-panel); }
.chat-pane { min-width: 0; }
.chat-pane-header { min-height: 65px; box-sizing: border-box; padding-inline: 18px; border-bottom: 1px solid var(--gs-line); }
.chat-workspace { flex: 1; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) 286px; }
.chat-thread { min-width: 0; min-height: 0; display: flex; flex-direction: column; }
body.shell-on .chat-messages { min-height: 0; padding: 22px max(22px, calc((100% - 850px) / 2)); background: var(--gs-ground); }
body.shell-on .chat-composer { padding: 12px max(18px, calc((100% - 850px) / 2)) 16px; background: var(--gs-panel); }
.chat-context { min-width: 0; overflow-y: auto; padding: 17px 15px 24px; border-left: 1px solid var(--gs-line); background: var(--gs-panel); }
.chat-context-head, .chat-context-label { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.chat-context-head { margin-bottom: 7px; color: var(--gs-ink); font-size: 14px; font-weight: 750; }
.chat-context-head button { width: 30px; height: 30px; border: 0; border-radius: 8px; background: transparent; color: var(--gs-ink-faint); cursor: pointer; }
.chat-context-head button:hover { background: var(--gs-panel-2); color: var(--gs-ink); }
.chat-context-section { padding: 15px 0; border-top: 1px solid var(--gs-line); }
.chat-context-label { margin-bottom: 10px; color: var(--gs-ink-faint); font-size: 10px; font-weight: 750; text-transform: uppercase; letter-spacing: .08em; }
.chat-context-label small { min-width: 18px; height: 18px; display: grid; place-items: center; border-radius: 9px; background: var(--gs-panel-2); font-size: 9px; }
.chat-context-people { width: 100%; display: flex; align-items: center; padding: 3px 0; border: 0; background: transparent; color: var(--gs-ink-dim); font: 600 11px 'Inter', sans-serif; cursor: pointer; }
.chat-context-avatar { width: 28px; height: 28px; display: grid; place-items: center; margin-right: -6px; border: 2px solid var(--gs-panel); border-radius: 50%; background: var(--gs-accent-soft); color: var(--gs-accent); font-size: 9px; font-weight: 800; }
.chat-context-people > span:last-child { margin-left: 13px; }
.chat-context-row { width: 100%; display: grid; grid-template-columns: 25px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 8px 5px; border: 0; border-radius: 9px; background: transparent; color: var(--gs-ink); text-align: left; cursor: pointer; }
.chat-context-row:hover { background: var(--gs-panel-2); }
.chat-context-row > span:nth-child(2) { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.chat-context-row b, .chat-context-row small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.chat-context-row b { font-size: 11.5px; font-weight: 650; }
.chat-context-row small { color: var(--gs-ink-faint); font-size: 9.5px; }
.chat-context-row i { color: var(--gs-ink-faint); font-style: normal; }
.chat-context-dot { width: 10px; height: 10px; justify-self: center; border: 1.5px solid var(--gs-accent); border-radius: 50%; }
.chat-context-dot.done { border-color: var(--gs-ok); background: var(--gs-ok); }
.chat-context-file { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 7px; background: var(--gs-panel-2); color: var(--gs-accent); }
.chat-context-empty { margin: 5px 2px; color: var(--gs-ink-faint); font-size: 11px; line-height: 1.45; }
.chat-context-gandalf { width: 100%; display: flex; align-items: center; gap: 10px; padding: 12px; border: 1px solid var(--gs-line-strong); border-radius: 12px; background: linear-gradient(145deg, var(--gs-accent-soft), var(--gs-panel)); color: var(--gs-ink); text-align: left; cursor: pointer; }
.chat-context-gandalf > span:first-child { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 8px; background: var(--gs-ink); color: var(--gs-panel); }
.chat-context-gandalf > span:nth-child(2) { display: flex; flex-direction: column; gap: 2px; }
.chat-context-gandalf b { font-size: 11.5px; }
.chat-context-gandalf small { color: var(--gs-ink-faint); font-size: 9.5px; }

/* ── Gandalf : conversation et espace de travail côte à côte ─────────── */
#ai-chat-view { background: var(--gs-ground); }
.ai-chat-main { background: var(--gs-ground); }
.ai-chat-header { min-height: 64px; box-sizing: border-box; padding: 10px 18px; background: var(--gs-panel); border-color: var(--gs-line); }
.ai-chat-messages { padding: 30px 334px 96px max(28px, calc((100% - 1180px) / 2)); gap: 18px; }
.ai-chat-input { margin: 0 310px 0 0; padding: 13px max(22px, calc((100% - 870px) / 2)) 20px; border-color: var(--gs-line); background: var(--gs-panel); }
.ai-workspace-panel {
  position: absolute; top: 80px; right: 18px; bottom: 20px; z-index: 3;
  width: 270px; box-sizing: border-box; padding: 15px; overflow-y: auto;
  border: 1px solid var(--gs-line); border-radius: 16px; background: var(--gs-panel); box-shadow: var(--ux-shadow);
}
.ai-workspace-head { display: flex; flex-direction: column; gap: 3px; padding: 3px 4px 13px; }
.ai-workspace-head span { color: var(--gs-ink); font: 700 14px 'Inter', sans-serif; }
.ai-workspace-head small { color: var(--gs-ink-faint); font-size: 10.5px; }
.ai-workspace-action { width: 100%; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 9px; padding: 11px 5px; border: 0; border-top: 1px solid var(--gs-line); background: transparent; color: var(--gs-ink); text-align: left; cursor: pointer; }
.ai-workspace-action:hover { background: var(--gs-panel-2); }
.ai-workspace-action > span:nth-child(2) { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.ai-workspace-action b { font-size: 11.5px; }
.ai-workspace-action small { color: var(--gs-ink-faint); font-size: 9.5px; }
.ai-workspace-action i { color: var(--gs-ink-faint); font-style: normal; }
.ai-workspace-icon { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 9px; background: var(--gs-accent-soft); color: var(--gs-accent); }
.ai-workspace-tip { margin-top: 14px; padding: 12px; border-radius: 11px; background: var(--gs-panel-2); }
.ai-workspace-tip span { display: inline-flex; padding: 3px 7px; border: 1px solid var(--gs-line-strong); border-radius: 6px; color: var(--gs-ink-dim); font-size: 9px; font-weight: 750; }
.ai-workspace-tip p { margin: 7px 0 0; color: var(--gs-ink-faint); font-size: 10px; line-height: 1.45; }

/* ── Cockpits métier : largeurs, densité et grilles décisionnelles ───── */
#crm-view > *, #agriculture-view > *, #ambassadeurs-view > * { max-width: var(--ux-max); }
.crm-ck, #agriculture-view > .crm-cockpit, #ambassadeurs-view > .crm-cockpit { max-width: var(--ux-max); }
.crm-ck-page-head, .agri-page-head, .amb-page-head { margin-bottom: 17px; }
.crm-ck-page-head { align-items: flex-end; }
.crm-ck-brand > span:last-child { display: flex; flex-direction: column; gap: 3px; }
.crm-ck-brand > span:last-child small { color: var(--crm-ink-2); font-size: 12px; font-weight: 450; }
.crm-ck-brand__t { font-size: 27px; font-weight: 690; }
.crm-ck-chips { gap: 5px; padding-bottom: 6px; border-bottom: 1px solid var(--crm-line); }
.crm-ck-chip { border-color: transparent; border-radius: 9px; box-shadow: none; background: transparent; }
.crm-ck-chip:hover { transform: none; background: var(--crm-card-2); box-shadow: none; }
.crm-ck-hero { padding: 21px 23px; border-radius: var(--ux-radius-lg); }
.crm-ck-kpis { gap: 10px; }
.crm-ck-kpi { min-height: 76px; border-radius: 13px; box-shadow: none; }
.crm-ck-dashboard { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(330px, .85fr); gap: 16px; align-items: start; }
.crm-ck-sec { min-width: 0; margin: 0; }
.crm-ck-sec--actions { grid-column: 1; grid-row: 1; }
.crm-ck-sec--top { grid-column: 2; grid-row: 1; }
.crm-ck-sec--map { grid-column: 1 / -1; grid-row: 2; }
.crm-ck-act { border-radius: 13px; box-shadow: none; }
.crm-ck-map { height: 390px; border-radius: var(--ux-radius-lg); }

.agri-page-head, .amb-page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; }
.agri-page-head { padding-top: 14px; }
.agri-page-kicker, .amb-page-head > div > span { display: block; margin-bottom: 5px; color: var(--crm-accent); font-size: 10px; font-weight: 750; text-transform: uppercase; letter-spacing: .11em; }
.agri-page-head h2, .amb-page-head h2 { margin: 0; color: var(--crm-ink); font-size: 27px; font-weight: 690; letter-spacing: -.025em; }
.agri-page-head p, .amb-page-head p { margin: 4px 0 0; color: var(--crm-ink-2); font-size: 12.5px; }
.agri-new-observation { min-height: 40px; padding: 0 15px; border: 0; border-radius: 10px; background: var(--crm-ink); color: var(--crm-card); font: 650 12px 'Inter', sans-serif; cursor: pointer; }
.agri-tabs { margin-bottom: 2px; }
.agri-tabs .crm-ck-chip.on { background: var(--crm-ink); color: var(--crm-card); }
.agri-hero { grid-template-columns: minmax(240px, .75fr) minmax(0, 1.8fr); padding: 16px 18px; border-radius: 15px; box-shadow: none; }
.agri-kpis { gap: 10px; }
.agri-cols { grid-template-columns: minmax(0, 1.7fr) minmax(350px, .8fr); gap: 16px; }
.agri-cols > .crm-card, .agri-side { border-radius: 16px; box-shadow: none; }

#ambassadeurs-view { max-width: var(--ux-max); margin-inline: auto; }
.amb-filtres { padding: 10px; border: 1px solid var(--crm-line); border-radius: 14px; background: var(--crm-card); }
.amb-kpis--4 { gap: 10px; margin-top: 12px; }
.amb-kpis--4 .crm-kpi { box-shadow: none; }
.amb-dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(360px, .85fr); gap: 14px; align-items: start; }
.amb-dashboard-grid > .amb-sec { min-width: 0; margin: 0; box-shadow: none; border-radius: 16px; }
.amb-card--sentiment { grid-column: 1; }
.amb-card--weekly { grid-column: 1; }
.amb-card--followup { grid-column: 2; grid-row: 1 / span 2; }
.amb-card--products { grid-column: 1; }
.amb-card--latest { grid-column: 2; grid-row: 3 / span 2; }
.amb-card--breakdown, .amb-card--themes { grid-column: 1; }
.amb-extraction { padding: 8px 2px 24px; }

/* ── Ambassadeurs : radar, capture guidée et relation maître-détail ─── */
#ambassadeurs-view > .crm-wrap { width: min(var(--ux-max), calc(100% - 40px)); max-width: none; margin: 0 auto; padding: 16px 0 52px; }
#ambassadeurs-view .amb-main-tabs { position: static; width: 100%; align-items: center; margin-bottom: 18px; border-radius: 12px; box-shadow: none; }
.amb-main-tabs .amb-main-capture { min-height: 34px; margin-left: auto; padding: 0 14px; border: 0; border-radius: 8px; background: var(--crm-accent); color: #fff; font: 700 10.5px 'Inter', sans-serif; cursor: pointer; }
.amb-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
.amb-summary-card { min-width: 0; min-height: 82px; display: grid; grid-template-columns: 38px minmax(0, 1fr); align-items: center; gap: 10px; padding: 13px 15px; border: 1px solid var(--crm-line); border-radius: 13px; background: var(--crm-card); box-shadow: var(--ux-shadow); }
.amb-summary-card > span { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: color-mix(in srgb, var(--crm-ok-dot) 12%, var(--crm-card)); color: var(--crm-ok-ink); font-weight: 800; }
.amb-summary-card > div { min-width: 0; display: grid; grid-template-columns: auto 1fr; align-items: baseline; column-gap: 7px; }
.amb-summary-card small { grid-column: 1 / -1; color: var(--crm-ink-3); font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.amb-summary-card strong { margin-top: 4px; color: var(--crm-ink); font: 700 22px 'Outfit', sans-serif; }
.amb-summary-card em { overflow: hidden; color: var(--crm-ink-2); font-size: 9px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.amb-summary-card.is-shipped > span { color: #507597; background: color-mix(in srgb, #507597 12%, var(--crm-card)); }
.amb-summary-card.is-rate > span { color: var(--crm-accent); background: var(--crm-accent-soft); }
.amb-summary-card.is-followup { border-color: color-mix(in srgb, var(--crm-crit-dot) 32%, var(--crm-line)); }
.amb-summary-card.is-followup > span { color: var(--crm-crit-ink); background: var(--crm-crit-bg); }
.amb-summary-card.is-followup strong { color: var(--crm-crit-ink); }
.amb-decision-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(330px, .8fr); gap: 14px; align-items: stretch; }
.amb-pulse-card, .amb-action-card, .amb-product-signals, .amb-latest-signals { min-width: 0; overflow: hidden; border-radius: 15px; box-shadow: var(--ux-shadow); }
.amb-pulse-card > header, .amb-action-card > header, .amb-product-signals > header, .amb-latest-signals > header { min-height: 66px; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px 18px; border-bottom: 1px solid var(--crm-line); }
.amb-pulse-card header h3, .amb-action-card header h3, .amb-product-signals header h3, .amb-latest-signals header h3 { margin: 0; color: var(--crm-ink); font: 700 16px 'Outfit', sans-serif; }
.amb-pulse-card header p, .amb-action-card header p, .amb-product-signals header p, .amb-latest-signals header p { margin: 4px 0 0; color: var(--crm-ink-2); font-size: 9px; }
.amb-pulse-card > header > span { color: var(--crm-ok-ink); font-size: 10px; font-weight: 750; }
.amb-pulse-body { display: grid; grid-template-columns: 210px minmax(0, 1fr); min-height: 264px; }
.amb-pulse-score { display: grid; place-items: center; align-content: center; padding: 18px; border-right: 1px solid var(--crm-line); text-align: center; }
.amb-pulse-score > div { width: 116px; height: 116px; display: grid; place-items: center; align-content: center; border: 10px solid transparent; border-radius: 50%; background: linear-gradient(var(--crm-card),var(--crm-card)) padding-box, conic-gradient(var(--crm-ok-dot) var(--amb-score),var(--crm-card-2) 0) border-box; }
.amb-pulse-score strong { color: var(--crm-ink); font: 700 31px/1 'Outfit', sans-serif; }.amb-pulse-score small { margin-top: 4px; color: var(--crm-ink-3); font-size: 8.5px; }.amb-pulse-score h4 { margin: 13px 0 0; color: var(--crm-ok-ink); font-size: 11px; }
.amb-pulse-signals { padding: 18px; }.amb-pulse-signals > h4 { margin: 0 0 10px; color: var(--crm-ink); font-size: 10.5px; }.amb-pulse-signals .amb-hbar { height: 12px; }.amb-pulse-signals .crm-chips { gap: 4px; }.amb-pulse-signals .crm-chips button { padding: 4px 6px; border-radius: 7px; font-size: 8px; }
.amb-insight { margin-top: 9px; padding: 10px 11px; border-radius: 9px; background: var(--crm-card-2); }.amb-insight b { color: var(--crm-ink); font-size: 9.5px; }.amb-insight p { margin: 4px 0 0; color: var(--crm-ink-2); font-size: 9px; line-height: 1.4; }.amb-insight.is-positive { background: color-mix(in srgb, var(--crm-ok-dot) 10%, var(--crm-card)); }.amb-insight.is-positive b { color: var(--crm-ok-ink); }.amb-insight.is-watch { background: var(--crm-warn-bg); }.amb-insight.is-watch b { color: var(--crm-warn-ink); }
.amb-action-card.has-items { border-color: color-mix(in srgb, var(--crm-crit-dot) 25%, var(--crm-line)); }.amb-action-card > header > span { min-width: 24px; height: 24px; display: grid; place-items: center; border-radius: 12px; background: var(--crm-crit-bg); color: var(--crm-crit-ink); font-size: 9px; font-weight: 800; }.amb-action-card .crm-tl-row { min-height: 54px; padding: 9px 14px; }.amb-action-card .crm-tl-main { min-width: 0; }.amb-action-card .amb-chips { max-height: 22px; overflow: hidden; flex-wrap: nowrap; }.amb-action-card .amb-chip { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 8px; }.amb-action-card .amb-days { font-size: 8.5px; }
.amb-signal-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(330px, .8fr); gap: 14px; margin-top: 14px; }.amb-product-signals, .amb-latest-signals { padding-bottom: 12px; }.amb-product-signals .amb-prod { padding-inline: 18px; }.amb-latest-signals .crm-tl-row { min-height: 58px; padding-inline: 15px; }.amb-latest-signals .crm-tl-meta { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.amb-secondary-data { margin-top: 14px; border: 1px solid var(--crm-line); border-radius: 12px; background: var(--crm-card); }.amb-secondary-data > summary { padding: 12px 15px; color: var(--crm-ink-2); font-size: 10px; font-weight: 700; cursor: pointer; }.amb-secondary-data > div { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 0 12px 12px; }.amb-secondary-data .crm-card { box-shadow: none; }

.amb-capture-page-head { margin-top: 3px; }.amb-capture-steps { display: grid; grid-template-columns: 1fr 22px 1fr 22px 1fr; align-items: center; margin-bottom: 14px; padding: 0 14px; border: 1px solid var(--crm-line); border-radius: 12px; background: var(--crm-card); }.amb-capture-steps > span { min-height: 60px; display: grid; grid-template-columns: 30px 1fr; align-content: center; column-gap: 9px; }.amb-capture-steps > span > b { grid-row: 1 / 3; width: 27px; height: 27px; display: grid; place-items: center; border-radius: 50%; background: var(--crm-card-2); color: var(--crm-ink-3); font-size: 9px; }.amb-capture-steps > span > em { color: var(--crm-ink); font-size: 10px; font-style: normal; font-weight: 750; }.amb-capture-steps > span > small { margin-top: 3px; color: var(--crm-ink-3); font-size: 8px; }.amb-capture-steps > span.on > b { background: var(--crm-accent); color: #fff; }.amb-capture-steps > span.done > b { background: var(--crm-ok-ink); color: #fff; }.amb-capture-steps > i { height: 1px; background: var(--crm-line); }
.amb-capture-drop-card { min-height: 460px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 36px; border: 1px dashed var(--crm-line-strong); border-radius: 16px; text-align: center; box-shadow: none; }.amb-capture-drop-icon { width: 62px; height: 62px; display: grid; place-items: center; margin-bottom: 15px; border-radius: 18px; background: var(--crm-accent-soft); color: var(--crm-accent); font-size: 25px; }.amb-capture-drop-card h3 { margin: 0; color: var(--crm-ink); font: 700 19px 'Outfit', sans-serif; }.amb-capture-drop-card > p { max-width: 520px; margin: 7px 0 18px; color: var(--crm-ink-2); font-size: 11px; line-height: 1.5; }.amb-capture-drop { min-width: 320px; min-height: 82px; display: grid; place-items: center; align-content: center; gap: 5px; padding: 13px; border: 1px solid var(--crm-line); border-radius: 11px; background: var(--crm-card-2); cursor: pointer; }.amb-capture-drop input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }.amb-capture-drop span { color: var(--crm-ink); font-size: 11px; font-weight: 750; }.amb-capture-drop small { color: var(--crm-ink-3); font-size: 8.5px; }.amb-capture-analyze { min-width: 210px; margin-top: 13px; justify-content: center; background: var(--crm-ink); color: var(--crm-card); }.amb-capture-privacy { margin-top: 12px; color: var(--crm-ink-3); font-size: 8.5px; }.amb-capture-waiting { display: flex; align-items: center; gap: 8px; margin-top: 13px; color: var(--crm-ink-2); font-size: 9px; }.amb-capture-waiting > span { width: 14px; height: 14px; border: 2px solid var(--crm-line); border-top-color: var(--crm-accent); border-radius: 50%; animation: amb-spin .8s linear infinite; }
.amb-capture-review-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin: 3px 2px 14px; }.amb-capture-review-head > div > span { color: var(--crm-accent); font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.amb-capture-review-head h2 { margin: 5px 0 0; color: var(--crm-ink); font: 700 26px 'Outfit', sans-serif; }.amb-capture-review-head p { margin: 5px 0 0; color: var(--crm-ink-2); font-size: 11px; }.amb-confidence { display: flex; align-items: center; gap: 9px; padding: 9px 12px; border: 1px solid color-mix(in srgb, var(--crm-ok-dot) 30%, var(--crm-line)); border-radius: 10px; background: color-mix(in srgb, var(--crm-ok-dot) 9%, var(--crm-card)); }.amb-confidence > b { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 50%; background: var(--crm-card); color: var(--crm-ok-ink); }.amb-confidence span { display: flex; flex-direction: column; gap: 2px; }.amb-confidence small { color: var(--crm-ink-3); font-size: 7.5px; text-transform: uppercase; }.amb-confidence strong { color: var(--crm-ok-ink); font-size: 11px; }.amb-ai-check { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; padding: 10px 13px; border: 1px solid color-mix(in srgb, var(--crm-warn-dot) 35%, var(--crm-line)); border-radius: 10px; background: var(--crm-warn-bg); }.amb-ai-check > b { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 50%; background: color-mix(in srgb, var(--crm-warn-dot) 20%, var(--crm-card)); color: var(--crm-warn-ink); }.amb-ai-check span { display: flex; flex-direction: column; gap: 3px; }.amb-ai-check strong { color: var(--crm-warn-ink); font-size: 10px; }.amb-ai-check small { color: var(--crm-ink-2); font-size: 9px; }
.amb-capture-review-grid { display: grid; grid-template-columns: minmax(280px, .68fr) minmax(540px, 1.32fr); gap: 14px; align-items: start; }.amb-capture-source { position: sticky; top: 12px; max-height: 720px; overflow-y: auto; border: 1px solid var(--crm-line); border-radius: 14px; background: var(--crm-card); }.amb-capture-source > header { position: sticky; top: 0; z-index: 1; display: flex; justify-content: space-between; gap: 10px; padding: 13px 15px; border-bottom: 1px solid var(--crm-line); background: var(--crm-card); }.amb-capture-source h3 { margin: 0; color: var(--crm-ink); font-size: 12px; }.amb-capture-source header p { margin: 3px 0 0; color: var(--crm-ink-3); font-size: 8px; }.amb-capture-source header > span { color: var(--crm-ink-2); font-size: 8px; }.amb-capture-source .amb-shot { max-width: calc(100% - 24px); margin: 12px; border-radius: 10px; }.amb-capture-form { display: grid; gap: 10px; }.amb-review-section { margin: 0; padding: 14px 16px; border-radius: 12px; box-shadow: none; }.amb-review-section > .amb-h { display: flex; align-items: center; gap: 8px; font-size: 13px; }.amb-review-section > .amb-h > b { width: 23px; height: 23px; display: grid; place-items: center; border-radius: 50%; background: var(--crm-card-2); color: var(--crm-ink-2); font-size: 8px; }.amb-review-section .amb-pick { margin: 7px 0 0; padding: 8px; border: 1px solid var(--crm-line); border-radius: 9px; }.amb-review-section .crm-form-grid { margin-top: 10px; }.amb-review-section .crm-fld > span { font-size: 9px; }.amb-review-section .crm-fld input, .amb-review-section .crm-fld select, .amb-review-section .crm-fld textarea { border-radius: 8px; background: var(--crm-card-2); }.amb-capture-savebar { position: sticky; bottom: 0; z-index: 2; align-items: center; gap: 7px; margin: 0; padding: 11px 13px; border: 1px solid var(--crm-line); border-radius: 11px; background: color-mix(in srgb, var(--crm-card) 95%, transparent); box-shadow: 0 8px 26px rgba(35,30,22,.1); backdrop-filter: blur(12px); }.amb-capture-savebar > p { min-width: 0; flex: 1; margin: 0; }.amb-capture-savebar p strong, .amb-capture-savebar p span { display: block; }.amb-capture-savebar p strong { color: var(--crm-ink); font-size: 9.5px; }.amb-capture-savebar p span { margin-top: 3px; color: var(--crm-ink-3); font-size: 8px; }.amb-capture-savebar .crm-action { flex: none; margin: 0; }.amb-capture-savebar .is-primary { border-color: var(--crm-accent); background: var(--crm-accent); color: #fff; }

.amb-people-head { margin-top: 3px; }.amb-people-create { min-height: 38px; padding: 0 14px; border-color: var(--crm-accent); background: var(--crm-accent); color: #fff; }.amb-network-summary { display: flex; align-items: center; gap: 18px; margin-bottom: 12px; padding: 10px 14px; border: 1px solid var(--crm-line); border-radius: 11px; background: var(--crm-card); }.amb-network-summary > span { display: flex; align-items: baseline; gap: 6px; }.amb-network-summary strong { color: var(--crm-ink); font: 700 16px 'Outfit', sans-serif; }.amb-network-summary small { color: var(--crm-ink-2); font-size: 8.5px; }.amb-network-summary > i { width: 1px; height: 22px; background: var(--crm-line); }.amb-network-summary .is-alert strong { color: var(--crm-crit-ink); }
.amb-directory-tools { display: flex; align-items: center; gap: 10px; margin-bottom: 11px; }.amb-directory-tools .crm-search { min-width: 240px; margin: 0; }.amb-directory-tools .crm-chips { margin: 0; }.amb-directory-tools .crm-chips button { min-height: 33px; padding-block: 0; }
.amb-directory-workspace { display: grid; grid-template-columns: minmax(310px, .72fr) minmax(600px, 1.45fr); gap: 13px; align-items: start; }.amb-directory-panel, .amb-person-detail { min-width: 0; overflow: hidden; border: 1px solid var(--crm-line); border-radius: 14px; background: var(--crm-card); box-shadow: var(--ux-shadow); }.amb-directory-panel > header { min-height: 37px; display: flex; align-items: center; justify-content: space-between; padding: 0 13px; border-bottom: 1px solid var(--crm-line); background: var(--crm-card-2); color: var(--crm-ink-2); font-size: 8.5px; }.amb-directory-panel > header small { color: var(--crm-ink-3); font-size: 8px; }.amb-person-row { width: 100%; min-height: 61px; display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; align-items: center; gap: 9px; padding: 8px 11px; border: 0; border-bottom: 1px solid var(--crm-line); background: var(--crm-card); color: var(--crm-ink); text-align: left; cursor: pointer; }.amb-person-row:last-child { border-bottom: 0; }.amb-person-row:hover { background: var(--crm-card-2); }.amb-person-row.on { background: var(--crm-accent-soft); box-shadow: inset 3px 0 var(--crm-accent); }.amb-person-avatar { width: 35px; height: 35px; display: grid; place-items: center; border-radius: 50%; background: var(--crm-card-2); color: var(--crm-ink-2); font-size: 9px; font-weight: 800; }.amb-person-main, .amb-person-state { min-width: 0; display: flex; flex-direction: column; gap: 4px; }.amb-person-main strong, .amb-person-main small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.amb-person-main strong { font-size: 10px; }.amb-person-main small, .amb-person-state small { color: var(--crm-ink-3); font-size: 7.8px; }.amb-person-state { align-items: flex-end; }.amb-person-state strong { color: var(--crm-ok-ink); font-size: 8px; }.amb-person-state.is-waiting strong { color: var(--crm-crit-ink); }
.amb-person-cover { min-height: 78px; display: flex; align-items: center; gap: 11px; padding: 13px 15px; border-bottom: 1px solid var(--crm-line); background: linear-gradient(120deg,var(--crm-accent-soft),color-mix(in srgb,var(--crm-ok-dot) 8%,var(--crm-card))); }.amb-person-avatar.is-large { width: 45px; height: 45px; flex: none; background: var(--crm-ink); color: var(--crm-card); font-size: 11px; }.amb-person-cover h2 { margin: 0; color: var(--crm-ink); font: 700 17px 'Outfit', sans-serif; }.amb-person-cover p { margin: 4px 0 0; color: var(--crm-ink-2); font-size: 8.5px; }.amb-relation-health { display: flex; flex-direction: column; gap: 4px; margin-left: auto; text-align: right; }.amb-relation-health small { color: var(--crm-ink-3); font-size: 7px; letter-spacing: .07em; text-transform: uppercase; }.amb-relation-health strong { color: var(--crm-ok-ink); font-size: 9px; }.amb-person-cover > .crm-action { flex: none; min-height: 34px; margin-left: 6px; padding: 0 10px; font-size: 9px; }
.amb-person-detail-body { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(220px, .75fr); }.amb-relation-timeline { min-width: 0; padding: 16px 17px; border-right: 1px solid var(--crm-line); }.amb-relation-timeline > header h3, .amb-person-snapshot > h3 { margin: 0; color: var(--crm-ink); font-size: 12px; }.amb-relation-timeline > header p, .amb-person-snapshot > p { margin: 4px 0 13px; color: var(--crm-ink-3); font-size: 8px; }.amb-relation-event { position: relative; display: grid; grid-template-columns: 27px minmax(0, 1fr) auto; gap: 9px; padding-bottom: 14px; }.amb-relation-event:not(:last-child)::before { content: ''; position: absolute; top: 26px; bottom: 0; left: 13px; width: 1px; background: var(--crm-line); }.amb-relation-event > span { z-index: 1; width: 27px; height: 27px; display: grid; place-items: center; border-radius: 50%; background: var(--crm-card-2); font-size: 9px; }.amb-relation-event.is-feedback > span { background: color-mix(in srgb,var(--crm-ok-dot) 11%,var(--crm-card)); }.amb-relation-event strong { color: var(--crm-ink); font-size: 9px; }.amb-relation-event p { margin: 4px 0 0; color: var(--crm-ink-2); font-size: 8.5px; line-height: 1.4; }.amb-relation-event time { color: var(--crm-ink-3); font-size: 7.5px; white-space: nowrap; }.amb-relation-event > div > div { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }.amb-relation-event em { padding: 3px 6px; border-radius: 7px; background: var(--crm-card-2); color: var(--crm-ink-2); font-size: 7px; font-style: normal; }.amb-person-snapshot { min-width: 0; padding: 16px 14px; }.amb-snapshot-card { margin-top: 9px; padding: 10px; border: 1px solid var(--crm-line); border-radius: 9px; background: var(--crm-card); }.amb-snapshot-card > small { color: var(--crm-ink-3); font-size: 7px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }.amb-snapshot-card > strong { display: block; margin-top: 5px; color: var(--crm-ink); font-size: 10px; }.amb-snapshot-card > p { margin: 5px 0 0; color: var(--crm-ink-2); font-size: 8px; line-height: 1.45; overflow-wrap: anywhere; }.amb-snapshot-card.is-note { background: var(--crm-card-2); }.amb-snapshot-card.is-note p { font-style: italic; }.amb-snapshot-card .amb-chips { margin-top: 7px; }
@keyframes amb-spin { to { transform: rotate(360deg); } }

/* ── Diffusions : file et validation dans un même cockpit ───────────── */
#diffusions-view > .crm-wrap {
  width: min(var(--ux-max), calc(100% - 40px));
  max-width: none;
  margin: 0 auto;
  padding: 18px 0 48px;
  color: var(--crm-ink);
}
#diffusions-view > .crm-wrap > .crm-tabs {
  position: static;
  width: fit-content;
  max-width: 100%;
  margin-bottom: 18px;
  border-radius: 12px;
  box-shadow: none;
}
.diff-queue-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin: 3px 2px 17px;
}
.diff-editor-kicker {
  display: block;
  color: var(--crm-ink-3);
  font-size: 9.5px;
  font-weight: 750;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.diff-queue-head h1 {
  margin: 5px 0 0;
  color: var(--crm-ink);
  font: 700 27px/1.1 'Outfit', sans-serif;
  letter-spacing: -.025em;
}
.diff-queue-head p { margin: 5px 0 0; color: var(--crm-ink-2); font-size: 12.5px; }
.diff-queue-summary {
  min-width: 138px;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 8px;
  padding: 10px 13px;
  border: 1px solid var(--crm-line);
  border-radius: 11px;
  background: var(--crm-card);
}
.diff-queue-summary strong { color: var(--crm-ink); font: 700 21px/1 'Outfit', sans-serif; }
.diff-queue-summary span { color: var(--crm-ink-2); font-size: 10.5px; line-height: 1.25; }
.diff-queue-layout {
  min-height: 660px;
  display: grid;
  grid-template-columns: minmax(290px, .72fr) minmax(0, 1.65fr);
  align-items: start;
  gap: 14px;
}
.diff-queue-panel,
.diff-queue-workspace {
  min-width: 0;
  border: 1px solid var(--crm-line);
  border-radius: 16px;
  background: var(--crm-card);
  box-shadow: var(--ux-shadow);
}
.diff-queue-panel { overflow: hidden; }
.diff-queue-panel-head { padding: 16px 15px 11px; border-bottom: 1px solid var(--crm-line); }
.diff-queue-panel-head h2 { margin: 0 0 12px; color: var(--crm-ink); font: 700 17px 'Outfit', sans-serif; }
.diff-queue-panel .diff-filters {
  width: 100%;
  margin: 0;
  padding: 3px;
  border: 0;
  border-radius: 10px;
  background: var(--crm-card-2);
}
.diff-queue-panel .diff-filters .crm-tab { min-width: max-content; padding: 7px 9px; font-size: 10.5px; }
#diff-q-list { display: flex; flex-direction: column; gap: 7px; padding: 10px; }
.diff-queue-item {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 5px;
  padding: 12px 13px;
  border: 1px solid var(--crm-line);
  border-radius: 11px;
  background: var(--crm-card);
  color: var(--crm-ink);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: background .14s ease, border-color .14s ease, box-shadow .14s ease;
}
.diff-queue-item:hover { border-color: var(--crm-line-strong); background: var(--crm-card-2); }
.diff-queue-item.on {
  border-color: color-mix(in srgb, var(--crm-accent) 62%, transparent);
  background: var(--crm-accent-soft);
  box-shadow: inset 3px 0 0 var(--crm-accent);
}
.diff-queue-item-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.diff-queue-item-head b { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.diff-queue-item .diff-pill { flex: none; padding: 2px 6px; font-size: 9px; }
.diff-queue-item-date { display: flex; align-items: center; color: var(--crm-ink-3); font-size: 10px; }
.diff-queue-item-date .diff-tag { margin-left: 6px; }
.diff-queue-item .diff-excerpt {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  margin: 3px 0 0;
  color: var(--crm-ink);
  font-size: 12.5px;
  font-weight: 620;
}
.diff-queue-item-run { padding-top: 4px; color: var(--crm-ink-2); font-size: 10.5px; }
.diff-queue-workspace { overflow: hidden; }
.diff-editor { margin: 0; }
.diff-editor-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 20px;
  border-bottom: 1px solid var(--crm-line);
}
.diff-editor-head h2 {
  max-width: 58ch;
  margin: 5px 0 0;
  color: var(--crm-ink);
  font: 700 20px/1.22 'Outfit', sans-serif;
  letter-spacing: -.018em;
}
.diff-editor-head p { margin: 5px 0 0; color: var(--crm-ink-2); font-size: 10.5px; }
.diff-editor-head > .diff-pill { flex: none; margin-top: 1px; }
.diff-editor-section { padding: 17px 20px 18px; border-bottom: 1px solid var(--crm-line); }
.diff-editor-section-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.diff-editor-section-head h3 { margin: 4px 0 0; color: var(--crm-ink); font: 700 16px 'Outfit', sans-serif; }
.diff-editor-section-head .diff-fix { flex: none; width: auto; padding: 7px 10px; border-radius: 8px; font-size: 10.5px; }
.diff-editor .diff-src { margin: 0 0 11px; }
.diff-editor .diff-src textarea { min-height: 86px; background: var(--crm-card-2); }
.diff-tr-tabs { display: flex; gap: 5px; margin: 0 0 8px; }
.diff-tr-tab {
  min-height: 31px;
  padding: 0 11px;
  border: 1px solid var(--crm-line);
  border-radius: 8px;
  background: var(--crm-card);
  color: var(--crm-ink-2);
  font: 650 10.5px 'Inter', sans-serif;
  cursor: pointer;
}
.diff-tr-tab.on { border-color: var(--crm-ink); background: var(--crm-ink); color: var(--crm-card); }
.diff-editor .diff-tr-grid { display: block; }
.diff-editor .diff-tr-fld { display: none; }
.diff-editor .diff-tr-fld.on { display: flex; }
.diff-editor .diff-tr-fld > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.diff-editor .diff-tr-fld textarea { min-height: 112px; resize: vertical; }
.diff-decision-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(260px, .8fr); gap: 12px; padding: 14px 20px; }
.diff-decision-card { min-width: 0; padding: 14px; border: 1px solid var(--crm-line); border-radius: 12px; background: var(--crm-card-2); }
.diff-decision-card > .diff-editor-kicker { margin-bottom: 10px; }
.diff-decision-card .diff-audience { margin-top: 9px; padding: 0; border: 0; background: transparent; }
.diff-decision-card .diff-audience__h { font-size: 14px; }
.diff-decision-card .diff-note { font-size: 10.5px; }
.diff-decision-card .diff-when { max-width: none; margin-top: 0; }
.diff-decision-audience > .crm-fld { max-width: 260px; }
.diff-decision-schedule .diff-check { margin-top: 12px; font-size: 12px; }
.diff-decision-schedule .diff-hint { font-size: 10px; line-height: 1.4; }
.diff-editor-actions {
  position: sticky;
  bottom: 0;
  z-index: 3;
  justify-content: flex-end;
  margin: 0;
  padding: 12px 20px;
  border-top: 1px solid var(--crm-line);
  background: color-mix(in srgb, var(--crm-card) 94%, transparent);
  backdrop-filter: blur(12px);
}
.diff-editor-actions .crm-action { flex: 0 0 auto; min-width: 112px; padding: 9px 13px; border-radius: 9px; font-size: 11.5px; }
.diff-editor-actions [data-act="approve"] { border-color: var(--crm-ok-dot); background: var(--crm-ok-ink); color: #fff; }
.diff-editor-actions [data-act="reject-open"] { margin-right: auto; border-color: color-mix(in srgb, var(--crm-crit-dot) 42%, transparent); color: var(--crm-crit-ink); }
.diff-reject { margin: 0 20px 18px; padding: 14px; border: 1px solid var(--crm-crit-bg); border-radius: 11px; background: var(--crm-crit-bg); }

@media (max-width: 1060px) {
  .diff-queue-layout { grid-template-columns: minmax(250px, .62fr) minmax(0, 1.38fr); }
  .diff-decision-grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  #diffusions-view > .crm-wrap { width: min(100% - 24px, var(--ux-max)); padding-top: 12px; }
  .diff-queue-head { align-items: flex-start; }
  .diff-queue-summary { display: none; }
  .diff-queue-layout { grid-template-columns: 1fr; }
  .diff-queue-panel { box-shadow: none; }
  .diff-queue-workspace { box-shadow: none; }
  .diff-editor-section, .diff-editor-head, .diff-decision-grid { padding-inline: 14px; }
  .diff-editor-head h2 { font-size: 18px; }
  .diff-editor-actions { flex-wrap: wrap; padding-inline: 14px; }
  .diff-editor-actions .crm-action { flex: 1 1 40%; }
  .diff-editor-actions [data-act="reject-open"] { margin-right: 0; }
}

/* ── CRM · statistiques orientées décision ─────────────────────────── */
.crm-stats-v2 { width: min(calc(100% - 32px),var(--ux-max)); max-width: none; margin-inline: auto; }
.crm-stats-v2 > .crm-fiche__back { margin: 0 0 7px; padding: 4px 1px; font-size: 10px; font-weight: 700; }
.crm-stx-pagehead { display: flex; align-items: flex-end; justify-content: space-between; gap: 22px; margin: 0 2px 13px; }
.crm-stx-pagehead > div:first-child > span { display: flex; align-items: center; gap: 7px; color: var(--crm-accent); font-size: 8.5px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.crm-stx-pagehead > div:first-child > span::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--crm-ok-dot); }
.crm-stx-pagehead h1 { margin: 5px 0 0; font: 720 28px/1.06 'Outfit',sans-serif; letter-spacing: -.035em; }
.crm-stx-pagehead p { margin: 4px 0 0; color: var(--crm-ink-2); font-size: 10.5px; }
.crm-stx-controls { display: flex; align-items: center; gap: 7px; flex: none; }
.crm-stx-controls > .crm-filter { min-width: 205px; height: 38px; border-radius: 9px; font-size: 9px; font-weight: 700; }
.crm-stx-periods { display: flex; gap: 3px; padding: 3px; border: 1px solid var(--crm-line); border-radius: 9px; background: var(--crm-card); }
.crm-stx-periods button { min-width: 44px; min-height: 30px; padding: 0 7px; border: 0; border-radius: 6px; background: transparent; color: var(--crm-ink-2); font: 750 7px 'Inter',sans-serif; cursor: pointer; }
.crm-stx-periods button.on { background: var(--crm-ink); color: var(--crm-card); }

/* Filtres produit / catégorie + export (ticket sGq662fk4SRWUytTAKqt).
   La barre passait de deux contrôles à cinq : sans `wrap`, le cinquième
   sortait de la page sur un portable. Les deux menus neufs sont plus courts
   que celui du territoire — un nom de produit tient, une liste de reps
   numérotée, non. */
.crm-stx-controls { flex-wrap: wrap; justify-content: flex-end; }
.crm-stx-controls > .crm-filter.crm-stx-narrow { min-width: 152px; max-width: 232px; }
.crm-stx-export { display: inline-flex; align-items: center; gap: 6px; height: 38px; padding: 0 12px; border: 1px solid var(--crm-line); border-radius: 9px; background: var(--crm-card); color: var(--crm-ink); font: 750 9px 'Inter',sans-serif; cursor: pointer; }
.crm-stx-export:hover:not(:disabled) { border-color: var(--crm-line-strong); }
.crm-stx-export:disabled { opacity: .62; cursor: progress; }
.crm-stx-export .gicon { width: 13px; height: 13px; }
/* Vide, la zone ne doit pas creuser un blanc sous l'en-tête. */
.crm-stx-exportmsg:empty { display: none; }
.crm-stx-exportmsg { display: flex; align-items: center; gap: 6px; margin: 0 2px 11px; padding: 8px 11px; border: 1px solid var(--crm-line); border-radius: 9px; background: var(--crm-card); color: var(--crm-ink-2); font-size: 9px; }
.crm-stx-exportmsg .gicon { width: 13px; height: 13px; flex: none; }
.crm-stx-exportmsg a { color: var(--crm-accent); font-weight: 750; }
/* L'avis « le sell-through ne suit pas le filtre » : sous les tuiles, dans le
   ton des encarts d'information, et jamais en rouge — rien n'est en panne. */
.crm-stx-scopenote { display: flex; align-items: center; gap: 7px; margin: -3px 0 9px; padding: 7px 10px; border: 1px solid color-mix(in srgb,var(--crm-info-dot) 25%,var(--crm-line)); border-radius: 9px; background: var(--crm-info-bg); color: var(--crm-info-ink); font-size: 8px; }
.crm-stx-scopenote .gicon { width: 13px; height: 13px; flex: none; }

.crm-stx-truth { min-height: 47px; display: flex; align-items: center; gap: 9px; margin-bottom: 9px; padding: 7px 10px; border: 1px solid color-mix(in srgb,var(--crm-info-dot) 25%,var(--crm-line)); border-radius: 10px; background: var(--crm-info-bg); }
.crm-stx-truth > i { width: 28px; height: 28px; flex: none; display: grid; place-items: center; border-radius: 8px; background: var(--crm-card); color: var(--crm-info-ink); font-size: 9px; font-style: normal; font-weight: 800; }
.crm-stx-truth > div:nth-child(2) { min-width: 0; }
.crm-stx-truth strong { display: block; font-size: 8px; }
.crm-stx-truth p { margin: 3px 0 0; color: var(--crm-ink-2); font-size: 7px; }
.crm-stx-sources { display: flex; gap: 5px; margin-left: auto; }
.crm-stx-sources > span { min-width: 105px; padding: 5px 8px; border: 1px solid color-mix(in srgb,var(--crm-info-dot) 16%,var(--crm-line)); border-radius: 8px; background: var(--crm-card); }
.crm-stx-sources small,.crm-stx-sources b { display: block; }
.crm-stx-sources small { color: var(--crm-ink-3); font-size: 5.5px; font-weight: 800; letter-spacing: .065em; text-transform: uppercase; }
.crm-stx-sources b { margin-top: 2px; color: var(--crm-info-ink); font-size: 7px; }
.crm-stx-sources .is-sold b { color: var(--crm-ok-ink); }

.crm-stx-kpis { display: grid; gap: 8px; margin-bottom: 9px; }
.crm-stx-kpis--4 { grid-template-columns: repeat(4,minmax(0,1fr)); }.crm-stx-kpis--5 { grid-template-columns: repeat(5,minmax(0,1fr)); }
.crm-stx-kpi { min-width: 0; min-height: 68px; display: grid; grid-template-columns: 31px minmax(0,1fr); align-items: center; gap: 9px; padding: 9px 10px; border: 1px solid var(--crm-line); border-radius: 11px; background: var(--crm-card); color: var(--crm-ink); box-shadow: var(--ux-shadow); text-align: left; }
button.crm-stx-kpi { font: inherit; cursor: pointer; transition: transform .13s ease,border-color .13s ease; }button.crm-stx-kpi:hover { border-color: var(--crm-line-strong); transform: translateY(-1px); }
.crm-stx-kpi > i { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 9px; background: var(--crm-card-2); color: var(--crm-ink-2); font-size: 10px; font-style: normal; font-weight: 800; }
.crm-stx-kpi.is-accent > i { background: var(--crm-accent-soft); color: var(--crm-accent); }.crm-stx-kpi.is-success > i { background: var(--crm-ok-bg); color: var(--crm-ok-ink); }.crm-stx-kpi.is-opportunity { border-color: color-mix(in srgb,var(--crm-warn-dot) 25%,var(--crm-line)); }.crm-stx-kpi.is-opportunity > i { background: var(--crm-warn-bg); color: var(--crm-warn-ink); }
.crm-stx-kpi small,.crm-stx-kpi strong,.crm-stx-kpi em { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.crm-stx-kpi small { color: var(--crm-ink-3); font-size: 6px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }.crm-stx-kpi strong { margin-top: 2px; font-size: 13px; }.crm-stx-kpi em { min-height: 11px; margin-top: 2px; color: var(--crm-ink-3); font-size: 6px; font-style: normal; }.crm-stx-kpi em .crm-delta { margin-right: 2px; font-size: inherit; }

.crm-stx-signal { min-height: 60px; display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 10px; margin-bottom: 9px; padding: 8px 10px; border: 1px solid color-mix(in srgb,var(--crm-accent) 28%,var(--crm-line)); border-radius: 11px; background: linear-gradient(100deg,var(--crm-accent-soft),var(--crm-card)); box-shadow: var(--ux-shadow); }
.crm-stx-signal > i { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 9px; background: var(--crm-card); color: var(--crm-accent); font-size: 11px; font-style: normal; }
.crm-stx-signal small { display: block; color: var(--crm-accent); font-size: 5.5px; font-weight: 800; letter-spacing: .065em; text-transform: uppercase; }.crm-stx-signal strong { display: block; margin-top: 2px; font-size: 8.5px; }.crm-stx-signal p { margin: 3px 0 0; color: var(--crm-ink-2); font-size: 7px; }
.crm-stx-signal > button { min-height: 33px; padding: 0 11px; border: 0; border-radius: 8px; background: var(--crm-ink); color: var(--crm-card); font: 750 7px 'Inter',sans-serif; cursor: pointer; }

.crm-stx-overview { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(285px,.55fr); gap: 9px; margin-bottom: 9px; }
.crm-stx-card { min-width: 0; overflow: hidden; border: 1px solid var(--crm-line); border-radius: 11px; background: var(--crm-card); box-shadow: var(--ux-shadow); }
.crm-stx-card > header,.crm-stx-store-main > header { min-height: 49px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 11px; border-bottom: 1px solid var(--crm-line); }
.crm-stx-card h2 { margin: 0; font-size: 9.5px; }.crm-stx-card header p { margin: 3px 0 0; color: var(--crm-ink-3); font-size: 6.5px; }.crm-stx-trend > header > .crm-delta { padding: 4px 7px; border-radius: 999px; background: var(--crm-ok-bg); font-size: 6px; }
.crm-stx-trend .crm-chart { min-height: 168px; display: flex; align-items: center; padding: 8px 11px 4px; }.crm-stx-trend .crm-chart svg { width: 100%; height: auto; max-height: 165px; }.crm-stx-trend .crm-chart .grid { stroke: var(--crm-line); }.crm-stx-trend .crm-chart .lbl { fill: var(--crm-ink-3); font-size: 7px; }.crm-stx-trend .crm-chart .val { fill: var(--crm-ink-2); font-size: 7px; }
.crm-stx-mix-body { min-height: 168px; display: grid; grid-template-columns: 92px minmax(0,1fr); align-items: center; gap: 12px; padding: 11px; }
.crm-stx-donut { --a: 0%; --b: 0%; --c: 0%; width: 89px; height: 89px; display: grid; place-items: center; border-radius: 50%; background: conic-gradient(var(--crm-ok-dot) 0 var(--a),var(--crm-chart-a) var(--a) var(--b),var(--crm-info-dot) var(--b) var(--c),var(--crm-line-strong) var(--c)); }
.crm-stx-donut::before { content: ''; grid-area: 1/1; width: 62px; height: 62px; border-radius: 50%; background: var(--crm-card); }.crm-stx-donut > span { z-index: 1; grid-area: 1/1; text-align: center; }.crm-stx-donut b,.crm-stx-donut small { display: block; }.crm-stx-donut b { font-size: 14px; }.crm-stx-donut small { margin-top: 2px; color: var(--crm-ink-3); font-size: 5.5px; }
.crm-stx-mix-list { display: grid; gap: 7px; }.crm-stx-mix-list p { min-width: 0; display: grid; grid-template-columns: 20px minmax(0,1fr) auto; align-items: center; gap: 5px; margin: 0; }.crm-stx-mix-list .crm-seg-badge { min-width: 19px; padding-inline: 4px; font-size: 6px; }.crm-stx-mix-list span:nth-child(2) { overflow: hidden; color: var(--crm-ink-2); font-size: 6px; text-overflow: ellipsis; white-space: nowrap; }.crm-stx-mix-list b { font-size: 6.5px; }

.crm-stx-stores { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(275px,.55fr); margin-bottom: 9px; }
.crm-stx-store-main { min-width: 0; border-right: 1px solid var(--crm-line); }.crm-stx-store-main > header h2 { margin: 0; font-size: 9.5px; }.crm-stx-store-main > header p { margin: 3px 0 0; color: var(--crm-ink-3); font-size: 6.5px; }
.crm-stx-mode { display: flex; gap: 3px; padding: 3px; border: 1px solid var(--crm-line); border-radius: 8px; background: var(--crm-card-2); }.crm-stx-mode button { min-height: 26px; padding: 0 8px; border: 0; border-radius: 6px; background: transparent; color: var(--crm-ink-3); font: 750 6px 'Inter',sans-serif; cursor: pointer; }.crm-stx-mode button.on { background: var(--crm-card); color: var(--crm-ink); box-shadow: var(--ux-shadow); }
.crm-stx-store-head,.crm-stx-store { display: grid; grid-template-columns: 32px minmax(150px,1fr) 115px 84px; align-items: center; gap: 7px; padding: 0 11px; }.crm-stx-store-head { min-height: 25px; color: var(--crm-ink-3); font-size: 5.5px; font-weight: 800; text-transform: uppercase; }.crm-stx-store-head span:last-child { text-align: right; }
.crm-stx-store { width: 100%; min-height: 43px; border: 0; border-top: 1px solid var(--crm-line); background: var(--crm-card); color: var(--crm-ink); font: inherit; text-align: left; cursor: pointer; }.crm-stx-store:hover { background: var(--crm-card-2); }.crm-stx-store.on { background: var(--crm-accent-soft); box-shadow: inset 3px 0 var(--crm-accent); }.crm-stx-rank { color: var(--crm-ink-3); font-size: 7px; }.crm-stx-store-name { min-width: 0; }.crm-stx-store-name strong,.crm-stx-store-name small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.crm-stx-store-name strong { font-size: 7.5px; }.crm-stx-store-name small { margin-top: 2px; color: var(--crm-ink-3); font-size: 5.5px; }.crm-stx-contribution { height: 4px; overflow: hidden; border-radius: 999px; background: var(--crm-card-2); }.crm-stx-contribution > i { display: block; height: 100%; border-radius: 999px; background: var(--crm-accent); }.crm-stx-store > b { font-size: 6.5px; text-align: right; }
.crm-stx-store-detail { min-width: 0; }.crm-stx-store-cover { padding: 12px; border-bottom: 1px solid var(--crm-line); background: linear-gradient(128deg,var(--crm-ok-bg),var(--crm-card) 76%); }.crm-stx-store-cover > small { color: var(--crm-ok-ink); font-size: 5.5px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }.crm-stx-store-cover > div { display: flex; align-items: center; gap: 7px; margin-top: 6px; }.crm-stx-store-cover h3 { min-width: 0; margin: 0; overflow: hidden; font: 700 13px 'Outfit',sans-serif; text-overflow: ellipsis; white-space: nowrap; }.crm-stx-store-cover .crm-seg-badge { font-size: 6px; }.crm-stx-store-cover > p { margin: 2px 0 0; color: var(--crm-ink-3); font-size: 6.5px; }
/* Trois chiffres depuis le ticket sGq662fk4SRWUytTAKqt — la dernière commande
   a rejoint Vendu et Commandé. À deux colonnes, le troisième restait seul sur
   une deuxième rangée, à côté d'un demi-bloc vide. */
.crm-stx-store-stats { display: grid!important; grid-template-columns: repeat(3,1fr); gap: 1px!important; margin-top: 9px!important; overflow: hidden; border: 1px solid color-mix(in srgb,var(--crm-ok-dot) 15%,var(--crm-line)); border-radius: 8px; background: var(--crm-line); }.crm-stx-store-stats > span { padding: 7px; background: color-mix(in srgb,var(--crm-card) 93%,transparent); }.crm-stx-store-stats small,.crm-stx-store-stats b { display: block; }.crm-stx-store-stats small { color: var(--crm-ink-3); font-size: 5.5px; }.crm-stx-store-stats b { margin-top: 2px; font-size: 7px; }
.crm-stx-store-actions { display: grid; grid-template-columns: .8fr 1.2fr; gap: 5px; padding: 9px; }.crm-stx-store-actions button { min-height: 31px; border: 1px solid var(--crm-line); border-radius: 8px; background: var(--crm-card); color: var(--crm-ink); font: 750 6.5px 'Inter',sans-serif; cursor: pointer; }.crm-stx-store-actions button.main { border-color: var(--crm-ink); background: var(--crm-ink); color: var(--crm-card); }.crm-stx-store-detail.is-empty { min-height: 180px; display: grid; place-items: center; padding: 20px; color: var(--crm-ink-3); font-size: 7px; text-align: center; }

.crm-stx-more { overflow: hidden; border: 1px solid var(--crm-line); border-radius: 10px; background: var(--crm-card); }.crm-stx-more > button { width: 100%; min-height: 44px; display: grid; grid-template-columns:auto minmax(0,1fr) 18px; align-items: baseline; gap: 8px; padding: 11px 12px; border: 0; background: var(--crm-card); color: var(--crm-ink); font: inherit; text-align: left; cursor: pointer; }.crm-stx-more > button strong { font-size: 7.5px; }.crm-stx-more > button span { color: var(--crm-ink-3); font-size: 6.5px; }.crm-stx-more > button i { justify-self: end; font-style: normal; }.crm-stx-more-grid { display: none; grid-template-columns: 1fr 1fr; gap: 8px; padding: 0 8px 8px; }.crm-stx-more.open .crm-stx-more-grid { display: grid; }.crm-stx-more-grid > .crm-card { margin: 0; border-radius: 9px; box-shadow: none; }.crm-stx-more-grid .crm-section__label { font-size: 8px; }.crm-stx-more-grid .crm-stats-hint { font-size: 6.5px; }.crm-stx-more-grid .crm-top__name,.crm-stx-more-grid .crm-top__units { font-size: 7px; }.crm-stx-reps { grid-column: 1/-1; }

@media (max-width: 1120px) {
  .crm-stx-kpis--5 { grid-template-columns: repeat(3,1fr); }.crm-stx-kpis--5 > :nth-child(n+4) { display: none; }
  .crm-stx-overview { grid-template-columns: minmax(0,1fr) 270px; }
  .crm-stx-stores { grid-template-columns: minmax(0,1fr) 255px; }
  .crm-stx-sources > span:first-child { display: none; }
}
@media (max-width: 760px) {
  .crm-stats-v2 { width: min(calc(100% - 20px),var(--ux-max)); }.crm-stx-pagehead { align-items: flex-start; flex-direction: column; }.crm-stx-pagehead h1 { font-size: 23px; }.crm-stx-controls { width: 100%; flex-wrap: wrap; }.crm-stx-controls > .crm-filter { min-width: 0; flex: 1; }.crm-stx-periods { flex: 1; overflow-x: auto; }.crm-stx-periods button { flex: 1; white-space: nowrap; }
  .crm-stx-truth { align-items: flex-start; }.crm-stx-sources { display: none; }
  .crm-stx-kpis--4,.crm-stx-kpis--5 { grid-template-columns: 1fr 1fr; }.crm-stx-kpis--5 > :nth-child(n+4) { display: grid; }.crm-stx-kpis--5 > :last-child { grid-column: 1/-1; }
  .crm-stx-signal { grid-template-columns: 32px minmax(0,1fr); }.crm-stx-signal > button { grid-column: 1/-1; }
  .crm-stx-overview { grid-template-columns: 1fr; }.crm-stx-mix { display: none; }
  .crm-stx-stores { grid-template-columns: 1fr; }.crm-stx-store-main { border-right: 0; }.crm-stx-store-main > header { align-items: flex-start; flex-direction: column; }.crm-stx-mode { width: 100%; }.crm-stx-mode button { flex: 1; }.crm-stx-store-head,.crm-stx-store { grid-template-columns: 27px minmax(120px,1fr) 70px; }.crm-stx-store-head > :nth-child(3),.crm-stx-store > :nth-child(3) { display: none; }.crm-stx-store-detail { border-top: 1px solid var(--crm-line); }
  .crm-stx-more > button { grid-template-columns: 1fr 18px; }.crm-stx-more > button span { display: none; }.crm-stx-more-grid { grid-template-columns: 1fr; }.crm-stx-reps { grid-column: auto; }
}

/* ── Ligne du temps : trois horizons réellement décisionnels ────────── */
#ligne-du-temps-view > .crm-wrap {
  width: min(var(--ux-max), calc(100% - 40px));
  max-width: none;
  margin: 0 auto;
  padding: 18px 0 48px;
  color: var(--crm-ink);
}
#ligne-du-temps-view > .crm-wrap > .crm-tabs {
  position: static;
  width: fit-content;
  max-width: 100%;
  margin-bottom: 18px;
  border-radius: 12px;
  box-shadow: none;
}
.ldt-page-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  margin: 3px 2px 17px;
}
.ldt-page-head > div:first-child > span {
  color: var(--crm-accent);
  font-size: 9.5px;
  font-weight: 750;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.ldt-page-head h1 {
  margin: 5px 0 0;
  color: var(--crm-ink);
  font: 700 27px/1.1 'Outfit', sans-serif;
  letter-spacing: -.025em;
}
.ldt-page-head p { margin: 5px 0 0; color: var(--crm-ink-2); font-size: 12.5px; }
.ldt-page-meta {
  min-width: 126px;
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 7px;
  padding: 10px 13px;
  border: 1px solid var(--crm-line);
  border-radius: 11px;
  background: var(--crm-card);
}
.ldt-page-meta strong { color: var(--crm-ink); font: 700 21px/1 'Outfit', sans-serif; }
.ldt-page-meta span { color: var(--crm-ink-2); font-size: 10.5px; }
#ligne-du-temps-view .ldt-kpis { gap: 10px; margin-bottom: 12px; }
#ligne-du-temps-view .ldt-kpi {
  min-height: 72px;
  grid-template-columns: 38px auto 1fr;
  padding: 11px 13px;
  border-radius: 13px;
  box-shadow: none;
}
#ligne-du-temps-view .ldt-kpi-ic { width: 38px; height: 38px; border-radius: 12px; }
#ligne-du-temps-view .ldt-kpi strong { font: 700 23px/1 'Outfit', sans-serif; }
#ligne-du-temps-view .ldt-kpi > span:last-child { font-size: 10.5px; }
#ligne-du-temps-view .ldt-bar { margin-bottom: 14px; padding: 8px 10px; border-radius: 12px; box-shadow: none; }
#ligne-du-temps-view .ldt-search { max-width: 340px; }
#ligne-du-temps-view .ldt-chips { border-radius: 9px; }
#ligne-du-temps-view .ldt-chip { min-height: 31px; padding: 6px 9px; border-radius: 7px; font-size: 10.5px; }
#ligne-du-temps-view .ldt-select { height: 34px; border-radius: 9px; font-size: 11px; }
#ligne-du-temps-view .ldt-cols { gap: 14px; }
#ligne-du-temps-view .ldt-col {
  min-width: 0;
  min-height: 560px;
  padding: 0 10px 10px;
  border-radius: 16px;
  background: color-mix(in srgb, var(--crm-card) 72%, transparent);
}
#ligne-du-temps-view .ldt-col-head { min-height: 87px; margin: 0 -10px 10px; padding: 15px 14px 11px; }
#ligne-du-temps-view .ldt-col-head::before { display: none; }
#ligne-du-temps-view .ldt-col-t { font: 700 16px 'Outfit', sans-serif; }
#ligne-du-temps-view .ldt-col-s { margin: 5px 0 0 34px; font-size: 11px; font-weight: 700; }
#ligne-du-temps-view .ldt-col-q { margin: 3px 0 0 34px; font-size: 10.5px; font-style: normal; }
#ligne-du-temps-view .ldt-step { width: 25px; height: 25px; }
#ligne-du-temps-view .ldt-card {
  padding: 13px 14px 12px;
  border-radius: 12px;
  box-shadow: none;
}
#ligne-du-temps-view .ldt-card-title { font-size: 13px; line-height: 1.35; }
#ligne-du-temps-view .ldt-rail { height: 4px; margin-top: 9px; }
#ligne-du-temps-view .ldt-skus { margin-top: 10px; font-size: 11.5px; }
#ligne-du-temps-view .ldt-sku { padding: 3px 0; }
#ligne-du-temps-view .ldt-card-foot { margin-top: 10px; }
#ligne-du-temps-view .ldt-meta { padding-top: 9px; border-top: 1px solid var(--crm-line); }

@media (max-width: 900px) {
  #ligne-du-temps-view > .crm-wrap { width: min(100% - 24px, var(--ux-max)); padding-top: 12px; }
  .ldt-page-head { align-items: flex-start; }
  .ldt-page-meta { display: none; }
  #ligne-du-temps-view .ldt-cols > .ldt-col { min-height: 0; }
}

/* ── Réunions : semaine, journée et détail sans rupture de contexte ─── */
#reunions-view {
  width: min(var(--ux-max), calc(100% - 40px));
  max-width: none;
  margin: 0 auto;
  padding: 21px 0 52px;
  color: var(--gs-ink);
}
.rn-page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin: 0 2px 15px; }
.rn-page-head > div > span { color: var(--gs-accent); font-size: 9.5px; font-weight: 750; letter-spacing: .11em; text-transform: uppercase; }
.rn-page-head h1 { margin: 5px 0 0; color: var(--gs-ink); font: 700 27px/1.1 'Outfit', sans-serif; letter-spacing: -.025em; }
.rn-page-head p { margin: 5px 0 0; color: var(--gs-ink-faint); font-size: 12.5px; }
.rn-page-head > .btn { min-height: 44px; padding-inline: 15px; border-radius: 10px; font-size: 14px; }
.rn-toolbar {
  min-height: 47px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 11px;
  padding: 5px 7px;
  border: 1px solid var(--gs-line);
  border-radius: 12px;
  background: var(--gs-panel);
}
.rn-filter-tabs { display: flex; align-items: center; gap: 3px; overflow-x: auto; scrollbar-width: none; }
.rn-filter-tabs::-webkit-scrollbar { display: none; }
.rn-filter {
  min-height: 44px;
  flex: 0 0 auto;
  padding: 0 12px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--gs-ink-faint);
  font: 650 14px 'Inter', sans-serif;
  cursor: pointer;
}
.rn-filter:hover { color: var(--gs-ink); background: var(--gs-panel-2); }
.rn-filter.on { color: var(--gs-panel); background: var(--gs-ink); }
.rn-sync { flex: none; display: inline-flex; align-items: center; gap: 7px; padding-right: 7px; color: var(--gs-ink-dim); font-size: 13px; }
.rn-sync i { width: 8px; height: 8px; border-radius: 50%; background: var(--gs-ok); }
.rn-weekbar {
  display: grid;
  grid-template-columns: minmax(250px, .7fr) minmax(0, 1fr);
  align-items: stretch;
  gap: 5px;
  margin-bottom: 14px;
  padding: 8px;
  border: 1px solid var(--gs-line);
  border-radius: 14px;
  background: var(--gs-panel);
  box-shadow: var(--ux-shadow);
}
.rn-week-controls { display: flex; align-items: center; gap: 4px; min-width: 0; }
.rn-weekdays { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 2px; min-width: 0; }
.rn-weekrange { display: flex; flex: 1; min-width: 0; flex-direction: column; justify-content: center; padding: 0 8px; }
.rn-weekrange span { color: var(--gs-ink-dim); font-size: 12px; font-weight: 650; }
.rn-weekrange strong { margin-top: 4px; font-size: 14px; overflow-wrap: anywhere; }
.rn-nav, .rn-today-btn, .rn-daypick {
  border: 1px solid transparent;
  border-radius: 9px;
  background: transparent;
  color: var(--gs-ink-dim);
  font: inherit;
  cursor: pointer;
}
.rn-nav:hover, .rn-today-btn:hover, .rn-daypick:hover { border-color: var(--gs-line); background: var(--gs-panel-2); }
.rn-nav { flex: 0 0 44px; min-height: 44px; font-size: 22px; }
.rn-today-btn { min-height: 44px; padding: 8px; border-color: var(--gs-line); font-size: 14px; font-weight: 650; }
.rn-daypick { min-height: 67px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; }
.rn-daypick > span { color: var(--gs-ink-dim); font-size: 12px; font-weight: 650; }
.rn-daypick > strong { color: var(--gs-ink); font: 700 18px/1 'Outfit', sans-serif; }
.rn-daypick > small { min-height: 16px; color: var(--gs-ink-dim); font-size: 12px; }
.rn-daypick.today:not(.on) { box-shadow: inset 0 0 0 1px var(--gs-accent); }
.rn-daypick.on { border-color: var(--gs-ink); background: var(--gs-ink); }
.rn-daypick.on > span, .rn-daypick.on > strong, .rn-daypick.on > small { color: var(--gs-panel); }
.rn-workspace { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(350px, .85fr); gap: 14px; align-items: start; }
.rn-agenda-panel, .rn-detail-panel { min-width: 0; border: 1px solid var(--gs-line); border-radius: 16px; background: var(--gs-panel); box-shadow: var(--ux-shadow); }
.rn-agenda-panel { overflow: hidden; }
.rn-agenda-panel > header { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 17px 20px; border-bottom: 1px solid var(--gs-line); }
.rn-agenda-panel > header span { color: var(--gs-ink-faint); font-size: 9px; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
.rn-agenda-panel > header h2 { margin: 4px 0 0; color: var(--gs-ink); font: 700 18px 'Outfit', sans-serif; }
.rn-agenda-panel > header b { min-width: 31px; height: 27px; display: grid; place-items: center; border-radius: 8px; background: var(--gs-accent-soft); color: var(--gs-accent); font-size: 11px; }
.rn-day-timeline { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 12px; }
.rn-day-timeline.has-meetings::before { content: ''; position: absolute; top: 30px; bottom: 30px; left: 88px; width: 1px; background: var(--gs-line-strong); }
.rn-day-timeline .ux-state { min-height: 190px; }
.rn-detail-panel[hidden] { display: none; }
.rn-row {
  position: relative;
  min-height: 82px;
  display: grid;
  grid-template-columns: 62px 18px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 9px;
  padding: 12px;
  border: 1px solid var(--gs-line);
  border-radius: 11px;
  background: var(--gs-panel);
  transition: background .14s ease, border-color .14s ease, box-shadow .14s ease;
}
.rn-row:hover { border-color: var(--gs-line-strong); background: var(--gs-panel-2); }
.rn-row.on { border-color: color-mix(in srgb, var(--gs-accent) 60%, transparent); background: var(--gs-accent-soft); box-shadow: inset 3px 0 0 var(--gs-accent); }
.rn-row:focus-visible { outline: 2px solid var(--gs-accent); outline-offset: 2px; }
.rn-time { min-width: 0; color: var(--gs-ink); font-size: 13px; }
.rn-time .rn-dur { margin-top: 3px; color: var(--gs-ink-faint); font-size: 9px; }
.rn-timeline-dot { position: relative; z-index: 1; width: 9px; height: 9px; justify-self: center; border: 2px solid var(--gs-panel); border-radius: 50%; background: var(--gs-accent); box-shadow: 0 0 0 1px var(--gs-accent); }
.rn-row.on .rn-timeline-dot { width: 13px; height: 13px; box-shadow: 0 0 0 4px var(--gs-accent-soft); }
.rn-subject { color: var(--gs-ink); font-size: 16px; line-height: 1.45; white-space: normal; overflow-wrap: anywhere; }
.rn-detail { margin-top: 5px; color: var(--gs-ink-faint); font-size: 10.5px; }
.rn-row .rn-av { width: 25px; height: 25px; }
.rn-row .rn-join { min-height: 34px; padding: 7px 10px; border-radius: 8px; font-size: 10.5px; }
.rn-empty-state { min-height: 320px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 30px; text-align: center; }
.rn-empty-state > span { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 16px; background: var(--gs-accent-soft); color: var(--gs-accent); font-size: 22px; }
.rn-empty-state strong { margin-top: 14px; font-size: 14px; }
.rn-empty-state small { max-width: 38ch; margin-top: 5px; color: var(--gs-ink-faint); line-height: 1.45; }
.rn-detail-panel { position: sticky; top: calc(var(--gs-chrome-h, 0px) + 12px); overflow: hidden; }
.rn-detail-card { min-height: 550px; }
.rn-detail-head { position: relative; padding: 18px 52px 18px 20px; background: var(--gs-ink); }
.rn-detail-head > span { color: color-mix(in srgb, var(--gs-panel) 68%, transparent); font-size: 9px; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.rn-detail-head h2 { margin: 7px 0 0; color: var(--gs-panel); font: 700 18px/1.3 'Outfit', sans-serif; }
.rn-more { position: absolute; top: 8px; right: 6px; width: 44px; height: 44px; border: 1px solid color-mix(in srgb, var(--gs-panel) 25%, transparent); border-radius: 8px; background: transparent; color: var(--gs-panel); cursor: pointer; }
.rn-detail-section { padding: 15px 20px; border-bottom: 1px solid var(--gs-line); }
.rn-detail-section .rn-d-label { display: block; margin: 0 0 8px; color: var(--gs-ink-faint); font-size: 9px; }
.rn-detail-section > strong { display: block; color: var(--gs-ink); font-size: 12.5px; }
.rn-detail-section > p, .rn-detail-muted { margin: 5px 0 0; color: var(--gs-ink-faint); font-size: 10.5px; line-height: 1.45; }
.rn-agenda-copy { color: var(--gs-ink-dim); font-size: 12px; line-height: 1.58; }
.rn-detail-avatars { display: flex; align-items: center; min-height: 36px; }
.rn-detail-av { width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; margin-left: -5px; border: 2px solid var(--gs-panel); border-radius: 50%; object-fit: cover; }
.rn-detail-av:first-child { margin-left: 0; }
.rn-detail-organizer { background: var(--gs-accent); color: #fff; font-size: 13px; }
.rn-detail-rsvp .rn-types { gap: 5px; }
.rn-detail-rsvp .rn-type { flex: 1; min-width: max-content; padding: 7px 8px; border-radius: 8px; font-size: 9.5px; }
.rn-detail-rsvp .rn-rsvp-hint { margin-top: 7px; font-size: 9.5px; }
.rn-series-note { margin: 10px 20px 0; padding: 9px 10px; border-radius: 9px; background: var(--gs-panel-2); color: var(--gs-ink-faint); font-size: 9.5px; line-height: 1.4; }
.rn-detail-actions { display: flex; justify-content: flex-end; gap: 7px; padding: 14px 20px 17px; }
.rn-detail-actions .btn { min-height: 36px; padding: 8px 10px; border-radius: 8px; font-size: 10px; }
#reunions-view .rn-time { font-size: 15px; }
#reunions-view :is(.rn-dur, .rn-detail, .rn-detail-muted, .rn-detail-section > p, .rn-rsvp-hint, .rn-series-note) { font-size: 13px; line-height: 1.5; color: var(--gs-ink-dim); overflow-wrap: anywhere; }
#reunions-view .rn-detail { white-space: normal; }
#reunions-view :is(.rn-detail-section > strong, .rn-agenda-copy) { font-size: 15px; line-height: 1.6; overflow-wrap: anywhere; }
#reunions-view .rn-d-label { font-size: 12px; }
#reunions-view .rn-rsvp { flex-wrap: wrap; }
#reunions-view .rn-rsvp-btn { min-height: 44px; flex: 1 1 130px; font-size: 14px; }
#reunions-view .rn-detail-actions .btn { min-height: 44px; font-size: 14px; }
.rn-rsvp-hint.is-warning { padding: 10px; border: 1px solid var(--gs-line); border-radius: 8px; background: var(--gs-panel-2); }
.rn-detail-empty { padding: 24px; color: var(--gs-ink-dim); }
.rn-detail-empty h3 { color: var(--gs-ink); font-size: 18px; }
.rn-detail-empty p { font-size: 14px; line-height: 1.5; }

@media (max-width: 1120px) {
  .rn-weekbar { grid-template-columns: 1fr; }
  .rn-workspace { grid-template-columns: minmax(0, 1.3fr) minmax(320px, .8fr); }
  .rn-row { grid-template-columns: 56px 16px minmax(0, 1fr) auto; }
  .rn-row .rn-avs { display: none; }
  .rn-day-timeline.has-meetings::before { left: 80px; }
}

@media (max-width: 840px) {
  #reunions-view { width: min(100% - 24px, var(--ux-max)); padding-top: 14px; }
  .rn-sync { display: none; }
  .rn-filter-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; overflow: visible; }
  .rn-filter { min-width: 0; padding: 8px 4px; white-space: normal; font-size: 13px; line-height: 1.4; }
  .rn-weekbar { display: grid; }
  .rn-workspace { grid-template-columns: 1fr; }
  .rn-detail-panel { position: static; }
  .rn-detail-panel { scroll-margin-top: calc(var(--gs-mobile-top, 0px) + 12px); }
}

@media (max-width: 560px) {
  .rn-page-head { align-items: flex-start; }
  .rn-page-head h1 { font-size: 23px; }
  .rn-page-head p { display: none; }
  .rn-page-head > .btn { min-height: 44px; padding-inline: 10px; font-size: 14px; }
  .rn-week-controls { flex-wrap: wrap; justify-content: center; }
  .rn-weekrange { flex: 1 0 100%; padding: 4px 8px 8px; }
  .rn-toolbar { display: block; overflow: hidden; }
  .rn-row { grid-template-columns: 48px 14px minmax(0, 1fr); padding: 10px 8px; }
  .rn-row .rn-avs, .rn-row .rn-join { display: none; }
  .rn-day-timeline.has-meetings::before { left: 71px; }
  .rn-detail-actions { flex-wrap: wrap; }
  .rn-detail-actions .btn { flex: 1 1 42%; }
}

/* Réunions : éditeur natif, défilement des champs et actions toujours accessibles. */
.rn-editor-dialog { width: 100%; height: 100dvh; max-width: none; max-height: none; inset: 0; margin: 0; padding: 0; border: 0; background: transparent; color: var(--gs-ink); }
.rn-editor-dialog:not([open]) { display: none; }
.rn-editor-dialog::backdrop { background: rgba(31,29,25,.38); backdrop-filter: blur(2px); }
body[data-gtheme="dark"] .rn-editor-dialog { color-scheme: dark; }
.rn-editor { width: min(640px, 100%); height: 100%; min-height: 0; margin-left: auto; display: flex; flex-direction: column; overflow: hidden; background: var(--gs-panel); box-shadow: -8px 0 40px #0002; }
.rn-editor-head { display: flex; flex: none; align-items: center; justify-content: space-between; gap: 12px; padding: max(16px, env(safe-area-inset-top)) 20px 16px; border-bottom: 1px solid var(--gs-line); }
.rn-editor-head h2 { margin: 0; font: 650 24px/1.25 'Outfit', sans-serif; }
.rn-editor-head > button { flex: none; width: 44px; padding: 0; display: grid; place-items: center; }
.rn-editor-form { display: flex; flex: 1; flex-direction: column; min-height: 0; margin: 0; }
.rn-editor-fields { flex: 1; min-height: 0; overflow: auto; overscroll-behavior: contain; padding: 20px; overflow-wrap: anywhere; }
.rn-editor .form-group { min-width: 0; margin-bottom: 18px; }
.rn-editor :is(label, legend) { font-size: 14px; font-weight: 600; line-height: 1.5; color: var(--gs-ink); text-transform: none; letter-spacing: normal; }
.rn-editor :is(input:not([type=checkbox]), select, textarea) { width: 100%; min-width: 0; min-height: 44px; box-sizing: border-box; font-family: inherit; font-weight: 400; font-size: 16px; line-height: 1.5; padding: 10px 12px; border: 1px solid var(--gs-line); border-radius: 10px; background: var(--gs-panel); color: var(--gs-ink); }
.rn-editor textarea { font-family: inherit; resize: vertical; }
.rn-editor button { min-height: 44px; font-size: 14px; line-height: 1.4; white-space: normal; }
.rn-editor :is(button, input, textarea, select):focus-visible { outline: 2px solid var(--gs-accent); outline-offset: 2px; }
.rn-editor [aria-invalid=true] { border-color: var(--gs-crit); }
.rn-editor :disabled { opacity: .6; cursor: wait; }
.rn-editor .rn-form-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rn-type-field { border: 0; padding: 0; margin: 0 0 18px; min-width: 0; }
.rn-type-field legend { margin-bottom: 8px; }
.rn-editor .rn-types { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.rn-editor .rn-type { margin: 0; border-radius: 10px; }
.rn-editor .rn-type.on { background: var(--gs-ink); border-color: var(--gs-ink); color: var(--gs-panel); }
.rn-editor .rn-form-note, .rn-editor .rn-recur-hint { margin: 0 0 12px; font-size: 14px; line-height: 1.5; color: var(--gs-ink-dim); }
.rn-editor #rnConflicts { padding: 12px; border-radius: 10px; background: var(--gs-panel-2); white-space: pre-line; }
.rn-editor #rnConflicts:empty { display: none; }
.rn-editor #rnConflicts p { margin: 0 0 8px; }
.rn-editor #rnConflicts.rn-conflicts, .rn-editor .rn-recur-err { color: var(--gs-crit); }
.rn-editor .rn-chips { margin-bottom: 10px; }
.rn-editor .rn-chip { display: inline-flex; align-items: center; gap: 4px; max-width: 100%; padding: 0 0 0 12px; font-size: 14px; min-height: 44px; border-radius: 10px; }
.rn-editor .rn-chip > span { min-width: 0; overflow-wrap: anywhere; }
.rn-editor .rn-chip:not(:has(button)) { padding-right: 12px; }
.rn-editor .rn-chip button { flex: none; width: 44px; opacity: 1; margin: 0; color: var(--gs-ink-dim); }
.rn-editor .rn-userlist { max-height: none; margin-top: 10px; border: 0; background: transparent; }
.rn-editor .rn-user { display: flex; flex-direction: column; align-items: flex-start; width: 100%; padding: 10px 12px; margin: 0; border: 0; border-bottom: 1px solid var(--gs-line); border-radius: 0; background: var(--gs-panel); color: var(--gs-ink); text-align: left; overflow-wrap: anywhere; }
.rn-editor .rn-user:hover { background: var(--gs-panel-2); }
.rn-editor .rn-user-mail { font-size: 13px; color: var(--gs-ink-dim); opacity: 1; margin-left: 0; }
.rn-editor .rn-userlist > .btn { margin-top: 8px; }
.rn-editor .rn-meet-opt, .rn-editor #rnRetryCheck label { display: flex; align-items: center; gap: 10px; min-height: 44px; font-weight: 400; }
.rn-editor #rnRetryCheck a { display: inline-flex; align-items: center; min-height: 44px; color: var(--gs-ink); text-decoration: underline; }
.rn-editor input[type=checkbox] { flex: none; width: 20px; height: 20px; margin: 0; }
.rn-editor-actions, .rn-editor-confirm { display: flex; flex: none; flex-wrap: wrap; gap: 10px; padding: 14px 20px max(14px, env(safe-area-inset-bottom)); border-top: 1px solid var(--gs-line); background: var(--gs-panel); }
.rn-editor-actions > button, .rn-editor-confirm > button { flex: 1 1 120px; }
.rn-editor-feedback { flex-basis: 100%; max-height: min(150px, calc(var(--gs-viewport-height, 100dvh) * .3)); overflow: auto; font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
.rn-editor-feedback:has(#rnFormError:empty):has(#rnFormProgress:empty):has(#rnRetryCheck[hidden]) { display: none; }
.rn-editor-feedback p { margin: 0; }
.rn-editor #rnFormError { color: var(--gs-crit); }
.rn-editor-confirm p { flex-basis: 100%; margin: 0; font-size: 15px; line-height: 1.5; }
.rn-editor [hidden] { display: none !important; }
.rn-form-result h3 { font: 650 24px/1.3 'Outfit', sans-serif; margin: 0 0 16px; }
.rn-form-result :is(p, li) { font-size: 15px; line-height: 1.5; }
.rn-form-result li { margin-bottom: 16px; }
@media (max-width: 700px) {
  .rn-editor-dialog { top: var(--gs-viewport-top, 0px); bottom: auto; height: var(--gs-viewport-height, 100dvh); }
  .rn-editor-head { padding-inline: 16px; }
  .rn-editor-fields { padding: 16px; }
  .rn-editor-actions, .rn-editor-confirm { padding-inline: 16px; }
  .rn-editor .rn-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rn-editor .rn-form-grid > .form-group:first-child { grid-column: 1 / -1; }
}

/* Réunions : lecture complète et confirmation d'annulation dans le même cadre. */
.rn-detail-dialog .rn-editor-head h2 { font-size: 22px; }
.rn-detail-dialog .rn-full-subject { margin: 0 0 18px; font: 650 24px/1.3 'Outfit', sans-serif; overflow-wrap: anywhere; }
.rn-detail-dialog .rn-editor-fields > p, .rn-full-section p { font-size: 15px; line-height: 1.55; }
.rn-full-section { padding: 16px 0; border-bottom: 1px solid var(--gs-line); }
.rn-full-section h4, .rn-full-danger h4 { margin: 0 0 10px; font-size: 15px; line-height: 1.4; }
.rn-full-section p { margin: 0 0 10px; }
.rn-full-copy { white-space: pre-wrap; }
.rn-full-people { list-style: none; padding: 0; margin: 0; }
.rn-full-people li { display: flex; flex-direction: column; gap: 3px; padding: 10px 0; border-bottom: 1px solid var(--gs-line); }
.rn-full-people li:last-child { border: 0; }
.rn-full-people strong { font-size: 15px; line-height: 1.4; }
.rn-full-people span { font-size: 14px; line-height: 1.5; color: var(--gs-ink-dim); }
.rn-full-people button { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; width: 100%; border: 0; border-radius: 8px; padding: 8px; background: transparent; color: var(--gs-ink); text-align: left; overflow-wrap: anywhere; cursor: pointer; }
.rn-full-people button:hover { background: var(--gs-panel-2); }
.rn-detail-dialog .rn-status-note { padding: 12px; margin: 16px 0; border-radius: 10px; background: var(--gs-panel-2); font-size: 14px; line-height: 1.55; }
.rn-full-rsvp:empty { display: none; }
.rn-full-rsvp { padding: 16px 0; }
.rn-full-rsvp .rn-d-label, .rn-full-rsvp .rn-rsvp-hint { font-size: 14px; line-height: 1.5; opacity: 1; color: var(--gs-ink-dim); }
.rn-full-rsvp .rn-rsvp-btn:last-child { grid-column: 1 / -1; }
.rn-full-links, .rn-full-danger { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.rn-full-links .btn { flex: 1 1 150px; min-height: 44px; font-size: 14px; white-space: normal; }
.rn-full-danger { padding: 18px 0; border-top: 1px solid var(--gs-line); }
.rn-full-danger h4 { flex-basis: 100%; }
.rn-full-danger .btn { flex: 1 1 180px; color: var(--gs-crit); background: transparent; border: 1px solid var(--gs-line); }
.rn-detail-dialog .rn-cancel-subject { font-weight: 650; }
.rn-cancel-feedback { flex-basis: 100%; margin: 0; max-height: min(140px, calc(var(--gs-viewport-height, 100dvh) * .3)); overflow: auto; color: var(--gs-crit); font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
.rn-cancel-feedback:empty { display: none; }

/* ── Support IT : file décisionnelle et dossier côte à côte ─────────── */
#support-view { width: min(var(--ux-max), calc(100% - 40px)); max-width: none; margin: 0 auto; padding: 13px 0 56px; color: var(--gs-ink); }
#support-view .sup-toolbar { min-height: 49px; margin: 0 0 18px; padding: 5px 0 10px; border-bottom-color: var(--gs-line); }
#support-view .sup-tabs { border-color: var(--gs-line); background: var(--gs-panel); }
#support-view .sup-tabs .tasks-proj-chip.on { background: var(--gs-ink); color: var(--gs-panel); }
#support-view .sup-toolbar > .btn { min-height: 39px; border-radius: 9px; }
.sup-page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin: 0 1px 16px; }
.sup-page-head > div { min-width: 0; }
.sup-eyebrow { color: var(--gs-accent); font-size: 9px; font-weight: 750; letter-spacing: .11em; text-transform: uppercase; }
.sup-page-head h2 { margin: 5px 0 0; color: var(--gs-ink); font: 700 27px/1.1 'Outfit', sans-serif; letter-spacing: -.025em; }
.sup-page-head p { margin: 6px 0 0; color: var(--gs-ink-faint); font-size: 12.5px; }
.sup-live { display: inline-flex; align-items: center; gap: 7px; color: var(--gs-ok); font-size: 10.5px; font-weight: 700; }
.sup-live i { width: 7px; height: 7px; border-radius: 50%; background: var(--gs-ok); }
/* Les tuiles de compteurs (.sup-queue-summary / .sup-summary-card) ont été
   retirées : elles répétaient la rangée « File » du panneau de filtres. */
#support-view .sup-console { gap: 11px; }
#support-view .sup-workbar { grid-template-columns: minmax(280px, 1fr) auto; }
#support-view .sup-search-wrap input, #support-view .sup-sort-wrap select { border-color: var(--gs-line); border-radius: 10px; background: var(--gs-panel); color: var(--gs-ink); }
#support-view .sup-filter-panel { border-color: var(--gs-line); border-radius: 11px; background: var(--gs-panel-2); }
#support-view .sup-filter-row { min-height: 45px; border-bottom-color: var(--gs-line); }
#support-view .sup-filter-options .tasks-proj-chip { border-radius: 8px; }
#support-view .sup-filter-options .tasks-proj-chip.on { background: var(--gs-ink); color: var(--gs-panel); border-color: var(--gs-ink); }
.sup-workspace { min-width: 0; display: grid; grid-template-columns: minmax(600px, 1.85fr) minmax(360px, .95fr); gap: 14px; align-items: start; }
.sup-master-panel, .sup-inline-detail { min-width: 0; border: 1px solid var(--gs-line); border-radius: 14px; background: var(--gs-panel); box-shadow: var(--ux-shadow); overflow: hidden; }
.sup-master-panel .sup-result-bar { min-height: 44px; padding: 5px 13px; }
.sup-master-panel .sup-list-head { border: 0; border-block: 1px solid var(--gs-line); border-radius: 0; background: var(--gs-panel-2); }
.sup-master-panel .sup-list { border: 0; border-radius: 0; }
.sup-master-panel .sup-list-head, .sup-master-panel .sup-row { grid-template-columns: 78px minmax(230px, 1fr) minmax(238px, auto); }
.sup-master-panel .sup-row { min-height: 91px; cursor: pointer; }
.sup-master-panel .sup-row.is-selected { border-left-color: var(--gs-accent); background: var(--gs-accent-soft); box-shadow: inset 3px 0 0 var(--gs-accent); }
.sup-master-panel .sup-row:hover { background: var(--gs-panel-2); }
.sup-inline-detail { position: sticky; top: calc(var(--gs-chrome-h, 0px) + 12px); min-height: 515px; }
.sup-inline-empty { min-height: 515px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 32px; color: var(--gs-ink-faint); text-align: center; }
.sup-inline-empty > span { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 15px; background: var(--gs-accent-soft); color: var(--gs-accent); font-size: 22px; }
.sup-inline-empty strong { margin-top: 14px; color: var(--gs-ink); font-size: 14px; }
.sup-inline-empty p { max-width: 32ch; margin: 5px 0 0; font-size: 11px; line-height: 1.45; }
.sup-inline-head { min-height: 111px; display: flex; justify-content: space-between; gap: 12px; padding: 19px 20px; background: var(--gs-ink); color: var(--gs-panel); }
.sup-inline-head > div { min-width: 0; }
.sup-inline-head > div > span { color: color-mix(in srgb, var(--gs-panel) 66%, transparent); font-size: 8.5px; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.sup-inline-head h3 { margin: 7px 0 0; color: inherit; font: 700 17px/1.3 'Outfit', sans-serif; }
.sup-inline-head p { margin: 6px 0 0; color: color-mix(in srgb, var(--gs-panel) 70%, transparent); font-size: 10px; }
.sup-inline-head .sup-kind { height: 24px; flex: none; }
.sup-inline-body { max-height: min(610px, calc(100dvh - 310px)); overflow-y: auto; padding: 4px 20px 12px; }
.sup-inline-section { padding: 15px 0; border-bottom: 1px solid var(--gs-line); }
.sup-inline-label { display: block; margin-bottom: 8px; color: var(--gs-ink-faint); font-size: 8.5px; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
.sup-inline-message { margin: 0; color: var(--gs-ink); font-size: 12px; font-weight: 620; line-height: 1.55; white-space: pre-wrap; }
.sup-inline-shots { display: flex; flex-wrap: wrap; gap: 6px; padding-top: 12px; }
.sup-inline-shots a { min-height: 31px; display: inline-flex; align-items: center; padding: 0 9px; border: 1px solid var(--gs-line); border-radius: 8px; color: var(--gs-accent); font-size: 10px; font-weight: 700; text-decoration: none; }
.sup-inline-detail .sup-d-env { margin: 10px 0 0; border-color: var(--gs-line); background: var(--gs-panel-2); color: var(--gs-ink-faint); }
.sup-inline-detail .sup-segs { border-color: var(--gs-line); background: var(--gs-panel-2); }
.sup-inline-detail .sup-seg { min-height: 36px; border-right-color: var(--gs-line); color: var(--gs-ink-faint); font-size: 10px; }
.sup-inline-detail .sup-seg.on { background: var(--gs-ink); color: var(--gs-panel); }
.sup-inline-owner { min-height: 38px; display: flex; align-items: center; gap: 8px; }
.sup-inline-owner > strong { color: var(--gs-ink); font-size: 11.5px; }
.sup-inline-owner .sup-status { margin-left: auto; }
.sup-owner-empty { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: var(--gs-accent-soft); color: var(--gs-accent); font-weight: 800; }
.sup-inline-comment { margin-top: 7px; padding: 9px 10px; border-radius: 9px; background: var(--gs-panel-2); }
.sup-inline-comment strong { color: var(--gs-ink); font-size: 10px; }
.sup-inline-comment p { margin: 3px 0 0; color: var(--gs-ink-dim); font-size: 10.5px; line-height: 1.45; }
.sup-inline-actions { display: flex; justify-content: flex-end; gap: 7px; padding: 12px 20px 16px; border-top: 1px solid var(--gs-line); }
.sup-inline-actions .btn { min-height: 36px; padding: 7px 10px; border-radius: 8px; font-size: 10px; }

/* Support : contrôles stables, lecture complète et triage tactile. */
#support-view :is(button, input, select):focus-visible, #support-view .sup-row:focus-visible { outline: 2px solid var(--gs-accent); outline-offset: 3px; }
#support-view .sup-console [hidden] { display: none !important; }
#support-view .sup-toolbar { flex-wrap: wrap; }
#support-view .sup-tabs { display: flex; flex-wrap: wrap; min-width: 0; }
#support-view :is(.tasks-proj-chip, .sup-claim-btn, .sup-tri-btn, .sup-refresh, .sup-inline-actions .btn, .sup-inline-detail .sup-seg) { min-height: 44px; font-size: 14px; }
#support-view [data-sup-period].on { background: var(--gs-ink); color: var(--gs-panel); border-color: var(--gs-ink); }
#support-view .sup-workbar { grid-template-columns: minmax(0, 1fr) auto; }
#support-view .sup-search-wrap { min-width: 0; }
#support-view .sup-search-wrap input, #support-view .sup-sort-wrap select { min-height: 46px; font-size: 16px; }
#support-view .sup-search-wrap input { padding-right: 50px; }
#support-view #supSearch::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; }
#support-view .sup-search-clear { min-width: 44px; min-height: 44px; }
#support-view .sup-refresh { min-width: 44px; }
#support-view .sup-filter-row { flex-wrap: wrap; }
#support-view .sup-filter-label { font-size: 12px; }
#support-view .sup-filter-options, #support-view .sup-people .sup-filter-options { display: flex; flex-wrap: wrap; overflow: visible; min-width: 0; }
#support-view .sup-filter-options .tasks-proj-chip { gap: 6px; padding: 8px 10px; white-space: normal; overflow-wrap: anywhere; }
#support-view .sup-result-bar { display: flex; flex-wrap: wrap; gap: 8px; font-size: 14px; }
#support-view #supResultsCount { margin-right: auto; }
#support-view .sup-workspace { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(300px, .9fr); }
#support-view .sup-list-head, #support-view .sup-row { grid-template-columns: 70px minmax(0, 1fr) minmax(150px, auto); }
#support-view .sup-row { min-width: 0; cursor: pointer; }
#support-view .sup-main { min-width: 0; }
#support-view .sup-msg { display: block; -webkit-line-clamp: unset; overflow: visible; white-space: normal; overflow-wrap: anywhere; font-size: 16px; line-height: 1.5; color: var(--gs-ink); }
#support-view .sup-meta { flex-wrap: wrap; white-space: normal; color: var(--gs-ink-dim); font-size: 13px; line-height: 1.5; overflow: visible; }
#support-view .sup-meta > * { overflow: visible; overflow-wrap: anywhere; }
#support-view .sup-status, #support-view .sup-kind, #support-view .sup-assignee { font-size: 12px; }
#support-view .sup-row-actions { flex-wrap: wrap; }
#support-view .sup-pagination { padding: 12px; font-size: 14px; }
#support-view .sup-pagination button { width: 44px; height: 44px; }
#support-view .sup-pagination [aria-disabled="true"] { opacity: .45; cursor: default; }
#support-view .sup-empty-action { padding: 0 20px 20px; text-align: center; }
#support-view .sup-inline-head h3 { font-size: 20px; overflow-wrap: anywhere; }
#support-view .sup-inline-head p, #support-view .sup-inline-label, #support-view .sup-inline-comment strong, #support-view .sup-inline-owner > strong { font-size: 13px; }
#support-view .sup-inline-message, #support-view .sup-inline-comment p { font-size: 15px; overflow-wrap: anywhere; }
#support-view .sup-inline-actions { flex-wrap: wrap; }
#support-view .sup-live { font-size: 13px; color: var(--gs-ink-dim); }
#support-view .sup-live[data-state="error"] { color: var(--gs-crit); }
#support-view .sup-stat-l, #support-view .sup-bar-row { font-size: 14px; }
@media (max-width: 1100px) {
  #support-view .sup-workspace { display: block; }
  #support-view .sup-inline-detail { display: none; }
}
@media (max-width: 700px) {
  #support-view .sup-workbar { grid-template-columns: minmax(0, 1fr); }
  #support-view .sup-sort-wrap select { min-width: 0; width: auto; max-width: 78%; }
  #support-view .sup-row { grid-template-columns: auto minmax(0, 1fr); padding: 14px; gap: 10px; }
  #support-view .sup-main { grid-column: 1 / -1; grid-row: 2; }
  #support-view .sup-row-right { display: contents; }
  #support-view .sup-row-actions { grid-column: 1 / -1; grid-row: 3; }
  #support-view .sup-status { grid-column: 2; grid-row: 1; }
  #support-view .sup-list-head { display: none; }
  #support-view .sup-tabs { display: grid; grid-template-columns: repeat(auto-fit, minmax(95px, 1fr)); flex: none; width: 100%; }
  #support-view .sup-tabs .tasks-proj-chip { padding: 8px; white-space: normal; line-height: 1.25; }
}

/* Dossier Support : une seule zone de lecture, réponse toujours accessible. */
.sup-detail-dialog { position: fixed; inset: 0; width: 100%; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: transparent; color: var(--gs-ink); }
.sup-detail-dialog:not([open]) { display: none; }
.sup-detail-dialog::backdrop { background: rgba(31,29,25,.38); backdrop-filter: blur(2px); }
body[data-gtheme="dark"] .sup-detail-dialog { color-scheme: dark; }
.sup-detail-dialog .sup-detail { width: min(760px, 100%); height: 100%; margin-left: auto; display: flex; flex-direction: column; min-width: 0; background: var(--gs-panel); box-shadow: var(--ux-shadow); }
.sup-detail-head { display: flex; flex: none; align-items: center; gap: 12px; padding: 14px 20px; border-bottom: 1px solid var(--gs-line); }
.sup-detail-head h2 { flex: 1; min-width: 0; margin: 0; font: 650 22px/1.2 'Outfit', sans-serif; }
.sup-detail-body { flex: 1; min-height: 0; overflow: auto; overscroll-behavior: contain; padding: 20px; overflow-wrap: anywhere; }
.sup-detail-dialog .sup-d-top { flex-wrap: wrap; gap: 10px; }
.sup-detail-dialog .sup-d-top h3 { flex: 1 1 180px; font-size: 20px; line-height: 1.35; margin: 0; }
.sup-detail-dialog .sup-d-meta, .sup-detail-dialog .sup-bubble-head { font-size: 13px; line-height: 1.5; color: var(--gs-ink-dim); }
.sup-detail-dialog .sup-thread { max-height: none; overflow: visible; margin: 12px 0 20px; padding: 0; }
.sup-detail-dialog .sup-bubble { min-width: 0; max-width: calc(100% - 42px); background: var(--gs-panel-2); border-color: var(--gs-line); color: var(--gs-ink); }
.sup-detail-dialog .sup-bubble-row.me .sup-bubble { background: var(--gs-panel-2); color: var(--gs-ink); }
.sup-detail-dialog .sup-bubble-text { font-size: 16px; line-height: 1.55; overflow-wrap: anywhere; }
.sup-detail-dialog .sup-bubble img { max-width: 100%; height: auto; }
.sup-detail-dialog .sup-bubble-head { flex-wrap: wrap; }
.sup-detail-dialog .sup-bubble-time { font-size: 12px; }
.sup-detail-dialog :is(button, .btn, select, summary) { min-height: 44px; font-size: 14px; }
.sup-detail-dialog :is(button, select, textarea, summary):focus-visible { outline: 2px solid var(--gs-accent); outline-offset: 2px; }
.sup-detail-dialog [hidden] { display: none !important; }
.sup-detail-options { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.sup-manage { border: 1px solid var(--gs-line); border-radius: 12px; padding: 0 12px 12px; margin: 16px 0; }
.sup-manage summary { padding: 12px 0; cursor: pointer; font-weight: 650; }
.sup-manage select { width: 100%; font-size: 16px; margin: 6px 0; background: var(--gs-panel); color: var(--gs-ink); }
.sup-detail-dialog .sup-segs { flex-wrap: wrap; margin: 8px 0; }
.sup-detail-dialog [data-d-triage][aria-pressed="true"] { background: var(--gs-ink); color: var(--gs-panel); }
.sup-detail-dialog .sup-ai pre { white-space: pre-wrap; overflow-wrap: anywhere; }
.sup-conversation-title { font-size: 16px; margin-top: 20px; }
.sup-detail-footer { flex: none; max-height: 55%; overflow: auto; overscroll-behavior: contain; padding: 14px 20px max(14px, env(safe-area-inset-bottom)); border-top: 1px solid var(--gs-line); background: var(--gs-panel); }
.sup-detail-dialog .sup-reply { display: block; margin: 0; }
.sup-reply > label { display: block; font-size: 14px; font-weight: 650; margin-bottom: 6px; }
.sup-detail-dialog .sup-reply textarea { display: block; width: 100%; min-height: 72px; max-height: min(320px, 20dvh); padding: 10px 12px; font-family: inherit; font-size: 16px; line-height: 1.5; resize: vertical; border: 1px solid var(--gs-line-strong); border-radius: 10px; background: var(--gs-panel); color: var(--gs-ink); }
.sup-reply-tools { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.sup-reply-tools #supReplyCount { flex: 1; color: var(--gs-ink-dim); font-size: 12px; text-align: right; }
.sup-detail-feedback { font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
.sup-detail-feedback:not(:empty) { padding-top: 10px; }
.sup-detail-feedback.is-error { color: var(--gs-crit); }
.sup-detail-feedback .btn { margin: 8px 8px 0 0; }
.sup-detail-confirm { display: flex; flex-wrap: wrap; gap: 8px; }
.sup-detail-confirm p { flex-basis: 100%; font-size: 15px; line-height: 1.5; margin: 10px 0; }
.sup-photo-list { max-height: 150px; overflow: auto; margin-top: 8px; }
.sup-photo { display: flex; align-items: center; gap: 8px; border-top: 1px solid var(--gs-line); padding: 8px 0; }
.sup-photo img { width: 40px; height: 40px; object-fit: cover; border-radius: 6px; }
.sup-photo > span { min-width: 0; }
.sup-photo > span:nth-child(2) { flex: 1; }
.sup-photo strong, .sup-photo small { display: block; font-size: 13px; overflow-wrap: anywhere; }
.sup-photo small { color: var(--gs-ink-dim); }
.sup-photo [data-photo-remove] { min-width: 44px; }
@media (max-width: 700px) {
  .sup-detail-dialog { top: var(--gs-viewport-top, 0px); bottom: auto; height: var(--gs-viewport-height, 100dvh); }
  .sup-detail-head, .sup-detail-body { padding: 12px 16px; }
  .sup-detail-head { padding-top: max(12px, env(safe-area-inset-top)); }
  .sup-detail-head h2 { font-size: 20px; }
  .sup-detail-footer { padding: 10px 16px max(10px, env(safe-area-inset-bottom)); }
}
@media (max-height: 500px) {
  .sup-detail-dialog .sup-reply textarea { min-height: 52px; max-height: 80px; }
  .sup-detail-footer { max-height: 60%; }
  .sup-photo-list { max-height: 70px; }
}

/* ── WSWNW : réflexion guidée et lecture d’équipe continue ──────────── */
#wswnw-view { color: var(--gs-ink); }
.wswnw-wrap { width: min(var(--ux-max), calc(100% - 40px)); max-width: none; margin: 0 auto; padding: 13px 0 58px; }
.wswnw-topbar { min-height: 49px; display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 17px; padding-bottom: 10px; border-bottom: 1px solid var(--gs-line); }
.wswnw-topbar.is-review .wswnw-save-state { display: none; }
.wswnw-tabs { gap: 5px; margin: 0; padding: 3px; border: 1px solid var(--gs-line); border-radius: 10px; background: var(--gs-panel); }
.wswnw-tab { flex: none; min-height: 35px; padding: 0 14px; border: 0; border-radius: 7px; background: transparent; color: var(--gs-ink-faint); font-size: 11px; }
.wswnw-tab.on { border: 0; background: var(--gs-ink); color: var(--gs-panel); }
.wswnw-save-state { display: inline-flex; align-items: center; gap: 7px; color: var(--gs-ink-faint); font-size: 10.5px; }
.wswnw-save-state i { width: 7px; height: 7px; border-radius: 50%; background: var(--gs-ok); }
.wswnw-page-head { margin: 0 1px 16px; }
.wswnw-eyebrow { color: var(--gs-accent); font-size: 9px; font-weight: 750; letter-spacing: .12em; }
.wswnw-page-head h2 { margin: 5px 0 0; color: var(--gs-ink); font: 700 27px/1.1 'Outfit', sans-serif; letter-spacing: -.025em; }
.wswnw-page-head p { margin: 6px 0 0; color: var(--gs-ink-faint); font-size: 12.5px; }
.wswnw-week-card { min-height: 82px; display: grid; grid-template-columns: 44px minmax(250px, 1fr) minmax(420px, auto); align-items: center; gap: 14px; margin-bottom: 12px; padding: 14px 18px; border: 1px solid var(--gs-line); border-radius: 14px; background: var(--gs-panel); box-shadow: var(--ux-shadow); }
.wswnw-week-icon { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; background: var(--gs-accent-soft); color: var(--gs-accent); font-size: 17px; }
.wswnw-week-card > div:nth-child(2) { display: flex; flex-direction: column; gap: 3px; }
.wswnw-week-card small, .wswnw-confidence-card small { color: var(--gs-ink-faint); font-size: 8.5px; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
.wswnw-week-card strong { color: var(--gs-ink); font-size: 14px; }
.wswnw-week-card p { margin: 0; color: var(--gs-ink-faint); font-size: 10px; }
.wswnw-prefill-row { min-width: 0; display: flex; justify-content: flex-end; flex-wrap: nowrap; gap: 13px; padding: 10px 11px; border: 1px solid var(--gs-line); border-radius: 10px; background: var(--gs-panel-2); }
.wswnw-prefill-row > span { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.wswnw-prefill-row b { color: var(--gs-ink); font-size: 10.5px; }
.wswnw-prefill-row small { overflow: hidden; max-width: 380px; color: var(--gs-ink-faint); font-size: 9px; font-weight: 500; letter-spacing: 0; text-overflow: ellipsis; text-transform: none; white-space: nowrap; }
.wswnw-prefill-row .btn { min-height: 34px; flex: none; border-radius: 8px; padding: 7px 11px; font-size: 10px; }
.wswnw-reasoning { min-height: 64px; display: grid; grid-template-columns: 1fr 50px 1fr 50px 1fr; align-items: center; margin-bottom: 13px; padding: 10px 28px; border: 1px solid var(--gs-line); border-radius: 13px; background: var(--gs-panel-2); }
.wswnw-reasoning > span { display: grid; grid-template-columns: 30px auto; grid-template-rows: auto auto; align-items: center; column-gap: 9px; }
.wswnw-reasoning i { grid-row: 1 / 3; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; color: #fff; font-size: 10px; font-style: normal; font-weight: 750; }
.wswnw-reasoning i.is-what { background: #507597; }.wswnw-reasoning i.is-so { background: var(--gs-accent); }.wswnw-reasoning i.is-now { background: var(--gs-ok); }
.wswnw-reasoning b { color: var(--gs-ink); font-size: 11px; }
.wswnw-reasoning small { color: var(--gs-ink-faint); font-size: 9px; }
.wswnw-reasoning em { color: var(--gs-line-strong); text-align: center; font-style: normal; }
.wswnw-editor-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 13px; }
.wswnw-step-card { position: relative; min-width: 0; min-height: 396px; display: flex; flex-direction: column; padding: 19px 20px 16px; border: 1px solid var(--gs-line); border-top: 5px solid; border-radius: 14px; background: var(--gs-panel); box-shadow: var(--ux-shadow); }
.wswnw-step-card.is-what { border-top-color: #507597; }.wswnw-step-card.is-so { border-top-color: var(--gs-accent); }.wswnw-step-card.is-now { border-top-color: var(--gs-ok); }
.wswnw-step-head { display: flex; align-items: center; gap: 11px; }
.wswnw-step-number { width: 34px; height: 34px; display: grid; place-items: center; flex: none; border-radius: 50%; font-size: 12px; font-weight: 800; }
.is-what .wswnw-step-number { color: #507597; background: color-mix(in srgb, #507597 12%, var(--gs-panel)); }.is-so .wswnw-step-number { color: var(--gs-accent); background: var(--gs-accent-soft); }.is-now .wswnw-step-number { color: var(--gs-ok); background: color-mix(in srgb, var(--gs-ok) 12%, var(--gs-panel)); }
.wswnw-step-head > span:last-child { display: flex; flex-direction: column; gap: 2px; }
.wswnw-step-head small { font-size: 8.5px; font-weight: 800; letter-spacing: .1em; }.is-what .wswnw-step-head small { color: #507597; }.is-so .wswnw-step-head small { color: var(--gs-accent); }.is-now .wswnw-step-head small { color: var(--gs-ok); }
.wswnw-step-head strong { color: var(--gs-ink); font: 700 16px 'Outfit', sans-serif; }
.wswnw-step-hint { min-height: 30px; margin: 14px 0 9px; color: var(--gs-ink-faint); font-size: 9.5px; line-height: 1.45; }
.wswnw-step-card textarea, .wswnw-solution-card textarea { width: 100%; min-height: 205px; flex: 1; resize: vertical; padding: 13px 14px; border: 1px solid var(--gs-line-strong); border-radius: 10px; outline: 0; background: var(--gs-panel-2); color: var(--gs-ink); font: 500 12px/1.55 'Inter', sans-serif; }
.wswnw-step-card textarea:focus, .wswnw-solution-card textarea:focus { border-color: var(--gs-accent); box-shadow: 0 0 0 3px var(--gs-accent-soft); }
.wswnw-step-card .wswnw-ta-tools { margin: 10px 0 0; }
.wswnw-step-card .wswnw-polish-btn, .wswnw-step-card .wswnw-revert-btn, .wswnw-solution-card .wswnw-polish-btn, .wswnw-solution-card .wswnw-revert-btn { min-height: 32px; padding: 0 9px; border-color: var(--gs-line); border-radius: 8px; background: var(--gs-panel); color: var(--gs-ink); font-size: 9.5px; }
.wswnw-step-card .wswnw-polish-note { display: none; }
.wswnw-field-state { margin-top: 9px; color: var(--gs-ok); font-size: 9.5px; font-weight: 700; text-align: right; }
.wswnw-confidence-card { min-height: 100px; display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 15px 18px; border: 1px solid var(--gs-line); border-radius: 14px; background: var(--gs-panel); }
.wswnw-confidence-icon { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; background: color-mix(in srgb, var(--gs-ok) 12%, var(--gs-panel)); color: var(--gs-ok); font-weight: 800; }
.wswnw-confidence-card > div:nth-child(2) { display: flex; flex-direction: column; gap: 5px; }
.wswnw-confidence-card strong { color: var(--gs-ink); font-size: 13px; }
.wswnw-confidence-card p { margin: 0; color: var(--gs-ink-faint); font-size: 9.5px; }
.wswnw-confidence-card .wswnw-radio-row { gap: 8px; margin: 0; }
.wswnw-confidence-card .wswnw-radio input { position: absolute; opacity: 0; pointer-events: none; }
.wswnw-confidence-card .wswnw-radio span { min-width: 108px; min-height: 40px; display: grid; place-items: center; padding: 0 14px; border: 1px solid var(--gs-line); border-radius: 9px; color: var(--gs-ink); font-size: 10.5px; font-weight: 700; }
.wswnw-confidence-card .wswnw-radio input:checked + span { border-color: var(--gs-ok); background: var(--gs-ok); color: #fff; }
.wswnw-solution-card { margin-top: 12px; padding: 16px 18px; border: 1px solid var(--gs-line); border-radius: 13px; background: var(--gs-panel); }
.wswnw-solution-card textarea { min-height: 95px; }
.wswnw-submit-bar { min-height: 72px; display: flex; align-items: center; gap: 12px; margin-top: 13px; padding: 14px 18px; border-radius: 14px; background: var(--gs-ink); color: var(--gs-panel); box-shadow: var(--ux-shadow); }
.wswnw-submit-check { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 50%; background: var(--gs-ok); color: #fff; font-size: 11px; font-weight: 800; }
.wswnw-submit-bar > span:nth-child(2) { display: flex; flex-direction: column; gap: 3px; }
.wswnw-submit-bar strong { color: inherit; font-size: 11px; }.wswnw-submit-bar small { color: color-mix(in srgb, var(--gs-panel) 67%, transparent); font-size: 9px; }
.wswnw-submit-bar .btn { min-height: 39px; margin-left: auto; border-radius: 9px; font-size: 10.5px; }
.wswnw-review-controls { display: flex; align-items: center; gap: 12px; margin: -55px 0 17px auto; width: max-content; }
.wswnw-review-controls > span { color: var(--gs-ink-faint); font-size: 10px; }.wswnw-review-controls .btn { min-height: 38px; border-radius: 9px; font-size: 10px; }
.wswnw-week-pick { min-height: 38px; border-color: var(--gs-line); border-radius: 9px; background: var(--gs-panel); color: var(--gs-ink); font-size: 10px; }
.wswnw-review-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
.wswnw-review-summary > div { min-height: 82px; display: grid; grid-template-columns: 38px auto 1fr; grid-template-rows: auto auto; align-items: center; column-gap: 10px; padding: 13px 15px; border: 1px solid var(--gs-line); border-radius: 13px; background: var(--gs-panel); box-shadow: var(--ux-shadow); }
.wswnw-review-summary > div > span { grid-row: 1 / 3; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; font-weight: 800; }
.wswnw-review-summary small { grid-column: 2 / 4; align-self: end; color: var(--gs-ink-faint); font-size: 8.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.wswnw-review-summary strong { color: var(--gs-ink); font: 700 22px 'Outfit', sans-serif; }
.wswnw-review-summary em { overflow: hidden; color: var(--gs-ink-faint); font-size: 9.5px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.wswnw-review-summary .is-received > span { color: var(--gs-ok); background: color-mix(in srgb, var(--gs-ok) 12%, var(--gs-panel)); }.wswnw-review-summary .is-discuss > span { color: var(--gs-warn); background: color-mix(in srgb, var(--gs-warn) 12%, var(--gs-panel)); }.wswnw-review-summary .is-missing > span { color: var(--gs-crit); background: color-mix(in srgb, var(--gs-crit) 11%, var(--gs-panel)); }.wswnw-review-summary .is-synthesis > span { color: #6f5d8a; background: color-mix(in srgb, #6f5d8a 12%, var(--gs-panel)); }
.wswnw-review-workspace { display: grid; grid-template-columns: 276px minmax(440px, 1fr) minmax(330px, .72fr); gap: 13px; align-items: start; }
.wswnw-team-roster, .wswnw-selected-report, .wswnw-weekly-synthesis, .wswnw-review-empty { min-width: 0; min-height: 620px; border: 1px solid var(--gs-line); border-radius: 15px; background: var(--gs-panel); box-shadow: var(--ux-shadow); overflow: hidden; }
.wswnw-team-roster { padding: 17px 11px; }.wswnw-team-roster > header { padding: 0 10px 12px; }.wswnw-team-roster > header small { color: var(--gs-ink-faint); font-size: 8.5px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.wswnw-roster-list { display: flex; flex-direction: column; gap: 5px; }
.wswnw-roster-person { min-width: 0; min-height: 62px; display: grid; grid-template-columns: 34px minmax(0, 1fr) 8px; align-items: center; gap: 9px; padding: 8px 10px; border: 1px solid transparent; border-radius: 10px; background: transparent; color: var(--gs-ink); text-align: left; cursor: pointer; }
.wswnw-roster-person:hover { background: var(--gs-panel-2); }.wswnw-roster-person.on { border-color: var(--gs-line-strong); background: var(--gs-accent-soft); box-shadow: inset 3px 0 0 var(--gs-accent); }.wswnw-roster-person > span:nth-child(2) { min-width: 0; display: flex; flex-direction: column; gap: 4px; }.wswnw-roster-person strong, .wswnw-roster-person small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.wswnw-roster-person strong { font-size: 11px; }.wswnw-roster-person small { color: var(--gs-ok); font-size: 8.5px; }.wswnw-roster-person.warn small { color: var(--gs-crit); }.wswnw-roster-person i { width: 7px; height: 7px; border-radius: 50%; background: var(--gs-ok); }.wswnw-roster-person.warn i { background: var(--gs-crit); }
.wswnw-person-avatar { width: 34px; height: 34px; display: grid; place-items: center; flex: none; border-radius: 50%; background: var(--gs-accent-soft); color: var(--gs-accent); font-size: 9px; font-weight: 800; }
.wswnw-roster-missing { margin: 13px 4px 0; padding: 11px; border-radius: 10px; background: color-mix(in srgb, var(--gs-crit) 8%, var(--gs-panel)); }.wswnw-roster-missing > small { display: block; margin-bottom: 7px; color: var(--gs-crit); font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.wswnw-roster-missing > span { display: flex; justify-content: space-between; gap: 6px; padding: 5px 0; color: var(--gs-ink); font-size: 9px; }.wswnw-roster-missing em { color: var(--gs-crit); font-style: normal; }
.wswnw-selected-report { padding: 0 21px 20px; }.wswnw-selected-report > header { min-height: 78px; display: flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--gs-line); }.wswnw-selected-report > header > span:nth-child(2) { min-width: 0; }.wswnw-selected-report h3 { margin: 0; color: var(--gs-ink); font: 700 17px 'Outfit', sans-serif; }.wswnw-selected-report header small { color: var(--gs-ink-faint); font-size: 9px; }.wswnw-selected-report header .wswnw-person-synth-btn { min-height: 34px; margin-left: auto; padding: 0 10px; border-radius: 8px; font-size: 9px; }
.wswnw-person-synth-result { margin: 12px 0 0; padding: 11px 12px; border-radius: 10px; background: var(--gs-accent-soft); color: var(--gs-ink-dim); font-size: 10.5px; line-height: 1.5; }
.wswnw-report-section { margin-top: 13px; padding: 15px 17px; border-left: 4px solid; border-radius: 10px; }.wswnw-report-section > small { display: block; margin-bottom: 10px; font-size: 8.5px; font-weight: 800; letter-spacing: .09em; }.wswnw-report-section > div { color: var(--gs-ink); font-size: 11.5px; line-height: 1.58; }.wswnw-report-section.is-what { border-color: #507597; background: color-mix(in srgb, #507597 9%, var(--gs-panel)); }.wswnw-report-section.is-what > small { color: #507597; }.wswnw-report-section.is-so { border-color: var(--gs-accent); background: var(--gs-accent-soft); }.wswnw-report-section.is-so > small { color: var(--gs-accent); }.wswnw-report-section.is-now { border-color: var(--gs-ok); background: color-mix(in srgb, var(--gs-ok) 9%, var(--gs-panel)); }.wswnw-report-section.is-now > small { color: var(--gs-ok); }
.wswnw-report-confidence { margin-top: 13px; padding: 13px 16px; border: 1px solid; border-radius: 10px; }.wswnw-report-confidence small, .wswnw-report-confidence strong { display: block; margin-bottom: 5px; font-size: 9px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }.wswnw-report-confidence > div { font-size: 10.5px; line-height: 1.45; }.wswnw-report-confidence.is-confident { border-color: color-mix(in srgb, var(--gs-ok) 35%, var(--gs-line)); background: color-mix(in srgb, var(--gs-ok) 8%, var(--gs-panel)); }.wswnw-report-confidence.is-confident small { color: var(--gs-ok); }.wswnw-report-confidence.is-discuss { border-color: color-mix(in srgb, var(--gs-crit) 35%, var(--gs-line)); background: color-mix(in srgb, var(--gs-crit) 8%, var(--gs-panel)); }.wswnw-report-confidence.is-discuss small { color: var(--gs-crit); }
.wswnw-weekly-synthesis > header { min-height: 104px; padding: 18px 20px; background: var(--gs-ink); color: var(--gs-panel); }.wswnw-weekly-synthesis > header small { color: color-mix(in srgb, var(--gs-panel) 65%, transparent); font-size: 8.5px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.wswnw-weekly-synthesis > header h3 { margin: 7px 0 0; color: inherit; font: 700 17px 'Outfit', sans-serif; }.wswnw-weekly-synthesis > header p { margin: 6px 0 0; color: color-mix(in srgb, var(--gs-panel) 68%, transparent); font-size: 9px; }.wswnw-weekly-synthesis #wswnwSynthBox { max-height: 610px; overflow-y: auto; padding: 18px 20px; }.wswnw-weekly-synthesis .wswnw-synth { color: var(--gs-ink-dim); font-size: 11px; line-height: 1.58; }.wswnw-weekly-synthesis .wswnw-synth h1, .wswnw-weekly-synthesis .wswnw-synth h2, .wswnw-weekly-synthesis .wswnw-synth h3 { margin: 16px 0 7px; color: var(--gs-ink); font-size: 11px; text-transform: uppercase; letter-spacing: .05em; }.wswnw-weekly-synthesis .wswnw-card { margin: 0; padding: 0; border: 0; background: transparent; }.wswnw-synth-empty { min-height: 360px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--gs-ink-faint); text-align: center; }.wswnw-synth-empty > span { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 14px; background: var(--gs-accent-soft); color: var(--gs-accent); }.wswnw-synth-empty p { max-width: 28ch; font-size: 10.5px; line-height: 1.5; }
.wswnw-review-empty { display: grid; place-items: center; padding: 30px; color: var(--gs-ink-faint); font-size: 12px; text-align: center; }

/* ── Palantir : centre de contrôle orienté anomalies ────────────────── */
#palantir-view { width: min(var(--ux-max), calc(100% - 40px)); max-width: none; margin: 0 auto; padding: 13px 0 56px; color: var(--gs-ink); }
.pal-tabsbar { min-height: 49px; display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 17px; padding-bottom: 10px; border-bottom: 1px solid var(--gs-line); }
.pal-tabs { display: flex; align-items: center; gap: 5px; padding: 3px; border: 1px solid var(--gs-line); border-radius: 10px; background: var(--gs-panel); }
.pal-tabs .tasks-proj-chip { min-height: 35px; margin: 0; padding: 0 14px; border: 0; border-radius: 7px; background: transparent; color: var(--gs-ink-faint); font-size: 11px; }
.pal-tabs .tasks-proj-chip.on { background: var(--gs-ink); color: var(--gs-panel); }
.pal-alert-count { min-width: 17px; height: 17px; display: inline-grid; place-items: center; margin-left: 6px; border-radius: 9px; background: var(--gs-crit); color: #fff; font-size: 8px; }
.pal-refresh { min-height: 38px; padding: 0 13px; border: 1px solid var(--gs-line); border-radius: 9px; background: var(--gs-panel); color: var(--gs-ink); font: 650 10px 'Inter', sans-serif; cursor: pointer; }
.pal-refresh:hover { background: var(--gs-panel-2); }
.pal-page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin: 0 1px 16px; }
.pal-page-head > div:first-child > span { color: var(--gs-accent); font-size: 9px; font-weight: 750; letter-spacing: .11em; text-transform: uppercase; }
.pal-page-head h2 { margin: 5px 0 0; color: var(--gs-ink); font: 700 27px/1.1 'Outfit', sans-serif; letter-spacing: -.025em; }.pal-page-head p { margin: 6px 0 0; color: var(--gs-ink-faint); font-size: 12.5px; }
.pal-env-toggle { display: flex; gap: 3px; padding: 4px; border: 1px solid var(--gs-line); border-radius: 10px; background: var(--gs-panel); }.pal-env-toggle button { min-height: 32px; padding: 0 13px; border: 0; border-radius: 7px; background: transparent; color: var(--gs-ink-faint); font: 650 9.5px 'Inter', sans-serif; cursor: pointer; }.pal-env-toggle button i { width: 7px; height: 7px; display: inline-block; margin-right: 6px; border-radius: 50%; background: var(--gs-ink-faint); }.pal-env-toggle button.on { background: color-mix(in srgb, var(--gs-ok) 12%, var(--gs-panel)); color: var(--gs-ok); }.pal-env-toggle button.on i { background: var(--gs-ok); }
.pal-command-loading { min-height: 300px; display: grid; place-items: center; }
.pal-health-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }.pal-health-summary > button { min-width: 0; min-height: 82px; display: grid; grid-template-columns: 38px auto 1fr; grid-template-rows: auto auto; align-items: center; column-gap: 10px; padding: 13px 15px; border: 1px solid var(--gs-line); border-radius: 13px; background: var(--gs-panel); color: var(--gs-ink); text-align: left; cursor: pointer; box-shadow: var(--ux-shadow); }.pal-health-summary > button:hover { border-color: var(--gs-line-strong); background: var(--gs-panel-2); }.pal-health-summary > button > span { grid-row: 1 / 3; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; font-weight: 800; }.pal-health-summary .is-ok { color: var(--gs-ok); background: color-mix(in srgb, var(--gs-ok) 12%, var(--gs-panel)); }.pal-health-summary .is-bad { color: var(--gs-crit); background: color-mix(in srgb, var(--gs-crit) 11%, var(--gs-panel)); }.pal-health-summary .is-info { color: #507597; background: color-mix(in srgb, #507597 12%, var(--gs-panel)); }.pal-health-summary .is-warn { color: var(--gs-warn); background: color-mix(in srgb, var(--gs-warn) 12%, var(--gs-panel)); }.pal-health-summary small { grid-column: 2 / 4; color: var(--gs-ink-faint); font-size: 8.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.pal-health-summary strong { color: var(--gs-ink); font: 700 22px 'Outfit', sans-serif; }.pal-health-summary em { overflow: hidden; color: var(--gs-ink-faint); font-size: 9.5px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.pal-command-workspace { display: grid; grid-template-columns: minmax(650px, 1.9fr) minmax(350px, .9fr); gap: 14px; align-items: stretch; margin-bottom: 14px; }.pal-services-panel, .pal-attention-panel, .pal-infra-panel, .pal-budget-panel { min-width: 0; border: 1px solid var(--gs-line); border-radius: 15px; background: var(--gs-panel); box-shadow: var(--ux-shadow); overflow: hidden; }.pal-services-panel > header, .pal-infra-panel > header, .pal-budget-panel > header { min-height: 69px; display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 13px 18px; }.pal-services-panel h3, .pal-infra-panel h3, .pal-budget-panel h3 { margin: 0; color: var(--gs-ink); font: 700 17px 'Outfit', sans-serif; }.pal-services-panel header p, .pal-infra-panel header p { margin: 4px 0 0; color: var(--gs-ink-faint); font-size: 9px; }.pal-services-panel header label { width: 190px; height: 36px; display: flex; align-items: center; gap: 7px; padding: 0 10px; border: 1px solid var(--gs-line); border-radius: 9px; background: var(--gs-panel-2); color: var(--gs-ink-faint); }.pal-services-panel header input { min-width: 0; width: 100%; border: 0; outline: 0; background: transparent; color: var(--gs-ink); font: 500 9.5px 'Inter', sans-serif; }
.pal-service-columns, .pal-service-row { display: grid; grid-template-columns: minmax(220px, 1fr) 96px 78px 96px 70px 70px; align-items: center; gap: 8px; }.pal-service-columns { min-height: 36px; padding: 0 14px; border-block: 1px solid var(--gs-line); background: var(--gs-panel-2); color: var(--gs-ink-faint); font-size: 8px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }.pal-service-row { width: 100%; min-height: 65px; padding: 8px 14px; border: 0; border-bottom: 1px solid var(--gs-line); background: var(--gs-panel); color: var(--gs-ink); text-align: left; cursor: pointer; }.pal-service-row:last-child { border-bottom: 0; }.pal-service-row:hover { background: var(--gs-panel-2); }.pal-service-row.is-selected { background: var(--gs-accent-soft); box-shadow: inset 3px 0 0 var(--gs-accent); }.pal-service-row.is-unhealthy { box-shadow: inset 3px 0 0 var(--gs-crit); }.pal-service-name { min-width: 0; display: flex; align-items: center; gap: 10px; }.pal-service-name > i { width: 9px; height: 9px; flex: none; border-radius: 50%; background: var(--gs-warn); }.pal-service-name > i.is-healthy { background: var(--gs-ok); }.pal-service-name > i.is-unhealthy { background: var(--gs-crit); }.pal-service-name > span { min-width: 0; display: flex; flex-direction: column; gap: 4px; }.pal-service-name strong, .pal-service-name small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.pal-service-name strong, .pal-service-row > strong { font-size: 10.5px; }.pal-service-name small { color: var(--gs-ink-faint); font: 500 8.5px 'SFMono-Regular', Consolas, monospace; }.pal-service-row .pal-err { color: var(--gs-crit); }.pal-service-row .pal-spark { width: 55px; margin: 0; justify-self: end; }
.pal-attention-panel { display: flex; flex-direction: column; }.pal-attention-panel.is-alert { border-color: color-mix(in srgb, var(--gs-crit) 40%, var(--gs-line)); box-shadow: inset 4px 0 0 var(--gs-crit), var(--ux-shadow); }.pal-attention-panel.is-healthy { box-shadow: inset 4px 0 0 var(--gs-ok), var(--ux-shadow); }.pal-attention-panel > header { position: relative; padding: 19px 20px 14px; }.pal-attention-panel > header > span { color: var(--gs-crit); font-size: 8.5px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.pal-attention-panel.is-healthy > header > span { color: var(--gs-ok); }.pal-attention-panel h3 { margin: 8px 0 0; color: var(--gs-ink); font: 700 18px 'Outfit', sans-serif; }.pal-attention-panel header p { min-height: 34px; margin: 8px 88px 0 0; color: var(--gs-ink-faint); font-size: 9.5px; line-height: 1.45; }.pal-attention-panel header em { position: absolute; top: 20px; right: 18px; padding: 5px 8px; border-radius: 12px; background: color-mix(in srgb, var(--gs-crit) 11%, var(--gs-panel)); color: var(--gs-crit); font-size: 8.5px; font-style: normal; font-weight: 750; }.pal-attention-panel.is-healthy header em { color: var(--gs-ok); background: color-mix(in srgb, var(--gs-ok) 11%, var(--gs-panel)); }.pal-attention-kpis { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; padding: 0 20px 12px; }.pal-attention-kpis > span { display: flex; flex-direction: column; gap: 6px; padding: 12px; border-radius: 10px; background: color-mix(in srgb, var(--gs-crit) 9%, var(--gs-panel)); }.pal-attention-kpis > span:last-child { background: color-mix(in srgb, var(--gs-warn) 12%, var(--gs-panel)); }.pal-attention-kpis small { color: var(--gs-ink-faint); font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.pal-attention-kpis strong { color: var(--gs-ink); font: 700 21px 'Outfit', sans-serif; }.pal-attention-chart { min-height: 105px; margin: 0 20px; padding: 12px 0; border-block: 1px solid var(--gs-line); }.pal-attention-chart > small { color: var(--gs-ink-faint); font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.pal-attention-chart .pal-spark { width: 100%; height: 64px; margin: 8px 0 0; }.pal-attention-chart .pal-spark polyline { stroke: var(--gs-crit); stroke-width: 2; }.pal-attention-panel.is-healthy .pal-attention-chart .pal-spark polyline { stroke: var(--gs-ok); }.pal-attention-meta { display: flex; flex-wrap: wrap; gap: 6px; padding: 13px 20px; }.pal-attention-meta span { padding: 5px 7px; border-radius: 7px; background: var(--gs-panel-2); color: var(--gs-ink-faint); font-size: 8.5px; }.pal-attention-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; padding: 12px 20px 16px; border-top: 1px solid var(--gs-line); }.pal-attention-actions .btn { min-height: 34px; flex: 1 1 auto; padding: 6px 8px; border-radius: 8px; font-size: 8.5px; }
.pal-bottom-grid { display: grid; grid-template-columns: minmax(600px, 1.9fr) minmax(350px, .9fr); gap: 14px; align-items: stretch; }.pal-infra-panel > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 0 18px 18px; }.pal-infra-card, .pal-budget-card { min-width: 0; border: 1px solid var(--gs-line); border-radius: 11px; background: var(--gs-panel-2); color: var(--gs-ink); text-align: left; cursor: pointer; }.pal-infra-card { padding: 13px 14px; }.pal-infra-card > header { display: flex; align-items: center; gap: 9px; }.pal-infra-card > header > span:first-child { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: var(--gs-accent-soft); color: var(--gs-accent); }.pal-infra-card > header > span:last-child { display: flex; flex-direction: column; gap: 3px; }.pal-infra-card header strong { font-size: 10.5px; }.pal-infra-card header small { color: var(--gs-ok); font-size: 8px; font-weight: 750; text-transform: uppercase; }.pal-infra-card > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 15px; }.pal-infra-card > div > span { min-width: 0; display: flex; flex-direction: column; gap: 5px; }.pal-infra-card > div small { color: var(--gs-ink-faint); font-size: 7.5px; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }.pal-infra-card > div strong { color: var(--gs-ink); font: 700 17px 'Outfit', sans-serif; }.pal-infra-card footer { display: flex; align-items: center; margin-top: 12px; color: var(--gs-ink-faint); font-size: 8px; }.pal-infra-card footer .pal-spark { margin-left: auto; }
.pal-budget-panel { padding-bottom: 18px; }.pal-budget-card { display: block; margin: 0 18px 10px; padding: 14px; }.pal-budget-card header { display: flex; justify-content: space-between; align-items: flex-end; gap: 10px; }.pal-budget-card header > span { display: flex; flex-direction: column; gap: 5px; }.pal-budget-card header small { color: var(--gs-ink-faint); font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.pal-budget-card header strong { color: var(--gs-ink); font: 700 20px 'Outfit', sans-serif; }.pal-budget-card header em { color: var(--gs-accent); font: 700 20px 'Outfit', sans-serif; font-style: normal; }.pal-budget-card p { margin: 4px 0 12px; color: var(--gs-ink-faint); font-size: 9px; }.pal-budget-card > div { height: 8px; overflow: hidden; border-radius: 5px; background: var(--gs-line); }.pal-budget-card > div i { display: block; height: 100%; border-radius: inherit; background: var(--gs-accent); }.pal-budget-card.pal-budget-warn > div i { background: var(--gs-warn); }.pal-budget-card.pal-budget-crit > div i { background: var(--gs-crit); }.pal-budget-card footer { display: flex; justify-content: space-between; gap: 8px; margin-top: 11px; color: var(--gs-ink-faint); font-size: 8px; }.pal-budget-card footer span { color: var(--gs-accent); font-weight: 700; }

@media (max-width: 1160px) {
  .sup-workspace { grid-template-columns: minmax(540px, 1.5fr) minmax(330px, .8fr); }
  .sup-master-panel .sup-list-head, .sup-master-panel .sup-row { grid-template-columns: 70px minmax(200px, 1fr) minmax(170px, auto); }
  .sup-master-panel .sup-tri-moves { display: none; }
  .wswnw-review-workspace { grid-template-columns: 240px minmax(420px, 1fr); }
  .wswnw-weekly-synthesis { grid-column: 1 / -1; min-height: 0; }
  .wswnw-weekly-synthesis #wswnwSynthBox { max-height: none; }
  .pal-command-workspace, .pal-bottom-grid { grid-template-columns: minmax(570px, 1.5fr) minmax(320px, .8fr); }
  .pal-service-columns, .pal-service-row { grid-template-columns: minmax(190px, 1fr) 84px 68px 84px 58px 60px; }
}

@media (max-width: 900px) {
  #support-view, .wswnw-wrap, #palantir-view { width: min(100% - 24px, var(--ux-max)); padding-top: 12px; }
  .wswnw-review-summary, .pal-health-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sup-workspace, .pal-command-workspace, .pal-bottom-grid { grid-template-columns: 1fr; }
  .sup-inline-detail { position: static; min-height: 0; }.sup-inline-empty { min-height: 260px; }
  .wswnw-week-card { grid-template-columns: 44px minmax(0, 1fr); }.wswnw-prefill-row { grid-column: 1 / -1; }
  .wswnw-editor-grid { grid-template-columns: 1fr; }.wswnw-step-card { min-height: 0; }.wswnw-step-card textarea { min-height: 160px; }
  .wswnw-review-controls { width: 100%; margin: 0 0 13px; }.wswnw-review-controls > span { flex: 1; }
  .wswnw-review-workspace { grid-template-columns: 230px minmax(0, 1fr); }.wswnw-weekly-synthesis { grid-column: 1 / -1; }
  .pal-infra-panel > div { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .sup-page-head p, .wswnw-page-head p, .pal-page-head p, .sup-live { display: none; }
  .sup-page-head h2, .wswnw-page-head h2, .pal-page-head h2 { font-size: 23px; }
  .wswnw-review-summary, .pal-health-summary { gap: 7px; }.wswnw-review-summary > div, .pal-health-summary > button { min-height: 72px; padding: 10px; }
  #support-view .sup-workbar { grid-template-columns: 1fr; }.sup-workspace { display: block; }.sup-inline-detail { display: none; }
  .sup-master-panel .sup-list-head { display: none; }.sup-master-panel .sup-row { grid-template-columns: 60px minmax(0, 1fr); }.sup-master-panel .sup-row-right { grid-column: 1 / -1; align-items: center; flex-direction: row; }
  .wswnw-reasoning { grid-template-columns: 1fr 20px 1fr 20px 1fr; padding-inline: 10px; }.wswnw-reasoning small { display: none; }.wswnw-reasoning > span { grid-template-columns: 28px auto; }
  .wswnw-confidence-card { grid-template-columns: 38px 1fr; }.wswnw-confidence-card .wswnw-radio-row { grid-column: 1 / -1; }.wswnw-confidence-card .wswnw-radio { flex: 1; }.wswnw-confidence-card .wswnw-radio span { min-width: 0; }
  .wswnw-review-controls { flex-wrap: wrap; }.wswnw-review-controls > span { display: none; }.wswnw-review-controls .btn { margin-left: auto; }
  .wswnw-review-workspace { grid-template-columns: 1fr; }.wswnw-team-roster, .wswnw-selected-report, .wswnw-weekly-synthesis { min-height: 0; }.wswnw-team-roster { max-height: 360px; overflow-y: auto; }
  .pal-page-head { align-items: flex-start; flex-direction: column; }.pal-env-toggle { width: 100%; }.pal-env-toggle button { flex: 1; }
  .pal-services-panel { overflow-x: auto; }.pal-service-columns, .pal-service-row { min-width: 720px; }
}

/* ── Adaptation des panneaux, puis mobile ───────────────────────────── */
@media (max-width: 1240px) {
  .chat-workspace { grid-template-columns: minmax(0, 1fr) 248px; }
  .ai-chat-messages { padding-right: 294px; }
  .ai-chat-input { margin-right: 270px; }
  .ai-workspace-panel { width: 238px; }
  .today-grid { grid-template-columns: minmax(0, 1.35fr) minmax(310px, .8fr); }
}

@media (max-width: 1040px) {
  .chat-workspace { display: flex; }
  .chat-thread { flex: 1; }
  .chat-context { display: none; }
  .ai-workspace-panel { display: none; }
  .ai-chat-messages { padding-right: 28px; }
  .ai-chat-input { margin-right: 0; }
  .crm-ck-dashboard, .amb-dashboard-grid { grid-template-columns: 1fr; }
  .amb-decision-grid, .amb-signal-grid { grid-template-columns: 1fr; }
  .amb-secondary-data > div { grid-template-columns: 1fr; }
  .crm-ck-sec--actions, .crm-ck-sec--top, .crm-ck-sec--map,
  .amb-card--sentiment, .amb-card--weekly, .amb-card--followup, .amb-card--products,
  .amb-card--latest, .amb-card--breakdown, .amb-card--themes { grid-column: 1; grid-row: auto; }
  .agri-cols { grid-template-columns: minmax(0, 1.35fr) minmax(300px, .8fr); }
}

/* Cadre Gandalf partagé avec le shell. La géométrie interne est dans ai-layout.css. */
@media (min-width: 861px) {
  /* #app-content réserve déjà la hauteur de l'entête universel. L'ancien
     `top: var(--gs-universal-h)` déplaçait ensuite cette vue relative une
     seconde fois : 72 px vides en haut et, symétriquement, le composeur 72 px
     sous le viewport. Un cadre fixé entre l'entête et le bas rend la hauteur
     déterministe et garde la saisie visible en permanence. */
  body.shell-on:not(.ai-popup-mode) #ai-chat-view {
    position: fixed;
    inset: var(--gs-universal-h) 0 0 var(--gs-rail-w);
    width: auto;
    height: auto;
    min-height: 0;
    overflow: hidden;
  }
  body.shell-on:not(.ai-popup-mode) #ai-chat-view .ai-chat-main {
    height: 100%;
    min-height: 0;
  }
  body.shell-on:not(.ai-popup-mode) #ai-chat-view .ai-chat-messages {
    min-height: 0;
  }
}

@media (max-width: 860px) {
  .today-view > .today-head { padding: 22px 18px 40px; margin-bottom: 12px; }
  .today-view > *:not(.today-head) { padding-inline: 14px; }
  .today-grid { grid-template-columns: 1fr; gap: 12px; }
  .gshell-launcher-overlay { padding: 0; align-items: stretch; }
  .gshell-launcher { max-height: 100dvh; border: 0; border-radius: 0; }
  .gshell-launcher-head { padding: 15px 16px 12px; }
  .gshell-launcher-search { margin-inline: 16px; }
  .gshell-launcher-categories { padding-inline: 16px; }
  .gshell-launcher-body { padding-inline: 16px; }
  .gshell-launcher-grid { grid-template-columns: 1fr; }
  .gshell-launcher-foot { display: none; }
  .notes-view { display: block; min-height: calc(100dvh - 48px); }
  #notesHome { min-height: inherit; padding: 18px 14px 30px; border-right: 0; }
  .notes-view.note-open #notesHome { display: none; }
  .notes-workspace-empty { display: none; }
  .notes-view .note-page { min-height: inherit; }
  .note-page-bar { padding: 9px 12px; }
  .note-page-bar > .btn:first-child { display: inline-flex; }
  .note-read, .note-edit { padding: 32px 19px 70px; }
  .note-read h1 { font-size: 28px; }
  .chat-workspace { display: flex; min-height: 0; }
  .chat-thread { width: 100%; }
  .crm-ck-brand__t, .agri-page-head h2, .amb-page-head h2 { font-size: 23px; }
  .crm-ck-page-head, .agri-page-head, .amb-page-head { align-items: flex-start; }
  .agri-new-observation { display: none; }
  .agri-hero { grid-template-columns: 1fr; }
  .agri-hero__wx { border-left: 0; border-top: 1px solid var(--crm-line); padding: 13px 0 0; }
  .agri-kpis, .crm-ck-kpis, .amb-kpis--4, .amb-summary-grid { grid-template-columns: repeat(2, 1fr); }
  .agri-cols { grid-template-columns: 1fr; }
  .amb-capture-review-grid, .amb-directory-workspace { grid-template-columns: 1fr; }
  .amb-capture-source { position: static; max-height: 420px; }
  .amb-directory-panel { max-height: 430px; overflow-y: auto; }
}

@media (max-width: 520px) {
  .today-brief { padding: 17px; }
  .today-brief-actions { align-items: stretch; flex-direction: column; }
  .today-brief-actions button { justify-content: center; }
  .gshell-launcher-heading p { display: none; }
  .notes-filters { overflow-x: auto; }
  .note-page-bar .btn { padding-inline: 9px; font-size: 11px; }
  .crm-ck-kpis, .agri-kpis, .amb-kpis--4 { grid-template-columns: 1fr 1fr; }
  #ambassadeurs-view > .crm-wrap { width: min(100% - 24px, var(--ux-max)); }
  .amb-main-tabs .amb-main-capture { display: none; }
  .amb-pulse-body, .amb-person-detail-body { grid-template-columns: 1fr; }
  .amb-pulse-score { border-right: 0; border-bottom: 1px solid var(--crm-line); }
  .amb-capture-steps { grid-template-columns: 1fr 12px 1fr 12px 1fr; padding-inline: 8px; }
  .amb-capture-steps > span { grid-template-columns: 26px 1fr; column-gap: 5px; }.amb-capture-steps > span > b { width: 24px; height: 24px; }.amb-capture-steps small { display: none; }
  .amb-capture-review-head, .amb-people-head { align-items: flex-start; flex-direction: column; }
  .amb-capture-drop { min-width: 0; width: 100%; }
  .amb-capture-savebar { flex-wrap: wrap; }.amb-capture-savebar > p { flex-basis: 100%; }
  .amb-network-summary { flex-wrap: wrap; gap: 9px 13px; }.amb-network-summary > i { display: none; }
   .amb-directory-tools { align-items: stretch; flex-direction: column; }.amb-directory-tools .crm-search { min-width: 0; width: 100%; }
  .amb-person-cover { align-items: flex-start; flex-wrap: wrap; }.amb-relation-health { margin-left: 0; text-align: left; }.amb-person-cover > .crm-action { margin-left: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .gshell-launcher-card, .today-row, .note-card { transition: none; }
}

/* ── Ambassadeurs · Salves : campagne lisible de bout en bout ───────── */
#ambassadeurs-view > .crm-wrap:has(.amb-wave-page) { width: min(calc(100% - 40px), var(--ux-max)); max-width: none; }
.amb-wave-page { color: var(--crm-ink); }
.amb-wave-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin: 4px 2px 18px; }
.amb-wave-head > div > span, .agri-directory-head > div > span { display: block; margin-bottom: 6px; color: var(--crm-accent); font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.amb-wave-head h2, .agri-directory-head h2 { margin: 0; color: var(--crm-ink); font: 720 28px/1.16 'Outfit', sans-serif; letter-spacing: -.025em; }
.amb-wave-head p, .agri-directory-head p { max-width: 720px; margin: 6px 0 0; color: var(--crm-ink-2); font-size: 13px; line-height: 1.5; }
.amb-wave-head > .crm-action { flex: none; min-height: 42px; padding-inline: 16px; border-color: var(--crm-accent); background: var(--crm-accent); color: var(--crm-accent-ink); }
.amb-wave-summary { display: grid; grid-template-columns: 1.35fr repeat(3, 1fr); margin-bottom: 14px; overflow: hidden; border: 1px solid var(--crm-line); border-radius: 15px; background: var(--crm-card); box-shadow: var(--ux-shadow); }
.amb-wave-summary > div { min-width: 0; padding: 16px 18px; border-left: 1px solid var(--crm-line); }
.amb-wave-summary > div:first-child { border-left: 0; background: linear-gradient(135deg, var(--crm-accent-soft), transparent); }
.amb-wave-summary small, .amb-wave-summary strong, .amb-wave-summary span { display: block; }
.amb-wave-summary small { color: var(--crm-ink-3); font-size: 9px; font-weight: 750; letter-spacing: .065em; text-transform: uppercase; }
.amb-wave-summary strong { overflow: hidden; margin-top: 5px; color: var(--crm-ink); font: 700 22px/1.2 'Outfit', sans-serif; text-overflow: ellipsis; white-space: nowrap; }
.amb-wave-summary span { margin-top: 4px; color: var(--crm-ink-2); font-size: 10px; }
.amb-wave-summary .is-alert strong { color: var(--crm-crit-ink); }
.amb-wave-workspace { display: grid; grid-template-columns: minmax(270px, .48fr) minmax(620px, 1.52fr); gap: 14px; align-items: start; }
.amb-wave-list, .amb-wave-detail { min-width: 0; overflow: hidden; border: 1px solid var(--crm-line); border-radius: 16px; background: var(--crm-card); box-shadow: var(--ux-shadow); }
.amb-wave-list { position: sticky; top: 14px; }
.amb-wave-list > header { min-height: 52px; display: flex; align-items: center; justify-content: space-between; padding: 0 15px; border-bottom: 1px solid var(--crm-line); }
.amb-wave-list > header h3 { margin: 0; font-size: 13px; }
.amb-wave-list > header span { min-width: 25px; height: 25px; display: grid; place-items: center; border-radius: 13px; background: var(--crm-card-2); color: var(--crm-ink-2); font-size: 10px; font-weight: 750; }
.amb-wave-card { width: 100%; display: grid; gap: 9px; padding: 14px 15px; border: 0; border-bottom: 1px solid var(--crm-line); background: transparent; color: var(--crm-ink); font: inherit; text-align: left; cursor: pointer; transition: background .14s ease, box-shadow .14s ease; }
.amb-wave-card:last-child { border-bottom: 0; }
.amb-wave-card:hover { background: var(--crm-card-2); }
.amb-wave-card.on { background: var(--crm-accent-soft); box-shadow: inset 3px 0 var(--crm-accent); }
.amb-wave-card__top { min-width: 0; display: grid; grid-template-columns: 7px minmax(0, 1fr) auto; align-items: center; gap: 8px; }
.amb-wave-card__top > i { width: 7px; height: 7px; border-radius: 50%; background: var(--crm-ink-3); }
.amb-wave-card__top > i.is-active { background: var(--crm-info-dot); }
.amb-wave-card__top > i.is-done { background: var(--crm-ok-dot); }
.amb-wave-card__top b { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.amb-wave-card__top em, .amb-wave-state { padding: 4px 7px; border-radius: 999px; background: var(--crm-card-2); color: var(--crm-ink-2); font-size: 8.5px; font-style: normal; font-weight: 750; white-space: nowrap; }
.amb-wave-card__top em.is-active, .amb-wave-state.is-active { background: var(--crm-info-bg); color: var(--crm-info-ink); }
.amb-wave-card__top em.is-done, .amb-wave-state.is-done { background: var(--crm-ok-bg); color: var(--crm-ok-ink); }
.amb-wave-card__meta, .amb-wave-card__foot { color: var(--crm-ink-3); font-size: 9px; }
.amb-wave-card__progress { height: 4px; overflow: hidden; border-radius: 2px; background: var(--crm-card-2); }
.amb-wave-card__progress > i { height: 100%; display: block; border-radius: inherit; background: var(--crm-ok-dot); }
.amb-wave-card__foot { display: flex; justify-content: space-between; }
.amb-wave-card__foot b { color: var(--crm-ink-2); }
.amb-wave-detail__head { min-height: 78px; display: flex; align-items: center; gap: 12px; padding: 14px 18px; border-bottom: 1px solid var(--crm-line); background: linear-gradient(120deg, var(--crm-accent-soft), transparent 62%); }
.amb-wave-detail__icon { width: 42px; height: 42px; flex: none; display: grid; place-items: center; border-radius: 12px; background: var(--crm-ink); color: var(--crm-card); font-size: 18px; }
.amb-wave-detail__head > div { min-width: 0; }
.amb-wave-detail__head h2 { margin: 0; font: 700 19px 'Outfit', sans-serif; }
.amb-wave-detail__head p { overflow: hidden; margin: 4px 0 0; color: var(--crm-ink-2); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.amb-wave-detail__head > .amb-wave-state { margin-left: auto; }
.amb-wave-funnel { display: grid; grid-template-columns: repeat(4, 1fr); padding: 16px 18px; border-bottom: 1px solid var(--crm-line); }
.amb-wave-step { position: relative; min-width: 0; padding: 0 18px; border-left: 1px solid var(--crm-line); }
.amb-wave-step:first-child { padding-left: 0; border-left: 0; }
.amb-wave-step:last-child { padding-right: 0; }
.amb-wave-step small, .amb-wave-step strong, .amb-wave-step span { display: block; }
.amb-wave-step small { color: var(--crm-ink-3); font-size: 8.5px; font-weight: 750; text-transform: uppercase; }
.amb-wave-step strong { margin-top: 4px; font: 700 25px 'Outfit', sans-serif; }
.amb-wave-step span { margin-top: 2px; color: var(--crm-ink-3); font-size: 9px; }
.amb-wave-step.is-good strong { color: var(--crm-ok-ink); }
.amb-wave-alert { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; align-items: center; gap: 11px; margin: 14px 18px 0; padding: 11px 12px; border: 1px solid color-mix(in srgb, var(--crm-warn-dot) 30%, var(--crm-line)); border-radius: 11px; background: var(--crm-warn-bg); }
.amb-wave-alert > b { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 50%; background: var(--crm-card); color: var(--crm-warn-ink); }
.amb-wave-alert strong { color: var(--crm-warn-ink); font-size: 10.5px; }
.amb-wave-alert p { margin: 3px 0 0; color: var(--crm-ink-2); font-size: 9px; }
.amb-wave-alert button { border: 0; background: transparent; color: var(--crm-warn-ink); font: 750 9px 'Inter', sans-serif; cursor: pointer; }
.amb-wave-shipments { margin-top: 14px; border-top: 1px solid var(--crm-line); }
.amb-wave-shipments > header { min-height: 67px; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 18px; }
.amb-wave-shipments h3 { margin: 0; font-size: 13px; }
.amb-wave-shipments header p { margin: 3px 0 0; color: var(--crm-ink-3); font-size: 9px; }
.amb-wave-shipments .crm-search { max-width: 240px; height: 36px; flex: 0 1 240px; border-radius: 9px; }
.amb-wave-shipment { min-height: 57px; display: grid; grid-template-columns: minmax(190px, 1.1fr) minmax(170px, 1fr) 105px 92px; align-items: center; gap: 12px; padding: 8px 18px; border-top: 1px solid var(--crm-line); color: var(--crm-ink-2); font-size: 10px; }
.amb-wave-shipment--head { min-height: 33px; background: var(--crm-card-2); color: var(--crm-ink-3); font-size: 8px; font-weight: 750; letter-spacing: .045em; text-transform: uppercase; }
.amb-wave-person { min-width: 0; display: flex; align-items: center; gap: 9px; }
.amb-wave-person > i { width: 34px; height: 34px; flex: none; display: grid; place-items: center; border-radius: 50%; background: var(--crm-card-2); color: var(--crm-ink-2); font-size: 8px; font-style: normal; font-weight: 800; }
.amb-wave-person > span { min-width: 0; }
.amb-wave-person b, .amb-wave-person small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.amb-wave-person b { color: var(--crm-ink); font-size: 10.5px; }
.amb-wave-person small { margin-top: 3px; color: var(--crm-ink-3); font-size: 8px; }
.amb-wave-products { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.amb-wave-status { display: inline-block; padding: 4px 7px; border-radius: 999px; background: var(--crm-ok-bg); color: var(--crm-ok-ink); font-size: 8px; }
.amb-wave-status.is-waiting { background: var(--crm-crit-bg); color: var(--crm-crit-ink); }
.amb-wave-shipment time { color: var(--crm-ink-3); font-size: 8.5px; white-space: nowrap; }
.amb-wave-import { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto auto; align-items: center; gap: 10px; margin: 14px 18px 18px; padding: 12px; border: 1px dashed var(--crm-line-strong); border-radius: 11px; background: var(--crm-card-2); }
.amb-wave-import > span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 9px; background: var(--crm-card); color: var(--crm-accent); font-weight: 800; }
.amb-wave-import b, .amb-wave-import small { display: block; }
.amb-wave-import b { font-size: 10px; }.amb-wave-import small { margin-top: 3px; color: var(--crm-ink-3); font-size: 8px; }
.amb-wave-import .crm-action { min-height: 34px; flex: none; padding: 8px 10px; font-size: 9px; }
.amb-wave-import-report { margin: 0 18px 18px; padding: 12px; font-size: 10px; }
.amb-wave-create { margin-bottom: 14px; padding: 17px; border-radius: 14px; }
.amb-wave-create > header { display: flex; justify-content: space-between; margin-bottom: 14px; }
.amb-wave-create > header span { color: var(--crm-accent); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.amb-wave-create > header h3 { margin: 4px 0 0; font-size: 17px; }
.amb-wave-create > header button { border: 0; background: transparent; color: var(--crm-ink-3); cursor: pointer; }
.amb-wave-create .crm-actions { justify-content: flex-end; }.amb-wave-create .crm-action { max-width: 190px; }

/* ── Agriculture · registre maître-détail ───────────────────────────── */
#agriculture-view > .agri-directory-page, #agriculture-view > .agri-section-page { width: min(calc(100% - 40px), var(--ux-max)); max-width: none; }
.agri-directory-page, .agri-section-page { color: var(--crm-ink); }
.agri-directory-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin: 4px 2px 16px; }
.agri-directory-head > .crm-action { flex: none; min-height: 38px; padding-inline: 13px; }
.agri-directory-summary { min-height: 57px; display: flex; align-items: center; gap: 20px; margin-bottom: 11px; padding: 10px 16px; border: 1px solid var(--crm-line); border-radius: 13px; background: var(--crm-card); box-shadow: var(--ux-shadow); }
.agri-directory-summary > span { display: flex; align-items: baseline; gap: 6px; }.agri-directory-summary > b { font-size: 16px; }
.agri-directory-summary small { color: var(--crm-ink-2); font-size: 9px; }.agri-directory-summary > i { width: 1px; height: 22px; background: var(--crm-line); }
.agri-directory-summary .is-warn b { color: var(--crm-warn-ink); }.agri-directory-summary .is-crit b { color: var(--crm-crit-ink); }
.agri-directory-tools { display: grid; grid-template-columns: minmax(230px, 1fr) repeat(4, auto); gap: 8px; margin-bottom: 11px; }
.agri-directory-tools .crm-search, .agri-directory-tools .crm-filter { height: 38px; border-radius: 10px; font-size: 11px; }
.agri-directory-workspace { display: grid; grid-template-columns: minmax(650px, 1.42fr) minmax(300px, .58fr); gap: 13px; align-items: start; }
.agri-directory-table, .agri-directory-preview { min-width: 0; overflow: hidden; border: 1px solid var(--crm-line); border-radius: 14px; background: var(--crm-card); box-shadow: var(--ux-shadow); }
.agri-directory-columns, .agri-directory-row { display: grid; grid-template-columns: minmax(140px, 1.05fr) minmax(155px, 1.15fr) 70px 88px 105px 120px 50px; align-items: center; gap: 8px; padding-inline: 13px; }
.agri-directory-columns { min-height: 36px; background: var(--crm-card-2); color: var(--crm-ink-3); font-size: 7.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.agri-directory-field { min-height: 37px; display: flex; align-items: center; gap: 8px; padding: 0 13px; border-top: 1px solid var(--crm-line); background: color-mix(in srgb, var(--crm-accent-soft) 55%, var(--crm-card)); }
.agri-directory-field b { font-size: 9.5px; }.agri-directory-field span, .agri-directory-field em { color: var(--crm-ink-3); font-size: 8px; font-style: normal; }.agri-directory-field em { margin-left: auto; }
.agri-directory-row { width: 100%; min-height: 59px; border: 0; border-top: 1px solid var(--crm-line); background: transparent; color: var(--crm-ink-2); font: inherit; font-size: 9.5px; text-align: left; cursor: pointer; transition: background .14s ease, box-shadow .14s ease; }
.agri-directory-row:hover { background: var(--crm-card-2); }.agri-directory-row.on { background: var(--crm-accent-soft); box-shadow: inset 3px 0 var(--crm-accent); }
/* Parcelle R&D : une vraie ligne cliquable, mais qui chevauche les sections
   voisines plutôt que de s'ajouter à elles. Le liseré la distingue sans la
   reléguer — c'est une destination de travail, pas une note de bas de page. */
.agri-directory-row.is-virtual .agri-directory-name > i { background: var(--crm-accent); color: var(--crm-card); }
.agri-directory-row.is-virtual.on { box-shadow: inset 3px 0 var(--crm-accent); }
.agri-directory-name { min-width: 0; display: flex; align-items: center; gap: 8px; }.agri-directory-name > i { width: 32px; height: 32px; flex: none; display: grid; place-items: center; border-radius: 9px; background: var(--crm-ink); color: var(--crm-card); font-size: 9px; font-style: normal; font-weight: 800; }
.agri-directory-name b, .agri-directory-name small { display: block; }.agri-directory-name b { color: var(--crm-ink); font-size: 10px; }.agri-directory-name small { margin-top: 3px; color: var(--crm-ink-3); font-size: 8px; }
.agri-directory-lots { display: flex; flex-wrap: wrap; gap: 3px; }.agri-directory-lots em { padding: 3px 5px; border-radius: 5px; background: var(--crm-card-2); color: var(--crm-ink-2); font-size: 7.5px; font-style: normal; }
.agri-directory-number { color: var(--crm-ink); font-weight: 700; font-variant-numeric: tabular-nums; }
.agri-directory-state { display: inline-flex; align-items: center; gap: 5px; color: var(--crm-ink-2); font-size: 8.5px; font-weight: 700; }.agri-directory-state > i { width: 6px; height: 6px; border-radius: 50%; background: var(--crm-ink-3); }.agri-directory-state.is-ok { color: var(--crm-ok-ink); }.agri-directory-state.is-ok > i { background: var(--crm-ok-dot); }.agri-directory-state.is-warn { color: var(--crm-warn-ink); }.agri-directory-state.is-warn > i { background: var(--crm-warn-dot); }.agri-directory-state.is-crit { color: var(--crm-crit-ink); }.agri-directory-state.is-crit > i { background: var(--crm-crit-dot); }
.agri-directory-age.is-stale { color: var(--crm-crit-ink); font-weight: 700; }.agri-directory-tasks { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 50%; background: var(--crm-card-2); color: var(--crm-ink-3); }.agri-directory-tasks.has-open { background: var(--crm-warn-bg); color: var(--crm-warn-ink); font-weight: 800; }
.agri-directory-preview { position: sticky; top: 14px; }
.agri-directory-preview__cover { padding: 16px; border-bottom: 1px solid var(--crm-line); background: linear-gradient(130deg, var(--crm-accent-soft), transparent 72%); }
.agri-directory-preview__title { display: grid; grid-template-columns: 43px minmax(0, 1fr) auto; align-items: center; gap: 10px; }.agri-directory-preview__title > i { width: 43px; height: 43px; display: grid; place-items: center; border-radius: 12px; background: var(--crm-ink); color: var(--crm-card); font-size: 11px; font-style: normal; font-weight: 800; }.agri-directory-preview__title h2 { margin: 0; font: 700 17px 'Outfit', sans-serif; }.agri-directory-preview__title p { margin: 4px 0 0; color: var(--crm-ink-2); font-size: 8.5px; }
.agri-directory-preview__cover > button { width: 100%; min-height: 35px; margin-top: 13px; border: 1px solid var(--crm-line); border-radius: 9px; background: var(--crm-card); color: var(--crm-ink); font: 700 9.5px 'Inter', sans-serif; cursor: pointer; }
.agri-directory-preview__body { padding: 13px; }.agri-directory-mini-map { min-height: 88px; display: grid; place-items: center; border: 1px solid var(--crm-line); border-radius: 10px; background: radial-gradient(circle at 72% 25%, color-mix(in srgb,var(--crm-ok-dot) 15%,transparent), transparent 28%), repeating-linear-gradient(104deg,var(--crm-card-2) 0,var(--crm-card-2) 8px,color-mix(in srgb,var(--crm-ok-dot) 8%,var(--crm-card)) 9px,color-mix(in srgb,var(--crm-ok-dot) 8%,var(--crm-card)) 12px); }.agri-directory-mini-map span { padding: 6px 9px; border-radius: 7px; background: var(--crm-card); color: var(--crm-ok-ink); font-size: 8px; font-weight: 800; box-shadow: var(--ux-shadow); }
.agri-directory-preview__facts { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin: 11px 0; overflow: hidden; border: 1px solid var(--crm-line); border-radius: 9px; background: var(--crm-line); }.agri-directory-preview__facts > div { min-width: 0; padding: 9px; background: var(--crm-card); }.agri-directory-preview__facts small, .agri-directory-preview__facts b { display: block; }.agri-directory-preview__facts small { color: var(--crm-ink-3); font-size: 7.5px; }.agri-directory-preview__facts b { overflow: hidden; margin-top: 3px; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.agri-directory-composition, .agri-directory-signal { margin-top: 10px; padding: 10px; border-radius: 9px; background: var(--crm-card-2); }.agri-directory-composition > small, .agri-directory-signal > small { display: block; margin-bottom: 6px; color: var(--crm-ink-3); font-size: 7.5px; font-weight: 800; text-transform: uppercase; }.agri-directory-composition > span { display: block; margin-top: 4px; color: var(--crm-ink-2); font-size: 8px; }.agri-directory-signal { background: var(--crm-warn-bg); }.agri-directory-signal b { color: var(--crm-warn-ink); font-size: 9px; }.agri-directory-signal p { margin: 4px 0 0; color: var(--crm-ink-2); font-size: 8px; line-height: 1.4; }
.agri-directory-preview__actions { display: grid; grid-template-columns: 1fr 1.25fr; gap: 6px; margin-top: 11px; }.agri-directory-preview__actions button { min-height: 34px; border: 1px solid var(--crm-line); border-radius: 8px; background: var(--crm-card); color: var(--crm-ink); font: 700 8.5px 'Inter', sans-serif; cursor: pointer; }.agri-directory-preview__actions button.is-primary { border-color: var(--crm-accent); background: var(--crm-accent); color: var(--crm-accent-ink); }

/* ── Agriculture · fiche Section ────────────────────────────────────── */
.agri-section-back { margin: 0 0 11px; color: var(--crm-ink-2); font-size: 10px; }
.agri-section-hero { min-height: 96px; display: grid; grid-template-columns: 53px minmax(0, 1fr) auto auto; align-items: center; gap: 13px; padding: 16px 18px; border: 1px solid var(--crm-line); border-radius: 16px; background: linear-gradient(120deg, color-mix(in srgb,var(--crm-ok-dot) 11%,var(--crm-card)), var(--crm-card) 58%); box-shadow: var(--ux-shadow); }
.agri-section-mark { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 14px; background: var(--crm-ink); color: var(--crm-card); font-size: 12px; font-weight: 800; }.agri-section-hero > div > small { color: var(--crm-ok-ink); font-size: 8.5px; font-weight: 750; }.agri-section-hero h2 { margin: 4px 0 0; font: 720 23px 'Outfit', sans-serif; }.agri-section-hero p { margin: 3px 0 0; color: var(--crm-ink-2); font-size: 10px; }.agri-section-hero p small { font-size: 8px; }
.agri-section-health { display: flex; flex-direction: column; gap: 4px; padding-right: 16px; text-align: right; }.agri-section-health small { color: var(--crm-ink-3); font-size: 7px; text-transform: uppercase; }.agri-section-health b { font-size: 9.5px; }.agri-section-health b.is-ok { color: var(--crm-ok-ink); }.agri-section-health b.is-warn { color: var(--crm-warn-ink); }.agri-section-health b.is-crit { color: var(--crm-crit-ink); }.agri-section-health em { color: var(--crm-ink-3); font-size: 7.5px; font-style: normal; }
.agri-section-hero > .crm-action { min-height: 39px; flex: none; padding-inline: 14px; border-color: var(--crm-accent); background: var(--crm-accent); color: var(--crm-accent-ink); font-size: 10px; }
.agri-section-kpis { display: grid; grid-template-columns: repeat(5, 1fr); gap: 9px; margin: 10px 0; }.agri-section-kpis > div { min-width: 0; min-height: 72px; display: grid; grid-template-columns: 31px minmax(0, 1fr); align-items: center; gap: 9px; padding: 10px 12px; border: 1px solid var(--crm-line); border-radius: 12px; background: var(--crm-card); box-shadow: var(--ux-shadow); }.agri-section-kpis > div > i { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; background: var(--crm-card-2); color: var(--crm-ok-ink); font-style: normal; }.agri-section-kpis small, .agri-section-kpis b, .agri-section-kpis em { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.agri-section-kpis small { color: var(--crm-ink-3); font-size: 7.5px; }.agri-section-kpis b { margin-top: 2px; font-size: 11px; }.agri-section-kpis em { margin-top: 2px; color: var(--crm-ink-3); font-size: 7px; font-style: normal; }
.agri-section-tabs { margin-bottom: 10px; }.agri-section-workspace { display: grid; grid-template-columns: minmax(580px, 1.45fr) minmax(280px, .55fr); gap: 12px; align-items: start; }.agri-section-workspace > main { min-width: 0; display: grid; gap: 12px; }.agri-section-workspace .crm-card { border-radius: 14px; box-shadow: var(--ux-shadow); }
.agri-section-context > header, .agri-section-journal > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; border-bottom: 1px solid var(--crm-line); }.agri-section-context h3, .agri-section-journal h3, .agri-section-quick h3 { margin: 0; font-size: 12px; }.agri-section-context header p, .agri-section-journal header p { margin: 3px 0 0; color: var(--crm-ink-3); font-size: 8px; }.agri-section-context header button { border: 0; background: transparent; color: var(--crm-accent); font: 750 9px 'Inter',sans-serif; cursor: pointer; }
.agri-section-facts { display: grid; grid-template-columns: .7fr 1.4fr 1fr; gap: 1px; background: var(--crm-line); }.agri-section-facts > div { min-width: 0; padding: 12px 16px; background: var(--crm-card); }.agri-section-facts small, .agri-section-facts b { display: block; }.agri-section-facts small { color: var(--crm-ink-3); font-size: 7.5px; }.agri-section-facts b { overflow: hidden; margin-top: 4px; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.agri-section-composition { display: flex; flex-wrap: wrap; align-items: center; gap: 3px 12px; margin: 13px 16px 15px; }.agri-section-composition > div { width: 100%; height: 9px; display: flex; overflow: hidden; border-radius: 5px; background: var(--crm-card-2); }.agri-section-composition > div > i { min-width: 3px; display: block; background: var(--crm-ok-dot); }.agri-section-composition > div > i.is-1 { background: var(--crm-accent); }.agri-section-composition > div > i.is-2 { background: var(--crm-info-dot); }.agri-section-composition > span { padding-top: 5px; color: var(--crm-ink-2); font-size: 8px; }.agri-section-composition > span + span::before { content: '·'; margin-right: 12px; color: var(--crm-ink-3); }
.agri-section-journal #agri-ftab-body { padding: 0 16px 8px; }.agri-section-journal .crm-tl__month { padding: 13px 0 7px; color: var(--crm-ink-3); font-size: 8px; }.agri-section-journal .crm-act { padding-inline: 0; }.agri-section-journal .crm-act__note { font-size: 10px; line-height: 1.5; }
.agri-section-aside { position: sticky; top: 14px; display: grid; gap: 10px; }.agri-section-aside .agri-tasks, .agri-section-aside > div > .crm-card { margin: 0; }
.agri-section-weather { padding: 13px; }.agri-section-weather > header { display: grid; grid-template-columns: 31px auto 1fr; align-items: center; gap: 8px; }.agri-section-weather header > span { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; background: var(--crm-warn-bg); }.agri-section-weather header > b { font: 700 20px 'Outfit',sans-serif; }.agri-section-weather header div { display: flex; flex-direction: column; }.agri-section-weather small { color: var(--crm-ink-2); font-size: 8px; }.agri-section-weather em { color: var(--crm-ink-3); font-size: 7px; font-style: normal; }.agri-section-weather > p { margin: 10px 0 0; color: var(--crm-ink-3); font-size: 8px; line-height: 1.45; }
.agri-section-quick { padding: 14px; }.agri-section-quick > p { margin: 4px 0 10px; color: var(--crm-ink-3); font-size: 8px; }.agri-section-quick .crm-chips { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; }.agri-section-quick .crm-chips button { min-height: 33px; justify-content: flex-start; padding: 6px 8px; border-radius: 8px; font-size: 8.5px; text-align: left; }

/* ── Agriculture · nouvelle observation en panneau latéral ──────────── */
#agri-sheet-ov { align-items: stretch; justify-content: flex-end; padding: 0; }
#agri-sheet-ov .agri-capture-sheet { width: min(610px, 100%); max-width: none; max-height: 100dvh; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; overflow: hidden; border-radius: 0; animation-name: crm-in; }
.agri-capture-sheet > .crm-sheet__head { min-height: 74px; padding: 13px 18px; border-bottom: 1px solid var(--crm-line); }.agri-capture-title { min-width: 0; display: flex; align-items: center; gap: 11px; }.agri-capture-title > i { width: 39px; height: 39px; flex: none; display: grid; place-items: center; border-radius: 11px; background: var(--crm-ink); color: var(--crm-card); font-size: 18px; font-style: normal; }.agri-capture-title b, .agri-capture-title small { display: block; }.agri-capture-title b { font: 700 17px 'Outfit',sans-serif; }.agri-capture-title small { margin-top: 3px; color: var(--crm-ink-2); font-size: 9px; }
.agri-capture-sheet > .crm-sheet__body { overflow-y: auto; padding: 15px 18px 22px; }.agri-capture-context { display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: 10px; margin-bottom: 13px; padding: 11px; border: 1px solid color-mix(in srgb,var(--crm-ok-dot) 25%,var(--crm-line)); border-radius: 11px; background: color-mix(in srgb,var(--crm-ok-dot) 8%,var(--crm-card)); }.agri-capture-context > i { width: 37px; height: 37px; display: grid; place-items: center; border-radius: 9px; background: var(--crm-ink); color: var(--crm-card); font-size: 9px; font-style: normal; font-weight: 800; }.agri-capture-context b, .agri-capture-context small { display: block; }.agri-capture-context b { font-size: 10px; }.agri-capture-context small { margin-top: 3px; color: var(--crm-ink-3); font-size: 8px; }.agri-capture-context em { color: var(--crm-ok-ink); font-size: 8px; font-style: normal; font-weight: 750; white-space: nowrap; }
.agri-capture-block { padding: 14px 0; border-top: 1px solid var(--crm-line); }.agri-capture-block > header { display: grid; grid-template-columns: 27px minmax(0,1fr); align-items: center; gap: 9px; margin-bottom: 10px; }.agri-capture-block > header > span { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: var(--crm-accent-soft); color: var(--crm-accent); font-size: 9px; font-weight: 800; }.agri-capture-block header b, .agri-capture-block header small { display: block; }.agri-capture-block header b { font-size: 11px; }.agri-capture-block header small { margin-top: 2px; color: var(--crm-ink-3); font-size: 8px; }
.agri-capture-types { display: grid; grid-template-columns: repeat(3,1fr); gap: 6px; }.agri-capture-types button { min-height: 58px; display: flex; flex-direction: column; justify-content: center; gap: 5px; padding: 8px; border: 1px solid var(--crm-line); border-radius: 9px; background: var(--crm-card); color: var(--crm-ink-2); font: inherit; cursor: pointer; }.agri-capture-types button i { font-size: 17px; font-style: normal; }.agri-capture-types button b { font-size: 8.5px; }.agri-capture-types button:hover { background: var(--crm-card-2); }.agri-capture-types button.on { border-color: var(--crm-accent); background: var(--crm-accent-soft); color: var(--crm-ink); box-shadow: inset 0 0 0 1px var(--crm-accent); }
.agri-capture-shortcuts { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 8px; }.agri-capture-shortcuts button { min-height: 27px; padding: 0 8px; border: 1px solid var(--crm-line); border-radius: 999px; background: var(--crm-card-2); color: var(--crm-ink-2); font: 650 8px 'Inter',sans-serif; cursor: pointer; }.agri-capture-shortcuts button.on { border-color: var(--crm-ok-dot); color: var(--crm-ok-ink); }
.agri-capture-sheet .crm-sheet__note { min-height: 94px; border-radius: 10px; background: var(--crm-card-2); font-size: 11px; line-height: 1.5; resize: vertical; }.agri-capture-sheet .crm-sheet__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }.agri-capture-sheet .crm-sheet__btn { min-height: 36px; font-size: 9px; }.agri-capture-voice { width: 100%; margin-top: 7px; border-style: dashed; }.agri-capture-sheet .crm-sheet__hint { margin-top: 7px; font-size: 7.5px; }.agri-capture-task { padding: 10px; border-radius: 9px; background: var(--crm-ok-bg); color: var(--crm-ok-ink); font-size: 9px; font-weight: 700; }
.agri-capture-foot { min-height: 72px; display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 8px; padding: 12px 18px; border-top: 1px solid var(--crm-line); background: var(--crm-card); box-shadow: 0 -8px 24px -20px rgba(0,0,0,.35); }.agri-capture-foot p { min-width: 0; margin: 0; }.agri-capture-foot p b, .agri-capture-foot p span { display: block; }.agri-capture-foot p b { font-size: 9px; }.agri-capture-foot p span { margin-top: 3px; color: var(--crm-ink-3); font-size: 7.5px; }.agri-capture-foot .crm-sheet__btn, .agri-capture-foot .crm-sheet__save { min-height: 38px; padding: 0 12px; white-space: nowrap; }

@media (max-width: 1120px) {
  .amb-wave-workspace { grid-template-columns: minmax(240px, .52fr) minmax(0, 1.48fr); }
  .agri-directory-workspace { grid-template-columns: 1fr; }.agri-directory-preview { position: static; }
  .agri-directory-preview__body { display: grid; grid-template-columns: 1fr 1.25fr; gap: 12px; }.agri-directory-mini-map { grid-row: 1 / 4; }.agri-directory-preview__facts { margin-top: 0; }
  .agri-section-workspace { grid-template-columns: minmax(0,1fr) 270px; }
}

@media (max-width: 900px) {
  #ambassadeurs-view > .crm-wrap:has(.amb-wave-page), #agriculture-view > .agri-directory-page, #agriculture-view > .agri-section-page { width: min(calc(100% - 28px), var(--ux-max)); }
  .amb-wave-head, .agri-directory-head { align-items: flex-start; }.amb-wave-summary { grid-template-columns: 1fr 1fr; }.amb-wave-summary > div:nth-child(3) { border-left: 0; border-top: 1px solid var(--crm-line); }.amb-wave-summary > div:nth-child(4) { border-top: 1px solid var(--crm-line); }
  .amb-wave-workspace { grid-template-columns: 1fr; }.amb-wave-list { position: static; display: grid; grid-template-columns: repeat(2, 1fr); }.amb-wave-list > header { grid-column: 1 / -1; }.amb-wave-card:nth-child(even) { border-left: 1px solid var(--crm-line); }
  .agri-directory-tools { grid-template-columns: 1fr 1fr 1fr; }.agri-directory-tools .crm-search { grid-column: 1 / -1; }.agri-directory-tools .crm-filter:last-child { grid-column: span 2; }
  .agri-section-hero { grid-template-columns: 53px minmax(0,1fr) auto; }.agri-section-hero > .crm-action { grid-column: 2 / -1; justify-self: start; }.agri-section-kpis { grid-template-columns: repeat(3,1fr); }.agri-section-workspace { grid-template-columns: 1fr; }.agri-section-aside { position: static; grid-template-columns: 1fr 1fr; }.agri-section-aside > div { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
  #ambassadeurs-view > .crm-wrap:has(.amb-wave-page), #agriculture-view > .agri-directory-page, #agriculture-view > .agri-section-page { width: min(calc(100% - 20px), var(--ux-max)); }
  .amb-wave-head, .agri-directory-head { flex-direction: column; }.amb-wave-head h2, .agri-directory-head h2 { font-size: 24px; }.amb-wave-head > .crm-action, .agri-directory-head > .crm-action { width: 100%; }
  .amb-wave-list { display: block; }.amb-wave-card:nth-child(even) { border-left: 0; }.amb-wave-funnel { grid-template-columns: 1fr 1fr; gap: 13px 0; }.amb-wave-step:nth-child(3) { padding-left: 0; border-left: 0; }.amb-wave-alert { grid-template-columns: 31px minmax(0,1fr); }.amb-wave-alert button { grid-column: 2; justify-self: start; padding: 0; }
  .amb-wave-shipments > header { align-items: stretch; flex-direction: column; }.amb-wave-shipments .crm-search { width: 100%; max-width: none; flex-basis: 36px; }.amb-wave-shipment { grid-template-columns: minmax(0,1fr) auto; gap: 7px 11px; padding-block: 10px; }.amb-wave-shipment--head { display: none; }.amb-wave-products { grid-row: 2; }.amb-wave-shipment time { grid-column: 2; grid-row: 2; text-align: right; }.amb-wave-import { grid-template-columns: 36px minmax(0,1fr); }.amb-wave-import .crm-action { width: 100%; }.amb-wave-import .crm-action:first-of-type { grid-column: 1 / -1; }.amb-wave-import .crm-action:last-child { grid-column: 1 / -1; }
  .agri-directory-summary { flex-wrap: wrap; gap: 9px 13px; }.agri-directory-summary > i { display: none; }.agri-directory-summary > span { flex: 1 1 42%; }.agri-directory-tools { grid-template-columns: 1fr 1fr; }.agri-directory-tools .crm-filter:last-child { grid-column: auto; }.agri-directory-workspace { overflow-x: hidden; }.agri-directory-table { overflow-x: auto; }.agri-directory-columns, .agri-directory-row { min-width: 780px; }.agri-directory-preview__body { display: block; }.agri-directory-preview__facts { margin-top: 11px; }
  .agri-section-hero { grid-template-columns: 48px minmax(0,1fr); padding: 14px; }.agri-section-mark { width: 47px; height: 47px; }.agri-section-health { grid-column: 1 / -1; align-items: flex-start; padding: 9px 0 0; border-top: 1px solid var(--crm-line); text-align: left; }.agri-section-hero > .crm-action { grid-column: 1 / -1; width: 100%; justify-self: stretch; }.agri-section-kpis { grid-template-columns: 1fr 1fr; }.agri-section-facts { grid-template-columns: 1fr; }.agri-section-aside { grid-template-columns: 1fr; }.agri-section-aside > div { grid-column: auto; }
  #agri-sheet-ov .agri-capture-sheet { width: 100%; }.agri-capture-sheet > .crm-sheet__head { padding-inline: 14px; }.agri-capture-title small { display: none; }.agri-capture-sheet > .crm-sheet__body { padding-inline: 14px; }.agri-capture-context { grid-template-columns: 38px minmax(0,1fr); }.agri-capture-context em { grid-column: 2; }.agri-capture-types { grid-template-columns: repeat(2,1fr); }.agri-capture-foot { grid-template-columns: 1fr 1fr; }.agri-capture-foot p { grid-column: 1 / -1; }.agri-capture-foot .crm-sheet__btn, .agri-capture-foot .crm-sheet__save { width: 100%; }
}

/* ── CRM · répertoire commercial maître-détail ─────────────────────── */
.crm-directory-v2 { width: min(calc(100% - 40px), var(--ux-max)); max-width: none; margin-inline: auto; color: var(--crm-ink); }
/* `position: relative; z-index` n'est pas décoratif ici, c'est ce qui garde le
   menu « Plus d'actions » au-dessus de la page. L'en-tête porte
   `animation: crm-in … both` : une animation qui *reste appliquée* (fill both)
   fait de l'élément un contexte d'empilement à part entière, peint comme un
   élément positionné de z-index 0. Le `z-index: 8` du panneau déroulant
   restait donc enfermé dans l'en-tête, et tout ce qui vient plus bas dans le
   DOM avec une position — la barre de recherche (`position: relative`), le
   panneau d'aperçu (`position: sticky`) — passait par-dessus : le menu
   paraissait coupé en tranches (ticket hjSuFdrTbmuEuyzNHzWg).
   On ancre donc l'en-tête au-dessus de ses frères. 20 et non davantage : au
   delà de 30 le menu passerait devant #crm-tabbar, la barre d'onglets collante
   (crm.css), et viendrait la recouvrir au défilement. */
.crm-dir-head { position: relative; z-index: 20; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin: 4px 2px 17px; animation: crm-in .3s ease both; }
.crm-dir-eyebrow { display: flex; align-items: center; gap: 7px; margin-bottom: 6px; color: var(--crm-accent); font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.crm-dir-eyebrow > span { width: 7px; height: 7px; border-radius: 50%; background: var(--crm-ok-dot); }
.crm-directory-v2 .crm-head__title { font: 720 28px/1.14 'Outfit', sans-serif; letter-spacing: -.025em; }
.crm-directory-v2 .crm-head__sub { max-width: 690px; margin-top: 5px; font-size: 13px; line-height: 1.45; }
.crm-dir-head-actions { display: flex; align-items: center; gap: 8px; flex: none; }
.crm-dir-actions-menu { position: relative; }
.crm-dir-actions-menu > summary { min-height: 40px; display: flex; align-items: center; padding: 0 13px; border: 1px solid var(--crm-line); border-radius: 10px; background: var(--crm-card); color: var(--crm-ink); font-size: 11px; font-weight: 700; cursor: pointer; list-style: none; }
.crm-dir-actions-menu > summary::-webkit-details-marker { display: none; }
.crm-dir-actions-menu[open] > summary { border-color: var(--crm-accent); }
.crm-dir-actions-menu > div { position: absolute; z-index: 8; top: calc(100% + 6px); right: 0; width: 210px; padding: 5px; border: 1px solid var(--crm-line); border-radius: 11px; background: var(--crm-card); box-shadow: var(--crm-shadow-lift); }
.crm-dir-actions-menu > div button { width: 100%; min-height: 36px; display: block; padding: 0 10px; border: 0; border-radius: 7px; background: transparent; color: var(--crm-ink); font: 600 10px 'Inter', sans-serif; text-align: left; cursor: pointer; }
.crm-dir-actions-menu > div button:hover { background: var(--crm-card-2); }
.crm-directory-v2 .crm-head__new { min-height: 40px; padding: 0 15px; border-radius: 10px; font-size: 11px; }

.crm-dir-summary { display: grid; grid-template-columns: repeat(4, minmax(110px, 1fr)) minmax(205px, 1.35fr); gap: 8px; margin-bottom: 11px; }
.crm-dir-summary > div { min-width: 0; min-height: 67px; display: grid; grid-template-columns: 31px minmax(0,1fr); align-items: center; gap: 9px; padding: 10px 12px; border: 1px solid var(--crm-line); border-radius: 12px; background: var(--crm-card); box-shadow: var(--ux-shadow); }
.crm-dir-summary > div > i { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 9px; background: var(--crm-card-2); color: var(--crm-ink-2); font-size: 12px; font-style: normal; }
.crm-dir-summary small, .crm-dir-summary strong, .crm-dir-summary em { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.crm-dir-summary small { color: var(--crm-ink-3); font-size: 7.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.crm-dir-summary strong { margin-top: 2px; font: 700 17px 'Outfit', sans-serif; }
.crm-dir-summary em { margin-top: 1px; color: var(--crm-ink-3); font-size: 7.5px; font-style: normal; }
.crm-dir-summary .is-opportunity { border-color: color-mix(in srgb, var(--crm-ok-dot) 24%, var(--crm-line)); }
.crm-dir-summary .is-opportunity > i { background: var(--crm-ok-bg); color: var(--crm-ok-ink); }
.crm-dir-summary .is-attention { border-color: color-mix(in srgb, var(--crm-warn-dot) 26%, var(--crm-line)); }
.crm-dir-summary .is-attention > i { background: var(--crm-warn-bg); color: var(--crm-warn-ink); }
.crm-dir-summary .crm-dir-daily { border-color: var(--crm-ink); background: var(--crm-ink); color: var(--crm-card); }
.crm-dir-summary .crm-dir-daily > i { background: color-mix(in srgb, var(--crm-card) 12%, transparent); color: var(--crm-chart-a); }
.crm-dir-summary .crm-dir-daily small, .crm-dir-summary .crm-dir-daily em { color: color-mix(in srgb, var(--crm-card) 68%, transparent); }
.crm-dir-summary .crm-dir-daily strong { font-size: 12px; }

.crm-directory-v2 .crm-dir-toolbar { position: relative; min-height: 53px; gap: 8px; margin-bottom: 0; padding: 8px; border: 1px solid var(--crm-line); border-radius: 12px; background: var(--crm-card); box-shadow: var(--ux-shadow); }
.crm-directory-v2 .crm-dir-toolbar .crm-search { min-width: 235px; height: 36px; flex: 1 1 280px; padding-inline: 11px; border-radius: 8px; background: var(--crm-card-2); }
.crm-directory-v2 .crm-dir-toolbar .crm-search input { font-size: 11px; }
.crm-dir-focus { display: flex; align-items: center; gap: 4px; }
.crm-dir-focus button { min-height: 34px; padding: 0 10px; border: 1px solid var(--crm-line); border-radius: 999px; background: var(--crm-card); color: var(--crm-ink-2); font: 700 9px 'Inter',sans-serif; white-space: nowrap; cursor: pointer; }
.crm-dir-focus button:hover { border-color: var(--crm-line-strong); color: var(--crm-ink); }
.crm-dir-focus button.on { border-color: var(--crm-ink); background: var(--crm-ink); color: var(--crm-card); }
.crm-dir-focus button > span { margin-left: 4px; padding: 2px 5px; border-radius: 999px; background: var(--crm-card-2); color: var(--crm-ink-2); font-size: 7px; }
.crm-dir-focus button.on > span { background: color-mix(in srgb, var(--crm-card) 15%, transparent); color: var(--crm-card); }
.crm-dir-filter-toggle { min-height: 34px; display: flex; align-items: center; gap: 5px; padding: 0 10px; border: 1px solid var(--crm-line); border-radius: 8px; background: var(--crm-card); color: var(--crm-ink); font: 700 9px 'Inter',sans-serif; cursor: pointer; }
.crm-dir-filter-toggle.on { border-color: var(--crm-accent); color: var(--crm-accent); }
.crm-dir-filter-toggle > b { min-width: 17px; padding: 2px 5px; border-radius: 999px; background: var(--crm-accent-soft); color: var(--crm-accent); font-size: 7px; }
/* Même piège, même remède : le panneau de filtres porte lui aussi une
   animation qui reste appliquée, et il abrite le choix « Produit », dont la
   liste à cocher s'ouvre par-dessus le tableau (`.crm-multi__pop`, z-index 40
   dans crm.css). Sans ancrage, cette liste passerait sous le panneau d'aperçu
   du magasin. 12 : au-dessus du tableau, sous l'en-tête (20). */
.crm-dir-filters { position: relative; z-index: 12; margin-top: 7px; padding: 13px; border: 1px solid var(--crm-line); border-radius: 12px; background: var(--crm-card); box-shadow: var(--ux-shadow); animation: crm-in .18s ease both; }
.crm-dir-filters-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 11px; }
.crm-dir-filters-head strong, .crm-dir-filters-head span { display: block; }
.crm-dir-filters-head strong { font-size: 12px; }.crm-dir-filters-head span { margin-top: 3px; color: var(--crm-ink-3); font-size: 8.5px; }
.crm-dir-filters-head > button { border: 0; background: transparent; color: var(--crm-ink-3); cursor: pointer; }
.crm-dir-filters-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
/* L'INTITULÉ d'un champ du panneau — « Rep », « Région », « Produit » — et rien
   d'autre. Le `>` après la grille n'est pas décoratif (ticket
   Gse9aJDDanlenDq7qI2f) : écrit `.crm-dir-filters-grid label > span`, ce
   sélecteur attrapait TOUT span enfant direct de N'IMPORTE quel <label> de la
   grille — donc les deux spans de chaque ligne de la liste à cocher Produit
   (`<label class="crm-multi__opt"><span class="crm-multi__lb">`), qui est
   imbriquée dans le <label> « Produit ». Les noms de produits héritaient alors
   d'une vignette d'intitulé : 7,5 px, graisse 800, MAJUSCULES, interlettrage,
   gris tertiaire. Illisibles, et (0,1,2) l'emportant sur `.crm-multi__lb`
   (0,1,0), le panneau ne pouvait pas se défendre. Les intitulés de champ sont
   enfants DIRECTS de la grille : `> label >` les vise tous, et eux seuls. */
.crm-dir-filters-grid > label > span { display: block; margin: 0 0 5px 2px; color: var(--crm-ink-3); font-size: 7.5px; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; }
.crm-dir-filters-grid .crm-filter { width: 100%; height: 36px; border-radius: 8px; font-size: 9.5px; }
.crm-dir-filter-foot { display: flex; align-items: center; gap: 8px; margin-top: 11px; padding-top: 10px; border-top: 1px solid var(--crm-line); }
.crm-dir-filter-foot .crm-segrow { height: 36px; border-radius: 9px; }.crm-dir-filter-foot .crm-segrow button { padding-inline: 9px; border-radius: 7px; font-size: 9px; }
.crm-dir-clear { min-height: 34px; margin-left: auto; padding: 0 10px; border: 1px solid var(--crm-line); border-radius: 8px; background: var(--crm-card); color: var(--crm-ink-2); font: 700 8.5px 'Inter',sans-serif; cursor: pointer; }
.crm-directory-v2 > .crm-count { margin: 8px 2px; }

.crm-dir-workspace { display: grid; grid-template-columns: minmax(650px,1.55fr) minmax(315px,.62fr); gap: 12px; align-items: start; }
.crm-directory-v2 .crm-listwrap, .crm-dir-preview { min-width: 0; border-radius: 14px; box-shadow: var(--ux-shadow); }
.crm-directory-v2 .crm-listwrap { overflow: hidden; }
.crm-directory-v2 #crm-list-rows { max-height: max(440px, calc(100dvh - 420px)); overflow-y: auto; scrollbar-width: thin; }
.crm-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; padding: 10px 14px; border-top: 1px solid var(--crm-line); background: var(--crm-card); color: var(--crm-ink); font-size: 14px; }
.crm-pagination[hidden] { display: none; }
.crm-pagination > span { font-variant-numeric: tabular-nums; }
.crm-pagination > div { display: flex; gap: 8px; margin-left: auto; }
.crm-pagination button { min-width: 44px; min-height: 44px; padding: 8px 12px; border: 1px solid var(--crm-line); border-radius: 10px; background: var(--crm-card); color: var(--crm-ink); font: inherit; cursor: pointer; }
.crm-pagination button:hover:not([aria-disabled="true"]) { background: var(--crm-card-2); }
.crm-pagination button[aria-disabled="true"] { opacity: .45; cursor: default; }
.crm-directory-v2 .crm-thead, .crm-directory-v2 .crm-row { grid-template-columns: 38px minmax(205px,1.45fr) minmax(105px,.72fr) minmax(105px,.68fr) 105px 48px; gap: 10px; padding-inline: 13px; }
.crm-directory-v2.crm-list--sel .crm-thead, .crm-directory-v2.crm-list--sel .crm-row { grid-template-columns: 22px 38px minmax(205px,1.45fr) minmax(105px,.72fr) minmax(105px,.68fr) 105px 48px; }
.crm-directory-v2 .crm-thead { min-height: 37px; padding-block: 0; }.crm-directory-v2 .crm-th { font-size: 8px; }
.crm-directory-v2 .crm-row { min-height: 62px; padding-block: 8px; }
.crm-directory-v2 .crm-row:hover { background: var(--crm-card-2); }
.crm-directory-v2 .crm-row.is-selected { background: var(--crm-accent-soft); box-shadow: inset 3px 0 var(--crm-accent); }
.crm-directory-v2 .crm-mono { width: 35px; height: 35px; border-radius: 10px; font-size: 9px; }
.crm-directory-v2 .crm-row__name { font-size: 11px; font-weight: 700; }
.crm-directory-v2 .crm-row__sub { margin-top: 3px; font-size: 8px; }
.crm-directory-v2 .crm-row .crm-banner-chip { max-width: 84px; margin-left: 5px; font-size: 7px; }.crm-directory-v2 .crm-row .crm-tag { max-width: 62px; font-size: 7px; }
.crm-dir-group { min-height: 34px; display: flex; align-items: center; gap: 7px; padding: 0 13px; border-top: 1px solid var(--crm-line); border-bottom: 1px solid var(--crm-line); background: var(--crm-card-2); }
.crm-dir-group:first-child { border-top: 0; }.crm-dir-group strong { font-size: 9px; }.crm-dir-group span { color: var(--crm-ink-3); font-size: 7.5px; }.crm-dir-group b { min-width: 22px; margin-left: auto; padding: 3px 6px; border-radius: 999px; background: var(--crm-card); color: var(--crm-ink-2); font-size: 7px; text-align: center; }
.crm-dir-group--priority { background: color-mix(in srgb, var(--crm-warn-bg) 48%, var(--crm-card)); }.crm-dir-group--priority b { background: var(--crm-warn-bg); color: var(--crm-warn-ink); }
.crm-dir-signal { display: flex; align-items: center; gap: 6px; color: var(--crm-ink-2); font-size: 8.5px; font-weight: 700; white-space: nowrap; }
.crm-dir-signal > span { width: 6px; height: 6px; flex: none; border-radius: 50%; background: var(--crm-ink-3); }
.crm-dir-signal--ok { color: var(--crm-ok-ink); }.crm-dir-signal--ok > span { background: var(--crm-ok-dot); }.crm-dir-signal--warn { color: var(--crm-warn-ink); }.crm-dir-signal--warn > span { background: var(--crm-warn-dot); }.crm-dir-signal--cold { color: var(--crm-crit-ink); }.crm-dir-signal--cold > span { background: var(--crm-crit-dot); }.crm-dir-signal--info { color: var(--crm-info-ink); }.crm-dir-signal--info > span { background: var(--crm-info-dot); }
.crm-dir-rep { min-width: 0; display: flex; align-items: center; gap: 7px; }.crm-dir-rep > span { width: 24px; height: 24px; flex: none; display: grid; place-items: center; border-radius: 50%; background: var(--crm-card-2); color: var(--crm-ink-2); font-size: 7px; font-weight: 800; }.crm-dir-rep > b { overflow: hidden; color: var(--crm-ink-2); font-size: 8.5px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.crm-directory-v2 .crm-lastact { font-size: 8.5px; }.crm-directory-v2 .crm-lastact__t { font-size: 7.5px; }.crm-directory-v2 .crm-lastact__dot { width: 5px; height: 5px; }
.crm-dir-score { width: 36px; height: 25px; display: grid; place-items: center; justify-self: end; border-radius: 7px; background: var(--crm-card-2); color: var(--crm-ink-2); font-size: 8.5px; font-weight: 800; }.crm-dir-score.is-high { background: var(--crm-ok-bg); color: var(--crm-ok-ink); }.crm-dir-score.is-mid { background: var(--crm-warn-bg); color: var(--crm-warn-ink); }

.crm-dir-preview { position: sticky; top: 13px; overflow: hidden; border: 1px solid var(--crm-line); background: var(--crm-card); }
.crm-dir-preview-cover { padding: 15px; border-bottom: 1px solid var(--crm-line); background: linear-gradient(125deg, var(--crm-accent-soft), color-mix(in srgb,var(--crm-ok-bg) 48%,var(--crm-card))); }
.crm-dir-preview-title { display: grid; grid-template-columns: 47px minmax(0,1fr) auto; align-items: center; gap: 10px; }.crm-directory-v2 .crm-dir-preview-title .crm-mono { width: 46px; height: 46px; border-radius: 12px; font-size: 12px; }.crm-dir-preview-title > div:nth-child(2) { min-width: 0; }.crm-dir-preview-title span, .crm-dir-preview-title h2, .crm-dir-preview-title p { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.crm-dir-preview-title > div > span { color: var(--crm-ink-3); font-size: 7.5px; }.crm-dir-preview-title h2 { margin: 3px 0 2px; font: 700 16px 'Outfit',sans-serif; }.crm-dir-preview-title p { margin: 0; color: var(--crm-ink-2); font-size: 8px; }.crm-dir-preview-title > .crm-pill { align-self: start; padding: 4px 7px; font-size: 7px; }
.crm-dir-preview-score { display: grid; grid-template-columns: 54px minmax(0,1fr); align-items: center; gap: 9px; margin-top: 12px; }.crm-dir-preview-score progress { width: 52px; height: 8px; accent-color: var(--crm-ok-dot); }.crm-dir-preview-score small, .crm-dir-preview-score strong, .crm-dir-preview-score span { display: block; }.crm-dir-preview-score small { color: var(--crm-ink-3); font-size: 7px; text-transform: uppercase; }.crm-dir-preview-score strong { margin-top: 3px; font-size: 9.5px; }.crm-dir-preview-score span { margin-top: 2px; color: var(--crm-ink-3); font-size: 7.5px; }
.crm-dir-preview-body { padding: 12px; }.crm-dir-next { padding: 10px; border: 1px solid color-mix(in srgb,var(--crm-ok-dot) 24%,var(--crm-line)); border-radius: 9px; background: var(--crm-ok-bg); }.crm-dir-next > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; }.crm-dir-next small { color: var(--crm-ok-ink); font-size: 7px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }.crm-dir-next > div > span { color: var(--crm-ok-ink); font-size: 7px; font-weight: 750; }.crm-dir-next strong { display: block; margin-top: 5px; font-size: 9.5px; }.crm-dir-next p { margin: 4px 0 0; color: var(--crm-ink-2); font-size: 8px; line-height: 1.42; }
.crm-dir-preview-kpis { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin-top: 9px; overflow: hidden; border: 1px solid var(--crm-line); border-radius: 9px; background: var(--crm-line); }.crm-dir-preview-kpis > div { min-width: 0; padding: 8px; background: var(--crm-card); }.crm-dir-preview-kpis small, .crm-dir-preview-kpis strong, .crm-dir-preview-kpis span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.crm-dir-preview-kpis small { color: var(--crm-ink-3); font-size: 6.5px; text-transform: uppercase; }.crm-dir-preview-kpis strong { margin-top: 3px; font-size: 9px; }.crm-dir-preview-kpis span { margin-top: 2px; color: var(--crm-ink-3); font-size: 7px; }
.crm-dir-signals { margin-top: 11px; }.crm-dir-signals h3 { margin: 0 0 6px; font-size: 9.5px; }.crm-dir-signals > div { display: grid; grid-template-columns: 23px minmax(0,1fr); gap: 7px; padding: 5px 0; }.crm-dir-signals i { width: 23px; height: 23px; display: grid; place-items: center; border-radius: 7px; background: var(--crm-card-2); color: var(--crm-ink-2); font-size: 8px; font-style: normal; }.crm-dir-signals p { min-width: 0; margin: 0; }.crm-dir-signals strong, .crm-dir-signals span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.crm-dir-signals strong { font-size: 8px; }.crm-dir-signals span { margin-top: 2px; color: var(--crm-ink-3); font-size: 7px; }
.crm-dir-preview-actions { display: grid; grid-template-columns: .72fr 1.28fr; gap: 6px; margin-top: 10px; }.crm-dir-preview-actions button { min-height: 34px; border: 1px solid var(--crm-line); border-radius: 8px; background: var(--crm-card); color: var(--crm-ink); font: 700 8px 'Inter',sans-serif; cursor: pointer; }.crm-dir-preview-actions button.main { border-color: var(--crm-ink); background: var(--crm-ink); color: var(--crm-card); }
.crm-dir-preview-empty { min-height: 320px; display: grid; place-content: center; justify-items: center; padding: 24px; color: var(--crm-ink-3); text-align: center; }.crm-dir-preview-empty > span { width: 43px; height: 43px; display: grid; place-items: center; border-radius: 12px; background: var(--crm-card-2); font-size: 18px; }.crm-dir-preview-empty strong { margin-top: 10px; color: var(--crm-ink); font-size: 11px; }.crm-dir-preview-empty p { max-width: 210px; margin: 4px 0 0; font-size: 8.5px; line-height: 1.45; }

@media (max-width: 1160px) {
  .crm-dir-summary { grid-template-columns: repeat(4,1fr); }.crm-dir-summary .crm-dir-daily { display: none; }
  .crm-dir-workspace { grid-template-columns: 1fr; }.crm-dir-preview { position: static; }.crm-dir-preview-body { display: grid; grid-template-columns: 1fr 1fr; gap: 9px 12px; }.crm-dir-preview-kpis, .crm-dir-signals, .crm-dir-preview-actions { margin-top: 0; }.crm-dir-preview-actions { grid-column: 2; }
}
@media (max-width: 900px) {
  .crm-directory-v2 { width: min(calc(100% - 28px), var(--ux-max)); }.crm-dir-head { align-items: flex-start; }.crm-dir-summary { grid-template-columns: 1fr 1fr; }.crm-dir-toolbar { flex-wrap: wrap; }.crm-dir-focus { order: 3; width: 100%; overflow-x: auto; }.crm-dir-filter-toggle { margin-left: auto; }.crm-dir-filters-grid { grid-template-columns: 1fr 1fr; }
  .crm-directory-v2 .crm-thead, .crm-directory-v2 .crm-row { grid-template-columns: 38px minmax(190px,1.4fr) minmax(100px,.7fr) 100px 46px; }.crm-directory-v2.crm-list--sel .crm-thead, .crm-directory-v2.crm-list--sel .crm-row { grid-template-columns: 22px 38px minmax(190px,1.4fr) minmax(100px,.7fr) 100px 46px; }.crm-directory-v2 .crm-thead > *:nth-last-child(3), .crm-directory-v2 .crm-row > *:nth-last-child(3) { display: none; }
}
@media (max-width: 640px) {
  .crm-directory-v2 { width: min(calc(100% - 20px), var(--ux-max)); }.crm-dir-head { flex-direction: column; }.crm-dir-head-actions { width: 100%; }.crm-dir-head-actions .crm-head__new { flex: 1; justify-content: center; }.crm-directory-v2 .crm-head__title { font-size: 24px; }.crm-dir-summary { grid-template-columns: 1fr 1fr; }.crm-dir-summary > div { min-height: 62px; }
  .crm-dir-filters-grid { grid-template-columns: 1fr; }.crm-dir-filter-foot { flex-wrap: wrap; }.crm-dir-clear { width: 100%; margin-left: 0; }.crm-directory-v2 .crm-listwrap { overflow-x: hidden; }.crm-directory-v2 .crm-thead { display: none; }.crm-directory-v2 .crm-row { grid-template-columns: 38px minmax(0,1fr) 42px; gap: 9px; min-height: 62px; }.crm-directory-v2.crm-list--sel .crm-row { grid-template-columns: 22px 38px minmax(0,1fr) 42px; }.crm-directory-v2 .crm-row > .crm-dir-signal, .crm-directory-v2 .crm-row > .crm-dir-rep, .crm-directory-v2 .crm-row > .crm-lastact { display: none; }.crm-directory-v2 .crm-row > .crm-dir-score { display: grid; }.crm-dir-group span { display: none; }
  .crm-dir-preview-body { display: block; }.crm-dir-preview-kpis, .crm-dir-signals, .crm-dir-preview-actions { margin-top: 9px; }.crm-dir-preview-actions { grid-column: auto; }
}

/* ── CRM · fiche magasin décisionnelle ─────────────────────────────── */
.crm-store-fiche { width: min(calc(100% - 40px), var(--ux-max)); max-width: none; margin-inline: auto; }
.crm-store-fiche > .crm-fiche__back { margin: 0 0 9px; padding: 4px 1px; font-size: 10px; font-weight: 700; }
.crm-store-hero { min-height: 108px; gap: 16px; padding: 16px 18px; overflow: visible; border-radius: 15px; background: linear-gradient(112deg, color-mix(in srgb,var(--crm-accent) 9%,var(--crm-card)), color-mix(in srgb,var(--crm-ok-dot) 6%,var(--crm-card))); box-shadow: var(--ux-shadow); }
.crm-store-hero::before { display: none; }
.crm-store-hero > .crm-mono { width: 60px; height: 60px; border-radius: 15px; font-size: 14px; box-shadow: var(--ux-shadow); }
.crm-store-eyebrow { display: flex; align-items: center; gap: 6px; color: var(--crm-ok-ink); font-size: 8px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.crm-store-eyebrow > span { width: 6px; height: 6px; border-radius: 50%; background: var(--crm-ok-dot); }
.crm-store-hero .crm-hero__name { margin-top: 4px; font: 720 24px/1.08 'Outfit', sans-serif; }
.crm-store-hero .crm-hero__sub { margin-top: 3px; font-size: 9.5px; }
.crm-store-identity { min-height: 20px; display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin-top: 7px; }
.crm-store-identity .crm-hero__banner, .crm-store-identity .crm-hero__tags { display: contents; }
.crm-store-identity .crm-num-chip, .crm-store-identity .crm-banner-chip, .crm-store-identity .crm-tag { min-height: 19px; max-width: 150px; margin: 0; padding: 2px 7px; font-size: 7px; }
.crm-store-identity .crm-banner-chip__l, .crm-store-identity .crm-num-chip__l { font-size: 6px; }
.crm-store-hero .crm-hero__side { gap: 7px; }
.crm-store-hero .crm-pill { padding: 5px 8px; font-size: 7.5px; }
.crm-store-actions { display: flex; align-items: center; gap: 5px; }
.crm-store-actions .crm-action { min-width: 0; min-height: 36px; flex: none; margin: 0; padding: 0 10px; border-radius: 8px; background: var(--crm-card); font-size: 8.5px; font-weight: 750; box-shadow: none; }
.crm-store-actions .crm-action svg { width: 12px; height: 12px; }
.crm-store-hero .crm-hero__more { width: 36px; height: 36px; border-radius: 8px; background: var(--crm-card); }
.crm-store-hero .crm-hero__dropdown { top: calc(100% + 5px); border-radius: 9px; }
.crm-store-hero .crm-hero__dropdown button { padding: 9px 11px; font-size: 10px; }

.crm-store-kpis { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 8px; margin: 9px 0; }
.crm-store-kpis > div, .crm-store-kpis > button { min-width: 0; min-height: 66px; display: grid; grid-template-columns: 31px minmax(0,1fr); align-items: center; gap: 9px; padding: 9px 11px; border: 1px solid var(--crm-line); border-radius: 11px; background: var(--crm-card); color: var(--crm-ink); box-shadow: var(--ux-shadow); text-align: left; }
.crm-store-kpis > button { font: inherit; cursor: pointer; transition: border-color .14s ease, transform .14s ease; }.crm-store-kpis > button:hover { border-color: var(--crm-line-strong); transform: translateY(-1px); }
.crm-store-kpis > div > i, .crm-store-kpis > button > i { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 9px; background: var(--crm-card-2); color: var(--crm-ok-ink); font-size: 10px; font-style: normal; font-weight: 800; }
.crm-store-kpis > button:first-child > i { border: 3px solid color-mix(in srgb,var(--crm-ok-dot) 42%,transparent); border-radius: 50%; background: var(--crm-ok-bg); }
.crm-store-kpis small, .crm-store-kpis strong, .crm-store-kpis em { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.crm-store-kpis small { color: var(--crm-ink-3); font-size: 7px; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; }.crm-store-kpis strong { margin-top: 2px; font-size: 11px; }.crm-store-kpis em { margin-top: 2px; color: var(--crm-ink-3); font-size: 7px; font-style: normal; }

.crm-store-next { min-height: 57px; display: grid; grid-template-columns: 31px minmax(0,1fr) auto; align-items: center; gap: 10px; margin-bottom: 9px; padding: 9px 11px; border: 1px solid color-mix(in srgb,var(--crm-ok-dot) 25%,var(--crm-line)); border-radius: 11px; background: color-mix(in srgb,var(--crm-ok-bg) 68%,var(--crm-card)); box-shadow: var(--ux-shadow); }
.crm-store-next > i { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 8px; background: var(--crm-card); color: var(--crm-ok-ink); font-size: 12px; font-style: normal; font-weight: 800; }
.crm-store-next small, .crm-store-next strong { display: block; }.crm-store-next small { color: var(--crm-ok-ink); font-size: 6.5px; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; }.crm-store-next strong { margin-top: 2px; font-size: 9.5px; }.crm-store-next p { margin: 2px 0 0; color: var(--crm-ink-2); font-size: 7.5px; }
.crm-store-next > button { min-height: 34px; padding: 0 11px; border: 0; border-radius: 8px; background: var(--crm-ok-ink); color: #fff; font: 750 8px 'Inter',sans-serif; cursor: pointer; }.crm-store-next--attention { border-color: color-mix(in srgb,var(--crm-warn-dot) 25%,var(--crm-line)); background: var(--crm-warn-bg); }.crm-store-next--attention > i, .crm-store-next--attention small { color: var(--crm-warn-ink); }.crm-store-next--attention > button { background: var(--crm-warn-ink); }.crm-store-next--neutral { border-color: var(--crm-line); background: var(--crm-card-2); }.crm-store-next--neutral > i, .crm-store-next--neutral small { color: var(--crm-ink-2); }.crm-store-next--neutral > button { background: var(--crm-ink); }

.crm-store-fiche > .crm-tabs { position: sticky; min-height: 43px; align-items: center; gap: 1px; margin-bottom: 9px; padding: 4px; border-radius: 10px; background: var(--crm-card); box-shadow: var(--ux-shadow); }
.crm-store-fiche > .crm-tabs .crm-tab { flex: 0 0 auto; min-height: 31px; padding: 0 11px; border-radius: 7px; font-size: 8.5px; }.crm-store-fiche > .crm-tabs .crm-tab.on { background: var(--crm-card-2); box-shadow: none; }.crm-store-fiche > .crm-tabs .crm-tab__badge { padding: 1px 5px; font-size: 6px; }
.crm-store-updated { margin-left: auto; padding-right: 8px; color: var(--crm-ink-3); font-size: 6.5px; white-space: nowrap; }.crm-store-updated::first-letter { color: var(--crm-ok-dot); }

.crm-store-workspace { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(270px,.52fr); gap: 10px; align-items: start; }
.crm-store-maincol, .crm-store-aside { min-width: 0; display: grid; gap: 10px; }.crm-store-aside { position: sticky; top: calc(var(--crm-otabs-h, 0px) + 56px); }
.crm-store-performance, .crm-store-sidecard { overflow: hidden; border: 1px solid var(--crm-line); border-radius: 12px; background: var(--crm-card); box-shadow: var(--ux-shadow); }
.crm-store-performance > header, .crm-store-sidecard > header { min-height: 49px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 13px; border-bottom: 1px solid var(--crm-line); }
.crm-store-performance h2, .crm-store-sidecard h3 { margin: 0; font-size: 11px; }.crm-store-performance header p, .crm-store-sidecard header p { margin: 3px 0 0; color: var(--crm-ink-3); font-size: 7px; }
.crm-store-periods { display: flex; gap: 3px; }.crm-store-periods button { min-height: 25px; padding: 0 7px; border: 1px solid var(--crm-line); border-radius: 6px; background: var(--crm-card); color: var(--crm-ink-2); font: 700 7px 'Inter',sans-serif; cursor: pointer; }.crm-store-periods button.on { border-color: var(--crm-ink); background: var(--crm-ink); color: var(--crm-card); }
.crm-store-performance__stats { display: flex; align-items: center; gap: 20px; padding: 10px 13px 2px; }.crm-store-performance__stats span { min-width: 85px; }.crm-store-performance__stats small, .crm-store-performance__stats strong { display: block; }.crm-store-performance__stats small { color: var(--crm-ink-3); font-size: 6.5px; letter-spacing: .05em; text-transform: uppercase; }.crm-store-performance__stats strong { margin-top: 2px; font-size: 10.5px; }
.crm-store-chart { min-height: 156px; padding: 2px 12px 0; }.crm-store-chart .crm-chart { margin: 0; }.crm-store-chart .crm-chart svg { max-height: 170px; }
.crm-store-performance > .crm-chart-hint { margin: 0; padding: 0 13px 7px; font-size: 7px; }
.crm-store-insight { display: flex; align-items: center; gap: 6px; margin: 0 12px 11px; padding: 8px 9px; border-radius: 7px; background: var(--crm-ok-bg); }.crm-store-insight b { flex: none; color: var(--crm-ok-ink); font-size: 7.5px; }.crm-store-insight span { overflow: hidden; color: var(--crm-ink-2); font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }.crm-store-insight--attention { background: var(--crm-warn-bg); }.crm-store-insight--attention b { color: var(--crm-warn-ink); }.crm-store-insight--neutral { background: var(--crm-card-2); }.crm-store-insight--neutral b { color: var(--crm-ink); }
.crm-store-products.crm-card { margin: 0; padding: 0 0 6px; border-radius: 12px; }.crm-store-products > .crm-section__label { min-height: 42px; display: flex; align-items: center; margin: 0; padding: 0 13px; border-bottom: 1px solid var(--crm-line); font-size: 9px; }.crm-store-products .crm-top { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--crm-line); }.crm-store-products .crm-top__row { min-height: 48px; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 3px 9px; padding: 8px 12px; border: 0; background: var(--crm-card); }.crm-store-products .crm-top__name { font-size: 8.5px; }.crm-store-products .crm-top__units { font-size: 8px; }.crm-store-products .crm-top__meta { grid-column: 1; font-size: 6.5px; }.crm-store-products .crm-top__bar { grid-column: 1 / -1; height: 3px; }

.crm-store-contact { min-height: 61px; display: grid; grid-template-columns: 33px minmax(0,1fr) auto; align-items: center; gap: 9px; padding: 9px 12px; }.crm-store-contact > span, .crm-store-rep > i { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: var(--crm-card-2); color: var(--crm-ink-2); font-size: 7.5px; font-style: normal; font-weight: 800; }.crm-store-contact strong, .crm-store-contact small, .crm-store-rep strong, .crm-store-rep small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.crm-store-contact strong, .crm-store-rep strong { font-size: 8px; }.crm-store-contact small { margin-top: 2px; color: var(--crm-ink-3); font-size: 6.5px; }.crm-store-contact button { width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid var(--crm-line); border-radius: 7px; background: var(--crm-card); color: var(--crm-ink-2); cursor: pointer; }.crm-store-contact button svg { width: 11px; height: 11px; }
.crm-store-rep { min-height: 52px; display: grid; grid-template-columns: 27px minmax(0,1fr) auto; align-items: center; gap: 8px; padding: 8px 12px; border-top: 1px solid var(--crm-line); background: var(--crm-card-2); }.crm-store-rep > i { width: 26px; height: 26px; background: var(--crm-ink-2); color: var(--crm-card); font-size: 6.5px; }.crm-store-rep small { color: var(--crm-ink-3); font-size: 5.5px; letter-spacing: .05em; text-transform: uppercase; }.crm-store-rep strong { margin-top: 2px; }.crm-store-rep em { color: var(--crm-ok-ink); font-size: 6.5px; font-style: normal; }
.crm-store-cardlink { width: 100%; min-height: 33px; display: flex; align-items: center; justify-content: flex-end; padding: 0 12px; border: 0; border-top: 1px solid var(--crm-line); background: var(--crm-card); color: var(--crm-accent); font: 750 7px 'Inter',sans-serif; cursor: pointer; }
.crm-store-signals { padding: 0 12px; }.crm-store-signals > div { min-height: 45px; display: grid; grid-template-columns: 27px minmax(0,1fr); align-items: center; gap: 8px; border-top: 1px solid var(--crm-line); }.crm-store-signals > div:first-child { border-top: 0; }.crm-store-signals i { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 7px; background: var(--crm-card-2); color: var(--crm-ink-2); font-size: 8px; font-style: normal; }.crm-store-signals strong, .crm-store-signals small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.crm-store-signals strong { font-size: 7.5px; }.crm-store-signals small { margin-top: 2px; color: var(--crm-ink-3); font-size: 6.5px; }
.crm-store-tasklist { padding: 0 12px; }.crm-store-tasklist > div { min-height: 47px; display: grid; grid-template-columns: 14px minmax(0,1fr) auto; align-items: center; gap: 7px; border-top: 1px solid var(--crm-line); }.crm-store-tasklist > div:first-child { border-top: 0; }.crm-store-tasklist i { width: 13px; height: 13px; border: 1px solid var(--crm-line-strong); border-radius: 4px; }.crm-store-tasklist strong, .crm-store-tasklist small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.crm-store-tasklist strong { font-size: 7.5px; }.crm-store-tasklist small { margin-top: 2px; color: var(--crm-ink-3); font-size: 6.5px; }.crm-store-tasklist time { color: var(--crm-warn-ink); font-size: 6px; font-weight: 800; }.crm-store-tasklist time.late { color: var(--crm-crit-ink); }.crm-store-tasks-empty { min-height: 50px; display: grid; place-items: center; padding: 10px; color: var(--crm-ink-3); font-size: 7px; }

/* Carte Coordonnées de l'aside (ticket kPzo8F7q7XynipgIJPOZ) — les données
   détaillées du compte remontées du repli de bas de page. Elle emprunte le
   gabarit des autres cartes de la gouttière (`crm-store-sidecard`) : c'est la
   même colonne, elle doit s'y fondre. Seuls le rembourrage du corps et
   l'échelle des libellés sont à poser — la grille, elle, est déjà en une
   colonne via `crm-info--stack` (crm.css). */
.crm-store-coords__body { padding: 11px 12px; }
.crm-store-coords .crm-info__k { font-size: 6.5px; margin-bottom: 1px; }
.crm-store-coords .crm-info__v { font-size: 8px; line-height: 1.4; }
.crm-store-coords .crm-flags { gap: 4px; margin-top: 10px; }
.crm-store-coords .crm-flag { padding: 2px 7px; font-size: 7px; }

.crm-store-more-data { margin-top: 10px; overflow: hidden; border: 1px solid var(--crm-line); border-radius: 11px; background: var(--crm-card); }.crm-store-more-data > summary { min-height: 54px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 13px; cursor: pointer; list-style: none; }.crm-store-more-data > summary::-webkit-details-marker { display: none; }.crm-store-more-data summary b, .crm-store-more-data summary small { display: block; }.crm-store-more-data summary b { font-size: 9px; }.crm-store-more-data summary small { margin-top: 3px; color: var(--crm-ink-3); font-size: 7px; }.crm-store-more-data summary i { color: var(--crm-ink-3); font-style: normal; transition: transform .15s ease; }.crm-store-more-data[open] summary i { transform: rotate(180deg); }.crm-store-more-data > div { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 0 10px 10px; }.crm-store-more-data > div > .crm-card { min-width: 0; margin: 0; border-radius: 10px; box-shadow: none; }.crm-store-more-data > div > .crm-card:last-child:nth-child(odd) { grid-column: 1 / -1; }

@media (max-width: 1120px) {
  .crm-store-hero { display: grid; grid-template-columns: auto 1fr; }.crm-store-hero .crm-hero__side { grid-column: 1 / -1; width: 100%; justify-content: flex-end; }.crm-store-hero .crm-hero__badges { margin-right: auto; }.crm-store-kpis { grid-template-columns: repeat(3,1fr); }.crm-store-kpis > :nth-child(n+4) { grid-column: span 1; }
  .crm-store-workspace { grid-template-columns: 1fr; }.crm-store-aside { position: static; grid-template-columns: repeat(3,1fr); align-items: start; }
}
@media (max-width: 760px) {
  .crm-store-fiche { width: min(calc(100% - 20px),var(--ux-max)); }.crm-store-hero { display: grid; grid-template-columns: 48px minmax(0,1fr); padding: 13px; }.crm-store-hero > .crm-mono { width: 47px; height: 47px; border-radius: 12px; }.crm-store-hero .crm-hero__name { font-size: 20px; }.crm-store-hero .crm-hero__sub { white-space: normal; }.crm-store-hero .crm-hero__side { align-items: stretch; flex-wrap: wrap; }.crm-store-actions { width: 100%; overflow-x: auto; }.crm-store-actions .crm-action { flex: 1 0 auto; }.crm-store-hero .crm-hero__menu { position: absolute; top: 12px; right: 12px; }.crm-store-hero .crm-pill { margin-right: 42px; }
  .crm-store-kpis { grid-template-columns: 1fr 1fr; }.crm-store-kpis > :last-child { grid-column: 1 / -1; }.crm-store-next { grid-template-columns: 31px minmax(0,1fr); }.crm-store-next > button { grid-column: 1 / -1; width: 100%; }.crm-store-next p { line-height: 1.4; }
  .crm-store-updated { display: none; }.crm-store-fiche > .crm-tabs .crm-tab { padding-inline: 9px; }.crm-store-aside { grid-template-columns: 1fr; }.crm-store-products .crm-top { grid-template-columns: 1fr; }.crm-store-more-data > div { grid-template-columns: 1fr; }.crm-store-more-data > div > .crm-card:last-child:nth-child(odd) { grid-column: auto; }
  .crm-store-performance__stats { gap: 10px; overflow-x: auto; }.crm-store-periods { display: none; }
}

/* ── CRM · activité commerciale par personne ───────────────────────── */
.crm-activity-page { width: min(calc(100% - 40px),var(--ux-max)); max-width: none; margin-inline: auto; }
.crm-activity-page > .crm-fiche__back { margin: 0 0 7px; padding: 4px 1px; font-size: 10px; font-weight: 700; }
.crm-actrep-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin: 0 2px 13px; }
.crm-actrep-eyebrow { display: flex; align-items: center; gap: 7px; margin-bottom: 5px; color: var(--crm-accent); font-size: 8px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.crm-actrep-eyebrow > span { width: 6px; height: 6px; border-radius: 50%; background: var(--crm-ok-dot); }
.crm-actrep-head .crm-head__title { font: 720 27px/1.08 'Outfit',sans-serif; letter-spacing: -.03em; }.crm-actrep-head .crm-head__sub { max-width: 720px; margin-top: 4px; font-size: 10px; }
.crm-actrep-controls { display: flex; align-items: center; gap: 7px; flex: none; }.crm-actrep-controls > .crm-filter { min-width: 210px; height: 38px; border-radius: 9px; font-size: 9px; font-weight: 700; }
.crm-actrep-period-select { position: absolute; width: 1px!important; min-width: 0!important; height: 1px!important; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.crm-actrep-periods { display: flex; gap: 3px; padding: 3px; border: 1px solid var(--crm-line); border-radius: 9px; background: var(--crm-card); }.crm-actrep-periods button { min-height: 30px; padding: 0 9px; border: 0; border-radius: 6px; background: transparent; color: var(--crm-ink-2); font: 750 7px 'Inter',sans-serif; cursor: pointer; }.crm-actrep-periods button.on { background: var(--crm-ink); color: var(--crm-card); }

.crm-actrep-principle { min-height: 43px; display: flex; align-items: center; gap: 9px; margin-bottom: 9px; padding: 7px 11px; border: 1px solid color-mix(in srgb,var(--crm-info-dot) 25%,var(--crm-line)); border-radius: 10px; background: var(--crm-info-bg); }.crm-actrep-principle > i { width: 27px; height: 27px; flex: none; display: grid; place-items: center; border-radius: 7px; background: var(--crm-card); color: var(--crm-info-ink); font-size: 9px; font-style: normal; font-weight: 800; }.crm-actrep-principle p { margin: 0; color: var(--crm-ink-2); font-size: 7.5px; }.crm-actrep-principle p strong { color: var(--crm-ink); }.crm-actrep-principle > div { display: flex; gap: 10px; margin-left: auto; }.crm-actrep-principle > div span { display: inline-flex; align-items: center; gap: 5px; color: var(--crm-ink-2); font-size: 6.5px; font-weight: 700; }.crm-actrep-principle > div span::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--crm-ok-dot); }.crm-actrep-principle > div span:last-child::before { background: var(--crm-accent); }

.crm-actrep-kpis-v2 { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 8px; margin-bottom: 9px; }.crm-actrep-kpi { min-width: 0; min-height: 66px; display: grid; grid-template-columns: 31px minmax(0,1fr); align-items: center; gap: 9px; padding: 9px 11px; border: 1px solid var(--crm-line); border-radius: 11px; background: var(--crm-card); box-shadow: var(--ux-shadow); }.crm-actrep-kpi > i { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 8px; background: var(--crm-card-2); color: var(--crm-ink-2); font-size: 10px; font-style: normal; }.crm-actrep-kpi--success > i { background: var(--crm-ok-bg); color: var(--crm-ok-ink); }.crm-actrep-kpi--recorded > i { background: var(--crm-accent-soft); color: var(--crm-accent); }.crm-actrep-kpi small,.crm-actrep-kpi strong,.crm-actrep-kpi em { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.crm-actrep-kpi small { color: var(--crm-ink-3); font-size: 6.5px; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; }.crm-actrep-kpi strong { margin-top: 2px; font-size: 13px; }.crm-actrep-kpi em { margin-top: 2px; color: var(--crm-ink-3); font-size: 6.5px; font-style: normal; }

.crm-actrep-rhythm-grid { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(275px,.55fr); gap: 9px; margin-bottom: 9px; }.crm-actrep-rhythm-card,.crm-actrep-coverage-card,.crm-actrep-feed,.crm-actrep-detail { min-width: 0; overflow: hidden; border: 1px solid var(--crm-line); border-radius: 11px; background: var(--crm-card); box-shadow: var(--ux-shadow); }.crm-actrep-rhythm-card > header,.crm-actrep-coverage-card > header { min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 12px; border-bottom: 1px solid var(--crm-line); }.crm-actrep-rhythm-card h2,.crm-actrep-coverage-card h2 { margin: 0; font-size: 10px; }.crm-actrep-rhythm-card header p,.crm-actrep-coverage-card header p { margin: 3px 0 0; color: var(--crm-ink-3); font-size: 6.5px; }.crm-actrep-rhythm-card header > span { color: var(--crm-ok-ink); font-size: 6.5px; font-weight: 800; }
.crm-actrep-rhythm-card .crm-actrep-bars { height: 112px; gap: 4px; padding: 13px 12px 22px; background: repeating-linear-gradient(to bottom,transparent 0 27px,var(--crm-line) 28px); }.crm-actrep-rhythm-card .crm-actrep-bar { position: relative; min-width: 2px; }.crm-actrep-rhythm-card .crm-actrep-bar > i { background: color-mix(in srgb,var(--crm-accent) 53%,var(--crm-card)); }.crm-actrep-rhythm-card .crm-actrep-bar > i > u { background: var(--crm-ok-dot); opacity: 1; }.crm-actrep-rhythm-card .crm-actrep-bar > small { position: absolute; top: calc(100% + 6px); left: 50%; color: var(--crm-ink-3); font-size: 5.5px; transform: translateX(-50%); white-space: nowrap; }
.crm-actrep-coverage { min-height: 112px; display: grid; grid-template-columns: 82px minmax(0,1fr); align-items: center; gap: 13px; padding: 11px; }.crm-actrep-donut { width: 80px; height: 80px; display: grid; place-items: center; border-radius: 50%; background: conic-gradient(var(--crm-ok-dot) 0 var(--coverage),var(--crm-card-2) var(--coverage)); }.crm-actrep-donut::before { content: ''; grid-area: 1/1; width: 56px; height: 56px; border-radius: 50%; background: var(--crm-card); }.crm-actrep-donut > span { z-index: 1; grid-area: 1/1; text-align: center; }.crm-actrep-donut b,.crm-actrep-donut small { display: block; }.crm-actrep-donut b { font-size: 12px; }.crm-actrep-donut small { margin-top: 2px; color: var(--crm-ink-3); font-size: 5.5px; }.crm-actrep-coverage-legend { display: grid; gap: 9px; }.crm-actrep-coverage-legend p { display: grid; grid-template-columns: 6px minmax(0,1fr) auto; align-items: center; gap: 6px; margin: 0; color: var(--crm-ink-2); font-size: 6.5px; }.crm-actrep-coverage-legend p > i { width: 6px; height: 6px; border-radius: 50%; background: var(--crm-ok-dot); }.crm-actrep-coverage-legend p:last-child > i { background: var(--crm-line-strong); }.crm-actrep-coverage-legend b { color: var(--crm-ink); font-size: 7px; }

.crm-actrep-workspace { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(300px,.55fr); gap: 9px; align-items: start; }.crm-actrep-feed > header { min-height: 47px; display: flex; align-items: center; gap: 8px; padding: 7px 11px; border-bottom: 1px solid var(--crm-line); }.crm-actrep-feed > header > strong { flex: none; font-size: 9px; }.crm-actrep-feed > header > div { display: flex; gap: 3px; min-width: 0; overflow-x: auto; scrollbar-width: none; }.crm-actrep-feed > header > span { margin-left: auto; color: var(--crm-ink-3); font-size: 6.5px; white-space: nowrap; }.crm-actrep-filter { min-height: 28px; display: inline-flex; align-items: center; gap: 4px; flex: none; padding: 0 8px; border: 1px solid transparent; border-radius: 999px; background: transparent; color: var(--crm-ink-3); font: 750 6.5px 'Inter',sans-serif; cursor: pointer; }.crm-actrep-filter > span { padding: 1px 4px; border-radius: 999px; background: var(--crm-card-2); color: var(--crm-ink-3); font-size: 5.5px; }.crm-actrep-filter.on { border-color: var(--crm-line); background: var(--crm-card-2); color: var(--crm-ink); }.crm-actrep-feed .crm-tl__month { min-height: 30px; display: flex; align-items: center; padding: 0 12px; background: var(--crm-card-2); color: var(--crm-ink-3); font-size: 6.5px; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; }
.crm-actrep-event { width: 100%; min-height: 63px; display: grid; grid-template-columns: 31px minmax(0,1fr) auto; align-items: center; gap: 9px; padding: 8px 12px; border: 0; border-top: 1px solid var(--crm-line); background: var(--crm-card); color: var(--crm-ink); font: inherit; text-align: left; cursor: pointer; transition: background .13s ease,box-shadow .13s ease; }.crm-actrep-event:hover { background: var(--crm-card-2); }.crm-actrep-event.on { background: var(--crm-ok-bg); box-shadow: inset 3px 0 var(--crm-ok-dot); }.crm-actrep-event--recorded.on { background: var(--crm-accent-soft); box-shadow: inset 3px 0 var(--crm-accent); }.crm-actrep-event > .crm-act__ic { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 8px; font-size: 9px; }.crm-actrep-event > span { min-width: 0; }.crm-actrep-event strong,.crm-actrep-event em,.crm-actrep-event small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.crm-actrep-event strong { font-size: 8px; }.crm-actrep-event em { margin-top: 3px; color: var(--crm-ink-2); font-size: 7px; font-style: normal; }.crm-actrep-event small { margin-top: 3px; color: var(--crm-ink-3); font-size: 6px; }.crm-actrep-event small > b { display: inline-flex; margin-right: 5px; padding: 2px 4px; border-radius: 999px; background: var(--crm-ok-bg); color: var(--crm-ok-ink); font-size: 5px; text-transform: uppercase; }.crm-actrep-event--recorded small > b { background: var(--crm-accent-soft); color: var(--crm-accent); }.crm-actrep-event > time { align-self: start; color: var(--crm-ink-3); font-size: 6px; }.crm-actrep-event .crm-act__change { display: none; }
.crm-actrep-detail { position: sticky; top: calc(var(--crm-otabs-h,0px) + 12px); }.crm-actrep-detail-cover { padding: 14px; border-bottom: 1px solid var(--crm-line); background: linear-gradient(128deg,var(--crm-ok-bg),var(--crm-card) 72%); }.crm-actrep-detail-cover > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; }.crm-actrep-detail-cover > div > span { padding: 3px 6px; border-radius: 999px; background: var(--crm-card); color: var(--crm-ok-ink); font-size: 5.5px; font-weight: 800; text-transform: uppercase; }.crm-actrep-detail-cover time { color: var(--crm-ink-3); font-size: 6px; }.crm-actrep-detail-cover h2 { margin: 8px 0 2px; font: 700 15px 'Outfit',sans-serif; }.crm-actrep-detail-cover p { margin: 0; color: var(--crm-ink-2); font-size: 7px; }.crm-actrep-detail-body { padding: 11px; }.crm-actrep-author { display: grid; grid-template-columns: 33px minmax(0,1fr); align-items: center; gap: 8px; padding-bottom: 10px; border-bottom: 1px solid var(--crm-line); }.crm-actrep-author > i { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: var(--crm-ink-2); color: var(--crm-card); font-size: 7px; font-style: normal; font-weight: 800; }.crm-actrep-author strong,.crm-actrep-author small { display: block; }.crm-actrep-author strong { font-size: 8px; }.crm-actrep-author small { margin-top: 2px; color: var(--crm-ink-3); font-size: 6px; }.crm-actrep-note,.crm-actrep-changes { margin-top: 10px; padding: 9px; border-radius: 8px; background: var(--crm-card-2); }.crm-actrep-note > small,.crm-actrep-changes > small { display: block; color: var(--crm-ink-3); font-size: 5.5px; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; }.crm-actrep-note > p { margin: 5px 0 0; font-size: 7.5px; line-height: 1.5; }.crm-actrep-changes > p { display: grid; grid-template-columns: minmax(55px,.7fr) minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: 5px; margin: 7px 0 0; font-size: 6px; }.crm-actrep-changes > p small { color: var(--crm-ink-3); }.crm-actrep-changes > p span { overflow: hidden; color: var(--crm-ink-3); text-overflow: ellipsis; white-space: nowrap; }.crm-actrep-changes > p i { color: var(--crm-ink-3); font-style: normal; }.crm-actrep-changes > p strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.crm-actrep-proof { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin-top: 10px; overflow: hidden; border: 1px solid var(--crm-line); border-radius: 8px; background: var(--crm-line); }.crm-actrep-proof p { min-width: 0; margin: 0; padding: 8px; background: var(--crm-card); }.crm-actrep-proof small,.crm-actrep-proof strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.crm-actrep-proof small { color: var(--crm-ink-3); font-size: 5.5px; }.crm-actrep-proof strong { margin-top: 3px; font-size: 6.5px; }.crm-actrep-open-store { width: 100%; min-height: 34px; margin-top: 10px; border: 1px solid var(--crm-ink); border-radius: 8px; background: var(--crm-ink); color: var(--crm-card); font: 750 7px 'Inter',sans-serif; cursor: pointer; }.crm-actrep-detail-empty { min-height: 220px; display: grid; place-items: center; padding: 20px; color: var(--crm-ink-3); font-size: 8px; }
.crm-actrep-more { margin-top: 9px; overflow: hidden; border: 1px solid var(--crm-line); border-radius: 10px; background: var(--crm-card); }.crm-actrep-more > summary { min-height: 45px; display: flex; align-items: baseline; gap: 8px; padding: 13px; font-size: 8px; font-weight: 800; cursor: pointer; }.crm-actrep-more > summary span { color: var(--crm-ink-3); font-size: 6.5px; font-weight: 500; }.crm-actrep-more > div { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; padding: 0 9px 9px; }.crm-actrep-more .crm-card { margin: 0; border-radius: 9px; box-shadow: none; }

@media (max-width: 1120px) {
  .crm-actrep-kpis-v2 { grid-template-columns: repeat(3,1fr); }.crm-actrep-kpis-v2 > :nth-child(n+4) { display: none; }.crm-actrep-rhythm-grid { grid-template-columns: 1fr; }.crm-actrep-coverage-card { display: none; }.crm-actrep-workspace { grid-template-columns: minmax(0,1fr) 290px; }
}
@media (max-width: 760px) {
  .crm-activity-page { width: min(calc(100% - 20px),var(--ux-max)); }.crm-actrep-head { align-items: flex-start; flex-direction: column; }.crm-actrep-head .crm-head__title { font-size: 23px; }.crm-actrep-controls { width: 100%; }.crm-actrep-controls > .crm-filter { min-width: 0; flex: 1; }.crm-actrep-period-select { position: static; width: auto!important; height: 36px!important; overflow: visible; clip: auto; clip-path: none; }.crm-actrep-periods { display: none; }.crm-actrep-principle { align-items: flex-start; }.crm-actrep-principle > div { display: none; }.crm-actrep-kpis-v2 { grid-template-columns: 1fr 1fr; }.crm-actrep-kpis-v2 > :nth-child(n+4) { display: grid; }.crm-actrep-kpis-v2 > :last-child { grid-column: 1 / -1; }.crm-actrep-workspace { grid-template-columns: 1fr; }.crm-actrep-detail { position: static; }.crm-actrep-feed > header { align-items: flex-start; flex-wrap: wrap; }.crm-actrep-feed > header > div { order: 3; width: 100%; }.crm-actrep-feed > header > span { margin-left: auto; }.crm-actrep-more > div { grid-template-columns: 1fr; }
}

/* ── CRM · route de visite centrée sur une journée ─────────────────── */
.crm-route-page { width: min(calc(100% - 32px),var(--ux-max)); max-width: none; margin-inline: auto; }
.crm-route-page > .crm-fiche__back { margin: 0 0 7px; padding: 4px 1px; font-size: 10px; font-weight: 700; }
.crm-rt-pagehead { display: flex; align-items: flex-end; justify-content: space-between; gap: 22px; margin: 0 2px 13px; }
.crm-rt-pagehead > div > span { display: flex; align-items: center; gap: 7px; color: var(--crm-accent); font-size: 8.5px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.crm-rt-pagehead > div > span::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--crm-ok-dot); }
.crm-rt-pagehead h1 { margin: 5px 0 0; font: 720 28px/1.06 'Outfit',sans-serif; letter-spacing: -.035em; }
.crm-rt-pagehead p { margin: 4px 0 0; color: var(--crm-ink-2); font-size: 10.5px; }
.crm-rt-pagehead > button { min-height: 38px; padding: 0 13px; border: 1px solid var(--crm-line); border-radius: 9px; background: var(--crm-card); color: var(--crm-ink); font: 700 9px 'Inter',sans-serif; cursor: pointer; box-shadow: var(--ux-shadow); }

.crm-rt-builder { min-height: 65px; display: flex; align-items: flex-end; gap: 8px; margin-bottom: 9px; padding: 9px 10px; border: 1px solid var(--crm-line); border-radius: 12px; background: var(--crm-card); box-shadow: var(--ux-shadow); }
.crm-rt-builder > label { min-width: 190px; flex: 1; }
.crm-rt-builder > label.is-small { min-width: 130px; flex: 0 1 155px; }
.crm-rt-builder > label > span:first-child { display: block; margin: 0 0 4px 2px; color: var(--crm-ink-3); font-size: 7px; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; }
.crm-rt-builder select,.crm-rt-builder input { width: 100%; height: 35px; padding: 0 9px; border: 1px solid var(--crm-line); border-radius: 8px; background: var(--crm-card-2); color: var(--crm-ink); font: 700 9px 'Inter',sans-serif; }
.crm-rt-builder input[readonly] { color: var(--crm-ink-2); }
.crm-rt-number { position: relative; display: block; }
.crm-rt-number > input { padding-right: 68px; }
.crm-rt-number > em { position: absolute; top: 50%; right: 9px; color: var(--crm-ink-3); font-size: 7px; font-style: normal; transform: translateY(-50%); pointer-events: none; }
.crm-rt-builder > button { min-width: 168px; min-height: 37px; padding: 0 14px; border: 0; border-radius: 9px; background: var(--crm-ink); color: var(--crm-card); font: 750 9px 'Inter',sans-serif; cursor: pointer; }
.crm-rt-builder > button b { color: var(--crm-chart-a); }

.crm-rt-readiness { min-height: 47px; display: flex; align-items: center; gap: 10px; margin-bottom: 9px; padding: 8px 10px; border: 1px solid color-mix(in srgb,var(--crm-ok-dot) 24%,var(--crm-line)); border-radius: 10px; background: var(--crm-ok-bg); }
.crm-rt-readiness > i { width: 29px; height: 29px; flex: none; display: grid; place-items: center; border-radius: 8px; background: var(--crm-card); color: var(--crm-ok-ink); font-size: 10px; font-style: normal; font-weight: 800; }
.crm-rt-readiness > div:nth-child(2) { min-width: 220px; }
.crm-rt-readiness strong { display: block; color: var(--crm-ink); font-size: 9px; }
.crm-rt-readiness p { margin: 3px 0 0; color: var(--crm-ink-2); font-size: 7.5px; }
.crm-rt-flow { margin-left: auto; display: flex; align-items: center; gap: 7px; color: var(--crm-ink-3); font-size: 7px; }
.crm-rt-flow b { padding: 4px 7px; border-radius: 999px; background: var(--crm-card); color: var(--crm-ok-ink); font-size: 7px; }.crm-rt-flow b:nth-of-type(2) { color: var(--crm-accent); }.crm-rt-flow em { font-style: normal; }
.crm-rt-readiness > .crm-rt-prog { max-width: 260px; margin-left: auto; }.crm-rt-readiness .crm-rt-prog__bar { height: 5px; background: color-mix(in srgb,var(--crm-card) 65%,transparent); }.crm-rt-readiness .crm-rt-prog__lbl { margin-top: 3px; font-size: 7.5px; }
.crm-rt-readiness > .crm-rt-regen { min-height: 31px; padding: 0 10px; border-color: color-mix(in srgb,var(--crm-ok-dot) 26%,var(--crm-line)); background: var(--crm-card); font-size: 8px; }

.crm-rt-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; margin-bottom: 9px; }
.crm-rt-summary > div { min-width: 0; min-height: 64px; display: grid; grid-template-columns: 32px minmax(0,1fr); align-items: center; gap: 9px; padding: 9px 11px; border: 1px solid var(--crm-line); border-radius: 11px; background: var(--crm-card); box-shadow: var(--ux-shadow); }
.crm-rt-summary > div > i { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 9px; background: var(--crm-card-2); color: var(--crm-ink-2); font-size: 10px; font-style: normal; font-weight: 800; }
.crm-rt-summary > .is-success > i { background: var(--crm-ok-bg); color: var(--crm-ok-ink); }.crm-rt-summary > .is-priority > i { background: var(--crm-accent-soft); color: var(--crm-accent); }
.crm-rt-summary small,.crm-rt-summary b,.crm-rt-summary em { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.crm-rt-summary small { color: var(--crm-ink-3); font-size: 7px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }.crm-rt-summary b { margin-top: 2px; font-size: 12px; }.crm-rt-summary em { margin-top: 2px; color: var(--crm-ink-3); font-size: 7px; font-style: normal; }

.crm-rt-daytabs { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 7px; margin-bottom: 9px; }
.crm-rt-daytab { min-width: 0; min-height: 62px; display: grid; grid-template-columns: 7px minmax(0,1fr) auto; align-items: center; gap: 8px; padding: 8px 9px; border: 1px solid var(--crm-line); border-radius: 10px; background: var(--crm-card); color: var(--crm-ink); font: inherit; text-align: left; cursor: pointer; box-shadow: var(--ux-shadow); }
.crm-rt-daytab > i { width: 6px; height: 34px; border-radius: 4px; background: var(--crm-line-strong); }.crm-rt-daytab.is-frozen > i { background: var(--crm-ok-dot); }.crm-rt-daytab.is-draft > i { background: var(--crm-accent); }.crm-rt-daytab.on { border-color: var(--crm-ink); box-shadow: inset 0 0 0 1px var(--crm-ink); }
.crm-rt-daytab small,.crm-rt-daytab strong,.crm-rt-daytab em { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.crm-rt-daytab small { color: var(--crm-ink-3); font-size: 7px; font-weight: 750; text-transform: uppercase; }.crm-rt-daytab strong { margin-top: 3px; font-size: 9px; }.crm-rt-daytab em { margin-top: 3px; color: var(--crm-ink-3); font-size: 7px; font-style: normal; }.crm-rt-daytab > b { align-self: start; padding: 3px 5px; border-radius: 999px; background: var(--crm-card-2); color: var(--crm-ink-3); font-size: 6px; text-transform: uppercase; }.crm-rt-daytab.is-frozen > b { background: var(--crm-ok-bg); color: var(--crm-ok-ink); }.crm-rt-daytab.is-draft > b { background: var(--crm-accent-soft); color: var(--crm-accent); }

.crm-rt-workspace { min-height: 500px; display: grid; grid-template-columns: minmax(0,1.55fr) minmax(390px,.65fr); gap: 9px; align-items: stretch; }
.crm-rt-map-panel,.crm-rt-day-panel { min-width: 0; overflow: hidden; border: 1px solid var(--crm-line); border-radius: 12px; background: var(--crm-card); box-shadow: var(--ux-shadow); }
.crm-rt-map-panel > header { min-height: 55px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 12px; border-bottom: 1px solid var(--crm-line); }.crm-rt-map-panel h2 { margin: 0; font-size: 11px; }.crm-rt-map-panel header p { margin: 3px 0 0; color: var(--crm-ink-3); font-size: 7.5px; }.crm-rt-map-panel header a { padding: 7px 9px; border: 1px solid var(--crm-line); border-radius: 8px; color: var(--crm-accent); font-size: 7.5px; font-weight: 750; text-decoration: none; white-space: nowrap; }
.crm-rt-map-stage { position: relative; min-height: 444px; }.crm-rt-map-stage > .crm-rt-map { height: 444px; margin: 0; border: 0; border-radius: 0; box-shadow: none; }
.crm-rt-stop-context { position: absolute; z-index: 510; left: 12px; bottom: 12px; width: min(390px,calc(100% - 24px)); padding: 11px; border: 1px solid var(--crm-line-strong); border-radius: 11px; background: color-mix(in srgb,var(--crm-card) 95%,transparent); box-shadow: 0 12px 30px rgba(40,34,24,.14); backdrop-filter: blur(10px); }
.crm-rt-stop-context__top { display: grid; grid-template-columns: 30px minmax(0,1fr) auto; align-items: start; gap: 9px; }.crm-rt-stop-context__top > span { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 50%; background: var(--crm-accent); color: var(--crm-accent-ink); font-size: 8px; font-weight: 800; }.crm-rt-stop-context__top h3 { margin: 1px 0 0; font-size: 10px; }.crm-rt-stop-context__top p { margin: 3px 0 0; color: var(--crm-ink-3); font-size: 7.5px; }.crm-rt-stop-context__top > .crm-seg-badge { margin-top: 1px; }
.crm-rt-stop-context__note { margin-top: 8px; padding: 8px 9px; border-left: 3px solid var(--crm-line-strong); border-radius: 7px; background: var(--crm-card-2); }.crm-rt-stop-context__note.has-note { border-left-color: var(--crm-info-dot); background: var(--crm-info-bg); }.crm-rt-stop-context__note small { color: var(--crm-ink-3); font-size: 6.5px; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; }.crm-rt-stop-context__note p { margin: 4px 0 0; color: var(--crm-ink-2); font-size: 8px; line-height: 1.45; }.crm-rt-stop-context__note em { display: block; margin-top: 4px; color: var(--crm-ink-3); font-size: 6.5px; font-style: normal; }
.crm-rt-stop-context__actions { display: grid; grid-template-columns: 1fr 1.25fr; gap: 6px; margin-top: 8px; }.crm-rt-stop-context__actions button { min-height: 31px; border: 1px solid var(--crm-line); border-radius: 8px; background: var(--crm-card); color: var(--crm-ink); font: 750 7.5px 'Inter',sans-serif; cursor: pointer; }.crm-rt-stop-context__actions button.is-primary { border-color: var(--crm-ink); background: var(--crm-ink); color: var(--crm-card); }.crm-rt-stop-context__empty { min-height: 70px; display: grid; place-items: center; color: var(--crm-ink-3); font-size: 8px; }

.crm-rt-day-panel > .crm-rt-day { height: 100%; border: 0; border-radius: 0; padding: 0; box-shadow: none; }.crm-rt-day--focus { display: flex; flex-direction: column; }.crm-rt-day--focus.is-frozen { border: 0; box-shadow: inset 3px 0 var(--crm-ok-dot); }
.crm-rt-day__h--focus { min-height: 55px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 11px; border-bottom: 1px solid var(--crm-line); }.crm-rt-day__h--focus > div { display: flex; align-items: center; gap: 8px; }.crm-rt-day__h--focus > div:last-child { justify-content: flex-end; text-align: right; }.crm-rt-day__h--focus span > b,.crm-rt-day__h--focus span > small,.crm-rt-day__h--focus div:last-child > strong,.crm-rt-day__h--focus div:last-child > small { display: block; }.crm-rt-day__h--focus span > b { font-size: 10px; }.crm-rt-day__h--focus span > small,.crm-rt-day__h--focus div:last-child > small { margin-top: 3px; color: var(--crm-ink-3); font-size: 7px; }.crm-rt-day__h--focus div:last-child > strong { color: var(--crm-accent); font-size: 6.5px; text-transform: uppercase; }.crm-rt-day__h--focus .crm-rt-day__dot { width: 7px; height: 34px; border-radius: 4px; }
.crm-rt-stops-wrap { min-height: 0; flex: 1; overflow-y: auto; }.crm-rt-day--focus .crm-rt-stops { margin: 0; }.crm-rt-day--focus .crm-rt-stop { min-height: 62px; gap: 5px; padding: 7px 8px; border-bottom: 1px solid var(--crm-line); border-radius: 0; }.crm-rt-day--focus .crm-rt-stop:hover { background: var(--crm-card-2); }.crm-rt-day--focus .crm-rt-stop.is-selected { background: var(--crm-accent-soft); box-shadow: inset 3px 0 var(--crm-accent); }.crm-rt-day--focus .crm-rt-stop__n { width: 25px; height: 25px; font-size: 8px; }.crm-rt-day--focus .crm-rt-stop__name { font-size: 9px; font-weight: 750; }.crm-rt-day--focus .crm-rt-note { max-width: 100%; padding: 3px 5px; border-left-width: 2px; }.crm-rt-day--focus .crm-rt-note__t { font-size: 7px; -webkit-line-clamp: 1; max-height: 1.4em; }.crm-rt-day--focus .crm-rt-note__m { display: none; }.crm-rt-day--focus .crm-seg-badge { padding: 2px 5px; font-size: 6px; }.crm-rt-day--focus .crm-rt-stop__note,.crm-rt-day--focus .crm-rt-stop__info,.crm-rt-day--focus .crm-rt-stop__move,.crm-rt-day--focus .crm-rt-stop__rm { padding: 3px; font-size: 9px; }
.crm-rt-day__foot { min-height: 57px; display: flex; align-items: center; gap: 6px; padding: 8px; border-top: 1px solid var(--crm-line); background: var(--crm-card-2); }.crm-rt-day__foot .crm-rt-add { min-width: 0; flex: 1; margin: 0; padding: 0; border: 0; }.crm-rt-day__foot .crm-rt-add__in { min-width: 0; height: 34px; background: var(--crm-card); font-size: 8px; }.crm-rt-day__foot .crm-rt-add__btn { height: 34px; padding: 0 9px; font-size: 8px; }.crm-rt-day__foot .crm-rt-daybtn { min-height: 34px; margin: 0; padding: 0 9px; border-color: var(--crm-accent); background: var(--crm-accent); color: var(--crm-accent-ink); font-size: 8px; }
.crm-rt-extras { margin-top: 9px; }.crm-rt-extras:empty { display: none; }

@media (max-width: 1120px) {
  .crm-rt-builder > label { min-width: 150px; }.crm-rt-builder > label.is-small { min-width: 104px; }.crm-rt-builder > button { min-width: 140px; }.crm-rt-summary { grid-template-columns: 1fr 1fr; }.crm-rt-workspace { grid-template-columns: minmax(0,1fr) 350px; }.crm-rt-daytab strong { font-size: 8px; }
}
@media (max-width: 820px) {
  .crm-route-page { width: min(calc(100% - 20px),var(--ux-max)); }.crm-rt-pagehead { align-items: flex-start; }.crm-rt-pagehead h1 { font-size: 24px; }.crm-rt-pagehead p { max-width: 520px; }.crm-rt-builder { display: grid; grid-template-columns: 1fr 1fr; align-items: end; }.crm-rt-builder > label,.crm-rt-builder > label.is-small { min-width: 0; }.crm-rt-builder > button { width: 100%; grid-column: 1 / -1; }.crm-rt-readiness { align-items: flex-start; flex-wrap: wrap; }.crm-rt-flow { order: 3; width: 100%; margin-left: 39px; }.crm-rt-readiness > .crm-rt-prog { margin-left: auto; }.crm-rt-daytabs { display: flex; overflow-x: auto; scrollbar-width: none; }.crm-rt-daytab { min-width: 165px; }.crm-rt-workspace { grid-template-columns: 1fr; }.crm-rt-map-stage { min-height: 0; }.crm-rt-map-stage > .crm-rt-map { height: 340px; }.crm-rt-stop-context { position: static; width: auto; margin: 9px; }.crm-rt-day-panel { min-height: 430px; }
}
@media (max-width: 560px) {
  .crm-rt-pagehead { flex-direction: column; }.crm-rt-pagehead > button { width: 100%; }.crm-rt-summary { grid-template-columns: 1fr 1fr; }.crm-rt-summary > div { grid-template-columns: 1fr; }.crm-rt-summary > div > i { display: none; }.crm-rt-map-panel > header { align-items: flex-start; flex-direction: column; }.crm-rt-map-panel header a { width: 100%; text-align: center; }.crm-rt-day__foot { align-items: stretch; flex-direction: column; }.crm-rt-day__foot .crm-rt-daybtn { width: 100%; }.crm-rt-stop-context__actions { grid-template-columns: 1fr; }
}

/* ── CRM · accueil décisionnel maître-détail ────────────────────────── */
.crm-ck { width: min(calc(100% - 32px),var(--ux-max)); max-width: none; margin-inline: auto; }
.crm-ck-page-head { align-items: flex-end; gap: 22px; margin: 0 2px 12px; }
.crm-ck-heading > span { display: flex; align-items: center; gap: 7px; color: var(--crm-accent); font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.crm-ck-heading > span::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--crm-ok-dot); }.crm-ck-heading h1 { margin: 5px 0 0; font: 720 28px/1.06 'Outfit',sans-serif; letter-spacing: -.035em; }.crm-ck-heading p { margin: 4px 0 0; color: var(--crm-ink-2); font-size: 11px; }.crm-ck-page-head .crm-filter { min-width: 210px; height: 39px; border-radius: 9px; font-size: 10px; font-weight: 700; }
.crm-ck-chips { min-height: 47px; align-items: center; gap: 4px; margin: 0 0 9px; padding: 5px 6px; overflow: visible; border: 1px solid var(--crm-line); border-radius: 11px; background: var(--crm-card); box-shadow: var(--ux-shadow); }.crm-ck-chips > span { flex: none; padding: 0 8px 0 5px; color: var(--crm-ink-3); font-size: 8px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }.crm-ck .crm-ck-chip { min-height: 32px; padding: 0 10px; border: 0; border-radius: 7px; background: transparent; box-shadow: none; color: var(--crm-ink-2); font-size: 9px; font-weight: 700; }.crm-ck .crm-ck-chip:hover { background: var(--crm-card-2); color: var(--crm-ink); transform: none; box-shadow: none; }
.crm-ck-more { position: relative; margin-left: auto; }.crm-ck-more > summary { min-height: 32px; display: flex; align-items: center; padding: 0 10px; border-radius: 7px; color: var(--crm-ink-2); font-size: 9px; font-weight: 700; cursor: pointer; list-style: none; }.crm-ck-more > summary::-webkit-details-marker { display: none; }.crm-ck-more > summary:hover,.crm-ck-more[open] > summary { background: var(--crm-card-2); color: var(--crm-ink); }.crm-ck-more > div { position: absolute; z-index: 520; top: calc(100% + 5px); right: 0; width: 205px; display: grid; gap: 2px; padding: 6px; border: 1px solid var(--crm-line); border-radius: 10px; background: var(--crm-card); box-shadow: var(--crm-shadow-lift); }.crm-ck-more > div .crm-ck-chip { width: 100%; justify-content: flex-start; }

.crm-ck-territory-strip { min-height: 64px; display: grid; grid-template-columns:minmax(230px,.85fr) auto minmax(340px,1.15fr); align-items: center; gap: 14px; margin-bottom: 9px; padding: 9px 11px; border: 1px solid var(--crm-line); border-radius: 11px; background: linear-gradient(102deg,var(--crm-card),color-mix(in srgb,var(--crm-accent-soft) 52%,var(--crm-card))); box-shadow: var(--ux-shadow); }.crm-ck-territory-copy { min-width: 0; display: grid; grid-template-columns: 34px minmax(0,1fr); align-items: center; gap: 9px; }.crm-ck-territory-copy > i { width: 34px; height: 34px; display: grid; place-items:center; border-radius: 10px; background: var(--crm-ok-bg); color: var(--crm-ok-ink); font-style: normal; font-weight: 800; }.crm-ck-territory-copy small,.crm-ck-territory-copy strong,.crm-ck-territory-copy em { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.crm-ck-territory-copy small { color: var(--crm-accent); font-size: 7px; font-weight: 800; text-transform: uppercase; }.crm-ck-territory-copy strong { margin-top: 2px; font-size: 10px; }.crm-ck-territory-copy em { margin-top: 2px; color: var(--crm-ink-3); font-size: 7.5px; font-style: normal; }
.crm-ck-territory-strip .crm-ck-segs { flex-wrap: nowrap; gap: 5px; margin: 0; }.crm-ck-territory-strip .crm-ck-seg { gap: 3px; padding: 4px 5px; border: 1px solid var(--crm-line); border-radius: 7px; background: var(--crm-card); font-size: 7px; }.crm-ck-territory-strip .crm-seg-badge { padding: 2px 5px; font-size: 6px; }
.crm-ck-data { min-width: 0; display: flex; align-items: center; justify-content: flex-end; gap: 11px; padding-left: 12px; border-left: 1px solid var(--crm-line); }.crm-ck-data > span { min-width: 120px; }.crm-ck-data > span b,.crm-ck-data > span small { display: block; }.crm-ck-data > span b { font-size: 8px; }.crm-ck-data > span small { margin-top: 2px; color: var(--crm-ink-3); font-size: 6.5px; }.crm-ck-data .crm-ck-fresh { justify-content: flex-end; gap: 4px 9px; margin: 0; }.crm-ck-data .crm-ck-fresh__i { font-size: 7px; }.crm-ck-data .crm-ck-fresh__i b { font-size: 6px; }

.crm-ck-search-area { position: relative; z-index: 30; margin-bottom: 9px; }.crm-ck-search-area .crm-ck-search { position: static; height: 43px; margin: 0; padding-inline: 12px; border-radius: 10px; box-shadow: var(--ux-shadow); }.crm-ck-search-area .crm-ck-search input { font-size: 11px; font-weight: 550; }.crm-ck-search-area .crm-ck-results { position: absolute; z-index: 30; top: calc(100% + 5px); left: 0; right: 0; margin: 0; border-radius: 10px; }.crm-ck-search-area .crm-ck-res__main { padding: 9px 11px; }.crm-ck-search-area .crm-ck-res__name { font-size: 10px; }.crm-ck-search-area .crm-ck-res__city { font-size: 8px; }.crm-ck-search-area .crm-ck-res__add { width: 36px; }
.crm-ck .crm-ck-kpis { gap: 8px; margin-bottom: 9px; }.crm-ck .crm-ck-kpi { min-height: 65px; padding: 9px 10px; border-radius: 11px; box-shadow: var(--ux-shadow); }.crm-ck .crm-ck-kpi:hover { transform: translateY(-1px); }.crm-ck .crm-ck-kpi__n { font-size: 17px; }.crm-ck .crm-ck-kpi__l { margin-top: 3px; font-size: 8px; }
.crm-ck-focus { min-height: 59px; display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 10px; margin-bottom: 9px; padding: 8px 10px; border: 1px solid color-mix(in srgb,var(--crm-accent) 27%,var(--crm-line)); border-radius: 11px; background: linear-gradient(100deg,var(--crm-accent-soft),var(--crm-card)); box-shadow: var(--ux-shadow); }.crm-ck-focus > i { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 9px; background: var(--crm-card); color: var(--crm-accent); font-style: normal; }.crm-ck-focus small { display:block; color: var(--crm-accent); font-size: 6px; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; }.crm-ck-focus strong { display: block; margin-top: 2px; font-size: 9px; }.crm-ck-focus p { margin: 3px 0 0; color: var(--crm-ink-2); font-size: 7.5px; }.crm-ck-focus button { min-height: 33px; padding: 0 11px; border: 0; border-radius: 8px; background: var(--crm-ink); color: var(--crm-card); font: 750 7.5px 'Inter',sans-serif; cursor: pointer; }

.crm-ck .crm-ck-dashboard { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(320px,.55fr); gap: 9px; margin-bottom: 9px; align-items: stretch; }.crm-ck-priority-list,.crm-ck-priority-detail,.crm-ck-territory-map,.crm-ck-top-panel { min-width: 0; overflow: hidden; border: 1px solid var(--crm-line); border-radius: 11px; background: var(--crm-card); box-shadow: var(--ux-shadow); }.crm-ck-priority-list > header,.crm-ck-territory-map > header,.crm-ck-top-panel > header { min-height: 50px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 11px; border-bottom: 1px solid var(--crm-line); }.crm-ck-priority-list h2,.crm-ck-territory-map h2,.crm-ck-top-panel h2 { margin: 0; font-size: 10px; }.crm-ck-priority-list header p,.crm-ck-territory-map header p,.crm-ck-top-panel header p { margin: 3px 0 0; color: var(--crm-ink-3); font-size: 6.5px; }.crm-ck-priority-list header > span,.crm-ck-territory-map header > span { min-width: 24px; padding: 4px 7px; border-radius: 999px; background: var(--crm-accent-soft); color: var(--crm-accent); font-size: 6.5px; font-weight: 800; text-align: center; }
.crm-ck-priority-row { width: 100%; min-height: 54px; display: grid; grid-template-columns: 28px 24px minmax(0,1fr) auto 12px; align-items: center; gap: 7px; padding: 7px 10px; border: 0; border-top: 1px solid var(--crm-line); background: var(--crm-card); color: var(--crm-ink); font: inherit; text-align: left; cursor: pointer; }.crm-ck-priority-row:hover { background: var(--crm-card-2); }.crm-ck-priority-row.on { background: var(--crm-accent-soft); box-shadow: inset 3px 0 var(--crm-accent); }.crm-ck-priority-rank { color: var(--crm-ink-3); font-size: 7px; }.crm-ck-priority-copy { min-width: 0; }.crm-ck-priority-copy strong,.crm-ck-priority-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.crm-ck-priority-copy strong { font-size: 8.5px; }.crm-ck-priority-copy small { margin-top: 3px; color: var(--crm-ink-2); font-size: 7px; }.crm-ck-priority-tag { max-width: 105px; overflow: hidden; padding: 3px 6px; border: 1px solid var(--crm-line); border-radius: 999px; color: var(--crm-ink-2); font-size: 6px; text-overflow: ellipsis; white-space: nowrap; }.crm-ck-priority-row > i { color: var(--crm-ink-3); font-size: 12px; font-style: normal; }
.crm-ck-priority-detail { align-self: stretch; }.crm-ck-priority-cover { padding: 13px; border-bottom: 1px solid var(--crm-line); background: linear-gradient(128deg,var(--crm-ok-bg),var(--crm-card) 75%); }.crm-ck-priority-cover > span { color: var(--crm-ok-ink); font-size: 6px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }.crm-ck-priority-cover > div { display: flex; align-items: center; gap: 7px; margin-top: 7px; }.crm-ck-priority-cover h2 { min-width: 0; margin: 0; overflow: hidden; font: 700 15px 'Outfit',sans-serif; text-overflow: ellipsis; white-space: nowrap; }.crm-ck-priority-cover p { margin: 3px 0 0; color: var(--crm-ink-3); font-size: 7px; }.crm-ck-priority-body { padding: 11px; }.crm-ck-priority-body > section { padding: 9px; border-radius: 8px; background: var(--crm-card-2); }.crm-ck-priority-body > section + section { margin-top: 7px; }.crm-ck-priority-body > section.is-recommendation { border-left: 3px solid var(--crm-accent); background: var(--crm-accent-soft); }.crm-ck-priority-body section small { display: block; color: var(--crm-ink-3); font-size: 5.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }.crm-ck-priority-body section p { margin: 5px 0 0; font-size: 7.5px; line-height: 1.45; }.crm-ck-priority-warning { margin-top: 7px; padding: 7px 8px; border-radius: 7px; background: var(--crm-warn-bg); color: var(--crm-warn-ink); font-size: 6.5px; }.crm-ck-priority-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; margin-top: 9px; }.crm-ck-priority-actions button,.crm-ck-priority-actions a { min-height: 31px; display: flex; align-items: center; justify-content: center; gap: 5px; padding: 0 8px; border: 1px solid var(--crm-line); border-radius: 8px; background: var(--crm-card); color: var(--crm-ink); font: 750 6.5px 'Inter',sans-serif; text-decoration: none; cursor: pointer; }.crm-ck-priority-actions .main { grid-column: 1/-1; border-color: var(--crm-ink); background: var(--crm-ink); color: var(--crm-card); }.crm-ck-priority-detail.is-empty { min-height: 220px; display: grid; place-content: center; justify-items: center; padding: 20px; color: var(--crm-ink-3); text-align: center; }.crm-ck-priority-detail.is-empty > span { width: 36px; height: 36px; display: grid; place-items:center; border-radius: 10px; background: var(--crm-ok-bg); color: var(--crm-ok-ink); }.crm-ck-priority-detail.is-empty strong { margin-top: 9px; color: var(--crm-ink); font-size: 9px; }.crm-ck-priority-detail.is-empty p { max-width: 220px; margin: 4px 0 0; font-size: 7px; line-height: 1.45; }

.crm-ck-territory-grid { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(300px,.55fr); gap: 9px; align-items: start; }.crm-ck-territory-map .crm-ck-maplegend { min-height: 35px; align-items: center; gap: 7px; margin: 0; padding: 4px 10px; border-bottom: 1px solid var(--crm-line); }.crm-ck-territory-map .crm-ck-legbtn { min-height: 25px; padding: 0 7px; border-radius: 7px; font-size: 7px; }.crm-ck-territory-map .crm-ck-map { height: 330px; margin: 0; border: 0; border-radius: 0; box-shadow: none; }.crm-ck-top-panel > .crm-top { padding: 4px 10px 10px; }.crm-ck-top-panel .crm-top__row { min-height: 49px; align-content: center; padding: 7px 2px; border-bottom: 1px solid var(--crm-line); cursor: pointer; }.crm-ck-top-panel .crm-top__name { font-size: 8px; }.crm-ck-top-panel .crm-top__city { color: var(--crm-ink-3); font-size: 6.5px; }.crm-ck-top-panel .crm-top__units { font-size: 7px; }.crm-ck-top-panel .crm-top__bar { height: 4px; }

@media (max-width: 1120px) {
  .crm-ck-territory-strip { grid-template-columns: minmax(220px,1fr) auto; }.crm-ck-data { grid-column: 1/-1; justify-content: flex-start; padding: 8px 0 0; border-top: 1px solid var(--crm-line); border-left: 0; }.crm-ck-data .crm-ck-fresh { justify-content: flex-start; }
  .crm-ck .crm-ck-dashboard { grid-template-columns: minmax(0,1fr) 285px; }.crm-ck-territory-grid { grid-template-columns: minmax(0,1fr) 270px; }
}
@media (max-width: 820px) {
  .crm-ck { width: min(calc(100% - 20px),var(--ux-max)); }.crm-ck-page-head { align-items: flex-start; }.crm-ck-heading h1 { font-size: 24px; }.crm-ck-chips { overflow-x: auto; scrollbar-width: none; }.crm-ck-chips > span { display: none; }.crm-ck-more { position: static; margin-left: 0; }.crm-ck-more > div { right: 8px; }
  .crm-ck .crm-ck-kpis { grid-template-columns: repeat(3,1fr); }.crm-ck .crm-ck-dashboard { grid-template-columns: minmax(0,1fr) 265px; }.crm-ck-territory-grid { grid-template-columns: 1fr; }.crm-ck-top-panel { display: none; }
}
@media (max-width: 620px) {
  .crm-ck-page-head { flex-direction: column; }.crm-ck-page-head .crm-ck-top__r,.crm-ck-page-head .crm-filter { width: 100%; }.crm-ck-territory-strip { grid-template-columns: 1fr; }.crm-ck-territory-strip .crm-ck-segs { overflow-x: auto; }.crm-ck-data { grid-column: auto; }.crm-ck-data > span { display: none; }.crm-ck .crm-ck-kpis { grid-template-columns: 1fr 1fr; }.crm-ck-focus { grid-template-columns: 32px minmax(0,1fr); }.crm-ck-focus > button { grid-column: 1/-1; }.crm-ck .crm-ck-dashboard { grid-template-columns: 1fr; }.crm-ck-priority-detail { min-height: 270px; }.crm-ck-priority-tag { display: none; }.crm-ck-priority-row { grid-template-columns: 25px 23px minmax(0,1fr) 10px; }.crm-ck-priority-row > span:empty { display: none; }.crm-ck-territory-map .crm-ck-map { height: 280px; }
}

/* CRM accueil — lisibilité et confinement Leaflet
   11 px est le plancher pour les métadonnées; l'information/action reste à
   12–14 px. Les panneaux de carte vivent dans leur propre contexte afin que
   les z-index Leaflet ne puissent jamais passer devant une autre application. */
.crm-ck-territory-map,.crm-ck-map,.crm-rt-map-panel,.crm-rt-map-stage,.crm-rt-map { position: relative; isolation: isolate; overflow: hidden; }
#crm-view.hidden .leaflet-container,#crm-view.hidden .leaflet-pane { display: none !important; }

.crm-ck-heading > span { font-size: 11px; }
.crm-ck-heading p { font-size: 14px; }
.crm-ck-page-head .crm-filter { height: 44px; font-size: 13px; }
.crm-ck-chips { min-height: 54px; }
.crm-ck-chips > span { font-size: 10px; }
.crm-ck .crm-ck-chip,.crm-ck-more > summary { min-height: 38px; font-size: 12px; }
.crm-ck-territory-strip { min-height: 78px; }
.crm-ck-territory-copy { grid-template-columns: 40px minmax(0,1fr); }
.crm-ck-territory-copy > i { width: 40px; height: 40px; }
.crm-ck-territory-copy small { font-size: 10px; }
.crm-ck-territory-copy strong { font-size: 13px; }
.crm-ck-territory-copy em { font-size: 11px; }
.crm-ck-territory-strip .crm-ck-seg { padding: 5px 7px; font-size: 10.5px; }
.crm-ck-territory-strip .crm-seg-badge { font-size: 9px; }
.crm-ck-data > span b { font-size: 11px; }
.crm-ck-data > span small { font-size: 10px; }
.crm-ck-data .crm-ck-fresh__i { font-size: 10.5px; }
.crm-ck-data .crm-ck-fresh__i b { font-size: 9px; }
.crm-ck-search-area .crm-ck-search { height: 50px; }
.crm-ck-search-area .crm-ck-search input { font-size: 14px; }
.crm-ck-search-area .crm-ck-res__name { font-size: 13px; }
.crm-ck-search-area .crm-ck-res__city { font-size: 11px; }
.crm-ck .crm-ck-kpi { min-height: 78px; padding: 12px 13px; }
.crm-ck .crm-ck-kpi__n { font-size: 23px; }
.crm-ck .crm-ck-kpi__l { font-size: 11.5px; }
.crm-ck-focus { min-height: 72px; padding: 10px 12px; }
.crm-ck-focus small { font-size: 9px; }
.crm-ck-focus strong { font-size: 13px; }
.crm-ck-focus p { font-size: 11px; }
.crm-ck-focus button { min-height: 40px; font-size: 11.5px; }
.crm-ck-priority-list > header,.crm-ck-territory-map > header,.crm-ck-top-panel > header { min-height: 62px; padding: 10px 13px; }
.crm-ck-priority-list h2,.crm-ck-territory-map h2,.crm-ck-top-panel h2 { font-size: 14px; }
.crm-ck-priority-list header p,.crm-ck-territory-map header p,.crm-ck-top-panel header p { font-size: 11px; }
.crm-ck-priority-list header > span,.crm-ck-territory-map header > span { font-size: 10.5px; }
.crm-ck-priority-row { min-height: 68px; grid-template-columns: 32px 28px minmax(0,1fr) auto 14px; gap: 9px; padding: 9px 12px; }
.crm-ck-priority-rank { font-size: 10px; }
.crm-ck-priority-copy strong { font-size: 12.5px; }
.crm-ck-priority-copy small { font-size: 11px; }
.crm-ck-priority-tag { max-width: 130px; font-size: 10px; }
.crm-ck-priority-row > i { font-size: 16px; }
.crm-ck-priority-cover { padding: 16px; }
.crm-ck-priority-cover > span { font-size: 9px; }
.crm-ck-priority-cover h2 { font-size: 18px; }
.crm-ck-priority-cover p { font-size: 11px; }
.crm-ck-priority-body { padding: 13px; }
.crm-ck-priority-body > section { padding: 11px; }
.crm-ck-priority-body section small { font-size: 9px; }
.crm-ck-priority-body section p { font-size: 11.5px; }
.crm-ck-priority-warning { font-size: 11px; }
.crm-ck-priority-actions button,.crm-ck-priority-actions a { min-height: 38px; font-size: 11.5px; }
.crm-ck-priority-detail.is-empty strong { font-size: 13px; }
.crm-ck-priority-detail.is-empty p { font-size: 11px; }
.crm-ck-territory-map .crm-ck-legbtn { min-height: 31px; font-size: 10.5px; }
.crm-ck-top-panel .crm-top__row { min-height: 62px; }
.crm-ck-top-panel .crm-top__name { font-size: 12px; }
.crm-ck-top-panel .crm-top__city { font-size: 10.5px; }
.crm-ck-top-panel .crm-top__units { font-size: 11px; }

@media (max-width: 620px) {
  .crm-ck-heading p { font-size: 13px; }
  .crm-ck-priority-row { grid-template-columns: 28px 26px minmax(0,1fr) 12px; }
  .crm-ck-focus > button { width: 100%; }
}

/* CRM secondaire — plancher typographique commun
   Les vues opérationnelles restent denses, mais aucun contenu utile ne doit
   dépendre d'un texte inférieur à 10 px. Les libellés, contenus et actions
   se placent respectivement autour de 10, 11–13 et 11,5–12 px. */

/* Statistiques */
.crm-stats-v2 > .crm-fiche__back { font-size: 12px; }
.crm-stx-pagehead > div:first-child > span { font-size: 10px; }
.crm-stx-pagehead p { font-size: 13px; }
.crm-stx-controls > .crm-filter { height: 42px; font-size: 12px; }
.crm-stx-periods button { min-height: 34px; font-size: 11px; }
.crm-stx-truth { min-height: 60px; padding: 9px 12px; }
.crm-stx-truth strong { font-size: 12px; }
.crm-stx-truth p { font-size: 11px; }
.crm-stx-sources small { font-size: 10px; }
.crm-stx-sources b { font-size: 11px; }
.crm-stx-kpi { min-height: 78px; padding: 10px 12px; }
.crm-stx-kpi small { font-size: 10px; }
.crm-stx-kpi strong { font-size: 17px; }
.crm-stx-kpi em { min-height: 14px; font-size: 10.5px; }
.crm-stx-signal { min-height: 72px; padding: 10px 12px; }
.crm-stx-signal small { font-size: 10px; }
.crm-stx-signal strong { font-size: 13px; }
.crm-stx-signal p { font-size: 11px; }
.crm-stx-signal > button { min-height: 38px; font-size: 11.5px; }
.crm-stx-card > header,.crm-stx-store-main > header { min-height: 60px; padding: 10px 13px; }
.crm-stx-card h2,.crm-stx-store-main > header h2 { font-size: 13.5px; }
.crm-stx-card header p,.crm-stx-store-main > header p { font-size: 10.5px; }
.crm-stx-trend > header > .crm-delta { font-size: 10px; }
.crm-stx-trend .crm-chart .lbl,.crm-stx-trend .crm-chart .val { font-size: 9.5px; }
.crm-stx-donut small { font-size: 10px; }
.crm-stx-mix-list .crm-seg-badge { font-size: 10px; }
.crm-stx-mix-list span:nth-child(2) { font-size: 10.5px; }
.crm-stx-mix-list b { font-size: 11px; }
.crm-stx-mode button { min-height: 32px; font-size: 10.5px; }
.crm-stx-store-head { min-height: 32px; font-size: 10px; }
.crm-stx-store { min-height: 60px; }
.crm-stx-rank { font-size: 10px; }
.crm-stx-store-name strong { font-size: 12px; }
.crm-stx-store-name small { font-size: 10.5px; }
.crm-stx-store > b { font-size: 11.5px; }
.crm-stx-store-cover { padding: 15px; }
.crm-stx-store-cover > small { font-size: 10px; }
.crm-stx-store-cover h3 { font-size: 17px; }
.crm-stx-store-cover .crm-seg-badge { font-size: 10px; }
.crm-stx-store-cover > p { font-size: 11px; }
.crm-stx-store-stats > span { padding: 9px; }
.crm-stx-store-stats small { font-size: 10px; }
.crm-stx-store-stats b { font-size: 12px; }
.crm-stx-store-actions button { min-height: 38px; font-size: 11.5px; }
.crm-stx-store-detail.is-empty { font-size: 11px; }
.crm-stx-more > button { min-height: 52px; }
.crm-stx-more > button strong { font-size: 12px; }
.crm-stx-more > button span { font-size: 10.5px; }
.crm-stx-more-grid .crm-section__label { font-size: 11.5px; }
.crm-stx-more-grid .crm-stats-hint { font-size: 10.5px; }
.crm-stx-more-grid .crm-top__name,.crm-stx-more-grid .crm-top__units { font-size: 11px; }

/* Répertoire commercial */
.crm-dir-actions-menu > div button { min-height: 40px; font-size: 11.5px; }
.crm-dir-summary > div { min-height: 78px; }
.crm-dir-summary small,.crm-dir-summary em { font-size: 10.5px; }
.crm-dir-summary .crm-dir-daily strong { font-size: 13px; }
.crm-directory-v2 .crm-dir-toolbar { min-height: 61px; }
.crm-directory-v2 .crm-dir-toolbar .crm-search { height: 42px; }
.crm-directory-v2 .crm-dir-toolbar .crm-search input { font-size: 12.5px; }
.crm-dir-focus button,.crm-dir-filter-toggle { min-height: 38px; font-size: 11.5px; }
.crm-dir-focus button > span,.crm-dir-filter-toggle > b { font-size: 10px; }
.crm-dir-filters-head span { font-size: 11px; }
.crm-dir-filters-grid > label > span { font-size: 10px; }   /* intitulé de champ seul — cf. ticket Gse9aJDDanlenDq7qI2f */
.crm-dir-filters-grid .crm-filter { height: 40px; font-size: 11.5px; }
.crm-dir-filter-foot .crm-segrow { height: 40px; }
.crm-dir-filter-foot .crm-segrow button,.crm-dir-clear { font-size: 11.5px; }
.crm-directory-v2 .crm-thead { min-height: 42px; }
.crm-directory-v2 .crm-th { font-size: 10px; }
.crm-directory-v2 .crm-row { min-height: 70px; padding-block: 10px; }
.crm-directory-v2 .crm-mono { width: 38px; height: 38px; font-size: 10.5px; }
.crm-directory-v2 .crm-row__name { font-size: 12.5px; }
.crm-directory-v2 .crm-row__sub { font-size: 11px; }
.crm-directory-v2 .crm-row__addr { margin-top: 2px; font-size: 10.5px; }
.crm-directory-v2 .crm-row .crm-banner-chip,.crm-directory-v2 .crm-row .crm-tag { font-size: 10px; }
.crm-dir-group { min-height: 42px; }
.crm-dir-group strong { font-size: 12px; }
.crm-dir-group span { font-size: 10.5px; }
.crm-dir-group b { font-size: 10px; }
.crm-dir-signal { font-size: 11px; }
.crm-dir-rep > span { font-size: 10px; }
.crm-dir-rep > b { font-size: 11px; }
.crm-directory-v2 .crm-lastact { font-size: 11px; }
.crm-directory-v2 .crm-lastact__t { font-size: 10.5px; }
.crm-dir-score { width: 40px; height: 29px; font-size: 11px; }
.crm-dir-preview-cover { padding: 17px; }
.crm-dir-preview-title > div > span { font-size: 10px; }
.crm-dir-preview-title h2 { font-size: 18px; }
.crm-dir-preview-title p { font-size: 11px; }
.crm-dir-preview-title > .crm-pill { font-size: 10px; }
.crm-dir-preview-score small { font-size: 10px; }
.crm-dir-preview-score strong { font-size: 12.5px; }
.crm-dir-preview-score span { font-size: 10.5px; }
.crm-dir-preview-body { padding: 14px; }
.crm-dir-next { padding: 12px; }
.crm-dir-next small,.crm-dir-next > div > span { font-size: 10px; }
.crm-dir-next strong { font-size: 12.5px; }
.crm-dir-next p { font-size: 11px; }
.crm-dir-preview-kpis > div { padding: 10px; }
.crm-dir-preview-kpis small { font-size: 10px; }
.crm-dir-preview-kpis strong { font-size: 12px; }
.crm-dir-preview-kpis span { font-size: 10.5px; }
.crm-dir-signals h3 { font-size: 13px; }
.crm-dir-signals > div { grid-template-columns: 28px minmax(0,1fr); padding: 7px 0; }
.crm-dir-signals i { width: 28px; height: 28px; font-size: 10px; }
.crm-dir-signals strong { font-size: 11.5px; }
.crm-dir-signals span { font-size: 10.5px; }
.crm-dir-preview-actions button { min-height: 40px; font-size: 11.5px; }
.crm-dir-preview-empty strong { font-size: 13px; }
.crm-dir-preview-empty p { font-size: 11px; }

/* Fiche magasin */
.crm-store-fiche > .crm-fiche__back { font-size: 12px; }
.crm-store-eyebrow { font-size: 10px; }
.crm-store-hero .crm-hero__sub { font-size: 12px; }
.crm-store-identity .crm-banner-chip,.crm-store-identity .crm-tag { min-height: 23px; font-size: 10px; }
.crm-store-identity .crm-banner-chip__l { font-size: 10px; }
/* Le numéro de magasin est ce qu'on vient lire dans cette rangée : il garde un
   cran d'avance sur les autres pastilles, sans sortir du plancher. */
.crm-store-identity .crm-num-chip { min-height: 23px; font-size: 11.5px; }
.crm-store-identity .crm-num-chip__l { font-size: 10px; }
.crm-store-hero .crm-pill { font-size: 10.5px; }
.crm-store-actions .crm-action { min-height: 40px; font-size: 11.5px; }
.crm-store-hero .crm-hero__dropdown button { font-size: 11.5px; }
.crm-store-kpis > div,.crm-store-kpis > button { min-height: 78px; padding: 10px 12px; }
.crm-store-kpis small { font-size: 10px; }
.crm-store-kpis strong { font-size: 15px; }
.crm-store-kpis em { font-size: 10.5px; }
.crm-store-next { min-height: 72px; padding: 10px 12px; }
.crm-store-next small { font-size: 10px; }
.crm-store-next strong { font-size: 13px; }
.crm-store-next p { font-size: 11px; }
.crm-store-next > button { min-height: 40px; font-size: 11.5px; }
.crm-store-fiche > .crm-tabs { min-height: 52px; }
.crm-store-fiche > .crm-tabs .crm-tab { min-height: 38px; font-size: 11.5px; }
.crm-store-fiche > .crm-tabs .crm-tab__badge { font-size: 10px; }
.crm-store-updated { font-size: 10.5px; }
.crm-store-performance > header,.crm-store-sidecard > header { min-height: 60px; }
.crm-store-performance h2,.crm-store-sidecard h3 { font-size: 13.5px; }
.crm-store-performance header p,.crm-store-sidecard header p { font-size: 10.5px; }
.crm-store-periods button { min-height: 32px; font-size: 10.5px; }
.crm-store-performance__stats small { font-size: 10px; }
.crm-store-performance__stats strong { font-size: 13px; }
.crm-store-performance > .crm-chart-hint { font-size: 10.5px; }
.crm-store-insight b { font-size: 11px; }
.crm-store-insight span { font-size: 10.5px; }
.crm-store-products > .crm-section__label { min-height: 50px; font-size: 12px; }
.crm-store-products .crm-top__row { min-height: 62px; padding: 10px 12px; }
.crm-store-products .crm-top__name { font-size: 12px; }
.crm-store-products .crm-top__units { font-size: 11.5px; }
.crm-store-products .crm-top__meta { font-size: 10.5px; }
.crm-store-contact { min-height: 70px; }
.crm-store-contact > span { width: 36px; height: 36px; font-size: 10px; }
.crm-store-contact strong,.crm-store-rep strong { font-size: 12px; }
.crm-store-contact small { font-size: 10.5px; }
.crm-store-rep { min-height: 62px; }
.crm-store-rep > i { font-size: 10px; }
.crm-store-rep small { font-size: 10px; }
.crm-store-rep em { font-size: 10.5px; }
.crm-store-cardlink { min-height: 40px; font-size: 11.5px; }
/* Carte Coordonnées de l'aside (ticket kPzo8F7q7XynipgIJPOZ) : elle porte une
   ADRESSE et un NUMÉRO qu'on recopie — le plancher de lisibilité s'y applique
   au moins autant qu'ailleurs. */
.crm-store-coords .crm-info__k { font-size: 10px; }
.crm-store-coords .crm-info__v { font-size: 11.5px; }
.crm-store-coords .crm-flag { font-size: 10px; }
.crm-store-signals > div { min-height: 58px; }
.crm-store-signals strong { font-size: 11.5px; }
.crm-store-signals small { font-size: 10.5px; }
.crm-store-tasklist > div { min-height: 60px; }
.crm-store-tasklist strong { font-size: 11.5px; }
.crm-store-tasklist small { font-size: 10.5px; }
.crm-store-tasklist time { font-size: 10px; }
.crm-store-tasks-empty { font-size: 11px; }
.crm-store-more-data > summary { min-height: 62px; }
.crm-store-more-data summary b { font-size: 12px; }
.crm-store-more-data summary small { font-size: 10.5px; }

/* Activité par personne */
.crm-activity-page > .crm-fiche__back { font-size: 12px; }
.crm-actrep-eyebrow { font-size: 10px; }
.crm-actrep-head .crm-head__sub { font-size: 13px; }
.crm-actrep-controls > .crm-filter { height: 42px; font-size: 12px; }
.crm-actrep-periods button { min-height: 34px; font-size: 11px; }
.crm-actrep-principle { min-height: 56px; padding: 9px 12px; }
.crm-actrep-principle p { font-size: 11px; }
.crm-actrep-principle > div span { font-size: 10px; }
.crm-actrep-kpi { min-height: 78px; }
.crm-actrep-kpi small,.crm-actrep-kpi em { font-size: 10px; }
.crm-actrep-kpi strong { font-size: 17px; }
.crm-actrep-rhythm-card > header,.crm-actrep-coverage-card > header { min-height: 60px; }
.crm-actrep-rhythm-card h2,.crm-actrep-coverage-card h2 { font-size: 13px; }
.crm-actrep-rhythm-card header p,.crm-actrep-coverage-card header p { font-size: 10.5px; }
.crm-actrep-rhythm-card header > span { font-size: 10.5px; }
.crm-actrep-rhythm-card .crm-actrep-bar > small { font-size: 10px; }
.crm-actrep-donut small { font-size: 10px; }
.crm-actrep-coverage-legend p { font-size: 10.5px; }
.crm-actrep-coverage-legend b { font-size: 11px; }
.crm-actrep-feed > header { min-height: 58px; }
.crm-actrep-feed > header > strong { font-size: 13px; }
.crm-actrep-feed > header > span { font-size: 10.5px; }
.crm-actrep-filter { min-height: 34px; font-size: 10.5px; }
.crm-actrep-filter > span { font-size: 10px; }
.crm-actrep-feed .crm-tl__month { min-height: 38px; font-size: 10px; }
.crm-actrep-event { min-height: 76px; padding: 10px 12px; }
.crm-actrep-event strong { font-size: 12px; }
.crm-actrep-event em { font-size: 11px; }
.crm-actrep-event small { font-size: 10px; }
.crm-actrep-event small > b { font-size: 10px; }
.crm-actrep-event > time { font-size: 10px; }
.crm-actrep-detail-cover > div > span { font-size: 10px; }
.crm-actrep-detail-cover time { font-size: 10px; }
.crm-actrep-detail-cover h2 { font-size: 18px; }
.crm-actrep-detail-cover p { font-size: 11px; }
.crm-actrep-author > i { font-size: 9.5px; }
.crm-actrep-author strong { font-size: 12px; }
.crm-actrep-author small { font-size: 10px; }
.crm-actrep-note > small,.crm-actrep-changes > small { font-size: 10px; }
.crm-actrep-note > p { font-size: 11.5px; }
.crm-actrep-changes > p { font-size: 10.5px; }
.crm-actrep-proof small { font-size: 10px; }
.crm-actrep-proof strong { font-size: 11px; }
.crm-actrep-open-store { min-height: 40px; font-size: 11.5px; }
.crm-actrep-detail-empty { font-size: 11px; }
.crm-actrep-more > summary { min-height: 54px; font-size: 12px; }
.crm-actrep-more > summary span { font-size: 10.5px; }

/* Route de visite */
.crm-route-page > .crm-fiche__back { font-size: 12px; }
.crm-rt-pagehead > div > span { font-size: 10px; }
.crm-rt-pagehead p { font-size: 13px; }
.crm-rt-pagehead > button { min-height: 42px; font-size: 11.5px; }
.crm-rt-builder { min-height: 78px; padding: 10px 12px; }
.crm-rt-builder > label > span:first-child { font-size: 10px; }
.crm-rt-builder select,.crm-rt-builder input { height: 42px; font-size: 12px; }
.crm-rt-number > em { font-size: 10.5px; }
.crm-rt-builder > button { min-height: 42px; font-size: 12px; }
.crm-rt-readiness { min-height: 62px; padding: 9px 12px; }
.crm-rt-readiness strong { font-size: 12px; }
.crm-rt-readiness p { font-size: 10.5px; }
.crm-rt-flow,.crm-rt-flow b { font-size: 10px; }
.crm-rt-readiness .crm-rt-prog__lbl { font-size: 10px; }
.crm-rt-readiness > .crm-rt-regen { min-height: 36px; font-size: 11px; }
.crm-rt-summary > div { min-height: 76px; }
.crm-rt-summary small { font-size: 10px; }
.crm-rt-summary b { font-size: 16px; }
.crm-rt-summary em { font-size: 10.5px; }
.crm-rt-daytab { min-height: 76px; padding: 9px 10px; }
.crm-rt-daytab small { font-size: 10px; }
.crm-rt-daytab strong { font-size: 12px; }
.crm-rt-daytab em { font-size: 10.5px; }
.crm-rt-daytab > b { font-size: 10px; }
.crm-rt-map-panel > header { min-height: 64px; }
.crm-rt-map-panel h2 { font-size: 14px; }
.crm-rt-map-panel header p { font-size: 10.5px; }
.crm-rt-map-panel header a { font-size: 11px; }
.crm-rt-stop-context { width: min(430px,calc(100% - 24px)); padding: 13px; }
.crm-rt-stop-context__top { grid-template-columns: 36px minmax(0,1fr) auto; }
.crm-rt-stop-context__top > span { width: 35px; height: 35px; font-size: 10px; }
.crm-rt-stop-context__top h3 { font-size: 13px; }
.crm-rt-stop-context__top p { font-size: 10.5px; }
.crm-rt-stop-context__note { padding: 10px; }
.crm-rt-stop-context__note small { font-size: 10px; }
.crm-rt-stop-context__note p { font-size: 11px; }
.crm-rt-stop-context__note em { font-size: 10px; }
.crm-rt-stop-context__actions button { min-height: 38px; font-size: 11px; }
.crm-rt-stop-context__empty { font-size: 11px; }
.crm-rt-day__h--focus { min-height: 66px; }
.crm-rt-day__h--focus span > b { font-size: 13px; }
.crm-rt-day__h--focus span > small,.crm-rt-day__h--focus div:last-child > small { font-size: 10.5px; }
.crm-rt-day__h--focus div:last-child > strong { font-size: 10px; }
.crm-rt-day--focus .crm-rt-stop { min-height: 76px; padding: 9px 10px; }
.crm-rt-day--focus .crm-rt-stop__n { width: 29px; height: 29px; font-size: 10px; }
.crm-rt-day--focus .crm-rt-stop__name { font-size: 12px; }
.crm-rt-day--focus .crm-rt-note__t { font-size: 10.5px; }
.crm-rt-day--focus .crm-seg-badge { font-size: 10px; }
.crm-rt-day--focus .crm-rt-stop__note,.crm-rt-day--focus .crm-rt-stop__info,.crm-rt-day--focus .crm-rt-stop__move,.crm-rt-day--focus .crm-rt-stop__rm { font-size: 11px; }
.crm-rt-day__foot { min-height: 66px; }
.crm-rt-day__foot .crm-rt-add__in,.crm-rt-day__foot .crm-rt-add__btn,.crm-rt-day__foot .crm-rt-daybtn { height: 40px; min-height: 40px; font-size: 11.5px; }

@media (max-width: 640px) {
  .crm-directory-v2 .crm-row { min-height: 70px; }
  .crm-stx-store,.crm-actrep-event,.crm-rt-day--focus .crm-rt-stop { min-height: 72px; }
}

/* ── Mobile métier · parcours au pouce, sans desktop miniaturisé ──────
   Les vues maître-détail deviennent un vrai parcours liste → dossier. Le
   détail n'est plus enfoui sous plusieurs dizaines de lignes et le bouton
   retour rend le changement de contexte explicite. */
.ux-mobile-back { display: none; }

@media (max-width: 820px) {
  .ux-mobile-back {
    width: 100%; min-height: 46px; display: flex; align-items: center; gap: 8px;
    padding: 0 14px; border: 0; border-bottom: 1px solid var(--crm-line, var(--gs-line));
    background: var(--crm-card, var(--gs-panel)); color: var(--crm-ink, var(--gs-ink));
    font: 750 13px 'Inter', sans-serif; text-align: left; cursor: pointer;
  }

  /* Répertoire CRM */
  .crm-dir-workspace:not(.is-mobile-detail) > .crm-dir-preview,
  .crm-dir-workspace.is-mobile-detail > .crm-listwrap { display: none; }
  .crm-dir-workspace.is-mobile-detail > .crm-dir-preview { display: block; }
  .crm-dir-preview { border-radius: 14px; }
  .crm-dir-preview-body { display: block; }
  .crm-dir-preview-actions { position: sticky; bottom: 0; z-index: 2; padding: 10px 0 calc(4px + env(safe-area-inset-bottom)); background: var(--crm-card); }

  /* CRM accueil, statistiques et activité */
  .crm-ck-dashboard:not(.is-mobile-detail) > .crm-ck-priority-detail,
  .crm-ck-dashboard.is-mobile-detail > .crm-ck-priority-list,
  .crm-stx-stores:not(.is-mobile-detail) > .crm-stx-store-detail,
  .crm-stx-stores.is-mobile-detail > .crm-stx-store-main,
  .crm-actrep-workspace:not(.is-mobile-detail) > .crm-actrep-detail,
  .crm-actrep-workspace.is-mobile-detail > .crm-actrep-feed { display: none; }
  .crm-ck-dashboard.is-mobile-detail,
  .crm-stx-stores.is-mobile-detail,
  .crm-actrep-workspace.is-mobile-detail { grid-template-columns: 1fr; }
  .crm-ck-dashboard, .crm-stx-stores, .crm-actrep-workspace,
  .diff-queue-layout { grid-template-columns: 1fr !important; }
  .crm-ck-dashboard.is-mobile-detail > .crm-ck-priority-detail,
  .crm-stx-stores.is-mobile-detail > .crm-stx-store-detail,
  .crm-actrep-workspace.is-mobile-detail > .crm-actrep-detail { display: block; position: static; }

  /* Ambassadeurs et Agriculture */
  .amb-directory-workspace:not(.is-mobile-detail) > .amb-person-detail,
  .amb-directory-workspace.is-mobile-detail > .amb-directory-panel,
  .agri-directory-workspace:not(.is-mobile-detail) > .agri-directory-preview,
  .agri-directory-workspace.is-mobile-detail > .agri-directory-table { display: none; }
  .amb-directory-workspace.is-mobile-detail > .amb-person-detail,
  .agri-directory-workspace.is-mobile-detail > .agri-directory-preview { display: block; position: static; }
  .amb-directory-panel { max-height: none; overflow: hidden; }

  /* Diffusions et Réunions */
  .diff-queue-layout:not(.is-mobile-detail) > .diff-queue-workspace,
  .diff-queue-layout.is-mobile-detail > .diff-queue-panel,
  .rn-workspace:not(.is-mobile-detail) > .rn-detail-panel,
  .rn-workspace.is-mobile-detail > .rn-agenda-panel { display: none; }
  .diff-queue-layout.is-mobile-detail > .diff-queue-workspace,
  .rn-workspace.is-mobile-detail > .rn-detail-panel { display: block; position: static; }
  .diff-queue-layout.is-mobile-detail,
  .rn-workspace.is-mobile-detail { grid-template-columns: 1fr; }

  /* Rails de navigation : défilement horizontal prévisible, sans retour à la ligne. */
  .crm-ck-chips, .amb-main-tabs, .agri-tabs, .agri-section-tabs,
  .diff-filters, .diff-tr-tabs, .rn-filter-tabs, .pal-tabs,
  .wswnw-tabs, .notes-filters {
    overflow-x: auto; overflow-y: hidden; flex-wrap: nowrap; scrollbar-width: none;
    overscroll-behavior-inline: contain; scroll-snap-type: inline proximity;
  }
  .crm-ck-chips::-webkit-scrollbar, .amb-main-tabs::-webkit-scrollbar,
  .agri-tabs::-webkit-scrollbar, .agri-section-tabs::-webkit-scrollbar,
  .diff-filters::-webkit-scrollbar, .diff-tr-tabs::-webkit-scrollbar,
  .rn-filter-tabs::-webkit-scrollbar, .pal-tabs::-webkit-scrollbar,
  .wswnw-tabs::-webkit-scrollbar, .notes-filters::-webkit-scrollbar { display: none; }
  .crm-ck-chips > *, .amb-main-tabs > *, .agri-tabs > *, .agri-section-tabs > *,
  .diff-filters > *, .diff-tr-tabs > *, .rn-filter-tabs > *, .pal-tabs > *,
  .wswnw-tabs > *, .notes-filters > * { flex: 0 0 auto; scroll-snap-align: start; }

  /* Zones tactiles et bas d'écran sûr dans les interfaces déjà adaptatives. */
  #crm-view button, #agriculture-view button, #ambassadeurs-view button,
  #diffusions-view button, #reunions-view button, #support-view button,
  #wswnw-view button, #palantir-view button { touch-action: manipulation; }
  #crm-view, #agriculture-view, #ambassadeurs-view, #diffusions-view,
  #reunions-view, #support-view, #wswnw-view, #palantir-view {
    padding-bottom: calc(72px + env(safe-area-inset-bottom));
  }
  body.shell-on .chat-composer, .ai-chat-input { padding-bottom: calc(14px + env(safe-area-inset-bottom)); }

  /* Plancher typographique tablette : à 768 px on conserve de la densité,
     mais jamais les libellés 7–9 px conçus pour le grand écran. */
  .amb-person-main strong, .agri-directory-name b, .diff-queue-item-head b,
  .sup-msg, .pal-service-name strong, .wswnw-roster-person strong { font-size: 13px; }
  .amb-person-main small, .amb-person-state small, .agri-directory-row,
  .diff-queue-item-date, .diff-queue-item-run, .rn-detail, .sup-meta,
  .pal-service-name small, .wswnw-roster-person small { font-size: 10.5px; }
  .amb-person-state strong, .agri-directory-state, .pal-service-row > strong { font-size: 11px; }
  .amb-person-row, .agri-directory-row, .pal-service-row { min-height: 72px; }
  .pal-health-summary small, .wswnw-week-card small { font-size: 10px; }
  .pal-health-summary em, .wswnw-week-card p { font-size: 11px; }
}

@media (max-width: 640px) {
  /* Cadre commun : 10 px de respiration de chaque côté, jamais de canevas
     desktop débordant derrière le rail global. */
  #support-view, .wswnw-wrap, #palantir-view,
  #diffusions-view > .crm-wrap, #reunions-view,
  #ambassadeurs-view > .crm-wrap, #agriculture-view > .agri-directory-page,
  #agriculture-view > .agri-section-page, .crm-ck, .crm-directory-v2,
  .crm-store-fiche, .crm-activity-page, .crm-route-page, .crm-stats-v2 {
    width: min(calc(100% - 20px), var(--ux-max)); max-width: none; margin-inline: auto;
  }

  /* En-têtes : le titre reste prioritaire; l'action descend sur toute la largeur. */
  .diff-queue-head, .rn-page-head, .sup-page-head, .pal-page-head,
  .wswnw-page-head, .amb-page-head, .agri-page-head,
  .amb-wave-head, .agri-directory-head, .crm-stx-pagehead,
  .crm-actrep-head, .crm-rt-pagehead { gap: 12px; }
  .diff-queue-head h1, .rn-page-head h1, .sup-page-head h2,
  .pal-page-head h2, .wswnw-page-head h2, .amb-page-head h2,
  .agri-page-head h2, .amb-wave-head h2, .agri-directory-head h2,
  .crm-stx-pagehead h1, .crm-actrep-head .crm-head__title,
  .crm-rt-pagehead h1, .crm-ck-heading h1 { font-size: 24px; line-height: 1.12; }

  /* Projet, Notes, Communications, Lanceur et Gandalf */
  .gshell-launcher { padding-bottom: env(safe-area-inset-bottom); }
  .gshell-launcher-card { min-height: 76px; padding: 13px; }
  .gshell-launcher-card b { font-size: 14px; }
  .gshell-launcher-card small { font-size: 12px; line-height: 1.4; }
  #notesHome { padding-inline: 12px; }
  .note-card { min-height: 72px; }
  .note-read, .note-edit { padding: 26px 16px calc(82px + env(safe-area-inset-bottom)); }
  body.shell-on .chat-messages { padding: 16px 12px 24px; }
  body.shell-on .chat-composer { padding-inline: 10px; }
  .chat-sidebar-actions, .chat-search-row, .chat-tabs-row { padding-inline: 12px; }
  .ai-chat-header { padding-inline: 12px; }
  .ai-chat-messages { padding: 20px 13px 96px; }
  .ai-chat-input { margin: 0; padding-inline: 11px; }

  /* CRM : cartes denses mais lisibles, actions accessibles. */
  .crm-ck-page-head .crm-filter, .crm-stx-controls > .crm-filter,
  .crm-actrep-controls > .crm-filter, .crm-rt-builder select,
  .crm-rt-builder input, .crm-dir-filters-grid .crm-filter { min-height: 44px; font-size: 14px; }
  .crm-ck .crm-ck-chip, .crm-ck-more > summary { min-height: 44px; font-size: 13px; }
  .crm-ck .crm-ck-kpi { min-height: 86px; }
  .crm-ck .crm-ck-kpi__n { font-size: 24px; }
  .crm-ck .crm-ck-kpi__l { font-size: 12px; }
  .crm-ck-priority-row { min-height: 78px; padding: 11px; }
  .crm-ck-priority-copy strong { font-size: 14px; }
  .crm-ck-priority-copy small { font-size: 12px; line-height: 1.35; white-space: normal; }
  .crm-ck-priority-cover h2, .crm-dir-preview-title h2,
  .crm-actrep-detail-cover h2, .crm-stx-store-cover h3 { font-size: 20px; }
  .crm-ck-priority-body section p, .crm-dir-next p,
  .crm-actrep-note > p { font-size: 13px; }
  .crm-ck-priority-actions button, .crm-ck-priority-actions a,
  .crm-dir-preview-actions button, .crm-stx-store-actions button,
  .crm-actrep-open-store { min-height: 46px; font-size: 13px; }
  .crm-directory-v2 .crm-row { min-height: 82px; grid-template-columns: auto 42px minmax(0,1fr) auto; padding: 12px 10px; }
  .crm-directory-v2 .crm-row__name { font-size: 14px; }
  .crm-directory-v2 .crm-row__sub { font-size: 12px; line-height: 1.35; }
  .crm-directory-v2 .crm-row__addr { font-size: 11.5px; }
  .crm-dir-focus { overflow-x: auto; flex-wrap: nowrap; }
  .crm-dir-focus button, .crm-dir-filter-toggle { min-height: 44px; flex: 0 0 auto; font-size: 13px; }
  .crm-dir-preview-cover, .crm-dir-preview-body { padding: 14px; }
  .crm-dir-preview-title { grid-template-columns: 44px minmax(0,1fr); }
  .crm-dir-preview-title > .crm-pill { grid-column: 1 / -1; width: max-content; margin-top: 6px; }
  .crm-dir-preview-kpis { grid-template-columns: 1fr 1fr; }
  .crm-stx-store { min-height: 76px; padding-inline: 10px; }
  .crm-stx-store-name strong, .crm-actrep-event strong { font-size: 13px; }
  .crm-stx-store-name small, .crm-actrep-event em { font-size: 11.5px; }
  .crm-actrep-event { min-height: 82px; }
  .crm-actrep-event small, .crm-actrep-event > time { font-size: 10.5px; }
  .crm-rt-builder { grid-template-columns: 1fr; }
  .crm-rt-builder > button { min-height: 46px; }
  .crm-rt-daytab { min-width: 152px; min-height: 82px; }
  .crm-rt-map-stage > .crm-rt-map { height: min(54dvh, 360px); }
  .crm-rt-stop-context { margin: 8px; padding: 12px; }

  /* Agriculture : le registre devient une collection de cartes; aucune table
     de 780 px à pousser latéralement. */
  .agri-directory-summary { display: grid; grid-template-columns: 1fr 1fr; padding: 12px; }
  .agri-directory-summary > span { display: grid; gap: 3px; }
  .agri-directory-summary strong, .agri-directory-summary b { font-size: 20px; }
  .agri-directory-summary small { font-size: 11px; }
  .agri-directory-tools { grid-template-columns: 1fr 1fr; }
  .agri-directory-tools .crm-search { grid-column: 1 / -1; height: 46px; }
  .agri-directory-tools .crm-filter { min-height: 44px; height: 44px; font-size: 12px; }
  .agri-directory-table { overflow: hidden; }
  .agri-directory-columns { display: none; }
  .agri-directory-row {
    min-width: 0; min-height: 154px; grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 10px 7px; padding: 14px 12px; border-top: 1px solid var(--crm-line);
  }
  .agri-directory-name { grid-column: 1 / 4; }
  .agri-directory-name > i { width: 42px; height: 42px; font-size: 11px; }
  .agri-directory-name b { font-size: 14px; }
  .agri-directory-name small { font-size: 11px; }
  .agri-directory-row > .agri-directory-state { grid-column: 4; grid-row: 1; justify-self: end; font-size: 11px; }
  .agri-directory-lots { grid-column: 1 / -1; min-height: 28px; }
  .agri-directory-lots em { padding: 5px 7px; font-size: 10px; }
  .agri-directory-number, .agri-directory-phase,
  .agri-directory-age, .agri-directory-tasks {
    width: auto; min-width: 0; display: flex; flex-direction: column; align-items: flex-start;
    gap: 4px; border-radius: 8px; font-size: 11px;
  }
  .agri-directory-row > [data-mobile-label]::before {
    content: attr(data-mobile-label);
    color: var(--crm-ink-3); font-size: 9px; font-weight: 750; text-transform: uppercase;
  }
  .agri-directory-field { min-height: 46px; }
  .agri-directory-field b { font-size: 12px; }
  .agri-directory-field span, .agri-directory-field em { font-size: 10.5px; }
  .agri-directory-preview__title h2 { font-size: 20px; }
  .agri-directory-preview__title p, .agri-directory-composition > span,
  .agri-directory-signal p { font-size: 11.5px; }
  .agri-directory-preview__facts small, .agri-directory-composition > small,
  .agri-directory-signal > small { font-size: 10px; }
  .agri-directory-preview__facts b, .agri-directory-signal b { font-size: 12px; }
  .agri-directory-preview__actions button, .agri-directory-preview__cover > button { min-height: 46px; font-size: 12px; }
  .agri-section-kpis { display: flex; overflow-x: auto; gap: 8px; scroll-snap-type: inline mandatory; }
  .agri-section-kpis > div { min-width: 154px; min-height: 82px; scroll-snap-align: start; }
  .agri-section-kpis small, .agri-section-facts small { font-size: 10px; }
  .agri-section-kpis b, .agri-section-facts b { font-size: 13px; }
  .agri-section-context h3, .agri-section-journal h3, .agri-section-quick h3 { font-size: 14px; }

  /* Ambassadeurs : résumé défilable et fiches confortables. */
  .amb-network-summary, .amb-summary-grid { display: flex; flex-wrap: nowrap; overflow-x: auto; gap: 8px; scroll-snap-type: inline mandatory; }
  .amb-network-summary > span, .amb-summary-card { min-width: 154px; scroll-snap-align: start; }
  .amb-network-summary > span { min-height: 70px; flex-direction: column; align-items: flex-start; justify-content: center; padding: 10px; border: 1px solid var(--crm-line); border-radius: 10px; }
  .amb-network-summary strong { font-size: 21px; }
  .amb-network-summary small { font-size: 11px; }
  .amb-person-row { min-height: 78px; grid-template-columns: 42px minmax(0,1fr) auto; padding: 11px; }
  .amb-person-avatar { width: 41px; height: 41px; font-size: 11px; }
  .amb-person-main strong { font-size: 13.5px; }
  .amb-person-main small, .amb-person-state small { font-size: 10.5px; line-height: 1.35; white-space: normal; }
  .amb-person-state strong { font-size: 11px; }
  .amb-person-cover { padding: 14px; }
  .amb-person-cover h2 { font-size: 20px; }
  .amb-person-cover p, .amb-relation-event p, .amb-snapshot-card > p { font-size: 12px; }
  .amb-relation-health small, .amb-snapshot-card > small { font-size: 10px; }
  .amb-relation-health strong, .amb-snapshot-card > strong, .amb-relation-event strong { font-size: 12px; }
  .amb-relation-event time { font-size: 10px; }
  .amb-person-cover > .crm-action { min-height: 44px; font-size: 12px; }
  .amb-capture-drop-card { min-height: 360px; padding: 24px 16px; }
  .amb-capture-drop-card > p { font-size: 12px; }
  .amb-capture-drop { min-height: 96px; }
  .amb-capture-drop span { font-size: 13px; }

  /* Diffusions et réunions : lecture, édition et décisions à une main. */
  .diff-queue-panel-head { padding: 14px 12px 10px; }
  .diff-queue-panel .diff-filters .crm-tab, .diff-tr-tab { min-height: 42px; font-size: 12px; }
  .diff-queue-item { min-height: 104px; padding: 13px 12px; }
  .diff-queue-item-head b { font-size: 14px; }
  .diff-queue-item-date, .diff-queue-item-run { font-size: 11px; }
  .diff-queue-item .diff-excerpt { font-size: 12.5px; line-height: 1.45; }
  .diff-editor-head, .diff-editor-section, .diff-decision-grid { padding-inline: 13px; }
  .diff-editor-section-head h3 { font-size: 17px; }
  .diff-editor .crm-fld > span, .diff-decision-card .diff-note { font-size: 11.5px; }
  .diff-editor textarea, .diff-editor input, .diff-editor select { font-size: 16px; }
  .diff-editor-actions { position: sticky; bottom: 0; z-index: 3; padding-bottom: calc(12px + env(safe-area-inset-bottom)); background: color-mix(in srgb,var(--crm-card) 95%,transparent); backdrop-filter: blur(12px); }
  .diff-editor-actions .crm-action { min-height: 46px; flex: 1 1 100%; font-size: 13px; }
  .rn-weekbar { margin-inline: 0; padding-inline: 6px; }
  .rn-daypick { min-height: 72px; padding-inline: 0; }
  .rn-filter { min-height: 44px; padding-inline: 4px; }
  .rn-row { min-height: 80px; }
  .rn-time { font-size: 12px; }
  .rn-subject { font-size: 16px; }
  .rn-detail { font-size: 11.5px; }
  .rn-detail-head, .rn-detail-section, .rn-detail-actions { padding-inline: 14px; }
  .rn-detail-head h2 { font-size: 20px; }
  .rn-detail-section strong, .rn-agenda-copy { font-size: 13px; line-height: 1.5; }
  .rn-detail-section p, .rn-detail-muted { font-size: 11.5px; }
  .rn-detail-actions .btn { min-height: 46px; font-size: 12px; }

  /* Support et WSWNW */
  .sup-toolbar { gap: 8px; }
  #support-view .sup-toolbar > .btn { min-height: 44px; }
  .sup-master-panel .sup-row { min-height: 108px; padding-block: 12px; }
  .sup-msg { font-size: 13px; line-height: 1.4; }
  .sup-meta, .sup-status { font-size: 10.5px; }
  .wswnw-week-card { padding: 13px; }
  .wswnw-prefill-row { align-items: stretch; flex-direction: column; }
  .wswnw-prefill-row b { font-size: 12px; }
  .wswnw-prefill-row small { max-width: none; font-size: 11px; white-space: normal; }
  .wswnw-step-card { padding: 16px 14px; }
  .wswnw-step-head strong { font-size: 17px; }
  .wswnw-step-hint { min-height: 0; font-size: 11.5px; }
  .wswnw-step-card textarea, .wswnw-solution-card textarea { min-height: 180px; font-size: 16px; }
  .wswnw-submit-bar { align-items: stretch; flex-wrap: wrap; }
  .wswnw-submit-bar .btn { width: 100%; min-height: 46px; margin-left: 0; }
  .wswnw-team-roster { max-height: none; overflow: hidden; }
  .wswnw-roster-list { flex-direction: row; overflow-x: auto; padding-bottom: 4px; scroll-snap-type: inline mandatory; }
  .wswnw-roster-person { min-width: 230px; scroll-snap-align: start; }
  .wswnw-selected-report { padding-inline: 14px; }
  .wswnw-report-section > div { font-size: 13px; }

  /* Palantir : chaque service devient une carte métrique. */
  .pal-tabsbar { align-items: stretch; flex-direction: column; }
  .pal-tabs { width: 100%; }
  .pal-tabs .tasks-proj-chip { min-height: 44px; }
  .pal-refresh { min-height: 44px; }
  .pal-health-summary { display: flex; overflow-x: auto; grid-template-columns: none; scroll-snap-type: inline mandatory; }
  .pal-health-summary > button { min-width: 164px; min-height: 84px; scroll-snap-align: start; }
  .pal-services-panel { overflow: hidden; }
  .pal-services-panel > header { align-items: stretch; flex-direction: column; padding: 14px; }
  .pal-services-panel header label { width: 100%; height: 44px; }
  .pal-services-panel header input { font-size: 14px; }
  .pal-service-columns { display: none; }
  .pal-service-row {
    min-width: 0; min-height: 154px; grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 12px 16px; padding: 14px;
  }
  .pal-service-name { grid-column: 1 / -1; }
  .pal-service-name strong { font-size: 14px; }
  .pal-service-name small { font-size: 10.5px; }
  .pal-service-row > strong { display: flex; flex-direction: column; gap: 3px; font-size: 13px; }
  .pal-service-row > strong::before { content: attr(data-mobile-label); color: var(--gs-ink-faint); font-size: 9px; font-weight: 750; text-transform: uppercase; }
  .pal-service-row .pal-spark { grid-column: 1 / -1; width: 100%; height: 28px; justify-self: stretch; }
  .pal-attention-panel > header, .pal-attention-kpis, .pal-attention-actions { padding-inline: 14px; }
  .pal-attention-actions .btn { min-height: 44px; font-size: 11.5px; }
  .pal-infra-panel > div { padding-inline: 12px; }
  .pal-infra-card > div { grid-template-columns: 1fr 1fr; }
  .pal-budget-card { margin-inline: 12px; }
}

/* ── Lanceur mobile · accès rapide puis catalogue compact ─────────────
   Les favoris forment une mini-grille entièrement visible; le catalogue est
   parcourable en deux colonnes, avec assez de contexte pour choisir sans
   ouvrir les applications une à une. */
@media (max-width: 860px) {
  body.gshell-launcher-open { overflow: hidden; }
  .gshell-launcher-overlay { background: var(--gs-panel); }
  .gshell-launcher {
    height: 100%; max-height: none; padding: 0;
    background: var(--gs-panel); box-shadow: none;
  }
  .gshell-launcher-head {
    min-height: 68px; flex: none; gap: 9px;
    padding: calc(9px + env(safe-area-inset-top)) 12px 8px;
  }
  .gshell-launcher-symbol { width: 42px; height: 42px; border-radius: 12px; }
  .gshell-launcher-symbol .gicon { width: 22px; height: 22px; }
  .gshell-launcher-heading h2 { max-width: 240px; font-size: 21px; line-height: 1.04; letter-spacing: -.025em; }
  .gshell-launcher-close, .gshell-launcher-manage {
    width: 44px; min-width: 44px; height: 44px; border-radius: 12px;
  }
  .gshell-launcher-close { font-size: 25px; }
  .gshell-launcher-manage .gicon { width: 19px; height: 19px; }

  .gshell-launcher-search {
    height: 46px; flex: none; margin: 6px 12px 0; padding-inline: 12px;
    border-radius: 12px; background: var(--gs-panel-2);
  }
  .gshell-launcher-search input { font-size: 16px; }
  .gshell-launcher-categories {
    flex: none; gap: 6px; padding: 9px 12px 11px; scroll-padding-inline: 12px;
    border-bottom: 1px solid var(--gs-line); overscroll-behavior-inline: contain;
    scroll-snap-type: inline proximity;
  }
  .gshell-launcher-categories button {
    min-height: 38px; padding-inline: 13px; border-color: var(--gs-line);
    border-radius: 999px; background: var(--gs-panel); font-size: 12.5px;
    scroll-snap-align: center;
  }
  .gshell-launcher-categories button.on {
    border-color: color-mix(in srgb, var(--gs-accent) 38%, var(--gs-line));
    background: var(--gs-accent-soft); color: var(--gs-ink);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--gs-accent) 12%, transparent);
  }

  .gshell-launcher-body {
    flex: 1; min-height: 0; padding: 13px 12px calc(24px + env(safe-area-inset-bottom));
    -webkit-overflow-scrolling: touch;
  }
  .gshell-launcher-section + .gshell-launcher-section,
  .gshell-native-group { margin-top: 18px; }
  .gshell-launcher-section-head { height: 27px; margin-bottom: 7px; }
  .gshell-launcher-section-head h3 { font-size: 10.5px; letter-spacing: .09em; }
  .gshell-launcher-section-head span { min-width: 21px; height: 21px; font-size: 10px; }

  .gshell-launcher-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .gshell-launcher-grid-open {
    display: flex; gap: 8px; margin-inline: -12px; padding: 1px 12px 5px;
    overflow-x: auto; overflow-y: hidden; scrollbar-width: none;
    overscroll-behavior-inline: contain; scroll-snap-type: inline mandatory;
  }
  .gshell-launcher-grid-open::-webkit-scrollbar { display: none; }
  .gshell-launcher-grid-open > .gshell-launcher-card {
    min-width: 164px; flex: 0 0 164px; scroll-snap-align: start;
  }

  #gshellLauncherFavGrid {
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px 6px; margin: 0; padding: 0; overflow: visible;
  }
  #gshellLauncherFavGrid > .gshell-launcher-card {
    min-width: 0; overflow: visible; border: 0; background: transparent;
    box-shadow: none;
  }
  #gshellLauncherFavGrid .gli-main {
    min-height: 106px; flex-direction: column; justify-content: flex-start;
    gap: 6px; padding: 3px 2px 2px; text-align: center;
  }
  #gshellLauncherFavGrid .gli-icon { width: 46px; height: 46px; border-radius: 12px; }
  #gshellLauncherFavGrid .gli-copy { width: 100%; align-items: center; }
  #gshellLauncherFavGrid .gli-copy strong {
    font-size: 12px; line-height: 1.3; text-align: center; -webkit-line-clamp: 3;
    white-space: normal; overflow-wrap: normal; hyphens: auto;
  }
  #gshellLauncherFavGrid .gli-copy small,
  #gshellLauncherFavGrid .gli-open { display: none; }
  #gshellLauncherFavGrid .gli-fav {
    top: -4px; right: -2px; width: 40px; height: 40px;
    background: transparent; box-shadow: none;
    font-size: 15px;
  }

  .gshell-launcher-card {
    min-height: 0; padding: 0; overflow: hidden; border-radius: 12px;
    background: var(--gs-panel); box-shadow: 0 1px 2px rgba(30, 24, 16, .04);
  }
  .gli-main {
    min-height: 88px; height: 100%; flex-direction: row; justify-content: flex-start;
    align-items: center; gap: 9px; padding: 10px 34px 10px 10px; text-align: left;
  }
  .gli-icon { width: 42px; height: 42px; border-radius: 10px; }
  .gli-icon .gli-native-icon, .gli-icon .gli-connected-icon { width: 23px; height: 23px; }
  .gli-icon .gli-emoji { font-size: 21px; }
  .gli-copy { width: auto; align-items: flex-start; gap: 3px; }
  .gli-copy strong {
    width: 100%; font-size: 13px; line-height: 1.25; text-align: left;
    display: -webkit-box; white-space: normal; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  }
  .gli-copy small {
    display: -webkit-box; font-size: 10.5px; line-height: 1.28; text-align: left;
    -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  }
  .gli-open { display: flex; font-size: 8.5px; }
  .gli-fav {
    top: 2px; right: 2px; width: 40px; height: 40px;
    border-radius: 10px; background: transparent; font-size: 17px;
  }
  .gli-fav.on { color: var(--gs-accent); }
  .gli-badge { top: -5px; right: -5px; }
  .gshell-launcher-empty { padding: 44px 16px; }
}

@media (max-width: 370px) {
  .gshell-launcher-heading h2 { font-size: 19px; }
  .gshell-launcher-grid { gap: 6px; }
  .gli-main { min-height: 84px; gap: 7px; padding-inline: 8px 31px; }
  .gli-icon { width: 38px; height: 38px; }
  .gli-copy strong { font-size: 12px; }
  .gli-copy small { font-size: 9.5px; -webkit-line-clamp: 1; }
}

@media (max-width: 430px) {
  /* Trois colonnes évitent de couper « Ambassadeurs » ou « Gestionnaire »
     en plein mot. Huit favoris tiennent encore dans un écran de 360 × 780. */
  #gshellLauncherFavGrid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ── Lisibilité partagée · audit septembre 2026 ───────────────────────
   Les métadonnées restent secondaires par la couleur et la hiérarchie,
   pas par une taille de 8–10 px. Pas de zoom ni de largeur forcée. */
.tasks-live-notice { margin: 0 0 12px; padding: 12px 14px; border: 1px solid var(--gs-line, #ddd); border-radius: 10px; background: var(--gs-panel, #fff); color: var(--gs-ink, #282521); font-size: 14px; line-height: 1.5; }
.tasks-live-notice[hidden] { display: none; }
.tasks-attachment-retry { min-height: 44px; margin-top: 8px; white-space: normal; text-align: left; }
/* « Télécharger tous les fichiers » (ticket w1JPNXrMtL9IKEDJX8K0) : posé
   AU-DESSUS de la galerie, donc avant les vignettes dans l'ordre de lecture
   comme dans l'ordre de tabulation. 44 px de haut = cible tactile minimale. */
.tasks-attachment-bar { margin: 0 0 10px; }
.tasks-attachment-bar[hidden] { display: none; }
.tasks-attachment-dlall { min-height: 44px; white-space: normal; text-align: left; }
.gc-tb-status { font-size: 13px; line-height: 1.4; overflow-wrap: anywhere; }
:is(.gc-attachzone, .gc-composer) .gc-chip { gap: 6px; max-width: 100%; min-height: 44px; padding: 4px 6px 4px 10px; font-size: 14px; line-height: 1.4; }
:is(.gc-attachzone, .gc-composer) .gc-chip > span { min-width: 0; white-space: normal; overflow-wrap: anywhere; }
:is(.gc-attachzone, .gc-composer) .gc-chip button { flex-shrink: 0; min-width: 44px; min-height: 44px; padding: 8px; border-radius: 8px; font-size: 14px; opacity: 1; color: inherit; }
:is(.gc-attachzone, .gc-composer) .gc-chip button:hover { background: var(--gs-soft, #f4f1e9); }
:is(.gc-attachzone, .gc-composer) .gc-chip button:focus-visible { outline: 2px solid var(--gs-gold, #a78739); outline-offset: 2px; }
:is(.gc-attachzone, .gc-composer) .gc-chip-error { flex-wrap: wrap; width: 100%; border-radius: 12px; }
:is(.gc-attachzone, .gc-composer) .gc-chip [data-gc-retry] { border: 1px solid currentColor; font-weight: 600; }
.gc-composer .gc-chips { max-height: min(28dvh, 240px); overflow-y: auto; overscroll-behavior: contain; }
.gc-file-summary { margin-bottom: 6px; color: var(--gs-ink-dim, #625c52); font-size: 13px; line-height: 1.4; font-weight: 600; }
.gc-file-summary[hidden] { display: none; }
.gc-upload-notice { padding: 10px 12px; margin: 8px 0; border-inline-start: 3px solid #ba5144; border-radius: 10px; background: var(--gs-panel-2, #f7f1e6); color: var(--gs-ink, #282828); font-size: 14px; line-height: 1.45; }
.gc-upload-notice[hidden] { display: none; }
.gc-upload-notice[data-state="busy"] { border-inline-start-color: var(--gs-gold, #a78739); }
.gmodule-status {
  margin: 24px clamp(12px, 3vw, 32px); padding: 24px; max-width: 640px;
  border: 1px solid var(--gs-line); border-radius: 16px;
  background: var(--gs-panel); color: var(--gs-ink);
}
.gmodule-status h2 { margin: 0 0 8px; font-size: 22px; line-height: 1.25; }
.gmodule-status p { margin: 0; font-size: 15px; line-height: 1.5; color: var(--gs-ink-dim); }
.gmodule-status button { min-height: 44px; margin-top: 16px; font-size: 15px; }
.gshell-rail-label, .gshell-page-id > span,
.gshell-launcher-section-head h3, .gshell-launcher-section-head > span,
.gshell-pal-item .pt2, .gli-copy small,
.today-row .t2, .notes-eyebrow,
.pal-health-summary small, .pal-health-summary em,
.pal-services-panel header p, .pal-infra-panel header p,
.pal-service-columns, .pal-service-name small,
.pal-attention-panel header > span, .pal-attention-panel header p,
.pal-attention-panel header em, .pal-attention-kpis small,
.pal-attention-chart > small, .pal-attention-meta span,
.pal-infra-card header small, .pal-infra-card > div small, .pal-infra-card footer,
.pal-budget-card header small, .pal-budget-card p, .pal-budget-card footer {
  font-size: 12px;
  line-height: 1.45;
}
.pal-service-name strong, .pal-service-row > strong,
.pal-infra-card header strong, .pal-attention-actions .btn,
.pal-services-panel header input, .pal-refresh, .pal-env-toggle button { font-size: 14px; }
.pal-service-row { min-height: 72px; }
.pal-attention-actions .btn { min-height: 42px; }
.pal-service-name small { white-space: normal; overflow-wrap: anywhere; }
.crm-store-kpis small, .crm-store-kpis em,
.crm-store-next small, .crm-store-contact small, .crm-store-rep small,
.tasks-detail-field label, .tasks-detail-discussion #taskComposer .gc-tb-label {
  font-size: 12px;
  line-height: 1.4;
}
.crm-store-contact strong, .crm-store-rep strong { font-size: 14px; }

@media (max-width: 860px) {
  /* Sur iOS, un champ sous 16 px déclenche un zoom à la saisie. Garder le
     contexte visible est essentiel pour commenter, joindre une photo et agir. */
  body.shell-on :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]), select, textarea) {
    font-size: 16px;
  }
  /* Même confort tactile dans les tâches, le babillard et les documents. */
  .gc-composer .gc-input { font-size: 16px; line-height: 1.5; }
  .gc-composer .gc-toolbar button { min-width: 44px; min-height: 44px; font-size: 14px; }
  .gc-composer .gc-send { min-width: 88px; min-height: 44px; font-size: 14px; }
  body.shell-on :is(.gshell-launcher-close, .gshell-launcher-manage, .gshell-launcher-retry,
    .crm-action, .rn-filter, .pal-refresh) { min-height: 44px; }
  .gshell-launcher-close, .gshell-launcher-manage { min-width: 44px; }
  .pal-service-row > strong::before { font-size: 11px; }
  .crm-store-kpis small {
    white-space: normal; overflow: visible; text-overflow: clip;
    text-transform: none; letter-spacing: 0; min-height: 2.8em;
  }
  .crm-store-kpis > div, .crm-store-kpis > button { min-height: 104px; }
  .crm-store-kpis > :last-child { min-height: 78px; }
  .crm-store-kpis > :last-child small { min-height: 0; }
}

@media (prefers-reduced-motion: reduce) {
  body.shell-on :is(.gshell-launcher, .gshell-launcher-card, .crm-tab,
    .crm-card, .crm-action, .rn-row, .pal-service-row, .pal-health-summary > button) {
    transition: none;
    animation: none;
    scroll-behavior: auto;
  }
}

/* Barres mobiles : un seul calcul des espaces réservés, basé sur leur taille
   réelle (mobile-shell-layout.js). Les insets sont déjà inclus dans la mesure.
   Le viewport visuel suit le clavier ; le zoom reste géré par le navigateur. */
@media (max-width: 860px) {
  body.shell-on:not(.gs-popup-mode) {
    --gs-mobile-top: calc(63px + env(safe-area-inset-top));
    --gs-mobile-content-top: calc(var(--gs-mobile-top) + var(--gs-app-tabs-h));
    --gs-chrome-h: var(--gs-mobile-content-top);
    --gs-mobile-bottom: calc(53px + max(4px, env(safe-area-inset-bottom)));
    --gs-tabbar-h: max(0px, calc(var(--gs-mobile-bottom) - env(safe-area-inset-bottom)));
    --gs-viewport-top: 0px;
    --gs-viewport-height: 100vh;
  }
  @supports (height: 100dvh) {
    body.shell-on:not(.gs-popup-mode) { --gs-viewport-height: 100dvh; }
  }
  body.shell-on:not(.gs-popup-mode) #app-content {
    padding-top: var(--gs-mobile-content-top);
    padding-bottom: var(--gs-mobile-bottom);
  }
  body.shell-on:not(.gs-popup-mode) .gshell-topbar {
    position: fixed;
    top: var(--gs-viewport-top);
    left: 0;
    right: 0;
    padding-left: max(12px, env(safe-area-inset-left));
    padding-right: max(12px, env(safe-area-inset-right));
    box-sizing: border-box;
  }
  body.shell-on .gshell-topbar :is(.gshell-topbar-brand, .tsearch, .tbell) { min-height: 44px; }
  body.shell-on .gshell-topbar .tsearch { font-family: inherit; min-width: 0; }
  body.shell-on .gshell-topbar .tsearch > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  body.shell-on .gshell-topbar .tbell {
    display: grid; place-items: center; min-width: 44px; flex-shrink: 0;
    padding: 0; border: 0; border-radius: 10px; background: transparent;
    /* Pas de `color` ici. Ce sélecteur passe devant celui de shell.css, et
       `inherit` y remplaçait l'encre de thème (--gs-ink-faint) par celle du
       <body>, noire en sombre : la cloche disparaissait. L'encre se pose une
       seule fois, avec ses voisines, dans shell.css. */
  }
  body.shell-on .gshell-topbar button:focus-visible { outline: 2px solid var(--gs-accent); outline-offset: 2px; }
  body.shell-on:not(.gs-popup-mode) .gshell-tabbar {
    bottom: calc(100% - var(--gs-viewport-top) - var(--gs-viewport-height));
    padding-top: 4px;
    padding-bottom: max(4px, env(safe-area-inset-bottom));
    padding-left: max(3px, env(safe-area-inset-left));
    padding-right: max(3px, env(safe-area-inset-right));
  }
  /* Une seule rangée de 56 px : le bouton central surélevé réservait une
     rangée plus haute ET remontait son libellé, au-dessus de l'inset iOS. */
  body.shell-on .gshell-tabbar .gshell-tab {
    min-height: 48px; padding: 0 2px; gap: 2px; justify-content: center;
    font-size: 11px; line-height: 13px; transform: none;
  }
  body.shell-on .gshell-tabbar .gshell-tab .ic { height: 30px; display: grid; place-items: center; }
  body.shell-on .gshell-tabbar .gshell-tab-gandalf .ic { width: 32px; height: 32px; box-sizing: border-box; box-shadow: none; }
  body.shell-on .gshell-tabbar .gshell-tab-gandalf .ic-gandalf { width: 28px; height: 28px; margin: 0; }
  body.shell-on:not(.gs-popup-mode):not(.ai-popup-mode) :is(.chat-view:not(.show-pane), .tasks-view:not(.show-pane), .web-chat-view:not(.show-pane), .gshell-appframe, #ai-chat-view, .tasks-dock) {
    top: calc(var(--gs-viewport-top) + var(--gs-mobile-content-top));
    height: max(0px, calc(var(--gs-viewport-height) - var(--gs-mobile-content-top) - var(--gs-mobile-bottom)));
    bottom: auto;
    min-height: 0;
  }
  /* Recherche + filtres hors du conteneur défilant. La dernière conversation
     peut remonter au-dessus du bouton flottant, sans passer sous la navigation. */
  body.shell-on .chat-view:not(.show-pane) .chat-sidebar-top { display: flex; flex-direction: column; flex: 0 0 auto; }
  body.shell-on .chat-view:not(.show-pane) .chat-sidebar-actions { display: none; }
  body.shell-on .chat-view:not(.show-pane) .chat-search-row { padding-top: 10px; }
  body.shell-on .chat-view:not(.show-pane) .chat-tabs-row { flex: 0 0 auto; }
  body.shell-on .chat-view:not(.show-pane) .chat-convs-list {
    min-height: 0; overscroll-behavior-y: contain; padding-bottom: 0; scroll-padding-block: 8px 84px;
  }
  body.shell-on .chat-view:not(.show-pane) .chat-convs-list::after { content: ''; display: block; height: 84px; }
  body.shell-on .chat-view:not(.show-pane) .chat-fab { bottom: 16px; }
  body.shell-on.gs-has-app-tabs:not(.gs-popup-mode):not(.ai-popup-mode) :is(.chat-view.show-pane, .tasks-view.show-pane, .web-chat-view.show-pane) {
    top: calc(var(--gs-viewport-top) + env(safe-area-inset-top) + var(--gs-app-tabs-h));
    height: max(0px, calc(var(--gs-viewport-height) - env(safe-area-inset-top) - var(--gs-app-tabs-h)));
    bottom: auto;
  }
}

/* Recherche Messages : le clavier paysage peut ne laisser que 110 px.
   Ne réserver ni les barres du shell ni les filtres pendant la saisie.
   Le garde-fou :has empêche ce mode de déborder sur une autre application. */
.chat-search-done { display: none; }
@media (max-width: 860px) {
  body.shell-on.gs-chat-searching:not(.gs-popup-mode):not(.ai-popup-mode):has(#chatView:not(.hidden):not(.show-pane)) :is(.gshell-topbar, .gshell-tabbar, .gshell-apptabs, #chatView .chat-fab, #chatView .chat-header, #chatView .chat-tabs-row) { display: none; }
  body.shell-on.gs-chat-searching:not(.gs-popup-mode):not(.ai-popup-mode):has(#chatView:not(.hidden):not(.show-pane)) #app-content { padding-top: 0; padding-bottom: 0; }
  body.shell-on.gs-chat-searching:not(.gs-popup-mode):not(.ai-popup-mode) #chatView:not(.hidden):not(.show-pane) {
    top: var(--gs-viewport-top);
    height: var(--gs-viewport-height);
    max-height: none;
    bottom: auto;
    box-sizing: border-box;
    padding-bottom: env(safe-area-inset-bottom);
  }
  body.shell-on.gs-chat-searching:not(.gs-popup-mode):not(.ai-popup-mode) #chatView:not(.hidden):not(.show-pane) .chat-search-row {
    display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px;
    padding: max(8px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) 8px max(12px, env(safe-area-inset-left));
  }
  body.shell-on.gs-chat-searching:not(.gs-popup-mode):not(.ai-popup-mode) #chatView:not(.hidden):not(.show-pane) #chatConvSearch { min-width: 0; min-height: 44px; font-size: 16px; box-sizing: border-box; }
  body.shell-on.gs-chat-searching:not(.gs-popup-mode):not(.ai-popup-mode) #chatView:not(.hidden):not(.show-pane) .chat-search-done {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 44px; min-height: 44px; padding: 8px;
    border: 0; border-radius: 10px; font: inherit; font-size: 16px; font-weight: 600;
    color: var(--gs-ink, #282828); background: var(--gs-panel-2, #f7f1e6); cursor: pointer;
  }
  body.shell-on .chat-search-done:focus-visible { outline: 2px solid var(--gs-accent, #a98a45); outline-offset: 2px; }
  body.shell-on.gs-chat-searching:not(.gs-popup-mode):not(.ai-popup-mode) #chatView:not(.hidden):not(.show-pane) .chat-convs-list {
    scroll-padding-block: 8px; padding-inline: env(safe-area-inset-left) env(safe-area-inset-right);
  }
  body.shell-on.gs-chat-searching:not(.gs-popup-mode):not(.ai-popup-mode) #chatView:not(.hidden):not(.show-pane) .chat-convs-list::after { display: none; }
}

.gc-draft-status { padding: 6px 10px; font-size: 13px; line-height: 1.4; color: var(--gs-ink-dim, #625e56); }
.gc-draft-status[data-state="error"] { color: var(--gs-ink, #282828); background: var(--gs-panel-2, #f7f1e6); border-inline-start: 3px solid var(--gs-crit, #ba5144); border-radius: 8px; }
.gc-draft-recovery { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; padding: 12px; background: var(--gs-panel-2, #f7f1e6); border-radius: 12px; }
.gc-draft-recovery > span { flex: 1 1 220px; font-size: 14px; line-height: 1.45; }
.gc-draft-recovery button { min-height: 44px; padding: 8px 14px; border: 1px solid var(--gs-line, #ded8ce); border-radius: 10px; background: var(--gs-panel, #fff); color: var(--gs-ink, #282828); font: inherit; cursor: pointer; }
.gc-draft-recovery button:first-of-type { background: var(--gs-ink, #282828); color: var(--gs-panel, #fff); }
.gc-draft-recovery[hidden], .gc-draft-status[hidden] { display: none; }

/* Formulaire de tâche : progression et reprise au même endroit que l'action. */
#taskFormModal .tasks-form-actions {
  display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 10px;
}
#taskFormModal .tasks-form-actions .btn { min-height: 48px; white-space: normal; }
#taskFormModal .close-modal { min-width: 44px; min-height: 44px; border: 0; background: var(--gs-panel-2, #f7f1e6); border-radius: 12px; }
#taskFormStatus {
  grid-column: 1 / -1; padding: 12px 14px; border-radius: 12px; margin: 0;
  font-size: 14px; line-height: 1.5; overflow-wrap: anywhere;
  color: var(--gs-ink, #282828); background: var(--gs-panel-2, #f7f1e6);
  border-inline-start: 3px solid var(--gs-gold, #a98a45);
}
#taskFormStatus[data-state="error"] { border-inline-start-color: #ba5144; }
#taskFormStatus[hidden] { display: none; }
@media (min-width: 641px) {
  #taskFormModal .modal-content {
    max-height: calc(100dvh - 40px); padding: 24px; box-sizing: border-box;
    overflow-y: auto; overscroll-behavior: contain;
  }
  #taskFormModal .close-modal { position: sticky; top: 0; right: 0; float: right; z-index: 3; margin: -12px -12px 0 12px; }
  #taskFormModal .tasks-form-actions {
    position: sticky; bottom: -24px; z-index: 2;
    margin: 20px -24px -24px; padding: 14px 24px;
    background: var(--gs-panel, #fff); border-top: 1px solid var(--gs-line, #e6e2da);
  }
}

/* Contrôles des registres : une même échelle, sans agrandir les commandes
   compactes des tableaux ou modifier les autres formulaires métier. */
.amb-directory-tools.ux-directory-filters { flex-wrap: wrap; }
.amb-directory-tools.ux-directory-filters .crm-search { flex: 1 1 260px; }
.ux-directory-filters .crm-search,
.ux-directory-filters .crm-filter,
.ux-directory-filters .crm-chips button {
  min-height: var(--ux-control-height); height: auto; box-sizing: border-box;
  font-size: 14px; border-radius: 10px;
}
.ux-directory-filters .crm-search { height: var(--ux-control-height); }
.ux-directory-filters .crm-search input { min-width: 0; font-size: 14px; }
.ux-directory-filters .crm-filter { min-width: 0; max-width: 100%; }
.ux-directory-filters .crm-chips { gap: 8px; }
.ux-directory-filters .crm-chips button { padding: 9px 14px; line-height: 1.4; }
#amb-person-form .crm-actions { flex-wrap: wrap; gap: 12px; }
#amb-person-form .crm-action { min-height: var(--ux-control-height); font-size: 14px; }
#amb-person-form :disabled { opacity: .6; cursor: wait; }
@media (max-width: 860px) {
  .amb-directory-tools.ux-directory-filters .crm-search { flex: none; }
  .ux-directory-filters .crm-search input,
  .ux-directory-filters .crm-filter,
  #amb-person-form .crm-fld :is(input, select) { font-size: 16px; }
  .ux-directory-filters .crm-chips { flex-wrap: wrap; max-width: 100%; }
  .ux-state__action { width: 100%; }
}

/* Lisibilité des deux répertoires : les métadonnées ne descendent plus
   aux anciennes tailles de maquette (7–10 px). */
.agri-directory-summary small, .amb-network-summary small { font-size: 13px; }
.agri-directory-field b { font-size: 14px; }
.agri-directory-field :is(span, em), .agri-directory-name small,
.agri-directory-lots em, .agri-directory-state,
.agri-directory-preview__title p, .agri-directory-preview__facts small,
.agri-directory-composition > small, .agri-directory-signal > small,
.agri-directory-mini-map span { font-size: 12px; line-height: 1.5; }
.agri-directory-columns { min-height: 44px; font-size: 11px; line-height: 1.4; }
.agri-directory-row { min-height: 76px; padding-block: 12px; font-size: 14px; line-height: 1.45; }
.agri-directory-row > span { min-width: 0; overflow-wrap: anywhere; }
.agri-directory-name b, .agri-directory-preview__facts b,
.agri-directory-composition > span, .agri-directory-signal :is(b, p) { font-size: 14px; line-height: 1.5; }
.agri-directory-name > i { font-size: 12px; }
.agri-directory-preview__facts b { white-space: normal; overflow-wrap: anywhere; }
.agri-directory-preview__cover > button, .agri-directory-preview__actions button { min-height: 44px; font-size: 14px; }
.amb-directory-panel > header { min-height: 44px; flex-wrap: wrap; gap: 6px; padding-block: 10px; font-size: 14px; }
.amb-directory-panel > header small { font-size: 12px; }
.amb-person-row { min-height: 84px; padding-block: 12px; }
.amb-person-main strong { font-size: 15px; }
.amb-person-main small, .amb-person-state strong { font-size: 13px; line-height: 1.4; }
.amb-person-state small { font-size: 12px; }
.amb-person-detail :is(p, small, time, em) { font-size: 13px; line-height: 1.5; }
.amb-person-detail :is(.amb-snapshot-card strong, .amb-relation-event strong) { font-size: 14px; line-height: 1.5; }
.amb-person-detail .crm-action { min-height: 44px; font-size: 14px; }
@media (min-width: 861px) {
  .agri-directory-columns, .agri-directory-row {
    grid-template-columns: minmax(130px, 1.3fr) minmax(100px, 1fr) 70px minmax(72px, .8fr) minmax(90px, .9fr) minmax(98px, .9fr) 44px;
  }
}

/* Horizons : lecture confortable et filtres stables, sans changer la
   navigation horizontale des trois piles sur téléphone. */
#ligne-du-temps-view .ldt-bar { gap: 10px; }
#ligne-du-temps-view .ldt-chips[hidden] { display: none; }
#ligne-du-temps-view .ldt-search { min-height: 44px; height: 44px; max-width: none; }
#ligne-du-temps-view .ldt-search input { font-size: 14px; }
#ligne-du-temps-view .ldt-chip, #ligne-du-temps-view .ldt-select { min-height: 44px; height: auto; font-size: 14px; }
#ligne-du-temps-view .ldt-chip { padding: 10px 12px; }
#ligne-du-temps-view .ldt-kpi > span:last-child, #ligne-du-temps-view .ldt-col-q,
#ligne-du-temps-view .ldt-col-s, #ligne-du-temps-view .ldt-meta,
#ligne-du-temps-view .ldt-tag, #ligne-du-temps-view .ldt-due { font-size: 12px; line-height: 1.5; }
#ligne-du-temps-view .ldt-card-title { font-size: 16px; line-height: 1.4; }
#ligne-du-temps-view .ldt-skus { font-size: 14px; }
#ligne-du-temps-view .ldt-sku { min-height: 44px; align-items: center; padding-block: 0; }
#ligne-du-temps-view .ldt-sku label { flex: 1; min-height: 44px; display: flex; flex-wrap: wrap; align-items: center; column-gap: 4px; padding-block: 8px; box-sizing: border-box; }
#ligne-du-temps-view .ldt-bx { width: 20px; height: 20px; margin-block: 0; }
#ligne-du-temps-view .ldt-edit, #ligne-du-temps-view .ldt-plus { min-width: 44px; min-height: 44px; }
#ligne-du-temps-view .ldt-plus { font-size: 14px; }

/* Cadre partagé par les formulaires natifs Horizons, jalons et les parcours
   Products Master : import, revue, cycles, rattachements et gabarits. */
.ldt-managed-dialog {
  width: 100%; height: 100dvh; max-width: none; max-height: none;
  inset: 0; margin: 0; padding: 0; border: 0; background: transparent; backdrop-filter: none;
}
.ldt-managed-dialog:not([open]) { display: none; }
body[data-gtheme="dark"] .ldt-managed-dialog { color-scheme: dark; }
.ldt-managed-dialog::backdrop { background: rgba(31,29,25,.38); backdrop-filter: blur(2px); }
.ldt-editor--managed { width: min(560px, 100%); height: 100%; min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
.ldt-editor--managed .ldt-editor-head { flex: none; padding: max(16px, env(safe-area-inset-top)) 20px 16px; }
.ldt-editor--managed .ldt-editor-head h3 { font-size: 22px; line-height: 1.3; }
.ldt-editor--managed .ldt-editor-head p { font-size: 13px; line-height: 1.4; }
.ldt-editor--managed .ldt-editor-x { min-width: 44px; min-height: 44px; flex: none; border-radius: 10px; }
.ldt-editor--managed .ldt-editor-form { display: flex; flex-direction: column; flex: 1; min-height: 0; padding: 0; }
.ldt-editor--managed .ldt-editor-fields { flex: 1; min-height: 0; overflow: auto; overscroll-behavior: contain; padding: 20px; }
.ldt-editor--managed .ldt-editor-form label { font-size: 13px; letter-spacing: normal; text-transform: none; }
.ldt-editor--managed .ldt-editor-form :is(input, select) { min-height: 44px; font-size: 16px; font-weight: 400; }
.ldt-editor--managed .ldt-editor-error { flex-basis: 100%; margin: 0; font-size: 14px; line-height: 1.5; }
.ldt-editor--managed .ldt-editor-error:empty { display: none; }
.ldt-editor--managed .ldt-editor-actions { flex: none; flex-wrap: wrap; margin: 0; padding: 14px 20px max(14px, env(safe-area-inset-bottom)); background: var(--crm-card); }
.ldt-editor--managed .ldt-editor-sync { flex-basis: 100%; font-size: 12px; }
.ldt-editor--managed .ldt-editor-actions button { min-height: 44px; flex: 1; font-size: 14px; }
.ldt-editor--managed .ldt-editor-confirm { flex: none; display: flex; flex-wrap: wrap; gap: 10px; padding: 16px 20px max(16px, env(safe-area-inset-bottom)); border-top: 1px solid var(--crm-line); background: var(--crm-card-2); }
.ldt-editor--managed .ldt-editor-confirm p { width: 100%; margin: 0 0 4px; font-size: 15px; line-height: 1.4; }
.ldt-editor--managed .ldt-editor-confirm button { min-height: 44px; flex: 1 1 150px; font-size: 14px; }
.ldt-editor--managed .ldt-editor-confirm[hidden], .ldt-editor--managed .ldt-editor-actions[hidden] { display: none; }
.ldt-editor--managed .ldt-editor-remove { color: var(--gs-crit, #B85443); }
.ldt-editor--managed :disabled { opacity: .6; cursor: wait; }
.ldt-workflow-dialog .ldt-editor-fields { overflow-wrap: anywhere; }
.ldt-workflow-dialog .ldt-editor-fields > .ldt-jbtn { min-height: 44px; margin-bottom: 16px; font-size: 14px; }
.ldt-workflow-dialog .ldt-editor-fields :is(p, li, .ldt-import-note) { font-size: 14px; line-height: 1.5; }
.ldt-workflow-dialog .ldt-workflow-progress { flex-basis: 100%; margin: 0; font-size: 14px; line-height: 1.5; color: var(--crm-ink-2); }
.ldt-workflow-dialog .ldt-editor-actions { overflow-wrap: anywhere; }
.ldt-workflow-dialog .ldt-editor-actions .ldt-editor-error { max-height: min(140px, calc(var(--gs-viewport-height, 100dvh) * .3)); overflow: auto; }
.ldt-workflow-progress:empty, .ldt-import-file:empty { display: none; }
.ldt-workflow-dialog input[type=file] { width: 100%; min-width: 0; box-sizing: border-box; }
.ldt-workflow-dialog input[type=file]::file-selector-button { min-height: 44px; padding: 8px 12px; margin-right: 10px; border: 1px solid var(--crm-line); border-radius: 8px; background: var(--crm-card); color: var(--crm-ink); font: inherit; }
.ldt-workflow-dialog .ldt-review-pager { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; align-items: center; gap: 10px; margin-bottom: 16px; }
.ldt-review-pager span { font-size: 14px; text-align: center; }
.ldt-workflow-dialog .ldt-review-pager button { width: 44px; min-height: 44px; padding: 8px; }
.ldt-review-source { border: 1px solid var(--crm-line); border-radius: 10px; margin-bottom: 16px; padding: 0 12px; }
.ldt-review-source summary { min-height: 44px; align-content: center; cursor: pointer; font-size: 14px; font-weight: 600; }
.ldt-workflow-result h4 { margin: 0 0 12px; font-size: 22px; line-height: 1.3; }
.ldt-import-warnings { margin: 16px 0; padding-left: 22px; }
.ldt-import-warnings li + li { margin-top: 12px; }
.ldt-workflow-dialog .ldt-cycle-context { font-weight: 600; color: var(--crm-ink); }
.ldt-cycle-products { list-style: none; padding: 0; margin: 0; }
.ldt-cycle-product { display: flex; align-items: flex-start; gap: 12px; border-bottom: 1px solid var(--crm-line); padding: 12px 0; }
.ldt-workflow-dialog .ldt-editor-form .ldt-cycle-product .ldt-bx { width: 22px; min-height: 22px; height: 22px; margin: 12px 0 0; flex: none; }
.ldt-workflow-dialog .ldt-cycle-product label { flex: 1; min-width: 0; min-height: 44px; margin: 0; padding: 6px 0; cursor: pointer; }
.ldt-cycle-product strong { display: block; font-size: 16px; line-height: 1.4; }
.ldt-cycle-product label > span { display: block; font-size: 13px; font-weight: 400; line-height: 1.5; margin-top: 4px; color: var(--crm-ink-2); }
.ldt-cycle-product label > .ldt-cycle-warning { color: var(--crm-ink); background: var(--crm-card-2); border-radius: 8px; padding: 8px; }
.ldt-cycle-product[hidden], .ldt-cycle-search[hidden], .ldt-cycle-filter [hidden] { display: none; }
.ldt-cycle-filter { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; }
.ldt-cycle-filter p { flex: 1; margin: 0; }
.ldt-cycle-filter button { min-height: 44px; font-size: 14px; }
.ldt-workflow-dialog .ldt-cycle-selection { flex-basis: 100%; margin: 0; font-size: 14px; line-height: 1.5; }
.ldt-cycle-impact { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 16px 0; }
.ldt-cycle-impact p { margin: 0; padding: 12px; background: var(--crm-card-2); border: 1px solid var(--crm-line); border-radius: 10px; }
.ldt-cycle-impact strong { display: block; font-size: 24px; line-height: 1.3; }
.ldt-cycle-impact span { font-size: 13px; line-height: 1.5; }
@media (max-width: 860px) {
  #ligne-du-temps-view .ldt-search input, #ligne-du-temps-view .ldt-select { font-size: 16px; }
  .ldt-managed-dialog { inset: var(--gs-viewport-top, 0px) 0 auto; height: var(--gs-viewport-height, 100dvh); }
  .ldt-editor--managed { width: 100%; border-left: 0; }
}

/* Produits / Ligne du temps : un nom lisible, des filtres stables et une
   fiche qui reste dans la largeur de l'écran, même avec un journal long. */
.ldt-products .ldt-barre { gap: 10px; }
.ldt-products .ldt-barre .crm-search { flex: 1 1 260px; min-height: 44px; height: 44px; margin: 0; }
.ldt-products .ldt-barre select { min-height: 44px; width: auto; flex: 0 1 240px; max-width: 100%; padding: 8px 12px; border: 1px solid var(--crm-line-strong); border-radius: 10px; background: var(--crm-card); color: var(--crm-ink); font: inherit; font-size: 14px; }
.ldt-products .ldt-fiche-row { position: relative; min-height: 72px; gap: 10px; padding: 14px 38px 14px 16px; }
.ldt-products .ldt-fiche-row:focus-visible, .ldt-products .ldt-jalon-titre:focus-visible { outline: 2px solid var(--crm-accent); outline-offset: 3px; }
.ldt-products .ldt-fiche-nom { font-size: 16px; line-height: 1.4; overflow-wrap: anywhere; }
.ldt-products .ldt-fiche-nom small { display: block; margin-top: 3px; font-size: 13px; font-weight: 400; color: var(--crm-ink-2); }
.ldt-products .ldt-fiche-sku, .ldt-products .ldt-fiche-date { font-size: 13px; line-height: 1.5; color: var(--crm-ink-2); overflow-wrap: anywhere; }
.ldt-products .ldt-fiche-chevron { position: absolute; top: 16px; right: 14px; font-size: 18px; color: var(--crm-ink-2); }
.ldt-products .ldt-fiche-row[aria-expanded="true"] .ldt-fiche-chevron { transform: rotate(180deg); }
.ldt-products .ldt-fiche-detail { padding: 16px; }
.ldt-products .ldt-fiche-detail[hidden] { display: none; }
.ldt-products .ldt-fiche-corps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.ldt-products .ldt-fiche-corps > section { min-width: 0; }
.ldt-products .ldt-fiche-corps h4 { font-size: 16px; line-height: 1.4; color: var(--crm-ink); }
.ldt-products .ldt-compte { font-size: 13px; color: var(--crm-ink-2); }
.ldt-products .ldt-jalon, .ldt-products .ldt-journal-ligne { font-size: 14px; line-height: 1.5; }
.ldt-products .ldt-jalon-titre { min-height: 44px; display: flex; align-items: center; padding-block: 8px; box-sizing: border-box; overflow-wrap: anywhere; }
.ldt-products .ldt-jalon-date, .ldt-products .ldt-journal-date, .ldt-products .ldt-journal-qui, .ldt-products .ldt-journal-motif { font-size: 13px; color: var(--crm-ink-2); }
.ldt-products .ldt-journal-ligne { padding-block: 10px; overflow-wrap: anywhere; }
.ldt-products .ldt-jalon--fait { opacity: 1; color: var(--crm-ink-2); }
.ldt-products .ldt-fiche-collapse { margin-top: 16px; }
body[data-gtheme="dark"] .ldt-products select { color-scheme: dark; }
@media (max-width: 860px) {
  .ldt-products .ldt-barre .crm-search { flex: 1 1 100%; }
  .ldt-products .ldt-barre input, .ldt-products .ldt-barre select { font-size: 16px; }
  .ldt-products .ldt-barre select { flex: 1 1 140px; min-width: 0; }
  .ldt-products .ldt-fiche-corps { grid-template-columns: minmax(0, 1fr); }
  .ldt-products .ldt-fiche-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding-right: 16px; }
  .ldt-products .ldt-fiche-nom { padding-right: 22px; }
  .ldt-products :is(.ldt-fiche-nom, .ldt-fiche-sku, .ldt-fiche-tags) { grid-column: 1 / -1; }
  .ldt-products .ldt-fiche-row > .ldt-tag--st { justify-self: end; max-width: 100%; white-space: normal; }
  .ldt-products .ldt-jalon { display: grid; grid-template-columns: 16px minmax(0, 1fr); align-items: center; row-gap: 0; }
  .ldt-products .ldt-jalon-date { grid-column: 2; margin-bottom: 8px; }
}

/* Gestion des jalons : commandes explicites, texte lisible, aucune colonne
   hors cadre lorsque l'espace devient trop étroit. */
.ldt-management .ldt-jtools { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
.ldt-management .ux-filter-feedback[hidden] { display: none; }
.ldt-management .ldt-jsearch { min-width: 0; margin: 0; }
.ldt-management .ldt-jsearch input, .ldt-management .ldt-jtools select { min-height: 44px; font-size: 14px; }
.ldt-management .ldt-jbtn { min-height: 44px; font-size: 14px; }
.ldt-management .ldt-jhead p { font-size: 14px; }
.ldt-management .ldt-jlabels, .ldt-management .ldt-jrow { grid-template-columns: 110px minmax(160px, 2fr) minmax(110px, 1fr) minmax(100px, 1fr) 48px 96px; gap: 12px; }
.ldt-management .ldt-jrow { padding: 14px; }
.ldt-management .ldt-jmain { min-width: 0; overflow-wrap: anywhere; }
.ldt-management .ldt-jmain strong { font-size: 16px; line-height: 1.4; white-space: normal; overflow: visible; text-overflow: clip; }
.ldt-management .ldt-jmain span, .ldt-management .ldt-jdate, .ldt-management .ldt-jsector, .ldt-management .ldt-jowner, .ldt-management .ldt-jprogress { font-size: 13px; line-height: 1.5; color: var(--crm-ink-2); overflow-wrap: anywhere; }
.ldt-management .ldt-jactions { display: flex; gap: 8px; }
.ldt-management .ldt-jactions button { min-width: 44px; width: 44px; min-height: 44px; height: 44px; font-size: 19px; }
.ldt-management .ldt-jactions button:focus-visible { outline: 2px solid var(--crm-accent); outline-offset: 2px; }
.ldt-jalon-dialog .ldt-delete-title { font-size: 18px; font-weight: 700; overflow-wrap: anywhere; }
.ldt-jalon-dialog .ldt-editor-fields > p { font-size: 16px; line-height: 1.5; }
body[data-gtheme="dark"] .ldt-management select { color-scheme: dark; }
@media (max-width: 1100px) {
  .ldt-management .ldt-jlabels { display: none; }
  .ldt-management .ldt-jrow { grid-template-columns: minmax(0, 1fr) auto; align-items: start; }
  .ldt-management .ldt-jmain { grid-column: 1 / -1; grid-row: 1; }
  .ldt-management .ldt-jdate { grid-column: 1; grid-row: 2; }
  .ldt-management .ldt-jsector { display: block; grid-column: 1; grid-row: 3; }
  .ldt-management .ldt-jowner { display: block; grid-column: 1; grid-row: 4; }
  .ldt-management .ldt-jprogress { grid-column: 2; grid-row: 2; justify-self: end; }
  .ldt-management .ldt-jactions { grid-column: 2; grid-row: 3 / 5; align-self: end; }
}
@media (max-width: 600px) {
  .ldt-management .ldt-jhead { flex-direction: column; align-items: stretch; }
  .ldt-management .ldt-jhead-actions { justify-content: stretch; }
  .ldt-management .ldt-jhead-actions button { flex: 1 1 150px; }
  .ldt-management .ldt-jtools { grid-template-columns: minmax(0, 1fr); }
  .ldt-management .ldt-jsearch input, .ldt-management .ldt-jtools select { min-width: 0; width: 100%; font-size: 16px; }
}

/* ── Espaces métier plein cadre ───────────────────────────────────────
   Sur ordinateur, le rail donne déjà une limite gauche très lisible. Un
   second plafond à 1376 px comprimait pourtant les tableaux et laissait une
   grande zone morte à droite. Les espaces de travail utilisent maintenant
   toute la largeur restante, avec une gouttière stable de 20 px. Les contenus
   éditoriaux (Aujourd'hui, Notes, conversations) gardent leur mesure courte. */
@media (min-width: 861px) {
  .crm-otabs,
  #crm-view .crm-ck,
  #crm-view .crm-directory-v2,
  #crm-view .crm-store-fiche,
  #crm-view .crm-activity-page,
  #crm-view .crm-route-page,
  #crm-view .crm-stats-v2,
  #agriculture-view > .crm-cockpit,
  #agriculture-view > .agri-directory-page,
  #agriculture-view > .agri-section-page,
  #ambassadeurs-view > .crm-wrap,
  #diffusions-view > .crm-wrap,
  #ligne-du-temps-view > .crm-wrap,
  #reunions-view,
  #support-view,
  #wswnw-view > .wswnw-wrap,
  #palantir-view {
    box-sizing: border-box;
    width: calc(100% - 40px);
    max-width: none;
    margin-inline: auto;
  }

  /* Le routeur CRM rend chaque page dans ce nœud de garde asynchrone. Il est
     l'enfant direct de #crm-view et héritait donc encore de l'ancien plafond. */
  #crm-view > .crm-ecran {
    width: 100%;
    max-width: none;
    margin-inline: 0;
  }

  /* Ce conteneur était lui-même plafonné avant son .crm-wrap : retirer
     seulement le plafond de l'enfant aurait donc conservé la zone blanche. */
  #ambassadeurs-view {
    width: 100%;
    max-width: none;
    margin-inline: 0;
  }
}

.sup-shadowfax { border: 1px solid var(--gs-line); border-radius: 12px; padding: 12px; margin: 12px 0; }
.sup-shadowfax .sup-d-meta { margin: 8px 0 0; }

.sup-promotion { border: 1px solid var(--gs-line); border-radius: 12px; padding: 12px 14px; margin: 0 0 14px; display: flex; flex-direction: column; gap: 8px; }
.sup-promotion-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.sup-promotion-commits ul { margin: 6px 0 0; padding-left: 18px; font-size: 13px; }
