/* ACA CRM V4-46 — couche de stabilité responsive commune.
   Complète les styles existants sans changer l'identité visuelle ACA. */
html{max-width:100%;overflow-x:hidden;-webkit-text-size-adjust:100%}
body{max-width:100%;min-width:0;overflow-x:hidden}
*,*::before,*::after{box-sizing:border-box}
img,svg,video,canvas{max-width:100%;height:auto}
iframe{max-width:100%}
main,section,article,aside,header,footer,nav,form,fieldset,.main-content,.contracts-content,.cp-main,.cp-content{min-width:0}
input,select,textarea,button{max-width:100%;font:inherit}
textarea{resize:vertical}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}

/* Les tableaux doivent rester consultables sur petit écran sans élargir toute la page. */
.table-wrap,.contract-table-wrap,.marketing-table-wrap,.mail-table-wrap,.responsive-table,.aca-table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}

/* Modales et panneaux fixes : jamais hors écran sur iPhone / Android. */
.cp-calendly-dialog,.cp-contact-dialog,.aca-modal-dialog,.modal-dialog,.modal-content,[role="dialog"]{max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}
.cp-calendly-body,.cp-contact-body,.aca-modal-body,.modal-body{max-height:calc(100dvh - 150px);overflow:auto;-webkit-overflow-scrolling:touch}

/* Zones d'actions : elles peuvent se replier au lieu de déborder. */
.topbar-actions,.cp-top-actions,.contract-actions,.form-actions,.page-actions,.mail-submit,.marketing-action-grid{min-width:0;flex-wrap:wrap}

@media (max-width:920px){
  body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
  .main-content,.cp-main{width:100%;max-width:100%}
  .topbar,.cp-topbar{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
  .contracts-content,.cp-content{max-width:100%;overflow-x:hidden}
  .global-search{max-width:min(100%,360px)}
}

@media (max-width:680px){
  /* 16 px évite le zoom automatique d'iOS lors du focus. */
  input:not([type="checkbox"]):not([type="radio"]),select,textarea{font-size:16px!important}
  button,.button,.btn,[class*="-button"],a[class*="action"]{min-height:44px}
  .topbar{align-items:flex-start}
  .topbar-actions{gap:7px}
  .topbar-actions>.contract-primary-action,.topbar-actions>.contract-secondary-action{width:100%;justify-content:center}
  .cp-topbar{align-items:flex-start;gap:12px}
  .cp-top-actions{width:100%;display:grid!important;grid-template-columns:1fr!important;gap:8px!important}
  .cp-top-actions>a,.cp-top-actions>button{width:100%;justify-content:center;text-align:center}
  .contracts-content,.cp-content{padding-left:12px!important;padding-right:12px!important}
  .contract-form-grid,.mail-settings-grid,.marketing-action-grid,.settings-grid,.form-grid,[class$="-grid"]{grid-template-columns:minmax(0,1fr)}
  .form-actions,.page-actions,.contract-actions,.mail-submit{display:grid!important;grid-template-columns:1fr!important;width:100%;gap:8px}
  .form-actions>* ,.page-actions>* ,.contract-actions>* ,.mail-submit>*{width:100%;justify-content:center}
  .cp-calendly-dialog,.cp-contact-dialog,.aca-modal-dialog,.modal-dialog,.modal-content,[role="dialog"]{width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important;max-height:calc(100dvh - 16px)!important;margin:8px auto!important;border-radius:16px!important}
  .cp-calendly-body,.cp-contact-body,.aca-modal-body,.modal-body{max-height:calc(100dvh - 132px)}
  table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}
  table input,table select{min-width:120px}
  .marketing-email-preview-frame{min-height:520px}
}

@media (max-width:430px){
  .contracts-content,.cp-content{padding-left:10px!important;padding-right:10px!important}
  .card,.contract-card,.marketing-card,.mail-card{max-width:100%}
  .profile-text,kbd{display:none!important}
  .cp-footer{gap:6px;flex-direction:column;align-items:flex-start}
}

/* Respect des encoches / barre Home iPhone dans les overlays et menus. */
@supports (padding:max(0px)){
  .sidebar,.cp-sidebar{padding-bottom:max(12px,env(safe-area-inset-bottom))}
  .cp-calendly-dialog,.cp-contact-dialog,.aca-modal-dialog{padding-bottom:env(safe-area-inset-bottom)}
}
