/* G112-E "Fondations mobiles" : couche CSS transversale, UNIQUEMENT pour les petits ecrans tactiles.
   Charge en dernier (header.php, apres la couche G102). Rien ici ne s'applique a l'ordinateur : tout est dans la condition M ci-dessous.
   Condition M = telephone en portrait (largeur < 576 px) OU telephone en paysage (hauteur <= 500 px, ecran tactile).
   Les variables --gl-vvh / --gl-vvt (hauteur et decalage du viewport visuel) sont posees par js/gl-mobile-g112.js ; repli : 100dvh.
   Retour arriere : retirer les deux lignes d'inclusion (header.php, footer.php) ou supprimer ce fichier et gl-mobile-g112.js. */

:root { --gl-vvh: 100vh; --gl-vvt: 0px; }
@supports (height: 100dvh) { :root { --gl-vvh: 100dvh; } }

@media (max-width: 575.98px), (max-height: 500px) and (orientation: landscape) and (pointer: coarse) {

  /* ---------- 1. FENETRES MODALES : feuille a hauteur contrainte au viewport visible, en-tete reduit, pied sticky sur UNE ligne ---------- */
  html body .modal { --g112-mh: calc(var(--gl-vvh) - 16px); }
  html body .modal .modal-dialog:not(.modal-fullscreen) { margin: 8px auto !important; max-height: var(--g112-mh) !important; height: auto !important; min-height: 0 !important; display: flex !important; align-items: stretch !important; }
  html body .modal .modal-dialog:not(.modal-fullscreen) > .modal-content { display: flex !important; flex-direction: column !important; width: 100%; max-height: var(--g112-mh) !important; min-height: 0; border-radius: 12px; }
  html body .modal .modal-content > form:has(> .modal-body) { display: flex !important; flex-direction: column !important; flex: 1 1 auto !important; min-height: 0 !important; max-height: var(--g112-mh) !important; }
  html body .modal .modal-content > .modal-body, html body .modal .modal-content > form > .modal-body { flex: 1 1 auto !important; min-height: 0 !important; overflow-y: auto !important; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }

  /* en-tete reduit : une ligne de titre, croix 44 px dont la zone depasse sur le remplissage (hauteur d'en-tete ~ 46 px) */
  html body .modal .modal-header { padding: 6px 6px 6px 12px !important; min-height: 0 !important; flex: 0 0 auto !important; flex-wrap: nowrap !important; align-items: center !important; gap: 8px !important; }
  html body .modal .modal-header .modal-title { font-size: 16px !important; line-height: 1.25 !important; min-width: 0; flex: 1 1 auto; margin: 0; overflow-wrap: anywhere; }
  html body .modal .modal-header .modal-title small, html body .modal .modal-header .modal-title .badge { font-size: 11px; }
  html body .modal .modal-header .btn-close, html body .modal .modal-header .close, html body .modal .modal-header .btn-close-corporate, html body .modal .modal-header .btn-close-corporate-white {
    width: 44px !important; height: 44px !important; min-width: 44px !important; min-height: 44px !important; margin: -6px 0 -6px auto !important; padding: 0 !important; flex: 0 0 auto !important; display: inline-flex; align-items: center; justify-content: center; background-position: center; background-repeat: no-repeat; }
  html body .modal .modal-header .btn-close:not(.btn-close-corporate):not(.btn-close-corporate-white) { background-size: 14px; }

  /* pied : sticky, une ligne, boutons cote a cote, >= 44 px (hauteur totale ~ 60 px). Les ENFANTS non boutons sont deplaces dans le corps par le script (sinon ils restent tels quels). */
  html body .modal .modal-footer { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; align-items: center !important; justify-content: stretch !important; gap: 8px !important; padding: 8px 10px !important; min-height: 0 !important; flex: 0 0 auto !important; position: sticky; bottom: 0; z-index: 5; margin: 0; width: 100%; box-sizing: border-box; }
  html body .modal .modal-footer > * { margin: 0 !important; }
  html body .modal .modal-footer :is(div, span, p):has(> .btn):not(:has(> :not(.btn))) { display: contents !important; }
  html body .modal .modal-footer .btn { flex: 1 1 0 !important; min-width: 0 !important; width: auto !important; max-width: none !important; min-height: 44px !important; margin: 0 !important; padding: 6px 8px !important; font-size: 14px !important; line-height: 1.2 !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: center; justify-content: center; align-items: center; gap: 6px; }
  html body .modal .modal-footer .btn i, html body .modal .modal-footer .btn svg { margin-right: 4px !important; margin-left: 0 !important; }
  /* mode compact (pose par le script quand le texte ne tient pas) : icone seule, libelle conserve pour les lecteurs d'ecran (aria-label) */
  html body .modal .modal-footer.g112-compact .btn:has(> i, > svg) { font-size: 0 !important; }
  html body .modal .modal-footer.g112-compact .btn:has(> i, > svg) i, html body .modal .modal-footer.g112-compact .btn:has(> i, > svg) svg { font-size: 18px !important; margin: 0 !important; }
  /* contenu deplace depuis le pied (notes, aides) */
  html body .modal .g112-footer-moved { margin-top: 12px; padding-top: 10px; border-top: 1px dashed #CBD5E1; }

  /* onglets : une seule ligne defilante, cibles 44 px */
  html body .nav-tabs { flex-wrap: nowrap !important; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  html body .nav-tabs::-webkit-scrollbar { display: none; }
  html body .nav-tabs > .nav-item { flex: 0 0 auto; }
  html body .nav-tabs .nav-link, html body .nav-pills .nav-link { min-height: 44px; display: flex; align-items: center; white-space: nowrap; }
  html body .nav-pills .nav-link { white-space: normal; }

  /* ---------- 2. CHAMPS : >= 16 px (aucun zoom automatique iOS) ---------- */
  html body input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]):not([type="button"]):not([type="submit"]):not([type="image"]),
  html body select, html body textarea, html body .form-control, html body .form-select, html body .form-control-sm, html body .form-select-sm,
  html body .select2-container .select2-selection__rendered, html body .select2-search__field, html body .select2-container--default .select2-search--dropdown .select2-search__field,
  html body .ts-control, html body .ts-control input, html body .swal2-input, html body .swal2-textarea, html body .swal2-select, html body .dataTables_filter input { font-size: 16px !important; }
  html body .form-control, html body .form-select, html body .form-control-sm, html body .form-select-sm, html body input.form-control, html body .select2-container--default .select2-selection--single { min-height: 44px; }
  html body textarea.form-control { min-height: 44px; }

  /* ---------- 3. CIBLES TACTILES >= 44 px ---------- */
  html body .btn, html body .btn-sm, html body .btn-group-sm > .btn, html body .input-group-sm > .btn { min-height: 44px; }
  html body .btn-sm, html body .btn-group-sm > .btn, html body .btn:has(> i:only-child), html body .btn:has(> svg:only-child) { min-width: 44px; }
  html body .btn-sm, html body .btn-group-sm > .btn { padding: .4rem .7rem; font-size: .875rem; }
  html body .al-action-btn, html body a.al-action-btn, html body button.al-action-btn { min-height: 44px; min-width: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
  html body .btn-close { box-sizing: border-box; width: 44px; height: 44px; padding: 14px; background-origin: content-box; background-size: 16px; }
  html body .page-link { min-width: 44px; min-height: 44px; display: flex; align-items: center; justify-content: center; }
  html body .dropdown-menu .dropdown-item { min-height: 44px; display: flex; align-items: center; white-space: normal; }
  html body .list-group-item-action { min-height: 44px; }
  /* cases et radios : zone cliquable elargie a toute la ligne (la case garde sa taille, le libelle devient le conteneur cliquable de 44 px) */
  html body .form-check:not(.form-check-inline) { display: flex; align-items: center; min-height: 44px; padding-left: 0; gap: 10px; }
  html body .form-check:not(.form-check-inline) > .form-check-input { float: none; margin: 0 !important; flex: 0 0 auto; width: 1.4em; height: 1.4em; }
  html body .form-check:not(.form-check-inline) > .form-check-label { flex: 1 1 auto; align-self: stretch; display: flex; align-items: center; padding: 8px 0; margin: 0; }
  html body .form-check.form-check-inline { min-height: 44px; display: inline-flex; align-items: center; padding-left: 0; margin-right: 12px; gap: 8px; }
  html body .form-check.form-check-inline > .form-check-input { float: none; margin: 0 !important; width: 1.4em; height: 1.4em; }
  html body .form-check.form-check-inline > .form-check-label { padding: 10px 0; }
  html body .form-switch.form-check:not(.form-check-inline) > .form-check-input { width: 2.6em; height: 1.4em; }
}

/* ---------- 4. BARRES FIXES ---------- */
/* clavier virtuel ouvert (classe posee par le script) : la barre basse disparait, le contenu reprend sa place */
@media (max-width: 575.98px), (max-height: 500px) and (orientation: landscape) and (pointer: coarse) {
  html.g112-kbd .gl-ds.gl-bottombar { display: none !important; }
  html.g112-kbd body.gl-shell.gl-has-bottombar > .main-container { padding-bottom: 16px !important; }
  html.g112-kbd body.gl-shell.gl-has-bottombar .gl-ds.gl-foot { margin-bottom: 0 !important; }
  html.g112-kbd body.modal-open .modal.show { top: var(--gl-vvt); height: var(--gl-vvh); bottom: auto; }
}
/* paysage a faible hauteur : barre haute compactee (44 px), barre basse masquee (les destinations restent dans le menu de la barre haute) */
@media (max-height: 500px) and (orientation: landscape) and (pointer: coarse) {
  html body .gl-ds.gl-nav { --gl-nav-h: 44px; }
  html body .gl-ds .gl-nav__in { height: 44px !important; }
  html body .gl-ds .gl-brand { height: 44px !important; }
  html body .gl-ds .gl-brand img { max-height: 30px; width: auto; }
  html body .gl-ds.gl-bottombar { display: none !important; }
  html body.gl-shell.gl-has-bottombar > .main-container { padding-bottom: 16px !important; }
  html body.gl-shell.gl-has-bottombar .gl-ds.gl-foot { margin-bottom: 0 !important; }
  html body .modal { --g112-mh: calc(var(--gl-vvh) - 8px); }
  html body .modal .modal-dialog:not(.modal-fullscreen) { margin: 4px auto !important; }
  html body .modal .modal-footer { padding: 4px 10px !important; }
  html body .modal .modal-header { padding-top: 2px !important; padding-bottom: 2px !important; }
}

/* =====================================================================================================================================
   G113-M2 : navigation par role, zones sures, acces rapides, recherche de la barre haute, bandeaux (reseau, brouillon), fenetre de contrat
   Meme condition M que ci-dessus. Les bandeaux (.g113-net, .g113-draft) sont inertes tant que le script ne les cree pas.
   ===================================================================================================================================== */
.g113-net { position: fixed; z-index: 2090; left: max(8px, env(safe-area-inset-left)); right: max(8px, env(safe-area-inset-right)); top: calc(var(--gl-nav-h, 56px) + env(safe-area-inset-top, 0px) + 4px); padding: 9px 14px; border-radius: 10px; font: 600 13px/1.35 system-ui, -apple-system, "Segoe UI", sans-serif; box-shadow: 0 4px 14px rgba(15,23,42,.18); border: 1px solid transparent; }
.g113-net[hidden] { display: none !important; }
.g113-net--off { background: #FEE2E2; color: #7F1D1D; border-color: #FCA5A5; }
.g113-net--slow { background: #FEF3C7; color: #78350F; border-color: #FCD34D; }
.g113-net--ok { background: #DCFCE7; color: #14532D; border-color: #86EFAC; }
.g113-draft { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 0 0 12px; padding: 8px 12px; border-radius: 8px; background: #EFF6FF; border: 1px solid #BFDBFE; color: #1E3A8A; font-size: 14px; line-height: 1.35; }
.g113-draft__x { border: 0; background: transparent; color: #1D4ED8; text-decoration: underline; font: inherit; font-weight: 600; padding: 4px 2px; cursor: pointer; }
.g113-search { display: none !important; }
.g113-quick { display: none; }

@media (max-width: 575.98px), (max-height: 500px) and (orientation: landscape) and (pointer: coarse) {
  /* ---------- zones sures (encoche, barre d'accueil) : necessite viewport-fit=cover (header.php) ---------- */
  html body .gl-ds .gl-nav__in { padding-left: max(12px, env(safe-area-inset-left)) !important; padding-right: max(12px, env(safe-area-inset-right)) !important; }
  html body .gl-ds.gl-nav { padding-top: env(safe-area-inset-top, 0px); }
  html body .gl-ds.gl-bottombar { padding-left: env(safe-area-inset-left, 0px); padding-right: env(safe-area-inset-right, 0px); }
  html body .gl-ds.gl-foot .gl-foot__in { padding-left: max(16px, env(safe-area-inset-left)); padding-right: max(16px, env(safe-area-inset-right)); }
  html body .modal .modal-dialog:not(.modal-fullscreen) { max-width: calc(100vw - 16px - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px)) !important; }
  html body .modal .modal-footer { padding-bottom: max(8px, env(safe-area-inset-bottom, 0px)) !important; }

  /* ---------- panneau de suivi des performances : masque (outil de bureau) ---------- */
  html body #perf-tracker-btn, html body #perf-tracker-panel { display: none !important; }

  /* ---------- barre basse par role : libelles sur une ligne, 5 entrees au plus ---------- */
  html body .gl-ds.gl-bottombar > a, html body .gl-ds.gl-bottombar > button { min-width: 0; padding: 4px 2px; }
  html body .gl-ds.gl-bottombar > a > span, html body .gl-ds.gl-bottombar > button > span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

  /* ---------- recherche de la barre haute (recherche existante de la page) ---------- */
  .g113-search:not([hidden]) { display: inline-flex !important; }

  /* ---------- accueil : acces rapides ---------- */
  .g113-quick { display: block; margin: 8px 12px 4px; }
  .g113-quick__t { font: 700 13px/1.2 system-ui, -apple-system, "Segoe UI", sans-serif; letter-spacing: .02em; text-transform: uppercase; color: #475569; margin: 0 0 8px; }
  .g113-quick__g { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .g113-quick__g > a:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .g113-quick__a { display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 8px 12px; border-radius: 12px; border: 1px solid #CBD5E1; background: #fff; color: #0F2239; text-decoration: none; font: 600 14px/1.2 system-ui, -apple-system, "Segoe UI", sans-serif; -webkit-tap-highlight-color: transparent; }
  .g113-quick__a:active { background: #F1F5F9; }
  .g113-quick__a .gl-ico { width: 22px; height: 22px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
  .g113-draft__x { min-height: 44px; padding: 8px 6px; }

  /* ---------- fenetre de contrat : en-tete compact (CSS seul, le JS du contrat n'est pas touche) : titre + reference sur 2 lignes au plus ---------- */
  html body #contractModal .modal-header { padding: 4px 4px 4px 12px !important; }
  html body #contractModal .modal-header .modal-title { display: block !important; font-size: 14px !important; line-height: 1.25 !important; }
  html body #contractModal .modal-header .modal-title > i { display: none !important; }
  html body #contractModal .modal-header .modal-title .contract-ref-badge { display: block !important; width: fit-content; max-width: 100%; margin: 2px 0 0 !important; padding: 1px 8px !important; font-size: 11px !important; line-height: 1.3 !important; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}

/* G113 : les regles de page html.gl-g78 (min-height 40 px) battaient la couche 44 px ; specificite relevee, meme condition mobile. */
@media (max-width: 575.98px), (max-height: 500px) and (orientation: landscape) and (pointer: coarse) {
  html[class] body .main-container .btn, html[class] body .main-container .btn-sm, html[class] body .main-container .btn-group-sm > .btn,
  html[class] body .main-container a.btn, html[class] body .main-container button.btn { min-height: 44px; min-width: 44px; }
}

/* G113 : debordements residuels de page (audit 96 pages) - motifs communs, mobile portrait seulement. */
@media (max-width: 575.98px) {
  html body .btn-group:not(.btn-group-vertical) { flex-wrap: wrap; max-width: 100%; }
  html body .main-container .btn-group:not(.btn-group-vertical) > .btn { flex: 1 1 auto; }
  html body .agency-card, html body .category-preview, html body input.search-input, html body .search-input { max-width: 100% !important; box-sizing: border-box; }
  html body input.search-input { width: 100% !important; min-width: 0 !important; }
  html body .agencies-grid { grid-template-columns: repeat(auto-fill, minmax(min(350px, 100%), 1fr)) !important; }
  html body .main-container .gl-wrap-g113 { overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; }
}

/* G113 : marges cumulees du conteneur principal (24 + 12 + 10,5 px par cote) reduites en portrait telephone ; gain de largeur utile. */
@media (max-width: 575.98px) {
  html body .container.main-container { margin-left: 8px !important; margin-right: 8px !important; padding-left: 6px !important; padding-right: 6px !important; max-width: none !important; width: auto !important; }
  html body .main-container > .container-fluid { padding-left: 4px; padding-right: 4px; }
}

/* G115-F : residuels cibles tactiles (coque haute/basse, pied de page, cases et interrupteurs natifs). Meme condition mobile que la couche G112 : AUCUN effet sur ordinateur.
   Cases/interrupteurs : la zone cliquable de l'INPUT passe a 44 px par une bordure transparente (zone de clic comprise) ; le dessin reste celui de Bootstrap (contour = ombre interne 1 px, fond limite a la boite de remplissage).
   Retour arriere : supprimer ce bloc. */
@media (max-width: 575.98px), (max-height: 500px) and (orientation: landscape) and (pointer: coarse) {
  html body a.gl-ds.gl-skip { min-height: 44px; display: inline-flex; align-items: center; box-sizing: border-box; }
  html body .gl-ds .gl-tools .nav-link.dropdown-toggle { min-height: 44px; box-sizing: border-box; }
  html body .gl-ds :is(.gl-ibtn.g113-search, .gl-ibtn.gl-burger, .gl-tools-host .gl-ibtn) { min-width: 44px; min-height: 44px; }
  html body a.topbar-back-btn { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; margin: -14px -16px -14px -16px; box-sizing: border-box; }
  html body .gl-ds .gl-foot__l a { display: inline-flex; align-items: center; min-height: 44px; box-sizing: border-box; }
  html body .gl-ds.gl-foot .gl-foot__l { gap: 0 12px; }
  html body input.form-check-input:is([type="checkbox"], [type="radio"]) { box-sizing: border-box; width: 44px !important; height: 44px !important; min-width: 44px; min-height: 44px; border: 11px solid transparent !important; background-clip: padding-box; background-origin: padding-box; box-shadow: inset 0 0 0 1px rgba(0,0,0,.32); border-radius: 15px; }
  html body input.form-check-input[type="radio"] { border-radius: 50%; }
  html body input.form-check-input:is([type="checkbox"], [type="radio"]):is(:checked, :indeterminate) { box-shadow: none; }
  html body input.form-check-input:is([type="checkbox"], [type="radio"]):focus { box-shadow: inset 0 0 0 1px #86b7fe, 0 0 0 .2rem rgba(13,110,253,.25); }
  html body .form-switch > input.form-check-input[type="checkbox"], html body .form-switch.form-check:not(.form-check-inline) > input.form-check-input[type="checkbox"] { width: calc(2.6em + 22px) !important; border-radius: 33px; }
  html body .form-check:not(.form-check-inline) > input.form-check-input { margin-left: -11px !important; margin-right: -1px !important; }
}
@media (max-width: 575.98px), (max-height: 500px) and (orientation: landscape) and (pointer: coarse) {
  html body .gl-ds .gl-foot__l a { min-width: 44px; justify-content: center; }
  html body :is(a.btn, button.btn):not(.btn-close):not(.glc-toggle):not(.gl-skip) { min-height: 44px; box-sizing: border-box; }
}
/* G115-F : champs et boutons de formulaire des pages qui n'incluent pas la couche cartes (site web, parametres, formulaires) : 44 px. */
@media (max-width: 575.98px), (max-height: 500px) and (orientation: landscape) and (pointer: coarse) {
  html body :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="range"]):not([type="file"]):not([type="color"]):not(.btn-check), select, textarea):not(.gl-skip):not(.dataTables_length select) { min-height: 44px; box-sizing: border-box; }
  html body :is(button, input[type="submit"], input[type="button"], input[type="reset"], a[role="button"]):not(.btn-close):not(.glc-toggle):not(.gl-skip):not(.close):not(.accordion-button):not(.navbar-toggler) { min-height: 44px; box-sizing: border-box; }
  html body label.btn:is(.btn-sm, .btn-outline-primary, .btn-outline-secondary), html body .btn-check + label.btn { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; }
}
/* G115-F : cases/radios natifs a etiquette (classes custom-control de certaines vues) : l'etiquette devient la cible de 44 px ; entree de fichier contenue dans la largeur. */
@media (max-width: 575.98px), (max-height: 500px) and (orientation: landscape) and (pointer: coarse) {
  html body .custom-control { display: flex; align-items: center; min-height: 44px; padding-left: 0; gap: 10px; }
  html body .custom-control.custom-control-inline { display: inline-flex; margin-right: 18px; }
  html body .custom-control > input.custom-control-input { position: static; opacity: 1; width: 22px; height: 22px; margin: 0; flex: 0 0 auto; z-index: auto; }
  html body .custom-control > label.custom-control-label { display: inline-flex; align-items: center; min-height: 44px; margin: 0; padding: 0 6px 0 0; flex: 1 1 auto; }
  html body input.custom-file-input, html body .custom-file { max-width: 100%; box-sizing: border-box; }
}
/* G115-F : puces de filtre, boutons-liens de page, pastilles cliquables, liens isoles de listes : zone tactile 44 px (hauteur minimale, mise en page inchangee a l'ordinateur). */
@media (max-width: 575.98px), (max-height: 500px) and (orientation: landscape) and (pointer: coarse) {
  html body :is(.alert-pill-compact, .activity-detail-btn, .activity-link-mini, .activity-btn-agences, .activity-btn-ops-hier, .filter-chip, .date-btn, .export-btn, .g102-btn, a.profile-link) { min-height: 44px; box-sizing: border-box; }
  html body :is(.filter-chip, .activity-link-mini, a.profile-link, .g102-btn) { display: inline-flex; align-items: center; }
  html body a.g102-chip-x { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; margin: -12px -12px -12px -6px !important; box-sizing: border-box; }
  html body :is(a.badge, button.badge) { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; box-sizing: border-box; }
  html body :is(td, th, li.list-group-item, .card-body > p, .card-body > div) > a[href]:not(.btn):not(.badge):not([class*="btn"]):not(.gl-skip):not(.nav-link) { display: inline-flex; align-items: center; min-height: 44px; box-sizing: border-box; }
}
/* G115-F : specificite relevee (les regles de page G68/G102 fixent min-height 36-38 px). */
@media (max-width: 575.98px), (max-height: 500px) and (orientation: landscape) and (pointer: coarse) {
  html[class] body :is(.alert-pill-compact, .activity-detail-btn, .activity-link-mini, .activity-btn-agences, .activity-btn-ops-hier, .filter-chip, .g102-datenav .date-btn, .date-btn, .export-btn, .g102-btn, .g102-btn-danger) { min-height: 44px !important; box-sizing: border-box; }
}
@media (max-width: 575.98px), (max-height: 500px) and (orientation: landscape) and (pointer: coarse) {
  html body :is(a.badge, button.badge) { min-width: 44px; }
  html body :is(td, th, li.list-group-item, .card-body > p, .card-body > div) > a[href]:not(.btn):not(.badge):not([class*="btn"]):not(.gl-skip):not(.nav-link) { min-width: 44px; }
}
/* G115-F : fil d'Ariane et boutons de barre haute des vues mobiles dediees, lien d'accueil des cartes d'activite. */
@media (max-width: 575.98px), (max-height: 500px) and (orientation: landscape) and (pointer: coarse) {
  html body .mobile-breadcrumb a { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; box-sizing: border-box; }
  html body :is(a, button).mobile-topbar-btn { min-width: 44px !important; min-height: 44px !important; }
  html body a.text-info.text-decoration-none { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; box-sizing: border-box; }
}
@media (max-width: 575.98px), (max-height: 500px) and (orientation: landscape) and (pointer: coarse) {
  html[class] body a.text-info.text-decoration-none { min-height: 44px !important; min-width: 44px !important; display: inline-flex !important; align-items: center; }
}
/* G115-F : reliquats mesures (paysage compris) : bandeau de mise a jour PWA (cible tactile seulement), etiquettes de cases, petits boutons, en-tetes triables, liens isoles. */
@media (max-width: 575.98px), (max-height: 500px) and (orientation: landscape) and (pointer: coarse) {
  html body #gl-pwa-update button { min-height: 44px !important; min-width: 44px !important; }
  html body label.custom-control-label { min-width: 44px; }
  html body table input.form-control:is(.line-quantity, .line-vat) { min-width: 56px; }
  html[class] body :is(.btn-sm, .btn-group-sm > .btn) { min-height: 44px !important; box-sizing: border-box; }
  html body th.sortable { height: 44px; box-sizing: border-box; }
  html body :is(.main-container, .container-fluid, .card-body) div > a.text-decoration-none:only-child:not(.btn):not(.badge):not(.nav-link) { display: inline-flex; align-items: center; min-height: 44px; box-sizing: border-box; }
}
@media (max-width: 575.98px), (max-height: 500px) and (orientation: landscape) and (pointer: coarse) {
  html body :is(.main-container, .container-fluid, .card-body) p.mb-0 > a.text-decoration-none:only-child { display: inline-flex; align-items: center; min-height: 44px; box-sizing: border-box; }
  html body :is(a, button).mobile-topbar-menu-btn { min-width: 44px !important; min-height: 44px !important; }
}
