:root{--gc-green:#0B3D91;--gc-green-dark:#06275C;--gc-green-soft:#EAF2FF;--gc-yellow:#F97316;--gc-dark:#102A43;--gc-bg:#F4F7FB;--gc-muted:#64748b;--gc-border:#e5e7eb}*{box-sizing:border-box}body{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--gc-bg);color:#0f172a}.guest-bg{background:linear-gradient(135deg,#EAF2FF,#f7fafc 45%,#FFF4E8)}.app-shell{display:flex;min-height:100vh}.sidebar{width:300px;background:linear-gradient(180deg,rgba(8,48,115,.98),rgba(4,25,68,.96));color:#fff;position:fixed;inset:0 auto 0 0;z-index:1040;padding:1.2rem;transition:.25s ease;box-shadow:18px 0 60px rgba(4,25,68,.22);backdrop-filter:blur(10px)}.main-area{margin-left:300px;width:calc(100% - 300px)}.brand-box{display:flex;gap:1rem;align-items:center;padding:.7rem .5rem 1.2rem;margin-bottom:1rem}.brand-logo{width:62px;height:62px;border-radius:16px;background:rgba(255,255,255,.92);padding:.25rem;object-fit:contain}.brand-name{font-weight:800;font-size:1.35rem;letter-spacing:.2px}.brand-box small{opacity:.78}.sidebar-nav{border:1px solid rgba(255,255,255,.14);border-radius:1.2rem;padding:.8rem;background:rgba(255,255,255,.08)}.sidebar-nav .nav-link{display:flex;align-items:center;gap:.9rem;color:#f8fbff;border-radius:.85rem;margin:.2rem 0;padding:.85rem 1rem;font-weight:650;font-size:1rem;transition:.18s}.sidebar-nav .nav-link i{font-size:1.28rem;color:#ffdfb8}.sidebar-nav .nav-link:hover,.sidebar-nav .nav-link.active{background:rgba(255,255,255,.2);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.24)}.sidebar-nav .nav-link.active{font-weight:800}.sidebar-separator{border-color:rgba(255,255,255,.25);margin:1rem 0}.sidebar-close{position:absolute;right:1rem;top:1rem;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.12);color:#fff;border-radius:999px;width:38px;height:38px}.sidebar-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.35);z-index:1030;display:none}.sidebar-backdrop.show{display:block}.topbar{min-height:68px}.navbar-title{font-weight:800;font-size:1.1rem;color:var(--gc-dark)}.content{min-height:calc(100vh - 68px)}.stat-card{border-radius:1.1rem;background:#fff;padding:1.4rem;box-shadow:0 10px 30px rgba(15,23,42,.06);border-left:6px solid #3b82f6;height:100%}.stat-card.green{border-left-color:var(--gc-green)}.stat-card.yellow{border-left-color:var(--gc-yellow)}.stat-card.dark{border-left-color:var(--gc-dark)}.stat-card span{display:block;color:var(--gc-muted);font-weight:600}.stat-card strong{font-size:1.6rem;color:var(--gc-dark)}.card{border-radius:1rem}.btn-success{background:var(--gc-green);border-color:var(--gc-green)}.btn-success:hover{background:var(--gc-green-dark);border-color:var(--gc-green-dark)}.login-card,.tracking-card{border-radius:1.5rem}.select2-container .select2-selection--single{height:38px;border:1px solid #dee2e6}.select2-container--default .select2-selection--single .select2-selection__rendered{line-height:36px}.table strong{color:var(--gc-green-dark)}.table-responsive{border-radius:.8rem}.form-control:focus,.form-select:focus{border-color:#0B3D91;box-shadow:0 0 0 .2rem rgba(11,61,145,.16)}.password-group .btn{border-color:#dee2e6}.topbar-actions{white-space:nowrap}.track-result-page{max-width:1180px;margin:0 auto}.track-summary{position:sticky;top:1rem}.current-status-box{display:flex;gap:1.1rem;align-items:center;border:1px solid var(--gc-border);border-radius:1rem;padding:1rem;background:#fff}.status-ring{width:86px;height:86px;border-radius:999px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:2rem;box-shadow:inset 0 0 0 12px rgba(255,255,255,.75)}.track-timeline .card-body{padding-left:2.2rem}.timeline-item{position:relative;padding:0 0 1.6rem 2.2rem;border-left:2px solid #d7dbe2}.timeline-item:last-child{border-left-color:transparent;padding-bottom:0}.timeline-dot{position:absolute;left:-9px;top:0;width:16px;height:16px;border-radius:999px;background:#cbd5e1;border:3px solid #fff;box-shadow:0 0 0 2px #cbd5e1}.timeline-item.done .timeline-dot,.timeline-item.active .timeline-dot{background:var(--gc-yellow);box-shadow:0 0 0 2px var(--gc-yellow)}.timeline-item.active .timeline-content{border-color:var(--gc-green);box-shadow:0 12px 24px rgba(11,61,145,.14)}.timeline-content{border:1px solid var(--gc-border);border-radius:1rem;padding:1rem;background:#fff}.tracking-search-page .input-group>.form-control{min-width:0}.badge.bg-info{color:#053a4a!important}@media(max-width:1199.98px){.sidebar{width:285px}.main-area{margin-left:285px;width:calc(100% - 285px)}}@media(max-width:991.98px){.sidebar{transform:translateX(-105%);width:min(88vw,330px)}.sidebar.show{transform:translateX(0)}.main-area{margin-left:0;width:100%}.track-summary{position:static}.topbar-actions .btn{padding:.35rem .5rem;font-size:.8rem}}@media(max-width:575.98px){.content{padding:.8rem!important}.topbar .container-fluid{align-items:flex-start}.topbar-actions{flex-wrap:wrap;justify-content:flex-end}.display-6{font-size:1.7rem}.track-timeline .card-body{padding-left:1.2rem}.timeline-item{padding-left:1.4rem}.current-status-box{align-items:flex-start}.status-ring{width:68px;height:68px;font-size:1.55rem}.card-body.p-5{padding:1.5rem!important}.input-group.input-group-lg{flex-wrap:wrap}.input-group.input-group-lg>*{border-radius:.5rem!important;margin:.15rem 0}.input-group.input-group-lg .btn{width:100%}}@media print{.topbar,.sidebar,.sidebar-backdrop,.btn,.no-print{display:none!important}.main-area{margin:0!important;width:100%!important}.content{padding:0!important}.card{box-shadow:none!important}}
.sidebar-section-title{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.68);font-weight:800;margin:1rem .8rem .4rem}.form-section-card{border-left:5px solid var(--gc-green)}.timeline-compact{display:flex;flex-direction:column;gap:1rem}.timeline-line-item{display:flex;gap:.9rem;align-items:flex-start}.timeline-line-item .dot{width:14px;height:14px;border-radius:50%;margin-top:.25rem;flex:0 0 14px}.signature-card{border:1px solid var(--gc-border);border-radius:1rem;background:#fff;padding:1rem;height:100%}.signature-pad{width:100%;height:180px;border:1px dashed #94a3b8;border-radius:.8rem;background:#fff;touch-action:none}.saved-signature{max-height:90px;max-width:100%;display:block;margin:.5rem 0;border:1px solid #e5e7eb;border-radius:.5rem}.stamp-zone{text-align:center;margin-top:18px}.stamp-zone img{max-height:95px;max-width:170px;opacity:.95}.doc-logo{width:90px;max-height:90px;object-fit:contain}.signature-img{max-height:70px;max-width:180px;display:block;margin:0 auto 6px}.topbar-actions .js-daily-logout{white-space:nowrap}@media(max-width:767.98px){.form-section-card .card-body{padding:1rem}.signature-pad{height:150px}.btn-group.flex-wrap>.btn{border-radius:.5rem!important;margin:.1rem}}

/* v1.3 navigation et signatures */
.sidebar{overflow-y:auto;scrollbar-width:thin}.sidebar-nav{max-height:calc(100vh - 125px);overflow-y:auto}.sidebar-group-title{display:flex;align-items:center;justify-content:space-between;width:100%;color:#fff;background:rgba(255,255,255,.12);border:0;border-radius:.85rem;margin:.25rem 0;padding:.85rem 1rem;font-weight:800}.sidebar-group-title:hover,.sidebar-group-title.active{background:rgba(255,255,255,.2)}.sidebar-submenu{padding:.2rem 0 .5rem .6rem}.sidebar-submenu .nav-link{font-size:.92rem;padding:.62rem .8rem;margin:.12rem 0}.brand-logo,.doc-logo,.login-card img{background:#fff!important;object-fit:contain}.signature-pad{width:100%;height:180px;display:block;border:2px dashed #94a3b8;border-radius:.8rem;background:#fff;touch-action:none;cursor:crosshair}.signature-pad:hover{border-color:#0B3D91;background:#f8fbff}.signature-card{border:1px solid var(--gc-border);border-radius:1rem;background:#fff;padding:1rem;height:100%}.saved-signature{max-height:90px;max-width:100%;display:block;margin:.5rem 0;border:1px solid #e5e7eb;border-radius:.5rem}.form-agency-error{display:none}.form-agency-error.show{display:block}@media(max-width:991.98px){.sidebar-nav{max-height:calc(100vh - 105px)}}

/* v1.4 sidebar scroll et documents : suppression des lignes parasites sur cachet */
.sidebar{height:100vh;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin}.sidebar::-webkit-scrollbar{width:7px}.sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.35);border-radius:20px}.sidebar-nav{max-height:calc(100vh - 130px);overflow-y:auto;overflow-x:hidden;padding-right:.35rem}.sidebar-submenu{max-height:42vh;overflow-y:auto;overflow-x:hidden;padding-right:.25rem}.sidebar-submenu::-webkit-scrollbar{width:5px}.sidebar-submenu::-webkit-scrollbar-thumb{background:rgba(255,255,255,.25);border-radius:20px}.clean-signatures{align-items:flex-start}.signature-row.clean-signatures>div,.signature-block{border-top:0!important;text-align:center;min-height:118px;position:relative}.signature-label{font-size:12px;font-weight:700;color:#111827;margin-bottom:10px}.signature-visual{position:relative;width:100%;min-height:92px;display:flex;align-items:center;justify-content:center}.signature-stamp-wrap{position:relative}.stamp-over-signature{position:absolute;z-index:3;width:152px;max-height:136px;object-fit:contain;left:50%;top:50%;transform:translate(-45%,-52%) rotate(-4deg);opacity:.88;mix-blend-mode:multiply;pointer-events:none}.signature-img{max-height:64px;max-width:200px;display:block;margin:0 auto;position:relative;z-index:2}.stamp-zone img,.settings-stamp-preview img{max-height:125px;max-width:240px;object-fit:contain}
@media(max-width:991.98px){.sidebar-submenu{max-height:48vh}.sidebar-nav{max-height:calc(100vh - 110px)}}


/* =========================================================
   v1.4.2 - Sidebar en mode focus
   Objectif : supprimer le scroll forcé instable et afficher un seul grand menu ouvert.
   ========================================================= */
html,
body {
  overflow-x: hidden;
}

.sidebar {
  height: 100vh !important;
  max-height: 100vh !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
}

.sidebar .brand-box {
  flex: 0 0 auto;
}

.sidebar-nav {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: hidden !important;
  padding-right: 0 !important;
}

.sidebar-dashboard-link {
  flex: 0 0 auto;
}

.sidebar-focus-back {
  display: none;
  align-items: center;
  gap: .65rem;
  width: 100%;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: .85rem;
  margin: .35rem 0 .55rem;
  padding: .72rem .95rem;
  background: rgba(255,255,255,.10);
  color: #fff;
  font-weight: 800;
  text-align: left;
  transition: .18s ease;
}

.sidebar-focus-back:hover {
  background: rgba(255,255,255,.18);
}

.sidebar-nav.focus-mode.has-focused .sidebar-focus-back {
  display: flex;
}

.sidebar-focus-item {
  width: 100%;
  min-width: 0;
  transition: opacity .18s ease, transform .18s ease;
}

.sidebar-nav.focus-mode.has-focused .sidebar-focus-item:not(.is-focused) {
  display: none !important;
}

.sidebar-nav.focus-mode.has-focused .sidebar-focus-item.is-focused {
  display: block !important;
  animation: sidebarFocusIn .18s ease both;
}

@keyframes sidebarFocusIn {
  from {
    opacity: .2;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.sidebar-group-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  color: #fff;
  background: rgba(255,255,255,.12);
  border: 0;
  border-radius: .85rem;
  margin: .25rem 0;
  padding: .85rem 1rem;
  font-weight: 800;
  line-height: 1.2;
}

.sidebar-group-title:hover,
.sidebar-group-title.active,
.sidebar-focus-item.is-focused .sidebar-group-title {
  background: rgba(255,255,255,.20);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.18);
}

.sidebar-group-title > span {
  display: flex;
  align-items: center;
  min-width: 0;
  text-align: left;
}

.sidebar-group-title .bi-chevron-down {
  flex: 0 0 auto;
  transition: transform .2s ease;
}

.sidebar-group-title[aria-expanded="true"] .bi-chevron-down,
.sidebar-focus-item.is-focused .sidebar-group-title .bi-chevron-down {
  transform: rotate(180deg);
}

.sidebar-submenu {
  width: 100%;
  min-width: 0;
  max-height: none !important;
  overflow: visible !important;
  padding: .25rem 0 .55rem .45rem !important;
  margin: 0 !important;
}

.sidebar-submenu .nav-link {
  width: 100%;
  min-width: 0;
  white-space: normal;
  overflow-wrap: anywhere;
  font-size: .94rem;
  padding: .68rem .85rem;
  margin: .12rem 0;
}

/* En mode focus, le sous-menu ouvert occupe la zone utile sous Tableau de bord. */
.sidebar-nav.focus-mode.has-focused .sidebar-focus-item.is-focused .sidebar-submenu {
  display: block !important;
}

/* Sécurité pour très petits écrans : si un sous-menu est vraiment trop long,
   on autorise le défilement du sous-menu actif uniquement. */
@media (max-height: 620px) {
  .sidebar-nav.focus-mode.has-focused .sidebar-focus-item.is-focused .sidebar-submenu {
    max-height: calc(100vh - 250px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
  }
}

@media (max-width: 991.98px) {
  .sidebar {
    width: min(88vw, 390px) !important;
    max-width: 88vw !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    overflow: hidden !important;
    padding: 1rem !important;
  }

  .sidebar.show {
    transform: translateX(0) !important;
  }

  .sidebar-close {
    position: absolute !important;
    top: .85rem !important;
    right: .85rem !important;
    z-index: 1060 !important;
  }

  .sidebar .brand-box {
    padding-right: 3rem;
  }

  .sidebar-nav.focus-mode.has-focused .sidebar-focus-item.is-focused .sidebar-submenu {
    max-height: calc(100dvh - 255px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
  }
}

.sidebar-nav.focus-mode.has-focused .sidebar-focus-item.is-focused .sidebar-submenu::-webkit-scrollbar {
  width: 6px;
}

.sidebar-nav.focus-mode.has-focused .sidebar-focus-item.is-focused .sidebar-submenu::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,.35);
  border-radius: 20px;
}


/* =========================================================
   v1.4.3 - Sidebar focus sans flash + logo compact
   ========================================================= */

/* Le rendu initial est géré côté PHP : si focus-mode est présent au chargement,
   les autres menus sont masqués immédiatement, avant JavaScript. */
.sidebar {
  height: 100vh !important;
  max-height: 100vh !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
}

.sidebar .brand-box {
  flex: 0 0 auto;
  padding: .35rem .35rem .7rem !important;
  margin-bottom: .55rem !important;
  gap: .75rem !important;
}

.sidebar .brand-logo {
  width: 54px !important;
  height: 54px !important;
  border-radius: 14px !important;
  flex: 0 0 auto;
}

.sidebar .brand-text {
  min-width: 0;
}

.sidebar .brand-name {
  font-size: 1.12rem !important;
  line-height: 1.15 !important;
  letter-spacing: .02em;
  word-break: normal;
}

.sidebar .brand-box small {
  display: block;
  font-size: .82rem;
  line-height: 1.2;
}

.sidebar-nav {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: hidden !important;
  padding: .75rem !important;
  padding-right: .75rem !important;
}

/* En mode focus, seul le groupe actif reste visible avec le bouton retour. */
.sidebar-nav.focus-mode.has-focused .sidebar-focus-back {
  display: flex !important;
}

.sidebar-nav.focus-mode.has-focused .sidebar-focus-item:not(.is-focused) {
  display: none !important;
}

.sidebar-nav.focus-mode.has-focused .sidebar-focus-item.is-focused {
  display: block !important;
}

/* Éviter plusieurs états actifs visuellement : seul le lien enfant actif reçoit .active.
   Le groupe ouvert reçoit un style de focus plus doux. */
.sidebar-group-title.active {
  box-shadow: none;
}

.sidebar-focus-item.is-focused .sidebar-group-title {
  background: rgba(255,255,255,.20) !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.18);
}

/* Les sous-menus doivent rester dans la sidebar et scroller seulement si nécessaire. */
.sidebar-nav.focus-mode.has-focused .sidebar-focus-item.is-focused .sidebar-submenu {
  display: block !important;
  max-height: calc(100vh - 238px) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  -webkit-overflow-scrolling: touch;
  padding-bottom: .8rem !important;
}

/* Scroll propre du sous-menu actif. */
.sidebar-nav.focus-mode.has-focused .sidebar-focus-item.is-focused .sidebar-submenu::-webkit-scrollbar {
  width: 6px;
}

.sidebar-nav.focus-mode.has-focused .sidebar-focus-item.is-focused .sidebar-submenu::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,.35);
  border-radius: 20px;
}

.sidebar-nav.focus-mode.has-focused .sidebar-focus-item.is-focused .sidebar-submenu {
  scrollbar-width: thin;
}

/* Responsive mobile : logo plus compact + plus d'espace pour les sous-menus. */
@media (max-width: 991.98px) {
  .sidebar {
    width: min(88vw, 380px) !important;
    max-width: 88vw !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    padding: .85rem !important;
  }

  .sidebar .brand-box {
    padding: .2rem 3rem .55rem .2rem !important;
    margin-bottom: .45rem !important;
    gap: .65rem !important;
  }

  .sidebar .brand-logo {
    width: 48px !important;
    height: 48px !important;
    border-radius: 12px !important;
  }

  .sidebar .brand-name {
    font-size: .98rem !important;
    line-height: 1.1 !important;
  }

  .sidebar .brand-box small {
    font-size: .76rem !important;
  }

  .sidebar-nav {
    padding: .65rem !important;
  }

  .sidebar-nav .nav-link,
  .sidebar-group-title,
  .sidebar-focus-back {
    padding: .72rem .82rem !important;
    font-size: .95rem !important;
  }

  .sidebar-submenu .nav-link {
    padding: .62rem .75rem !important;
    font-size: .91rem !important;
  }

  .sidebar-nav.focus-mode.has-focused .sidebar-focus-item.is-focused .sidebar-submenu {
    max-height: calc(100dvh - 208px) !important;
  }
}

/* Très petits écrans en hauteur : on réduit encore les espaces. */
@media (max-height: 660px) {
  .sidebar .brand-box {
    padding-top: .15rem !important;
    padding-bottom: .45rem !important;
    margin-bottom: .35rem !important;
  }

  .sidebar .brand-logo {
    width: 44px !important;
    height: 44px !important;
  }

  .sidebar .brand-name {
    font-size: .92rem !important;
  }

  .sidebar .brand-box small {
    font-size: .72rem !important;
  }

  .sidebar-nav.focus-mode.has-focused .sidebar-focus-item.is-focused .sidebar-submenu {
    max-height: calc(100dvh - 190px) !important;
  }
}

/* v1.5 - ajustements modules transport/entrepot */
.barcode-text{font-family:'Libre Barcode 39',monospace;letter-spacing:.18em;font-weight:800;font-size:.9rem;background:#f8fafc;border:1px dashed #cbd5e1;padding:.15rem .35rem;border-radius:.35rem;display:inline-block}.qr-box{width:120px;height:120px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:.35rem}.brand-name{font-size:1.12rem!important;line-height:1.08}.brand-box{padding-top:.45rem!important;padding-bottom:.8rem!important;margin-bottom:.55rem!important}.brand-logo{width:56px!important;height:56px!important}@media(max-width:991.98px){.brand-name{font-size:1.02rem!important}.brand-logo{width:50px!important;height:50px!important}.sidebar-submenu .nav-link{padding:.55rem .75rem!important}}


/* v1.5.2 - sécurité menu focus : si aucun groupe n'est focalisé, ne jamais vider la sidebar */
.sidebar-nav.focus-mode:not(.has-focused) .sidebar-focus-back{display:none!important}
.sidebar-nav.focus-mode:not(.has-focused) .sidebar-focus-item{display:block!important}

/* =========================================================
   v1.5.4 - Correctif ultime sidebar/menu
   Objectif : ne plus jamais masquer les sous-menus à 100% de zoom.
   Le défilement se fait sur toute la sidebar, pas uniquement sur un bloc interne.
   ========================================================= */
.sidebar {
  height: 100vh !important;
  height: 100dvh !important;
  max-height: 100vh !important;
  max-height: 100dvh !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  display: block !important;
  padding: .75rem !important;
}

.sidebar .brand-box {
  padding: .25rem .25rem .55rem !important;
  margin-bottom: .45rem !important;
  gap: .65rem !important;
}

.sidebar .brand-logo {
  width: 46px !important;
  height: 46px !important;
  border-radius: 12px !important;
}

.sidebar .brand-name {
  font-size: .98rem !important;
  line-height: 1.05 !important;
  letter-spacing: .015em !important;
}

.sidebar .brand-box small {
  font-size: .72rem !important;
  line-height: 1.1 !important;
}

.sidebar-nav {
  display: block !important;
  max-height: none !important;
  min-height: auto !important;
  height: auto !important;
  overflow: visible !important;
  padding: .6rem !important;
  border-radius: 1rem !important;
}

.sidebar-dashboard-link,
.sidebar-focus-back,
.sidebar-group-title,
.sidebar-nav .nav-link {
  min-height: 0 !important;
}

.sidebar-nav .nav-link,
.sidebar-group-title,
.sidebar-focus-back {
  padding: .58rem .72rem !important;
  margin: .1rem 0 !important;
  font-size: .88rem !important;
  line-height: 1.16 !important;
  border-radius: .75rem !important;
}

.sidebar-nav .nav-link i,
.sidebar-group-title i {
  font-size: 1.05rem !important;
}

.sidebar-submenu,
.sidebar-nav.focus-mode.has-focused .sidebar-focus-item.is-focused .sidebar-submenu {
  display: block;
  max-height: none !important;
  height: auto !important;
  overflow: visible !important;
  padding: .18rem 0 .45rem .35rem !important;
}

.sidebar-submenu .nav-link {
  font-size: .82rem !important;
  padding: .47rem .62rem !important;
  margin: .06rem 0 !important;
  gap: .55rem !important;
}

.sidebar-submenu .nav-link i {
  font-size: .96rem !important;
}

.sidebar-nav.focus-mode.has-focused .sidebar-focus-back {
  display: flex !important;
}

.sidebar-nav.focus-mode.has-focused .sidebar-focus-item:not(.is-focused) {
  display: none !important;
}

.sidebar-nav.focus-mode.has-focused .sidebar-focus-item.is-focused {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  transform: none !important;
}

/* Sécurité navigateurs modernes : si focus-mode existe mais qu'aucun item n'est focalisé,
   on réaffiche tout au lieu de vider la sidebar. */
.sidebar-nav.focus-mode.has-focused:not(:has(.sidebar-focus-item.is-focused)) .sidebar-focus-back {
  display: none !important;
}

.sidebar-nav.focus-mode.has-focused:not(:has(.sidebar-focus-item.is-focused)) .sidebar-focus-item {
  display: block !important;
}

@media (max-width: 991.98px) {
  .sidebar {
    width: min(92vw, 390px) !important;
    max-width: 92vw !important;
    padding: .65rem !important;
    -webkit-overflow-scrolling: touch;
  }

  .sidebar .brand-box {
    padding-right: 2.75rem !important;
  }

  .sidebar-nav {
    padding: .55rem !important;
  }

  .sidebar-nav .nav-link,
  .sidebar-group-title,
  .sidebar-focus-back {
    font-size: .86rem !important;
    padding: .56rem .66rem !important;
  }

  .sidebar-submenu .nav-link {
    font-size: .80rem !important;
    padding: .45rem .56rem !important;
  }
}

@media (max-height: 760px) {
  .sidebar .brand-logo { width: 40px !important; height: 40px !important; }
  .sidebar .brand-name { font-size: .86rem !important; }
  .sidebar .brand-box small { font-size: .66rem !important; }
  .sidebar-nav .nav-link,
  .sidebar-group-title,
  .sidebar-focus-back { font-size: .80rem !important; padding: .46rem .58rem !important; }
  .sidebar-submenu .nav-link { font-size: .76rem !important; padding: .38rem .5rem !important; }
}

/* =========================================================
   v1.5.5 - Code-barres réels + listing transport compact + menu lisible
   ========================================================= */
.barcode-svg{display:block;width:100%;height:auto;max-width:360px;background:#fff}.barcode-preview{max-width:360px}.mini-barcode{width:180px;max-width:100%}.mini-barcode .barcode-svg{max-width:180px}.group-list-table td,.group-list-table th{vertical-align:middle}.group-list-table .btn{margin:.05rem}.parcel-list-table{font-size:.92rem}.parcel-list-table th,.parcel-list-table td{padding:.48rem .55rem}.parcel-list-table td:nth-child(5){min-width:160px}.parcel-list-table .parcel-actions{min-width:126px}.parcel-list-table .btn{padding:.22rem .45rem;font-size:.78rem;margin:.04rem}.parcel-list-table .small{font-size:.78rem}.parcel-list-table .badge{font-size:.76rem}.transport-compact-note{font-size:.85rem;color:#64748b}
@media (min-width: 992px){.parcel-list-table{font-size:.88rem}.parcel-list-table th,.parcel-list-table td{padding:.42rem .48rem}.parcel-list-table td:nth-child(3),.parcel-list-table td:nth-child(4){max-width:150px;white-space:normal}.parcel-list-table td:nth-child(5){max-width:185px;white-space:normal}.parcel-list-table td:nth-child(1){min-width:150px}.parcel-list-table td:nth-child(11){min-width:130px}}

/* Menu : police légèrement remontée, tout en gardant le scroll global stable. */
.sidebar-nav .nav-link,
.sidebar-group-title,
.sidebar-focus-back{font-size:.92rem!important;padding:.61rem .75rem!important;line-height:1.18!important}.sidebar-submenu .nav-link{font-size:.86rem!important;padding:.50rem .65rem!important}.sidebar .brand-name{font-size:1.03rem!important}.sidebar .brand-box small{font-size:.75rem!important}.sidebar{overflow-y:auto!important}.sidebar-nav{overflow:visible!important;max-height:none!important}@media(max-width:991.98px){.sidebar-nav .nav-link,.sidebar-group-title,.sidebar-focus-back{font-size:.90rem!important;padding:.59rem .70rem!important}.sidebar-submenu .nav-link{font-size:.84rem!important;padding:.48rem .60rem!important}}
@media(max-height:760px){.sidebar-nav .nav-link,.sidebar-group-title,.sidebar-focus-back{font-size:.86rem!important;padding:.50rem .60rem!important}.sidebar-submenu .nav-link{font-size:.81rem!important;padding:.42rem .54rem!important}.sidebar .brand-name{font-size:.94rem!important}.sidebar .brand-box small{font-size:.70rem!important}}

/* v1.6.0 - Notifications, messagerie et signature footer */
.app-footer{padding:.75rem 1rem;text-align:center;font-size:.82rem;color:#64748b;border-top:1px solid rgba(148,163,184,.25);background:#fff}
.notification-row{display:flex;gap:1rem;align-items:flex-start;justify-content:space-between;border:1px solid rgba(148,163,184,.25);border-radius:14px;padding:1rem;margin-bottom:.75rem;background:#fff}
.notification-row.unread{background:#eff6ff;border-color:#bfdbfe}
.chat-card{min-height:560px}.chat-messages{max-height:460px;overflow-y:auto;background:#f8fafc;border-radius:16px;padding:1rem}.chat-message{margin-bottom:1rem;max-width:78%}.chat-message.mine{margin-left:auto;text-align:right}.chat-message .bubble{display:inline-block;background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:.65rem .9rem;box-shadow:0 1px 2px rgba(15,23,42,.06)}.chat-message.mine .bubble{background:#0d47a1;color:#fff;border-color:#0d47a1}
.topbar-actions .btn{white-space:nowrap}.signature-card{background:#f8fafc;border:1px solid #e5e7eb;border-radius:14px;padding:1rem}.signature-pad{width:100%;height:180px;background:#fff;border:1px dashed #94a3b8;border-radius:10px;touch-action:none}
@media (max-width: 768px){.topbar-actions .btn-outline-primary{display:none}.chat-card{min-height:420px}.chat-messages{max-height:330px}.notification-row{display:block}.notification-row form{margin-top:.75rem}.app-footer{font-size:.76rem}.sidebar .nav-link,.sidebar-group-title{font-size:.94rem!important}.sidebar-submenu .nav-link{font-size:.9rem!important}}


/* v1.6.2 - Scan code-barres entrepôt */
.barcode-scan-panel .input-group .btn{white-space:nowrap}
.barcode-camera{border:1px solid #cbd5e1;border-radius:.85rem;background:#0f172a;color:#fff;padding:.65rem;text-align:center}
.barcode-camera video{width:100%;max-height:260px;object-fit:cover;border-radius:.65rem;background:#000}
.barcode-camera-status{font-size:.86rem;margin-top:.45rem;color:#e2e8f0}
@media(max-width:575.98px){.barcode-scan-panel .input-group{display:block}.barcode-scan-panel .input-group>.form-control,.barcode-scan-panel .input-group>.btn{width:100%;border-radius:.5rem!important;margin-bottom:.35rem}.barcode-camera video{max-height:210px}}
