/* ============================================================
   Nexus Marketplace — la feuille du site public (lot P3, v2).
   Statique, versionnée ?v= dans marketplace::layout, aucun build.

   MÊME CHARTE QUE LE PRODUIT : les jetons ci-dessous sont copiés de
   public/ftms-theme.css (Inter, chrome blanc, sarcelle #0f766e / #0d9488,
   bordures très douces, ombres réservées aux surfaces flottantes) — la
   feuille du produit est scellée sous `.ftms-app` et porte le shell admin,
   le site porte donc sa propre feuille sur les mêmes valeurs. Clair
   seulement ; tout est en variables pour un sombre ultérieur.
   ============================================================ */
:root {
  /* Accent — #0d9488 = anneaux et soft, #0f766e = actions remplies et texte accent (AA sur blanc). */
  --p-accent: #0d9488; --p-accent-texte: #0f766e; --p-accent-hover: #0f766e; --p-accent-soft: rgba(15, 118, 110, .10);
  --p-cta: linear-gradient(135deg, #0f766e 0%, #115e59 100%);
  --p-cta-ombre: 0 1px 2px rgba(15, 118, 110, .3); --p-cta-ombre-hover: 0 3px 10px rgba(15, 118, 110, .35);
  /* Chrome */
  --p-blanc: #ffffff; --p-chrome-2: #f3f4f6; --p-texte: #1e293b; --p-titre: #111827; --p-sous: #6b7280; --p-muet: #9ca3af;
  --p-ligne: #e8eaed; --p-ligne-tuile: #e5e7eb; --p-ligne-champ: #cbd5e1; --p-fond: #fafbfc; --p-graphite: #1e1f21; --p-tete-tableau: #f8fafc;
  /* Encre (hero, panneau marque des pages d'auth — la page de connexion du produit) */
  --p-encre: linear-gradient(162deg, #0d1d1a 0%, #081412 55%, #061110 100%);
  --p-encre-texte: #e6f2ef; --p-encre-sous: #7fa39c; --p-encre-ligne: rgba(94, 234, 212, .14); --p-menthe: #5eead4; --p-menthe-2: #2dd4bf;
  /* Rayons, élévations, espacement, typographie */
  --p-r-1: 4px; --p-r-2: 6px; --p-r-3: 8px; --p-r-4: 12px; --p-r-5: 16px; --p-r-tuile: 14px; --p-r-icone: 17px; --p-r-pill: 9999px;
  --p-e-1: 0 1px 2px rgba(15, 23, 42, .06); --p-e-2: 0 2px 8px rgba(15, 23, 42, .08); --p-e-3: 0 8px 24px rgba(15, 23, 42, .12); --p-e-4: 0 16px 48px rgba(15, 23, 42, .18);
  --p-e-tuile: 0 8px 22px rgba(15, 118, 110, .12);
  --p-s-1: 4px; --p-s-2: 8px; --p-s-3: 12px; --p-s-4: 16px; --p-s-5: 24px; --p-s-6: 32px;
  --p-t-caption: 11px; --p-t-cell: 13px; --p-t-body: 14px; --p-t-title: 18px; --p-t-page: 22px; --p-t-kpi: 30px;
  --p-police: 'Inter', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --p-serif: 'DM Serif Display', Georgia, 'Times New Roman', serif;
  --p-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --p-d-1: 120ms; --p-d-2: 180ms; --p-d-3: 240ms; --p-ease: cubic-bezier(.4, 0, .2, 1);
  /* Sévérités (bandeaux, toasts) — même échelle que le produit */
  --p-sev-info-fg: #0369a1; --p-sev-info-bg: #f0f9ff; --p-sev-info-bd: #bae6fd;
  --p-sev-attention-fg: #b45309; --p-sev-attention-bg: #fffbeb; --p-sev-attention-bd: #fde68a;
  --p-sev-bloquant-fg: #b91c1c; --p-sev-bloquant-bg: #fef2f2; --p-sev-bloquant-bd: #fecaca;
  --p-sev-succes-fg: #6d28d9; --p-sev-succes-bg: #f3e8ff; --p-sev-succes-bd: #ddd6fe;
  --p-sev-ok-fg: #047857; --p-sev-ok-bg: #ecfdf5; --p-sev-ok-bd: #a7f3d0;
  --p-z-entete: 30; --p-z-menu: 40; --p-z-barre-bas: 50; --p-z-tiroir: 900; --p-z-toast: 1100;
  --p-entete-h: 56px; --p-largeur: 1180px;
}
@media (prefers-reduced-motion: reduce) { :root { --p-d-1: 0ms; --p-d-2: 0ms; --p-d-3: 0ms; } }

/* ── 1. Base ─────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { color-scheme: light; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body.place { margin: 0; font: 400 var(--p-t-body)/1.5 var(--p-police); color: var(--p-texte); background: var(--p-fond); min-height: 100vh; display: flex; flex-direction: column; -webkit-font-smoothing: antialiased; }
body.place.is-verrouille { overflow: hidden; }
h1, h2, h3, h4 { margin: 0 0 .4em; color: var(--p-titre); line-height: 1.25; font-weight: 700; letter-spacing: -.01em; }
h1 { font-size: var(--p-t-page); } h2 { font-size: var(--p-t-title); } h3 { font-size: 15px; } h4 { font-size: var(--p-t-body); }
p { margin: 0 0 .75em; } p:last-child { margin-bottom: 0; }
a { color: var(--p-accent-texte); text-decoration: none; } a:hover { text-decoration: underline; }
strong { font-weight: 600; } small { font-size: var(--p-t-caption); }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
img, svg { max-width: 100%; vertical-align: middle; }
:focus-visible { outline: 2px solid var(--p-accent-texte); outline-offset: 2px; }
.place-saut { position: absolute; left: -999px; top: 0; background: var(--p-accent-texte); color: #fff; padding: 8px 12px; border-radius: 0 0 var(--p-r-3) 0; z-index: 200; }
.place-saut:focus { left: 8px; }
.place-sous { color: var(--p-sous); font-size: var(--p-t-cell); }
.place-sous--urgent { color: var(--p-sev-bloquant-fg); font-weight: 600; }
.place-mono { font-family: var(--p-mono); font-size: 12.5px; }
.place-num { font-variant-numeric: tabular-nums; }
.place-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.place-pile { display: flex; flex-direction: column; gap: var(--p-s-3); }
.place-ligne { display: flex; flex-wrap: wrap; align-items: center; gap: var(--p-s-2); }
.place-ligne--entre { justify-content: space-between; }
.place-lien { font-weight: 600; }
.place-icone { flex: none; }
.place-icone[hidden], [hidden] { display: none !important; }

/* ── 2. Coque : entête, navigation, menus, conteneurs, pied ── */
.place-entete { position: sticky; top: 0; z-index: var(--p-z-entete); background: var(--p-blanc); border-bottom: 1px solid var(--p-ligne); }
.place-entete__int { max-width: var(--p-largeur); margin: 0 auto; min-height: var(--p-entete-h); padding: 0 var(--p-s-4); display: flex; align-items: center; gap: var(--p-s-4); }
.place-logo { display: inline-flex; align-items: center; gap: 8px; color: var(--p-titre); font-weight: 800; font-size: 16px; letter-spacing: .01em; text-decoration: none; }
.place-logo:hover { text-decoration: none; }
.place-logo svg { width: 28px; height: 28px; flex: none; }
.place-logo__tag { font-size: var(--p-t-caption); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--p-accent-texte); background: var(--p-accent-soft); border-radius: var(--p-r-pill); padding: 2px 8px; }
.place-burger { margin-left: auto; width: 40px; height: 40px; border: 1px solid var(--p-ligne); border-radius: var(--p-r-3); background: var(--p-blanc); display: inline-flex; flex-direction: column; justify-content: center; align-items: center; gap: 4px; }
.place-burger span { width: 18px; height: 2px; background: var(--p-titre); border-radius: 2px; transition: transform var(--p-d-2) var(--p-ease), opacity var(--p-d-2); }
.place-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.place-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.place-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
.place-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--p-blanc); border-bottom: 1px solid var(--p-ligne); box-shadow: var(--p-e-3); padding: var(--p-s-2); flex-direction: column; gap: 2px; }
.place-nav.is-ouvert { display: flex; }
.place-nav__lien { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 8px 10px; border-radius: var(--p-r-3); color: var(--p-texte); font-weight: 500; text-decoration: none; }
.place-nav__lien:hover { background: var(--p-chrome-2); text-decoration: none; }
.place-nav__lien.is-actif { color: var(--p-accent-texte); background: var(--p-accent-soft); }
.place-nav__droite { display: flex; align-items: center; gap: var(--p-s-2); }
.place-nav__cta { margin-top: 4px; }
.place-nav__compte { position: relative; }
.place-compte { display: inline-flex; align-items: center; gap: 8px; background: none; border: 1px solid transparent; border-radius: var(--p-r-pill); padding: 3px 8px 3px 3px; color: var(--p-titre); min-height: 40px; }
.place-compte:hover { background: var(--p-chrome-2); }
.place-compte__nom { font-size: var(--p-t-cell); font-weight: 600; max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.place-cloche { position: relative; width: 40px; height: 40px; border: 1px solid transparent; border-radius: var(--p-r-3); background: none; display: inline-flex; align-items: center; justify-content: center; color: var(--p-sous); }
.place-cloche:hover { background: var(--p-chrome-2); color: var(--p-titre); }
.place-pastille { position: absolute; top: 4px; right: 2px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: var(--p-r-pill); background: #b91c1c; color: #fff; font-size: var(--p-t-caption); font-weight: 700; line-height: 18px; text-align: center; box-shadow: 0 0 0 2px var(--p-blanc); }
.place-menu { position: absolute; right: 0; top: calc(100% + 6px); z-index: var(--p-z-menu); min-width: 260px; max-width: min(360px, calc(100vw - 24px)); background: var(--p-blanc); border: 1px solid var(--p-ligne); border-radius: var(--p-r-4); box-shadow: var(--p-e-3); padding: 6px; display: flex; flex-direction: column; }
.place-menu[hidden] { display: none; }
.place-menu__tete { padding: 8px 10px 10px; border-bottom: 1px solid var(--p-ligne); margin-bottom: 4px; display: flex; flex-direction: column; gap: 4px; font-size: var(--p-t-cell); color: var(--p-sous); }
.place-menu__tete strong { color: var(--p-titre); font-size: var(--p-t-body); }
.place-menu a, .place-menu__sortie { display: flex; align-items: center; gap: 8px; width: 100%; text-align: left; padding: 9px 10px; border-radius: var(--p-r-3); color: var(--p-texte); background: none; border: 0; text-decoration: none; min-height: 40px; }
.place-menu a:hover, .place-menu__sortie:hover, .place-menu a:focus-visible { background: var(--p-chrome-2); text-decoration: none; }
.place-menu__sortie { color: var(--p-sev-bloquant-fg); border-top: 1px solid var(--p-ligne); margin-top: 4px; border-radius: 0 0 var(--p-r-3) var(--p-r-3); }
.place-menu__pied { padding: 8px 10px; border-top: 1px solid var(--p-ligne); margin-top: 4px; font-size: var(--p-t-cell); }
.place-menu--notifs { min-width: 340px; }
.place-menu--notifs .place-notif { padding: 8px 10px; }
@media (min-width: 900px) {
  .place-burger { display: none; }
  .place-nav { display: flex; position: static; flex-direction: row; align-items: center; margin-left: auto; padding: 0; border: 0; box-shadow: none; background: none; gap: 2px; }
  .place-nav__lien { min-height: 36px; }
  .place-nav__droite { margin-left: var(--p-s-2); }
  .place-nav__cta { margin: 0 0 0 4px; }
}
@media (max-width: 899.98px) {
  .place-nav__droite { flex-direction: column; align-items: stretch; padding-top: 6px; border-top: 1px solid var(--p-ligne); margin-top: 4px; }
  .place-nav__compte { width: 100%; }
  .place-compte { width: 100%; justify-content: flex-start; }
  .place-menu { position: static; box-shadow: none; border: 0; padding: 0 0 0 12px; max-width: none; }
  .place-cloche { width: 100%; justify-content: flex-start; gap: 8px; padding: 0 10px; }
  .place-cloche .place-pastille { position: static; box-shadow: none; }
}
.place-page { flex: 1; width: 100%; max-width: var(--p-largeur); margin: 0 auto; padding: var(--p-s-5) var(--p-s-4) 48px; }
.place-page--etroite { max-width: 760px; }
.place-page--large { max-width: 980px; }
.place-page--auth { max-width: none; padding: 0; }
.place-pied { border-top: 1px solid var(--p-ligne); background: var(--p-blanc); color: var(--p-sous); font-size: var(--p-t-cell); }
.place-pied__int { max-width: var(--p-largeur); margin: 0 auto; padding: 18px var(--p-s-4) 20px; display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; }
.place-pied__marque { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--p-titre); }
.place-pied__liens { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 18px; margin-top: 2px; }
.place-pied__liens a { color: var(--p-sous); font-weight: 600; }
.place-pied__liens a:hover { color: var(--p-accent-texte); text-decoration: none; }
.place-entete-page { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: var(--p-s-3); margin-bottom: var(--p-s-4); }
.place-entete-page__gauche { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.place-entete-page__titre { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.place-entete-page__sous { color: var(--p-sous); font-size: var(--p-t-cell); display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.place-entete-page__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.place-retour { display: inline-flex; align-items: center; gap: 4px; color: var(--p-sous); font-size: var(--p-t-cell); font-weight: 600; margin-bottom: 8px; }
.place-retour:hover { color: var(--p-accent-texte); text-decoration: none; }
.place-section { margin-top: var(--p-s-6); }
.place-section__titre { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 12px; margin-bottom: var(--p-s-3); }
.place-section__titre h2 { margin: 0; }


/* ── 2 bis. Coque de l'application connectée (lot P4.1) : le rail du FMS ── */
/* Même anatomie que `.ftms-gnav` du produit : 56 px graphite, marque X en tête, tuiles = carré dégradé 28 px
   (36 px + anneau blanc au survol et à l'actif) + tag 9 px. Le contenu est DÉCALÉ par margin-left + width
   (jamais padding-left seul : le bord droit se ferait couper). Sous 640 px le rail devient la barre du bas. */
.place--app { --p-rail-w: 56px; --p-rail-fond: var(--p-graphite); --p-rail-2: #2a2b2e; --p-rail-texte: #c9cbd1; }
.place-rail { position: fixed; top: 0; left: 0; bottom: 0; z-index: calc(var(--p-z-entete) + 1); display: flex; flex-direction: column; align-items: center; width: var(--p-rail-w); padding: 10px 0 12px; background: var(--p-rail-fond); border-right: 1px solid var(--p-rail-2); color: var(--p-rail-texte); }
.place-rail__nav { display: flex; flex-direction: column; align-items: center; gap: 6px; flex: 1; width: 100%; padding-top: 4px; }
.place-rail__marque { display: flex; align-items: center; justify-content: center; width: 48px; height: 46px; margin-bottom: 4px; border-radius: 10px; text-decoration: none; }
.place-rail__marque svg { width: 34px; height: 34px; border-radius: 11px; box-shadow: 0 1px 3px rgba(0, 0, 0, .35); transition: transform var(--p-d-1) var(--p-ease); }
.place-rail__marque:hover svg { transform: scale(1.06); }
.place-rail__marque.is-actif { background: var(--p-rail-2); }
.place-rail__marque.is-actif svg { box-shadow: 0 0 0 2px #5a5ed9, 0 2px 8px rgba(0, 0, 0, .35); }
.place-rail__btn { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; width: 48px; min-height: 44px; padding: 6px 0; border: 0; border-radius: 10px; background: transparent; color: var(--p-rail-texte); text-decoration: none; transition: background var(--p-d-1) var(--p-ease), color var(--p-d-1) var(--p-ease); }
.place-rail__btn:hover, .place-rail__btn.is-actif { background: var(--p-rail-2); color: #fff; text-decoration: none; }
.place-rail__btn svg { width: 28px; height: 28px; padding: 5px; box-sizing: border-box; border-radius: 8px; color: #fff; background: var(--grad, var(--p-cta)); box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .18); transition: width var(--p-d-1) var(--p-ease), height var(--p-d-1) var(--p-ease); }
.place-rail__btn:hover svg, .place-rail__btn.is-actif svg { width: 36px; height: 36px; padding: 7px; box-shadow: 0 0 0 2px #fff, 0 2px 8px rgba(0, 0, 0, .35); }
.place-rail__tag { font-size: 9px; font-weight: 800; letter-spacing: .08em; line-height: 1; color: #fff; }
.place--app .place-entete, .place--app .place-page, .place--app .place-pied { margin-left: var(--p-rail-w); width: calc(100% - var(--p-rail-w)); max-width: calc(100% - var(--p-rail-w)); }
.place--app .place-page { padding-left: var(--p-s-5); padding-right: var(--p-s-5); }
.place--app .place-page__int { max-width: var(--p-largeur); margin: 0 auto; }
.place--app .place-page--etroite .place-page__int { max-width: 760px; }
.place--app .place-page--large .place-page__int { max-width: 980px; }
.place--app .place-page--auth .place-page__int { max-width: none; }
.place--app .place-entete__int, .place--app .place-pied__int { max-width: none; }
.place-entete--app .place-entete__int { gap: var(--p-s-3); padding: 0 var(--p-s-4) 0 var(--p-s-5); }
.place-module { display: inline-flex; align-items: center; gap: 10px; min-width: 0; color: var(--p-titre); font-weight: 700; font-size: 15px; }
.place-module__ico { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 8px; flex: none; box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .18); }
.place-module__ico--place { background: none; box-shadow: none; }
.place-module__nom { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.place-recherche { position: relative; flex: 0 1 360px; min-width: 0; margin-left: var(--p-s-3); }
.place-recherche input { width: 100%; height: 38px; padding: 0 40px 0 12px; border: 1px solid var(--p-ligne-champ); border-radius: var(--p-r-3); background: var(--p-chrome-2); font-size: var(--p-t-cell); color: var(--p-texte); }
.place-recherche input:focus { background: var(--p-blanc); border-color: var(--p-accent); outline: none; box-shadow: 0 0 0 3px var(--p-accent-soft); }
.place-recherche button { position: absolute; right: 4px; top: 4px; width: 30px; height: 30px; border: 0; border-radius: var(--p-r-2); background: none; color: var(--p-sous); display: inline-flex; align-items: center; justify-content: center; }
.place-recherche button:hover { background: var(--p-blanc); color: var(--p-titre); }
.place-entete__actions { display: flex; align-items: center; gap: var(--p-s-2); margin-left: auto; flex: none; }
.place-entete__action { min-height: 38px; }
.place-entete__ligne2 { display: flex; align-items: center; height: 40px; padding: 0 var(--p-s-4) 0 var(--p-s-5); background: var(--p-chrome-2); border-top: 1px solid var(--p-ligne); }
.place-entete__ligne2 .place-onglets { border: 0; margin: 0; flex-wrap: nowrap; }
.place-entete__ligne2 { overflow-x: auto; scrollbar-width: none; }
.place-entete__ligne2::-webkit-scrollbar { display: none; }
@media (max-width: 1079.98px) { .place-entete__action span { display: none; } .place-entete__action { padding-left: 10px; padding-right: 10px; } }
@media (max-width: 899.98px) {
  .place-recherche { display: none; }
  .place--app .place-nav__compte { width: auto; }
  .place--app .place-menu { position: absolute; box-shadow: var(--p-e-3); border: 1px solid var(--p-ligne); padding: 6px; max-width: min(360px, calc(100vw - 24px)); }
  .place--app .place-cloche { width: 40px; justify-content: center; gap: 0; padding: 0; }
  .place--app .place-cloche .place-pastille { position: absolute; box-shadow: 0 0 0 2px var(--p-blanc); }
  .place--app .place-compte { width: auto; }
}
/* Téléphone (lot P4.7) : le rail devient un TIROIR ouvert par le burger de la barre haute — les mêmes tuiles qu'au bureau, avec leur libellé. */
.place-burger--app { display: none; }
.place-rail__lbl { display: none; }
.place-rail-voile { display: none; position: fixed; inset: 0; z-index: calc(var(--p-z-tiroir) - 1); background: rgba(15, 23, 42, .45); }
@media (max-width: 639.98px) {
  .place--app .place-burger--app { display: inline-flex; margin: 0; width: 38px; height: 38px; flex: none; }
  .place--app .place-rail { transform: translateX(-100%); transition: transform var(--p-d-3) var(--p-ease); width: 248px; padding: 12px 10px 16px; align-items: stretch; z-index: var(--p-z-tiroir); border-right: 0; }
  .place--app .place-rail.is-ouvert { transform: none; box-shadow: 0 20px 50px rgba(0, 0, 0, .4); }
  .place--app .place-rail.is-ouvert ~ .place-rail-voile { display: block; }
  .place--app .place-rail__nav { align-items: stretch; gap: 4px; padding-top: 8px; }
  .place--app .place-rail__marque { width: 48px; margin: 0 0 8px 2px; }
  .place--app .place-rail__btn { flex-direction: row; justify-content: flex-start; gap: 12px; width: 100%; min-height: 48px; padding: 6px 8px; border-radius: 10px; }
  .place--app .place-rail__btn svg, .place--app .place-rail__btn:hover svg { width: 34px; height: 34px; padding: 7px; }
  .place--app .place-rail__btn.is-actif svg { width: 34px; height: 34px; padding: 7px; box-shadow: 0 0 0 2px #fff; }
  .place--app .place-rail__tag { width: 34px; text-align: left; font-size: 10px; color: #9aa0a8; order: 3; margin-left: auto; }
  .place--app .place-rail__lbl { display: block; font-size: 14px; font-weight: 600; color: #fff; }
  .place--app .place-entete, .place--app .place-page, .place--app .place-pied { margin-left: 0; width: 100%; max-width: 100%; }
  .place--app .place-page { padding-left: var(--p-s-3); padding-right: var(--p-s-3); padding-bottom: 40px; }
  .place-entete--app .place-entete__int { padding: 0 var(--p-s-3); gap: var(--p-s-2); }
  .place--app .place-compte__nom { display: none; }
  /* Les statistiques d'abord, petites, sur une ligne qui défile ; la liste vient juste dessous. */
  .place--app .place-tuiles, .place--app .place-tuiles--4, .place--app .place-tuiles--3 { display: flex; overflow-x: auto; gap: 8px; padding-bottom: 4px; margin-bottom: 12px !important; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .place--app .place-tuiles::-webkit-scrollbar { display: none; }
  .place--app .place-tuiles > .place-tuile { flex: 0 0 auto; min-width: 128px; max-width: 160px; padding: 10px 12px; gap: 2px; }
  .place--app .place-tuiles .place-tuile__tete { font-size: 10px; }
  .place--app .place-tuiles .place-tuile__valeur { font-size: 20px; }
  .place--app .place-tuiles .place-tuile__pied, .place--app .place-tuiles .place-tuile__delta { display: none; }
  .place--app .place-entete-page { margin-bottom: 8px; }
}

/* ── 3. Boutons ─────────────────────────────────────────── */
.place-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 40px; padding: 9px 16px; border-radius: var(--p-r-3); border: 1px solid transparent; font-weight: 600; font-size: var(--p-t-body); line-height: 1.2; text-decoration: none; white-space: nowrap; cursor: pointer; transition: background var(--p-d-1) var(--p-ease), border-color var(--p-d-1), color var(--p-d-1), box-shadow var(--p-d-1), filter var(--p-d-1); }
.place-btn:hover { text-decoration: none; }
.place-btn:active { transform: scale(.97); }
.place-btn:focus-visible { outline: none; border-color: var(--p-accent); box-shadow: 0 0 0 3px var(--p-accent-soft); }
.place-btn--cta, .place-btn--principal { background: var(--p-cta); color: #fff; box-shadow: var(--p-cta-ombre); }
.place-btn--cta:hover, .place-btn--principal:hover { filter: brightness(1.08); box-shadow: var(--p-cta-ombre-hover); color: #fff; }
.place-btn--secondaire { background: var(--p-blanc); color: var(--p-accent-texte); border-color: var(--p-ligne-champ); }
.place-btn--secondaire:hover { border-color: var(--p-accent); background: var(--p-accent-soft); }
.place-btn--ghost, .place-btn--discret { background: transparent; color: var(--p-sous); }
.place-btn--ghost:hover, .place-btn--discret:hover { background: var(--p-chrome-2); color: var(--p-titre); }
.place-btn--danger { background: var(--p-blanc); color: var(--p-sev-bloquant-fg); border-color: var(--p-sev-bloquant-bd); }
.place-btn--danger:hover { background: var(--p-sev-bloquant-bg); }
.place-btn--danger.place-btn--plein { background: #b91c1c; color: #fff; border-color: #b91c1c; }
.place-btn--inverse { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .4); }
.place-btn--inverse:hover { background: rgba(255, 255, 255, .1); color: #fff; }
.place-btn--sm, .place-btn--petit { min-height: 32px; padding: 5px 10px; font-size: var(--p-t-cell); }
.place-btn--lg, .place-btn--grand { min-height: 48px; padding: 12px 20px; font-size: 15px; }
.place-btn--bloc { width: 100%; }
.place-btn--icone { width: 40px; padding: 0; }
.place-btn--icone.place-btn--sm { width: 32px; }
.place-btn[disabled], .place-btn.is-inactif { opacity: .55; pointer-events: none; }
.place-btn.is-chargement { position: relative; color: transparent !important; pointer-events: none; }
.place-btn.is-chargement::after { content: ''; position: absolute; width: 16px; height: 16px; border: 2px solid rgba(255, 255, 255, .5); border-top-color: #fff; border-radius: 50%; animation: place-tourne .8s linear infinite; }
.place-btn--secondaire.is-chargement::after, .place-btn--ghost.is-chargement::after { border-color: var(--p-accent-soft); border-top-color: var(--p-accent-texte); }
@keyframes place-tourne { to { transform: rotate(360deg); } }
.place-boutons { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }

/* ── 4. Chips, badges, avatars, compte à rebours, progression ── */
.place-chip { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border: 1px solid transparent; border-radius: var(--p-r-pill); font-size: var(--p-t-caption); font-weight: 600; line-height: 1.5; white-space: nowrap; vertical-align: middle; background: #f1f5f9; color: #334155; border-color: #cbd5e1; }
.place-chip--neutre { background: #f1f5f9; color: #334155; border-color: #cbd5e1; }
.place-chip--nominal, .place-chip--ok { background: #ccfbf1; color: #0f766e; border-color: #99f6e4; }
.place-chip--attention, .place-chip--attente { background: #fffbeb; color: #b45309; border-color: #fde68a; }
.place-chip--bloquant, .place-chip--ko { background: #fef2f2; color: #b91c1c; border-color: #fecaca; }
.place-chip--en_cours, .place-chip--info { background: #f5f3ff; color: #6d28d9; border-color: #ddd6fe; }
.place-chip--termine { background: #ecfdf5; color: #047857; border-color: #a7f3d0; }
.place-chip--bleu { background: #dbeafe; color: #1d4ed8; border-color: #bfdbfe; }
.place-chip--nouveau { background: #fef3c7; color: #92400e; border-color: #fde68a; }
.place-chip--sm { padding: 1px 6px; font-size: 10px; }
a.place-chip:hover { text-decoration: none; filter: brightness(.97); }
.place-chip .place-icone { width: 12px; height: 12px; }
.place-badge-certifie { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: var(--p-r-pill); background: #ccfbf1; color: #0f766e; border: 1px solid #99f6e4; font-size: var(--p-t-caption); font-weight: 700; white-space: nowrap; vertical-align: middle; }
.place-badge-certifie--sm { padding: 1px 5px; }
.place-avatar { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 32px; height: 32px; border-radius: 50%; background: var(--p-cta); color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; }
.place-avatar--sm { width: 24px; height: 24px; font-size: 10px; }
.place-avatar--lg { width: 64px; height: 64px; font-size: 22px; }
.place-avatar--societe { border-radius: var(--p-r-3); background: linear-gradient(135deg, #30e9e0, #117d79); }
.place-avatar--societe.place-avatar--lg { border-radius: var(--p-r-4); }
.place-delai { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: var(--p-r-pill); background: #f1f5f9; color: #334155; border: 1px solid #cbd5e1; font-size: var(--p-t-caption); font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.place-delai.is-urgent { background: #fffbeb; color: #b45309; border-color: #fde68a; }
.place-delai.is-depasse { background: var(--p-chrome-2); color: var(--p-muet); border-color: var(--p-ligne); }
.place-progression { position: relative; height: 8px; border-radius: var(--p-r-pill); background: var(--p-ligne-tuile); overflow: hidden; }
.place-progression span { display: block; height: 100%; border-radius: var(--p-r-pill); background: var(--p-cta); transition: width var(--p-d-3) var(--p-ease); }
.place-progression--fin { height: 4px; }
.place-progression__ligne { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; font-size: var(--p-t-caption); color: var(--p-sous); margin-bottom: 6px; }
.place-progression__ligne strong { color: var(--p-titre); font-variant-numeric: tabular-nums; }
.place-points { display: inline-flex; align-items: center; gap: 6px; font-size: var(--p-t-cell); color: var(--p-sous); }
.place-points .place-icone { color: var(--p-muet); }

/* ── 5. Formulaires ─────────────────────────────────────── */
.place-champ { display: flex; flex-direction: column; gap: 6px; min-width: 0; margin-bottom: var(--p-s-3); }
.place-champ > label, .place-label { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .02em; color: var(--p-texte); }
.place-label b, .place-champ > label b { color: var(--p-accent-texte); font-weight: 700; }
.place-champ .place-aide { font-size: 12px; color: var(--p-sous); }
.place-champ .place-erreur, .place-erreur { display: flex; align-items: flex-start; gap: 4px; font-size: 12px; color: var(--p-sev-bloquant-fg); }
.place-champ.is-erreur .place-input, .place-champ.is-erreur .place-select, .place-input.is-invalide { border-color: var(--p-sev-bloquant-fg); }
.place-champ--ligne { flex-direction: row; align-items: center; gap: 10px; }
.place-input, .place-champ input:not([type=checkbox]):not([type=radio]):not([type=file]), .place-champ select, .place-champ textarea {
  width: 100%; min-height: 42px; padding: 10px 14px; border: 1px solid var(--p-ligne-champ); border-radius: var(--p-r-3); background: var(--p-blanc); color: var(--p-texte);
  font-size: 15px; line-height: 1.35; transition: border-color var(--p-d-1) var(--p-ease), box-shadow var(--p-d-1) var(--p-ease); }
.place-input:focus, .place-champ input:focus, .place-champ select:focus, .place-champ textarea:focus { outline: none; border-color: var(--p-accent); box-shadow: 0 0 0 3px var(--p-accent-soft); }
.place-input:disabled, .place-champ input:disabled, .place-champ select:disabled, .place-champ textarea:disabled { opacity: .55; cursor: not-allowed; background: var(--p-chrome-2); }
.place-input::placeholder { color: var(--p-muet); }
textarea.place-input, .place-champ textarea { resize: vertical; min-height: 88px; }
.place-input--sm { min-height: 36px; padding: 6px 10px; font-size: var(--p-t-cell); }
.place-champ__enveloppe { position: relative; }
.place-champ__enveloppe .place-input, .place-champ .place-champ__enveloppe > input:not([type=checkbox]):not([type=radio]):not([type=file]) { padding-left: 42px; }
.place-champ__enveloppe > .place-icone { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--p-muet); pointer-events: none; transition: color var(--p-d-1); }
.place-champ__enveloppe:focus-within > .place-icone { color: var(--p-accent-texte); }
.place-champ__enveloppe .place-oeil { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); width: 32px; height: 32px; border: 0; background: none; border-radius: var(--p-r-2); color: var(--p-muet); display: inline-flex; align-items: center; justify-content: center; }
.place-champ__enveloppe .place-oeil:hover { color: var(--p-accent-texte); background: var(--p-chrome-2); }
.place-champ__enveloppe:has(.place-oeil) .place-input, .place-champ .place-champ__enveloppe:has(.place-oeil) > input:not([type=checkbox]):not([type=radio]):not([type=file]) { padding-right: 44px; }
/* Select stylé : natif (sélecteur du système sur mobile), chevron en fond, même anneau. */
.place-select, select.place-input, .place-champ select {
  -webkit-appearance: none; -moz-appearance: none; appearance: none; padding-right: 40px; cursor: pointer;
  background: var(--p-blanc) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center / 16px 16px; }
.place-select:focus, select.place-input:focus, .place-champ select:focus { background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%230f766e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); }
.place-select::-ms-expand { display: none; }
.place-select option { color: var(--p-texte); }
.place-select[multiple] { background-image: none; padding-right: 14px; min-height: 120px; }
.place-select:has(option[value='']:checked) { color: var(--p-sous); }
.place-select--sm { min-height: 36px; padding: 6px 34px 6px 10px; font-size: var(--p-t-cell); }
/* Dates : zone cliquable pleine largeur, hauteur kit. */
.place-input[type=date], .place-input[type=time], .place-input[type=datetime-local], .place-champ input[type=date], .place-champ input[type=time] { display: block; height: 42px; min-height: 42px; padding-block: 0; line-height: 42px; color-scheme: light; }
.place-input[type=date]::-webkit-calendar-picker-indicator, .place-champ input[type=date]::-webkit-calendar-picker-indicator, .place-input[type=time]::-webkit-calendar-picker-indicator { cursor: pointer; opacity: .65; }
.place-input[type=date]::-webkit-calendar-picker-indicator:hover { opacity: 1; }
.place-plage { display: grid; grid-template-columns: auto 1fr auto 1fr; align-items: center; gap: 6px; padding: 0 0 0 12px; border: 1px solid var(--p-ligne-champ); border-radius: var(--p-r-3); background: var(--p-blanc); transition: border-color var(--p-d-1), box-shadow var(--p-d-1); }
.place-plage:focus-within { border-color: var(--p-accent); box-shadow: 0 0 0 3px var(--p-accent-soft); }
.place-plage > span { font-size: 12px; color: var(--p-sous); text-transform: uppercase; font-weight: 700; letter-spacing: .02em; }
.place-plage .place-input { border: 0; box-shadow: none !important; min-height: 40px; height: 40px; line-height: 40px; padding: 0 8px; background: transparent; }
@media (max-width: 559.98px) { .place-plage { grid-template-columns: auto 1fr; } }
/* Sélecteur cherchable du produit (public/ftms-picker.js, mode liste statique) — règles reprises hors `.ftms-app`. */
.place-picker { position: relative; }
.place-picker > .place-icone { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); color: var(--p-muet); pointer-events: none; }
.place-picker .ftms-picker__input { padding-right: 40px; }
.ftms-picker { position: relative; display: block; }
.ftms-picker__pop { z-index: 10090; overflow-y: auto; padding: 4px; border: 1px solid #e2e8f0; border-radius: var(--p-r-3); background: var(--p-blanc); box-shadow: var(--p-e-3); font-family: var(--p-police); }
.ftms-picker__option { display: flex; flex-direction: column; gap: 1px; width: 100%; min-height: 40px; padding: 8px 10px; border: 0; border-radius: var(--p-r-2); background: transparent; text-align: left; cursor: pointer; font: inherit; }
.ftms-picker__option:hover, .ftms-picker__option.est-actif { background: var(--p-accent-soft); }
.ftms-picker__option.is-off { opacity: .5; cursor: not-allowed; }
.ftms-picker__label { font-size: var(--p-t-body); color: #0f172a; }
.ftms-picker__sub { font-size: 12px; color: #94a3b8; }
.ftms-picker__vide { padding: 8px 10px; font-size: var(--p-t-cell); color: #94a3b8; font-style: italic; }
.ftms-picker.est-cassee .ftms-picker__input { border-color: var(--p-sev-bloquant-fg); }
/* Cases, interrupteurs, chips à cocher */
.place-case { display: flex; align-items: flex-start; gap: 8px; font-size: var(--p-t-body); min-height: 32px; cursor: pointer; text-transform: none; letter-spacing: 0; font-weight: 400; }
.place-case input { width: 16px; height: 16px; margin: 3px 0 0; accent-color: var(--p-accent); flex: none; }
.place-switch { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; font-size: var(--p-t-body); min-height: 32px; text-transform: none; letter-spacing: 0; font-weight: 400; }
.place-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.place-switch__piste { position: relative; flex: none; width: 36px; height: 20px; border-radius: var(--p-r-pill); background: var(--p-ligne-champ); transition: background var(--p-d-2); }
.place-switch__piste::after { content: ''; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: var(--p-e-1); transition: transform var(--p-d-2) var(--p-ease); }
.place-switch input:checked + .place-switch__piste { background: var(--p-accent-texte); }
.place-switch input:checked + .place-switch__piste::after { transform: translateX(16px); }
.place-switch input:focus-visible + .place-switch__piste { box-shadow: 0 0 0 3px var(--p-accent-soft); }
.place-cases-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.place-cases-chips label { position: relative; display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 6px 12px; border-radius: var(--p-r-pill); border: 1px solid var(--p-ligne-champ); background: var(--p-blanc); font-size: var(--p-t-cell); font-weight: 600; color: var(--p-texte); cursor: pointer; text-transform: none; letter-spacing: 0; transition: background var(--p-d-1), border-color var(--p-d-1), color var(--p-d-1); }
.place-cases-chips input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.place-cases-chips label:hover { border-color: var(--p-accent); }
.place-cases-chips label:has(input:checked) { background: #ccfbf1; color: #0f766e; border-color: #99f6e4; }
.place-cases-chips label:has(input:checked)::before { content: '✓'; font-size: 12px; }
.place-cases-chips label:has(input:focus-visible) { box-shadow: 0 0 0 3px var(--p-accent-soft); }
.place-cases-chips label:has(input:disabled) { opacity: .55; cursor: not-allowed; }
/* Dépôt de fichiers */
.place-depot { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; padding: 20px 16px; border: 1.5px dashed var(--p-ligne-champ); border-radius: var(--p-r-4); background: var(--p-blanc); text-align: center; cursor: pointer; transition: border-color var(--p-d-1), background var(--p-d-1); text-transform: none; letter-spacing: 0; font-weight: 400; }
.place-depot:hover, .place-depot.is-survol { border-color: var(--p-accent); background: var(--p-accent-soft); }
.place-depot:focus-within { box-shadow: 0 0 0 3px var(--p-accent-soft); border-color: var(--p-accent); }
.place-depot input[type=file] { position: absolute; opacity: 0; width: 1px; height: 1px; }
.place-depot .place-icone { color: var(--p-accent-texte); }
.place-depot__titre { font-size: var(--p-t-body); font-weight: 600; color: var(--p-titre); }
.place-depot__aide { font-size: 12px; color: var(--p-sous); }
.place-depot--compact { padding: 12px; flex-direction: row; justify-content: flex-start; text-align: left; gap: 10px; }
.place-depot--compact .place-depot__aide { display: none; }
.place-depot.is-erreur { border-color: var(--p-sev-bloquant-fg); }
.place-depot__liste { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 4px; font-size: var(--p-t-cell); }
.place-depot__liste li { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 10px; border-radius: var(--p-r-2); background: var(--p-chrome-2); }
.place-depot__liste button { border: 0; background: none; color: var(--p-sous); padding: 2px 6px; border-radius: var(--p-r-1); }
.place-depot__liste button:hover { color: var(--p-sev-bloquant-fg); background: var(--p-sev-bloquant-bg); }
/* Sections, grilles, groupes, pied de formulaire */
.place-form-section { display: flex; align-items: center; gap: var(--p-s-3); margin: var(--p-s-4) 0 var(--p-s-3); font-size: var(--p-t-caption); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--p-accent-texte); }
.place-form-section::after { content: ''; flex: 1; border-top: 1px solid var(--p-ligne); }
.place-form-section:first-child { margin-top: 0; }
.place-form-section__sous { font-weight: 500; text-transform: none; letter-spacing: 0; color: var(--p-sous); }
.place-grille-2 { display: grid; gap: 0 var(--p-s-4); }
.place-grille-3 { display: grid; gap: 0 var(--p-s-4); }
@media (min-width: 560px) { .place-grille-2 { grid-template-columns: 1fr 1fr; } .place-grille-3 { grid-template-columns: repeat(3, 1fr); } }
.place-champ--large { grid-column: 1 / -1; }
.place-groupe { display: flex; border: 1px solid var(--p-ligne-champ); border-radius: var(--p-r-3); background: var(--p-blanc); transition: border-color var(--p-d-1), box-shadow var(--p-d-1); overflow: hidden; }
.place-groupe:focus-within { border-color: var(--p-accent); box-shadow: 0 0 0 3px var(--p-accent-soft); }
.place-groupe .place-input, .place-groupe .place-select { border: 0 !important; box-shadow: none !important; border-radius: 0; min-width: 0; }
.place-groupe .place-select { width: auto; flex: none; border-left: 1px solid var(--p-ligne) !important; background-color: var(--p-chrome-2); font-weight: 600; }
.place-form__pied { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: var(--p-s-4); padding-top: var(--p-s-3); border-top: 1px solid var(--p-ligne); }
.place-form__pied--nu { border: 0; padding: 0; }
.place-form__lien { margin-left: auto; font-size: var(--p-t-cell); font-weight: 600; }
fieldset.place-nu { border: 0; padding: 0; margin: 0; min-width: 0; }
fieldset.place-nu:disabled .place-input, fieldset.place-nu:disabled .place-select { background: var(--p-chrome-2); }
.place-compteur { font-size: var(--p-t-caption); color: var(--p-muet); text-align: right; }

/* ── 6. Cartes, tuiles, relation ─────────────────────────── */
.place-carte { background: var(--p-blanc); border: 1px solid var(--p-ligne); border-radius: var(--p-r-4); padding: 20px; position: relative; }
.place-carte + .place-carte { margin-top: var(--p-s-4); }
.place-carte__titre { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; margin-bottom: var(--p-s-3); }
.place-carte__titre h2, .place-carte__titre h3 { margin: 0; }
.place-carte--accent { border-color: #99f6e4; }
.place-carte--accent::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 2px; border-radius: var(--p-r-4) var(--p-r-4) 0 0; background: var(--p-accent); }
.place-carte--sable { background: var(--p-sev-attention-bg); border-color: var(--p-sev-attention-bd); }
.place-carte--lien { display: block; color: inherit; text-decoration: none; transition: box-shadow var(--p-d-1) var(--p-ease), transform var(--p-d-1) var(--p-ease), border-color var(--p-d-1); }
.place-carte--lien:hover { box-shadow: var(--p-e-2); border-color: #d1d5db; transform: translateY(-2px); text-decoration: none; }
.place-carte--etroite { max-width: 520px; margin-left: auto; margin-right: auto; }
.place-carte--moyenne { max-width: 760px; margin-left: auto; margin-right: auto; }
.place-carte--compacte { padding: 14px 16px; }
.place-bloc { background: var(--p-blanc); border: 1px solid var(--p-ligne); border-radius: var(--p-r-4); padding: 16px; margin-bottom: var(--p-s-4); position: relative; }
.place-bloc__titre { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 10px; }
.place-bloc__titre h2, .place-bloc__titre h3 { margin: 0; }
.place-bloc--accent { border-color: #99f6e4; }
.place-bloc--accent::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 2px; border-radius: var(--p-r-4) var(--p-r-4) 0 0; background: var(--p-accent); }
.place-bloc--encart { background: #f0fdfa; border-color: #99f6e4; }
/* Tuile KPI (= .ftms-tile du produit) */
.place-tuile { position: relative; display: flex; flex-direction: column; gap: var(--p-s-1); padding: var(--p-s-4); background: var(--p-blanc); border: 1px solid var(--p-ligne); border-radius: var(--p-r-4); color: inherit; text-decoration: none; overflow: hidden; }
.place-tuile::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: #94a3b8; }
.place-tuile--nominal::before { background: var(--p-accent); } .place-tuile--attention::before { background: #d97706; } .place-tuile--bloquant::before { background: #dc2626; }
.place-tuile--en_cours::before { background: #6d28d9; } .place-tuile--termine::before { background: #047857; }
.place-tuile__tete { display: flex; align-items: center; gap: 8px; font-size: var(--p-t-caption); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--p-sous); }
.place-tuile__valeur { font-size: var(--p-t-kpi); font-weight: 700; line-height: 1.1; color: var(--p-titre); font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.place-tuile__valeur small { font-size: var(--p-t-cell); font-weight: 500; color: var(--p-sous); margin-left: 4px; }
.place-tuile__delta { font-size: var(--p-t-caption); font-weight: 600; color: var(--p-sous); }
.place-tuile__pied { font-size: var(--p-t-caption); color: var(--p-sous); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
a.place-tuile { transition: box-shadow var(--p-d-1) var(--p-ease), transform var(--p-d-1) var(--p-ease); }
a.place-tuile:hover { box-shadow: var(--p-e-2); transform: translateY(-2px); text-decoration: none; }
.place-tuile--sombre { background: rgba(255, 255, 255, .06); border-color: rgba(94, 234, 212, .18); }
.place-tuile--sombre::before { display: none; }
.place-tuile--sombre .place-tuile__tete, .place-tuile--sombre .place-tuile__pied { color: var(--p-encre-sous); }
.place-tuile--sombre .place-tuile__valeur { color: #fff; }
.place-ico { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 28px; height: 28px; border-radius: var(--p-r-3); background: #ccfbf1; color: #0f766e; }
/* Une seule teinte d'accent (demande utilisateur 2026-09-08) : les pastilles d'icône restent sarcelle ; `--gris` = élément en pause. */
.place-ico--teal { background: #ccfbf1; color: #0f766e; } .place-ico--gris { background: #f3f4f6; color: #4b5563; }
.place-ico--lg { width: 40px; height: 40px; border-radius: var(--p-r-4); }
.place-tuiles { display: grid; gap: var(--p-s-3); grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
/* Tuile du lanceur (= .ftms-lanceur-tuile de la page « Tous les modules ») */
.place-lanceur { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 22px 22px 18px; min-height: 172px; border: 1px solid var(--p-ligne-tuile); border-radius: var(--p-r-tuile); background: var(--p-blanc); color: inherit; text-decoration: none; transition: box-shadow .15s var(--p-ease), transform .15s var(--p-ease), border-color .15s; }
a.place-lanceur:hover { box-shadow: var(--p-e-tuile); transform: translateY(-2px); border-color: #d1d5db; text-decoration: none; }
.place-lanceur__icone { display: inline-flex; align-items: center; justify-content: center; width: 60px; height: 60px; border-radius: var(--p-r-icone); margin-bottom: 6px; flex: none; color: #fff; background: linear-gradient(135deg, #30e9e0, #117d79); font-weight: 800; font-size: 22px; }
.place-lanceur__nom { font-size: 19px; font-weight: 650; color: var(--p-titre); line-height: 1.25; }
.place-lanceur__accroche { font-size: 13.5px; color: var(--p-sous); line-height: 1.35; }
.place-lanceur__tag { position: absolute; top: 16px; right: 16px; font-size: var(--p-t-caption); font-weight: 800; letter-spacing: .06em; color: var(--p-muet); }
.place-lanceurs { display: grid; gap: var(--p-s-4); grid-template-columns: repeat(auto-fill, minmax(228px, 1fr)); }
@media (max-width: 640px) { .place-lanceurs { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; } .place-lanceur { min-height: 0; padding: 14px; } .place-lanceur__accroche { display: none; } }
/* Relation origine → destination */
.place-relation { display: grid; grid-template-columns: auto minmax(28px, 1fr) auto; align-items: center; gap: 8px; min-width: 0; }
.place-relation__lieu { display: flex; flex-direction: column; min-width: 0; }
.place-relation__ville { font-size: 15px; font-weight: 700; color: var(--p-titre); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.place-relation__pays { font-size: 12px; color: var(--p-sous); }
.place-relation__lieu--fin { text-align: right; }
.place-relation__trait { position: relative; height: 2px; background: var(--p-ligne-tuile); border-radius: 2px; }
.place-relation__trait::before { content: ''; position: absolute; left: 0; top: -3px; width: 8px; height: 8px; border-radius: 50%; background: var(--p-accent); }
.place-relation__trait::after { content: ''; position: absolute; right: -1px; top: -4px; width: 8px; height: 8px; border-right: 2px solid var(--p-accent); border-bottom: 2px solid var(--p-accent); transform: rotate(-45deg); }
.place-relation--lg .place-relation__ville { font-size: var(--p-t-page); white-space: normal; }
.place-relation--lg .place-relation__pays { font-size: var(--p-t-cell); }
.place-relation--lg { gap: 14px; }
.place-relation--sm { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: var(--p-t-body); color: var(--p-titre); }
.place-relation--sm .place-fleche { color: var(--p-accent); }
.place-relation__arrets { grid-column: 1 / -1; }
.place-fleche { color: var(--p-muet); }

/* ── 7. Barre de filtres, segmenté, onglets ───────────────── */
.place-filtres { background: var(--p-blanc); border: 1px solid var(--p-ligne); border-radius: var(--p-r-4); padding: 12px; margin-bottom: var(--p-s-4); }
.place-filtres__ligne { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px; }
.place-filtres__ligne .place-champ { margin: 0; flex: 0 1 190px; }
.place-filtres__ligne .place-champ--recherche { flex: 1 1 240px; }
.place-filtres__ligne .place-champ--court { flex: 0 1 160px; }
.place-filtres__ligne > .place-btn { flex: none; }
.place-filtres__plus { display: grid; gap: 8px 12px; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--p-ligne); }
.place-filtres__plus[hidden] { display: none; }
.place-filtres__plus .place-champ { margin: 0; }
.place-filtres__plus .place-champ--large { grid-column: 1 / -1; }
.place-filtres__pied { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-top: 10px; }
.place-filtres__actifs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.place-filtres__actifs a.place-chip { gap: 6px; }
.place-filtres__actifs a.place-chip::after { content: '×'; font-weight: 700; }
.place-plier[aria-expanded="true"] .place-icone { transform: rotate(180deg); }
.place-plier .place-icone { transition: transform var(--p-d-2) var(--p-ease); }
@media (max-width: 899.98px) { .place-filtres__plus { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 559.98px) { .place-filtres__plus { grid-template-columns: 1fr; } .place-filtres__ligne .place-champ { flex-basis: calc(50% - 4px); } .place-filtres__ligne .place-champ--recherche { flex-basis: 100%; } }
.place-seg { display: inline-flex; gap: 2px; padding: 3px; border-radius: var(--p-r-4); background: var(--p-chrome-2); max-width: 100%; overflow-x: auto; }
.place-seg__btn { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border: 0; border-radius: 9px; background: transparent; color: var(--p-sous); font-size: var(--p-t-cell); font-weight: 600; white-space: nowrap; text-decoration: none; min-height: 32px; cursor: pointer; transition: background var(--p-d-1), color var(--p-d-1); }
.place-seg__btn:hover { color: var(--p-titre); text-decoration: none; }
.place-seg__btn.is-actif, .place-seg__btn[aria-current], .place-seg__btn[aria-pressed="true"] { background: var(--p-blanc); color: var(--p-accent-texte); box-shadow: var(--p-e-1); }
.place-seg__btn .place-chip { margin-left: 2px; }
.place-bascule { display: inline-flex; gap: 2px; padding: 3px; border-radius: var(--p-r-4); background: var(--p-chrome-2); }
.place-bascule button { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border: 0; border-radius: 9px; background: transparent; color: var(--p-sous); font-size: var(--p-t-cell); font-weight: 600; min-height: 32px; }
.place-bascule button.is-actif, .place-bascule button[aria-pressed="true"] { background: var(--p-blanc); color: var(--p-accent-texte); box-shadow: var(--p-e-1); }
@media (max-width: 639.98px) { .place-bascule { display: none; } }
.place-onglets { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: var(--p-s-4); }
.place-onglets a { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 7px 14px; border-radius: var(--p-r-pill); background: var(--p-blanc); border: 1px solid var(--p-ligne-tuile); color: var(--p-sous); font-size: var(--p-t-cell); font-weight: 600; text-decoration: none; transition: background var(--p-d-1), color var(--p-d-1); }
.place-onglets a:hover { color: var(--p-accent-texte); background: var(--p-accent-soft); text-decoration: none; }
.place-onglets a.is-actif { background: var(--p-cta); color: #fff; border-color: transparent; box-shadow: var(--p-cta-ombre); }
.place-onglets a .place-chip { background: rgba(255, 255, 255, .2); color: inherit; border-color: transparent; }
.place-onglets a:not(.is-actif) .place-chip { background: var(--p-chrome-2); color: var(--p-sous); }
.place-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--p-ligne); overflow-x: auto; margin-bottom: var(--p-s-4); }
.place-tabs a { padding: 10px 12px; margin-bottom: -1px; border-bottom: 2px solid transparent; color: var(--p-sous); font-size: var(--p-t-body); font-weight: 600; white-space: nowrap; }
.place-tabs a:hover { color: var(--p-titre); text-decoration: none; }
.place-tabs a.is-actif { color: var(--p-accent-texte); border-bottom-color: var(--p-accent-texte); }

/* ── 8. Tableau des chargements : cartes, table, pagination ── */
.place-cartes { display: grid; gap: var(--p-s-3); }
@media (min-width: 720px) { .place-cartes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1080px) { .place-cartes { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.place-cartes--2 { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important; }
.place-chargement { display: flex; flex-direction: column; gap: 10px; padding: 16px; background: var(--p-blanc); border: 1px solid var(--p-ligne); border-radius: var(--p-r-4); position: relative; transition: box-shadow var(--p-d-1) var(--p-ease), transform var(--p-d-1) var(--p-ease), border-color var(--p-d-1); }
.place-chargement[data-place-lien] { cursor: pointer; }
.place-chargement:hover { box-shadow: var(--p-e-2); border-color: #d1d5db; transform: translateY(-2px); }
.place-chargement__haut { display: flex; flex-direction: column; gap: 8px; }
.place-chargement__badges { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.place-chargement__faits { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 10px; font-size: var(--p-t-cell); color: var(--p-texte); }
.place-chargement__faits span { display: inline-flex; align-items: center; gap: 6px; min-width: 0; }
.place-chargement__faits .place-icone { color: var(--p-muet); }
.place-chargement__chargeur { display: flex; align-items: center; gap: 8px; font-size: var(--p-t-cell); color: var(--p-sous); min-width: 0; }
.place-chargement__chargeur a { color: var(--p-titre); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.place-chargement__pied { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: auto; padding-top: 10px; border-top: 1px solid var(--p-ligne); }
.place-chargement__prix { font-size: 16px; font-weight: 700; color: var(--p-titre); font-variant-numeric: tabular-nums; }
.place-chargement__prix small { font-size: var(--p-t-caption); color: var(--p-sous); font-weight: 500; margin-left: 2px; }
.place-chargement__prix--vide { font-size: var(--p-t-cell); font-weight: 500; color: var(--p-sous); }
.place-chargement__actions { display: flex; align-items: center; gap: 8px; }
.place-tableau__cadre { background: var(--p-blanc); border: 1px solid var(--p-ligne); border-radius: var(--p-r-4); overflow: hidden; }
.place-tableau__defile { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.place-tableau { width: 100%; border-collapse: collapse; font-size: var(--p-t-body); }
.place-tableau th { padding: 12px 14px; text-align: left; font-size: var(--p-t-caption); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--p-sous); background: var(--p-tete-tableau); border-bottom: 1px solid #e2e8f0; white-space: nowrap; }
.place-tableau td { padding: 10px 14px; height: 48px; border-top: 1px solid #f1f5f9; vertical-align: middle; }
.place-tableau tbody tr:first-child td { border-top: 0; }
.place-tableau tbody tr:hover td { background: var(--p-tete-tableau); }
.place-tableau .est-num, .place-tableau td.est-num, .place-tableau th.est-num { text-align: right; font-variant-numeric: tabular-nums; }
.place-tableau .est-mono { font-family: var(--p-mono); font-size: 12px; }
.place-tableau .est-action { text-align: right; white-space: nowrap; }
.place-tableau tr.is-meilleure td { background: #f0fdfa; }
.place-tableau tr.is-meilleure td:first-child { box-shadow: inset 3px 0 0 var(--p-accent); }
.place-tableau tr.is-estompee td { opacity: .55; }
.place-tableau__cellule { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.place-tableau__cellule small { color: var(--p-sous); font-size: 12px; }
@media (max-width: 639.98px) {
  .place-tableau--empile thead { display: none; }
  .place-tableau--empile, .place-tableau--empile tbody, .place-tableau--empile tr, .place-tableau--empile td { display: block; width: 100%; }
  .place-tableau--empile tr { padding: 10px 14px; border-top: 1px solid var(--p-ligne); }
  .place-tableau--empile td { height: auto; padding: 4px 0; border: 0; display: flex; justify-content: space-between; gap: 12px; }
  .place-tableau--empile td[data-th]::before { content: attr(data-th); font-size: var(--p-t-caption); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--p-sous); flex: none; }
  .place-tableau--empile td.est-action { justify-content: flex-end; padding-top: 8px; }
  .place-tableau--empile td.est-num { text-align: right; }
}
.place-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 4px; margin-top: var(--p-s-4); }
.place-pagination a, .place-pagination span { display: inline-flex; align-items: center; justify-content: center; min-width: 36px; height: 36px; padding: 0 8px; border-radius: var(--p-r-3); font-size: var(--p-t-cell); font-weight: 600; color: var(--p-sous); text-decoration: none; }
.place-pagination a:hover { background: var(--p-chrome-2); color: var(--p-titre); text-decoration: none; }
.place-pagination .is-actif { background: var(--p-accent-soft); color: var(--p-accent-texte); border: 1px solid var(--p-accent); }
.place-pagination .is-inactif { opacity: .4; }
.place-pagination__legende { width: 100%; text-align: center; font-size: 12px; color: var(--p-muet); }

/* ── 9. Fiches : itinéraire, faits, pièces, frise, barre basse ── */
.place-fiche { display: grid; gap: var(--p-s-4); }
@media (min-width: 960px) { .place-fiche { grid-template-columns: minmax(0, 1.6fr) minmax(300px, 1fr); align-items: start; } .place-fiche > aside { position: sticky; top: calc(var(--p-entete-h) + 16px); } }
.place-fiche__entete { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; align-items: flex-start; margin-bottom: var(--p-s-3); }
.place-itineraire { list-style: none; margin: 0; padding: 0; position: relative; display: flex; flex-direction: column; gap: 14px; }
.place-itineraire::before { content: ''; position: absolute; left: 11px; top: 8px; bottom: 8px; width: 2px; background: var(--p-ligne-tuile); }
.place-itineraire li { position: relative; padding-left: 34px; display: flex; flex-direction: column; gap: 3px; }
.place-itineraire li::before { content: ''; position: absolute; left: 6px; top: 5px; width: 12px; height: 12px; border-radius: 50%; background: #94a3b8; box-shadow: 0 0 0 3px var(--p-blanc); }
.place-itineraire li:first-child::before { background: var(--p-accent); }
.place-itineraire li:last-child::before { background: #115e59; }
.place-itineraire__ville { font-size: 15px; font-weight: 700; color: var(--p-titre); }
.place-itineraire__ville small { font-weight: 500; color: var(--p-sous); font-size: 12px; margin-left: 4px; }
.place-itineraire__quand { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font-size: var(--p-t-cell); color: var(--p-texte); }
.place-itineraire__adresse { font-size: var(--p-t-cell); color: var(--p-sous); }
.place-faits { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; }
@media (min-width: 640px) { .place-faits { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.place-fait { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.place-fait small { color: var(--p-sous); font-size: var(--p-t-caption); text-transform: uppercase; letter-spacing: .04em; font-weight: 700; }
.place-fait strong { font-weight: 600; color: var(--p-titre); }
.place-fait .place-sous { font-size: 12px; }
.place-pieces { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.place-pieces li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px; border: 1px solid var(--p-ligne); border-radius: var(--p-r-3); font-size: var(--p-t-cell); }
.place-pieces__nom { display: flex; align-items: center; gap: 8px; min-width: 0; }
.place-pieces__nom .place-ico { background: var(--p-chrome-2); color: var(--p-sous); }
.place-pieces__nom span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.place-pieces__actions { display: flex; gap: 6px; flex: none; }
.place-prix { font-size: 24px; font-weight: 700; color: var(--p-titre); font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.place-prix small { font-size: var(--p-t-cell); color: var(--p-sous); font-weight: 500; margin-left: 2px; }
.place-prix--sm { font-size: 18px; }
.place-prix__legende { display: block; font-size: 12px; color: var(--p-sous); font-weight: 500; }
.place-montants { display: flex; flex-wrap: wrap; gap: 16px 28px; align-items: flex-end; }
.place-coter__tete { display: flex; justify-content: space-between; align-items: flex-end; gap: 8px; margin-bottom: 12px; }
.place-frise { list-style: none; margin: 0; padding: 0; position: relative; display: flex; flex-direction: column; gap: 12px; }
.place-frise::before { content: ''; position: absolute; left: 7px; top: 6px; bottom: 6px; width: 2px; background: var(--p-ligne-tuile); }
.place-frise li { position: relative; padding-left: 26px; display: flex; flex-direction: column; gap: 3px; font-size: var(--p-t-cell); }
.place-frise li::before { content: ''; position: absolute; left: 3px; top: 5px; width: 10px; height: 10px; border-radius: 50%; background: #94a3b8; box-shadow: 0 0 0 3px var(--p-blanc); }
.place-frise li.est-client::before { background: #1e293b; }
.place-frise li.est-partenaire::before { background: var(--p-accent-texte); }
.place-frise__tete { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.place-frise__tete time { color: var(--p-sous); font-size: 12px; font-variant-numeric: tabular-nums; }
.place-frise__tete strong { color: var(--p-titre); }
.place-frise__meta { color: var(--p-sous); font-size: 12px; }
.place-frise__bulle { margin-top: 2px; padding: 10px 12px; border-radius: var(--p-r-4); background: var(--p-tete-tableau); border: 1px solid var(--p-ligne); max-width: 60ch; white-space: pre-line; overflow-wrap: anywhere; }
.place-frise li.est-partenaire .place-frise__bulle, .place-frise li.est-moi .place-frise__bulle { background: #f0fdfa; border-color: #99f6e4; }
.place-frise__vide { color: var(--p-sous); font-size: var(--p-t-cell); }
.place-composer { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--p-ligne); }
.place-composer textarea { min-height: 64px; }
.place-composer__pied { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.place-barre-bas { display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: var(--p-z-barre-bas); background: var(--p-blanc); border-top: 1px solid var(--p-ligne); box-shadow: 0 -8px 24px rgba(15, 23, 42, .08); padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); align-items: center; justify-content: space-between; gap: 12px; }
@media (max-width: 959.98px) { .place-barre-bas { display: flex; } body.a-barre-bas .place-page { padding-bottom: 96px; } .place-fiche__coter-desk { display: none; } }
.place-notif { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border-radius: var(--p-r-3); color: inherit; text-decoration: none; border: 1px solid transparent; }
.place-notif:hover { background: var(--p-chrome-2); text-decoration: none; }
.place-notif.is-non-lue { background: var(--p-accent-soft); }
.place-notif__corps { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.place-notif__titre { font-weight: 600; color: var(--p-titre); font-size: var(--p-t-body); }
.place-notif__texte { font-size: var(--p-t-cell); color: var(--p-texte); }
.place-notif__quand { font-size: 12px; color: var(--p-sous); white-space: nowrap; }
.place-notif__point { width: 8px; height: 8px; border-radius: 50%; background: var(--p-accent); flex: none; margin-top: 6px; }
.place-notifs { display: flex; flex-direction: column; gap: 4px; }

/* ── 10. Comparateur d'offres ─────────────────────────────── */
.place-comparateur .place-tableau td:first-child, .place-comparateur .place-tableau th:first-child { position: sticky; left: 0; background: var(--p-blanc); z-index: 1; box-shadow: inset -1px 0 0 var(--p-ligne); }
.place-comparateur .place-tableau th:first-child { background: var(--p-tete-tableau); }
.place-comparateur .place-tableau tr.is-meilleure td:first-child { background: #f0fdfa; box-shadow: inset 3px 0 0 var(--p-accent), inset -1px 0 0 var(--p-ligne); }
.place-comparateur .place-tableau td:first-child { min-width: 220px; }
.place-comparateur__actions { justify-content: flex-end; flex-wrap: wrap; min-width: 200px; }
.place-comparateur__prix { font-size: 18px; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--p-titre); white-space: nowrap; }
.place-comparateur__prix small { font-size: 11px; color: var(--p-sous); font-weight: 500; }
.place-comparateur__detail td { background: var(--p-chrome-2) !important; padding: 14px; }
.place-comparateur__detail[hidden] { display: none; }
.place-ecart { display: inline-flex; flex-direction: column; gap: 2px; font-size: 12px; color: var(--p-sous); }
.place-offre-carte { border: 1px solid var(--p-ligne); border-radius: var(--p-r-4); padding: 14px; margin-bottom: 10px; background: var(--p-blanc); position: relative; }
.place-offre-carte.is-meilleure { border-color: #99f6e4; background: #f0fdfa; }
.place-offre-carte.is-estompee { opacity: .6; }

/* ── 11. Retours : vides, bandeaux, toasts, modale, tiroir, squelette ── */
.place-vide { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 40px 24px; text-align: center; background: var(--p-blanc); border: 1px solid var(--p-ligne); border-radius: var(--p-r-4); }
.place-vide__glyphe { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: var(--p-r-5); background: var(--p-chrome-2); color: var(--p-sous); margin-bottom: 6px; }
.place-vide--filtre .place-vide__glyphe { background: #fffbeb; color: #b45309; }
.place-vide--sain .place-vide__glyphe { background: #f3e8ff; color: #6d28d9; }
.place-vide__titre { font-size: var(--p-t-body); font-weight: 600; color: var(--p-titre); }
.place-vide__indice { font-size: var(--p-t-cell); color: var(--p-sous); max-width: 44ch; }
.place-vide__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 10px; }
.place-vide__filtres { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin-top: 6px; }
p.place-vide { display: block; color: var(--p-sous); font-size: var(--p-t-cell); padding: 24px; }
.place-bandeau { display: flex; align-items: flex-start; gap: 10px; padding: 12px 14px; border-radius: var(--p-r-3); border: 1px solid var(--p-sev-attention-bd); border-left-width: 4px; background: var(--p-sev-attention-bg); color: var(--p-sev-attention-fg); margin-bottom: var(--p-s-4); font-size: var(--p-t-body); }
.place-bandeau > .place-icone { flex: none; margin-top: 2px; }
.place-bandeau__corps { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.place-bandeau__titre { font-weight: 700; }
.place-bandeau a { color: inherit; font-weight: 600; text-decoration: underline; }
.place-bandeau__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.place-bandeau--info { border-color: var(--p-sev-info-bd); border-left-width: 2px; background: var(--p-sev-info-bg); color: var(--p-sev-info-fg); }
.place-bandeau--succes, .place-bandeau--ok { border-color: var(--p-sev-ok-bd); border-left-width: 2px; background: var(--p-sev-ok-bg); color: var(--p-sev-ok-fg); }
.place-bandeau--bloquant { border-color: var(--p-sev-bloquant-bd); border-left-width: 6px; background: var(--p-sev-bloquant-bg); color: var(--p-sev-bloquant-fg); }
.place-bandeau--fin { padding: 8px 12px; font-size: var(--p-t-cell); margin-bottom: var(--p-s-3); }
.place-bandeau__fermer { margin-left: auto; border: 0; background: none; color: inherit; font-size: 18px; line-height: 1; padding: 0 4px; opacity: .7; }
.place-bandeau__fermer:hover { opacity: 1; }
#place-toasts { position: fixed; right: 24px; bottom: 24px; z-index: var(--p-z-toast); display: flex; flex-direction: column-reverse; gap: 8px; width: 400px; max-width: calc(100vw - 24px); pointer-events: none; }
.place-toast { position: relative; display: flex; align-items: flex-start; gap: 10px; padding: 12px 14px 14px 18px; border-radius: var(--p-r-4); background: var(--p-blanc); border: 1px solid var(--p-ligne); box-shadow: var(--p-e-3); color: var(--p-texte); pointer-events: auto; overflow: hidden; animation: place-entre var(--p-d-2) var(--p-ease); --toast-fg: var(--p-sev-info-fg); --toast-rail: 2px; }
.place-toast::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: var(--toast-rail); background: var(--toast-fg); }
.place-toast--ok, .place-toast--succes { --toast-fg: var(--p-sev-ok-fg); --toast-rail: 2px; }
.place-toast--ko, .place-toast--bloquant { --toast-fg: var(--p-sev-bloquant-fg); --toast-rail: 6px; }
.place-toast--attente, .place-toast--attention { --toast-fg: var(--p-sev-attention-fg); --toast-rail: 4px; }
.place-toast--info { --toast-fg: var(--p-sev-info-fg); }
.place-toast > .place-icone { color: var(--toast-fg); flex: none; margin-top: 2px; }
.place-toast__corps { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; font-size: var(--p-t-cell); }
.place-toast__titre { font-weight: 600; color: var(--p-titre); font-size: var(--p-t-body); }
.place-toast__fermer { border: 0; background: none; color: var(--p-muet); font-size: 18px; line-height: 1; padding: 0 2px; border-radius: var(--p-r-1); }
.place-toast__fermer:hover { color: var(--p-titre); background: var(--p-chrome-2); }
.place-toast__minuteur { position: absolute; left: 0; bottom: 0; height: 2px; width: 100%; background: var(--toast-fg); opacity: .5; transform-origin: left; animation: place-minuteur var(--duree, 6s) linear forwards; }
.place-toast:hover .place-toast__minuteur, .place-toast:focus-within .place-toast__minuteur { animation-play-state: paused; }
.place-toast.is-sortie { animation: place-sort var(--p-d-1) var(--p-ease) forwards; }
@keyframes place-entre { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes place-sort { to { opacity: 0; transform: translateY(6px); } }
@keyframes place-minuteur { from { transform: scaleX(1); } to { transform: scaleX(0); } }
@media (max-width: 639.98px) { #place-toasts { right: 12px; left: 12px; bottom: 12px; width: auto; max-width: none; } }
dialog.place-modale { width: min(440px, calc(100vw - 32px)); padding: 24px; border: 0; border-radius: var(--p-r-5); background: var(--p-blanc); box-shadow: var(--p-e-4); color: var(--p-texte); font-family: var(--p-police); }
dialog.place-modale::backdrop { background: rgba(15, 23, 42, .45); }
dialog.place-modale[open] { animation: place-modale-entre var(--p-d-2) var(--p-ease); }
@keyframes place-modale-entre { from { opacity: 0; transform: scale(.97); } to { opacity: 1; transform: none; } }
.place-modale__titre { font-size: var(--p-t-title); font-weight: 700; color: var(--p-titre); margin: 0 0 8px; }
.place-modale__texte { color: var(--p-sous); font-size: var(--p-t-body); margin: 0 0 18px; white-space: pre-line; }
.place-modale__actions { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.place-tiroir { position: fixed; z-index: var(--p-z-tiroir); background: var(--p-blanc); box-shadow: var(--p-e-4); display: flex; flex-direction: column; visibility: hidden; transition: transform var(--p-d-3) var(--p-ease), visibility 0s linear var(--p-d-3); }
.place-tiroir.is-ouvert { visibility: visible; transform: none; transition: transform var(--p-d-3) var(--p-ease); }
.place-tiroir__tete { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 14px 16px; border-bottom: 1px solid var(--p-ligne); }
.place-tiroir__tete h2 { margin: 0; font-size: var(--p-t-title); }
.place-tiroir__corps { flex: 1; overflow-y: auto; padding: 16px; }
.place-tiroir__corps .place-bloc, .place-tiroir__corps .place-carte { border: 0; padding: 0; margin: 0; }
.place-tiroir__corps .place-bloc--accent::before, .place-tiroir__corps .place-carte--accent::before { display: none; }
@media (min-width: 900px) { .place-tiroir { top: 0; right: 0; bottom: 0; width: min(600px, 100vw); transform: translateX(100%); } }
@media (max-width: 899.98px) { .place-tiroir { left: 0; right: 0; bottom: 0; max-height: 92vh; border-radius: var(--p-r-5) var(--p-r-5) 0 0; transform: translateY(100%); } .place-tiroir__corps { padding-bottom: calc(16px + env(safe-area-inset-bottom)); } }
.place-tiroir-voile { position: fixed; inset: 0; z-index: calc(var(--p-z-tiroir) - 1); background: rgba(15, 23, 42, .35); opacity: 0; visibility: hidden; transition: opacity var(--p-d-3), visibility 0s linear var(--p-d-3); }
.place-tiroir-voile.is-ouvert { opacity: 1; visibility: visible; transition: opacity var(--p-d-3); }
.place-squelette { position: relative; overflow: hidden; background: var(--p-chrome-2); border-radius: var(--p-r-2); color: transparent !important; }
.place-squelette::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .7), transparent); animation: place-chatoie 1.4s infinite; }
@keyframes place-chatoie { from { transform: translateX(-100%); } to { transform: translateX(100%); } }
details.place-faq { border: 1px solid var(--p-ligne); border-radius: var(--p-r-3); padding: 0 14px; margin-bottom: 8px; background: var(--p-blanc); }
details.place-faq summary { cursor: pointer; padding: 12px 0; font-weight: 600; color: var(--p-titre); list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 8px; }
details.place-faq summary::-webkit-details-marker { display: none; }
details.place-faq summary::after { content: '⌄'; color: var(--p-muet); font-size: 18px; line-height: 1; transition: transform var(--p-d-2); }
details.place-faq[open] summary::after { transform: rotate(180deg); }
details.place-faq > *:not(summary) { padding-bottom: 12px; }
details.place-plie summary { cursor: pointer; font-size: var(--p-t-cell); color: var(--p-sous); font-weight: 600; }

/* ── 12. Accueil : hero, aperçu anonyme, étapes ──────────── */
.place-hero { position: relative; margin: calc(-1 * var(--p-s-5)) 0 0; padding: 64px 16px 56px; margin-inline: calc(50% - 50vw); color: var(--p-encre-texte); background: radial-gradient(620px 360px at 88% -12%, rgba(20, 184, 166, .20), transparent 58%), radial-gradient(520px 340px at -14% 112%, rgba(13, 148, 136, .14), transparent 52%), var(--p-encre); overflow: hidden; }
.place-hero::before { content: ''; position: absolute; inset: 0; background-image: linear-gradient(rgba(94, 234, 212, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(94, 234, 212, .045) 1px, transparent 1px); background-size: 44px 44px; pointer-events: none; }
.place-hero__int { position: relative; max-width: var(--p-largeur); margin: 0 auto; display: grid; gap: 40px; align-items: center; }
.place-hero__sur { font-size: .68rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--p-menthe-2); margin: 0 0 10px; }
.place-hero__titre { font-family: var(--p-serif); font-weight: 400; font-size: 2.4rem; line-height: 1.2; letter-spacing: .005em; color: #f1f7f5; margin: 0 0 16px; max-width: 22ch; }
.place-hero__titre em { font-style: italic; color: var(--p-menthe); }
.place-hero__sous { font-size: 16px; color: #b8d2cc; max-width: 52ch; margin: 0 0 22px; line-height: 1.55; }
.place-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.place-hero__fms { margin-top: 16px; font-size: var(--p-t-cell); color: var(--p-encre-sous); }
.place-hero__fms a { color: var(--p-menthe); }
.place-hero__tuiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
@media (min-width: 900px) { .place-hero__int { grid-template-columns: 1.2fr 1fr; } .place-hero__tuiles { grid-template-columns: 1fr 1fr; } .place-hero__tuiles .place-tuile:first-child { grid-column: 1 / -1; } }
@media (max-width: 639.98px) { .place-hero { padding: 40px 16px 36px; } .place-hero__titre { font-size: 1.7rem; } .place-hero__tuiles .place-tuile__valeur { font-size: 22px; } .place-hero__tuiles .place-tuile { padding: 12px; } }
.place-apercu { background: var(--p-blanc); border: 1px solid var(--p-ligne); border-radius: var(--p-r-4); overflow: hidden; }
.place-apercu__ligne { display: grid; grid-template-columns: 1fr; gap: 6px 12px; padding: 12px 16px; border-bottom: 1px solid var(--p-ligne); align-items: center; min-height: 56px; }
.place-apercu__ligne:last-of-type { border-bottom: 0; }
.place-apercu__verrou { color: var(--p-muet); display: inline-flex; align-items: center; gap: 4px; font-size: 12px; }
.place-apercu__cta { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 16px; background: var(--p-cta); color: #fff; font-weight: 600; text-decoration: none; }
.place-apercu__cta:hover { text-decoration: none; filter: brightness(1.06); color: #fff; }
@media (min-width: 720px) { .place-apercu__ligne { grid-template-columns: 2fr 1fr 1fr 1fr 24px; } .place-apercu__verrou span { display: none; } }
.place-duo { display: grid; gap: var(--p-s-4); }
@media (min-width: 900px) { .place-duo { grid-template-columns: 1fr 1fr; } }

/* ── 13. Coque d'authentification (= page de connexion du produit) ── */
body.place--auth { background: #eef3f2; background-image: radial-gradient(900px 500px at 12% -6%, rgba(13, 148, 136, .10), transparent 60%), radial-gradient(700px 420px at 100% 108%, rgba(15, 118, 110, .08), transparent 55%); }
body.place--auth .place-pied { display: none; }
.place-auth { display: flex; align-items: center; justify-content: center; min-height: calc(100vh - var(--p-entete-h)); padding: 28px 16px; }
.place-auth__coquille { width: 100%; max-width: 960px; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); background: var(--p-blanc); border-radius: var(--p-r-5); border: 1px solid rgba(226, 232, 240, .9); box-shadow: 0 32px 70px -28px rgba(7, 42, 38, .35), 0 8px 20px -10px rgba(15, 23, 42, .10); overflow: hidden; }
.place-auth__coquille--simple { max-width: 520px; grid-template-columns: 1fr; }
.place-auth__marque { position: relative; display: flex; flex-direction: column; padding: 40px 42px 34px; color: var(--p-encre-texte); background: radial-gradient(620px 360px at 88% -12%, rgba(20, 184, 166, .20), transparent 58%), radial-gradient(520px 340px at -14% 112%, rgba(13, 148, 136, .14), transparent 52%), var(--p-encre); }
.place-auth__marque::before { content: ''; position: absolute; inset: 0; background-image: linear-gradient(rgba(94, 234, 212, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(94, 234, 212, .045) 1px, transparent 1px); background-size: 44px 44px; pointer-events: none; }
.place-auth__marque > * { position: relative; }
.place-auth__logo { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 34px; font-size: 1.32rem; font-weight: 800; letter-spacing: .02em; color: #f8fafc; }
.place-auth__logo svg { width: 36px; height: 36px; filter: drop-shadow(0 8px 16px rgba(90, 94, 217, .35)); }
.place-auth__logo .place-logo__tag { color: var(--p-menthe); background: rgba(45, 212, 191, .12); border: 1px solid rgba(45, 212, 191, .30); }
.place-auth__eyebrow { font-size: .68rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--p-menthe-2); margin: 0 0 10px; }
.place-auth__enonce { font-family: var(--p-serif); font-weight: 400; font-size: 1.72rem; line-height: 1.28; letter-spacing: .005em; color: #f1f7f5; margin: 0 0 30px; max-width: 21ch; }
.place-auth__enonce em { font-style: italic; color: var(--p-menthe); }
.place-auth__echelle { display: flex; flex-direction: column; gap: 14px; margin: 0 0 auto; padding: 0; list-style: none; }
.place-auth__echelle li { display: flex; align-items: center; gap: 12px; color: #d7e7e3; font-size: var(--p-t-body); font-weight: 500; }
.place-auth__echelle li > span:first-child { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: var(--p-r-4); color: #fff; font-weight: 800; flex: none; background: linear-gradient(135deg, #30e9e0, #117d79); }
.place-auth__echelle small { display: block; font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--p-encre-sous); }
.place-auth__pied { margin-top: 30px; padding-top: 16px; border-top: 1px solid var(--p-encre-ligne); font-size: 12px; color: var(--p-encre-sous); }
.place-auth__form { padding: 40px 42px 30px; display: flex; flex-direction: column; }
.place-auth__client { font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #0d9488; margin: 0 0 6px; }
.place-auth__titre { font-size: 21px; font-weight: 700; color: #0f172a; margin: 0 0 4px; }
.place-auth__sous { font-size: var(--p-t-body); color: #64748b; margin: 0 0 22px; }
.place-auth__form .place-champ > label { font-size: .76rem; font-weight: 600; text-transform: none; letter-spacing: 0; color: #475569; }
.place-auth__form .place-input, .place-auth__form .place-champ input:not([type=checkbox]):not([type=radio]), .place-auth__form .place-champ select { height: 48px; min-height: 48px; border: 1.5px solid #e2e8f0; border-radius: 10px; }
.place-auth__form .place-input:hover { border-color: #cbd5e1; }
.place-auth__form .place-input:focus, .place-auth__form .place-champ input:focus, .place-auth__form .place-champ select:focus { border-color: #0d9488; box-shadow: 0 0 0 4px rgba(13, 148, 136, .16); }
.place-auth__form .place-btn--cta.place-btn--lg { border-radius: 10px; box-shadow: 0 14px 26px -14px rgba(15, 118, 110, .65), inset 0 1px 0 rgba(255, 255, 255, .16); }
.place-auth__liens { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 16px; margin-top: 14px; font-size: var(--p-t-cell); }
.place-lien--calme { color: #64748b; font-weight: 600; }
.place-lien--calme:hover { color: var(--p-accent-texte); }
.place-auth__note { margin-top: auto; padding-top: 18px; font-size: var(--p-t-cell); color: #64748b; }
.place-auth__etiquette { display: inline-flex; flex-direction: column; align-items: center; gap: 2px; margin: 18px auto 0; padding: 8px 14px; border-radius: var(--p-r-3); background: rgba(13, 148, 136, .06); border: 1px solid rgba(13, 148, 136, .12); font-size: 12px; color: #64748b; }
.place-auth__etiquette strong { color: var(--p-accent-texte); }
.place-auth__glyphe { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: var(--p-r-5); background: #ccfbf1; color: #0f766e; margin-bottom: 14px; }
@media (max-width: 880px) {
  .place-auth__coquille { grid-template-columns: 1fr; max-width: 480px; }
  .place-auth__marque { padding: 26px 28px 22px; }
  .place-auth__logo { margin-bottom: 18px; }
  .place-auth__enonce { font-size: 1.3rem; margin-bottom: 18px; max-width: none; }
  .place-auth__echelle { flex-direction: row; flex-wrap: wrap; gap: 10px 18px; }
  .place-auth__echelle li { font-size: var(--p-t-cell); }
  .place-auth__echelle li > span:first-child { width: 32px; height: 32px; border-radius: 9px; }
  .place-auth__pied { display: none; }
  .place-auth__form { padding: 26px 24px 22px; }
}
@media (max-width: 480px) { .place-auth__eyebrow { display: none; } .place-auth { padding: 16px 12px; } }

/* ── 14. Tableau de bord, société, dossier ────────────────── */
.place-tdb { display: grid; gap: var(--p-s-4); }
@media (min-width: 960px) { .place-tdb { grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr); align-items: start; } }
.place-tdb__aside { display: flex; flex-direction: column; gap: var(--p-s-4); }
/* Lot P4.7 : au téléphone les statistiques puis la liste viennent d'abord ; « À faire » et l'activité suivent (ordre du document). */
@media (max-width: 959.98px) { .place-tdb__aside { order: 1; } }
@media (max-width: 639.98px) { .place-page--tdb .place-entete-page__sous, .place-page--tdb .place-entete-page__actions { display: none; } .place-page--tdb .place-entete-page { margin-bottom: 10px; } .place-page--tdb .place-entete-page__titre h1 { font-size: 20px; } }
.place-a-faire { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.place-a-faire li { display: flex; align-items: center; gap: 10px; padding: 10px 0; border-top: 1px solid var(--p-ligne); font-size: var(--p-t-cell); }
.place-a-faire li:first-child { border-top: 0; padding-top: 0; }
.place-a-faire__texte { flex: 1; min-width: 0; }
.place-a-faire .place-ico { flex: none; }
.place-liste-coches { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: var(--p-t-cell); }
.place-liste-coches li { display: flex; align-items: center; gap: 8px; }
.place-liste-coches li.est-fait { color: var(--p-sous); }
.place-liste-coches li.est-fait .place-icone { color: var(--p-sev-ok-fg); }
.place-liste-coches li .place-icone { color: var(--p-muet); }
.place-societe { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; padding: 20px; background: var(--p-blanc); border: 1px solid var(--p-ligne); border-radius: var(--p-r-4); margin-bottom: var(--p-s-4); }
.place-societe__corps { flex: 1; min-width: 200px; display: flex; flex-direction: column; gap: 4px; }
.place-societe__nom { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: var(--p-t-page); font-weight: 700; color: var(--p-titre); }
.place-societe__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.place-flotte { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
@media (min-width: 720px) { .place-flotte { grid-template-columns: repeat(4, 1fr); } }
.place-flotte label { display: flex; flex-direction: column; gap: 4px; font-size: var(--p-t-cell); font-weight: 500; text-transform: none; letter-spacing: 0; }
.place-flotte label .place-sous { font-size: 11px; }
.place-flotte-tuiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 8px; }
.place-flotte-tuile { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border: 1px solid var(--p-ligne); border-radius: var(--p-r-3); }
.place-flotte-tuile strong { font-size: 20px; font-weight: 700; color: var(--p-titre); font-variant-numeric: tabular-nums; }
.place-flotte-tuile span { font-size: 12px; color: var(--p-sous); }
.place-documents li { padding: 8px 10px; }
.place-article { background: var(--p-blanc); border: 1px solid var(--p-ligne); border-radius: var(--p-r-4); padding: 32px; max-width: 760px; margin: 0 auto; line-height: 1.65; }
.place-article h1 { font-size: 26px; margin-bottom: 14px; }
.place-article h2 { display: flex; align-items: center; gap: 12px; margin: 26px 0 10px; font-size: var(--p-t-title); }
.place-article h2::after { content: ''; flex: 1; border-top: 1px solid var(--p-ligne); }
.place-article ul { padding-left: 20px; }
@media (max-width: 639.98px) { .place-article { padding: 20px; } }
.place-etapes-rail { position: sticky; top: calc(var(--p-entete-h) + 16px); display: flex; flex-direction: column; gap: 4px; }
.place-etapes-rail a { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: var(--p-r-3); color: var(--p-sous); font-size: var(--p-t-cell); font-weight: 600; text-decoration: none; }
.place-etapes-rail a span:first-child { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; border: 2px solid var(--p-ligne-champ); font-size: 12px; flex: none; }
.place-etapes-rail a.is-actif { color: var(--p-accent-texte); background: var(--p-accent-soft); }
.place-etapes-rail a.is-actif span:first-child { border-color: var(--p-accent-texte); background: var(--p-accent-texte); color: #fff; }
.place-publier { display: grid; gap: var(--p-s-4); }
@media (min-width: 900px) { .place-publier { grid-template-columns: 220px minmax(0, 1fr); align-items: start; } }
@media (max-width: 899.98px) { .place-etapes-rail { position: static; flex-direction: row; overflow-x: auto; } .place-etapes-rail a { flex: none; } }
.place-barre-collante { position: sticky; bottom: 0; z-index: 5; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; padding: 12px 0; margin-top: var(--p-s-4); background: linear-gradient(to top, var(--p-fond) 70%, transparent); }
.place-repeter__ligne { display: grid; grid-template-columns: 1fr 1fr auto; gap: 8px; align-items: end; margin-bottom: 8px; }
.place-repeter__ligne .place-champ { margin: 0; }
.place-chips-rapides { display: flex; flex-wrap: wrap; gap: 6px; }

/* ── 15. Réactif, pointeur, impression ────────────────────── */
@media (pointer: coarse) { .place-btn { min-height: 44px; } .place-btn--sm { min-height: 40px; } .place-menu a, .place-menu__sortie, .place-nav__lien { min-height: 44px; } .place-pagination a, .place-pagination span { min-width: 44px; height: 44px; } .place-onglets a, .place-seg__btn { min-height: 40px; } }
@media (max-width: 639.98px) { .place-input, .place-champ input:not([type=checkbox]):not([type=radio]):not([type=file]), .place-champ select, .place-champ textarea, .place-select { font-size: 16px; } .place-entete-page__actions .place-btn { flex: 1 1 auto; } .place-page { padding: var(--p-s-4) var(--p-s-3) 40px; } .place-carte, .place-bloc { padding: 14px; } }
@media print { .place-entete, .place-pied, .place-barre-bas, .place-filtres, #place-toasts, .place-btn, .place-bascule { display: none !important; } body.place { background: #fff; } .place-carte, .place-bloc { border: 0; padding: 0; } }

/* ── 16. Ma flotte (lot P4) : échéances, conducteur affecté ──────── */
.place-echeances { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.place-echeance { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid var(--p-ligne); }
.place-echeance:first-child { border-top: 0; }
.place-echeance__corps { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.place-echeance__corps a { color: var(--p-titre); }
.place-relation-conducteur { display: flex; align-items: center; gap: 12px; }
.place-tuiles--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 900px) { .place-tuiles--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.place-plier > summary { list-style: none; display: inline-flex; cursor: pointer; }
.place-plier > summary::-webkit-details-marker { display: none; }

/* ── 17. Fiche d'offre (lot P4.6) : la discussion à droite, le reste à gauche ── */
@media (min-width: 960px) { .place-fiche--discussion { grid-template-columns: minmax(0, 1fr) minmax(380px, 44%); } }
.place-carte--discussion .place-frise { max-height: 520px; overflow-y: auto; padding-right: 4px; }
.place-carte--activite .place-frise { max-height: 420px; overflow-y: auto; }
.place-carte--activite .place-frise li { font-size: var(--p-t-cell); }
.place-tuiles--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 639.98px) { .place-tuiles--3 { grid-template-columns: 1fr; } }
