/* Bibliothèque de modèles de courriers — v4.1.0 */
.bmc2-root {
  --bmc2-text:#172033;
  --bmc2-muted:#5c677a;
  --bmc2-border:#d4dce8;
  --bmc2-border-strong:#aebbd0;
  --bmc2-bg:#f4f7fb;
  --bmc2-surface:#ffffff;
  --bmc2-blue:#123f68;
  --bmc2-blue-dark:#08233e;
  --bmc2-blue-soft:#eaf2fb;
  --bmc2-green:#13795b;
  --bmc2-rose-dark:#881337;
  --bmc2-rose-soft:#fff1f4;
  color:var(--bmc2-text);
  font-family:inherit;
  max-width:1180px;
  margin:0 auto;
  padding:18px;
}
.bmc2-root *, .bmc2-root *::before, .bmc2-root *::after { box-sizing:border-box; }
.bmc2-root h1, .bmc2-root h2, .bmc2-root h3 { color:var(--bmc2-text); line-height:1.2; margin:0 0 .7rem; }
.bmc2-root p { line-height:1.65; margin:0 0 1rem; }
.bmc2-hero {
  background:linear-gradient(135deg,#0d2e4d 0%,#123f68 55%,#1b6098 100%);
  color:#fff;
  border-radius:24px;
  padding:clamp(22px,3vw,36px);
  box-shadow:0 18px 42px rgba(18,63,104,.22);
  margin:0 0 20px;
}
.bmc2-hero h1 { color:#fff; font-size:clamp(1.9rem,3.2vw,3rem); max-width:none; }
.bmc2-hero p { color:#fff; max-width:none; width:100%; font-size:1.05rem; line-height:1.55; }
.bmc2-version-badge { display:inline-flex; align-items:center; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.35); color:#fff; border-radius:999px; padding:7px 12px; font-size:.86rem; font-weight:800; margin-bottom:14px; }
.bmc2-notices { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:0 0 24px; }
.bmc2-notice, .bmc2-search-box, .bmc2-card, .bmc2-generator, .bmc2-form-section, .bmc2-generated, .bmc2-favorites-zone {
  background:var(--bmc2-surface);
  border:1px solid var(--bmc2-border);
  border-radius:20px;
  box-shadow:0 10px 28px rgba(16,24,40,.07);
}
.bmc2-notice { padding:20px; border-left:7px solid var(--bmc2-blue); }
.bmc2-notice--privacy { border-left-color:var(--bmc2-green); background:linear-gradient(180deg,#fff,#f1fbf7); }
.bmc2-notice--legal { border-left-color:#7c3aed; background:linear-gradient(180deg,#fff,#f5f3ff); }
.bmc2-notice h2 { font-size:1.16rem; }
.bmc2-search-box { padding:20px; margin:0 0 28px; }
.bmc2-search-head { border-bottom:1px solid var(--bmc2-border); margin-bottom:16px; padding-bottom:10px; }
.bmc2-search-grid { display:grid; grid-template-columns:2fr 1fr; gap:16px; }
.bmc2-field { display:flex; flex-direction:column; gap:7px; min-width:0; font-weight:700; color:var(--bmc2-text); }
.bmc2-field span { font-size:.94rem; }
.bmc2-root input, .bmc2-root select, .bmc2-root textarea {
  width:100%; min-height:44px; border:1px solid var(--bmc2-border-strong); border-radius:12px; background:#fff; color:var(--bmc2-text); font:inherit; padding:10px 12px;
}
.bmc2-root textarea { resize:vertical; min-height:92px; }
.bmc2-root input:focus, .bmc2-root select:focus, .bmc2-root textarea:focus, .bmc2-button:focus, .bmc2-letter-paper:focus { outline:3px solid rgba(31,111,235,.22); outline-offset:2px; }
.bmc2-section { margin:28px 0; }
.bmc2-section-title { margin-bottom:14px; }
.bmc2-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.bmc2-card { padding:20px; display:flex; flex-direction:column; gap:12px; border-top:5px solid var(--bmc2-blue); }
.bmc2-card[hidden] { display:none!important; }
.bmc2-card h3 { font-size:1.18rem; }
.bmc2-card-tags { display:flex; flex-wrap:wrap; gap:8px; }
.bmc2-card-tags span { background:var(--bmc2-blue-soft); color:var(--bmc2-blue-dark); border:1px solid #c7dbef; padding:5px 9px; border-radius:999px; font-size:.82rem; font-weight:800; }
.bmc2-card-meta { display:grid; gap:8px; margin:0; padding:12px; background:#f7f9fc; border:1px solid var(--bmc2-border); border-radius:14px; }
.bmc2-card-meta div { display:flex; justify-content:space-between; gap:12px; }
.bmc2-card-meta dt { font-weight:800; color:var(--bmc2-muted); }
.bmc2-card-meta dd { margin:0; text-align:right; }
.bmc2-card-actions, .bmc2-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:auto; }
.bmc2-button { appearance:none; border:1px solid transparent; border-radius:12px; cursor:pointer; font:inherit; font-weight:800; min-height:42px; padding:10px 15px; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; }
.bmc2-button--primary { background:var(--bmc2-blue); color:#fff; }
.bmc2-button--primary:hover { background:var(--bmc2-blue-dark); color:#fff; }
.bmc2-button--secondary { background:#fff; color:var(--bmc2-blue); border-color:var(--bmc2-border-strong); }
.bmc2-button--ghost { background:transparent; color:var(--bmc2-muted); border-color:var(--bmc2-border); }
.bmc2-generator-panel { margin:28px 0; }
.bmc2-generator { padding:22px; border-top:6px solid var(--bmc2-blue); }
.bmc2-generator-header { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; padding-bottom:16px; margin-bottom:18px; border-bottom:1px solid var(--bmc2-border); }
.bmc2-close { border:0; background:#eef3f9; color:var(--bmc2-blue-dark); width:38px; height:38px; border-radius:999px; cursor:pointer; font-size:24px; line-height:1; }
.bmc2-confidentiality { background:#edf9f3; color:#0e6248; border:1px solid #bde8d2; border-radius:16px; padding:14px 16px; font-weight:700; }
.bmc2-form { display:grid; gap:18px; }
.bmc2-form-section { padding:18px; box-shadow:none; }
.bmc2-form-section h3 { display:flex; align-items:center; gap:10px; font-size:1.1rem; border-bottom:1px solid var(--bmc2-border); padding-bottom:10px; margin-bottom:14px; }
.bmc2-form-section h3::before { content:''; width:10px; height:28px; background:var(--bmc2-blue); border-radius:999px; display:inline-block; }
.bmc2-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 16px; }
.bmc2-form-grid .bmc2-field--full { grid-column:1/-1; }
.bmc2-generated { padding:22px; margin-top:22px; border-top:6px solid var(--bmc2-green); }
.bmc2-generated-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; margin-bottom:16px; }
.bmc2-generated-head p { color:var(--bmc2-muted); }
.bmc2-preview-wrap { background:#eef2f7; border:1px solid var(--bmc2-border-strong); border-radius:20px; padding:22px; overflow:auto; }
.bmc2-letter-paper {
  background:#fff;
  color:#111;
  font-family:Arial, Helvetica, sans-serif;
  font-size:12pt;
  line-height:1.5;
  width:210mm;
  min-height:297mm;
  margin:0 auto;
  padding:21mm 22mm 18mm 22mm;
  box-shadow:0 18px 45px rgba(0,0,0,.18);
  border:1px solid #e4e7ec;
}
.bmc2-letter-addresses { display:grid; grid-template-columns:1fr 1fr; gap:20mm; margin-bottom:13mm; }
.bmc2-letter-block { border:1px solid #d6dbe5; background:#fbfcfe; border-radius:10px; padding:7mm; min-height:32mm; }
.bmc2-letter-label { display:inline-flex; color:#fff; background:var(--bmc2-blue); border-radius:999px; padding:2mm 4mm; font-size:9pt; font-weight:800; margin-bottom:4mm; }
.bmc2-letter-recipient { margin-top:22mm; }
.bmc2-letter-block address { font-style:normal; white-space:pre-line; margin:0; }
.bmc2-letter-date { text-align:right; margin:0 0 11mm; }
.bmc2-letter-object { border-left:4px solid var(--bmc2-blue); background:#f4f7fb; padding:4mm 5mm; margin:0 0 10mm; font-weight:700; }
.bmc2-letter-body p { margin:0 0 5.2mm; text-align:justify; }
.bmc2-letter-salutation { text-align:left!important; }
.bmc2-letter-closing { margin-top:9mm!important; }
.bmc2-letter-sign-zone { margin-top:12mm; margin-left:auto; width:70mm; text-align:center; }
.bmc2-manual-space { min-height:18mm; border-bottom:1px solid transparent; color:transparent; font-size:0; }
.bmc2-sign-name { font-weight:800; }
.bmc2-letter-attachments { margin-top:14mm; padding-top:5mm; border-top:1px solid #c7c7c7; font-size:10.5pt; }
.bmc2-letter-attachments ul { margin:3mm 0 0 6mm; padding:0; }
.bmc2-letter-attachments li { margin:0 0 2mm; }
.bmc2-status { font-weight:800; color:var(--bmc2-green); margin-top:10px; }
.bmc2-empty { background:#fff; border:1px dashed var(--bmc2-border-strong); border-radius:16px; padding:18px; color:var(--bmc2-muted); }

/* v2.1.0 — cadres renforcés et formulaires pleine largeur */
.bmc2-notice,
.bmc2-search-box,
.bmc2-card,
.bmc2-generator,
.bmc2-form-section,
.bmc2-generated,
.bmc2-favorites-zone {
  border:2px solid var(--bmc2-border-strong);
  box-shadow:0 14px 34px rgba(16,24,40,.10);
}
.bmc2-form-section {
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);
  border-left:8px solid var(--bmc2-blue);
  padding:22px;
  width:100%;
}
.bmc2-form-section h3 {
  width:100%;
  display:flex;
  border-bottom:2px solid var(--bmc2-border-strong);
  padding-bottom:12px;
  margin-bottom:18px;
}
.bmc2-form-grid {
  width:100%;
  align-items:stretch;
}
.bmc2-field {
  background:#fff;
  border:1px solid #d5deeb;
  border-radius:14px;
  padding:12px;
  min-height:100%;
}
.bmc2-field span {
  color:var(--bmc2-blue-dark);
  font-weight:900;
}
.bmc2-card {
  border:2px solid var(--bmc2-border-strong);
  border-top:8px solid var(--bmc2-blue);
  background:linear-gradient(180deg,#fff,#f8fbff);
}
.bmc2-preview-wrap {
  border:2px solid #9fb2ca;
  background:linear-gradient(135deg,#e7edf6,#f6f8fb);
}
.bmc2-letter-block {
  border:2px solid #aab8ca;
  background:#f8fbff;
  box-shadow:inset 0 0 0 1px #ffffff;
  width:100%;
}
.bmc2-letter-label {
  background:#0d2e4d;
  letter-spacing:.02em;
}
.bmc2-letter-object {
  border-left:6px solid var(--bmc2-blue);
  border:1px solid #c6d4e6;
  background:#eef5fc;
}
.bmc2-manual-space {
  min-height:18mm;
  border-bottom:1px solid transparent;
  color:transparent;
  font-size:0;
}

@media (max-width:980px){ .bmc2-grid{grid-template-columns:repeat(2,minmax(0,1fr));} .bmc2-search-grid{grid-template-columns:1fr;} .bmc2-notices{grid-template-columns:1fr;} .bmc2-letter-paper{transform-origin:top left; width:210mm;} }
@media (max-width:700px){ .bmc2-root{padding:12px;} .bmc2-grid{grid-template-columns:1fr;} .bmc2-form-grid{grid-template-columns:1fr;} .bmc2-preview-wrap{padding:12px;} .bmc2-letter-paper{width:100%; min-height:0; padding:18px; font-size:11pt;} .bmc2-letter-addresses{grid-template-columns:1fr; gap:12px;} .bmc2-letter-recipient{margin-top:0;} }
@media print {
  body * { visibility:hidden!important; }
  .bmc2-letter-paper, .bmc2-letter-paper * { visibility:visible!important; }
  .bmc2-letter-paper { position:absolute; left:0; top:0; width:auto!important; min-height:0!important; margin:0!important; padding:0!important; box-shadow:none!important; border:0!important; }
  .bmc2-letter-label { display:none!important; }
  .bmc2-letter-block { border:0!important; background:transparent!important; border-radius:0!important; padding:0!important; }
  .bmc2-letter-addresses { display:grid; grid-template-columns:68mm 78mm; column-gap:18mm; margin:0 0 14mm; }
  .bmc2-letter-recipient { margin-top:22mm; }
  .bmc2-letter-object { border:0!important; background:transparent!important; padding:0!important; }
}


/* v2.2.0 — lisibilité renforcée et encadrés plus marqués */
.bmc2-form-section,
.bmc2-search-box,
.bmc2-card,
.bmc2-generated {
  border-color:#8fa7c3;
}
.bmc2-form-section h3,
.bmc2-search-head h2,
.bmc2-section-title h2 {
  color:#0d2e4d;
}
.bmc2-letter-body p {
  margin-bottom:5.8mm;
}

/* v2.3.0 — parcours en étapes, aides de saisie et cadres plus visibles */
.bmc2-steps {
  counter-reset:bmc2step;
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
  list-style:none;
  margin:0 0 20px;
  padding:0;
}
.bmc2-steps li {
  background:#fff;
  border:2px solid #9fb2ca;
  border-radius:16px;
  color:#0d2e4d;
  font-weight:900;
  padding:12px 10px;
  text-align:center;
  box-shadow:0 8px 18px rgba(16,24,40,.08);
}
.bmc2-form-section {
  border:2px solid #7f99b8 !important;
  border-left:10px solid var(--bmc2-blue) !important;
  border-radius:22px;
  background:linear-gradient(180deg,#ffffff 0%,#f3f8ff 100%) !important;
  box-shadow:0 16px 36px rgba(13,46,77,.12) !important;
  padding:0 !important;
  overflow:hidden;
}
.bmc2-step-header {
  display:flex;
  align-items:flex-start;
  gap:14px;
  width:100%;
  padding:18px 22px;
  background:linear-gradient(90deg,#0d2e4d 0%,#155b9f 100%);
  color:#fff;
  border-bottom:3px solid #7f99b8;
}
.bmc2-step-header h3 {
  color:#fff !important;
  border:0 !important;
  padding:0 !important;
  margin:0 0 4px !important;
  font-size:1.18rem;
}
.bmc2-step-header h3::before { display:none !important; }
.bmc2-step-header p {
  margin:0;
  color:#e9f2ff;
  font-weight:600;
}
.bmc2-step-number {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:34px;
  height:34px;
  border-radius:999px;
  background:#fff;
  color:#0d2e4d;
  font-weight:1000;
  box-shadow:0 4px 14px rgba(0,0,0,.18);
}
.bmc2-form-grid {
  padding:22px;
  gap:18px 18px !important;
}
.bmc2-field {
  border:2px solid #c3d1e3 !important;
  background:#ffffff !important;
  box-shadow:0 6px 16px rgba(16,24,40,.06);
}
.bmc2-field:hover { border-color:#8fa7c3 !important; }
.bmc2-help {
  color:#5d6f85;
  font-size:.86rem;
  line-height:1.35;
  font-weight:600;
  margin-top:-2px;
}
.bmc2-submit {
  justify-self:start;
  margin-top:6px;
  font-size:1.03rem;
  padding:13px 18px;
  box-shadow:0 10px 22px rgba(31,111,235,.22);
}
.bmc2-generated {
  border:2px solid #6da88b !important;
  border-top:10px solid var(--bmc2-green) !important;
  background:linear-gradient(180deg,#ffffff 0%,#f4fbf8 100%);
}
.bmc2-generated-head > div {
  display:grid;
  grid-template-columns:auto 1fr;
  gap:8px 12px;
  align-items:center;
}
.bmc2-generated-head .bmc2-step-number { grid-row:1 / span 2; background:#0e6248; color:#fff; }
.bmc2-generated-head h2 { margin:0; color:#0d2e4d; }
.bmc2-generated-head p { grid-column:2; margin:0; }
.bmc2-preview-wrap {
  border:3px solid #8099b9 !important;
  padding:28px !important;
}
.bmc2-letter-paper {
  border:2px solid #d4dce8;
}
.bmc2-letter-block {
  border:2px solid #8fa7c3 !important;
  border-radius:14px !important;
}
.bmc2-letter-label {
  box-shadow:0 4px 10px rgba(13,46,77,.18);
}
.bmc2-letter-object {
  border:2px solid #9fb2ca !important;
  border-left:8px solid var(--bmc2-blue) !important;
  border-radius:10px;
}
@media (max-width:900px){
  .bmc2-steps { grid-template-columns:1fr 1fr; }
}
@media (max-width:560px){
  .bmc2-steps { grid-template-columns:1fr; }
  .bmc2-step-header { padding:16px; }
  .bmc2-form-grid { padding:16px; }
}
@media print {
  .bmc2-step-number,
  .bmc2-step-header,
  .bmc2-help,
  .bmc2-steps { display:none!important; }
}

/* historique : validation, choix de version, impression A4 renforcée, bouton recommencer et exemples */
.bmc2-card-examples {
  margin:14px 0 16px;
  padding:13px 14px;
  border:2px solid #c9d8ea;
  border-left:7px solid #155b9f;
  border-radius:14px;
  background:linear-gradient(180deg,#ffffff 0%,#eef6ff 100%);
  color:#17324f;
}
.bmc2-card-examples strong {
  display:block;
  margin-bottom:6px;
  color:#0d2e4d;
  font-weight:1000;
}
.bmc2-card-examples ul {
  margin:0;
  padding-left:18px;
}
.bmc2-card-examples li {
  margin:4px 0;
  line-height:1.4;
}
.bmc2-validation {
  border:2px solid #fb7185;
  border-left:10px solid #e11d48;
  background:#fff1f4;
  color:#881337;
  border-radius:20px;
  padding:18px 20px;
  box-shadow:0 12px 28px rgba(225,29,72,.12);
}
.bmc2-validation h3 {
  color:#881337;
  margin:0 0 8px;
}
.bmc2-validation p { margin-bottom:10px; }
.bmc2-validation ul {
  margin:0 0 14px;
  padding-left:20px;
  columns:2;
}
.bmc2-validation li { margin:4px 0; font-weight:700; }
.bmc2-validation-actions,
.bmc2-form-actions {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
}
.bmc2-form-actions {
  padding:4px 0 0;
}
.bmc2-reset {
  background:#fff !important;
  border-color:#9fb2ca !important;
  color:#0d2e4d !important;
}
.bmc2-reset:hover { background:#eef5fc !important; }
.bmc2-letter-paper {
  max-width:210mm;
}
.bmc2-letter-date {
  padding-right:2mm;
}
.bmc2-letter-sign-zone {
  min-height:35mm;
}
@media print {
  @page { size:A4; margin:20mm 22mm 18mm 22mm; }
  html, body { background:#fff !important; margin:0 !important; padding:0 !important; }
  .bmc2-letter-paper {
    font-family:Arial, Helvetica, sans-serif !important;
    font-size:12pt !important;
    line-height:1.48 !important;
    color:#111 !important;
  }
  .bmc2-letter-addresses {
    grid-template-columns:72mm 74mm !important;
    column-gap:20mm !important;
    margin-bottom:14mm !important;
  }
  .bmc2-letter-recipient { margin-top:25mm !important; }
  .bmc2-letter-date { margin-bottom:13mm !important; }
  .bmc2-letter-object { margin-bottom:11mm !important; font-weight:700 !important; }
  .bmc2-letter-body p { margin-bottom:5.5mm !important; }
  .bmc2-letter-sign-zone { margin-top:16mm !important; min-height:34mm !important; }
  .bmc2-manual-space { min-height:20mm !important; }
}
@media (max-width:700px){
  .bmc2-validation ul { columns:1; }
  .bmc2-form-actions { padding:0 16px 16px; }
}


/* v2.5.0 — cadres plus visibles, blocs coordonnées harmonisés, document exporté sans libellé parasite */
.bmc2-notices,
.bmc2-search-box,
.bmc2-section,
.bmc2-generator,
.bmc2-generated {
  width:100%;
}
.bmc2-notice,
.bmc2-search-box,
.bmc2-card,
.bmc2-generator,
.bmc2-form-section,
.bmc2-generated,
.bmc2-favorites-zone {
  border-width:3px !important;
  border-color:#6f89a8 !important;
  box-shadow:0 18px 42px rgba(13,46,77,.14) !important;
}
.bmc2-card {
  border-top-width:10px !important;
}
.bmc2-card h3 {
  font-size:1.24rem;
  line-height:1.25;
}
.bmc2-form-section {
  border-left-width:12px !important;
  margin-bottom:22px;
}
.bmc2-step-header {
  min-height:74px;
  align-items:center;
}
.bmc2-form-grid {
  grid-template-columns:repeat(2,minmax(240px,1fr));
}
.bmc2-field {
  min-height:100%;
  border-width:2px !important;
  border-color:#9eb2cc !important;
  background:linear-gradient(180deg,#fff,#fbfdff) !important;
}
.bmc2-field:focus-within {
  border-color:#155b9f !important;
  box-shadow:0 0 0 4px rgba(21,91,159,.12), 0 8px 20px rgba(13,46,77,.10) !important;
}
.bmc2-preview-wrap {
  border-width:4px !important;
  border-color:#6783a3 !important;
  background:linear-gradient(135deg,#dce6f2,#f7fafd) !important;
}
.bmc2-letter-addresses {
  align-items:start;
}
.bmc2-letter-block {
  border-width:3px !important;
  border-color:#6f89a8 !important;
  background:linear-gradient(180deg,#ffffff 0%,#f4f8fd 100%) !important;
  min-height:44mm;
}
.bmc2-letter-label {
  display:block;
  width:100%;
  text-align:center;
  border-radius:8px;
  padding:2.5mm 4mm;
  margin-bottom:5mm;
  background:#0d2e4d !important;
}
.bmc2-letter-sender .bmc2-letter-label { background:#0d2e4d !important; }
.bmc2-letter-recipient .bmc2-letter-label { background:#155b9f !important; }
.bmc2-letter-block address {
  min-height:24mm;
}
.bmc2-letter-sign-zone {
  margin-top:16mm;
  margin-left:auto;
  width:72mm;
  text-align:center;
  min-height:34mm;
}
.bmc2-manual-space {
  min-height:21mm;
  border-bottom:1px solid transparent;
}
.bmc2-sign-name {
  font-weight:700;
  padding-top:2mm;
}
@media print {
  .bmc2-letter-block {
    min-height:0 !important;
  }
  .bmc2-letter-label {
    display:none !important;
  }
  .bmc2-letter-sign-zone {
    margin-top:18mm !important;
    min-height:34mm !important;
  }
  .bmc2-manual-space {
    min-height:22mm !important;
  }
}
@media (max-width:700px){
  .bmc2-form-grid { grid-template-columns:1fr; }
}


/* v2.6.0 — rappel de signature et style rédactionnel affiné */
.bmc2-signature-reminder {
  margin: 16px 0 0;
  padding: 14px 16px;
  border: 2px solid #b58a20;
  border-left: 8px solid #b58a20;
  border-radius: 14px;
  background: #fff7df;
  color: #5f4100;
  font-weight: 900;
  box-shadow: 0 8px 20px rgba(181,138,32,.14);
}
@media print {
  .bmc2-signature-reminder { display:none!important; }
}


/* v2.7.0 — contrôle final, lignes vides masquées, export Word amélioré et modèles liés */
.bmc2-final-check {
  margin: 0 0 18px;
  padding: 18px 20px;
  border: 3px solid #b58a20;
  border-left: 10px solid #b58a20;
  border-radius: 18px;
  background: linear-gradient(180deg,#fffdf5 0%,#fff4d6 100%);
  color: #4f3600;
  box-shadow: 0 12px 28px rgba(181,138,32,.14);
}
.bmc2-final-check h3 { margin: 0 0 8px; color:#4f3600; }
.bmc2-final-check ul {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px 18px;
  margin: 12px 0;
  padding: 0;
  list-style:none;
}
.bmc2-final-check li { font-weight:800; }
.bmc2-final-check li.is-ok { color:#126145; }
.bmc2-final-check li.is-missing { color:#be123c; }
.bmc2-final-check-note { margin: 8px 0 0 !important; font-weight:900; }
.bmc2-related {
  margin-top:22px;
  padding:18px;
  border:3px solid #7f99b8;
  border-left:10px solid #155b9f;
  border-radius:20px;
  background:linear-gradient(180deg,#fff,#f1f7ff);
  box-shadow:0 14px 30px rgba(13,46,77,.10);
}
.bmc2-related-head h3 { margin:0 0 6px; color:#0d2e4d; }
.bmc2-related-head p { margin:0 0 14px; color:#5c677a; }
.bmc2-related-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.bmc2-related-card {
  background:#fff;
  border:2px solid #c3d1e3;
  border-radius:16px;
  padding:14px;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.bmc2-related-card span {
  align-self:flex-start;
  background:#eaf2fb;
  color:#0d2e4d;
  border:1px solid #c7dbef;
  border-radius:999px;
  padding:4px 8px;
  font-size:.8rem;
  font-weight:900;
}
.bmc2-related-card h4 { margin:0; color:#0d2e4d; font-size:1rem; line-height:1.25; }
.bmc2-related-card p { margin:0; font-size:.92rem; color:#5c677a; }
.bmc2-related-card .bmc2-button { margin-top:auto; width:100%; }
@media (max-width:900px){ .bmc2-related-grid{grid-template-columns:1fr;} .bmc2-final-check ul{grid-template-columns:1fr;} }
@media print { .bmc2-final-check, .bmc2-related { display:none!important; } }


/* v3.1.0 — couleurs plus vives, blocs plus compacts et suggestions réellement pertinentes */
.bmc2-root {
  --bmc2-blue:#0057d8;
  --bmc2-blue-dark:#003b93;
  --bmc2-blue-soft:#e5f0ff;
  --bmc2-green:#00a36c;
  --bmc2-cyan:#00a6d6;
  --bmc2-rose:#e11d48;
  --bmc2-purple:#6d3cff;
}
.bmc2-hero {
  background:linear-gradient(135deg,#003b93 0%,#0057d8 48%,#00a6d6 100%) !important;
  padding:clamp(18px,3vw,34px) !important;
  box-shadow:0 18px 44px rgba(0,87,216,.26) !important;
}
.bmc2-version-badge {
  background:rgba(255,255,255,.22) !important;
  border-color:rgba(255,255,255,.55) !important;
}
.bmc2-root p { line-height:1.45 !important; }
.bmc2-notices { gap:14px !important; margin-bottom:18px !important; }
.bmc2-notice { padding:14px 16px !important; border-radius:18px !important; }
.bmc2-notice h2 { margin-bottom:4px !important; }
.bmc2-notice p { margin-bottom:0 !important; }
.bmc2-notice--privacy { border-left-color:#00a36c !important; background:linear-gradient(135deg,#ffffff 0%,#e8fff5 100%) !important; }
.bmc2-notice--legal { border-left-color:#e11d48 !important; background:linear-gradient(135deg,#ffffff 0%,#fff1f4 100%) !important; }
.bmc2-search-box { padding:16px !important; margin-bottom:20px !important; }
.bmc2-search-head { display:flex; align-items:end; justify-content:space-between; gap:16px; margin-bottom:12px !important; padding-bottom:8px !important; }
.bmc2-search-head h2, .bmc2-search-head p { margin:0 !important; }
.bmc2-section { margin:22px 0 !important; }
.bmc2-section-title { display:flex; align-items:end; justify-content:space-between; gap:16px; margin-bottom:12px !important; }
.bmc2-section-title h2, .bmc2-section-title p { margin:0 !important; }
.bmc2-card { gap:9px !important; padding:16px !important; border-top-color:#0057d8 !important; }
.bmc2-card-tags span:first-child { background:#e5f0ff !important; border-color:#9ec5ff !important; color:#003b93 !important; }
.bmc2-card-tags span:nth-child(2) { background:#fff1f4 !important; border-color:#fda4af !important; color:#881337 !important; }
.bmc2-card p { margin-bottom:0 !important; }
.bmc2-card-examples { margin:8px 0 10px !important; padding:10px 12px !important; border-color:#9ec5ff !important; border-left-color:#0057d8 !important; background:linear-gradient(135deg,#ffffff 0%,#eaf4ff 100%) !important; }
.bmc2-card-examples strong { margin-bottom:4px !important; }
.bmc2-card-examples ul { display:flex; flex-wrap:wrap; gap:6px; padding-left:0 !important; list-style:none; }
.bmc2-card-examples li { margin:0 !important; padding:4px 8px; border-radius:999px; background:#fff; border:1px solid #cfe3ff; font-size:.86rem; line-height:1.25 !important; }
.bmc2-generator { padding:18px !important; }
.bmc2-generator-header { margin-bottom:12px !important; padding-bottom:12px !important; }
.bmc2-confidentiality { padding:10px 14px !important; border-color:#8ff0c8 !important; background:#e9fff6 !important; color:#006544 !important; margin-bottom:12px !important; }
.bmc2-steps { gap:8px !important; margin-bottom:14px !important; }
.bmc2-steps li { padding:8px 8px !important; border-color:#9ec5ff !important; background:#f7fbff !important; color:#003b93 !important; }
.bmc2-form { gap:14px !important; }
.bmc2-form-section { margin-bottom:14px !important; border-color:#80b7ff !important; border-left-color:#0057d8 !important; }
.bmc2-step-header { min-height:0 !important; padding:13px 16px !important; background:linear-gradient(90deg,#003b93 0%,#0057d8 68%,#00a6d6 100%) !important; }
.bmc2-step-header p { line-height:1.35 !important; }
.bmc2-step-number { width:30px !important; height:30px !important; color:#0057d8 !important; }
.bmc2-form-grid { padding:16px !important; gap:12px !important; }
.bmc2-field { padding:10px !important; gap:5px !important; border-color:#a9ccff !important; }
.bmc2-help { font-size:.82rem !important; line-height:1.25 !important; }
.bmc2-root input, .bmc2-root select, .bmc2-root textarea { min-height:40px !important; padding:8px 10px !important; }
.bmc2-root textarea { min-height:76px !important; }
.bmc2-generated { padding:18px !important; border-color:#63d2aa !important; border-top-color:#00a36c !important; }
.bmc2-generated-head { margin-bottom:12px !important; }
.bmc2-generated-head p { line-height:1.35 !important; margin:0 !important; }
.bmc2-preview-wrap { padding:18px !important; border-color:#5ca8ff !important; background:linear-gradient(135deg,#dbeeff,#f8fbff) !important; }
.bmc2-letter-label { background:#0057d8 !important; }
.bmc2-letter-recipient .bmc2-letter-label { background:#6d3cff !important; }
.bmc2-letter-object { border-color:#9ec5ff !important; border-left-color:#0057d8 !important; background:#edf6ff !important; }
.bmc2-final-check {
  margin:0 0 14px !important;
  padding:12px 14px !important;
  border-color:#fb7185 !important;
  border-left-color:#e11d48 !important;
  background:linear-gradient(135deg,#fffdf8 0%,#ffe4e9 100%) !important;
}
.bmc2-final-check-main { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; }
.bmc2-final-check h3, .bmc2-final-check p { margin:0 !important; }
.bmc2-print-note {
  margin:8px 0 10px !important;
  padding:8px 10px;
  border-radius:12px;
  background:#fff;
  border:1px solid #fecdd3;
  color:#881337;
  font-weight:800;
  line-height:1.35 !important;
}
.bmc2-final-check ul {
  display:flex !important;
  flex-wrap:wrap;
  gap:7px !important;
  margin:8px 0 !important;
}
.bmc2-final-check li {
  padding:5px 9px;
  border-radius:999px;
  background:#fff;
  border:1px solid #fecdd3;
  line-height:1.2;
}
.bmc2-final-check li.is-ok { border-color:#79e0ba; background:#eafff6; color:#006544 !important; }
.bmc2-final-check li.is-missing { border-color:#fda4af; background:#fff1f4; color:#be123c !important; }
.bmc2-final-check-note { margin-top:8px !important; }
.bmc2-signature-reminder {
  margin-top:12px !important;
  padding:10px 12px !important;
  border-color:#fb7185 !important;
  border-left-color:#e11d48 !important;
  background:#fff1f4 !important;
}
.bmc2-related {
  margin-top:16px !important;
  padding:14px !important;
  border-color:#a58cff !important;
  border-left-color:#6d3cff !important;
  background:linear-gradient(135deg,#ffffff 0%,#f1edff 100%) !important;
}
.bmc2-related-head { display:flex; align-items:end; justify-content:space-between; gap:14px; margin-bottom:10px; }
.bmc2-related-head h3, .bmc2-related-head p { margin:0 !important; }
.bmc2-related-grid { gap:10px !important; }
.bmc2-related-card { padding:12px !important; gap:6px !important; border-color:#c9bdff !important; }
.bmc2-related-card span { background:#f1edff !important; border-color:#c9bdff !important; color:#3d1fa3 !important; }
.bmc2-related-card p { line-height:1.32 !important; }
@media (max-width:760px){
  .bmc2-search-head,
  .bmc2-section-title,
  .bmc2-related-head,
  .bmc2-final-check-main { display:block; }
  .bmc2-search-head p,
  .bmc2-section-title p,
  .bmc2-related-head p { margin-top:4px !important; }
  .bmc2-card-examples ul,
  .bmc2-final-check ul { display:block !important; }
  .bmc2-card-examples li,
  .bmc2-final-check li { margin:4px 0 !important; display:block; }
}
@media print { .bmc2-print-note { display:none!important; } }


/* v3.1.0 — palette sans orange, cadre d’accueil plus compact et pleine largeur */
.bmc2-root {
  --bmc2-rose:#e11d48;
  --bmc2-rose-dark:#881337;
  --bmc2-rose-soft:#fff1f4;
}
.bmc2-hero {
  display:block !important;
  padding:22px 28px !important;
}
.bmc2-hero h1,
.bmc2-hero p {
  max-width:none !important;
  width:100% !important;
}
.bmc2-hero h1 {
  font-size:clamp(1.8rem,3vw,2.7rem) !important;
  margin-bottom:8px !important;
}
.bmc2-hero p {
  margin:0 !important;
  line-height:1.34 !important;
}
.bmc2-notice--legal {
  border-left-color:var(--bmc2-rose) !important;
  background:linear-gradient(135deg,#ffffff 0%,var(--bmc2-rose-soft) 100%) !important;
}
.bmc2-card-tags span:nth-child(2),
.bmc2-print-note,
.bmc2-final-check li,
.bmc2-final-check li.is-missing,
.bmc2-signature-reminder {
  border-color:#fda4af !important;
  background:#fff1f4 !important;
  color:#881337 !important;
}
.bmc2-final-check {
  border-color:#fb7185 !important;
  border-left-color:var(--bmc2-rose) !important;
  background:linear-gradient(135deg,#fff 0%,#fff1f4 100%) !important;
}
.bmc2-final-check-main {
  display:grid !important;
  grid-template-columns:auto 1fr !important;
  align-items:center !important;
}
.bmc2-final-check-main h3 { white-space:nowrap; }
.bmc2-signature-reminder {
  border-left-color:var(--bmc2-rose) !important;
  font-weight:900 !important;
}
@media (max-width:760px){
  .bmc2-hero { padding:18px !important; }
  .bmc2-final-check-main { display:block !important; }
}

/* v3.7.0 — expéditeur remonté, destinataire abaissé et lieu/date sous destinataire */
.bmc2-letter-addresses {
  grid-template-columns:minmax(0, 1fr) minmax(0, 1fr) !important;
  gap:18mm !important;
  align-items:start !important;
}
.bmc2-letter-right-column {
  display:flex;
  flex-direction:column;
  align-items:stretch;
  min-width:0;
}
.bmc2-letter-right-column .bmc2-letter-recipient {
  margin-top:20mm !important;
}
.bmc2-letter-place-date {
  margin:7mm 0 11mm 0;
  padding:0 1mm;
  text-align:left;
  font-weight:600;
  line-height:1.45;
  color:#111827;
}
.bmc2-letter-place-date div:first-child {
  margin-bottom:1.5mm;
}
.bmc2-letter-date { display:none !important; }
@media print {
  .bmc2-letter-addresses {
    display:grid !important;
    grid-template-columns:72mm 74mm !important;
    column-gap:20mm !important;
    margin:0 0 13mm !important;
  }
  .bmc2-letter-right-column {
    display:block !important;
  }
  .bmc2-letter-right-column .bmc2-letter-recipient {
    margin-top:24mm !important;
  }
  .bmc2-letter-place-date {
    margin:8mm 0 13mm 0 !important;
    padding:0 !important;
    text-align:left !important;
    font-weight:400 !important;
    line-height:1.45 !important;
  }
}
@media (max-width:700px){
  .bmc2-letter-addresses { grid-template-columns:1fr !important; gap:12px !important; }
  .bmc2-letter-right-column .bmc2-letter-recipient { margin-top:0 !important; }
  .bmc2-letter-place-date { margin:12px 0 18px !important; }
}


/* v3.7.0 — ajustement fin demandé : expéditeur plus haut, destinataire plus bas */
.bmc2-letter-paper { padding-top:16mm !important; }
.bmc2-letter-sender { margin-top:0 !important; }
.bmc2-letter-right-column .bmc2-letter-recipient { margin-top:30mm !important; }
.bmc2-letter-place-date { margin-top:7mm !important; margin-bottom:12mm !important; }
@media print {
  .bmc2-letter-paper { padding:0 !important; }
  .bmc2-letter-right-column .bmc2-letter-recipient { margin-top:32mm !important; }
  .bmc2-letter-place-date { margin-top:7mm !important; margin-bottom:13mm !important; }
}


/* v3.7.0 — expéditeur en haut à gauche, destinataire légèrement abaissé, ville absente non affichée */
.bmc2-letter-paper {
  padding-top:12mm !important;
}
.bmc2-letter-sender {
  margin-top:0 !important;
  align-self:start !important;
}
.bmc2-letter-right-column .bmc2-letter-recipient {
  margin-top:36mm !important;
}
.bmc2-letter-place-date {
  margin-top:7mm !important;
  margin-bottom:12mm !important;
}
@media print {
  .bmc2-letter-paper { padding:0 !important; }
  .bmc2-letter-sender { margin-top:0 !important; }
  .bmc2-letter-right-column .bmc2-letter-recipient { margin-top:36mm !important; }
  .bmc2-letter-place-date { margin-top:7mm !important; margin-bottom:13mm !important; }
}
@media (max-width:700px){
  .bmc2-letter-paper { padding:18px !important; }
  .bmc2-letter-right-column .bmc2-letter-recipient { margin-top:0 !important; }
}

/* v3.8.0 — correction profonde de la mise en page courrier
   Objectif : expéditeur en haut à gauche, destinataire clairement plus bas à droite.
   Ces règles sont volontairement placées en fin de fichier pour neutraliser les anciens ajustements. */
.bmc2-letter-paper {
  padding-top: 12mm !important;
}
.bmc2-letter-addresses {
  display: grid !important;
  grid-template-columns: 72mm 74mm !important;
  column-gap: 20mm !important;
  align-items: start !important;
  margin: 0 0 13mm 0 !important;
}
.bmc2-letter-sender {
  margin: 0 !important;
  padding: 0 !important;
  align-self: start !important;
  justify-self: start !important;
}
.bmc2-letter-sender address {
  margin: 0 !important;
  padding: 0 !important;
}
.bmc2-letter-right-column {
  display: block !important;
  margin: 0 !important;
  padding-top: 42mm !important;
  align-self: start !important;
  justify-self: stretch !important;
}
.bmc2-letter-right-column .bmc2-letter-recipient {
  margin: 0 !important;
  padding: 0 !important;
}
.bmc2-letter-recipient address {
  margin: 0 !important;
  padding: 0 !important;
}
.bmc2-letter-place-date {
  margin: 7mm 0 13mm 0 !important;
  padding: 0 !important;
  text-align: left !important;
  line-height: 1.45 !important;
}
.bmc2-letter-object {
  margin-top: 0 !important;
}
@media print {
  .bmc2-letter-paper {
    padding: 0 !important;
  }
  .bmc2-letter-addresses {
    display: grid !important;
    grid-template-columns: 72mm 74mm !important;
    column-gap: 20mm !important;
    margin: 0 0 13mm 0 !important;
    align-items: start !important;
  }
  .bmc2-letter-sender {
    margin: 0 !important;
    padding: 0 !important;
  }
  .bmc2-letter-right-column {
    display: block !important;
    margin: 0 !important;
    padding-top: 42mm !important;
  }
  .bmc2-letter-right-column .bmc2-letter-recipient {
    margin: 0 !important;
    padding: 0 !important;
  }
  .bmc2-letter-place-date {
    margin: 7mm 0 13mm 0 !important;
    padding: 0 !important;
  }
}
@media (max-width: 700px) {
  .bmc2-letter-paper { padding: 18px !important; }
  .bmc2-letter-addresses { grid-template-columns: 1fr !important; gap: 12px !important; }
  .bmc2-letter-right-column { padding-top: 0 !important; }
  .bmc2-letter-place-date { margin: 12px 0 18px !important; }
}

/* v4.0.0 — reprise profonde de la zone courrier.
   Objectif : expéditeur immédiatement en haut à gauche ; destinataire plus bas à droite. */
.bmc2-letter-paper { padding-top: 10mm !important; }
.bmc2-letter-addresses {
  display: grid !important;
  grid-template-columns: 76mm 72mm !important;
  column-gap: 18mm !important;
  align-items: start !important;
  margin: 0 0 13mm 0 !important;
}
.bmc2-letter-sender { margin: 0 !important; padding: 0 !important; align-self: start !important; justify-self: start !important; }
.bmc2-letter-sender address { margin: 0 !important; padding: 0 !important; line-height: 1.35 !important; }
.bmc2-letter-right-column {
  display: block !important;
  margin: 0 !important;
  padding-top: 24mm !important;
  align-self: start !important;
  justify-self: stretch !important;
}
.bmc2-letter-right-column .bmc2-letter-recipient { margin: 0 !important; padding: 0 !important; }
.bmc2-letter-recipient address { margin: 0 !important; padding: 0 !important; line-height: 1.35 !important; }
.bmc2-letter-place-date { margin: 7mm 0 13mm 0 !important; padding: 0 !important; text-align: left !important; line-height: 1.45 !important; }
.bmc2-letter-object { margin-top: 0 !important; }
@media print {
  .bmc2-letter-paper { padding: 0 !important; }
  .bmc2-letter-addresses { display: grid !important; grid-template-columns: 76mm 72mm !important; column-gap: 18mm !important; margin: 0 0 13mm 0 !important; align-items: start !important; }
  .bmc2-letter-sender { margin: 0 !important; padding: 0 !important; }
  .bmc2-letter-right-column { display: block !important; margin: 0 !important; padding-top: 24mm !important; }
  .bmc2-letter-right-column .bmc2-letter-recipient { margin: 0 !important; padding: 0 !important; }
  .bmc2-letter-place-date { margin: 7mm 0 13mm 0 !important; padding: 0 !important; }
}
@media (max-width: 700px) {
  .bmc2-letter-paper { padding: 18px !important; }
  .bmc2-letter-addresses { grid-template-columns: 1fr !important; gap: 12px !important; }
  .bmc2-letter-right-column { padding-top: 0 !important; }
  .bmc2-letter-place-date { margin: 12px 0 18px !important; }
}

/* v4.1.0 — navigation par thèmes pour simplifier la recherche */
.bmc2-theme-filter {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin:4px 0 18px;
}
.bmc2-theme-card {
  appearance:none;
  width:100%;
  min-height:118px;
  text-align:left;
  cursor:pointer;
  border:2px solid #c9d8eb;
  border-radius:18px;
  background:linear-gradient(135deg,#ffffff 0%,#f3f8ff 100%);
  color:var(--bmc2-text);
  padding:14px;
  display:flex;
  flex-direction:column;
  gap:7px;
  box-shadow:0 8px 20px rgba(16,24,40,.07);
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease, background .16s ease;
}
.bmc2-theme-card:hover,
.bmc2-theme-card:focus {
  transform:translateY(-2px);
  box-shadow:0 14px 28px rgba(16,24,40,.12);
  border-color:#5aa6d9;
  outline:none;
}
.bmc2-theme-card.is-active {
  color:#fff;
  border-color:#69d3ff;
  background:linear-gradient(135deg,#0b3b72 0%,#1769c2 58%,#04a7d8 100%);
  box-shadow:0 14px 32px rgba(23,105,194,.24);
}
.bmc2-theme-card strong {
  font-size:.98rem;
  line-height:1.2;
  color:inherit;
}
.bmc2-theme-card small {
  color:#526278;
  font-size:.82rem;
  line-height:1.32;
}
.bmc2-theme-card.is-active small,
.bmc2-theme-card.is-active em { color:#ecfbff; }
.bmc2-theme-card em {
  margin-top:auto;
  color:#0f5e91;
  font-size:.78rem;
  font-style:normal;
  font-weight:900;
}
.bmc2-theme-icon {
  width:28px;
  height:28px;
  border-radius:999px;
  background:linear-gradient(135deg,#e7f4ff,#c7ecff);
  color:#0b3b72;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  font-size:.9rem;
}
.bmc2-theme-card.is-active .bmc2-theme-icon {
  background:#fff;
  color:#1769c2;
}
.bmc2-theme-card:nth-child(2) .bmc2-theme-icon::before { content:'🪪'; }
.bmc2-theme-card:nth-child(3) .bmc2-theme-icon::before { content:'🏛️'; }
.bmc2-theme-card:nth-child(4) .bmc2-theme-icon::before { content:'🏠'; }
.bmc2-theme-card:nth-child(5) .bmc2-theme-icon::before { content:'🎓'; }
.bmc2-theme-card:nth-child(6) .bmc2-theme-icon::before { content:'🩺'; }
.bmc2-theme-card:nth-child(7) .bmc2-theme-icon::before { content:'💳'; }
.bmc2-theme-card:nth-child(8) .bmc2-theme-icon::before { content:'📄'; }
.bmc2-theme-card:nth-child(9) .bmc2-theme-icon::before { content:'💼'; }
.bmc2-theme-card:nth-child(10) .bmc2-theme-icon::before { content:'⚖️'; }
.bmc2-theme-card:nth-child(11) .bmc2-theme-icon::before { content:'🚗'; }
.bmc2-theme-card:nth-child(12) .bmc2-theme-icon::before { content:'👪'; }
.bmc2-results-info {
  margin:12px 0 0;
  padding:9px 12px;
  border-radius:12px;
  background:#eef8ff;
  border:1px solid #c7e5fb;
  color:#0b3b72;
  font-weight:800;
  font-size:.92rem;
}
@media (max-width:1100px) {
  .bmc2-theme-filter { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:820px) {
  .bmc2-theme-filter { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:560px) {
  .bmc2-theme-filter { grid-template-columns:1fr; }
  .bmc2-theme-card { min-height:auto; }
}
