:root {
  --fond: #F4F6F9; --surface: #FFFFFF; --texte: #16233A; --discret: #5A6577; --ligne: #D9DEE6;
  --marque: #1B3A6B; --accent: #F2B705; --vert: #237A57; --rouge: #B3261E; --bleu-clair: #E8EEF7;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--fond); color: var(--texte); font: 15px/1.55 system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; }
a { color: inherit; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
h1 { font-size: 1.6rem; margin: 0 0 16px; }
h2 { font-size: 1.1rem; margin: 0 0 12px; }
.conteneur { max-width: 1100px; margin: 0 auto; padding: 0 20px; }
main.conteneur { padding-top: 28px; padding-bottom: 28px; min-height: 70vh; }

.barre { background: var(--marque); color: #fff; }
.barre-inner { display: flex; align-items: center; gap: 24px; min-height: 58px; flex-wrap: wrap; }
.logo { font-weight: 800; font-size: 1.15rem; text-decoration: none; letter-spacing: .02em; }
.logo span { font-weight: 400; opacity: .8; }
.menu { display: flex; gap: 18px; }
.menu a { text-decoration: none; opacity: .9; }
.menu a:hover { opacity: 1; text-decoration: underline; }
.compte { margin-left: auto; display: flex; gap: 14px; align-items: center; font-size: .9rem; }
.compte form { margin: 0; }
.compte .lien { color: #fff; }

.carte { background: var(--surface); border: 1px solid var(--ligne); border-radius: 8px; padding: 20px; margin-bottom: 16px; }
.carte.etroite { max-width: 480px; margin: 40px auto; }
.carte.vide { text-align: center; padding: 40px 20px; }
.discret { color: var(--discret); font-size: .9rem; }
.titre-ligne { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.titre-ligne h1 { margin: 0; }
.deux-colonnes { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 760px) { .deux-colonnes { grid-template-columns: 1fr; } }

.bouton { display: inline-block; background: var(--marque); color: #fff; border: 2px solid var(--marque); border-radius: 6px; padding: 9px 18px; font-family: inherit; font-weight: 600; font-size: .95rem; line-height: 1.3; text-align: center; text-decoration: none; cursor: pointer; box-sizing: border-box; }
.bouton.secondaire { background: transparent; color: var(--texte); border-color: var(--ligne); }
.bouton:hover { filter: brightness(1.1); }
.lien { background: none; border: 0; padding: 0; font: inherit; text-decoration: underline; cursor: pointer; color: inherit; }

.formulaire label { display: block; font-weight: 600; font-size: .9rem; margin-bottom: 14px; }
.formulaire input[type=text], .formulaire input[type=email], .formulaire input[type=password], .formulaire input[type=tel], .formulaire select {
  display: block; width: 100%; margin-top: 5px; padding: 9px 11px; border: 1px solid var(--ligne); border-radius: 6px;
  background: var(--surface); color: var(--texte); font: 400 1rem inherit; }
.formulaire h2 { margin-top: 22px; }
.formulaire label.case { display: flex; gap: 8px; align-items: center; font-weight: 400; }
.formulaire .code { font-size: 1.6rem; letter-spacing: .4em; text-align: center; }
.renvoi { margin-top: 10px; font-size: .9rem; }
.grille { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; margin-top: 8px; }
.grille .pleine { grid-column: 1 / -1; }
@media (max-width: 640px) { .grille { grid-template-columns: 1fr; } }
.suffixe { display: flex; align-items: stretch; margin-top: 5px; }
.suffixe input { margin-top: 0 !important; border-radius: 6px 0 0 6px !important; }
.suffixe span { display: flex; align-items: center; padding: 0 12px; background: var(--bleu-clair); border: 1px solid var(--ligne); border-left: 0; border-radius: 0 6px 6px 0; font-weight: 400; white-space: nowrap; }
.choix { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; }
.option { display: flex !important; gap: 10px; align-items: flex-start; border: 2px solid var(--ligne); border-radius: 8px; padding: 12px; cursor: pointer; margin: 0 !important; }
.option:has(input:checked) { border-color: var(--marque); }
.option span { display: flex; flex-direction: column; }
.option small { font-weight: 400; color: var(--discret); }

.alerte { padding: 12px 14px; border-radius: 6px; margin-bottom: 14px; border-left: 4px solid; background: var(--surface); }
.alerte-erreur { border-color: var(--rouge); }
.alerte-succes { border-color: var(--vert); }
.alerte-info { border-color: var(--accent); }

.compteurs { display: flex; gap: 12px; margin-bottom: 18px; flex-wrap: wrap; }
.compteurs div { background: var(--surface); border: 1px solid var(--ligne); border-radius: 8px; padding: 10px 16px; color: var(--discret); }
.compteurs strong { font-size: 1.3rem; color: var(--texte); margin-right: 4px; }
.compteurs .rouge strong { color: var(--rouge); }

.tableau-defilant { overflow-x: auto; }
.tableau { width: 100%; border-collapse: collapse; background: var(--surface); border: 1px solid var(--ligne); border-radius: 8px; }
.tableau th, .tableau td { padding: 11px 14px; text-align: left; border-bottom: 1px solid var(--ligne); white-space: nowrap; }
.tableau th { font-size: .85rem; color: var(--discret); font-weight: 600; }
.tableau .droite { text-align: right; }

.badge { display: inline-block; font-size: .8rem; font-weight: 600; padding: 3px 10px; border-radius: 20px; background: var(--bleu-clair); }
.badge-en_ligne, .badge-termine, .badge-publie { background: #DDF2E8; color: #17563D; }
.badge-creation { background: #E6EBF7; color: #26408F; } /* 0.48.2 */
.badge-erreur { background: #FBE1DF; color: #8A1C15; }
.badge-en_cours { background: #FFF1C2; color: #6B5200; }
.badge-annule, .badge-suspendu { background: var(--ligne); color: var(--discret); }

dl { display: grid; grid-template-columns: 150px 1fr; gap: 6px 12px; margin: 0 0 14px; }
dt { color: var(--discret); }
dd { margin: 0; }
code { background: var(--bleu-clair); padding: 1px 6px; border-radius: 4px; }

.journal { list-style: none; padding: 0; margin: 10px 0 0; font-size: .9rem; border-left: 2px solid var(--ligne); }
.journal li { padding: 3px 0 3px 12px; }
.journal time { color: var(--discret); margin-right: 6px; font-variant-numeric: tabular-nums; }
.journal .niveau-erreur { color: var(--rouge); }
.journal .niveau-succes { color: var(--vert); }

.pied { color: var(--discret); font-size: .85rem; padding-bottom: 24px; }
.palette { display: flex; gap: 4px; margin-top: 6px; }
.palette i { width: 22px; height: 22px; border-radius: 4px; border: 1px solid var(--ligne); }
.cases { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 4px 16px; }
.cases .case { display: flex; gap: 8px; align-items: center; font-weight: 400; margin: 0; }
.ajout-route { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.ajout-route input[type=text] { flex: 1 1 320px; padding: 9px 11px; border: 1px solid var(--ligne); border-radius: 6px; font: inherit; }
.ajout-route select, .route-actions select, .route-actions input[type=text] { padding: 7px 9px; border: 1px solid var(--ligne); border-radius: 6px; font: inherit; }
.route { list-style: none; padding: 0; margin: 0; }
.route li { border-top: 1px solid var(--ligne); padding: 8px 0; }
.route summary { cursor: pointer; }
.route-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.route-actions form { display: flex; gap: 6px; margin: 0; align-items: center; }
.route-actions input[type=text] { min-width: 280px; }
.rubrique-en_cours { border-left: 4px solid var(--accent); }
.idee-rapide { display: flex; gap: 6px; margin: 0; }
.idee-rapide input { padding: 5px 9px; border-radius: 6px; border: 0; font: inherit; font-size: .9rem; width: 220px; }
.idee-rapide button { background: rgba(255,255,255,.15); color: #fff; border: 0; border-radius: 6px; padding: 5px 10px; cursor: pointer; font: inherit; font-size: .9rem; }
@media (max-width: 760px) { .idee-rapide { width: 100%; } .idee-rapide input { flex: 1; width: auto; } }
.route li.cochable { display: flex; gap: 10px; align-items: flex-start; }
.route li.cochable details { flex: 1; }
.coche { margin: 0; }
.coche button { width: 20px; height: 20px; margin-top: 2px; border: 2px solid var(--marque); border-radius: 4px; background: var(--surface); cursor: pointer; padding: 0; }
.coche button:hover { background: var(--bleu-clair); }
.historique .fait { color: var(--vert); font-weight: 700; }
.fiche { background: var(--fond); border-radius: 6px; padding: 12px 14px; margin: 10px 0; font-size: .95rem; }
.fiche p { margin: 0 0 8px; }
.etapes { list-style: none; padding: 0; margin: 0 0 8px; }
.etapes li { display: flex; gap: 10px; align-items: flex-start; padding: 4px 0; }
.etapes form { margin: 0; }
.case-etape { width: 20px; height: 20px; border: 2px solid var(--marque); border-radius: 4px; background: var(--surface); cursor: pointer; padding: 0; font-size: 13px; line-height: 14px; color: var(--vert); font-weight: 700; }
.etapes li.faite > span { color: var(--discret); text-decoration: line-through; }
.detail-historique { margin: 4px 0 0 22px; font-size: .9rem; }

/* 0.3.5 : la palette reste horizontale dans une option, et une option peut être masquée */
.option .palette { flex-direction: row; }
.option.masque { display: none !important; }

.zone { display: block; width: 100%; padding: 9px 11px; border: 1px solid var(--ligne); border-radius: 6px; font: inherit; font-weight: 400; background: var(--surface); color: var(--texte); }

.perso { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin-top: 14px; }
.perso input[type=color] { display: block; width: 100%; height: 44px; margin-top: 5px; border: 1px solid var(--ligne); border-radius: 6px; padding: 2px; background: var(--surface); }
.perso small, .option small { font-weight: 400; color: var(--discret); }
.ligne-presta { display: grid; grid-template-columns: 1fr 2fr; gap: 12px; }
@media (max-width: 640px) { .ligne-presta { grid-template-columns: 1fr; } }

.recherche { display: flex; gap: 8px; margin-top: 5px; }
.recherche input { margin-top: 0 !important; }
.propositions { display: flex; flex-direction: column; margin-top: 4px; }
.propositions button { text-align: left; background: var(--surface); border: 1px solid var(--ligne); border-top: 0; padding: 8px 10px; font: 400 .9rem inherit; cursor: pointer; color: var(--texte); }
.propositions button:first-child { border-top: 1px solid var(--ligne); border-radius: 6px 6px 0 0; }
.propositions button:last-child { border-radius: 0 0 6px 6px; }
.propositions button:hover { background: var(--bleu-clair); }

/* 0.5.0 : vignettes des mises en page de l'accueil */
.vignettes .option > span { flex: 1; }
.vignette { display: flex !important; flex-direction: column; gap: 3px; margin-top: 10px; padding: 8px; background: var(--fond); border-radius: 6px; }
.vignette i { display: block; font-style: normal; font-size: .7rem; text-transform: uppercase; letter-spacing: .06em; color: var(--discret); background: var(--surface); border: 1px solid var(--ligne); border-radius: 3px; padding: 2px 6px; }
.vignette i:first-child { padding: 12px 6px; background: var(--marque); border-color: var(--marque); color: #fff; }
.vignette i:last-child { background: var(--bleu-clair); }

/* ── Menu latéral (0.5.2) : à gauche sur ordinateur, replié en haut sur téléphone ── */
body.avec-menu { display: grid; grid-template-columns: 210px minmax(0, 1fr); grid-template-rows: 1fr auto; min-height: 100vh; }
body.avec-menu .cote { grid-column: 1; grid-row: 1 / span 2; }
body.avec-menu main.conteneur, body.avec-menu .pied { grid-column: 2; width: 100%; }
.cote { background: var(--marque); color: #fff; position: sticky; top: 0; height: 100vh; overflow-y: auto;
  display: flex; flex-direction: column; padding: 18px 14px; }
.cote-tete { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.cote .logo { display: block; padding: 4px 8px 18px; }
.burger { display: none; background: rgba(255,255,255,.15); color: #fff; border: 0; border-radius: 6px; padding: 7px 12px; font: inherit; font-size: .9rem; cursor: pointer; }
.cote-corps { display: flex; flex-direction: column; gap: 18px; flex: 1; }
.cote .menu { display: flex; flex-direction: column; gap: 2px; }
.cote .menu a { padding: 8px 10px; border-radius: 6px; opacity: .88; }
.cote .menu a:hover { opacity: 1; text-decoration: none; background: rgba(255,255,255,.1); }
.cote .menu a.actif { opacity: 1; background: rgba(255,255,255,.16); box-shadow: inset 3px 0 0 var(--accent); font-weight: 600; }
.cote .idee-rapide { flex-direction: column; }
.cote .idee-rapide input { width: 100%; }
.cote .idee-rapide button { align-self: flex-start; }
.cote .compte { margin: auto 0 0; flex-direction: column; align-items: flex-start; gap: 6px; padding: 12px 8px 0;
  border-top: 1px solid rgba(255,255,255,.15); font-size: .85rem; }
.cote .compte small { opacity: .75; }

@media (max-width: 900px) {
  body.avec-menu { display: block; }
  .cote { position: sticky; height: auto; padding: 10px 16px; z-index: 10; }
  .cote .logo { padding: 4px 0; }
  .burger { display: inline-block; }
  .cote-corps { display: none; padding: 12px 0 6px; }
  .cote-corps.ouvert { display: flex; }
  .cote .compte { margin-top: 0; }
}

/* ── Lien « Mon compte » en bas du menu (0.7.8) ── */
.cote .compte-lien{display:block;color:inherit;text-decoration:none;border-radius:6px;padding:4px 6px;margin:-4px -6px}
.cote .compte-lien:hover,.cote .compte-lien.actif{background:rgba(255,255,255,.12)}
.cote .compte-voir{text-decoration:underline;opacity:.85}

/* ── Marque blanche (0.8.2) ── */
.logo .logo-img{height:28px;width:auto;max-width:44px;object-fit:contain;vertical-align:middle;margin-right:8px;border-radius:4px;background:#fff;padding:2px}
.bouton{background:var(--action-marque,var(--marque));border-color:var(--action-marque,var(--marque))}
.bouton.secondaire{background:transparent;color:var(--texte);border-color:var(--ligne)}

/* ── Couleurs de la marque : textes lisibles sur le menu et les boutons (0.8.4) ── */
.cote{color:var(--texte-menu,#fff)}
.cote a,.cote .lien,.compte .lien{color:inherit}
.cote .menu a:hover{background:color-mix(in srgb,currentColor 12%,transparent)}
.cote .menu a.actif{background:color-mix(in srgb,currentColor 18%,transparent)}
.cote .compte-lien:hover,.cote .compte-lien.actif{background:color-mix(in srgb,currentColor 14%,transparent)}
.bouton{color:var(--texte-action,#fff)}
.bouton.secondaire{color:var(--texte)}

/* Bloc du compte en bas du menu : même couleur de texte que le menu, petits textes un peu moins pâles (0.8.5) */
.cote .compte{color:inherit;border-top-color:color-mix(in srgb,currentColor 22%,transparent)}
.cote .compte small{opacity:.82}
.cote .compte-voir{opacity:1}

/* ── Menu par sections (0.8.7) ── */
.cote .menu-section{margin:14px 10px 4px;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.6}
.cote .menu-section:first-child{margin-top:0}

/* ── Sous-menus déroulants (0.8.9) ── */
.cote .menu-groupe{border-top:1px solid color-mix(in srgb,currentColor 14%,transparent);padding-top:4px}
.cote .menu-groupe:first-child{border-top:0;padding-top:0}
.cote summary.menu-section{list-style:none;display:flex;align-items:center;justify-content:space-between;cursor:pointer;
  margin:6px 0 2px;padding:8px 10px;border-radius:6px;font-size:.74rem;opacity:.8;user-select:none}
.cote summary.menu-section::-webkit-details-marker{display:none}
.cote summary.menu-section:hover{opacity:1;background:color-mix(in srgb,currentColor 10%,transparent)}
.cote .menu-fleche{width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);
  margin:-3px 2px 0 8px;transition:transform .15s}
.cote .menu-groupe[open] .menu-fleche{transform:rotate(-135deg);margin-top:3px}
.cote .menu-liens{display:flex;flex-direction:column;gap:2px;padding-bottom:6px}
@media(prefers-reduced-motion:reduce){.cote .menu-fleche{transition:none}}

/* ── Titres de sous-menus plus marqués (0.8.10) ── */
.cote summary.menu-section{opacity:1;font-size:.78rem;font-weight:800;letter-spacing:.07em;
  background:color-mix(in srgb,currentColor 9%,transparent);box-shadow:inset 3px 0 0 var(--accent);margin:8px 0 4px}
.cote summary.menu-section:hover{background:color-mix(in srgb,currentColor 15%,transparent)}
.cote .menu-liens a{margin-left:8px}

/* Note de qualité des sites (0.10.2) */
.note-qualite{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:24px;padding:0 8px;border-radius:999px;color:#fff;font-weight:800;font-size:.82rem;cursor:help}
.carte.occasions{margin-bottom:18px}
.carte.occasions h2{margin:0 0 4px;font-size:1.05rem}
.carte.occasions ul{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.carte.occasions li{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
/* 0.12.0 : options du site */
.case-option{display:flex;gap:10px;align-items:flex-start;margin:10px 0;cursor:pointer}
.case-option input{margin-top:4px}
.case-option input:disabled+span{opacity:.55}
/* 0.12.4 : fiche du site en pleine largeur, historique à droite */
main.conteneur.large{max-width:none;padding-left:28px;padding-right:28px}
.fs-retour{margin:0 0 8px}.fs-retour a{color:var(--discret);text-decoration:none}
.fs-tete{display:flex;align-items:center;gap:18px;background:#fff;border:1px solid var(--ligne);border-radius:14px;padding:16px 20px;margin-bottom:18px;flex-wrap:wrap}
.fs-vignette{position:relative;width:160px;height:100px;border-radius:8px;overflow:hidden;flex:none;background:#eef1f5;display:flex;align-items:center;justify-content:center;color:var(--discret);font-size:.85rem}
.fs-vignette iframe{position:absolute;top:0;left:0;width:1280px;height:800px;border:0;transform:scale(.125);transform-origin:0 0;pointer-events:none}
.fs-vignette a{position:absolute;inset:0}
.fs-ident{flex:1 1 280px;min-width:0}
.fs-ident h1{margin:0;font-size:1.5rem}
.fs-pastilles{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.fs-pastilles .badge{font-size:.78rem}
.badge.fs-bleu{background:#e8eefc;color:#2f4cb0}
.fs-boutons{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}
.fs-boutons form{margin:0}
.fs-grille{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:18px;align-items:start}
.fs-cartes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:stretch}
.fs-carte{margin:0;border-radius:14px}
.fs-carte h2{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:1.05rem}
.fs-ic{width:28px;height:28px;border-radius:8px;background:#e8eefc;display:inline-flex;align-items:center;justify-content:center;font-size:.95rem}
.fs-ligne{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-top:1px solid var(--ligne)}
.fs-carte h2+.fs-ligne,.fs-carte h2+form .fs-ligne:first-child,.fs-demande+form .fs-ligne:first-child{border-top:0}
.fs-ligne strong{display:block;font-size:.95rem}
.fs-ligne small{display:block;color:var(--discret);font-size:.84rem;line-height:1.4}
.fs-ligne form{margin:0;flex:none}
.fs-retour-version{margin-top:4px!important}.fs-retour-version select{font-size:.82rem;padding:1px 4px}
.bouton.fs-vert{background:#17a36b;border-color:#17a36b;color:#fff}
.fs-demande{background:#fff8e6;border-radius:10px;padding:10px 12px;font-size:.9rem;color:#6b5200;margin-bottom:6px}
.fs-inter{cursor:pointer}
.fs-inter input[type=checkbox]{appearance:none;-webkit-appearance:none;flex:none;width:42px;height:24px;border-radius:99px;background:#cfd6e0;position:relative;cursor:pointer;margin:0;transition:background .15s}
.fs-inter input[type=checkbox]::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:left .15s}
.fs-inter input[type=checkbox]:checked{background:#17a36b}.fs-inter input[type=checkbox]:checked::after{left:21px}
.fs-inter input[type=checkbox]:disabled{opacity:.45;cursor:not-allowed}
.fs-inter input[type=checkbox]:focus-visible{outline:3px solid var(--accent,#3f62d6);outline-offset:2px}
.fs-enregistrer{margin:8px 0 0;text-align:right}
/* 0.16.0 : offre du client */
.fs-offre-g{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:18px}
.fs-lab{display:block;font-weight:600;font-size:.9rem;margin-bottom:12px}.fs-lab select{display:block;width:100%;margin-top:4px;font:inherit;padding:7px 9px;border:1px solid var(--ligne);border-radius:6px;background:#fff}
.fs-opt{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:6px 0;border-top:1px solid var(--ligne);font-size:.92rem;cursor:pointer}
.fs-opt small{color:var(--discret)}.fs-opt .fs-px{white-space:nowrap;color:var(--discret)}.fs-opt .fs-inclus{display:none;font-style:normal;font-size:.75rem;font-weight:700;background:#ddf2e8;color:#17563d;border-radius:99px;padding:1px 8px}
.fs-opt.inclus .fs-px{display:none}.fs-opt.inclus .fs-inclus{display:inline}.fs-opt.inclus{color:var(--discret)}
.fs-tot{display:flex;justify-content:space-between;font-size:1.1rem;font-weight:800;border-top:2px solid var(--marque);padding-top:9px;margin-top:10px}
@media (max-width:760px){ .fs-offre-g{grid-template-columns:1fr} }
/* 0.15.1 : accès de l'assistance */
.fs-aide{margin:0 0 8px;color:var(--discret);font-size:.88rem}
.fs-choix{justify-content:flex-start;align-items:flex-start;border:1.5px solid var(--ligne)!important;border-radius:12px;padding:10px 12px;margin-top:8px;cursor:pointer}
.fs-choix input{margin-top:4px;flex:none;width:17px;height:17px}
.fs-choix.sel,.fs-choix:has(input:checked){border-color:var(--accent,#3f62d6)!important;background:#f3f6fe}
.fs-note{background:#fff8e6;border:1px solid #f2d48a;color:#6b4a00;border-radius:10px;padding:9px 12px;font-size:.85rem;margin:10px 0 0}
.fs-kv{display:grid;grid-template-columns:150px minmax(0,1fr);gap:6px 12px;margin:0;font-size:.93rem}
.fs-kv dt{color:var(--discret)}.fs-kv dd{margin:0;overflow-wrap:anywhere}
.fs-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.fs-actions form{margin:0}
.fs-histo{background:#fff;border:1px solid var(--ligne);border-radius:14px;padding:16px 18px;position:sticky;top:16px;max-height:calc(100vh - 32px);overflow-y:auto}
.fs-histo h2{margin:0 0 8px;font-size:1.05rem}
.fs-histo>ol{list-style:none;margin:0;padding:0}
.fs-h{border-top:1px solid var(--ligne);padding:9px 0 9px 18px;position:relative}
.fs-h:first-child{border-top:0}
.fs-h::before{content:"";position:absolute;left:0;top:15px;width:10px;height:10px;border-radius:50%;background:var(--ligne)}
.fs-h-termine::before{background:#2e9e6b}.fs-h-erreur::before{background:#c0392b}.fs-h-en_attente::before,.fs-h-en_cours::before{background:#e0a800}
.fs-h summary{list-style:none;cursor:pointer;display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px}
.fs-h summary::-webkit-details-marker{display:none}
.fs-h-titre{font-weight:600;font-size:.93rem;flex:1 1 auto}
.fs-h .badge{font-size:.72rem;padding:2px 9px}
.fs-h-date{flex-basis:100%;color:var(--discret);font-size:.8rem}
.fs-h .journal{font-size:.82rem;margin-top:6px}
.fs-h p{margin:4px 0 0;font-size:.82rem}
@media (max-width:1350px){ .fs-grille{grid-template-columns:1fr} .fs-histo{position:static;max-height:none} }
@media (max-width:900px){ .fs-cartes{grid-template-columns:1fr} .fs-boutons{margin-left:0} }
.fs-boutons button.bouton{font:inherit;font-weight:600}
.bouton:disabled,.bouton[disabled]{opacity:.5;cursor:not-allowed}
