/* ==========================================================================
   AGREEN — Suite responsive partagée
   Chargée par toutes les applications (balise <link rel="stylesheet"
   href="/responsive-suite.css">). Une seule copie à la racine du dossier
   "publish" (voir build-dist.js) : le chemin absolu la résout depuis
   n'importe quelle sous-application. Règles génériques et sûres qui
   améliorent l'affichage mobile/tablette sans dépendre du détail de
   chaque feuille de style : pas de débordement horizontal, tableaux
   scrollables, zones tactiles confortables, pas de zoom iOS involontaire,
   grilles/barres qui s'empilent proprement sur petit écran, modales
   toujours contenues dans l'écran.
   ========================================================================== */

/* --- Base : jamais de scroll horizontal --- */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; max-width: 100%; overflow-x: hidden; }
body { max-width: 100%; min-width: 0; }
*, *::before, *::after { box-sizing: border-box; }
img, svg, video, canvas { max-width: 100%; height: auto; }

/* --- Formulaires : 16px minimum pour éviter le zoom automatique iOS --- */
@media (max-width: 640px) {
  body { font-size: 14px; }
  input, select, textarea { font-size: max(16px, 1em) !important; }
}

/* --- Zones tactiles confortables sur mobile --- */
@media (max-width: 768px) {
  button, .btn, a.btn, [role="button"], input[type="button"], input[type="submit"] {
    min-height: 42px;
  }
}

/* --- Tableaux : jamais de débordement de page --- */
table, .responsive-table { max-width: 100%; }
@media (max-width: 768px) {
  table { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .table-container, .table-wrapper, .responsive-table {
    display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch;
  }
}

/* --- Barres d'en-tête / outils : s'empilent au lieu de déborder --- */
@media (max-width: 900px) {
  .app-header, .topbar, .header-content, .header-actions, .toolbar, .actions-bar,
  [class*="-bar"], [class*="toolbar"], [class*="quick-tools"], [class*="rdv-buttons"],
  [class*="button-row"], [class*="actions-row"] {
    flex-wrap: wrap;
  }
  .dashboard-grid, .stats-grid, .cards-grid, .content-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .modal, .dialog, .wizard-modal { padding: 12px !important; }
  .modal-content, .modal-card, .dialog-content, .wizard-content,
  [class*="modal-content"], [class*="modal-card"], [class*="modal-box"] {
    width: min(100%, 680px) !important;
    max-width: 100% !important;
    max-height: calc(100dvh - 24px) !important;
    overflow: auto !important;
  }
}

/* --- Grilles fréquentes : une colonne sur petit écran plutôt qu'un débordement --- */
@media (max-width: 640px) {
  .dashboard-grid, .stats-grid, .cards-grid, .content-grid, .form-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  .container, .main-container, main { max-width: 100% !important; }
  .mobile-stack { flex-direction: column !important; align-items: stretch !important; }
  .hide-mobile { display: none !important; }
  .search-container, [class*="search-container"] { width: 100%; }
}

/* --- Modales : toujours contenues dans l'écran, scrollables --- */
@media (max-width: 380px) {
  .modal, .dialog, .wizard-modal { padding: 6px !important; }
  .modal-content, .modal-card, .dialog-content, .wizard-content {
    max-height: calc(100dvh - 12px) !important;
    border-radius: 16px !important;
  }
}

/* --- Titres : tailles fluides sur petit écran --- */
@media (max-width: 480px) {
  h1 { font-size: clamp(1.4rem, 6vw, 2rem); }
  h2 { font-size: clamp(1.2rem, 5vw, 1.6rem); }
  h3 { font-size: clamp(1.05rem, 4.5vw, 1.3rem); }
  header, [class*="header"] { flex-wrap: wrap; }
}

/* Suggestions d'adresse (responsive-suite-address.js) */
.address-suggestions{display:grid;gap:2px;margin-top:4px;padding:4px;border:1px solid #d3e4db;border-radius:12px;background:#fff;box-shadow:0 12px 30px rgba(20,67,52,.12);position:relative;z-index:40}
.address-suggestions.hidden{display:none}
.address-suggestions button{display:block;width:100%;padding:.55rem .65rem;border:0;border-radius:9px;background:#fff;color:#102d24;font:inherit;font-size:.86rem;text-align:left;cursor:pointer}
.address-suggestions button:hover,.address-suggestions button:focus-visible{background:#e8f6ef;outline:0}
/* Doublons possibles à la création d'un client */
.duplicate-box{margin-top:.5rem;padding:.65rem .75rem;border:1px solid #f0ddab;border-radius:12px;background:#fff8e6;color:#6b4a00;font-size:.82rem}
.duplicate-box strong{display:block;margin-bottom:.35rem}
.duplicate-box .dup{display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.4rem 0;border-top:1px dashed #efd9a2}
.duplicate-box .dup small{display:block;color:#8a6a1d}
.duplicate-box button{flex:none;border:1px solid #d9b865;border-radius:9px;background:#fff;color:#6b4a00;font:inherit;font-weight:700;font-size:.78rem;padding:.35rem .6rem;cursor:pointer}
