/* ==================================================================
   Tiroir / sous-panneau GÉNÉRIQUE (offcanvas BS5) — composant de socle, utilisable app-wide.
   Piloté par window.TgTiroir (assets/js/core/teogest.tiroir.js). Le squelette vit en vue :
     <div class="tg-tiroir-voile" data-tg-voile="ID"></div>
     <div id="ID" class="offcanvas offcanvas-end tg-tiroir" data-bs-backdrop="false" data-bs-scroll="true">
        <div class="offcanvas-header"> <h2 class="offcanvas-title">…</h2> <button class="btn-close" data-bs-dismiss="offcanvas"></button> </div>
        <div class="offcanvas-body">…contenu…</div>
        <div class="tg-tiroir-pied"></div>   (barre d'actions relocalisée depuis le contenu)
     </div>
   Largeur : variable --tg-tiroir-w (défaut 480px), surchargeable par usage.
   Ces règles centralisent des pièges déjà résolus (offcanvas non-flex → pied non collé en bas ;
   bulle d'aide IA fixée en bas à droite qui recouvre les boutons ; blocage du fond).
   ================================================================== */

/* Voile de blocage : couvre le fond, sous le tiroir. */
.tg-tiroir-voile {
    position: fixed;
    inset: 0;
    z-index: 1070;
    display: none;
    background: var(--bs-body-color);
    opacity: .35;
}
.tg-tiroir-voile.tg-voile-actif {
    display: block;
}

/* 🛑 Bootstrap ne met PAS .offcanvas en flex colonne → sans ça .offcanvas-body ne grandit pas et le
   pied ne descend pas en bas (il flotte après le contenu). display:flex !important recolle le pied. */
.tg-tiroir.offcanvas {
    display: flex !important;
    flex-direction: column;
    z-index: 1075; /* au-dessus d'une modale (BS5 = 1055) : un tiroir peut s'ouvrir par-dessus une pop modale */
    width: var(--tg-tiroir-w, 480px);
    max-width: 96vw;
}
.tg-tiroir.offcanvas > .offcanvas-body {
    flex: 1 1 auto;
    min-height: 0;
}

/* Pied du tiroir : barre d'actions épinglée EN BAS. */
.tg-tiroir > .tg-tiroir-pied {
    flex: 0 0 auto;
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
    justify-content: flex-end;
    padding: 12px 6%;
    border-top: 1px solid var(--bs-border-color);
    background: var(--bs-body-bg);
}
.tg-tiroir > .tg-tiroir-pied:empty {
    display: none;
}
/* Les boutons d'action sont déclarés DANS le pied du squelette (patron du sous-panneau Commentaire) :
   Annuler = .btn.btn-outline-secondary, Enregistrer = .btn.btn-success (les 2 squelettes existants,
   _SaisieSubsidiaireTiroir et _TiroirCreation). Rien à relocaliser ni recolorer. */

/* 🛑 Barre d'erreur TgNotify (#tgBandeauContainer) : c'est un OVERLAY `position:fixed` en z-index 1090,
   calé sur le layout de PAGE (`top: --rail-header-h`). Un tiroir (1075) part lui de `top:0` et monte
   jusqu'en haut de l'écran → la barre se superpose au haut de son CORPS, et masque parfois le champ même
   que le message demande de renseigner. On RÉSERVE donc sa hauteur au lieu de la subir : notifications.js
   pose `body.tg-bandeau-ouvert` + la hauteur cumulée des barres dans `--tg-bandeau-h`.
   Le `1rem` rend le padding normal de l'offcanvas (qu'on écrase) et absorbe l'écart entête/barre.
   ⚠️ Volontairement sur `.offcanvas` et NON sur `.tg-tiroir` : plusieurs panneaux (Révision V2 :
   `.rev-v2__tiroir`, `.rev-v2__sous-tiroir`…) sont des offcanvas BS5 sans la classe de socle. Seul
   `offcanvas-bottom` est exclu : il ne touche pas le haut de l'écran, donc rien à réserver. */
body.tg-bandeau-ouvert .offcanvas.show:not(.offcanvas-bottom) > .offcanvas-body {
    padding-top: calc(var(--tg-bandeau-h, 0px) + 1rem);
}

/* ------------------------------------------------------------------
   NIVEAU 2 : un tiroir ouvert PAR-DESSUS un autre tiroir (ex. création rapide lancée depuis un
   champ de recherche du tiroir subsidiaire). Doit passer au-dessus du niveau 1 (voile 1070 /
   tiroir 1075), son propre voile bloquant le tiroir appelant qui reste visible derrière.
   ------------------------------------------------------------------ */
.tg-tiroir-voile.tg-tiroir-voile--niveau2 {
    z-index: 1078;
}
.tg-tiroir.tg-tiroir--niveau2.offcanvas {
    z-index: 1080;
}
