/* ===========================================================================
   FranceCasse — Thème Bootstrap 5.3 ↔ Design System
   ---------------------------------------------------------------------------
   Ce fichier :
     1. redéfinit les tokens FranceCasse (couleurs, typo, spacing, radii, ombres)
     2. mappe ces tokens sur les variables Bootstrap 5.3 (--bs-*)
     3. surcharge les composants Bootstrap clés (boutons, cards, navbar, form)
     4. ajoute les classes utilitaires FC (.fc-*)
   NB : les fonts du DS (Archivo + Open Sans) sont AUTO-HÉBERGÉES (woff2 dans
        front/fonts/), déclarées via @font-face dans front/css/fc-fonts.css et
        chargées par front/partials/head.php (qui précharge en plus les 4 faces
        critiques en <link rel="preload">, display:optional, anti-CLS). Plus aucun
        appel Google Fonts/gstatic, et PAS d'@import ici (il les découvrait trop
        tard et provoquait un FOUT/layout shift).
   NB : couleurs/fonts/logo RECONSTRUITS par le DS — à confirmer avant prod.
=========================================================================== */

/* ---------------------------------------------------------------------------
   1+2. Tokens FranceCasse
--------------------------------------------------------------------------- */
:root {
  /* Vert (primaire) */
  --fc-green-50:#eef7e7; --fc-green-100:#d6ebc4; --fc-green-200:#b6da97;
  --fc-green-300:#93cf6b; --fc-green-400:#6fb83f; --fc-green-500:#57a62b;
  --fc-green-600:#498f23; --fc-green-700:#3a731b; --fc-green-800:#2c5714;
  /* Logo 3 barres */
  --fc-forest-600:#2e7d4f; --fc-forest-700:#1f6b40; --fc-emerald-500:#43b85e;
  --fc-lime-400:#c8df5a; --fc-lime-500:#b5d233; --fc-lime-600:#9cba24;
  --brand-gradient:linear-gradient(90deg,var(--fc-forest-700) 0%,var(--fc-emerald-500) 50%,var(--fc-lime-500) 100%);
  /* Navy / anthracite */
  --fc-navy-900:#112437; --fc-navy-800:#18314a; --fc-navy-700:#213f59; --fc-navy-600:#2f5273;
  --fc-slate-500:#51637a; --fc-slate-400:#7e8c9c; --fc-slate-300:#a9b4c0;
  /* Orange (deals) */
  --fc-orange-300:#ffc06b; --fc-orange-400:#ffa53a; --fc-orange-500:#f5841d;
  --fc-orange-600:#e06c0c; --fc-orange-700:#bd560a;
  /* Gris */
  --fc-white:#fff; --fc-grey-50:#f6f8fa; --fc-grey-100:#eef1f4; --fc-grey-200:#e1e6ec;
  --fc-grey-300:#cdd5de; --fc-grey-400:#aab4bf; --fc-grey-500:#7d8896;
  --fc-grey-600:#5b6672; --fc-grey-700:#404a54; --fc-grey-900:#1c232b;
  /* Statuts */
  --fc-red-500:#d83a2f; --fc-amber-400:#ffbb00; --fc-info-500:#2b7bbf;

  /* Alias sémantiques */
  --brand-primary:var(--fc-green-500); --brand-primary-hover:var(--fc-green-600); --brand-primary-press:var(--fc-green-700);
  --brand-accent:var(--fc-orange-500); --brand-accent-hover:var(--fc-orange-600); --brand-ink:var(--fc-navy-900);
  --surface-page:var(--fc-grey-50); --surface-card:var(--fc-white); --surface-sunken:var(--fc-grey-100);
  --text-strong:var(--fc-navy-900); --text-body:var(--fc-grey-700); --text-muted:var(--fc-grey-500);
  --text-link:var(--fc-green-600);
  --border-subtle:var(--fc-grey-200); --border-default:var(--fc-grey-300); --border-strong:var(--fc-grey-400);

  /* Fonts */
  --font-display:'Archivo',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --font-body:'Open Sans',system-ui,-apple-system,'Segoe UI',sans-serif;

  /* Échelle typo */
  --fs-2xs:.6875rem; --fs-xs:.75rem; --fs-sm:.8125rem; --fs-base:.9375rem; --fs-md:1.0625rem;
  --fs-lg:1.25rem; --fs-xl:1.5rem; --fs-2xl:1.875rem; --fs-3xl:2.375rem; --fs-4xl:3rem; --fs-5xl:3.75rem;
  --fw-regular:400; --fw-medium:500; --fw-semibold:600; --fw-bold:700; --fw-black:800;
  --lh-tight:1.1; --lh-snug:1.25; --lh-normal:1.5; --lh-relaxed:1.65;
  --ls-wide:.04em; --ls-wider:.08em;

  /* Spacing */
  --sp-1:.25rem; --sp-2:.5rem; --sp-3:.75rem; --sp-4:1rem; --sp-5:1.25rem; --sp-6:1.5rem;
  --sp-8:2rem; --sp-10:2.5rem; --sp-12:3rem; --sp-16:4rem; --sp-20:5rem;

  /* Radii / ombres / layout */
  --radius-xs:3px; --radius-sm:5px; --radius-md:8px; --radius-lg:12px; --radius-xl:18px; --radius-pill:999px;
  --shadow-xs:0 1px 2px rgba(17,36,55,.06);
  --shadow-sm:0 1px 3px rgba(17,36,55,.10),0 1px 2px rgba(17,36,55,.06);
  --shadow-md:0 4px 12px rgba(17,36,55,.10);
  --shadow-lg:0 10px 28px rgba(17,36,55,.14);
  --shadow-focus:0 0 0 3px rgba(111,184,63,.40);
  --container-max:1200px; --header-height:72px;
  --ease-standard:cubic-bezier(.4,0,.2,1); --dur-fast:120ms; --dur-normal:200ms;

  /* --------------------------------------------------------------------
     3. Mapping → variables Bootstrap 5.3
  -------------------------------------------------------------------- */
  --bs-primary:var(--fc-green-500); --bs-primary-rgb:87,166,43;
  --bs-secondary:var(--fc-navy-900); --bs-secondary-rgb:17,36,55;
  --bs-success:var(--fc-green-500); --bs-success-rgb:87,166,43;
  --bs-warning:var(--fc-orange-500); --bs-warning-rgb:245,132,29;
  --bs-danger:var(--fc-red-500); --bs-danger-rgb:216,58,47;
  --bs-info:var(--fc-info-500);
  --bs-dark:var(--fc-navy-900); --bs-dark-rgb:17,36,55;
  --bs-light:var(--fc-grey-50);
  --bs-body-bg:var(--surface-page);
  --bs-body-color:var(--text-body); --bs-body-color-rgb:64,74,84;
  --bs-body-font-family:var(--font-body);
  --bs-body-font-size:var(--fs-base);
  --bs-emphasis-color:var(--text-strong);
  --bs-heading-color:var(--text-strong);
  --bs-link-color:var(--text-link); --bs-link-color-rgb:73,143,35;
  --bs-link-hover-color:var(--fc-green-700);
  --bs-border-color:var(--border-subtle);
  --bs-border-radius:var(--radius-md); --bs-border-radius-sm:var(--radius-sm);
  --bs-border-radius-lg:var(--radius-lg); --bs-border-radius-xl:var(--radius-xl);
  --bs-border-radius-pill:var(--radius-pill);
}

/* ---------------------------------------------------------------------------
   Base
--------------------------------------------------------------------------- */
body{font-family:var(--font-body);color:var(--text-body);background:var(--surface-page);}
h1,h2,h3,h4,h5,h6,.fc-display{font-family:var(--font-display);color:var(--text-strong);font-weight:var(--fw-bold);}
a{color:var(--text-link);}
a:hover{color:var(--fc-green-700);}
.container,.container-xl{max-width:var(--container-max);}

/* ---------------------------------------------------------------------------
   4. Boutons (le thème CDN compile en dur → on surcharge)
--------------------------------------------------------------------------- */
.btn{--bs-btn-font-family:var(--font-body);--bs-btn-font-weight:var(--fw-bold);--bs-btn-border-radius:var(--radius-sm);
  transition:filter var(--dur-fast) var(--ease-standard),transform var(--dur-fast);}
.btn:active{transform:translateY(1px);}
.btn-lg{--bs-btn-padding-y:.75rem;--bs-btn-padding-x:1.75rem;--bs-btn-font-size:var(--fs-md);}

.btn-primary,.btn-success{--bs-btn-bg:var(--brand-primary);--bs-btn-border-color:var(--brand-primary);--bs-btn-color:#fff;
  --bs-btn-hover-bg:var(--brand-primary-hover);--bs-btn-hover-border-color:var(--brand-primary-hover);--bs-btn-hover-color:#fff;
  --bs-btn-active-bg:var(--brand-primary-press);--bs-btn-active-border-color:var(--brand-primary-press);
  --bs-btn-disabled-bg:var(--fc-grey-200);--bs-btn-disabled-border-color:var(--fc-grey-200);--bs-btn-disabled-color:var(--fc-grey-500);}
.btn-accent,.btn-warning{--bs-btn-bg:var(--brand-accent);--bs-btn-border-color:var(--brand-accent);--bs-btn-color:#fff;
  --bs-btn-hover-bg:var(--brand-accent-hover);--bs-btn-hover-border-color:var(--brand-accent-hover);--bs-btn-hover-color:#fff;
  --bs-btn-active-bg:var(--fc-orange-700);--bs-btn-active-border-color:var(--fc-orange-700);}
.btn-dark{--bs-btn-bg:var(--fc-navy-900);--bs-btn-border-color:var(--fc-navy-900);
  --bs-btn-hover-bg:var(--fc-navy-800);--bs-btn-hover-border-color:var(--fc-navy-800);}
.btn-outline-secondary{--bs-btn-color:var(--text-strong);--bs-btn-border-color:var(--border-default);
  --bs-btn-hover-bg:var(--fc-grey-100);--bs-btn-hover-border-color:var(--border-strong);--bs-btn-hover-color:var(--text-strong);}

/* ---------------------------------------------------------------------------
   Cards / form / focus
--------------------------------------------------------------------------- */
.card{--bs-card-border-color:var(--border-subtle);--bs-card-border-radius:var(--radius-md);
  --bs-card-bg:var(--surface-card);box-shadow:var(--shadow-sm);transition:box-shadow var(--dur-normal),border-color var(--dur-normal);}
.card.fc-hover:hover{box-shadow:var(--shadow-md);border-color:var(--border-default);}
.form-control,.form-select{border-color:var(--border-default);border-radius:var(--radius-md);color:var(--text-strong);
  font-size:var(--fs-base);padding:.7rem .85rem;}
/* réserver la place de la flèche du select (sinon le texte passe dessous) */
.form-select{padding-right:2.25rem;}
.form-control:focus,.form-select:focus{border-color:var(--brand-primary);box-shadow:var(--shadow-focus);}
.form-label{font-weight:var(--fw-semibold);font-size:var(--fs-xs);color:var(--text-strong);text-transform:uppercase;letter-spacing:var(--ls-wide);}

/* ---------------------------------------------------------------------------
   5. Utilitaires FC
--------------------------------------------------------------------------- */
.fc-bg-navy{background:var(--fc-navy-900);} .fc-bg-page{background:var(--surface-page);}
.fc-bg-green-50{background:var(--fc-green-50);}
.fc-text-green{color:var(--brand-primary)!important;} .fc-text-green-400{color:var(--fc-green-400)!important;}
.fc-text-strong{color:var(--text-strong)!important;} .fc-text-muted{color:var(--text-muted)!important;}
.fc-text-on-dark{color:#cdd5de;}
/* Hero — photo de fond + voile navy dégradé (texte à gauche = zone la plus sombre → toujours lisible).
   Tant que /front/assets/hero.webp n'existe pas, seul le navy de base s'affiche (rien de cassé). */
.fc-hero{
  color:#fff;
  background-color:var(--fc-navy-900);
  background-image:
    linear-gradient(90deg, rgba(17,36,55,.93) 0%, rgba(17,36,55,.82) 45%, rgba(17,36,55,.55) 100%),
    url('/front/assets/hero.webp');
  background-size:cover;
  background-position:center right;
}
@media (max-width:991.98px){
  /* mobile/tablette : le texte passe pleine largeur → voile quasi opaque pour garantir le contraste */
  .fc-hero{
    background-image:
      linear-gradient(180deg, rgba(17,36,55,.92), rgba(24,49,74,.94)),
      url('/front/assets/hero.webp');
    background-position:center;
  }
}
.fc-shadow-lg{box-shadow:var(--shadow-lg);} .fc-shadow-md{box-shadow:var(--shadow-md);}
.fc-rounded-lg{border-radius:var(--radius-lg);} .fc-rounded-md{border-radius:var(--radius-md);}

/* Ligne principale du header : logo marque + zone icônes.
   Tailles en classes (et non inline) pour permettre un palier mobile.
   <576px : on réduit logo + icônes pour éviter le débordement horizontal
   (sur PC le souci n'apparaît pas, Chrome ne descendant pas sous ~500px). */
.fc-header-row{min-height:88px;gap:1rem;}
.fc-brand-logo{height:46px;width:auto;max-width:100%;display:block;}
.fc-header-ico{width:40px;height:40px;flex:none;}
@media (max-width:575.98px){
  .fc-header-row{min-height:64px;gap:.5rem;}
  /* hauteur réduite + plafond en vw : le logo ne peut jamais empiéter sur les
     icônes compte/panier/burger même sur très petit écran (l'aspect-ratio des
     attributs width/height préserve les proportions si max-width prend le relais). */
  .fc-brand-logo{height:30px;max-width:56vw;}
  .fc-header-ico{width:34px;height:34px;}
  .fc-header-burger{padding:.25rem .4rem;}
}

/* Bandeau utilitaire navy */
.fc-topbar{background:var(--fc-navy-900);color:var(--fc-grey-300);font-size:var(--fs-xs);}
.fc-topbar a{color:var(--fc-grey-300);text-decoration:none;}
.fc-topbar a:hover{color:#fff;}

/* Header piliers */
.fc-pillar{display:flex;align-items:center;gap:8px;padding:8px 9px;border-radius:var(--radius-sm);
  text-decoration:none;border:0;background:transparent;}
.fc-pillar:hover{background:var(--fc-grey-50);}
.fc-pillar.active{background:var(--fc-green-50);box-shadow:inset 0 -2px 0 var(--brand-primary);}
.fc-pillar .ico{color:var(--fc-slate-400);} .fc-pillar.active .ico{color:var(--brand-primary);}
.fc-pillar .t{font-weight:var(--fw-bold);font-size:var(--fs-sm);color:var(--text-strong);line-height:1.2;white-space:nowrap;}
.fc-pillar.active .t{color:var(--fc-green-700);}
.fc-pillar .s{font-size:var(--fs-2xs);color:var(--text-muted);line-height:1.2;white-space:nowrap;}
/* Desktop "moyen" (992-1199px) : la barre de piliers tient juste à 1200px avec la
   web font ; en dessous on masque les sous-titres (mode compact) pour éviter le
   débordement / le passage à 2 lignes selon la police chargée. */
@media (max-width:1199.98px){ .fc-header-row .fc-pillar .s{display:none;} }
/* Pilier mis en avant (nouveauté : La boutique) — accent orange, distinct du vert "actif" */
.fc-pillar-promo{background:rgba(245,132,29,.08);box-shadow:inset 0 -2px 0 var(--brand-accent);}
.fc-pillar-promo:hover{background:rgba(245,132,29,.15);}
.fc-pillar-promo .ico{color:var(--brand-accent);}
.fc-pillar-promo .t{color:var(--fc-orange-700);}
.fc-badge-new{display:inline-block;background:var(--brand-accent);color:#fff;font-weight:var(--fw-bold);font-size:9px;
  text-transform:uppercase;letter-spacing:.04em;padding:1px 6px;border-radius:var(--radius-pill);vertical-align:middle;margin-left:5px;line-height:1.5;}

/* Badge deal -80% */
.fc-deal-badge{display:inline-flex;align-items:center;justify-content:center;background:var(--brand-accent);color:#fff;
  font-family:var(--font-display);font-weight:var(--fw-black);border-radius:var(--radius-pill);padding:4px 10px;font-size:var(--fs-sm);}
.fc-deal-disc{width:84px;height:84px;border-radius:999px;background:var(--brand-accent);color:#fff;
  display:flex;flex-direction:column;align-items:center;justify-content:center;flex:none;}
.fc-deal-disc b{font-family:var(--font-display);font-weight:var(--fw-black);font-size:1.4rem;line-height:1;}
.fc-deal-disc span{font-size:10px;text-transform:uppercase;letter-spacing:1px;}

/* Plaque d'immatriculation */
.fc-immat{display:flex;align-items:stretch;border:2px solid var(--text-strong);border-radius:var(--radius-sm);overflow:hidden;background:#fff;}
/* Validation BS5 du funnel garages : selects injectés (modèle/version/ville) + plaque */
.fc-reparation select.is-invalid{border:1px solid var(--bs-danger,#dc3545)!important;}
.fc-immat.is-invalid{border-color:var(--bs-danger,#dc3545);box-shadow:0 0 0 .2rem rgba(220,53,69,.15);}
.fc-immat-band{background:#003399;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;width:36px;flex:none;
  font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-xs);line-height:1;}
.fc-immat-band .stars{color:#ffcc00;font-size:9px;letter-spacing:-1px;}
.fc-immat-input{flex:1;border:0;outline:0;width:100%;text-align:center;text-transform:uppercase;background:#fff;
  font-family:var(--font-display);font-weight:var(--fw-black);font-size:var(--fs-2xl);letter-spacing:.08em;color:var(--text-strong);padding:6px 10px;}
.fc-immat-input::placeholder{color:var(--fc-grey-300);font-weight:var(--fw-bold);}

/* ===== Habillage du moteur de recherche LEGACY embarqué (#bloc_recherche) =====
   Scopé à .fc-legacy-search pour ne styler que la recherche du hero v5.
   Défensif : cible aussi les input/button/a/select injectés par le JS (checkimmat / switchBlocRecherche). */
.fc-legacy-search #bloc_recherche,.fc-legacy-search #bloc_recherche_cadre{width:100%;}
.fc-legacy-search .bloc_recherche_cadre_titre,
.fc-legacy-search [class^="bloc_recherche_cadre_titre"]{font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;
  letter-spacing:var(--ls-wide);color:var(--text-strong);margin-bottom:var(--sp-2);}
/* champ plaque : bande bleue (bord gauche) façon plaque EU */
/* Même piège que #bloc_recherche_vehicule (cf. plus bas) : switchBlocRecherche('immat')
   repasse le bloc en display:inline-block inline -> sans width il se réduit à la largeur
   de son contenu et se cale à gauche (plaque non centrée). On force width:100% (!important
   pour battre le style inline) sans toucher au display (display:none quand masqué respecté). */
.fc-legacy-search #bloc_recherche_immat{width:100%!important;}
.fc-legacy-search #recherche_immat{display:flex;flex-direction:column;gap:var(--sp-3);}
.fc-legacy-search input.immat{width:100%;box-sizing:border-box;border:2px solid var(--text-strong);border-left:34px solid #003399;
  border-radius:var(--radius-sm);background:#fff;font-family:var(--font-display);font-weight:var(--fw-black);font-size:var(--fs-2xl);
  letter-spacing:.08em;text-transform:uppercase;text-align:center;color:var(--text-strong);padding:8px 10px;outline:none;}
.fc-legacy-search input.immat::placeholder{color:var(--fc-grey-300);font-weight:var(--fw-bold);}
.fc-legacy-search input.immat:focus{box-shadow:var(--shadow-focus);}
/* bouton de recherche injecté dans #cf_bouton_immat.
   min-height = hauteur du bouton final : l'espace est réservé AVANT l'injection JS
   (cloudflare.js) pour éviter le layout shift (CLS) sur le bloc de recherche. */
.fc-legacy-search #cf_bouton_immat,
.fc-legacy-search [id^="cf_bouton_immat"]{width:100%;min-height:64px;}
/* Bloc "Rechercher par modèle" : vide dans le template, rempli par cloudflare.js
   (4 selects en grille 2 colonnes + bouton OK). On réserve sa hauteur finale pour
   éviter le CLS quand il est visible d'emblée (pages moto). Grille 2 col fixe =>
   hauteur indépendante de la largeur.
   Le template legacy gère la visibilité par style inline (display:none caché /
   display:inline-block affiché). En inline-block il se réduisait à la largeur de son
   contenu (~184px), écrasant la grille interne et donc la largeur des selects (qui
   dépendait du contenu sélectionné). On force UNIQUEMENT width:100% (!important pour
   battre le style inline) : un inline-block à width:100% remplit le cadre (grille +
   selects à largeur fixe), SANS toucher au display -> le display:none qui masque le
   bloc tant qu'on n'a pas cliqué "Rechercher par modèle" reste respecté. */
.fc-legacy-search #bloc_recherche_vehicule{min-height:176px;width:100%!important;}
.fc-legacy-search #cf_bouton_immat input,.fc-legacy-search #cf_bouton_immat button,.fc-legacy-search #cf_bouton_immat a{
  display:block;width:100%;box-sizing:border-box;cursor:pointer;border:0;border-radius:var(--radius-sm);background:var(--brand-primary);
  color:#fff;font-family:var(--font-body);font-weight:var(--fw-bold);font-size:var(--fs-md);padding:13px 20px;text-align:center;
  text-decoration:none;transition:filter var(--dur-fast);}
.fc-legacy-search #cf_bouton_immat input:hover,.fc-legacy-search #cf_bouton_immat button:hover,.fc-legacy-search #cf_bouton_immat a:hover{filter:brightness(.94);}
.fc-legacy-search #cf_bouton_immat img{max-width:100%;height:auto;}
/* lien bascule "Rechercher par modèle" */
.fc-legacy-search #bloc_recherche_switch{margin-top:var(--sp-3);text-align:center;}
.fc-legacy-search #bloc_recherche_switch a{color:var(--text-link);font-weight:var(--fw-semibold);text-decoration:none;font-size:var(--fs-sm);}
.fc-legacy-search #bloc_recherche_switch a:hover{color:var(--fc-green-700);}
/* bloc véhicule : selects Marque/Modèle/Énergie/Version (select2 v4) → grille 2 colonnes.
   Structure réelle : #bloc_recherche_vehicule_selects > div.inline-block > select.select_vehicule.
   IMPORTANT : on ne touche PAS au <select> caché par select2 (.select2-hidden-accessible)
   sinon le natif réapparaît → double affichage. */
.fc-legacy-search #bloc_recherche_vehicule_selects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3);align-items:start;}
.fc-legacy-search #bloc_recherche_vehicule_selects > div{min-width:0;max-width:100%;margin:0;float:none;}
/* largeur FIXE = la cellule de grille, jamais recalculée selon le contenu sélectionné */
.fc-legacy-search #bloc_recherche_vehicule_selects .select2-container{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;}
.fc-legacy-search #bloc_recherche_vehicule_selects .select2-selection__rendered{overflow:hidden!important;text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block;}
/* select natif : stylé UNIQUEMENT s'il n'est pas masqué par select2 (fallback si select2 absent) */
.fc-legacy-search #bloc_recherche_vehicule_selects select.select_vehicule:not(.select2-hidden-accessible){
  width:100%;height:44px;border:1px solid var(--border-default);border-radius:var(--radius-md);
  padding:8px 12px;font-size:var(--fs-base);color:var(--text-strong);background:#fff;}
/* habillage du widget select2 v4 façon form-select */
.fc-legacy-search .select2-container--default .select2-selection--single{height:44px!important;border:1px solid var(--border-default)!important;
  border-radius:var(--radius-md)!important;display:flex!important;align-items:center;padding:0 12px!important;background:#fff;}
.fc-legacy-search .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--text-strong)!important;padding:0!important;line-height:42px!important;}
.fc-legacy-search .select2-container--default .select2-selection--single .select2-selection__arrow{height:42px!important;}
.fc-legacy-search .select2-container--default.select2-container--focus .select2-selection--single{border-color:var(--brand-primary)!important;box-shadow:var(--shadow-focus);}
/* bouton "OK" de validation */
.fc-legacy-search .bouton_recherche_immat{display:block;width:100%;cursor:pointer;border:0;border-radius:var(--radius-sm);
  background:var(--brand-primary);color:#fff;font-weight:var(--fw-bold);font-size:var(--fs-md);padding:13px 20px;margin-top:var(--sp-3);transition:filter var(--dur-fast);}
.fc-legacy-search .bouton_recherche_immat:hover{filter:brightness(.94);}
.fc-legacy-search #bloc_recherche_vehicule_selects .bouton_recherche_immat{grid-column:1 / -1;margin-top:0;}

/* Mini-marque avec logo (liste complète "Toutes les marques") */
.fc-brand-mini{display:flex;align-items:center;gap:8px;padding:6px 8px;background:#fff;border:1px solid var(--border-subtle);
  border-radius:var(--radius-sm);text-decoration:none;color:var(--text-body);font-size:var(--fs-xs);line-height:1.2;min-width:0;
  transition:border-color var(--dur-fast),color var(--dur-fast);}
.fc-brand-mini img{width:30px;height:30px;object-fit:contain;flex:none;}
.fc-brand-mini span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.fc-brand-mini:hover{border-color:var(--brand-primary);color:var(--brand-primary);}
/* fallback texte si pas de logo */
.fc-brand-link{display:block;padding:8px 10px;background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);
  text-decoration:none;color:var(--text-body);font-size:var(--fs-sm);line-height:1.3;text-align:center;
  transition:border-color var(--dur-fast),color var(--dur-fast);}
.fc-brand-link:hover{border-color:var(--brand-primary);color:var(--brand-primary);}

/* Header collant (panier/nav ancrés en haut de l'écran) — c'est <header> qui est sticky, pas la barre interne */
.fc-site-header{position:sticky;top:0;z-index:1030;}
.fc-header-main{box-shadow:var(--shadow-sm);}
/* CTA boutique mobile/tablette (<992px) : barre dédiée sous le header, accent orange marque */
.fc-shopbar{display:flex;align-items:center;gap:.6rem;padding:.55rem 1rem;text-decoration:none;
  background:rgba(245,132,29,.10);border-bottom:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);}
.fc-shopbar:hover{background:rgba(245,132,29,.16);}
.fc-shopbar-ico{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex:none;
  border-radius:50%;background:var(--brand-accent);color:#fff;}
.fc-shopbar-txt{display:flex;flex-direction:column;line-height:1.2;font-weight:var(--fw-bold);
  color:var(--fc-orange-700);font-size:var(--fs-sm);}
.fc-shopbar-sub{font-weight:var(--fw-semibold);color:var(--text-muted);font-size:var(--fs-2xs);}
.fc-shopbar-chev{margin-left:auto;color:var(--brand-accent);flex:none;}

/* Toggle auto/moto */
.fc-mode{flex:1;display:flex;align-items:center;justify-content:center;gap:10px;padding:12px;cursor:pointer;text-decoration:none;
  border:2px solid var(--border-default);background:#fff;border-radius:var(--radius-md);
  font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-base);color:var(--text-muted);
  transition:border-color var(--dur-fast),background var(--dur-fast),color var(--dur-fast);}
.fc-mode:hover{border-color:var(--brand-primary);color:var(--fc-green-700);}
.fc-mode.active{border-color:var(--brand-primary);background:var(--fc-green-50);color:var(--fc-green-700);}

/* Étapes "comment ça marche" */
.fc-step-num{width:40px;height:40px;border-radius:999px;background:var(--brand-primary);color:#fff;flex:none;
  display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:var(--fw-black);font-size:var(--fs-lg);}
/* Carte d'étape : numéro au-dessus du texte (desktop), en ligne (mobile) pour gagner en hauteur */
.fc-howstep{display:flex;flex-direction:column;align-items:flex-start;gap:.85rem;padding:1.5rem;}
@media (max-width:767.98px){
  .fc-howstep{flex-direction:row;align-items:center;gap:.85rem;padding:.85rem 1rem;}
  .fc-howstep .fc-step-num{width:34px;height:34px;font-size:var(--fs-base);}
}

/* Grille marques */
.fc-brand{display:flex;align-items:center;justify-content:center;height:64px;background:#fff;
  border:1px solid var(--border-subtle);border-radius:var(--radius-md);text-decoration:none;
  font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-sm);letter-spacing:var(--ls-wide);color:var(--text-strong);
  transition:box-shadow var(--dur-normal),border-color var(--dur-normal);}
.fc-brand:hover{box-shadow:var(--shadow-md);border-color:var(--border-default);color:var(--brand-primary);}

/* Liste liens pièces (maillage SEO) */
.fc-piece-link{display:flex;align-items:center;gap:8px;padding:9px 12px;background:#fff;border:1px solid var(--border-subtle);
  border-radius:var(--radius-sm);text-decoration:none;color:var(--text-body);font-size:var(--fs-sm);line-height:1.3;
  transition:border-color var(--dur-fast),color var(--dur-fast),box-shadow var(--dur-fast);}
.fc-piece-link::before{content:"";width:6px;height:6px;border-radius:999px;background:var(--brand-primary);flex:none;}
.fc-piece-link:hover{border-color:var(--brand-primary);color:var(--brand-primary);box-shadow:var(--shadow-xs);}
/* Grille de liens pièces du catalogue (page « toutes les pièces ») */
.fc-pieces-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;}
.fc-zone-img{flex:none;width:120px;height:90px;object-fit:contain;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:#fff;padding:6px;}
@media (max-width:575.98px){.fc-zone-img{width:84px;height:64px;}}
/* Page "toutes les pièces" : autocomplete de recherche (positionnement du dropdown,
   comme .fc-demande — le scope .fc-pieces-hub fournit le parent position:relative). */
.fc-pieces-hub .recherchepiece_custom-select-container{position:relative;width:100%;max-width:520px;}
.fc-pieces-hub #recherchepiece_dropdown{top:calc(100% + 4px);padding:.6rem;}
.fc-pieces-hub #recherchepiece_searchInput{display:block;width:100%;box-sizing:border-box;margin-bottom:.5rem;border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:.55rem .7rem;font-size:var(--fs-base);}
.fc-pieces-hub #recherchepiece_searchInput:focus{outline:none;border-color:var(--brand-primary);box-shadow:var(--shadow-focus);}
.fc-pieces-hub #recherchepiece_infoMessage{color:var(--text-muted);font-size:var(--fs-sm);padding:.4rem .2rem;}
.fc-pieces-hub #recherchepiece_options{max-height:300px;overflow-y:auto;}
.fc-pieces-hub .recherchepiece_option{padding:.55rem .7rem;border-radius:var(--radius-sm);cursor:pointer;color:var(--text-body);font-size:var(--fs-base);}
.fc-pieces-hub .recherchepiece_option:hover{background:var(--fc-green-50);color:var(--brand-primary);}
.fc-pieces-hub .recherchepiece_hidden{display:none;}
/* En-tête de catégorie : bloc sombre (titre + filtre + logo) pour bien délimiter
   chaque catégorie. */
.fc-zone-head{align-items:center;background:var(--fc-navy-900);border-radius:var(--radius-md);padding:.85rem 1.1rem;gap:1rem;box-shadow:var(--shadow-xs);margin-bottom:var(--sp-6,1.5rem);}
.fc-zone-head .fc-kicker{color:var(--fc-green-300);}
.fc-zone-head .fc-h2{color:#fff;}
.fc-zone-head .fc-zone-img{width:96px;height:64px;border-color:rgba(255,255,255,.25);}
/* Filtre par catégorie : un input au titre de chaque zone, filtre les pièces de la zone. */
.fc-zone-tools{display:flex;align-items:center;gap:1rem;flex:0 0 auto;}
.fc-zone-filter{width:220px;max-width:44vw;height:40px;border:1px solid var(--border-default);border-radius:var(--radius-md);padding:.45rem .8rem;font-size:var(--fs-sm);background:#fff;color:var(--text-strong);}
.fc-zone-filter:focus{outline:none;border-color:var(--brand-primary);box-shadow:var(--shadow-focus);}
.fc-zone-empty{margin-top:.75rem;color:var(--text-muted);font-size:var(--fs-sm);}
@media (max-width:575.98px){.fc-zone-filter{width:150px;}.fc-zone-head .fc-zone-img{width:72px;height:48px;}}

/* Carte modèle avec photo individuelle (/photos-modeles/<marque>/<modele>.jpg) */
/* content-visibility:auto : ne peint pas les cartes hors écran. Indispensable :
   chaque carte rastérise le sprite 6600px mis à l'échelle ; 70+ cartes peintes
   d'un coup saturent le compositeur lors des scrolls rapides (gel constaté). */
.fc-modele-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;background:#fff;
  border:1px solid var(--border-subtle);border-radius:var(--radius-sm);text-decoration:none;color:var(--text-body);
  font-size:var(--fs-sm);line-height:1.3;text-align:center;height:100%;
  content-visibility:auto;contain-intrinsic-size:auto 160px;
  transition:border-color var(--dur-fast),color var(--dur-fast),box-shadow var(--dur-fast);}
.fc-modele-card:hover{border-color:var(--brand-primary);color:var(--brand-primary);box-shadow:var(--shadow-xs);}
.fc-modele-img{display:block;width:100px;height:100px;background-repeat:no-repeat;background-size:contain;background-position:center;flex:none;}
.fc-modele-name{font-weight:600;}
/* Page pièce+marque : carte modèle cliquable (parcours panier) + menu versions/sous-pièces */
.fc-piece-marque .fc-modele-card{cursor:pointer;position:relative;}
.fc-modele-more{display:inline-flex;align-items:center;color:var(--brand-primary);}
.fc-sm-menu{margin-top:6px;display:flex;flex-direction:column;gap:4px;background:#fff;border:1px solid var(--border-subtle);
  border-radius:var(--radius-sm);padding:6px;box-shadow:var(--shadow-xs);}
.fc-sm-menu[hidden]{display:none;}
/* Dans la grille de modèles (pages pièce+marque), la carte a height:100% et la
   colonne est étirée par la grille : un menu en flux normal déborderait sous les
   cartes voisines. On l'affiche donc en dropdown positionné en absolu (overlay),
   au-dessus du reste, scrollable s'il est long. */
.fc-piece-marque .row > [class*="col-"]{position:relative;}
.fc-piece-marque .fc-sm-menu{position:absolute;left:.25rem;right:.25rem;top:calc(100% - 4px);z-index:30;
  max-height:320px;overflow:auto;}
.fc-sm-item{display:block;width:100%;text-align:left;background:none;border:0;border-radius:var(--radius-sm);
  padding:8px 10px;font-size:var(--fs-sm);color:var(--text-body);cursor:pointer;line-height:1.3;
  transition:background var(--dur-fast),color var(--dur-fast);}
.fc-sm-item:hover{background:var(--surface-sunken);color:var(--brand-primary);}
.fc-version-dates{display:block;font-size:var(--fs-xs);color:var(--text-muted);font-weight:400;margin-top:2px;}

/* Réassurance */
.fc-reassure-ico{width:44px;height:44px;border-radius:var(--radius-md);background:var(--fc-green-50);
  display:flex;align-items:center;justify-content:center;color:var(--brand-primary);}

/* Étoiles avis */
.fc-stars{display:inline-flex;gap:1px;color:var(--fc-amber-400);}

/* ===== En-têtes de section harmonisés (kicker + titre + sous-titre) ===== */
.fc-kicker{font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--ls-wide);color:var(--brand-primary);}
.fc-h2{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-2xl);line-height:var(--lh-snug);color:var(--text-strong);margin:0;}
/* bloc d'en-tête standard : aligné à gauche, espacements constants */
.fc-section-head{margin-bottom:var(--sp-8);}
.fc-section-head .fc-kicker{display:block;margin-bottom:var(--sp-2);}
.fc-section-head .fc-h2{margin:0;}
.fc-section-sub{font-size:var(--fs-md);font-weight:var(--fw-regular);color:var(--text-muted);line-height:var(--lh-relaxed);margin:var(--sp-3) 0 0;}
/* variante avec action alignée à droite (avis, blog) */
.fc-section-head-row{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-8);}
.fc-section-head-row .fc-h2{margin:0;}

/* Pourquoi nous — carte */
.fc-why{display:flex;gap:var(--sp-4);background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--sp-5);height:100%;}
.fc-why .ico{flex:none;width:48px;height:48px;border-radius:var(--radius-md);background:var(--fc-green-50);display:flex;align-items:center;justify-content:center;color:var(--brand-primary);}

/* Casse auto + ville (chips) */
.fc-city{display:flex;align-items:center;gap:7px;padding:9px 10px;background:var(--surface-page);border:1px solid var(--border-subtle);
  border-radius:var(--radius-sm);text-decoration:none;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-strong);line-height:1.3;
  transition:border-color var(--dur-fast),color var(--dur-fast);}
.fc-city:hover{border-color:var(--brand-primary);color:var(--brand-primary);}
.fc-city i{color:var(--brand-primary);flex:none;}

/* Catégorie de pièce (tuile icône) */
.fc-cat{position:relative;display:flex;align-items:center;gap:var(--sp-3);background:#fff;border:1px solid var(--border-subtle);
  border-radius:var(--radius-md);padding:var(--sp-4);text-decoration:none;box-shadow:var(--shadow-xs);height:100%;
  transition:border-color var(--dur-fast),box-shadow var(--dur-fast);}
.fc-cat:hover{border-color:var(--brand-primary);box-shadow:var(--shadow-sm);}
.fc-cat .ico{flex:none;width:46px;height:46px;border-radius:var(--radius-md);background:var(--fc-green-50);display:flex;align-items:center;justify-content:center;color:var(--brand-primary);}
.fc-cat .t{font-weight:var(--fw-bold);color:var(--text-strong);}
.fc-cat .s{font-size:var(--fs-sm);color:var(--text-muted);}
.fc-cat.fc-cat-vsp .ico{background:var(--fc-navy-900);color:#fff;}

/* Bloc marques — panneau contrasté pour faire ressortir les tuiles */
.fc-brands-panel{background:var(--fc-grey-100);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--sp-6);}

/* Marque avec logo */
.fc-brandlogo{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;height:100%;padding:var(--sp-5) var(--sp-3);
  background:#fff;border:1px solid var(--border-default);border-radius:var(--radius-md);text-decoration:none;box-shadow:var(--shadow-sm);
  transition:border-color var(--dur-fast),box-shadow var(--dur-fast),transform var(--dur-fast);}
.fc-brandlogo:hover{border-color:var(--brand-primary);box-shadow:var(--shadow-lg);transform:translateY(-3px);}
.fc-brandlogo img{width:68px;height:68px;object-fit:contain;}
.fc-brandlogo span{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-xs);letter-spacing:var(--ls-wide);color:var(--text-strong);text-align:center;text-transform:uppercase;}
.fc-brandlogo:hover span{color:var(--brand-primary);}

/* Accordéon (thème Bootstrap) */
.accordion{--bs-accordion-border-color:var(--border-subtle);--bs-accordion-border-radius:var(--radius-md);
  --bs-accordion-btn-focus-box-shadow:var(--shadow-focus);--bs-accordion-active-bg:var(--fc-green-50);
  --bs-accordion-active-color:var(--text-strong);--bs-accordion-btn-color:var(--text-strong);
  --bs-accordion-color:var(--text-body);--bs-accordion-btn-font-weight:var(--fw-bold);}
.accordion-button{font-weight:var(--fw-bold);color:var(--text-strong);}
.accordion-button:not(.collapsed){color:var(--text-strong);box-shadow:none;}
.accordion-item{margin-bottom:var(--sp-2);border-radius:var(--radius-md)!important;overflow:hidden;}

/* Footer */
.fc-footer{background:var(--fc-navy-900);color:var(--fc-grey-300);}
.fc-footer a{color:var(--fc-grey-300);text-decoration:none;}
.fc-footer a:hover{color:#fff;}
.fc-footer h4{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:var(--ls-wide);color:#fff;}
.fc-social{width:34px;height:34px;border-radius:var(--radius-sm);background:rgba(255,255,255,.08);
  display:flex;align-items:center;justify-content:center;color:#fff;}

/* Texte SEO éditorialisé (contenu curaté en base, pages marque/pièce/casse) */
.fc-prose{color:var(--text-body);line-height:var(--lh-relaxed);font-size:var(--fs-md);}
.fc-prose h2{font-size:var(--fs-xl);color:var(--text-strong);font-weight:700;margin:1.5rem 0 .75rem;line-height:var(--lh-tight);}
.fc-prose h3{font-size:var(--fs-lg);color:var(--text-strong);font-weight:700;margin:1.25rem 0 .5rem;}
.fc-prose p{margin:0 0 1rem;}
.fc-prose a{color:var(--brand-primary);text-decoration:underline;}
.fc-prose a:hover{color:var(--fc-green-700);}
.fc-prose img{max-width:100%;height:auto;border-radius:var(--radius-sm);}
.fc-prose table{width:100%;border-collapse:collapse;}
.fc-prose .tddisplaynone,.fc-prose td.tddisplaynone{display:none;}
.fc-prose ul,.fc-prose ol{margin:0 0 1rem 1.25rem;}
/* Bouton "demande de devis" codé en dur dans certains textes éditoriaux en base
   (fr_ville.description…) : classe legacy non stylée en refonte -> l'image en
   width:100% s'étalait sur toute la largeur du texte. On contraint sa taille ici
   (fix global : évite d'éditer des centaines de textes en base). */
.fc-prose .casse_bouton_devis{max-width:670px;margin:1.25rem auto;}
.fc-prose .casse_bouton_devis img{display:block;height:auto;margin:0 auto;}

@media (prefers-reduced-motion:reduce){*{transition:none!important;}}

/* ===========================================================================
   PAGE MODÈLE — contenus injectés en AJAX (affiche_zone / charge_liste_pieces)
   ===========================================================================*/
/* Cible de scroll après chaque étape (offset du header sticky). */
#section-pieces{scroll-margin-top:84px;}
/* Contrôles legacy (#titre_liste_pieces = changer zone/version, #liste_pieces_bas = bas).
   Le titre d'étape est porté par #fc-step-title ; ici on ne garde que les <select>,
   compacts. Le <select> natif ignore width:100% dans un <h2> -> MutationObserver inline. */
#titre_liste_pieces,#liste_pieces_bas{overflow-x:hidden;max-width:480px;}
#titre_liste_pieces h2,#liste_pieces_bas h2{overflow:hidden;font-size:var(--fs-sm);color:var(--text-muted);font-weight:600;margin:.4rem 0 0;}
#titre_liste_pieces:empty{display:none;}
#titre_liste_pieces select,#liste_pieces_bas select{
  max-width:100%;width:100%;min-width:0;box-sizing:border-box;height:42px;
  border:1px solid var(--border-default);border-radius:var(--radius-md);
  padding:8px 12px;font-size:var(--fs-sm);color:var(--text-strong);background:#fff;margin-top:.25rem;}
/* Moteur de recherche de pièces (#select_autocomplete_piece), rempli par
   affiche_zone / charge_select_autocomplete. Custom select façon BS5. */
.fc-piece-search .recherchepiece_custom-select-container{width:100%;position:relative;max-width:480px;}
#recherchepiece_selectDisplay{width:100%;box-sizing:border-box;height:44px;padding:8px 14px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23667' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10z'/%3E%3C/svg%3E") no-repeat right 14px center;cursor:pointer;font-size:var(--fs-base);color:var(--text-strong);transition:border-color var(--dur-fast),box-shadow var(--dur-fast);}
#recherchepiece_selectDisplay:hover{border-color:var(--fc-grey-400,#999);}
#recherchepiece_selectDisplay:focus{outline:none;border-color:var(--brand-primary);box-shadow:var(--shadow-focus);}
#recherchepiece_dropdown{display:none;position:absolute;top:0;left:0;width:100%;max-width:480px;background:#fff;border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden;box-shadow:0 8px 18px rgba(0,0,0,.12);z-index:20;}
#recherchepiece_searchInput{width:100%;box-sizing:border-box;padding:11px 14px;border:none;border-bottom:1px solid var(--border-default);font-size:var(--fs-base);}
#recherchepiece_searchInput:focus{outline:none;background:var(--fc-grey-50,#f7faff);}
#recherchepiece_infoMessage{padding:10px 14px;color:var(--text-muted);font-style:italic;font-size:var(--fs-sm);}
#recherchepiece_options{max-height:320px;overflow-y:auto;}
.recherchepiece_option{padding:11px 14px;cursor:pointer;font-size:var(--fs-sm);color:var(--text-strong);transition:background var(--dur-fast);}
.recherchepiece_option:hover{background:rgba(87,166,43,.10);color:var(--brand-primary);}
.recherchepiece_hidden{display:none !important;}

/* Grille de zones (cartes) ET liste des pièces (tab[3], chips .tab_modele_1/2)
   partagent le même conteneur #liste_pieces : la grille est remplacée au clic. */
/* Colonnes explicites (max 4 en desktop) plutôt qu'auto-fill, pour ne pas dépasser
   4 colonnes sur grand écran. minmax(0,1fr) = pattern responsive sûr (les noms longs
   wrappent au lieu de forcer un débordement horizontal). */
#liste_pieces{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin-top:.5rem;}
@media(min-width:576px){#liste_pieces{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(min-width:992px){#liste_pieces{grid-template-columns:repeat(4,minmax(0,1fr));}}
#liste_pieces .fc-zone-card{height:100%;margin:0;}
#liste_pieces .tab_modele_1,#liste_pieces .tab_modele_2{
  background:#fff;border:1px solid var(--border-default);border-radius:var(--radius-md);
  padding:12px 14px;transition:border-color var(--dur-fast),box-shadow var(--dur-fast);}
/* Pas d'alternance de couleur : toutes les pièces sur fond blanc (tab_modele_1/2
   partagent le fond #fff ci-dessus ; l'alternance legacy .tab_modele_2 grise est
   volontairement neutralisée). */
#liste_pieces .tab_modele_1:hover,#liste_pieces .tab_modele_2:hover{border-color:var(--brand-primary);box-shadow:var(--fc-shadow,0 2px 8px rgba(0,0,0,.06));}
#liste_pieces a{display:block;text-decoration:none;color:var(--fc-navy,var(--text-strong));font-weight:600;font-size:var(--fs-sm);}
#liste_pieces a:hover{color:var(--brand-primary);}
#liste_pieces .smalltext{font-size:var(--fs-xs);color:var(--text-muted);font-weight:400;margin-top:4px;}
#liste_pieces .smalltext a{display:inline;color:var(--text-link);text-decoration:underline;font-weight:400;}
/* Suggestions de recherche fréquentes (tab[0]) : pills cliquables */
#suggestionsrecherchecontenu{display:flex;flex-wrap:wrap;gap:.4rem;}
#suggestionsrecherchecontenu .suggestionsrecherche_contenu_droite_bloc_piece a{
  display:inline-block;padding:5px 12px;border-radius:999px;background:rgba(87,166,43,.12);
  color:var(--fc-green-700,var(--brand-primary));font-size:var(--fs-xs);font-weight:600;text-decoration:none;
  transition:background var(--dur-fast);}
#suggestionsrecherchecontenu .suggestionsrecherche_contenu_droite_bloc_piece a:hover{background:rgba(87,166,43,.22);}

/* Popup d'ajout au panier (modale BS5) : contenu legacy popupaddpanier.php restylé.
   Les boutons image legacy sont transformés en boutons Bootstrap par footer.php. */
#fcCartModalBody{text-align:center;}
#fcCartModalBody p{margin:0 0 1rem;color:var(--text-body);}
#fcCartModalBody .contenu_dialog{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.5rem;}
#fcCartModalBody .contenu_dialog_bouton{flex:1 1 200px;min-width:0;}
#fcCartModalBody .contenu_dialog_bouton a.btn{width:100%;font-weight:var(--fw-bold);}

/* ---------------------------------------------------------------------------
   Page infos.php (panier de demande + formulaire) — scope .fc-infos
--------------------------------------------------------------------------- */
/* Selects injectés par AJAX sans classe Bootstrap (ville via verif_codepostal,
   versions via info_version) : habillage façon .form-select */
.fc-infos #loadville select,
.fc-infos div[id^="charge_versions_"] select{
  display:block;width:100%;appearance:auto;background:#fff;
  border:1px solid var(--border-default);border-radius:var(--radius-md);
  color:var(--text-strong);font-family:inherit;font-size:var(--fs-base);
  padding:.7rem .85rem;}
.fc-infos #loadville select:disabled,
.fc-infos div[id^="charge_versions_"] select:disabled{
  background:var(--fc-grey-100);color:var(--text-muted);}
.fc-infos #loadville select:focus,
.fc-infos div[id^="charge_versions_"] select:focus{
  outline:none;border-color:var(--brand-primary);box-shadow:var(--shadow-focus);}
/* Iframe d'upload de photos (infos_photos.php, back blueimp embarqué, habillage modernisé) */
.fc-infos .fc-piece-photos iframe{width:100%;height:99px;border:0;display:block;}
/* Carte véhicule : bandeau d'en-tête coloré (contraste + rythme visuel) */
.fc-infos .fc-veh-card{border:1px solid var(--border-default);box-shadow:var(--shadow-md);overflow:hidden;}
/* flex-wrap : filet de sécurité anti-débordement (le bouton « Retirer » passe à la
   ligne plutôt que de sortir du cadre sur très petit écran / nom de modèle long). */
.fc-infos .fc-veh-head{background:var(--fc-navy-900);border-bottom:3px solid var(--brand-primary);flex-wrap:wrap;}
.fc-infos .fc-veh-head h3{font-size:var(--fs-lg);letter-spacing:.01em;min-width:0;}
.fc-infos .fc-veh-logo,.fc-infos .fc-veh-photo{display:inline-flex;align-items:center;justify-content:center;
  background:#fff;border-radius:var(--radius-sm);flex:none;padding:4px;}
.fc-infos .fc-veh-logo{width:52px;height:52px;}
.fc-infos .fc-veh-photo{width:96px;height:62px;}
/* Sur mobile, la photo du modèle (décorative) est masquée pour laisser la place au
   nom + bouton « Retirer » (évite le débordement, ex. iPhone SE 375px). Placée APRÈS
   la règle de base pour la surcharger (même spécificité -> la dernière gagne). */
@media (max-width:575.98px){.fc-infos .fc-veh-photo{display:none !important;}}
.fc-infos .fc-veh-remove{color:#fff;border:1px solid rgba(255,255,255,.45);background:transparent;
  font-weight:var(--fw-semibold);font-size:var(--fs-xs);white-space:nowrap;}
.fc-infos .fc-veh-remove:hover{background:rgba(255,255,255,.12);border-color:#fff;color:#fff;}
.fc-infos .fc-veh-card .card-body{background:var(--fc-grey-50,#f6f8fa);}
/* Carte pièce : sur fond blanc pour ressortir du corps de carte grisé */
.fc-infos .fc-piece-card{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-md);}
.fc-infos .fc-pneu-help{color:var(--text-muted);text-decoration:none;}
.fc-infos .fc-pneu-help:hover{color:var(--brand-primary);}
/* Stepper de progression (3 étapes) */
.fc-steps{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;font-size:var(--fs-sm);}
.fc-step{display:inline-flex;align-items:center;gap:.45rem;font-weight:var(--fw-semibold);color:var(--text-muted);}
.fc-step .n{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;
  border-radius:50%;background:var(--fc-grey-200);color:var(--text-body);font-size:var(--fs-xs);font-weight:var(--fw-bold);}
.fc-step.done .n,.fc-step.active .n{background:var(--brand-primary);color:#fff;}
.fc-step.active{color:var(--text-strong);}
.fc-step-sep{color:var(--fc-grey-300);}

/* ===========================================================================
   Page demande rapide (/demande_rapide.php) — scope .fc-demande
   (hérite aussi de .fc-infos : carte véhicule, carte pièce, photos, #loadville)
=========================================================================== */
/* Logo marque dans l'en-tête véhicule ($logo = <img> legacy sans dimensions) */
.fc-demande .fc-veh-logo img{max-width:100%;max-height:100%;object-fit:contain;display:block;}

/* Moteur de recherche embarqué : #bloc_recherche est la cible de modifieBlocRecherche()
   (pas de carte wrapper, pour ne pas laisser de cadre vide quand il est masqué).
   On lui donne donc l'allure d'une carte quand il est affiché. */
.fc-demande .fc-legacy-search #bloc_recherche{background:#fff;border:1px solid var(--border-default);
  border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:1.25rem;}

/* Dropdown « pièce par mot-clé » (markup/ids imposés par piece-detachee.js) */
.fc-demande .recherchepiece_custom-select-container{position:relative;}
.fc-demande #recherchepiece_selectDisplay{display:block;width:100%;cursor:pointer;background:#fff;
  border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-strong);
  font-family:inherit;font-size:var(--fs-base);padding:.7rem .85rem;}
.fc-demande #recherchepiece_selectDisplay:focus{outline:none;border-color:var(--brand-primary);box-shadow:var(--shadow-focus);}
/* Le conteneur du dropdown ne scrolle pas lui-même : seule la liste d'options
   (#recherchepiece_options) scrolle, le champ de recherche reste fixe en haut.
   (Évite le double ascenseur : un cadre fixe trop court englobant la liste.) */
.fc-demande #recherchepiece_dropdown{display:none;position:absolute;z-index:30;left:0;right:0;top:calc(100% + 4px);
  background:#fff;border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:.6rem;}
.fc-demande #recherchepiece_searchInput{display:block;width:100%;box-sizing:border-box;margin-bottom:.5rem;
  border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:.55rem .7rem;font-size:var(--fs-base);}
.fc-demande #recherchepiece_searchInput:focus{outline:none;border-color:var(--brand-primary);box-shadow:var(--shadow-focus);}
.fc-demande #recherchepiece_infoMessage{color:var(--text-muted);font-size:var(--fs-sm);padding:.4rem .2rem;}
.fc-demande #recherchepiece_options{max-height:260px;overflow-y:auto;}
.fc-demande .recherchepiece_option{padding:.55rem .7rem;border-radius:var(--radius-sm);cursor:pointer;
  color:var(--text-body);font-size:var(--fs-base);}
.fc-demande .recherchepiece_option:hover{background:var(--fc-green-50);color:var(--brand-primary);}
.fc-demande .recherchepiece_hidden{display:none;}

/* Séparateur « OU » */
.fc-demande .fc-or{display:flex;align-items:center;gap:.85rem;color:var(--text-muted);
  font-weight:var(--fw-bold);font-size:var(--fs-sm);margin:1.25rem 0 .25rem;}
.fc-demande .fc-or::before,.fc-demande .fc-or::after{content:"";flex:1;height:1px;background:var(--border-subtle);}

/* Accordéon de pièces par catégorie (afficheListePiece toggle la classe .is-open).
   Pas d'overflow:hidden sur .fc-cat : indispensable pour le sticky du titre ouvert. */
.fc-demande .fc-cat-list{display:flex;flex-direction:column;gap:.4rem;}
/* display:block explicite : neutralise la règle globale .fc-cat (display:flex,
   cartes catégories de la home) qui sinon mettrait titre et liste côte à côte. */
/* Catégories repliées : fond vert doux + liseré vert à gauche (inset) pour sortir
   de l'effet « cadre blanc sur cadre blanc ». Le corps ouvert reste blanc (cf. plus bas). */
.fc-demande .fc-cat{display:block;gap:0;border:1px solid var(--fc-green-100);border-radius:var(--radius-md);background:#fff;
  box-shadow:inset 3px 0 0 0 var(--brand-primary);}
.fc-demande .fc-cat:hover{border-color:var(--fc-green-300);box-shadow:inset 3px 0 0 0 var(--brand-primary);}
.fc-demande .fc-cat-head{display:flex;align-items:center;gap:.6rem;width:100%;background:var(--fc-green-50);
  border-radius:inherit;flex-wrap:wrap;}
/* Le bouton remplit toute la barre (padding porté ici, pas sur .fc-cat-head) :
   toute la surface visible de la catégorie repliée est cliquable, pas seulement le texte. */
.fc-demande .fc-cat-toggle{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:.6rem;text-align:left;border:0;
  background:transparent;padding:.8rem 1rem;cursor:pointer;font-weight:var(--fw-bold);color:var(--text-strong);
  font-size:var(--fs-base);border-radius:inherit;}
.fc-demande .fc-cat-toggle:hover{background:var(--fc-green-100);}
/* Filtre : masqué tant que la catégorie est repliée, visible à côté du titre une fois ouverte. */
.fc-demande .fc-cat-filter{display:none;flex:0 0 auto;width:220px;max-width:100%;margin:0 1rem .6rem auto;
  border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:.35rem .6rem;font-size:var(--fs-sm);
  color:var(--text-body);background:#fff;}
.fc-demande .fc-cat-filter:focus{outline:0;border-color:var(--brand-primary);box-shadow:0 0 0 .2rem rgba(87,166,43,.15);}
.fc-demande .fc-cat.is-open > .fc-cat-head .fc-cat-filter{display:block;}
.fc-demande .fc-cat-empty{grid-column:1/-1;font-size:var(--fs-sm);color:var(--text-muted);padding:.3rem .2rem;}
.fc-demande .fc-cat-arrow{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;flex:none;
  background:#fff;border:1px solid var(--fc-green-200);border-radius:50%;color:var(--brand-primary);transition:transform var(--dur-fast);}
.fc-demande .fc-cat.is-open > .fc-cat-head .fc-cat-arrow{transform:rotate(90deg);}
/* Titre de catégorie ouverte : collant sous le header pour garder le repère en défilant */
.fc-demande .fc-cat.is-open > .fc-cat-head{position:sticky;top:var(--fc-demande-sticky,96px);z-index:5;
  border-bottom:1px solid var(--border-subtle);border-radius:var(--radius-md) var(--radius-md) 0 0;}
/* Liste de pièces : grille de cellules de largeur égale, ordre alphabétique
   (lecture gauche->droite), pour un repérage facile dans les longues listes. */
.fc-demande .fc-cat-body{display:none;}
.fc-demande .fc-cat.is-open > .fc-cat-body{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));
  gap:.4rem;padding:.6rem .9rem 1rem;}
.fc-demande .fc-cat-piece{display:block;width:100%;text-align:left;border:1px solid var(--border-subtle);background:#fff;
  border-radius:var(--radius-sm);padding:.5rem .7rem;font-size:var(--fs-sm);color:var(--text-body);cursor:pointer;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:all var(--dur-fast);}
.fc-demande .fc-cat-piece:hover{border-color:var(--brand-primary);background:var(--fc-green-50);color:var(--brand-primary);}

/* Champs spécifiques pièce injectés par AJAX (attributs / pneu) sans classe Bootstrap :
   habillage façon .form-control / .form-select pour cohérence. */
.fc-demande .demande_rapide_bloc_piece_attributs input[type=text],
.fc-demande .demande_rapide_bloc_piece_attributs select,
.fc-demande .demande_rapide_bloc_piece_pneu input,
.fc-demande .demande_rapide_bloc_piece_pneu select{display:block;width:100%;box-sizing:border-box;background:#fff;
  border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-strong);font-family:inherit;
  font-size:var(--fs-base);padding:.6rem .8rem;margin-bottom:.5rem;}
.fc-demande .demande_rapide_bloc_piece_attributs input:focus,
.fc-demande .demande_rapide_bloc_piece_attributs select:focus,
.fc-demande .demande_rapide_bloc_piece_pneu input:focus,
.fc-demande .demande_rapide_bloc_piece_pneu select:focus{outline:none;border-color:var(--brand-primary);box-shadow:var(--shadow-focus);}
.fc-demande .demande_rapide_bloc_piece_pneu{display:flex;flex-wrap:wrap;gap:.5rem;align-items:flex-start;}
.fc-demande .demande_rapide_bloc_piece_pneu > select{width:auto;flex:1 1 140px;}
.fc-demande .new_wrap_pneu_select{display:flex;flex-wrap:wrap;gap:.5rem;align-items:flex-start;width:100%;}
.fc-demande .demande_rapide_bloc_piece_pneu_input{flex:1 1 120px;}
.fc-demande .demande_rapide_bloc_piece_pneu_aide img{max-width:48px;height:auto;}
/* Marqueur de champ obligatoire */
.fc-demande .fc-req{color:var(--bs-danger,#dc3545);font-weight:var(--fw-bold);margin-left:1px;}
/* Offset du scroll (validation native / programmatique) sous le header collant,
   pour que le champ ciblé ne se retrouve pas masqué par l'en-tête sticky. */
.fc-demande .form-control,.fc-demande .form-select,.fc-demande .fc-immat,
.fc-demande .form-check,.fc-demande #fc-pieces-error,.fc-demande #fc-submit-error{
  scroll-margin-top:var(--fc-demande-sticky,96px);}

/* ===========================================================================
   Page confirmation de demande (/demande-envoyee-…) — scope .fc-confirm
=========================================================================== */
.fc-confirm .fc-confirm-card{border-radius:var(--radius-lg);}
.fc-confirm .fc-confirm-ico{flex:none;display:inline-flex;align-items:center;justify-content:center;
  width:56px;height:56px;border-radius:50%;}
.fc-confirm .fc-confirm-ico-ok{background:var(--fc-green-50);color:var(--brand-primary);}
.fc-confirm .fc-confirm-ico-info{background:#e7f1f9;color:var(--fc-info-500);}

/* Prochaines étapes */
.fc-confirm .fc-next-step{position:relative;background:#fff;border:1px solid var(--border-subtle);
  border-radius:var(--radius-md);padding:1.5rem;box-shadow:var(--shadow-sm);}
.fc-confirm .fc-next-num{position:absolute;top:14px;right:16px;font-family:var(--font-display);
  font-weight:var(--fw-bold);font-size:var(--fs-2xl);color:var(--fc-grey-200);line-height:1;}
.fc-confirm .fc-next-ico{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;
  border-radius:var(--radius-md);background:var(--surface-sunken);color:var(--text-strong);margin-bottom:.85rem;}
.fc-confirm .fc-next-ico-done{background:var(--fc-green-50);color:var(--brand-primary);}
.fc-confirm .fc-next-title{font-size:var(--fs-lg);margin:0 0 .4rem;}
.fc-confirm .fc-next-text{font-size:var(--fs-sm);color:var(--text-muted);margin:0;line-height:var(--lh-relaxed);}

/* Cartes garages proches (montage) */
.fc-confirm .fc-garage-card{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-md);
  padding:1.25rem;box-shadow:var(--shadow-sm);}
.fc-confirm .fc-garage-head{display:flex;align-items:center;gap:.6rem;margin-bottom:.6rem;}
.fc-confirm .fc-garage-pin{flex:none;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;
  border-radius:50%;background:var(--fc-green-50);color:var(--brand-primary);}
.fc-confirm .fc-garage-nom{font-size:var(--fs-base);font-weight:var(--fw-bold);margin:0;color:var(--text-strong);}
.fc-confirm .fc-garage-adr{font-size:var(--fs-sm);color:var(--text-muted);margin:0 0 .9rem;line-height:1.5;}
.fc-confirm .fc-garage-tel{display:inline-flex;align-items:center;gap:.4rem;font-weight:var(--fw-bold);
  font-size:var(--fs-base);color:#fff;background:var(--brand-primary);border-radius:var(--radius-sm);padding:.45rem .7rem;}

/* Bloc boutique */
.fc-confirm .fc-boutique-card{background:var(--fc-navy-900);border-radius:var(--radius-lg);overflow:hidden;
  display:flex;align-items:center;}
.fc-confirm .fc-boutique-body{padding:2rem;color:#fff;}
.fc-confirm .fc-boutique-card .fc-h2,.fc-confirm .fc-boutique-card .fc-section-sub{color:#fff;}
.fc-confirm .fc-boutique-card .fc-section-sub strong{color:var(--fc-green-400);}

/* Pavé avis Google */
.fc-confirm .fc-avis-card{display:flex;flex-direction:column;align-items:flex-start;gap:.55rem;
  background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:1.75rem;
  box-shadow:var(--shadow-sm);transition:box-shadow .15s,border-color .15s;}
.fc-confirm .fc-avis-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-default);}
.fc-confirm .fc-avis-stars{display:inline-flex;gap:1px;color:var(--fc-amber-400);}
.fc-confirm .fc-avis-txt{font-size:var(--fs-base);color:var(--text-body);line-height:1.45;}
.fc-confirm .fc-avis-cta{font-weight:var(--fw-bold);color:var(--brand-primary);display:inline-flex;align-items:center;gap:.3rem;}

/* Note de réassurance anti-arnaques */
.fc-confirm .fc-confirm-arnaque{font-size:var(--fs-sm);color:var(--text-muted);text-align:center;}
.fc-confirm .fc-confirm-arnaque a{font-weight:var(--fw-semibold);}

/* ===========================================================================
   Page casse auto/moto par ville (/casse-auto-<ville>--…) — scope .fc-casse
=========================================================================== */
/* Contenu éditorial curaté (texte_par_default) : lisibilité prose */
.fc-casse .fc-prose{color:var(--text-body);line-height:var(--lh-relaxed);}
.fc-casse .fc-prose h2{font-family:var(--font-display);font-weight:var(--fw-bold);color:var(--text-strong);
  font-size:var(--fs-xl);margin:1.6rem 0 .8rem;}
.fc-casse .fc-prose h3{font-family:var(--font-display);font-weight:var(--fw-bold);color:var(--text-strong);
  font-size:var(--fs-lg);margin:1.2rem 0 .6rem;}
.fc-casse .fc-prose img{max-width:100%;height:auto;border-radius:var(--radius-sm);}
.fc-casse .fc-prose a{color:var(--text-link);}

/* Carte casse */
.fc-casse .fc-casse-card{border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);transition:box-shadow .15s,border-color .15s;}
.fc-casse .fc-casse-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-default);}
.fc-casse .fc-casse-rang{display:inline-flex;align-items:center;justify-content:center;min-width:48px;height:48px;
  padding:0 .5rem;border-radius:var(--radius-md);background:var(--fc-navy-900);color:#fff;
  font-family:var(--font-display);font-weight:var(--fw-black);font-size:var(--fs-lg);}
.fc-casse .fc-casse-nom{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--text-strong);}
.fc-casse .fc-casse-descr{font-size:var(--fs-sm);color:var(--text-body);font-style:italic;line-height:1.5;}
/* Téléphone surtaxé par casse (≠ 0899 882 630 général) */
.fc-casse .fc-casse-tel{display:inline-flex;flex-direction:column;align-items:flex-start;gap:.1rem;
  background:var(--fc-grey-50,#f6f8fa);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:.5rem .85rem;}
.fc-casse .fc-casse-tel-num{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-lg);
  color:var(--text-strong);text-decoration:none;white-space:nowrap;}
.fc-casse .fc-casse-tel-num:hover{color:var(--brand-primary);}
.fc-casse .fc-casse-tel-code{font-size:var(--fs-xs);color:var(--text-muted);}
/* Liste d'avis sous chaque casse */
.fc-casse .fc-casse-avis{border-top:1px solid var(--border-subtle);padding-top:.85rem;}
.fc-casse .fc-avis-line{padding:.5rem .7rem;border-radius:var(--radius-sm);}
.fc-casse .fc-avis-line.alt{background:var(--fc-grey-50,#f6f8fa);}
.fc-casse .fc-avis-meta{display:flex;align-items:center;gap:.5rem;font-size:var(--fs-xs);color:var(--text-muted);margin-bottom:.2rem;}
.fc-casse .fc-avis-com{font-size:var(--fs-sm);color:var(--text-body);line-height:1.45;}
/* Carte OpenStreetMap (OpenLayers) */
.fc-casse .fc-casse-map{width:100%;height:420px;border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden;background:var(--fc-grey-100);}
@media (max-width:575.98px){ .fc-casse .fc-casse-map{height:300px;} }

/* --- Hub casses (/casse-automobile.htm, /moto/casse-moto.htm) : scope .fc-casse-hub --- */
/* Villes principales : pastilles cliquables */
.fc-casse-hub .fc-city-pill{display:inline-flex;align-items:center;padding:.4rem .9rem;border-radius:999px;
  background:var(--fc-grey-50,#f6f8fa);border:1px solid var(--border-subtle);color:var(--text-strong);
  font-weight:var(--fw-semibold);font-size:var(--fs-sm);text-decoration:none;transition:border-color var(--dur-fast),background var(--dur-fast);}
.fc-casse-hub .fc-city-pill:hover{border-color:var(--brand-primary);background:#fff;color:var(--brand-primary);}
/* Accordéon des villes par région */
.fc-casse-hub .fc-villes-acc .accordion-button{font-family:var(--font-display);font-weight:var(--fw-bold);color:var(--text-strong);}
.fc-casse-hub .fc-villes-acc .accordion-body{padding-top:.75rem;}
/* Grille des marques (lien + logo) */
.fc-casse .fc-marque-link{display:flex;align-items:center;gap:.55rem;padding:.55rem .8rem;height:100%;
  background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-strong);
  font-size:var(--fs-sm);text-decoration:none;transition:border-color var(--dur-fast),box-shadow var(--dur-fast);
  content-visibility:auto;contain-intrinsic-size:auto 48px;}
.fc-casse .fc-marque-link:hover{border-color:var(--brand-primary);box-shadow:var(--shadow-sm);}
.fc-casse .fc-marque-link img{flex:none;width:22px;height:22px;object-fit:contain;}
.fc-casse .fc-marque-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
/* Logo de marque dans le hero (page casse + marque) : pastille blanche */
.fc-casse-marque .fc-marque-hero-logo{flex:none;display:inline-flex;align-items:center;justify-content:center;
  width:72px;height:72px;background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-md);}
.fc-casse-marque .fc-marque-hero-logo img{width:56px;height:56px;object-fit:contain;}
/* Recherche par code postal (en-tête de la section carte) */
.fc-casse-hub .fc-cp-form{display:flex;gap:.5rem;flex:none;}
.fc-casse-hub .fc-cp-form .form-control{max-width:140px;}
/* Bandeau CTA navy */
.fc-casse-hub .fc-cta-band,.fc-instit .fc-cta-band{background:var(--fc-navy-900);border-radius:var(--radius-lg);padding:2.25rem 1.25rem;}
@media (max-width:575.98px){ .fc-casse-hub .fc-cta-band,.fc-instit .fc-cta-band{padding:1.75rem 1rem;} }
/* Texte éditorial resserré (les <p>&nbsp;</p> legacy sont retirés côté PHP) */
.fc-casse .fc-prose-tight{max-width:none;}
.fc-casse .fc-prose-tight p{margin-bottom:.7rem;line-height:var(--lh-normal,1.55);}
.fc-casse .fc-prose-tight ol,.fc-casse .fc-prose-tight ul{margin-bottom:.7rem;}
.fc-casse .fc-prose-tight li{margin-bottom:.25rem;}
.fc-casse .fc-prose-tight > :first-child{margin-top:0;}
.fc-casse .fc-prose-tight > :last-child{margin-bottom:0;}
/* Cartes « Comment ça marche » : numéro d'étape (classe dédiée : .fc-step est
   déjà une règle globale -> display:inline-flex casserait la largeur des cards) */
.fc-howto-num{display:inline-flex;align-items:center;justify-content:center;
  width:24px;height:24px;border-radius:50%;background:var(--fc-navy-900);color:#fff;
  font-family:var(--font-display);font-weight:var(--fw-black);font-size:var(--fs-xs);}
/* Logo marque retombé sur le mark FranceCasse */
.fc-casse-hub .fc-marque-link img.is-fallback{object-fit:contain;opacity:.85;}

/* ===========================================================================
   Page « Adhérer au réseau pro » (/adherer-au-reseau-pro.htm) — scope .fc-addcasse
=========================================================================== */
/* Pastille d'icône réutilisée (hero, bénéfices, contact) */
.fc-addcasse .fc-addcasse-ico{flex:none;display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;border-radius:var(--radius-md);background:var(--fc-green-50);color:var(--brand-primary);}
.fc-addcasse .fc-addcasse-ok{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;
  border-radius:50%;background:var(--fc-green-50);color:var(--brand-primary);}
/* Cartes de choix de profil */
.fc-addcasse .fc-addcasse-profil{display:flex;align-items:center;gap:1rem;text-align:left;cursor:pointer;
  background:#fff;border:1px solid var(--border-default);border-radius:var(--radius-md);padding:1.1rem 1.25rem;
  transition:border-color var(--dur-fast),box-shadow var(--dur-fast);}
.fc-addcasse .fc-addcasse-profil:hover{border-color:var(--brand-primary);box-shadow:var(--shadow-md);}
.fc-addcasse .fc-addcasse-profil.is-active{border-color:var(--brand-primary);box-shadow:var(--shadow-focus);}
.fc-addcasse .fc-addcasse-profil-ico{flex:none;display:inline-flex;align-items:center;justify-content:center;
  width:54px;height:54px;border-radius:var(--radius-md);background:var(--fc-navy-900);color:#fff;}
.fc-addcasse .fc-addcasse-profil-txt{display:flex;flex-direction:column;flex:1;min-width:0;}
.fc-addcasse .fc-addcasse-profil-txt .t{font-family:var(--font-display);font-weight:var(--fw-bold);color:var(--text-strong);font-size:var(--fs-lg);}
.fc-addcasse .fc-addcasse-profil-txt .s{font-size:var(--fs-sm);color:var(--text-muted);}
.fc-addcasse .fc-addcasse-profil-arr{flex:none;color:var(--brand-primary);}
/* Lignes de bénéfices */
.fc-addcasse .fc-addcasse-benef{display:flex;align-items:flex-start;gap:.85rem;background:#fff;
  border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:.9rem 1rem;height:100%;color:var(--text-body);}
.fc-addcasse .fc-badge-offer{background:var(--brand-accent,#f5841d);color:#fff;font-weight:var(--fw-semibold);
  font-size:var(--fs-sm);padding:.5rem .85rem;border-radius:999px;white-space:normal;}
/* Encart "cadeau de bienvenue" mis en valeur (centré, plus grand). */
.fc-addcasse .fc-addcasse-offer{display:flex;align-items:center;justify-content:center;gap:.7rem;margin:1.75rem auto 0;max-width:660px;
  background:#fff4e6;border:1px solid var(--brand-accent,#f5841d);border-radius:var(--radius-md);
  padding:1rem 1.4rem;text-align:center;color:var(--fc-navy-900);font-size:var(--fs-lg);font-weight:var(--fw-semibold);line-height:1.35;}
.fc-addcasse .fc-addcasse-offer i{flex:0 0 auto;width:26px;height:26px;color:var(--brand-accent,#f5841d);}
.fc-addcasse .fc-addcasse-offer strong{color:var(--brand-accent,#f5841d);}
/* Champ obligatoire (réutilise le marqueur de la page demande) */
.fc-addcasse .fc-req{color:var(--bs-danger,#dc3545);font-weight:var(--fw-bold);margin-left:1px;}
/* Select ville injecté par AJAX (verif_codepostal) sans classe Bootstrap */
.fc-addcasse #loadville select{display:block;width:100%;appearance:auto;background:#fff;
  border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-strong);
  font-family:inherit;font-size:var(--fs-base);padding:.7rem .85rem;}
.fc-addcasse #loadville select:disabled{background:var(--fc-grey-100);color:var(--text-muted);}
.fc-addcasse #loadville select:focus{outline:none;border-color:var(--brand-primary);box-shadow:var(--shadow-focus);}

/* ====================== PAGES INSTITUTIONNELLES (render_instit.php) ====================== */
.fc-instit-hero{padding-bottom:1.5rem;}
/* Corps éditorial legacy nettoyé : on borne la largeur de lecture et on gère les flottants. */
.fc-instit-prose{max-width:1040px;margin-inline:auto;}
.fc-instit-prose hr{clear:both;border:0;border-top:1px solid var(--border-soft);margin:1.75rem 0;}
.fc-instit-prose img{border-radius:var(--radius-sm);}
.fc-instit-prose iframe{max-width:100%;}
.fc-instit-prose table{margin:0 0 1rem;}
/* Pseudo-boutons legacy (<input type=button> convertis en .fc-instit-cta) :
   rendus en lien d'action vert, sans soulignement quand ils sont dans un <a>. */
.fc-instit-prose a:has(.fc-instit-cta){text-decoration:none;}
.fc-instit-cta{display:inline-block;background:var(--brand-primary);color:#fff;font-weight:700;
  font-size:var(--fs-sm);padding:.55rem 1rem;border-radius:var(--radius-md);line-height:1.2;
  transition:background .15s ease;}
.fc-instit-prose a:hover .fc-instit-cta{background:var(--fc-green-700);}
/* Page avis clients (id 151) */
.fc-instit-note{border:1px solid var(--border-soft);}
.fc-instit-reviews{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;}
.fc-instit-reviews .review-content{border:1px solid var(--border-soft);border-radius:var(--radius-md);
  padding:1rem;background:#fff;}
.fc-instit-reviews .review-content a{text-decoration:none;color:inherit;}
.fc-instit-reviews .body-stars{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem;}
.fc-instit-reviews .review-rating{display:flex;gap:2px;}
.fc-instit-reviews .review-rating .star{display:inline-flex;}
.fc-instit-reviews .review-date{font-size:var(--fs-xs);color:var(--text-muted);}
.fc-instit-reviews .text blockquote{margin:0;font-size:var(--fs-sm);color:var(--text-body);line-height:var(--lh-relaxed);}
.fc-instit-reviews .review-author{margin-top:.5rem;font-weight:600;font-size:var(--fs-sm);color:var(--text-strong);}

/* ====================== PAGE PARTENAIRES (render_partenaires.php) ====================== */
.fc-partner-card{align-items:center;justify-content:flex-start;}
.fc-partner-card a{text-decoration:none;color:var(--text-strong);}
.fc-partner-card a:hover{color:var(--brand-primary);}
/* Logos hétérogènes (sources externes, tailles variées) normalisés. */
.fc-partner-card img{max-height:68px;width:auto;max-width:100%;height:auto;object-fit:contain;margin:0 auto .65rem;display:inline-block;}
.fc-partner-card h3,.fc-partner-name{font-size:var(--fs-md);font-weight:700;color:var(--text-strong);margin:.25rem 0 .35rem;line-height:var(--lh-tight);}
.fc-partner-card p{font-size:var(--fs-sm);color:var(--text-muted);margin:0;line-height:var(--lh-relaxed);}
.fc-partner-card br{line-height:0;}
.fc-partner-affil .fc-prose{font-size:var(--fs-md);}
.fc-partner-affil .fc-prose a{color:var(--brand-primary);font-weight:600;text-decoration:underline;}

/* ====================== PAGE AFFILIATION (render_affiliation.php) ====================== */
.fc-affil-period .form-select{min-width:230px;width:auto;}
.fc-affil-table th{color:var(--text-strong);font-weight:700;font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:var(--ls-wide);border-bottom:2px solid var(--brand-primary);}
.fc-affil-table td{font-size:var(--fs-md);}
.fc-affil-table tfoot .fc-affil-total td{background:var(--fc-grey-100);font-weight:600;}
.fc-affil-table tfoot .fc-affil-grandtotal td{background:var(--fc-green-50);color:var(--text-strong);font-weight:700;border-top:2px solid var(--brand-primary);}
.fc-affil-pages{font-size:var(--fs-sm);}
.fc-affil-pages a{color:var(--brand-primary);text-decoration:none;font-weight:600;padding:0 .15rem;}
.fc-affil-pages a:hover{text-decoration:underline;}
.fc-affil-legend{font-size:var(--fs-md);font-weight:700;color:var(--text-strong);text-transform:uppercase;letter-spacing:var(--ls-wide);padding-bottom:.4rem;margin-bottom:.25rem;border-bottom:1px solid var(--border-soft);}

/* ====================== GÉNÉRATEUR DE BANNIÈRES (render_bannieres.php) ======================
   Outil interne legacy embarqué : classes portées scopées (sans la règle globale
   h1{float:right} de auto-completion.css). Layout fixe historique -> scroll horizontal. */
.fc-affil-builder{overflow-x:auto;font-size:var(--fs-sm);color:var(--text-body);}
.fc-affil-builder img{max-width:none;}            /* aperçus de bannières à taille réelle */
.fc-affil-builder .titreblabla2,.fc-affil-builder .titreblabla2_bleu{background:var(--fc-navy-900);color:#fff;font-weight:700;padding:.6rem 1rem;border-radius:var(--radius-md) var(--radius-md) 0 0;margin-top:1.25rem;text-transform:uppercase;letter-spacing:var(--ls-wide);font-size:var(--fs-sm);}
.fc-affil-builder .titreblabla2 a,.fc-affil-builder .titreblabla2_bleu a{color:var(--fc-green-300);}
.fc-affil-builder .contenu{border:1px solid var(--border-soft);border-top:0;border-radius:0 0 var(--radius-md) var(--radius-md);padding:1rem;margin-bottom:.5rem;}
.fc-affil-builder .titre_apercu,.fc-affil-builder .titre_apercu2,.fc-affil-builder .titre_apercu3{background:none;height:auto;width:auto;padding:.35rem 0;font-size:var(--fs-md);font-weight:700;color:var(--text-strong);}
.fc-affil-builder .txt_apercu,.fc-affil-builder .txt_apercu2,.fc-affil-builder .txt_apercu3{background:none;width:auto;padding:.35rem 0 .75rem;font-size:var(--fs-sm);border-bottom:1px solid var(--border-soft);}
.fc-affil-builder input.text{height:auto;font-size:var(--fs-sm);padding:.25rem .4rem;border:1px solid var(--border-strong);border-radius:var(--radius-xs);}
.fc-affil-builder select{padding:.25rem .4rem;border:1px solid var(--border-strong);border-radius:var(--radius-xs);font-size:var(--fs-sm);}

/* ====================== ESPACE PRESSE (instit id 134, render_instit.php) ======================
   Le blob éditorial DB utilise la grille flottante legacy (bloc_instit*). On la
   rend en flex responsive, scopée sous .fc-presse (sans impacter les autres pages). */
.fc-presse .fc-instit-prose .bloc_instit{display:flex;flex-wrap:wrap;gap:1.25rem;align-items:center;margin:0 0 1.25rem;}
.fc-presse .fc-instit-prose .bloc_instit_33{flex:0 0 auto;width:30%;min-width:190px;text-align:center;}
.fc-presse .fc-instit-prose .bloc_instit_67{flex:1 1 55%;min-width:260px;}
.fc-presse .fc-instit-prose .bloc_instit_50{flex:1 1 44%;min-width:220px;text-align:center;}
.fc-presse .fc-instit-prose .bloc_instit img{max-width:100%;height:auto;border-radius:var(--radius-sm);}
.fc-presse .fc-instit-prose .bloc_instit_67 h3{margin:0 0 .5rem !important;font-size:var(--fs-lg);color:var(--text-strong);}
.fc-presse .fc-instit-prose .bloc_instit_67 p{margin-left:0 !important;}
/* Lignes communiqué / dossier (image + texte) présentées en cartes */
.fc-presse .fc-instit-prose .bloc_instit:has(.bloc_instit_67){border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:1.25rem;background:#fff;}
/* Séparateurs legacy remplacés par l'espacement des sections */
.fc-presse .fc-instit-prose hr{display:none;}
/* Boutons de téléchargement (pseudo-boutons convertis) : un peu plus visibles */
.fc-presse .fc-instit-prose .fc-instit-cta{padding:.6rem 1.1rem;}
/* Galerie de visuels : images cliquables avec léger cadre */
.fc-presse .fc-instit-prose .bloc_instit_50 img{border:1px solid var(--border-soft);}

/* ====================== PAGE GARAGES / RÉPARATION (render_reparation.php) ====================== */
.fc-reparation .display-none{display:none;}
/* Selects modèle/version chargés en AJAX : rendus natifs (.form-select, sans
   select2 sur cette page) -> on force le conteneur en bloc pour qu'ils prennent
   toute la largeur (charge_modeles les passe en inline-block, ce qui les rétrécit). */
.fc-reparation #loadmodele,.fc-reparation #loadversion,.fc-reparation #loadenergie{display:block !important;}
/* charge_versions/charge_modeles repassent les placeholders en inline-block quand
   ils sont en attente (-> select rétréci à son texte). On les force en bloc dans
   ce cas, sans toucher à l'état display:none (placeholder masqué quand chargé). */
.fc-reparation #disabledselectmodele[style*="inline-block"],
.fc-reparation #disabledselectversion[style*="inline-block"],
.fc-reparation #disabledselectenergie[style*="inline-block"]{display:block !important;}
/* Tous les selects de l'étape véhicule (placeholders + injectés) en pleine largeur */
.fc-reparation .fc-repar-step select{width:100%;}
.fc-reparation .fc-repar-legend{display:flex;align-items:center;gap:.6rem;font-size:var(--fs-xl);font-weight:700;color:var(--text-strong);margin:0;}
.fc-reparation .fc-repar-num{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--brand-primary);color:#fff;font-family:var(--font-display);font-weight:800;font-size:var(--fs-md);flex:0 0 auto;}
.fc-reparation .fc-repar-cats .accordion-body{padding:1rem;}
.fc-reparation .fc-repar-op{border-radius:var(--radius-pill);}
.fc-reparation .fc-repar-direct{font-weight:700;}
.fc-reparation .fc-immat{text-transform:uppercase;}
/* Les selects injectés dynamiquement (modèle/version/ville) portent désormais la
   classe .form-select à la source (landing_page.php & infos_loadville.php) :
   plus de surcharge CSS nécessaire. */

/* --- Cartes de DÉTAIL (markup injecté par ajoute_reparation) : en-tête + corps --- */
.fc-reparation #liste_reparations table{width:100%;font-size:var(--fs-sm);}
.fc-reparation .panier_reparation{position:relative;border:1px solid var(--border-strong);border-radius:var(--radius-md);
  margin-bottom:.85rem;background:#fff;overflow:hidden;}
.fc-reparation .panier_reparation_libelle{display:block;font-weight:700;color:var(--text-strong);
  background:var(--fc-grey-50,#f6f8fa);padding:.6rem 2.4rem .6rem .9rem;border-bottom:1px solid var(--border-soft);}
.fc-reparation .panier_reparation_haut{position:absolute;top:.45rem;right:.6rem;z-index:1;}
.fc-reparation .panier_reparation_haut a{color:var(--text-muted);display:inline-flex;}
.fc-reparation .panier_reparation_haut a:hover{color:var(--bs-danger,#dc3545);}
.fc-reparation .panier_reparation_photo,.fc-reparation .panier_reparation_infosupp{padding:.9rem;}
.fc-reparation .panier_reparation_infosupp{font-size:var(--fs-sm);color:var(--text-body);display:flex;flex-wrap:wrap;gap:8px;}
.fc-reparation .panier_reparation_bas{display:none;}
.fc-reparation .panier_reparation input[type=text]{padding:.4rem .6rem;border:1px solid var(--border-strong);
  border-radius:var(--radius-xs);font-size:var(--fs-sm);max-width:100%;}
.fc-reparation .fc-repar-photo-help{font-size:var(--fs-sm);color:var(--text-muted);margin:0 0 .5rem;}
/* Composant photos (iframe infos_photos.php) — même intégration que infos.php */
.fc-reparation .fc-repar-photoframe{width:100%;height:105px;border:0;display:block;}

/* --- Étape 2 : options en toggle (sélection visible au point de tap) --- */
.fc-reparation .fc-repar-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 7px;border-radius:var(--radius-pill);background:var(--brand-primary);color:#fff;font-family:var(--font-display);font-weight:700;font-size:var(--fs-sm);margin-left:.4rem;}
.fc-reparation .fc-repar-op{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border-strong);background:#fff;color:var(--text-body);border-radius:var(--radius-pill);padding:.45rem .85rem;font-size:var(--fs-sm);line-height:1.2;transition:background .12s ease,border-color .12s ease,color .12s ease;}
.fc-reparation .fc-repar-op:hover{border-color:var(--brand-primary);color:var(--fc-green-700);}
.fc-reparation .fc-repar-op .ico-check{display:none;}
.fc-reparation .fc-repar-op.is-selected{background:var(--fc-green-50);border-color:var(--brand-primary);color:var(--fc-green-700);font-weight:600;}
.fc-reparation .fc-repar-op.is-selected .ico-plus{display:none;}
.fc-reparation .fc-repar-op.is-selected .ico-check{display:inline;}
/* La catégorie "montage" (bouton direct) : pleine largeur, radius normal */
/* Catégorie sans sous-opération (ex. « Montage de pièce ») : même rendu que les
   en-têtes d'accordéon (ligne pleine largeur), et pas une pastille dans un cadre.
   On neutralise le style « pastille » de .fc-repar-op ; la bordure de l'.accordion-item
   fait le cadre unique, comme les autres catégories. Le +/check reste l'affordance. */
.fc-reparation .fc-repar-direct{width:100%;justify-content:flex-start;gap:10px;border:0;background:transparent;
  border-radius:0;margin:0;padding:1rem 1.25rem;color:var(--text-strong);font-weight:var(--fw-bold);}
.fc-reparation .fc-repar-direct:hover{background:var(--fc-green-50);color:var(--fc-green-700);}
.fc-reparation .fc-repar-direct.is-selected{background:var(--fc-green-50);color:var(--fc-green-700);font-weight:var(--fw-bold);}
.fc-reparation .accordion-header:has(.fc-repar-direct){border:0;background:transparent;}
/* Panneau "Votre sélection" : surface verte contrastée + puces blanches bordées */
.fc-reparation .fc-repar-selection{background:var(--fc-green-50);border:1px solid var(--fc-green-200,#c0dd97);border-radius:var(--radius-md);padding:.85rem 1rem;}
.fc-reparation .fc-repar-selection > .fw-bold{color:var(--fc-green-700);}
.fc-reparation .fc-repar-chips{display:flex;flex-wrap:wrap;gap:8px;}
.fc-reparation .fc-repar-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 6px 6px 12px;border:1px solid var(--fc-green-300,#97c459);border-radius:var(--radius-pill);background:#fff;font-size:var(--fs-sm);color:var(--text-strong);}
.fc-reparation .fc-repar-chip-cam{color:var(--brand-primary);}
/* Carte "informations utiles au devis" (globale, séparée des cartes de détail) */
.fc-reparation #liste_reparations_commentaire{border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:1rem;background:#fff;}
.fc-reparation #piecefournie label{display:block;margin-bottom:.4rem;font-size:var(--fs-sm);}
.fc-reparation .fc-repar-chip-x{border:0;background:transparent;color:var(--text-muted);display:inline-flex;padding:2px;border-radius:50%;cursor:pointer;}
.fc-reparation .fc-repar-chip-x:hover{color:var(--bs-danger,#dc3545);background:var(--fc-grey-100);}
/* Barre de rappel collante (mobile surtout) */
.fc-reparation .fc-repar-bar{position:sticky;bottom:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-top:1rem;padding:.7rem 1rem;background:#fff;border:1px solid var(--border-soft);border-radius:var(--radius-md);box-shadow:var(--shadow-md,0 -2px 12px rgba(17,36,55,.08));font-size:var(--fs-sm);font-weight:600;color:var(--text-strong);}
@media (min-width:992px){ .fc-reparation .fc-repar-bar{display:none !important;} }

/* ===========================================================================
   Bandeau de consentement cookies (RGPD)
   ---------------------------------------------------------------------------
   Le markup (#bandeau_cookies > #bandeau_cookies_conteneur + boutons) est figé
   côté legacy : il est généré par includes/rgpd.php et injecté par cloudflare.js
   dans #cf_cookiesconsent (cf. front/partials/head.php). On le restyle ici car
   les anciennes feuilles (templates/.../css/auto*.css) ne sont PAS chargées par
   la refonte → sans ces règles le bandeau s'affichait en texte brut non stylé.
   Accept / refus / paramétrage = choix_cookies() dans js/piece-detachee.js
   (le clic POST /ajax/cookies.php puis masque #bandeau_cookies).
=========================================================================== */
#bandeau_cookies{
  position:fixed;left:0;right:0;bottom:0;z-index:1030;
  background:var(--surface-card);color:var(--text-body);
  border-top:3px solid var(--brand-primary);
  box-shadow:0 -6px 24px rgba(17,36,55,.16);
  font-family:var(--font-body);font-size:var(--fs-sm);line-height:var(--lh-normal);
}
#bandeau_cookies_conteneur{
  max-width:1100px;margin:0 auto;padding:1.1rem 1.25rem 1.2rem;text-align:left;
}
#bandeau_cookies_conteneur a{color:var(--text-link);}
#bandeau_cookies_bouton{margin:.85rem 0 .3rem;}
#lienacceptecookie,.bandeau_cookies_bouton{
  display:inline-flex;align-items:center;justify-content:center;
  padding:.6rem 1.5rem;line-height:1.2;
  background:var(--brand-primary);color:#fff;
  border:1px solid var(--brand-primary);border-radius:var(--radius-sm);
  font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-base);
  cursor:pointer;transition:background var(--dur-normal),border-color var(--dur-normal);
}
#lienacceptecookie:hover,.bandeau_cookies_bouton:hover{
  background:var(--brand-primary-hover);border-color:var(--brand-primary-hover);color:#fff;
}
.bandeau_cookies_bouton_gerer{
  display:inline-flex;align-items:center;justify-content:center;
  padding:.6rem 1.4rem;line-height:1.2;
  background:var(--surface-sunken);color:var(--text-strong);
  border:1px solid var(--border-default);border-radius:var(--radius-sm);
  font-family:var(--font-display);font-weight:var(--fw-semibold);cursor:pointer;
  transition:background var(--dur-normal),border-color var(--dur-normal);
}
.bandeau_cookies_bouton_gerer:hover{background:var(--surface-page);border-color:var(--border-strong);}
#lienrefusecookie,#lienparametragecookie{
  color:var(--text-muted);text-decoration:underline;font-size:var(--fs-xs);
}
#lienrefusecookie:hover,#lienparametragecookie:hover{color:var(--text-strong);}
@media (min-width:768px){
  #bandeau_cookies_conteneur{padding:1.25rem 1.5rem;}
}

/* Formulaire de paramétrage des cookies (page instit 152, ancre #cookiesparametrage).
   Le markup (#form_cookie > .instit_privacy > .instit_privacy_ligne) vient du blob
   éditorial legacy ; ses styles vivaient dans templates/.../css/auto*.css (non chargés
   par la refonte) → on les reporte ici, scopés sous .fc-instit. Submit = bouton FC. */
.fc-instit .instit_privacy{margin:1rem 0;}
.fc-instit .instit_privacy_ligne{display:flex;align-items:flex-start;gap:.65rem;margin:.55rem 0;}
.fc-instit .instit_privacy_gauche{flex:0 0 auto;padding-top:.15rem;}
.fc-instit .instit_privacy_gauche input[type=checkbox]{width:18px;height:18px;accent-color:var(--brand-primary);cursor:pointer;}
.fc-instit .instit_privacy_droite{flex:1 1 auto;}
.fc-instit .instit_privacy_ligne input[type=submit]{
  display:inline-flex;align-items:center;justify-content:center;
  padding:.6rem 1.5rem;background:var(--brand-primary);color:#fff;
  border:1px solid var(--brand-primary);border-radius:var(--radius-sm);
  font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-base);
  cursor:pointer;transition:background var(--dur-normal),border-color var(--dur-normal);
}
.fc-instit .instit_privacy_ligne input[type=submit]:hover{
  background:var(--brand-primary-hover);border-color:var(--brand-primary-hover);
}

/* ===========================================================================
   Pages institutionnelles garages (/garages-reparation-auto/*) — .fc-rinstit
   ---------------------------------------------------------------------------
   Le corps éditorial legacy (templates reparation_instit/Contenu_*) est embarqué
   tel quel par render_reparation_instit.php puis habillé ici (les feuilles legacy
   reparation.css ne sont pas chargées par la refonte). Markup figé : on style ses
   classes/ID historiques (.contenu_reparation_instit, #contenu_reparation_instit_table*,
   .table_droite_*). Le <h1> est remonté dans le hero côté contrôleur. */
.fc-rinstit .contenu_reparation_instit{font-size:var(--fs-base);line-height:var(--lh-relaxed);color:var(--text-body);}
.fc-rinstit .contenu_reparation_instit > a{color:var(--text-link);}
/* Grille 2 colonnes : éditorial + encart "type de réparation" */
.fc-rinstit #contenu_reparation_instit_table{display:grid;grid-template-columns:1fr;gap:2rem;margin-top:1.5rem;align-items:start;}
@media (min-width:992px){ .fc-rinstit #contenu_reparation_instit_table{grid-template-columns:minmax(0,1fr) 320px;} }
.fc-rinstit #contenu_reparation_instit_table_gauche{min-width:0;}
/* Prose colonne gauche */
.fc-rinstit #contenu_reparation_instit_table_gauche h2{font-family:var(--font-display);font-weight:var(--fw-bold);color:var(--text-strong);font-size:var(--fs-xl);line-height:var(--lh-snug);margin:1.75rem 0 .65rem;}
.fc-rinstit #contenu_reparation_instit_table_gauche h2:first-child{margin-top:0;}
.fc-rinstit .contenu_reparation_instit_marginleft{margin:0 0 1rem;}
.fc-rinstit #contenu_reparation_instit_table_gauche a{color:var(--text-link);}
.fc-rinstit #contenu_reparation_instit_table_gauche a:hover{color:var(--fc-green-700);}
.fc-rinstit #contenu_reparation_instit_table_gauche img{max-width:100%;height:auto;border-radius:var(--radius-sm);}
.fc-rinstit #contenu_reparation_instit_table_gauche p[align="center"]{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;align-items:center;}
.fc-rinstit #contenu_reparation_instit_table_gauche iframe{width:100%;aspect-ratio:16/9;height:auto;border:0;border-radius:var(--radius-md);margin-top:.5rem;}
/* Encart droit "type de réparation / prestations / devis" */
.fc-rinstit #contenu_reparation_instit_table_droite{position:sticky;top:1rem;}
.fc-rinstit [class^="table_droite_"]{}
.fc-rinstit .table_droite_carrosserie,.fc-rinstit .table_droite_vidange,.fc-rinstit .table_droite_plaquette{
  background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden;margin-bottom:1.25rem;}
.fc-rinstit .table_droite_titre{background:var(--brand-ink);color:#fff;font-family:var(--font-display);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--ls-wide);font-size:var(--fs-sm);padding:.85rem 1.1rem;}
.fc-rinstit .table_droite_spacer{display:none;}
.fc-rinstit .table_droite_lien{border-top:1px solid var(--border-subtle);}
.fc-rinstit .table_droite_lien a{display:block;padding:.7rem 1.1rem;color:var(--text-body);text-decoration:none;font-size:var(--fs-sm);transition:background var(--dur-fast),color var(--dur-fast);}
.fc-rinstit .table_droite_lien a:hover{background:var(--fc-green-50);color:var(--fc-green-700);}
.fc-rinstit .table_droite_texte{padding:.7rem 1.1rem;border-top:1px solid var(--border-subtle);font-weight:var(--fw-semibold);color:var(--text-strong);font-size:var(--fs-sm);}
.fc-rinstit .table_droite_bouton{margin:0 0 1rem;}
.fc-rinstit .table_droite_bouton img{max-width:100%;height:auto;}
.fc-rinstit .table_droite_garagespartenaires img{max-width:100%;height:auto;border-radius:var(--radius-md);}
/* Famille ville : intro + carte OpenLayers + cartes garages */
.fc-rinstit .fc-rinstit-lead{font-size:var(--fs-md);color:var(--text-body);max-width:760px;}
.fc-rinstit .fc-rinstit-map{width:100%;height:460px;border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden;background:var(--fc-grey-100);}
@media (max-width:575.98px){ .fc-rinstit .fc-rinstit-map{height:320px;} }
.fc-rinstit .fc-rinstit-gname{font-family:var(--font-display);font-weight:var(--fw-bold);color:var(--text-strong);font-size:var(--fs-md);margin:0 0 .35rem;}
.fc-rinstit .fc-rinstit-gmeta{display:flex;align-items:flex-start;gap:.4rem;color:var(--text-muted);font-size:var(--fs-sm);line-height:var(--lh-snug);}
.fc-rinstit .fc-rinstit-gmeta i{width:16px;height:16px;flex:0 0 auto;margin-top:2px;color:var(--brand-primary);}
/* Famille carte réseau (embarque Contenu_carte) : description + formulaire CP +
   iframe carte cliquable + grilles marques/villes + liste département */
.fc-rinstit #mapliste{margin:1.5rem 0;}
.fc-rinstit #mapliste_texte{font-size:var(--fs-base);color:var(--text-body);margin-bottom:.75rem;}
.fc-rinstit #maplisteinput{display:flex;gap:.5rem;max-width:360px;margin-top:.5rem;}
.fc-rinstit #maplisteinput input[type=tel]{flex:1 1 auto;min-width:0;border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:.55rem .8rem;font-size:var(--fs-base);}
.fc-rinstit #maplisteinput input[type=tel]:focus{border-color:var(--brand-primary);box-shadow:var(--shadow-focus);outline:0;}
.fc-rinstit #maplisteinput input[type=submit]{flex:0 0 auto;background:var(--brand-primary);color:#fff;border:1px solid var(--brand-primary);border-radius:var(--radius-sm);font-family:var(--font-display);font-weight:var(--fw-bold);padding:.55rem 1.4rem;cursor:pointer;}
.fc-rinstit #maplisteinput input[type=submit]:hover{background:var(--brand-primary-hover);border-color:var(--brand-primary-hover);}
.fc-rinstit .map-carte-garage,.fc-rinstit .map-carte-garage #map{width:100%;}
.fc-rinstit .map-carte-garage #map{height:520px;border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden;background:var(--fc-grey-100);}
.fc-rinstit .map-carte-garage #map iframe{display:block;width:100%;height:100%;border:0;}
@media (max-width:575.98px){ .fc-rinstit .map-carte-garage #map{height:380px;} }
/* Grilles marques / villes */
.fc-rinstit #instit_carte_table{margin-top:2rem;}
/* Tableau des garages du département : centrage vertical des cellules (les lignes
   sont hautes -> le décalage se voyait). S'applique aussi au tableau rechargé en AJAX. */
.fc-rinstit #instit_carte_table table td,
.fc-rinstit #instit_carte_table table th{vertical-align:middle;}
.fc-rinstit #instit_carte_table .instit_carte_colonne_marque,
.fc-rinstit #instit_carte_table .instit_carte_colonne_ville{display:inline-block;vertical-align:top;width:calc(20% - .6rem);min-width:120px;margin:.3rem;}
@media (max-width:767.98px){ .fc-rinstit #instit_carte_table .instit_carte_colonne_marque,.fc-rinstit #instit_carte_table .instit_carte_colonne_ville{width:calc(50% - .6rem);} }
.fc-rinstit .instit_carte_colonne_marque a,.fc-rinstit .instit_carte_colonne_ville a{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;text-align:center;
  min-height:96px;padding:.85rem .5rem;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);
  color:var(--text-strong);text-decoration:none;font-weight:var(--fw-semibold);font-size:var(--fs-sm);line-height:var(--lh-snug);box-shadow:var(--shadow-xs);transition:border-color var(--dur-fast),box-shadow var(--dur-fast);}
.fc-rinstit .instit_carte_colonne_marque a:hover,.fc-rinstit .instit_carte_colonne_ville a:hover{border-color:var(--brand-primary);box-shadow:var(--shadow-sm);color:var(--fc-green-700);}
.fc-rinstit .instit_carte_colonne_marque img{width:44px;height:44px;border-radius:var(--radius-sm);}
/* Liste garages département (table Bootstrap embarquée) */
.fc-rinstit #list-garage-bottom{margin-top:2rem;}
.fc-rinstit #list-garage-bottom .h5{font-family:var(--font-display);font-weight:var(--fw-bold);color:var(--text-strong);margin-bottom:1rem;}
.fc-rinstit #list-garage-bottom .warning{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--fs-sm);color:var(--text-muted);margin-bottom:.75rem;}
.fc-rinstit #list-garage-bottom table{width:100%;font-size:var(--fs-sm);}
.fc-rinstit #list-garage-bottom .filter-th a{color:var(--text-strong);text-decoration:none;display:inline-flex;align-items:center;gap:.25rem;}
.fc-rinstit #list-garage-bottom .ico-filter-up,.fc-rinstit #list-garage-bottom .ico-filter-down{opacity:.35;}
.fc-rinstit #list-garage-bottom .btn-grenat{display:inline-flex;align-items:center;gap:.35rem;background:var(--brand-primary);color:#fff;border-radius:var(--radius-sm);padding:.35rem .7rem;text-decoration:none;font-size:var(--fs-xs);font-weight:var(--fw-semibold);white-space:nowrap;}
.fc-rinstit #list-garage-bottom .btn-grenat:hover{background:var(--brand-primary-hover);color:#fff;}
.fc-rinstit .pagination-wrapper{display:flex;justify-content:center;margin-top:1rem;}
.fc-rinstit .pagination{display:flex;flex-wrap:wrap;gap:.25rem;list-style:none;padding:0;}
.fc-rinstit .pagination .page-link{display:inline-block;padding:.4rem .7rem;border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-link);text-decoration:none;font-size:var(--fs-sm);}
.fc-rinstit .pagination .active .page-link,.fc-rinstit .pagination .page-item.active .page-link{background:var(--brand-primary);border-color:var(--brand-primary);color:#fff;}
/* Famille prestation (fiche garage premium, embarque contenu_casse_prestations) */
.fc-rinstit .wrap-retour{margin:0 0 1.25rem;}
.fc-rinstit .btn-light-dark{display:inline-flex;align-items:center;gap:.4rem;background:var(--surface-sunken);color:var(--text-strong);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:.5rem 1rem;text-decoration:none;font-weight:var(--fw-semibold);font-size:var(--fs-sm);}
.fc-rinstit .btn-light-dark:hover{background:var(--surface-page);border-color:var(--border-strong);}
.fc-rinstit #page-casse-prestation-u .card{border:1px solid var(--border-subtle)!important;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:1.5rem;width:100%;max-width:100%;text-align:left;}
.fc-rinstit .row-u-garage-adresse{display:grid;grid-template-columns:1fr;gap:1.5rem;}
@media (min-width:992px){ .fc-rinstit .row-u-garage-adresse{grid-template-columns:320px 1fr;align-items:start;} }
.fc-rinstit .text-contact-garage{background:var(--surface-sunken);border-radius:var(--radius-md);padding:1.25rem;text-align:center;}
.fc-rinstit .text-contact-garage img{height:40px;width:auto;margin-bottom:.5rem;}
.fc-rinstit .text-garage-telephone-u,.fc-rinstit .text-garage-adresse-u{margin-top:.6rem;font-size:var(--fs-sm);color:var(--text-body);}
.fc-rinstit .text-garage-telephone-u img,.fc-rinstit .text-garage-adresse-u img{height:16px;width:auto;margin:0 .25rem 0 0;vertical-align:middle;}
.fc-rinstit .text-contact-garage .h4{font-family:var(--font-display);font-weight:var(--fw-bold);color:var(--text-strong);font-size:var(--fs-lg);margin:.25rem 0;}
.fc-rinstit .warning{display:inline-flex;align-items:center;gap:.35rem;font-size:var(--fs-xs);color:var(--text-muted);margin-top:.75rem;}
.fc-rinstit .warning img{height:16px;width:auto;}
.fc-rinstit .text-seo-garage .h5{font-family:var(--font-display);font-weight:var(--fw-bold);color:var(--text-strong);font-size:var(--fs-md);margin:0 0 .6rem;}
.fc-rinstit .text-seo-garage-u{font-size:var(--fs-base);color:var(--text-body);line-height:var(--lh-relaxed);}
/* Galerie photos : grille (slick remplacé) */
.fc-rinstit #photo-garage-wrap-u{margin-top:1.5rem;}
.fc-rinstit .photo-wrapper-list{display:flex;flex-wrap:wrap;gap:.6rem;}
.fc-rinstit .item-photo-wrapper-u{flex:0 0 auto;}
.fc-rinstit .photo_item_u{width:160px;height:120px;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);display:block;}
.fc-rinstit #map-container-garage{margin-top:1.5rem;height:340px;border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden;background:var(--fc-grey-100);}
.fc-rinstit #map-container-garage iframe{display:block;width:100%;height:100%;border:0;}
/* Accordéon prestations (BS5 après conversion data-bs-*) */
.fc-rinstit #accordion-prestation-list{margin-top:1rem;width:100%;max-width:100%;}
.fc-rinstit #accordion-prestation-list .card{border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:.6rem;overflow:hidden;box-shadow:none;}
.fc-rinstit #accordion-prestation-list .card-header{padding:0;background:var(--surface-sunken);border:0;}
.fc-rinstit #accordion-prestation-list .btn-link{display:block;width:100%;text-align:left;padding:.85rem 1.1rem;background:none;border:0;color:var(--text-strong);font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:var(--fs-base);text-decoration:none;cursor:pointer;}
.fc-rinstit #accordion-prestation-list .btn-link:hover{color:var(--fc-green-700);}
.fc-rinstit #accordion-prestation-list .card-body{padding:1rem;}
.fc-rinstit #accordion-prestation-list table{width:100%;font-size:var(--fs-sm);}

/* ===========================================================================
   CGU service de livraison (/conditions-generales-utilisation-livraison*.htm)
   — .fc-cgu
   ---------------------------------------------------------------------------
   Page NOINDEX informationnelle (render_geodis_cgu.php). Corps éditorial legacy
   (templates espaceadherent/geodis/Cgugeodis*, Cgucolissimo) embarqué et habillé
   ici. Les <div class="geodis_popup_titretexte"> sont convertis en <h2.fc-cgu-sec>
   côté contrôleur ; les tables tarifaires/frais sont stylées en BS5. La grille
   Geodis (#geodis_tableau_tarifs) est large (1 ligne / département) -> scroll-x. */
.fc-cgu .fc-cgu-doc{max-width:920px;}
.fc-cgu .fc-cgu-lead{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text-strong);background:var(--fc-green-50);border-left:3px solid var(--brand-primary);border-radius:var(--radius-sm);padding:.85rem 1.1rem;margin:0 0 1.75rem;}
.fc-cgu .fc-cgu-sec{font-family:var(--font-display);font-weight:var(--fw-bold);color:var(--text-strong);font-size:var(--fs-xl);line-height:var(--lh-snug);margin:1.9rem 0 .7rem;padding-top:1.1rem;border-top:1px solid var(--border-subtle);}
.fc-cgu .fc-cgu-doc > .fc-cgu-sec:first-child{border-top:0;padding-top:0;margin-top:0;}
.fc-cgu .fc-cgu-doc p{margin:0 0 1rem;}
.fc-cgu .fc-cgu-doc b{color:var(--text-strong);}
/* Tables (frais complémentaires + grilles tarifaires) */
.fc-cgu .fc-cgu-doc table{width:100%;border-collapse:collapse;margin:.5rem 0 1.5rem;font-size:var(--fs-sm);background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden;}
.fc-cgu .fc-cgu-doc th,.fc-cgu .fc-cgu-doc td{padding:.6rem .8rem;border:1px solid var(--border-subtle);text-align:left;vertical-align:top;}
.fc-cgu .fc-cgu-doc th{background:var(--brand-ink);color:#fff;font-weight:var(--fw-bold);}
.fc-cgu .fc-cgu-doc tr:nth-child(even) td{background:var(--surface-sunken);}
/* Grille Geodis large : conteneur scrollable + colonnes compactes */
.fc-cgu #geodis_tableau_tarifs{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:.5rem 0 1.5rem;}
.fc-cgu #geodis_tableau_tarifs table{margin:0;min-width:640px;white-space:nowrap;}
.fc-cgu #geodis_tableau_tarifs td,.fc-cgu #geodis_tableau_tarifs th{text-align:center;padding:.45rem .55rem;}
/* Sélecteurs département / type (handlers onChange legacy conservés) */
.fc-cgu .fc-cgu-doc select{display:inline-block;width:auto;max-width:100%;margin:.15rem .25rem;padding:.4rem 2rem .4rem .7rem;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-card);font-family:var(--font-body);font-size:var(--fs-sm);color:var(--text-body);cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23112437' d='M6 8 0 0h12z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .7rem center;-webkit-appearance:none;-moz-appearance:none;appearance:none;}
.fc-cgu .fc-cgu-doc select:focus{border-color:var(--brand-primary);box-shadow:var(--shadow-focus);outline:0;}

/* ===========================================================================
   Enlèvement d'épave (/enlevement-epave-gratuit.htm) — .fc-epave
=========================================================================== */
/* Carte OpenStreetMap (état succès) */
.fc-epave .fc-epave-map{width:100%;height:460px;border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden;background:var(--fc-grey-100);}
@media (max-width:575.98px){ .fc-epave .fc-epave-map{height:320px;} }
/* Module photos iframe (même composant que les autres pages : infos_photos_epave.php) */
.fc-epave .fc-epave-photos{border:1px dashed var(--border-default);border-radius:var(--radius-md);padding:.5rem;background:var(--surface-sunken);}
.fc-epave .fc-epave-photos iframe{width:100%;height:150px;border:0;display:block;}
/* Avertissement documents obligatoires (réponse "Non") */
.fc-epave .fc-epave-warn{font-size:var(--fs-xs);color:var(--fc-orange-700);background:var(--fc-orange-300,#ffc06b);background:rgba(245,132,29,.10);border-left:3px solid var(--brand-accent);border-radius:var(--radius-xs);padding:.5rem .65rem;}
/* Groupes Oui/Non (btn-check) : compacts */
.fc-epave .btn-group .btn{min-width:64px;}
/* Cascade 'epave' : les selects modèle/énergie/version chargés portent déjà
   .form-select (identiques aux placeholders) -> plus de select2 dessus (cf.
   piece-detachee.js), donc aucun saut de style. Seul le select ville transitoire
   (spinner / « Tapez votre code postal ») n'a pas la classe -> habillage minimal. */
.fc-epave #loadville select{
  display:block;width:100%;appearance:auto;background:#fff;
  border:1px solid var(--border-default);border-radius:var(--radius-md);
  color:var(--text-strong);font-family:inherit;font-size:var(--fs-base);padding:.55rem .8rem;line-height:1.5;}
.fc-epave #loadville select:focus{outline:none;border-color:var(--brand-primary);box-shadow:var(--shadow-focus);}
.fc-epave #loadville select:disabled{background:var(--fc-grey-100);color:var(--text-muted);}

/* Boutons de choix Oui/Non (btn-check) : style IDENTIQUE tant que rien n'est
   coché (ni Oui ni Non « pré-sélectionné » visuellement) ; vert une fois choisi. */
.fc-epave .fc-epave-choice{min-width:64px;background:#fff;border:1px solid var(--border-strong);color:var(--text-body);font-weight:600;}
.fc-epave .fc-epave-choice:hover{border-color:var(--brand-primary);color:var(--fc-green-700);}
.fc-epave .btn-check:checked+.fc-epave-choice{background:var(--brand-primary);border-color:var(--brand-primary);color:#fff;}
.fc-epave .btn-check:focus-visible+.fc-epave-choice{box-shadow:var(--shadow-focus);}

/* ===========================================================================
   Connexion espace client (/connexion-espace-client.htm) — .fc-connexion
=========================================================================== */
.fc-connexion .fc-connexion-wrap{background:var(--surface-page);padding:3rem 0;}
.fc-connexion .fc-connexion-card{max-width:440px;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:2rem;}
@media (max-width:575.98px){ .fc-connexion .fc-connexion-card{padding:1.5rem;} }

/* ===========================================================================
   ESPACE CLIENT (refonte) — chrome connecté + pages
=========================================================================== */
/* Layout 2 colonnes : sidebar (gauche) + contenu (droite) */
.fc-eclient-layout{display:grid;grid-template-columns:264px minmax(0,1fr);gap:var(--sp-6,24px);align-items:start;}
.fc-eclient-content{min-width:0;}
.fc-eclient-sidebar{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:14px;position:sticky;top:84px;}
/* Bloc utilisateur */
.fc-eclient-user{display:flex;align-items:center;gap:10px;padding:6px 6px 12px;border-bottom:1px solid var(--border-subtle);margin-bottom:10px;}
.fc-eclient-user-ava{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:none;border-radius:50%;
  background:var(--fc-green-50);color:var(--fc-green-700);}
.fc-eclient-user-hello{font-size:var(--fs-xs);color:var(--text-muted);line-height:1;}
.fc-eclient-user-name{font-weight:700;color:var(--text-strong);line-height:1.2;}
.fc-eclient-logout{flex:none;color:var(--text-muted);display:inline-flex;padding:6px;border-radius:var(--radius-sm);transition:background var(--dur-fast),color var(--dur-fast);}
.fc-eclient-logout:hover{background:var(--surface-sunken);color:var(--brand-primary);}
/* Sections + liens */
.fc-eclient-section{margin-bottom:6px;}
.fc-eclient-section+.fc-eclient-section{margin-top:10px;padding-top:10px;border-top:1px solid var(--border-subtle);}
.fc-eclient-section-title{display:flex;align-items:center;gap:7px;font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;
  letter-spacing:.04em;color:var(--text-muted);padding:4px 8px;}
.fc-eclient-links{list-style:none;margin:0;padding:0;}
.fc-eclient-link{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--radius-sm);text-decoration:none;
  color:var(--text-body);font-size:var(--fs-sm);font-weight:600;border-left:3px solid transparent;
  transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast);}
.fc-eclient-link:hover{background:var(--surface-sunken);color:var(--brand-primary);}
.fc-eclient-link.active{background:var(--fc-green-50);color:var(--fc-green-700);border-left-color:var(--brand-primary);}
.fc-eclient-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;
  border-radius:999px;background:var(--brand-warning,#f5841d);color:#fff;font-size:11px;font-weight:700;line-height:1;flex:none;}
/* Menu repliable (mobile) : bouton « Menu » masqué sur desktop (le panneau est
   toujours visible), la checkbox pilote l'ouverture sur mobile. */
.fc-eclient-navcb{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;}
.fc-eclient-navtoggle{display:none;}
/* Mobile : le menu se replie derrière le bouton « Menu » -> le contenu est en haut */
@media (max-width:767.98px){
  .fc-eclient-layout{grid-template-columns:1fr;}
  .fc-eclient-sidebar{position:static;border:0;padding:0;background:transparent;}
  .fc-eclient-navtoggle{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;
    background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);
    font-family:var(--font-display);font-weight:700;color:var(--text-strong);cursor:pointer;}
  .fc-eclient-navtoggle>svg,.fc-eclient-navtoggle>[data-lucide]{flex:none;color:var(--brand-primary);}
  .fc-eclient-navtoggle-txt{flex:1 1 auto;text-align:left;}
  .fc-eclient-navtoggle-cur{color:var(--text-muted);font-weight:600;font-family:var(--font-body);font-size:var(--fs-sm);}
  .fc-eclient-navtoggle-caret{margin-left:auto;transition:transform var(--dur-normal);}
  .fc-eclient-navcb:focus-visible ~ .fc-eclient-navtoggle{outline:2px solid var(--brand-primary);outline-offset:2px;}
  .fc-eclient-navpanel{display:none;margin-top:12px;background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:14px;}
  .fc-eclient-navcb:checked ~ .fc-eclient-navpanel{display:block;}
  .fc-eclient-navcb:checked ~ .fc-eclient-navtoggle .fc-eclient-navtoggle-caret{transform:rotate(180deg);}
}

/* Cartes demande / devis */
.fc-eclient-main{background:var(--surface-page,#f6f8fa);}
/* Panneaux de contenu (un par section) */
.fc-eclient-panel{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;}
.fc-eclient-panel+.fc-eclient-panel{margin-top:var(--sp-4,16px);}
.fc-eclient-panel-head{padding:16px 20px;border-bottom:1px solid var(--border-subtle);}
.fc-eclient-panel-head .fc-kicker{display:block;margin-bottom:2px;}
.fc-eclient-panel-body{padding:16px 20px;}
/* Liste des demandes : chaque demande = une carte blanche sur une gouttière grise
   (séparation nette entre demandes) */
.fc-eclient-panel-body.fc-eclient-demandes{padding:16px;background:var(--surface-sunken);}
.fc-eclient-demande{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);}
.fc-eclient-demande+.fc-eclient-demande{margin-top:16px;}
.fc-eclient-demande-head{display:flex;align-items:center;gap:14px;padding:16px 20px;border-bottom:1px solid var(--border-subtle);background:var(--surface-sunken);}
.fc-eclient-demande-logo{width:54px;height:54px;flex:none;object-fit:contain;background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:4px;}
.fc-eclient-state{display:inline-flex;align-items:center;gap:7px;font-size:var(--fs-sm);font-weight:600;border-radius:999px;padding:5px 12px;}
.fc-eclient-state-search{background:rgba(245,132,29,.12);color:var(--brand-warning,#f5841d);}
.fc-eclient-state-done{background:var(--surface-sunken);color:var(--text-muted);}
.fc-eclient-state-devis{background:rgba(87,166,43,.12);color:var(--brand-primary);cursor:pointer;border:0;}
.fc-eclient-state{white-space:nowrap;}
/* Très petits mobiles (iPhone SE…) : le badge d'état passe sous le titre, aligné à gauche, pour ne plus écraser le nom de la pièce */
@media (max-width:575.98px){
  .fc-eclient-demande-head{flex-wrap:wrap;align-items:flex-start;gap:10px 14px;}
  .fc-eclient-demande-head>.flex-shrink-0{flex-basis:100%;}
}
/* Note d'information (encart doux) + page « Relancer vos demandes » */
.fc-eclient-note{background:var(--surface-sunken);border-radius:var(--radius-sm);padding:12px 16px;color:var(--text-body);}
.fc-eclient-note p:last-child{margin-bottom:0;}
.fc-relance-row{display:flex;align-items:center;gap:14px;padding:12px 0;border-top:1px solid var(--border-subtle);}
.fc-relance-row:first-of-type{border-top:0;}
.fc-relance-logo{width:44px;height:44px;flex:none;object-fit:contain;background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:3px;}
.fc-relance-label{flex:1;min-width:0;font-size:var(--fs-sm);}
.fc-relance-btn{flex:none;}
.fc-relance-done{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);font-weight:600;color:var(--brand-primary);}
.fc-relance-done [data-lucide]{width:16px;height:16px;}
.fc-eclient-devis-list{padding:14px 18px 4px;display:flex;flex-direction:column;gap:12px;}
.fc-eclient-devis{display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:14px 16px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:#fff;}
.fc-eclient-devis-info{flex:1 1 240px;min-width:0;}
.fc-eclient-devis-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.fc-eclient-devis-prix{font-family:var(--font-display);font-weight:800;font-size:var(--fs-xl);color:var(--brand-primary);line-height:1;}
.fc-eclient-devis-ttc{font-size:.55em;font-weight:600;color:var(--text-muted);}
.fc-eclient-devis-contact{flex:0 0 auto;width:230px;max-width:100%;}
.fc-eclient-callbox{background:var(--fc-green-50,#eef6e8);border:1px solid var(--fc-green-200,#cfe7bd);border-radius:var(--radius-sm);padding:8px 10px;text-align:center;min-height:92px;display:flex;flex-direction:column;justify-content:center;}
.fc-eclient-callbox-label{font-size:var(--fs-xs);color:var(--fc-green-700,#3f7a1f);font-weight:600;margin-bottom:5px;}
/* Page 404 */
.fc-404{max-width:680px;padding-top:1rem;}
.fc-404-num{font-family:var(--font-display);font-weight:800;font-size:clamp(72px,14vw,140px);line-height:.9;color:var(--brand-primary);letter-spacing:-2px;}
.fc-404-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;height:100%;background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:18px 14px;text-decoration:none;transition:border-color var(--dur-fast),box-shadow var(--dur-fast);}
.fc-404-card:hover{border-color:var(--brand-primary);box-shadow:var(--shadow-sm);}
.fc-404-ico{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--radius-md);background:var(--fc-green-50);color:var(--brand-primary);}
.fc-404-card-t{font-weight:700;color:var(--text-strong);}
.fc-404-card-s{font-size:var(--fs-sm);color:var(--text-muted);}
/* Modale contact casse : 3 options distinctes + cartouche violet SVA (n° surtaxé) */
.fc-fcc-recap{background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:12px 14px;}
.fc-fcc-options{display:flex;flex-direction:column;gap:10px;}
.fc-fcc-opt{border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:12px 14px;}
.fc-fcc-opt-h{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--text-strong);margin-bottom:8px;}
.fc-fcc-opt-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex:none;border-radius:50%;background:var(--brand-primary);color:#fff;font-size:var(--fs-sm);font-weight:800;}
/* corps d'option centré : unité visuelle entre les 3 modes de mise en relation */
.fc-fcc-opt-body{text-align:center;}
.fc-fcc-pay{display:flex;gap:8px;}
.fc-fcc-pay>*{flex:1 1 0;min-width:0;}
/* bouton PayPal : couleurs de marque -> poids visuel équivalent à « Carte bancaire » (pas d'effet « inactif ») */
.fc-btn-paypal{background:#ffc439;border:1px solid #eaa800;color:#0c1c3a;font-weight:700;}
.fc-btn-paypal:hover,.fc-btn-paypal:focus{background:#f0b429;border-color:#d99a00;color:#0c1c3a;}
.fc-sva{display:inline-flex;align-items:stretch;border-radius:6px;overflow:hidden;text-decoration:none;box-shadow:var(--shadow-sm);}
.fc-sva-num{background:#6c2c91;color:#fff;font-family:var(--font-display);font-weight:800;font-size:var(--fs-lg);letter-spacing:.5px;padding:8px 14px;text-decoration:none;}
.fc-sva-num:hover,.fc-sva-num:focus{background:#5b2580;color:#fff;}
.fc-sva-tag{background:#4e1f6b;color:#fff;font-size:9px;font-weight:700;line-height:1.05;letter-spacing:.3px;text-transform:uppercase;text-align:center;padding:0 9px;display:flex;align-items:center;}
@media (max-width:575.98px){.fc-eclient-devis-contact{width:100%;}}
.fc-eclient-avis-img{height:16px;width:auto;vertical-align:middle;}
/* Bloc « relancer la recherche » (demandes ayant déjà reçu des devis) */
.fc-eclient-relance{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-sunken);}
.fc-eclient-relance-ico{width:22px;height:22px;flex:none;color:var(--brand-primary);}
@media (max-width:575.98px){.fc-eclient-relance .btn{width:100%;}}
/* « N avis » cliquable -> ouvre la modale des avis de la casse (fcEclientAvis) */
.fc-eclient-avislink{background:none;border:0;padding:0;font-size:var(--fs-sm);color:var(--text-muted);cursor:pointer;text-decoration:underline dotted;text-underline-offset:2px;}
.fc-eclient-avislink:hover{color:var(--brand-primary);}
/* Modale « avis d'une casse » (fcEclientAvis) : mise en forme dédiée (pas de .fc-casse ici) */
#fcAvisModal .modal-body{padding:1rem 1.1rem;}
#fcAvisModal .fc-casse-avis{margin-top:0;display:flex;flex-direction:column;gap:.6rem;}
#fcAvisModal .fc-avis-line{padding:.7rem .85rem;border:1px solid var(--border-subtle);border-left:3px solid var(--brand-primary);border-radius:var(--radius-sm);background:#fff;}
#fcAvisModal .fc-avis-meta{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.35rem;}
#fcAvisModal .fc-avis-meta img{height:15px;width:auto;flex:0 0 auto;}
#fcAvisModal .fc-avis-date{font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap;}
#fcAvisModal .fc-avis-com{font-size:var(--fs-sm);color:var(--text-body);line-height:1.5;margin:0;}
#fcAvisModal .fc-avis-foot{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.35rem;margin-top:.45rem;}
#fcAvisModal .fc-avis-author{font-size:var(--fs-xs);font-weight:700;color:var(--text-strong,#112437);}
#fcAvisModal .fc-avis-author::before{content:"— ";color:var(--text-muted);font-weight:400;}
#fcAvisModal .fc-avis-piece{font-size:var(--fs-xs);color:var(--text-muted);text-align:right;}
#fcAvisModal .modal-title{font-family:var(--font-display,inherit);}
.fc-eclient-photo{display:inline-block;width:64px;height:64px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border-subtle);margin:4px 4px 0 0;}
.fc-eclient-photo img{width:100%;height:100%;object-fit:cover;}
.fc-eclient-prevcar{display:flex;align-items:center;gap:12px;flex-wrap:nowrap;background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:12px 14px;}
.fc-eclient-garage{background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:12px 14px;}
.fc-eclient-prestations{list-style:none;margin:0;padding:0;font-size:var(--fs-sm);}
.fc-eclient-prestations>li{padding:6px 0;border-bottom:1px dashed var(--border-subtle);}
.fc-eclient-prestations>li:last-child{border-bottom:0;}
.fc-eclient-avis-row{padding:16px 20px;border-top:1px solid var(--border-subtle);}
.fc-eclient-panel-body>.fc-eclient-avis-row:first-child{border-top:0;}
.fc-eclient-avis-card{background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:16px 18px;}
.fc-eclient-avis-cassename{font-weight:700;color:var(--text-strong);}
.fc-eclient-avis-reply{margin-top:6px;padding:8px 12px;background:var(--surface-sunken);border-left:3px solid var(--brand-primary);border-radius:var(--radius-sm);font-size:var(--fs-sm);color:var(--text-body);}
.fc-eclient-timer{font-family:var(--font-display);font-weight:800;font-size:var(--fs-xl);color:var(--brand-warning,#f5841d);line-height:1;}
.fc-epave-ident{display:flex;align-items:center;gap:14px;background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:12px 14px;}
.fc-epave-block{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:12px 14px;}
.fc-epave-block-t{display:flex;align-items:center;gap:6px;font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:var(--ls-wide);color:var(--text-muted);margin-bottom:8px;}
.fc-epave-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px dashed var(--border-subtle);font-size:var(--fs-sm);}
.fc-epave-row:last-child{border-bottom:0;}
.fc-epave-row-l{color:var(--text-body);}
.fc-epave-row-v{flex:0 0 auto;text-align:right;}
.fc-eclient-offre{display:flex;flex-wrap:wrap;align-items:flex-start;gap:14px;padding:12px 14px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);margin-bottom:8px;}
.fc-eclient-offre-contact{flex:0 0 auto;text-align:right;}
.fc-litige-thread{display:flex;flex-direction:column;gap:10px;margin:8px 0;}
.fc-litige-msg{border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:10px 14px;max-width:88%;}
.fc-litige-msg-head{font-size:var(--fs-xs);color:var(--text-muted);margin-bottom:4px;}
.fc-litige-msg-body{font-size:var(--fs-sm);color:var(--text-body);}
.fc-litige-msg-client{align-self:flex-end;background:var(--fc-green-50);border-color:var(--fc-green-200,#cfe7bd);}
.fc-litige-msg-casse{align-self:flex-start;background:var(--surface-sunken);}
.fc-litige-msg-fc{align-self:stretch;max-width:100%;background:#fff7ed;border-color:#fed7aa;}
.fc-litige-media{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-xs);padding:4px 8px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);text-decoration:none;background:#fff;}
@media (max-width:575.98px){.fc-eclient-devis-contact{text-align:left;width:100%;}.fc-eclient-offre-contact{text-align:left;width:100%;}.fc-litige-msg{max-width:100%;}}
/* Réclamations — espace adhérent (render_ecasse_litige) */
.fc-litige-row{padding:14px 18px;border-bottom:1px solid var(--border-subtle);}
.fc-litige-row:last-child{border-bottom:0;}
.fc-litige-prix{font-family:var(--font-display);font-weight:700;color:var(--fc-navy,#112437);}
.fc-litige-step{display:inline-block;font-size:var(--fs-xs);font-weight:700;color:var(--fc-green-300,#9fd27a);text-transform:uppercase;letter-spacing:.04em;margin-right:6px;}
.fc-litige-empty-ico{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:var(--surface-sunken);color:var(--text-muted);}
.fc-litige-empty-ico svg{width:26px;height:26px;}
/* Pièces jointes (uploader fc-ecasse-litige.js) : vignettes compactes */
.fc-litige-attachments{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px;}
.fc-litige-attachments:empty{margin:0;}
.fc-litige-attach{display:inline-flex;align-items:center;gap:8px;max-width:260px;padding:5px 8px 5px 5px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:#fff;font-size:var(--fs-xs);}
.fc-litige-attach-thumb{flex:0 0 auto;width:34px;height:34px;border-radius:var(--radius-sm);background:var(--surface-sunken);display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--text-muted);}
.fc-litige-attach-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.fc-litige-attach-meta{display:flex;flex-direction:column;min-width:0;line-height:1.25;}
.fc-litige-attach-name{font-weight:600;color:var(--text-body);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.fc-litige-attach-size{color:var(--text-muted);}
.fc-litige-attach-x{flex:0 0 auto;border:0;background:transparent;color:var(--text-muted);padding:2px;border-radius:var(--radius-sm);cursor:pointer;line-height:0;}
.fc-litige-attach-x:hover{color:var(--bs-danger,#dc3545);background:var(--surface-sunken);}
.fc-litige-attach.is-error{border-color:#fecaca;background:#fef2f2;color:#b91c1c;}
.fc-litige-attach.is-loading{color:var(--text-muted);}
.fc-litige-attach-spin{flex:0 0 auto;width:16px;height:16px;border:2px solid var(--border-subtle);border-top-color:var(--bs-primary,#57a62b);border-radius:50%;animation:fc-litige-spin .8s linear infinite;}
@keyframes fc-litige-spin{to{transform:rotate(360deg);}}
/* Réclamations clôturées : bouton repliable */
.fc-litige-clotures-bar{padding:8px 18px;border-top:1px solid var(--border-subtle);}
.fc-litige-clotures-toggle{display:inline-flex;align-items:center;gap:6px;text-decoration:none;color:var(--text-muted);font-size:var(--fs-sm);font-weight:600;padding:2px 4px;}
.fc-litige-clotures-toggle:hover{color:var(--fc-navy,#112437);}
.fc-litige-clotures-toggle svg{transition:transform .2s;}
.fc-litige-clotures-toggle.collapsed svg{transform:rotate(-90deg);}
.fc-litige-clotures-toggle .fc-litige-clotures-hide{display:none;}
.fc-litige-clotures-toggle:not(.collapsed) .fc-litige-clotures-hide{display:inline;}
.fc-litige-clotures-toggle:not(.collapsed) .fc-litige-clotures-show{display:none;}
#fcLitigeClotures .fc-litige-row{background:var(--surface-sunken,#f6f8fa);}

/* ===========================================================================
   RÉCLAMATIONS REÇUES (espace adhérent) — .fc-recl-* (liste + détail)
=========================================================================== */
/* Barre de filtres */
.fc-recl-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px 14px;align-items:end;}
.fc-recl-filters .form-label{font-size:var(--fs-xs);font-weight:600;color:var(--text-muted);margin-bottom:3px;}
.fc-recl-filters-actions{grid-column:1/-1;display:flex;align-items:center;gap:6px;}
.fc-recl-filters-actions .btn{white-space:nowrap;}
/* Badge statut dérivé « Répondu » (casse a répondu en dernier, en attente client) */
.badge.fc-badge-repondu{background:#1b3fae;color:#fff;}
/* Liste : lignes cliquables */
.fc-recl-list{border-top:1px solid var(--border-subtle);}
.fc-recl-row{display:flex;align-items:center;gap:14px;padding:14px 18px;border-bottom:1px solid var(--border-subtle);text-decoration:none;color:inherit;transition:background .12s;}
.fc-recl-row:last-child{border-bottom:0;}
.fc-recl-row:hover{background:var(--surface-sunken,#f6f8fa);color:inherit;}
.fc-recl-row-state{flex:0 0 auto;}
.fc-recl-row-main{flex:1 1 auto;min-width:0;}
.fc-recl-row-top{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:var(--fs-sm);}
.fc-recl-row-msg{display:inline-flex;align-items:center;gap:3px;}
.fc-recl-row-motif{font-size:var(--fs-sm);margin-top:2px;}
.fc-recl-row-piece{font-size:var(--fs-sm);margin-top:2px;}
.fc-recl-row-client{flex:0 0 auto;text-align:right;font-size:var(--fs-sm);max-width:220px;}
.fc-recl-row-go{flex:0 0 auto;color:var(--text-muted);}
.fc-recl-row-go svg{width:20px;height:20px;}
@media (max-width:767.98px){
  .fc-recl-row{flex-wrap:wrap;gap:6px 12px;}
  .fc-recl-row-client{text-align:left;max-width:100%;width:100%;}
  .fc-recl-row-go{display:none;}
}
/* Fiche client (collapse) */
.fc-recl-fiche{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px 18px;padding:14px;background:var(--surface-sunken,#f6f8fa);border-radius:var(--radius-md);}
.fc-recl-fiche>div{display:flex;flex-direction:column;font-size:var(--fs-sm);}
.fc-recl-fiche span{font-size:var(--fs-xs);color:var(--text-muted);}
/* Rappel du devis envoyé */
.fc-recl-devis{display:flex;gap:14px;}
.fc-recl-devis-logo{flex:0 0 auto;}
.fc-recl-devis-main{flex:1 1 auto;min-width:0;font-size:var(--fs-sm);}
.fc-recl-devis-titre{margin-bottom:2px;}
.fc-recl-devis-veh{margin-bottom:6px;}
.fc-recl-devis-specs{font-size:var(--fs-xs);margin-bottom:6px;line-height:1.5;}
.fc-recl-devis-foot{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:6px;}
.fc-recl-devis-prix{font-family:var(--font-display);font-weight:800;font-size:1.1rem;color:var(--fc-green-700,#3d7a1c);}
.fc-recl-devis-codes>div{margin-top:1px;}
/* Plaque d'immatriculation statique (affichage), calquée sur la plaque SIV du
   header espace adhérent (.fc-ecasse-siv) : bande bleue « F » + numéro Archivo. */
.fc-immat-plate{display:inline-flex;align-items:stretch;height:24px;border:1.5px solid #11181f;border-radius:4px;overflow:hidden;background:#fff;vertical-align:middle;line-height:1;}
.fc-immat-plate-flag{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:18px;background:#1b3fae;color:#fff;font-family:var(--font-display);font-weight:800;font-size:10px;}
.fc-immat-plate-num{display:inline-flex;align-items:center;padding:0 8px;font-family:var(--font-display);font-weight:800;font-size:var(--fs-sm);letter-spacing:.06em;color:#11181f;text-transform:uppercase;white-space:nowrap;}
/* Pagination legacy restylée (generate_pagination) */
.fc-recl .pagination_new{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;}
.fc-recl .pagination_new .list_link_pag{display:flex;flex-wrap:wrap;align-items:center;gap:4px;}
.fc-recl .pagination_new .list_link_pag a{display:inline-block;padding:4px 9px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);text-decoration:none;color:var(--fc-navy,#112437);font-size:var(--fs-sm);}
.fc-recl .pagination_new .list_link_pag a:hover{background:var(--surface-sunken,#f6f8fa);}
.fc-recl .pagination_new .active_page{display:inline-block;padding:4px 9px;border-radius:var(--radius-sm);background:var(--bs-primary,#57a62b);color:#fff;font-size:var(--fs-sm);}
.fc-recl .pagination_new .total_page_pag{font-size:var(--fs-xs);color:var(--text-muted);}

/* ===========================================================================
   ESPACE ADHÉRENT (back-office casses/garages) — chrome dédié .fc-ecasse-*
   Topbar navy + sidebar gauche (modelée sur .fc-eclient-*) + panneaux dashboard.
=========================================================================== */
.fc-ecasse-body{background:var(--surface-page);}

/* — Topbar — */
.fc-ecasse-topbar{position:sticky;top:0;z-index:1030;background:var(--fc-navy-900);color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.06),var(--shadow-sm);}
.fc-ecasse-topbar-inner{max-width:1320px;margin:0 auto;padding:8px 18px;min-height:64px;display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;}
.fc-ecasse-logo{flex:0 0 auto;display:inline-flex;align-items:center;}
.fc-ecasse-logo img{height:30px;width:auto;display:block;}
.fc-ecasse-search{position:relative;flex:1 1 260px;min-width:180px;}
.fc-ecasse-search-ico{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--fc-grey-500);pointer-events:none;}
.fc-ecasse-search-input{width:100%;height:38px;border:0;border-radius:var(--radius-pill);padding:0 44px 0 36px;font-size:var(--fs-sm);background:#fff;color:var(--text-strong);}
.fc-ecasse-search-input:focus{outline:2px solid var(--brand-primary);outline-offset:1px;}
.fc-ecasse-search-btn{position:absolute;right:4px;top:4px;height:30px;width:34px;border:0;border-radius:var(--radius-pill);background:var(--brand-primary);color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;}
.fc-ecasse-search-btn:hover{background:var(--brand-primary-hover);}
.fc-ecasse-search-btn i{width:17px;height:17px;}
.fc-ecasse-siv{flex:0 0 auto;display:flex;align-items:center;height:38px;background:#fff;border-radius:var(--radius-sm);overflow:hidden;}
.fc-ecasse-siv-flag{flex:0 0 auto;align-self:stretch;display:inline-flex;align-items:center;justify-content:center;width:20px;background:#1b3fae;color:#fff;font-family:var(--font-display);font-weight:800;font-size:var(--fs-xs);}
.fc-ecasse-siv-input{width:120px;border:0;height:100%;padding:0 8px;font-family:var(--font-display);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-strong);}
.fc-ecasse-siv-input:focus{outline:none;}
.fc-ecasse-siv-input::placeholder{font-family:var(--font-body);font-weight:400;letter-spacing:0;text-transform:none;color:var(--text-muted);}
.fc-ecasse-siv-btn{flex:0 0 auto;align-self:stretch;border:0;width:34px;background:#1b3fae;color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;}
.fc-ecasse-siv-btn i{width:16px;height:16px;}
/* (bloc utilisateur + indicateurs : déportés dans la sidebar, cf. plus bas) */

/* — Layout 2 colonnes — */
.fc-ecasse-main{background:var(--surface-page);min-height:60vh;}
.fc-ecasse-shell{max-width:1320px;margin:0 auto;padding:20px 18px 40px;}
.fc-ecasse-layout{display:grid;grid-template-columns:248px minmax(0,1fr);gap:var(--sp-6,24px);align-items:start;}
.fc-ecasse-content{min-width:0;}

/* — Sidebar — */
.fc-ecasse-sidebar{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:14px;position:sticky;top:84px;}
/* Bloc utilisateur (déporté de la topbar) */
.fc-ecasse-userbox{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--fc-navy-900);border-radius:var(--radius-md);margin-bottom:12px;}
.fc-ecasse-user-ava{flex:none;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--brand-primary);color:#fff;}
.fc-ecasse-user-ava i{width:20px;height:20px;}
.fc-ecasse-user-hello{font-size:var(--fs-xs);color:rgba(255,255,255,.7);line-height:1;}
.fc-ecasse-user-name{font-weight:700;color:#fff;line-height:1.2;}
.fc-ecasse-logout{flex:none;margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;color:rgba(255,255,255,.7);}
.fc-ecasse-logout:hover{background:rgba(255,255,255,.14);color:#fff;}
.fc-ecasse-logout i{width:17px;height:17px;}
/* Indicateurs (note avis / crédits / premium) */
.fc-ecasse-statusrow{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;}
.fc-ecasse-stat{flex:1 1 auto;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:7px 10px;border-radius:var(--radius-sm);background:var(--fc-green-50);border:1px solid var(--fc-green-100);color:var(--fc-green-700);text-decoration:none;font-size:var(--fs-sm);white-space:nowrap;}
.fc-ecasse-stat:hover{border-color:var(--fc-green-300);color:var(--fc-green-800);}
.fc-ecasse-stat i{width:15px;height:15px;color:var(--brand-primary);}
.fc-ecasse-stat strong{font-family:var(--font-display);font-weight:800;color:var(--fc-green-800);}
.fc-ecasse-stat span{color:var(--fc-green-600);font-size:var(--fs-xs);}
/* note avis & premium : tuile ambre (l'étoile/couronne reste ambre) */
.fc-ecasse-stat[title*="avis"],.fc-ecasse-stat-premium{background:#fff6e0;border-color:#ffe2a6;color:#946400;}
.fc-ecasse-stat[title*="avis"]:hover,.fc-ecasse-stat-premium:hover{border-color:#ffcf66;color:#7a5200;}
.fc-ecasse-stat[title*="avis"] strong{color:#946400;}
.fc-ecasse-stat[title*="avis"] span{color:#b58320;}
.fc-ecasse-stat .lucide-star,.fc-ecasse-stat[title*="avis"] i{color:var(--fc-amber,#ffbb00);}
.fc-ecasse-stat-premium i{color:var(--fc-amber,#ffbb00);}
.fc-ecasse-cta-boutique{width:100%;border:0;border-radius:var(--radius-md);background:var(--brand-primary);color:#fff;font-family:var(--font-body);font-weight:700;font-size:var(--fs-sm);padding:10px 12px;margin-bottom:12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;}
.fc-ecasse-cta-boutique:hover{background:var(--brand-primary-hover);}
.fc-ecasse-cta-boutique i{width:17px;height:17px;}
.fc-ecasse-section{margin-bottom:6px;}
.fc-ecasse-section+.fc-ecasse-section{margin-top:10px;padding-top:10px;border-top:1px solid var(--border-subtle);}
.fc-ecasse-section-title{display:flex;align-items:center;gap:7px;font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:var(--ls-wide);color:var(--text-strong);margin-bottom:6px;padding:0 6px;}
.fc-ecasse-section-title i{width:14px;height:14px;color:var(--brand-primary);}
.fc-ecasse-links{list-style:none;margin:0;padding:0;}
.fc-ecasse-link{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);text-decoration:none;color:var(--text-body);font-size:var(--fs-sm);border-left:3px solid transparent;}
.fc-ecasse-link i{width:18px;height:18px;flex:none;color:var(--brand-primary);}
.fc-ecasse-link:hover{background:var(--fc-green-50);color:var(--brand-primary);}
.fc-ecasse-link:hover i{color:var(--brand-primary);}
.fc-ecasse-link.active{background:var(--fc-green-100);color:var(--fc-green-800);border-left-color:var(--brand-primary);font-weight:600;}
.fc-ecasse-link.active i{color:var(--fc-green-700);}
.fc-ecasse-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:var(--radius-pill);background:var(--brand-accent,#f5841d);color:#fff;font-size:11px;font-weight:700;}
.fc-ecasse-help{margin-top:12px;padding:12px;border-radius:var(--radius-md);background:var(--fc-green-50);border:1px solid var(--fc-green-100);text-align:center;}
.fc-ecasse-help-title{display:flex;align-items:center;justify-content:center;gap:6px;font-size:var(--fs-xs);font-weight:700;color:var(--text-strong);margin-bottom:6px;}
.fc-ecasse-help-title i{width:15px;height:15px;color:var(--brand-primary);}
.fc-ecasse-help-tel{display:block;font-family:var(--font-display);font-weight:800;font-size:var(--fs-lg);color:var(--text-strong);text-decoration:none;}
.fc-ecasse-help-anydesk{display:inline-flex;align-items:center;gap:5px;margin-top:6px;font-size:var(--fs-xs);text-decoration:none;}
.fc-ecasse-help-anydesk i{width:14px;height:14px;}

/* — Fil d'ariane + titre de page — */
.fc-ecasse-pagehead{margin-bottom:18px;}
.fc-ecasse-ariane{font-size:var(--fs-sm);color:var(--text-muted);margin-bottom:4px;}
.fc-ecasse-ariane a{color:var(--text-muted);text-decoration:none;}
.fc-ecasse-ariane a:hover{color:var(--brand-primary);text-decoration:underline;}
.fc-ecasse-h1{font-family:var(--font-display);font-weight:800;font-size:var(--fs-2xl,1.6rem);color:var(--text-strong);margin:0;}

/* — Panneaux (cartes de section) — */
.fc-ecasse-panel{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;}
.fc-ecasse-panel+.fc-ecasse-panel{margin-top:var(--sp-4,16px);}

/* Interstitiel d'acceptation des CGU (render_ecasse_cgu.php) : page focalisée
   autonome (consentement bloquant), design FranceCasse. Préfixe .fc-consent-*
   (distinct des .fc-cgu-* de la page CGU éditoriale publique). */
.fc-consent-body{margin:0;background:var(--fc-grey-50,#f6f8fa);min-height:100vh;font-family:var(--font-body);color:var(--text-body);}
.fc-consent-top{background:var(--fc-navy-900);padding:14px 20px;}
.fc-consent-logo{display:inline-flex;align-items:center;}
.fc-consent-logo img{height:30px;width:auto;display:block;}
.fc-consent-wrap{display:flex;justify-content:center;padding:40px 16px;}
.fc-consent-card{width:100%;max-width:560px;background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);
  box-shadow:0 8px 30px rgba(17,36,55,.08);padding:34px 32px;text-align:center;}
.fc-consent-ico{display:inline-flex;align-items:center;justify-content:center;width:58px;height:58px;border-radius:16px;
  background:var(--fc-green-50);color:var(--brand-primary);margin-bottom:14px;}
.fc-consent-ico i{width:29px;height:29px;}
.fc-consent-title{font-family:var(--font-display);font-weight:800;font-size:1.4rem;color:var(--text-strong);margin:0 0 12px;}
.fc-consent-lead{color:var(--text-body);font-size:var(--fs-base);line-height:1.55;margin:0 0 18px;}
.fc-consent-read{margin-bottom:20px;}
.fc-consent-read i{width:17px;height:17px;}
.fc-consent-alert{text-align:left;margin-bottom:18px;}
.fc-consent-check{display:flex;align-items:flex-start;gap:11px;text-align:left;padding:14px 16px;margin-bottom:18px;
  border:1px solid var(--fc-green-200,#b6da97);border-radius:var(--radius-md);background:var(--fc-green-50);font-size:var(--fs-sm);line-height:1.5;cursor:pointer;}
.fc-consent-check input{flex:0 0 auto;width:18px;height:18px;margin-top:2px;accent-color:var(--brand-primary);}
.fc-consent-actions{display:flex;justify-content:center;}
.fc-consent-actions .btn i{width:18px;height:18px;}
.fc-consent-help{margin:20px 0 0;font-size:var(--fs-sm);color:var(--text-muted);line-height:1.5;}

/* « Mon site » sans minisite : upsell aspirationnel (render_ecasse_mon_site.php). */
.fc-ms-promo .fc-ecasse-panel-body{padding:0;}
.fc-ms-promo-grid{display:grid;grid-template-columns:1.1fr .9fr;align-items:stretch;}
.fc-ms-promo-text{padding:30px 30px;}
.fc-ms-promo-visual{background:var(--fc-navy-900);display:flex;align-items:center;justify-content:center;padding:30px;border-radius:0 var(--radius-lg) var(--radius-lg) 0;}
@media (max-width:860px){ .fc-ms-promo-grid{grid-template-columns:1fr;} .fc-ms-promo-visual{border-radius:0 0 var(--radius-lg) var(--radius-lg);} }
.fc-ms-promo-kicker{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.03em;color:var(--brand-primary);}
.fc-ms-promo-kicker i{width:16px;height:16px;}
.fc-ms-promo-title{font-family:var(--font-display);font-weight:800;font-size:1.5rem;color:var(--text-strong);margin:8px 0 10px;line-height:1.2;}
.fc-ms-promo-lead{color:var(--text-body);font-size:var(--fs-base);line-height:1.55;margin:0 0 18px;}
.fc-ms-promo-benefits{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:14px;}
.fc-ms-promo-benefits li{display:flex;gap:12px;align-items:flex-start;}
.fc-ms-promo-benefits > li > i{flex:0 0 auto;width:22px;height:22px;color:var(--brand-primary);margin-top:2px;}
.fc-ms-promo-benefits strong{display:block;color:var(--text-strong);font-size:var(--fs-base);}
.fc-ms-promo-benefits span{display:block;color:var(--text-muted);font-size:var(--fs-sm);line-height:1.45;}
.fc-ms-promo-cta{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:16px 18px;border-radius:var(--radius-md);background:var(--fc-green-50);border:1px solid var(--fc-green-200,#b6da97);}
.fc-ms-promo-cta-txt{flex:1 1 250px;color:var(--text-body);font-size:var(--fs-sm);line-height:1.5;}
.fc-ms-promo-cta .btn i{width:18px;height:18px;}
/* maquette navigateur (pur CSS) */
.fc-ms-mock{width:100%;max-width:360px;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 18px 50px rgba(0,0,0,.35);}
.fc-ms-mock-bar{display:flex;align-items:center;gap:6px;padding:9px 12px;background:#e9edf2;}
.fc-ms-mock-bar span{width:9px;height:9px;border-radius:50%;background:#c3ccd6;}
.fc-ms-mock-bar b{margin-left:8px;font-weight:600;font-size:11px;color:#7a8794;background:#fff;border-radius:5px;padding:3px 10px;flex:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.fc-ms-mock-hero{background:linear-gradient(135deg,var(--fc-navy-800,#18314a),var(--fc-navy-900));color:#fff;text-align:center;padding:22px 14px;}
.fc-ms-mock-logo{font-family:var(--font-display);font-weight:800;font-size:16px;letter-spacing:.04em;}
.fc-ms-mock-tag{font-size:10px;color:rgba(255,255,255,.75);margin-top:4px;}
.fc-ms-mock-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:14px;}
.fc-ms-mock-cards span{height:40px;border-radius:6px;background:var(--fc-grey-100,#e1e6ec);}
.fc-ms-mock-btn{margin:0 14px 16px;text-align:center;background:var(--brand-primary);color:#fff;font-weight:700;font-size:12px;border-radius:6px;padding:9px;}

/* Passerelle boutique pro (render_ecasse_boutique_gate.php) : contenu focalisé
   (mot de passe boutique / documents manquants) DANS le chrome espace adhérent. */
.fc-bq-inner{max-width:520px;margin:0 auto;text-align:center;}
.fc-bq-ico{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:16px;
  background:var(--fc-green-50);color:var(--brand-primary);margin-bottom:14px;}
.fc-bq-ico i{width:28px;height:28px;}
.fc-bq-lead{color:var(--text-body);font-size:var(--fs-base);line-height:1.55;margin:0 0 16px;}
.fc-bq-docs{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:9px;text-align:left;}
.fc-bq-docs li{display:flex;align-items:flex-start;gap:10px;}
.fc-bq-docs i{flex:0 0 auto;width:20px;height:20px;color:var(--brand-primary);margin-top:2px;}
.fc-bq-form{text-align:left;margin-top:20px;}
.fc-bq-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:8px;}
.fc-bq-actions .btn i{width:17px;height:17px;}

/* Panneau « service verrouillé » : rubrique visible mais non activée -> bénéfices
   + invitation à contacter le commercial (fc_ecasse_locked_panel). */
.fc-ecasse-locked .fc-ecasse-panel-body{padding:26px 24px;}
.fc-ecasse-locked-head{display:flex;align-items:flex-start;gap:16px;margin-bottom:18px;}
.fc-ecasse-locked-ico{flex:0 0 auto;width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  background:var(--fc-green-50);color:var(--brand-primary);}
.fc-ecasse-locked-ico i{width:26px;height:26px;}
.fc-ecasse-locked-title{font-family:var(--font-display);font-weight:800;font-size:1.3rem;color:var(--text-strong);margin:0 0 4px;}
.fc-ecasse-locked-lead{margin:0;color:var(--text-body);font-size:var(--fs-base);}
.fc-ecasse-locked-benefits{list-style:none;margin:0 0 20px;padding:0;display:grid;gap:9px;}
.fc-ecasse-locked-benefits li{display:flex;align-items:flex-start;gap:10px;color:var(--text-body);font-size:var(--fs-base);}
.fc-ecasse-locked-benefits i{flex:0 0 auto;width:20px;height:20px;color:var(--brand-primary);margin-top:1px;}
.fc-ecasse-locked-cta{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;
  padding:18px 20px;border-radius:var(--radius-md);background:var(--fc-navy-900);color:#fff;}
.fc-ecasse-locked-cta-txt{margin:0;flex:1 1 320px;color:rgba(255,255,255,.92);font-size:var(--fs-base);line-height:1.5;}
.fc-ecasse-locked-tel{white-space:nowrap;font-family:var(--font-display);}
.fc-ecasse-locked-tel i{width:18px;height:18px;}
.fc-ecasse-panel-head{padding:13px 18px;background:var(--fc-navy-900);border-radius:var(--radius-lg) var(--radius-lg) 0 0;display:flex;align-items:center;justify-content:space-between;gap:10px;}
.fc-ecasse-panel-head h2{font-size:var(--fs-md,1rem);font-weight:700;margin:0;color:#fff;display:inline-flex;align-items:center;gap:8px;}
.fc-ecasse-panel-head h2 i,.fc-ecasse-panel-head>i{width:18px;height:18px;flex:none;color:var(--fc-green-300);}
/* éléments à droite des en-têtes (sur fond navy) : on les passe en clair */
.fc-ecasse-panel-head .fc-mt-count,.fc-ecasse-panel-head .fc-geo-estim{color:rgba(255,255,255,.85);}
.fc-ecasse-panel-head .fc-text-muted{color:rgba(255,255,255,.6);}
.fc-ecasse-panel-head .btn-outline-secondary{--bs-btn-color:#fff;--bs-btn-border-color:rgba(255,255,255,.45);--bs-btn-hover-bg:#fff;--bs-btn-hover-color:var(--fc-navy-900);--bs-btn-hover-border-color:#fff;}
.fc-ecasse-panel-body{padding:16px 18px;}

/* — Cartes KPI — */
.fc-ecasse-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--sp-4,16px);margin-bottom:var(--sp-4,16px);}
.fc-ecasse-kpi{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:16px 18px;display:flex;align-items:center;gap:14px;text-decoration:none;transition:box-shadow var(--dur-normal),border-color var(--dur-normal);}
a.fc-ecasse-kpi:hover{box-shadow:var(--shadow-md);border-color:var(--border-default);}
.fc-ecasse-kpi-ico{flex:0 0 auto;width:46px;height:46px;border-radius:var(--radius-md);display:inline-flex;align-items:center;justify-content:center;background:var(--fc-green-50);color:var(--fc-green-700);}
.fc-ecasse-kpi-ico i{width:22px;height:22px;}
.fc-ecasse-kpi-ico.amber{background:#fff3e0;color:#c2680f;}
.fc-ecasse-kpi-ico.navy{background:var(--fc-navy-900);color:#fff;}
.fc-ecasse-kpi-ico.grey{background:var(--surface-sunken);color:var(--text-body);}
.fc-ecasse-kpi-val{font-family:var(--font-display);font-weight:800;font-size:var(--fs-2xl,1.55rem);line-height:1;color:var(--text-strong);}
.fc-ecasse-kpi-lab{display:block;font-size:var(--fs-xs);color:var(--text-muted);margin-top:4px;line-height:1.25;}
.fc-ecasse-kpi-valrow{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;}
.fc-ecasse-trend{display:inline-flex;align-items:center;gap:2px;font-size:11px;font-weight:700;padding:2px 6px;border-radius:var(--radius-pill);line-height:1;align-self:center;}
.fc-ecasse-trend i{width:12px;height:12px;}
.fc-ecasse-trend.up{color:var(--fc-green-700);background:var(--fc-green-50);}
.fc-ecasse-trend.down{color:#b3261e;background:#fdecea;}
.fc-ecasse-trend.neutral{color:var(--text-muted);background:var(--surface-sunken);}

/* — Statut activité récente — */
.fc-ecasse-status{display:inline-flex;align-items:center;gap:7px;font-size:var(--fs-sm);padding:6px 12px;border-radius:var(--radius-pill);font-weight:600;}
.fc-ecasse-status i{width:15px;height:15px;}
.fc-ecasse-status.ok{background:var(--fc-green-50);color:var(--fc-green-700);}
.fc-ecasse-status.warn{background:#fff3e0;color:#c2680f;}
.fc-ecasse-status.bad{background:#fdecea;color:#b3261e;}

/* — Mini-graphe d'activité (barres CSS, 30 jours) — */
.fc-ecasse-chartwrap{display:flex;gap:9px;align-items:stretch;}
.fc-ecasse-yaxis{flex:0 0 auto;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;height:170px;padding:5px 0 1px;font-size:10px;font-weight:600;color:var(--text-muted);min-width:16px;}
.fc-ecasse-chart{flex:1 1 auto;display:flex;align-items:flex-end;gap:3px;height:170px;padding-top:5px;position:relative;border-bottom:1.5px solid var(--border-default);
  background-image:repeating-linear-gradient(to top, var(--border-subtle) 0, var(--border-subtle) 1px, transparent 1px, transparent 50%);
  background-position:left bottom;background-repeat:repeat-x;}
.fc-ecasse-bar-wrap{flex:1 1 0;min-width:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:2px;height:100%;position:relative;border-radius:3px;transition:background var(--dur-normal);}
.fc-ecasse-bar-wrap:hover{background:var(--fc-green-50);}
.fc-ecasse-bar{width:80%;max-width:16px;border-radius:3px 3px 0 0;background:var(--brand-primary);min-height:2px;transition:filter var(--dur-normal);}
.fc-ecasse-bar-wrap:hover .fc-ecasse-bar{filter:brightness(1.08);}
.fc-ecasse-bar.appels{background:var(--fc-navy-600);}
.fc-ecasse-bar-stack{width:80%;max-width:16px;display:flex;flex-direction:column-reverse;position:relative;z-index:1;}
.fc-ecasse-chart-x{display:flex;justify-content:space-between;margin-top:6px;padding-left:25px;font-size:10px;font-weight:600;color:var(--text-muted);letter-spacing:.02em;}
.fc-ecasse-chart-legend{display:flex;gap:16px;margin-top:10px;font-size:var(--fs-xs);color:var(--text-muted);}
.fc-ecasse-chart-legend span{display:inline-flex;align-items:center;gap:5px;}
.fc-ecasse-dot{width:10px;height:10px;border-radius:2px;display:inline-block;}
.fc-ecasse-dot.rep{background:var(--brand-primary);}
.fc-ecasse-dot.app{background:var(--fc-navy-600);}

/* — Cartes promo (services / marketplace) — */
.fc-ecasse-promo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;}
.fc-ecasse-promo{display:flex;flex-direction:column;gap:6px;padding:14px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);text-decoration:none;background:#fff;transition:box-shadow var(--dur-normal),border-color var(--dur-normal);}
.fc-ecasse-promo:hover{box-shadow:var(--shadow-md);border-color:var(--border-default);}
.fc-ecasse-promo-ico{width:38px;height:38px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;background:var(--fc-green-50);color:var(--fc-green-700);}
.fc-ecasse-promo-ico i{width:20px;height:20px;}
.fc-ecasse-promo-t{font-weight:700;color:var(--text-strong);font-size:var(--fs-sm);}
.fc-ecasse-promo-d{font-size:var(--fs-xs);color:var(--text-muted);}

/* — Alerte (réclamations en cours) — */
.fc-ecasse-alert{display:flex;gap:12px;padding:14px 16px;border-radius:var(--radius-md);background:#fdecea;border:1px solid #f5c6c0;margin-bottom:var(--sp-4,16px);}
.fc-ecasse-alert i{flex:0 0 auto;width:20px;height:20px;color:#b3261e;margin-top:2px;}
.fc-ecasse-alert-body{font-size:var(--fs-sm);color:var(--text-body);}
.fc-ecasse-alert-body strong{color:#b3261e;}
.fc-ecasse-reclas{list-style:none;margin:6px 0 0;padding:0;font-size:var(--fs-sm);}
.fc-ecasse-reclas li{padding:3px 0;}
.fc-ecasse-reclas a{font-weight:600;}
.fc-ecasse-alert-link{display:inline-block;margin-top:8px;font-size:var(--fs-sm);font-weight:600;color:#b3261e;text-decoration:none;}
.fc-ecasse-alert-link:hover{text-decoration:underline;}

.fc-ecasse-cgu{font-size:var(--fs-xs);color:var(--text-muted);margin-top:18px;text-align:center;}
.fc-ecasse-cgu i{width:14px;height:14px;vertical-align:-2px;color:var(--brand-primary);}

/* — Footer (bandeau navy en écho à la topbar) — */
.fc-ecasse-footer{margin-top:36px;background:var(--fc-navy-900);color:rgba(255,255,255,.72);}
.fc-ecasse-footer-main{max-width:1320px;margin:0 auto;padding:32px 18px 24px;}
.fc-ecasse-footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:32px;}
.fc-ecasse-footer-brand img{height:30px;width:auto;display:block;margin-bottom:10px;}
.fc-ecasse-footer-tag{display:inline-block;font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:var(--ls-wide);color:var(--fc-green-300);margin-bottom:10px;}
.fc-ecasse-footer-brand p{font-size:var(--fs-sm);line-height:1.6;max-width:340px;margin:0;}
.fc-ecasse-footer-h{font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:var(--ls-wide);color:#fff;margin-bottom:12px;}
.fc-ecasse-footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;}
.fc-ecasse-footer-col li{display:flex;flex-direction:column;font-size:var(--fs-sm);}
.fc-ecasse-footer-col li span{font-size:var(--fs-xs);color:rgba(255,255,255,.5);}
.fc-ecasse-footer-col a{color:rgba(255,255,255,.82);text-decoration:none;display:inline-flex;align-items:center;gap:6px;}
.fc-ecasse-footer-col a:hover{color:var(--fc-green-300);}
.fc-ecasse-footer-col a i{width:15px;height:15px;flex:none;}
.fc-ecasse-footer-col li span + a{font-weight:700;color:#fff;}
.fc-ecasse-footer-legalwrap{border-top:1px solid rgba(255,255,255,.1);}
.fc-ecasse-footer-legal{max-width:1320px;margin:0 auto;padding:14px 18px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;font-size:var(--fs-xs);color:rgba(255,255,255,.55);}
.fc-ecasse-footer-legal a{color:rgba(255,255,255,.7);text-decoration:underline;}
.fc-ecasse-footer-legal a:hover{color:#fff;}
.fc-ecasse-footer-secure{display:inline-flex;align-items:center;gap:6px;color:var(--fc-green-300);}
.fc-ecasse-footer-secure i{width:14px;height:14px;}
@media (max-width:767.98px){
  .fc-ecasse-footer-grid{grid-template-columns:1fr;gap:24px;}
  .fc-ecasse-footer-legal{justify-content:flex-start;}
}

/* — Responsive — */
/* Menu repliable (mobile) : bouton « Menu » masqué sur desktop (panneau toujours
   visible), la checkbox pilote l'ouverture sur mobile. */
.fc-ecasse-navcb{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;}
.fc-ecasse-navtoggle{display:none;}
@media (max-width:991.98px){
  .fc-ecasse-layout{grid-template-columns:1fr;}
  /* La sidebar ne dessine plus son cadre : le bouton « Menu » devient la boîte
     visible, le panneau (déplié) reprend le cadre en dessous. Le contenu est en haut. */
  .fc-ecasse-sidebar{position:static;border:0;padding:0;background:transparent;}
  .fc-ecasse-navtoggle{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;
    background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);
    font-family:var(--font-display);font-weight:700;color:var(--bs-secondary);cursor:pointer;}
  .fc-ecasse-navtoggle>svg,.fc-ecasse-navtoggle>[data-lucide]{width:20px;height:20px;flex:none;color:var(--brand-primary);}
  .fc-ecasse-navtoggle-txt{flex:1 1 auto;text-align:left;}
  .fc-ecasse-navtoggle-cur{color:var(--text-muted);font-weight:600;font-family:var(--font-body);font-size:var(--fs-sm);}
  .fc-ecasse-navtoggle-caret{margin-left:auto;transition:transform var(--dur-normal,.2s);}
  .fc-ecasse-navcb:focus-visible ~ .fc-ecasse-navtoggle{outline:2px solid var(--brand-primary);outline-offset:2px;}
  .fc-ecasse-navpanel{display:none;margin-top:12px;background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:14px;}
  .fc-ecasse-navcb:checked ~ .fc-ecasse-navpanel{display:block;}
  .fc-ecasse-navcb:checked ~ .fc-ecasse-navtoggle .fc-ecasse-navtoggle-caret{transform:rotate(180deg);}
}
@media (max-width:575.98px){
  /* Étroit : la recherche globale prend toute la largeur, la plaque SIV passe dessous */
  .fc-ecasse-topbar-inner{padding:8px 12px;}
  .fc-ecasse-search{flex:1 1 100%;order:2;}
  .fc-ecasse-siv{order:3;}
}

/* ===========================================================================
   ESPACE ADHÉRENT · page "Vendre mes pièces" (reponse.php) — .fc-rep-*
=========================================================================== */
.fc-rep-tabs{display:flex;gap:6px;margin-bottom:16px;border-bottom:2px solid var(--border-subtle);}
.fc-rep-tab{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;text-decoration:none;color:var(--text-muted);font-weight:600;font-size:var(--fs-sm);border-bottom:2px solid transparent;margin-bottom:-2px;}
.fc-rep-tab i{width:16px;height:16px;}
.fc-rep-tab:hover{color:var(--brand-primary);}
.fc-rep-tab.active{color:var(--fc-green-700);border-bottom-color:var(--brand-primary);}
.fc-rep-tabcount{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--radius-pill);background:var(--surface-sunken);color:var(--text-body);font-size:11px;font-weight:700;}
.fc-rep-tab.active .fc-rep-tabcount{background:var(--fc-green-100);color:var(--fc-green-700);}

.fc-rep-catalogue{display:flex;align-items:center;gap:12px;padding:12px 16px;border:1.5px solid var(--brand-accent,#f5841d);border-radius:var(--radius-md);background:#fff7ed;margin-bottom:16px;font-size:var(--fs-sm);}
.fc-rep-catalogue i{width:22px;height:22px;color:var(--brand-accent,#f5841d);flex:none;}
.fc-rep-catalogue>div{flex:1 1 auto;}

.fc-rep-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--border-subtle);}
.fc-rep-toolbar-l{display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.fc-rep-toolbar-r{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.fc-rep-sort{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--text-body);font-weight:600;}
.fc-rep-sort select{width:auto;display:inline-block;}
.fc-rep-check{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--text-body);cursor:pointer;}
.fc-rep-spin{display:inline-block;width:18px;height:18px;border:2px solid var(--border-subtle);border-top-color:var(--brand-primary);border-radius:50%;animation:fc-ecasse-spin .8s linear infinite;vertical-align:middle;}

.fc-rep-datebar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 16px;background:var(--surface-sunken);border-bottom:1px solid var(--border-subtle);}
.fc-rep-date{font-weight:700;color:var(--text-strong);font-size:var(--fs-sm);}
.fc-rep-date select{display:inline-block;width:auto;height:30px;padding:2px 8px;border-radius:var(--radius-sm);border:1px solid var(--border-default);font-weight:700;margin:0 4px;}
.fc-rep-massactions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.fc-rep-massactions a{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-sm);font-weight:600;color:var(--fc-green-700);text-decoration:none;}
.fc-rep-massactions a:hover{color:var(--brand-primary);text-decoration:underline;}
.fc-rep-massactions i{width:15px;height:15px;}

.fc-rep-listhead{padding:8px 16px;font-size:var(--fs-xs);color:var(--text-muted);}
.fc-rep-listhead a{color:var(--text-link);text-decoration:none;}
.fc-rep-listhead a:hover{text-decoration:underline;}
.fc-rep-list{display:block;}

/* En-tête de catégorie */
.fc-rep-cat{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:8px 16px;background:var(--fc-navy-900);color:#fff;font-weight:700;text-transform:uppercase;font-size:var(--fs-sm);letter-spacing:.02em;}
.fc-rep-cat-name{display:inline-flex;align-items:center;gap:6px;}
.fc-rep-cat-actions{display:inline-flex;align-items:center;gap:12px;text-transform:none;font-weight:600;}
.fc-rep-cat-link{display:inline-flex;align-items:center;gap:4px;color:rgba(255,255,255,.85);text-decoration:none;font-size:var(--fs-xs);}
.fc-rep-cat-link:hover{color:#fff;}
.fc-rep-cat-link i{width:14px;height:14px;}
.fc-rep-cat-actions .lien_demandes_cachees a{color:var(--fc-amber,#ffbb00);text-decoration:underline;}

/* Ligne de demande */
.fc-rep-row{display:flex;align-items:flex-start;gap:14px;padding:12px 16px;border-bottom:1px solid var(--border-subtle);border-left:3px solid transparent;transition:background var(--dur-normal),border-color var(--dur-normal);}
.fc-rep-row:hover{background:var(--fc-grey-50);}
.fc-rep-row.is-active{background:var(--fc-green-50);border-left-color:var(--brand-primary);}
.fc-rep-row.is-warn{background:#fff7ed;border-left-color:var(--brand-accent,#f5841d);}
.fc-rep-info{flex:1 1 300px;min-width:0;}
.fc-rep-veh{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:3px;}
.fc-rep-plaquewrap{display:inline-flex;align-items:center;}
.fc-rep-plaquewrap img{height:22px;width:auto;vertical-align:middle;}
.fc-rep-veh-nom{font-weight:700;color:var(--text-strong);font-size:var(--fs-sm);}
.fc-rep-row.is-active .fc-rep-veh-nom{color:var(--fc-green-700);}
.fc-rep-piece{font-size:var(--fs-sm);color:var(--text-body);}
.fc-rep-piecenom{font-weight:700;color:var(--text-strong);text-transform:uppercase;font-size:var(--fs-xs);letter-spacing:.02em;}
.fc-rep-plus{color:var(--text-muted);font-style:italic;font-size:var(--fs-xs);}
.fc-rep-clientrem{font-size:var(--fs-xs);color:var(--text-muted);margin-top:3px;}
.fc-rep-clientrem i{color:var(--text-muted);}

/* Zone réponse */
.fc-rep-resp{flex:1 1 420px;min-width:0;display:flex;flex-direction:column;gap:8px;align-items:flex-start;}
/* Bouton-bascule « Je vends » : la vraie case reste (masquée) pour le JS existant
   (select_demande_ajax_new / coche_demandes_new lisent #chk<id>). Le clic sur le
   label bascule la case ; l'état visuel suit .is-active posé sur la ligne. */
.fc-rep-vendre{position:relative;display:inline-flex;align-items:center;gap:5px;cursor:pointer;font-size:var(--fs-sm);font-weight:700;color:var(--brand-primary);background:#fff;border:1.5px solid var(--brand-primary);border-radius:var(--radius-pill);padding:5px 14px;transition:background var(--dur-normal),color var(--dur-normal),border-color var(--dur-normal);}
.fc-rep-vendre:hover{background:var(--fc-green-50);}
.fc-rep-vendre-lbl::before{content:"\2713\00a0";font-weight:800;}
.fc-rep-chk{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;}
.fc-rep-chk input{width:1px;height:1px;margin:0;}
.fc-rep-row.is-active .fc-rep-vendre{background:var(--brand-primary);color:#fff;border-color:var(--brand-primary);}
/* Bouton-bascule maître « Tout cocher » / « Tout décocher » : même langage visuel
   que les pilules « Je vends » (cohérence). Rempli vert quand tout est sélectionné. */
.fc-rep-checkall{display:inline-flex;align-items:center;gap:5px;cursor:pointer;font-family:inherit;font-size:var(--fs-sm);font-weight:700;color:var(--brand-primary);background:#fff;border:1.5px solid var(--brand-primary);border-radius:var(--radius-pill);padding:5px 14px;transition:background var(--dur-normal),color var(--dur-normal),border-color var(--dur-normal);}
.fc-rep-checkall:hover{background:var(--fc-green-50);}
.fc-rep-checkall.is-active{background:var(--brand-primary);color:#fff;border-color:var(--brand-primary);}
.fc-rep-form{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;width:100%;padding:10px 12px;background:#fff;border:1px solid var(--fc-green-200,#b6da97);border-radius:var(--radius-md);}
.fc-rep-field{display:flex;flex-direction:column;gap:3px;}
.fc-rep-field>label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:var(--ls-wide);color:var(--text-muted);}
.fc-rep-field-rem{flex:1 1 180px;min-width:140px;}
.fc-rep-prix,.fc-rep-gar{display:inline-flex;align-items:center;gap:4px;}
.fc-rep-form input{height:34px;border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:0 8px;font-size:var(--fs-sm);color:var(--text-strong);}
.fc-rep-form input:focus{outline:none;border-color:var(--brand-primary);box-shadow:var(--shadow-focus);}
.champ_prix{width:64px;font-weight:700;text-align:right;}
.champ_garantie{width:42px;text-align:center;}
.champ_remarques{width:100%;}
.fc-rep-unit{font-size:var(--fs-sm);color:var(--text-muted);font-weight:600;}
.fc-rep-photolink a{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-muted);}
.fc-rep-photolink a:hover{color:var(--brand-primary);border-color:var(--brand-primary);}
.fc-rep-photolink i{width:18px;height:18px;}

.fc-rep-hidecell{flex:0 0 auto;display:flex;align-items:center;}
.fc-rep-hide{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;color:var(--text-muted);text-decoration:none;font-size:20px;line-height:1;}
.fc-rep-hide:hover{background:#fdecea;color:#b3261e;}

.fc-rep-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:16px;}
.fc-rep-tuto{display:inline-flex;align-items:center;gap:6px;color:var(--fc-green-700);text-decoration:none;font-size:var(--fs-sm);font-weight:600;}
.fc-rep-tuto:hover{text-decoration:underline;}
.fc-rep-tuto i{width:18px;height:18px;}

/* Barre fixe d'envoi */
.fc-rep-fixedbar{position:fixed;left:0;right:0;bottom:0;z-index:1040;background:var(--fc-navy-900);box-shadow:0 -4px 16px rgba(0,0,0,.18);}
.fc-rep-fixedbar-inner{max-width:1320px;margin:0 auto;padding:12px 18px;display:flex;align-items:center;justify-content:flex-end;gap:12px;}
.fc-rep-fixedbar .btn-outline-light{--bs-btn-color:#fff;--bs-btn-border-color:rgba(255,255,255,.4);--bs-btn-hover-bg:rgba(255,255,255,.12);--bs-btn-hover-border-color:#fff;--bs-btn-hover-color:#fff;}

/* États vides / merci */
.fc-rep-empty,.fc-rep-merci{text-align:center;padding:30px 16px;}
.fc-rep-empty i,.fc-rep-merci i{width:48px;height:48px;color:var(--text-muted);}
.fc-rep-merci i{color:var(--brand-primary);}
.fc-rep-empty-t,.fc-rep-merci-t{font-size:var(--fs-lg);font-weight:700;color:var(--text-strong);margin:12px 0 4px;}
.fc-rep-empty-d{color:var(--text-muted);font-size:var(--fs-sm);}
.fc-rep-empty-d select{display:inline-block;width:auto;}

/* Popup préremplissage / VHU */
.fc-rep-popup{position:fixed;top:18%;left:50%;transform:translateX(-50%);z-index:100000;min-width:320px;max-width:90vw;background:#fff;border-radius:var(--radius-lg);box-shadow:0 20px 60px rgba(0,0,0,.35);padding:22px 26px;}
.fc-rep-popup input[type=text]{height:34px;border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:0 8px;}
.fc-rep-popup input[type=button]{height:34px;padding:0 14px;border:0;border-radius:var(--radius-sm);background:var(--brand-primary);color:#fff;font-weight:700;cursor:pointer;margin-left:4px;}
.fc-rep-fade{position:fixed;inset:0;background:rgba(17,36,55,.5);z-index:99990;}

@media (max-width:767.98px){
  .fc-rep-row{flex-wrap:wrap;position:relative;}
  .fc-rep-resp{flex-basis:100%;}
  /* La ligne wrappe : sans ça la croix (dernière dans le DOM, après le bloc
     réponse en 100%) tomberait sur sa propre ligne en bas à gauche. On l'ancre
     en haut à droite, hors flux, et on réserve la place côté texte. */
  .fc-rep-info{padding-right:30px;}
  .fc-rep-hidecell{position:absolute;top:8px;right:8px;}
  .fc-rep-fixedbar-inner{justify-content:center;}
}
.fc-rep-popup-photos{min-width:480px;max-width:92vw;padding:0;overflow:hidden;}
.fc-rep-popup-photos .ajoutphotos_titre{display:flex;align-items:center;gap:12px;padding:14px 18px;background:var(--fc-navy-900);color:#fff;}
.fc-rep-popup-photos .ajoutphotos_titre img{max-height:32px;width:auto;vertical-align:middle;}
.fc-rep-popup-photos .ajoutphotos_titre_logo{display:flex;align-items:center;gap:8px;font-weight:700;flex:1 1 auto;}
.fc-rep-popup-photos .ajoutphotos_titre_libelle{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);}
.fc-rep-popup-photos .ajoutphotos_titre_fermer{margin-left:auto;}
.fc-rep-popup-photos .ajoutphotos_titre_fermer img{height:18px;}
.fc-rep-popup-photos .ajoutphotos_contenu{padding:16px 18px;font-size:var(--fs-sm);color:var(--text-body);}
.fc-rep-popup-photos .ajoutphotos_valider{display:inline-flex;align-items:center;gap:8px;margin:0 18px 18px;padding:9px 16px;background:var(--brand-primary);color:#fff;font-weight:700;border-radius:var(--radius-sm);cursor:pointer;}
.fc-rep-popup-photos .ajoutphotos_valider img{height:16px;}

/* === reponse.php : correctifs retours UX === */
/* #5 select de tri : réserver la place de la flèche (plus de chevauchement) */
.fc-rep-sort .form-select{width:auto;min-width:186px;}
/* #7 badge nombre de photos sur le bouton appareil photo */
.fc-rep-photolink a{position:relative;}
.fc-rep-photocount{position:absolute;top:-7px;right:-7px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;
  background:var(--brand-accent,#f5841d);color:#fff;font-family:var(--font-display);font-size:11px;font-weight:800;
  line-height:18px;text-align:center;box-shadow:0 0 0 2px #fff;pointer-events:none;}
.fc-rep-photocount[data-n="0"]{display:none;}
/* #1 popup préremplissage garantie (markup propre injecté par fc-ecasse-reponse.js) */
.fc-rep-garpop{min-width:340px;max-width:420px;}
.fc-rep-garpop-t{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-weight:800;font-size:var(--fs-lg);color:var(--text-strong);margin-bottom:14px;}
.fc-rep-garpop-t i{width:20px;height:20px;color:var(--brand-primary);}
.fc-rep-garpop-row{font-size:var(--fs-sm);color:var(--text-body);margin-bottom:18px;line-height:2.1;}
.fc-rep-garpop-input{width:56px;height:36px;border:1px solid var(--border-default);border-radius:var(--radius-sm);text-align:center;font-weight:700;font-size:var(--fs-md);margin:0 5px;}
.fc-rep-garpop-input:focus{outline:none;border-color:var(--brand-primary);box-shadow:var(--shadow-focus);}
.fc-rep-garpop-actions{display:flex;justify-content:flex-end;gap:8px;}

/* #2 Impression : uniquement les demandes (pas de chrome) */
@media print{
  .fc-ecasse-topbar,.fc-ecasse-sidebar,.fc-ecasse-footer,.fc-rep-tabs,.fc-rep-toolbar,
  .fc-rep-fixedbar,.fc-rep-foot,.fc-rep-catalogue,.fc-rep-hidecell,.fc-rep-photolink,
  .fc-rep-vendre,.fc-rep-massactions,.fc-ecasse-ariane,.fc-rep-listhead,.fc-rep-pro-note,
  #message_aux_casses,#fade,#fade_clickable,#popup_ajoutphotos,
  .fc-rech-print,.fc-rech-back,.fc-rech-infos,.fc-rech-evolue,.fc-rech-devis-actions{display:none !important;}
  .fc-rech-devis{break-inside:avoid;}
  .fc-ecasse-main,.fc-ecasse-shell,.fc-ecasse-content{background:#fff !important;margin:0 !important;padding:0 !important;max-width:none !important;}
  .fc-ecasse-layout{display:block !important;}
  .fc-ecasse-panel{border:0 !important;box-shadow:none !important;}
  .fc-ecasse-panel-head{background:#fff !important;border-bottom:1px solid #ccc !important;}
  .fc-ecasse-panel-head h2{color:#000 !important;}
  .fc-ecasse-panel-head h2 i,.fc-ecasse-panel-head>i{color:#000 !important;}
  .fc-rep-datebar{background:#fff !important;border:0 !important;padding:0 0 8px !important;}
  .fc-rep-row{break-inside:avoid;border-left:0 !important;background:#fff !important;}
  .fc-rep-resp{flex-basis:auto !important;}
  .fc-rep-form{border:0 !important;padding:0 !important;}
  body{background:#fff !important;}
}

/* reponse.php : popup "joindre des photos" (module générique fc_photos.php embarqué) */
.fc-rep-photopop-wrap{padding:0 !important;min-width:560px;max-width:760px;width:min(760px,92vw);overflow:hidden;}
.fc-rep-photopop-head{display:flex;align-items:center;gap:12px;padding:14px 18px;background:var(--fc-navy-900);color:#fff;}
.fc-rep-photopop-logo{max-height:34px;width:auto;background:#fff;border-radius:4px;padding:2px;}
.fc-rep-photopop-veh{display:flex;flex-direction:column;line-height:1.3;flex:1 1 auto;min-width:0;}
.fc-rep-photopop-veh strong{font-size:var(--fs-md);}
.fc-rep-photopop-veh span{font-size:var(--fs-xs);color:rgba(255,255,255,.7);text-transform:uppercase;}
.fc-rep-photopop-x{margin-left:auto;background:transparent;border:0;color:#fff;font-size:26px;line-height:1;cursor:pointer;padding:0 4px;}
.fc-rep-photopop-x:hover{color:var(--fc-amber,#ffbb00);}
.fc-rep-photopop-hint{padding:12px 18px 0;font-size:var(--fs-xs);color:var(--text-muted);}
.fc-rep-photopop-frame{display:block;width:calc(100% - 36px);height:150px;margin:12px 18px;border:0;}
.fc-rep-photopop-actions{display:flex;justify-content:flex-end;padding:0 18px 16px;}
/* Smartphones : le popup ne peut plus imposer 560px (débordement) ; il occupe
   quasi tout l'écran et l'iframe s'agrandit pour afficher les 8 vignettes sur
   2 rangées (le passage en 2 rangées est géré dans fc_photos.php, ctx=reponse). */
@media (max-width:575.98px){
  .fc-rep-photopop-wrap{min-width:0;width:96vw;max-width:96vw;}
  .fc-rep-popup.fc-rep-photopop-wrap{top:12px;}
  .fc-rep-photopop-head{padding:12px 14px;gap:10px;}
  .fc-rep-photopop-hint{padding:10px 14px 0;}
  .fc-rep-photopop-frame{width:calc(100% - 24px);height:300px;margin:10px 12px;}
  .fc-rep-photopop-actions{padding:0 14px 14px;}
}

/* reponse.php : bouton "préremplir d'après un devis similaire" (sur une demande classique) */
.fc-rep-similar{display:inline-flex;align-items:center;gap:6px;margin-top:6px;padding:5px 11px;border:1px solid var(--fc-green-200,#b6da97);
  border-radius:var(--radius-pill);background:var(--fc-green-50);color:var(--fc-green-700);font-family:var(--font-body);
  font-size:var(--fs-xs);font-weight:700;cursor:pointer;line-height:1;}
.fc-rep-similar:hover{background:var(--fc-green-100);border-color:var(--brand-primary);}
.fc-rep-similar i{width:14px;height:14px;}
/* popup des devis similaires (contenu serveur legacy, centré dans la modale) */
.fc-rep-similpop{width:min(740px,93vw);max-width:none;}
.fc-rep-similpop-load{display:flex;align-items:center;gap:10px;justify-content:center;padding:24px;color:var(--text-muted);font-size:var(--fs-sm);}

/* === reponse_pro.php : demandes prioritaires de pro (compte à rebours 3 h) === */
/* Plaque d'immatriculation façon vraie plaque EU : bande bleue à gauche avec étoile
   jaune (UE) + « F » blanc (partagé avec reponse.php). Le markup n'est que du texte
   (`<div class="plaque_petite">AA-123-BB</div>`) -> bande rendue en ::before/::after. */
.fc-rep-plaquewrap .plaque_petite,.fc-rep-plaquewrap .plaque_petite_sanslien{
  position:relative;display:inline-flex;align-items:center;height:24px;padding:0 8px 0 22px;
  border:1.5px solid #111;border-radius:4px;background:#fff;overflow:hidden;
  font-family:var(--font-display);font-weight:800;font-size:13px;letter-spacing:.06em;
  color:#111;text-transform:uppercase;line-height:1;white-space:nowrap;}
.fc-rep-plaquewrap .plaque_petite::before,.fc-rep-plaquewrap .plaque_petite_sanslien::before{
  content:"F";position:absolute;left:0;top:0;bottom:0;width:16px;background:#003399;color:#fff;
  display:flex;align-items:flex-end;justify-content:center;padding-bottom:2px;
  font-size:8px;font-weight:700;letter-spacing:0;}
.fc-rep-plaquewrap .plaque_petite::after,.fc-rep-plaquewrap .plaque_petite_sanslien::after{
  content:"★";position:absolute;left:0;top:1px;width:16px;text-align:center;color:#ffcc00;font-size:8px;line-height:1;}
.fc-rep-plaquewrap .plaque_petite{cursor:pointer;}
.fc-rep-plaquewrap .plaque_petite:hover{border-color:var(--brand-primary);}
/* Bandeau explicatif (fenêtre de 3 h) */
.fc-rep-sortstatic{display:inline-flex;align-items:center;gap:7px;font-size:var(--fs-sm);color:var(--text-body);font-weight:600;}
.fc-rep-sortstatic i{width:16px;height:16px;color:var(--brand-accent,#f5841d);}
.fc-rep-pro-note{display:flex;align-items:center;gap:12px;padding:12px 16px;margin-bottom:16px;
  border:1.5px solid var(--brand-accent,#f5841d);border-radius:var(--radius-md);background:#fff7ed;font-size:var(--fs-sm);}
.fc-rep-pro-note i{width:22px;height:22px;color:var(--brand-accent,#f5841d);flex:none;}
.fc-rep-pro-note>div{flex:1 1 auto;}
/* Compte à rebours dans la ligne (chip orange) */
.fc-rep-countdown{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:var(--radius-pill);
  background:#fff3e6;color:#b35309;font-family:var(--font-display);font-weight:800;font-size:var(--fs-xs);
  font-variant-numeric:tabular-nums;letter-spacing:.02em;}
.fc-rep-countdown i{width:14px;height:14px;}
/* Badge "Demande de professionnel" éventuel */
.fc-rep-row-pro .tableau_case_imgpro,.fc-rep-row-pro .tableau_case_imgpro img{display:inline;vertical-align:middle;}
/* Bloc "joindre le garage" : affiché quand la demande est cochée (.is-active), piloté en CSS */
.fc-rep-garage{display:none;width:100%;margin-top:2px;padding:10px 12px;border:1px solid var(--fc-green-200,#b6da97);
  border-radius:var(--radius-md);background:var(--fc-green-50);}
.fc-rep-row.is-active .fc-rep-garage{display:block;}
.fc-rep-garage-t{display:flex;align-items:center;gap:6px;font-weight:700;color:var(--fc-green-700);font-size:var(--fs-sm);margin-bottom:4px;}
.fc-rep-garage-t i{width:16px;height:16px;}
.fc-rep-garage-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
.fc-rep-garage-num{font-family:var(--font-display);font-weight:800;font-size:var(--fs-md);color:var(--text-strong);letter-spacing:.02em;}
.fc-rep-garage-code{font-weight:700;color:var(--text-body);font-size:var(--fs-sm);}
.fc-rep-garage-note{font-size:var(--fs-xs);color:var(--text-muted);margin-top:2px;}

/* === Liste en cartes nettement séparées (partagé reponse.php + reponse_pro.php via .fc-rep-cards) === */
.fc-rep-cards .fc-rep-list{display:flex;flex-direction:column;gap:10px;padding:14px 16px;background:var(--surface-sunken,#f6f8fa);}
.fc-rep-cards .fc-rep-row{align-items:flex-start;padding:14px;border:1px solid var(--border-default);
  border-left-width:4px;border-left-color:var(--fc-grey-300,#c8d0d8);border-radius:var(--radius-md);
  background:#fff;box-shadow:0 1px 2px rgba(17,36,55,.05);}
.fc-rep-cards .fc-rep-row:hover{border-color:var(--fc-grey-300,#c8d0d8);box-shadow:0 3px 10px rgba(17,36,55,.10);background:#fff;}
.fc-rep-cards .fc-rep-row.is-active{border-color:var(--brand-primary);border-left-color:var(--brand-primary);background:var(--fc-green-50);}
/* En-têtes de catégorie (page classique) : arrondis + léger espace au-dessus pour démarquer les groupes */
.fc-rep-cards .fc-rep-cat{border-radius:var(--radius-md);margin-top:6px;}
.fc-rep-cards .fc-rep-cat:first-child{margin-top:0;}
/* Compteur de temps restant (reponse_pro) : position normalisée -> toujours en haut à droite de la carte */
.fc-rep-prolist .fc-rep-veh{flex-wrap:nowrap;align-items:flex-start;gap:10px;}
.fc-rep-prolist .fc-rep-veh-nom{flex:1 1 auto;min-width:0;}
.fc-rep-prolist .fc-rep-countdown{margin-left:auto;flex:none;}
@media (max-width:575.98px){
  .fc-rep-prolist .fc-rep-veh{flex-wrap:wrap;}
  .fc-rep-prolist .fc-rep-countdown{margin-left:0;}
}

/* ===========================================================================
   ESPACE ADHÉRENT · page « Avis de vos clients » (avis.php) — .fc-avis-*
=========================================================================== */
/* Bandeau synthèse : note moyenne + classement */
.fc-avis-summary{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;
  padding:18px 20px;margin-bottom:16px;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);
  background:linear-gradient(180deg,#fff, var(--surface-sunken,#f6f8fa));}
.fc-avis-score{display:flex;align-items:center;gap:14px;}
.fc-avis-score-num{font-family:var(--font-display);font-weight:800;font-size:38px;line-height:1;color:var(--text-strong);}
.fc-avis-score-num span{font-size:16px;color:var(--text-muted);font-weight:700;}
.fc-avis-score-num.fc-avis-note-good{color:var(--fc-green-700);}
.fc-avis-score-num.fc-avis-note-mid{color:#b35309;}
.fc-avis-score-num.fc-avis-note-low{color:#b3261e;}
.fc-avis-score-meta{display:flex;flex-direction:column;gap:2px;}
.fc-avis-score-meta strong{color:var(--text-strong);font-size:var(--fs-md);}
.fc-avis-score-meta span{color:var(--text-muted);font-size:var(--fs-sm);}
.fc-avis-rank{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 18px;
  border-radius:var(--radius-md);background:var(--fc-navy-900);color:#fff;}
.fc-avis-rank-lbl{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:rgba(255,255,255,.8);}
.fc-avis-rank-lbl i{width:14px;height:14px;color:var(--fc-amber,#ffbb00);}
.fc-avis-rank-val{font-family:var(--font-display);font-weight:800;font-size:22px;line-height:1;}
.fc-avis-rank-val span{font-size:13px;}
.fc-avis-intro{font-size:var(--fs-sm);color:var(--text-muted);margin:0 2px 16px;}
.fc-avis-reclam{margin-bottom:16px;}

/* Badge note X/10 */
.fc-avis-note{display:inline-flex;align-items:baseline;gap:1px;padding:3px 9px;border-radius:var(--radius-pill);
  font-family:var(--font-display);font-weight:800;font-size:var(--fs-sm);line-height:1;}
.fc-avis-note span{font-size:11px;font-weight:700;opacity:.8;}
.fc-avis-note-good{background:var(--fc-green-100,#dcefcb);color:var(--fc-green-700);}
.fc-avis-note-mid{background:#fff3e6;color:#b35309;}
.fc-avis-note-low{background:#fdecea;color:#b3261e;}

/* Barre de tri */
.fc-avis-toolbar{gap:8px;}
.fc-avis-sortlbl{font-size:var(--fs-sm);font-weight:600;color:var(--text-body);margin-right:2px;}
.fc-avis-sort{display:inline-flex;align-items:center;padding:5px 11px;border:1px solid var(--border-default);
  border-radius:var(--radius-pill);font-size:var(--fs-xs);font-weight:600;color:var(--text-body);text-decoration:none;}
.fc-avis-sort:hover{border-color:var(--brand-primary);color:var(--fc-green-700);}
.fc-avis-sort.is-on{background:var(--fc-navy-900);border-color:var(--fc-navy-900);color:#fff;}

/* Liste de cartes d'avis */
.fc-avis-list{display:flex;flex-direction:column;gap:10px;padding:14px 16px;background:var(--surface-sunken,#f6f8fa);}
.fc-avis-card{padding:14px 16px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:#fff;box-shadow:0 1px 2px rgba(17,36,55,.05);}
.fc-avis-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:6px;}
.fc-avis-card-client{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
.fc-avis-clientname{font-weight:700;color:var(--text-strong);text-decoration:none;}
.fc-avis-clientname:hover{color:var(--fc-green-700);text-decoration:underline;}
.fc-avis-date{font-size:var(--fs-xs);color:var(--text-muted);}
.fc-avis-comment{font-size:var(--fs-sm);color:var(--text-body);line-height:1.5;}
.fc-avis-reply{margin-top:10px;}
.fc-avis-replybtn i{width:15px;height:15px;}
.fc-avis-pending{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);font-style:italic;color:var(--text-muted);}
.fc-avis-pending i{width:15px;height:15px;}
.fc-avis-yourreply{padding:10px 12px;border-left:3px solid var(--brand-primary);background:var(--fc-green-50);border-radius:var(--radius-sm);font-size:var(--fs-sm);color:var(--text-body);}
.fc-avis-yourreply-lbl{display:inline-flex;align-items:center;gap:5px;font-weight:700;color:var(--fc-green-700);margin-right:4px;}
.fc-avis-yourreply-lbl i{width:14px;height:14px;}

/* Formulaire de réponse inline (injecté par fc-ecasse-avis.js) */
.fc-avis-replyform{display:flex;flex-direction:column;gap:8px;}
.fc-avis-replyform-actions{display:flex;gap:8px;justify-content:flex-end;}

/* Pagination */
.fc-avis-pagenav{padding:12px 16px;text-align:center;font-size:var(--fs-sm);}
.fc-avis-pagenav a,.fc-avis-pagenav strong{display:inline-block;min-width:30px;padding:4px 8px;margin:0 2px;border-radius:var(--radius-sm);text-decoration:none;}
.fc-avis-pagenav a{color:var(--text-link);border:1px solid var(--border-subtle);}
.fc-avis-pagenav a:hover{border-color:var(--brand-primary);}
.fc-avis-pagenav strong{background:var(--brand-primary);color:#fff;}

/* Vue « répondre » (lien e-mail détaillé) */
.fc-avis-h2{font-family:var(--font-display);font-weight:800;font-size:var(--fs-lg);color:var(--text-strong);margin:0 0 14px;}
.fc-avis-reply-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:14px;}
.fc-avis-reply-block,.fc-avis-reply-comment{padding:12px 14px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-sunken,#f6f8fa);font-size:var(--fs-sm);color:var(--text-body);}
.fc-avis-reply-comment{margin-bottom:14px;}
.fc-avis-reply-lbl{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--brand-accent,#f5841d);text-transform:uppercase;font-size:var(--fs-xs);letter-spacing:.03em;margin-bottom:6px;}
.fc-avis-reply-comment blockquote{margin:6px 0 0;font-style:italic;color:var(--text-strong);}
.fc-avis-reply-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:10px;}
.fc-avis-msg{font-size:var(--fs-md);color:var(--text-strong);margin:12px 0;}
@media (max-width:767.98px){ .fc-avis-reply-grid{grid-template-columns:1fr;} }

/* ===========================================================================
   ESPACE ADHÉRENT · page « Acheter des crédits » (achat_credits.php) — .fc-credits-*
=========================================================================== */
/* Solde + premium */
.fc-credits-top{display:flex;align-items:stretch;gap:14px;flex-wrap:wrap;margin-bottom:16px;}
.fc-credits-balance{display:flex;align-items:center;gap:14px;padding:16px 22px;border-radius:var(--radius-lg);
  background:var(--fc-navy-900);color:#fff;flex:0 0 auto;}
.fc-credits-balance>i{width:30px;height:30px;color:var(--fc-amber,#ffbb00);}
.fc-credits-balance-num{font-family:var(--font-display);font-weight:800;font-size:30px;line-height:1;}
.fc-credits-balance-lbl{display:block;font-size:var(--fs-xs);color:rgba(255,255,255,.8);text-transform:uppercase;letter-spacing:.03em;}
.fc-credits-premium{display:flex;align-items:center;gap:12px;flex:1 1 280px;padding:14px 18px;text-decoration:none;
  border:1.5px solid var(--fc-amber,#ffbb00);border-radius:var(--radius-lg);background:#fffaf0;color:var(--text-body);}
.fc-credits-premium:hover{background:#fff4d9;}
.fc-credits-premium>i{width:26px;height:26px;color:#c98a00;flex:none;}
.fc-credits-premium span{display:flex;flex-direction:column;font-size:var(--fs-sm);}
.fc-credits-premium span strong{color:var(--text-strong);}
.fc-credits-premium-cta{margin-left:auto;align-self:center;font-weight:700;color:var(--fc-green-700);white-space:nowrap;}
.fc-credits-enattente{margin-bottom:16px;}

/* À quoi sert 1 crédit */
.fc-credits-uses{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:18px;padding:10px 14px;
  border:1px dashed var(--border-default);border-radius:var(--radius-md);font-size:var(--fs-sm);color:var(--text-body);}
.fc-credits-uses-lbl{font-weight:800;color:var(--text-strong);font-family:var(--font-display);}
.fc-credits-use{display:inline-flex;align-items:center;gap:6px;color:var(--text-muted);}
.fc-credits-use i{width:16px;height:16px;color:var(--brand-primary);}

/* Grille de packs */
.fc-credits-packs{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:24px;}
.fc-credits-pack{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 14px 16px;
  border:1px solid var(--border-default);border-radius:var(--radius-lg);background:#fff;box-shadow:0 1px 2px rgba(17,36,55,.05);text-align:center;}
.fc-credits-pack:hover{border-color:var(--brand-primary);box-shadow:0 4px 14px rgba(17,36,55,.10);}
.fc-credits-pack-best{border-color:var(--brand-accent,#f5841d);}
.fc-credits-pack-badge{position:absolute;top:-10px;left:50%;transform:translateX(-50%);white-space:nowrap;
  padding:2px 10px;border-radius:var(--radius-pill);background:var(--brand-accent,#f5841d);color:#fff;
  font-family:var(--font-display);font-weight:800;font-size:11px;}
.fc-credits-pack-credits{font-family:var(--font-display);font-weight:800;font-size:26px;line-height:1;color:var(--fc-green-700);}
.fc-credits-pack-credits span{display:block;font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;}
.fc-credits-pack-prix{font-size:var(--fs-md);font-weight:700;color:var(--text-strong);}
.fc-credits-pack-prix span{font-size:11px;color:var(--text-muted);margin-left:2px;}
.fc-credits-pack-btn{width:100%;margin-top:4px;}
.fc-credits-pack-btn i{width:16px;height:16px;}

/* Encart promo abonnement SIV (upsell depuis la page crédits) */
.fc-credits-sivpromo{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:24px;padding:16px 20px;text-decoration:none;
  border-radius:var(--radius-lg);background:linear-gradient(110deg,var(--fc-navy-900),#1d3a55);color:#fff;box-shadow:0 2px 10px rgba(17,36,55,.18);}
.fc-credits-sivpromo:hover{box-shadow:0 6px 20px rgba(17,36,55,.28);}
.fc-credits-sivpromo-ico{display:flex;align-items:center;justify-content:center;width:48px;height:48px;flex:none;border-radius:50%;background:rgba(255,255,255,.12);}
.fc-credits-sivpromo-ico i{width:26px;height:26px;color:var(--fc-amber,#ffbb00);}
.fc-credits-sivpromo-txt{flex:1 1 320px;font-size:var(--fs-sm);line-height:1.5;color:rgba(255,255,255,.9);}
.fc-credits-sivpromo-txt strong{color:#fff;}
.fc-credits-sivpromo-cta{display:inline-flex;align-items:center;gap:6px;flex:none;padding:10px 18px;border-radius:var(--radius-sm);
  background:var(--brand-primary);color:#fff;font-weight:700;font-size:var(--fs-sm);white-space:nowrap;}
.fc-credits-sivpromo:hover .fc-credits-sivpromo-cta{background:var(--fc-green-700);}
.fc-credits-sivpromo-cta i{width:16px;height:16px;}

/* Historique */
.fc-credits-history{margin-top:8px;}
.fc-credits-tablewrap{padding:8px 16px 16px;overflow-x:auto;}
.fc-credits-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);}
.fc-credits-table thead th{text-align:left;padding:10px 12px;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.03em;
  color:var(--text-muted);border-bottom:2px solid var(--border-subtle);}
.fc-credits-table tbody td{padding:10px 12px;border-bottom:1px solid var(--border-subtle);color:var(--text-body);}
.fc-credits-table tbody tr:hover{background:var(--fc-grey-50);}
.fc-credits-td-fac{text-align:right;width:40px;}
.fc-credits-td-fac img{height:20px;width:auto;}
.fc-credits-empty{padding:24px;text-align:center;color:var(--text-muted);font-size:var(--fs-sm);}
.fc-credits-cgv{font-size:var(--fs-sm);color:var(--text-body);line-height:1.6;}

/* Lightbox de paiement (iframe SystemPay) */
.fc-credits-fade{position:fixed;inset:0;background:rgba(17,36,55,.55);z-index:99990;}
.fc-credits-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:100000;width:min(520px,94vw);}
.fc-credits-modal-box{background:#fff;border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 24px 70px rgba(0,0,0,.4);}
.fc-credits-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;background:var(--fc-navy-900);color:#fff;}
.fc-credits-modal-head span{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:var(--fs-md);}
.fc-credits-modal-head i{width:18px;height:18px;color:var(--fc-amber,#ffbb00);}
.fc-credits-modal-x{background:transparent;border:0;color:#fff;font-size:26px;line-height:1;cursor:pointer;padding:0 4px;}
.fc-credits-modal-x:hover{color:var(--fc-amber,#ffbb00);}
.fc-credits-modal-frame{display:block;width:100%;height:230px;border:0;background:#fff;}

/* Contenu de l'iframe de paiement (page autonome) */
.fc-credits-payframe{margin:0;background:#fff;}
.fc-credits-pay{padding:18px 20px;text-align:center;font-size:var(--fs-sm);color:var(--text-body);}
.fc-credits-pay-pack{font-size:var(--fs-md);color:var(--text-strong);margin-bottom:8px;}
.fc-credits-pay-cgv{font-size:var(--fs-xs);color:var(--text-muted);margin-bottom:16px;}
.fc-credits-pay-actions{display:flex;gap:10px;justify-content:center;align-items:center;}
.fc-credits-pay-actions i{width:16px;height:16px;}
.fc-credits-pay-secure{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:14px;font-size:var(--fs-xs);color:var(--text-muted);}
.fc-credits-pay-secure i{width:15px;height:15px;color:var(--brand-primary);}

/* ===========================================================================
   ESPACE ADHÉRENT · recherche SIV du header (modal partagé) — .fc-siv-*
   Le contenu injecté est du markup legacy (table .tableau, boutons sprites) :
   on l'habille de façon scopée sous .fc-siv-result (sans toucher au legacy).
=========================================================================== */
.fc-siv-fade{position:fixed;inset:0;background:rgba(17,36,55,.55);z-index:99990;}
.fc-siv-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:100000;width:min(720px,94vw);}
.fc-siv-modal-box{display:flex;flex-direction:column;max-height:88vh;background:#fff;border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 24px 70px rgba(0,0,0,.4);}
.fc-siv-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;background:var(--fc-navy-900);color:#fff;flex:none;}
.fc-siv-modal-head span{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:var(--fs-md);}
.fc-siv-modal-head i{width:18px;height:18px;color:var(--fc-amber,#ffbb00);}
.fc-siv-modal-x{background:transparent;border:0;color:#fff;font-size:26px;line-height:1;cursor:pointer;padding:0 4px;}
.fc-siv-modal-x:hover{color:var(--fc-amber,#ffbb00);}
.fc-siv-modal-body{padding:18px 20px;overflow-y:auto;}
.fc-siv-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:30px;color:var(--text-muted);font-size:var(--fs-sm);}
.fc-siv-spin{display:inline-block;width:20px;height:20px;border:2px solid var(--border-subtle);border-top-color:var(--brand-primary);border-radius:50%;animation:fc-ecasse-spin .8s linear infinite;}
.fc-siv-err{text-align:center;color:#b3261e;padding:20px;}

/* --- Habillage du markup legacy injecté (templates afficheresultats[_pubabo]) --- */
.fc-siv-result{font-size:var(--fs-sm);color:var(--text-body);}
.fc-siv-result>div[style*="text-align:center"]{margin-bottom:12px;color:var(--text-muted);}
/* Encart pub abonnement SIV en tête (legacy .popupsiv_header) */
.fc-siv-result .popupsiv_header{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;text-align:center;
  padding:12px 14px;margin:-18px -20px 14px;background:var(--surface-sunken,#f6f8fa);border-bottom:1px solid var(--border-subtle);
  font-size:var(--fs-sm);font-weight:600;color:var(--text-body);}
.fc-siv-result .popupsiv_header img{vertical-align:middle;max-height:28px;width:auto;}
.fc-siv-result .popupsiv_infocredit{text-align:center;margin:10px 0;color:var(--text-muted);font-size:var(--fs-sm);}
/* Table de résultat : .tableau (afficheresultats) OU table dans .popupsiv_contenu (pubabo) */
.fc-siv-result .tableau,.fc-siv-result .popupsiv_contenu table{width:100%;border-collapse:collapse;border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden;margin:0;}
.fc-siv-result .tableau td,.fc-siv-result .popupsiv_contenu td{padding:8px 11px;border:1px solid var(--border-subtle);vertical-align:top;height:auto !important;}
/* Titre « Véhicule immatriculé … » (tr.tableau_th, rouge inline) -> vert FC */
.fc-siv-result tr.tableau_th td{background:var(--fc-green-50) !important;color:var(--fc-green-700) !important;font-family:var(--font-display) !important;font-weight:800 !important;font-size:var(--fs-md) !important;text-align:center;padding:12px;}
/* Libellés de champ (rouge inline) -> texte fort + fond doux */
.fc-siv-result td[style*="#EE3D14"]{color:var(--text-strong) !important;background:var(--surface-sunken,#f6f8fa);font-weight:700;white-space:nowrap;}
/* En-têtes de section (fond noir + rouge inline) -> navy/blanc. Placé APRÈS la règle
   #EE3D14 : ces td portent les deux couleurs, on veut que le navy l'emporte. */
.fc-siv-result td[style*="#000000"]{background:var(--fc-navy-900) !important;color:#fff !important;font-family:var(--font-display) !important;font-weight:700 !important;text-transform:uppercase;letter-spacing:.02em;white-space:normal !important;}
/* Bouton « Fermer » legacy (input) + avertissement « 1 crédit » + boutons sprites */
.fc-siv-result .popupsiv_infocredit input[type=button]{padding:8px 18px;border:0;border-radius:var(--radius-sm);background:var(--brand-primary);color:#fff;font-weight:700;cursor:pointer;}
.fc-siv-result .popupsiv_infocredit input[type=button]:hover{background:var(--fc-green-700);}
.fc-siv-result p{text-align:center;}
.fc-siv-result label{display:inline-flex;align-items:center;gap:6px;margin:6px 0 14px;color:var(--text-muted);font-size:var(--fs-sm);}
.fc-siv-result .bouton_confirmer_gauche,.fc-siv-result .bouton_petit_vert_droite,
.fc-siv-result .bouton_annuler_gauche,.fc-siv-result .bouton_petit_orange_droite{display:none !important;}
.fc-siv-result .bouton_petit_vert_contenu,.fc-siv-result .bouton_petit_orange_contenu{display:inline-block !important;margin:0 6px;}
.fc-siv-result .bouton_petit_vert_contenu a{display:inline-block;padding:9px 20px;border-radius:var(--radius-sm);background:var(--brand-primary);color:#fff !important;font-weight:700;text-decoration:none;}
.fc-siv-result .bouton_petit_vert_contenu a:hover{background:var(--fc-green-700);}
.fc-siv-result .bouton_petit_orange_contenu a{display:inline-block;padding:9px 20px;border-radius:var(--radius-sm);border:1px solid var(--border-default);color:var(--text-body) !important;font-weight:700;text-decoration:none;}
.fc-siv-result .bouton_petit_orange_contenu a:hover{border-color:var(--text-muted);}
@media (max-width:575.98px){ .fc-siv-result .tableau td,.fc-siv-result .popupsiv_contenu td{padding:6px 8px;} }

/* ===========================================================================
   ESPACE ADHÉRENT · page « Abonnement SIV » (siv_abonnement.php) — .fc-siva-*
=========================================================================== */
.fc-siva-okmsg{margin-bottom:16px;}
.fc-siva-okmsg i{color:var(--brand-primary);}
.fc-siva-premium{margin-bottom:18px;}
/* Accroche */
.fc-siva-hero{padding:18px 20px;margin-bottom:20px;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);
  background:linear-gradient(180deg,#fff,var(--surface-sunken,#f6f8fa));}
.fc-siva-hero-txt{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.fc-siva-hero-lead{margin:0;font-size:var(--fs-md);color:var(--text-body);}
.fc-siva-plaque{display:inline-flex;align-items:center;height:34px;padding:0 12px 0 26px;position:relative;
  border:2px solid var(--text-strong);border-radius:6px;background:#fff;overflow:hidden;
  font-family:var(--font-display);font-weight:800;font-size:18px;letter-spacing:.08em;color:var(--text-strong);flex:none;}
.fc-siva-plaque-f{position:absolute;left:0;top:0;bottom:0;width:20px;background:#003399;color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;}
/* Que contient le SIV */
.fc-siva-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:24px;}
.fc-siva-feature{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--border-subtle);
  border-radius:var(--radius-md);background:#fff;font-weight:600;color:var(--text-body);}
.fc-siva-feature i{width:26px;height:26px;color:var(--brand-primary);flex:none;}
/* Forfaits */
.fc-siva-plans{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin-bottom:22px;}
.fc-siva-plan{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;
  padding:22px 16px 18px;border:1px solid var(--border-default);border-radius:var(--radius-lg);background:#fff;box-shadow:0 1px 2px rgba(17,36,55,.05);}
.fc-siva-plan:hover{border-color:var(--brand-primary);box-shadow:0 4px 14px rgba(17,36,55,.10);}
.fc-siva-plan-badge{position:absolute;top:-10px;left:50%;transform:translateX(-50%);padding:2px 10px;border-radius:var(--radius-pill);
  background:var(--brand-accent,#f5841d);color:#fff;font-family:var(--font-display);font-weight:800;font-size:11px;}
.fc-siva-plan-nb{font-family:var(--font-display);font-weight:800;font-size:24px;line-height:1;color:var(--text-strong);}
.fc-siva-plan-nb span{display:block;font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;margin-top:3px;}
.fc-siva-plan-price{font-family:var(--font-display);font-weight:800;font-size:22px;color:var(--fc-green-700);margin-top:6px;}
.fc-siva-plan-price span{font-size:11px;color:var(--text-muted);font-weight:700;margin-left:2px;}
.fc-siva-plan-old{font-size:var(--fs-xs);color:var(--text-muted);text-decoration:line-through;}
.fc-siva-plan-supp{font-size:var(--fs-xs);color:var(--text-muted);margin-bottom:8px;}
.fc-siva-plan-btn{width:100%;margin-top:auto;}
.fc-siva-plan-btn i{width:15px;height:15px;}
/* Alternative crédits */
.fc-siva-alt{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;padding:16px;
  border-top:1px dashed var(--border-default);font-size:var(--fs-sm);color:var(--text-body);}

/* ===========================================================================
   ESPACE ADHÉRENT · « Déposer une demande » (faire_demande.php) — .fc-fd-*
=========================================================================== */
.fc-fd-toolbar{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;margin-bottom:16px;}
.fc-fd-toolbar .btn i{width:15px;height:15px;}
/* Premium pub (réutilisé tel quel par le template) */
.fc-fd-premiumpub{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:18px;padding:12px 16px;
  border:1.5px solid var(--fc-amber,#ffbb00);border-radius:var(--radius-md);background:#fffaf0;font-size:var(--fs-sm);}
.fc-fd-premiumpub a{font-weight:700;color:var(--fc-green-700);text-decoration:none;}
.fc-fd-premiumpub a:hover{text-decoration:underline;}

/* Bascule auto/moto */
.fc-fd-typetabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px;}
.fc-fd-typetab{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border:1px solid var(--border-default);
  border-radius:var(--radius-md);background:#fff;font-size:var(--fs-md);color:var(--text-body);cursor:pointer;}
.fc-fd-typetab i{width:22px;height:22px;color:var(--text-muted);}
.fc-fd-typetab.fairedemande_type_bouton_actif{border-color:var(--brand-primary);background:var(--fc-green-50);color:var(--fc-green-700);font-weight:700;}
.fc-fd-typetab.fairedemande_type_bouton_actif i{color:var(--brand-primary);}
.fc-fd-typetab.fairedemande_type_bouton_inactif:hover{border-color:var(--fc-grey-300,#c8d0d8);}

/* Sections du formulaire */
.fc-fd-section{margin-bottom:22px;}
.fc-fd-section-head{display:flex;align-items:center;gap:8px;margin-bottom:14px;padding-bottom:8px;border-bottom:2px solid var(--border-subtle);
  font-family:var(--font-display);font-weight:800;font-size:var(--fs-lg);color:var(--text-strong);}
.fc-fd-section-head i{width:20px;height:20px;color:var(--brand-primary);}
.fc-fd-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:14px;}
.fc-fd-field{display:flex;flex-direction:column;gap:5px;}
.fc-fd-field>span,.fc-fd-field>label>span{font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:var(--text-muted);}
.fc-fd-date{display:flex;gap:6px;}
.fc-fd-field-immatlink{justify-content:flex-end;}
.fc-fd-field-immatlink a,.fc-fd-immatswitch a{display:inline-flex;align-items:center;gap:6px;color:var(--fc-green-700);text-decoration:none;font-size:var(--fs-sm);font-weight:600;}
.fc-fd-field-immatlink a:hover,.fc-fd-immatswitch a:hover{text-decoration:underline;}
.fc-fd-field-immatlink i,.fc-fd-immatswitch i{width:15px;height:15px;}
/* Plaque immat (saisie) façon plaque EU */
.fc-fd-immat{display:inline-flex;align-items:stretch;height:38px;border:2px solid var(--text-strong);border-radius:5px;overflow:hidden;background:#fff;max-width:220px;}
.fc-fd-immat-f{display:flex;align-items:center;justify-content:center;width:26px;background:#003399;color:#fff;font-weight:700;font-size:12px;flex:none;}
.fc-fd-immat input{border:0;outline:0;width:100%;padding:0 10px;text-transform:uppercase;font-family:var(--font-display);font-weight:800;letter-spacing:.08em;}
.fc-fd-immatrow{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.fc-fd-immatrow .fc-fd-immat{height:42px;}
.fc-fd-immatcheck{font-size:22px;}
.fc-fd-immatswitch{margin-top:10px;}
/* Défaut legacy : on saisit par immatriculation d'abord ; le bloc marque/modèle est
   masqué (affiché par type_recherche / l'inline $stylemotomarquemodele en moto). */
.fc-fd #fairedemande_vehicule_marquemodele{display:none;}
.fc-fd #fairedemande_vehicule_immatriculation{display:block;}
/* Le panneau ne doit pas rogner le dropdown d'autocomplete (position:absolute) */
.fc-fd .fc-ecasse-panel{overflow:visible;}
/* Bloc identification par plaque (UX BS5) */
.fc-fd-immatblock{padding:18px 20px;border:1px solid var(--fc-green-200,#b6da97);border-radius:var(--radius-md);background:var(--fc-green-50);}
.fc-fd-immat-intro{margin:0 0 12px;font-size:var(--fs-sm);color:var(--text-body);}
.fc-fd-immatblock .fc-fd-immatrow{align-items:center;}
.fc-fd-immat-result{margin-top:12px;}
.fc-fd-immat-msg{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:var(--radius-sm);font-size:var(--fs-sm);}
.fc-fd-immat-msg i{width:18px;height:18px;flex:none;}
.fc-fd-immat-msg-ok{background:var(--fc-green-100,#dcefcb);color:var(--fc-green-700);}
.fc-fd-immat-msg-err{background:#fdecea;color:#b3261e;}
.fc-fd-immat-msg-err a{color:#b3261e;font-weight:700;}
.fc-fd-immat-loading{display:inline-flex;align-items:center;gap:8px;color:var(--text-muted);font-size:var(--fs-sm);}
/* Marquage obligatoire / facultatif + validation BS5 inline */
.fc-fd-req{color:#dc3545;font-weight:800;}
.fc-fd-opt{display:inline-block;font-weight:600;font-size:9px;text-transform:none;letter-spacing:0;color:var(--text-muted);
  background:var(--surface-sunken,#f6f8fa);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);padding:1px 6px;margin-left:4px;vertical-align:middle;}
.fc-fd-legend{margin:10px 0 0;font-size:var(--fs-xs);color:var(--text-muted);text-align:center;}
.fc-fd-feedback{font-size:var(--fs-xs);}
.fc-fd-formerr{margin-bottom:14px;align-items:flex-start;}
.fc-fd-immat:has(input.is-invalid){border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.12);}

/* ===========================================================================
   ESPACE ADHÉRENT · « Paiement par carte » (stripe.php) — .fc-stripe-*
=========================================================================== */
.fc-stripe-okmsg{margin-bottom:16px;}
.fc-stripe-okmsg i{color:var(--brand-primary);}
.fc-stripe-errmsg{margin-bottom:16px;}
.fc-stripe-back{display:inline-flex;align-items:center;gap:6px;margin-bottom:14px;color:var(--fc-green-700);text-decoration:none;font-weight:600;font-size:var(--fs-sm);}
.fc-stripe-back:hover{text-decoration:underline;}
.fc-stripe-back i{width:16px;height:16px;}
/* Service inactif : promo + rappel */
.fc-stripe-promo{display:flex;gap:18px;flex-wrap:wrap;}
.fc-stripe-promo-txt{flex:1 1 320px;padding:20px 22px;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:#fff;}
.fc-stripe-promo-txt p{font-size:var(--fs-sm);color:var(--text-body);}
.fc-stripe-steps{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:10px;}
.fc-stripe-steps li{display:flex;align-items:center;gap:10px;font-size:var(--fs-sm);color:var(--text-body);}
.fc-stripe-steps li span{flex:none;width:26px;height:26px;border-radius:50%;background:var(--brand-primary);color:#fff;font-family:var(--font-display);font-weight:800;display:flex;align-items:center;justify-content:center;}
.fc-stripe-promo-cta{flex:1 1 300px;padding:20px 22px;border-radius:var(--radius-lg);background:var(--fc-navy-900);color:#fff;}
.fc-stripe-promo-cta>i{width:30px;height:30px;color:var(--fc-amber,#ffbb00);}
.fc-stripe-promo-cta p{font-size:var(--fs-sm);color:rgba(255,255,255,.9);margin:10px 0 14px;}
.fc-stripe-promo-cta strong{color:#fff;}
.fc-stripe-rappel{display:flex;flex-direction:column;gap:10px;}
.fc-stripe-rappel .fc-fd-field>span{color:rgba(255,255,255,.8);}
.fc-stripe-rappel .btn{align-self:flex-start;}
/* Formulaire de demande */
.fc-stripe-form .fc-fd-field,.fc-stripe-form .fc-stripe-grid{margin-bottom:14px;}
.fc-stripe-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.fc-stripe-montinput{position:relative;display:flex;align-items:center;}
.fc-stripe-montinput input{padding-right:28px;}
.fc-stripe-eur{position:absolute;right:10px;color:var(--text-muted);font-weight:700;}
.fc-stripe-hint{display:flex;align-items:center;gap:6px;font-size:var(--fs-xs);color:var(--text-muted);margin:4px 0 0;}
.fc-stripe-hint i{width:15px;height:15px;}
.fc-stripe-actions{display:flex;gap:10px;justify-content:flex-end;align-items:center;margin-top:18px;}
.fc-stripe-actions .btn i{width:16px;height:16px;}
/* Confirmation */
.fc-stripe-confirm-lead{font-size:var(--fs-sm);color:var(--text-body);margin-bottom:14px;}
.fc-stripe-recap{display:grid;grid-template-columns:200px 1fr;gap:8px 16px;margin:0 0 8px;}
.fc-stripe-recap dt{font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:var(--text-muted);}
.fc-stripe-recap dd{margin:0;color:var(--text-body);font-size:var(--fs-sm);}
.fc-stripe-recap-montant{font-family:var(--font-display);font-weight:800;font-size:var(--fs-md);color:var(--fc-green-700);}
/* Liste des transactions */
.fc-stripe-listhead{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px;}
.fc-stripe-listhead .btn i{width:15px;height:15px;}
.fc-stripe-export{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-xs);color:var(--text-muted);flex-wrap:wrap;}
.fc-stripe-export input{width:30px;height:28px;border:1px solid var(--border-default);border-radius:var(--radius-sm);text-align:center;padding:0 2px;}
.fc-stripe-export input[id*="annee"]{width:44px;}
.fc-stripe-export a{display:inline-flex;color:var(--fc-green-700);}
.fc-stripe-export i{width:20px;height:20px;}
.fc-stripe-tablewrap{overflow-x:auto;}
.fc-stripe-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);}
.fc-stripe-table thead th{text-align:left;padding:10px 12px;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);border-bottom:2px solid var(--border-subtle);white-space:nowrap;}
.fc-stripe-table thead th a{color:var(--text-muted);text-decoration:none;}
.fc-stripe-table thead th a:hover{color:var(--brand-primary);}
.fc-stripe-table tbody td{padding:10px 12px;border-bottom:1px solid var(--border-subtle);color:var(--text-body);vertical-align:top;}
.fc-stripe-row{cursor:pointer;}
.fc-stripe-row:hover{background:var(--fc-grey-50);}
.fc-stripe-num{color:var(--text-muted);}
.fc-stripe-date,.fc-stripe-email{white-space:nowrap;}
.fc-stripe-adr{font-size:var(--fs-xs);color:var(--text-muted);}
.fc-stripe-montant{text-align:right;white-space:nowrap;font-weight:700;color:var(--text-strong);}
.fc-stripe-pagenav{padding:12px 16px;text-align:center;font-size:var(--fs-sm);}
.fc-stripe-pagenav a{color:var(--text-link);text-decoration:none;padding:0 4px;}
.fc-stripe-pagenav a:hover{text-decoration:underline;}
/* Badges de statut */
.fc-stripe-badge{display:inline-block;margin-top:4px;padding:2px 9px;border-radius:var(--radius-pill);font-size:11px;font-weight:700;white-space:nowrap;}
.fc-stripe-badge-valide{background:var(--fc-green-100,#dcefcb);color:var(--fc-green-700);}
.fc-stripe-badge-attente{background:#fff3e6;color:#b35309;}
.fc-stripe-badge-rembourse{background:#e7eefc;color:#1d4ed8;}
.fc-stripe-badge-rejet,.fc-stripe-badge-annule{background:#fdecea;color:#b3261e;}
@media (max-width:767.98px){ .fc-stripe-grid,.fc-stripe-recap{grid-template-columns:1fr;} .fc-stripe-recap dt{margin-top:6px;} }

/* Pièces */
.fc-fd-pieces{display:flex;flex-direction:column;gap:12px;}
.fc-fd-piece{border:1px solid var(--border-default);border-radius:var(--radius-md);background:#fff;padding:14px 16px;}
.fc-fd-piece-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.fc-fd-piece-num{font-weight:700;color:var(--text-strong);font-size:var(--fs-sm);}
.fc-fd-piece-del{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;color:var(--text-muted);}
.fc-fd-piece-del:hover{background:#fdecea;color:#b3261e;}
.fc-fd-piece-del i{width:16px;height:16px;}
.fc-fd-pieceinput{position:relative;}
/* Dropdown autocomplete de pièce */
.fc-fd-pieceinput .wrapper-ajax-search{position:absolute;z-index:50;left:0;right:0;top:100%;margin-top:2px;background:#fff;
  border:1px solid var(--border-default);border-radius:var(--radius-sm);box-shadow:0 8px 24px rgba(17,36,55,.16);max-height:260px;overflow-y:auto;}
/* le markup legacy pose un border:1px solid #000 en style inline sur la table :
   on le neutralise (!important) pour ne garder que le cadre arrondi du wrapper. */
.fc-fd-pieceinput .wrapper-ajax-search table{width:100%;border-collapse:collapse;border:0 !important;}
.fc-fd-pieceinput .wrapper-ajax-search td{padding:8px 12px;border-bottom:1px solid var(--border-subtle);cursor:pointer;font-size:var(--fs-sm);}
.fc-fd-pieceinput .wrapper-ajax-search tr:last-child td{border-bottom:0;}
.fc-fd-pieceinput .wrapper-ajax-search td:hover{background:var(--fc-green-50);color:var(--fc-green-700);}
/* Détail pièce injecté (markup legacy fairedemande_piece_contenu_bas_*) */
.fc-fd-piecedetail{display:flex;flex-wrap:wrap;gap:16px;margin-top:12px;}
.fc-fd-piecedetail:empty{margin-top:0;}
.fc-fd-piecedetail .fairedemande_piece_contenu_bas_gauche{flex:1 1 320px;display:flex;flex-direction:column;gap:8px;}
.fc-fd-piecedetail .fairedemande_piece_contenu_bas_gauche_ligne{display:flex;align-items:center;gap:10px;}
.fc-fd-piecedetail .fairedemande_piece_contenu_bas_gauche_texte{flex:0 0 130px;font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:var(--text-muted);}
.fc-fd-piecedetail .fairedemande_piece_contenu_bas_gauche_input{flex:1 1 auto;}
.fc-fd-piecedetail .fairedemande_piece_contenu_bas_gauche_input input[type=text],
.fc-fd-piecedetail .fairedemande_piece_contenu_bas_gauche_input select{width:100%;height:36px;border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:0 10px;font-size:var(--fs-sm);}
.fc-fd-piecedetail .fairedemande_piece_contenu_bas_gauche_input input[type=text]:focus,
.fc-fd-piecedetail .fairedemande_piece_contenu_bas_gauche_input select:focus{outline:none;border-color:var(--brand-primary);box-shadow:var(--shadow-focus);}
.fc-fd-piecedetail .fairedemande_piece_contenu_bas_gauche_input input[type=checkbox]{width:18px;height:18px;accent-color:var(--brand-primary);}
/* Colonne photos : largeur calée pour 4 tuiles ~carrées (iframe 99px, comme infos.php) */
.fc-fd-piecedetail .fairedemande_piece_contenu_bas_droite{flex:1 1 360px;max-width:440px;align-self:flex-start;margin-top:14px;}
.fc-fd-piecedetail .fairedemande_piece_contenu_bas_droite::before{content:"Photos (facultatif)";display:block;font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:var(--text-muted);margin-bottom:6px;}
.fc-fd-piecedetail .fairedemande_piece_contenu_bas_droite iframe{width:100%;height:99px;border:0;display:block;}
.fc-fd-addpiece{display:inline-flex;align-items:center;gap:7px;margin-top:12px;color:var(--fc-green-700);font-weight:700;font-size:var(--fs-sm);text-decoration:none;}
.fc-fd-addpiece:hover{text-decoration:underline;}
.fc-fd-addpiece i{width:18px;height:18px;}
.fc-fd-submit{margin-top:22px;text-align:center;}
.fc-fd-submit .btn i{width:18px;height:18px;}
@media (max-width:767.98px){ .fc-fd-grid3{grid-template-columns:1fr;} }

/* Popups de la cascade (verif_date_maintenant / envoi) */
.fc-fd-fade{position:fixed;inset:0;background:rgba(17,36,55,.55);z-index:99990;}
.fc-fd-popup{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:100000;width:min(620px,94vw);max-height:88vh;overflow-y:auto;
  background:#fff;border-radius:var(--radius-lg);box-shadow:0 24px 70px rgba(0,0,0,.4);padding:0;}
.fc-fd-popup .fairedemande_popup{padding:22px 24px;}
.fc-fd-popup .fairedemande_popup_droite_titre_rouge,.fc-fd-popup .fairedemande_popup_droite_titre_vert{font-family:var(--font-display);font-weight:800;font-size:var(--fs-lg);margin-bottom:10px;}
.fc-fd-popup .fairedemande_popup_droite_titre_rouge{color:#b35309;}
.fc-fd-popup .fairedemande_popup_droite_titre_vert{color:var(--fc-green-700);}
.fc-fd-popup .fairedemande_popup_droite_contenu,.fc-fd-popup .fairedemande_popup_droite_contenu_choix{font-size:var(--fs-sm);color:var(--text-body);line-height:1.55;}
.fc-fd-popup .fairedemande_popup_bas{display:flex;align-items:stretch;gap:12px;flex-wrap:wrap;margin-top:18px;}
.fc-fd-popup .fairedemande_popup_bas_ou{align-self:center;color:var(--text-muted);font-style:italic;}
.fc-fd-popup .fairedemande_popup_bas_bouton{flex:1 1 200px;padding:14px;border-radius:var(--radius-md);cursor:pointer;text-align:center;border:1px solid var(--border-default);}
.fc-fd-popup .fairedemande_popup_bas_bouton_vert{background:var(--fc-green-50);border-color:var(--brand-primary);}
.fc-fd-popup .fairedemande_popup_bas_bouton_gris:hover{border-color:var(--fc-grey-300,#c8d0d8);}
.fc-fd-popup .fairedemande_popup_bas_bouton_titre{font-weight:700;color:var(--text-strong);margin-bottom:6px;}
.fc-fd-popup .fairedemande_popup_bas_bouton_delai{font-size:var(--fs-xs);color:var(--text-muted);margin-top:6px;}
.fc-fd-popup .fairedemande_popup_droite_contenu input[type=button]{margin-top:14px;padding:9px 20px;border:0;border-radius:var(--radius-sm);background:var(--brand-primary);color:#fff;font-weight:700;cursor:pointer;}
.fc-fd-popup .fairedemande_popup_gauche{display:none;}

/* === Recap : suivi des demandes === */
.fc-fd-recaphead{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;}
.fc-fd-recaphead .btn i{width:15px;height:15px;}
.fc-fd-recaplist{display:flex;flex-direction:column;gap:10px;}
/* Bloc avis du recap (à déposer / déposés / modifier) */
.fc-fd-avis .btn i,.fc-fd-recaphead .btn i{width:15px;height:15px;}
.fc-fd-avis-head h2{display:inline-flex;align-items:center;gap:8px;}
.fc-fd-avis-head h2 i,.fc-fd-avis .fc-ecasse-panel-head h2 i{width:18px;height:18px;color:var(--fc-green-300);}
.fc-fd-avis-badge{background:var(--fc-green-50,#eef6e7);color:var(--fc-green-700);font-weight:700;font-size:var(--fs-xs);padding:3px 10px;border-radius:999px;}
.fc-fd-avis-intro{color:var(--text-muted);font-size:var(--fs-sm);margin:0 0 14px;}
.fc-fd-aviscard{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-sunken,#f9fafb);padding:14px 16px;}
.fc-fd-aviscard+.fc-fd-aviscard{margin-top:12px;}
.fc-fd-aviscard-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px;}
.fc-fd-aviscard-casse{font-weight:700;color:var(--text-strong);}
.fc-fd-aviscard-meta{color:var(--text-muted);font-size:var(--fs-xs);margin-top:2px;}
.fc-fd-avisnote{flex:0 0 auto;background:var(--fc-green-700);color:#fff;font-family:var(--font-display);font-weight:800;font-size:var(--fs-sm);padding:3px 10px;border-radius:999px;white-space:nowrap;}
.fc-fd-avisnote-attente{background:var(--fc-grey-300,#c7ccd1);color:var(--text-strong);}
.fc-fd-avispending{display:inline-flex;align-items:center;gap:6px;color:var(--brand-accent,#f5841d);font-size:var(--fs-xs);font-weight:600;margin:0 0 6px;}
.fc-fd-avispending i{width:14px;height:14px;}
.fc-fd-aviscomment{margin:0 0 4px;color:var(--text-body);}
/* Formulaire de dépôt : note + commentaire + bouton alignés */
.fc-fd-avisform{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;}
.fc-fd-avisform .form-label{margin-bottom:4px;font-size:var(--fs-xs);font-weight:600;color:var(--text-body);}
.fc-fd-avisform-note{flex:0 0 auto;}
.fc-fd-avisform-comment{flex:1 1 200px;max-width:380px;}
.fc-fd-avisform-send{flex:0 0 auto;}
.fc-fd-avisform-send .btn i{width:16px;height:16px;}
/* Ancres avis : décalage sous le header collant */
.fc-fd-recaphead,.fc-fd-avis{scroll-margin-top:84px;}
/* Lien « Haut de page » sous le bloc avis */
.fc-fd-avis-backtop{margin-top:14px;text-align:right;}
.fc-fd-avis-backtop a{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-xs);font-weight:600;color:var(--text-muted);text-decoration:none;}
.fc-fd-avis-backtop a:hover{color:var(--brand-primary);}
.fc-fd-avis-backtop i{width:14px;height:14px;}
.fc-fd-avisreply{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-sm,5px);padding:8px 12px;font-size:var(--fs-sm);color:var(--text-body);margin-top:4px;}
/* Modale « avis d'une casse » (chargée dans #message_aux_casses) */
.fc-fd-avismodal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border-subtle);font-size:var(--fs-md);}
.fc-fd-avismodal-close{font-size:1.6em;line-height:1;color:var(--text-muted);text-decoration:none;}
.fc-fd-avismodal-close:hover{color:var(--text-strong);}
.fc-fd-avismodal-body{padding:16px 20px;}
.fc-fd-avismodal-body #MB_close{display:none;}
.fc-fd-avismodal-body table{width:100%;border-radius:var(--radius-sm,5px);}
.fc-fd-dem{border:1px solid var(--border-default);border-radius:var(--radius-md);background:#fff;overflow:hidden;box-shadow:0 1px 2px rgba(17,36,55,.05);}
.fc-fd-dem.is-open{border-color:var(--brand-primary);}
.fc-fd-dem-head{display:flex;align-items:center;gap:12px;padding:12px 16px;flex-wrap:wrap;}
.fc-fd-dem-date{font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap;}
.fc-fd-dem-logo img{height:30px;width:auto;vertical-align:middle;}
.fc-fd-dem-title{flex:1 1 200px;font-size:var(--fs-sm);color:var(--text-body);}
.fc-fd-dem.is-open .fc-fd-dem-title{color:var(--fc-green-700);font-weight:600;}
.fc-fd-dem-action{display:inline-flex;align-items:center;gap:8px;margin-left:auto;}
.fc-fd-dem-devis{font-size:var(--fs-sm);display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end;}
/* CTA principal : « N devis disponible(s) » — bouton vert mis en avant */
.fc-fd-dem-devis .bouton_devis_recu,
.fc-fd-dem-devis .bouton_devis_recu_petit{
  display:inline-flex;align-items:center;gap:8px;white-space:nowrap;cursor:pointer;
  background:var(--brand-primary);color:#fff;font-weight:800;letter-spacing:.01em;
  border-radius:999px;box-shadow:0 2px 6px rgba(87,166,43,.30);
  transition:background .15s,box-shadow .15s,transform .05s;
}
.fc-fd-dem-devis .bouton_devis_recu{font-size:var(--fs-sm);padding:10px 18px;}
.fc-fd-dem-devis .bouton_devis_recu_petit{font-size:var(--fs-xs);padding:7px 13px;}
.fc-fd-dem-devis .bouton_devis_recu:hover,
.fc-fd-dem-devis .bouton_devis_recu_petit:hover{background:var(--fc-green-700);box-shadow:0 3px 10px rgba(87,166,43,.40);}
.fc-fd-dem-devis .bouton_devis_recu:active,
.fc-fd-dem-devis .bouton_devis_recu_petit:active{transform:translateY(1px);}
.fc-fd-dem-devis .bouton_devis_recu img,
.fc-fd-dem-devis .bouton_devis_recu_petit img{height:16px;width:auto;filter:brightness(0) invert(1);}
/* « En cours de recherche » (sablier) — état secondaire discret */
.fc-fd-dem-devis .bouton_rechercheencours_gauche,
.fc-fd-dem-devis>i,.fc-fd-dem-devis{color:var(--text-muted);}
.fc-fd-dem-devis .bouton_rechercheencours_gauche{display:inline-flex;align-items:center;gap:6px;font-style:italic;font-size:var(--fs-xs);color:var(--text-muted);}
.fc-fd-dem-devis .bouton_rechercheencours_droite{display:inline-flex;}
.fc-fd-dem-devis .bouton_rechercheencours_sablier img,
.fc-fd-dem-devis>img[src*="picto_sablier"]{height:16px;width:auto;opacity:.7;}
.fc-fd-dem-devis>img[src*="aucune_reponse"]{height:22px;width:auto;}
.fc-fd-dem-devis>a img[src*="bouton_etendre"]{height:26px;width:auto;vertical-align:middle;}
.fc-fd-dem-reduce,.fc-fd-dem-del{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-sm);color:var(--text-muted);}
.fc-fd-dem-reduce:hover{background:var(--fc-grey-50);color:var(--text-body);}
.fc-fd-dem-del:hover{background:#fdecea;color:#b3261e;}
.fc-fd-dem-reduce i,.fc-fd-dem-del i{width:17px;height:17px;}
.fc-fd-dem-reponses{padding:0 16px 14px;background:var(--surface-sunken,#f6f8fa);}
/* Cartes devis reçus */
.fc-fd-rep{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:12px 14px;margin-top:10px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:#fff;}
.fc-fd-rep-prix{flex:0 0 auto;font-size:var(--fs-sm);color:var(--text-muted);}
.fc-fd-rep-prix-num{font-family:var(--font-display);font-weight:800;font-size:22px;color:var(--fc-green-700);}
.fc-fd-rep-info{flex:1 1 240px;display:flex;flex-direction:column;gap:4px;font-size:var(--fs-xs);color:var(--text-muted);}
.fc-fd-rep-dept{display:inline-flex;align-items:center;gap:4px;}
.fc-fd-rep-dept i{width:14px;height:14px;}
.fc-fd-rep-avis{display:inline-flex;align-items:center;gap:6px;color:var(--text-link);text-decoration:none;}
.fc-fd-rep-avis img{height:14px;width:auto;}
.fc-fd-rep-extra{color:var(--text-body);}
.fc-fd-rep-contact{flex:0 0 auto;}
/* Relance */
.fc-fd-relance{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px;padding:10px 14px;border:1px dashed var(--brand-accent,#f5841d);border-radius:var(--radius-md);background:#fff7ed;font-size:var(--fs-sm);}
.fc-fd-relance a{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:#b35309;text-decoration:none;}
.fc-fd-relance a:hover{text-decoration:underline;}
.fc-fd-relance i{width:15px;height:15px;}

/* ===========================================================================
   Espace adhérent · Réparations (montage.php) — render_ecasse_montage.php
=========================================================================== */
.fc-mt .fc-ecasse-panel-head i{width:18px;height:18px;color:var(--fc-green-300);vertical-align:-3px;}
.fc-mt-recaphead{margin-bottom:14px;}
.fc-mt-listhead{flex-wrap:wrap;}
.fc-mt-count{font-size:var(--fs-sm);color:var(--text-muted);font-weight:600;}
.fc-mt-listintro{font-size:var(--fs-sm);color:var(--text-muted);margin:0 0 14px;}

/* --- Liste des demandes --- */
.fc-mt-list{display:flex;flex-direction:column;gap:10px;}
.fc-mt-item{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--border-subtle);
  border-left:3px solid var(--border-default);border-radius:var(--radius-md);background:#fff;cursor:pointer;
  transition:border-color var(--dur-normal),box-shadow var(--dur-normal),background var(--dur-normal);}
.fc-mt-item:hover{border-color:var(--brand-primary);border-left-color:var(--brand-primary);box-shadow:var(--shadow-sm);background:var(--fc-green-50);}
.fc-mt-item.is-unread{border-left-color:var(--brand-primary);background:linear-gradient(0deg,#fff,#fff);}
.fc-mt-item-main{flex:1 1 auto;min-width:0;}
.fc-mt-item-top{display:flex;align-items:center;gap:10px;margin-bottom:4px;}
.fc-mt-item-date{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-xs);color:var(--text-muted);font-weight:600;}
.fc-mt-item-date i{width:14px;height:14px;}
.fc-mt-badge-new{display:inline-block;background:var(--fc-orange-500);color:#fff;font-size:11px;font-weight:700;
  text-transform:uppercase;letter-spacing:.04em;padding:1px 7px;border-radius:999px;}
.fc-mt-dot{width:8px;height:8px;border-radius:50%;background:var(--brand-primary);display:inline-block;}
.fc-mt-item-ops{font-weight:700;color:var(--text-strong);font-size:var(--fs-md);margin-bottom:2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.fc-mt-item.is-unread .fc-mt-item-ops{color:var(--text-strong);}
.fc-mt-item-veh{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--text-body);}
.fc-mt-item-veh i{width:15px;height:15px;color:var(--text-muted);flex:none;}
.fc-mt-item-actions{display:flex;align-items:center;gap:8px;flex:none;}
.fc-mt-del{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--radius-md);
  color:var(--text-muted);border:1px solid var(--border-subtle);transition:all var(--dur-normal);}
.fc-mt-del:hover{color:var(--fc-red-500);border-color:var(--fc-red-500);background:#fdecee;}
.fc-mt-del i{width:16px;height:16px;}
.fc-mt-pagenav{margin-top:16px;text-align:center;}
.fc-mt-pagenav a,.fc-mt-pagenav b{display:inline-block;min-width:30px;padding:5px 9px;margin:0 2px;border-radius:var(--radius-sm);
  border:1px solid var(--border-subtle);text-decoration:none;color:var(--text-body);font-size:var(--fs-sm);}
.fc-mt-pagenav b{background:var(--brand-primary);color:#fff;border-color:var(--brand-primary);}
.fc-mt-pagenav a:hover{border-color:var(--brand-primary);color:var(--brand-primary);}

/* --- Premium --- */
.fc-mt-premium-row{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;}
.fc-mt-premium-title{display:flex;align-items:center;gap:7px;font-weight:700;color:var(--text-strong);font-size:var(--fs-md);}
.fc-mt-premium-title i{width:18px;height:18px;color:var(--brand-primary);}
.fc-mt-premium-sub{font-size:var(--fs-sm);color:var(--text-muted);}
.fc-mt-premium-form{display:flex;align-items:flex-end;gap:8px;}
.fc-mt-premium-form .form-label{margin-bottom:3px;}
.fc-mt-premium-form .input-group{width:auto;}
.fc-mt-premium-form .form-control{max-width:90px;}

/* --- Détail --- */
.fc-mt-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
.fc-mt-detail-grid .fc-ecasse-panel+.fc-ecasse-panel{margin-top:0;}
.fc-mt-deflist{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:0;}
.fc-mt-deflist dt{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:700;align-self:center;}
.fc-mt-deflist dd{margin:0;color:var(--text-strong);font-weight:600;}
.fc-mt-deflist dd a{color:var(--brand-primary);}
.fc-mt-mailhint{font-size:var(--fs-xs);color:var(--text-muted);font-weight:400;display:flex;align-items:center;gap:5px;margin-top:3px;}
.fc-mt-mailhint i{width:13px;height:13px;}
.fc-mt-immat{display:inline-block;border:2px solid var(--text-strong);border-radius:4px;background:#fff;
  padding:2px 10px;font-family:var(--font-display);font-weight:800;letter-spacing:.06em;color:var(--text-strong);}

/* opérations */
.fc-mt-op{border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:13px 15px;margin-bottom:10px;background:var(--surface-page);}
.fc-mt-op:last-child{margin-bottom:0;}
.fc-mt-op-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.fc-mt-op-cat{font-weight:700;color:var(--text-strong);font-size:var(--fs-md);}
.fc-mt-op-piece{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-xs);font-weight:600;
  color:var(--text-muted);background:#fff;border:1px solid var(--border-subtle);border-radius:999px;padding:2px 10px;}
.fc-mt-op-piece i{width:14px;height:14px;}
.fc-mt-op-piece.is-fournie{color:var(--brand-primary);border-color:var(--fc-green-200,#bfe3a8);background:var(--fc-green-50);}
.fc-mt-op-detail{margin-top:6px;color:var(--text-body);font-size:var(--fs-sm);}
.fc-mt-op-infos{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
.fc-mt-op-info{display:flex;flex-direction:column;background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:5px 10px;min-width:80px;}
.fc-mt-op-info-lib{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);}
.fc-mt-op-info-val{font-weight:700;color:var(--text-strong);}
.fc-mt-op-photos{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
.fc-mt-photo{display:block;width:96px;height:96px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border-default);}
.fc-mt-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.fc-mt-comment{margin-top:14px;background:var(--fc-amber-50,#fff8e6);border:1px solid var(--fc-amber-200,#ffe2a8);border-radius:var(--radius-md);padding:12px 14px;}
.fc-mt-comment-head{display:flex;align-items:center;gap:6px;font-weight:700;color:var(--text-strong);margin-bottom:5px;font-size:var(--fs-sm);}
.fc-mt-comment-head i{width:16px;height:16px;color:var(--fc-orange-500);}

/* suivi commercial */
.fc-mt-suivi-intro{font-size:var(--fs-sm);color:var(--text-muted);margin:0 0 12px;}
.fc-mt-suivi-form{display:flex;gap:10px;align-items:flex-start;margin-bottom:14px;}
.fc-mt-suivi-form textarea{flex:1 1 auto;}
.fc-mt-suivi-form .btn{flex:none;white-space:nowrap;}
.fc-mt-suivi-list{display:flex;flex-direction:column;gap:8px;}
.fc-mt-suivi-item{display:flex;align-items:flex-start;gap:12px;padding:10px 12px;background:var(--surface-page);border:1px solid var(--border-subtle);border-radius:var(--radius-md);}
.fc-mt-suivi-meta{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-xs);color:var(--text-muted);font-weight:600;flex:none;min-width:118px;}
.fc-mt-suivi-meta i{width:13px;height:13px;}
.fc-mt-suivi-text{flex:1 1 auto;color:var(--text-body);font-size:var(--fs-sm);}
.fc-mt-suivi-del{flex:none;background:none;border:0;color:var(--text-muted);padding:2px;cursor:pointer;line-height:0;}
.fc-mt-suivi-del:hover{color:var(--fc-red-500);}
.fc-mt-suivi-del i{width:16px;height:16px;}
.fc-mt-suivi-empty{font-size:var(--fs-sm);margin:0;}

@media (max-width:768px){
  .fc-mt-detail-grid{grid-template-columns:1fr;}
  .fc-mt-item{flex-wrap:wrap;}
  .fc-mt-suivi-form{flex-direction:column;}
  .fc-mt-suivi-form .btn{width:100%;justify-content:center;}
}

/* ===========================================================================
   Espace adhérent · Enlèvement d'épaves (epaves.php + epave-liste.php)
=========================================================================== */
.fc-ep .fc-ecasse-panel-head i,.fc-eplist .fc-ecasse-panel-head i{width:18px;height:18px;color:var(--fc-green-300);vertical-align:-3px;}
.fc-ep-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:16px;}
.fc-ep-intro{font-size:var(--fs-sm);color:var(--text-body);}

/* --- Activation du service --- */
.fc-ep-activate-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:28px;align-items:center;}
.fc-ep-activate-text h2{font-size:var(--fs-xl,1.3rem);margin:0 0 10px;}
.fc-ep-activate-text p{color:var(--text-body);font-size:var(--fs-sm);}
.fc-ep-activate-points{list-style:none;padding:0;margin:14px 0;display:flex;flex-direction:column;gap:8px;}
.fc-ep-activate-points li{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--text-strong);font-size:var(--fs-sm);}
.fc-ep-activate-points i{width:18px;height:18px;color:var(--brand-primary);}
.fc-ep-activate-tel{display:flex;align-items:center;gap:7px;font-size:var(--fs-sm);color:var(--text-body);}
.fc-ep-activate-tel i{width:16px;height:16px;color:var(--brand-primary);}
.fc-ep-activate-card{background:var(--surface-page);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:20px;}
.fc-ep-activate-card-title{font-family:var(--font-display);font-weight:800;font-size:var(--fs-lg);color:var(--text-strong);margin-bottom:12px;}
.fc-ep-activate-card .input-group{width:auto;max-width:160px;margin-bottom:4px;}
.fc-ep-activate-around{font-size:var(--fs-sm);color:var(--text-muted);margin:0 0 14px;}

/* --- Carte épave --- */
.fc-ep-card{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:18px;}
.fc-ep-card.is-selected{border-color:var(--brand-primary);box-shadow:0 0 0 2px var(--fc-green-100,#dceccf);}
.fc-ep-card-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:14px 18px;background:var(--fc-navy-900);color:#fff;}
.fc-ep-card-title{display:flex;align-items:center;gap:8px;font-size:var(--fs-md);font-weight:700;margin:0;color:#fff;}
.fc-ep-card-title i{width:18px;height:18px;}
.fc-ep-card-sub{font-size:var(--fs-xs);color:rgba(255,255,255,.7);margin-top:2px;}
.fc-ep-timer-wrap{text-align:right;}
.fc-ep-timer{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.12);border-radius:999px;padding:4px 12px;font-weight:700;font-variant-numeric:tabular-nums;}
.fc-ep-timer i{width:16px;height:16px;color:var(--fc-orange-400);}
.fc-ep-timer-label{font-size:11px;color:rgba(255,255,255,.7);margin-top:3px;text-transform:uppercase;letter-spacing:.03em;}
.fc-ep-expired{color:var(--fc-orange-400);}
.fc-ep-card-body{padding:18px;}

.fc-ep-veh{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding-bottom:14px;border-bottom:1px solid var(--border-subtle);margin-bottom:14px;}
.fc-ep-veh-logo{width:54px;height:54px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;background:#fff;flex:none;}
.fc-ep-veh-logo img{max-width:46px;max-height:46px;}
.fc-ep-veh-id{flex:1 1 auto;min-width:0;}
.fc-ep-veh-name{font-weight:700;color:var(--text-strong);font-size:var(--fs-md);}
.fc-ep-veh-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:5px;}
.fc-ep-tag{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-xs);color:var(--text-body);background:var(--surface-page);border:1px solid var(--border-subtle);border-radius:999px;padding:2px 9px;}
.fc-ep-tag i{width:13px;height:13px;color:var(--text-muted);}
.fc-ep-immat{align-self:center;}

.fc-ep-cols{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.fc-ep-coltitle{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:700;margin:0 0 10px;}
.fc-ep-checklist{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px;}
.fc-ep-checklist li{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--text-body);}
.fc-ep-checklist li i{width:16px;height:16px;flex:none;}
.fc-ep-checklist li.is-yes i{color:var(--brand-primary);}
.fc-ep-checklist li.is-no i{color:var(--text-muted);}
.fc-ep-checklist li span{flex:1 1 auto;}
.fc-ep-checklist li b{font-weight:700;color:var(--text-strong);}
.fc-ep-etats{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.fc-ep-etat{border:1px solid var(--border-subtle);border-left-width:3px;border-radius:var(--radius-sm);padding:6px 10px;display:flex;flex-direction:column;}
.fc-ep-etat-lib{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);}
.fc-ep-etat-val{font-weight:700;color:var(--text-strong);font-size:var(--fs-sm);}
.fc-ep-etat-intact{border-left-color:var(--brand-primary);}
.fc-ep-etat-endommage{border-left-color:var(--fc-orange-500);}
.fc-ep-etat-detruit{border-left-color:var(--fc-red-500);}

.fc-ep-photos{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;}
.fc-ep-photo{display:block;width:110px;height:82px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border-default);}
.fc-ep-photo img{width:100%;height:100%;object-fit:cover;display:block;}

.fc-ep-bottom{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px;}
.fc-ep-remarque{background:var(--surface-page);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:12px 14px;}
.fc-ep-remarque-head{display:flex;align-items:center;gap:6px;font-weight:700;font-size:var(--fs-sm);color:var(--text-strong);margin-bottom:5px;}
.fc-ep-remarque-head i{width:15px;height:15px;color:var(--text-muted);}
.fc-ep-enlevement{display:flex;align-items:flex-start;gap:10px;border-radius:var(--radius-md);padding:12px 14px;}
.fc-ep-enlevement i{width:20px;height:20px;flex:none;margin-top:2px;}
.fc-ep-enlevement-t{display:block;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.03em;margin-bottom:2px;}
.fc-ep-enlevement-chercher{background:var(--fc-green-50);border:1px solid var(--fc-green-200,#bfe3a8);}
.fc-ep-enlevement-chercher i{color:var(--brand-primary);}
.fc-ep-enlevement-amener{background:var(--surface-page);border:1px solid var(--border-subtle);}
.fc-ep-enlevement-amener i{color:var(--text-muted);}

/* bloc offre */
.fc-ep-offer{margin-top:18px;border-top:1px solid var(--border-subtle);padding-top:16px;}
.fc-ep-offer-buttons{display:flex;gap:12px;flex-wrap:wrap;}
.fc-ep-form-refuser{margin:0;}
.fc-ep-offer-form{margin-top:6px;}
.fc-ep-offer-form-intro{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:var(--fs-sm);color:var(--text-body);margin-bottom:12px;}
.fc-ep-back{background:none;border:1px solid var(--border-default);border-radius:var(--radius-md);padding:4px 10px;font-size:var(--fs-sm);color:var(--text-strong);cursor:pointer;display:inline-flex;align-items:center;gap:5px;}
.fc-ep-back i{width:14px;height:14px;}
.fc-ep-offer-row{display:grid;grid-template-columns:160px 1fr;gap:14px;align-items:start;margin-bottom:12px;}
.fc-ep-prix-group{max-width:160px;}
.fc-ep-offer-done{background:var(--fc-green-50);border:1px solid var(--fc-green-200,#bfe3a8);border-radius:var(--radius-md);padding:14px 16px;}
.fc-ep-offer-done-head{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--brand-primary);margin-bottom:12px;}
.fc-ep-offer-done-head i{width:18px;height:18px;}
.fc-ep-offer-done-grid{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;}
.fc-ep-vendeur-t{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);font-weight:700;margin-bottom:4px;}
.fc-ep-vendeur-nom{font-weight:700;color:var(--text-strong);}
.fc-ep-rappel{text-align:right;}
.fc-ep-rappel-lib{display:block;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);}
.fc-ep-rappel-prix{font-family:var(--font-display);font-weight:800;font-size:var(--fs-xl,1.3rem);color:var(--brand-primary);}

/* --- Récapitulatif tabulaire (epave-liste) --- */
.fc-eplist-table-wrap{overflow-x:auto;}
.fc-eplist-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);}
.fc-eplist-table thead th{text-align:left;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);font-weight:700;padding:8px 10px;border-bottom:2px solid var(--border-subtle);white-space:nowrap;}
.fc-eplist-table tbody td{padding:10px;border-bottom:1px solid var(--border-subtle);color:var(--text-body);vertical-align:middle;}
.fc-eplist-table tbody tr{cursor:pointer;transition:background var(--dur-normal);}
.fc-eplist-table tbody tr:hover{background:var(--fc-green-50);}
.fc-eplist-table .t-right{text-align:right;}
.fc-eplist-logo{display:inline-flex;width:40px;height:40px;align-items:center;justify-content:center;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:#fff;}
.fc-eplist-logo img{max-width:34px;max-height:34px;}
.fc-eplist-offre{font-family:var(--font-display);font-weight:800;color:var(--brand-primary);}
.fc-ep-timer-mini{display:inline-flex;align-items:center;gap:5px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-strong);white-space:nowrap;}
.fc-ep-timer-mini i{width:15px;height:15px;color:var(--fc-orange-500);}

@media (max-width:768px){
  .fc-ep-activate-grid,.fc-ep-cols,.fc-ep-bottom,.fc-ep-etats,.fc-ep-offer-row,.fc-ep-offer-done-grid{grid-template-columns:1fr;}
  .fc-ep-rappel{text-align:left;}
  .fc-eplist-table thead{display:none;}
  .fc-eplist-table,.fc-eplist-table tbody,.fc-eplist-table tr,.fc-eplist-table td{display:block;width:100%;}
  .fc-eplist-table tr{border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:10px;padding:6px;}
  .fc-eplist-table td{border:0;padding:5px 8px;display:flex;justify-content:space-between;gap:12px;}
  .fc-eplist-table td:before{content:attr(data-th);font-size:var(--fs-xs);text-transform:uppercase;color:var(--text-muted);font-weight:700;}
  .fc-eplist-table .t-right{text-align:right;}
}

/* Épaves : miniatures photo (affordance zoom) + visionneuse lightbox */
.fc-ep-photo{position:relative;}
.fc-ep-photo::after{content:"";position:absolute;inset:0;background:rgba(17,36,55,0);transition:background var(--dur-normal);}
.fc-ep-photo::before{content:"";position:absolute;top:50%;left:50%;width:30px;height:30px;transform:translate(-50%,-50%) scale(.6);
  opacity:0;transition:opacity var(--dur-normal),transform var(--dur-normal);z-index:1;pointer-events:none;
  background:rgba(255,255,255,.92) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23112437' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><line x1='21' y1='21' x2='16.65' y2='16.65'/><line x1='11' y1='8' x2='11' y2='14'/><line x1='8' y1='11' x2='14' y2='11'/></svg>") center/18px no-repeat;
  border-radius:50%;box-shadow:var(--shadow-sm);}
.fc-ep-photo:hover{border-color:var(--brand-primary);}
.fc-ep-photo:hover::after{background:rgba(17,36,55,.18);}
.fc-ep-photo:hover::before{opacity:1;transform:translate(-50%,-50%) scale(1);}

.fc-ep-lightbox{position:fixed;inset:0;z-index:2000;display:none;align-items:center;justify-content:center;
  background:rgba(10,18,28,.88);padding:24px;}
.fc-ep-lightbox.is-open{display:flex;}
.fc-ep-lb-stage{margin:0;display:flex;flex-direction:column;align-items:center;gap:12px;max-width:92vw;max-height:90vh;}
.fc-ep-lb-stage img{max-width:92vw;max-height:80vh;border-radius:var(--radius-md);box-shadow:0 12px 40px rgba(0,0,0,.5);background:#fff;}
.fc-ep-lb-counter{color:rgba(255,255,255,.85);font-size:var(--fs-sm);font-weight:600;letter-spacing:.04em;}
.fc-ep-lb-close{position:absolute;top:16px;right:20px;width:44px;height:44px;border:0;border-radius:50%;
  background:rgba(255,255,255,.12);color:#fff;font-size:30px;line-height:1;cursor:pointer;transition:background var(--dur-normal);}
.fc-ep-lb-close:hover{background:rgba(255,255,255,.25);}
.fc-ep-lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border:0;border-radius:50%;
  background:rgba(255,255,255,.12);color:#fff;font-size:34px;line-height:1;cursor:pointer;transition:background var(--dur-normal);}
.fc-ep-lb-nav:hover{background:rgba(255,255,255,.25);}
.fc-ep-lb-prev{left:16px;} .fc-ep-lb-next{right:16px;}
@media (max-width:600px){
  .fc-ep-lb-nav{width:42px;height:42px;font-size:26px;}
  .fc-ep-lb-prev{left:6px;} .fc-ep-lb-next{right:6px;}
  .fc-ep-lb-stage img{max-height:72vh;}
}

/* Épaves : commentaire de l'offre faite */
.fc-ep-offer-done-comment{margin-top:12px;padding-top:12px;border-top:1px solid var(--fc-green-200,#bfe3a8);}
.fc-ep-offer-done-comment-lib{display:block;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);font-weight:700;margin-bottom:3px;}
.fc-ep-offer-done-comment p{margin:0;color:var(--text-body);font-size:var(--fs-sm);}

/* =========================================================================
   ESPACE ADHÉRENT — Recherche de clients (render_ecasse_recherche.php)
   ========================================================================= */
.fc-rech-pagehead-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.fc-rech-back{margin-bottom:14px;}

/* liste de définition fiche client */
.fc-rech-deflist{display:grid;grid-template-columns:auto 1fr;gap:8px 18px;margin:0 0 4px;}
.fc-rech-deflist dt{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:700;align-self:center;}
.fc-rech-deflist dd{margin:0;color:var(--text-strong);font-weight:600;}
.fc-rech-deflist dd a{color:var(--brand-primary);}
@media (max-width:575px){.fc-rech-deflist{grid-template-columns:1fr;gap:2px 0;}.fc-rech-deflist dd{margin-bottom:8px;}}

.fc-rech-reclam-alert{display:flex;align-items:center;gap:8px;margin:14px 0 4px;padding:10px 14px;border-radius:var(--radius-md);
  background:#fff5ec;border:1px solid #f5c79a;color:#9a4a00;font-weight:600;font-size:var(--fs-sm);}
.fc-rech-reclam-alert i{width:18px;height:18px;flex:0 0 18px;color:var(--brand-orange,#f5841d);}
.fc-rech-reclam-alert a{color:#9a4a00;text-decoration:underline;}

.fc-rech-infos{margin-top:16px;padding-top:16px;border-top:1px solid var(--border-subtle);}
.fc-rech-infos .form-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);font-weight:700;}

/* ---- carte devis -------------------------------------------------------- */
.fc-rech-devis-list{display:flex;flex-direction:column;gap:14px;}
.fc-rech-devis{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-card,#fff);overflow:hidden;}
.fc-rech-devis-head{display:flex;align-items:flex-start;gap:14px;padding:14px 16px;background:var(--surface-page,#f6f8fa);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;}
.fc-rech-devis-logo{flex:0 0 44px;width:44px;height:44px;object-fit:contain;border-radius:6px;background:#fff;border:1px solid var(--border-subtle);}
.fc-rech-devis-titlewrap{flex:1 1 240px;min-width:0;}
.fc-rech-devis-title{margin:0 0 3px;font-family:var(--font-display);font-size:var(--fs-md);font-weight:700;color:var(--text-strong);text-transform:uppercase;}
.fc-rech-devis-veh{font-size:var(--fs-sm);color:var(--text-body);display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.fc-rech-devis-meta{font-size:var(--fs-xs);color:var(--text-muted);margin-top:3px;}
.fc-rech-immat{display:inline-block;border:2px solid var(--text-strong);border-radius:4px;background:#fff;padding:1px 8px;
  font-family:var(--font-display);font-weight:800;letter-spacing:.06em;color:var(--text-strong);font-size:var(--fs-sm);}
.fc-rech-immat-link{text-decoration:none;}
.fc-rech-immat-link:hover .fc-rech-immat{border-color:var(--brand-primary);color:var(--brand-primary);}
.fc-rech-devis-prix{flex:0 0 auto;text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:2px;}
.fc-rech-prix{font-family:var(--font-display);font-weight:800;font-size:var(--fs-lg);color:var(--brand-primary);}
.fc-rech-devis-date{font-size:var(--fs-xs);color:var(--text-muted);}
.fc-rech-devis-contact{font-size:var(--fs-xs);color:var(--brand-primary);font-weight:600;display:inline-flex;align-items:center;gap:4px;}
.fc-rech-devis-contact i{width:12px;height:12px;}

.fc-rech-devis-details{display:flex;flex-wrap:wrap;gap:6px 8px;padding:10px 16px 0;}
.fc-rech-chip{font-size:var(--fs-xs);color:var(--text-body);background:var(--surface-page,#f6f8fa);border:1px solid var(--border-subtle);border-radius:999px;padding:2px 10px;}
.fc-rech-chip strong{color:var(--text-muted);font-weight:700;}

.fc-rech-devis-body{display:flex;gap:18px;padding:12px 16px 14px;flex-wrap:wrap;}
.fc-rech-devis-info{flex:1 1 320px;min-width:0;font-size:var(--fs-sm);color:var(--text-body);}
.fc-rech-devis-info>div{margin-bottom:3px;}
.fc-rech-devis-info strong{color:var(--text-strong);}
.fc-rech-photos{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.fc-rech-photo{display:block;width:54px;height:54px;border-radius:6px;overflow:hidden;border:1px solid var(--border-subtle);}
.fc-rech-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.fc-rech-photo-casse{border-color:var(--brand-primary);}
.fc-rech-devis-actions{flex:0 0 auto;display:flex;flex-direction:column;gap:7px;align-items:stretch;min-width:210px;}
.fc-rech-devis-actions .btn{white-space:nowrap;}
@media (max-width:600px){.fc-rech-devis-actions{min-width:0;width:100%;}.fc-rech-devis-prix{text-align:left;align-items:flex-start;}}

/* ---- tableau transactions CB (markup legacy habillé) -------------------- */
.fc-rech .table_paiement{width:100%;border-collapse:collapse;font-size:var(--fs-sm);}
.fc-rech .table_paiement th{text-align:left;padding:8px 10px;background:var(--surface-page,#f6f8fa);color:var(--text-muted);
  text-transform:uppercase;font-size:var(--fs-xs);letter-spacing:.03em;border-bottom:1px solid var(--border-subtle);}
.fc-rech .table_paiement td{padding:10px;border-bottom:1px solid var(--border-subtle);vertical-align:middle;color:var(--text-body);}
.fc-rech .table_paiement td.td_p_action{width:1%;white-space:nowrap;text-align:center;}
.fc-rech .paiement_span_d{font-family:var(--font-display);font-weight:700;color:var(--text-strong);}
.fc-rech .span_statut{display:block;font-size:var(--fs-sm);}
.fc-rech .span_statut strong{display:block;}
.fc-rech .span_statut p{margin:0;font-size:var(--fs-xs);color:var(--text-muted);}
.fc-rech .statu_recu strong,.fc-rech .statut_remboursee strong{color:var(--brand-primary);}
.fc-rech .statut_paiement_attente strong{color:var(--brand-orange,#f5841d);}
.fc-rech .statut_annule_vous strong,.fc-rech .statut_annule_client strong,.fc-rech .statut_rejete_banque strong{color:#c0392b;}
.fc-rech .action_div,.fc-rech .action_multiple{display:inline-block;}
.fc-rech .action_div_top,.fc-rech .action_div_bottom{display:flex;gap:6px;justify-content:center;margin:2px 0;}
.fc-rech .btn_action_t,.fc-rech .action_div a{display:inline-flex;align-items:center;justify-content:center;}
.fc-rech .action_div img,.fc-rech .btn_action_t img{width:26px;height:26px;}
.fc-rech .clear{clear:both;}
/* Actions d'une demande de paiement CB : boutons BS5 (remplacent les ex-icônes png). */
.fc-rech-payact{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;}
.fc-rech-payact-btn{white-space:nowrap;display:inline-flex;align-items:center;gap:5px;}
.fc-rech-payact-btn i,.fc-rech-payact-btn svg{width:14px;height:14px;}
.fc-rech .td_p_action{min-width:150px;}

/* ---- tableau réparations + listes (markup legacy habillé) --------------- */
.fc-rech .tableau{width:100%;border-collapse:collapse;font-size:var(--fs-sm);margin:0 0 10px;}
.fc-rech .tableau .tableau_th td,.fc-rech .tableau_th td{background:var(--brand-secondary,#112437);color:#fff;padding:8px 10px;font-weight:700;font-size:var(--fs-sm);}
.fc-rech .tableau td{padding:8px 10px;border-bottom:1px solid var(--border-subtle);color:var(--text-body);}
.fc-rech .tableau_td_bordures{border:1px solid var(--border-subtle);}
.fc-rech-listewrap .titre_cadre_colonne_principale_fonce{font-family:var(--font-display);font-weight:700;color:var(--text-strong);
  margin:14px 0 6px;font-size:var(--fs-md);}
.fc-rech-listewrap .titre_cadre_colonne_principale_fonce:first-child{margin-top:0;}
.fc-rech-listewrap .tableau tr[onclick]{cursor:pointer;transition:background .12s;}
.fc-rech-listewrap .tableau tr[onclick]:hover{background:var(--fc-green-50,#eef7e6);}

/* ---- bandeaux info / vide ---------------------------------------------- */
.fc-rech-evolue{display:flex;gap:10px;align-items:flex-start;margin-bottom:16px;padding:12px 15px;border-radius:var(--radius-md);
  background:#eef4fb;border:1px solid #bcd4ee;color:#1c3d5e;font-size:var(--fs-sm);}
.fc-rech-evolue i{width:18px;height:18px;flex:0 0 18px;margin-top:1px;}
.fc-rech-empty{text-align:center;padding:30px 16px;color:var(--text-muted);}
.fc-rech-empty i{width:42px;height:42px;color:var(--border-strong,#c4ccd6);margin-bottom:10px;}
.fc-rech-empty-t{font-weight:700;color:var(--text-strong);margin:0 0 4px;}
.fc-rech-empty-d{font-size:var(--fs-sm);max-width:560px;margin:0 auto;}

/* ---- popup legacy (charge_envoi_photo / action_transaction) ------------- */
.fc-rech-fade{position:fixed;inset:0;background:rgba(17,36,55,.55);z-index:1080;}
.fc-rech-popup{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1090;width:min(560px,92vw);
  max-height:86vh;overflow:auto;background:#fff;border-radius:var(--radius-lg,12px);box-shadow:0 18px 50px rgba(0,0,0,.3);padding:22px;}
.fc-rech-popup.is-open{display:block !important;}
/* Recherche : modale « renvoyer / relancer une demande de paiement » (BS5) */
.fc-rech-paypop-head{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-family:var(--font-display);font-size:var(--fs-md);font-weight:700;color:var(--text-strong);}
.fc-rech-paypop-head i{width:20px;height:20px;color:var(--brand-primary);}
.fc-rech-paypop-intro{font-size:var(--fs-sm);color:var(--text-muted);margin:0 0 12px;}
.fc-rech-paypop-body{margin-bottom:14px;}
.fc-rech-paypop-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
.fc-rech-paypop-load{display:flex;align-items:center;justify-content:center;gap:10px;padding:14px;color:var(--text-muted);font-size:var(--fs-sm);}
.fc-rech-spin{display:inline-block;width:18px;height:18px;border:2px solid var(--border,#e1e6ec);border-top-color:var(--brand-primary,#57a62b);border-radius:50%;animation:fcRechSpin .7s linear infinite;}
@keyframes fcRechSpin{to{transform:rotate(360deg);}}

/* Recherche : popup « Envoyer des photos au client » (AJAX charge_envoi_photo, BS5) */
.fc-photomail-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px;}
.fc-photomail-title{display:flex;align-items:center;gap:8px;margin:0;font-family:var(--font-display);font-size:var(--fs-md);font-weight:700;color:var(--text-strong);}
.fc-photomail-title i{width:20px;height:20px;color:var(--brand-primary);}
.fc-photomail-x{border:0;background:transparent;font-size:26px;line-height:1;color:var(--text-muted);cursor:pointer;padding:0 4px;}
.fc-photomail-x:hover{color:var(--text-strong);}
.fc-photomail-sub{font-size:var(--fs-sm);color:var(--text-muted);margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--border-subtle);}
.fc-photomail-field{margin-bottom:13px;}
.fc-photomail-field .form-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);font-weight:700;margin-bottom:4px;}
.fc-photomail-files{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
@media (max-width:480px){.fc-photomail-files{grid-template-columns:1fr;}}
.fc-photomail-note{display:flex;gap:8px;align-items:flex-start;font-size:var(--fs-xs);color:#1c3d5e;background:#eef4fb;border:1px solid #bcd4ee;border-radius:var(--radius-sm,6px);padding:9px 12px;margin-bottom:16px;}
.fc-photomail-note i{width:15px;height:15px;flex:0 0 15px;margin-top:1px;}
.fc-photomail-actions{display:flex;justify-content:flex-end;gap:10px;}
.fc-photomail-send i{width:16px;height:16px;}
.fc-photomail-uploader{display:block;width:100%;height:108px;border:0;overflow:hidden;}

/* ===========================================================================
   ESPACE ADHÉRENT · « Vos clients » (render_ecasse_clients) — réutilise
   .fc-eplist-table (tableau responsive) + ajouts dédiés.
   =========================================================================== */
.fc-clients-intro{font-size:var(--fs-sm);color:var(--text-muted);margin:0 0 16px;max-width:760px;}
.fc-clients-toolbar{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;margin-bottom:16px;}
.fc-clients-filters{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin:0;}
.fc-clients-check{display:inline-flex;align-items:center;gap:7px;font-size:var(--fs-sm);color:var(--text-body);cursor:pointer;margin:0;}
.fc-clients-check input{accent-color:var(--brand-primary);width:16px;height:16px;}
.fc-clients-export i{width:16px;height:16px;}

.fc-clients-table .t-center{text-align:center;}
.fc-clients-nom{font-weight:600;color:var(--text-strong);}
.fc-clients-tel{font-variant-numeric:tabular-nums;white-space:nowrap;}
.fc-clients-garage{width:15px;height:15px;color:var(--fc-orange-500);vertical-align:-2px;margin-left:4px;}
.fc-clients-vendue{width:19px;height:19px;color:var(--brand-primary);vertical-align:middle;}

/* badges « info importante » */
.fc-clients-etat{display:inline-block;padding:2px 9px;border-radius:999px;font-size:var(--fs-xs);font-weight:700;
  line-height:1.5;white-space:nowrap;border:1px solid transparent;}
.fc-clients-etat.is-none{background:transparent;color:var(--text-muted);font-weight:400;padding:0;}
.fc-clients-etat.is-info{background:#eef4fb;color:#1c3d5e;border-color:#bcd4ee;}
.fc-clients-etat.is-vendu{background:var(--fc-green-50);color:var(--fc-green-700);border-color:var(--fc-green-200,#bfe3a8);}
.fc-clients-etat.is-nonvendu{background:#fdecec;color:#a12525;border-color:#f3c2c2;}
.fc-clients-etat.is-retour{background:#fff3e3;color:#9a5a12;border-color:#f6d9af;}
.fc-clients-etat.is-archive{background:var(--fc-grey-100);color:var(--text-muted);border-color:var(--border-subtle);}

/* bouton archiver / désarchiver (stoppe la propagation du clic ligne) */
.fc-clients-arch{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--border-default);
  border-radius:var(--radius-sm);background:#fff;color:var(--text-muted);transition:all var(--dur-normal);}
.fc-clients-arch i{width:17px;height:17px;}
.fc-clients-arch:hover{border-color:var(--fc-orange-500);color:var(--fc-orange-500);background:#fff7ee;}
.fc-clients-arch.btn_desarchiver:hover{border-color:var(--brand-primary);color:var(--brand-primary);background:var(--fc-green-50);}

@media (max-width:768px){
  .fc-clients-table .t-center{text-align:right;}
  .fc-clients-toolbar{flex-direction:column;align-items:stretch;}
}

/* =========================================================================
   ESPACE ADHÉRENT — Livraison GEODIS (.fc-geo-*)
   render_ecasse_geodis.php / render_ecasse_geodis_form.php / fc-ecasse-geodis.js
   ========================================================================= */
.fc-geo .fc-ecasse-panel{ overflow:visible; }
.fc-geo-empty{ text-align:center; padding:32px 16px; color:var(--text-body); }
.fc-geo-empty>[data-lucide]{ width:46px;height:46px;color:var(--bs-primary);opacity:.7;margin-bottom:8px; }
.fc-geo-empty-t{ font-family:var(--font-display);font-weight:700;font-size:1.05rem;margin:0 0 4px; }
.fc-geo-empty-d{ color:#5b6b7b;max-width:560px;margin:0 auto; }

/* --- statut badge --- */
.fc-geo-badge{ display:inline-block;padding:3px 10px;border-radius:999px;font-size:.78rem;font-weight:700;white-space:nowrap;line-height:1.3; }
.fc-geo-badge-encours{ background:#fff3e0;color:#b8650c; }
.fc-geo-badge-livree{ background:#e7f5e1;color:#2f7d18; }
.fc-geo-badge-reserve{ background:#fff8e1;color:#9a7a12; }
.fc-geo-badge-annulee{ background:#fdeaea;color:#c0392b; }
.fc-geo-badge-refusee{ background:#fdeaea;color:#c0392b; }
.fc-geo-badge-attente{ background:#eef1f4;color:#5b6b7b;font-weight:600;font-style:italic; }

/* --- liste --- */
.fc-geo-listhead,.fc-geo-sim-head{ display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap; }
.fc-geo-listhead-right{ display:flex;align-items:center;gap:14px;flex-wrap:wrap; }
.fc-geo-estim{ font-size:.9rem;color:var(--text-body); }
.fc-geo-filters{ display:grid;grid-template-columns:140px 1fr 1fr 1fr 90px 1fr;gap:8px;margin-bottom:12px; }
.fc-geo-tablewrap{ overflow-x:auto; }
.fc-geo-table{ width:100%;border-collapse:collapse;font-size:.92rem; }
.fc-geo-table thead th{ text-align:left;font-family:var(--font-display);font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.02em;color:#5b6b7b;padding:6px 10px;border-bottom:2px solid var(--border); }
.fc-geo-row{ cursor:pointer;border-bottom:1px solid var(--border);transition:background .12s; }
.fc-geo-row:hover{ background:#f6f8fa; }
.fc-geo-table td{ padding:10px;vertical-align:middle; }
.fc-geo-c-date{ white-space:nowrap;color:#5b6b7b; }
.fc-geo-c-num{ font-family:var(--font-display);font-weight:700;white-space:nowrap; }
.fc-geo-sens{ display:inline-flex;align-items:center;gap:5px;font-size:.82rem;font-weight:600;padding:2px 8px;border-radius:6px; }
.fc-geo-sens [data-lucide]{ width:15px;height:15px; }
.fc-geo-sens-envoi{ background:#eaf3ff;color:#1761c4; }
.fc-geo-sens-reception{ background:#eef7ea;color:#3a8a1f; }
.fc-geo-dest-nom{ display:block;font-weight:600; }
.fc-geo-dest-raison{ display:block;font-size:.85rem;color:#5b6b7b; }
.fc-geo-dest-adr{ display:block;font-size:.82rem;color:#7a8794; }
.fc-geo-c-go [data-lucide]{ width:18px;height:18px;color:#aab4be; }
.fc-geo-norow td{ text-align:center;color:#7a8794;font-style:italic;padding:18px; }
.fc-geo-pagenav{ margin-top:14px;font-size:.9rem; }
.fc-geo-pagenav a{ color:var(--bs-primary);text-decoration:none;padding:0 4px; }
.fc-geo-pagenav a:hover{ text-decoration:underline; }

/* --- simulation --- */
.fc-geo-simform{ }
.fc-geo-sim-row{ display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-bottom:16px; }
.fc-geo-sim-poids{ width:150px; }
.fc-geo-sim-addr{ flex:1 1 220px;min-width:200px; }
/* Message d'erreur de simulation : hors du flux (positionné sous le champ) pour ne pas
   agrandir la colonne ni décaler l'alignement de la ligne (retours users #2). */
.fc-geo-sim-field,.fc-geo-sim-addr{ position:relative; }
.fc-geo-sim-err{ position:absolute;top:100%;left:0;right:0;margin-top:3px;font-size:.8rem;line-height:1.2; }
.fc-geo-sim-addr-t{ font-family:var(--font-display);font-weight:700;font-size:.85rem;margin-bottom:4px; }
.fc-geo-sim-addr-read{ display:flex;align-items:center;justify-content:space-between;gap:8px;background:#f6f8fa;border:1px solid var(--border);border-radius:7px;padding:9px 12px;font-size:.9rem; }
.fc-geo-editaddr{ background:none;border:none;color:var(--bs-primary);cursor:pointer;padding:2px; }
.fc-geo-editaddr [data-lucide]{ width:16px;height:16px; }
.fc-geo-cpville{ display:flex;gap:8px; }
.fc-geo-cpville input{ width:90px;flex:0 0 90px; }
.fc-geo-swap{ flex:0 0 auto;align-self:center;margin-bottom:6px;width:38px;height:38px;border-radius:50%;border:1px solid var(--border);background:#fff;color:var(--bs-secondary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center; }
.fc-geo-swap:hover{ background:var(--bs-primary);color:#fff;border-color:var(--bs-primary); }
.fc-geo-swap [data-lucide]{ width:18px;height:18px; }
.fc-geo-sim-results{ display:flex;gap:14px;flex-wrap:wrap; }
.fc-geo-offer{ flex:1 1 0;min-width:240px;display:flex;align-items:center;gap:14px;border:1px solid var(--border);border-radius:10px;padding:12px 16px;background:#fff; }
.fc-geo-offer-info{ flex:1 1 auto;min-width:0; }
.fc-geo-offer-name{ display:block;font-family:var(--font-display);font-weight:700; }
.fc-geo-offer-delay{ display:block;font-size:.82rem;color:#7a8794; }
.fc-geo-offer-price{ flex:0 0 auto;font-family:var(--font-display);font-weight:800;font-size:1.15rem;color:var(--bs-secondary);white-space:nowrap; }
.fc-geo-offer-ht{ font-size:.78rem;font-weight:600;color:#7a8794; }
/* Bouton « Choisir cette offre » : taille STABLE (ne se comprime pas, pas de retour à la
   ligne) -> il garde le même ratio que l'offre express soit visible ou non (Corse) et
   avant/après calcul du tarif (retours users #4/#5). */
.fc-geo-offer-btn{ flex:0 0 auto;white-space:nowrap; }
.fc-geo-surplus{ border:1px solid var(--border);border-radius:10px;padding:14px 16px;background:#fff; }
/* Intercalaire invisible (offre express absente en ≥ 500 kg) : occupe la même largeur
   qu'une carte pour que la « classique » reste sur la moitié gauche, vide à droite. */
.fc-geo-offer-spacer{ flex:1 1 0;min-width:240px; }
@media (max-width:575.98px){ .fc-geo-offer-spacer{ display:none; } }
/* Fenêtre étroite : le prix et le bouton (largeurs fixes, non compressibles) écrasaient
   le bloc info -> le délai « 3 à 5 jours » se cassait mot par mot. On empile la carte
   verticalement : le délai reprend toute la largeur (plus de coupure) et le bouton passe
   en pleine largeur (cible tactile), tout en gardant sa taille stable. */
@media (max-width:767.98px){
  .fc-geo-offer{ flex-direction:column;align-items:stretch;gap:8px; }
  .fc-geo-offer-delay{ white-space:nowrap; }
  .fc-geo-offer-price{ align-self:flex-start; }
}
.fc-geo-cgu-note{ margin-top:12px;font-size:.85rem;color:#5b6b7b;display:flex;align-items:center;gap:6px; }
.fc-geo-cgu-note [data-lucide]{ width:15px;height:15px;color:var(--bs-primary); }

/* --- adresse par défaut + req --- */
.fc-geo-req{ color:#c0392b;font-weight:700; }
.fc-geo-addr-intro,.fc-geo-contact-intro{ color:#5b6b7b;font-size:.9rem;margin-bottom:14px; }

/* --- détail --- */
.fc-geo-detailhead{ display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px; }
.fc-geo-detail-title{ display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px; }
.fc-geo-detail-grid{ display:grid;grid-template-columns:1fr 40px 1fr;align-items:start;gap:10px;margin-bottom:18px; }
.fc-geo-arrow{ display:flex;align-items:center;justify-content:center;align-self:center;color:var(--bs-primary); }
.fc-geo-arrow [data-lucide]{ width:24px;height:24px; }
.fc-geo-addrcard{ margin:0; }
.fc-geo-deflist{ display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:0;font-size:.92rem; }
.fc-geo-deflist dt{ color:#7a8794;font-weight:600; }
.fc-geo-deflist dd{ margin:0; }
.fc-geo-colislist{ display:flex;flex-direction:column;gap:8px;margin-bottom:14px; }
.fc-geo-colis{ display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:8px 12px;background:#f6f8fa;border-radius:7px; }
.fc-geo-colis-num{ font-weight:700;font-family:var(--font-display);font-size:.85rem; }
.fc-geo-colis-type{ font-weight:600;color:var(--bs-secondary); }
.fc-geo-colis-detail{ color:#5b6b7b;font-size:.9rem; }
.fc-geo-detail-actions{ display:flex;gap:10px;flex-wrap:wrap; }
.fc-geo-photolbl{ font-size:.85rem;font-weight:600;color:#5b6b7b;margin:8px 0 6px; }
.fc-geo-photos{ display:flex;gap:10px;flex-wrap:wrap;margin-bottom:8px; }
.fc-geo-photo{ display:block;width:120px;height:90px;border-radius:7px;overflow:hidden;border:1px solid var(--border); }
.fc-geo-photo img{ width:100%;height:100%;object-fit:cover; }
.fc-geo-ass-grid{ display:grid;grid-template-columns:1fr 1fr;gap:16px; }
.fc-geo-ass-t{ font-family:var(--font-display);font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.02em;color:var(--bs-warning);margin-bottom:4px; }
.fc-geo-ass-opt{ font-size:.88rem;color:#2f7d18;display:flex;align-items:center;gap:5px; }
.fc-geo-ass-opt [data-lucide]{ width:15px;height:15px; }
.fc-geo-ass-valeur{ font-size:.92rem; }
.fc-geo-ass-check{ display:flex;align-items:center;gap:7px;font-size:.9rem;margin:6px 0; }
.fc-geo-ass-tarif{ font-size:.85rem;color:#5b6b7b; }
.fc-geo-tarif{ margin-top:14px;padding-top:12px;border-top:1px dashed var(--border);font-size:1rem; }
/* suivi (timeline) */
.fc-geo-suivi{ position:relative;padding-left:8px; }
.fc-geo-suivi-step{ display:flex;gap:14px;padding-bottom:18px;position:relative; }
.fc-geo-suivi-step:not(:last-child)::before{ content:"";position:absolute;left:6px;top:16px;bottom:0;width:2px;background:var(--border); }
.fc-geo-suivi-dot{ flex:0 0 14px;width:14px;height:14px;border-radius:50%;background:var(--bs-primary);margin-top:3px;z-index:1; }
.fc-geo-suivi-meta{ font-size:.82rem;color:#7a8794; }
.fc-geo-suivi-date{ font-weight:600;color:var(--text-body); }
.fc-geo-suivi-lib{ font-weight:600; }
.fc-geo-suivi-notifs{ list-style:none;padding:4px 0 0;margin:0;font-size:.82rem;color:#5b6b7b; }
.fc-geo-suivi-notifs li{ display:flex;align-items:center;gap:6px; }
.fc-geo-suivi-notifs [data-lucide]{ width:14px;height:14px; }
/* contact + historique */
.fc-geo-pj{ display:grid;grid-template-columns:1fr 1fr;gap:8px; }
.fc-geo-histo-title{ font-family:var(--font-display);font-weight:700;font-size:1rem;margin:20px 0 12px;padding-top:14px;border-top:1px solid var(--border); }
.fc-geo-histo{ display:flex;flex-direction:column;gap:12px; }
.fc-geo-msg{ border:1px solid var(--border);border-radius:9px;padding:12px 14px;max-width:88%; }
.fc-geo-msg-casse{ align-self:flex-end;background:#eef7ea;border-color:#cfe7c4; }
.fc-geo-msg-geodis{ align-self:flex-start;background:#f6f8fa; }
.fc-geo-msg-head{ display:flex;justify-content:space-between;gap:12px;font-size:.8rem;color:#7a8794;margin-bottom:4px; }
.fc-geo-msg-from{ font-weight:700;color:var(--text-body); }
.fc-geo-msg-sujet{ font-weight:700;font-size:.9rem;margin-bottom:6px; }
.fc-geo-msg-body{ font-size:.92rem; }
.fc-geo-msg-pjs{ margin-top:8px;display:flex;flex-wrap:wrap;gap:10px; }
.fc-geo-pjlink{ font-size:.85rem;display:inline-flex;align-items:center;gap:5px; }
.fc-geo-pjlink [data-lucide]{ width:14px;height:14px; }
.fc-geo-cancel{ margin-top:18px; }

/* --- formulaire de création --- */
.fc-geo-form-addrs{ display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:16px; }
.fc-geo-fcol{ flex:1 1 320px;min-width:280px;border:1px solid var(--border);border-radius:11px;overflow:hidden;background:#fff; }
.fc-geo-fcol-head{ background:var(--bs-secondary);color:#fff;padding:10px 14px;font-family:var(--font-display);font-weight:700;display:flex;align-items:center;gap:8px; }
.fc-geo-fcol-head [data-lucide]{ width:18px;height:18px; }
.fc-geo-fcol-body{ padding:14px; }
.fc-geo-typeclient{ display:flex;gap:16px;margin-bottom:10px;font-size:.88rem; }
.fc-geo-typeclient label{ display:flex;align-items:center;gap:6px; }
.fc-geo-rechclient{ display:flex;gap:8px;margin-bottom:12px; }
.fc-geo-fcol-body .form-label{ font-size:.78rem;margin-bottom:2px;color:#5b6b7b; }
.fc-geo-swap-form{ align-self:center;margin-top:40px; }
/* Empilé (petits écrans) : les deux colonnes passent en pleine largeur et le bouton
   d'inversion, seul sur sa ligne entre l'expéditeur et le destinataire, est centré
   horizontalement (le margin-top:40px de l'alignement côte à côte n'a plus lieu d'être). */
@media (max-width:767.98px){
  .fc-geo-form-addrs .fc-geo-fcol{ flex-basis:100%; }
  .fc-geo-swap-form{ margin:0 auto; }
}
.fc-geo-colis-edit{ display:flex;flex-direction:column;gap:8px; }
.fc-geo-colis-row{ display:flex;align-items:center;gap:10px;flex-wrap:wrap; }
.fc-geo-colis-rownum{ flex:0 0 80px;font-weight:700;font-size:.85rem;font-family:var(--font-display); }
.fc-geo-colis-type{ flex:0 0 180px; }
.fc-geo-colis-det{ flex:1 1 200px; }
.fc-geo-colis-del{ color:#c0392b;flex:0 0 auto; }
.fc-geo-colis-del [data-lucide]{ width:18px;height:18px; }
.fc-geo-colis-foot{ display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:12px; }
.fc-geo-poids-tot{ display:flex;align-items:center;gap:8px; }
.fc-geo-poids-tot input{ width:100px; }
.fc-geo-photos-up{ display:flex;gap:24px;flex-wrap:wrap;margin-top:14px; }
.fc-geo-photos-grp{ flex:1 1 280px;min-width:240px;display:flex;flex-direction:column;gap:6px; }
.fc-geo-photos-lbl{ font-size:.85rem;font-weight:600;color:#5b6b7b; }
.fc-geo-photoframe{ display:block;width:100%;height:96px;border:0;overflow:hidden; }
.fc-geo-form-foot{ display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap; }
.fc-geo-livtype{ display:flex;gap:10px; }
.fc-geo-livbtn{ padding:8px 14px;border:1px solid var(--border);border-radius:8px;cursor:pointer;font-size:.9rem;display:flex;align-items:center;gap:7px; }
.fc-geo-livbtn.is-active{ border-color:var(--bs-primary);background:#eef7ea;font-weight:600; }
.fc-geo-livbtn input{ margin:0; }
.fc-geo-estim-final{ font-size:1rem; }
.fc-geo-submit{ }
/* grand total du formulaire de création */
.fc-geo-total-panel .fc-ecasse-panel-body.fc-geo-total-wrap{ display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap; }
.fc-geo-total{ flex:1 1 320px;min-width:280px; }
.fc-geo-total-break{ display:flex;flex-direction:column;gap:3px;margin-bottom:8px; }
.fc-geo-total-line{ display:flex;justify-content:space-between;gap:16px;font-size:.92rem;color:#5b6b7b; }
.fc-geo-total-ass{ color:#2f7d18; }
.fc-geo-total-grand{ display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-top:8px;border-top:2px solid var(--border); }
.fc-geo-total-label{ font-family:var(--font-display);font-weight:700;font-size:1.05rem;color:var(--bs-secondary); }
.fc-geo-total-amount{ font-family:var(--font-display);font-weight:800;font-size:1.8rem;color:var(--bs-secondary);line-height:1; }
.fc-geo-total-ttc{ font-size:.78rem;font-weight:700;color:#7a8794;margin-left:5px;vertical-align:middle; }
.fc-geo-total-panel .fc-geo-submit{ flex:0 0 auto; }
/* Petits écrans : le bouton (libellé long, non compressible en flex:0 0 auto)
   débordait du panneau dès que le conteneur devenait plus étroit que le libellé.
   On le passe pleine largeur -> il occupe la ligne et son texte peut se répartir
   sur deux lignes au lieu de dépasser du cadre. */
@media (max-width:767.98px){
  .fc-geo-total-panel .fc-geo-submit{ flex-basis:100%;width:100%; }
}
/* pièces jointes du formulaire « Contacter GEODIS » (champs fichier habillés) */
.fc-geo-pj{ display:flex;flex-direction:column;gap:8px; }
.fc-geo-pjfile{ display:flex;align-items:center;gap:12px;margin:0;cursor:pointer; }
.fc-geo-pjinput{ position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0; }
.fc-geo-pjbtn{ display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:7px 14px;border:1px solid var(--border);border-radius:var(--bs-border-radius);background:#fff;font-weight:600;font-size:.9rem;color:var(--bs-secondary);transition:border-color .15s,background .15s,color .15s; }
.fc-geo-pjbtn i{ width:16px;height:16px; }
.fc-geo-pjfile:hover .fc-geo-pjbtn{ border-color:var(--bs-primary);color:var(--bs-primary); }
.fc-geo-pjinput:focus-visible+.fc-geo-pjbtn{ outline:2px solid var(--bs-primary);outline-offset:2px; }
.fc-geo-pjname{ font-size:.88rem;color:#7a8794;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.fc-geo-pjfile.is-filled .fc-geo-pjbtn{ border-color:var(--bs-primary);background:rgba(87,166,43,.08);color:var(--bs-primary); }
.fc-geo-pjfile.is-filled .fc-geo-pjname{ color:var(--text-body);font-weight:600; }

/* --- modal JS --- */
.fc-geo-modal-overlay{ position:fixed;inset:0;background:rgba(17,36,55,.55);z-index:1080;display:none;align-items:center;justify-content:center;padding:20px; }
.fc-geo-modal{ background:#fff;border-radius:12px;max-width:640px;width:100%;max-height:88vh;overflow:auto;position:relative;padding:22px; }
.fc-geo-modal-close{ position:absolute;top:8px;right:12px;background:none;border:none;font-size:1.7rem;line-height:1;color:#7a8794;cursor:pointer; }
.fc-geo-modal-h{ font-family:var(--font-display);font-weight:700;font-size:1.1rem;margin-bottom:12px; }
.fc-geo-modal-foot,.fc-geo-modal .fc-geo-modal-foot{ margin-top:16px;text-align:right; }
.fc-geo-valdecl{ display:flex;align-items:center;gap:8px;max-width:240px; }
.fc-geo-clientres table{ width:100%;border-collapse:collapse;font-size:.9rem; }
.fc-geo-clientres td{ padding:7px 9px;border-bottom:1px solid var(--border);cursor:pointer; }
.fc-geo-clientres tr:hover td{ background:#f6f8fa; }
.fc-geo-clientres .tableau_th td,.fc-geo-clientres .tableau_th{ font-weight:700;cursor:default;color:#5b6b7b; }
.fc-geo-clientres .titre_cadre_colonne_principale_fonce{ font-weight:700;margin:10px 0 4px;font-family:var(--font-display); }

/* --- popup CGV --- */
.fc-geo-cgv-overlay{ position:fixed;inset:0;background:rgba(17,36,55,.6);z-index:1090;display:flex;align-items:center;justify-content:center;padding:20px; }
.fc-geo-cgv-modal{ background:#fff;border-radius:12px;max-width:820px;width:100%;max-height:90vh;display:flex;flex-direction:column;overflow:hidden; }
.fc-geo-cgv-head{ padding:16px 22px;border-bottom:1px solid var(--border); }
.fc-geo-cgv-head h2{ margin:0;font-size:1.15rem; }
.fc-geo-cgv-body{ padding:18px 22px;overflow:auto;font-size:.88rem;line-height:1.5; }
.fc-geo-cgv-foot{ padding:16px 22px;border-top:1px solid var(--border); }
.fc-geo-cgv-check{ display:flex;align-items:flex-start;gap:8px;font-size:.9rem;margin-bottom:12px; }
.fc-geo-cgv-btns{ display:flex;justify-content:flex-end;gap:10px; }

@media (max-width:860px){
  .fc-geo-detail-grid{ grid-template-columns:1fr; }
  .fc-geo-arrow{ transform:rotate(90deg); }
  .fc-geo-ass-grid{ grid-template-columns:1fr; }
  .fc-geo-filters{ grid-template-columns:1fr 1fr; }
}
@media print{
  .fc-ecasse-topbar,.fc-ecasse-nav,.fc-ecasse-footer,.fc-geo-detailhead,.fc-geo-detail-actions,.fc-geo-cancel,#formucontact,.fc-geo-filters{ display:none !important; }
}

/* ===========================================================================
   ESPACE ADHÉRENT — Statistiques (statistiques_details.php / render_ecasse_stats.php)
   Réutilise .fc-eclient/.fc-eplist-table + .fc-rep-empty + .fc-mt-pagenav.
=========================================================================== */
/* Bascule réponses / appels */
.fc-stats-tabs{ display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px; }
.fc-stats-tab{ display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border:1px solid var(--border-subtle);
  border-radius:999px;background:#fff;color:var(--text-body);font-weight:600;font-size:var(--fs-sm);text-decoration:none;
  transition:background var(--dur-normal),border-color var(--dur-normal),color var(--dur-normal); }
.fc-stats-tab i{ width:17px;height:17px; }
.fc-stats-tab:hover{ border-color:var(--brand-primary);color:var(--brand-primary); }
.fc-stats-tab.is-active{ background:var(--fc-navy-900);border-color:var(--fc-navy-900);color:#fff; }

/* Bandeaux d'info */
.fc-stats-cabanner{ display:flex;align-items:center;gap:9px;padding:10px 14px;margin-bottom:14px;border-radius:var(--radius-md);
  background:var(--fc-green-50);color:var(--fc-green-700);border:1px solid var(--fc-green-200,#bfe3a8);font-size:var(--fs-sm);font-weight:600; }
.fc-stats-cabanner i{ width:18px;height:18px;flex:0 0 auto; }
.fc-stats-encours{ display:flex;align-items:flex-start;gap:11px;padding:13px 16px;margin-bottom:16px;border-radius:var(--radius-md);
  background:var(--fc-green-50);border:1px solid var(--fc-green-200,#bfe3a8);color:var(--text-body);font-size:var(--fs-sm);line-height:1.5; }
.fc-stats-encours i{ width:20px;height:20px;flex:0 0 auto;color:var(--fc-green-700);margin-top:2px; }
.fc-stats-encours strong{ display:block;color:var(--text-strong);margin-bottom:2px; }

/* En-tête de panneau : actions à droite */
.fc-stats-actions{ display:flex;align-items:center;gap:8px;flex-wrap:wrap; }
.fc-stats-actions .btn i{ width:15px;height:15px;vertical-align:-2px; }

/* Navigation par jour (mode date précise) */
.fc-stats-daynav{ display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;
  margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--border-subtle); }
.fc-stats-daynav a,.fc-stats-daynav span{ display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-sm);font-weight:600;
  color:var(--brand-primary);text-decoration:none; }
.fc-stats-daynav a:hover{ text-decoration:underline; }
.fc-stats-daynav .is-disabled{ color:var(--text-muted);font-weight:400; }
.fc-stats-daynav i{ width:16px;height:16px; }
.fc-stats-daynav-all{ color:var(--text-muted) !important; }

/* Badge « Stock » inline (devis issu du stock de la casse, origine=stock) */
.fc-stats-badge-stock{ display:inline-block;background:#dcf5c6;color:var(--fc-green-700);
  border:1px solid var(--fc-green-200,#bfe3a8);border-radius:999px;padding:0 8px;
  font-size:var(--fs-xs);font-weight:700;vertical-align:1px;margin-left:4px; }

/* En-têtes triables */
.fc-stats-th{ display:inline-flex;align-items:center;gap:3px; }
.fc-stats-sort{ display:inline-flex;color:var(--text-muted);opacity:.45;line-height:0;transition:opacity var(--dur-normal),color var(--dur-normal); }
.fc-stats-sort i{ width:13px;height:13px;margin:0 -1px; }
.fc-stats-sort:hover{ opacity:1;color:var(--brand-primary); }
.fc-stats-sort.is-on{ opacity:1;color:var(--brand-primary); }

/* Lignes du tableau */
.fc-stats-table tbody tr{ cursor:default; }
.fc-stats-table tbody tr.is-clickable{ cursor:pointer; }
.fc-stats-table tbody tr.fc-stats-row:hover{ background:var(--fc-green-50); }
.fc-stats-row.is-stock{ background:#eefbe4; }
.fc-stats-row.is-stock:hover{ background:#e4f6d6; }
.fc-stats-row.is-epave{ background:#eafbfd; }
.fc-stats-row.is-epave:hover{ background:#dcf6fa; }
.fc-stats-heure{ font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600; }
.fc-stats-piece{ font-weight:600;color:var(--text-strong); }
.fc-stats-annee{ color:var(--text-muted);font-size:var(--fs-xs);white-space:nowrap; }
.fc-stats-prix{ font-weight:700;color:var(--fc-green-700);white-space:nowrap; }
.fc-stats-garantie{ display:inline-block;background:var(--fc-green-50);color:var(--fc-green-700);
  border:1px solid var(--fc-green-200,#bfe3a8);border-radius:999px;padding:1px 9px;font-size:var(--fs-xs);font-weight:700;margin-right:5px; }
.fc-stats-remarques{ color:var(--text-body); }
/* Vue carte (mobile) : la cellule « Garantie & remarques » s'empile (libellé au-dessus,
   contenu dessous). Le contenu est regroupé dans .fc-stats-gr -> la pastille garantie
   n'est plus un enfant flex direct de la <td> et ne s'étire plus en hauteur (fini l'ovale). */
@media (max-width:768px){
  .fc-stats-table td.fc-stats-gr-cell{ flex-direction:column;align-items:flex-start;gap:4px; }
}
.fc-stats-muted{ color:var(--text-muted); }
.fc-stats-vendue{ width:16px;height:16px;color:var(--fc-green-700);vertical-align:-3px;margin-left:5px; }

/* Photos des réponses */
.fc-stats-photos{ display:flex;flex-wrap:wrap;gap:6px;margin-top:7px; }
.fc-stats-photos a{ display:block;line-height:0;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border-subtle); }
.fc-stats-photos img{ width:46px;height:46px;object-fit:cover;display:block;transition:transform var(--dur-normal); }
.fc-stats-photos a:hover img{ transform:scale(1.08); }

/* Type d'appel */
.fc-stats-type{ display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-xs);font-weight:600;white-space:nowrap; }
.fc-stats-type i{ width:14px;height:14px;flex:0 0 auto; }
.fc-stats-type-sms{ color:#1c6fb3; }
.fc-stats-type-garage{ color:#9a5a12; }
.fc-stats-type-appel_po,.fc-stats-type-appel_ano,.fc-stats-type-appel_118{ color:var(--text-muted); }
.fc-stats-pro{ display:inline-flex;align-items:center;gap:5px;font-weight:600;color:#9a5a12; }
.fc-stats-pro i{ width:15px;height:15px; }
.fc-stats-anoncell{ text-align:center;color:var(--text-muted);font-style:italic; }
.fc-stats-anoncell i{ width:15px;height:15px;vertical-align:-3px; }
.fc-stats-row-anon{ background:var(--fc-grey-50,#fafbfc); }

@media print{
  .fc-stats-tabs,.fc-stats-actions,.fc-stats-daynav,.fc-stats-sort,.fc-stats-pagenav,.fc-stats-cabanner{ display:none !important; }
  .fc-stats-row.is-stock,.fc-stats-row.is-epave,.fc-stats-row-anon{ background:#fff !important; }
}

/* =========================================================================
   ESPACE ADHÉRENT — « Mon site » (render_ecasse_mon_site.php)
   ========================================================================= */
.fc-monsite .fc-ms-toolbar{
  display:flex; align-items:center; justify-content:space-between;
  gap:.75rem; flex-wrap:wrap; margin-bottom:1rem;
}
.fc-monsite .fc-ms-subtabs{ display:flex; gap:.4rem; flex-wrap:wrap; }
.fc-monsite .fc-ms-subtab{
  display:inline-flex; align-items:center; gap:.4rem;
  padding:.45rem .85rem; border-radius:7px; font-weight:600; font-size:.92rem;
  color:var(--text-body); background:var(--fc-grey-100);
  border:1px solid var(--border-subtle); text-decoration:none; transition:all .12s;
}
.fc-monsite .fc-ms-subtab i{ width:17px; height:17px; }
.fc-monsite .fc-ms-subtab:hover{ background:var(--fc-green-50); border-color:var(--fc-green-200); color:var(--fc-green-700); }
.fc-monsite .fc-ms-subtab.is-active{ background:var(--fc-green-600); border-color:var(--fc-green-600); color:#fff; }
.fc-monsite .fc-ms-visit i{ width:16px; height:16px; }

.fc-monsite .fc-ms-help{ color:var(--text-muted); font-size:.92rem; margin-bottom:1.1rem; }
.fc-monsite .fc-ms-hint{ display:block; color:var(--text-muted); font-size:.8rem; margin-top:.25rem; }
.fc-monsite .fc-ms-req{ color:#d33; font-weight:700; }
.fc-monsite .fc-ms-alert{ display:flex; align-items:center; gap:.5rem; }
.fc-monsite .fc-ms-alert i{ width:18px; height:18px; flex:0 0 auto; }

/* --- Formulaire d'édition (Quill) --- */
.fc-monsite .fc-ms-field{ margin-bottom:1.3rem; }
.fc-monsite .fc-ms-label{
  display:block; font-weight:700; color:var(--text-strong);
  margin-bottom:.35rem; font-size:.95rem;
}
.fc-monsite .fc-ms-editor{ background:#fff; }
/* Habillage Quill « snow » aux tokens FranceCasse */
.fc-monsite .ql-toolbar.ql-snow{
  border:1px solid var(--border-default); border-bottom:none;
  border-radius:7px 7px 0 0; background:var(--surface-sunken);
}
.fc-monsite .ql-container.ql-snow{
  border:1px solid var(--border-default);
  border-radius:0 0 7px 7px; font-family:var(--font-body); font-size:1rem;
}
.fc-monsite .ql-editor{ min-height:140px; }
.fc-monsite .ql-editor.ql-blank::before{ color:var(--text-muted); font-style:normal; }
.fc-monsite .ql-snow.ql-toolbar button:hover .ql-stroke,
.fc-monsite .ql-snow .ql-toolbar button:hover .ql-stroke{ stroke:var(--fc-green-600); }
.fc-monsite .ql-snow.ql-toolbar button.ql-active .ql-stroke,
.fc-monsite .ql-snow .ql-picker-label.ql-active{ stroke:var(--fc-green-700); color:var(--fc-green-700); }
.fc-monsite .ql-snow .ql-stroke{ stroke:var(--text-body); }

.fc-monsite .fc-ms-actions{ margin-top:1.2rem; }
.fc-monsite .fc-ms-actions .btn i{ width:17px; height:17px; vertical-align:-3px; }

/* --- Tables (messages, pièces, historique CB) --- */
.fc-monsite .fc-ms-th-act{ width:48px; text-align:center; }
.fc-monsite .fc-ms-td-act{ text-align:center; }
.fc-monsite .fc-ms-row{ cursor:pointer; }
.fc-monsite .fc-ms-row:hover{ background:var(--fc-green-50); }
.fc-monsite .fc-ms-del{ color:#c33; display:inline-flex; }
.fc-monsite .fc-ms-del:hover{ color:#a00; }
.fc-monsite .fc-ms-del i{ width:18px; height:18px; }
.fc-monsite .fc-ms-table td[data-label] i{ width:16px; height:16px; }

/* --- Détail d'un message --- */
.fc-monsite .fc-ms-maildetail{ display:grid; grid-template-columns:160px 1fr; gap:.55rem 1rem; margin:0 0 1.2rem; }
.fc-monsite .fc-ms-maildetail dt{ font-weight:700; color:var(--text-strong); }
.fc-monsite .fc-ms-maildetail dd{ margin:0; color:var(--text-body); }
.fc-monsite .fc-ms-mailbody{ white-space:normal; }
.fc-monsite .fc-ms-mailactions{ display:flex; gap:.5rem; flex-wrap:wrap; }
.fc-monsite .fc-ms-mailactions .btn i{ width:16px; height:16px; vertical-align:-3px; }
@media (max-width:560px){ .fc-monsite .fc-ms-maildetail{ grid-template-columns:1fr; gap:.15rem .5rem; } .fc-monsite .fc-ms-maildetail dd{ margin-bottom:.5rem; } }

/* --- Ajout d'une pièce (cascade legacy injectée) --- */
.fc-monsite .fc-ms-addform .form-select{ max-width:420px; }
.fc-monsite .fc-ms-cascade{ margin-top:.9rem; }
.fc-monsite .fc-ms-cascade:empty{ margin-top:0; }
.fc-monsite .fc-ms-cascade select,
.fc-monsite .fc-ms-cascade input[type=text]{
  border:1px solid var(--border-default); border-radius:6px; padding:.4rem .55rem;
  font-family:var(--font-body); max-width:420px;
}
.fc-monsite .fc-ms-cascade label{ font-weight:600; color:var(--text-strong); }

/* --- Générateur CB --- */
.fc-monsite .fc-ms-cbnav{ margin-bottom:1rem; }
.fc-monsite .fc-ms-cbmsg{ margin-top:1.3rem; }
.fc-monsite .fc-ms-cbexample{
  border:1px solid var(--fc-green-300); border-radius:8px; padding:.85rem 1rem;
  background:var(--fc-green-50); margin-top:.4rem; color:var(--text-body); line-height:1.5;
}
.fc-monsite .fc-ms-cbexample textarea{ width:100%; border:1px solid var(--border-default); border-radius:6px; padding:.45rem; font-family:var(--font-body); }
.fc-monsite .fc-ms-cbsms{ margin-top:1.2rem; }
.fc-monsite .fc-ms-check{ display:inline-flex; align-items:flex-start; gap:.5rem; cursor:pointer; }
.fc-monsite .fc-ms-cgvinfo{ display:inline-block; margin-left:.4rem; color:var(--text-muted); font-size:.88rem; }
.fc-monsite .fc-ms-smsnote{ margin-top:.7rem; color:var(--text-muted); font-size:.9rem; }

/* Popup CGV SMS (réutilise le couple #message_aux_casses / #fade legacy) */
.fc-monsite .fc-ms-popup-fade{
  display:none; position:fixed; inset:0; background:rgba(17,36,55,.55); z-index:1050;
}
.fc-monsite .fc-ms-popup{
  display:none; position:fixed; top:50%; left:50%; transform:translate(-50%,-50%);
  width:min(560px,92vw); max-height:84vh; overflow:auto; z-index:1060;
  background:#fff; border-radius:12px; box-shadow:0 20px 60px rgba(0,0,0,.3);
}
.fc-monsite .fc-ms-cgvpopup{ padding:1.3rem 1.4rem; }
.fc-monsite .fc-ms-cgvpopup-titre{ font-family:var(--font-display); font-weight:700; font-size:1.1rem; color:var(--text-strong); margin-bottom:.6rem; }
.fc-monsite .fc-ms-cgvpopup-cadre{ border:1px solid var(--border-subtle); border-radius:8px; padding:.75rem; background:var(--surface-sunken); margin:.6rem 0; font-size:.9rem; line-height:1.5; }
.fc-monsite .fc-ms-cgvpopup-actions{ display:flex; gap:.5rem; margin-top:.9rem; }

/* =========================================================================
   ESPACE ADHÉRENT — « Ma pub » (render_ecasse_mapub.php)
   ========================================================================= */
.fc-mapub .fc-mapub-premium{
  display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  background:linear-gradient(135deg,var(--fc-navy-700),var(--fc-navy-900)); color:#fff;
  border-radius:10px; padding:.9rem 1.2rem; margin-bottom:1.2rem; cursor:pointer;
}
.fc-mapub .fc-mapub-premium-txt{ display:flex; flex-direction:column; line-height:1.35; }
.fc-mapub .fc-mapub-premium-txt strong{ font-family:var(--font-display); font-size:1.02rem; }
.fc-mapub .fc-mapub-premium-txt span{ color:var(--fc-orange-300); font-weight:600; }

.fc-mapub .fc-mapub-intro{ color:var(--text-body); max-width:760px; margin-bottom:1.4rem; }

.fc-mapub .fc-mapub-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1.1rem;
}
@media (max-width:1200px){ .fc-mapub .fc-mapub-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:900px){  .fc-mapub .fc-mapub-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){  .fc-mapub .fc-mapub-grid{ grid-template-columns:1fr; } }

.fc-mapub .fc-mapub-card{
  display:flex; flex-direction:column; background:var(--surface-card,#fff);
  border:1px solid var(--border-subtle); border-radius:10px; overflow:hidden;
  transition:box-shadow .15s, transform .15s;
}
.fc-mapub .fc-mapub-card:hover{ box-shadow:0 10px 28px rgba(17,36,55,.12); transform:translateY(-2px); }
.fc-mapub .fc-mapub-card-head{
  background:var(--fc-navy-900); color:#fff; font-family:var(--font-display); font-weight:700;
  text-transform:uppercase; letter-spacing:.02em; font-size:.92rem; text-align:center;
  padding:.7rem .6rem;
}
.fc-mapub .fc-mapub-card-img{ text-align:center; padding:1.1rem 0 .4rem; }
.fc-mapub .fc-mapub-card-img img{ width:auto; height:96px; object-fit:contain; }
.fc-mapub .fc-mapub-card-body{ padding:.4rem 1rem .8rem; flex:1 1 auto; }
.fc-mapub .fc-mapub-card-desc{ color:var(--text-body); font-size:.92rem; margin:0 0 .5rem; }
.fc-mapub .fc-mapub-card-hl{
  display:inline-block; font-weight:700; color:var(--fc-green-700);
  background:var(--fc-green-50); border-radius:6px; padding:.2rem .55rem; font-size:.88rem; margin:.1rem 0;
}
.fc-mapub .fc-mapub-card-list{ margin:.3rem 0 0; padding-left:1.1rem; color:var(--text-body); font-size:.9rem; }
.fc-mapub .fc-mapub-card-list li{ margin-bottom:.15rem; }
.fc-mapub .fc-mapub-card-note{ color:var(--text-muted); font-style:italic; font-size:.82rem; margin:.4rem 0 0; }
.fc-mapub .fc-mapub-card-foot{
  border-top:1px solid var(--border-subtle); padding:.8rem 1rem; margin-top:auto;
  display:flex; flex-direction:column; gap:.6rem;
}
.fc-mapub .fc-mapub-price{ display:flex; align-items:baseline; gap:.5rem; flex-wrap:wrap; }
.fc-mapub .fc-mapub-price-old{ color:var(--text-muted); text-decoration:line-through; font-size:.9rem; }
.fc-mapub .fc-mapub-price-new{ color:var(--fc-orange-600); font-size:1.05rem; }
.fc-mapub .fc-mapub-price-new strong{ font-family:var(--font-display); font-size:1.25rem; }
.fc-mapub .fc-mapub-cta{ align-self:flex-start; }

/* =========================================================================
   ESPACE ADHÉRENT — « Être rappelé » (render_ecasse_rappel.php)
   ========================================================================= */
.fc-rappel .fc-rappel-intro{ color:var(--text-body); margin-bottom:1.2rem; }
.fc-rappel .fc-rappel-form{ max-width:620px; }
.fc-rappel .fc-rappel-field{ margin-bottom:1.1rem; }
.fc-rappel .fc-rappel-label{ display:block; font-weight:700; color:var(--text-strong); margin-bottom:.35rem; font-size:.95rem; }
.fc-rappel .fc-rappel-req{ color:#d33; font-weight:700; }
.fc-rappel .fc-rappel-static{
  background:var(--surface-sunken); border:1px solid var(--border-subtle);
  border-radius:6px; padding:.5rem .7rem; color:var(--text-body);
}
.fc-rappel .fc-rappel-actions{ margin-top:1.4rem; }
.fc-rappel .fc-rappel-actions .btn i{ width:17px; height:17px; vertical-align:-3px; }

.fc-rappel .fc-rappel-ok{ text-align:center; padding:1.5rem 1rem; }
.fc-rappel .fc-rappel-ok > i{ width:54px; height:54px; color:var(--fc-green-600); margin-bottom:.6rem; }
.fc-rappel .fc-rappel-ok h2{ font-family:var(--font-display); color:var(--text-strong); margin-bottom:.5rem; }
.fc-rappel .fc-rappel-ok p{ color:var(--text-body); margin-bottom:.3rem; }
.fc-rappel .fc-rappel-sign{ font-style:italic; color:var(--text-muted); margin:.6rem 0 1.2rem !important; }

/* =========================================================================
   ESPACE ADHÉRENT — « Communication / flyers » (render_ecasse_flyers.php)
   ========================================================================= */
.fc-flyers .fc-flyers-intro{ color:var(--text-body); max-width:820px; margin-bottom:1.2rem; }

/* Fil d'étapes (ariane_1/2/3 togglés par etape()) */
.fc-flyers .fc-flyers-steps-wrap{ margin-bottom:1.1rem; }
.fc-flyers .fc-flyers-steps{ display:flex; gap:.5rem; flex-wrap:wrap; }
.fc-flyers .fc-flyers-step{
  display:flex; align-items:center; gap:.5rem; text-decoration:none;
  padding:.5rem .9rem; border-radius:8px; background:var(--fc-grey-100);
  border:1px solid var(--border-subtle); color:var(--text-body); font-weight:600; flex:1 1 0; min-width:170px;
}
.fc-flyers .fc-flyers-step-num{
  display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px;
  border-radius:50%; background:var(--fc-grey-300); color:#fff; font-weight:700; font-size:.85rem; flex:0 0 auto;
}
.fc-flyers a.fc-flyers-step:hover{ border-color:var(--fc-green-300); background:var(--fc-green-50); }
.fc-flyers .fc-flyers-step.is-active{ background:var(--fc-navy-900); border-color:var(--fc-navy-900); color:#fff; }
.fc-flyers .fc-flyers-step.is-active .fc-flyers-step-num{ background:var(--fc-green-500); }

/* Récapitulatif sélection + chips */
.fc-flyers .fc-flyers-recap .fc-ecasse-panel-body{ padding-top:1rem; padding-bottom:1rem; }
.fc-flyers .fc-flyers-selection{ display:flex; align-items:center; gap:.4rem; flex-wrap:wrap; margin-bottom:1rem; }
.fc-flyers .fc-flyers-selection-lbl{ font-weight:700; color:var(--text-strong); margin-right:.3rem; }
.fc-flyers .fc-flyers-chips{ display:inline-flex; gap:.35rem; flex-wrap:wrap; }
.fc-flyers .filtre{
  display:inline-flex; align-items:center; gap:.35rem; padding:.25rem .55rem;
  background:#fff; border:1px solid var(--border-default); border-radius:20px;
  font-size:.85rem; color:var(--text-body); white-space:nowrap;
}
.fc-flyers .filtre img{ max-width:18px; max-height:18px; vertical-align:middle; }
.fc-flyers .filtre img.filtre_logo{ width:18px; height:auto; border-radius:2px; }
.fc-flyers .filtre a{ display:inline-flex; margin-left:.15rem; }
.fc-flyers .filtre a img{ width:13px; }

/* Compteurs de cibles disponibles */
.fc-flyers .fc-flyers-counts{ display:grid; grid-template-columns:repeat(3,1fr); gap:.8rem; }
@media (max-width:680px){ .fc-flyers .fc-flyers-counts{ grid-template-columns:1fr; } }
.fc-flyers .fc-flyers-count{
  display:flex; flex-direction:column; align-items:center; text-align:center;
  background:var(--fc-navy-900); color:#fff; border-radius:10px; padding:.9rem .6rem;
}
.fc-flyers .fc-flyers-count > i{ width:26px; height:26px; color:var(--fc-green-300); margin-bottom:.3rem; }
.fc-flyers .fc-flyers-count-num{ font-family:var(--font-display); font-weight:800; font-size:1.5rem; line-height:1.1; }
.fc-flyers .fc-flyers-count-num span{ transition:color .3s, transform .3s; display:inline-block; }
.fc-flyers .fc-flyers-count-num span.is-bump{ color:var(--fc-green-300); transform:scale(1.25); }
.fc-flyers .fc-flyers-count-lbl{ font-size:.82rem; opacity:.85; margin-top:.1rem; }

/* Étape 1 : carte + formulaires */
.fc-flyers .fc-flyers-zone{ display:grid; grid-template-columns:1.1fr .9fr; gap:1.4rem; align-items:start; }
@media (max-width:900px){ .fc-flyers .fc-flyers-zone{ grid-template-columns:1fr; } }
.fc-flyers #francemap{ width:100%; height:440px; }
.fc-flyers .fc-flyers-zform{ margin-bottom:1.1rem; }
.fc-flyers .fc-flyers-zform > label{ display:block; font-weight:600; color:var(--text-strong); margin-bottom:.3rem; }
.fc-flyers .fc-flyers-villerow{ display:flex; gap:.4rem; flex-wrap:wrap; }
.fc-flyers .fc-flyers-villerow .form-control{ max-width:130px; }
.fc-flyers .fc-flyers-villerow .form-select{ flex:1 1 140px; min-width:140px; }

/* Navigation entre étapes */
.fc-flyers .fc-flyers-nav{ margin-top:1.4rem; display:flex; }
.fc-flyers .fc-flyers-nav .fc-flyers-next{ margin-left:auto; }
.fc-flyers .fc-flyers-nav-both{ justify-content:space-between; }
.fc-flyers .fc-flyers-nav .btn i{ width:16px; height:16px; vertical-align:-3px; }

/* Étape 2 : pro/part + marques */
.fc-flyers .fc-flyers-propart{ display:flex; gap:.7rem; flex-wrap:wrap; margin-bottom:1.3rem; }
.fc-flyers .fc-flyers-choice{
  flex:1 1 200px; padding:.8rem 1rem; border-radius:8px; cursor:pointer;
  border:1px solid var(--border-default); font-weight:600; color:var(--text-body);
}
.fc-flyers .fc-flyers-choice .input_choixpropart{ margin-right:.3rem; }
.fc-flyers .fc-flyers-marques-lbl{ display:flex; align-items:center; gap:.4rem; font-weight:600; color:var(--text-strong); margin-bottom:.4rem; }
.fc-flyers .fc-flyers-marques-lbl i{ width:18px; height:18px; }
.fc-flyers .fc-flyers-marqueform{ display:flex; gap:.4rem; flex-wrap:wrap; }
.fc-flyers .fc-flyers-marqueform .form-select{ max-width:320px; }

/* Étape 3 : supports + devis */
.fc-flyers .fc-flyers-supports{ display:flex; gap:.8rem; flex-wrap:wrap; margin-bottom:1.2rem; }
.fc-flyers .fc-flyers-support{
  flex:1 1 160px; display:flex; flex-direction:column; align-items:center; gap:.45rem;
  padding:1rem .8rem; border-radius:10px; cursor:pointer; border:1px solid var(--border-default);
  text-align:center; transition:background .15s, border-color .15s;
}
.fc-flyers .fc-flyers-support > i{ width:30px; height:30px; color:var(--fc-navy-900); }
.fc-flyers .fc-flyers-support-lbl{ font-weight:600; color:var(--text-body); }
/* États basculés par le JS (switchClass) — on garde ces noms de classes */
.fc-flyers .flyer_support_actif{ background:var(--fc-green-50); border-color:var(--fc-green-500); }
.fc-flyers .flyer_support_actif > i{ color:var(--fc-green-700); }
.fc-flyers .flyer_support_inactif{ background:#fff; }

.fc-flyers .fc-flyers-devisbox{
  display:inline-flex; align-items:baseline; gap:.6rem; background:var(--fc-navy-900); color:#fff;
  border-radius:10px; padding:.7rem 1.2rem; margin-bottom:1.2rem;
}
.fc-flyers .fc-flyers-devisbox-lbl{ font-weight:600; opacity:.85; }
.fc-flyers .fc-flyers-devisbox-val{ font-family:var(--font-display); font-weight:800; font-size:1.3rem; }
.fc-flyers #ledevis{ color:var(--fc-green-300); }

.fc-flyers .fc-flyers-details{ margin-bottom:.4rem; }
.fc-flyers .fc-flyers-inline{ margin-right:.8rem; }
.fc-flyers #flyer_support_details_visuel,
.fc-flyers #flyer_support_details_textesms{ background:var(--surface-sunken); border:1px solid var(--border-subtle); border-radius:8px; padding:.9rem 1rem; margin-bottom:.8rem; }
.fc-flyers #flyer_support_details_visuelupload{ margin-top:.6rem; max-width:420px; }
.fc-flyers #flyer_support_details_visuelafaire{ margin-top:.5rem; color:var(--fc-green-700); font-weight:600; }
.fc-flyers .fc-flyers-smslabel{ font-weight:600; color:var(--text-strong); margin-bottom:.4rem; display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.fc-flyers .fc-flyers-smscount{ color:var(--text-muted); font-weight:400; }
.fc-flyers #support_details_sms{ min-height:90px; }
.fc-flyers .flyer_devis_valider{ align-items:center; gap:.4rem; }
.fc-flyers .flyer_devis_valider i{ width:17px; height:17px; }

/* Overlay de chargement (calcul()) */
.fc-flyers .black_overlay{ display:none; position:fixed; inset:0; background:rgba(17,36,55,.5); z-index:1050; }
.fc-flyers .fc-flyers-loading{
  display:none; position:fixed; top:50%; left:50%; transform:translate(-50%,-50%);
  z-index:1060; background:#fff; border-radius:12px; box-shadow:0 18px 50px rgba(0,0,0,.3);
  padding:1.6rem 2rem; text-align:center;
}
.fc-flyers .fc-flyers-loading-inner img{ width:42px; height:42px; }
.fc-flyers .fc-flyers-loading-inner p{ margin:.6rem 0 0; color:var(--text-body); font-weight:600; }

/* Île-de-France : boutons pour les départements trop petits sur la carte */
.fc-flyers .fc-flyers-idf{ margin-top:.9rem; padding-top:.8rem; border-top:1px dashed var(--border-subtle); }
.fc-flyers .fc-flyers-idf-lbl{ display:flex; align-items:center; gap:.35rem; font-size:.84rem; color:var(--text-muted); margin-bottom:.45rem; }
.fc-flyers .fc-flyers-idf-lbl i{ width:15px; height:15px; }
.fc-flyers .fc-flyers-idf-btns{ display:flex; flex-wrap:wrap; gap:.35rem; }
.fc-flyers .fc-flyers-idf-btn{
  border:1px solid var(--border-default); background:#fff; color:var(--text-body);
  border-radius:20px; padding:.28rem .7rem; font-size:.82rem; font-weight:600; cursor:pointer; transition:all .12s;
}
.fc-flyers .fc-flyers-idf-btn:hover{ border-color:var(--fc-green-300); background:var(--fc-green-50); }
.fc-flyers .fc-flyers-idf-btn.is-on{ background:var(--fc-green-500); border-color:var(--fc-green-500); color:#fff; }

/* =========================================================================
   LANDING PUBLIQUE « flyers » (render_flyers_landing.php) — chrome dédié
   ========================================================================= */
.fc-flyers-landing-body{ margin:0; background:var(--fc-grey-100); color:var(--text-body); font-family:var(--font-body); }
.fc-flyers-landing-header{ background:var(--fc-navy-900); padding:.8rem 1.5rem; display:flex; align-items:center; }
.fc-flyers-landing-header img{ height:38px; width:auto; }
.fc-flyers-landing-main{ max-width:1140px; margin:1.5rem auto; padding:0 1rem; }
.fc-flyers-landing-hero{ text-align:center; margin-bottom:1.4rem; }
.fc-flyers-landing-hero h1{ font-family:var(--font-display); font-weight:800; color:var(--fc-navy-900); font-size:1.7rem; margin:0; }
.fc-flyers-landing-footer{ text-align:center; color:var(--text-muted); font-size:.82rem; padding:1.5rem 1rem 2.2rem; }

/* Bloc coordonnées (étape 3, landing uniquement) */
.fc-flyers .fc-flyers-coord{ margin:1.3rem 0 .4rem; padding:1rem 1.1rem; background:var(--surface-sunken); border:1px solid var(--border-subtle); border-radius:8px; }
.fc-flyers .fc-flyers-coord-title{ font-weight:700; color:var(--text-strong); margin-bottom:.7rem; }
.fc-flyers .fc-flyers-coord-lbl{ display:block; font-weight:600; font-size:.9rem; color:var(--text-strong); margin-bottom:.25rem; }
.fc-flyers .fc-flyers-req{ color:#d33; font-weight:700; }

/* ===== Espace adhérent · Vos factures (render_ecasse_facturation) ===== */
.fc-fact-table tbody tr{cursor:default;}
.fc-fact-table tbody tr:hover{background:transparent;}
.fc-fact-date{font-weight:700;color:var(--text-strong);white-space:nowrap;}
.fc-fact-type{display:inline-flex;align-items:center;gap:6px;color:var(--text-body);}
.fc-fact-type i{width:16px;height:16px;color:var(--fc-navy-700);}
.fc-fact-badge{display:inline-block;font-size:var(--fs-xs);font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap;}
.fc-fact-badge.is-paye{background:var(--fc-green-100);color:#2c6b13;}
.fc-fact-badge.is-nonpaye{background:#fdecec;color:#c0392b;}
.fc-fact-badge.is-envoye{background:#fff3e0;color:#a65a12;}
.fc-fact-badge.is-attente{background:var(--surface-sunken);color:var(--text-muted);}
.fc-fact-badge.is-rejet{background:#fdecec;color:#c0392b;}
.fc-fact-pay{display:inline-flex;align-items:center;gap:5px;margin-left:8px;font-size:var(--fs-xs);font-weight:700;color:var(--brand-primary);white-space:nowrap;}
.fc-fact-pay i{width:14px;height:14px;}
.fc-fact-rejet{display:block;font-size:var(--fs-xs);color:var(--text-muted);margin-top:3px;}
.fc-fact-pdf{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:var(--fc-navy-900);border:1px solid var(--border-subtle);border-radius:6px;padding:5px 11px;background:#fff;transition:background var(--dur-normal),border-color var(--dur-normal);white-space:nowrap;}
.fc-fact-pdf:hover{background:var(--fc-green-50);border-color:var(--brand-primary);color:var(--fc-navy-900);}
.fc-fact-pdf i{width:15px;height:15px;color:var(--fc-orange-500);}
.fc-fact-empty{text-align:center;padding:1.5rem 1rem;}
.fc-fact-empty i{width:42px;height:42px;color:var(--fc-navy-700);opacity:.6;margin-bottom:.5rem;}
.fc-fact-empty p{margin:.2rem 0;}
.fc-fact-help{display:flex;align-items:center;gap:8px;margin-top:1rem;font-size:var(--fs-sm);color:var(--text-muted);}
.fc-fact-help i{width:16px;height:16px;flex:0 0 auto;}
@media (max-width:768px){
  .fc-fact-table td{align-items:center;}
  .fc-fact-pay{margin-left:0;}
}

/* ===== Paiement par carte (render_cbpaiement) · page publique autonome ===== */
.fc-cbpay-body{background:var(--surface-sunken);min-height:100vh;display:flex;flex-direction:column;margin:0;}
.fc-cbpay-header{background:var(--fc-navy-900);padding:14px 22px;}
.fc-cbpay-header img{display:block;}
.fc-cbpay-main{flex:1 0 auto;display:flex;align-items:center;justify-content:center;padding:2.5rem 1rem;}
.fc-cbpay-card{background:#fff;border:1px solid var(--border-subtle);border-radius:12px;box-shadow:0 6px 28px rgba(17,36,55,.08);
  max-width:460px;width:100%;padding:2.2rem 2rem;text-align:center;}
.fc-cbpay-icon{width:64px;height:64px;border-radius:50%;background:var(--fc-green-50);color:var(--brand-primary);
  display:flex;align-items:center;justify-content:center;margin:0 auto 1.1rem;}
.fc-cbpay-icon i{width:32px;height:32px;}
.fc-cbpay-icon.is-ok{background:var(--fc-green-100);color:#2c6b13;}
.fc-cbpay-icon.is-warn{background:#fdecec;color:#c0392b;}
.fc-cbpay-title{font-family:var(--font-display);font-weight:800;font-size:1.4rem;color:var(--fc-navy-900);margin:0 0 .3rem;}
.fc-cbpay-dest{font-weight:700;color:var(--text-strong);margin:0 0 .6rem;}
.fc-cbpay-intro{color:var(--text-body);margin:0 0 1.1rem;line-height:1.5;}
.fc-cbpay-amount{background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:8px;
  padding:.9rem 1rem;margin:0 0 1.2rem;display:flex;flex-direction:column;gap:2px;}
.fc-cbpay-amount-lbl{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:700;}
.fc-cbpay-amount-val{font-family:var(--font-display);font-weight:800;font-size:1.9rem;color:var(--fc-navy-900);line-height:1.1;}
.fc-cbpay-amount-ttc{font-size:.85rem;font-weight:700;color:var(--text-muted);margin-left:6px;vertical-align:super;}
.fc-cbpay-secure{display:flex;align-items:center;justify-content:center;gap:7px;font-size:var(--fs-sm);color:var(--text-muted);margin:0 0 1.3rem;}
.fc-cbpay-secure i{width:16px;height:16px;flex:0 0 auto;color:var(--brand-primary);}
.fc-cbpay-btn{width:100%;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px;}
.fc-cbpay-btn i{width:19px;height:19px;}
.fc-cbpay-back{margin-top:.6rem;display:inline-flex;align-items:center;gap:6px;}
.fc-cbpay-back i{width:15px;height:15px;}
.fc-cbpay-footer{flex-shrink:0;text-align:center;font-size:var(--fs-xs);color:var(--text-muted);padding:1rem;}

/* ===== Espace adhérent · Coordonnées & horaires (render_ecasse_horaires) ===== */
.fc-hor-form .fc-hor-actions,.fc-hor .fc-hor-actions{margin-top:1.1rem;padding-top:1rem;border-top:1px solid var(--border-subtle);}
.fc-hor-subtitle{font-family:var(--font-display);font-weight:700;font-size:1rem;color:var(--fc-navy-900);margin:1.4rem 0 .7rem;padding-bottom:.4rem;border-bottom:1px solid var(--border-subtle);}
.fc-hor-subtitle:first-child{margin-top:0;}
.fc-hor-readonly-note{display:flex;gap:10px;align-items:flex-start;background:var(--fc-green-50);border:1px solid var(--border-subtle);border-radius:8px;padding:.8rem 1rem;margin-bottom:.4rem;font-size:var(--fs-sm);color:var(--text-body);}
.fc-hor-readonly-note i{width:18px;height:18px;flex:0 0 auto;color:var(--brand-primary);margin-top:2px;}
.fc-hor-ro input:disabled{background:var(--surface-sunken);color:var(--text-strong);opacity:1;}
/* Grille horaires (interrupteurs + champs time) */
.fc-hor-copy{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;}
.fc-hor-copy i{width:15px;height:15px;}
.fc-hor-grid{display:grid;grid-template-columns:1fr;gap:10px;}
.fc-hor-day{border:1px solid var(--border-subtle);border-radius:8px;overflow:hidden;}
.fc-hor-dayname{background:var(--surface-sunken);font-family:var(--font-display);font-weight:700;color:var(--fc-navy-900);padding:.5rem .9rem;border-bottom:1px solid var(--border-subtle);}
.fc-hor-periods{display:grid;grid-template-columns:1fr 1fr;}
.fc-hor-period{padding:.75rem .9rem;}
.fc-hor-period+.fc-hor-period{border-left:1px solid var(--border-subtle);}
.fc-hor-period-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:.6rem;}
.fc-hor-period-lbl{font-weight:700;color:var(--text-strong);font-size:var(--fs-sm);}
.fc-hor-switch{display:inline-flex;align-items:center;gap:8px;margin:0;cursor:pointer;min-height:auto;padding-left:2.6em;}
.fc-hor-switch .form-check-input{cursor:pointer;margin-left:-2.6em;float:none;}
.fc-hor-switch .form-check-input:checked{background-color:var(--brand-primary);border-color:var(--brand-primary);}
.fc-hor-open-lbl{font-size:var(--fs-sm);font-weight:600;color:var(--text-muted);}
.fc-hor-period.is-open .fc-hor-open-lbl{color:var(--brand-primary);}
.fc-hor-times{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.fc-hor-times[hidden]{display:none;}
.fc-hor-lbl{font-weight:600;color:var(--text-muted);font-size:var(--fs-sm);}
.fc-hor-time{width:auto;min-width:118px;display:inline-block;}
.fc-hor-period.fc-hor-invalid .fc-hor-time{border-color:#c0392b;}
.fc-hor-err{display:none;font-size:var(--fs-xs);color:#c0392b;margin-top:.4rem;width:100%;}
.fc-hor-feedback{font-size:var(--fs-sm);font-weight:600;margin-left:4px;}
.fc-hor-feedback.is-loading{color:var(--text-muted);}
.fc-hor-feedback.is-ok{color:#2c6b13;}
.fc-hor-feedback.is-info{color:var(--fc-navy-700);}
.fc-hor-feedback.is-err{color:#c0392b;}
@media (max-width:768px){
  .fc-hor-periods{grid-template-columns:1fr;}
  .fc-hor-period+.fc-hor-period{border-left:0;border-top:1px solid var(--border-subtle);}
  .fc-hor-copy{white-space:normal;}
}

/* ===== Espace adhérent · Boîte à idées (render_ecasse_idees) ===== */
.fc-idees-intro{color:var(--text-body);margin-bottom:1.2rem;max-width:60ch;}
.fc-idees-actions{margin-top:1.2rem;padding-top:1rem;border-top:1px solid var(--border-subtle);}
.fc-idees-ok{text-align:center;padding:1.5rem 1rem;}
.fc-idees-ok i{width:48px;height:48px;color:var(--brand-primary);margin-bottom:.6rem;}
.fc-idees-ok h2{font-family:var(--font-display);font-weight:800;font-size:1.3rem;color:var(--fc-navy-900);margin:0 0 .4rem;}
.fc-idees-ok p{color:var(--text-body);margin:0 auto 1rem;max-width:48ch;}

/* ===== Espace adhérent · Garage Premium (render_ecasse_premium) ===== */
.fc-prem-intro{color:var(--text-body);margin-bottom:1.2rem;}
.fc-prem-req{color:#c0392b;font-weight:700;}
.fc-prem-subtitle{font-family:var(--font-display);font-weight:700;font-size:1.05rem;color:var(--fc-navy-900);margin:1.6rem 0 .8rem;padding-bottom:.4rem;border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;}
.fc-prem-subtitle .fc-hor-copy{font-size:var(--fs-xs);font-weight:600;}
/* Hero */
.fc-prem-hero{text-align:center;background:linear-gradient(135deg,var(--fc-navy-900),var(--fc-navy-700));color:#fff;border-radius:12px;padding:2rem 1.2rem;margin-bottom:1.1rem;}
.fc-prem-hero-badge{width:60px;height:60px;border-radius:50%;background:rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;margin:0 auto .8rem;}
.fc-prem-hero-badge i{width:32px;height:32px;color:var(--fc-green-300);}
.fc-prem-hero h2{font-family:var(--font-display);font-weight:800;font-size:1.6rem;margin:0 0 .4rem;color:#fff;}
.fc-prem-hero h2 strong{color:var(--fc-green-300);}
.fc-prem-hero p{margin:0;color:rgba(255,255,255,.85);}
/* Avantages */
.fc-prem-adv{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:1.1rem;}
.fc-prem-adv-card{background:#fff;border:1px solid var(--border-subtle);border-radius:10px;padding:1.1rem;}
.fc-prem-adv-card h3{font-family:var(--font-display);font-weight:700;font-size:1rem;color:var(--fc-navy-900);display:flex;align-items:center;gap:8px;margin:0 0 .7rem;}
.fc-prem-adv-card h3 i{width:20px;height:20px;color:var(--brand-primary);}
.fc-prem-adv-card ul{margin:0;padding-left:1.1rem;color:var(--text-body);font-size:var(--fs-sm);}
.fc-prem-adv-card li{margin-bottom:.3rem;}
/* CTA état */
.fc-prem-cta p{color:var(--text-body);margin:0 0 1rem;}
.fc-prem-help{font-size:var(--fs-sm);color:var(--text-muted);margin-top:1rem!important;}
.fc-ecasse-alert.is-ok{background:var(--fc-green-50);}
.fc-ecasse-alert.is-ok i{color:#2c6b13;}
/* Services (form) */
.fc-prem-services{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.fc-prem-service{background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:8px;padding:.9rem;display:flex;flex-direction:column;gap:4px;}
.fc-prem-service i{width:22px;height:22px;color:var(--brand-primary);}
.fc-prem-service strong{color:var(--fc-navy-900);}
.fc-prem-service span{font-size:var(--fs-sm);color:var(--text-body);}
/* Facturation toggle */
.fc-prem-billing-toggle{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:1.1rem 0 .3rem;}
.fc-prem-villewrap select{display:block;width:100%;padding:.375rem .75rem;border:1px solid var(--bs-border-color,#ced4da);border-radius:var(--bs-border-radius,.375rem);font-size:1rem;color:var(--text-body);background:#fff;}
/* Horaires (selects natifs, masquage par visibility comme le legacy) */
.fc-prem-hor .spanhoraire{visibility:hidden;}
.fc-prem-hor .fc-hor-sel{min-width:60px;}
.fc-prem-actions{margin-top:1.4rem;padding-top:1.1rem;border-top:1px solid var(--border-subtle);text-align:center;}
/* Souscription OK */
.fc-prem-ok{text-align:center;padding:1.5rem 1rem;}
.fc-prem-ok i{width:48px;height:48px;color:var(--brand-primary);margin-bottom:.6rem;}
.fc-prem-ok h2{font-family:var(--font-display);font-weight:800;font-size:1.3rem;color:var(--fc-navy-900);margin:0 0 .4rem;}
.fc-prem-ok p{color:var(--text-body);margin:0 auto 1rem;max-width:60ch;}
.fc-prem-dl{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin:1rem 0;}
.fc-prem-dl-item{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--fc-navy-900);border:1px solid var(--border-subtle);border-radius:8px;padding:.7rem 1.1rem;background:#fff;}
.fc-prem-dl-item:hover{background:var(--fc-green-50);border-color:var(--brand-primary);color:var(--fc-navy-900);}
.fc-prem-dl-item i{width:20px;height:20px;color:var(--fc-orange-500);}
.fc-prem-note{font-size:var(--fs-sm);color:var(--text-muted);}
@media (max-width:768px){
  .fc-prem-adv,.fc-prem-services{grid-template-columns:1fr;}
}

/* ===== Espace adhérent · Annonces de pièces (render_ecasse_catalogue) ===== */
.fc-cat-intro{color:var(--text-body);margin-bottom:1.2rem;max-width:75ch;}
.fc-cat-subtitle{font-family:var(--font-display);font-weight:700;font-size:1rem;color:var(--fc-navy-900);margin:1.5rem 0 .8rem;padding-bottom:.4rem;border-bottom:1px solid var(--border-subtle);}
.fc-cat-type{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:.4rem;}
.fc-cat-misecircu{display:flex;align-items:center;gap:8px;}
.fc-cat-misecircu input{max-width:90px;}
.fc-cat-misecircu span{font-weight:700;color:var(--text-muted);}
.fc-cat-photos{border:1px dashed var(--border-subtle);border-radius:8px;padding:.6rem;min-height:60px;background:var(--surface-sunken);}
.fc-cat-photos iframe{min-height:120px;}
.fc-cat-photos-hint{margin:.4rem .2rem;font-size:var(--fs-sm);}
.fc-cat-actions{margin-top:1.3rem;padding-top:1.1rem;border-top:1px solid var(--border-subtle);}
.fc-cat-result{display:flex;align-items:center;gap:10px;padding:.8rem 1rem;border-radius:8px;margin-bottom:1rem;font-weight:600;}
.fc-cat-result i{width:20px;height:20px;flex:0 0 auto;}
.fc-cat-result.is-ok{background:var(--fc-green-100);color:#2c6b13;}
.fc-cat-result.is-warn{background:#fff3e0;color:#a65a12;}
.fc-cat-result.is-err{background:#fdecec;color:#c0392b;}
.fc-cat-empty{color:var(--text-muted);text-align:center;padding:1rem;}
.fc-cat-table tbody tr{cursor:default;}
.fc-cat-table tbody tr:hover{background:var(--fc-green-50);}
.fc-cat-row-credit{background:#fff8f0;}
.fc-cat-creditwarn{display:inline-flex;align-items:center;gap:4px;margin-left:8px;font-size:var(--fs-xs);font-weight:700;color:#c0392b;}
.fc-cat-creditwarn i{width:13px;height:13px;}
.fc-cat-autresinfos{display:block;font-size:var(--fs-xs);color:var(--text-muted);}
.fc-cat-rem{display:block;font-size:var(--fs-xs);color:var(--text-muted);}
.fc-cat-gar{display:block;font-size:var(--fs-xs);color:var(--text-muted);font-style:italic;}
.fc-cat-del{color:#c0392b;}
.fc-cat-del i{width:17px;height:17px;}
@media (max-width:768px){ .fc-cat-photos iframe{min-height:160px;} }

/* Menu de suggestions devbridge (jquery.autocomplete) — utilisé par catalogue.php.
   Le conteneur est ajouté au <body> avec un style inline (position/largeur) ; on
   lui donne cadre + ombre + scroll pour qu'il ne déborde plus. */
.autocomplete-suggestions{
  border:1px solid var(--border-subtle);background:#fff;border-radius:8px;
  box-shadow:0 8px 24px rgba(17,36,55,.14);overflow-x:hidden;overflow-y:auto;
  max-height:260px;z-index:2000;
}
.autocomplete-suggestion{
  padding:8px 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  cursor:pointer;font-size:var(--fs-sm);color:var(--text-body);border-bottom:1px solid var(--border-subtle);
}
.autocomplete-suggestion:last-child{border-bottom:0;}
.autocomplete-suggestion.autocomplete-selected{background:var(--fc-green-50);}
.autocomplete-suggestions strong{font-weight:800;color:var(--brand-primary);}
.autocomplete-no-suggestion{padding:8px 12px;color:var(--text-muted);font-size:var(--fs-sm);}

/* ===================================================================
   Page PNEUS d'occasion (render_pneu.php)
   =================================================================== */
.fc-pneu-steps .fc-pneu-step-num{
  flex:0 0 auto;width:32px;height:32px;border-radius:50%;
  background:var(--bs-primary);color:#fff;font-family:var(--font-display);
  font-weight:800;display:flex;align-items:center;justify-content:center;
}
.fc-pneu-row{
  border:1px solid var(--border,#e1e6ec);border-radius:8px;
  padding:1rem;margin-bottom:1rem;background:#fff;
}
.fc-pneu-row:last-child{margin-bottom:0;}
.fc-pneu-row .form-label{font-size:var(--fs-sm);font-weight:600;margin-bottom:.25rem;}
.fc-pneu-del{
  display:inline-flex;align-items:center;gap:.25rem;
  color:#c0392b;text-decoration:none;font-size:var(--fs-sm);font-weight:600;
}
.fc-pneu-del:hover{color:#a5281c;text-decoration:underline;}
.fc-pneu-prose h3{font-size:var(--fs-lg);}
.fc-pneu-prose h4{font-size:var(--fs-md);}

/* ===== Espace adhérent · Gérer mes prestations (render_ecasse_prestation) ===== */
.fc-presta-flash{display:flex;align-items:center;gap:.5rem;}
.fc-presta-flash i{width:20px;height:20px;}
.fc-presta-tabs{border-bottom:2px solid var(--border-subtle);margin-bottom:0;gap:.25rem;}
.fc-presta-tabs .nav-link{display:inline-flex;align-items:center;gap:.4rem;border:none;border-bottom:3px solid transparent;color:var(--text-body);font-weight:600;padding:.6rem 1rem;background:none;}
.fc-presta-tabs .nav-link i{width:18px;height:18px;}
.fc-presta-tabs .nav-link:hover{color:var(--fc-green-600);border-bottom-color:var(--fc-green-200);}
.fc-presta-tabs .nav-link.active{color:var(--fc-green-700);border-bottom-color:var(--fc-green-500);background:none;}
.fc-presta-tabcontent{margin-top:1.1rem;}
.fc-presta-intro{font-size:var(--fs-sm);}
.fc-presta-count{margin-top:.5rem;}
.fc-presta .accordion-item{border:1px solid var(--border-subtle);}
.fc-presta .accordion-button{font-family:var(--font-display);font-weight:700;color:var(--fc-navy-900);background:var(--fc-grey-50);display:flex;align-items:center;gap:.6rem;}
.fc-presta .accordion-button:not(.collapsed){color:#fff;background:var(--fc-navy-900);box-shadow:none;}
.fc-presta .accordion-button:not(.collapsed)::after{filter:brightness(0) invert(1);}
.fc-presta .accordion-button:focus{box-shadow:none;border-color:var(--border-subtle);}
.fc-presta-catname{flex:1 1 auto;text-align:left;}
.fc-presta-catbadge{flex:none;margin-left:.6rem;background:var(--fc-green-500);color:#fff;font-size:.72rem;padding:.22em .55em;border-radius:999px;white-space:nowrap;}
.fc-presta .accordion-button:not(.collapsed) .fc-presta-catbadge{background:var(--fc-green-300);color:var(--fc-navy-900);}
.fc-presta-table{margin-bottom:0;}
.fc-presta-table thead th{font-size:.78rem;text-transform:uppercase;letter-spacing:.02em;color:var(--text-muted);border-bottom:2px solid var(--border-subtle);white-space:nowrap;}
.fc-presta-table td{vertical-align:middle;}
.fc-presta-lib{font-weight:600;color:var(--fc-navy-900);}
.fc-presta-row.is-active{background:var(--fc-green-50);}
.fc-presta-row .fc-presta-field:disabled{background:var(--fc-grey-100);opacity:.7;}
.fc-presta-table .form-check-input{width:1.2em;height:1.2em;cursor:pointer;}
.fc-presta-table .form-check-input:checked{background-color:var(--fc-green-500);border-color:var(--fc-green-500);}
.fc-presta-actions{margin-top:1.2rem;padding-top:1rem;border-top:1px solid var(--border-subtle);}
.fc-presta-premium-alert{max-width:640px;margin:1rem auto;}
.fc-presta-photos{margin-top:.4rem;}
.fc-presta-photo{border:1px solid var(--border-subtle);border-radius:var(--radius);overflow:hidden;background:#fff;}
.fc-presta-photo-thumb{display:block;}
.fc-presta-photo-thumb img{width:100%;height:120px;object-fit:cover;display:block;}
.fc-presta-photo-del{display:flex;align-items:center;justify-content:center;gap:.35rem;padding:.4rem;font-size:var(--fs-sm);font-weight:600;color:#c0392b;text-decoration:none;border-top:1px solid var(--border-subtle);}
.fc-presta-photo-del i{width:16px;height:16px;}
.fc-presta-photo-del:hover{background:#fdecea;color:#a5281c;}
.fc-presta-upload .input-group-text{background:var(--fc-grey-50);font-size:var(--fs-sm);}

/* ===== Espace adhérent · Factures GEODIS (render_ecasse_geodis_facturation) ===== */
.fc-geofact-intro{font-size:var(--fs-sm);color:var(--text-body);max-width:80ch;}
.fc-geofact-toolbar{display:flex;align-items:center;gap:.6rem;margin:.9rem 0 1rem;flex-wrap:wrap;}
.fc-geofact-select{max-width:240px;}
.fc-geofact-table thead th{font-size:.76rem;text-transform:uppercase;letter-spacing:.02em;color:var(--text-muted);border-bottom:2px solid var(--border-subtle);white-space:nowrap;}
.fc-geofact-table td{vertical-align:top;}
.fc-geofact-nowrap{white-space:nowrap;}
.fc-geofact-dest{display:flex;flex-direction:column;line-height:1.35;min-width:190px;}
.fc-geofact-dest strong{color:var(--fc-navy-900);}
.fc-geofact-dest span{font-size:var(--fs-sm);color:var(--text-body);}
.fc-geofact-contact{color:var(--text-muted)!important;font-size:.8rem!important;}
.fc-geofact-taxe{font-weight:700;}
.fc-geofact-taxe i{width:14px;height:14px;vertical-align:-1px;}
.fc-geofact-taxe.is-over{color:var(--fc-red-500);}
.fc-geofact-taxe.is-under{color:var(--fc-green-600);}
.fc-geofact-table tfoot .fc-geofact-total th{border-top:2px solid var(--border-subtle);color:var(--fc-navy-900);background:var(--fc-grey-50);}
.fc-geofact-empty{text-align:center;padding:2rem 1rem;color:var(--text-muted);}
.fc-geofact-empty i{width:44px;height:44px;color:var(--fc-grey-400);margin-bottom:.5rem;}
.fc-geofact-empty-t{font-weight:600;color:var(--fc-navy-900);margin:0 0 .3rem;}
.fc-geofact-empty-d{font-size:var(--fs-sm);margin:0 auto;max-width:52ch;}

/* ============ Tableau des versions (page modèle) ============ */
.fc-versions{border:1px solid var(--fc-grey-200);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 1px 2px rgba(17,36,55,.04);}
.fc-versions table{margin:0;}
.fc-versions thead th{background:var(--fc-navy-900);color:#fff;font-family:var(--font-display);font-weight:700;font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase;border:0;padding:.75rem 1rem;white-space:nowrap;}
.fc-versions tbody td{padding:.85rem 1rem;border-top:1px solid var(--fc-grey-100);vertical-align:middle;color:var(--text-body);}
.fc-versions tbody tr{cursor:pointer;transition:background-color .12s ease;}
.fc-versions tbody tr:nth-child(even){background:var(--fc-grey-50);}
.fc-versions tbody tr:hover{background:var(--fc-green-50);}
.fc-versions tbody tr:hover td{color:var(--fc-navy-900);}
/* 1re colonne = nom de version, mis en avant + chevron d'appel à l'action au survol */
.fc-versions td.fc-versions-name{font-family:var(--font-display);font-weight:700;color:var(--fc-navy-900);}
.fc-versions td.fc-versions-name .fc-versions-go{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-right:.55rem;border-radius:50%;background:var(--fc-green-100);color:var(--fc-green-700);vertical-align:middle;transition:background-color .12s ease,color .12s ease,transform .12s ease;}
.fc-versions tbody tr:hover .fc-versions-go{background:var(--fc-green-500);color:#fff;transform:translateX(2px);}
.fc-versions td.fc-versions-name .fc-versions-go i{width:13px;height:13px;}
/* colonnes de dates : plus discrètes */
.fc-versions td.fc-versions-date{font-size:var(--fs-sm);color:var(--text-muted);white-space:nowrap;}
.fc-versions .fc-versions-prod{display:inline-flex;align-items:center;gap:.35rem;font-weight:600;color:var(--fc-green-700);}
.fc-versions .fc-versions-prod::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--fc-green-500);display:inline-block;}
/* Mobile : le tableau 3 colonnes débordait (th/dates en nowrap + conteneur clippé).
   On empile chaque ligne : la VERSION (info importante) en vedette, les dates dessous
   en petit avec leur libellé. Desktop inchangé. */
@media(max-width:575.98px){
  .fc-versions thead{display:none;}
  .fc-versions table,.fc-versions tbody,.fc-versions tr,.fc-versions td{display:block;width:auto;}
  .fc-versions tbody tr{padding:.7rem 1rem;}
  .fc-versions tbody td{border:0;padding:.1rem 0;}
  .fc-versions td.fc-versions-name{font-size:var(--fs-md);margin-bottom:.3rem;}
  .fc-versions td.fc-versions-date{font-size:var(--fs-xs);white-space:normal;}
  .fc-versions td.fc-versions-date::before{content:attr(data-label) " : ";color:var(--fc-grey-400);font-weight:600;}
}

/* Utilitaire absent de Bootstrap 5 : autorise un flex item à rétrécir sous la taille de son contenu.
   Indispensable pour que `text-truncate` fonctionne dans une ligne flex (sinon le contenu long
   pousse les éléments voisins hors du conteneur, ex. la loupe des « véhicules précédents » de
   l'espace client). Réparé pour les ~7 usages de `min-w-0` de l'espace connecté. */
.min-w-0{min-width:0!important;}

/* ===========================================================================
   Garde-fou orientation : bloque l'affichage en PAYSAGE sur téléphone/tablette
   (markup dans front/partials/rotate_guard.php, injecté après <body> par
   head.php + ecasse_head.php). Cible uniquement les appareils tactiles via
   (pointer:coarse) + (hover:none) -> un ordinateur (même écran large paysage) ou
   un portable tactile piloté à la souris/pavé n'est JAMAIS bloqué. On ne peut pas
   forcer la rotation physique en web classique : ce voile masque le contenu et
   invite à repasser en portrait.
=========================================================================== */
#fc-rotate-guard{display:none;}
@media (orientation:landscape) and (pointer:coarse) and (hover:none){
  html body{overflow:hidden;}
  #fc-rotate-guard{position:fixed;inset:0;z-index:2147483000;display:flex;align-items:center;justify-content:center;
    background:var(--fc-navy-900,#112437);color:#fff;padding:24px;text-align:center;
    font-family:var(--font-body,'Open Sans',Arial,sans-serif);}
  .fc-rotate-guard-inner{max-width:440px;}
  #fc-rotate-guard svg{color:var(--brand-warning,#f5841d);margin-bottom:14px;}
  .fc-rotate-guard-t{font-family:var(--font-display,'Archivo',Arial,sans-serif);font-weight:800;font-size:1.4rem;margin:0 0 8px;}
  .fc-rotate-guard-d{font-size:.98rem;line-height:1.5;margin:0;color:rgba(255,255,255,.85);}
}
