/* =========================================================
   MAISON QEDDUS — CONTRASTE FINAL DES BOUTONS VERTS
   19/08/2026
   Objectif : tout CTA vert conserve un texte blanc lisible,
   quel que soit son état (normal, visité, hover, focus, actif).
   ========================================================= */
:root{
  --mq-contrast-green:#00483b;
  --mq-contrast-green-hover:#003d32;
}

/* Accueil et CTA principaux */
a.home-btn-primary,
a.home-btn-primary:link,
a.home-btn-primary:visited,
a.home-btn-primary:hover,
a.home-btn-primary:focus,
a.home-btn-primary:active,
button.home-btn-primary,
.home-btn-primary{
  background:var(--mq-green, var(--mq-contrast-green))!important;
  border-color:var(--mq-green, var(--mq-contrast-green))!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  text-decoration:none!important;
  opacity:1!important;
}

/* Boutons verts historiques / tableaux de bord / formulaires */
a.btn.dark,a.btn.dark:link,a.btn.dark:visited,a.btn.dark:hover,a.btn.dark:focus,a.btn.dark:active,
.btn.dark,
.btn.primary.dark,
.plan-action.filled,.plan-action.filled:link,.plan-action.filled:visited,.plan-action.filled:hover,.plan-action.filled:focus,.plan-action.filled:active,
.client-btn,.client-btn:link,.client-btn:visited,.client-btn:hover,.client-btn:focus,.client-btn:active,
.d-btn,.d-btn:link,.d-btn:visited,.d-btn:hover,.d-btn:focus,.d-btn:active,
.submit,.submit:hover,.submit:focus,.submit:active,
.record,.record:hover,.record:focus,.record:active,
.add-vault,.add-vault:hover,.add-vault:focus,.add-vault:active,
.new-archive,.new-archive:hover,.new-archive:focus,.new-archive:active,
.cta .primary,.cta .primary:link,.cta .primary:visited,.cta .primary:hover,.cta .primary:focus,.cta .primary:active,
.family-page .btn.dark,.family-page a.btn.dark,
.sanctuary-page .btn.dark,
.tree-card a,
.module-card.dark .btn,.module-card.dark a{
  background:var(--mq-green, var(--forest, var(--mq-contrast-green)))!important;
  border-color:var(--mq-green, var(--forest, var(--mq-contrast-green)))!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  text-shadow:none!important;
  text-decoration:none!important;
  opacity:1!important;
  visibility:visible!important;
}

/* Nouvelle interface directeur / notariale : uniquement les CTA verts,
   sans transformer les boutons outline ou gold. */
a.mq26-btn:not(.outline):not(.gold),
a.mq26-btn:not(.outline):not(.gold):link,
a.mq26-btn:not(.outline):not(.gold):visited,
a.mq26-btn:not(.outline):not(.gold):hover,
a.mq26-btn:not(.outline):not(.gold):focus,
a.mq26-btn:not(.outline):not(.gold):active,
button.mq26-btn:not(.outline):not(.gold),
button.mq26-btn:not(.outline):not(.gold):hover,
button.mq26-btn:not(.outline):not(.gold):focus,
button.mq26-btn:not(.outline):not(.gold):active{
  background:var(--mq-green, var(--mq-contrast-green))!important;
  border-color:var(--mq-green, var(--mq-contrast-green))!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  text-decoration:none!important;
  opacity:1!important;
}

/* Le texte ou les icônes internes ne doivent jamais redevenir sombres. */
a.home-btn-primary *,
.btn.dark *,
.plan-action.filled *,
.client-btn *,
.d-btn *,
.submit *,
.record *,
.add-vault *,
.new-archive *,
.cta .primary *,
a.mq26-btn:not(.outline):not(.gold) *,
button.mq26-btn:not(.outline):not(.gold) *{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

/* Hover : toujours vert + blanc, avec une légère variation seulement. */
a.home-btn-primary:hover,
a.btn.dark:hover,
.plan-action.filled:hover,
.client-btn:hover,
.d-btn:hover,
.submit:hover,
.record:hover,
.add-vault:hover,
.new-archive:hover,
.cta .primary:hover,
a.mq26-btn:not(.outline):not(.gold):hover,
button.mq26-btn:not(.outline):not(.gold):hover{
  background:var(--mq-green2, var(--mq-contrast-green-hover))!important;
  border-color:var(--mq-green2, var(--mq-contrast-green-hover))!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

/* Évite le violet/bleu natif du navigateur sur les liens visités. */
a:visited{
  text-decoration-color:currentColor;
}

/* 19/08/2026 — verrouillage final du contraste des CTA primaires historiques.
   Les boutons secondaires (ghost/gold/light/secondary) conservent leur style. */
a.btn:not(.ghost):not(.gold):not(.light):not(.secondary),
a.btn:not(.ghost):not(.gold):not(.light):not(.secondary):link,
a.btn:not(.ghost):not(.gold):not(.light):not(.secondary):visited,
a.btn:not(.ghost):not(.gold):not(.light):not(.secondary):hover,
a.btn:not(.ghost):not(.gold):not(.light):not(.secondary):focus,
a.btn:not(.ghost):not(.gold):not(.light):not(.secondary):active,
button.btn:not(.ghost):not(.gold):not(.light):not(.secondary),
button.btn:not(.ghost):not(.gold):not(.light):not(.secondary):hover,
button.btn:not(.ghost):not(.gold):not(.light):not(.secondary):focus,
button.btn:not(.ghost):not(.gold):not(.light):not(.secondary):active {
  background:var(--mq-green, var(--forest, #00483b))!important;
  border-color:var(--mq-green, var(--forest, #00483b))!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  text-shadow:none!important;
  text-decoration:none!important;
}
a.btn:not(.ghost):not(.gold):not(.light):not(.secondary) *,
button.btn:not(.ghost):not(.gold):not(.light):not(.secondary) * {
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

/* Invitation familiale depuis la messagerie */
.mq-family-quick-invite{margin:18px 0 22px;padding:18px;border:1px solid rgba(0,68,57,.18);border-radius:18px;background:#fbfaf6}
.mq-family-quick-invite h3{margin:0 0 8px;font:700 1.2rem Georgia,serif;color:#16372f}
.mq-family-quick-invite p{margin:0 0 14px;color:#6f716b;line-height:1.5}
.mq-family-quick-invite form{display:grid;gap:10px}
.mq-family-quick-invite input{width:100%;box-sizing:border-box;padding:12px 13px;border:1px solid #d9d5ca;border-radius:12px;background:#fff;font:inherit;color:#18231f}
.mq-family-invite-status{margin-top:10px;font-size:.9rem;line-height:1.45;color:#31564d}
.mq-family-member{padding:12px 2px;border-bottom:1px solid rgba(0,68,57,.1)}

@media (max-width:760px){
  .mq26-chat-layout{display:block!important;grid-template-columns:1fr!important}
  .mq26-chat-layout>aside,.mq26-chat-layout>section{width:100%!important;max-width:100%!important;box-sizing:border-box}
  .mq26-chat{margin-top:16px}
  .mq26-shell,.mq26-main{max-width:100%!important;overflow-x:hidden}
  .mq26-hero h1{font-size:clamp(2.2rem,11vw,3.3rem)!important;overflow-wrap:anywhere}
  .mq26-shared-docs-section{box-sizing:border-box}
}

/* Correctifs contraste et cadrage globaux — 20/08/2026 */
a.btn:not(.ghost):not(.gold),button.btn:not(.ghost):not(.gold),.d-btn,.mq-pill,.mq-green-btn,.mq-u-mobile,.menu-btn,.d-premium,.d-mobile-premium{color:#fff!important}
a.btn:not(.ghost):not(.gold) *,button.btn:not(.ghost):not(.gold) *,.d-btn *,.mq-pill *,.mq-green-btn *{color:#fff!important}
.mq-patrimoine .mq-pill{background:#fff!important;border-color:#fff!important;color:#24342e!important;text-shadow:none!important}
.mq-book .mq-pill,.mq-book-action .mq-pill{background:#003c32!important;border-color:#003c32!important;color:#fff!important;text-shadow:none!important}
.mq-book .mq-pill:hover,.mq-book-action .mq-pill:hover{background:#0a3a32!important;color:#fff!important}
.mq26-notary{overflow:visible!important;min-width:0!important}.mq26-notary .mq26-btn{display:flex!important;width:100%!important;max-width:310px!important;min-height:52px!important;padding:13px 18px!important;margin-top:18px!important;background:#fff!important;color:#003c32!important;border:2px solid #fff!important;border-radius:999px!important;box-shadow:0 8px 22px rgba(0,0,0,.16)!important;white-space:normal!important;text-align:center!important;line-height:1.25!important}.mq26-notary .mq26-btn *{color:#003c32!important}
.d-premium-card .d-btn,.d-inspiration .d-btn{background:#003c32!important;color:#fff!important;border-color:#003c32!important}.d-premium-card .d-btn:hover,.d-inspiration .d-btn:hover{background:#0a3a32!important;color:#fff!important}
@media(max-width:700px){.mq26-notary .mq26-btn{max-width:none!important}.mq26-dashboard-grid{overflow:visible!important}.mq26-panel{min-width:0!important}}
